From 76ef9d5877d5544edc061b4a5cc22fe53e81f1f7 Mon Sep 17 00:00:00 2001 From: aws-sdk-go-automation <43143561+aws-sdk-go-automation@users.noreply.github.com> Date: Mon, 8 Apr 2024 14:24:30 -0400 Subject: [PATCH] Release v1.51.17 (2024-04-08) (#5220) Release v1.51.17 (2024-04-08) === ### Service Client Updates * `service/controlcatalog`: Adds new service * `service/mgn`: Updates service API and documentation * `service/networkmonitor`: Updates service API and documentation --- CHANGELOG.md | 8 + aws/endpoints/defaults.go | 3 + aws/version.go | 2 +- .../apis/controlcatalog/2018-05-10/api-2.json | 339 ++++ .../controlcatalog/2018-05-10/docs-2.json | 225 +++ .../2018-05-10/endpoint-rule-set-1.json | 350 ++++ .../2018-05-10/endpoint-tests-1.json | 314 ++++ .../controlcatalog/2018-05-10/examples-1.json | 5 + .../2018-05-10/paginators-1.json | 22 + models/apis/mgn/2020-02-26/api-2.json | 4 +- models/apis/mgn/2020-02-26/docs-2.json | 2 +- .../apis/networkmonitor/2023-08-01/api-2.json | 2 +- .../networkmonitor/2023-08-01/docs-2.json | 32 +- models/endpoints/endpoints.json | 1 + service/controlcatalog/api.go | 1586 +++++++++++++++++ .../controlcatalogiface/interface.go | 85 + service/controlcatalog/doc.go | 48 + service/controlcatalog/errors.go | 42 + service/controlcatalog/service.go | 106 ++ service/mgn/api.go | 10 + service/networkmonitor/api.go | 32 +- 21 files changed, 3182 insertions(+), 36 deletions(-) create mode 100644 models/apis/controlcatalog/2018-05-10/api-2.json create mode 100644 models/apis/controlcatalog/2018-05-10/docs-2.json create mode 100644 models/apis/controlcatalog/2018-05-10/endpoint-rule-set-1.json create mode 100644 models/apis/controlcatalog/2018-05-10/endpoint-tests-1.json create mode 100644 models/apis/controlcatalog/2018-05-10/examples-1.json create mode 100644 models/apis/controlcatalog/2018-05-10/paginators-1.json create mode 100644 service/controlcatalog/api.go create mode 100644 service/controlcatalog/controlcatalogiface/interface.go create mode 100644 service/controlcatalog/doc.go create mode 100644 service/controlcatalog/errors.go create mode 100644 service/controlcatalog/service.go diff --git a/CHANGELOG.md b/CHANGELOG.md index b41df1fe6f3..98839d7f224 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +Release v1.51.17 (2024-04-08) +=== + +### Service Client Updates +* `service/controlcatalog`: Adds new service +* `service/mgn`: Updates service API and documentation +* `service/networkmonitor`: Updates service API and documentation + Release v1.51.16 (2024-04-05) === diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index ff9e9662df4..efc6ff5fdfc 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -33153,6 +33153,9 @@ var awsPartition = partition{ endpointKey{ Region: "eu-west-2", }: endpoint{}, + endpointKey{ + Region: "sa-east-1", + }: endpoint{}, endpointKey{ Region: "us-east-1", }: endpoint{}, diff --git a/aws/version.go b/aws/version.go index aef1528f9ce..aa917adc02c 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.51.16" +const SDKVersion = "1.51.17" diff --git a/models/apis/controlcatalog/2018-05-10/api-2.json b/models/apis/controlcatalog/2018-05-10/api-2.json new file mode 100644 index 00000000000..cd89c8a5aa0 --- /dev/null +++ b/models/apis/controlcatalog/2018-05-10/api-2.json @@ -0,0 +1,339 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2018-05-10", + "endpointPrefix":"controlcatalog", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"AWS Control Catalog", + "serviceId":"ControlCatalog", + "signatureVersion":"v4", + "signingName":"controlcatalog", + "uid":"controlcatalog-2018-05-10" + }, + "operations":{ + "ListCommonControls":{ + "name":"ListCommonControls", + "http":{ + "method":"POST", + "requestUri":"/common-controls", + "responseCode":200 + }, + "input":{"shape":"ListCommonControlsRequest"}, + "output":{"shape":"ListCommonControlsResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ] + }, + "ListDomains":{ + "name":"ListDomains", + "http":{ + "method":"POST", + "requestUri":"/domains", + "responseCode":200 + }, + "input":{"shape":"ListDomainsRequest"}, + "output":{"shape":"ListDomainsResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ] + }, + "ListObjectives":{ + "name":"ListObjectives", + "http":{ + "method":"POST", + "requestUri":"/objectives", + "responseCode":200 + }, + "input":{"shape":"ListObjectivesRequest"}, + "output":{"shape":"ListObjectivesResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ] + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AssociatedDomainSummary":{ + "type":"structure", + "members":{ + "Arn":{"shape":"DomainArn"}, + "Name":{"shape":"String"} + } + }, + "AssociatedObjectiveSummary":{ + "type":"structure", + "members":{ + "Arn":{"shape":"ObjectiveArn"}, + "Name":{"shape":"String"} + } + }, + "CommonControlArn":{ + "type":"string", + "max":2048, + "min":41, + "pattern":"^arn:(aws(?:[-a-z]*)?):controlcatalog:::common-control/[0-9a-z]+$" + }, + "CommonControlFilter":{ + "type":"structure", + "members":{ + "Objectives":{"shape":"ObjectiveResourceFilterList"} + } + }, + "CommonControlSummary":{ + "type":"structure", + "required":[ + "Arn", + "CreateTime", + "Description", + "Domain", + "LastUpdateTime", + "Name", + "Objective" + ], + "members":{ + "Arn":{"shape":"CommonControlArn"}, + "CreateTime":{"shape":"Timestamp"}, + "Description":{"shape":"String"}, + "Domain":{"shape":"AssociatedDomainSummary"}, + "LastUpdateTime":{"shape":"Timestamp"}, + "Name":{"shape":"String"}, + "Objective":{"shape":"AssociatedObjectiveSummary"} + } + }, + "CommonControlSummaryList":{ + "type":"list", + "member":{"shape":"CommonControlSummary"} + }, + "DomainArn":{ + "type":"string", + "max":2048, + "min":33, + "pattern":"^arn:(aws(?:[-a-z]*)?):controlcatalog:::domain/[0-9a-z]+$" + }, + "DomainResourceFilter":{ + "type":"structure", + "members":{ + "Arn":{"shape":"DomainArn"} + } + }, + "DomainResourceFilterList":{ + "type":"list", + "member":{"shape":"DomainResourceFilter"} + }, + "DomainSummary":{ + "type":"structure", + "required":[ + "Arn", + "CreateTime", + "Description", + "LastUpdateTime", + "Name" + ], + "members":{ + "Arn":{"shape":"DomainArn"}, + "CreateTime":{"shape":"Timestamp"}, + "Description":{"shape":"String"}, + "LastUpdateTime":{"shape":"Timestamp"}, + "Name":{"shape":"String"} + } + }, + "DomainSummaryList":{ + "type":"list", + "member":{"shape":"DomainSummary"} + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "ListCommonControlsRequest":{ + "type":"structure", + "members":{ + "CommonControlFilter":{"shape":"CommonControlFilter"}, + "MaxResults":{ + "shape":"MaxListCommonControlsResults", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListCommonControlsResponse":{ + "type":"structure", + "required":["CommonControls"], + "members":{ + "CommonControls":{"shape":"CommonControlSummaryList"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "ListDomainsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxListDomainsResults", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListDomainsResponse":{ + "type":"structure", + "required":["Domains"], + "members":{ + "Domains":{"shape":"DomainSummaryList"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "ListObjectivesRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxListObjectivesResults", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + }, + "ObjectiveFilter":{"shape":"ObjectiveFilter"} + } + }, + "ListObjectivesResponse":{ + "type":"structure", + "required":["Objectives"], + "members":{ + "NextToken":{"shape":"PaginationToken"}, + "Objectives":{"shape":"ObjectiveSummaryList"} + } + }, + "MaxListCommonControlsResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "MaxListDomainsResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "MaxListObjectivesResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ObjectiveArn":{ + "type":"string", + "max":2048, + "min":36, + "pattern":"^arn:(aws(?:[-a-z]*)?):controlcatalog:::objective/[0-9a-z]+$" + }, + "ObjectiveFilter":{ + "type":"structure", + "members":{ + "Domains":{"shape":"DomainResourceFilterList"} + } + }, + "ObjectiveResourceFilter":{ + "type":"structure", + "members":{ + "Arn":{"shape":"ObjectiveArn"} + } + }, + "ObjectiveResourceFilterList":{ + "type":"list", + "member":{"shape":"ObjectiveResourceFilter"} + }, + "ObjectiveSummary":{ + "type":"structure", + "required":[ + "Arn", + "CreateTime", + "Description", + "Domain", + "LastUpdateTime", + "Name" + ], + "members":{ + "Arn":{"shape":"ObjectiveArn"}, + "CreateTime":{"shape":"Timestamp"}, + "Description":{"shape":"String"}, + "Domain":{"shape":"AssociatedDomainSummary"}, + "LastUpdateTime":{"shape":"Timestamp"}, + "Name":{"shape":"String"} + } + }, + "ObjectiveSummaryList":{ + "type":"list", + "member":{"shape":"ObjectiveSummary"} + }, + "PaginationToken":{ + "type":"string", + "max":1024, + "min":0 + }, + "String":{"type":"string"}, + "ThrottlingException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":true} + }, + "Timestamp":{"type":"timestamp"}, + "ValidationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + } +} diff --git a/models/apis/controlcatalog/2018-05-10/docs-2.json b/models/apis/controlcatalog/2018-05-10/docs-2.json new file mode 100644 index 00000000000..149750a8042 --- /dev/null +++ b/models/apis/controlcatalog/2018-05-10/docs-2.json @@ -0,0 +1,225 @@ +{ + "version": "2.0", + "service": "

Welcome to the Amazon Web Services Control Catalog API reference. This guide is for developers who need detailed information about how to programmatically identify and filter the common controls and related metadata that are available to Amazon Web Services customers. This API reference provides descriptions, syntax, and usage examples for each of the actions and data types that are supported by Amazon Web Services Control Catalog.

Use the following links to get started with the Amazon Web Services Control Catalog API:

", + "operations": { + "ListCommonControls": "

Returns a paginated list of common controls from the Amazon Web Services Control Catalog.

You can apply an optional filter to see common controls that have a specific objective. If you don’t provide a filter, the operation returns all common controls.

", + "ListDomains": "

Returns a paginated list of domains from the Amazon Web Services Control Catalog.

", + "ListObjectives": "

Returns a paginated list of objectives from the Amazon Web Services Control Catalog.

You can apply an optional filter to see the objectives that belong to a specific domain. If you don’t provide a filter, the operation returns all objectives.

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

You do not have sufficient access to perform this action.

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

A summary of the domain that a common control or an objective belongs to.

", + "refs": { + "CommonControlSummary$Domain": "

The domain that the common control belongs to.

", + "ObjectiveSummary$Domain": "

The domain that the objective belongs to.

" + } + }, + "AssociatedObjectiveSummary": { + "base": "

A summary of the objective that a common control supports.

", + "refs": { + "CommonControlSummary$Objective": "

The objective that the common control belongs to.

" + } + }, + "CommonControlArn": { + "base": null, + "refs": { + "CommonControlSummary$Arn": "

The Amazon Resource Name (ARN) that identifies the common control.

" + } + }, + "CommonControlFilter": { + "base": "

An optional filter that narrows the results to a specific objective.

", + "refs": { + "ListCommonControlsRequest$CommonControlFilter": "

An optional filter that narrows the results to a specific objective.

This filter allows you to specify one objective ARN at a time. Passing multiple ARNs in the CommonControlFilter isn’t currently supported.

" + } + }, + "CommonControlSummary": { + "base": "

A summary of metadata for a common control.

", + "refs": { + "CommonControlSummaryList$member": null + } + }, + "CommonControlSummaryList": { + "base": null, + "refs": { + "ListCommonControlsResponse$CommonControls": "

The list of common controls that the ListCommonControls API returns.

" + } + }, + "DomainArn": { + "base": null, + "refs": { + "AssociatedDomainSummary$Arn": "

The Amazon Resource Name (ARN) of the related domain.

", + "DomainResourceFilter$Arn": "

The Amazon Resource Name (ARN) of the domain.

", + "DomainSummary$Arn": "

The Amazon Resource Name (ARN) that identifies the domain.

" + } + }, + "DomainResourceFilter": { + "base": "

The domain resource that's being used as a filter.

", + "refs": { + "DomainResourceFilterList$member": null + } + }, + "DomainResourceFilterList": { + "base": null, + "refs": { + "ObjectiveFilter$Domains": "

The domain that's used as filter criteria.

You can use this parameter to specify one domain ARN at a time. Passing multiple ARNs in the ObjectiveFilter isn’t currently supported.

" + } + }, + "DomainSummary": { + "base": "

A summary of metadata for a domain.

", + "refs": { + "DomainSummaryList$member": null + } + }, + "DomainSummaryList": { + "base": null, + "refs": { + "ListDomainsResponse$Domains": "

The list of domains that the ListDomains API returns.

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

An internal service error occurred during the processing of your request. Try again later.

", + "refs": { + } + }, + "ListCommonControlsRequest": { + "base": null, + "refs": { + } + }, + "ListCommonControlsResponse": { + "base": null, + "refs": { + } + }, + "ListDomainsRequest": { + "base": null, + "refs": { + } + }, + "ListDomainsResponse": { + "base": null, + "refs": { + } + }, + "ListObjectivesRequest": { + "base": null, + "refs": { + } + }, + "ListObjectivesResponse": { + "base": null, + "refs": { + } + }, + "MaxListCommonControlsResults": { + "base": null, + "refs": { + "ListCommonControlsRequest$MaxResults": "

The maximum number of results on a page or for an API request call.

" + } + }, + "MaxListDomainsResults": { + "base": null, + "refs": { + "ListDomainsRequest$MaxResults": "

The maximum number of results on a page or for an API request call.

" + } + }, + "MaxListObjectivesResults": { + "base": null, + "refs": { + "ListObjectivesRequest$MaxResults": "

The maximum number of results on a page or for an API request call.

" + } + }, + "ObjectiveArn": { + "base": null, + "refs": { + "AssociatedObjectiveSummary$Arn": "

The Amazon Resource Name (ARN) of the related objective.

", + "ObjectiveResourceFilter$Arn": "

The Amazon Resource Name (ARN) of the objective.

", + "ObjectiveSummary$Arn": "

The Amazon Resource Name (ARN) that identifies the objective.

" + } + }, + "ObjectiveFilter": { + "base": "

An optional filter that narrows the list of objectives to a specific domain.

", + "refs": { + "ListObjectivesRequest$ObjectiveFilter": "

An optional filter that narrows the results to a specific domain.

This filter allows you to specify one domain ARN at a time. Passing multiple ARNs in the ObjectiveFilter isn’t currently supported.

" + } + }, + "ObjectiveResourceFilter": { + "base": "

The objective resource that's being used as a filter.

", + "refs": { + "ObjectiveResourceFilterList$member": null + } + }, + "ObjectiveResourceFilterList": { + "base": null, + "refs": { + "CommonControlFilter$Objectives": "

The objective that's used as filter criteria.

You can use this parameter to specify one objective ARN at a time. Passing multiple ARNs in the CommonControlFilter isn’t currently supported.

" + } + }, + "ObjectiveSummary": { + "base": "

A summary of metadata for an objective.

", + "refs": { + "ObjectiveSummaryList$member": null + } + }, + "ObjectiveSummaryList": { + "base": null, + "refs": { + "ListObjectivesResponse$Objectives": "

The list of objectives that the ListObjectives API returns.

" + } + }, + "PaginationToken": { + "base": null, + "refs": { + "ListCommonControlsRequest$NextToken": "

The pagination token that's used to fetch the next set of results.

", + "ListCommonControlsResponse$NextToken": "

The pagination token that's used to fetch the next set of results.

", + "ListDomainsRequest$NextToken": "

The pagination token that's used to fetch the next set of results.

", + "ListDomainsResponse$NextToken": "

The pagination token that's used to fetch the next set of results.

", + "ListObjectivesRequest$NextToken": "

The pagination token that's used to fetch the next set of results.

", + "ListObjectivesResponse$NextToken": "

The pagination token that's used to fetch the next set of results.

" + } + }, + "String": { + "base": null, + "refs": { + "AccessDeniedException$Message": null, + "AssociatedDomainSummary$Name": "

The name of the related domain.

", + "AssociatedObjectiveSummary$Name": "

The name of the related objective.

", + "CommonControlSummary$Description": "

The description of the common control.

", + "CommonControlSummary$Name": "

The name of the common control.

", + "DomainSummary$Description": "

The description of the domain.

", + "DomainSummary$Name": "

The name of the domain.

", + "InternalServerException$Message": null, + "ObjectiveSummary$Description": "

The description of the objective.

", + "ObjectiveSummary$Name": "

The name of the objective.

", + "ThrottlingException$Message": null, + "ValidationException$Message": null + } + }, + "ThrottlingException": { + "base": "

The request was denied due to request throttling.

", + "refs": { + } + }, + "Timestamp": { + "base": null, + "refs": { + "CommonControlSummary$CreateTime": "

The time when the common control was created.

", + "CommonControlSummary$LastUpdateTime": "

The time when the common control was most recently updated.

", + "DomainSummary$CreateTime": "

The time when the domain was created.

", + "DomainSummary$LastUpdateTime": "

The time when the domain was most recently updated.

", + "ObjectiveSummary$CreateTime": "

The time when the objective was created.

", + "ObjectiveSummary$LastUpdateTime": "

The time when the objective was most recently updated.

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

The request has invalid or missing parameters.

", + "refs": { + } + } + } +} diff --git a/models/apis/controlcatalog/2018-05-10/endpoint-rule-set-1.json b/models/apis/controlcatalog/2018-05-10/endpoint-rule-set-1.json new file mode 100644 index 00000000000..11d979e0615 --- /dev/null +++ b/models/apis/controlcatalog/2018-05-10/endpoint-rule-set-1.json @@ -0,0 +1,350 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return 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": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "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" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "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": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://controlcatalog-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "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": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://controlcatalog-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "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": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://controlcatalog.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://controlcatalog.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] +} \ No newline at end of file diff --git a/models/apis/controlcatalog/2018-05-10/endpoint-tests-1.json b/models/apis/controlcatalog/2018-05-10/endpoint-tests-1.json new file mode 100644 index 00000000000..6188cfeaed4 --- /dev/null +++ b/models/apis/controlcatalog/2018-05-10/endpoint-tests-1.json @@ -0,0 +1,314 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controlcatalog-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://controlcatalog-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://controlcatalog.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controlcatalog.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controlcatalog-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://controlcatalog-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://controlcatalog.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://controlcatalog.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://controlcatalog-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://controlcatalog-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://controlcatalog.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://controlcatalog.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://controlcatalog-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://controlcatalog.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://controlcatalog-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://controlcatalog.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/controlcatalog/2018-05-10/examples-1.json b/models/apis/controlcatalog/2018-05-10/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/controlcatalog/2018-05-10/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/controlcatalog/2018-05-10/paginators-1.json b/models/apis/controlcatalog/2018-05-10/paginators-1.json new file mode 100644 index 00000000000..d716b3dcefc --- /dev/null +++ b/models/apis/controlcatalog/2018-05-10/paginators-1.json @@ -0,0 +1,22 @@ +{ + "pagination": { + "ListCommonControls": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "CommonControls" + }, + "ListDomains": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Domains" + }, + "ListObjectives": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Objectives" + } + } +} diff --git a/models/apis/mgn/2020-02-26/api-2.json b/models/apis/mgn/2020-02-26/api-2.json index 972919eaf03..819da869ac5 100644 --- a/models/apis/mgn/2020-02-26/api-2.json +++ b/models/apis/mgn/2020-02-26/api-2.json @@ -1125,6 +1125,7 @@ "LICENSE_AND_SUBSCRIPTION", "VALIDATION", "OBSERVABILITY", + "REFACTORING", "SECURITY", "NETWORKING", "CONFIGURATION", @@ -1299,7 +1300,8 @@ "type":"string", "enum":[ "LEGACY_BIOS", - "UEFI" + "UEFI", + "USE_SOURCE" ] }, "BoundedString":{ diff --git a/models/apis/mgn/2020-02-26/docs-2.json b/models/apis/mgn/2020-02-26/docs-2.json index 8ce84fbd81b..09e22e5dfb2 100644 --- a/models/apis/mgn/2020-02-26/docs-2.json +++ b/models/apis/mgn/2020-02-26/docs-2.json @@ -65,7 +65,7 @@ "UntagResource": "

Deletes the specified set of tags from the specified set of Application Migration Service resources.

", "UpdateApplication": "

Update application.

", "UpdateConnector": "

Update Connector.

", - "UpdateLaunchConfiguration": "

Updates multiple LaunchConfigurations by Source Server ID.

", + "UpdateLaunchConfiguration": "

Updates multiple LaunchConfigurations by Source Server ID.

bootMode valid values are LEGACY_BIOS | UEFI

", "UpdateLaunchConfigurationTemplate": "

Updates an existing Launch Configuration Template by ID.

", "UpdateReplicationConfiguration": "

Allows you to update multiple ReplicationConfigurations by Source Server ID.

", "UpdateReplicationConfigurationTemplate": "

Updates multiple ReplicationConfigurationTemplates by ID.

", diff --git a/models/apis/networkmonitor/2023-08-01/api-2.json b/models/apis/networkmonitor/2023-08-01/api-2.json index 68463333db8..6998675067d 100644 --- a/models/apis/networkmonitor/2023-08-01/api-2.json +++ b/models/apis/networkmonitor/2023-08-01/api-2.json @@ -665,7 +665,7 @@ }, "ResourceName":{ "type":"string", - "max":255, + "max":200, "min":1, "pattern":"[a-zA-Z0-9_-]+" }, diff --git a/models/apis/networkmonitor/2023-08-01/docs-2.json b/models/apis/networkmonitor/2023-08-01/docs-2.json index 9109ff8c359..8622af638d5 100644 --- a/models/apis/networkmonitor/2023-08-01/docs-2.json +++ b/models/apis/networkmonitor/2023-08-01/docs-2.json @@ -27,14 +27,14 @@ "CreateProbeOutput$addressFamily": "

Indicates whether the IP address is IPV4 or IPV6.

", "GetProbeOutput$addressFamily": "

Indicates whether the IP address is IPV4 or IPV6.

", "Probe$addressFamily": "

The IPv4 or IPv6 address for the probe.

", - "UpdateProbeOutput$addressFamily": "

The updated IP address family. This will be either IPV4 or IPV6.

" + "UpdateProbeOutput$addressFamily": "

The updated IP address family. This must be either IPV4 or IPV6.

" } }, "AggregationPeriod": { "base": null, "refs": { "CreateMonitorInput$aggregationPeriod": "

The time, in seconds, that metrics are aggregated and sent to Amazon CloudWatch. Valid values are either 30 or 60.

", - "CreateMonitorOutput$aggregationPeriod": "

The number of seconds that metrics are aggregated by and sent to Amazon CloudWatch. This will be either 30 or 60.

", + "CreateMonitorOutput$aggregationPeriod": "

The number of seconds that metrics are aggregated by and sent to Amazon CloudWatch. This must be either 30 or 60.

", "GetMonitorOutput$aggregationPeriod": "

The aggregation period for the specified monitor.

", "MonitorSummary$aggregationPeriod": "

The time, in seconds, that metrics are collected and sent to Amazon CloudWatch. Valid values are either 30 or 60.

", "UpdateMonitorInput$aggregationPeriod": "

The aggregation time, in seconds, to change to. This must be either 30 or 60.

", @@ -119,11 +119,11 @@ "Destination": { "base": null, "refs": { - "CreateMonitorProbeInput$destination": "

The destination IP address. This will be either IPV4 or IPV6.

", - "CreateProbeOutput$destination": "

The destination IP address for the monitor. This will be either an IPv4 or IPv6 address.

", - "GetProbeOutput$destination": "

The destination IP address for the monitor. This will be either an IPv4 or IPv6 address.

", + "CreateMonitorProbeInput$destination": "

The destination IP address. This must be either IPV4 or IPV6.

", + "CreateProbeOutput$destination": "

The destination IP address for the monitor. This must be either an IPv4 or IPv6 address.

", + "GetProbeOutput$destination": "

The destination IP address for the monitor. This must be either an IPv4 or IPv6 address.

", "Probe$destination": "

The destination for the probe. This should be either an IPV4 or IPV6.

", - "ProbeInput$destination": "

The destination IP address. This will be either IPV4 or IPV6.

", + "ProbeInput$destination": "

The destination IP address. This must be either IPV4 or IPV6.

", "UpdateProbeInput$destination": "

The updated IP address for the probe destination. This must be either an IPv4 or IPv6 address.

", "UpdateProbeOutput$destination": "

The updated destination IP address for the probe.

" } @@ -227,11 +227,11 @@ "PacketSize": { "base": null, "refs": { - "CreateMonitorProbeInput$packetSize": "

The size of the packets sent between the source and destination. This will be a number between 56 and 8500.

", - "CreateProbeOutput$packetSize": "

The size of the packets sent between the source and destination. This will be a number between 56 and 8500.

", - "GetProbeOutput$packetSize": "

The size of the packets sent between the source and destination. This will be a number between 56 and 8500.

", + "CreateMonitorProbeInput$packetSize": "

The size of the packets sent between the source and destination. This must be a number between 56 and 8500.

", + "CreateProbeOutput$packetSize": "

The size of the packets sent between the source and destination. This must be a number between 56 and 8500.

", + "GetProbeOutput$packetSize": "

The size of the packets sent between the source and destination. This must be a number between 56 and 8500.

", "Probe$packetSize": "

The size of the packets traveling between the source and destination. This must be a number between 56 and

", - "ProbeInput$packetSize": "

The size of the packets sent between the source and destination. This will be a number between 56 and 8500.

", + "ProbeInput$packetSize": "

The size of the packets sent between the source and destination. This must be a number between 56 and 8500.

", "UpdateProbeInput$packetSize": "

he updated packets size for network traffic between the source and destination. This must be a number between 56 and 8500.

", "UpdateProbeOutput$packetSize": "

The updated packet size for the probe.

" } @@ -251,7 +251,7 @@ "Probe$destinationPort": "

The destination port for the probe. This is required only if the protocol is TCP and must be a number between 1 and 65536.

", "ProbeInput$destinationPort": "

The port associated with the destination. This is required only if the protocol is TCP and must be a number between 1 and 65536.

", "UpdateProbeInput$destinationPort": "

The updated port for the probe destination. This is required only if the protocol is TCP and must be a number between 1 and 65536.

", - "UpdateProbeOutput$destinationPort": "

The updated destination port. This will be a number between 1 and 65536.

" + "UpdateProbeOutput$destinationPort": "

The updated destination port. This must be a number between 1 and 65536.

" } }, "Probe": { @@ -297,11 +297,11 @@ "Protocol": { "base": null, "refs": { - "CreateMonitorProbeInput$protocol": "

The protocol used for the network traffic between the source and destination. This will be either TCP or ICMP.

", - "CreateProbeOutput$protocol": "

The protocol used for the network traffic between the source and destination. This will be either TCP or ICMP.

", - "GetProbeOutput$protocol": "

The protocol used for the network traffic between the source and destination. This will be either TCP or ICMP.

", + "CreateMonitorProbeInput$protocol": "

The protocol used for the network traffic between the source and destination. This must be either TCP or ICMP.

", + "CreateProbeOutput$protocol": "

The protocol used for the network traffic between the source and destination. This must be either TCP or ICMP.

", + "GetProbeOutput$protocol": "

The protocol used for the network traffic between the source and destination. This must be either TCP or ICMP.

", "Probe$protocol": "

The network protocol for the destination. This can be either TCP or ICMP. If the protocol is TCP, then port is also required.

", - "ProbeInput$protocol": "

The protocol used for the network traffic between the source and destination. This will be either TCP or ICMP.

", + "ProbeInput$protocol": "

The protocol used for the network traffic between the source and destination. This must be either TCP or ICMP.

", "UpdateProbeInput$protocol": "

The updated network protocol for the destination. This can be either TCP or ICMP. If the protocol is TCP, then port is also required.

", "UpdateProbeOutput$protocol": "

The updated protocol for the probe.

" } @@ -309,7 +309,7 @@ "ResourceName": { "base": null, "refs": { - "CreateMonitorInput$monitorName": "

The name identifying the monitor. It can contain only letters, underscores (_), or dashes (-), and can be up to 255 characters.

", + "CreateMonitorInput$monitorName": "

The name identifying the monitor. It can contain only letters, underscores (_), or dashes (-), and can be up to 200 characters.

", "CreateMonitorOutput$monitorName": "

The name of the monitor.

", "CreateProbeInput$monitorName": "

The name of the monitor to associated with the probe. To get a list of available monitors, use ListMonitors.

", "DeleteMonitorInput$monitorName": "

The name of the monitor to delete. Use the ListMonitors action to get a list of your current monitors.

", diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index 8fb3f59ff15..ea0d3186733 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -19214,6 +19214,7 @@ "eu-north-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, + "sa-east-1" : { }, "us-east-1" : { }, "us-east-2" : { }, "us-west-2" : { } diff --git a/service/controlcatalog/api.go b/service/controlcatalog/api.go new file mode 100644 index 00000000000..7f035541f63 --- /dev/null +++ b/service/controlcatalog/api.go @@ -0,0 +1,1586 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package controlcatalog + +import ( + "fmt" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awsutil" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/private/protocol" +) + +const opListCommonControls = "ListCommonControls" + +// ListCommonControlsRequest generates a "aws/request.Request" representing the +// client's request for the ListCommonControls 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 ListCommonControls for more information on using the ListCommonControls +// 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 ListCommonControlsRequest method. +// req, resp := client.ListCommonControlsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ListCommonControls +func (c *ControlCatalog) ListCommonControlsRequest(input *ListCommonControlsInput) (req *request.Request, output *ListCommonControlsOutput) { + op := &request.Operation{ + Name: opListCommonControls, + HTTPMethod: "POST", + HTTPPath: "/common-controls", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListCommonControlsInput{} + } + + output = &ListCommonControlsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListCommonControls API operation for AWS Control Catalog. +// +// Returns a paginated list of common controls from the Amazon Web Services +// Control Catalog. +// +// You can apply an optional filter to see common controls that have a specific +// objective. If you don’t provide a filter, the operation returns all common +// controls. +// +// 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 Catalog's +// API operation ListCommonControls for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - InternalServerException +// An internal service error occurred during the processing of your request. +// Try again later. +// +// - ValidationException +// The request has invalid or missing parameters. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ListCommonControls +func (c *ControlCatalog) ListCommonControls(input *ListCommonControlsInput) (*ListCommonControlsOutput, error) { + req, out := c.ListCommonControlsRequest(input) + return out, req.Send() +} + +// ListCommonControlsWithContext is the same as ListCommonControls with the addition of +// the ability to pass a context and additional request options. +// +// See ListCommonControls 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 *ControlCatalog) ListCommonControlsWithContext(ctx aws.Context, input *ListCommonControlsInput, opts ...request.Option) (*ListCommonControlsOutput, error) { + req, out := c.ListCommonControlsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListCommonControlsPages iterates over the pages of a ListCommonControls operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListCommonControls 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 ListCommonControls operation. +// pageNum := 0 +// err := client.ListCommonControlsPages(params, +// func(page *controlcatalog.ListCommonControlsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *ControlCatalog) ListCommonControlsPages(input *ListCommonControlsInput, fn func(*ListCommonControlsOutput, bool) bool) error { + return c.ListCommonControlsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListCommonControlsPagesWithContext same as ListCommonControlsPages 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 *ControlCatalog) ListCommonControlsPagesWithContext(ctx aws.Context, input *ListCommonControlsInput, fn func(*ListCommonControlsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListCommonControlsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListCommonControlsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListCommonControlsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListDomains = "ListDomains" + +// ListDomainsRequest generates a "aws/request.Request" representing the +// client's request for the ListDomains 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 ListDomains for more information on using the ListDomains +// 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 ListDomainsRequest method. +// req, resp := client.ListDomainsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ListDomains +func (c *ControlCatalog) ListDomainsRequest(input *ListDomainsInput) (req *request.Request, output *ListDomainsOutput) { + op := &request.Operation{ + Name: opListDomains, + HTTPMethod: "POST", + HTTPPath: "/domains", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListDomainsInput{} + } + + output = &ListDomainsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListDomains API operation for AWS Control Catalog. +// +// Returns a paginated list of domains from the Amazon Web Services Control +// Catalog. +// +// 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 Catalog's +// API operation ListDomains for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - InternalServerException +// An internal service error occurred during the processing of your request. +// Try again later. +// +// - ValidationException +// The request has invalid or missing parameters. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ListDomains +func (c *ControlCatalog) ListDomains(input *ListDomainsInput) (*ListDomainsOutput, error) { + req, out := c.ListDomainsRequest(input) + return out, req.Send() +} + +// ListDomainsWithContext is the same as ListDomains with the addition of +// the ability to pass a context and additional request options. +// +// See ListDomains 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 *ControlCatalog) ListDomainsWithContext(ctx aws.Context, input *ListDomainsInput, opts ...request.Option) (*ListDomainsOutput, error) { + req, out := c.ListDomainsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListDomainsPages iterates over the pages of a ListDomains operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListDomains 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 ListDomains operation. +// pageNum := 0 +// err := client.ListDomainsPages(params, +// func(page *controlcatalog.ListDomainsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *ControlCatalog) ListDomainsPages(input *ListDomainsInput, fn func(*ListDomainsOutput, bool) bool) error { + return c.ListDomainsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListDomainsPagesWithContext same as ListDomainsPages 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 *ControlCatalog) ListDomainsPagesWithContext(ctx aws.Context, input *ListDomainsInput, fn func(*ListDomainsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListDomainsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListDomainsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListDomainsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListObjectives = "ListObjectives" + +// ListObjectivesRequest generates a "aws/request.Request" representing the +// client's request for the ListObjectives 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 ListObjectives for more information on using the ListObjectives +// 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 ListObjectivesRequest method. +// req, resp := client.ListObjectivesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ListObjectives +func (c *ControlCatalog) ListObjectivesRequest(input *ListObjectivesInput) (req *request.Request, output *ListObjectivesOutput) { + op := &request.Operation{ + Name: opListObjectives, + HTTPMethod: "POST", + HTTPPath: "/objectives", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListObjectivesInput{} + } + + output = &ListObjectivesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListObjectives API operation for AWS Control Catalog. +// +// Returns a paginated list of objectives from the Amazon Web Services Control +// Catalog. +// +// You can apply an optional filter to see the objectives that belong to a specific +// domain. If you don’t provide a filter, the operation returns all objectives. +// +// 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 Catalog's +// API operation ListObjectives for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - InternalServerException +// An internal service error occurred during the processing of your request. +// Try again later. +// +// - ValidationException +// The request has invalid or missing parameters. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ListObjectives +func (c *ControlCatalog) ListObjectives(input *ListObjectivesInput) (*ListObjectivesOutput, error) { + req, out := c.ListObjectivesRequest(input) + return out, req.Send() +} + +// ListObjectivesWithContext is the same as ListObjectives with the addition of +// the ability to pass a context and additional request options. +// +// See ListObjectives 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 *ControlCatalog) ListObjectivesWithContext(ctx aws.Context, input *ListObjectivesInput, opts ...request.Option) (*ListObjectivesOutput, error) { + req, out := c.ListObjectivesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListObjectivesPages iterates over the pages of a ListObjectives operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListObjectives 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 ListObjectives operation. +// pageNum := 0 +// err := client.ListObjectivesPages(params, +// func(page *controlcatalog.ListObjectivesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *ControlCatalog) ListObjectivesPages(input *ListObjectivesInput, fn func(*ListObjectivesOutput, bool) bool) error { + return c.ListObjectivesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListObjectivesPagesWithContext same as ListObjectivesPages 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 *ControlCatalog) ListObjectivesPagesWithContext(ctx aws.Context, input *ListObjectivesInput, fn func(*ListObjectivesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListObjectivesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListObjectivesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListObjectivesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +// You do not have sufficient access to perform this action. +type AccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + 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 AccessDeniedException) 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 AccessDeniedException) GoString() string { + return s.String() +} + +func newErrorAccessDeniedException(v protocol.ResponseMetadata) error { + return &AccessDeniedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *AccessDeniedException) Code() string { + return "AccessDeniedException" +} + +// Message returns the exception's message. +func (s *AccessDeniedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *AccessDeniedException) OrigErr() error { + return nil +} + +func (s *AccessDeniedException) 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 *AccessDeniedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *AccessDeniedException) RequestID() string { + return s.RespMetadata.RequestID +} + +// A summary of the domain that a common control or an objective belongs to. +type AssociatedDomainSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the related domain. + Arn *string `min:"33" type:"string"` + + // The name of the related domain. + Name *string `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 AssociatedDomainSummary) 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 AssociatedDomainSummary) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *AssociatedDomainSummary) SetArn(v string) *AssociatedDomainSummary { + s.Arn = &v + return s +} + +// SetName sets the Name field's value. +func (s *AssociatedDomainSummary) SetName(v string) *AssociatedDomainSummary { + s.Name = &v + return s +} + +// A summary of the objective that a common control supports. +type AssociatedObjectiveSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the related objective. + Arn *string `min:"36" type:"string"` + + // The name of the related objective. + Name *string `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 AssociatedObjectiveSummary) 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 AssociatedObjectiveSummary) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *AssociatedObjectiveSummary) SetArn(v string) *AssociatedObjectiveSummary { + s.Arn = &v + return s +} + +// SetName sets the Name field's value. +func (s *AssociatedObjectiveSummary) SetName(v string) *AssociatedObjectiveSummary { + s.Name = &v + return s +} + +// An optional filter that narrows the results to a specific objective. +type CommonControlFilter struct { + _ struct{} `type:"structure"` + + // The objective that's used as filter criteria. + // + // You can use this parameter to specify one objective ARN at a time. Passing + // multiple ARNs in the CommonControlFilter isn’t currently supported. + Objectives []*ObjectiveResourceFilter `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 CommonControlFilter) 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 CommonControlFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CommonControlFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CommonControlFilter"} + if s.Objectives != nil { + for i, v := range s.Objectives { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Objectives", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetObjectives sets the Objectives field's value. +func (s *CommonControlFilter) SetObjectives(v []*ObjectiveResourceFilter) *CommonControlFilter { + s.Objectives = v + return s +} + +// A summary of metadata for a common control. +type CommonControlSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) that identifies the common control. + // + // Arn is a required field + Arn *string `min:"41" type:"string" required:"true"` + + // The time when the common control was created. + // + // CreateTime is a required field + CreateTime *time.Time `type:"timestamp" required:"true"` + + // The description of the common control. + // + // Description is a required field + Description *string `type:"string" required:"true"` + + // The domain that the common control belongs to. + // + // Domain is a required field + Domain *AssociatedDomainSummary `type:"structure" required:"true"` + + // The time when the common control was most recently updated. + // + // LastUpdateTime is a required field + LastUpdateTime *time.Time `type:"timestamp" required:"true"` + + // The name of the common control. + // + // Name is a required field + Name *string `type:"string" required:"true"` + + // The objective that the common control belongs to. + // + // Objective is a required field + Objective *AssociatedObjectiveSummary `type:"structure" 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 CommonControlSummary) 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 CommonControlSummary) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *CommonControlSummary) SetArn(v string) *CommonControlSummary { + s.Arn = &v + return s +} + +// SetCreateTime sets the CreateTime field's value. +func (s *CommonControlSummary) SetCreateTime(v time.Time) *CommonControlSummary { + s.CreateTime = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CommonControlSummary) SetDescription(v string) *CommonControlSummary { + s.Description = &v + return s +} + +// SetDomain sets the Domain field's value. +func (s *CommonControlSummary) SetDomain(v *AssociatedDomainSummary) *CommonControlSummary { + s.Domain = v + return s +} + +// SetLastUpdateTime sets the LastUpdateTime field's value. +func (s *CommonControlSummary) SetLastUpdateTime(v time.Time) *CommonControlSummary { + s.LastUpdateTime = &v + return s +} + +// SetName sets the Name field's value. +func (s *CommonControlSummary) SetName(v string) *CommonControlSummary { + s.Name = &v + return s +} + +// SetObjective sets the Objective field's value. +func (s *CommonControlSummary) SetObjective(v *AssociatedObjectiveSummary) *CommonControlSummary { + s.Objective = v + return s +} + +// The domain resource that's being used as a filter. +type DomainResourceFilter struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the domain. + Arn *string `min:"33" 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 DomainResourceFilter) 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 DomainResourceFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DomainResourceFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DomainResourceFilter"} + if s.Arn != nil && len(*s.Arn) < 33 { + invalidParams.Add(request.NewErrParamMinLen("Arn", 33)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetArn sets the Arn field's value. +func (s *DomainResourceFilter) SetArn(v string) *DomainResourceFilter { + s.Arn = &v + return s +} + +// A summary of metadata for a domain. +type DomainSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) that identifies the domain. + // + // Arn is a required field + Arn *string `min:"33" type:"string" required:"true"` + + // The time when the domain was created. + // + // CreateTime is a required field + CreateTime *time.Time `type:"timestamp" required:"true"` + + // The description of the domain. + // + // Description is a required field + Description *string `type:"string" required:"true"` + + // The time when the domain was most recently updated. + // + // LastUpdateTime is a required field + LastUpdateTime *time.Time `type:"timestamp" required:"true"` + + // The name of the domain. + // + // Name is a required field + Name *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 DomainSummary) 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 DomainSummary) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *DomainSummary) SetArn(v string) *DomainSummary { + s.Arn = &v + return s +} + +// SetCreateTime sets the CreateTime field's value. +func (s *DomainSummary) SetCreateTime(v time.Time) *DomainSummary { + s.CreateTime = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *DomainSummary) SetDescription(v string) *DomainSummary { + s.Description = &v + return s +} + +// SetLastUpdateTime sets the LastUpdateTime field's value. +func (s *DomainSummary) SetLastUpdateTime(v time.Time) *DomainSummary { + s.LastUpdateTime = &v + return s +} + +// SetName sets the Name field's value. +func (s *DomainSummary) SetName(v string) *DomainSummary { + s.Name = &v + return s +} + +// An internal service error occurred during the processing of your request. +// Try again later. +type InternalServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + 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 InternalServerException) 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 InternalServerException) GoString() string { + return s.String() +} + +func newErrorInternalServerException(v protocol.ResponseMetadata) error { + return &InternalServerException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InternalServerException) Code() string { + return "InternalServerException" +} + +// Message returns the exception's message. +func (s *InternalServerException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServerException) OrigErr() error { + return nil +} + +func (s *InternalServerException) 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 *InternalServerException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InternalServerException) RequestID() string { + return s.RespMetadata.RequestID +} + +type ListCommonControlsInput struct { + _ struct{} `type:"structure"` + + // An optional filter that narrows the results to a specific objective. + // + // This filter allows you to specify one objective ARN at a time. Passing multiple + // ARNs in the CommonControlFilter isn’t currently supported. + CommonControlFilter *CommonControlFilter `type:"structure"` + + // The maximum number of results on a page or for an API request call. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The pagination token that's used to fetch the next set of results. + NextToken *string `location:"querystring" locationName:"nextToken" 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 ListCommonControlsInput) 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 ListCommonControlsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListCommonControlsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListCommonControlsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.CommonControlFilter != nil { + if err := s.CommonControlFilter.Validate(); err != nil { + invalidParams.AddNested("CommonControlFilter", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCommonControlFilter sets the CommonControlFilter field's value. +func (s *ListCommonControlsInput) SetCommonControlFilter(v *CommonControlFilter) *ListCommonControlsInput { + s.CommonControlFilter = v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListCommonControlsInput) SetMaxResults(v int64) *ListCommonControlsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListCommonControlsInput) SetNextToken(v string) *ListCommonControlsInput { + s.NextToken = &v + return s +} + +type ListCommonControlsOutput struct { + _ struct{} `type:"structure"` + + // The list of common controls that the ListCommonControls API returns. + // + // CommonControls is a required field + CommonControls []*CommonControlSummary `type:"list" required:"true"` + + // The pagination token that's used to fetch the next set of results. + NextToken *string `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 ListCommonControlsOutput) 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 ListCommonControlsOutput) GoString() string { + return s.String() +} + +// SetCommonControls sets the CommonControls field's value. +func (s *ListCommonControlsOutput) SetCommonControls(v []*CommonControlSummary) *ListCommonControlsOutput { + s.CommonControls = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListCommonControlsOutput) SetNextToken(v string) *ListCommonControlsOutput { + s.NextToken = &v + return s +} + +type ListDomainsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The maximum number of results on a page or for an API request call. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The pagination token that's used to fetch the next set of results. + NextToken *string `location:"querystring" locationName:"nextToken" 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 ListDomainsInput) 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 ListDomainsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListDomainsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListDomainsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListDomainsInput) SetMaxResults(v int64) *ListDomainsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListDomainsInput) SetNextToken(v string) *ListDomainsInput { + s.NextToken = &v + return s +} + +type ListDomainsOutput struct { + _ struct{} `type:"structure"` + + // The list of domains that the ListDomains API returns. + // + // Domains is a required field + Domains []*DomainSummary `type:"list" required:"true"` + + // The pagination token that's used to fetch the next set of results. + NextToken *string `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 ListDomainsOutput) 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 ListDomainsOutput) GoString() string { + return s.String() +} + +// SetDomains sets the Domains field's value. +func (s *ListDomainsOutput) SetDomains(v []*DomainSummary) *ListDomainsOutput { + s.Domains = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListDomainsOutput) SetNextToken(v string) *ListDomainsOutput { + s.NextToken = &v + return s +} + +type ListObjectivesInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results on a page or for an API request call. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The pagination token that's used to fetch the next set of results. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + + // An optional filter that narrows the results to a specific domain. + // + // This filter allows you to specify one domain ARN at a time. Passing multiple + // ARNs in the ObjectiveFilter isn’t currently supported. + ObjectiveFilter *ObjectiveFilter `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 ListObjectivesInput) 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 ListObjectivesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListObjectivesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListObjectivesInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.ObjectiveFilter != nil { + if err := s.ObjectiveFilter.Validate(); err != nil { + invalidParams.AddNested("ObjectiveFilter", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListObjectivesInput) SetMaxResults(v int64) *ListObjectivesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListObjectivesInput) SetNextToken(v string) *ListObjectivesInput { + s.NextToken = &v + return s +} + +// SetObjectiveFilter sets the ObjectiveFilter field's value. +func (s *ListObjectivesInput) SetObjectiveFilter(v *ObjectiveFilter) *ListObjectivesInput { + s.ObjectiveFilter = v + return s +} + +type ListObjectivesOutput struct { + _ struct{} `type:"structure"` + + // The pagination token that's used to fetch the next set of results. + NextToken *string `type:"string"` + + // The list of objectives that the ListObjectives API returns. + // + // Objectives is a required field + Objectives []*ObjectiveSummary `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 ListObjectivesOutput) 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 ListObjectivesOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListObjectivesOutput) SetNextToken(v string) *ListObjectivesOutput { + s.NextToken = &v + return s +} + +// SetObjectives sets the Objectives field's value. +func (s *ListObjectivesOutput) SetObjectives(v []*ObjectiveSummary) *ListObjectivesOutput { + s.Objectives = v + return s +} + +// An optional filter that narrows the list of objectives to a specific domain. +type ObjectiveFilter struct { + _ struct{} `type:"structure"` + + // The domain that's used as filter criteria. + // + // You can use this parameter to specify one domain ARN at a time. Passing multiple + // ARNs in the ObjectiveFilter isn’t currently supported. + Domains []*DomainResourceFilter `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 ObjectiveFilter) 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 ObjectiveFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ObjectiveFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ObjectiveFilter"} + if s.Domains != nil { + for i, v := range s.Domains { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Domains", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDomains sets the Domains field's value. +func (s *ObjectiveFilter) SetDomains(v []*DomainResourceFilter) *ObjectiveFilter { + s.Domains = v + return s +} + +// The objective resource that's being used as a filter. +type ObjectiveResourceFilter struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the objective. + Arn *string `min:"36" 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 ObjectiveResourceFilter) 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 ObjectiveResourceFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ObjectiveResourceFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ObjectiveResourceFilter"} + if s.Arn != nil && len(*s.Arn) < 36 { + invalidParams.Add(request.NewErrParamMinLen("Arn", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetArn sets the Arn field's value. +func (s *ObjectiveResourceFilter) SetArn(v string) *ObjectiveResourceFilter { + s.Arn = &v + return s +} + +// A summary of metadata for an objective. +type ObjectiveSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) that identifies the objective. + // + // Arn is a required field + Arn *string `min:"36" type:"string" required:"true"` + + // The time when the objective was created. + // + // CreateTime is a required field + CreateTime *time.Time `type:"timestamp" required:"true"` + + // The description of the objective. + // + // Description is a required field + Description *string `type:"string" required:"true"` + + // The domain that the objective belongs to. + // + // Domain is a required field + Domain *AssociatedDomainSummary `type:"structure" required:"true"` + + // The time when the objective was most recently updated. + // + // LastUpdateTime is a required field + LastUpdateTime *time.Time `type:"timestamp" required:"true"` + + // The name of the objective. + // + // Name is a required field + Name *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 ObjectiveSummary) 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 ObjectiveSummary) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *ObjectiveSummary) SetArn(v string) *ObjectiveSummary { + s.Arn = &v + return s +} + +// SetCreateTime sets the CreateTime field's value. +func (s *ObjectiveSummary) SetCreateTime(v time.Time) *ObjectiveSummary { + s.CreateTime = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *ObjectiveSummary) SetDescription(v string) *ObjectiveSummary { + s.Description = &v + return s +} + +// SetDomain sets the Domain field's value. +func (s *ObjectiveSummary) SetDomain(v *AssociatedDomainSummary) *ObjectiveSummary { + s.Domain = v + return s +} + +// SetLastUpdateTime sets the LastUpdateTime field's value. +func (s *ObjectiveSummary) SetLastUpdateTime(v time.Time) *ObjectiveSummary { + s.LastUpdateTime = &v + return s +} + +// SetName sets the Name field's value. +func (s *ObjectiveSummary) SetName(v string) *ObjectiveSummary { + s.Name = &v + return s +} + +// The request was denied due to request throttling. +type ThrottlingException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + 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 ThrottlingException) 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 ThrottlingException) GoString() string { + return s.String() +} + +func newErrorThrottlingException(v protocol.ResponseMetadata) error { + return &ThrottlingException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ThrottlingException) Code() string { + return "ThrottlingException" +} + +// Message returns the exception's message. +func (s *ThrottlingException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ThrottlingException) OrigErr() error { + return nil +} + +func (s *ThrottlingException) 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 *ThrottlingException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ThrottlingException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The request has invalid or missing parameters. +type ValidationException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + 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 ValidationException) 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 ValidationException) GoString() string { + return s.String() +} + +func newErrorValidationException(v protocol.ResponseMetadata) error { + return &ValidationException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ValidationException) Code() string { + return "ValidationException" +} + +// Message returns the exception's message. +func (s *ValidationException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ValidationException) OrigErr() error { + return nil +} + +func (s *ValidationException) 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 *ValidationException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ValidationException) RequestID() string { + return s.RespMetadata.RequestID +} diff --git a/service/controlcatalog/controlcatalogiface/interface.go b/service/controlcatalog/controlcatalogiface/interface.go new file mode 100644 index 00000000000..6dc9aa7fe5a --- /dev/null +++ b/service/controlcatalog/controlcatalogiface/interface.go @@ -0,0 +1,85 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package controlcatalogiface provides an interface to enable mocking the AWS Control Catalog service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package controlcatalogiface + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/service/controlcatalog" +) + +// ControlCatalogAPI provides an interface to enable mocking the +// controlcatalog.ControlCatalog service client's API operation, +// paginators, and waiters. This make unit testing your code that calls out +// to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // AWS Control Catalog. +// func myFunc(svc controlcatalogiface.ControlCatalogAPI) bool { +// // Make svc.ListCommonControls request +// } +// +// func main() { +// sess := session.New() +// svc := controlcatalog.New(sess) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockControlCatalogClient struct { +// controlcatalogiface.ControlCatalogAPI +// } +// func (m *mockControlCatalogClient) ListCommonControls(input *controlcatalog.ListCommonControlsInput) (*controlcatalog.ListCommonControlsOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockControlCatalogClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type ControlCatalogAPI interface { + ListCommonControls(*controlcatalog.ListCommonControlsInput) (*controlcatalog.ListCommonControlsOutput, error) + ListCommonControlsWithContext(aws.Context, *controlcatalog.ListCommonControlsInput, ...request.Option) (*controlcatalog.ListCommonControlsOutput, error) + ListCommonControlsRequest(*controlcatalog.ListCommonControlsInput) (*request.Request, *controlcatalog.ListCommonControlsOutput) + + ListCommonControlsPages(*controlcatalog.ListCommonControlsInput, func(*controlcatalog.ListCommonControlsOutput, bool) bool) error + ListCommonControlsPagesWithContext(aws.Context, *controlcatalog.ListCommonControlsInput, func(*controlcatalog.ListCommonControlsOutput, bool) bool, ...request.Option) error + + ListDomains(*controlcatalog.ListDomainsInput) (*controlcatalog.ListDomainsOutput, error) + ListDomainsWithContext(aws.Context, *controlcatalog.ListDomainsInput, ...request.Option) (*controlcatalog.ListDomainsOutput, error) + ListDomainsRequest(*controlcatalog.ListDomainsInput) (*request.Request, *controlcatalog.ListDomainsOutput) + + ListDomainsPages(*controlcatalog.ListDomainsInput, func(*controlcatalog.ListDomainsOutput, bool) bool) error + ListDomainsPagesWithContext(aws.Context, *controlcatalog.ListDomainsInput, func(*controlcatalog.ListDomainsOutput, bool) bool, ...request.Option) error + + ListObjectives(*controlcatalog.ListObjectivesInput) (*controlcatalog.ListObjectivesOutput, error) + ListObjectivesWithContext(aws.Context, *controlcatalog.ListObjectivesInput, ...request.Option) (*controlcatalog.ListObjectivesOutput, error) + ListObjectivesRequest(*controlcatalog.ListObjectivesInput) (*request.Request, *controlcatalog.ListObjectivesOutput) + + ListObjectivesPages(*controlcatalog.ListObjectivesInput, func(*controlcatalog.ListObjectivesOutput, bool) bool) error + ListObjectivesPagesWithContext(aws.Context, *controlcatalog.ListObjectivesInput, func(*controlcatalog.ListObjectivesOutput, bool) bool, ...request.Option) error +} + +var _ ControlCatalogAPI = (*controlcatalog.ControlCatalog)(nil) diff --git a/service/controlcatalog/doc.go b/service/controlcatalog/doc.go new file mode 100644 index 00000000000..d9f4f3a759a --- /dev/null +++ b/service/controlcatalog/doc.go @@ -0,0 +1,48 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package controlcatalog provides the client and types for making API +// requests to AWS Control Catalog. +// +// Welcome to the Amazon Web Services Control Catalog API reference. This guide +// is for developers who need detailed information about how to programmatically +// identify and filter the common controls and related metadata that are available +// to Amazon Web Services customers. This API reference provides descriptions, +// syntax, and usage examples for each of the actions and data types that are +// supported by Amazon Web Services Control Catalog. +// +// Use the following links to get started with the Amazon Web Services Control +// Catalog API: +// +// - Actions (https://docs.aws.amazon.com/controlcatalog/latest/APIReference/API_Operations.html): +// An alphabetical list of all Control Catalog API operations. +// +// - Data types (https://docs.aws.amazon.com/controlcatalog/latest/APIReference/API_Types.html): +// An alphabetical list of all Control Catalog data types. +// +// - Common parameters (https://docs.aws.amazon.com/controlcatalog/latest/APIReference/CommonParameters.html): +// Parameters that all operations can use. +// +// - Common errors (https://docs.aws.amazon.com/controlcatalog/latest/APIReference/CommonErrors.html): +// Client and server errors that all operations can return. +// +// See https://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10 for more information on this service. +// +// See controlcatalog package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/controlcatalog/ +// +// # Using the Client +// +// To contact AWS Control Catalog with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the AWS Control Catalog client ControlCatalog for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/controlcatalog/#New +package controlcatalog diff --git a/service/controlcatalog/errors.go b/service/controlcatalog/errors.go new file mode 100644 index 00000000000..3b787bfe411 --- /dev/null +++ b/service/controlcatalog/errors.go @@ -0,0 +1,42 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package controlcatalog + +import ( + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // You do not have sufficient access to perform this action. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // An internal service error occurred during the processing of your request. + // Try again later. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // The request was denied due to request throttling. + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // The request has invalid or missing parameters. + ErrCodeValidationException = "ValidationException" +) + +var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ + "AccessDeniedException": newErrorAccessDeniedException, + "InternalServerException": newErrorInternalServerException, + "ThrottlingException": newErrorThrottlingException, + "ValidationException": newErrorValidationException, +} diff --git a/service/controlcatalog/service.go b/service/controlcatalog/service.go new file mode 100644 index 00000000000..b25993f2931 --- /dev/null +++ b/service/controlcatalog/service.go @@ -0,0 +1,106 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package controlcatalog + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +// ControlCatalog provides the API operation methods for making requests to +// AWS Control Catalog. See this package's package overview docs +// for details on the service. +// +// ControlCatalog methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type ControlCatalog struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "ControlCatalog" // Name of service. + EndpointsID = "controlcatalog" // ID to lookup a service endpoint with. + ServiceID = "ControlCatalog" // ServiceID is a unique identifier of a specific service. +) + +// New creates a new instance of the ControlCatalog client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// +// mySession := session.Must(session.NewSession()) +// +// // Create a ControlCatalog client from just a session. +// svc := controlcatalog.New(mySession) +// +// // Create a ControlCatalog client with additional configuration +// svc := controlcatalog.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *ControlCatalog { + c := p.ClientConfig(EndpointsID, cfgs...) + if c.SigningNameDerived || len(c.SigningName) == 0 { + c.SigningName = "controlcatalog" + } + return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName, c.ResolvedRegion) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName, resolvedRegion string) *ControlCatalog { + svc := &ControlCatalog{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + ServiceID: ServiceID, + SigningName: signingName, + SigningRegion: signingRegion, + PartitionID: partitionID, + Endpoint: endpoint, + APIVersion: "2018-05-10", + ResolvedRegion: resolvedRegion, + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed( + protocol.NewUnmarshalErrorHandler(restjson.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), + ) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a ControlCatalog operation and runs any +// custom request initialization. +func (c *ControlCatalog) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/service/mgn/api.go b/service/mgn/api.go index b511bb2f16a..7105af575af 100644 --- a/service/mgn/api.go +++ b/service/mgn/api.go @@ -6426,6 +6426,8 @@ func (c *Mgn) UpdateLaunchConfigurationRequest(input *UpdateLaunchConfigurationI // // Updates multiple LaunchConfigurations by Source Server ID. // +// bootMode valid values are LEGACY_BIOS | UEFI +// // 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. @@ -23455,6 +23457,9 @@ const ( // ActionCategoryObservability is a ActionCategory enum value ActionCategoryObservability = "OBSERVABILITY" + // ActionCategoryRefactoring is a ActionCategory enum value + ActionCategoryRefactoring = "REFACTORING" + // ActionCategorySecurity is a ActionCategory enum value ActionCategorySecurity = "SECURITY" @@ -23479,6 +23484,7 @@ func ActionCategory_Values() []string { ActionCategoryLicenseAndSubscription, ActionCategoryValidation, ActionCategoryObservability, + ActionCategoryRefactoring, ActionCategorySecurity, ActionCategoryNetworking, ActionCategoryConfiguration, @@ -23533,6 +23539,9 @@ const ( // BootModeUefi is a BootMode enum value BootModeUefi = "UEFI" + + // BootModeUseSource is a BootMode enum value + BootModeUseSource = "USE_SOURCE" ) // BootMode_Values returns all elements of the BootMode enum @@ -23540,6 +23549,7 @@ func BootMode_Values() []string { return []string{ BootModeLegacyBios, BootModeUefi, + BootModeUseSource, } } diff --git a/service/networkmonitor/api.go b/service/networkmonitor/api.go index cf945c10185..9432a7722ac 100644 --- a/service/networkmonitor/api.go +++ b/service/networkmonitor/api.go @@ -1347,7 +1347,7 @@ type CreateMonitorInput struct { ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"` // The name identifying the monitor. It can contain only letters, underscores - // (_), or dashes (-), and can be up to 255 characters. + // (_), or dashes (-), and can be up to 200 characters. // // MonitorName is a required field MonitorName *string `locationName:"monitorName" min:"1" type:"string" required:"true"` @@ -1440,7 +1440,7 @@ type CreateMonitorOutput struct { _ struct{} `type:"structure"` // The number of seconds that metrics are aggregated by and sent to Amazon CloudWatch. - // This will be either 30 or 60. + // This must be either 30 or 60. AggregationPeriod *int64 `locationName:"aggregationPeriod" min:"30" type:"long"` // The ARN of the monitor. @@ -1514,7 +1514,7 @@ func (s *CreateMonitorOutput) SetTags(v map[string]*string) *CreateMonitorOutput type CreateMonitorProbeInput_ struct { _ struct{} `type:"structure"` - // The destination IP address. This will be either IPV4 or IPV6. + // The destination IP address. This must be either IPV4 or IPV6. // // Destination is a required field Destination *string `locationName:"destination" min:"1" type:"string" required:"true"` @@ -1523,7 +1523,7 @@ type CreateMonitorProbeInput_ struct { // is TCP and must be a number between 1 and 65536. DestinationPort *int64 `locationName:"destinationPort" type:"integer"` - // The size of the packets sent between the source and destination. This will + // The size of the packets sent between the source and destination. This must // be a number between 56 and 8500. PacketSize *int64 `locationName:"packetSize" min:"56" type:"integer"` @@ -1531,7 +1531,7 @@ type CreateMonitorProbeInput_ struct { ProbeTags map[string]*string `locationName:"probeTags" type:"map"` // The protocol used for the network traffic between the source and destination. - // This will be either TCP or ICMP. + // This must be either TCP or ICMP. // // Protocol is a required field Protocol *string `locationName:"protocol" type:"string" required:"true" enum:"Protocol"` @@ -1721,7 +1721,7 @@ type CreateProbeOutput struct { // The time and date that the probe was created. CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` - // The destination IP address for the monitor. This will be either an IPv4 or + // The destination IP address for the monitor. This must be either an IPv4 or // IPv6 address. // // Destination is a required field @@ -1734,7 +1734,7 @@ type CreateProbeOutput struct { // The time and date when the probe was last modified. ModifiedAt *time.Time `locationName:"modifiedAt" type:"timestamp"` - // The size of the packets sent between the source and destination. This will + // The size of the packets sent between the source and destination. This must // be a number between 56 and 8500. PacketSize *int64 `locationName:"packetSize" min:"56" type:"integer"` @@ -1745,7 +1745,7 @@ type CreateProbeOutput struct { ProbeId *string `locationName:"probeId" type:"string"` // The protocol used for the network traffic between the source and destination. - // This will be either TCP or ICMP. + // This must be either TCP or ICMP. // // Protocol is a required field Protocol *string `locationName:"protocol" type:"string" required:"true" enum:"Protocol"` @@ -2256,7 +2256,7 @@ type GetProbeOutput struct { // The time and date that the probe was created. CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` - // The destination IP address for the monitor. This will be either an IPv4 or + // The destination IP address for the monitor. This must be either an IPv4 or // IPv6 address. // // Destination is a required field @@ -2269,7 +2269,7 @@ type GetProbeOutput struct { // The time and date that the probe was last modified. ModifiedAt *time.Time `locationName:"modifiedAt" type:"timestamp"` - // The size of the packets sent between the source and destination. This will + // The size of the packets sent between the source and destination. This must // be a number between 56 and 8500. PacketSize *int64 `locationName:"packetSize" min:"56" type:"integer"` @@ -2280,7 +2280,7 @@ type GetProbeOutput struct { ProbeId *string `locationName:"probeId" type:"string"` // The protocol used for the network traffic between the source and destination. - // This will be either TCP or ICMP. + // This must be either TCP or ICMP. // // Protocol is a required field Protocol *string `locationName:"protocol" type:"string" required:"true" enum:"Protocol"` @@ -2876,7 +2876,7 @@ func (s *Probe) SetVpcId(v string) *Probe { type ProbeInput_ struct { _ struct{} `type:"structure"` - // The destination IP address. This will be either IPV4 or IPV6. + // The destination IP address. This must be either IPV4 or IPV6. // // Destination is a required field Destination *string `locationName:"destination" min:"1" type:"string" required:"true"` @@ -2885,12 +2885,12 @@ type ProbeInput_ struct { // is TCP and must be a number between 1 and 65536. DestinationPort *int64 `locationName:"destinationPort" type:"integer"` - // The size of the packets sent between the source and destination. This will + // The size of the packets sent between the source and destination. This must // be a number between 56 and 8500. PacketSize *int64 `locationName:"packetSize" min:"56" type:"integer"` // The protocol used for the network traffic between the source and destination. - // This will be either TCP or ICMP. + // This must be either TCP or ICMP. // // Protocol is a required field Protocol *string `locationName:"protocol" type:"string" required:"true" enum:"Protocol"` @@ -3613,7 +3613,7 @@ func (s *UpdateProbeInput) SetState(v string) *UpdateProbeInput { type UpdateProbeOutput struct { _ struct{} `type:"structure"` - // The updated IP address family. This will be either IPV4 or IPV6. + // The updated IP address family. This must be either IPV4 or IPV6. AddressFamily *string `locationName:"addressFamily" type:"string" enum:"AddressFamily"` // The time and date that the probe was created. @@ -3624,7 +3624,7 @@ type UpdateProbeOutput struct { // Destination is a required field Destination *string `locationName:"destination" min:"1" type:"string" required:"true"` - // The updated destination port. This will be a number between 1 and 65536. + // The updated destination port. This must be a number between 1 and 65536. DestinationPort *int64 `locationName:"destinationPort" type:"integer"` // The time and date that the probe was last updated.