CreateApp

enum_Platform := [ "WEB", "WEB_DYNAMIC", "WEB_COMPUTE" ]
enum_Stage := [ "PRODUCTION", "BETA", "DEVELOPMENT", "EXPERIMENTAL", "PULL_REQUEST" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.repository == STRING
    input.Body.platform == enum_Platform[_]
    input.Body.iamServiceRoleArn == STRING
    input.Body.oauthToken == STRING
    input.Body.accessToken == STRING
    input.Body.environmentVariables.STRING == STRING
    input.Body.enableBranchAutoBuild == BOOLEAN
    input.Body.enableBranchAutoDeletion == BOOLEAN
    input.Body.enableBasicAuth == BOOLEAN
    input.Body.basicAuthCredentials == STRING
    input.Body.customRules[_].source == STRING
    input.Body.customRules[_].target == STRING
    input.Body.customRules[_].status == STRING
    input.Body.customRules[_].condition == STRING
    input.Body.tags.STRING == STRING
    input.Body.buildSpec == STRING
    input.Body.customHeaders == STRING
    input.Body.enableAutoBranchCreation == BOOLEAN
    input.Body.autoBranchCreationPatterns[_] == STRING
    input.Body.autoBranchCreationConfig.stage == enum_Stage[_]
    input.Body.autoBranchCreationConfig.framework == STRING
    input.Body.autoBranchCreationConfig.enableAutoBuild == BOOLEAN
    input.Body.autoBranchCreationConfig.environmentVariables.STRING == STRING
    input.Body.autoBranchCreationConfig.basicAuthCredentials == STRING
    input.Body.autoBranchCreationConfig.enableBasicAuth == BOOLEAN
    input.Body.autoBranchCreationConfig.enablePerformanceMode == BOOLEAN
    input.Body.autoBranchCreationConfig.buildSpec == STRING
    input.Body.autoBranchCreationConfig.enablePullRequestPreview == BOOLEAN
    input.Body.autoBranchCreationConfig.pullRequestEnvironmentName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateBackendEnvironment

valid {
    input.Body.environmentName == STRING
    input.Body.stackName == STRING
    input.Body.deploymentArtifacts == STRING
    input.ReqMap.appId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateBranch

enum_Stage := [ "PRODUCTION", "BETA", "DEVELOPMENT", "EXPERIMENTAL", "PULL_REQUEST" ]

valid {
    input.Body.branchName == STRING
    input.Body.description == STRING
    input.Body.stage == enum_Stage[_]
    input.Body.framework == STRING
    input.Body.enableNotification == BOOLEAN
    input.Body.enableAutoBuild == BOOLEAN
    input.Body.environmentVariables.STRING == STRING
    input.Body.basicAuthCredentials == STRING
    input.Body.enableBasicAuth == BOOLEAN
    input.Body.enablePerformanceMode == BOOLEAN
    input.Body.tags.STRING == STRING
    input.Body.buildSpec == STRING
    input.Body.ttl == STRING
    input.Body.displayName == STRING
    input.Body.enablePullRequestPreview == BOOLEAN
    input.Body.pullRequestEnvironmentName == STRING
    input.Body.backendEnvironmentArn == STRING
    input.Body.backend.stackArn == STRING
    input.ReqMap.appId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDeployment

valid {
    input.Body.fileMap.STRING == STRING
    input.ReqMap.appId == STRING
    input.ReqMap.branchName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDomainAssociation

enum_CertificateType := [ "AMPLIFY_MANAGED", "CUSTOM" ]

valid {
    input.Body.domainName == STRING
    input.Body.enableAutoSubDomain == BOOLEAN
    input.Body.subDomainSettings[_].prefix == STRING
    input.Body.subDomainSettings[_].branchName == STRING
    input.Body.autoSubDomainCreationPatterns[_] == STRING
    input.Body.autoSubDomainIAMRole == STRING
    input.Body.certificateSettings.type == enum_CertificateType[_]
    input.Body.certificateSettings.customCertificateArn == STRING
    input.ReqMap.appId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateWebhook

valid {
    input.Body.branchName == STRING
    input.Body.description == STRING
    input.ReqMap.appId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteApp

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

DeleteBackendEnvironment

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

DeleteBranch

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

DeleteDomainAssociation

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

DeleteJob

valid {
    input.ReqMap.appId == STRING
    input.ReqMap.branchName == STRING
    input.ReqMap.jobId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteWebhook

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

GenerateAccessLogs

valid {
    input.Body.startTime == TIMESTAMP
    input.Body.endTime == TIMESTAMP
    input.Body.domainName == STRING
    input.ReqMap.appId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetApp

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

GetArtifactUrl

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

GetBackendEnvironment

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

GetBranch

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

GetDomainAssociation

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

GetJob

valid {
    input.ReqMap.appId == STRING
    input.ReqMap.branchName == STRING
    input.ReqMap.jobId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetWebhook

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

ListApps

valid {
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListArtifacts

valid {
    input.ReqMap.appId == STRING
    input.ReqMap.branchName == STRING
    input.ReqMap.jobId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListBackendEnvironments

valid {
    input.ReqMap.appId == STRING
    input.Qs.environmentName == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListBranches

valid {
    input.ReqMap.appId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDomainAssociations

valid {
    input.ReqMap.appId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListJobs

valid {
    input.ReqMap.appId == STRING
    input.ReqMap.branchName == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForResource

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

ListWebhooks

valid {
    input.ReqMap.appId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartDeployment

valid {
    input.Body.jobId == STRING
    input.Body.sourceUrl == STRING
    input.ReqMap.appId == STRING
    input.ReqMap.branchName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartJob

enum_JobType := [ "RELEASE", "RETRY", "MANUAL", "WEB_HOOK" ]

valid {
    input.Body.jobId == STRING
    input.Body.jobType == enum_JobType[_]
    input.Body.jobReason == STRING
    input.Body.commitId == STRING
    input.Body.commitMessage == STRING
    input.Body.commitTime == TIMESTAMP
    input.ReqMap.appId == STRING
    input.ReqMap.branchName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopJob

valid {
    input.ReqMap.appId == STRING
    input.ReqMap.branchName == STRING
    input.ReqMap.jobId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

valid {
    input.Body.tags.STRING == STRING
    input.ReqMap.resourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagResource

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

UpdateApp

enum_Platform := [ "WEB", "WEB_DYNAMIC", "WEB_COMPUTE" ]
enum_Stage := [ "PRODUCTION", "BETA", "DEVELOPMENT", "EXPERIMENTAL", "PULL_REQUEST" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.platform == enum_Platform[_]
    input.Body.iamServiceRoleArn == STRING
    input.Body.environmentVariables.STRING == STRING
    input.Body.enableBranchAutoBuild == BOOLEAN
    input.Body.enableBranchAutoDeletion == BOOLEAN
    input.Body.enableBasicAuth == BOOLEAN
    input.Body.basicAuthCredentials == STRING
    input.Body.customRules[_].source == STRING
    input.Body.customRules[_].target == STRING
    input.Body.customRules[_].status == STRING
    input.Body.customRules[_].condition == STRING
    input.Body.buildSpec == STRING
    input.Body.customHeaders == STRING
    input.Body.enableAutoBranchCreation == BOOLEAN
    input.Body.autoBranchCreationPatterns[_] == STRING
    input.Body.autoBranchCreationConfig.stage == enum_Stage[_]
    input.Body.autoBranchCreationConfig.framework == STRING
    input.Body.autoBranchCreationConfig.enableAutoBuild == BOOLEAN
    input.Body.autoBranchCreationConfig.environmentVariables.STRING == STRING
    input.Body.autoBranchCreationConfig.basicAuthCredentials == STRING
    input.Body.autoBranchCreationConfig.enableBasicAuth == BOOLEAN
    input.Body.autoBranchCreationConfig.enablePerformanceMode == BOOLEAN
    input.Body.autoBranchCreationConfig.buildSpec == STRING
    input.Body.autoBranchCreationConfig.enablePullRequestPreview == BOOLEAN
    input.Body.autoBranchCreationConfig.pullRequestEnvironmentName == STRING
    input.Body.repository == STRING
    input.Body.oauthToken == STRING
    input.Body.accessToken == STRING
    input.ReqMap.appId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateBranch

enum_Stage := [ "PRODUCTION", "BETA", "DEVELOPMENT", "EXPERIMENTAL", "PULL_REQUEST" ]

valid {
    input.Body.description == STRING
    input.Body.framework == STRING
    input.Body.stage == enum_Stage[_]
    input.Body.enableNotification == BOOLEAN
    input.Body.enableAutoBuild == BOOLEAN
    input.Body.environmentVariables.STRING == STRING
    input.Body.basicAuthCredentials == STRING
    input.Body.enableBasicAuth == BOOLEAN
    input.Body.enablePerformanceMode == BOOLEAN
    input.Body.buildSpec == STRING
    input.Body.ttl == STRING
    input.Body.displayName == STRING
    input.Body.enablePullRequestPreview == BOOLEAN
    input.Body.pullRequestEnvironmentName == STRING
    input.Body.backendEnvironmentArn == STRING
    input.Body.backend.stackArn == STRING
    input.ReqMap.appId == STRING
    input.ReqMap.branchName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateDomainAssociation

enum_CertificateType := [ "AMPLIFY_MANAGED", "CUSTOM" ]

valid {
    input.Body.enableAutoSubDomain == BOOLEAN
    input.Body.subDomainSettings[_].prefix == STRING
    input.Body.subDomainSettings[_].branchName == STRING
    input.Body.autoSubDomainCreationPatterns[_] == STRING
    input.Body.autoSubDomainIAMRole == STRING
    input.Body.certificateSettings.type == enum_CertificateType[_]
    input.Body.certificateSettings.customCertificateArn == STRING
    input.ReqMap.appId == STRING
    input.ReqMap.domainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateWebhook

valid {
    input.Body.branchName == STRING
    input.Body.description == STRING
    input.ReqMap.webhookId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}