From c4517fccb1ae62ff4127dd7eafae14ff7081f0cd Mon Sep 17 00:00:00 2001 From: awssdkgo Date: Fri, 10 Nov 2023 20:19:52 +0000 Subject: [PATCH] Release v1.47.9 (2023-11-10) === ### Service Client Updates * `service/controltower`: Updates service API and documentation * `service/cur`: Updates service API and documentation * This release adds support for tagging and customers can now tag report definitions. Additionally, ReportStatus is now added to report definition to show when the last delivered time stamp and if it succeeded or not. * `service/ec2`: Updates service API and documentation * EC2 adds API updates to enable ENA Express at instance launch time. * `service/entitlement.marketplace`: Updates service API, documentation, and paginators * `service/fms`: Updates service documentation * `service/mediaconvert`: Updates service API and documentation * This release includes the ability to specify any input source as the primary input for corresponding follow modes, and allows users to specify fit and fill behaviors without resizing content. * `service/rds`: Updates service API, documentation, waiters, paginators, and examples * Updates Amazon RDS documentation for zero-ETL integrations. ### SDK Enhancements * `aws/signer/v4`: Add bucket owner header to presigned list. * Add x-amz-expected-bucket-owner header to the list of headers that need to be presigned. --- CHANGELOG.md | 20 + CHANGELOG_PENDING.md | 2 - aws/version.go | 2 +- .../apis/controltower/2018-05-10/api-2.json | 132 +++ .../apis/controltower/2018-05-10/docs-2.json | 108 +- .../2018-05-10/endpoint-rule-set-1.json | 40 +- .../2018-05-10/endpoint-tests-1.json | 11 + models/apis/cur/2017-01-06/api-2.json | 161 ++- models/apis/cur/2017-01-06/docs-2.json | 131 ++- .../cur/2017-01-06/endpoint-rule-set-1.json | 366 ++++--- models/apis/ec2/2016-11-15/api-2.json | 71 +- models/apis/ec2/2016-11-15/docs-2.json | 63 +- .../2017-01-11/api-2.json | 7 +- .../2017-01-11/docs-2.json | 9 +- .../2017-01-11/endpoint-rule-set-1.json | 339 +++++++ .../2017-01-11/endpoint-tests-1.json | 314 ++++++ .../2017-01-11/paginators-1.json | 5 + models/apis/fms/2018-01-01/docs-2.json | 10 +- .../fms/2018-01-01/endpoint-rule-set-1.json | 366 ++++--- .../apis/mediaconvert/2017-08-29/api-2.json | 28 +- .../apis/mediaconvert/2017-08-29/docs-2.json | 48 +- .../2017-08-29/endpoint-rule-set-1.json | 44 +- models/apis/rds/2014-10-31/docs-2.json | 18 +- service/controltower/api.go | 558 ++++++++++- .../controltoweriface/interface.go | 12 + service/controltower/doc.go | 6 +- service/costandusagereportservice/api.go | 924 ++++++++++++++++-- .../interface.go | 12 + service/costandusagereportservice/doc.go | 19 +- service/costandusagereportservice/errors.go | 10 +- .../examples_test.go | 2 + service/ec2/api.go | 340 ++++++- service/fms/api.go | 183 +++- service/marketplaceentitlementservice/api.go | 62 +- .../interface.go | 3 + service/mediaconvert/api.go | 169 ++-- service/rds/api.go | 63 +- 37 files changed, 3854 insertions(+), 804 deletions(-) create mode 100644 models/apis/entitlement.marketplace/2017-01-11/endpoint-rule-set-1.json create mode 100644 models/apis/entitlement.marketplace/2017-01-11/endpoint-tests-1.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e3476acf0c..df21de2c2d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,23 @@ +Release v1.47.9 (2023-11-10) +=== + +### Service Client Updates +* `service/controltower`: Updates service API and documentation +* `service/cur`: Updates service API and documentation + * This release adds support for tagging and customers can now tag report definitions. Additionally, ReportStatus is now added to report definition to show when the last delivered time stamp and if it succeeded or not. +* `service/ec2`: Updates service API and documentation + * EC2 adds API updates to enable ENA Express at instance launch time. +* `service/entitlement.marketplace`: Updates service API, documentation, and paginators +* `service/fms`: Updates service documentation +* `service/mediaconvert`: Updates service API and documentation + * This release includes the ability to specify any input source as the primary input for corresponding follow modes, and allows users to specify fit and fill behaviors without resizing content. +* `service/rds`: Updates service API, documentation, waiters, paginators, and examples + * Updates Amazon RDS documentation for zero-ETL integrations. + +### SDK Enhancements +* `aws/signer/v4`: Add bucket owner header to presigned list. + * Add x-amz-expected-bucket-owner header to the list of headers that need to be presigned. + Release v1.47.8 (2023-11-09) === diff --git a/CHANGELOG_PENDING.md b/CHANGELOG_PENDING.md index a4488deebc5..8a1927a39ca 100644 --- a/CHANGELOG_PENDING.md +++ b/CHANGELOG_PENDING.md @@ -1,7 +1,5 @@ ### SDK Features ### SDK Enhancements -* `aws/signer/v4`: Add bucket owner header to presigned list. - * Add x-amz-expected-bucket-owner header to the list of headers that need to be presigned. ### SDK Bugs diff --git a/aws/version.go b/aws/version.go index db9fd6a9198..761ea40bf2c 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 = "1.47.8" +const SDKVersion = "1.47.9" diff --git a/models/apis/controltower/2018-05-10/api-2.json b/models/apis/controltower/2018-05-10/api-2.json index be75c9d7521..7eaa7484256 100644 --- a/models/apis/controltower/2018-05-10/api-2.json +++ b/models/apis/controltower/2018-05-10/api-2.json @@ -100,6 +100,51 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ] + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceInput"}, + "output":{"shape":"ListTagsForResourceOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":204 + }, + "input":{"shape":"TagResourceInput"}, + "output":{"shape":"TagResourceOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":204 + }, + "input":{"shape":"UntagResourceInput"}, + "output":{"shape":"UntagResourceOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ] } }, "shapes":{ @@ -205,6 +250,7 @@ ], "members":{ "controlIdentifier":{"shape":"ControlIdentifier"}, + "tags":{"shape":"TagMap"}, "targetIdentifier":{"shape":"TargetIdentifier"} } }, @@ -212,6 +258,7 @@ "type":"structure", "required":["operationIdentifier"], "members":{ + "arn":{"shape":"Arn"}, "operationIdentifier":{"shape":"OperationIdentifier"} } }, @@ -315,6 +362,24 @@ "nextToken":{"shape":"String"} } }, + "ListTagsForResourceInput":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceOutput":{ + "type":"structure", + "required":["tags"], + "members":{ + "tags":{"shape":"TagMap"} + } + }, "MaxResults":{ "type":"integer", "box":true, @@ -367,6 +432,49 @@ "type":"timestamp", "timestampFormat":"iso8601" }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeys":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":200, + "min":0 + }, + "TagResourceInput":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{"shape":"TagMap"} + } + }, + "TagResourceOutput":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, "TargetIdentifier":{ "type":"string", "max":2048, @@ -397,6 +505,30 @@ "exception":true, "retryable":{"throttling":true} }, + "UntagResourceInput":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeys", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceOutput":{ + "type":"structure", + "members":{ + } + }, "ValidationException":{ "type":"structure", "required":["message"], diff --git a/models/apis/controltower/2018-05-10/docs-2.json b/models/apis/controltower/2018-05-10/docs-2.json index 4f813a56a67..b849bab1929 100644 --- a/models/apis/controltower/2018-05-10/docs-2.json +++ b/models/apis/controltower/2018-05-10/docs-2.json @@ -1,12 +1,15 @@ { "version": "2.0", - "service": "

These interfaces allow you to apply the AWS library of pre-defined controls to your organizational units, programmatically. In AWS Control Tower, the terms \"control\" and \"guardrail\" are synonyms. .

To call these APIs, you'll need to know:

To get the controlIdentifier for your AWS Control Tower control:

The controlIdentifier is an ARN that is specified for each control. You can view the controlIdentifier in the console on the Control details page, as well as in the documentation.

The controlIdentifier is unique in each AWS Region for each control. You can find the controlIdentifier for each Region and control in the Tables of control metadata in the AWS Control Tower User Guide.

A quick-reference list of control identifers for the AWS Control Tower legacy Strongly recommended and Elective controls is given in Resource identifiers for APIs and guardrails in the Controls reference guide section of the AWS Control Tower User Guide. Remember that Mandatory controls cannot be added or removed.

ARN format: arn:aws:controltower:{REGION}::control/{CONTROL_NAME}

Example:

arn:aws:controltower:us-west-2::control/AWS-GR_AUTOSCALING_LAUNCH_CONFIG_PUBLIC_IP_DISABLED

To get the targetIdentifier:

The targetIdentifier is the ARN for an OU.

In the AWS Organizations console, you can find the ARN for the OU on the Organizational unit details page associated with that OU.

OU ARN format:

arn:${Partition}:organizations::${MasterAccountId}:ou/o-${OrganizationId}/ou-${OrganizationalUnitId}

Details and examples

To view the open source resource repository on GitHub, see aws-cloudformation/aws-cloudformation-resource-providers-controltower

Recording API Requests

AWS Control Tower supports AWS CloudTrail, a service that records AWS API calls for your AWS account and delivers log files to an Amazon S3 bucket. By using information collected by CloudTrail, you can determine which requests the AWS Control Tower service received, who made the request and when, and so on. For more about AWS Control Tower and its support for CloudTrail, see Logging AWS Control Tower Actions with AWS CloudTrail in the AWS Control Tower User Guide. To learn more about CloudTrail, including how to turn it on and find your log files, see the AWS CloudTrail User Guide.

", + "service": "

These interfaces allow you to apply the AWS library of pre-defined controls to your organizational units, programmatically. In AWS Control Tower, the terms \"control\" and \"guardrail\" are synonyms.

To call these APIs, you'll need to know:

To get the controlIdentifier for your AWS Control Tower control:

The controlIdentifier is an ARN that is specified for each control. You can view the controlIdentifier in the console on the Control details page, as well as in the documentation.

The controlIdentifier is unique in each AWS Region for each control. You can find the controlIdentifier for each Region and control in the Tables of control metadata in the AWS Control Tower User Guide.

A quick-reference list of control identifers for the AWS Control Tower legacy Strongly recommended and Elective controls is given in Resource identifiers for APIs and controls in the Controls reference guide section of the AWS Control Tower User Guide. Remember that Mandatory controls cannot be added or removed.

ARN format: arn:aws:controltower:{REGION}::control/{CONTROL_NAME}

Example:

arn:aws:controltower:us-west-2::control/AWS-GR_AUTOSCALING_LAUNCH_CONFIG_PUBLIC_IP_DISABLED

To get the targetIdentifier:

The targetIdentifier is the ARN for an OU.

In the AWS Organizations console, you can find the ARN for the OU on the Organizational unit details page associated with that OU.

OU ARN format:

arn:${Partition}:organizations::${MasterAccountId}:ou/o-${OrganizationId}/ou-${OrganizationalUnitId}

Details and examples

To view the open source resource repository on GitHub, see aws-cloudformation/aws-cloudformation-resource-providers-controltower

Recording API Requests

AWS Control Tower supports AWS CloudTrail, a service that records AWS API calls for your AWS account and delivers log files to an Amazon S3 bucket. By using information collected by CloudTrail, you can determine which requests the AWS Control Tower service received, who made the request and when, and so on. For more about AWS Control Tower and its support for CloudTrail, see Logging AWS Control Tower Actions with AWS CloudTrail in the AWS Control Tower User Guide. To learn more about CloudTrail, including how to turn it on and find your log files, see the AWS CloudTrail User Guide.

", "operations": { "DisableControl": "

This API call turns off a control. It starts an asynchronous operation that deletes AWS resources on the specified organizational unit and the accounts it contains. The resources will vary according to the control that you specify. For usage examples, see the AWS Control Tower User Guide .

", - "EnableControl": "

This API call activates a control. It starts an asynchronous operation that creates AWS resources on the specified organizational unit and the accounts it contains. The resources created will vary according to the control that you specify. For usage examples, see the AWS Control Tower User Guide

", - "GetControlOperation": "

Returns the status of a particular EnableControl or DisableControl operation. Displays a message in case of error. Details for an operation are available for 90 days. For usage examples, see the AWS Control Tower User Guide

", - "GetEnabledControl": "

Provides details about the enabled control. For usage examples, see the AWS Control Tower User Guide .

Returned values

", - "ListEnabledControls": "

Lists the controls enabled by AWS Control Tower on the specified organizational unit and the accounts it contains. For usage examples, see the AWS Control Tower User Guide

" + "EnableControl": "

This API call activates a control. It starts an asynchronous operation that creates AWS resources on the specified organizational unit and the accounts it contains. The resources created will vary according to the control that you specify. For usage examples, see the AWS Control Tower User Guide .

", + "GetControlOperation": "

Returns the status of a particular EnableControl or DisableControl operation. Displays a message in case of error. Details for an operation are available for 90 days. For usage examples, see the AWS Control Tower User Guide .

", + "GetEnabledControl": "

Retrieves details about an enabled control. For usage examples, see the AWS Control Tower User Guide .

", + "ListEnabledControls": "

Lists the controls enabled by AWS Control Tower on the specified organizational unit and the accounts it contains. For usage examples, see the AWS Control Tower User Guide .

", + "ListTagsForResource": "

Returns a list of tags associated with the resource. For usage examples, see the AWS Control Tower User Guide .

", + "TagResource": "

Applies tags to a resource. For usage examples, see the AWS Control Tower User Guide .

", + "UntagResource": "

Removes tags from a resource. For usage examples, see the AWS Control Tower User Guide .

" }, "shapes": { "AccessDeniedException": { @@ -17,9 +20,13 @@ "Arn": { "base": null, "refs": { - "EnabledControlDetails$arn": "

The ARN of the enabled control.

", - "EnabledControlSummary$arn": "

The ARN of the enabled control.

", - "GetEnabledControlInput$enabledControlIdentifier": "

The ARN of the enabled control.

" + "EnableControlOutput$arn": "

The ARN of the EnabledControl resource.

", + "EnabledControlDetails$arn": "

The ARN of the enabled control.

", + "EnabledControlSummary$arn": "

The ARN of the enabled control.

", + "GetEnabledControlInput$enabledControlIdentifier": "

The controlIdentifier of the enabled control.

", + "ListTagsForResourceInput$resourceArn": "

The ARN of the resource.

", + "TagResourceInput$resourceArn": "

The ARN of the resource to be tagged.

", + "UntagResourceInput$resourceArn": "

The ARN of the resource.

" } }, "ConflictException": { @@ -32,8 +39,8 @@ "refs": { "DisableControlInput$controlIdentifier": "

The ARN of the control. Only Strongly recommended and Elective controls are permitted, with the exception of the Region deny control. For information on how to find the controlIdentifier, see the overview page.

", "EnableControlInput$controlIdentifier": "

The ARN of the control. Only Strongly recommended and Elective controls are permitted, with the exception of the Region deny control. For information on how to find the controlIdentifier, see the overview page.

", - "EnabledControlDetails$controlIdentifier": "

The control identifier of the enabled control. For information on how to find the controlIdentifier, see the overview page.

", - "EnabledControlSummary$controlIdentifier": "

The ARN of the control. Only Strongly recommended and Elective controls are permitted, with the exception of the Region deny control. For information on how to find the controlIdentifier, see the overview page.

" + "EnabledControlDetails$controlIdentifier": "

The control identifier of the enabled control. For information on how to find the controlIdentifier, see the overview page.

", + "EnabledControlSummary$controlIdentifier": "

The controlIdentifier of the enabled control.

" } }, "ControlOperation": { @@ -73,8 +80,8 @@ "DriftStatusSummary": { "base": "

The drift summary of the enabled control.

AWS Control Tower expects the enabled control configuration to include all supported and governed Regions. If the enabled control differs from the expected configuration, it is defined to be in a state of drift. You can repair this drift by resetting the enabled control.

", "refs": { - "EnabledControlDetails$driftStatusSummary": "

The drift status of the enabled control.

", - "EnabledControlSummary$driftStatusSummary": "

The drift status of the enabled control.

" + "EnabledControlDetails$driftStatusSummary": "

The drift status of the enabled control.

", + "EnabledControlSummary$driftStatusSummary": "

The drift status of the enabled control.

" } }, "EnableControlInput": { @@ -88,13 +95,13 @@ } }, "EnabledControlDetails": { - "base": "

Information about the enabled control.

", + "base": "

Information about the enabled control.

", "refs": { - "GetEnabledControlOutput$enabledControlDetails": "

Information about the enabled control.

" + "GetEnabledControlOutput$enabledControlDetails": "

Information about the enabled control.

" } }, "EnabledControlSummary": { - "base": "

A summary of enabled controls.

", + "base": "

Returns a summary of information about an enabled control.

", "refs": { "EnabledControls$member": null } @@ -112,10 +119,10 @@ } }, "EnablementStatusSummary": { - "base": "

The deployment summary of the enabled control.

", + "base": "

The deployment summary of the enabled control.

", "refs": { - "EnabledControlDetails$statusSummary": "

The deployment summary of the enabled control.

", - "EnabledControlSummary$statusSummary": "" + "EnabledControlDetails$statusSummary": "

The deployment summary of the enabled control.

", + "EnabledControlSummary$statusSummary": "

A short description of the status of the enabled control.

" } }, "GetControlOperationInput": { @@ -159,6 +166,16 @@ "refs": { } }, + "ListTagsForResourceInput": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceOutput": { + "base": null, + "refs": { + } + }, "MaxResults": { "base": null, "refs": { @@ -170,7 +187,7 @@ "refs": { "DisableControlOutput$operationIdentifier": "

The ID of the asynchronous operation, which is used to track status. The operation is available for 90 days.

", "EnableControlOutput$operationIdentifier": "

The ID of the asynchronous operation, which is used to track status. The operation is available for 90 days.

", - "EnablementStatusSummary$lastOperationIdentifier": "

The last operation identifier for the enabled control.

", + "EnablementStatusSummary$lastOperationIdentifier": "

The last operation identifier for the enabled control.

", "GetControlOperationInput$operationIdentifier": "

The ID of the asynchronous operation, which is used to track status. The operation is available for 90 days.

" } }, @@ -183,7 +200,7 @@ "RegionName": { "base": null, "refs": { - "Region$name": "

The AWS Region name.

" + "Region$name": "

The AWS Region name.

" } }, "ResourceNotFoundException": { @@ -220,12 +237,49 @@ "ControlOperation$startTime": "

The time that the operation began.

" } }, + "TagKey": { + "base": null, + "refs": { + "TagKeys$member": null, + "TagMap$key": null + } + }, + "TagKeys": { + "base": null, + "refs": { + "UntagResourceInput$tagKeys": "

Tag keys to be removed from the resource.

" + } + }, + "TagMap": { + "base": null, + "refs": { + "EnableControlInput$tags": "

Tags to be applied to the EnabledControl resource.

", + "ListTagsForResourceOutput$tags": "

A list of tags, as key:value strings.

", + "TagResourceInput$tags": "

Tags to be applied to the resource.

" + } + }, + "TagResourceInput": { + "base": null, + "refs": { + } + }, + "TagResourceOutput": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "TagMap$value": null + } + }, "TargetIdentifier": { "base": null, "refs": { "DisableControlInput$targetIdentifier": "

The ARN of the organizational unit. For information on how to find the targetIdentifier, see the overview page.

", "EnableControlInput$targetIdentifier": "

The ARN of the organizational unit. For information on how to find the targetIdentifier, see the overview page.

", - "EnabledControlDetails$targetIdentifier": "

The ARN of the organizational unit. For information on how to find the targetIdentifier, see the overview page.

", + "EnabledControlDetails$targetIdentifier": "

The ARN of the organizational unit. For information on how to find the targetIdentifier, see the overview page.

", "EnabledControlSummary$targetIdentifier": "

The ARN of the organizational unit.

", "ListEnabledControlsInput$targetIdentifier": "

The ARN of the organizational unit. For information on how to find the targetIdentifier, see the overview page.

" } @@ -233,7 +287,7 @@ "TargetRegions": { "base": null, "refs": { - "EnabledControlDetails$targetRegions": "

Target AWS Regions for the enabled control.

" + "EnabledControlDetails$targetRegions": "

Target AWS Regions for the enabled control.

" } }, "ThrottlingException": { @@ -241,6 +295,16 @@ "refs": { } }, + "UntagResourceInput": { + "base": null, + "refs": { + } + }, + "UntagResourceOutput": { + "base": null, + "refs": { + } + }, "ValidationException": { "base": "

The input fails to satisfy the constraints specified by an AWS service.

", "refs": { diff --git a/models/apis/controltower/2018-05-10/endpoint-rule-set-1.json b/models/apis/controltower/2018-05-10/endpoint-rule-set-1.json index 88dcbe68ecd..78a42c1832e 100644 --- a/models/apis/controltower/2018-05-10/endpoint-rule-set-1.json +++ b/models/apis/controltower/2018-05-10/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/models/apis/controltower/2018-05-10/endpoint-tests-1.json b/models/apis/controltower/2018-05-10/endpoint-tests-1.json index 592037b78a1..b5e526bdf11 100644 --- a/models/apis/controltower/2018-05-10/endpoint-tests-1.json +++ b/models/apis/controltower/2018-05-10/endpoint-tests-1.json @@ -529,6 +529,17 @@ "expect": { "error": "Invalid Configuration: Missing Region" } + }, + { + "documentation": "Partition doesn't support DualStack", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } } ], "version": "1.0" diff --git a/models/apis/cur/2017-01-06/api-2.json b/models/apis/cur/2017-01-06/api-2.json index 70f4f417ff7..f10eaaf8872 100644 --- a/models/apis/cur/2017-01-06/api-2.json +++ b/models/apis/cur/2017-01-06/api-2.json @@ -38,6 +38,20 @@ {"shape":"InternalErrorException"} ] }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalErrorException"}, + {"shape":"ValidationException"} + ] + }, "ModifyReportDefinition":{ "name":"ModifyReportDefinition", "http":{ @@ -63,6 +77,35 @@ {"shape":"DuplicateReportNameException"}, {"shape":"ReportLimitReachedException"}, {"shape":"InternalErrorException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalErrorException"}, + {"shape":"ValidationException"} + ] + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalErrorException"}, {"shape":"ValidationException"} ] } @@ -128,6 +171,7 @@ }, "DeleteReportDefinitionRequest":{ "type":"structure", + "required":["ReportName"], "members":{ "ReportName":{"shape":"ReportName"} } @@ -174,6 +218,33 @@ "exception":true, "fault":true }, + "LastDelivery":{ + "type":"string", + "max":20, + "min":16, + "pattern":"[0-9]{8}[T][0-9]{6}([Z]|[+-][0-9]{4})" + }, + "LastStatus":{ + "type":"string", + "enum":[ + "SUCCESS", + "ERROR_PERMISSIONS", + "ERROR_NO_BUCKET" + ] + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ReportName"], + "members":{ + "ReportName":{"shape":"ReportName"} + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "Tags":{"shape":"TagList"} + } + }, "MaxResults":{ "type":"integer", "box":true, @@ -200,7 +271,8 @@ "type":"structure", "required":["ReportDefinition"], "members":{ - "ReportDefinition":{"shape":"ReportDefinition"} + "ReportDefinition":{"shape":"ReportDefinition"}, + "Tags":{"shape":"TagList"} } }, "PutReportDefinitionResponse":{ @@ -236,7 +308,8 @@ "AdditionalArtifacts":{"shape":"AdditionalArtifactList"}, "RefreshClosedReports":{"shape":"RefreshClosedReports"}, "ReportVersioning":{"shape":"ReportVersioning"}, - "BillingViewArn":{"shape":"BillingViewArn"} + "BillingViewArn":{"shape":"BillingViewArn"}, + "ReportStatus":{"shape":"ReportStatus"} } }, "ReportDefinitionList":{ @@ -262,6 +335,13 @@ "max":256, "pattern":"[0-9A-Za-z!\\-_.*\\'()]+" }, + "ReportStatus":{ + "type":"structure", + "members":{ + "lastDelivery":{"shape":"LastDelivery"}, + "lastStatus":{"shape":"LastStatus"} + } + }, "ReportVersioning":{ "type":"string", "enum":[ @@ -269,6 +349,13 @@ "OVERWRITE_REPORT" ] }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, "S3Bucket":{ "type":"string", "max":256, @@ -283,13 +370,65 @@ "type":"string", "enum":[ "RESOURCES", - "SPLIT_COST_ALLOCATION_DATA" + "SPLIT_COST_ALLOCATION_DATA", + "MANUAL_DISCOUNT_COMPATIBILITY" ] }, "SchemaElementList":{ "type":"list", "member":{"shape":"SchemaElement"} }, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{"shape":"TagKey"}, + "Value":{"shape":"TagValue"} + } + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":".*" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":200, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "ReportName", + "Tags" + ], + "members":{ + "ReportName":{"shape":"ReportName"}, + "Tags":{"shape":"TagList"} + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0, + "pattern":".*" + }, "TimeUnit":{ "type":"string", "enum":[ @@ -298,6 +437,22 @@ "MONTHLY" ] }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ReportName", + "TagKeys" + ], + "members":{ + "ReportName":{"shape":"ReportName"}, + "TagKeys":{"shape":"TagKeyList"} + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, "ValidationException":{ "type":"structure", "members":{ diff --git a/models/apis/cur/2017-01-06/docs-2.json b/models/apis/cur/2017-01-06/docs-2.json index e10641f795a..d74b3e7aabe 100644 --- a/models/apis/cur/2017-01-06/docs-2.json +++ b/models/apis/cur/2017-01-06/docs-2.json @@ -1,21 +1,24 @@ { "version": "2.0", - "service": "

The AWS Cost and Usage Report API enables you to programmatically create, query, and delete AWS Cost and Usage report definitions.

AWS Cost and Usage reports track the monthly AWS costs and usage associated with your AWS account. The report contains line items for each unique combination of AWS product, usage type, and operation that your AWS account uses. You can configure the AWS Cost and Usage report to show only the data that you want, using the AWS Cost and Usage API.

Service Endpoint

The AWS Cost and Usage Report API provides the following endpoint:

", + "service": "

You can use the Amazon Web Services Cost and Usage Report API to programmatically create, query, and delete Amazon Web Services Cost and Usage Report definitions.

Amazon Web Services Cost and Usage Report track the monthly Amazon Web Services costs and usage associated with your Amazon Web Services account. The report contains line items for each unique combination of Amazon Web Services product, usage type, and operation that your Amazon Web Services account uses. You can configure the Amazon Web Services Cost and Usage Report to show only the data that you want, using the Amazon Web Services Cost and Usage Report API.

Service Endpoint

The Amazon Web Services Cost and Usage Report API provides the following endpoint:

", "operations": { - "DeleteReportDefinition": "

Deletes the specified report.

", - "DescribeReportDefinitions": "

Lists the AWS Cost and Usage reports available to this account.

", - "ModifyReportDefinition": "

Allows you to programatically update your report preferences.

", - "PutReportDefinition": "

Creates a new report using the description that you provide.

" + "DeleteReportDefinition": "

Deletes the specified report. Any tags associated with the report are also deleted.

", + "DescribeReportDefinitions": "

Lists the Amazon Web Services Cost and Usage Report available to this account.

", + "ListTagsForResource": "

Lists the tags associated with the specified report definition.

", + "ModifyReportDefinition": "

Allows you to programmatically update your report preferences.

", + "PutReportDefinition": "

Creates a new report using the description that you provide.

", + "TagResource": "

Associates a set of tags with a report definition.

", + "UntagResource": "

Disassociates a set of tags from a report definition.

" }, "shapes": { "AWSRegion": { - "base": "

The region of the S3 bucket that AWS delivers the report into.

", + "base": "

The region of the S3 bucket that Amazon Web Services delivers the report into.

", "refs": { "ReportDefinition$S3Region": null } }, "AdditionalArtifact": { - "base": "

The types of manifest that you want AWS to create for this report.

", + "base": "

The types of manifest that you want Amazon Web Services to create for this report.

", "refs": { "AdditionalArtifactList$member": null } @@ -29,11 +32,11 @@ "BillingViewArn": { "base": null, "refs": { - "ReportDefinition$BillingViewArn": "

The Amazon resource name of the billing view. You can get this value by using the billing view service public APIs.

" + "ReportDefinition$BillingViewArn": "

The Amazon resource name of the billing view. The BillingViewArn is needed to create Amazon Web Services Cost and Usage Report for each billing group maintained in the Amazon Web Services Billing Conductor service. The BillingViewArn for a billing group can be constructed as: arn:aws:billing::payer-account-id:billingview/billing-group-primary-account-id

" } }, "CompressionFormat": { - "base": "

The compression format that AWS uses for the report.

", + "base": "

The compression format that Amazon Web Services uses for the report.

", "refs": { "ReportDefinition$Compression": null } @@ -55,7 +58,7 @@ } }, "DescribeReportDefinitionsRequest": { - "base": "

Requests a list of AWS Cost and Usage reports owned by the account.

", + "base": "

Requests a Amazon Web Services Cost and Usage Report list owned by the account.

", "refs": { } }, @@ -75,6 +78,7 @@ "DuplicateReportNameException$Message": null, "InternalErrorException$Message": null, "ReportLimitReachedException$Message": null, + "ResourceNotFoundException$Message": null, "ValidationException$Message": null } }, @@ -90,8 +94,30 @@ "refs": { } }, + "LastDelivery": { + "base": null, + "refs": { + "ReportStatus$lastDelivery": "

A timestamp that gives the date of a report delivery.

" + } + }, + "LastStatus": { + "base": null, + "refs": { + "ReportStatus$lastStatus": "

An enum that gives the status of a report delivery.

" + } + }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": null, + "refs": { + } + }, "MaxResults": { - "base": "

The maximum number of results that AWS returns for the operation.

", + "base": "

The maximum number of results that Amazon Web Services returns for the operation.

", "refs": { "DescribeReportDefinitionsRequest$MaxResults": null } @@ -123,7 +149,7 @@ } }, "ReportDefinition": { - "base": "

The definition of AWS Cost and Usage Report. You can specify the report name, time unit, report format, compression format, S3 bucket, additional artifacts, and schema elements in the definition.

", + "base": "

The definition of Amazon Web Services Cost and Usage Report. You can specify the report name, time unit, report format, compression format, S3 bucket, additional artifacts, and schema elements in the definition.

", "refs": { "ModifyReportDefinitionRequest$ReportDefinition": null, "PutReportDefinitionRequest$ReportDefinition": "

Represents the output of the PutReportDefinition operation. The content consists of the detailed metadata and data file information.

", @@ -133,11 +159,11 @@ "ReportDefinitionList": { "base": "

A list of report definitions.

", "refs": { - "DescribeReportDefinitionsResponse$ReportDefinitions": "

A list of AWS Cost and Usage reports owned by the account.

" + "DescribeReportDefinitionsResponse$ReportDefinitions": "

An Amazon Web Services Cost and Usage Report list owned by the account.

" } }, "ReportFormat": { - "base": "

The format that AWS saves the report in.

", + "base": "

The format that Amazon Web Services saves the report in.

", "refs": { "ReportDefinition$Format": null } @@ -151,8 +177,17 @@ "base": "

The name of the report that you want to create. The name must be unique, is case sensitive, and can't include spaces.

", "refs": { "DeleteReportDefinitionRequest$ReportName": "

The name of the report that you want to delete. The name must be unique, is case sensitive, and can't include spaces.

", + "ListTagsForResourceRequest$ReportName": "

The report name of the report definition that tags are to be returned for.

", "ModifyReportDefinitionRequest$ReportName": null, - "ReportDefinition$ReportName": null + "ReportDefinition$ReportName": null, + "TagResourceRequest$ReportName": "

The report name of the report definition that tags are to be associated with.

", + "UntagResourceRequest$ReportName": "

The report name of the report definition that tags are to be disassociated from.

" + } + }, + "ReportStatus": { + "base": "

A two element dictionary with a lastDelivery and lastStatus key whose values describe the date and status of the last delivered report for a particular report definition.

", + "refs": { + "ReportDefinition$ReportStatus": "

The status of the report.

" } }, "ReportVersioning": { @@ -161,20 +196,25 @@ "ReportDefinition$ReportVersioning": "

Whether you want Amazon Web Services to overwrite the previous version of each report or to deliver the report in addition to the previous versions.

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

The specified report (ReportName) in the request doesn't exist.

", + "refs": { + } + }, "S3Bucket": { - "base": "

The S3 bucket where AWS delivers the report.

", + "base": "

The S3 bucket where Amazon Web Services delivers the report.

", "refs": { "ReportDefinition$S3Bucket": null } }, "S3Prefix": { - "base": "

The prefix that AWS adds to the report name when AWS delivers the report. Your prefix can't include spaces.

", + "base": "

The prefix that Amazon Web Services adds to the report name when Amazon Web Services delivers the report. Your prefix can't include spaces.

", "refs": { "ReportDefinition$S3Prefix": null } }, "SchemaElement": { - "base": "

Whether or not AWS includes resource IDs in the report.

", + "base": "

Whether or not Amazon Web Services includes resource IDs in the report.

", "refs": { "SchemaElementList$member": null } @@ -185,14 +225,67 @@ "ReportDefinition$AdditionalSchemaElements": "

A list of strings that indicate additional content that Amazon Web Services includes in the report, such as individual resource IDs.

" } }, + "Tag": { + "base": "

Describes a tag. A tag is a key-value pair. You can add up to 50 tags to a report definition.

", + "refs": { + "TagList$member": null + } + }, + "TagKey": { + "base": null, + "refs": { + "Tag$Key": "

The key of the tag. Tag keys are case sensitive. Each report definition can only have up to one tag with the same key. If you try to add an existing tag with the same key, the existing tag value will be updated to the new value.

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

The tags to be disassociated from the report definition resource.

" + } + }, + "TagList": { + "base": null, + "refs": { + "ListTagsForResourceResponse$Tags": "

The tags assigned to the report definition resource.

", + "PutReportDefinitionRequest$Tags": "

The tags to be assigned to the report definition resource.

", + "TagResourceRequest$Tags": "

The tags to be assigned to the report definition resource.

" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResponse": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "Tag$Value": "

The value of the tag. Tag values are case-sensitive. This can be an empty string.

" + } + }, "TimeUnit": { "base": "

The length of time covered by the report.

", "refs": { "ReportDefinition$TimeUnit": null } }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResponse": { + "base": null, + "refs": { + } + }, "ValidationException": { - "base": "

The input fails to satisfy the constraints specified by an AWS service.

", + "base": "

The input fails to satisfy the constraints specified by an Amazon Web Services service.

", "refs": { } } diff --git a/models/apis/cur/2017-01-06/endpoint-rule-set-1.json b/models/apis/cur/2017-01-06/endpoint-rule-set-1.json index a917d0c9310..77ce4034ffe 100644 --- a/models/apis/cur/2017-01-06/endpoint-rule-set-1.json +++ b/models/apis/cur/2017-01-06/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -58,293 +57,258 @@ "type": "error" }, { - "conditions": [], - "type": "tree", - "rules": [ + "conditions": [ { - "conditions": [ + "fn": "booleanEquals", + "argv": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" + "ref": "UseDualStack" }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + true + ] } - ] + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] + ], + "type": "tree" }, { - "conditions": [], - "type": "tree", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "aws.partition", "argv": [ { "ref": "Region" } - ] + ], + "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ { - "fn": "aws.partition", + "fn": "booleanEquals", "argv": [ { - "ref": "Region" - } - ], - "assign": "PartitionResult" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] }, { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://cur-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, + } + ], + "rules": [ { "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" + "endpoint": { + "url": "https://cur-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] + ], + "type": "tree" }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] }, true ] } ], - "type": "tree", "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://cur-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - } - ] - }, { "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" + "endpoint": { + "url": "https://cur-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] + ], + "type": "tree" }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://cur.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } - ] - }, - { - "conditions": [], - "type": "tree", + ], "rules": [ { "conditions": [], "endpoint": { - "url": "https://cur.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://cur.{Region}.{PartitionResult#dualStackDnsSuffix}", "properties": {}, "headers": {} }, "type": "endpoint" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cur.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "type": "error" + ], + "type": "tree" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } \ No newline at end of file diff --git a/models/apis/ec2/2016-11-15/api-2.json b/models/apis/ec2/2016-11-15/api-2.json index fd6c83c6bcd..9d6adf9a76c 100755 --- a/models/apis/ec2/2016-11-15/api-2.json +++ b/models/apis/ec2/2016-11-15/api-2.json @@ -20653,6 +20653,13 @@ "EnaSrdUdpSpecification":{"shape":"EnaSrdUdpSpecification"} } }, + "EnaSrdSpecificationRequest":{ + "type":"structure", + "members":{ + "EnaSrdEnabled":{"shape":"Boolean"}, + "EnaSrdUdpSpecification":{"shape":"EnaSrdUdpSpecificationRequest"} + } + }, "EnaSrdSupported":{"type":"boolean"}, "EnaSrdUdpSpecification":{ "type":"structure", @@ -20660,6 +20667,12 @@ "EnaSrdUdpEnabled":{"shape":"Boolean"} } }, + "EnaSrdUdpSpecificationRequest":{ + "type":"structure", + "members":{ + "EnaSrdUdpEnabled":{"shape":"Boolean"} + } + }, "EnaSupport":{ "type":"string", "enum":[ @@ -25729,6 +25742,28 @@ } } }, + "InstanceAttachmentEnaSrdSpecification":{ + "type":"structure", + "members":{ + "EnaSrdEnabled":{ + "shape":"Boolean", + "locationName":"enaSrdEnabled" + }, + "EnaSrdUdpSpecification":{ + "shape":"InstanceAttachmentEnaSrdUdpSpecification", + "locationName":"enaSrdUdpSpecification" + } + } + }, + "InstanceAttachmentEnaSrdUdpSpecification":{ + "type":"structure", + "members":{ + "EnaSrdUdpEnabled":{ + "shape":"Boolean", + "locationName":"enaSrdUdpEnabled" + } + } + }, "InstanceAttribute":{ "type":"structure", "members":{ @@ -26551,6 +26586,10 @@ "NetworkCardIndex":{ "shape":"Integer", "locationName":"networkCardIndex" + }, + "EnaSrdSpecification":{ + "shape":"InstanceAttachmentEnaSrdSpecification", + "locationName":"enaSrdSpecification" } } }, @@ -26627,7 +26666,8 @@ "locationName":"Ipv6Prefix" }, "Ipv6PrefixCount":{"shape":"Integer"}, - "PrimaryIpv6":{"shape":"Boolean"} + "PrimaryIpv6":{"shape":"Boolean"}, + "EnaSrdSpecification":{"shape":"EnaSrdSpecificationRequest"} } }, "InstanceNetworkInterfaceSpecificationList":{ @@ -29797,6 +29837,28 @@ "locationName":"item" } }, + "LaunchTemplateEnaSrdSpecification":{ + "type":"structure", + "members":{ + "EnaSrdEnabled":{ + "shape":"Boolean", + "locationName":"enaSrdEnabled" + }, + "EnaSrdUdpSpecification":{ + "shape":"LaunchTemplateEnaSrdUdpSpecification", + "locationName":"enaSrdUdpSpecification" + } + } + }, + "LaunchTemplateEnaSrdUdpSpecification":{ + "type":"structure", + "members":{ + "EnaSrdUdpEnabled":{ + "shape":"Boolean", + "locationName":"enaSrdUdpEnabled" + } + } + }, "LaunchTemplateEnclaveOptions":{ "type":"structure", "members":{ @@ -30057,6 +30119,10 @@ "PrimaryIpv6":{ "shape":"Boolean", "locationName":"primaryIpv6" + }, + "EnaSrdSpecification":{ + "shape":"LaunchTemplateEnaSrdSpecification", + "locationName":"enaSrdSpecification" } } }, @@ -30098,7 +30164,8 @@ "locationName":"Ipv6Prefix" }, "Ipv6PrefixCount":{"shape":"Integer"}, - "PrimaryIpv6":{"shape":"Boolean"} + "PrimaryIpv6":{"shape":"Boolean"}, + "EnaSrdSpecification":{"shape":"EnaSrdSpecificationRequest"} } }, "LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList":{ diff --git a/models/apis/ec2/2016-11-15/docs-2.json b/models/apis/ec2/2016-11-15/docs-2.json index 7f2e7eb75cf..92e4017a3e2 100755 --- a/models/apis/ec2/2016-11-15/docs-2.json +++ b/models/apis/ec2/2016-11-15/docs-2.json @@ -1566,15 +1566,15 @@ } }, "AttachmentEnaSrdSpecification": { - "base": "

Describes the ENA Express configuration for the network interface that's attached to the instance.

", + "base": "

ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to increase the maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. With ENA Express, you can communicate between two EC2 instances in the same subnet within the same account, or in different accounts. Both sending and receiving instances must have ENA Express enabled.

To improve the reliability of network packet delivery, ENA Express reorders network packets on the receiving end by default. However, some UDP-based applications are designed to handle network packets that are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express is enabled, you can specify whether UDP network traffic uses it.

", "refs": { "NetworkInterfaceAttachment$EnaSrdSpecification": "

Configures ENA Express for the network interface that this action attaches to the instance.

" } }, "AttachmentEnaSrdUdpSpecification": { - "base": "

Describes the ENA Express configuration for UDP traffic on the network interface that's attached to the instance.

", + "base": "

ENA Express is compatible with both TCP and UDP transport protocols. When it's enabled, TCP traffic automatically uses it. However, some UDP-based applications are designed to handle network packets that are out of order, without a need for retransmission, such as live video broadcasting or other near-real-time applications. For UDP traffic, you can specify whether to use ENA Express, based on your application environment needs.

", "refs": { - "AttachmentEnaSrdSpecification$EnaSrdUdpSpecification": "

ENA Express configuration for UDP network traffic.

" + "AttachmentEnaSrdSpecification$EnaSrdUdpSpecification": "

Configures ENA Express for UDP network traffic.

" } }, "AttachmentStatus": { @@ -1937,7 +1937,7 @@ "AttachVerifiedAccessTrustProviderRequest$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.

", "AttachVolumeRequest$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.

", "AttachVpnGatewayRequest$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.

", - "AttachmentEnaSrdSpecification$EnaSrdEnabled": "

Indicates whether ENA Express is enabled for the network interface that's attached to the instance.

", + "AttachmentEnaSrdSpecification$EnaSrdEnabled": "

Indicates whether ENA Express is enabled for the network interface.

", "AttachmentEnaSrdUdpSpecification$EnaSrdUdpEnabled": "

Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, you must first enable ENA Express.

", "AttributeBooleanValue$Value": "

The attribute value. The valid values are true or false.

", "AuthorizationRule$AccessAll": "

Indicates whether the authorization rule grants access to all clients.

", @@ -2375,7 +2375,9 @@ "EbsInstanceBlockDeviceSpecification$DeleteOnTermination": "

Indicates whether the volume is deleted on instance termination.

", "Ec2InstanceConnectEndpoint$PreserveClientIp": "

Indicates whether your client's IP address is preserved as the source. The value is true or false.

Default: true

", "EnaSrdSpecification$EnaSrdEnabled": "

Indicates whether ENA Express is enabled for the network interface.

", - "EnaSrdUdpSpecification$EnaSrdUdpEnabled": "

Indicates whether UDP traffic uses ENA Express. To specify this setting, you must first enable ENA Express.

", + "EnaSrdSpecificationRequest$EnaSrdEnabled": "

Specifies whether ENA Express is enabled for the network interface when you launch an instance from your launch template.

", + "EnaSrdUdpSpecification$EnaSrdUdpEnabled": "

Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, you must first enable ENA Express.

", + "EnaSrdUdpSpecificationRequest$EnaSrdUdpEnabled": "

Indicates whether UDP traffic uses ENA Express for your instance. To ensure that UDP traffic can use ENA Express when you launch an instance, you must also set EnaSrdEnabled in the EnaSrdSpecificationRequest to true in your launch template.

", "EnableAddressTransferRequest$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.

", "EnableAwsNetworkPerformanceMetricSubscriptionRequest$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.

", "EnableAwsNetworkPerformanceMetricSubscriptionResult$Output": "

Indicates whether the subscribe action was successful.

", @@ -2486,6 +2488,8 @@ "Instance$EbsOptimized": "

Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

", "Instance$EnaSupport": "

Specifies whether enhanced networking with ENA is enabled.

", "Instance$SourceDestCheck": "

Indicates whether source/destination checking is enabled.

", + "InstanceAttachmentEnaSrdSpecification$EnaSrdEnabled": "

Indicates whether ENA Express is enabled for the network interface.

", + "InstanceAttachmentEnaSrdUdpSpecification$EnaSrdUdpEnabled": "

Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, you must first enable ENA Express.

", "InstanceIpv6Address$IsPrimaryIpv6": "

Determines if an IPv6 address associated with a network interface is the primary IPv6 address. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. For more information, see RunInstances.

", "InstanceNetworkInterface$SourceDestCheck": "

Indicates whether source/destination checking is enabled.

", "InstanceNetworkInterfaceAttachment$DeleteOnTermination": "

Indicates whether the network interface is deleted when the instance is terminated.

", @@ -2508,6 +2512,8 @@ "LaunchTemplateEbsBlockDevice$DeleteOnTermination": "

Indicates whether the EBS volume is deleted on instance termination.

", "LaunchTemplateEbsBlockDeviceRequest$Encrypted": "

Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached to instances that support Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an encryption value.

", "LaunchTemplateEbsBlockDeviceRequest$DeleteOnTermination": "

Indicates whether the EBS volume is deleted on instance termination.

", + "LaunchTemplateEnaSrdSpecification$EnaSrdEnabled": "

Indicates whether ENA Express is enabled for the network interface.

", + "LaunchTemplateEnaSrdUdpSpecification$EnaSrdUdpEnabled": "

Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, you must first enable ENA Express.

", "LaunchTemplateEnclaveOptions$Enabled": "

If this parameter is set to true, the instance is enabled for Amazon Web Services Nitro Enclaves; otherwise, it is not enabled for Amazon Web Services Nitro Enclaves.

", "LaunchTemplateEnclaveOptionsRequest$Enabled": "

To enable the instance for Amazon Web Services Nitro Enclaves, set this parameter to true.

", "LaunchTemplateHibernationOptions$Configured": "

If this parameter is set to true, the instance is enabled for hibernation; otherwise, it is not enabled for hibernation.

", @@ -8599,6 +8605,13 @@ "ModifyNetworkInterfaceAttributeRequest$EnaSrdSpecification": "

Updates the ENA Express configuration for the network interface that’s attached to the instance.

" } }, + "EnaSrdSpecificationRequest": { + "base": "

Launch instances with ENA Express settings configured from your launch template.

", + "refs": { + "InstanceNetworkInterfaceSpecification$EnaSrdSpecification": "

Specifies the ENA Express settings for the network interface that's attached to the instance.

", + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest$EnaSrdSpecification": "

Configure ENA Express settings for your launch template.

" + } + }, "EnaSrdSupported": { "base": null, "refs": { @@ -8606,11 +8619,17 @@ } }, "EnaSrdUdpSpecification": { - "base": "

ENA Express is compatible with both TCP and UDP transport protocols. When it’s enabled, TCP traffic automatically uses it. However, some UDP-based applications are designed to handle network packets that are out of order, without a need for retransmission, such as live video broadcasting or other near-real-time applications. For UDP traffic, you can specify whether to use ENA Express, based on your application environment needs.

", + "base": "

ENA Express is compatible with both TCP and UDP transport protocols. When it's enabled, TCP traffic automatically uses it. However, some UDP-based applications are designed to handle network packets that are out of order, without a need for retransmission, such as live video broadcasting or other near-real-time applications. For UDP traffic, you can specify whether to use ENA Express, based on your application environment needs.

", "refs": { "EnaSrdSpecification$EnaSrdUdpSpecification": "

Configures ENA Express for UDP network traffic.

" } }, + "EnaSrdUdpSpecificationRequest": { + "base": "

Configures ENA Express for UDP network traffic from your launch template.

", + "refs": { + "EnaSrdSpecificationRequest$EnaSrdUdpSpecification": "

Contains ENA Express settings for UDP network traffic in your launch template.

" + } + }, "EnaSupport": { "base": null, "refs": { @@ -9198,7 +9217,7 @@ "DescribeInstanceStatusRequest$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.

", + "DescribeInstancesRequest$Filters": "

The filters.

", "DescribeInternetGatewaysRequest$Filters": "

The filters.

", "DescribeIpamPoolsRequest$Filters": "

One or more filters for the request. For more information about filtering, see Filtering CLI output.

", "DescribeIpamResourceDiscoveriesRequest$Filters": "

The resource discovery filters.

", @@ -10938,6 +10957,18 @@ "InstanceList$member": null } }, + "InstanceAttachmentEnaSrdSpecification": { + "base": "

ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to increase the maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. With ENA Express, you can communicate between two EC2 instances in the same subnet within the same account, or in different accounts. Both sending and receiving instances must have ENA Express enabled.

To improve the reliability of network packet delivery, ENA Express reorders network packets on the receiving end by default. However, some UDP-based applications are designed to handle network packets that are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express is enabled, you can specify whether UDP network traffic uses it.

", + "refs": { + "InstanceNetworkInterfaceAttachment$EnaSrdSpecification": "

Contains the ENA Express settings for the network interface that's attached to the instance.

" + } + }, + "InstanceAttachmentEnaSrdUdpSpecification": { + "base": "

ENA Express is compatible with both TCP and UDP transport protocols. When it's enabled, TCP traffic automatically uses it. However, some UDP-based applications are designed to handle network packets that are out of order, without a need for retransmission, such as live video broadcasting or other near-real-time applications. For UDP traffic, you can specify whether to use ENA Express, based on your application environment needs.

", + "refs": { + "InstanceAttachmentEnaSrdSpecification$EnaSrdUdpSpecification": "

Configures ENA Express for UDP network traffic.

" + } + }, "InstanceAttribute": { "base": "

Describes an instance attribute.

", "refs": { @@ -13138,6 +13169,18 @@ "ResponseLaunchTemplateData$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.

You cannot specify accelerators from different generations in the same request.

Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.

" } }, + "LaunchTemplateEnaSrdSpecification": { + "base": "

ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to increase the maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. With ENA Express, you can communicate between two EC2 instances in the same subnet within the same account, or in different accounts. Both sending and receiving instances must have ENA Express enabled.

To improve the reliability of network packet delivery, ENA Express reorders network packets on the receiving end by default. However, some UDP-based applications are designed to handle network packets that are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express is enabled, you can specify whether UDP network traffic uses it.

", + "refs": { + "LaunchTemplateInstanceNetworkInterfaceSpecification$EnaSrdSpecification": "

Contains the ENA Express settings for instances launched from your launch template.

" + } + }, + "LaunchTemplateEnaSrdUdpSpecification": { + "base": "

ENA Express is compatible with both TCP and UDP transport protocols. When it's enabled, TCP traffic automatically uses it. However, some UDP-based applications are designed to handle network packets that are out of order, without a need for retransmission, such as live video broadcasting or other near-real-time applications. For UDP traffic, you can specify whether to use ENA Express, based on your application environment needs.

", + "refs": { + "LaunchTemplateEnaSrdSpecification$EnaSrdUdpSpecification": "

Configures ENA Express for UDP network traffic.

" + } + }, "LaunchTemplateEnclaveOptions": { "base": "

Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves.

", "refs": { @@ -17253,7 +17296,7 @@ "base": null, "refs": { "LaunchTemplateTagSpecification$ResourceType": "

The type of resource to tag.

", - "LaunchTemplateTagSpecificationRequest$ResourceType": "

The type of resource to tag.

Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: instance | volume | elastic-gpu | network-interface | spot-instances-request. If the instance does include the resource type that you specify, the instance launch fails. For example, not all instance types include an Elastic GPU.

To tag a resource after it has been created, see CreateTags.

", + "LaunchTemplateTagSpecificationRequest$ResourceType": "

The type of resource to tag.

Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: instance | volume | elastic-gpu | network-interface | spot-instances-request. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include an Elastic GPU.

To tag a resource after it has been created, see CreateTags.

", "SpotFleetTagSpecification$ResourceType": "

The type of resource. Currently, the only resource type that is supported is instance. To tag the Spot Fleet request on creation, use the TagSpecifications parameter in SpotFleetRequestConfigData .

", "TagDescription$ResourceType": "

The resource type.

", "TagSpecification$ResourceType": "

The type of resource to tag on creation.

" @@ -17840,7 +17883,7 @@ "InstanceNetworkInterfaceSpecification$Groups": "

The IDs of the security groups for the network interface. Applies only if creating a network interface when launching an instance.

", "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest$Groups": "

The IDs of one or more security groups.

", "ModifyNetworkInterfaceAttributeRequest$Groups": "

Changes the security groups for the network interface. The new set of groups you specify replaces the current set. You must specify at least one group, even if it's just the default security group in the VPC. You must specify the ID of the security group, not the name.

", - "RequestLaunchTemplateData$SecurityGroupIds": "

One or more security group IDs. You can create a security group using CreateSecurityGroup. You cannot specify both a security group ID and security name in the same request.

", + "RequestLaunchTemplateData$SecurityGroupIds": "

One or more security group IDs. You can create a security group using CreateSecurityGroup.

", "RunInstancesRequest$SecurityGroupIds": "

The IDs of the security groups. You can create a security group using CreateSecurityGroup.

If you specify a network interface, you must specify any security groups as part of the network interface.

" } }, @@ -17950,7 +17993,7 @@ "base": null, "refs": { "ImportInstanceLaunchSpecification$GroupNames": "

The security group names.

", - "RequestLaunchTemplateData$SecurityGroups": "

One or more security group names. For a nondefault VPC, you must use security group IDs instead. You cannot specify both a security group ID and security name in the same request.

", + "RequestLaunchTemplateData$SecurityGroups": "

One or more security group names. For a nondefault VPC, you must use security group IDs instead.

", "RunInstancesRequest$SecurityGroups": "

[Default VPC] The names of the security groups.

If you specify a network interface, you must specify any security groups as part of the network interface.

Default: Amazon EC2 uses the default security group.

" } }, diff --git a/models/apis/entitlement.marketplace/2017-01-11/api-2.json b/models/apis/entitlement.marketplace/2017-01-11/api-2.json index 967a2c789d6..3488d5e6966 100644 --- a/models/apis/entitlement.marketplace/2017-01-11/api-2.json +++ b/models/apis/entitlement.marketplace/2017-01-11/api-2.json @@ -81,7 +81,7 @@ "ProductCode":{"shape":"ProductCode"}, "Filter":{"shape":"GetEntitlementFilters"}, "NextToken":{"shape":"NonEmptyString"}, - "MaxResults":{"shape":"Integer"} + "MaxResults":{"shape":"PageSizeInteger"} } }, "GetEntitlementsResult":{ @@ -111,6 +111,11 @@ "type":"string", "pattern":"\\S+" }, + "PageSizeInteger":{ + "type":"integer", + "max":25, + "min":1 + }, "ProductCode":{ "type":"string", "max":255, diff --git a/models/apis/entitlement.marketplace/2017-01-11/docs-2.json b/models/apis/entitlement.marketplace/2017-01-11/docs-2.json index 8edbaf96b7b..5455476167a 100644 --- a/models/apis/entitlement.marketplace/2017-01-11/docs-2.json +++ b/models/apis/entitlement.marketplace/2017-01-11/docs-2.json @@ -80,8 +80,7 @@ "Integer": { "base": null, "refs": { - "EntitlementValue$IntegerValue": "

The IntegerValue field will be populated with an integer value when the entitlement is an integer type. Otherwise, the field will not be set.

", - "GetEntitlementsRequest$MaxResults": "

The maximum number of items to retrieve from the GetEntitlements operation. For pagination, use the NextToken field in subsequent calls to GetEntitlements.

" + "EntitlementValue$IntegerValue": "

The IntegerValue field will be populated with an integer value when the entitlement is an integer type. Otherwise, the field will not be set.

" } }, "InternalServiceErrorException": { @@ -103,6 +102,12 @@ "GetEntitlementsResult$NextToken": "

For paginated results, use NextToken in subsequent calls to GetEntitlements. If the result contains an empty set of entitlements, NextToken might still be present and should be used.

" } }, + "PageSizeInteger": { + "base": null, + "refs": { + "GetEntitlementsRequest$MaxResults": "

The maximum number of items to retrieve from the GetEntitlements operation. For pagination, use the NextToken field in subsequent calls to GetEntitlements.

" + } + }, "ProductCode": { "base": null, "refs": { diff --git a/models/apis/entitlement.marketplace/2017-01-11/endpoint-rule-set-1.json b/models/apis/entitlement.marketplace/2017-01-11/endpoint-rule-set-1.json new file mode 100644 index 00000000000..e91f63bfb7c --- /dev/null +++ b/models/apis/entitlement.marketplace/2017-01-11/endpoint-rule-set-1.json @@ -0,0 +1,339 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://entitlement.marketplace-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://entitlement.marketplace-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://entitlement.marketplace.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://entitlement.marketplace.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://entitlement.marketplace.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] +} \ No newline at end of file diff --git a/models/apis/entitlement.marketplace/2017-01-11/endpoint-tests-1.json b/models/apis/entitlement.marketplace/2017-01-11/endpoint-tests-1.json new file mode 100644 index 00000000000..e813b500d78 --- /dev/null +++ b/models/apis/entitlement.marketplace/2017-01-11/endpoint-tests-1.json @@ -0,0 +1,314 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/entitlement.marketplace/2017-01-11/paginators-1.json b/models/apis/entitlement.marketplace/2017-01-11/paginators-1.json index 5677bd8e4a2..9f6495ae9c8 100644 --- a/models/apis/entitlement.marketplace/2017-01-11/paginators-1.json +++ b/models/apis/entitlement.marketplace/2017-01-11/paginators-1.json @@ -1,4 +1,9 @@ { "pagination": { + "GetEntitlements": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } } } diff --git a/models/apis/fms/2018-01-01/docs-2.json b/models/apis/fms/2018-01-01/docs-2.json index 66e428ba17c..7d1dd61e24c 100644 --- a/models/apis/fms/2018-01-01/docs-2.json +++ b/models/apis/fms/2018-01-01/docs-2.json @@ -39,7 +39,7 @@ "PutAdminAccount": "

Creates or updates an Firewall Manager administrator account. The account must be a member of the organization that was onboarded to Firewall Manager by AssociateAdminAccount. Only the organization's management account can create an Firewall Manager administrator account. When you create an Firewall Manager administrator account, the service checks to see if the account is already a delegated administrator within Organizations. If the account isn't a delegated administrator, Firewall Manager calls Organizations to delegate the account within Organizations. For more information about administrator accounts within Organizations, see Managing the Amazon Web Services Accounts in Your Organization.

", "PutAppsList": "

Creates an Firewall Manager applications list.

", "PutNotificationChannel": "

Designates the IAM role and Amazon Simple Notification Service (SNS) topic that Firewall Manager uses to record SNS logs.

To perform this action outside of the console, you must first configure the SNS topic's access policy to allow the SnsRoleName to publish SNS logs. If the SnsRoleName provided is a role other than the AWSServiceRoleForFMS service-linked role, this role must have a trust relationship configured to allow the Firewall Manager service principal fms.amazonaws.com to assume this role. For information about configuring an SNS access policy, see Service roles for Firewall Manager in the Firewall Manager Developer Guide.

", - "PutPolicy": "

Creates an Firewall Manager policy.

Firewall Manager provides the following types of policies:

Each policy is specific to one of the types. If you want to enforce more than one policy type across accounts, create multiple policies. You can create multiple policies for each type.

You must be subscribed to Shield Advanced to create a Shield Advanced policy. For more information about subscribing to Shield Advanced, see CreateSubscription.

", + "PutPolicy": "

Creates an Firewall Manager policy.

A Firewall Manager policy is specific to the individual policy type. If you want to enforce multiple policy types across accounts, you can create multiple policies. You can create more than one policy for each type.

If you add a new account to an organization that you created with Organizations, Firewall Manager automatically applies the policy to the resources in that account that are within scope of the policy.

Firewall Manager provides the following types of policies:

", "PutProtocolsList": "

Creates an Firewall Manager protocols list.

", "PutResourceSet": "

Creates the resource set.

An Firewall Manager resource set defines the resources to import into an Firewall Manager policy from another Amazon Web Services service.

", "TagResource": "

Adds one or more tags to an Amazon Web Services resource.

", @@ -262,7 +262,7 @@ "AccountScope$AllAccountsEnabled": "

A boolean value that indicates if the administrator can apply policies to all accounts within an organization. If true, the administrator can apply policies to all accounts within the organization. You can either enable management of all accounts through this operation, or you can specify a list of accounts to manage in AccountScope$Accounts. You cannot specify both.

", "AccountScope$ExcludeSpecifiedAccounts": "

A boolean value that excludes the accounts in AccountScope$Accounts from the administrator's scope. If true, the Firewall Manager administrator can apply policies to all members of the organization except for the accounts listed in AccountScope$Accounts. You can either specify a list of accounts to exclude by AccountScope$Accounts, or you can enable management of all accounts by AccountScope$AllAccountsEnabled. You cannot specify both.

", "AdminAccountSummary$DefaultAdmin": "

A boolean value that indicates if the administrator is the default administrator. If true, then this is the default administrator account. The default administrator can manage third-party firewalls and has full administrative scope. There is only one default administrator account per organization. For information about Firewall Manager default administrator accounts, see Managing Firewall Manager administrators in the Firewall Manager Developer Guide.

", - "DeletePolicyRequest$DeleteAllPolicyResources": "

If True, the request performs cleanup according to the policy type.

For WAF and Shield Advanced policies, the cleanup does the following:

For security group policies, the cleanup does the following for each security group in the policy:

After the cleanup, in-scope resources are no longer protected by web ACLs in this policy. Protection of out-of-scope resources remains unchanged. Scope is determined by tags that you create and accounts that you associate with the policy. When creating the policy, if you specify that only resources in specific accounts or with specific tags are in scope of the policy, those accounts and resources are handled by the policy. All others are out of scope. If you don't specify tags or accounts, all resources are in scope.

", + "DeletePolicyRequest$DeleteAllPolicyResources": "

If True, the request performs cleanup according to the policy type.

For WAF and Shield Advanced policies, the cleanup does the following:

For security group policies, the cleanup does the following for each security group in the policy:

For security group common policies, even if set to False, Firewall Manager deletes all security groups created by Firewall Manager that aren't associated with any other resources through another policy.

After the cleanup, in-scope resources are no longer protected by web ACLs in this policy. Protection of out-of-scope resources remains unchanged. Scope is determined by tags that you create and accounts that you associate with the policy. When creating the policy, if you specify that only resources in specific accounts or with specific tags are in scope of the policy, those accounts and resources are handled by the policy. All others are out of scope. If you don't specify tags or accounts, all resources are in scope.

", "EvaluationResult$EvaluationLimitExceeded": "

Indicates that over 100 resources are noncompliant with the Firewall Manager policy.

", "GetAppsListRequest$DefaultList": "

Specifies whether the list to retrieve is a default list owned by Firewall Manager.

", "GetProtocolsListRequest$DefaultList": "

Specifies whether the list to retrieve is a default list owned by Firewall Manager.

", @@ -949,7 +949,7 @@ "base": null, "refs": { "FMSPolicyUpdateFirewallCreationConfigAction$FirewallCreationConfig": "

A FirewallCreationConfig that you can copy into your current policy's SecurityServiceData in order to remedy scope violations.

", - "SecurityServicePolicyData$ManagedServiceData": "

Details about the service that are specific to the service type, in JSON format.

" + "SecurityServicePolicyData$ManagedServiceData": "

Details about the service that are specific to the service type, in JSON format.

" } }, "MarketplaceSubscriptionOnboardingStatus": { @@ -1207,7 +1207,7 @@ "GetComplianceDetailRequest$PolicyId": "

The ID of the policy that you want to get the details for. PolicyId is returned by PutPolicy and by ListPolicies.

", "GetPolicyRequest$PolicyId": "

The ID of the Firewall Manager policy that you want the details for.

", "GetProtectionStatusRequest$PolicyId": "

The ID of the policy for which you want to get the attack information.

", - "GetViolationDetailsRequest$PolicyId": "

The ID of the Firewall Manager policy that you want the details for. This currently only supports security group content audit policies.

", + "GetViolationDetailsRequest$PolicyId": "

The ID of the Firewall Manager policy that you want the details for. You can get violation details for the following policy types:

", "ListComplianceStatusRequest$PolicyId": "

The ID of the Firewall Manager policy that you want the details for.

", "Policy$PolicyId": "

The ID of the Firewall Manager policy.

", "PolicyComplianceDetail$PolicyId": "

The ID of the Firewall Manager policy.

", @@ -1621,7 +1621,7 @@ "DiscoveredResource$Type": "

The type of the discovered resource.

", "GetViolationDetailsRequest$ResourceType": "

The resource type. This is in the format shown in the Amazon Web Services Resource Types Reference. Supported resource types are: AWS::EC2::Instance, AWS::EC2::NetworkInterface, AWS::EC2::SecurityGroup, AWS::NetworkFirewall::FirewallPolicy, and AWS::EC2::Subnet.

", "ListDiscoveredResourcesRequest$ResourceType": "

The type of resources to discover.

", - "Policy$ResourceType": "

The type of resource protected by or in scope of the policy. This is in the format shown in the Amazon Web Services Resource Types Reference. To apply this policy to multiple resource types, specify a resource type of ResourceTypeList and then specify the resource types in a ResourceTypeList.

For WAF and Shield Advanced, resource types include AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::ElasticLoadBalancing::LoadBalancer, AWS::EC2::EIP, and AWS::CloudFront::Distribution. For a security group common policy, valid values are AWS::EC2::NetworkInterface and AWS::EC2::Instance. For a security group content audit policy, valid values are AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, and AWS::EC2::Instance. For a security group usage audit policy, the value is AWS::EC2::SecurityGroup. For an Network Firewall policy or DNS Firewall policy, the value is AWS::EC2::VPC.

", + "Policy$ResourceType": "

The type of resource protected by or in scope of the policy. This is in the format shown in the Amazon Web Services Resource Types Reference. To apply this policy to multiple resource types, specify a resource type of ResourceTypeList and then specify the resource types in a ResourceTypeList.

The following are valid resource types for each Firewall Manager policy type:

", "PolicySummary$ResourceType": "

The type of resource protected by or in scope of the policy. This is in the format shown in the Amazon Web Services Resource Types Reference. For WAF and Shield Advanced, examples include AWS::ElasticLoadBalancingV2::LoadBalancer and AWS::CloudFront::Distribution. For a security group common policy, valid values are AWS::EC2::NetworkInterface and AWS::EC2::Instance. For a security group content audit policy, valid values are AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, and AWS::EC2::Instance. For a security group usage audit policy, the value is AWS::EC2::SecurityGroup. For an Network Firewall policy or DNS Firewall policy, the value is AWS::EC2::VPC.

", "ResourceTypeList$member": null, "ViolationDetail$ResourceType": "

The resource type that the violation details were requested for.

" diff --git a/models/apis/fms/2018-01-01/endpoint-rule-set-1.json b/models/apis/fms/2018-01-01/endpoint-rule-set-1.json index 127a40b5796..f768dea6845 100644 --- a/models/apis/fms/2018-01-01/endpoint-rule-set-1.json +++ b/models/apis/fms/2018-01-01/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -58,293 +57,258 @@ "type": "error" }, { - "conditions": [], - "type": "tree", - "rules": [ + "conditions": [ { - "conditions": [ + "fn": "booleanEquals", + "argv": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" + "ref": "UseDualStack" }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + true + ] } - ] + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] + ], + "type": "tree" }, { - "conditions": [], - "type": "tree", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "aws.partition", "argv": [ { "ref": "Region" } - ] + ], + "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ { - "fn": "aws.partition", + "fn": "booleanEquals", "argv": [ { - "ref": "Region" - } - ], - "assign": "PartitionResult" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] }, { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://fms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, + } + ], + "rules": [ { "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" + "endpoint": { + "url": "https://fms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] + ], + "type": "tree" }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] }, true ] } ], - "type": "tree", "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://fms-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - } - ] - }, { "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" + "endpoint": { + "url": "https://fms-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] + ], + "type": "tree" }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://fms.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } - ] - }, - { - "conditions": [], - "type": "tree", + ], "rules": [ { "conditions": [], "endpoint": { - "url": "https://fms.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://fms.{Region}.{PartitionResult#dualStackDnsSuffix}", "properties": {}, "headers": {} }, "type": "endpoint" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://fms.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "type": "error" + ], + "type": "tree" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } \ No newline at end of file diff --git a/models/apis/mediaconvert/2017-08-29/api-2.json b/models/apis/mediaconvert/2017-08-29/api-2.json index 6132a3d4160..a09eb75c24f 100644 --- a/models/apis/mediaconvert/2017-08-29/api-2.json +++ b/models/apis/mediaconvert/2017-08-29/api-2.json @@ -1379,6 +1379,10 @@ "ChannelTag": { "shape": "AudioChannelTag", "locationName": "channelTag" + }, + "ChannelTags": { + "shape": "__listOfAudioChannelTag", + "locationName": "channelTags" } } }, @@ -6710,6 +6714,10 @@ "shape": "ExtendedDataServices", "locationName": "extendedDataServices" }, + "FollowSource": { + "shape": "__integerMin1Max150", + "locationName": "followSource" + }, "Inputs": { "shape": "__listOfInput", "locationName": "inputs" @@ -6842,6 +6850,10 @@ "shape": "ExtendedDataServices", "locationName": "extendedDataServices" }, + "FollowSource": { + "shape": "__integerMin1Max150", + "locationName": "followSource" + }, "Inputs": { "shape": "__listOfInputTemplate", "locationName": "inputs" @@ -9475,7 +9487,10 @@ "type": "string", "enum": [ "DEFAULT", - "STRETCH_TO_OUTPUT" + "STRETCH_TO_OUTPUT", + "FIT", + "FIT_NO_UPSCALE", + "FILL" ] }, "SccDestinationFramerate": { @@ -11248,6 +11263,11 @@ "min": 1, "max": 1001 }, + "__integerMin1Max150": { + "type": "integer", + "min": 1, + "max": 150 + }, "__integerMin1Max17895697": { "type": "integer", "min": 1, @@ -11509,6 +11529,12 @@ "shape": "AllowedRenditionSize" } }, + "__listOfAudioChannelTag": { + "type": "list", + "member": { + "shape": "AudioChannelTag" + } + }, "__listOfAudioDescription": { "type": "list", "member": { diff --git a/models/apis/mediaconvert/2017-08-29/docs-2.json b/models/apis/mediaconvert/2017-08-29/docs-2.json index 5cc198c0248..0c06b0c4843 100644 --- a/models/apis/mediaconvert/2017-08-29/docs-2.json +++ b/models/apis/mediaconvert/2017-08-29/docs-2.json @@ -235,15 +235,16 @@ } }, "AudioChannelTag": { - "base": "You can add a tag for this mono-channel audio track to mimic its placement in a multi-channel layout. For example, if this track is the left surround channel, choose Left surround (LS).", + "base": "Specify the QuickTime audio channel layout tags for the audio channels in this audio track. Enter channel layout tags in the same order as your output's audio channel order. For example, if your output audio track has a left and a right channel, enter Left (L) for the first channel and Right (R) for the second. If your output has multiple single-channel audio tracks, enter a single channel layout tag for each track.", "refs": { - "AudioChannelTaggingSettings$ChannelTag": "You can add a tag for this mono-channel audio track to mimic its placement in a multi-channel layout. For example, if this track is the left surround channel, choose Left surround (LS)." + "AudioChannelTaggingSettings$ChannelTag": "Specify the QuickTime audio channel layout tags for the audio channels in this audio track. Enter channel layout tags in the same order as your output's audio channel order. For example, if your output audio track has a left and a right channel, enter Left (L) for the first channel and Right (R) for the second. If your output has multiple single-channel audio tracks, enter a single channel layout tag for each track.", + "__listOfAudioChannelTag$member": null } }, "AudioChannelTaggingSettings": { - "base": "When you mimic a multi-channel audio layout with multiple mono-channel tracks, you can tag each channel layout manually. For example, you would tag the tracks that contain your left, right, and center audio with Left (L), Right (R), and Center (C), respectively. When you don't specify a value, MediaConvert labels your track as Center (C) by default. To use audio layout tagging, your output must be in a QuickTime (.mov) container; your audio codec must be AAC, WAV, or AIFF; and you must set up your audio track to have only one channel.", + "base": "Specify the QuickTime audio channel layout tags for the audio channels in this audio track. When you don't specify a value, MediaConvert labels your track as Center (C) by default. To use Audio layout tagging, your output must be in a QuickTime (MOV) container and your audio codec must be AAC, WAV, or AIFF.", "refs": { - "AudioDescription$AudioChannelTaggingSettings": "When you mimic a multi-channel audio layout with multiple mono-channel tracks, you can tag each channel layout manually. For example, you would tag the tracks that contain your left, right, and center audio with Left (L), Right (R), and Center (C), respectively. When you don't specify a value, MediaConvert labels your track as Center (C) by default. To use audio layout tagging, your output must be in a QuickTime (.mov) container; your audio codec must be AAC, WAV, or AIFF; and you must set up your audio track to have only one channel." + "AudioDescription$AudioChannelTaggingSettings": "Specify the QuickTime audio channel layout tags for the audio channels in this audio track. When you don't specify a value, MediaConvert labels your track as Center (C) by default. To use Audio layout tagging, your output must be in a QuickTime (MOV) container and your audio codec must be AAC, WAV, or AIFF." } }, "AudioCodec": { @@ -1520,9 +1521,9 @@ } }, "F4vMoovPlacement": { - "base": "If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of the archive as required for progressive downloading. Otherwise it is placed normally at the end.", + "base": "To place the MOOV atom at the beginning of your output, which is useful for progressive downloading: Leave blank or choose Progressive download. To place the MOOV at the end of your output: Choose Normal.", "refs": { - "F4vSettings$MoovPlacement": "If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of the archive as required for progressive downloading. Otherwise it is placed normally at the end." + "F4vSettings$MoovPlacement": "To place the MOOV atom at the beginning of your output, which is useful for progressive downloading: Leave blank or choose Progressive download. To place the MOOV at the end of your output: Choose Normal." } }, "F4vSettings": { @@ -2310,7 +2311,7 @@ "refs": { "Input$TimecodeSource": "Use this Timecode source setting, located under the input settings, to specify how the service counts input video frames. This input frame count affects only the behavior of features that apply to a single input at a time, such as input clipping and synchronizing some captions formats. Choose Embedded to use the timecodes in your input video. Choose Start at zero to start the first frame at zero. Choose Specified start to start the first frame at the timecode that you specify in the setting Start timecode. If you don't specify a value for Timecode source, the service will use Embedded by default. For more information about timecodes, see https://docs.aws.amazon.com/console/mediaconvert/timecode.", "InputTemplate$TimecodeSource": "Use this Timecode source setting, located under the input settings, to specify how the service counts input video frames. This input frame count affects only the behavior of features that apply to a single input at a time, such as input clipping and synchronizing some captions formats. Choose Embedded to use the timecodes in your input video. Choose Start at zero to start the first frame at zero. Choose Specified start to start the first frame at the timecode that you specify in the setting Start timecode. If you don't specify a value for Timecode source, the service will use Embedded by default. For more information about timecodes, see https://docs.aws.amazon.com/console/mediaconvert/timecode.", - "VideoOverlayInput$TimecodeSource": "Specify the starting timecode for your video overlay. To use the timecode present in your video overlay: Choose Embedded. To use a zerobased timecode: Choose Start at 0. To choose a timecode: Choose Specified start. When you do, enter the starting timecode in Start timecode. If you don't specify a value for Timecode source, MediaConvert uses Embedded by default." + "VideoOverlayInput$TimecodeSource": "Specify the timecode source for your video overlay input clips. To use the timecode present in your video overlay: Choose Embedded. To use a zerobased timecode: Choose Start at 0. To choose a timecode: Choose Specified start. When you do, enter the starting timecode in Start timecode. If you don't specify a value for Timecode source, MediaConvert uses Embedded by default." } }, "InputVideoGenerator": { @@ -2705,9 +2706,9 @@ } }, "Mp4MoovPlacement": { - "base": "If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of the archive as required for progressive downloading. Otherwise it is placed normally at the end.", + "base": "To place the MOOV atom at the beginning of your output, which is useful for progressive downloading: Leave blank or choose Progressive download. To place the MOOV at the end of your output: Choose Normal.", "refs": { - "Mp4Settings$MoovPlacement": "If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of the archive as required for progressive downloading. Otherwise it is placed normally at the end." + "Mp4Settings$MoovPlacement": "To place the MOOV atom at the beginning of your output, which is useful for progressive downloading: Leave blank or choose Progressive download. To place the MOOV at the end of your output: Choose Normal." } }, "Mp4Settings": { @@ -3376,9 +3377,9 @@ } }, "ScalingBehavior": { - "base": "Specify how the service handles outputs that have a different aspect ratio from the input aspect ratio. Choose Stretch to output to have the service stretch your video image to fit. Keep the setting Default to have the service letterbox your video instead. This setting overrides any value that you specify for the setting Selection placement in this output.", + "base": "Specify the video Scaling behavior when your output has a different resolution than your input. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/video-scaling.html", "refs": { - "VideoDescription$ScalingBehavior": "Specify how the service handles outputs that have a different aspect ratio from the input aspect ratio. Choose Stretch to output to have the service stretch your video image to fit. Keep the setting Default to have the service letterbox your video instead. This setting overrides any value that you specify for the setting Selection placement in this output." + "VideoDescription$ScalingBehavior": "Specify the video Scaling behavior when your output has a different resolution than your input. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/video-scaling.html" } }, "SccDestinationFramerate": { @@ -3673,7 +3674,7 @@ } }, "VideoOverlay": { - "base": "Overlay one or more videos on top of your input video.", + "base": "Overlay one or more videos on top of your input video. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/video-overlays.html", "refs": { "__listOfVideoOverlay$member": null } @@ -4430,7 +4431,7 @@ "__integerMin16000Max48000": { "base": null, "refs": { - "OpusSettings$SampleRate": "Optional. Sample rate in hz. Valid values are 16000, 24000, and 48000. The default value is 48000." + "OpusSettings$SampleRate": "Optional. Sample rate in Hz. Valid values are 16000, 24000, and 48000. The default value is 48000." } }, "__integerMin16Max24": { @@ -4480,6 +4481,13 @@ "XavcSettings$FramerateDenominator": "When you use the API for transcode jobs that use frame rate conversion, specify the frame rate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use FramerateDenominator to specify the denominator of this fraction. In this example, use 1001 for the value of FramerateDenominator. When you use the console for transcode jobs that use frame rate conversion, provide the value as a decimal number for Frame rate. In this example, specify 23.976." } }, + "__integerMin1Max150": { + "base": null, + "refs": { + "JobSettings$FollowSource": "Specify the input that MediaConvert references for your default output settings. MediaConvert uses this input's Resolution, Frame rate, and Pixel aspect ratio for all outputs that you don't manually specify different output settings for. Enabling this setting will disable \"Follow source\" for all other inputs. If MediaConvert cannot follow your source, for example if you specify an audio-only input, MediaConvert uses the first followable input instead. In your JSON job specification, enter an integer from 1 to 150 corresponding to the order of your inputs.", + "JobTemplateSettings$FollowSource": "Specify the input that MediaConvert references for your default output settings. MediaConvert uses this input's Resolution, Frame rate, and Pixel aspect ratio for all outputs that you don't manually specify different output settings for. Enabling this setting will disable \"Follow source\" for all other inputs. If MediaConvert cannot follow your source, for example if you specify an audio-only input, MediaConvert uses the first followable input instead. In your JSON job specification, enter an integer from 1 to 150 corresponding to the order of your inputs." + } + }, "__integerMin1Max17895697": { "base": null, "refs": { @@ -4633,8 +4641,8 @@ "__integerMin22050Max48000": { "base": null, "refs": { - "FlacSettings$SampleRate": "Sample rate in hz.", - "Mp3Settings$SampleRate": "Sample rate in hz.", + "FlacSettings$SampleRate": "Sample rate in Hz.", + "Mp3Settings$SampleRate": "Sample rate in Hz.", "VorbisSettings$SampleRate": "Optional. Specify the audio sample rate in Hz. Valid values are 22050, 32000, 44100, and 48000. The default value is 48000." } }, @@ -4694,7 +4702,7 @@ "__integerMin32000Max48000": { "base": null, "refs": { - "Mp2Settings$SampleRate": "Sample rate in hz." + "Mp2Settings$SampleRate": "Sample rate in Hz." } }, "__integerMin32Max8182": { @@ -4779,7 +4787,7 @@ "__integerMin8000Max192000": { "base": null, "refs": { - "AiffSettings$SampleRate": "Sample rate in hz.", + "AiffSettings$SampleRate": "Sample rate in Hz.", "WavSettings$SampleRate": "Sample rate in Hz." } }, @@ -4903,6 +4911,12 @@ "AutomatedAbrRule$AllowedRenditions": "When customer adds the allowed renditions rule for auto ABR ladder, they are required to add at leat one rendition to allowedRenditions list" } }, + "__listOfAudioChannelTag": { + "base": null, + "refs": { + "AudioChannelTaggingSettings$ChannelTags": "Specify the QuickTime audio channel layout tags for the audio channels in this audio track. Enter channel layout tags in the same order as your output's audio channel order. For example, if your output audio track has a left and a right channel, enter Left (L) for the first channel and Right (R) for the second. If your output has multiple single-channel audio tracks, enter a single channel layout tag for each track." + } + }, "__listOfAudioDescription": { "base": null, "refs": { diff --git a/models/apis/mediaconvert/2017-08-29/endpoint-rule-set-1.json b/models/apis/mediaconvert/2017-08-29/endpoint-rule-set-1.json index b3cfd3d2ad8..52db3f79032 100644 --- a/models/apis/mediaconvert/2017-08-29/endpoint-rule-set-1.json +++ b/models/apis/mediaconvert/2017-08-29/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,18 +212,17 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "stringEquals", "argv": [ - "aws-us-gov", { "fn": "getAttr", "argv": [ @@ -236,7 +231,8 @@ }, "name" ] - } + }, + "aws-us-gov" ] } ], @@ -256,14 +252,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -277,7 +275,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -297,7 +294,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -308,14 +304,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -345,9 +343,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/models/apis/rds/2014-10-31/docs-2.json b/models/apis/rds/2014-10-31/docs-2.json index 786a26e89b5..b68e1da9427 100644 --- a/models/apis/rds/2014-10-31/docs-2.json +++ b/models/apis/rds/2014-10-31/docs-2.json @@ -31,7 +31,7 @@ "CreateDBSubnetGroup": "

Creates a new DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the Amazon Web Services Region.

", "CreateEventSubscription": "

Creates an RDS event notification subscription. This operation requires a topic Amazon Resource Name (ARN) created by either the RDS console, the SNS console, or the SNS API. To obtain an ARN with SNS, you must create a topic in Amazon SNS and subscribe to the topic. The ARN is displayed in the SNS console.

You can specify the type of source (SourceType) that you want to be notified of and provide a list of RDS sources (SourceIds) that triggers the events. You can also provide a list of event categories (EventCategories) for events that you want to be notified of. For example, you can specify SourceType = db-instance, SourceIds = mydbinstance1, mydbinstance2 and EventCategories = Availability, Backup.

If you specify both the SourceType and SourceIds, such as SourceType = db-instance and SourceIds = myDBInstance1, you are notified of all the db-instance events for the specified source. If you specify a SourceType but do not specify SourceIds, you receive notice of the events for that source type for all your RDS sources. If you don't specify either the SourceType or the SourceIds, you are notified of events generated from all RDS sources belonging to your customer account.

For more information about subscribing to an event for RDS DB engines, see Subscribing to Amazon RDS event notification in the Amazon RDS User Guide.

For more information about subscribing to an event for Aurora DB engines, see Subscribing to Amazon RDS event notification in the Amazon Aurora User Guide.

", "CreateGlobalCluster": "

Creates an Aurora global database spread across multiple Amazon Web Services Regions. The global database contains a single primary cluster with read-write capability, and a read-only secondary cluster that receives data from the primary cluster through high-speed replication performed by the Aurora storage subsystem.

You can create a global database that is initially empty, and then create the primary and secondary DB clusters in the global database. Or you can specify an existing Aurora cluster during the create operation, and this cluster becomes the primary cluster of the global database.

This operation applies only to Aurora DB clusters.

", - "CreateIntegration": "

Creates a zero-ETL integration with Amazon Redshift. For more information, see Working with Amazon Aurora zero-ETL integrations with Amazon Redshift in the Amazon Aurora User Guide.

", + "CreateIntegration": "

Creates a zero-ETL integration with Amazon Redshift.

", "CreateOptionGroup": "

Creates a new option group. You can create up to 20 option groups.

This command doesn't apply to RDS Custom.

", "CreateTenantDatabase": "

Creates a tenant database in a DB instance that uses the multi-tenant configuration. Only RDS for Oracle container database (CDB) instances are supported.

", "DeleteBlueGreenDeployment": "

Deletes a blue/green deployment.

For more information, see Using Amazon RDS Blue/Green Deployments for database updates in the Amazon RDS User Guide and Using Amazon RDS Blue/Green Deployments for database updates in the Amazon Aurora User Guide.

", @@ -51,7 +51,7 @@ "DeleteDBSubnetGroup": "

Deletes a DB subnet group.

The specified database subnet group must not be associated with any DB instances.

", "DeleteEventSubscription": "

Deletes an RDS event notification subscription.

", "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.

", - "DeleteIntegration": "

Deletes a zero-ETL integration with Amazon Redshift. For more information, see Deleting Amazon Aurora zero-ETL integrations with Amazon Redshift in the Amazon Aurora User Guide

", + "DeleteIntegration": "

Deletes a zero-ETL integration with Amazon Redshift.

", "DeleteOptionGroup": "

Deletes an existing option group.

", "DeleteTenantDatabase": "

Deletes a tenant database from your DB instance. This command only applies to RDS for Oracle container database (CDB) instances.

You can't delete a tenant database when it is the only tenant in the DB instance.

", "DeregisterDBProxyTargets": "

Remove the association between one or more DBProxyTarget data structures and a DBProxyTargetGroup.

", @@ -88,7 +88,7 @@ "DescribeEvents": "

Returns events related to DB instances, DB clusters, DB parameter groups, DB security groups, DB snapshots, DB cluster snapshots, and RDS Proxies for the past 14 days. Events specific to a particular DB instance, DB cluster, DB parameter group, DB security group, DB snapshot, DB cluster snapshot group, or RDS Proxy can be obtained by providing the name as a parameter.

For more information on working with events, see Monitoring Amazon RDS events in the Amazon RDS User Guide and Monitoring Amazon Aurora events in the Amazon Aurora User Guide.

By default, RDS returns events that were generated in the past hour.

", "DescribeExportTasks": "

Returns information about a snapshot or cluster export to Amazon S3. This API operation supports pagination.

", "DescribeGlobalClusters": "

Returns information about Aurora global database clusters. This API supports pagination.

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.

", - "DescribeIntegrations": "

Describe one or more zero-ETL integration with Amazon Redshift. For more information, see Viewing and monitoring Amazon Aurora zero-ETL integrations with Amazon Redshift in the Amazon Aurora User Guide

", + "DescribeIntegrations": "

Describe one or more zero-ETL integrations with Amazon Redshift.

", "DescribeOptionGroupOptions": "

Describes all available options.

", "DescribeOptionGroups": "

Describes the available option groups.

", "DescribeOrderableDBInstanceOptions": "

Returns a list of orderable DB instance options for the specified DB engine, DB engine version, and DB instance class.

", @@ -459,7 +459,7 @@ "DBEngineVersion$SupportsParallelQuery": "

Indicates whether you can use Aurora parallel query with a specific DB engine version.

", "DBEngineVersion$SupportsGlobalDatabases": "

Indicates whether you can use Aurora global databases with a specific DB engine version.

", "DBEngineVersion$SupportsBabelfish": "

Indicates whether the engine version supports Babelfish for Aurora PostgreSQL.

", - "DBEngineVersion$SupportsIntegrations": "

Indicates whether the DB engine version supports Aurora zero-ETL integrations with Amazon Redshift.

", + "DBEngineVersion$SupportsIntegrations": "

Indicates whether the DB engine version supports zero-ETL integrations with Amazon Redshift.

", "DBInstance$MultiAZ": "

Indicates whether the DB instance is a Multi-AZ deployment. This setting doesn't apply to RDS Custom DB instances.

", "DBInstance$AutoMinorVersionUpgrade": "

Indicates whether minor version patches are applied automatically.

", "DBInstance$PubliclyAccessible": "

Indicates whether the DB instance is publicly accessible.

When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.

When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address.

For more information, see CreateDBInstance.

", @@ -713,7 +713,7 @@ "UpgradeTarget$SupportsGlobalDatabases": "

Indicates whether you can use Aurora global databases with the target engine version.

", "UpgradeTarget$SupportsBabelfish": "

Indicates whether you can use Babelfish for Aurora PostgreSQL with the target engine version.

", "UpgradeTarget$SupportsLocalWriteForwarding": "

Indicates whether the target engine version supports forwarding write operations from reader DB instances to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.

Valid for: Aurora DB clusters only

", - "UpgradeTarget$SupportsIntegrations": "

Indicates whether the DB engine version supports Aurora zero-ETL integrations with Amazon Redshift.

" + "UpgradeTarget$SupportsIntegrations": "

Indicates whether the DB engine version supports zero-ETL integrations with Amazon Redshift.

" } }, "BucketName": { @@ -2972,7 +2972,7 @@ } }, "Integration": { - "base": "

An Aurora zero-ETL integration with Amazon Redshift. For more information, see Working with Amazon Aurora zero-ETL integrations with Amazon Redshift in the Amazon Aurora User Guide.

", + "base": "

A zero-ETL integration with Amazon Redshift.

", "refs": { "IntegrationList$member": null } @@ -4111,8 +4111,8 @@ "SourceArn": { "base": null, "refs": { - "CreateIntegrationMessage$SourceArn": "

The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source for replication.

", - "Integration$SourceArn": "

The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source for replication.

" + "CreateIntegrationMessage$SourceArn": "

The Amazon Resource Name (ARN) of the database to use as the source for replication.

", + "Integration$SourceArn": "

The Amazon Resource Name (ARN) of the database used as the source for replication.

" } }, "SourceClusterNotSupportedFault": { @@ -4434,7 +4434,7 @@ "CreateGlobalClusterMessage$Engine": "

The database engine to use for this global database cluster.

Valid Values: aurora-mysql | aurora-postgresql

Constraints:

", "CreateGlobalClusterMessage$EngineVersion": "

The engine version to use for this global database cluster.

Constraints:

", "CreateGlobalClusterMessage$DatabaseName": "

The name for your database of up to 64 alphanumeric characters. If you don't specify a name, Amazon Aurora doesn't create a database in the global database cluster.

Constraints:

", - "CreateIntegrationMessage$KMSKeyId": "

The Amazon Web Services Key Management System (Amazon Web Services KMS) key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, Aurora uses a default Amazon Web Services owned key.

", + "CreateIntegrationMessage$KMSKeyId": "

The Amazon Web Services Key Management System (Amazon Web Services KMS) key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, RDS uses a default Amazon Web Services owned key.

", "CreateOptionGroupMessage$OptionGroupName": "

Specifies the name of the option group to be created.

Constraints:

Example: myoptiongroup

", "CreateOptionGroupMessage$EngineName": "

Specifies the name of the engine that this option group should be associated with.

Valid Values:

", "CreateOptionGroupMessage$MajorEngineVersion": "

Specifies the major version of the engine that this option group should be associated with.

", diff --git a/service/controltower/api.go b/service/controltower/api.go index f20295c758a..ba50dbea936 100644 --- a/service/controltower/api.go +++ b/service/controltower/api.go @@ -10,6 +10,7 @@ import ( "github.com/aws/aws-sdk-go/aws/awsutil" "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" ) const opDisableControl = "DisableControl" @@ -159,7 +160,7 @@ func (c *ControlTower) EnableControlRequest(input *EnableControlInput) (req *req // This API call activates a control. It starts an asynchronous operation that // creates AWS resources on the specified organizational unit and the accounts // it contains. The resources created will vary according to the control that -// you specify. For usage examples, see the AWS Control Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.html) +// you specify. For usage examples, see the AWS Control Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.html). // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -259,7 +260,7 @@ func (c *ControlTower) GetControlOperationRequest(input *GetControlOperationInpu // // Returns the status of a particular EnableControl or DisableControl operation. // Displays a message in case of error. Details for an operation are available -// for 90 days. For usage examples, see the AWS Control Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.html) +// for 90 days. For usage examples, see the AWS Control Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.html). // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -350,18 +351,9 @@ func (c *ControlTower) GetEnabledControlRequest(input *GetEnabledControlInput) ( // GetEnabledControl API operation for AWS Control Tower. // -// Provides details about the enabled control. For usage examples, see the AWS +// Retrieves details about an enabled control. For usage examples, see the AWS // Control Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.html). // -// Returned values -// -// - TargetRegions: Shows target AWS Regions where the enabled control is -// available to be deployed. -// -// - StatusSummary: Provides a detailed summary of the deployment status. -// -// - DriftSummary: Provides a detailed summary of the drifted status. -// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -459,7 +451,7 @@ func (c *ControlTower) ListEnabledControlsRequest(input *ListEnabledControlsInpu // // Lists the controls enabled by AWS Control Tower on the specified organizational // unit and the accounts it contains. For usage examples, see the AWS Control -// Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.html) +// Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.html). // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -558,6 +550,266 @@ func (c *ControlTower) ListEnabledControlsPagesWithContext(ctx aws.Context, inpu return p.Err() } +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsForResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListTagsForResource for more information on using the ListTagsForResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListTagsForResourceRequest method. +// req, resp := client.ListTagsForResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controltower-2018-05-10/ListTagsForResource +func (c *ControlTower) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { + op := &request.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + output = &ListTagsForResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTagsForResource API operation for AWS Control Tower. +// +// Returns a list of tags associated with the resource. For usage examples, +// see the AWS Control Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Control Tower's +// API operation ListTagsForResource for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the constraints specified by an AWS service. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controltower-2018-05-10/ListTagsForResource +func (c *ControlTower) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + return out, req.Send() +} + +// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of +// the ability to pass a context and additional request options. +// +// See ListTagsForResource for details on how to use this API operation. +// +// 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 *ControlTower) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opTagResource = "TagResource" + +// TagResourceRequest generates a "aws/request.Request" representing the +// client's request for the TagResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See TagResource for more information on using the TagResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the TagResourceRequest method. +// req, resp := client.TagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controltower-2018-05-10/TagResource +func (c *ControlTower) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { + op := &request.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &TagResourceInput{} + } + + output = &TagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// TagResource API operation for AWS Control Tower. +// +// Applies tags to a resource. For usage examples, see the AWS Control Tower +// User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Control Tower's +// API operation TagResource for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the constraints specified by an AWS service. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controltower-2018-05-10/TagResource +func (c *ControlTower) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) + return out, req.Send() +} + +// TagResourceWithContext is the same as TagResource with the addition of +// the ability to pass a context and additional request options. +// +// See TagResource for details on how to use this API operation. +// +// 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 *ControlTower) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUntagResource = "UntagResource" + +// UntagResourceRequest generates a "aws/request.Request" representing the +// client's request for the UntagResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UntagResource for more information on using the UntagResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UntagResourceRequest method. +// req, resp := client.UntagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controltower-2018-05-10/UntagResource +func (c *ControlTower) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { + op := &request.Operation{ + Name: opUntagResource, + HTTPMethod: "DELETE", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &UntagResourceInput{} + } + + output = &UntagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UntagResource API operation for AWS Control Tower. +// +// Removes tags from a resource. For usage examples, see the AWS Control Tower +// User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Control Tower's +// API operation UntagResource for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the constraints specified by an AWS service. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controltower-2018-05-10/UntagResource +func (c *ControlTower) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + return out, req.Send() +} + +// UntagResourceWithContext is the same as UntagResource with the addition of +// the ability to pass a context and additional request options. +// +// See UntagResource for details on how to use this API operation. +// +// 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 *ControlTower) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + // User does not have sufficient access to perform this action. type AccessDeniedException struct { _ struct{} `type:"structure"` @@ -919,6 +1171,9 @@ type EnableControlInput struct { // ControlIdentifier is a required field ControlIdentifier *string `locationName:"controlIdentifier" min:"20" type:"string" required:"true"` + // Tags to be applied to the EnabledControl resource. + Tags map[string]*string `locationName:"tags" type:"map"` + // The ARN of the organizational unit. For information on how to find the targetIdentifier, // see the overview page (https://docs.aws.amazon.com/controltower/latest/APIReference/Welcome.html). // @@ -972,6 +1227,12 @@ func (s *EnableControlInput) SetControlIdentifier(v string) *EnableControlInput return s } +// SetTags sets the Tags field's value. +func (s *EnableControlInput) SetTags(v map[string]*string) *EnableControlInput { + s.Tags = v + return s +} + // SetTargetIdentifier sets the TargetIdentifier field's value. func (s *EnableControlInput) SetTargetIdentifier(v string) *EnableControlInput { s.TargetIdentifier = &v @@ -981,6 +1242,9 @@ func (s *EnableControlInput) SetTargetIdentifier(v string) *EnableControlInput { type EnableControlOutput struct { _ struct{} `type:"structure"` + // The ARN of the EnabledControl resource. + Arn *string `locationName:"arn" min:"20" type:"string"` + // The ID of the asynchronous operation, which is used to track status. The // operation is available for 90 days. // @@ -1006,6 +1270,12 @@ func (s EnableControlOutput) GoString() string { return s.String() } +// SetArn sets the Arn field's value. +func (s *EnableControlOutput) SetArn(v string) *EnableControlOutput { + s.Arn = &v + return s +} + // SetOperationIdentifier sets the OperationIdentifier field's value. func (s *EnableControlOutput) SetOperationIdentifier(v string) *EnableControlOutput { s.OperationIdentifier = &v @@ -1091,22 +1361,20 @@ func (s *EnabledControlDetails) SetTargetRegions(v []*Region) *EnabledControlDet return s } -// A summary of enabled controls. +// Returns a summary of information about an enabled control. type EnabledControlSummary struct { _ struct{} `type:"structure"` // The ARN of the enabled control. Arn *string `locationName:"arn" min:"20" type:"string"` - // The ARN of the control. Only Strongly recommended and Elective controls are - // permitted, with the exception of the Region deny control. For information - // on how to find the controlIdentifier, see the overview page (https://docs.aws.amazon.com/controltower/latest/APIReference/Welcome.html). + // The controlIdentifier of the enabled control. ControlIdentifier *string `locationName:"controlIdentifier" min:"20" type:"string"` // The drift status of the enabled control. DriftStatusSummary *DriftStatusSummary `locationName:"driftStatusSummary" type:"structure"` - // The deployment summary of the enabled control. + // A short description of the status of the enabled control. StatusSummary *EnablementStatusSummary `locationName:"statusSummary" type:"structure"` // The ARN of the organizational unit. @@ -1296,7 +1564,7 @@ func (s *GetControlOperationOutput) SetControlOperation(v *ControlOperation) *Ge type GetEnabledControlInput struct { _ struct{} `type:"structure"` - // The ARN of the enabled control. + // The controlIdentifier of the enabled control. // // EnabledControlIdentifier is a required field EnabledControlIdentifier *string `locationName:"enabledControlIdentifier" min:"20" type:"string" required:"true"` @@ -1554,6 +1822,88 @@ func (s *ListEnabledControlsOutput) SetNextToken(v string) *ListEnabledControlsO return s } +type ListTagsForResourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ARN of the resource. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { + s.ResourceArn = &v + return s +} + +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // A list of tags, as key:value strings. + // + // Tags is a required field + Tags map[string]*string `locationName:"tags" type:"map" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceOutput) GoString() string { + return s.String() +} + +// SetTags sets the Tags field's value. +func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput { + s.Tags = v + return s +} + // An AWS Region in which AWS Control Tower expects to find the control deployed. // // The expected Regions are based on the Regions that are governed by the landing @@ -1719,6 +2069,91 @@ func (s *ServiceQuotaExceededException) RequestID() string { return s.RespMetadata.RequestID } +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN of the resource to be tagged. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"` + + // Tags to be applied to the resource. + // + // Tags is a required field + Tags map[string]*string `locationName:"tags" type:"map" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) + } + if s.Tags == nil { + invalidParams.Add(request.NewErrParamRequired("Tags")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput { + s.ResourceArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput { + s.Tags = v + return s +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceOutput) GoString() string { + return s.String() +} + // Request was denied due to request throttling. type ThrottlingException struct { _ struct{} `type:"structure"` @@ -1792,6 +2227,91 @@ func (s *ThrottlingException) RequestID() string { return s.RespMetadata.RequestID } +type UntagResourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ARN of the resource. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"` + + // Tag keys to be removed from the resource. + // + // TagKeys is a required field + TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) + } + if s.TagKeys == nil { + invalidParams.Add(request.NewErrParamRequired("TagKeys")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput { + s.ResourceArn = &v + return s +} + +// SetTagKeys sets the TagKeys field's value. +func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { + s.TagKeys = v + return s +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceOutput) GoString() string { + return s.String() +} + // The input fails to satisfy the constraints specified by an AWS service. type ValidationException struct { _ struct{} `type:"structure"` diff --git a/service/controltower/controltoweriface/interface.go b/service/controltower/controltoweriface/interface.go index ac4f8d0bdf0..c83f1d512df 100644 --- a/service/controltower/controltoweriface/interface.go +++ b/service/controltower/controltoweriface/interface.go @@ -82,6 +82,18 @@ type ControlTowerAPI interface { ListEnabledControlsPages(*controltower.ListEnabledControlsInput, func(*controltower.ListEnabledControlsOutput, bool) bool) error ListEnabledControlsPagesWithContext(aws.Context, *controltower.ListEnabledControlsInput, func(*controltower.ListEnabledControlsOutput, bool) bool, ...request.Option) error + + ListTagsForResource(*controltower.ListTagsForResourceInput) (*controltower.ListTagsForResourceOutput, error) + ListTagsForResourceWithContext(aws.Context, *controltower.ListTagsForResourceInput, ...request.Option) (*controltower.ListTagsForResourceOutput, error) + ListTagsForResourceRequest(*controltower.ListTagsForResourceInput) (*request.Request, *controltower.ListTagsForResourceOutput) + + TagResource(*controltower.TagResourceInput) (*controltower.TagResourceOutput, error) + TagResourceWithContext(aws.Context, *controltower.TagResourceInput, ...request.Option) (*controltower.TagResourceOutput, error) + TagResourceRequest(*controltower.TagResourceInput) (*request.Request, *controltower.TagResourceOutput) + + UntagResource(*controltower.UntagResourceInput) (*controltower.UntagResourceOutput, error) + UntagResourceWithContext(aws.Context, *controltower.UntagResourceInput, ...request.Option) (*controltower.UntagResourceOutput, error) + UntagResourceRequest(*controltower.UntagResourceInput) (*request.Request, *controltower.UntagResourceOutput) } var _ ControlTowerAPI = (*controltower.ControlTower)(nil) diff --git a/service/controltower/doc.go b/service/controltower/doc.go index 0ef8a3bd0c8..a6a7e0280b7 100644 --- a/service/controltower/doc.go +++ b/service/controltower/doc.go @@ -5,7 +5,7 @@ // // These interfaces allow you to apply the AWS library of pre-defined controls // to your organizational units, programmatically. In AWS Control Tower, the -// terms "control" and "guardrail" are synonyms. . +// terms "control" and "guardrail" are synonyms. // // To call these APIs, you'll need to know: // @@ -14,6 +14,8 @@ // - the ARN associated with the target organizational unit (OU), which we // call the targetIdentifier. // +// - the ARN associated with a resource that you wish to tag or untag. +// // To get the controlIdentifier for your AWS Control Tower control: // // The controlIdentifier is an ARN that is specified for each control. You can @@ -27,7 +29,7 @@ // // A quick-reference list of control identifers for the AWS Control Tower legacy // Strongly recommended and Elective controls is given in Resource identifiers -// for APIs and guardrails (https://docs.aws.amazon.com/controltower/latest/userguide/control-identifiers.html.html) +// for APIs and controls (https://docs.aws.amazon.com/controltower/latest/userguide/control-identifiers.html.html) // in the Controls reference guide section (https://docs.aws.amazon.com/controltower/latest/userguide/control-identifiers.html) // of the AWS Control Tower User Guide. Remember that Mandatory controls cannot // be added or removed. diff --git a/service/costandusagereportservice/api.go b/service/costandusagereportservice/api.go index 4d860c6a2d6..5914c625d20 100644 --- a/service/costandusagereportservice/api.go +++ b/service/costandusagereportservice/api.go @@ -55,7 +55,8 @@ func (c *CostandUsageReportService) DeleteReportDefinitionRequest(input *DeleteR // DeleteReportDefinition API operation for AWS Cost and Usage Report Service. // -// Deletes the specified report. +// Deletes the specified report. Any tags associated with the report are also +// deleted. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -71,7 +72,8 @@ func (c *CostandUsageReportService) DeleteReportDefinitionRequest(input *DeleteR // again later. // // - ValidationException -// The input fails to satisfy the constraints specified by an AWS service. +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/DeleteReportDefinition func (c *CostandUsageReportService) DeleteReportDefinition(input *DeleteReportDefinitionInput) (*DeleteReportDefinitionOutput, error) { @@ -144,7 +146,7 @@ func (c *CostandUsageReportService) DescribeReportDefinitionsRequest(input *Desc // DescribeReportDefinitions API operation for AWS Cost and Usage Report Service. // -// Lists the AWS Cost and Usage reports available to this account. +// Lists the Amazon Web Services Cost and Usage Report available to this account. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -231,6 +233,93 @@ func (c *CostandUsageReportService) DescribeReportDefinitionsPagesWithContext(ct return p.Err() } +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsForResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListTagsForResource for more information on using the ListTagsForResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListTagsForResourceRequest method. +// req, resp := client.ListTagsForResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/ListTagsForResource +func (c *CostandUsageReportService) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { + op := &request.Operation{ + Name: opListTagsForResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + output = &ListTagsForResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTagsForResource API operation for AWS Cost and Usage Report Service. +// +// Lists the tags associated with the specified report definition. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Cost and Usage Report Service's +// API operation ListTagsForResource for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The specified report (ReportName) in the request doesn't exist. +// +// - InternalErrorException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/ListTagsForResource +func (c *CostandUsageReportService) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + return out, req.Send() +} + +// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of +// the ability to pass a context and additional request options. +// +// See ListTagsForResource for details on how to use this API operation. +// +// 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 *CostandUsageReportService) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opModifyReportDefinition = "ModifyReportDefinition" // ModifyReportDefinitionRequest generates a "aws/request.Request" representing the @@ -275,7 +364,7 @@ func (c *CostandUsageReportService) ModifyReportDefinitionRequest(input *ModifyR // ModifyReportDefinition API operation for AWS Cost and Usage Report Service. // -// Allows you to programatically update your report preferences. +// Allows you to programmatically update your report preferences. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -291,7 +380,8 @@ func (c *CostandUsageReportService) ModifyReportDefinitionRequest(input *ModifyR // again later. // // - ValidationException -// The input fails to satisfy the constraints specified by an AWS service. +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/ModifyReportDefinition func (c *CostandUsageReportService) ModifyReportDefinition(input *ModifyReportDefinitionInput) (*ModifyReportDefinitionOutput, error) { @@ -383,7 +473,11 @@ func (c *CostandUsageReportService) PutReportDefinitionRequest(input *PutReportD // again later. // // - ValidationException -// The input fails to satisfy the constraints specified by an AWS service. +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// - ResourceNotFoundException +// The specified report (ReportName) in the request doesn't exist. // // See also, https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/PutReportDefinition func (c *CostandUsageReportService) PutReportDefinition(input *PutReportDefinitionInput) (*PutReportDefinitionOutput, error) { @@ -407,13 +501,191 @@ func (c *CostandUsageReportService) PutReportDefinitionWithContext(ctx aws.Conte return out, req.Send() } +const opTagResource = "TagResource" + +// TagResourceRequest generates a "aws/request.Request" representing the +// client's request for the TagResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See TagResource for more information on using the TagResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the TagResourceRequest method. +// req, resp := client.TagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/TagResource +func (c *CostandUsageReportService) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { + op := &request.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &TagResourceInput{} + } + + output = &TagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// TagResource API operation for AWS Cost and Usage Report Service. +// +// Associates a set of tags with a report definition. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Cost and Usage Report Service's +// API operation TagResource for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The specified report (ReportName) in the request doesn't exist. +// +// - InternalErrorException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/TagResource +func (c *CostandUsageReportService) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) + return out, req.Send() +} + +// TagResourceWithContext is the same as TagResource with the addition of +// the ability to pass a context and additional request options. +// +// See TagResource for details on how to use this API operation. +// +// 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 *CostandUsageReportService) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUntagResource = "UntagResource" + +// UntagResourceRequest generates a "aws/request.Request" representing the +// client's request for the UntagResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UntagResource for more information on using the UntagResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UntagResourceRequest method. +// req, resp := client.UntagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/UntagResource +func (c *CostandUsageReportService) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { + op := &request.Operation{ + Name: opUntagResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UntagResourceInput{} + } + + output = &UntagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UntagResource API operation for AWS Cost and Usage Report Service. +// +// Disassociates a set of tags from a report definition. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Cost and Usage Report Service's +// API operation UntagResource for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The specified report (ReportName) in the request doesn't exist. +// +// - InternalErrorException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/UntagResource +func (c *CostandUsageReportService) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + return out, req.Send() +} + +// UntagResourceWithContext is the same as UntagResource with the addition of +// the ability to pass a context and additional request options. +// +// See UntagResource for details on how to use this API operation. +// +// 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 *CostandUsageReportService) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + // Deletes the specified report. type DeleteReportDefinitionInput struct { _ struct{} `type:"structure"` // The name of the report that you want to delete. The name must be unique, // is case sensitive, and can't include spaces. - ReportName *string `type:"string"` + // + // ReportName is a required field + ReportName *string `type:"string" required:"true"` } // String returns the string representation. @@ -434,6 +706,19 @@ func (s DeleteReportDefinitionInput) GoString() string { return s.String() } +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteReportDefinitionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteReportDefinitionInput"} + if s.ReportName == nil { + invalidParams.Add(request.NewErrParamRequired("ReportName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // SetReportName sets the ReportName field's value. func (s *DeleteReportDefinitionInput) SetReportName(v string) *DeleteReportDefinitionInput { s.ReportName = &v @@ -472,11 +757,11 @@ func (s *DeleteReportDefinitionOutput) SetResponseMessage(v string) *DeleteRepor return s } -// Requests a list of AWS Cost and Usage reports owned by the account. +// Requests a Amazon Web Services Cost and Usage Report list owned by the account. type DescribeReportDefinitionsInput struct { _ struct{} `type:"structure"` - // The maximum number of results that AWS returns for the operation. + // The maximum number of results that Amazon Web Services returns for the operation. MaxResults *int64 `min:"5" type:"integer"` // A generic string. @@ -533,7 +818,7 @@ type DescribeReportDefinitionsOutput struct { // A generic string. NextToken *string `type:"string"` - // A list of AWS Cost and Usage reports owned by the account. + // An Amazon Web Services Cost and Usage Report list owned by the account. ReportDefinitions []*ReportDefinition `type:"list"` } @@ -699,18 +984,10 @@ func (s *InternalErrorException) RequestID() string { return s.RespMetadata.RequestID } -type ModifyReportDefinitionInput struct { +type ListTagsForResourceInput struct { _ struct{} `type:"structure"` - // The definition of AWS Cost and Usage Report. You can specify the report name, - // time unit, report format, compression format, S3 bucket, additional artifacts, - // and schema elements in the definition. - // - // ReportDefinition is a required field - ReportDefinition *ReportDefinition `type:"structure" required:"true"` - - // The name of the report that you want to create. The name must be unique, - // is case sensitive, and can't include spaces. + // The report name of the report definition that tags are to be returned for. // // ReportName is a required field ReportName *string `type:"string" required:"true"` @@ -721,7 +998,7 @@ type ModifyReportDefinitionInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ModifyReportDefinitionInput) String() string { +func (s ListTagsForResourceInput) String() string { return awsutil.Prettify(s) } @@ -730,24 +1007,16 @@ func (s ModifyReportDefinitionInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ModifyReportDefinitionInput) GoString() string { +func (s ListTagsForResourceInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *ModifyReportDefinitionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ModifyReportDefinitionInput"} - if s.ReportDefinition == nil { - invalidParams.Add(request.NewErrParamRequired("ReportDefinition")) - } +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} if s.ReportName == nil { invalidParams.Add(request.NewErrParamRequired("ReportName")) } - if s.ReportDefinition != nil { - if err := s.ReportDefinition.Validate(); err != nil { - invalidParams.AddNested("ReportDefinition", err.(request.ErrInvalidParams)) - } - } if invalidParams.Len() > 0 { return invalidParams @@ -755,20 +1024,17 @@ func (s *ModifyReportDefinitionInput) Validate() error { return nil } -// SetReportDefinition sets the ReportDefinition field's value. -func (s *ModifyReportDefinitionInput) SetReportDefinition(v *ReportDefinition) *ModifyReportDefinitionInput { - s.ReportDefinition = v - return s -} - // SetReportName sets the ReportName field's value. -func (s *ModifyReportDefinitionInput) SetReportName(v string) *ModifyReportDefinitionInput { +func (s *ListTagsForResourceInput) SetReportName(v string) *ListTagsForResourceInput { s.ReportName = &v return s } -type ModifyReportDefinitionOutput struct { +type ListTagsForResourceOutput struct { _ struct{} `type:"structure"` + + // The tags assigned to the report definition resource. + Tags []*Tag `type:"list"` } // String returns the string representation. @@ -776,7 +1042,7 @@ type ModifyReportDefinitionOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ModifyReportDefinitionOutput) String() string { +func (s ListTagsForResourceOutput) String() string { return awsutil.Prettify(s) } @@ -785,19 +1051,31 @@ func (s ModifyReportDefinitionOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ModifyReportDefinitionOutput) GoString() string { +func (s ListTagsForResourceOutput) GoString() string { return s.String() } -// Creates a Cost and Usage Report. -type PutReportDefinitionInput struct { +// SetTags sets the Tags field's value. +func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput { + s.Tags = v + return s +} + +type ModifyReportDefinitionInput struct { _ struct{} `type:"structure"` - // Represents the output of the PutReportDefinition operation. The content consists - // of the detailed metadata and data file information. + // The definition of Amazon Web Services Cost and Usage Report. You can specify + // the report name, time unit, report format, compression format, S3 bucket, + // additional artifacts, and schema elements in the definition. // // ReportDefinition is a required field ReportDefinition *ReportDefinition `type:"structure" required:"true"` + + // The name of the report that you want to create. The name must be unique, + // is case sensitive, and can't include spaces. + // + // ReportName is a required field + ReportName *string `type:"string" required:"true"` } // String returns the string representation. @@ -805,7 +1083,7 @@ type PutReportDefinitionInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s PutReportDefinitionInput) String() string { +func (s ModifyReportDefinitionInput) String() string { return awsutil.Prettify(s) } @@ -814,13 +1092,100 @@ func (s PutReportDefinitionInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s PutReportDefinitionInput) GoString() string { +func (s ModifyReportDefinitionInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *PutReportDefinitionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "PutReportDefinitionInput"} +func (s *ModifyReportDefinitionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ModifyReportDefinitionInput"} + if s.ReportDefinition == nil { + invalidParams.Add(request.NewErrParamRequired("ReportDefinition")) + } + if s.ReportName == nil { + invalidParams.Add(request.NewErrParamRequired("ReportName")) + } + if s.ReportDefinition != nil { + if err := s.ReportDefinition.Validate(); err != nil { + invalidParams.AddNested("ReportDefinition", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetReportDefinition sets the ReportDefinition field's value. +func (s *ModifyReportDefinitionInput) SetReportDefinition(v *ReportDefinition) *ModifyReportDefinitionInput { + s.ReportDefinition = v + return s +} + +// SetReportName sets the ReportName field's value. +func (s *ModifyReportDefinitionInput) SetReportName(v string) *ModifyReportDefinitionInput { + s.ReportName = &v + return s +} + +type ModifyReportDefinitionOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ModifyReportDefinitionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ModifyReportDefinitionOutput) GoString() string { + return s.String() +} + +// Creates a Cost and Usage Report. +type PutReportDefinitionInput struct { + _ struct{} `type:"structure"` + + // Represents the output of the PutReportDefinition operation. The content consists + // of the detailed metadata and data file information. + // + // ReportDefinition is a required field + ReportDefinition *ReportDefinition `type:"structure" required:"true"` + + // The tags to be assigned to the report definition resource. + Tags []*Tag `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutReportDefinitionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutReportDefinitionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutReportDefinitionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutReportDefinitionInput"} if s.ReportDefinition == nil { invalidParams.Add(request.NewErrParamRequired("ReportDefinition")) } @@ -829,6 +1194,16 @@ func (s *PutReportDefinitionInput) Validate() error { invalidParams.AddNested("ReportDefinition", err.(request.ErrInvalidParams)) } } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -842,6 +1217,12 @@ func (s *PutReportDefinitionInput) SetReportDefinition(v *ReportDefinition) *Put return s } +// SetTags sets the Tags field's value. +func (s *PutReportDefinitionInput) SetTags(v []*Tag) *PutReportDefinitionInput { + s.Tags = v + return s +} + // If the action is successful, the service sends back an HTTP 200 response // with an empty HTTP body. type PutReportDefinitionOutput struct { @@ -866,9 +1247,9 @@ func (s PutReportDefinitionOutput) GoString() string { return s.String() } -// The definition of AWS Cost and Usage Report. You can specify the report name, -// time unit, report format, compression format, S3 bucket, additional artifacts, -// and schema elements in the definition. +// The definition of Amazon Web Services Cost and Usage Report. You can specify +// the report name, time unit, report format, compression format, S3 bucket, +// additional artifacts, and schema elements in the definition. type ReportDefinition struct { _ struct{} `type:"structure"` @@ -882,16 +1263,18 @@ type ReportDefinition struct { // AdditionalSchemaElements is a required field AdditionalSchemaElements []*string `type:"list" required:"true" enum:"SchemaElement"` - // The Amazon resource name of the billing view. You can get this value by using - // the billing view service public APIs. + // The Amazon resource name of the billing view. The BillingViewArn is needed + // to create Amazon Web Services Cost and Usage Report for each billing group + // maintained in the Amazon Web Services Billing Conductor service. The BillingViewArn + // for a billing group can be constructed as: arn:aws:billing::payer-account-id:billingview/billing-group-primary-account-id BillingViewArn *string `type:"string"` - // The compression format that AWS uses for the report. + // The compression format that Amazon Web Services uses for the report. // // Compression is a required field Compression *string `type:"string" required:"true" enum:"CompressionFormat"` - // The format that AWS saves the report in. + // The format that Amazon Web Services saves the report in. // // Format is a required field Format *string `type:"string" required:"true" enum:"ReportFormat"` @@ -907,22 +1290,26 @@ type ReportDefinition struct { // ReportName is a required field ReportName *string `type:"string" required:"true"` + // The status of the report. + ReportStatus *ReportStatus `type:"structure"` + // Whether you want Amazon Web Services to overwrite the previous version of // each report or to deliver the report in addition to the previous versions. ReportVersioning *string `type:"string" enum:"ReportVersioning"` - // The S3 bucket where AWS delivers the report. + // The S3 bucket where Amazon Web Services delivers the report. // // S3Bucket is a required field S3Bucket *string `type:"string" required:"true"` - // The prefix that AWS adds to the report name when AWS delivers the report. - // Your prefix can't include spaces. + // The prefix that Amazon Web Services adds to the report name when Amazon Web + // Services delivers the report. Your prefix can't include spaces. // // S3Prefix is a required field S3Prefix *string `type:"string" required:"true"` - // The region of the S3 bucket that AWS delivers the report into. + // The region of the S3 bucket that Amazon Web Services delivers the report + // into. // // S3Region is a required field S3Region *string `type:"string" required:"true" enum:"AWSRegion"` @@ -978,6 +1365,11 @@ func (s *ReportDefinition) Validate() error { if s.TimeUnit == nil { invalidParams.Add(request.NewErrParamRequired("TimeUnit")) } + if s.ReportStatus != nil { + if err := s.ReportStatus.Validate(); err != nil { + invalidParams.AddNested("ReportStatus", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -1027,6 +1419,12 @@ func (s *ReportDefinition) SetReportName(v string) *ReportDefinition { return s } +// SetReportStatus sets the ReportStatus field's value. +func (s *ReportDefinition) SetReportStatus(v *ReportStatus) *ReportDefinition { + s.ReportStatus = v + return s +} + // SetReportVersioning sets the ReportVersioning field's value. func (s *ReportDefinition) SetReportVersioning(v string) *ReportDefinition { s.ReportVersioning = &v @@ -1123,7 +1521,373 @@ func (s *ReportLimitReachedException) RequestID() string { return s.RespMetadata.RequestID } -// The input fails to satisfy the constraints specified by an AWS service. +// A two element dictionary with a lastDelivery and lastStatus key whose values +// describe the date and status of the last delivered report for a particular +// report definition. +type ReportStatus struct { + _ struct{} `type:"structure"` + + // A timestamp that gives the date of a report delivery. + LastDelivery *string `locationName:"lastDelivery" min:"16" type:"string"` + + // An enum that gives the status of a report delivery. + LastStatus *string `locationName:"lastStatus" type:"string" enum:"LastStatus"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ReportStatus) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ReportStatus) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ReportStatus) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ReportStatus"} + if s.LastDelivery != nil && len(*s.LastDelivery) < 16 { + invalidParams.Add(request.NewErrParamMinLen("LastDelivery", 16)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLastDelivery sets the LastDelivery field's value. +func (s *ReportStatus) SetLastDelivery(v string) *ReportStatus { + s.LastDelivery = &v + return s +} + +// SetLastStatus sets the LastStatus field's value. +func (s *ReportStatus) SetLastStatus(v string) *ReportStatus { + s.LastStatus = &v + return s +} + +// The specified report (ReportName) in the request doesn't exist. +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // A message to show the detail of the exception. + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) GoString() string { + return s.String() +} + +func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { + return &ResourceNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceNotFoundException) Code() string { + return "ResourceNotFoundException" +} + +// Message returns the exception's message. +func (s *ResourceNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceNotFoundException) OrigErr() error { + return nil +} + +func (s *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Describes a tag. A tag is a key-value pair. You can add up to 50 tags to +// a report definition. +type Tag struct { + _ struct{} `type:"structure"` + + // The key of the tag. Tag keys are case sensitive. Each report definition can + // only have up to one tag with the same key. If you try to add an existing + // tag with the same key, the existing tag value will be updated to the new + // value. + // + // Key is a required field + Key *string `min:"1" type:"string" required:"true"` + + // The value of the tag. Tag values are case-sensitive. This can be an empty + // string. + // + // Value is a required field + Value *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Tag) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Tag) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Tag) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Tag"} + if s.Key == nil { + invalidParams.Add(request.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Key", 1)) + } + if s.Value == nil { + invalidParams.Add(request.NewErrParamRequired("Value")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKey sets the Key field's value. +func (s *Tag) SetKey(v string) *Tag { + s.Key = &v + return s +} + +// SetValue sets the Value field's value. +func (s *Tag) SetValue(v string) *Tag { + s.Value = &v + return s +} + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The report name of the report definition that tags are to be associated with. + // + // ReportName is a required field + ReportName *string `type:"string" required:"true"` + + // The tags to be assigned to the report definition resource. + // + // Tags is a required field + Tags []*Tag `type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"} + if s.ReportName == nil { + invalidParams.Add(request.NewErrParamRequired("ReportName")) + } + if s.Tags == nil { + invalidParams.Add(request.NewErrParamRequired("Tags")) + } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetReportName sets the ReportName field's value. +func (s *TagResourceInput) SetReportName(v string) *TagResourceInput { + s.ReportName = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput { + s.Tags = v + return s +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceOutput) GoString() string { + return s.String() +} + +type UntagResourceInput struct { + _ struct{} `type:"structure"` + + // The report name of the report definition that tags are to be disassociated + // from. + // + // ReportName is a required field + ReportName *string `type:"string" required:"true"` + + // The tags to be disassociated from the report definition resource. + // + // TagKeys is a required field + TagKeys []*string `type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"} + if s.ReportName == nil { + invalidParams.Add(request.NewErrParamRequired("ReportName")) + } + if s.TagKeys == nil { + invalidParams.Add(request.NewErrParamRequired("TagKeys")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetReportName sets the ReportName field's value. +func (s *UntagResourceInput) SetReportName(v string) *UntagResourceInput { + s.ReportName = &v + return s +} + +// SetTagKeys sets the TagKeys field's value. +func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { + s.TagKeys = v + return s +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceOutput) GoString() string { + return s.String() +} + +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. type ValidationException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -1188,7 +1952,8 @@ func (s *ValidationException) RequestID() string { return s.RespMetadata.RequestID } -// The region of the S3 bucket that AWS delivers the report into. +// The region of the S3 bucket that Amazon Web Services delivers the report +// into. const ( // AWSRegionAfSouth1 is a AWSRegion enum value AWSRegionAfSouth1 = "af-south-1" @@ -1309,7 +2074,8 @@ func AWSRegion_Values() []string { } } -// The types of manifest that you want AWS to create for this report. +// The types of manifest that you want Amazon Web Services to create for this +// report. const ( // AdditionalArtifactRedshift is a AdditionalArtifact enum value AdditionalArtifactRedshift = "REDSHIFT" @@ -1330,7 +2096,7 @@ func AdditionalArtifact_Values() []string { } } -// The compression format that AWS uses for the report. +// The compression format that Amazon Web Services uses for the report. const ( // CompressionFormatZip is a CompressionFormat enum value CompressionFormatZip = "ZIP" @@ -1351,7 +2117,27 @@ func CompressionFormat_Values() []string { } } -// The format that AWS saves the report in. +const ( + // LastStatusSuccess is a LastStatus enum value + LastStatusSuccess = "SUCCESS" + + // LastStatusErrorPermissions is a LastStatus enum value + LastStatusErrorPermissions = "ERROR_PERMISSIONS" + + // LastStatusErrorNoBucket is a LastStatus enum value + LastStatusErrorNoBucket = "ERROR_NO_BUCKET" +) + +// LastStatus_Values returns all elements of the LastStatus enum +func LastStatus_Values() []string { + return []string{ + LastStatusSuccess, + LastStatusErrorPermissions, + LastStatusErrorNoBucket, + } +} + +// The format that Amazon Web Services saves the report in. const ( // ReportFormatTextOrcsv is a ReportFormat enum value ReportFormatTextOrcsv = "textORcsv" @@ -1384,13 +2170,16 @@ func ReportVersioning_Values() []string { } } -// Whether or not AWS includes resource IDs in the report. +// Whether or not Amazon Web Services includes resource IDs in the report. const ( // SchemaElementResources is a SchemaElement enum value SchemaElementResources = "RESOURCES" // SchemaElementSplitCostAllocationData is a SchemaElement enum value SchemaElementSplitCostAllocationData = "SPLIT_COST_ALLOCATION_DATA" + + // SchemaElementManualDiscountCompatibility is a SchemaElement enum value + SchemaElementManualDiscountCompatibility = "MANUAL_DISCOUNT_COMPATIBILITY" ) // SchemaElement_Values returns all elements of the SchemaElement enum @@ -1398,6 +2187,7 @@ func SchemaElement_Values() []string { return []string{ SchemaElementResources, SchemaElementSplitCostAllocationData, + SchemaElementManualDiscountCompatibility, } } diff --git a/service/costandusagereportservice/costandusagereportserviceiface/interface.go b/service/costandusagereportservice/costandusagereportserviceiface/interface.go index 780b2f8d3a6..09a11e5940d 100644 --- a/service/costandusagereportservice/costandusagereportserviceiface/interface.go +++ b/service/costandusagereportservice/costandusagereportserviceiface/interface.go @@ -71,6 +71,10 @@ type CostandUsageReportServiceAPI interface { DescribeReportDefinitionsPages(*costandusagereportservice.DescribeReportDefinitionsInput, func(*costandusagereportservice.DescribeReportDefinitionsOutput, bool) bool) error DescribeReportDefinitionsPagesWithContext(aws.Context, *costandusagereportservice.DescribeReportDefinitionsInput, func(*costandusagereportservice.DescribeReportDefinitionsOutput, bool) bool, ...request.Option) error + ListTagsForResource(*costandusagereportservice.ListTagsForResourceInput) (*costandusagereportservice.ListTagsForResourceOutput, error) + ListTagsForResourceWithContext(aws.Context, *costandusagereportservice.ListTagsForResourceInput, ...request.Option) (*costandusagereportservice.ListTagsForResourceOutput, error) + ListTagsForResourceRequest(*costandusagereportservice.ListTagsForResourceInput) (*request.Request, *costandusagereportservice.ListTagsForResourceOutput) + ModifyReportDefinition(*costandusagereportservice.ModifyReportDefinitionInput) (*costandusagereportservice.ModifyReportDefinitionOutput, error) ModifyReportDefinitionWithContext(aws.Context, *costandusagereportservice.ModifyReportDefinitionInput, ...request.Option) (*costandusagereportservice.ModifyReportDefinitionOutput, error) ModifyReportDefinitionRequest(*costandusagereportservice.ModifyReportDefinitionInput) (*request.Request, *costandusagereportservice.ModifyReportDefinitionOutput) @@ -78,6 +82,14 @@ type CostandUsageReportServiceAPI interface { PutReportDefinition(*costandusagereportservice.PutReportDefinitionInput) (*costandusagereportservice.PutReportDefinitionOutput, error) PutReportDefinitionWithContext(aws.Context, *costandusagereportservice.PutReportDefinitionInput, ...request.Option) (*costandusagereportservice.PutReportDefinitionOutput, error) PutReportDefinitionRequest(*costandusagereportservice.PutReportDefinitionInput) (*request.Request, *costandusagereportservice.PutReportDefinitionOutput) + + TagResource(*costandusagereportservice.TagResourceInput) (*costandusagereportservice.TagResourceOutput, error) + TagResourceWithContext(aws.Context, *costandusagereportservice.TagResourceInput, ...request.Option) (*costandusagereportservice.TagResourceOutput, error) + TagResourceRequest(*costandusagereportservice.TagResourceInput) (*request.Request, *costandusagereportservice.TagResourceOutput) + + UntagResource(*costandusagereportservice.UntagResourceInput) (*costandusagereportservice.UntagResourceOutput, error) + UntagResourceWithContext(aws.Context, *costandusagereportservice.UntagResourceInput, ...request.Option) (*costandusagereportservice.UntagResourceOutput, error) + UntagResourceRequest(*costandusagereportservice.UntagResourceInput) (*request.Request, *costandusagereportservice.UntagResourceOutput) } var _ CostandUsageReportServiceAPI = (*costandusagereportservice.CostandUsageReportService)(nil) diff --git a/service/costandusagereportservice/doc.go b/service/costandusagereportservice/doc.go index fc5df5295ca..6c3d3d26340 100644 --- a/service/costandusagereportservice/doc.go +++ b/service/costandusagereportservice/doc.go @@ -3,18 +3,21 @@ // Package costandusagereportservice provides the client and types for making API // requests to AWS Cost and Usage Report Service. // -// The AWS Cost and Usage Report API enables you to programmatically create, -// query, and delete AWS Cost and Usage report definitions. +// You can use the Amazon Web Services Cost and Usage Report API to programmatically +// create, query, and delete Amazon Web Services Cost and Usage Report definitions. // -// AWS Cost and Usage reports track the monthly AWS costs and usage associated -// with your AWS account. The report contains line items for each unique combination -// of AWS product, usage type, and operation that your AWS account uses. You -// can configure the AWS Cost and Usage report to show only the data that you -// want, using the AWS Cost and Usage API. +// Amazon Web Services Cost and Usage Report track the monthly Amazon Web Services +// costs and usage associated with your Amazon Web Services account. The report +// contains line items for each unique combination of Amazon Web Services product, +// usage type, and operation that your Amazon Web Services account uses. You +// can configure the Amazon Web Services Cost and Usage Report to show only +// the data that you want, using the Amazon Web Services Cost and Usage Report +// API. // // # Service Endpoint // -// The AWS Cost and Usage Report API provides the following endpoint: +// The Amazon Web Services Cost and Usage Report API provides the following +// endpoint: // // - cur.us-east-1.amazonaws.com // diff --git a/service/costandusagereportservice/errors.go b/service/costandusagereportservice/errors.go index 8ce7a64bd25..eed05717a5c 100644 --- a/service/costandusagereportservice/errors.go +++ b/service/costandusagereportservice/errors.go @@ -29,10 +29,17 @@ const ( // must delete an existing report. ErrCodeReportLimitReachedException = "ReportLimitReachedException" + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The specified report (ReportName) in the request doesn't exist. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + // ErrCodeValidationException for service response error code // "ValidationException". // - // The input fails to satisfy the constraints specified by an AWS service. + // The input fails to satisfy the constraints specified by an Amazon Web Services + // service. ErrCodeValidationException = "ValidationException" ) @@ -40,5 +47,6 @@ var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ "DuplicateReportNameException": newErrorDuplicateReportNameException, "InternalErrorException": newErrorInternalErrorException, "ReportLimitReachedException": newErrorReportLimitReachedException, + "ResourceNotFoundException": newErrorResourceNotFoundException, "ValidationException": newErrorValidationException, } diff --git a/service/costandusagereportservice/examples_test.go b/service/costandusagereportservice/examples_test.go index 4f0550b3f3d..8a91b7a4047 100644 --- a/service/costandusagereportservice/examples_test.go +++ b/service/costandusagereportservice/examples_test.go @@ -118,6 +118,8 @@ func ExampleCostandUsageReportService_PutReportDefinition_shared00() { fmt.Println(costandusagereportservice.ErrCodeInternalErrorException, aerr.Error()) case costandusagereportservice.ErrCodeValidationException: fmt.Println(costandusagereportservice.ErrCodeValidationException, aerr.Error()) + case costandusagereportservice.ErrCodeResourceNotFoundException: + fmt.Println(costandusagereportservice.ErrCodeResourceNotFoundException, aerr.Error()) default: fmt.Println(aerr.Error()) } diff --git a/service/ec2/api.go b/service/ec2/api.go index f3e52ea3c4e..771093bbf98 100644 --- a/service/ec2/api.go +++ b/service/ec2/api.go @@ -61732,16 +61732,25 @@ func (s *AttachVpnGatewayOutput) SetVpcAttachment(v *VpcAttachment) *AttachVpnGa return s } -// Describes the ENA Express configuration for the network interface that's -// attached to the instance. +// ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology +// to increase the maximum bandwidth used per stream and minimize tail latency +// of network traffic between EC2 instances. With ENA Express, you can communicate +// between two EC2 instances in the same subnet within the same account, or +// in different accounts. Both sending and receiving instances must have ENA +// Express enabled. +// +// To improve the reliability of network packet delivery, ENA Express reorders +// network packets on the receiving end by default. However, some UDP-based +// applications are designed to handle network packets that are out of order +// to reduce the overhead for packet delivery at the network layer. When ENA +// Express is enabled, you can specify whether UDP network traffic uses it. type AttachmentEnaSrdSpecification struct { _ struct{} `type:"structure"` - // Indicates whether ENA Express is enabled for the network interface that's - // attached to the instance. + // Indicates whether ENA Express is enabled for the network interface. EnaSrdEnabled *bool `locationName:"enaSrdEnabled" type:"boolean"` - // ENA Express configuration for UDP network traffic. + // Configures ENA Express for UDP network traffic. EnaSrdUdpSpecification *AttachmentEnaSrdUdpSpecification `locationName:"enaSrdUdpSpecification" type:"structure"` } @@ -61775,8 +61784,12 @@ func (s *AttachmentEnaSrdSpecification) SetEnaSrdUdpSpecification(v *AttachmentE return s } -// Describes the ENA Express configuration for UDP traffic on the network interface -// that's attached to the instance. +// ENA Express is compatible with both TCP and UDP transport protocols. When +// it's enabled, TCP traffic automatically uses it. However, some UDP-based +// applications are designed to handle network packets that are out of order, +// without a need for retransmission, such as live video broadcasting or other +// near-real-time applications. For UDP traffic, you can specify whether to +// use ENA Express, based on your application environment needs. type AttachmentEnaSrdUdpSpecification struct { _ struct{} `type:"structure"` @@ -96797,8 +96810,8 @@ type DescribeInstancesInput struct { // // * instance-id - The ID of the instance. // - // * instance-lifecycle - Indicates whether this is a Spot Instance or a - // Scheduled Instance (spot | scheduled). + // * instance-lifecycle - Indicates whether this is a Spot Instance, a Scheduled + // Instance, or a Capacity Block (spot | scheduled | capacity-block). // // * instance-state-code - The state of the instance, as a 16-bit unsigned // integer. The high byte is used for internal purposes and should be ignored. @@ -115699,8 +115712,50 @@ func (s *EnaSrdSpecification) SetEnaSrdUdpSpecification(v *EnaSrdUdpSpecificatio return s } +// Launch instances with ENA Express settings configured from your launch template. +type EnaSrdSpecificationRequest struct { + _ struct{} `type:"structure"` + + // Specifies whether ENA Express is enabled for the network interface when you + // launch an instance from your launch template. + EnaSrdEnabled *bool `type:"boolean"` + + // Contains ENA Express settings for UDP network traffic in your launch template. + EnaSrdUdpSpecification *EnaSrdUdpSpecificationRequest `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EnaSrdSpecificationRequest) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EnaSrdSpecificationRequest) GoString() string { + return s.String() +} + +// SetEnaSrdEnabled sets the EnaSrdEnabled field's value. +func (s *EnaSrdSpecificationRequest) SetEnaSrdEnabled(v bool) *EnaSrdSpecificationRequest { + s.EnaSrdEnabled = &v + return s +} + +// SetEnaSrdUdpSpecification sets the EnaSrdUdpSpecification field's value. +func (s *EnaSrdSpecificationRequest) SetEnaSrdUdpSpecification(v *EnaSrdUdpSpecificationRequest) *EnaSrdSpecificationRequest { + s.EnaSrdUdpSpecification = v + return s +} + // ENA Express is compatible with both TCP and UDP transport protocols. When -// it’s enabled, TCP traffic automatically uses it. However, some UDP-based +// it's enabled, TCP traffic automatically uses it. However, some UDP-based // applications are designed to handle network packets that are out of order, // without a need for retransmission, such as live video broadcasting or other // near-real-time applications. For UDP traffic, you can specify whether to @@ -115708,8 +115763,8 @@ func (s *EnaSrdSpecification) SetEnaSrdUdpSpecification(v *EnaSrdUdpSpecificatio type EnaSrdUdpSpecification struct { _ struct{} `type:"structure"` - // Indicates whether UDP traffic uses ENA Express. To specify this setting, - // you must first enable ENA Express. + // Indicates whether UDP traffic to and from the instance uses ENA Express. + // To specify this setting, you must first enable ENA Express. EnaSrdUdpEnabled *bool `type:"boolean"` } @@ -115737,6 +115792,41 @@ func (s *EnaSrdUdpSpecification) SetEnaSrdUdpEnabled(v bool) *EnaSrdUdpSpecifica return s } +// Configures ENA Express for UDP network traffic from your launch template. +type EnaSrdUdpSpecificationRequest struct { + _ struct{} `type:"structure"` + + // Indicates whether UDP traffic uses ENA Express for your instance. To ensure + // that UDP traffic can use ENA Express when you launch an instance, you must + // also set EnaSrdEnabled in the EnaSrdSpecificationRequest to true in your + // launch template. + EnaSrdUdpEnabled *bool `type:"boolean"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EnaSrdUdpSpecificationRequest) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EnaSrdUdpSpecificationRequest) GoString() string { + return s.String() +} + +// SetEnaSrdUdpEnabled sets the EnaSrdUdpEnabled field's value. +func (s *EnaSrdUdpSpecificationRequest) SetEnaSrdUdpEnabled(v bool) *EnaSrdUdpSpecificationRequest { + s.EnaSrdUdpEnabled = &v + return s +} + type EnableAddressTransferInput struct { _ struct{} `type:"structure"` @@ -131623,6 +131713,96 @@ func (s *Instance) SetVpcId(v string) *Instance { return s } +// ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology +// to increase the maximum bandwidth used per stream and minimize tail latency +// of network traffic between EC2 instances. With ENA Express, you can communicate +// between two EC2 instances in the same subnet within the same account, or +// in different accounts. Both sending and receiving instances must have ENA +// Express enabled. +// +// To improve the reliability of network packet delivery, ENA Express reorders +// network packets on the receiving end by default. However, some UDP-based +// applications are designed to handle network packets that are out of order +// to reduce the overhead for packet delivery at the network layer. When ENA +// Express is enabled, you can specify whether UDP network traffic uses it. +type InstanceAttachmentEnaSrdSpecification struct { + _ struct{} `type:"structure"` + + // Indicates whether ENA Express is enabled for the network interface. + EnaSrdEnabled *bool `locationName:"enaSrdEnabled" type:"boolean"` + + // Configures ENA Express for UDP network traffic. + EnaSrdUdpSpecification *InstanceAttachmentEnaSrdUdpSpecification `locationName:"enaSrdUdpSpecification" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InstanceAttachmentEnaSrdSpecification) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InstanceAttachmentEnaSrdSpecification) GoString() string { + return s.String() +} + +// SetEnaSrdEnabled sets the EnaSrdEnabled field's value. +func (s *InstanceAttachmentEnaSrdSpecification) SetEnaSrdEnabled(v bool) *InstanceAttachmentEnaSrdSpecification { + s.EnaSrdEnabled = &v + return s +} + +// SetEnaSrdUdpSpecification sets the EnaSrdUdpSpecification field's value. +func (s *InstanceAttachmentEnaSrdSpecification) SetEnaSrdUdpSpecification(v *InstanceAttachmentEnaSrdUdpSpecification) *InstanceAttachmentEnaSrdSpecification { + s.EnaSrdUdpSpecification = v + return s +} + +// ENA Express is compatible with both TCP and UDP transport protocols. When +// it's enabled, TCP traffic automatically uses it. However, some UDP-based +// applications are designed to handle network packets that are out of order, +// without a need for retransmission, such as live video broadcasting or other +// near-real-time applications. For UDP traffic, you can specify whether to +// use ENA Express, based on your application environment needs. +type InstanceAttachmentEnaSrdUdpSpecification struct { + _ struct{} `type:"structure"` + + // Indicates whether UDP traffic to and from the instance uses ENA Express. + // To specify this setting, you must first enable ENA Express. + EnaSrdUdpEnabled *bool `locationName:"enaSrdUdpEnabled" type:"boolean"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InstanceAttachmentEnaSrdUdpSpecification) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InstanceAttachmentEnaSrdUdpSpecification) GoString() string { + return s.String() +} + +// SetEnaSrdUdpEnabled sets the EnaSrdUdpEnabled field's value. +func (s *InstanceAttachmentEnaSrdUdpSpecification) SetEnaSrdUdpEnabled(v bool) *InstanceAttachmentEnaSrdUdpSpecification { + s.EnaSrdUdpEnabled = &v + return s +} + // Describes a block device mapping. type InstanceBlockDeviceMapping struct { _ struct{} `type:"structure"` @@ -133173,6 +133353,10 @@ type InstanceNetworkInterfaceAttachment struct { // The index of the device on the instance for the network interface attachment. DeviceIndex *int64 `locationName:"deviceIndex" type:"integer"` + // Contains the ENA Express settings for the network interface that's attached + // to the instance. + EnaSrdSpecification *InstanceAttachmentEnaSrdSpecification `locationName:"enaSrdSpecification" type:"structure"` + // The index of the network card. NetworkCardIndex *int64 `locationName:"networkCardIndex" type:"integer"` @@ -133222,6 +133406,12 @@ func (s *InstanceNetworkInterfaceAttachment) SetDeviceIndex(v int64) *InstanceNe return s } +// SetEnaSrdSpecification sets the EnaSrdSpecification field's value. +func (s *InstanceNetworkInterfaceAttachment) SetEnaSrdSpecification(v *InstanceAttachmentEnaSrdSpecification) *InstanceNetworkInterfaceAttachment { + s.EnaSrdSpecification = v + return s +} + // SetNetworkCardIndex sets the NetworkCardIndex field's value. func (s *InstanceNetworkInterfaceAttachment) SetNetworkCardIndex(v int64) *InstanceNetworkInterfaceAttachment { s.NetworkCardIndex = &v @@ -133269,6 +133459,10 @@ type InstanceNetworkInterfaceSpecification struct { // the device index. DeviceIndex *int64 `locationName:"deviceIndex" type:"integer"` + // Specifies the ENA Express settings for the network interface that's attached + // to the instance. + EnaSrdSpecification *EnaSrdSpecificationRequest `type:"structure"` + // The IDs of the security groups for the network interface. Applies only if // creating a network interface when launching an instance. Groups []*string `locationName:"SecurityGroupId" locationNameList:"SecurityGroupId" type:"list"` @@ -133402,6 +133596,12 @@ func (s *InstanceNetworkInterfaceSpecification) SetDeviceIndex(v int64) *Instanc return s } +// SetEnaSrdSpecification sets the EnaSrdSpecification field's value. +func (s *InstanceNetworkInterfaceSpecification) SetEnaSrdSpecification(v *EnaSrdSpecificationRequest) *InstanceNetworkInterfaceSpecification { + s.EnaSrdSpecification = v + return s +} + // SetGroups sets the Groups field's value. func (s *InstanceNetworkInterfaceSpecification) SetGroups(v []*string) *InstanceNetworkInterfaceSpecification { s.Groups = v @@ -139212,6 +139412,96 @@ func (s *LaunchTemplateElasticInferenceAcceleratorResponse) SetType(v string) *L return s } +// ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology +// to increase the maximum bandwidth used per stream and minimize tail latency +// of network traffic between EC2 instances. With ENA Express, you can communicate +// between two EC2 instances in the same subnet within the same account, or +// in different accounts. Both sending and receiving instances must have ENA +// Express enabled. +// +// To improve the reliability of network packet delivery, ENA Express reorders +// network packets on the receiving end by default. However, some UDP-based +// applications are designed to handle network packets that are out of order +// to reduce the overhead for packet delivery at the network layer. When ENA +// Express is enabled, you can specify whether UDP network traffic uses it. +type LaunchTemplateEnaSrdSpecification struct { + _ struct{} `type:"structure"` + + // Indicates whether ENA Express is enabled for the network interface. + EnaSrdEnabled *bool `locationName:"enaSrdEnabled" type:"boolean"` + + // Configures ENA Express for UDP network traffic. + EnaSrdUdpSpecification *LaunchTemplateEnaSrdUdpSpecification `locationName:"enaSrdUdpSpecification" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LaunchTemplateEnaSrdSpecification) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LaunchTemplateEnaSrdSpecification) GoString() string { + return s.String() +} + +// SetEnaSrdEnabled sets the EnaSrdEnabled field's value. +func (s *LaunchTemplateEnaSrdSpecification) SetEnaSrdEnabled(v bool) *LaunchTemplateEnaSrdSpecification { + s.EnaSrdEnabled = &v + return s +} + +// SetEnaSrdUdpSpecification sets the EnaSrdUdpSpecification field's value. +func (s *LaunchTemplateEnaSrdSpecification) SetEnaSrdUdpSpecification(v *LaunchTemplateEnaSrdUdpSpecification) *LaunchTemplateEnaSrdSpecification { + s.EnaSrdUdpSpecification = v + return s +} + +// ENA Express is compatible with both TCP and UDP transport protocols. When +// it's enabled, TCP traffic automatically uses it. However, some UDP-based +// applications are designed to handle network packets that are out of order, +// without a need for retransmission, such as live video broadcasting or other +// near-real-time applications. For UDP traffic, you can specify whether to +// use ENA Express, based on your application environment needs. +type LaunchTemplateEnaSrdUdpSpecification struct { + _ struct{} `type:"structure"` + + // Indicates whether UDP traffic to and from the instance uses ENA Express. + // To specify this setting, you must first enable ENA Express. + EnaSrdUdpEnabled *bool `locationName:"enaSrdUdpEnabled" type:"boolean"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LaunchTemplateEnaSrdUdpSpecification) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LaunchTemplateEnaSrdUdpSpecification) GoString() string { + return s.String() +} + +// SetEnaSrdUdpEnabled sets the EnaSrdUdpEnabled field's value. +func (s *LaunchTemplateEnaSrdUdpSpecification) SetEnaSrdUdpEnabled(v bool) *LaunchTemplateEnaSrdUdpSpecification { + s.EnaSrdUdpEnabled = &v + return s +} + // Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves. type LaunchTemplateEnclaveOptions struct { _ struct{} `type:"structure"` @@ -139818,6 +140108,10 @@ type LaunchTemplateInstanceNetworkInterfaceSpecification struct { // The device index for the network interface attachment. DeviceIndex *int64 `locationName:"deviceIndex" type:"integer"` + // Contains the ENA Express settings for instances launched from your launch + // template. + EnaSrdSpecification *LaunchTemplateEnaSrdSpecification `locationName:"enaSrdSpecification" type:"structure"` + // The IDs of one or more security groups. Groups []*string `locationName:"groupSet" locationNameList:"groupId" type:"list"` @@ -139918,6 +140212,12 @@ func (s *LaunchTemplateInstanceNetworkInterfaceSpecification) SetDeviceIndex(v i return s } +// SetEnaSrdSpecification sets the EnaSrdSpecification field's value. +func (s *LaunchTemplateInstanceNetworkInterfaceSpecification) SetEnaSrdSpecification(v *LaunchTemplateEnaSrdSpecification) *LaunchTemplateInstanceNetworkInterfaceSpecification { + s.EnaSrdSpecification = v + return s +} + // SetGroups sets the Groups field's value. func (s *LaunchTemplateInstanceNetworkInterfaceSpecification) SetGroups(v []*string) *LaunchTemplateInstanceNetworkInterfaceSpecification { s.Groups = v @@ -140032,6 +140332,9 @@ type LaunchTemplateInstanceNetworkInterfaceSpecificationRequest struct { // The device index for the network interface attachment. DeviceIndex *int64 `type:"integer"` + // Configure ENA Express settings for your launch template. + EnaSrdSpecification *EnaSrdSpecificationRequest `type:"structure"` + // The IDs of one or more security groups. Groups []*string `locationName:"SecurityGroupId" locationNameList:"SecurityGroupId" type:"list"` @@ -140145,6 +140448,12 @@ func (s *LaunchTemplateInstanceNetworkInterfaceSpecificationRequest) SetDeviceIn return s } +// SetEnaSrdSpecification sets the EnaSrdSpecification field's value. +func (s *LaunchTemplateInstanceNetworkInterfaceSpecificationRequest) SetEnaSrdSpecification(v *EnaSrdSpecificationRequest) *LaunchTemplateInstanceNetworkInterfaceSpecificationRequest { + s.EnaSrdSpecification = v + return s +} + // SetGroups sets the Groups field's value. func (s *LaunchTemplateInstanceNetworkInterfaceSpecificationRequest) SetGroups(v []*string) *LaunchTemplateInstanceNetworkInterfaceSpecificationRequest { s.Groups = v @@ -141011,7 +141320,7 @@ type LaunchTemplateTagSpecificationRequest struct { // Valid Values lists all resource types for Amazon EC2 that can be tagged. // When you create a launch template, you can specify tags for the following // resource types only: instance | volume | elastic-gpu | network-interface - // | spot-instances-request. If the instance does include the resource type + // | spot-instances-request. If the instance does not include the resource type // that you specify, the instance launch fails. For example, not all instance // types include an Elastic GPU. // @@ -162018,13 +162327,10 @@ type RequestLaunchTemplateData struct { // One or more security group IDs. You can create a security group using CreateSecurityGroup // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html). - // You cannot specify both a security group ID and security name in the same - // request. SecurityGroupIds []*string `locationName:"SecurityGroupId" locationNameList:"SecurityGroupId" type:"list"` // One or more security group names. For a nondefault VPC, you must use security - // group IDs instead. You cannot specify both a security group ID and security - // name in the same request. + // group IDs instead. SecurityGroups []*string `locationName:"SecurityGroup" locationNameList:"SecurityGroup" type:"list"` // The tags to apply to the resources that are created during instance launch. diff --git a/service/fms/api.go b/service/fms/api.go index 720e6610ac4..e4ab0de48fe 100644 --- a/service/fms/api.go +++ b/service/fms/api.go @@ -4046,32 +4046,41 @@ func (c *FMS) PutPolicyRequest(input *PutPolicyInput) (req *request.Request, out // // Creates an Firewall Manager policy. // -// Firewall Manager provides the following types of policies: +// A Firewall Manager policy is specific to the individual policy type. If you +// want to enforce multiple policy types across accounts, you can create multiple +// policies. You can create more than one policy for each type. // -// - An WAF policy (type WAFV2), which defines rule groups to run first in -// the corresponding WAF web ACL and rule groups to run last in the web ACL. +// If you add a new account to an organization that you created with Organizations, +// Firewall Manager automatically applies the policy to the resources in that +// account that are within scope of the policy. // -// - An WAF Classic policy (type WAF), which defines a rule group. +// Firewall Manager provides the following types of policies: // -// - A Shield Advanced policy, which applies Shield Advanced protection to -// specified accounts and resources. +// - Shield Advanced policy - This policy applies Shield Advanced protection +// to specified accounts and resources. // -// - A security group policy, which manages VPC security groups across your -// Amazon Web Services organization. +// - Security Groups policy - This type of policy gives you control over +// security groups that are in use throughout your organization in Organizations +// and lets you enforce a baseline set of rules across your organization. // -// - An Network Firewall policy, which provides firewall rules to filter -// network traffic in specified Amazon VPCs. +// - Network Firewall policy - This policy applies Network Firewall protection +// to your organization's VPCs. // -// - A DNS Firewall policy, which provides Route 53 Resolver DNS Firewall -// rules to filter DNS queries for specified VPCs. +// - DNS Firewall policy - This policy applies Amazon Route 53 Resolver DNS +// Firewall protections to your organization's VPCs. // -// Each policy is specific to one of the types. If you want to enforce more -// than one policy type across accounts, create multiple policies. You can create -// multiple policies for each type. +// - Third-party firewall policy - This policy applies third-party firewall +// protections. Third-party firewalls are available by subscription through +// the Amazon Web Services Marketplace console at Amazon Web Services Marketplace +// (https://aws.amazon.com/marketplace). Palo Alto Networks Cloud NGFW policy // -// You must be subscribed to Shield Advanced to create a Shield Advanced policy. -// For more information about subscribing to Shield Advanced, see CreateSubscription -// (https://docs.aws.amazon.com/waf/latest/DDOSAPIReference/API_CreateSubscription.html). +// - This policy applies Palo Alto Networks Cloud Next Generation Firewall +// (NGFW) protections and Palo Alto Networks Cloud NGFW rulestacks to your +// organization's VPCs. Fortigate CNF policy - This policy applies Fortigate +// Cloud Native Firewall (CNF) protections. Fortigate CNF is a cloud-centered +// solution that blocks Zero-Day threats and secures cloud infrastructures +// with industry-leading advanced threat prevention, smart web application +// firewalls (WAF), and API protection. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -5771,6 +5780,10 @@ type DeletePolicyInput struct { // * Deletes the security group if it was created through Firewall Manager // and if it's no longer associated with any resources through another policy // + // For security group common policies, even if set to False, Firewall Manager + // deletes all security groups created by Firewall Manager that aren't associated + // with any other resources through another policy. + // // After the cleanup, in-scope resources are no longer protected by web ACLs // in this policy. Protection of out-of-scope resources remains unchanged. Scope // is determined by tags that you create and accounts that you associate with @@ -8190,8 +8203,18 @@ type GetViolationDetailsInput struct { // MemberAccount is a required field MemberAccount *string `min:"1" type:"string" required:"true"` - // The ID of the Firewall Manager policy that you want the details for. This - // currently only supports security group content audit policies. + // The ID of the Firewall Manager policy that you want the details for. You + // can get violation details for the following policy types: + // + // * DNS Firewall + // + // * Imported Network Firewall + // + // * Network Firewall + // + // * Security group content audit + // + // * Third-party firewall // // PolicyId is a required field PolicyId *string `min:"36" type:"string" required:"true"` @@ -11248,13 +11271,23 @@ type Policy struct { // To apply this policy to multiple resource types, specify a resource type // of ResourceTypeList and then specify the resource types in a ResourceTypeList. // - // For WAF and Shield Advanced, resource types include AWS::ElasticLoadBalancingV2::LoadBalancer, - // AWS::ElasticLoadBalancing::LoadBalancer, AWS::EC2::EIP, and AWS::CloudFront::Distribution. - // For a security group common policy, valid values are AWS::EC2::NetworkInterface - // and AWS::EC2::Instance. For a security group content audit policy, valid - // values are AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, and AWS::EC2::Instance. - // For a security group usage audit policy, the value is AWS::EC2::SecurityGroup. - // For an Network Firewall policy or DNS Firewall policy, the value is AWS::EC2::VPC. + // The following are valid resource types for each Firewall Manager policy type: + // + // * Amazon Web Services WAF Classic - AWS::ApiGateway::Stage, AWS::CloudFront::Distribution, + // and AWS::ElasticLoadBalancingV2::LoadBalancer. + // + // * WAF - AWS::ApiGateway::Stage, AWS::ElasticLoadBalancingV2::LoadBalancer, + // and AWS::CloudFront::Distribution. + // + // * DNS Firewall, Network Firewall, and third-party firewall - AWS::EC2::VPC. + // + // * Shield Advanced - AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::ElasticLoadBalancing::LoadBalancer, + // AWS::EC2::EIP, and AWS::CloudFront::Distribution. + // + // * Security group content audit - AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, + // and AWS::EC2::Instance. + // + // * Security group usage audit - AWS::EC2::SecurityGroup. // // ResourceType is a required field ResourceType *string `min:"1" type:"string" required:"true"` @@ -13928,13 +13961,6 @@ type SecurityServicePolicyData struct { // To use the distributed deployment model, you must set PolicyOption (https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_PolicyOption.html) // to NULL. // - // * Example: THIRD_PARTY_FIREWALL "{ "type":"THIRD_PARTY_FIREWALL", "thirdPartyFirewall":"PALO_ALTO_NETWORKS_CLOUD_NGFW", - // "thirdPartyFirewallConfig":{ "thirdPartyFirewallPolicyList":["global-1"] - // }, "firewallDeploymentModel":{ "distributedFirewallDeploymentModel":{ - // "distributedFirewallOrchestrationConfig":{ "firewallCreationConfig":{ - // "endpointLocation":{ "availabilityZoneConfigList":[ { "availabilityZoneName":"${AvailabilityZone}" - // } ] } }, "allowedIPV4CidrList":[ ] } } } }" - // // * Example: SECURITY_GROUPS_COMMON "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, // \"applyToAllEC2InstanceENIs\":false,\"securityGroups\":[{\"id\":\" sg-000e55995d61a06bd\"}]}" // @@ -13963,10 +13989,27 @@ type SecurityServicePolicyData struct { // // * Example: SECURITY_GROUPS_USAGE_AUDIT "{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":true,\"coalesceRedundantSecurityGroups\":true}" // + // * Example: SHIELD_ADVANCED with web ACL management "{\"type\":\"SHIELD_ADVANCED\",\"optimizeUnassociatedWebACL\":true}" + // If you set optimizeUnassociatedWebACL to true, Firewall Manager creates + // web ACLs in accounts within the policy scope if the web ACLs will be used + // by at least one resource. Firewall Manager creates web ACLs in the accounts + // within policy scope only if the web ACLs will be used by at least one + // resource. If at any time an account comes into policy scope, Firewall + // Manager automatically creates a web ACL in the account if at least one + // resource will use the web ACL. Upon enablement, Firewall Manager performs + // a one-time cleanup of unused web ACLs in your account. The cleanup process + // can take several hours. If a resource leaves policy scope after Firewall + // Manager creates a web ACL, Firewall Manager doesn't disassociate the resource + // from the web ACL. If you want Firewall Manager to clean up the web ACL, + // you must first manually disassociate the resources from the web ACL, and + // then enable the manage unused web ACLs option in your policy. If you set + // optimizeUnassociatedWebACL to false, and Firewall Manager automatically + // creates an empty web ACL in each account that's within policy scope. + // // * Specification for SHIELD_ADVANCED for Amazon CloudFront distributions // "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": {\"automaticResponseStatus\":\"ENABLED|IGNORED|DISABLED\", - // \"automaticResponseAction\":\"BLOCK|COUNT\"}, \"overrideCustomerWebaclClassic\":true|false}" - // For example: "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": + // \"automaticResponseAction\":\"BLOCK|COUNT\"}, \"overrideCustomerWebaclClassic\":true|false, + // \"optimizeUnassociatedWebACL\":true|false}" For example: "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": // {\"automaticResponseStatus\":\"ENABLED\", \"automaticResponseAction\":\"COUNT\"}}" // The default value for automaticResponseStatus is IGNORED. The value for // automaticResponseAction is only required when automaticResponseStatus @@ -13974,28 +14017,60 @@ type SecurityServicePolicyData struct { // is false. For other resource types that you can protect with a Shield // Advanced policy, this ManagedServiceData configuration is an empty string. // - // * Example: WAFV2 - Account takeover prevention and Bot Control managed - // rule groups, and rule action override "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesATPRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesATPRuleSet\":{\"loginPath\":\"/loginpath\",\"requestInspection\":{\"payloadType\":\"FORM_ENCODED|JSON\",\"usernameField\":{\"identifier\":\"/form/username\"},\"passwordField\":{\"identifier\":\"/form/password\"}}}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true},{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesBotControlRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesBotControlRuleSet\":{\"inspectionLevel\":\"TARGETED|COMMON\"}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true,\"ruleActionOverrides\":[{\"name\":\"Rule1\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}},{\"name\":\"Rule2\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true}" - // Fraud Control account takeover prevention (ATP) - For information about - // the properties available for AWSManagedRulesATPRuleSet managed rule groups, - // see AWSManagedRulesATPRuleSet (https://docs.aws.amazon.com/waf/latest/APIReference/API_AWSManagedRulesATPRuleSet.html) - // in the WAF API Reference. Bot Control - For information about AWSManagedRulesBotControlRuleSet - // managed rule groups, see AWSManagedRulesBotControlRuleSet (https://docs.aws.amazon.com/waf/latest/APIReference/API_AWSManagedRulesBotControlRuleSet.html) - // in the WAF API Reference. Rule action overrides - Firewall Manager supports - // rule action overrides only for managed rule groups. To configure a RuleActionOverrides - // add the Name of the rule to override, and ActionToUse, which is the new - // action to use for the rule. For information about using rule action override, - // see RuleActionOverride (https://docs.aws.amazon.com/waf/latest/APIReference/API_RuleActionOverride.html) + // * Example: THIRD_PARTY_FIREWALL Replace THIRD_PARTY_FIREWALL_NAME with + // the name of the third-party firewall. "{ "type":"THIRD_PARTY_FIREWALL", + // "thirdPartyFirewall":"THIRD_PARTY_FIREWALL_NAME", "thirdPartyFirewallConfig":{ + // "thirdPartyFirewallPolicyList":["global-1"] }, "firewallDeploymentModel":{ + // "distributedFirewallDeploymentModel":{ "distributedFirewallOrchestrationConfig":{ + // "firewallCreationConfig":{ "endpointLocation":{ "availabilityZoneConfigList":[ + // { "availabilityZoneName":"${AvailabilityZone}" } ] } }, "allowedIPV4CidrList":[ + // ] } } } }" + // + // * Example: WAFV2 - Account takeover prevention, Bot Control managed rule + // groups, optimize unassociated web ACL, and rule action override "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesATPRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesATPRuleSet\":{\"loginPath\":\"/loginpath\",\"requestInspection\":{\"payloadType\":\"FORM_ENCODED|JSON\",\"usernameField\":{\"identifier\":\"/form/username\"},\"passwordField\":{\"identifier\":\"/form/password\"}}}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true},{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesBotControlRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesBotControlRuleSet\":{\"inspectionLevel\":\"TARGETED|COMMON\"}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true,\"ruleActionOverrides\":[{\"name\":\"Rule1\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}},{\"name\":\"Rule2\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"optimizeUnassociatedWebACL\":true}" + // Bot Control - For information about AWSManagedRulesBotControlRuleSet managed + // rule groups, see AWSManagedRulesBotControlRuleSet (https://docs.aws.amazon.com/waf/latest/APIReference/API_AWSManagedRulesBotControlRuleSet.html) + // in the WAF API Reference. Fraud Control account takeover prevention (ATP) + // - For information about the properties available for AWSManagedRulesATPRuleSet + // managed rule groups, see AWSManagedRulesATPRuleSet (https://docs.aws.amazon.com/waf/latest/APIReference/API_AWSManagedRulesATPRuleSet.html) + // in the WAF API Reference. Optimize unassociated web ACL - If you set optimizeUnassociatedWebACL + // to true, Firewall Manager creates web ACLs in accounts within the policy + // scope if the web ACLs will be used by at least one resource. Firewall + // Manager creates web ACLs in the accounts within policy scope only if the + // web ACLs will be used by at least one resource. If at any time an account + // comes into policy scope, Firewall Manager automatically creates a web + // ACL in the account if at least one resource will use the web ACL. Upon + // enablement, Firewall Manager performs a one-time cleanup of unused web + // ACLs in your account. The cleanup process can take several hours. If a + // resource leaves policy scope after Firewall Manager creates a web ACL, + // Firewall Manager disassociates the resource from the web ACL, but won't + // clean up the unused web ACL. Firewall Manager only cleans up unused web + // ACLs when you first enable management of unused web ACLs in a policy. + // If you set optimizeUnassociatedWebACL to false Firewall Manager doesn't + // manage unused web ACLs, and Firewall Manager automatically creates an + // empty web ACL in each account that's within policy scope. Rule action + // overrides - Firewall Manager supports rule action overrides only for managed + // rule groups. To configure a RuleActionOverrides add the Name of the rule + // to override, and ActionToUse, which is the new action to use for the rule. + // For information about using rule action override, see RuleActionOverride + // (https://docs.aws.amazon.com/waf/latest/APIReference/API_RuleActionOverride.html) // in the WAF API Reference. // - // * Example: WAFV2 - CAPTCHA and Challenge configs "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"captchaConfig\":{\"immunityTimeProperty\":{\"immunityTime\":500}},\"challengeConfig\":{\"immunityTimeProperty\":{\"immunityTime\":800}},\"tokenDomains\":[\"google.com\",\"amazon.com\"]}" - // If you update the policy's values for captchaConfig, challengeConfig, - // or tokenDomains, Firewall Manager will overwrite your local web ACLs to - // contain the new value(s). However, if you don't update the policy's captchaConfig, + // * Example: WAFV2 - CAPTCHA and Challenge configs "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"captchaConfig\":{\"immunityTimeProperty\":{\"immunityTime\":500}},\"challengeConfig\":{\"immunityTimeProperty\":{\"immunityTime\":800}},\"tokenDomains\":[\"google.com\",\"amazon.com\"],\"associationConfig\":{\"requestBody\":{\"CLOUDFRONT\":{\"defaultSizeInspectionLimit\":\"KB_16\"}}}}" + // CAPTCHA and Challenge configs - If you update the policy's values for + // associationConfig, captchaConfig, challengeConfig, or tokenDomains, Firewall + // Manager will overwrite your local web ACLs to contain the new value(s). + // However, if you don't update the policy's associationConfig, captchaConfig, // challengeConfig, or tokenDomains values, the values in your local web - // ACLs will remain unchanged. For information about CAPTCHA and Challenge - // configs, see CaptchaConfig (https://docs.aws.amazon.com/waf/latest/APIReference/API_CaptchaConfig.html) + // ACLs will remain unchanged. For information about association configs, + // see AssociationConfig (https://docs.aws.amazon.com/waf/latest/APIReference/API_AssociationConfig.html). + // For information about CAPTCHA and Challenge configs, see CaptchaConfig + // (https://docs.aws.amazon.com/waf/latest/APIReference/API_CaptchaConfig.html) // and ChallengeConfig (https://docs.aws.amazon.com/waf/latest/APIReference/API_ChallengeConfig.html) + // in the WAF API Reference. defaultSizeInspectionLimit - Specifies the maximum + // size of the web request body component that an associated Amazon CloudFront + // distribution should send to WAF for inspection. For more information, + // see DefaultSizeInspectionLimit (https://docs.aws.amazon.com/waf/latest/APIReference/API_RequestBodyAssociatedResourceTypeConfig.html#WAF-Type-RequestBodyAssociatedResourceTypeConfig-DefaultSizeInspectionLimit) // in the WAF API Reference. // // * Example: WAFV2 - Firewall Manager support for WAF managed rule group diff --git a/service/marketplaceentitlementservice/api.go b/service/marketplaceentitlementservice/api.go index 05adc76993e..6745b85c924 100644 --- a/service/marketplaceentitlementservice/api.go +++ b/service/marketplaceentitlementservice/api.go @@ -42,6 +42,12 @@ func (c *MarketplaceEntitlementService) GetEntitlementsRequest(input *GetEntitle Name: opGetEntitlements, HTTPMethod: "POST", HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, } if input == nil { @@ -99,6 +105,57 @@ func (c *MarketplaceEntitlementService) GetEntitlementsWithContext(ctx aws.Conte return out, req.Send() } +// GetEntitlementsPages iterates over the pages of a GetEntitlements operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See GetEntitlements method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a GetEntitlements operation. +// pageNum := 0 +// err := client.GetEntitlementsPages(params, +// func(page *marketplaceentitlementservice.GetEntitlementsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *MarketplaceEntitlementService) GetEntitlementsPages(input *GetEntitlementsInput, fn func(*GetEntitlementsOutput, bool) bool) error { + return c.GetEntitlementsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// GetEntitlementsPagesWithContext same as GetEntitlementsPages except +// it takes a Context and allows setting request options on the pages. +// +// 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 *MarketplaceEntitlementService) GetEntitlementsPagesWithContext(ctx aws.Context, input *GetEntitlementsInput, fn func(*GetEntitlementsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *GetEntitlementsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.GetEntitlementsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*GetEntitlementsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + // An entitlement represents capacity in a product owned by the customer. For // example, a customer might own some number of users or seats in an SaaS application // or some amount of data capacity in a multi-tenant database. @@ -255,7 +312,7 @@ type GetEntitlementsInput struct { // The maximum number of items to retrieve from the GetEntitlements operation. // For pagination, use the NextToken field in subsequent calls to GetEntitlements. - MaxResults *int64 `type:"integer"` + MaxResults *int64 `min:"1" type:"integer"` // For paginated calls to GetEntitlements, pass the NextToken from the previous // GetEntitlementsResult. @@ -290,6 +347,9 @@ func (s GetEntitlementsInput) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *GetEntitlementsInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetEntitlementsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } if s.ProductCode == nil { invalidParams.Add(request.NewErrParamRequired("ProductCode")) } diff --git a/service/marketplaceentitlementservice/marketplaceentitlementserviceiface/interface.go b/service/marketplaceentitlementservice/marketplaceentitlementserviceiface/interface.go index 364f8d57b60..108b5f86831 100644 --- a/service/marketplaceentitlementservice/marketplaceentitlementserviceiface/interface.go +++ b/service/marketplaceentitlementservice/marketplaceentitlementserviceiface/interface.go @@ -63,6 +63,9 @@ type MarketplaceEntitlementServiceAPI interface { GetEntitlements(*marketplaceentitlementservice.GetEntitlementsInput) (*marketplaceentitlementservice.GetEntitlementsOutput, error) GetEntitlementsWithContext(aws.Context, *marketplaceentitlementservice.GetEntitlementsInput, ...request.Option) (*marketplaceentitlementservice.GetEntitlementsOutput, error) GetEntitlementsRequest(*marketplaceentitlementservice.GetEntitlementsInput) (*request.Request, *marketplaceentitlementservice.GetEntitlementsOutput) + + GetEntitlementsPages(*marketplaceentitlementservice.GetEntitlementsInput, func(*marketplaceentitlementservice.GetEntitlementsOutput, bool) bool) error + GetEntitlementsPagesWithContext(aws.Context, *marketplaceentitlementservice.GetEntitlementsInput, func(*marketplaceentitlementservice.GetEntitlementsOutput, bool) bool, ...request.Option) error } var _ MarketplaceEntitlementServiceAPI = (*marketplaceentitlementservice.MarketplaceEntitlementService)(nil) diff --git a/service/mediaconvert/api.go b/service/mediaconvert/api.go index bffadcf2fee..2fb349d0012 100644 --- a/service/mediaconvert/api.go +++ b/service/mediaconvert/api.go @@ -3221,7 +3221,7 @@ type AiffSettings struct { // 1 and even numbers up to 64. For example, 1, 2, 4, 6, and so on, up to 64. Channels *int64 `locationName:"channels" min:"1" type:"integer"` - // Sample rate in hz. + // Sample rate in Hz. SampleRate *int64 `locationName:"sampleRate" min:"8000" type:"integer"` } @@ -3496,21 +3496,29 @@ func (s AssociateCertificateOutput) GoString() string { return s.String() } -// When you mimic a multi-channel audio layout with multiple mono-channel tracks, -// you can tag each channel layout manually. For example, you would tag the -// tracks that contain your left, right, and center audio with Left (L), Right -// (R), and Center (C), respectively. When you don't specify a value, MediaConvert -// labels your track as Center (C) by default. To use audio layout tagging, -// your output must be in a QuickTime (.mov) container; your audio codec must -// be AAC, WAV, or AIFF; and you must set up your audio track to have only one -// channel. +// Specify the QuickTime audio channel layout tags for the audio channels in +// this audio track. When you don't specify a value, MediaConvert labels your +// track as Center (C) by default. To use Audio layout tagging, your output +// must be in a QuickTime (MOV) container and your audio codec must be AAC, +// WAV, or AIFF. type AudioChannelTaggingSettings struct { _ struct{} `type:"structure"` - // You can add a tag for this mono-channel audio track to mimic its placement - // in a multi-channel layout. For example, if this track is the left surround - // channel, choose Left surround (LS). + // Specify the QuickTime audio channel layout tags for the audio channels in + // this audio track. Enter channel layout tags in the same order as your output's + // audio channel order. For example, if your output audio track has a left and + // a right channel, enter Left (L) for the first channel and Right (R) for the + // second. If your output has multiple single-channel audio tracks, enter a + // single channel layout tag for each track. ChannelTag *string `locationName:"channelTag" type:"string" enum:"AudioChannelTag"` + + // Specify the QuickTime audio channel layout tags for the audio channels in + // this audio track. Enter channel layout tags in the same order as your output's + // audio channel order. For example, if your output audio track has a left and + // a right channel, enter Left (L) for the first channel and Right (R) for the + // second. If your output has multiple single-channel audio tracks, enter a + // single channel layout tag for each track. + ChannelTags []*string `locationName:"channelTags" type:"list" enum:"AudioChannelTag"` } // String returns the string representation. @@ -3537,6 +3545,12 @@ func (s *AudioChannelTaggingSettings) SetChannelTag(v string) *AudioChannelTaggi return s } +// SetChannelTags sets the ChannelTags field's value. +func (s *AudioChannelTaggingSettings) SetChannelTags(v []*string) *AudioChannelTaggingSettings { + s.ChannelTags = v + return s +} + // Settings related to audio encoding. The settings in this group vary depending // on the value that you choose for your audio codec. type AudioCodecSettings struct { @@ -3758,14 +3772,11 @@ func (s *AudioCodecSettings) SetWavSettings(v *WavSettings) *AudioCodecSettings type AudioDescription struct { _ struct{} `type:"structure"` - // When you mimic a multi-channel audio layout with multiple mono-channel tracks, - // you can tag each channel layout manually. For example, you would tag the - // tracks that contain your left, right, and center audio with Left (L), Right - // (R), and Center (C), respectively. When you don't specify a value, MediaConvert - // labels your track as Center (C) by default. To use audio layout tagging, - // your output must be in a QuickTime (.mov) container; your audio codec must - // be AAC, WAV, or AIFF; and you must set up your audio track to have only one - // channel. + // Specify the QuickTime audio channel layout tags for the audio channels in + // this audio track. When you don't specify a value, MediaConvert labels your + // track as Center (C) by default. To use Audio layout tagging, your output + // must be in a QuickTime (MOV) container and your audio codec must be AAC, + // WAV, or AIFF. AudioChannelTaggingSettings *AudioChannelTaggingSettings `locationName:"audioChannelTaggingSettings" type:"structure"` // Advanced audio normalization settings. Ignore these settings unless you need @@ -11309,9 +11320,9 @@ func (s *ExtendedDataServices) SetVchipAction(v string) *ExtendedDataServices { type F4vSettings struct { _ struct{} `type:"structure"` - // If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning - // of the archive as required for progressive downloading. Otherwise it is placed - // normally at the end. + // To place the MOOV atom at the beginning of your output, which is useful for + // progressive downloading: Leave blank or choose Progressive download. To place + // the MOOV at the end of your output: Choose Normal. MoovPlacement *string `locationName:"moovPlacement" type:"string" enum:"F4vMoovPlacement"` } @@ -11528,7 +11539,7 @@ type FlacSettings struct { // the API, valid values are between 1 and 8. Channels *int64 `locationName:"channels" min:"1" type:"integer"` - // Sample rate in hz. + // Sample rate in Hz. SampleRate *int64 `locationName:"sampleRate" min:"22050" type:"integer"` } @@ -16705,6 +16716,16 @@ type JobSettings struct { // 05h Content Advisory. ExtendedDataServices *ExtendedDataServices `locationName:"extendedDataServices" type:"structure"` + // Specify the input that MediaConvert references for your default output settings. + // MediaConvert uses this input's Resolution, Frame rate, and Pixel aspect ratio + // for all outputs that you don't manually specify different output settings + // for. Enabling this setting will disable "Follow source" for all other inputs. + // If MediaConvert cannot follow your source, for example if you specify an + // audio-only input, MediaConvert uses the first followable input instead. In + // your JSON job specification, enter an integer from 1 to 150 corresponding + // to the order of your inputs. + FollowSource *int64 `locationName:"followSource" min:"1" type:"integer"` + // Use Inputs to define source file used in the transcode job. There can be // multiple inputs add in a job. These inputs will be concantenated together // to create the output. @@ -16780,6 +16801,9 @@ func (s *JobSettings) Validate() error { if s.AdAvailOffset != nil && *s.AdAvailOffset < -1000 { invalidParams.Add(request.NewErrParamMinValue("AdAvailOffset", -1000)) } + if s.FollowSource != nil && *s.FollowSource < 1 { + invalidParams.Add(request.NewErrParamMinValue("FollowSource", 1)) + } if s.AvailBlanking != nil { if err := s.AvailBlanking.Validate(); err != nil { invalidParams.AddNested("AvailBlanking", err.(request.ErrInvalidParams)) @@ -16851,6 +16875,12 @@ func (s *JobSettings) SetExtendedDataServices(v *ExtendedDataServices) *JobSetti return s } +// SetFollowSource sets the FollowSource field's value. +func (s *JobSettings) SetFollowSource(v int64) *JobSettings { + s.FollowSource = &v + return s +} + // SetInputs sets the Inputs field's value. func (s *JobSettings) SetInputs(v []*Input) *JobSettings { s.Inputs = v @@ -17076,6 +17106,16 @@ type JobTemplateSettings struct { // 05h Content Advisory. ExtendedDataServices *ExtendedDataServices `locationName:"extendedDataServices" type:"structure"` + // Specify the input that MediaConvert references for your default output settings. + // MediaConvert uses this input's Resolution, Frame rate, and Pixel aspect ratio + // for all outputs that you don't manually specify different output settings + // for. Enabling this setting will disable "Follow source" for all other inputs. + // If MediaConvert cannot follow your source, for example if you specify an + // audio-only input, MediaConvert uses the first followable input instead. In + // your JSON job specification, enter an integer from 1 to 150 corresponding + // to the order of your inputs. + FollowSource *int64 `locationName:"followSource" min:"1" type:"integer"` + // Use Inputs to define the source file used in the transcode job. There can // only be one input in a job template. Using the API, you can include multiple // inputs when referencing a job template. @@ -17151,6 +17191,9 @@ func (s *JobTemplateSettings) Validate() error { if s.AdAvailOffset != nil && *s.AdAvailOffset < -1000 { invalidParams.Add(request.NewErrParamMinValue("AdAvailOffset", -1000)) } + if s.FollowSource != nil && *s.FollowSource < 1 { + invalidParams.Add(request.NewErrParamMinValue("FollowSource", 1)) + } if s.AvailBlanking != nil { if err := s.AvailBlanking.Validate(); err != nil { invalidParams.AddNested("AvailBlanking", err.(request.ErrInvalidParams)) @@ -17222,6 +17265,12 @@ func (s *JobTemplateSettings) SetExtendedDataServices(v *ExtendedDataServices) * return s } +// SetFollowSource sets the FollowSource field's value. +func (s *JobTemplateSettings) SetFollowSource(v int64) *JobTemplateSettings { + s.FollowSource = &v + return s +} + // SetInputs sets the Inputs field's value. func (s *JobTemplateSettings) SetInputs(v []*InputTemplate) *JobTemplateSettings { s.Inputs = v @@ -19401,7 +19450,7 @@ type Mp2Settings struct { // you 2. In the API, valid values are 1 and 2. Channels *int64 `locationName:"channels" min:"1" type:"integer"` - // Sample rate in hz. + // Sample rate in Hz. SampleRate *int64 `locationName:"sampleRate" min:"32000" type:"integer"` } @@ -19477,7 +19526,7 @@ type Mp3Settings struct { // bitrate (CBR) or a variable bitrate (VBR). RateControlMode *string `locationName:"rateControlMode" type:"string" enum:"Mp3RateControlMode"` - // Sample rate in hz. + // Sample rate in Hz. SampleRate *int64 `locationName:"sampleRate" min:"22050" type:"integer"` // Required when you set Bitrate control mode to VBR. Specify the audio quality @@ -19589,9 +19638,9 @@ type Mp4Settings struct { // Inserts a free-space box immediately after the moov box. FreeSpaceBox *string `locationName:"freeSpaceBox" type:"string" enum:"Mp4FreeSpaceBox"` - // If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning - // of the archive as required for progressive downloading. Otherwise it is placed - // normally at the end. + // To place the MOOV atom at the beginning of your output, which is useful for + // progressive downloading: Leave blank or choose Progressive download. To place + // the MOOV at the end of your output: Choose Normal. MoovPlacement *string `locationName:"moovPlacement" type:"string" enum:"Mp4MoovPlacement"` // Overrides the "Major Brand" field in the output file. Usually not necessary @@ -21348,7 +21397,7 @@ type OpusSettings struct { // values are 1 and 2. Channels *int64 `locationName:"channels" min:"1" type:"integer"` - // Optional. Sample rate in hz. Valid values are 16000, 24000, and 48000. The + // Optional. Sample rate in Hz. Valid values are 16000, 24000, and 48000. The // default value is 48000. SampleRate *int64 `locationName:"sampleRate" min:"16000" type:"integer"` } @@ -25121,11 +25170,8 @@ type VideoDescription struct { // * Choose None to remove all input AFD values from this output. RespondToAfd *string `locationName:"respondToAfd" type:"string" enum:"RespondToAfd"` - // Specify how the service handles outputs that have a different aspect ratio - // from the input aspect ratio. Choose Stretch to output to have the service - // stretch your video image to fit. Keep the setting Default to have the service - // letterbox your video instead. This setting overrides any value that you specify - // for the setting Selection placement in this output. + // Specify the video Scaling behavior when your output has a different resolution + // than your input. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/video-scaling.html ScalingBehavior *string `locationName:"scalingBehavior" type:"string" enum:"ScalingBehavior"` // Use Sharpness setting to specify the strength of anti-aliasing. This setting @@ -25344,7 +25390,8 @@ func (s *VideoDetail) SetWidthInPx(v int64) *VideoDetail { return s } -// Overlay one or more videos on top of your input video. +// Overlay one or more videos on top of your input video. For more information, +// see https://docs.aws.amazon.com/mediaconvert/latest/ug/video-overlays.html type VideoOverlay struct { _ struct{} `type:"structure"` @@ -25488,11 +25535,11 @@ type VideoOverlayInput_ struct { // both start and end timecode. InputClippings []*VideoOverlayInputClipping `locationName:"inputClippings" type:"list"` - // Specify the starting timecode for your video overlay. To use the timecode - // present in your video overlay: Choose Embedded. To use a zerobased timecode: - // Choose Start at 0. To choose a timecode: Choose Specified start. When you - // do, enter the starting timecode in Start timecode. If you don't specify a - // value for Timecode source, MediaConvert uses Embedded by default. + // Specify the timecode source for your video overlay input clips. To use the + // timecode present in your video overlay: Choose Embedded. To use a zerobased + // timecode: Choose Start at 0. To choose a timecode: Choose Specified start. + // When you do, enter the starting timecode in Start timecode. If you don't + // specify a value for Timecode source, MediaConvert uses Embedded by default. TimecodeSource *string `locationName:"timecodeSource" type:"string" enum:"InputTimecodeSource"` // Specify the starting timecode for this video overlay. To use this setting, @@ -27917,9 +27964,12 @@ func AntiAlias_Values() []string { } } -// You can add a tag for this mono-channel audio track to mimic its placement -// in a multi-channel layout. For example, if this track is the left surround -// channel, choose Left surround (LS). +// Specify the QuickTime audio channel layout tags for the audio channels in +// this audio track. Enter channel layout tags in the same order as your output's +// audio channel order. For example, if your output audio track has a left and +// a right channel, enter Left (L) for the first channel and Right (R) for the +// second. If your output has multiple single-channel audio tracks, enter a +// single channel layout tag for each track. const ( // AudioChannelTagL is a AudioChannelTag enum value AudioChannelTagL = "L" @@ -31570,9 +31620,9 @@ func EmbeddedTimecodeOverride_Values() []string { } } -// If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning -// of the archive as required for progressive downloading. Otherwise it is placed -// normally at the end. +// To place the MOOV atom at the beginning of your output, which is useful for +// progressive downloading: Leave blank or choose Progressive download. To place +// the MOOV at the end of your output: Choose Normal. const ( // F4vMoovPlacementProgressiveDownload is a F4vMoovPlacement enum value F4vMoovPlacementProgressiveDownload = "PROGRESSIVE_DOWNLOAD" @@ -35401,9 +35451,9 @@ func Mp4FreeSpaceBox_Values() []string { } } -// If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning -// of the archive as required for progressive downloading. Otherwise it is placed -// normally at the end. +// To place the MOOV atom at the beginning of your output, which is useful for +// progressive downloading: Leave blank or choose Progressive download. To place +// the MOOV at the end of your output: Choose Normal. const ( // Mp4MoovPlacementProgressiveDownload is a Mp4MoovPlacement enum value Mp4MoovPlacementProgressiveDownload = "PROGRESSIVE_DOWNLOAD" @@ -37065,17 +37115,23 @@ func SampleRangeConversion_Values() []string { } } -// Specify how the service handles outputs that have a different aspect ratio -// from the input aspect ratio. Choose Stretch to output to have the service -// stretch your video image to fit. Keep the setting Default to have the service -// letterbox your video instead. This setting overrides any value that you specify -// for the setting Selection placement in this output. +// Specify the video Scaling behavior when your output has a different resolution +// than your input. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/video-scaling.html const ( // ScalingBehaviorDefault is a ScalingBehavior enum value ScalingBehaviorDefault = "DEFAULT" // ScalingBehaviorStretchToOutput is a ScalingBehavior enum value ScalingBehaviorStretchToOutput = "STRETCH_TO_OUTPUT" + + // ScalingBehaviorFit is a ScalingBehavior enum value + ScalingBehaviorFit = "FIT" + + // ScalingBehaviorFitNoUpscale is a ScalingBehavior enum value + ScalingBehaviorFitNoUpscale = "FIT_NO_UPSCALE" + + // ScalingBehaviorFill is a ScalingBehavior enum value + ScalingBehaviorFill = "FILL" ) // ScalingBehavior_Values returns all elements of the ScalingBehavior enum @@ -37083,6 +37139,9 @@ func ScalingBehavior_Values() []string { return []string{ ScalingBehaviorDefault, ScalingBehaviorStretchToOutput, + ScalingBehaviorFit, + ScalingBehaviorFitNoUpscale, + ScalingBehaviorFill, } } diff --git a/service/rds/api.go b/service/rds/api.go index 4a5a72782fe..0d46d2bfba6 100644 --- a/service/rds/api.go +++ b/service/rds/api.go @@ -3127,10 +3127,7 @@ func (c *RDS) CreateIntegrationRequest(input *CreateIntegrationInput) (req *requ // CreateIntegration API operation for Amazon Relational Database Service. // -// Creates a zero-ETL integration with Amazon Redshift. For more information, -// see Working with Amazon Aurora zero-ETL integrations with Amazon Redshift -// (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/zero-etl.html) -// in the Amazon Aurora User Guide. +// Creates a zero-ETL integration with Amazon Redshift. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -4958,9 +4955,7 @@ func (c *RDS) DeleteIntegrationRequest(input *DeleteIntegrationInput) (req *requ // DeleteIntegration API operation for Amazon Relational Database Service. // -// Deletes a zero-ETL integration with Amazon Redshift. For more information, -// see Deleting Amazon Aurora zero-ETL integrations with Amazon Redshift (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/zero-etl.deleting.html) -// in the Amazon Aurora User Guide +// Deletes a zero-ETL integration with Amazon Redshift. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -9649,10 +9644,7 @@ func (c *RDS) DescribeIntegrationsRequest(input *DescribeIntegrationsInput) (req // DescribeIntegrations API operation for Amazon Relational Database Service. // -// Describe one or more zero-ETL integration with Amazon Redshift. For more -// information, see Viewing and monitoring Amazon Aurora zero-ETL integrations -// with Amazon Redshift (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/zero-etl.describingmonitoring.html) -// in the Amazon Aurora User Guide +// Describe one or more zero-ETL integrations with Amazon Redshift. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -20457,8 +20449,8 @@ type CreateCustomDBEngineVersionOutput struct { // engine version. SupportsGlobalDatabases *bool `type:"boolean"` - // Indicates whether the DB engine version supports Aurora zero-ETL integrations - // with Amazon Redshift. + // Indicates whether the DB engine version supports zero-ETL integrations with + // Amazon Redshift. SupportsIntegrations *bool `type:"boolean"` // Indicates whether the DB engine version supports forwarding write operations @@ -25942,11 +25934,10 @@ type CreateIntegrationInput struct { // The Amazon Web Services Key Management System (Amazon Web Services KMS) key // identifier for the key to use to encrypt the integration. If you don't specify - // an encryption key, Aurora uses a default Amazon Web Services owned key. + // an encryption key, RDS uses a default Amazon Web Services owned key. KMSKeyId *string `type:"string"` - // The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source - // for replication. + // The Amazon Resource Name (ARN) of the database to use as the source for replication. // // SourceArn is a required field SourceArn *string `min:"1" type:"string" required:"true"` @@ -26043,10 +26034,7 @@ func (s *CreateIntegrationInput) SetTargetArn(v string) *CreateIntegrationInput return s } -// An Aurora zero-ETL integration with Amazon Redshift. For more information, -// see Working with Amazon Aurora zero-ETL integrations with Amazon Redshift -// (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/zero-etl.html) -// in the Amazon Aurora User Guide. +// A zero-ETL integration with Amazon Redshift. type CreateIntegrationOutput struct { _ struct{} `type:"structure"` @@ -26072,8 +26060,7 @@ type CreateIntegrationOutput struct { // identifier for the key used to to encrypt the integration. KMSKeyId *string `type:"string"` - // The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - // for replication. + // The Amazon Resource Name (ARN) of the database used as the source for replication. SourceArn *string `min:"1" type:"string"` // The current status of the integration. @@ -28566,8 +28553,8 @@ type DBEngineVersion struct { // engine version. SupportsGlobalDatabases *bool `type:"boolean"` - // Indicates whether the DB engine version supports Aurora zero-ETL integrations - // with Amazon Redshift. + // Indicates whether the DB engine version supports zero-ETL integrations with + // Amazon Redshift. SupportsIntegrations *bool `type:"boolean"` // Indicates whether the DB engine version supports forwarding write operations @@ -32112,8 +32099,8 @@ type DeleteCustomDBEngineVersionOutput struct { // engine version. SupportsGlobalDatabases *bool `type:"boolean"` - // Indicates whether the DB engine version supports Aurora zero-ETL integrations - // with Amazon Redshift. + // Indicates whether the DB engine version supports zero-ETL integrations with + // Amazon Redshift. SupportsIntegrations *bool `type:"boolean"` // Indicates whether the DB engine version supports forwarding write operations @@ -33827,10 +33814,7 @@ func (s *DeleteIntegrationInput) SetIntegrationIdentifier(v string) *DeleteInteg return s } -// An Aurora zero-ETL integration with Amazon Redshift. For more information, -// see Working with Amazon Aurora zero-ETL integrations with Amazon Redshift -// (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/zero-etl.html) -// in the Amazon Aurora User Guide. +// A zero-ETL integration with Amazon Redshift. type DeleteIntegrationOutput struct { _ struct{} `type:"structure"` @@ -33856,8 +33840,7 @@ type DeleteIntegrationOutput struct { // identifier for the key used to to encrypt the integration. KMSKeyId *string `type:"string"` - // The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - // for replication. + // The Amazon Resource Name (ARN) of the database used as the source for replication. SourceArn *string `min:"1" type:"string"` // The current status of the integration. @@ -42530,10 +42513,7 @@ func (s *IPRange) SetStatus(v string) *IPRange { return s } -// An Aurora zero-ETL integration with Amazon Redshift. For more information, -// see Working with Amazon Aurora zero-ETL integrations with Amazon Redshift -// (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/zero-etl.html) -// in the Amazon Aurora User Guide. +// A zero-ETL integration with Amazon Redshift. type Integration struct { _ struct{} `type:"structure"` @@ -42559,8 +42539,7 @@ type Integration struct { // identifier for the key used to to encrypt the integration. KMSKeyId *string `type:"string"` - // The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source - // for replication. + // The Amazon Resource Name (ARN) of the database used as the source for replication. SourceArn *string `min:"1" type:"string"` // The current status of the integration. @@ -43508,8 +43487,8 @@ type ModifyCustomDBEngineVersionOutput struct { // engine version. SupportsGlobalDatabases *bool `type:"boolean"` - // Indicates whether the DB engine version supports Aurora zero-ETL integrations - // with Amazon Redshift. + // Indicates whether the DB engine version supports zero-ETL integrations with + // Amazon Redshift. SupportsIntegrations *bool `type:"boolean"` // Indicates whether the DB engine version supports forwarding write operations @@ -58058,8 +58037,8 @@ type UpgradeTarget struct { // version. SupportsGlobalDatabases *bool `type:"boolean"` - // Indicates whether the DB engine version supports Aurora zero-ETL integrations - // with Amazon Redshift. + // Indicates whether the DB engine version supports zero-ETL integrations with + // Amazon Redshift. SupportsIntegrations *bool `type:"boolean"` // Indicates whether the target engine version supports forwarding write operations