@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Well-Architected Tool
@version 2020-03-31
@auth AWS SigV4
@endpoints 72
@hint download_for_search
@toc workloads(28), lenses(9), profiles(7), reviewTemplates(11), templates(3), consolidatedReport(1), global-settings(2), profileTemplate(1), importLens(1), notifications(1), profileNotifications(1), profileSummaries(1), shareInvitations(2), tags(3), workloadsSummaries(1)

@group workloads
@endpoint PATCH /workloads/{WorkloadId}/associateLenses
@desc Associate a lens to a workload. Up to 10 lenses can be associated with a workload in a single API operation. A maximum of 20 lenses can be associated with a workload.   Disclaimer  By accessing and/or applying custom lenses created by another Amazon Web Services user or account, you acknowledge that custom lenses created by other users and shared with you are Third Party Content as defined in the Amazon Web Services Customer Agreement.
@required {WorkloadId: str, LensAliases: [str]}

@endpoint PATCH /workloads/{WorkloadId}/associateProfiles
@desc Associate a profile with a workload.
@required {WorkloadId: str, ProfileArns: [str]}

@endgroup

@group lenses
@endpoint POST /lenses/{LensAlias}/shares
@desc Create a lens share. The owner of a lens can share it with other Amazon Web Services accounts, users, an organization, and organizational units (OUs) in the same Amazon Web Services Region. Lenses provided by Amazon Web Services (Amazon Web Services Official Content) cannot be shared.  Shared access to a lens is not removed until the lens invitation is deleted. If you share a lens with an organization or OU, all accounts in the organization or OU are granted access to the lens. For more information, see Sharing a custom lens in the Well-Architected Tool User Guide.   Disclaimer  By sharing your custom lenses with other Amazon Web Services accounts, you acknowledge that Amazon Web Services will make your custom lenses available to those other accounts. Those other accounts may continue to access and use your shared custom lenses even if you delete the custom lenses from your own Amazon Web Services account or terminate your Amazon Web Services account.
@required {LensAlias: str, SharedWith: str, ClientRequestToken: str}
@returns(200) {ShareId: str?}

@endpoint POST /lenses/{LensAlias}/versions
@desc Create a new lens version. A lens can have up to 100 versions. Use this operation to publish a new lens version after you have imported a lens. The LensAlias is used to identify the lens to be published. The owner of a lens can share the lens with other Amazon Web Services accounts and users in the same Amazon Web Services Region. Only the owner of a lens can delete it.
@required {LensAlias: str, LensVersion: str, ClientRequestToken: str}
@optional {IsMajorVersion: bool}
@returns(200) {LensArn: str?, LensVersion: str?}

@endgroup

@group workloads
@endpoint POST /workloads/{WorkloadId}/milestones
@desc Create a milestone for an existing workload.
@required {WorkloadId: str, MilestoneName: str, ClientRequestToken: str}
@returns(200) {WorkloadId: str?, MilestoneNumber: int?}

@endgroup

@group profiles
@endpoint POST /profiles
@desc Create a profile.
@required {ProfileName: str, ProfileDescription: str, ProfileQuestions: [ProfileQuestionUpdate], ClientRequestToken: str}
@optional {Tags: map<str,str>}
@returns(200) {ProfileArn: str?, ProfileVersion: str?}

@endpoint POST /profiles/{ProfileArn}/shares
@desc Create a profile share.
@required {ProfileArn: str, SharedWith: str, ClientRequestToken: str}
@returns(200) {ShareId: str?, ProfileArn: str?}

@endgroup

@group reviewTemplates
@endpoint POST /reviewTemplates
@desc Create a review template.   Disclaimer  Do not include or gather personal identifiable information (PII) of end users or other identifiable individuals in or via your review templates. If your review template or those shared with you and used in your account do include or collect PII you are responsible for: ensuring that the included PII is processed in accordance with applicable law, providing adequate privacy notices, and obtaining necessary consents for processing such data.
@required {TemplateName: str, Description: str, Lenses: [str], ClientRequestToken: str}
@optional {Notes: str, Tags: map<str,str>}
@returns(200) {TemplateArn: str?}

@endgroup

@group templates
@endpoint POST /templates/shares/{TemplateArn}
@desc Create a review template share. The owner of a review template can share it with other Amazon Web Services accounts, users, an organization, and organizational units (OUs) in the same Amazon Web Services Region.   Shared access to a review template is not removed until the review template share invitation is deleted. If you share a review template with an organization or OU, all accounts in the organization or OU are granted access to the review template.   Disclaimer  By sharing your review template with other Amazon Web Services accounts, you acknowledge that Amazon Web Services will make your review template available to those other accounts.
@required {TemplateArn: str, SharedWith: str, ClientRequestToken: str}
@returns(200) {TemplateArn: str?, ShareId: str?}

@endgroup

@group workloads
@endpoint POST /workloads
@desc Create a new workload. The owner of a workload can share the workload with other Amazon Web Services accounts, users, an organization, and organizational units (OUs) in the same Amazon Web Services Region. Only the owner of a workload can delete it. For more information, see Defining a Workload in the Well-Architected Tool User Guide.  Either AwsRegions, NonAwsRegions, or both must be specified when creating a workload. You also must specify ReviewOwner, even though the parameter is listed as not being required in the following section.   When creating a workload using a review template, you must have the following IAM permissions:    wellarchitected:GetReviewTemplate     wellarchitected:GetReviewTemplateAnswer     wellarchitected:ListReviewTemplateAnswers     wellarchitected:GetReviewTemplateLensReview
@required {WorkloadName: str, Description: str, Environment: str, Lenses: [str], ClientRequestToken: str}
@optional {AccountIds: [str], AwsRegions: [str], NonAwsRegions: [str], PillarPriorities: [str], ArchitecturalDesign: str, ReviewOwner: str, IndustryType: str, Industry: str, Notes: str, Tags: map<str,str>, DiscoveryConfig: WorkloadDiscoveryConfig, Applications: [str], ProfileArns: [str], ReviewTemplateArns: [str], JiraConfiguration: WorkloadJiraConfigurationInput}
@returns(200) {WorkloadId: str?, WorkloadArn: str?}

@endpoint POST /workloads/{WorkloadId}/shares
@desc Create a workload share. The owner of a workload can share it with other Amazon Web Services accounts and users in the same Amazon Web Services Region. Shared access to a workload is not removed until the workload invitation is deleted. If you share a workload with an organization or OU, all accounts in the organization or OU are granted access to the workload. For more information, see Sharing a workload in the Well-Architected Tool User Guide.
@required {WorkloadId: str, SharedWith: str, PermissionType: str, ClientRequestToken: str}
@returns(200) {WorkloadId: str?, ShareId: str?}

@endgroup

@group lenses
@endpoint DELETE /lenses/{LensAlias}
@desc Delete an existing lens. Only the owner of a lens can delete it. After the lens is deleted, Amazon Web Services accounts and users that you shared the lens with can continue to use it, but they will no longer be able to apply it to new workloads.    Disclaimer  By sharing your custom lenses with other Amazon Web Services accounts, you acknowledge that Amazon Web Services will make your custom lenses available to those other accounts. Those other accounts may continue to access and use your shared custom lenses even if you delete the custom lenses from your own Amazon Web Services account or terminate your Amazon Web Services account.
@required {LensAlias: str, ClientRequestToken: str, LensStatus: str}

@endpoint DELETE /lenses/{LensAlias}/shares/{ShareId}
@desc Delete a lens share. After the lens share is deleted, Amazon Web Services accounts, users, organizations, and organizational units (OUs) that you shared the lens with can continue to use it, but they will no longer be able to apply it to new workloads.   Disclaimer  By sharing your custom lenses with other Amazon Web Services accounts, you acknowledge that Amazon Web Services will make your custom lenses available to those other accounts. Those other accounts may continue to access and use your shared custom lenses even if you delete the custom lenses from your own Amazon Web Services account or terminate your Amazon Web Services account.
@required {ShareId: str, LensAlias: str, ClientRequestToken: str}

@endgroup

@group profiles
@endpoint DELETE /profiles/{ProfileArn}
@desc Delete a profile.   Disclaimer  By sharing your profile with other Amazon Web Services accounts, you acknowledge that Amazon Web Services will make your profile available to those other accounts. Those other accounts may continue to access and use your shared profile even if you delete the profile from your own Amazon Web Services account or terminate your Amazon Web Services account.
@required {ProfileArn: str, ClientRequestToken: str}

@endpoint DELETE /profiles/{ProfileArn}/shares/{ShareId}
@desc Delete a profile share.
@required {ShareId: str, ProfileArn: str, ClientRequestToken: str}

@endgroup

@group reviewTemplates
@endpoint DELETE /reviewTemplates/{TemplateArn}
@desc Delete a review template. Only the owner of a review template can delete it. After the review template is deleted, Amazon Web Services accounts, users, organizations, and organizational units (OUs) that you shared the review template with will no longer be able to apply it to new workloads.
@required {TemplateArn: str, ClientRequestToken: str}

@endgroup

@group templates
@endpoint DELETE /templates/shares/{TemplateArn}/{ShareId}
@desc Delete a review template share. After the review template share is deleted, Amazon Web Services accounts, users, organizations, and organizational units (OUs) that you shared the review template with will no longer be able to apply it to new workloads.
@required {ShareId: str, TemplateArn: str, ClientRequestToken: str}

@endgroup

@group workloads
@endpoint DELETE /workloads/{WorkloadId}
@desc Delete an existing workload.
@required {WorkloadId: str, ClientRequestToken: str}

@endpoint DELETE /workloads/{WorkloadId}/shares/{ShareId}
@desc Delete a workload share.
@required {ShareId: str, WorkloadId: str, ClientRequestToken: str}

@endpoint PATCH /workloads/{WorkloadId}/disassociateLenses
@desc Disassociate a lens from a workload. Up to 10 lenses can be disassociated from a workload in a single API operation.  The Amazon Web Services Well-Architected Framework lens (wellarchitected) cannot be removed from a workload.
@required {WorkloadId: str, LensAliases: [str]}

@endpoint PATCH /workloads/{WorkloadId}/disassociateProfiles
@desc Disassociate a profile from a workload.
@required {WorkloadId: str, ProfileArns: [str]}

@endgroup

@group lenses
@endpoint GET /lenses/{LensAlias}/export
@desc Export an existing lens. Only the owner of a lens can export it. Lenses provided by Amazon Web Services (Amazon Web Services Official Content) cannot be exported. Lenses are defined in JSON. For more information, see JSON format specification in the Well-Architected Tool User Guide.   Disclaimer  Do not include or gather personal identifiable information (PII) of end users or other identifiable individuals in or via your custom lenses. If your custom lens or those shared with you and used in your account do include or collect PII you are responsible for: ensuring that the included PII is processed in accordance with applicable law, providing adequate privacy notices, and obtaining necessary consents for processing such data.
@required {LensAlias: str}
@optional {LensVersion: str}
@returns(200) {LensJSON: str?}

@endgroup

@group workloads
@endpoint GET /workloads/{WorkloadId}/lensReviews/{LensAlias}/answers/{QuestionId}
@desc Get the answer to a specific question in a workload review.
@required {WorkloadId: str, LensAlias: str, QuestionId: str}
@optional {MilestoneNumber: int}
@returns(200) {WorkloadId: str?, MilestoneNumber: int?, LensAlias: str?, LensArn: str?, Answer: Answer?{QuestionId: str?, PillarId: str?, QuestionTitle: str?, QuestionDescription: str?, ImprovementPlanUrl: str?, HelpfulResourceUrl: str?, HelpfulResourceDisplayText: str?, Choices: [Choice]?, SelectedChoices: [str]?, ChoiceAnswers: [ChoiceAnswer]?, IsApplicable: bool?, Risk: str?, Notes: str?, Reason: str?, JiraConfiguration: JiraConfiguration?{JiraIssueUrl: str?, LastSyncedTime: str(timestamp)?}}}

@endgroup

@group consolidatedReport
@endpoint GET /consolidatedReport
@desc Get a consolidated report of your workloads. You can optionally choose to include workloads that have been shared with you.
@required {Format: str}
@optional {IncludeSharedResources: bool, NextToken: str, MaxResults: int}
@returns(200) {Metrics: [ConsolidatedReportMetric]?, NextToken: str?, Base64String: str?}

@endgroup

@group global-settings
@endpoint GET /global-settings
@desc Global settings for all workloads.
@returns(200) {OrganizationSharingStatus: str?, DiscoveryIntegrationStatus: str?, JiraConfiguration: AccountJiraConfigurationOutput?{IntegrationStatus: str?, IssueManagementStatus: str?, IssueManagementType: str?, Subdomain: str?, JiraProjectKey: str?, StatusMessage: str?}}

@endgroup

@group lenses
@endpoint GET /lenses/{LensAlias}
@desc Get an existing lens.
@required {LensAlias: str}
@optional {LensVersion: str}
@returns(200) {Lens: Lens?{LensArn: str?, LensVersion: str?, Name: str?, Description: str?, Owner: str?, ShareInvitationId: str?, Tags: map<str,str>?}}

@endgroup

@group workloads
@endpoint GET /workloads/{WorkloadId}/lensReviews/{LensAlias}
@desc Get lens review.
@required {WorkloadId: str, LensAlias: str}
@optional {MilestoneNumber: int}
@returns(200) {WorkloadId: str?, MilestoneNumber: int?, LensReview: LensReview?{LensAlias: str?, LensArn: str?, LensVersion: str?, LensName: str?, LensStatus: str?, PillarReviewSummaries: [PillarReviewSummary]?, JiraConfiguration: JiraSelectedQuestionConfiguration?{SelectedPillars: [SelectedPillar]?}, UpdatedAt: str(timestamp)?, Notes: str?, RiskCounts: map<str,int>?, NextToken: str?, Profiles: [WorkloadProfile]?, PrioritizedRiskCounts: map<str,int>?}}

@endpoint GET /workloads/{WorkloadId}/lensReviews/{LensAlias}/report
@desc Get lens review report.
@required {WorkloadId: str, LensAlias: str}
@optional {MilestoneNumber: int}
@returns(200) {WorkloadId: str?, MilestoneNumber: int?, LensReviewReport: LensReviewReport?{LensAlias: str?, LensArn: str?, Base64String: str?}}

@endgroup

@group lenses
@endpoint GET /lenses/{LensAlias}/versionDifference
@desc Get lens version differences.
@required {LensAlias: str}
@optional {BaseLensVersion: str, TargetLensVersion: str}
@returns(200) {LensAlias: str?, LensArn: str?, BaseLensVersion: str?, TargetLensVersion: str?, LatestLensVersion: str?, VersionDifferences: VersionDifferences?{PillarDifferences: [PillarDifference]?}}

@endgroup

@group workloads
@endpoint GET /workloads/{WorkloadId}/milestones/{MilestoneNumber}
@desc Get a milestone for an existing workload.
@required {WorkloadId: str, MilestoneNumber: int}
@returns(200) {WorkloadId: str?, Milestone: Milestone?{MilestoneNumber: int?, MilestoneName: str?, RecordedAt: str(timestamp)?, Workload: Workload?{WorkloadId: str?, WorkloadArn: str?, WorkloadName: str?, Description: str?, Environment: str?, UpdatedAt: str(timestamp)?, AccountIds: [str]?, AwsRegions: [str]?, NonAwsRegions: [str]?, ArchitecturalDesign: str?, ReviewOwner: str?, ReviewRestrictionDate: str(timestamp)?, IsReviewOwnerUpdateAcknowledged: bool?, IndustryType: str?, Industry: str?, Notes: str?, ImprovementStatus: str?, RiskCounts: map<str,int>?, PillarPriorities: [str]?, Lenses: [str]?, Owner: str?, ShareInvitationId: str?, Tags: map<str,str>?, DiscoveryConfig: WorkloadDiscoveryConfig?{TrustedAdvisorIntegrationStatus: str?, WorkloadResourceDefinition: [str]?}, Applications: [str]?, Profiles: [WorkloadProfile]?, PrioritizedRiskCounts: map<str,int>?, JiraConfiguration: WorkloadJiraConfigurationOutput?{IssueManagementStatus: str?, IssueManagementType: str?, JiraProjectKey: str?, StatusMessage: str?}}}}

@endgroup

@group profiles
@endpoint GET /profiles/{ProfileArn}
@desc Get profile information.
@required {ProfileArn: str}
@optional {ProfileVersion: str}
@returns(200) {Profile: Profile?{ProfileArn: str?, ProfileVersion: str?, ProfileName: str?, ProfileDescription: str?, ProfileQuestions: [ProfileQuestion]?, Owner: str?, CreatedAt: str(timestamp)?, UpdatedAt: str(timestamp)?, ShareInvitationId: str?, Tags: map<str,str>?}}

@endgroup

@group profileTemplate
@endpoint GET /profileTemplate
@desc Get profile template.
@returns(200) {ProfileTemplate: ProfileTemplate?{TemplateName: str?, TemplateQuestions: [ProfileTemplateQuestion]?, CreatedAt: str(timestamp)?, UpdatedAt: str(timestamp)?}}

@endgroup

@group reviewTemplates
@endpoint GET /reviewTemplates/{TemplateArn}
@desc Get review template.
@required {TemplateArn: str}
@returns(200) {ReviewTemplate: ReviewTemplate?{Description: str?, Lenses: [str]?, Notes: str?, QuestionCounts: map<str,int>?, Owner: str?, UpdatedAt: str(timestamp)?, TemplateArn: str?, TemplateName: str?, Tags: map<str,str>?, UpdateStatus: str?, ShareInvitationId: str?}}

@endpoint GET /reviewTemplates/{TemplateArn}/lensReviews/{LensAlias}/answers/{QuestionId}
@desc Get review template answer.
@required {TemplateArn: str, LensAlias: str, QuestionId: str}
@returns(200) {TemplateArn: str?, LensAlias: str?, Answer: ReviewTemplateAnswer?{QuestionId: str?, PillarId: str?, QuestionTitle: str?, QuestionDescription: str?, ImprovementPlanUrl: str?, HelpfulResourceUrl: str?, HelpfulResourceDisplayText: str?, Choices: [Choice]?, SelectedChoices: [str]?, ChoiceAnswers: [ChoiceAnswer]?, IsApplicable: bool?, AnswerStatus: str?, Notes: str?, Reason: str?}}

@endpoint GET /reviewTemplates/{TemplateArn}/lensReviews/{LensAlias}
@desc Get a lens review associated with a review template.
@required {TemplateArn: str, LensAlias: str}
@returns(200) {TemplateArn: str?, LensReview: ReviewTemplateLensReview?{LensAlias: str?, LensArn: str?, LensVersion: str?, LensName: str?, LensStatus: str?, PillarReviewSummaries: [ReviewTemplatePillarReviewSummary]?, UpdatedAt: str(timestamp)?, Notes: str?, QuestionCounts: map<str,int>?, NextToken: str?}}

@endgroup

@group workloads
@endpoint GET /workloads/{WorkloadId}
@desc Get an existing workload.
@required {WorkloadId: str}
@returns(200) {Workload: Workload?{WorkloadId: str?, WorkloadArn: str?, WorkloadName: str?, Description: str?, Environment: str?, UpdatedAt: str(timestamp)?, AccountIds: [str]?, AwsRegions: [str]?, NonAwsRegions: [str]?, ArchitecturalDesign: str?, ReviewOwner: str?, ReviewRestrictionDate: str(timestamp)?, IsReviewOwnerUpdateAcknowledged: bool?, IndustryType: str?, Industry: str?, Notes: str?, ImprovementStatus: str?, RiskCounts: map<str,int>?, PillarPriorities: [str]?, Lenses: [str]?, Owner: str?, ShareInvitationId: str?, Tags: map<str,str>?, DiscoveryConfig: WorkloadDiscoveryConfig?{TrustedAdvisorIntegrationStatus: str?, WorkloadResourceDefinition: [str]?}, Applications: [str]?, Profiles: [WorkloadProfile]?, PrioritizedRiskCounts: map<str,int>?, JiraConfiguration: WorkloadJiraConfigurationOutput?{IssueManagementStatus: str?, IssueManagementType: str?, JiraProjectKey: str?, StatusMessage: str?}}}

@endgroup

@group importLens
@endpoint PUT /importLens
@desc Import a new custom lens or update an existing custom lens. To update an existing custom lens, specify its ARN as the LensAlias. If no ARN is specified, a new custom lens is created. The new or updated lens will have a status of DRAFT. The lens cannot be applied to workloads or shared with other Amazon Web Services accounts until it's published with CreateLensVersion. Lenses are defined in JSON. For more information, see JSON format specification in the Well-Architected Tool User Guide. A custom lens cannot exceed 500 KB in size.   Disclaimer  Do not include or gather personal identifiable information (PII) of end users or other identifiable individuals in or via your custom lenses. If your custom lens or those shared with you and used in your account do include or collect PII you are responsible for: ensuring that the included PII is processed in accordance with applicable law, providing adequate privacy notices, and obtaining necessary consents for processing such data.
@required {JSONString: str, ClientRequestToken: str}
@optional {LensAlias: str, Tags: map<str,str>}
@returns(200) {LensArn: str?, Status: str?}

@endgroup

@group workloads
@endpoint GET /workloads/{WorkloadId}/lensReviews/{LensAlias}/answers
@desc List of answers for a particular workload and lens.
@required {WorkloadId: str, LensAlias: str}
@optional {PillarId: str, MilestoneNumber: int, NextToken: str, MaxResults: int, QuestionPriority: str}
@returns(200) {WorkloadId: str?, MilestoneNumber: int?, LensAlias: str?, LensArn: str?, AnswerSummaries: [AnswerSummary]?, NextToken: str?}

@endpoint POST /workloads/{WorkloadId}/checks
@desc List of Trusted Advisor check details by account related to the workload.
@required {WorkloadId: str, LensArn: str, PillarId: str, QuestionId: str, ChoiceId: str}
@optional {NextToken: str, MaxResults: int}
@returns(200) {CheckDetails: [CheckDetail]?, NextToken: str?}

@endpoint POST /workloads/{WorkloadId}/checkSummaries
@desc List of Trusted Advisor checks summarized for all accounts related to the workload.
@required {WorkloadId: str, LensArn: str, PillarId: str, QuestionId: str, ChoiceId: str}
@optional {NextToken: str, MaxResults: int}
@returns(200) {CheckSummaries: [CheckSummary]?, NextToken: str?}

@endpoint GET /workloads/{WorkloadId}/lensReviews/{LensAlias}/improvements
@desc List the improvements of a particular lens review.
@required {WorkloadId: str, LensAlias: str}
@optional {PillarId: str, MilestoneNumber: int, NextToken: str, MaxResults: int, QuestionPriority: str}
@returns(200) {WorkloadId: str?, MilestoneNumber: int?, LensAlias: str?, LensArn: str?, ImprovementSummaries: [ImprovementSummary]?, NextToken: str?}

@endpoint GET /workloads/{WorkloadId}/lensReviews
@desc List lens reviews for a particular workload.
@required {WorkloadId: str}
@optional {MilestoneNumber: int, NextToken: str, MaxResults: int}
@returns(200) {WorkloadId: str?, MilestoneNumber: int?, LensReviewSummaries: [LensReviewSummary]?, NextToken: str?}

@endgroup

@group lenses
@endpoint GET /lenses/{LensAlias}/shares
@desc List the lens shares associated with the lens.
@required {LensAlias: str}
@optional {SharedWithPrefix: str, NextToken: str, MaxResults: int, Status: str}
@returns(200) {LensShareSummaries: [LensShareSummary]?, NextToken: str?}

@endpoint GET /lenses
@desc List the available lenses.
@optional {NextToken: str, MaxResults: int, LensType: str, LensStatus: str, LensName: str}
@returns(200) {LensSummaries: [LensSummary]?, NextToken: str?}

@endgroup

@group workloads
@endpoint POST /workloads/{WorkloadId}/milestonesSummaries
@desc List all milestones for an existing workload.
@required {WorkloadId: str}
@optional {NextToken: str, MaxResults: int}
@returns(200) {WorkloadId: str?, MilestoneSummaries: [MilestoneSummary]?, NextToken: str?}

@endgroup

@group notifications
@endpoint POST /notifications
@desc List lens notifications.
@optional {WorkloadId: str, NextToken: str, MaxResults: int, ResourceArn: str}
@returns(200) {NotificationSummaries: [NotificationSummary]?, NextToken: str?}

@endgroup

@group profileNotifications
@endpoint GET /profileNotifications/
@desc List profile notifications.
@optional {WorkloadId: str, NextToken: str, MaxResults: int}
@returns(200) {NotificationSummaries: [ProfileNotificationSummary]?, NextToken: str?}

@endgroup

@group profiles
@endpoint GET /profiles/{ProfileArn}/shares
@desc List profile shares.
@required {ProfileArn: str}
@optional {SharedWithPrefix: str, NextToken: str, MaxResults: int, Status: str}
@returns(200) {ProfileShareSummaries: [ProfileShareSummary]?, NextToken: str?}

@endgroup

@group profileSummaries
@endpoint GET /profileSummaries
@desc List profiles.
@optional {ProfileNamePrefix: str, ProfileOwnerType: str, NextToken: str, MaxResults: int}
@returns(200) {ProfileSummaries: [ProfileSummary]?, NextToken: str?}

@endgroup

@group reviewTemplates
@endpoint GET /reviewTemplates/{TemplateArn}/lensReviews/{LensAlias}/answers
@desc List the answers of a review template.
@required {TemplateArn: str, LensAlias: str}
@optional {PillarId: str, NextToken: str, MaxResults: int}
@returns(200) {TemplateArn: str?, LensAlias: str?, AnswerSummaries: [ReviewTemplateAnswerSummary]?, NextToken: str?}

@endpoint GET /reviewTemplates
@desc List review templates.
@optional {NextToken: str, MaxResults: int}
@returns(200) {ReviewTemplates: [ReviewTemplateSummary]?, NextToken: str?}

@endgroup

@group shareInvitations
@endpoint GET /shareInvitations
@desc List the share invitations.  WorkloadNamePrefix, LensNamePrefix, ProfileNamePrefix, and TemplateNamePrefix are mutually exclusive. Use the parameter that matches your ShareResourceType.
@optional {WorkloadNamePrefix: str, LensNamePrefix: str, ShareResourceType: str, NextToken: str, MaxResults: int, ProfileNamePrefix: str, TemplateNamePrefix: str}
@returns(200) {ShareInvitationSummaries: [ShareInvitationSummary]?, NextToken: str?}

@endgroup

@group tags
@endpoint GET /tags/{WorkloadArn}
@desc List the tags for a resource.  The WorkloadArn parameter can be a workload ARN, a custom lens ARN, a profile ARN, or review template ARN.
@required {WorkloadArn: str}
@returns(200) {Tags: map<str,str>?}

@endgroup

@group templates
@endpoint GET /templates/shares/{TemplateArn}
@desc List review template shares.
@required {TemplateArn: str}
@optional {SharedWithPrefix: str, NextToken: str, MaxResults: int, Status: str}
@returns(200) {TemplateArn: str?, TemplateShareSummaries: [TemplateShareSummary]?, NextToken: str?}

@endgroup

@group workloads
@endpoint GET /workloads/{WorkloadId}/shares
@desc List the workload shares associated with the workload.
@required {WorkloadId: str}
@optional {SharedWithPrefix: str, NextToken: str, MaxResults: int, Status: str}
@returns(200) {WorkloadId: str?, WorkloadShareSummaries: [WorkloadShareSummary]?, NextToken: str?}

@endgroup

@group workloadsSummaries
@endpoint POST /workloadsSummaries
@desc Paginated list of workloads.
@optional {WorkloadNamePrefix: str, NextToken: str, MaxResults: int}
@returns(200) {WorkloadSummaries: [WorkloadSummary]?, NextToken: str?}

@endgroup

@group tags
@endpoint POST /tags/{WorkloadArn}
@desc Adds one or more tags to the specified resource.  The WorkloadArn parameter can be a workload ARN, a custom lens ARN, a profile ARN, or review template ARN.
@required {WorkloadArn: str, Tags: map<str,str>}

@endpoint DELETE /tags/{WorkloadArn}
@desc Deletes specified tags from a resource.  The WorkloadArn parameter can be a workload ARN, a custom lens ARN, a profile ARN, or review template ARN.  To specify multiple tags, use separate tagKeys parameters, for example:  DELETE /tags/WorkloadArn?tagKeys=key1&tagKeys=key2
@required {WorkloadArn: str, tagKeys: [str]}

@endgroup

@group workloads
@endpoint PATCH /workloads/{WorkloadId}/lensReviews/{LensAlias}/answers/{QuestionId}
@desc Update the answer to a specific question in a workload review.
@required {WorkloadId: str, LensAlias: str, QuestionId: str}
@optional {SelectedChoices: [str], ChoiceUpdates: map<str,ChoiceUpdate>, Notes: str, IsApplicable: bool, Reason: str}
@returns(200) {WorkloadId: str?, LensAlias: str?, LensArn: str?, Answer: Answer?{QuestionId: str?, PillarId: str?, QuestionTitle: str?, QuestionDescription: str?, ImprovementPlanUrl: str?, HelpfulResourceUrl: str?, HelpfulResourceDisplayText: str?, Choices: [Choice]?, SelectedChoices: [str]?, ChoiceAnswers: [ChoiceAnswer]?, IsApplicable: bool?, Risk: str?, Notes: str?, Reason: str?, JiraConfiguration: JiraConfiguration?{JiraIssueUrl: str?, LastSyncedTime: str(timestamp)?}}}

@endgroup

@group global-settings
@endpoint PATCH /global-settings
@desc Update whether the Amazon Web Services account is opted into organization sharing and discovery integration features.
@optional {OrganizationSharingStatus: str, DiscoveryIntegrationStatus: str, JiraConfiguration: AccountJiraConfigurationInput}

@endgroup

@group workloads
@endpoint POST /workloads/{WorkloadId}/updateIntegration
@desc Update integration features.
@required {WorkloadId: str, ClientRequestToken: str, IntegratingService: str}

@endpoint PATCH /workloads/{WorkloadId}/lensReviews/{LensAlias}
@desc Update lens review for a particular workload.
@required {WorkloadId: str, LensAlias: str}
@optional {LensNotes: str, PillarNotes: map<str,str>, JiraConfiguration: JiraSelectedQuestionConfiguration}
@returns(200) {WorkloadId: str?, LensReview: LensReview?{LensAlias: str?, LensArn: str?, LensVersion: str?, LensName: str?, LensStatus: str?, PillarReviewSummaries: [PillarReviewSummary]?, JiraConfiguration: JiraSelectedQuestionConfiguration?{SelectedPillars: [SelectedPillar]?}, UpdatedAt: str(timestamp)?, Notes: str?, RiskCounts: map<str,int>?, NextToken: str?, Profiles: [WorkloadProfile]?, PrioritizedRiskCounts: map<str,int>?}}

@endgroup

@group profiles
@endpoint PATCH /profiles/{ProfileArn}
@desc Update a profile.
@required {ProfileArn: str}
@optional {ProfileDescription: str, ProfileQuestions: [ProfileQuestionUpdate]}
@returns(200) {Profile: Profile?{ProfileArn: str?, ProfileVersion: str?, ProfileName: str?, ProfileDescription: str?, ProfileQuestions: [ProfileQuestion]?, Owner: str?, CreatedAt: str(timestamp)?, UpdatedAt: str(timestamp)?, ShareInvitationId: str?, Tags: map<str,str>?}}

@endgroup

@group reviewTemplates
@endpoint PATCH /reviewTemplates/{TemplateArn}
@desc Update a review template.
@required {TemplateArn: str}
@optional {TemplateName: str, Description: str, Notes: str, LensesToAssociate: [str], LensesToDisassociate: [str]}
@returns(200) {ReviewTemplate: ReviewTemplate?{Description: str?, Lenses: [str]?, Notes: str?, QuestionCounts: map<str,int>?, Owner: str?, UpdatedAt: str(timestamp)?, TemplateArn: str?, TemplateName: str?, Tags: map<str,str>?, UpdateStatus: str?, ShareInvitationId: str?}}

@endpoint PATCH /reviewTemplates/{TemplateArn}/lensReviews/{LensAlias}/answers/{QuestionId}
@desc Update a review template answer.
@required {TemplateArn: str, LensAlias: str, QuestionId: str}
@optional {SelectedChoices: [str], ChoiceUpdates: map<str,ChoiceUpdate>, Notes: str, IsApplicable: bool, Reason: str}
@returns(200) {TemplateArn: str?, LensAlias: str?, Answer: ReviewTemplateAnswer?{QuestionId: str?, PillarId: str?, QuestionTitle: str?, QuestionDescription: str?, ImprovementPlanUrl: str?, HelpfulResourceUrl: str?, HelpfulResourceDisplayText: str?, Choices: [Choice]?, SelectedChoices: [str]?, ChoiceAnswers: [ChoiceAnswer]?, IsApplicable: bool?, AnswerStatus: str?, Notes: str?, Reason: str?}}

@endpoint PATCH /reviewTemplates/{TemplateArn}/lensReviews/{LensAlias}
@desc Update a lens review associated with a review template.
@required {TemplateArn: str, LensAlias: str}
@optional {LensNotes: str, PillarNotes: map<str,str>}
@returns(200) {TemplateArn: str?, LensReview: ReviewTemplateLensReview?{LensAlias: str?, LensArn: str?, LensVersion: str?, LensName: str?, LensStatus: str?, PillarReviewSummaries: [ReviewTemplatePillarReviewSummary]?, UpdatedAt: str(timestamp)?, Notes: str?, QuestionCounts: map<str,int>?, NextToken: str?}}

@endgroup

@group shareInvitations
@endpoint PATCH /shareInvitations/{ShareInvitationId}
@desc Update a workload or custom lens share invitation.  This API operation can be called independently of any resource. Previous documentation implied that a workload ARN must be specified.
@required {ShareInvitationId: str, ShareInvitationAction: str}
@returns(200) {ShareInvitation: ShareInvitation?{ShareInvitationId: str?, ShareResourceType: str?, WorkloadId: str?, LensAlias: str?, LensArn: str?, ProfileArn: str?, TemplateArn: str?}}

@endgroup

@group workloads
@endpoint PATCH /workloads/{WorkloadId}
@desc Update an existing workload.
@required {WorkloadId: str}
@optional {WorkloadName: str, Description: str, Environment: str, AccountIds: [str], AwsRegions: [str], NonAwsRegions: [str], PillarPriorities: [str], ArchitecturalDesign: str, ReviewOwner: str, IsReviewOwnerUpdateAcknowledged: bool, IndustryType: str, Industry: str, Notes: str, ImprovementStatus: str, DiscoveryConfig: WorkloadDiscoveryConfig, Applications: [str], JiraConfiguration: WorkloadJiraConfigurationInput}
@returns(200) {Workload: Workload?{WorkloadId: str?, WorkloadArn: str?, WorkloadName: str?, Description: str?, Environment: str?, UpdatedAt: str(timestamp)?, AccountIds: [str]?, AwsRegions: [str]?, NonAwsRegions: [str]?, ArchitecturalDesign: str?, ReviewOwner: str?, ReviewRestrictionDate: str(timestamp)?, IsReviewOwnerUpdateAcknowledged: bool?, IndustryType: str?, Industry: str?, Notes: str?, ImprovementStatus: str?, RiskCounts: map<str,int>?, PillarPriorities: [str]?, Lenses: [str]?, Owner: str?, ShareInvitationId: str?, Tags: map<str,str>?, DiscoveryConfig: WorkloadDiscoveryConfig?{TrustedAdvisorIntegrationStatus: str?, WorkloadResourceDefinition: [str]?}, Applications: [str]?, Profiles: [WorkloadProfile]?, PrioritizedRiskCounts: map<str,int>?, JiraConfiguration: WorkloadJiraConfigurationOutput?{IssueManagementStatus: str?, IssueManagementType: str?, JiraProjectKey: str?, StatusMessage: str?}}}

@endpoint PATCH /workloads/{WorkloadId}/shares/{ShareId}
@desc Update a workload share.
@required {ShareId: str, WorkloadId: str, PermissionType: str}
@returns(200) {WorkloadId: str?, WorkloadShare: WorkloadShare?{ShareId: str?, SharedBy: str?, SharedWith: str?, PermissionType: str?, Status: str?, WorkloadName: str?, WorkloadId: str?}}

@endpoint PUT /workloads/{WorkloadId}/lensReviews/{LensAlias}/upgrade
@desc Upgrade lens review for a particular workload.
@required {WorkloadId: str, LensAlias: str, MilestoneName: str}
@optional {ClientRequestToken: str}

@endpoint PUT /workloads/{WorkloadId}/profiles/{ProfileArn}/upgrade
@desc Upgrade a profile.
@required {WorkloadId: str, ProfileArn: str}
@optional {MilestoneName: str, ClientRequestToken: str}

@endgroup

@group reviewTemplates
@endpoint PUT /reviewTemplates/{TemplateArn}/lensReviews/{LensAlias}/upgrade
@desc Upgrade the lens review of a review template.
@required {TemplateArn: str, LensAlias: str}
@optional {ClientRequestToken: str}

@endgroup

@end
