CODEBUILD

BatchDeleteBuilds

valid {
    input.Body.ids[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchGetBuildBatches

valid {
    input.Body.ids[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchGetBuilds

valid {
    input.Body.ids[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchGetFleets

valid {
    input.Body.names[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchGetProjects

valid {
    input.Body.names[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchGetReportGroups

valid {
    input.Body.reportGroupArns[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchGetReports

valid {
    input.Body.reportArns[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateFleet

enum_ComputeType := [ "BUILD_GENERAL1_SMALL", "BUILD_GENERAL1_MEDIUM", "BUILD_GENERAL1_LARGE", "BUILD_GENERAL1_XLARGE", "BUILD_GENERAL1_2XLARGE", "BUILD_LAMBDA_1GB", "BUILD_LAMBDA_2GB", "BUILD_LAMBDA_4GB", "BUILD_LAMBDA_8GB", "BUILD_LAMBDA_10GB" ]
enum_EnvironmentType := [ "WINDOWS_CONTAINER", "LINUX_CONTAINER", "LINUX_GPU_CONTAINER", "ARM_CONTAINER", "WINDOWS_SERVER_2019_CONTAINER", "LINUX_LAMBDA_CONTAINER", "ARM_LAMBDA_CONTAINER" ]
enum_FleetScalingMetricType := [ "FLEET_UTILIZATION_RATE" ]
enum_FleetScalingType := [ "TARGET_TRACKING_SCALING" ]

valid {
    input.Body.name == STRING
    input.Body.baseCapacity == INTEGER
    input.Body.environmentType == enum_EnvironmentType[_]
    input.Body.computeType == enum_ComputeType[_]
    input.Body.scalingConfiguration.scalingType == enum_FleetScalingType[_]
    input.Body.scalingConfiguration.targetTrackingScalingConfigs[_].metricType == enum_FleetScalingMetricType[_]
    input.Body.scalingConfiguration.targetTrackingScalingConfigs[_].targetValue == DOUBLE
    input.Body.scalingConfiguration.maxCapacity == INTEGER
    input.Body.tags[_].key == STRING
    input.Body.tags[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateProject

enum_ArtifactNamespace := [ "NONE", "BUILD_ID" ]
enum_ArtifactPackaging := [ "NONE", "ZIP" ]
enum_ArtifactsType := [ "CODEPIPELINE", "S3", "NO_ARTIFACTS" ]
enum_BatchReportModeType := [ "REPORT_INDIVIDUAL_BUILDS", "REPORT_AGGREGATED_BATCH" ]
enum_BucketOwnerAccess := [ "NONE", "READ_ONLY", "FULL" ]
enum_CacheMode := [ "LOCAL_DOCKER_LAYER_CACHE", "LOCAL_SOURCE_CACHE", "LOCAL_CUSTOM_CACHE" ]
enum_CacheType := [ "NO_CACHE", "S3", "LOCAL" ]
enum_ComputeType := [ "BUILD_GENERAL1_SMALL", "BUILD_GENERAL1_MEDIUM", "BUILD_GENERAL1_LARGE", "BUILD_GENERAL1_XLARGE", "BUILD_GENERAL1_2XLARGE", "BUILD_LAMBDA_1GB", "BUILD_LAMBDA_2GB", "BUILD_LAMBDA_4GB", "BUILD_LAMBDA_8GB", "BUILD_LAMBDA_10GB" ]
enum_CredentialProviderType := [ "SECRETS_MANAGER" ]
enum_EnvironmentType := [ "WINDOWS_CONTAINER", "LINUX_CONTAINER", "LINUX_GPU_CONTAINER", "ARM_CONTAINER", "WINDOWS_SERVER_2019_CONTAINER", "LINUX_LAMBDA_CONTAINER", "ARM_LAMBDA_CONTAINER" ]
enum_EnvironmentVariableType := [ "PLAINTEXT", "PARAMETER_STORE", "SECRETS_MANAGER" ]
enum_FileSystemType := [ "EFS" ]
enum_ImagePullCredentialsType := [ "CODEBUILD", "SERVICE_ROLE" ]
enum_LogsConfigStatusType := [ "ENABLED", "DISABLED" ]
enum_SourceAuthType := [ "OAUTH" ]
enum_SourceType := [ "CODECOMMIT", "CODEPIPELINE", "GITHUB", "S3", "BITBUCKET", "GITHUB_ENTERPRISE", "NO_SOURCE" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.source.type == enum_SourceType[_]
    input.Body.source.location == STRING
    input.Body.source.gitCloneDepth == INTEGER
    input.Body.source.gitSubmodulesConfig.fetchSubmodules == BOOLEAN
    input.Body.source.buildspec == STRING
    input.Body.source.auth.type == enum_SourceAuthType[_]
    input.Body.source.auth.resource == STRING
    input.Body.source.reportBuildStatus == BOOLEAN
    input.Body.source.buildStatusConfig.context == STRING
    input.Body.source.buildStatusConfig.targetUrl == STRING
    input.Body.source.insecureSsl == BOOLEAN
    input.Body.source.sourceIdentifier == STRING
    input.Body.secondarySources[_].type == enum_SourceType[_]
    input.Body.secondarySources[_].location == STRING
    input.Body.secondarySources[_].gitCloneDepth == INTEGER
    input.Body.secondarySources[_].gitSubmodulesConfig.fetchSubmodules == BOOLEAN
    input.Body.secondarySources[_].buildspec == STRING
    input.Body.secondarySources[_].auth.type == enum_SourceAuthType[_]
    input.Body.secondarySources[_].auth.resource == STRING
    input.Body.secondarySources[_].reportBuildStatus == BOOLEAN
    input.Body.secondarySources[_].buildStatusConfig.context == STRING
    input.Body.secondarySources[_].buildStatusConfig.targetUrl == STRING
    input.Body.secondarySources[_].insecureSsl == BOOLEAN
    input.Body.secondarySources[_].sourceIdentifier == STRING
    input.Body.sourceVersion == STRING
    input.Body.secondarySourceVersions[_].sourceIdentifier == STRING
    input.Body.secondarySourceVersions[_].sourceVersion == STRING
    input.Body.artifacts.type == enum_ArtifactsType[_]
    input.Body.artifacts.location == STRING
    input.Body.artifacts.path == STRING
    input.Body.artifacts.namespaceType == enum_ArtifactNamespace[_]
    input.Body.artifacts.name == STRING
    input.Body.artifacts.packaging == enum_ArtifactPackaging[_]
    input.Body.artifacts.overrideArtifactName == BOOLEAN
    input.Body.artifacts.encryptionDisabled == BOOLEAN
    input.Body.artifacts.artifactIdentifier == STRING
    input.Body.artifacts.bucketOwnerAccess == enum_BucketOwnerAccess[_]
    input.Body.secondaryArtifacts[_].type == enum_ArtifactsType[_]
    input.Body.secondaryArtifacts[_].location == STRING
    input.Body.secondaryArtifacts[_].path == STRING
    input.Body.secondaryArtifacts[_].namespaceType == enum_ArtifactNamespace[_]
    input.Body.secondaryArtifacts[_].name == STRING
    input.Body.secondaryArtifacts[_].packaging == enum_ArtifactPackaging[_]
    input.Body.secondaryArtifacts[_].overrideArtifactName == BOOLEAN
    input.Body.secondaryArtifacts[_].encryptionDisabled == BOOLEAN
    input.Body.secondaryArtifacts[_].artifactIdentifier == STRING
    input.Body.secondaryArtifacts[_].bucketOwnerAccess == enum_BucketOwnerAccess[_]
    input.Body.cache.type == enum_CacheType[_]
    input.Body.cache.location == STRING
    input.Body.cache.modes[_] == enum_CacheMode[_]
    input.Body.environment.type == enum_EnvironmentType[_]
    input.Body.environment.image == STRING
    input.Body.environment.computeType == enum_ComputeType[_]
    input.Body.environment.fleet.fleetArn == STRING
    input.Body.environment.environmentVariables[_].name == STRING
    input.Body.environment.environmentVariables[_].value == STRING
    input.Body.environment.environmentVariables[_].type == enum_EnvironmentVariableType[_]
    input.Body.environment.privilegedMode == BOOLEAN
    input.Body.environment.certificate == STRING
    input.Body.environment.registryCredential.credential == STRING
    input.Body.environment.registryCredential.credentialProvider == enum_CredentialProviderType[_]
    input.Body.environment.imagePullCredentialsType == enum_ImagePullCredentialsType[_]
    input.Body.serviceRole == STRING
    input.Body.timeoutInMinutes == INTEGER
    input.Body.queuedTimeoutInMinutes == INTEGER
    input.Body.encryptionKey == STRING
    input.Body.tags[_].key == STRING
    input.Body.tags[_].value == STRING
    input.Body.vpcConfig.vpcId == STRING
    input.Body.vpcConfig.subnets[_] == STRING
    input.Body.vpcConfig.securityGroupIds[_] == STRING
    input.Body.badgeEnabled == BOOLEAN
    input.Body.logsConfig.cloudWatchLogs.status == enum_LogsConfigStatusType[_]
    input.Body.logsConfig.cloudWatchLogs.groupName == STRING
    input.Body.logsConfig.cloudWatchLogs.streamName == STRING
    input.Body.logsConfig.s3Logs.status == enum_LogsConfigStatusType[_]
    input.Body.logsConfig.s3Logs.location == STRING
    input.Body.logsConfig.s3Logs.encryptionDisabled == BOOLEAN
    input.Body.logsConfig.s3Logs.bucketOwnerAccess == enum_BucketOwnerAccess[_]
    input.Body.fileSystemLocations[_].type == enum_FileSystemType[_]
    input.Body.fileSystemLocations[_].location == STRING
    input.Body.fileSystemLocations[_].mountPoint == STRING
    input.Body.fileSystemLocations[_].identifier == STRING
    input.Body.fileSystemLocations[_].mountOptions == STRING
    input.Body.buildBatchConfig.serviceRole == STRING
    input.Body.buildBatchConfig.combineArtifacts == BOOLEAN
    input.Body.buildBatchConfig.restrictions.maximumBuildsAllowed == INTEGER
    input.Body.buildBatchConfig.restrictions.computeTypesAllowed[_] == STRING
    input.Body.buildBatchConfig.timeoutInMins == INTEGER
    input.Body.buildBatchConfig.batchReportMode == enum_BatchReportModeType[_]
    input.Body.concurrentBuildLimit == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateReportGroup

enum_ReportExportConfigType := [ "S3", "NO_EXPORT" ]
enum_ReportPackagingType := [ "ZIP", "NONE" ]
enum_ReportType := [ "TEST", "CODE_COVERAGE" ]

valid {
    input.Body.name == STRING
    input.Body.type == enum_ReportType[_]
    input.Body.exportConfig.exportConfigType == enum_ReportExportConfigType[_]
    input.Body.exportConfig.s3Destination.bucket == STRING
    input.Body.exportConfig.s3Destination.bucketOwner == STRING
    input.Body.exportConfig.s3Destination.path == STRING
    input.Body.exportConfig.s3Destination.packaging == enum_ReportPackagingType[_]
    input.Body.exportConfig.s3Destination.encryptionKey == STRING
    input.Body.exportConfig.s3Destination.encryptionDisabled == BOOLEAN
    input.Body.tags[_].key == STRING
    input.Body.tags[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateWebhook

enum_WebhookBuildType := [ "BUILD", "BUILD_BATCH" ]
enum_WebhookFilterType := [ "EVENT", "BASE_REF", "HEAD_REF", "ACTOR_ACCOUNT_ID", "FILE_PATH", "COMMIT_MESSAGE" ]

valid {
    input.Body.projectName == STRING
    input.Body.branchFilter == STRING
    input.Body.filterGroups[_][_].type == enum_WebhookFilterType[_]
    input.Body.filterGroups[_][_].pattern == STRING
    input.Body.filterGroups[_][_].excludeMatchedPattern == BOOLEAN
    input.Body.buildType == enum_WebhookBuildType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteBuildBatch

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

DeleteFleet

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

DeleteProject

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

DeleteReport

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

DeleteReportGroup

valid {
    input.Body.arn == STRING
    input.Body.deleteReports == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteResourcePolicy

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

DeleteSourceCredentials

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

DeleteWebhook

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

DescribeCodeCoverages

enum_ReportCodeCoverageSortByType := [ "LINE_COVERAGE_PERCENTAGE", "FILE_PATH" ]
enum_SortOrderType := [ "ASCENDING", "DESCENDING" ]

valid {
    input.Body.reportArn == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.Body.sortOrder == enum_SortOrderType[_]
    input.Body.sortBy == enum_ReportCodeCoverageSortByType[_]
    input.Body.minLineCoveragePercentage == DOUBLE
    input.Body.maxLineCoveragePercentage == DOUBLE
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTestCases

valid {
    input.Body.reportArn == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.Body.filter.status == STRING
    input.Body.filter.keyword == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetReportGroupTrend

enum_ReportGroupTrendFieldType := [ "PASS_RATE", "DURATION", "TOTAL", "LINE_COVERAGE", "LINES_COVERED", "LINES_MISSED", "BRANCH_COVERAGE", "BRANCHES_COVERED", "BRANCHES_MISSED" ]

valid {
    input.Body.reportGroupArn == STRING
    input.Body.numOfReports == INTEGER
    input.Body.trendField == enum_ReportGroupTrendFieldType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetResourcePolicy

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

ImportSourceCredentials

enum_AuthType := [ "OAUTH", "BASIC_AUTH", "PERSONAL_ACCESS_TOKEN" ]
enum_ServerType := [ "GITHUB", "BITBUCKET", "GITHUB_ENTERPRISE" ]

valid {
    input.Body.username == STRING
    input.Body.token == STRING
    input.Body.serverType == enum_ServerType[_]
    input.Body.authType == enum_AuthType[_]
    input.Body.shouldOverwrite == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

InvalidateProjectCache

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

ListBuildBatches

enum_SortOrderType := [ "ASCENDING", "DESCENDING" ]
enum_StatusType := [ "SUCCEEDED", "FAILED", "FAULT", "TIMED_OUT", "IN_PROGRESS", "STOPPED" ]

valid {
    input.Body.filter.status == enum_StatusType[_]
    input.Body.maxResults == INTEGER
    input.Body.sortOrder == enum_SortOrderType[_]
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListBuildBatchesForProject

enum_SortOrderType := [ "ASCENDING", "DESCENDING" ]
enum_StatusType := [ "SUCCEEDED", "FAILED", "FAULT", "TIMED_OUT", "IN_PROGRESS", "STOPPED" ]

valid {
    input.Body.projectName == STRING
    input.Body.filter.status == enum_StatusType[_]
    input.Body.maxResults == INTEGER
    input.Body.sortOrder == enum_SortOrderType[_]
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListBuilds

enum_SortOrderType := [ "ASCENDING", "DESCENDING" ]

valid {
    input.Body.sortOrder == enum_SortOrderType[_]
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListBuildsForProject

enum_SortOrderType := [ "ASCENDING", "DESCENDING" ]

valid {
    input.Body.projectName == STRING
    input.Body.sortOrder == enum_SortOrderType[_]
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListCuratedEnvironmentImages

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

ListFleets

enum_FleetSortByType := [ "NAME", "CREATED_TIME", "LAST_MODIFIED_TIME" ]
enum_SortOrderType := [ "ASCENDING", "DESCENDING" ]

valid {
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.Body.sortOrder == enum_SortOrderType[_]
    input.Body.sortBy == enum_FleetSortByType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListProjects

enum_ProjectSortByType := [ "NAME", "CREATED_TIME", "LAST_MODIFIED_TIME" ]
enum_SortOrderType := [ "ASCENDING", "DESCENDING" ]

valid {
    input.Body.sortBy == enum_ProjectSortByType[_]
    input.Body.sortOrder == enum_SortOrderType[_]
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListReportGroups

enum_ReportGroupSortByType := [ "NAME", "CREATED_TIME", "LAST_MODIFIED_TIME" ]
enum_SortOrderType := [ "ASCENDING", "DESCENDING" ]

valid {
    input.Body.sortOrder == enum_SortOrderType[_]
    input.Body.sortBy == enum_ReportGroupSortByType[_]
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListReports

enum_ReportStatusType := [ "GENERATING", "SUCCEEDED", "FAILED", "INCOMPLETE", "DELETING" ]
enum_SortOrderType := [ "ASCENDING", "DESCENDING" ]

valid {
    input.Body.sortOrder == enum_SortOrderType[_]
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.Body.filter.status == enum_ReportStatusType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListReportsForReportGroup

enum_ReportStatusType := [ "GENERATING", "SUCCEEDED", "FAILED", "INCOMPLETE", "DELETING" ]
enum_SortOrderType := [ "ASCENDING", "DESCENDING" ]

valid {
    input.Body.reportGroupArn == STRING
    input.Body.nextToken == STRING
    input.Body.sortOrder == enum_SortOrderType[_]
    input.Body.maxResults == INTEGER
    input.Body.filter.status == enum_ReportStatusType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListSharedProjects

enum_SharedResourceSortByType := [ "ARN", "MODIFIED_TIME" ]
enum_SortOrderType := [ "ASCENDING", "DESCENDING" ]

valid {
    input.Body.sortBy == enum_SharedResourceSortByType[_]
    input.Body.sortOrder == enum_SortOrderType[_]
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListSharedReportGroups

enum_SharedResourceSortByType := [ "ARN", "MODIFIED_TIME" ]
enum_SortOrderType := [ "ASCENDING", "DESCENDING" ]

valid {
    input.Body.sortOrder == enum_SortOrderType[_]
    input.Body.sortBy == enum_SharedResourceSortByType[_]
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListSourceCredentials

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

PutResourcePolicy

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

RetryBuild

valid {
    input.Body.id == STRING
    input.Body.idempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RetryBuildBatch

enum_RetryBuildBatchType := [ "RETRY_ALL_BUILDS", "RETRY_FAILED_BUILDS" ]

valid {
    input.Body.id == STRING
    input.Body.idempotencyToken == STRING
    input.Body.retryType == enum_RetryBuildBatchType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartBuild

enum_ArtifactNamespace := [ "NONE", "BUILD_ID" ]
enum_ArtifactPackaging := [ "NONE", "ZIP" ]
enum_ArtifactsType := [ "CODEPIPELINE", "S3", "NO_ARTIFACTS" ]
enum_BucketOwnerAccess := [ "NONE", "READ_ONLY", "FULL" ]
enum_CacheMode := [ "LOCAL_DOCKER_LAYER_CACHE", "LOCAL_SOURCE_CACHE", "LOCAL_CUSTOM_CACHE" ]
enum_CacheType := [ "NO_CACHE", "S3", "LOCAL" ]
enum_ComputeType := [ "BUILD_GENERAL1_SMALL", "BUILD_GENERAL1_MEDIUM", "BUILD_GENERAL1_LARGE", "BUILD_GENERAL1_XLARGE", "BUILD_GENERAL1_2XLARGE", "BUILD_LAMBDA_1GB", "BUILD_LAMBDA_2GB", "BUILD_LAMBDA_4GB", "BUILD_LAMBDA_8GB", "BUILD_LAMBDA_10GB" ]
enum_CredentialProviderType := [ "SECRETS_MANAGER" ]
enum_EnvironmentType := [ "WINDOWS_CONTAINER", "LINUX_CONTAINER", "LINUX_GPU_CONTAINER", "ARM_CONTAINER", "WINDOWS_SERVER_2019_CONTAINER", "LINUX_LAMBDA_CONTAINER", "ARM_LAMBDA_CONTAINER" ]
enum_EnvironmentVariableType := [ "PLAINTEXT", "PARAMETER_STORE", "SECRETS_MANAGER" ]
enum_ImagePullCredentialsType := [ "CODEBUILD", "SERVICE_ROLE" ]
enum_LogsConfigStatusType := [ "ENABLED", "DISABLED" ]
enum_SourceAuthType := [ "OAUTH" ]
enum_SourceType := [ "CODECOMMIT", "CODEPIPELINE", "GITHUB", "S3", "BITBUCKET", "GITHUB_ENTERPRISE", "NO_SOURCE" ]

valid {
    input.Body.projectName == STRING
    input.Body.secondarySourcesOverride[_].type == enum_SourceType[_]
    input.Body.secondarySourcesOverride[_].location == STRING
    input.Body.secondarySourcesOverride[_].gitCloneDepth == INTEGER
    input.Body.secondarySourcesOverride[_].gitSubmodulesConfig.fetchSubmodules == BOOLEAN
    input.Body.secondarySourcesOverride[_].buildspec == STRING
    input.Body.secondarySourcesOverride[_].auth.type == enum_SourceAuthType[_]
    input.Body.secondarySourcesOverride[_].auth.resource == STRING
    input.Body.secondarySourcesOverride[_].reportBuildStatus == BOOLEAN
    input.Body.secondarySourcesOverride[_].buildStatusConfig.context == STRING
    input.Body.secondarySourcesOverride[_].buildStatusConfig.targetUrl == STRING
    input.Body.secondarySourcesOverride[_].insecureSsl == BOOLEAN
    input.Body.secondarySourcesOverride[_].sourceIdentifier == STRING
    input.Body.secondarySourcesVersionOverride[_].sourceIdentifier == STRING
    input.Body.secondarySourcesVersionOverride[_].sourceVersion == STRING
    input.Body.sourceVersion == STRING
    input.Body.artifactsOverride.type == enum_ArtifactsType[_]
    input.Body.artifactsOverride.location == STRING
    input.Body.artifactsOverride.path == STRING
    input.Body.artifactsOverride.namespaceType == enum_ArtifactNamespace[_]
    input.Body.artifactsOverride.name == STRING
    input.Body.artifactsOverride.packaging == enum_ArtifactPackaging[_]
    input.Body.artifactsOverride.overrideArtifactName == BOOLEAN
    input.Body.artifactsOverride.encryptionDisabled == BOOLEAN
    input.Body.artifactsOverride.artifactIdentifier == STRING
    input.Body.artifactsOverride.bucketOwnerAccess == enum_BucketOwnerAccess[_]
    input.Body.secondaryArtifactsOverride[_].type == enum_ArtifactsType[_]
    input.Body.secondaryArtifactsOverride[_].location == STRING
    input.Body.secondaryArtifactsOverride[_].path == STRING
    input.Body.secondaryArtifactsOverride[_].namespaceType == enum_ArtifactNamespace[_]
    input.Body.secondaryArtifactsOverride[_].name == STRING
    input.Body.secondaryArtifactsOverride[_].packaging == enum_ArtifactPackaging[_]
    input.Body.secondaryArtifactsOverride[_].overrideArtifactName == BOOLEAN
    input.Body.secondaryArtifactsOverride[_].encryptionDisabled == BOOLEAN
    input.Body.secondaryArtifactsOverride[_].artifactIdentifier == STRING
    input.Body.secondaryArtifactsOverride[_].bucketOwnerAccess == enum_BucketOwnerAccess[_]
    input.Body.environmentVariablesOverride[_].name == STRING
    input.Body.environmentVariablesOverride[_].value == STRING
    input.Body.environmentVariablesOverride[_].type == enum_EnvironmentVariableType[_]
    input.Body.sourceTypeOverride == enum_SourceType[_]
    input.Body.sourceLocationOverride == STRING
    input.Body.sourceAuthOverride.type == enum_SourceAuthType[_]
    input.Body.sourceAuthOverride.resource == STRING
    input.Body.gitCloneDepthOverride == INTEGER
    input.Body.gitSubmodulesConfigOverride.fetchSubmodules == BOOLEAN
    input.Body.buildspecOverride == STRING
    input.Body.insecureSslOverride == BOOLEAN
    input.Body.reportBuildStatusOverride == BOOLEAN
    input.Body.buildStatusConfigOverride.context == STRING
    input.Body.buildStatusConfigOverride.targetUrl == STRING
    input.Body.environmentTypeOverride == enum_EnvironmentType[_]
    input.Body.imageOverride == STRING
    input.Body.computeTypeOverride == enum_ComputeType[_]
    input.Body.certificateOverride == STRING
    input.Body.cacheOverride.type == enum_CacheType[_]
    input.Body.cacheOverride.location == STRING
    input.Body.cacheOverride.modes[_] == enum_CacheMode[_]
    input.Body.serviceRoleOverride == STRING
    input.Body.privilegedModeOverride == BOOLEAN
    input.Body.timeoutInMinutesOverride == INTEGER
    input.Body.queuedTimeoutInMinutesOverride == INTEGER
    input.Body.encryptionKeyOverride == STRING
    input.Body.idempotencyToken == STRING
    input.Body.logsConfigOverride.cloudWatchLogs.status == enum_LogsConfigStatusType[_]
    input.Body.logsConfigOverride.cloudWatchLogs.groupName == STRING
    input.Body.logsConfigOverride.cloudWatchLogs.streamName == STRING
    input.Body.logsConfigOverride.s3Logs.status == enum_LogsConfigStatusType[_]
    input.Body.logsConfigOverride.s3Logs.location == STRING
    input.Body.logsConfigOverride.s3Logs.encryptionDisabled == BOOLEAN
    input.Body.logsConfigOverride.s3Logs.bucketOwnerAccess == enum_BucketOwnerAccess[_]
    input.Body.registryCredentialOverride.credential == STRING
    input.Body.registryCredentialOverride.credentialProvider == enum_CredentialProviderType[_]
    input.Body.imagePullCredentialsTypeOverride == enum_ImagePullCredentialsType[_]
    input.Body.debugSessionEnabled == BOOLEAN
    input.Body.fleetOverride.fleetArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartBuildBatch

enum_ArtifactNamespace := [ "NONE", "BUILD_ID" ]
enum_ArtifactPackaging := [ "NONE", "ZIP" ]
enum_ArtifactsType := [ "CODEPIPELINE", "S3", "NO_ARTIFACTS" ]
enum_BatchReportModeType := [ "REPORT_INDIVIDUAL_BUILDS", "REPORT_AGGREGATED_BATCH" ]
enum_BucketOwnerAccess := [ "NONE", "READ_ONLY", "FULL" ]
enum_CacheMode := [ "LOCAL_DOCKER_LAYER_CACHE", "LOCAL_SOURCE_CACHE", "LOCAL_CUSTOM_CACHE" ]
enum_CacheType := [ "NO_CACHE", "S3", "LOCAL" ]
enum_ComputeType := [ "BUILD_GENERAL1_SMALL", "BUILD_GENERAL1_MEDIUM", "BUILD_GENERAL1_LARGE", "BUILD_GENERAL1_XLARGE", "BUILD_GENERAL1_2XLARGE", "BUILD_LAMBDA_1GB", "BUILD_LAMBDA_2GB", "BUILD_LAMBDA_4GB", "BUILD_LAMBDA_8GB", "BUILD_LAMBDA_10GB" ]
enum_CredentialProviderType := [ "SECRETS_MANAGER" ]
enum_EnvironmentType := [ "WINDOWS_CONTAINER", "LINUX_CONTAINER", "LINUX_GPU_CONTAINER", "ARM_CONTAINER", "WINDOWS_SERVER_2019_CONTAINER", "LINUX_LAMBDA_CONTAINER", "ARM_LAMBDA_CONTAINER" ]
enum_EnvironmentVariableType := [ "PLAINTEXT", "PARAMETER_STORE", "SECRETS_MANAGER" ]
enum_ImagePullCredentialsType := [ "CODEBUILD", "SERVICE_ROLE" ]
enum_LogsConfigStatusType := [ "ENABLED", "DISABLED" ]
enum_SourceAuthType := [ "OAUTH" ]
enum_SourceType := [ "CODECOMMIT", "CODEPIPELINE", "GITHUB", "S3", "BITBUCKET", "GITHUB_ENTERPRISE", "NO_SOURCE" ]

valid {
    input.Body.projectName == STRING
    input.Body.secondarySourcesOverride[_].type == enum_SourceType[_]
    input.Body.secondarySourcesOverride[_].location == STRING
    input.Body.secondarySourcesOverride[_].gitCloneDepth == INTEGER
    input.Body.secondarySourcesOverride[_].gitSubmodulesConfig.fetchSubmodules == BOOLEAN
    input.Body.secondarySourcesOverride[_].buildspec == STRING
    input.Body.secondarySourcesOverride[_].auth.type == enum_SourceAuthType[_]
    input.Body.secondarySourcesOverride[_].auth.resource == STRING
    input.Body.secondarySourcesOverride[_].reportBuildStatus == BOOLEAN
    input.Body.secondarySourcesOverride[_].buildStatusConfig.context == STRING
    input.Body.secondarySourcesOverride[_].buildStatusConfig.targetUrl == STRING
    input.Body.secondarySourcesOverride[_].insecureSsl == BOOLEAN
    input.Body.secondarySourcesOverride[_].sourceIdentifier == STRING
    input.Body.secondarySourcesVersionOverride[_].sourceIdentifier == STRING
    input.Body.secondarySourcesVersionOverride[_].sourceVersion == STRING
    input.Body.sourceVersion == STRING
    input.Body.artifactsOverride.type == enum_ArtifactsType[_]
    input.Body.artifactsOverride.location == STRING
    input.Body.artifactsOverride.path == STRING
    input.Body.artifactsOverride.namespaceType == enum_ArtifactNamespace[_]
    input.Body.artifactsOverride.name == STRING
    input.Body.artifactsOverride.packaging == enum_ArtifactPackaging[_]
    input.Body.artifactsOverride.overrideArtifactName == BOOLEAN
    input.Body.artifactsOverride.encryptionDisabled == BOOLEAN
    input.Body.artifactsOverride.artifactIdentifier == STRING
    input.Body.artifactsOverride.bucketOwnerAccess == enum_BucketOwnerAccess[_]
    input.Body.secondaryArtifactsOverride[_].type == enum_ArtifactsType[_]
    input.Body.secondaryArtifactsOverride[_].location == STRING
    input.Body.secondaryArtifactsOverride[_].path == STRING
    input.Body.secondaryArtifactsOverride[_].namespaceType == enum_ArtifactNamespace[_]
    input.Body.secondaryArtifactsOverride[_].name == STRING
    input.Body.secondaryArtifactsOverride[_].packaging == enum_ArtifactPackaging[_]
    input.Body.secondaryArtifactsOverride[_].overrideArtifactName == BOOLEAN
    input.Body.secondaryArtifactsOverride[_].encryptionDisabled == BOOLEAN
    input.Body.secondaryArtifactsOverride[_].artifactIdentifier == STRING
    input.Body.secondaryArtifactsOverride[_].bucketOwnerAccess == enum_BucketOwnerAccess[_]
    input.Body.environmentVariablesOverride[_].name == STRING
    input.Body.environmentVariablesOverride[_].value == STRING
    input.Body.environmentVariablesOverride[_].type == enum_EnvironmentVariableType[_]
    input.Body.sourceTypeOverride == enum_SourceType[_]
    input.Body.sourceLocationOverride == STRING
    input.Body.sourceAuthOverride.type == enum_SourceAuthType[_]
    input.Body.sourceAuthOverride.resource == STRING
    input.Body.gitCloneDepthOverride == INTEGER
    input.Body.gitSubmodulesConfigOverride.fetchSubmodules == BOOLEAN
    input.Body.buildspecOverride == STRING
    input.Body.insecureSslOverride == BOOLEAN
    input.Body.reportBuildBatchStatusOverride == BOOLEAN
    input.Body.environmentTypeOverride == enum_EnvironmentType[_]
    input.Body.imageOverride == STRING
    input.Body.computeTypeOverride == enum_ComputeType[_]
    input.Body.certificateOverride == STRING
    input.Body.cacheOverride.type == enum_CacheType[_]
    input.Body.cacheOverride.location == STRING
    input.Body.cacheOverride.modes[_] == enum_CacheMode[_]
    input.Body.serviceRoleOverride == STRING
    input.Body.privilegedModeOverride == BOOLEAN
    input.Body.buildTimeoutInMinutesOverride == INTEGER
    input.Body.queuedTimeoutInMinutesOverride == INTEGER
    input.Body.encryptionKeyOverride == STRING
    input.Body.idempotencyToken == STRING
    input.Body.logsConfigOverride.cloudWatchLogs.status == enum_LogsConfigStatusType[_]
    input.Body.logsConfigOverride.cloudWatchLogs.groupName == STRING
    input.Body.logsConfigOverride.cloudWatchLogs.streamName == STRING
    input.Body.logsConfigOverride.s3Logs.status == enum_LogsConfigStatusType[_]
    input.Body.logsConfigOverride.s3Logs.location == STRING
    input.Body.logsConfigOverride.s3Logs.encryptionDisabled == BOOLEAN
    input.Body.logsConfigOverride.s3Logs.bucketOwnerAccess == enum_BucketOwnerAccess[_]
    input.Body.registryCredentialOverride.credential == STRING
    input.Body.registryCredentialOverride.credentialProvider == enum_CredentialProviderType[_]
    input.Body.imagePullCredentialsTypeOverride == enum_ImagePullCredentialsType[_]
    input.Body.buildBatchConfigOverride.serviceRole == STRING
    input.Body.buildBatchConfigOverride.combineArtifacts == BOOLEAN
    input.Body.buildBatchConfigOverride.restrictions.maximumBuildsAllowed == INTEGER
    input.Body.buildBatchConfigOverride.restrictions.computeTypesAllowed[_] == STRING
    input.Body.buildBatchConfigOverride.timeoutInMins == INTEGER
    input.Body.buildBatchConfigOverride.batchReportMode == enum_BatchReportModeType[_]
    input.Body.debugSessionEnabled == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopBuild

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

StopBuildBatch

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

UpdateFleet

enum_ComputeType := [ "BUILD_GENERAL1_SMALL", "BUILD_GENERAL1_MEDIUM", "BUILD_GENERAL1_LARGE", "BUILD_GENERAL1_XLARGE", "BUILD_GENERAL1_2XLARGE", "BUILD_LAMBDA_1GB", "BUILD_LAMBDA_2GB", "BUILD_LAMBDA_4GB", "BUILD_LAMBDA_8GB", "BUILD_LAMBDA_10GB" ]
enum_EnvironmentType := [ "WINDOWS_CONTAINER", "LINUX_CONTAINER", "LINUX_GPU_CONTAINER", "ARM_CONTAINER", "WINDOWS_SERVER_2019_CONTAINER", "LINUX_LAMBDA_CONTAINER", "ARM_LAMBDA_CONTAINER" ]
enum_FleetScalingMetricType := [ "FLEET_UTILIZATION_RATE" ]
enum_FleetScalingType := [ "TARGET_TRACKING_SCALING" ]

valid {
    input.Body.arn == STRING
    input.Body.baseCapacity == INTEGER
    input.Body.environmentType == enum_EnvironmentType[_]
    input.Body.computeType == enum_ComputeType[_]
    input.Body.scalingConfiguration.scalingType == enum_FleetScalingType[_]
    input.Body.scalingConfiguration.targetTrackingScalingConfigs[_].metricType == enum_FleetScalingMetricType[_]
    input.Body.scalingConfiguration.targetTrackingScalingConfigs[_].targetValue == DOUBLE
    input.Body.scalingConfiguration.maxCapacity == INTEGER
    input.Body.tags[_].key == STRING
    input.Body.tags[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateProject

enum_ArtifactNamespace := [ "NONE", "BUILD_ID" ]
enum_ArtifactPackaging := [ "NONE", "ZIP" ]
enum_ArtifactsType := [ "CODEPIPELINE", "S3", "NO_ARTIFACTS" ]
enum_BatchReportModeType := [ "REPORT_INDIVIDUAL_BUILDS", "REPORT_AGGREGATED_BATCH" ]
enum_BucketOwnerAccess := [ "NONE", "READ_ONLY", "FULL" ]
enum_CacheMode := [ "LOCAL_DOCKER_LAYER_CACHE", "LOCAL_SOURCE_CACHE", "LOCAL_CUSTOM_CACHE" ]
enum_CacheType := [ "NO_CACHE", "S3", "LOCAL" ]
enum_ComputeType := [ "BUILD_GENERAL1_SMALL", "BUILD_GENERAL1_MEDIUM", "BUILD_GENERAL1_LARGE", "BUILD_GENERAL1_XLARGE", "BUILD_GENERAL1_2XLARGE", "BUILD_LAMBDA_1GB", "BUILD_LAMBDA_2GB", "BUILD_LAMBDA_4GB", "BUILD_LAMBDA_8GB", "BUILD_LAMBDA_10GB" ]
enum_CredentialProviderType := [ "SECRETS_MANAGER" ]
enum_EnvironmentType := [ "WINDOWS_CONTAINER", "LINUX_CONTAINER", "LINUX_GPU_CONTAINER", "ARM_CONTAINER", "WINDOWS_SERVER_2019_CONTAINER", "LINUX_LAMBDA_CONTAINER", "ARM_LAMBDA_CONTAINER" ]
enum_EnvironmentVariableType := [ "PLAINTEXT", "PARAMETER_STORE", "SECRETS_MANAGER" ]
enum_FileSystemType := [ "EFS" ]
enum_ImagePullCredentialsType := [ "CODEBUILD", "SERVICE_ROLE" ]
enum_LogsConfigStatusType := [ "ENABLED", "DISABLED" ]
enum_SourceAuthType := [ "OAUTH" ]
enum_SourceType := [ "CODECOMMIT", "CODEPIPELINE", "GITHUB", "S3", "BITBUCKET", "GITHUB_ENTERPRISE", "NO_SOURCE" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.source.type == enum_SourceType[_]
    input.Body.source.location == STRING
    input.Body.source.gitCloneDepth == INTEGER
    input.Body.source.gitSubmodulesConfig.fetchSubmodules == BOOLEAN
    input.Body.source.buildspec == STRING
    input.Body.source.auth.type == enum_SourceAuthType[_]
    input.Body.source.auth.resource == STRING
    input.Body.source.reportBuildStatus == BOOLEAN
    input.Body.source.buildStatusConfig.context == STRING
    input.Body.source.buildStatusConfig.targetUrl == STRING
    input.Body.source.insecureSsl == BOOLEAN
    input.Body.source.sourceIdentifier == STRING
    input.Body.secondarySources[_].type == enum_SourceType[_]
    input.Body.secondarySources[_].location == STRING
    input.Body.secondarySources[_].gitCloneDepth == INTEGER
    input.Body.secondarySources[_].gitSubmodulesConfig.fetchSubmodules == BOOLEAN
    input.Body.secondarySources[_].buildspec == STRING
    input.Body.secondarySources[_].auth.type == enum_SourceAuthType[_]
    input.Body.secondarySources[_].auth.resource == STRING
    input.Body.secondarySources[_].reportBuildStatus == BOOLEAN
    input.Body.secondarySources[_].buildStatusConfig.context == STRING
    input.Body.secondarySources[_].buildStatusConfig.targetUrl == STRING
    input.Body.secondarySources[_].insecureSsl == BOOLEAN
    input.Body.secondarySources[_].sourceIdentifier == STRING
    input.Body.sourceVersion == STRING
    input.Body.secondarySourceVersions[_].sourceIdentifier == STRING
    input.Body.secondarySourceVersions[_].sourceVersion == STRING
    input.Body.artifacts.type == enum_ArtifactsType[_]
    input.Body.artifacts.location == STRING
    input.Body.artifacts.path == STRING
    input.Body.artifacts.namespaceType == enum_ArtifactNamespace[_]
    input.Body.artifacts.name == STRING
    input.Body.artifacts.packaging == enum_ArtifactPackaging[_]
    input.Body.artifacts.overrideArtifactName == BOOLEAN
    input.Body.artifacts.encryptionDisabled == BOOLEAN
    input.Body.artifacts.artifactIdentifier == STRING
    input.Body.artifacts.bucketOwnerAccess == enum_BucketOwnerAccess[_]
    input.Body.secondaryArtifacts[_].type == enum_ArtifactsType[_]
    input.Body.secondaryArtifacts[_].location == STRING
    input.Body.secondaryArtifacts[_].path == STRING
    input.Body.secondaryArtifacts[_].namespaceType == enum_ArtifactNamespace[_]
    input.Body.secondaryArtifacts[_].name == STRING
    input.Body.secondaryArtifacts[_].packaging == enum_ArtifactPackaging[_]
    input.Body.secondaryArtifacts[_].overrideArtifactName == BOOLEAN
    input.Body.secondaryArtifacts[_].encryptionDisabled == BOOLEAN
    input.Body.secondaryArtifacts[_].artifactIdentifier == STRING
    input.Body.secondaryArtifacts[_].bucketOwnerAccess == enum_BucketOwnerAccess[_]
    input.Body.cache.type == enum_CacheType[_]
    input.Body.cache.location == STRING
    input.Body.cache.modes[_] == enum_CacheMode[_]
    input.Body.environment.type == enum_EnvironmentType[_]
    input.Body.environment.image == STRING
    input.Body.environment.computeType == enum_ComputeType[_]
    input.Body.environment.fleet.fleetArn == STRING
    input.Body.environment.environmentVariables[_].name == STRING
    input.Body.environment.environmentVariables[_].value == STRING
    input.Body.environment.environmentVariables[_].type == enum_EnvironmentVariableType[_]
    input.Body.environment.privilegedMode == BOOLEAN
    input.Body.environment.certificate == STRING
    input.Body.environment.registryCredential.credential == STRING
    input.Body.environment.registryCredential.credentialProvider == enum_CredentialProviderType[_]
    input.Body.environment.imagePullCredentialsType == enum_ImagePullCredentialsType[_]
    input.Body.serviceRole == STRING
    input.Body.timeoutInMinutes == INTEGER
    input.Body.queuedTimeoutInMinutes == INTEGER
    input.Body.encryptionKey == STRING
    input.Body.tags[_].key == STRING
    input.Body.tags[_].value == STRING
    input.Body.vpcConfig.vpcId == STRING
    input.Body.vpcConfig.subnets[_] == STRING
    input.Body.vpcConfig.securityGroupIds[_] == STRING
    input.Body.badgeEnabled == BOOLEAN
    input.Body.logsConfig.cloudWatchLogs.status == enum_LogsConfigStatusType[_]
    input.Body.logsConfig.cloudWatchLogs.groupName == STRING
    input.Body.logsConfig.cloudWatchLogs.streamName == STRING
    input.Body.logsConfig.s3Logs.status == enum_LogsConfigStatusType[_]
    input.Body.logsConfig.s3Logs.location == STRING
    input.Body.logsConfig.s3Logs.encryptionDisabled == BOOLEAN
    input.Body.logsConfig.s3Logs.bucketOwnerAccess == enum_BucketOwnerAccess[_]
    input.Body.fileSystemLocations[_].type == enum_FileSystemType[_]
    input.Body.fileSystemLocations[_].location == STRING
    input.Body.fileSystemLocations[_].mountPoint == STRING
    input.Body.fileSystemLocations[_].identifier == STRING
    input.Body.fileSystemLocations[_].mountOptions == STRING
    input.Body.buildBatchConfig.serviceRole == STRING
    input.Body.buildBatchConfig.combineArtifacts == BOOLEAN
    input.Body.buildBatchConfig.restrictions.maximumBuildsAllowed == INTEGER
    input.Body.buildBatchConfig.restrictions.computeTypesAllowed[_] == STRING
    input.Body.buildBatchConfig.timeoutInMins == INTEGER
    input.Body.buildBatchConfig.batchReportMode == enum_BatchReportModeType[_]
    input.Body.concurrentBuildLimit == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateProjectVisibility

enum_ProjectVisibilityType := [ "PUBLIC_READ", "PRIVATE" ]

valid {
    input.Body.projectArn == STRING
    input.Body.projectVisibility == enum_ProjectVisibilityType[_]
    input.Body.resourceAccessRole == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateReportGroup

enum_ReportExportConfigType := [ "S3", "NO_EXPORT" ]
enum_ReportPackagingType := [ "ZIP", "NONE" ]

valid {
    input.Body.arn == STRING
    input.Body.exportConfig.exportConfigType == enum_ReportExportConfigType[_]
    input.Body.exportConfig.s3Destination.bucket == STRING
    input.Body.exportConfig.s3Destination.bucketOwner == STRING
    input.Body.exportConfig.s3Destination.path == STRING
    input.Body.exportConfig.s3Destination.packaging == enum_ReportPackagingType[_]
    input.Body.exportConfig.s3Destination.encryptionKey == STRING
    input.Body.exportConfig.s3Destination.encryptionDisabled == BOOLEAN
    input.Body.tags[_].key == STRING
    input.Body.tags[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateWebhook

enum_WebhookBuildType := [ "BUILD", "BUILD_BATCH" ]
enum_WebhookFilterType := [ "EVENT", "BASE_REF", "HEAD_REF", "ACTOR_ACCOUNT_ID", "FILE_PATH", "COMMIT_MESSAGE" ]

valid {
    input.Body.projectName == STRING
    input.Body.branchFilter == STRING
    input.Body.rotateSecret == BOOLEAN
    input.Body.filterGroups[_][_].type == enum_WebhookFilterType[_]
    input.Body.filterGroups[_][_].pattern == STRING
    input.Body.filterGroups[_][_].excludeMatchedPattern == BOOLEAN
    input.Body.buildType == enum_WebhookBuildType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}