From 8fac01d8d2d94b6b14a974a798a9bef7918ace72 Mon Sep 17 00:00:00 2001 From: aws-sdk-go-automation <43143561+aws-sdk-go-automation@users.noreply.github.com> Date: Wed, 23 Dec 2020 11:08:09 -0800 Subject: [PATCH] Release v1.36.15 (2020-12-23) (#3709) Release v1.36.15 (2020-12-23) === ### Service Client Updates * `service/compute-optimizer`: Updates service API and documentation * `service/dms`: Updates service API and documentation * AWS DMS launches support for AWS Secrets Manager to manage Oracle ASM Database credentials * `service/resource-groups`: Updates service API, documentation, and paginators --- CHANGELOG.md | 9 + aws/endpoints/defaults.go | 12 + aws/version.go | 2 +- .../compute-optimizer/2019-11-01/api-2.json | 189 ++++- .../compute-optimizer/2019-11-01/docs-2.json | 185 ++++- models/apis/dms/2016-01-01/api-2.json | 4 +- models/apis/dms/2016-01-01/docs-2.json | 2 + .../resource-groups/2017-11-27/api-2.json | 80 +- .../resource-groups/2017-11-27/docs-2.json | 136 +++- .../2017-11-27/paginators-1.json | 23 +- models/endpoints/endpoints.json | 12 + service/computeoptimizer/api.go | 747 ++++++++++++++++++ .../computeoptimizeriface/interface.go | 4 + service/computeoptimizer/doc.go | 20 +- service/databasemigrationservice/api.go | 33 + service/resourcegroups/api.go | 560 +++++++++++-- .../resourcegroupsiface/interface.go | 4 + 17 files changed, 1863 insertions(+), 159 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dfee233350..c3e39cabce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +Release v1.36.15 (2020-12-23) +=== + +### Service Client Updates +* `service/compute-optimizer`: Updates service API and documentation +* `service/dms`: Updates service API and documentation + * AWS DMS launches support for AWS Secrets Manager to manage Oracle ASM Database credentials +* `service/resource-groups`: Updates service API, documentation, and paginators + Release v1.36.14 (2020-12-22) === diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index 678c9278d9..35db88d995 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -9488,12 +9488,24 @@ var awsusgovPartition = partition{ "waf-regional": service{ Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "waf-regional-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, "fips-us-gov-west-1": endpoint{ Hostname: "waf-regional-fips.us-gov-west-1.amazonaws.com", CredentialScope: credentialScope{ Region: "us-gov-west-1", }, }, + "us-gov-east-1": endpoint{ + Hostname: "waf-regional.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, "us-gov-west-1": endpoint{ Hostname: "waf-regional.us-gov-west-1.amazonaws.com", CredentialScope: credentialScope{ diff --git a/aws/version.go b/aws/version.go index eb7a666d6a..919084d52f 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.36.14" +const SDKVersion = "1.36.15" diff --git a/models/apis/compute-optimizer/2019-11-01/api-2.json b/models/apis/compute-optimizer/2019-11-01/api-2.json index 2749f6eb66..d814ec75d8 100644 --- a/models/apis/compute-optimizer/2019-11-01/api-2.json +++ b/models/apis/compute-optimizer/2019-11-01/api-2.json @@ -163,6 +163,25 @@ {"shape":"ThrottlingException"} ] }, + "GetLambdaFunctionRecommendations":{ + "name":"GetLambdaFunctionRecommendations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetLambdaFunctionRecommendationsRequest"}, + "output":{"shape":"GetLambdaFunctionRecommendationsResponse"}, + "errors":[ + {"shape":"OptInRequiredException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"MissingAuthenticationToken"}, + {"shape":"ThrottlingException"}, + {"shape":"LimitExceededException"} + ] + }, "GetRecommendationSummaries":{ "name":"GetRecommendationSummaries", "http":{ @@ -495,6 +514,19 @@ "NotOptimized" ] }, + "FindingReasonCode":{ + "type":"string", + "enum":[ + "MemoryOverprovisioned", + "MemoryUnderprovisioned" + ] + }, + "FunctionArn":{"type":"string"}, + "FunctionArns":{ + "type":"list", + "member":{"shape":"FunctionArn"} + }, + "FunctionVersion":{"type":"string"}, "GetAutoScalingGroupRecommendationsRequest":{ "type":"structure", "members":{ @@ -585,6 +617,23 @@ "memberAccountsEnrolled":{"shape":"MemberAccountsEnrolled"} } }, + "GetLambdaFunctionRecommendationsRequest":{ + "type":"structure", + "members":{ + "functionArns":{"shape":"FunctionArns"}, + "accountIds":{"shape":"AccountIds"}, + "filters":{"shape":"LambdaFunctionRecommendationFilters"}, + "nextToken":{"shape":"NextToken"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "GetLambdaFunctionRecommendationsResponse":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"NextToken"}, + "lambdaFunctionRecommendations":{"shape":"LambdaFunctionRecommendations"} + } + }, "GetRecommendationError":{ "type":"structure", "members":{ @@ -697,6 +746,127 @@ "Failed" ] }, + "LambdaFunctionMemoryMetricName":{ + "type":"string", + "enum":["Duration"] + }, + "LambdaFunctionMemoryMetricStatistic":{ + "type":"string", + "enum":[ + "LowerBound", + "UpperBound", + "Expected" + ] + }, + "LambdaFunctionMemoryProjectedMetric":{ + "type":"structure", + "members":{ + "name":{"shape":"LambdaFunctionMemoryMetricName"}, + "statistic":{"shape":"LambdaFunctionMemoryMetricStatistic"}, + "value":{"shape":"MetricValue"} + } + }, + "LambdaFunctionMemoryProjectedMetrics":{ + "type":"list", + "member":{"shape":"LambdaFunctionMemoryProjectedMetric"} + }, + "LambdaFunctionMemoryRecommendationOption":{ + "type":"structure", + "members":{ + "rank":{"shape":"Rank"}, + "memorySize":{"shape":"MemorySize"}, + "projectedUtilizationMetrics":{"shape":"LambdaFunctionMemoryProjectedMetrics"} + } + }, + "LambdaFunctionMemoryRecommendationOptions":{ + "type":"list", + "member":{"shape":"LambdaFunctionMemoryRecommendationOption"} + }, + "LambdaFunctionMetricName":{ + "type":"string", + "enum":[ + "Duration", + "Memory" + ] + }, + "LambdaFunctionMetricStatistic":{ + "type":"string", + "enum":[ + "Maximum", + "Average" + ] + }, + "LambdaFunctionRecommendation":{ + "type":"structure", + "members":{ + "functionArn":{"shape":"FunctionArn"}, + "functionVersion":{"shape":"FunctionVersion"}, + "accountId":{"shape":"AccountId"}, + "currentMemorySize":{"shape":"MemorySize"}, + "numberOfInvocations":{"shape":"NumberOfInvocations"}, + "utilizationMetrics":{"shape":"LambdaFunctionUtilizationMetrics"}, + "lookbackPeriodInDays":{"shape":"LookBackPeriodInDays"}, + "lastRefreshTimestamp":{"shape":"LastRefreshTimestamp"}, + "finding":{"shape":"LambdaFunctionRecommendationFinding"}, + "findingReasonCodes":{"shape":"LambdaFunctionRecommendationFindingReasonCodes"}, + "memorySizeRecommendationOptions":{"shape":"LambdaFunctionMemoryRecommendationOptions"} + } + }, + "LambdaFunctionRecommendationFilter":{ + "type":"structure", + "members":{ + "name":{"shape":"LambdaFunctionRecommendationFilterName"}, + "values":{"shape":"FilterValues"} + } + }, + "LambdaFunctionRecommendationFilterName":{ + "type":"string", + "enum":[ + "Finding", + "FindingReasonCode" + ] + }, + "LambdaFunctionRecommendationFilters":{ + "type":"list", + "member":{"shape":"LambdaFunctionRecommendationFilter"} + }, + "LambdaFunctionRecommendationFinding":{ + "type":"string", + "enum":[ + "Optimized", + "NotOptimized", + "Unavailable" + ] + }, + "LambdaFunctionRecommendationFindingReasonCode":{ + "type":"string", + "enum":[ + "MemoryOverprovisioned", + "MemoryUnderprovisioned", + "InsufficientData", + "Inconclusive" + ] + }, + "LambdaFunctionRecommendationFindingReasonCodes":{ + "type":"list", + "member":{"shape":"LambdaFunctionRecommendationFindingReasonCode"} + }, + "LambdaFunctionRecommendations":{ + "type":"list", + "member":{"shape":"LambdaFunctionRecommendation"} + }, + "LambdaFunctionUtilizationMetric":{ + "type":"structure", + "members":{ + "name":{"shape":"LambdaFunctionMetricName"}, + "statistic":{"shape":"LambdaFunctionMetricStatistic"}, + "value":{"shape":"MetricValue"} + } + }, + "LambdaFunctionUtilizationMetrics":{ + "type":"list", + "member":{"shape":"LambdaFunctionUtilizationMetric"} + }, "LastRefreshTimestamp":{"type":"timestamp"}, "LastUpdatedTimestamp":{"type":"timestamp"}, "LimitExceededException":{ @@ -714,6 +884,7 @@ }, "MaxSize":{"type":"integer"}, "MemberAccountsEnrolled":{"type":"boolean"}, + "MemorySize":{"type":"integer"}, "Message":{"type":"string"}, "MetadataKey":{"type":"string"}, "MetricName":{ @@ -749,6 +920,7 @@ "synthetic":true }, "NextToken":{"type":"string"}, + "NumberOfInvocations":{"type":"long"}, "OptInRequiredException":{ "type":"structure", "members":{ @@ -780,6 +952,17 @@ "member":{"shape":"UtilizationMetric"} }, "Rank":{"type":"integer"}, + "ReasonCodeSummaries":{ + "type":"list", + "member":{"shape":"ReasonCodeSummary"} + }, + "ReasonCodeSummary":{ + "type":"structure", + "members":{ + "name":{"shape":"FindingReasonCode"}, + "value":{"shape":"SummaryValue"} + } + }, "RecommendationExportJob":{ "type":"structure", "members":{ @@ -813,7 +996,8 @@ "enum":[ "Ec2Instance", "AutoScalingGroup", - "EbsVolume" + "EbsVolume", + "LambdaFunction" ] }, "RecommendationSources":{ @@ -901,7 +1085,8 @@ "type":"structure", "members":{ "name":{"shape":"Finding"}, - "value":{"shape":"SummaryValue"} + "value":{"shape":"SummaryValue"}, + "reasonCodeSummaries":{"shape":"ReasonCodeSummaries"} } }, "SummaryValue":{"type":"double"}, diff --git a/models/apis/compute-optimizer/2019-11-01/docs-2.json b/models/apis/compute-optimizer/2019-11-01/docs-2.json index 63b418c674..56746a29bb 100644 --- a/models/apis/compute-optimizer/2019-11-01/docs-2.json +++ b/models/apis/compute-optimizer/2019-11-01/docs-2.json @@ -1,6 +1,6 @@ { "version": "2.0", - "service": "

AWS Compute Optimizer is a service that analyzes the configuration and utilization metrics of your AWS compute resources, such as EC2 instances, Auto Scaling groups, and Amazon EBS volumes. It reports whether your resources are optimal, and generates optimization recommendations to reduce the cost and improve the performance of your workloads. Compute Optimizer also provides recent utilization metric data, as well as projected utilization metric data for the recommendations, which you can use to evaluate which recommendation provides the best price-performance trade-off. The analysis of your usage patterns can help you decide when to move or resize your running resources, and still meet your performance and capacity requirements. For more information about Compute Optimizer, including the required permissions to use the service, see the AWS Compute Optimizer User Guide.

", + "service": "

AWS Compute Optimizer is a service that analyzes the configuration and utilization metrics of your AWS compute resources, such as EC2 instances, Auto Scaling groups, AWS Lambda functions, and Amazon EBS volumes. It reports whether your resources are optimal, and generates optimization recommendations to reduce the cost and improve the performance of your workloads. Compute Optimizer also provides recent utilization metric data, as well as projected utilization metric data for the recommendations, which you can use to evaluate which recommendation provides the best price-performance trade-off. The analysis of your usage patterns can help you decide when to move or resize your running resources, and still meet your performance and capacity requirements. For more information about Compute Optimizer, including the required permissions to use the service, see the AWS Compute Optimizer User Guide.

", "operations": { "DescribeRecommendationExportJobs": "

Describes recommendation export jobs created in the last seven days.

Use the ExportAutoScalingGroupRecommendations or ExportEC2InstanceRecommendations actions to request an export of your recommendations. Then use the DescribeRecommendationExportJobs action to view your export jobs.

", "ExportAutoScalingGroupRecommendations": "

Exports optimization recommendations for Auto Scaling groups.

Recommendations are exported in a comma-separated values (.csv) file, and its metadata in a JavaScript Object Notation (.json) file, to an existing Amazon Simple Storage Service (Amazon S3) bucket that you specify. For more information, see Exporting Recommendations in the Compute Optimizer User Guide.

You can have only one Auto Scaling group export job in progress per AWS Region.

", @@ -10,6 +10,7 @@ "GetEC2InstanceRecommendations": "

Returns Amazon EC2 instance recommendations.

AWS Compute Optimizer generates recommendations for Amazon Elastic Compute Cloud (Amazon EC2) instances that meet a specific set of requirements. For more information, see the Supported resources and requirements in the AWS Compute Optimizer User Guide.

", "GetEC2RecommendationProjectedMetrics": "

Returns the projected utilization metrics of Amazon EC2 instance recommendations.

The Cpu and Memory metrics are the only projected utilization metrics returned when you run this action. Additionally, the Memory metric is returned only for resources that have the unified CloudWatch agent installed on them. For more information, see Enabling Memory Utilization with the CloudWatch Agent.

", "GetEnrollmentStatus": "

Returns the enrollment (opt in) status of an account to the AWS Compute Optimizer service.

If the account is the management account of an organization, this action also confirms the enrollment status of member accounts within the organization.

", + "GetLambdaFunctionRecommendations": "

Returns AWS Lambda function recommendations.

AWS Compute Optimizer generates recommendations for functions that meet a specific set of requirements. For more information, see the Supported resources and requirements in the AWS Compute Optimizer User Guide.

", "GetRecommendationSummaries": "

Returns the optimization findings for an account.

For example, it returns the number of Amazon EC2 instances in an account that are under-provisioned, over-provisioned, or optimized. It also returns the number of Auto Scaling groups in an account that are not optimized, or optimized.

", "UpdateEnrollmentStatus": "

Updates the enrollment (opt in) status of an account to the AWS Compute Optimizer service.

If the account is a management account of an organization, this action can also be used to enroll member accounts within the organization.

" }, @@ -25,6 +26,7 @@ "AccountIds$member": null, "AutoScalingGroupRecommendation$accountId": "

The AWS account ID of the Auto Scaling group.

", "InstanceRecommendation$accountId": "

The AWS account ID of the instance.

", + "LambdaFunctionRecommendation$accountId": "

The AWS account ID of the function.

", "RecommendationSummary$accountId": "

The AWS account ID of the recommendation summary.

", "VolumeRecommendation$accountId": "

The AWS account ID of the volume.

" } @@ -37,6 +39,7 @@ "GetAutoScalingGroupRecommendationsRequest$accountIds": "

The IDs of the AWS accounts for which to return Auto Scaling group recommendations.

If your account is the management account of an organization, use this parameter to specify the member accounts for which you want to return Auto Scaling group recommendations.

Only one account ID can be specified per request.

", "GetEBSVolumeRecommendationsRequest$accountIds": "

The IDs of the AWS accounts for which to return volume recommendations.

If your account is the management account of an organization, use this parameter to specify the member accounts for which you want to return volume recommendations.

Only one account ID can be specified per request.

", "GetEC2InstanceRecommendationsRequest$accountIds": "

The IDs of the AWS accounts for which to return instance recommendations.

If your account is the management account of an organization, use this parameter to specify the member accounts for which you want to return instance recommendations.

Only one account ID can be specified per request.

", + "GetLambdaFunctionRecommendationsRequest$accountIds": "

The IDs of the AWS accounts for which to return function recommendations.

If your account is the management account of an organization, use this parameter to specify the member accounts for which you want to return function recommendations.

Only one account ID can be specified per request.

", "GetRecommendationSummariesRequest$accountIds": "

The IDs of the AWS accounts for which to return recommendation summaries.

If your account is the management account of an organization, use this parameter to specify the member accounts for which you want to return recommendation summaries.

Only one account ID can be specified per request.

" } }, @@ -285,7 +288,8 @@ "refs": { "EBSFilter$values": "

The value of the filter.

The valid values are Optimized, or NotOptimized.

", "Filter$values": "

The value of the filter.

The valid values for this parameter are as follows, depending on what you specify for the name parameter and the resource type that you wish to filter results for:

", - "JobFilter$values": "

The value of the filter.

The valid values for this parameter are as follows, depending on what you specify for the name parameter:

" + "JobFilter$values": "

The value of the filter.

The valid values for this parameter are as follows, depending on what you specify for the name parameter:

", + "LambdaFunctionRecommendationFilter$values": "

The value of the filter.

The valid values for this parameter are as follows, depending on what you specify for the name parameter:

" } }, "Filters": { @@ -305,6 +309,31 @@ "Summary$name": "

The finding classification of the recommendation.

" } }, + "FindingReasonCode": { + "base": null, + "refs": { + "ReasonCodeSummary$name": "

The name of the finding reason code.

" + } + }, + "FunctionArn": { + "base": null, + "refs": { + "FunctionArns$member": null, + "LambdaFunctionRecommendation$functionArn": "

The Amazon Resource Name (ARN) of the current function.

" + } + }, + "FunctionArns": { + "base": null, + "refs": { + "GetLambdaFunctionRecommendationsRequest$functionArns": "

The Amazon Resource Name (ARN) of the functions for which to return recommendations.

You can specify a qualified or unqualified ARN. If you specify an unqualified ARN without a function version suffix, Compute Optimizer will return recommendations for the latest ($LATEST) version of the function. If you specify a qualified ARN with a version suffix, Compute Optimizer will return recommendations for the specified function version. For more information about using function versions, see Using versions in the AWS Lambda Developer Guide.

" + } + }, + "FunctionVersion": { + "base": null, + "refs": { + "LambdaFunctionRecommendation$functionVersion": "

The version number of the current function.

" + } + }, "GetAutoScalingGroupRecommendationsRequest": { "base": null, "refs": { @@ -355,6 +384,16 @@ "refs": { } }, + "GetLambdaFunctionRecommendationsRequest": { + "base": null, + "refs": { + } + }, + "GetLambdaFunctionRecommendationsResponse": { + "base": null, + "refs": { + } + }, "GetRecommendationError": { "base": "

Describes an error experienced when getting recommendations.

For example, an error is returned if you request recommendations for an unsupported Auto Scaling group, or if you request recommendations for an instance of an unsupported instance family.

", "refs": { @@ -487,11 +526,120 @@ "RecommendationExportJob$status": "

The status of the export job.

" } }, + "LambdaFunctionMemoryMetricName": { + "base": null, + "refs": { + "LambdaFunctionMemoryProjectedMetric$name": "

The name of the projected utilization metric.

" + } + }, + "LambdaFunctionMemoryMetricStatistic": { + "base": null, + "refs": { + "LambdaFunctionMemoryProjectedMetric$statistic": "

The statistic of the projected utilization metric.

" + } + }, + "LambdaFunctionMemoryProjectedMetric": { + "base": "

Describes a projected utilization metric of an AWS Lambda function recommendation option.

", + "refs": { + "LambdaFunctionMemoryProjectedMetrics$member": null + } + }, + "LambdaFunctionMemoryProjectedMetrics": { + "base": null, + "refs": { + "LambdaFunctionMemoryRecommendationOption$projectedUtilizationMetrics": "

An array of objects that describe the projected utilization metrics of the function recommendation option.

" + } + }, + "LambdaFunctionMemoryRecommendationOption": { + "base": "

Describes a recommendation option for an AWS Lambda function.

", + "refs": { + "LambdaFunctionMemoryRecommendationOptions$member": null + } + }, + "LambdaFunctionMemoryRecommendationOptions": { + "base": null, + "refs": { + "LambdaFunctionRecommendation$memorySizeRecommendationOptions": "

An array of objects that describe the memory configuration recommendation options for the function.

" + } + }, + "LambdaFunctionMetricName": { + "base": null, + "refs": { + "LambdaFunctionUtilizationMetric$name": "

The name of the utilization metric.

" + } + }, + "LambdaFunctionMetricStatistic": { + "base": null, + "refs": { + "LambdaFunctionUtilizationMetric$statistic": "

The statistic of the utilization metric.

" + } + }, + "LambdaFunctionRecommendation": { + "base": "

Describes an AWS Lambda function recommendation.

", + "refs": { + "LambdaFunctionRecommendations$member": null + } + }, + "LambdaFunctionRecommendationFilter": { + "base": "

Describes a filter that returns a more specific list of AWS Lambda function recommendations.

", + "refs": { + "LambdaFunctionRecommendationFilters$member": null + } + }, + "LambdaFunctionRecommendationFilterName": { + "base": null, + "refs": { + "LambdaFunctionRecommendationFilter$name": "

The name of the filter.

Specify Finding to return recommendations with a specific finding classification (e.g., NotOptimized).

Specify FindingReasonCode to return recommendations with a specific finding reason code (e.g., MemoryUnderprovisioned).

" + } + }, + "LambdaFunctionRecommendationFilters": { + "base": null, + "refs": { + "GetLambdaFunctionRecommendationsRequest$filters": "

An array of objects that describe a filter that returns a more specific list of function recommendations.

" + } + }, + "LambdaFunctionRecommendationFinding": { + "base": null, + "refs": { + "LambdaFunctionRecommendation$finding": "

The finding classification for the function.

Findings for functions include:

" + } + }, + "LambdaFunctionRecommendationFindingReasonCode": { + "base": null, + "refs": { + "LambdaFunctionRecommendationFindingReasonCodes$member": null + } + }, + "LambdaFunctionRecommendationFindingReasonCodes": { + "base": null, + "refs": { + "LambdaFunctionRecommendation$findingReasonCodes": "

The reason for the finding classification of the function.

Functions that have a finding classification of Optimized don't have a finding reason code.

Reason codes include:

" + } + }, + "LambdaFunctionRecommendations": { + "base": null, + "refs": { + "GetLambdaFunctionRecommendationsResponse$lambdaFunctionRecommendations": "

An array of objects that describe function recommendations.

" + } + }, + "LambdaFunctionUtilizationMetric": { + "base": "

Describes a utilization metric of an AWS Lambda function.

", + "refs": { + "LambdaFunctionUtilizationMetrics$member": null + } + }, + "LambdaFunctionUtilizationMetrics": { + "base": null, + "refs": { + "LambdaFunctionRecommendation$utilizationMetrics": "

An array of objects that describe the utilization metrics of the function.

" + } + }, "LastRefreshTimestamp": { "base": null, "refs": { "AutoScalingGroupRecommendation$lastRefreshTimestamp": "

The time stamp of when the Auto Scaling group recommendation was last refreshed.

", "InstanceRecommendation$lastRefreshTimestamp": "

The time stamp of when the instance recommendation was last refreshed.

", + "LambdaFunctionRecommendation$lastRefreshTimestamp": "

The time stamp of when the function recommendation was last refreshed.

", "VolumeRecommendation$lastRefreshTimestamp": "

The time stamp of when the volume recommendation was last refreshed.

" } }, @@ -511,6 +659,7 @@ "refs": { "AutoScalingGroupRecommendation$lookBackPeriodInDays": "

The number of days for which utilization metrics were analyzed for the Auto Scaling group.

", "InstanceRecommendation$lookBackPeriodInDays": "

The number of days for which utilization metrics were analyzed for the instance.

", + "LambdaFunctionRecommendation$lookbackPeriodInDays": "

The number of days for which utilization metrics were analyzed for the function.

", "VolumeRecommendation$lookBackPeriodInDays": "

The number of days for which utilization metrics were analyzed for the volume.

" } }, @@ -521,6 +670,7 @@ "GetAutoScalingGroupRecommendationsRequest$maxResults": "

The maximum number of Auto Scaling group recommendations to return with a single request.

To retrieve the remaining results, make another request with the returned NextToken value.

", "GetEBSVolumeRecommendationsRequest$maxResults": "

The maximum number of volume recommendations to return with a single request.

To retrieve the remaining results, make another request with the returned NextToken value.

", "GetEC2InstanceRecommendationsRequest$maxResults": "

The maximum number of instance recommendations to return with a single request.

To retrieve the remaining results, make another request with the returned NextToken value.

", + "GetLambdaFunctionRecommendationsRequest$maxResults": "

The maximum number of function recommendations to return with a single request.

To retrieve the remaining results, make another request with the returned NextToken value.

", "GetRecommendationSummariesRequest$maxResults": "

The maximum number of recommendation summaries to return with a single request.

To retrieve the remaining results, make another request with the returned NextToken value.

" } }, @@ -536,6 +686,13 @@ "GetEnrollmentStatusResponse$memberAccountsEnrolled": "

Confirms the enrollment status of member accounts within the organization, if the account is a management account of an organization.

" } }, + "MemorySize": { + "base": null, + "refs": { + "LambdaFunctionMemoryRecommendationOption$memorySize": "

The memory size, in MB, of the function recommendation option.

", + "LambdaFunctionRecommendation$currentMemorySize": "

The amount of memory, in MB, that's allocated to the current function.

" + } + }, "Message": { "base": null, "refs": { @@ -567,6 +724,8 @@ "base": null, "refs": { "EBSUtilizationMetric$value": "

The value of the utilization metric.

", + "LambdaFunctionMemoryProjectedMetric$value": "

The values of the projected utilization metrics.

", + "LambdaFunctionUtilizationMetric$value": "

The value of the utilization metric.

", "MetricValues$member": null, "UtilizationMetric$value": "

The value of the utilization metric.

" } @@ -599,10 +758,18 @@ "GetEBSVolumeRecommendationsResponse$nextToken": "

The token to use to advance to the next page of volume recommendations.

This value is null when there are no more pages of volume recommendations to return.

", "GetEC2InstanceRecommendationsRequest$nextToken": "

The token to advance to the next page of instance recommendations.

", "GetEC2InstanceRecommendationsResponse$nextToken": "

The token to use to advance to the next page of instance recommendations.

This value is null when there are no more pages of instance recommendations to return.

", + "GetLambdaFunctionRecommendationsRequest$nextToken": "

The token to advance to the next page of function recommendations.

", + "GetLambdaFunctionRecommendationsResponse$nextToken": "

The token to use to advance to the next page of function recommendations.

This value is null when there are no more pages of function recommendations to return.

", "GetRecommendationSummariesRequest$nextToken": "

The token to advance to the next page of recommendation summaries.

", "GetRecommendationSummariesResponse$nextToken": "

The token to use to advance to the next page of recommendation summaries.

This value is null when there are no more pages of recommendation summaries to return.

" } }, + "NumberOfInvocations": { + "base": null, + "refs": { + "LambdaFunctionRecommendation$numberOfInvocations": "

The number of times your function code was executed during the look-back period.

" + } + }, "OptInRequiredException": { "base": "

The account is not opted in to AWS Compute Optimizer.

", "refs": { @@ -646,10 +813,23 @@ "refs": { "AutoScalingGroupRecommendationOption$rank": "

The rank of the Auto Scaling group recommendation option.

The top recommendation option is ranked as 1.

", "InstanceRecommendationOption$rank": "

The rank of the instance recommendation option.

The top recommendation option is ranked as 1.

", + "LambdaFunctionMemoryRecommendationOption$rank": "

The rank of the function recommendation option.

The top recommendation option is ranked as 1.

", "RecommendedOptionProjectedMetric$rank": "

The rank of the recommendation option projected metric.

The top recommendation option is ranked as 1.

The projected metric rank correlates to the recommendation option rank. For example, the projected metric ranked as 1 is related to the recommendation option that is also ranked as 1 in the same response.

", "VolumeRecommendationOption$rank": "

The rank of the volume recommendation option.

The top recommendation option is ranked as 1.

" } }, + "ReasonCodeSummaries": { + "base": null, + "refs": { + "Summary$reasonCodeSummaries": "

An array of objects that summarize a finding reason code.

" + } + }, + "ReasonCodeSummary": { + "base": "

A summary of a finding reason code.

", + "refs": { + "ReasonCodeSummaries$member": null + } + }, "RecommendationExportJob": { "base": "

Describes a recommendation export job.

Use the DescribeRecommendationExportJobs action to view your recommendation export jobs.

Use the ExportAutoScalingGroupRecommendations or ExportEC2InstanceRecommendations actions to request an export of your recommendations.

", "refs": { @@ -784,6 +964,7 @@ "SummaryValue": { "base": null, "refs": { + "ReasonCodeSummary$value": "

The value of the finding reason code summary.

", "Summary$value": "

The value of the recommendation summary.

" } }, diff --git a/models/apis/dms/2016-01-01/api-2.json b/models/apis/dms/2016-01-01/api-2.json index 5f7e9a4c49..36feb398a9 100644 --- a/models/apis/dms/2016-01-01/api-2.json +++ b/models/apis/dms/2016-01-01/api-2.json @@ -2117,7 +2117,9 @@ "ServerName":{"shape":"String"}, "Username":{"shape":"String"}, "SecretsManagerAccessRoleArn":{"shape":"String"}, - "SecretsManagerSecretId":{"shape":"String"} + "SecretsManagerSecretId":{"shape":"String"}, + "SecretsManagerOracleAsmAccessRoleArn":{"shape":"String"}, + "SecretsManagerOracleAsmSecretId":{"shape":"String"} } }, "OrderableReplicationInstance":{ diff --git a/models/apis/dms/2016-01-01/docs-2.json b/models/apis/dms/2016-01-01/docs-2.json index 8fa2052e01..2de5224eea 100644 --- a/models/apis/dms/2016-01-01/docs-2.json +++ b/models/apis/dms/2016-01-01/docs-2.json @@ -1785,6 +1785,8 @@ "OracleSettings$Username": "

Endpoint connection user name.

", "OracleSettings$SecretsManagerAccessRoleArn": "

The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in SecretsManagerSecret. SecretsManagerSecret has the value of the AWS Secrets Manager secret that allows access to the Oracle endpoint.

You can specify one of two sets of values for these permissions. You can specify the values for this setting and SecretsManagerSecretId. Or you can specify clear-text values for UserName, Password, ServerName, and Port. You can't specify both. For more information on creating this SecretsManagerSecret and the SecretsManagerAccessRoleArn and SecretsManagerSecretId required to access it, see Using secrets to access AWS Database Migration Service resources in the AWS Database Migration Service User Guide.

", "OracleSettings$SecretsManagerSecretId": "

The full ARN, partial ARN, or friendly name of the SecretsManagerSecret that contains the Oracle endpoint connection details.

", + "OracleSettings$SecretsManagerOracleAsmAccessRoleArn": "

Required only if your Oracle endpoint uses Advanced Storage Manager (ASM). The full ARN of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the SecretsManagerOracleAsmSecret. This SecretsManagerOracleAsmSecret has the secret value that allows access to the Oracle ASM of the endpoint.

You can specify one of two sets of values for these permissions. You can specify the values for this setting and SecretsManagerOracleAsmSecretId. Or you can specify clear-text values for AsmUserName, AsmPassword, and AsmServerName. You can't specify both. For more information on creating this SecretsManagerOracleAsmSecret and the SecretsManagerOracleAsmAccessRoleArn and SecretsManagerOracleAsmSecretId required to access it, see Using secrets to access AWS Database Migration Service resources in the AWS Database Migration Service User Guide.

", + "OracleSettings$SecretsManagerOracleAsmSecretId": "

Required only if your Oracle endpoint uses Advanced Storage Manager (ASM). The full ARN, partial ARN, or friendly name of the SecretsManagerOracleAsmSecret that contains the Oracle ASM connection details for the Oracle endpoint.

", "OrderableReplicationInstance$EngineVersion": "

The version of the replication engine.

", "OrderableReplicationInstance$ReplicationInstanceClass": "

The compute and memory capacity of the replication instance as defined for the specified replication instance class. For example to specify the instance class dms.c4.large, set this parameter to \"dms.c4.large\".

For more information on the settings and capacities for the available replication instance classes, see Selecting the right AWS DMS replication instance for your migration.

", "OrderableReplicationInstance$StorageType": "

The type of storage used by the replication instance.

", diff --git a/models/apis/resource-groups/2017-11-27/api-2.json b/models/apis/resource-groups/2017-11-27/api-2.json index 6f3b9afd32..7e8a37be69 100644 --- a/models/apis/resource-groups/2017-11-27/api-2.json +++ b/models/apis/resource-groups/2017-11-27/api-2.json @@ -164,6 +164,24 @@ {"shape":"InternalServerErrorException"} ] }, + "PutGroupConfiguration":{ + "name":"PutGroupConfiguration", + "http":{ + "method":"POST", + "requestUri":"/put-group-configuration", + "responseCode":202 + }, + "input":{"shape":"PutGroupConfigurationInput"}, + "output":{"shape":"PutGroupConfigurationOutput"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"NotFoundException"}, + {"shape":"MethodNotAllowedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerErrorException"} + ] + }, "SearchResources":{ "name":"SearchResources", "http":{ @@ -463,15 +481,15 @@ }, "GroupConfigurationParameterName":{ "type":"string", - "max":40, + "max":80, "min":1, "pattern":"[a-z-]+" }, "GroupConfigurationParameterValue":{ "type":"string", - "max":40, + "max":256, "min":1, - "pattern":"[a-zA-Z0-9:]+" + "pattern":"[a-zA-Z0-9:_-]+" }, "GroupConfigurationParameterValueList":{ "type":"list", @@ -575,7 +593,8 @@ "type":"structure", "members":{ "Succeeded":{"shape":"ResourceArnList"}, - "Failed":{"shape":"FailedResourceList"} + "Failed":{"shape":"FailedResourceList"}, + "Pending":{"shape":"PendingResourceList"} } }, "GroupString":{ @@ -606,10 +625,26 @@ "NextToken":{"shape":"NextToken"} } }, + "ListGroupResourcesItem":{ + "type":"structure", + "members":{ + "Identifier":{"shape":"ResourceIdentifier"}, + "Status":{"shape":"ResourceStatus"} + } + }, + "ListGroupResourcesItemList":{ + "type":"list", + "member":{"shape":"ListGroupResourcesItem"} + }, "ListGroupResourcesOutput":{ "type":"structure", "members":{ - "ResourceIdentifiers":{"shape":"ResourceIdentifierList"}, + "Resources":{"shape":"ListGroupResourcesItemList"}, + "ResourceIdentifiers":{ + "shape":"ResourceIdentifierList", + "deprecated":true, + "deprecatedMessage":"This field is deprecated, use Resources instead." + }, "NextToken":{"shape":"NextToken"}, "QueryErrors":{"shape":"QueryErrorList"} } @@ -669,6 +704,28 @@ "error":{"httpStatusCode":404}, "exception":true }, + "PendingResource":{ + "type":"structure", + "members":{ + "ResourceArn":{"shape":"ResourceArn"} + } + }, + "PendingResourceList":{ + "type":"list", + "member":{"shape":"PendingResource"} + }, + "PutGroupConfigurationInput":{ + "type":"structure", + "members":{ + "Group":{"shape":"GroupString"}, + "Configuration":{"shape":"GroupConfigurationList"} + } + }, + "PutGroupConfigurationOutput":{ + "type":"structure", + "members":{ + } + }, "Query":{ "type":"string", "max":4096, @@ -766,6 +823,16 @@ "Query":{"shape":"Query"} } }, + "ResourceStatus":{ + "type":"structure", + "members":{ + "Name":{"shape":"ResourceStatusValue"} + } + }, + "ResourceStatusValue":{ + "type":"string", + "enum":["PENDING"] + }, "ResourceType":{ "type":"string", "pattern":"AWS::[a-zA-Z0-9]+::\\w+" @@ -861,7 +928,8 @@ "type":"structure", "members":{ "Succeeded":{"shape":"ResourceArnList"}, - "Failed":{"shape":"FailedResourceList"} + "Failed":{"shape":"FailedResourceList"}, + "Pending":{"shape":"PendingResourceList"} } }, "UntagInput":{ diff --git a/models/apis/resource-groups/2017-11-27/docs-2.json b/models/apis/resource-groups/2017-11-27/docs-2.json index d3394ee2a1..fc8b529a2c 100644 --- a/models/apis/resource-groups/2017-11-27/docs-2.json +++ b/models/apis/resource-groups/2017-11-27/docs-2.json @@ -2,21 +2,22 @@ "version": "2.0", "service": "AWS Resource Groups

AWS Resource Groups lets you organize AWS resources such as Amazon EC2 instances, Amazon Relational Database Service databases, and Amazon S3 buckets into groups using criteria that you define as tags. A resource group is a collection of resources that match the resource types specified in a query, and share one or more tags or portions of tags. You can create a group of resources based on their roles in your cloud infrastructure, lifecycle stages, regions, application layers, or virtually any criteria. Resource Groups enable you to automate management tasks, such as those in AWS Systems Manager Automation documents, on tag-related resources in AWS Systems Manager. Groups of tagged resources also let you quickly view a custom console in AWS Systems Manager that shows AWS Config compliance and other monitoring data about member resources.

To create a resource group, build a resource query, and specify tags that identify the criteria that members of the group have in common. Tags are key-value pairs.

For more information about Resource Groups, see the AWS Resource Groups User Guide.

AWS Resource Groups uses a REST-compliant API that you can use to perform the following types of operations.

", "operations": { - "CreateGroup": "

Creates a resource group with the specified name and description. You can optionally include a resource query, or a service configuration.

", - "DeleteGroup": "

Deletes the specified resource group. Deleting a resource group does not delete any resources that are members of the group; it only deletes the group structure.

", - "GetGroup": "

Returns information about a specified resource group.

", - "GetGroupConfiguration": "

Returns the service configuration associated with the specified resource group. AWS Resource Groups supports configurations for the following resource group types:

", - "GetGroupQuery": "

Retrieves the resource query associated with the specified resource group.

", - "GetTags": "

Returns a list of tags that are associated with a resource group, specified by an ARN.

", - "GroupResources": "

Adds the specified resources to the specified group.

", - "ListGroupResources": "

Returns a list of ARNs of the resources that are members of a specified resource group.

", - "ListGroups": "

Returns a list of existing resource groups in your account.

", - "SearchResources": "

Returns a list of AWS resource identifiers that matches the specified query. The query uses the same format as a resource query in a CreateGroup or UpdateGroupQuery operation.

", - "Tag": "

Adds tags to a resource group with the specified ARN. Existing tags on a resource group are not changed if they are not specified in the request parameters.

Do not store personally identifiable information (PII) or other confidential or sensitive information in tags. We use tags to provide you with billing and administration services. Tags are not intended to be used for private or sensitive data.

", - "UngroupResources": "

Removes the specified resources from the specified group.

", - "Untag": "

Deletes tags from a specified resource group.

", - "UpdateGroup": "

Updates the description for an existing group. You cannot update the name of a resource group.

", - "UpdateGroupQuery": "

Updates the resource query of a group.

" + "CreateGroup": "

Creates a resource group with the specified name and description. You can optionally include a resource query, or a service configuration. For more information about constructing a resource query, see Create a tag-based group in Resource Groups. For more information about service configurations, see Service configurations for resource groups.

Minimum permissions

To run this command, you must have the following permissions:

", + "DeleteGroup": "

Deletes the specified resource group. Deleting a resource group does not delete any resources that are members of the group; it only deletes the group structure.

Minimum permissions

To run this command, you must have the following permissions:

", + "GetGroup": "

Returns information about a specified resource group.

Minimum permissions

To run this command, you must have the following permissions:

", + "GetGroupConfiguration": "

Returns the service configuration associated with the specified resource group. For details about the service configuration syntax, see Service configurations for resource groups.

Minimum permissions

To run this command, you must have the following permissions:

", + "GetGroupQuery": "

Retrieves the resource query associated with the specified resource group. For more information about resource queries, see Create a tag-based group in Resource Groups.

Minimum permissions

To run this command, you must have the following permissions:

", + "GetTags": "

Returns a list of tags that are associated with a resource group, specified by an ARN.

Minimum permissions

To run this command, you must have the following permissions:

", + "GroupResources": "

Adds the specified resources to the specified group.

Minimum permissions

To run this command, you must have the following permissions:

", + "ListGroupResources": "

Returns a list of ARNs of the resources that are members of a specified resource group.

Minimum permissions

To run this command, you must have the following permissions:

", + "ListGroups": "

Returns a list of existing resource groups in your account.

Minimum permissions

To run this command, you must have the following permissions:

", + "PutGroupConfiguration": "

Attaches a service configuration to the specified group. This occurs asynchronously, and can take time to complete. You can use GetGroupConfiguration to check the status of the update.

Minimum permissions

To run this command, you must have the following permissions:

", + "SearchResources": "

Returns a list of AWS resource identifiers that matches the specified query. The query uses the same format as a resource query in a CreateGroup or UpdateGroupQuery operation.

Minimum permissions

To run this command, you must have the following permissions:

", + "Tag": "

Adds tags to a resource group with the specified ARN. Existing tags on a resource group are not changed if they are not specified in the request parameters.

Do not store personally identifiable information (PII) or other confidential or sensitive information in tags. We use tags to provide you with billing and administration services. Tags are not intended to be used for private or sensitive data.

Minimum permissions

To run this command, you must have the following permissions:

", + "UngroupResources": "

Removes the specified resources from the specified group.

Minimum permissions

To run this command, you must have the following permissions:

", + "Untag": "

Deletes tags from a specified resource group.

Minimum permissions

To run this command, you must have the following permissions:

", + "UpdateGroup": "

Updates the description for an existing group. You cannot update the name of a resource group.

Minimum permissions

To run this command, you must have the following permissions:

", + "UpdateGroupQuery": "

Updates the resource query of a group. For more information about resource queries, see Create a tag-based group in Resource Groups.

Minimum permissions

To run this command, you must have the following permissions:

" }, "shapes": { "BadRequestException": { @@ -80,8 +81,8 @@ "FailedResourceList": { "base": null, "refs": { - "GroupResourcesOutput$Failed": "

The ARNs of the resources that failed to be added to the group by this operation.

", - "UngroupResourcesOutput$Failed": "

The resources that failed to be removed from the group.

" + "GroupResourcesOutput$Failed": "

A list of ARNs of any resources that failed to be added to the group by this operation.

", + "UngroupResourcesOutput$Failed": "

A list of any resources that failed to be removed from the group by this operation.

" } }, "ForbiddenException": { @@ -130,7 +131,7 @@ } }, "Group": { - "base": "

A resource group that contains AWS resources. You can assign resources to the group by associating either of the following elements with the group:

", + "base": "

A resource group that contains AWS resources. You can assign resources to the group by associating either of the following elements with the group:

", "refs": { "CreateGroupOutput$Group": "

The description of the resource group.

", "DeleteGroupOutput$Group": "

A full description of the deleted resource group.

", @@ -153,10 +154,10 @@ } }, "GroupConfiguration": { - "base": "

A service configuration associated with a resource group. The configuration options are determined by the AWS service that defines the Type, and specifies which resources can be included in the group. You can add a service configuration when you create the group.

", + "base": "

A service configuration associated with a resource group. The configuration options are determined by the AWS service that defines the Type, and specifies which resources can be included in the group. You can add a service configuration when you create the group by using CreateGroup, or later by using the PutGroupConfiguration operation. For details about group service configuration syntax, see Service configurations for resource groups.

", "refs": { - "CreateGroupOutput$GroupConfiguration": "

The service configuration associated with the resource group. AWS Resource Groups supports adding service configurations for the following resource group types:

", - "GetGroupConfigurationOutput$GroupConfiguration": "

The configuration associated with the specified group.

" + "CreateGroupOutput$GroupConfiguration": "

The service configuration associated with the resource group. For details about the syntax of a service configuration, see Service configurations for resource groups.

", + "GetGroupConfigurationOutput$GroupConfiguration": "

The service configuration associated with the specified group. For details about the service configuration syntax, see Service configurations for resource groups.

" } }, "GroupConfigurationFailureReason": { @@ -166,7 +167,7 @@ } }, "GroupConfigurationItem": { - "base": "

An item in a group configuration. A group configuration can have one or more items.

", + "base": "

An item in a group configuration. A group service configuration can have one or more items. For details about group service configuration syntax, see Service configurations for resource groups.

", "refs": { "GroupConfigurationList$member": null } @@ -174,13 +175,14 @@ "GroupConfigurationList": { "base": null, "refs": { - "CreateGroupInput$Configuration": "

A configuration associates the resource group with an AWS service and specifies how the service can interact with the resources in the group. A configuration is an array of GroupConfigurationItem elements.

You can specify either a Configuration or a ResourceQuery in a group, but not both.

", + "CreateGroupInput$Configuration": "

A configuration associates the resource group with an AWS service and specifies how the service can interact with the resources in the group. A configuration is an array of GroupConfigurationItem elements. For details about the syntax of service configurations, see Service configurations for resource groups.

A resource group can contain either a Configuration or a ResourceQuery, but not both.

", "GroupConfiguration$Configuration": "

The configuration currently associated with the group and in effect.

", - "GroupConfiguration$ProposedConfiguration": "

If present, the new configuration that is in the process of being applied to the group.

" + "GroupConfiguration$ProposedConfiguration": "

If present, the new configuration that is in the process of being applied to the group.

", + "PutGroupConfigurationInput$Configuration": "

The new configuration to associate with the specified group. A configuration associates the resource group with an AWS service and specifies how the service can interact with the resources in the group. A configuration is an array of GroupConfigurationItem elements.

For information about the syntax of a service configuration, see Service configurations for resource groups.

A resource group can contain either a Configuration or a ResourceQuery, but not both.

" } }, "GroupConfigurationParameter": { - "base": "

A parameter for a group configuration item.

", + "base": "

A parameter for a group configuration item. For details about group service configuration syntax, see Service configurations for resource groups.

", "refs": { "GroupParameterList$member": null } @@ -188,7 +190,7 @@ "GroupConfigurationParameterName": { "base": null, "refs": { - "GroupConfigurationParameter$Name": "

The name of the group configuration parameter.

You can specify the following string values:

" + "GroupConfigurationParameter$Name": "

The name of the group configuration parameter. For the list of parameters that you can use with each configuration item type, see Supported resource types and parameters.

" } }, "GroupConfigurationParameterValue": { @@ -200,7 +202,7 @@ "GroupConfigurationParameterValueList": { "base": null, "refs": { - "GroupConfigurationParameter$Values": "

The values of for this parameter.

You can specify the following string value:

" + "GroupConfigurationParameter$Values": "

The value or values to be used for the specified parameter. For the list of values you can use with each parameter, see Supported resource types and parameters.

" } }, "GroupConfigurationStatus": { @@ -212,7 +214,7 @@ "GroupConfigurationType": { "base": null, "refs": { - "GroupConfigurationItem$Type": "

Specifies the type of group configuration item. Each item must have a unique value for type.

You can specify the following string values:

" + "GroupConfigurationItem$Type": "

Specifies the type of group configuration item. Each item must have a unique value for type. For the list of types that you can specify for a configuration item, see Supported resource types and parameters.

" } }, "GroupFilter": { @@ -224,7 +226,7 @@ "GroupFilterList": { "base": null, "refs": { - "ListGroupsInput$Filters": "

Filters, formatted as GroupFilter objects, that you want to apply to a ListGroups operation.

" + "ListGroupsInput$Filters": "

Filters, formatted as GroupFilter objects, that you want to apply to a ListGroups operation.

" } }, "GroupFilterName": { @@ -260,20 +262,20 @@ "GroupList": { "base": null, "refs": { - "ListGroupsOutput$Groups": "

This output element is deprecated and shouldn't be used. Refer to GroupIdentifiers instead.

" + "ListGroupsOutput$Groups": "

Deprecated - don't use this field. Use the GroupIdentifiers response field instead.

" } }, "GroupName": { "base": null, "refs": { "CreateGroupInput$Name": "

The name of the group, which is the identifier of the group in other operations. You can't change the name of a resource group after you create it. A resource group name can consist of letters, numbers, hyphens, periods, and underscores. The name cannot start with AWS or aws; these are reserved. A resource group name must be unique within each AWS Region in your AWS account.

", - "DeleteGroupInput$GroupName": "

Don't use this parameter. Use Group instead.

", - "GetGroupInput$GroupName": "

Don't use this parameter. Use Group instead.

", + "DeleteGroupInput$GroupName": "

Deprecated - don't use this parameter. Use Group instead.

", + "GetGroupInput$GroupName": "

Deprecated - don't use this parameter. Use Group instead.

", "GetGroupQueryInput$GroupName": "

Don't use this parameter. Use Group instead.

", "Group$Name": "

The name of the resource group.

", "GroupIdentifier$GroupName": "

The name of the resource group.

", "GroupQuery$GroupName": "

The name of the resource group that is associated with the specified resource query.

", - "ListGroupResourcesInput$GroupName": "

Don't use this parameter. Use Group instead.

", + "ListGroupResourcesInput$GroupName": "

Deprecated - don't use this parameter. Use the Group request field instead.

", "UpdateGroupInput$GroupName": "

Don't use this parameter. Use Group instead.

", "UpdateGroupQueryInput$GroupName": "

Don't use this parameter. Use Group instead.

" } @@ -281,13 +283,13 @@ "GroupParameterList": { "base": null, "refs": { - "GroupConfigurationItem$Parameters": "

A collection of parameters for this group configuration item.

" + "GroupConfigurationItem$Parameters": "

A collection of parameters for this group configuration item. For the list of parameters that you can use with each configuration item type, see Supported resource types and parameters.

" } }, "GroupQuery": { "base": "

A mapping of a query attached to a resource group that determines the AWS resources that are members of the group.

", "refs": { - "GetGroupQueryOutput$GroupQuery": "

The resource query associated with the specified group.

", + "GetGroupQueryOutput$GroupQuery": "

The resource query associated with the specified group. For more information about resource queries, see Create a tag-based group in Resource Groups.

", "UpdateGroupQueryOutput$GroupQuery": "

The updated resource query associated with the resource group after the update.

" } }, @@ -310,6 +312,7 @@ "GetGroupQueryInput$Group": "

The name or the ARN of the resource group to query.

", "GroupResourcesInput$Group": "

The name or the ARN of the resource group to add resources to.

", "ListGroupResourcesInput$Group": "

The name or the ARN of the resource group

", + "PutGroupConfigurationInput$Group": "

The name or ARN of the resource group with the configuration that you want to update.

", "UngroupResourcesInput$Group": "

The name or the ARN of the resource group from which to remove the resources.

", "UpdateGroupInput$Group": "

The name or the ARN of the resource group to modify.

", "UpdateGroupQueryInput$Group": "

The name or the ARN of the resource group to query.

" @@ -325,6 +328,18 @@ "refs": { } }, + "ListGroupResourcesItem": { + "base": "

A structure returned by the ListGroupResources operation that contains identity and group membership status information for one of the resources in the group.

", + "refs": { + "ListGroupResourcesItemList$member": null + } + }, + "ListGroupResourcesItemList": { + "base": null, + "refs": { + "ListGroupResourcesOutput$Resources": "

An array of resources from which you can determine each resource's identity, type, and group membership status.

" + } + }, "ListGroupResourcesOutput": { "base": null, "refs": { @@ -369,6 +384,29 @@ "refs": { } }, + "PendingResource": { + "base": "

A structure that identifies a resource that is currently pending addition to the group as a member. Adding a resource to a resource group happens asynchronously as a background task and this one isn't completed yet.

", + "refs": { + "PendingResourceList$member": null + } + }, + "PendingResourceList": { + "base": null, + "refs": { + "GroupResourcesOutput$Pending": "

A list of ARNs of any resources that are still in the process of being added to the group by this operation. These pending additions continue asynchronously. You can check the status of pending additions by using the ListGroupResources operation, and checking the Resources array in the response and the Status field of each object in that array.

", + "UngroupResourcesOutput$Pending": "

A list of any resources that are still in the process of being removed from the group by this operation. These pending removals continue asynchronously. You can check the status of pending removals by using the ListGroupResources operation. After the resource is successfully removed, it no longer appears in the response.

" + } + }, + "PutGroupConfigurationInput": { + "base": null, + "refs": { + } + }, + "PutGroupConfigurationOutput": { + "base": null, + "refs": { + } + }, "Query": { "base": null, "refs": { @@ -410,6 +448,7 @@ "base": null, "refs": { "FailedResource$ResourceArn": "

The ARN of the resource that failed to be added or removed.

", + "PendingResource$ResourceArn": "

The Amazon resource name (ARN) of the resource that's in a pending state.

", "ResourceArnList$member": null, "ResourceIdentifier$ResourceArn": "

The ARN of a resource.

" } @@ -418,9 +457,9 @@ "base": null, "refs": { "GroupResourcesInput$ResourceArns": "

The list of ARNs for resources to be added to the group.

", - "GroupResourcesOutput$Succeeded": "

The ARNs of the resources that were successfully added to the group by this operation.

", + "GroupResourcesOutput$Succeeded": "

A list of ARNs of resources that were successfully added to the group by this operation.

", "UngroupResourcesInput$ResourceArns": "

The ARNs of the resources to be removed from the group.

", - "UngroupResourcesOutput$Succeeded": "

The ARNs of the resources that were successfully removed from the group.

" + "UngroupResourcesOutput$Succeeded": "

A list of resources that were successfully removed from the group by this operation.

" } }, "ResourceFilter": { @@ -454,26 +493,39 @@ } }, "ResourceIdentifier": { - "base": "

The ARN of a resource, and its resource type.

", + "base": "

A structure that contains the ARN of a resource and its resource type.

", "refs": { + "ListGroupResourcesItem$Identifier": null, "ResourceIdentifierList$member": null } }, "ResourceIdentifierList": { "base": null, "refs": { - "ListGroupResourcesOutput$ResourceIdentifiers": "

The ARNs and resource types of resources that are members of the group that you specified.

", + "ListGroupResourcesOutput$ResourceIdentifiers": "

Deprecated - don't use this parameter. Use the Resources response field instead.

", "SearchResourcesOutput$ResourceIdentifiers": "

The ARNs and resource types of resources that are members of the group that you specified.

" } }, "ResourceQuery": { "base": "

The query that is used to define a resource group or a search for resources. A query specifies both a query type and a query string as a JSON object. See the examples section for example JSON strings.

The examples that follow are shown as standard JSON strings. If you include such a string as a parameter to the AWS CLI or an SDK API, you might need to 'escape' the string into a single line. For example, see the Quoting strings in the AWS CLI User Guide.

Example 1

The following generic example shows a resource query JSON string that includes only resources that meet the following criteria:

{ \"Type\": \"TAG_FILTERS_1_0\", \"Query\": { \"ResourceTypeFilters\": [ \"resource_type1\", \"resource_type2\"], \"TagFilters\": [ { \"Key\": \"Key1\", \"Values\": [\"ValueA\",\"ValueB\"] }, { \"Key\":\"Key2\", \"Values\":[\"ValueC\",\"ValueD\"] } ] } }

This has the equivalent \"shortcut\" syntax of the following:

{ \"Type\": \"TAG_FILTERS_1_0\", \"Query\": { \"ResourceTypeFilters\": [ \"resource_type1\", \"resource_type2\"], \"TagFilters\": [ { \"Key1\": [\"ValueA\",\"ValueB\"] }, { \"Key2\": [\"ValueC\",\"ValueD\"] } ] } }

Example 2

The following example shows a resource query JSON string that includes only Amazon EC2 instances that are tagged Stage with a value of Test.

{ \"Type\": \"TAG_FILTERS_1_0\", \"Query\": \"{ \"ResourceTypeFilters\": \"AWS::EC2::Instance\", \"TagFilters\": { \"Stage\": \"Test\" } } }

Example 3

The following example shows a resource query JSON string that includes resource of any supported type as long as it is tagged Stage with a value of Prod.

{ \"Type\": \"TAG_FILTERS_1_0\", \"Query\": { \"ResourceTypeFilters\": \"AWS::AllSupported\", \"TagFilters\": { \"Stage\": \"Prod\" } } }

Example 4

The following example shows a resource query JSON string that includes only Amazon EC2 instances and Amazon S3 buckets that are part of the specified AWS CloudFormation stack.

{ \"Type\": \"CLOUDFORMATION_STACK_1_0\", \"Query\": { \"ResourceTypeFilters\": [ \"AWS::EC2::Instance\", \"AWS::S3::Bucket\" ], \"StackIdentifier\": \"arn:aws:cloudformation:us-west-2:123456789012:stack/AWStestuseraccount/fb0d5000-aba8-00e8-aa9e-50d5cEXAMPLE\" } }

", "refs": { - "CreateGroupInput$ResourceQuery": "

The resource query that determines which AWS resources are members of this group.

You can specify either a ResourceQuery or a Configuration, but not both.

", - "CreateGroupOutput$ResourceQuery": "

The resource query associated with the group.

", + "CreateGroupInput$ResourceQuery": "

The resource query that determines which AWS resources are members of this group. For more information about resource queries, see Create a tag-based group in Resource Groups.

A resource group can contain either a ResourceQuery or a Configuration, but not both.

", + "CreateGroupOutput$ResourceQuery": "

The resource query associated with the group. For more information about resource queries, see Create a tag-based group in Resource Groups.

", "GroupQuery$ResourceQuery": "

The resource query that determines which AWS resources are members of the associated resource group.

", "SearchResourcesInput$ResourceQuery": "

The search query, using the same formats that are supported for resource group definition. For more information, see CreateGroup.

", - "UpdateGroupQueryInput$ResourceQuery": "

The resource query to determine which AWS resources are members of this resource group.

" + "UpdateGroupQueryInput$ResourceQuery": "

The resource query to determine which AWS resources are members of this resource group.

A resource group can contain either a Configuration or a ResourceQuery, but not both.

" + } + }, + "ResourceStatus": { + "base": "

A structure that identifies the current group membership status for a resource. Adding a resource to a resource group is performed asynchronously as a background task. A PENDING status indicates, for this resource, that the process isn't completed yet.

", + "refs": { + "ListGroupResourcesItem$Status": "

A structure that contains the status of this resource's membership in the group.

This field is present in the response only if the group is of type AWS::EC2::HostManagement.

" + } + }, + "ResourceStatusValue": { + "base": null, + "refs": { + "ResourceStatus$Name": "

The current status.

" } }, "ResourceType": { diff --git a/models/apis/resource-groups/2017-11-27/paginators-1.json b/models/apis/resource-groups/2017-11-27/paginators-1.json index b68c817178..c9779580d9 100644 --- a/models/apis/resource-groups/2017-11-27/paginators-1.json +++ b/models/apis/resource-groups/2017-11-27/paginators-1.json @@ -1,22 +1 @@ -{ - "pagination": { - "ListGroupResources": { - "input_token": "NextToken", - "output_token": "NextToken", - "limit_key": "MaxResults", - "result_key": "ResourceIdentifiers" - }, - "ListGroups": { - "input_token": "NextToken", - "output_token": "NextToken", - "limit_key": "MaxResults", - "result_key": "GroupIdentifiers" - }, - "SearchResources": { - "input_token": "NextToken", - "output_token": "NextToken", - "limit_key": "MaxResults", - "result_key": "ResourceIdentifiers" - } - } -} +{"pagination":{"ListGroupResources":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults","result_key":["ResourceIdentifiers","Resources"]},"ListGroups":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults","result_key":"GroupIdentifiers"},"SearchResources":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults","result_key":"ResourceIdentifiers"}}} \ No newline at end of file diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index ec8de24de8..30ef24aecd 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -9056,12 +9056,24 @@ }, "waf-regional" : { "endpoints" : { + "fips-us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "hostname" : "waf-regional-fips.us-gov-east-1.amazonaws.com" + }, "fips-us-gov-west-1" : { "credentialScope" : { "region" : "us-gov-west-1" }, "hostname" : "waf-regional-fips.us-gov-west-1.amazonaws.com" }, + "us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "hostname" : "waf-regional.us-gov-east-1.amazonaws.com" + }, "us-gov-west-1" : { "credentialScope" : { "region" : "us-gov-west-1" diff --git a/service/computeoptimizer/api.go b/service/computeoptimizer/api.go index 1b40a91122..ea20cb5fab 100644 --- a/service/computeoptimizer/api.go +++ b/service/computeoptimizer/api.go @@ -860,6 +860,112 @@ func (c *ComputeOptimizer) GetEnrollmentStatusWithContext(ctx aws.Context, input return out, req.Send() } +const opGetLambdaFunctionRecommendations = "GetLambdaFunctionRecommendations" + +// GetLambdaFunctionRecommendationsRequest generates a "aws/request.Request" representing the +// client's request for the GetLambdaFunctionRecommendations 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 GetLambdaFunctionRecommendations for more information on using the GetLambdaFunctionRecommendations +// 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 GetLambdaFunctionRecommendationsRequest method. +// req, resp := client.GetLambdaFunctionRecommendationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetLambdaFunctionRecommendations +func (c *ComputeOptimizer) GetLambdaFunctionRecommendationsRequest(input *GetLambdaFunctionRecommendationsInput) (req *request.Request, output *GetLambdaFunctionRecommendationsOutput) { + op := &request.Operation{ + Name: opGetLambdaFunctionRecommendations, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetLambdaFunctionRecommendationsInput{} + } + + output = &GetLambdaFunctionRecommendationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetLambdaFunctionRecommendations API operation for AWS Compute Optimizer. +// +// Returns AWS Lambda function recommendations. +// +// AWS Compute Optimizer generates recommendations for functions that meet a +// specific set of requirements. For more information, see the Supported resources +// and requirements (https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html) +// in the AWS Compute Optimizer User Guide. +// +// 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 Compute Optimizer's +// API operation GetLambdaFunctionRecommendations for usage and error information. +// +// Returned Error Types: +// * OptInRequiredException +// The account is not opted in to AWS Compute Optimizer. +// +// * InternalServerException +// An internal error has occurred. Try your call again. +// +// * ServiceUnavailableException +// The request has failed due to a temporary failure of the server. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * InvalidParameterValueException +// An invalid or out-of-range value was supplied for the input parameter. +// +// * MissingAuthenticationToken +// The request must contain either a valid (registered) AWS access key ID or +// X.509 certificate. +// +// * ThrottlingException +// The request was denied due to request throttling. +// +// * LimitExceededException +// The request exceeds a limit of the service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetLambdaFunctionRecommendations +func (c *ComputeOptimizer) GetLambdaFunctionRecommendations(input *GetLambdaFunctionRecommendationsInput) (*GetLambdaFunctionRecommendationsOutput, error) { + req, out := c.GetLambdaFunctionRecommendationsRequest(input) + return out, req.Send() +} + +// GetLambdaFunctionRecommendationsWithContext is the same as GetLambdaFunctionRecommendations with the addition of +// the ability to pass a context and additional request options. +// +// See GetLambdaFunctionRecommendations 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 *ComputeOptimizer) GetLambdaFunctionRecommendationsWithContext(ctx aws.Context, input *GetLambdaFunctionRecommendationsInput, opts ...request.Option) (*GetLambdaFunctionRecommendationsOutput, error) { + req, out := c.GetLambdaFunctionRecommendationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetRecommendationSummaries = "GetRecommendationSummaries" // GetRecommendationSummariesRequest generates a "aws/request.Request" representing the @@ -2469,6 +2575,117 @@ func (s *GetEnrollmentStatusOutput) SetStatusReason(v string) *GetEnrollmentStat return s } +type GetLambdaFunctionRecommendationsInput struct { + _ struct{} `type:"structure"` + + // The IDs of the AWS accounts for which to return function recommendations. + // + // If your account is the management account of an organization, use this parameter + // to specify the member accounts for which you want to return function recommendations. + // + // Only one account ID can be specified per request. + AccountIds []*string `locationName:"accountIds" type:"list"` + + // An array of objects that describe a filter that returns a more specific list + // of function recommendations. + Filters []*LambdaFunctionRecommendationFilter `locationName:"filters" type:"list"` + + // The Amazon Resource Name (ARN) of the functions for which to return recommendations. + // + // You can specify a qualified or unqualified ARN. If you specify an unqualified + // ARN without a function version suffix, Compute Optimizer will return recommendations + // for the latest ($LATEST) version of the function. If you specify a qualified + // ARN with a version suffix, Compute Optimizer will return recommendations + // for the specified function version. For more information about using function + // versions, see Using versions (https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using) + // in the AWS Lambda Developer Guide. + FunctionArns []*string `locationName:"functionArns" type:"list"` + + // The maximum number of function recommendations to return with a single request. + // + // To retrieve the remaining results, make another request with the returned + // NextToken value. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // The token to advance to the next page of function recommendations. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s GetLambdaFunctionRecommendationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetLambdaFunctionRecommendationsInput) GoString() string { + return s.String() +} + +// SetAccountIds sets the AccountIds field's value. +func (s *GetLambdaFunctionRecommendationsInput) SetAccountIds(v []*string) *GetLambdaFunctionRecommendationsInput { + s.AccountIds = v + return s +} + +// SetFilters sets the Filters field's value. +func (s *GetLambdaFunctionRecommendationsInput) SetFilters(v []*LambdaFunctionRecommendationFilter) *GetLambdaFunctionRecommendationsInput { + s.Filters = v + return s +} + +// SetFunctionArns sets the FunctionArns field's value. +func (s *GetLambdaFunctionRecommendationsInput) SetFunctionArns(v []*string) *GetLambdaFunctionRecommendationsInput { + s.FunctionArns = v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *GetLambdaFunctionRecommendationsInput) SetMaxResults(v int64) *GetLambdaFunctionRecommendationsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *GetLambdaFunctionRecommendationsInput) SetNextToken(v string) *GetLambdaFunctionRecommendationsInput { + s.NextToken = &v + return s +} + +type GetLambdaFunctionRecommendationsOutput struct { + _ struct{} `type:"structure"` + + // An array of objects that describe function recommendations. + LambdaFunctionRecommendations []*LambdaFunctionRecommendation `locationName:"lambdaFunctionRecommendations" type:"list"` + + // The token to use to advance to the next page of function recommendations. + // + // This value is null when there are no more pages of function recommendations + // to return. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s GetLambdaFunctionRecommendationsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetLambdaFunctionRecommendationsOutput) GoString() string { + return s.String() +} + +// SetLambdaFunctionRecommendations sets the LambdaFunctionRecommendations field's value. +func (s *GetLambdaFunctionRecommendationsOutput) SetLambdaFunctionRecommendations(v []*LambdaFunctionRecommendation) *GetLambdaFunctionRecommendationsOutput { + s.LambdaFunctionRecommendations = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *GetLambdaFunctionRecommendationsOutput) SetNextToken(v string) *GetLambdaFunctionRecommendationsOutput { + s.NextToken = &v + return s +} + // Describes an error experienced when getting recommendations. // // For example, an error is returned if you request recommendations for an unsupported @@ -2952,6 +3169,350 @@ func (s *JobFilter) SetValues(v []*string) *JobFilter { return s } +// Describes a projected utilization metric of an AWS Lambda function recommendation +// option. +type LambdaFunctionMemoryProjectedMetric struct { + _ struct{} `type:"structure"` + + // The name of the projected utilization metric. + Name *string `locationName:"name" type:"string" enum:"LambdaFunctionMemoryMetricName"` + + // The statistic of the projected utilization metric. + Statistic *string `locationName:"statistic" type:"string" enum:"LambdaFunctionMemoryMetricStatistic"` + + // The values of the projected utilization metrics. + Value *float64 `locationName:"value" type:"double"` +} + +// String returns the string representation +func (s LambdaFunctionMemoryProjectedMetric) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s LambdaFunctionMemoryProjectedMetric) GoString() string { + return s.String() +} + +// SetName sets the Name field's value. +func (s *LambdaFunctionMemoryProjectedMetric) SetName(v string) *LambdaFunctionMemoryProjectedMetric { + s.Name = &v + return s +} + +// SetStatistic sets the Statistic field's value. +func (s *LambdaFunctionMemoryProjectedMetric) SetStatistic(v string) *LambdaFunctionMemoryProjectedMetric { + s.Statistic = &v + return s +} + +// SetValue sets the Value field's value. +func (s *LambdaFunctionMemoryProjectedMetric) SetValue(v float64) *LambdaFunctionMemoryProjectedMetric { + s.Value = &v + return s +} + +// Describes a recommendation option for an AWS Lambda function. +type LambdaFunctionMemoryRecommendationOption struct { + _ struct{} `type:"structure"` + + // The memory size, in MB, of the function recommendation option. + MemorySize *int64 `locationName:"memorySize" type:"integer"` + + // An array of objects that describe the projected utilization metrics of the + // function recommendation option. + ProjectedUtilizationMetrics []*LambdaFunctionMemoryProjectedMetric `locationName:"projectedUtilizationMetrics" type:"list"` + + // The rank of the function recommendation option. + // + // The top recommendation option is ranked as 1. + Rank *int64 `locationName:"rank" type:"integer"` +} + +// String returns the string representation +func (s LambdaFunctionMemoryRecommendationOption) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s LambdaFunctionMemoryRecommendationOption) GoString() string { + return s.String() +} + +// SetMemorySize sets the MemorySize field's value. +func (s *LambdaFunctionMemoryRecommendationOption) SetMemorySize(v int64) *LambdaFunctionMemoryRecommendationOption { + s.MemorySize = &v + return s +} + +// SetProjectedUtilizationMetrics sets the ProjectedUtilizationMetrics field's value. +func (s *LambdaFunctionMemoryRecommendationOption) SetProjectedUtilizationMetrics(v []*LambdaFunctionMemoryProjectedMetric) *LambdaFunctionMemoryRecommendationOption { + s.ProjectedUtilizationMetrics = v + return s +} + +// SetRank sets the Rank field's value. +func (s *LambdaFunctionMemoryRecommendationOption) SetRank(v int64) *LambdaFunctionMemoryRecommendationOption { + s.Rank = &v + return s +} + +// Describes an AWS Lambda function recommendation. +type LambdaFunctionRecommendation struct { + _ struct{} `type:"structure"` + + // The AWS account ID of the function. + AccountId *string `locationName:"accountId" type:"string"` + + // The amount of memory, in MB, that's allocated to the current function. + CurrentMemorySize *int64 `locationName:"currentMemorySize" type:"integer"` + + // The finding classification for the function. + // + // Findings for functions include: + // + // * Optimized — The function is correctly provisioned to run your workload + // based on its current configuration and its utilization history. This finding + // classification does not include finding reason codes. + // + // * NotOptimized — The function is performing at a higher level (over-provisioned) + // or at a lower level (under-provisioned) than required for your workload + // because its current configuration is not optimal. Over-provisioned resources + // might lead to unnecessary infrastructure cost, and under-provisioned resources + // might lead to poor application performance. This finding classification + // can include the MemoryUnderprovisioned and MemoryUnderprovisioned finding + // reason codes. + // + // * Unavailable — Compute Optimizer was unable to generate a recommendation + // for the function. This could be because the function has not accumulated + // sufficient metric data, or the function does not qualify for a recommendation. + // This finding classification can include the InsufficientData and Inconclusive + // finding reason codes. Functions with a finding of unavailable are not + // returned unless you specify the filter parameter with a value of Unavailable + // in your GetLambdaFunctionRecommendations request. + Finding *string `locationName:"finding" type:"string" enum:"LambdaFunctionRecommendationFinding"` + + // The reason for the finding classification of the function. + // + // Functions that have a finding classification of Optimized don't have a finding + // reason code. + // + // Reason codes include: + // + // * MemoryOverprovisioned — The function is over-provisioned when its + // memory configuration can be sized down while still meeting the performance + // requirements of your workload. An over-provisioned function might lead + // to unnecessary infrastructure cost. This finding reason code is part of + // the NotOptimized finding classification. + // + // * MemoryUnderprovisioned — The function is under-provisioned when its + // memory configuration doesn't meet the performance requirements of the + // workload. An under-provisioned function might lead to poor application + // performance. This finding reason code is part of the NotOptimized finding + // classification. + // + // * InsufficientData — The function does not have sufficient metric data + // for Compute Optimizer to generate a recommendation. For more information, + // see the Supported resources and requirements (https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html) + // in the AWS Compute Optimizer User Guide. This finding reason code is part + // of the Unavailable finding classification. + // + // * Inconclusive — The function does not qualify for a recommendation, + // or there was an internal error. This finding reason code is part of the + // Unavailable finding classification. + FindingReasonCodes []*string `locationName:"findingReasonCodes" type:"list"` + + // The Amazon Resource Name (ARN) of the current function. + FunctionArn *string `locationName:"functionArn" type:"string"` + + // The version number of the current function. + FunctionVersion *string `locationName:"functionVersion" type:"string"` + + // The time stamp of when the function recommendation was last refreshed. + LastRefreshTimestamp *time.Time `locationName:"lastRefreshTimestamp" type:"timestamp"` + + // The number of days for which utilization metrics were analyzed for the function. + LookbackPeriodInDays *float64 `locationName:"lookbackPeriodInDays" type:"double"` + + // An array of objects that describe the memory configuration recommendation + // options for the function. + MemorySizeRecommendationOptions []*LambdaFunctionMemoryRecommendationOption `locationName:"memorySizeRecommendationOptions" type:"list"` + + // The number of times your function code was executed during the look-back + // period. + NumberOfInvocations *int64 `locationName:"numberOfInvocations" type:"long"` + + // An array of objects that describe the utilization metrics of the function. + UtilizationMetrics []*LambdaFunctionUtilizationMetric `locationName:"utilizationMetrics" type:"list"` +} + +// String returns the string representation +func (s LambdaFunctionRecommendation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s LambdaFunctionRecommendation) GoString() string { + return s.String() +} + +// SetAccountId sets the AccountId field's value. +func (s *LambdaFunctionRecommendation) SetAccountId(v string) *LambdaFunctionRecommendation { + s.AccountId = &v + return s +} + +// SetCurrentMemorySize sets the CurrentMemorySize field's value. +func (s *LambdaFunctionRecommendation) SetCurrentMemorySize(v int64) *LambdaFunctionRecommendation { + s.CurrentMemorySize = &v + return s +} + +// SetFinding sets the Finding field's value. +func (s *LambdaFunctionRecommendation) SetFinding(v string) *LambdaFunctionRecommendation { + s.Finding = &v + return s +} + +// SetFindingReasonCodes sets the FindingReasonCodes field's value. +func (s *LambdaFunctionRecommendation) SetFindingReasonCodes(v []*string) *LambdaFunctionRecommendation { + s.FindingReasonCodes = v + return s +} + +// SetFunctionArn sets the FunctionArn field's value. +func (s *LambdaFunctionRecommendation) SetFunctionArn(v string) *LambdaFunctionRecommendation { + s.FunctionArn = &v + return s +} + +// SetFunctionVersion sets the FunctionVersion field's value. +func (s *LambdaFunctionRecommendation) SetFunctionVersion(v string) *LambdaFunctionRecommendation { + s.FunctionVersion = &v + return s +} + +// SetLastRefreshTimestamp sets the LastRefreshTimestamp field's value. +func (s *LambdaFunctionRecommendation) SetLastRefreshTimestamp(v time.Time) *LambdaFunctionRecommendation { + s.LastRefreshTimestamp = &v + return s +} + +// SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. +func (s *LambdaFunctionRecommendation) SetLookbackPeriodInDays(v float64) *LambdaFunctionRecommendation { + s.LookbackPeriodInDays = &v + return s +} + +// SetMemorySizeRecommendationOptions sets the MemorySizeRecommendationOptions field's value. +func (s *LambdaFunctionRecommendation) SetMemorySizeRecommendationOptions(v []*LambdaFunctionMemoryRecommendationOption) *LambdaFunctionRecommendation { + s.MemorySizeRecommendationOptions = v + return s +} + +// SetNumberOfInvocations sets the NumberOfInvocations field's value. +func (s *LambdaFunctionRecommendation) SetNumberOfInvocations(v int64) *LambdaFunctionRecommendation { + s.NumberOfInvocations = &v + return s +} + +// SetUtilizationMetrics sets the UtilizationMetrics field's value. +func (s *LambdaFunctionRecommendation) SetUtilizationMetrics(v []*LambdaFunctionUtilizationMetric) *LambdaFunctionRecommendation { + s.UtilizationMetrics = v + return s +} + +// Describes a filter that returns a more specific list of AWS Lambda function +// recommendations. +type LambdaFunctionRecommendationFilter struct { + _ struct{} `type:"structure"` + + // The name of the filter. + // + // Specify Finding to return recommendations with a specific finding classification + // (e.g., NotOptimized). + // + // Specify FindingReasonCode to return recommendations with a specific finding + // reason code (e.g., MemoryUnderprovisioned). + Name *string `locationName:"name" type:"string" enum:"LambdaFunctionRecommendationFilterName"` + + // The value of the filter. + // + // The valid values for this parameter are as follows, depending on what you + // specify for the name parameter: + // + // * Specify Optimized, NotOptimized, or Unavailable if you specified the + // name parameter as Finding. + // + // * Specify MemoryOverprovisioned, MemoryUnderprovisioned, InsufficientData, + // or Inconclusive if you specified the name parameter as FindingReasonCode. + Values []*string `locationName:"values" type:"list"` +} + +// String returns the string representation +func (s LambdaFunctionRecommendationFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s LambdaFunctionRecommendationFilter) GoString() string { + return s.String() +} + +// SetName sets the Name field's value. +func (s *LambdaFunctionRecommendationFilter) SetName(v string) *LambdaFunctionRecommendationFilter { + s.Name = &v + return s +} + +// SetValues sets the Values field's value. +func (s *LambdaFunctionRecommendationFilter) SetValues(v []*string) *LambdaFunctionRecommendationFilter { + s.Values = v + return s +} + +// Describes a utilization metric of an AWS Lambda function. +type LambdaFunctionUtilizationMetric struct { + _ struct{} `type:"structure"` + + // The name of the utilization metric. + Name *string `locationName:"name" type:"string" enum:"LambdaFunctionMetricName"` + + // The statistic of the utilization metric. + Statistic *string `locationName:"statistic" type:"string" enum:"LambdaFunctionMetricStatistic"` + + // The value of the utilization metric. + Value *float64 `locationName:"value" type:"double"` +} + +// String returns the string representation +func (s LambdaFunctionUtilizationMetric) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s LambdaFunctionUtilizationMetric) GoString() string { + return s.String() +} + +// SetName sets the Name field's value. +func (s *LambdaFunctionUtilizationMetric) SetName(v string) *LambdaFunctionUtilizationMetric { + s.Name = &v + return s +} + +// SetStatistic sets the Statistic field's value. +func (s *LambdaFunctionUtilizationMetric) SetStatistic(v string) *LambdaFunctionUtilizationMetric { + s.Statistic = &v + return s +} + +// SetValue sets the Value field's value. +func (s *LambdaFunctionUtilizationMetric) SetValue(v float64) *LambdaFunctionUtilizationMetric { + s.Value = &v + return s +} + // The request exceeds a limit of the service. type LimitExceededException struct { _ struct{} `type:"structure"` @@ -3193,6 +3754,39 @@ func (s *ProjectedMetric) SetValues(v []*float64) *ProjectedMetric { return s } +// A summary of a finding reason code. +type ReasonCodeSummary struct { + _ struct{} `type:"structure"` + + // The name of the finding reason code. + Name *string `locationName:"name" type:"string" enum:"FindingReasonCode"` + + // The value of the finding reason code summary. + Value *float64 `locationName:"value" type:"double"` +} + +// String returns the string representation +func (s ReasonCodeSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ReasonCodeSummary) GoString() string { + return s.String() +} + +// SetName sets the Name field's value. +func (s *ReasonCodeSummary) SetName(v string) *ReasonCodeSummary { + s.Name = &v + return s +} + +// SetValue sets the Value field's value. +func (s *ReasonCodeSummary) SetValue(v float64) *ReasonCodeSummary { + s.Value = &v + return s +} + // Describes a recommendation export job. // // Use the DescribeRecommendationExportJobs action to view your recommendation @@ -3619,6 +4213,9 @@ type Summary struct { // The finding classification of the recommendation. Name *string `locationName:"name" type:"string" enum:"Finding"` + // An array of objects that summarize a finding reason code. + ReasonCodeSummaries []*ReasonCodeSummary `locationName:"reasonCodeSummaries" type:"list"` + // The value of the recommendation summary. Value *float64 `locationName:"value" type:"double"` } @@ -3639,6 +4236,12 @@ func (s *Summary) SetName(v string) *Summary { return s } +// SetReasonCodeSummaries sets the ReasonCodeSummaries field's value. +func (s *Summary) SetReasonCodeSummaries(v []*ReasonCodeSummary) *Summary { + s.ReasonCodeSummaries = v + return s +} + // SetValue sets the Value field's value. func (s *Summary) SetValue(v float64) *Summary { s.Value = &v @@ -4491,6 +5094,22 @@ func Finding_Values() []string { } } +const ( + // FindingReasonCodeMemoryOverprovisioned is a FindingReasonCode enum value + FindingReasonCodeMemoryOverprovisioned = "MemoryOverprovisioned" + + // FindingReasonCodeMemoryUnderprovisioned is a FindingReasonCode enum value + FindingReasonCodeMemoryUnderprovisioned = "MemoryUnderprovisioned" +) + +// FindingReasonCode_Values returns all elements of the FindingReasonCode enum +func FindingReasonCode_Values() []string { + return []string{ + FindingReasonCodeMemoryOverprovisioned, + FindingReasonCodeMemoryUnderprovisioned, + } +} + const ( // JobFilterNameResourceType is a JobFilterName enum value JobFilterNameResourceType = "ResourceType" @@ -4531,6 +5150,130 @@ func JobStatus_Values() []string { } } +const ( + // LambdaFunctionMemoryMetricNameDuration is a LambdaFunctionMemoryMetricName enum value + LambdaFunctionMemoryMetricNameDuration = "Duration" +) + +// LambdaFunctionMemoryMetricName_Values returns all elements of the LambdaFunctionMemoryMetricName enum +func LambdaFunctionMemoryMetricName_Values() []string { + return []string{ + LambdaFunctionMemoryMetricNameDuration, + } +} + +const ( + // LambdaFunctionMemoryMetricStatisticLowerBound is a LambdaFunctionMemoryMetricStatistic enum value + LambdaFunctionMemoryMetricStatisticLowerBound = "LowerBound" + + // LambdaFunctionMemoryMetricStatisticUpperBound is a LambdaFunctionMemoryMetricStatistic enum value + LambdaFunctionMemoryMetricStatisticUpperBound = "UpperBound" + + // LambdaFunctionMemoryMetricStatisticExpected is a LambdaFunctionMemoryMetricStatistic enum value + LambdaFunctionMemoryMetricStatisticExpected = "Expected" +) + +// LambdaFunctionMemoryMetricStatistic_Values returns all elements of the LambdaFunctionMemoryMetricStatistic enum +func LambdaFunctionMemoryMetricStatistic_Values() []string { + return []string{ + LambdaFunctionMemoryMetricStatisticLowerBound, + LambdaFunctionMemoryMetricStatisticUpperBound, + LambdaFunctionMemoryMetricStatisticExpected, + } +} + +const ( + // LambdaFunctionMetricNameDuration is a LambdaFunctionMetricName enum value + LambdaFunctionMetricNameDuration = "Duration" + + // LambdaFunctionMetricNameMemory is a LambdaFunctionMetricName enum value + LambdaFunctionMetricNameMemory = "Memory" +) + +// LambdaFunctionMetricName_Values returns all elements of the LambdaFunctionMetricName enum +func LambdaFunctionMetricName_Values() []string { + return []string{ + LambdaFunctionMetricNameDuration, + LambdaFunctionMetricNameMemory, + } +} + +const ( + // LambdaFunctionMetricStatisticMaximum is a LambdaFunctionMetricStatistic enum value + LambdaFunctionMetricStatisticMaximum = "Maximum" + + // LambdaFunctionMetricStatisticAverage is a LambdaFunctionMetricStatistic enum value + LambdaFunctionMetricStatisticAverage = "Average" +) + +// LambdaFunctionMetricStatistic_Values returns all elements of the LambdaFunctionMetricStatistic enum +func LambdaFunctionMetricStatistic_Values() []string { + return []string{ + LambdaFunctionMetricStatisticMaximum, + LambdaFunctionMetricStatisticAverage, + } +} + +const ( + // LambdaFunctionRecommendationFilterNameFinding is a LambdaFunctionRecommendationFilterName enum value + LambdaFunctionRecommendationFilterNameFinding = "Finding" + + // LambdaFunctionRecommendationFilterNameFindingReasonCode is a LambdaFunctionRecommendationFilterName enum value + LambdaFunctionRecommendationFilterNameFindingReasonCode = "FindingReasonCode" +) + +// LambdaFunctionRecommendationFilterName_Values returns all elements of the LambdaFunctionRecommendationFilterName enum +func LambdaFunctionRecommendationFilterName_Values() []string { + return []string{ + LambdaFunctionRecommendationFilterNameFinding, + LambdaFunctionRecommendationFilterNameFindingReasonCode, + } +} + +const ( + // LambdaFunctionRecommendationFindingOptimized is a LambdaFunctionRecommendationFinding enum value + LambdaFunctionRecommendationFindingOptimized = "Optimized" + + // LambdaFunctionRecommendationFindingNotOptimized is a LambdaFunctionRecommendationFinding enum value + LambdaFunctionRecommendationFindingNotOptimized = "NotOptimized" + + // LambdaFunctionRecommendationFindingUnavailable is a LambdaFunctionRecommendationFinding enum value + LambdaFunctionRecommendationFindingUnavailable = "Unavailable" +) + +// LambdaFunctionRecommendationFinding_Values returns all elements of the LambdaFunctionRecommendationFinding enum +func LambdaFunctionRecommendationFinding_Values() []string { + return []string{ + LambdaFunctionRecommendationFindingOptimized, + LambdaFunctionRecommendationFindingNotOptimized, + LambdaFunctionRecommendationFindingUnavailable, + } +} + +const ( + // LambdaFunctionRecommendationFindingReasonCodeMemoryOverprovisioned is a LambdaFunctionRecommendationFindingReasonCode enum value + LambdaFunctionRecommendationFindingReasonCodeMemoryOverprovisioned = "MemoryOverprovisioned" + + // LambdaFunctionRecommendationFindingReasonCodeMemoryUnderprovisioned is a LambdaFunctionRecommendationFindingReasonCode enum value + LambdaFunctionRecommendationFindingReasonCodeMemoryUnderprovisioned = "MemoryUnderprovisioned" + + // LambdaFunctionRecommendationFindingReasonCodeInsufficientData is a LambdaFunctionRecommendationFindingReasonCode enum value + LambdaFunctionRecommendationFindingReasonCodeInsufficientData = "InsufficientData" + + // LambdaFunctionRecommendationFindingReasonCodeInconclusive is a LambdaFunctionRecommendationFindingReasonCode enum value + LambdaFunctionRecommendationFindingReasonCodeInconclusive = "Inconclusive" +) + +// LambdaFunctionRecommendationFindingReasonCode_Values returns all elements of the LambdaFunctionRecommendationFindingReasonCode enum +func LambdaFunctionRecommendationFindingReasonCode_Values() []string { + return []string{ + LambdaFunctionRecommendationFindingReasonCodeMemoryOverprovisioned, + LambdaFunctionRecommendationFindingReasonCodeMemoryUnderprovisioned, + LambdaFunctionRecommendationFindingReasonCodeInsufficientData, + LambdaFunctionRecommendationFindingReasonCodeInconclusive, + } +} + const ( // MetricNameCpu is a MetricName enum value MetricNameCpu = "Cpu" @@ -4588,6 +5331,9 @@ const ( // RecommendationSourceTypeEbsVolume is a RecommendationSourceType enum value RecommendationSourceTypeEbsVolume = "EbsVolume" + + // RecommendationSourceTypeLambdaFunction is a RecommendationSourceType enum value + RecommendationSourceTypeLambdaFunction = "LambdaFunction" ) // RecommendationSourceType_Values returns all elements of the RecommendationSourceType enum @@ -4596,6 +5342,7 @@ func RecommendationSourceType_Values() []string { RecommendationSourceTypeEc2instance, RecommendationSourceTypeAutoScalingGroup, RecommendationSourceTypeEbsVolume, + RecommendationSourceTypeLambdaFunction, } } diff --git a/service/computeoptimizer/computeoptimizeriface/interface.go b/service/computeoptimizer/computeoptimizeriface/interface.go index bcbc6089b7..552016e7f7 100644 --- a/service/computeoptimizer/computeoptimizeriface/interface.go +++ b/service/computeoptimizer/computeoptimizeriface/interface.go @@ -92,6 +92,10 @@ type ComputeOptimizerAPI interface { GetEnrollmentStatusWithContext(aws.Context, *computeoptimizer.GetEnrollmentStatusInput, ...request.Option) (*computeoptimizer.GetEnrollmentStatusOutput, error) GetEnrollmentStatusRequest(*computeoptimizer.GetEnrollmentStatusInput) (*request.Request, *computeoptimizer.GetEnrollmentStatusOutput) + GetLambdaFunctionRecommendations(*computeoptimizer.GetLambdaFunctionRecommendationsInput) (*computeoptimizer.GetLambdaFunctionRecommendationsOutput, error) + GetLambdaFunctionRecommendationsWithContext(aws.Context, *computeoptimizer.GetLambdaFunctionRecommendationsInput, ...request.Option) (*computeoptimizer.GetLambdaFunctionRecommendationsOutput, error) + GetLambdaFunctionRecommendationsRequest(*computeoptimizer.GetLambdaFunctionRecommendationsInput) (*request.Request, *computeoptimizer.GetLambdaFunctionRecommendationsOutput) + GetRecommendationSummaries(*computeoptimizer.GetRecommendationSummariesInput) (*computeoptimizer.GetRecommendationSummariesOutput, error) GetRecommendationSummariesWithContext(aws.Context, *computeoptimizer.GetRecommendationSummariesInput, ...request.Option) (*computeoptimizer.GetRecommendationSummariesOutput, error) GetRecommendationSummariesRequest(*computeoptimizer.GetRecommendationSummariesInput) (*request.Request, *computeoptimizer.GetRecommendationSummariesOutput) diff --git a/service/computeoptimizer/doc.go b/service/computeoptimizer/doc.go index e0a64e034d..7012269591 100644 --- a/service/computeoptimizer/doc.go +++ b/service/computeoptimizer/doc.go @@ -5,16 +5,16 @@ // // AWS Compute Optimizer is a service that analyzes the configuration and utilization // metrics of your AWS compute resources, such as EC2 instances, Auto Scaling -// groups, and Amazon EBS volumes. It reports whether your resources are optimal, -// and generates optimization recommendations to reduce the cost and improve -// the performance of your workloads. Compute Optimizer also provides recent -// utilization metric data, as well as projected utilization metric data for -// the recommendations, which you can use to evaluate which recommendation provides -// the best price-performance trade-off. The analysis of your usage patterns -// can help you decide when to move or resize your running resources, and still -// meet your performance and capacity requirements. For more information about -// Compute Optimizer, including the required permissions to use the service, -// see the AWS Compute Optimizer User Guide (https://docs.aws.amazon.com/compute-optimizer/latest/ug/). +// groups, AWS Lambda functions, and Amazon EBS volumes. It reports whether +// your resources are optimal, and generates optimization recommendations to +// reduce the cost and improve the performance of your workloads. Compute Optimizer +// also provides recent utilization metric data, as well as projected utilization +// metric data for the recommendations, which you can use to evaluate which +// recommendation provides the best price-performance trade-off. The analysis +// of your usage patterns can help you decide when to move or resize your running +// resources, and still meet your performance and capacity requirements. For +// more information about Compute Optimizer, including the required permissions +// to use the service, see the AWS Compute Optimizer User Guide (https://docs.aws.amazon.com/compute-optimizer/latest/ug/). // // See https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01 for more information on this service. // diff --git a/service/databasemigrationservice/api.go b/service/databasemigrationservice/api.go index f585b611f1..05acec2e43 100644 --- a/service/databasemigrationservice/api.go +++ b/service/databasemigrationservice/api.go @@ -14073,6 +14073,27 @@ type OracleSettings struct { // in the AWS Database Migration Service User Guide. SecretsManagerAccessRoleArn *string `type:"string"` + // Required only if your Oracle endpoint uses Advanced Storage Manager (ASM). + // The full ARN of the IAM role that specifies AWS DMS as the trusted entity + // and grants the required permissions to access the SecretsManagerOracleAsmSecret. + // This SecretsManagerOracleAsmSecret has the secret value that allows access + // to the Oracle ASM of the endpoint. + // + // You can specify one of two sets of values for these permissions. You can + // specify the values for this setting and SecretsManagerOracleAsmSecretId. + // Or you can specify clear-text values for AsmUserName, AsmPassword, and AsmServerName. + // You can't specify both. For more information on creating this SecretsManagerOracleAsmSecret + // and the SecretsManagerOracleAsmAccessRoleArn and SecretsManagerOracleAsmSecretId + // required to access it, see Using secrets to access AWS Database Migration + // Service resources (https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager) + // in the AWS Database Migration Service User Guide. + SecretsManagerOracleAsmAccessRoleArn *string `type:"string"` + + // Required only if your Oracle endpoint uses Advanced Storage Manager (ASM). + // The full ARN, partial ARN, or friendly name of the SecretsManagerOracleAsmSecret + // that contains the Oracle ASM connection details for the Oracle endpoint. + SecretsManagerOracleAsmSecretId *string `type:"string"` + // The full ARN, partial ARN, or friendly name of the SecretsManagerSecret that // contains the Oracle endpoint connection details. SecretsManagerSecretId *string `type:"string"` @@ -14275,6 +14296,18 @@ func (s *OracleSettings) SetSecretsManagerAccessRoleArn(v string) *OracleSetting return s } +// SetSecretsManagerOracleAsmAccessRoleArn sets the SecretsManagerOracleAsmAccessRoleArn field's value. +func (s *OracleSettings) SetSecretsManagerOracleAsmAccessRoleArn(v string) *OracleSettings { + s.SecretsManagerOracleAsmAccessRoleArn = &v + return s +} + +// SetSecretsManagerOracleAsmSecretId sets the SecretsManagerOracleAsmSecretId field's value. +func (s *OracleSettings) SetSecretsManagerOracleAsmSecretId(v string) *OracleSettings { + s.SecretsManagerOracleAsmSecretId = &v + return s +} + // SetSecretsManagerSecretId sets the SecretsManagerSecretId field's value. func (s *OracleSettings) SetSecretsManagerSecretId(v string) *OracleSettings { s.SecretsManagerSecretId = &v diff --git a/service/resourcegroups/api.go b/service/resourcegroups/api.go index e64fa05bdc..544dbbe1b4 100644 --- a/service/resourcegroups/api.go +++ b/service/resourcegroups/api.go @@ -9,6 +9,7 @@ import ( "github.com/aws/aws-sdk-go/aws/awsutil" "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" ) const opCreateGroup = "CreateGroup" @@ -56,7 +57,17 @@ func (c *ResourceGroups) CreateGroupRequest(input *CreateGroupInput) (req *reque // CreateGroup API operation for AWS Resource Groups. // // Creates a resource group with the specified name and description. You can -// optionally include a resource query, or a service configuration. +// optionally include a resource query, or a service configuration. For more +// information about constructing a resource query, see Create a tag-based group +// in Resource Groups (https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag). +// For more information about service configurations, see Service configurations +// for resource groups (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). +// +// Minimum permissions +// +// To run this command, you must have the following permissions: +// +// * resource-groups:CreateGroup // // 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 @@ -152,6 +163,12 @@ func (c *ResourceGroups) DeleteGroupRequest(input *DeleteGroupInput) (req *reque // delete any resources that are members of the group; it only deletes the group // structure. // +// Minimum permissions +// +// To run this command, you must have the following permissions: +// +// * resource-groups:DeleteGroup +// // 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. @@ -247,6 +264,12 @@ func (c *ResourceGroups) GetGroupRequest(input *GetGroupInput) (req *request.Req // // Returns information about a specified resource group. // +// Minimum permissions +// +// To run this command, you must have the following permissions: +// +// * resource-groups:GetGroup +// // 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. @@ -341,13 +364,14 @@ func (c *ResourceGroups) GetGroupConfigurationRequest(input *GetGroupConfigurati // GetGroupConfiguration API operation for AWS Resource Groups. // // Returns the service configuration associated with the specified resource -// group. AWS Resource Groups supports configurations for the following resource -// group types: +// group. For details about the service configuration syntax, see Service configurations +// for resource groups (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). // -// * AWS::EC2::CapacityReservationPool - Amazon EC2 capacity reservation -// pools. For more information, see Working with capacity reservation groups -// (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-using.html#create-cr-group) -// in the EC2 Users Guide. +// Minimum permissions +// +// To run this command, you must have the following permissions: +// +// * resource-groups:GetGroupConfiguration // // 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 @@ -443,6 +467,14 @@ func (c *ResourceGroups) GetGroupQueryRequest(input *GetGroupQueryInput) (req *r // GetGroupQuery API operation for AWS Resource Groups. // // Retrieves the resource query associated with the specified resource group. +// For more information about resource queries, see Create a tag-based group +// in Resource Groups (https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag). +// +// Minimum permissions +// +// To run this command, you must have the following permissions: +// +// * resource-groups:GetGroupQuery // // 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 @@ -540,6 +572,12 @@ func (c *ResourceGroups) GetTagsRequest(input *GetTagsInput) (req *request.Reque // Returns a list of tags that are associated with a resource group, specified // by an ARN. // +// Minimum permissions +// +// To run this command, you must have the following permissions: +// +// * resource-groups:GetTags +// // 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. @@ -635,6 +673,12 @@ func (c *ResourceGroups) GroupResourcesRequest(input *GroupResourcesInput) (req // // Adds the specified resources to the specified group. // +// Minimum permissions +// +// To run this command, you must have the following permissions: +// +// * resource-groups:GroupResources +// // 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. @@ -737,6 +781,12 @@ func (c *ResourceGroups) ListGroupResourcesRequest(input *ListGroupResourcesInpu // Returns a list of ARNs of the resources that are members of a specified resource // group. // +// Minimum permissions +// +// To run this command, you must have the following permissions: +// +// * resource-groups:ListGroupResources +// // 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. @@ -894,6 +944,12 @@ func (c *ResourceGroups) ListGroupsRequest(input *ListGroupsInput) (req *request // // Returns a list of existing resource groups in your account. // +// Minimum permissions +// +// To run this command, you must have the following permissions: +// +// * resource-groups:ListGroups +// // 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. @@ -992,6 +1048,110 @@ func (c *ResourceGroups) ListGroupsPagesWithContext(ctx aws.Context, input *List return p.Err() } +const opPutGroupConfiguration = "PutGroupConfiguration" + +// PutGroupConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the PutGroupConfiguration 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 PutGroupConfiguration for more information on using the PutGroupConfiguration +// 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 PutGroupConfigurationRequest method. +// req, resp := client.PutGroupConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/PutGroupConfiguration +func (c *ResourceGroups) PutGroupConfigurationRequest(input *PutGroupConfigurationInput) (req *request.Request, output *PutGroupConfigurationOutput) { + op := &request.Operation{ + Name: opPutGroupConfiguration, + HTTPMethod: "POST", + HTTPPath: "/put-group-configuration", + } + + if input == nil { + input = &PutGroupConfigurationInput{} + } + + output = &PutGroupConfigurationOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// PutGroupConfiguration API operation for AWS Resource Groups. +// +// Attaches a service configuration to the specified group. This occurs asynchronously, +// and can take time to complete. You can use GetGroupConfiguration to check +// the status of the update. +// +// Minimum permissions +// +// To run this command, you must have the following permissions: +// +// * resource-groups:PutGroupConfiguration +// +// 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 Resource Groups's +// API operation PutGroupConfiguration for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The request includes one or more parameters that violate validation rules. +// +// * ForbiddenException +// The caller isn't authorized to make the request. Check permissions. +// +// * NotFoundException +// One or more of the specified resources don't exist. +// +// * MethodNotAllowedException +// The request uses an HTTP method that isn't allowed for the specified resource. +// +// * TooManyRequestsException +// You've exceeded throttling limits by making too many requests in a period +// of time. +// +// * InternalServerErrorException +// An internal error occurred while processing the request. Try again later. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/PutGroupConfiguration +func (c *ResourceGroups) PutGroupConfiguration(input *PutGroupConfigurationInput) (*PutGroupConfigurationOutput, error) { + req, out := c.PutGroupConfigurationRequest(input) + return out, req.Send() +} + +// PutGroupConfigurationWithContext is the same as PutGroupConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See PutGroupConfiguration 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 *ResourceGroups) PutGroupConfigurationWithContext(ctx aws.Context, input *PutGroupConfigurationInput, opts ...request.Option) (*PutGroupConfigurationOutput, error) { + req, out := c.PutGroupConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opSearchResources = "SearchResources" // SearchResourcesRequest generates a "aws/request.Request" representing the @@ -1046,6 +1206,12 @@ func (c *ResourceGroups) SearchResourcesRequest(input *SearchResourcesInput) (re // The query uses the same format as a resource query in a CreateGroup or UpdateGroupQuery // operation. // +// Minimum permissions +// +// To run this command, you must have the following permissions: +// +// * resource-groups:SearchResources +// // 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. @@ -1200,6 +1366,12 @@ func (c *ResourceGroups) TagRequest(input *TagInput) (req *request.Request, outp // and administration services. Tags are not intended to be used for private // or sensitive data. // +// Minimum permissions +// +// To run this command, you must have the following permissions: +// +// * resource-groups:Tag +// // 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. @@ -1295,6 +1467,12 @@ func (c *ResourceGroups) UngroupResourcesRequest(input *UngroupResourcesInput) ( // // Removes the specified resources from the specified group. // +// Minimum permissions +// +// To run this command, you must have the following permissions: +// +// * resource-groups:UngroupResources +// // 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. @@ -1390,6 +1568,12 @@ func (c *ResourceGroups) UntagRequest(input *UntagInput) (req *request.Request, // // Deletes tags from a specified resource group. // +// Minimum permissions +// +// To run this command, you must have the following permissions: +// +// * resource-groups:Untag +// // 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. @@ -1486,6 +1670,12 @@ func (c *ResourceGroups) UpdateGroupRequest(input *UpdateGroupInput) (req *reque // Updates the description for an existing group. You cannot update the name // of a resource group. // +// Minimum permissions +// +// To run this command, you must have the following permissions: +// +// * resource-groups:UpdateGroup +// // 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. @@ -1579,7 +1769,14 @@ func (c *ResourceGroups) UpdateGroupQueryRequest(input *UpdateGroupQueryInput) ( // UpdateGroupQuery API operation for AWS Resource Groups. // -// Updates the resource query of a group. +// Updates the resource query of a group. For more information about resource +// queries, see Create a tag-based group in Resource Groups (https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag). +// +// Minimum permissions +// +// To run this command, you must have the following permissions: +// +// * resource-groups:UpdateGroupQuery // // 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 @@ -1691,9 +1888,11 @@ type CreateGroupInput struct { // A configuration associates the resource group with an AWS service and specifies // how the service can interact with the resources in the group. A configuration - // is an array of GroupConfigurationItem elements. + // is an array of GroupConfigurationItem elements. For details about the syntax + // of service configurations, see Service configurations for resource groups + // (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). // - // You can specify either a Configuration or a ResourceQuery in a group, but + // A resource group can contain either a Configuration or a ResourceQuery, but // not both. Configuration []*GroupConfigurationItem `type:"list"` @@ -1711,9 +1910,11 @@ type CreateGroupInput struct { Name *string `min:"1" type:"string" required:"true"` // The resource query that determines which AWS resources are members of this - // group. + // group. For more information about resource queries, see Create a tag-based + // group in Resource Groups (https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag). // - // You can specify either a ResourceQuery or a Configuration, but not both. + // A resource group can contain either a ResourceQuery or a Configuration, but + // not both. ResourceQuery *ResourceQuery `type:"structure"` // The tags to add to the group. A tag is key-value pair string. @@ -1797,17 +1998,13 @@ type CreateGroupOutput struct { // The description of the resource group. Group *Group `type:"structure"` - // The service configuration associated with the resource group. AWS Resource - // Groups supports adding service configurations for the following resource - // group types: - // - // * AWS::EC2::CapacityReservationPool - Amazon EC2 capacity reservation - // pools. For more information, see Working with capacity reservation groups - // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-using.html#create-cr-group) - // in the EC2 Users Guide. + // The service configuration associated with the resource group. For details + // about the syntax of a service configuration, see Service configurations for + // resource groups (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). GroupConfiguration *GroupConfiguration `type:"structure"` - // The resource query associated with the group. + // The resource query associated with the group. For more information about + // resource queries, see Create a tag-based group in Resource Groups (https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag). ResourceQuery *ResourceQuery `type:"structure"` // The tags associated with the group. @@ -1854,7 +2051,7 @@ type DeleteGroupInput struct { // The name or the ARN of the resource group to delete. Group *string `min:"1" type:"string"` - // Don't use this parameter. Use Group instead. + // Deprecated - don't use this parameter. Use Group instead. // // Deprecated: This field is deprecated, use Group instead. GroupName *string `min:"1" deprecated:"true" type:"string"` @@ -2058,7 +2255,9 @@ func (s *GetGroupConfigurationInput) SetGroup(v string) *GetGroupConfigurationIn type GetGroupConfigurationOutput struct { _ struct{} `type:"structure"` - // The configuration associated with the specified group. + // The service configuration associated with the specified group. For details + // about the service configuration syntax, see Service configurations for resource + // groups (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). GroupConfiguration *GroupConfiguration `type:"structure"` } @@ -2084,7 +2283,7 @@ type GetGroupInput struct { // The name or the ARN of the resource group to retrieve. Group *string `min:"1" type:"string"` - // Don't use this parameter. Use Group instead. + // Deprecated - don't use this parameter. Use Group instead. // // Deprecated: This field is deprecated, use Group instead. GroupName *string `min:"1" deprecated:"true" type:"string"` @@ -2204,7 +2403,8 @@ func (s *GetGroupQueryInput) SetGroupName(v string) *GetGroupQueryInput { type GetGroupQueryOutput struct { _ struct{} `type:"structure"` - // The resource query associated with the specified group. + // The resource query associated with the specified group. For more information + // about resource queries, see Create a tag-based group in Resource Groups (https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag). GroupQuery *GroupQuery `type:"structure"` } @@ -2303,7 +2503,8 @@ func (s *GetTagsOutput) SetTags(v map[string]*string) *GetTagsOutput { // * ResourceQuery - Use a resource query to specify a set of tag keys and // values. All resources in the same AWS Region and AWS account that have // those keys with the same values are included in the group. You can add -// a resource query when you create the group. +// a resource query when you create the group, or later by using the PutGroupConfiguration +// operation. // // * GroupConfiguration - Use a service configuration to associate the group // with an AWS service. The configuration specifies which resource types @@ -2356,7 +2557,9 @@ func (s *Group) SetName(v string) *Group { // A service configuration associated with a resource group. The configuration // options are determined by the AWS service that defines the Type, and specifies // which resources can be included in the group. You can add a service configuration -// when you create the group. +// when you create the group by using CreateGroup, or later by using the PutGroupConfiguration +// operation. For details about group service configuration syntax, see Service +// configurations for resource groups (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). type GroupConfiguration struct { _ struct{} `type:"structure"` @@ -2408,25 +2611,20 @@ func (s *GroupConfiguration) SetStatus(v string) *GroupConfiguration { return s } -// An item in a group configuration. A group configuration can have one or more -// items. +// An item in a group configuration. A group service configuration can have +// one or more items. For details about group service configuration syntax, +// see Service configurations for resource groups (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). type GroupConfigurationItem struct { _ struct{} `type:"structure"` - // A collection of parameters for this group configuration item. + // A collection of parameters for this group configuration item. For the list + // of parameters that you can use with each configuration item type, see Supported + // resource types and parameters (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types). Parameters []*GroupConfigurationParameter `type:"list"` // Specifies the type of group configuration item. Each item must have a unique - // value for type. - // - // You can specify the following string values: - // - // * AWS::EC2::CapacityReservationPool For more information about EC2 capacity - // reservation groups, see Working with capacity reservation groups (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-using.html#create-cr-group) - // in the EC2 Users Guide. - // - // * AWS::ResourceGroups::Generic - Supports parameters that configure the - // behavior of resource groups of any type. + // value for type. For the list of types that you can specify for a configuration + // item, see Supported resource types and parameters (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types). // // Type is a required field Type *string `type:"string" required:"true"` @@ -2477,33 +2675,21 @@ func (s *GroupConfigurationItem) SetType(v string) *GroupConfigurationItem { return s } -// A parameter for a group configuration item. +// A parameter for a group configuration item. For details about group service +// configuration syntax, see Service configurations for resource groups (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). type GroupConfigurationParameter struct { _ struct{} `type:"structure"` - // The name of the group configuration parameter. - // - // You can specify the following string values: - // - // * For configuration item type AWS::ResourceGroups::Generic: allowed-resource-types - // Specifies the types of resources that you can add to this group by using - // the GroupResources operation. - // - // * For configuration item type AWS::EC2::CapacityReservationPool: None - // - This configuration item type doesn't support any parameters. For more - // information about EC2 capacity reservation groups, see Working with capacity - // reservation groups (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-using.html#create-cr-group) - // in the EC2 Users Guide. + // The name of the group configuration parameter. For the list of parameters + // that you can use with each configuration item type, see Supported resource + // types and parameters (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types). // // Name is a required field Name *string `min:"1" type:"string" required:"true"` - // The values of for this parameter. - // - // You can specify the following string value: - // - // * For item type allowed-resource-types: the only supported parameter value - // is AWS::EC2::CapacityReservation. + // The value or values to be used for the specified parameter. For the list + // of values you can use with each parameter, see Supported resource types and + // parameters (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types). Values []*string `type:"list"` } @@ -2737,11 +2923,19 @@ func (s *GroupResourcesInput) SetResourceArns(v []*string) *GroupResourcesInput type GroupResourcesOutput struct { _ struct{} `type:"structure"` - // The ARNs of the resources that failed to be added to the group by this operation. + // A list of ARNs of any resources that failed to be added to the group by this + // operation. Failed []*FailedResource `type:"list"` - // The ARNs of the resources that were successfully added to the group by this - // operation. + // A list of ARNs of any resources that are still in the process of being added + // to the group by this operation. These pending additions continue asynchronously. + // You can check the status of pending additions by using the ListGroupResources + // operation, and checking the Resources array in the response and the Status + // field of each object in that array. + Pending []*PendingResource `type:"list"` + + // A list of ARNs of resources that were successfully added to the group by + // this operation. Succeeded []*string `min:"1" type:"list"` } @@ -2761,6 +2955,12 @@ func (s *GroupResourcesOutput) SetFailed(v []*FailedResource) *GroupResourcesOut return s } +// SetPending sets the Pending field's value. +func (s *GroupResourcesOutput) SetPending(v []*PendingResource) *GroupResourcesOutput { + s.Pending = v + return s +} + // SetSucceeded sets the Succeeded field's value. func (s *GroupResourcesOutput) SetSucceeded(v []*string) *GroupResourcesOutput { s.Succeeded = v @@ -2854,7 +3054,8 @@ type ListGroupResourcesInput struct { // The name or the ARN of the resource group Group *string `min:"1" type:"string"` - // Don't use this parameter. Use Group instead. + // + // Deprecated - don't use this parameter. Use the Group request field instead. // // Deprecated: This field is deprecated, use Group instead. GroupName *string `min:"1" deprecated:"true" type:"string"` @@ -2946,6 +3147,43 @@ func (s *ListGroupResourcesInput) SetNextToken(v string) *ListGroupResourcesInpu return s } +// A structure returned by the ListGroupResources operation that contains identity +// and group membership status information for one of the resources in the group. +type ListGroupResourcesItem struct { + _ struct{} `type:"structure"` + + // A structure that contains the ARN of a resource and its resource type. + Identifier *ResourceIdentifier `type:"structure"` + + // A structure that contains the status of this resource's membership in the + // group. + // + // This field is present in the response only if the group is of type AWS::EC2::HostManagement. + Status *ResourceStatus `type:"structure"` +} + +// String returns the string representation +func (s ListGroupResourcesItem) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListGroupResourcesItem) GoString() string { + return s.String() +} + +// SetIdentifier sets the Identifier field's value. +func (s *ListGroupResourcesItem) SetIdentifier(v *ResourceIdentifier) *ListGroupResourcesItem { + s.Identifier = v + return s +} + +// SetStatus sets the Status field's value. +func (s *ListGroupResourcesItem) SetStatus(v *ResourceStatus) *ListGroupResourcesItem { + s.Status = v + return s +} + type ListGroupResourcesOutput struct { _ struct{} `type:"structure"` @@ -2960,9 +3198,16 @@ type ListGroupResourcesOutput struct { // and CLOUDFORMATION_STACK_NOT_EXISTING. QueryErrors []*QueryError `type:"list"` - // The ARNs and resource types of resources that are members of the group that - // you specified. - ResourceIdentifiers []*ResourceIdentifier `type:"list"` + // + // Deprecated - don't use this parameter. Use the Resources response field + // instead. + // + // Deprecated: This field is deprecated, use Resources instead. + ResourceIdentifiers []*ResourceIdentifier `deprecated:"true" type:"list"` + + // An array of resources from which you can determine each resource's identity, + // type, and group membership status. + Resources []*ListGroupResourcesItem `type:"list"` } // String returns the string representation @@ -2993,6 +3238,12 @@ func (s *ListGroupResourcesOutput) SetResourceIdentifiers(v []*ResourceIdentifie return s } +// SetResources sets the Resources field's value. +func (s *ListGroupResourcesOutput) SetResources(v []*ListGroupResourcesItem) *ListGroupResourcesOutput { + s.Resources = v + return s +} + type ListGroupsInput struct { _ struct{} `type:"structure"` @@ -3005,7 +3256,7 @@ type ListGroupsInput struct { // // * configuration-type - Filter the results to include only those groups // that have the specified configuration types attached. The current supported - // values are: AWS:EC2::CapacityReservationPool + // values are: AWS:EC2::CapacityReservationPool AWS:EC2::HostManagement Filters []*GroupFilter `type:"list"` // The total number of results that you want included on each page of the response. @@ -3084,8 +3335,9 @@ type ListGroupsOutput struct { // both the Name and the GroupArn. GroupIdentifiers []*GroupIdentifier `type:"list"` - // This output element is deprecated and shouldn't be used. Refer to GroupIdentifiers - // instead. + // + // Deprecated - don't use this field. Use the GroupIdentifiers response field + // instead. // // Deprecated: This field is deprecated, use GroupIdentifiers instead. Groups []*Group `deprecated:"true" type:"list"` @@ -3237,6 +3489,111 @@ func (s *NotFoundException) RequestID() string { return s.RespMetadata.RequestID } +// A structure that identifies a resource that is currently pending addition +// to the group as a member. Adding a resource to a resource group happens asynchronously +// as a background task and this one isn't completed yet. +type PendingResource struct { + _ struct{} `type:"structure"` + + // The Amazon resource name (ARN) of the resource that's in a pending state. + ResourceArn *string `type:"string"` +} + +// String returns the string representation +func (s PendingResource) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PendingResource) GoString() string { + return s.String() +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *PendingResource) SetResourceArn(v string) *PendingResource { + s.ResourceArn = &v + return s +} + +type PutGroupConfigurationInput struct { + _ struct{} `type:"structure"` + + // The new configuration to associate with the specified group. A configuration + // associates the resource group with an AWS service and specifies how the service + // can interact with the resources in the group. A configuration is an array + // of GroupConfigurationItem elements. + // + // For information about the syntax of a service configuration, see Service + // configurations for resource groups (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). + // + // A resource group can contain either a Configuration or a ResourceQuery, but + // not both. + Configuration []*GroupConfigurationItem `type:"list"` + + // The name or ARN of the resource group with the configuration that you want + // to update. + Group *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s PutGroupConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutGroupConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutGroupConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutGroupConfigurationInput"} + if s.Group != nil && len(*s.Group) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Group", 1)) + } + if s.Configuration != nil { + for i, v := range s.Configuration { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Configuration", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetConfiguration sets the Configuration field's value. +func (s *PutGroupConfigurationInput) SetConfiguration(v []*GroupConfigurationItem) *PutGroupConfigurationInput { + s.Configuration = v + return s +} + +// SetGroup sets the Group field's value. +func (s *PutGroupConfigurationInput) SetGroup(v string) *PutGroupConfigurationInput { + s.Group = &v + return s +} + +type PutGroupConfigurationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutGroupConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutGroupConfigurationOutput) GoString() string { + return s.String() +} + // A two-part error structure that can occur in ListGroupResources or SearchResources // operations on CloudFormation stack-based queries. The error occurs if the // CloudFormation stack on which the query is based either does not exist, or @@ -3336,7 +3693,7 @@ func (s *ResourceFilter) SetValues(v []*string) *ResourceFilter { return s } -// The ARN of a resource, and its resource type. +// A structure that contains the ARN of a resource and its resource type. type ResourceIdentifier struct { _ struct{} `type:"structure"` @@ -3506,6 +3863,33 @@ func (s *ResourceQuery) SetType(v string) *ResourceQuery { return s } +// A structure that identifies the current group membership status for a resource. +// Adding a resource to a resource group is performed asynchronously as a background +// task. A PENDING status indicates, for this resource, that the process isn't +// completed yet. +type ResourceStatus struct { + _ struct{} `type:"structure"` + + // The current status. + Name *string `type:"string" enum:"ResourceStatusValue"` +} + +// String returns the string representation +func (s ResourceStatus) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResourceStatus) GoString() string { + return s.String() +} + +// SetName sets the Name field's value. +func (s *ResourceStatus) SetName(v string) *ResourceStatus { + s.Name = &v + return s +} + type SearchResourcesInput struct { _ struct{} `type:"structure"` @@ -3892,10 +4276,19 @@ func (s *UngroupResourcesInput) SetResourceArns(v []*string) *UngroupResourcesIn type UngroupResourcesOutput struct { _ struct{} `type:"structure"` - // The resources that failed to be removed from the group. + // A list of any resources that failed to be removed from the group by this + // operation. Failed []*FailedResource `type:"list"` - // The ARNs of the resources that were successfully removed from the group. + // A list of any resources that are still in the process of being removed from + // the group by this operation. These pending removals continue asynchronously. + // You can check the status of pending removals by using the ListGroupResources + // operation. After the resource is successfully removed, it no longer appears + // in the response. + Pending []*PendingResource `type:"list"` + + // A list of resources that were successfully removed from the group by this + // operation. Succeeded []*string `min:"1" type:"list"` } @@ -3915,6 +4308,12 @@ func (s *UngroupResourcesOutput) SetFailed(v []*FailedResource) *UngroupResource return s } +// SetPending sets the Pending field's value. +func (s *UngroupResourcesOutput) SetPending(v []*PendingResource) *UngroupResourcesOutput { + s.Pending = v + return s +} + // SetSucceeded sets the Succeeded field's value. func (s *UngroupResourcesOutput) SetSucceeded(v []*string) *UngroupResourcesOutput { s.Succeeded = v @@ -4106,6 +4505,9 @@ type UpdateGroupQueryInput struct { // The resource query to determine which AWS resources are members of this resource // group. // + // A resource group can contain either a Configuration or a ResourceQuery, but + // not both. + // // ResourceQuery is a required field ResourceQuery *ResourceQuery `type:"structure" required:"true"` } @@ -4264,3 +4666,15 @@ func ResourceFilterName_Values() []string { ResourceFilterNameResourceType, } } + +const ( + // ResourceStatusValuePending is a ResourceStatusValue enum value + ResourceStatusValuePending = "PENDING" +) + +// ResourceStatusValue_Values returns all elements of the ResourceStatusValue enum +func ResourceStatusValue_Values() []string { + return []string{ + ResourceStatusValuePending, + } +} diff --git a/service/resourcegroups/resourcegroupsiface/interface.go b/service/resourcegroups/resourcegroupsiface/interface.go index 12e2cfe82d..b568ac2584 100644 --- a/service/resourcegroups/resourcegroupsiface/interface.go +++ b/service/resourcegroups/resourcegroupsiface/interface.go @@ -102,6 +102,10 @@ type ResourceGroupsAPI interface { ListGroupsPages(*resourcegroups.ListGroupsInput, func(*resourcegroups.ListGroupsOutput, bool) bool) error ListGroupsPagesWithContext(aws.Context, *resourcegroups.ListGroupsInput, func(*resourcegroups.ListGroupsOutput, bool) bool, ...request.Option) error + PutGroupConfiguration(*resourcegroups.PutGroupConfigurationInput) (*resourcegroups.PutGroupConfigurationOutput, error) + PutGroupConfigurationWithContext(aws.Context, *resourcegroups.PutGroupConfigurationInput, ...request.Option) (*resourcegroups.PutGroupConfigurationOutput, error) + PutGroupConfigurationRequest(*resourcegroups.PutGroupConfigurationInput) (*request.Request, *resourcegroups.PutGroupConfigurationOutput) + SearchResources(*resourcegroups.SearchResourcesInput) (*resourcegroups.SearchResourcesOutput, error) SearchResourcesWithContext(aws.Context, *resourcegroups.SearchResourcesInput, ...request.Option) (*resourcegroups.SearchResourcesOutput, error) SearchResourcesRequest(*resourcegroups.SearchResourcesInput) (*request.Request, *resourcegroups.SearchResourcesOutput)