WELLARCHITECTED

AssociateLenses

valid {
    input.Body.LensAliases[_] == STRING
    input.ReqMap.WorkloadId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateProfiles

valid {
    input.Body.ProfileArns[_] == STRING
    input.ReqMap.WorkloadId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLensShare

valid {
    input.Body.SharedWith == STRING
    input.Body.ClientRequestToken == STRING
    input.ReqMap.LensAlias == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLensVersion

valid {
    input.Body.LensVersion == STRING
    input.Body.IsMajorVersion == BOOLEAN
    input.Body.ClientRequestToken == STRING
    input.ReqMap.LensAlias == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateMilestone

valid {
    input.Body.MilestoneName == STRING
    input.Body.ClientRequestToken == STRING
    input.ReqMap.WorkloadId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateProfile

valid {
    input.Body.ProfileName == STRING
    input.Body.ProfileDescription == STRING
    input.Body.ProfileQuestions[_].QuestionId == STRING
    input.Body.ProfileQuestions[_].SelectedChoiceIds[_] == STRING
    input.Body.ClientRequestToken == STRING
    input.Body.Tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateProfileShare

valid {
    input.Body.SharedWith == STRING
    input.Body.ClientRequestToken == STRING
    input.ReqMap.ProfileArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateReviewTemplate

valid {
    input.Body.TemplateName == STRING
    input.Body.Description == STRING
    input.Body.Lenses[_] == STRING
    input.Body.Notes == STRING
    input.Body.Tags.STRING == STRING
    input.Body.ClientRequestToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTemplateShare

valid {
    input.Body.SharedWith == STRING
    input.Body.ClientRequestToken == STRING
    input.ReqMap.TemplateArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateWorkload

enum_DefinitionType := [ "WORKLOAD_METADATA", "APP_REGISTRY" ]
enum_TrustedAdvisorIntegrationStatus := [ "ENABLED", "DISABLED" ]
enum_WorkloadEnvironment := [ "PRODUCTION", "PREPRODUCTION" ]

valid {
    input.Body.WorkloadName == STRING
    input.Body.Description == STRING
    input.Body.Environment == enum_WorkloadEnvironment[_]
    input.Body.AccountIds[_] == STRING
    input.Body.AwsRegions[_] == STRING
    input.Body.NonAwsRegions[_] == STRING
    input.Body.PillarPriorities[_] == STRING
    input.Body.ArchitecturalDesign == STRING
    input.Body.ReviewOwner == STRING
    input.Body.IndustryType == STRING
    input.Body.Industry == STRING
    input.Body.Lenses[_] == STRING
    input.Body.Notes == STRING
    input.Body.ClientRequestToken == STRING
    input.Body.Tags.STRING == STRING
    input.Body.DiscoveryConfig.TrustedAdvisorIntegrationStatus == enum_TrustedAdvisorIntegrationStatus[_]
    input.Body.DiscoveryConfig.WorkloadResourceDefinition[_] == enum_DefinitionType[_]
    input.Body.Applications[_] == STRING
    input.Body.ProfileArns[_] == STRING
    input.Body.ReviewTemplateArns[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateWorkloadShare

enum_PermissionType := [ "READONLY", "CONTRIBUTOR" ]

valid {
    input.Body.SharedWith == STRING
    input.Body.PermissionType == enum_PermissionType[_]
    input.Body.ClientRequestToken == STRING
    input.ReqMap.WorkloadId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteLens

enum_LensStatusType := [ "ALL", "DRAFT", "PUBLISHED" ]

valid {
    input.ReqMap.LensAlias == STRING
    input.Qs.ClientRequestToken == STRING
    input.Qs.LensStatus == enum_LensStatusType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteLensShare

valid {
    input.ReqMap.ShareId == STRING
    input.ReqMap.LensAlias == STRING
    input.Qs.ClientRequestToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteProfile

valid {
    input.ReqMap.ProfileArn == STRING
    input.Qs.ClientRequestToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteProfileShare

valid {
    input.ReqMap.ShareId == STRING
    input.ReqMap.ProfileArn == STRING
    input.Qs.ClientRequestToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteReviewTemplate

valid {
    input.ReqMap.TemplateArn == STRING
    input.Qs.ClientRequestToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTemplateShare

valid {
    input.ReqMap.ShareId == STRING
    input.ReqMap.TemplateArn == STRING
    input.Qs.ClientRequestToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteWorkload

valid {
    input.ReqMap.WorkloadId == STRING
    input.Qs.ClientRequestToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteWorkloadShare

valid {
    input.ReqMap.ShareId == STRING
    input.ReqMap.WorkloadId == STRING
    input.Qs.ClientRequestToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateLenses

valid {
    input.Body.LensAliases[_] == STRING
    input.ReqMap.WorkloadId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateProfiles

valid {
    input.Body.ProfileArns[_] == STRING
    input.ReqMap.WorkloadId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ExportLens

valid {
    input.ReqMap.LensAlias == STRING
    input.Qs.LensVersion == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetAnswer

valid {
    input.ReqMap.WorkloadId == STRING
    input.ReqMap.LensAlias == STRING
    input.ReqMap.QuestionId == STRING
    input.Qs.MilestoneNumber == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetConsolidatedReport

enum_ReportFormat := [ "PDF", "JSON" ]

valid {
    input.Qs.Format == enum_ReportFormat[_]
    input.Qs.IncludeSharedResources == BOOLEAN
    input.Qs.NextToken == STRING
    input.Qs.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetLens

valid {
    input.ReqMap.LensAlias == STRING
    input.Qs.LensVersion == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetLensReview

valid {
    input.ReqMap.WorkloadId == STRING
    input.ReqMap.LensAlias == STRING
    input.Qs.MilestoneNumber == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetLensReviewReport

valid {
    input.ReqMap.WorkloadId == STRING
    input.ReqMap.LensAlias == STRING
    input.Qs.MilestoneNumber == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetLensVersionDifference

valid {
    input.ReqMap.LensAlias == STRING
    input.Qs.BaseLensVersion == STRING
    input.Qs.TargetLensVersion == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetMilestone

valid {
    input.ReqMap.WorkloadId == STRING
    input.ReqMap.MilestoneNumber == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetProfile

valid {
    input.ReqMap.ProfileArn == STRING
    input.Qs.ProfileVersion == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetProfileTemplate

valid {
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetReviewTemplate

valid {
    input.ReqMap.TemplateArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetReviewTemplateAnswer

valid {
    input.ReqMap.TemplateArn == STRING
    input.ReqMap.LensAlias == STRING
    input.ReqMap.QuestionId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetReviewTemplateLensReview

valid {
    input.ReqMap.TemplateArn == STRING
    input.ReqMap.LensAlias == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetWorkload

valid {
    input.ReqMap.WorkloadId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ImportLens

valid {
    input.Body.LensAlias == STRING
    input.Body.JSONString == STRING
    input.Body.ClientRequestToken == STRING
    input.Body.Tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListAnswers

enum_QuestionPriority := [ "PRIORITIZED", "NONE" ]

valid {
    input.ReqMap.WorkloadId == STRING
    input.ReqMap.LensAlias == STRING
    input.Qs.PillarId == STRING
    input.Qs.MilestoneNumber == INTEGER
    input.Qs.NextToken == STRING
    input.Qs.MaxResults == INTEGER
    input.Qs.QuestionPriority == enum_QuestionPriority[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListCheckDetails

valid {
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.LensArn == STRING
    input.Body.PillarId == STRING
    input.Body.QuestionId == STRING
    input.Body.ChoiceId == STRING
    input.ReqMap.WorkloadId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListCheckSummaries

valid {
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.LensArn == STRING
    input.Body.PillarId == STRING
    input.Body.QuestionId == STRING
    input.Body.ChoiceId == STRING
    input.ReqMap.WorkloadId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListLensReviewImprovements

enum_QuestionPriority := [ "PRIORITIZED", "NONE" ]

valid {
    input.ReqMap.WorkloadId == STRING
    input.ReqMap.LensAlias == STRING
    input.Qs.PillarId == STRING
    input.Qs.MilestoneNumber == INTEGER
    input.Qs.NextToken == STRING
    input.Qs.MaxResults == INTEGER
    input.Qs.QuestionPriority == enum_QuestionPriority[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListLensReviews

valid {
    input.ReqMap.WorkloadId == STRING
    input.Qs.MilestoneNumber == INTEGER
    input.Qs.NextToken == STRING
    input.Qs.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListLensShares

enum_ShareStatus := [ "ACCEPTED", "REJECTED", "PENDING", "REVOKED", "EXPIRED", "ASSOCIATING", "ASSOCIATED", "FAILED" ]

valid {
    input.ReqMap.LensAlias == STRING
    input.Qs.SharedWithPrefix == STRING
    input.Qs.NextToken == STRING
    input.Qs.MaxResults == INTEGER
    input.Qs.Status == enum_ShareStatus[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListLenses

enum_LensStatusType := [ "ALL", "DRAFT", "PUBLISHED" ]
enum_LensType := [ "AWS_OFFICIAL", "CUSTOM_SHARED", "CUSTOM_SELF" ]

valid {
    input.Qs.NextToken == STRING
    input.Qs.MaxResults == INTEGER
    input.Qs.LensType == enum_LensType[_]
    input.Qs.LensStatus == enum_LensStatusType[_]
    input.Qs.LensName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListMilestones

valid {
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ReqMap.WorkloadId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListNotifications

valid {
    input.Body.WorkloadId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.ResourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListProfileNotifications

valid {
    input.Qs.WorkloadId == STRING
    input.Qs.NextToken == STRING
    input.Qs.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListProfileShares

enum_ShareStatus := [ "ACCEPTED", "REJECTED", "PENDING", "REVOKED", "EXPIRED", "ASSOCIATING", "ASSOCIATED", "FAILED" ]

valid {
    input.ReqMap.ProfileArn == STRING
    input.Qs.SharedWithPrefix == STRING
    input.Qs.NextToken == STRING
    input.Qs.MaxResults == INTEGER
    input.Qs.Status == enum_ShareStatus[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListProfiles

enum_ProfileOwnerType := [ "SELF", "SHARED" ]

valid {
    input.Qs.ProfileNamePrefix == STRING
    input.Qs.ProfileOwnerType == enum_ProfileOwnerType[_]
    input.Qs.NextToken == STRING
    input.Qs.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListReviewTemplateAnswers

valid {
    input.ReqMap.TemplateArn == STRING
    input.ReqMap.LensAlias == STRING
    input.Qs.PillarId == STRING
    input.Qs.NextToken == STRING
    input.Qs.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListReviewTemplates

valid {
    input.Qs.NextToken == STRING
    input.Qs.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListShareInvitations

enum_ShareResourceType := [ "WORKLOAD", "LENS", "PROFILE", "TEMPLATE" ]

valid {
    input.Qs.WorkloadNamePrefix == STRING
    input.Qs.LensNamePrefix == STRING
    input.Qs.ShareResourceType == enum_ShareResourceType[_]
    input.Qs.NextToken == STRING
    input.Qs.MaxResults == INTEGER
    input.Qs.ProfileNamePrefix == STRING
    input.Qs.TemplateNamePrefix == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForResource

valid {
    input.ReqMap.WorkloadArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTemplateShares

enum_ShareStatus := [ "ACCEPTED", "REJECTED", "PENDING", "REVOKED", "EXPIRED", "ASSOCIATING", "ASSOCIATED", "FAILED" ]

valid {
    input.ReqMap.TemplateArn == STRING
    input.Qs.SharedWithPrefix == STRING
    input.Qs.NextToken == STRING
    input.Qs.MaxResults == INTEGER
    input.Qs.Status == enum_ShareStatus[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListWorkloadShares

enum_ShareStatus := [ "ACCEPTED", "REJECTED", "PENDING", "REVOKED", "EXPIRED", "ASSOCIATING", "ASSOCIATED", "FAILED" ]

valid {
    input.ReqMap.WorkloadId == STRING
    input.Qs.SharedWithPrefix == STRING
    input.Qs.NextToken == STRING
    input.Qs.MaxResults == INTEGER
    input.Qs.Status == enum_ShareStatus[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListWorkloads

valid {
    input.Body.WorkloadNamePrefix == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

valid {
    input.Body.Tags.STRING == STRING
    input.ReqMap.WorkloadArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagResource

valid {
    input.ReqMap.WorkloadArn == STRING
    input.Qs.tagKeys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateAnswer

enum_AnswerReason := [ "OUT_OF_SCOPE", "BUSINESS_PRIORITIES", "ARCHITECTURE_CONSTRAINTS", "OTHER", "NONE" ]
enum_ChoiceReason := [ "OUT_OF_SCOPE", "BUSINESS_PRIORITIES", "ARCHITECTURE_CONSTRAINTS", "OTHER", "NONE" ]
enum_ChoiceStatus := [ "SELECTED", "NOT_APPLICABLE", "UNSELECTED" ]

valid {
    input.Body.SelectedChoices[_] == STRING
    input.Body.ChoiceUpdates.STRING.Status == enum_ChoiceStatus[_]
    input.Body.ChoiceUpdates.STRING.Reason == enum_ChoiceReason[_]
    input.Body.ChoiceUpdates.STRING.Notes == STRING
    input.Body.Notes == STRING
    input.Body.IsApplicable == BOOLEAN
    input.Body.Reason == enum_AnswerReason[_]
    input.ReqMap.WorkloadId == STRING
    input.ReqMap.LensAlias == STRING
    input.ReqMap.QuestionId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateGlobalSettings

enum_DiscoveryIntegrationStatus := [ "ENABLED", "DISABLED" ]
enum_OrganizationSharingStatus := [ "ENABLED", "DISABLED" ]

valid {
    input.Body.OrganizationSharingStatus == enum_OrganizationSharingStatus[_]
    input.Body.DiscoveryIntegrationStatus == enum_DiscoveryIntegrationStatus[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateLensReview

valid {
    input.Body.LensNotes == STRING
    input.Body.PillarNotes.STRING == STRING
    input.ReqMap.WorkloadId == STRING
    input.ReqMap.LensAlias == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateProfile

valid {
    input.Body.ProfileDescription == STRING
    input.Body.ProfileQuestions[_].QuestionId == STRING
    input.Body.ProfileQuestions[_].SelectedChoiceIds[_] == STRING
    input.ReqMap.ProfileArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateReviewTemplate

valid {
    input.Body.TemplateName == STRING
    input.Body.Description == STRING
    input.Body.Notes == STRING
    input.Body.LensesToAssociate[_] == STRING
    input.Body.LensesToDisassociate[_] == STRING
    input.ReqMap.TemplateArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateReviewTemplateAnswer

enum_AnswerReason := [ "OUT_OF_SCOPE", "BUSINESS_PRIORITIES", "ARCHITECTURE_CONSTRAINTS", "OTHER", "NONE" ]
enum_ChoiceReason := [ "OUT_OF_SCOPE", "BUSINESS_PRIORITIES", "ARCHITECTURE_CONSTRAINTS", "OTHER", "NONE" ]
enum_ChoiceStatus := [ "SELECTED", "NOT_APPLICABLE", "UNSELECTED" ]

valid {
    input.Body.SelectedChoices[_] == STRING
    input.Body.ChoiceUpdates.STRING.Status == enum_ChoiceStatus[_]
    input.Body.ChoiceUpdates.STRING.Reason == enum_ChoiceReason[_]
    input.Body.ChoiceUpdates.STRING.Notes == STRING
    input.Body.Notes == STRING
    input.Body.IsApplicable == BOOLEAN
    input.Body.Reason == enum_AnswerReason[_]
    input.ReqMap.TemplateArn == STRING
    input.ReqMap.LensAlias == STRING
    input.ReqMap.QuestionId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateReviewTemplateLensReview

valid {
    input.Body.LensNotes == STRING
    input.Body.PillarNotes.STRING == STRING
    input.ReqMap.TemplateArn == STRING
    input.ReqMap.LensAlias == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateShareInvitation

enum_ShareInvitationAction := [ "ACCEPT", "REJECT" ]

valid {
    input.Body.ShareInvitationAction == enum_ShareInvitationAction[_]
    input.ReqMap.ShareInvitationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateWorkload

enum_DefinitionType := [ "WORKLOAD_METADATA", "APP_REGISTRY" ]
enum_TrustedAdvisorIntegrationStatus := [ "ENABLED", "DISABLED" ]
enum_WorkloadEnvironment := [ "PRODUCTION", "PREPRODUCTION" ]
enum_WorkloadImprovementStatus := [ "NOT_APPLICABLE", "NOT_STARTED", "IN_PROGRESS", "COMPLETE", "RISK_ACKNOWLEDGED" ]

valid {
    input.Body.WorkloadName == STRING
    input.Body.Description == STRING
    input.Body.Environment == enum_WorkloadEnvironment[_]
    input.Body.AccountIds[_] == STRING
    input.Body.AwsRegions[_] == STRING
    input.Body.NonAwsRegions[_] == STRING
    input.Body.PillarPriorities[_] == STRING
    input.Body.ArchitecturalDesign == STRING
    input.Body.ReviewOwner == STRING
    input.Body.IsReviewOwnerUpdateAcknowledged == BOOLEAN
    input.Body.IndustryType == STRING
    input.Body.Industry == STRING
    input.Body.Notes == STRING
    input.Body.ImprovementStatus == enum_WorkloadImprovementStatus[_]
    input.Body.DiscoveryConfig.TrustedAdvisorIntegrationStatus == enum_TrustedAdvisorIntegrationStatus[_]
    input.Body.DiscoveryConfig.WorkloadResourceDefinition[_] == enum_DefinitionType[_]
    input.Body.Applications[_] == STRING
    input.ReqMap.WorkloadId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateWorkloadShare

enum_PermissionType := [ "READONLY", "CONTRIBUTOR" ]

valid {
    input.Body.PermissionType == enum_PermissionType[_]
    input.ReqMap.ShareId == STRING
    input.ReqMap.WorkloadId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpgradeLensReview

valid {
    input.Body.MilestoneName == STRING
    input.Body.ClientRequestToken == STRING
    input.ReqMap.WorkloadId == STRING
    input.ReqMap.LensAlias == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpgradeProfileVersion

valid {
    input.Body.MilestoneName == STRING
    input.Body.ClientRequestToken == STRING
    input.ReqMap.WorkloadId == STRING
    input.ReqMap.ProfileArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpgradeReviewTemplateLensReview

valid {
    input.Body.ClientRequestToken == STRING
    input.ReqMap.TemplateArn == STRING
    input.ReqMap.LensAlias == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}