View a markdown version of this page

StartAgentRecommendationGeneration - AWS Well-Architected

StartAgentRecommendationGeneration

Note

AWS Well-Architected Agent is in preview release and is subject to change.

Starts a recommendation generation process for the specified agent profile. This asynchronous operation returns immediately. Use GetAgentRecommendationGeneration to check the status of the generation.

Currently, only the ARCHITECTURE recommendation type is supported. RESOURCE and APPLICATION recommendations are generated only by the scheduled generation cycle and cannot be started with this operation.

For the ARCHITECTURE type, the generation analyzes the infrastructure as code (IaC) template that you specify in additionalContext, and returns updated templates with best practice fixes applied. You must specify scope and additionalContext. You can optionally specify name.

Architecture review generations are subject to a daily quota for each profile. For more information, see Quotas and limits in the AWS Well-Architected User Guide.

Request Syntax

POST /api/v1/agent-profiles/profileArn/generations HTTP/1.1 Content-type: application/json { "additionalContext": JSON value, "name": "string", "scope": { "goalIds": [ "string" ], "items": [ { "ids": [ "string" ], "pillar": "string" } ], "pillars": [ "string" ] }, "types": [ "string" ] }

URI Request Parameters

The request uses the following URI parameters.

profileArn

The Amazon Resource Name (ARN) of the optimization profile to use for generating recommendations.

Length Constraints: Minimum length of 0. Maximum length of 2048.

Pattern: arn:aws([a-z0-9-]+)?:wellarchitected:[a-z0-9-]{6,64}:\d{12}:agent-profile/([a-zA-Z0-9_-]+)

Required: Yes

Request Body

The request accepts the following data in JSON format.

additionalContext

The location of the infrastructure as code (IaC) template to review, and the lenses to review it against. Required for the ARCHITECTURE type. Must be absent for other types. Specify a JSON object with the following members:

  • s3Uri: The Amazon S3 URI of the IaC template, .zip archive, or folder to review.

  • s3VersionId: The version ID of the Amazon S3 object. If you omit this member, the current version is used.

  • lensArns: The ARNs of the lenses to review against. Only arn:aws:wellarchitected::aws:lens/wellarchitected is supported.

Type: JSON value

Required: No

name

An optional name for this generation that identifies the architecture review in the console and in ListAgentRecommendationGenerations results. Applies to ARCHITECTURE type only. Must be absent for other types.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 128.

Pattern: [A-Za-z0-9_-]+

Required: No

scope

Defines which pillars, goals, and items the review covers. Required for the ARCHITECTURE type. Must be absent for other types.

Type: Scope object

Required: No

types

The types of recommendations to generate. You can specify up to two types in a single request. Currently, only ARCHITECTURE is supported for this operation.

Type: Array of strings

Array Members: Minimum number of 1 item. Maximum number of 2 items.

Valid Values: RESOURCE | ARCHITECTURE | APPLICATION

Required: Yes

Response Syntax

HTTP/1.1 200 Content-type: application/json { "createdAt": "string", "createdBy": "string", "estimatedCompletionTime": "string", "id": "string", "lastModifiedAt": "string", "lastModifiedBy": "string", "name": "string", "profileArn": "string", "status": "string" }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

createdAt

The timestamp when the generation was started.

Type: Timestamp

createdBy

The identifier of the user or system that started this generation.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 128.

estimatedCompletionTime

The estimated time for the generation to complete.

Type: Timestamp

id

The unique identifier of the recommendation generation.

Type: String

Pattern: [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}

lastModifiedAt

The timestamp when the generation was last modified.

Type: Timestamp

lastModifiedBy

The identifier of the user or system that last modified this generation.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 128.

name

The name of the recommendation generation.

Type: String

profileArn

The Amazon Resource Name (ARN) of the profile used for this generation.

Type: String

Length Constraints: Minimum length of 0. Maximum length of 2048.

Pattern: arn:aws([a-z0-9-]+)?:wellarchitected:[a-z0-9-]{6,64}:\d{12}:agent-profile/([a-zA-Z0-9_-]+)

status

The current status of the recommendation generation.

Type: String

Valid Values: QUEUED | IN_PROGRESS | COMPLETED | ERROR

Errors

For information about the errors that are common to all actions, see Common Error Types.

AccessDeniedException

User does not have sufficient access to perform this action.

Message

Description of the error.

HTTP Status Code: 403

ConflictException

The resource has already been processed, was deleted, or is too large.

Message

Description of the error.

ResourceId

Identifier of the resource affected.

ResourceType

Type of the resource affected.

HTTP Status Code: 409

InternalServerException

There is a problem with the AWS Well-Architected Tool API service.

Message

Description of the error.

HTTP Status Code: 500

ServiceQuotaExceededException

The user has reached their resource quota.

Message

Description of the error.

QuotaCode

Service Quotas requirement to identify originating quota.

ResourceId

Identifier of the resource affected.

ResourceType

Type of the resource affected.

ServiceCode

Service Quotas requirement to identify originating service.

HTTP Status Code: 402

ThrottlingException

Request was denied due to request throttling.

Message

Description of the error.

QuotaCode

Service Quotas requirement to identify originating quota.

ServiceCode

Service Quotas requirement to identify originating service.

HTTP Status Code: 429

ValidationException

The user input is not valid.

Fields

The fields that caused the error, if applicable.

Message

Description of the error.

Reason

The reason why the request failed validation.

HTTP Status Code: 400

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: