CONTAINERANALYSIS

containeranalysis.projects.locations.notes.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.locations.notes.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.locations.notes.occurrences.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.locations.occurrences.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.locations.occurrences.getNotes

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.locations.occurrences.getVulnerabilitySummary

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.locations.occurrences.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.locations.resources.exportSBOM

valid {
    input.Body.cloudStorageLocation.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.locations.resources.generatePackagesSummary

valid {
    input.Body.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.notes.batchCreate

enum_AssessmentState := [ "STATE_UNSPECIFIED", "AFFECTED", "NOT_AFFECTED", "FIXED", "UNDER_INVESTIGATION" ]
enum_CVSSAttackComplexity := [ "ATTACK_COMPLEXITY_UNSPECIFIED", "ATTACK_COMPLEXITY_LOW", "ATTACK_COMPLEXITY_HIGH", "ATTACK_COMPLEXITY_MEDIUM" ]
enum_CVSSAttackVector := [ "ATTACK_VECTOR_UNSPECIFIED", "ATTACK_VECTOR_NETWORK", "ATTACK_VECTOR_ADJACENT", "ATTACK_VECTOR_LOCAL", "ATTACK_VECTOR_PHYSICAL" ]
enum_CVSSAuthentication := [ "AUTHENTICATION_UNSPECIFIED", "AUTHENTICATION_MULTIPLE", "AUTHENTICATION_SINGLE", "AUTHENTICATION_NONE" ]
enum_CVSSAvailabilityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSConfidentialityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSIntegrityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSPrivilegesRequired := [ "PRIVILEGES_REQUIRED_UNSPECIFIED", "PRIVILEGES_REQUIRED_NONE", "PRIVILEGES_REQUIRED_LOW", "PRIVILEGES_REQUIRED_HIGH" ]
enum_CVSSScope := [ "SCOPE_UNSPECIFIED", "SCOPE_UNCHANGED", "SCOPE_CHANGED" ]
enum_CVSSUserInteraction := [ "USER_INTERACTION_UNSPECIFIED", "USER_INTERACTION_NONE", "USER_INTERACTION_REQUIRED" ]
enum_CVSSv3AttackComplexity := [ "ATTACK_COMPLEXITY_UNSPECIFIED", "ATTACK_COMPLEXITY_LOW", "ATTACK_COMPLEXITY_HIGH" ]
enum_CVSSv3AttackVector := [ "ATTACK_VECTOR_UNSPECIFIED", "ATTACK_VECTOR_NETWORK", "ATTACK_VECTOR_ADJACENT", "ATTACK_VECTOR_LOCAL", "ATTACK_VECTOR_PHYSICAL" ]
enum_CVSSv3AvailabilityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE" ]
enum_CVSSv3ConfidentialityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE" ]
enum_CVSSv3IntegrityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE" ]
enum_CVSSv3PrivilegesRequired := [ "PRIVILEGES_REQUIRED_UNSPECIFIED", "PRIVILEGES_REQUIRED_NONE", "PRIVILEGES_REQUIRED_LOW", "PRIVILEGES_REQUIRED_HIGH" ]
enum_CVSSv3Scope := [ "SCOPE_UNSPECIFIED", "SCOPE_UNCHANGED", "SCOPE_CHANGED" ]
enum_CVSSv3UserInteraction := [ "USER_INTERACTION_UNSPECIFIED", "USER_INTERACTION_NONE", "USER_INTERACTION_REQUIRED" ]
enum_CisBenchmarkSeverity := [ "SEVERITY_UNSPECIFIED", "MINIMAL", "LOW", "MEDIUM", "HIGH", "CRITICAL" ]
enum_DiscoveryNoteAnalysisKind := [ "NOTE_KIND_UNSPECIFIED", "VULNERABILITY", "BUILD", "IMAGE", "PACKAGE", "DEPLOYMENT", "DISCOVERY", "ATTESTATION", "UPGRADE", "COMPLIANCE", "DSSE_ATTESTATION", "VULNERABILITY_ASSESSMENT", "SBOM_REFERENCE" ]
enum_DistributionArchitecture := [ "ARCHITECTURE_UNSPECIFIED", "X86", "X64" ]
enum_JustificationJustificationType := [ "JUSTIFICATION_TYPE_UNSPECIFIED", "COMPONENT_NOT_PRESENT", "VULNERABLE_CODE_NOT_PRESENT", "VULNERABLE_CODE_NOT_IN_EXECUTE_PATH", "VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY", "INLINE_MITIGATIONS_ALREADY_EXIST" ]
enum_NoteKind := [ "NOTE_KIND_UNSPECIFIED", "VULNERABILITY", "BUILD", "IMAGE", "PACKAGE", "DEPLOYMENT", "DISCOVERY", "ATTESTATION", "UPGRADE", "COMPLIANCE", "DSSE_ATTESTATION", "VULNERABILITY_ASSESSMENT", "SBOM_REFERENCE" ]
enum_PackageNoteArchitecture := [ "ARCHITECTURE_UNSPECIFIED", "X86", "X64" ]
enum_RemediationRemediationType := [ "REMEDIATION_TYPE_UNSPECIFIED", "MITIGATION", "NO_FIX_PLANNED", "NONE_AVAILABLE", "VENDOR_FIX", "WORKAROUND" ]
enum_VersionKind := [ "VERSION_KIND_UNSPECIFIED", "NORMAL", "MINIMUM", "MAXIMUM" ]
enum_VulnerabilityNoteCvssVersion := [ "CVSS_VERSION_UNSPECIFIED", "CVSS_VERSION_2", "CVSS_VERSION_3" ]
enum_VulnerabilityNoteSeverity := [ "SEVERITY_UNSPECIFIED", "MINIMAL", "LOW", "MEDIUM", "HIGH", "CRITICAL" ]

valid {
    input.Body.notes.STRING.attestation.hint.humanReadableName == STRING
    input.Body.notes.STRING.build.builderVersion == STRING
    input.Body.notes.STRING.compliance.cisBenchmark.profileLevel == INTEGER
    input.Body.notes.STRING.compliance.cisBenchmark.severity == enum_CisBenchmarkSeverity[_]
    input.Body.notes.STRING.compliance.description == STRING
    input.Body.notes.STRING.compliance.impact == STRING
    input.Body.notes.STRING.compliance.rationale == STRING
    input.Body.notes.STRING.compliance.remediation == STRING
    input.Body.notes.STRING.compliance.scanInstructions == STRING
    input.Body.notes.STRING.compliance.title == STRING
    input.Body.notes.STRING.compliance.version[_].benchmarkDocument == STRING
    input.Body.notes.STRING.compliance.version[_].cpeUri == STRING
    input.Body.notes.STRING.compliance.version[_].version == STRING
    input.Body.notes.STRING.createTime == STRING
    input.Body.notes.STRING.deployment.resourceUri[_] == STRING
    input.Body.notes.STRING.discovery.analysisKind == enum_DiscoveryNoteAnalysisKind[_]
    input.Body.notes.STRING.dsseAttestation.hint.humanReadableName == STRING
    input.Body.notes.STRING.expirationTime == STRING
    input.Body.notes.STRING.image.fingerprint.v1Name == STRING
    input.Body.notes.STRING.image.fingerprint.v2Blob[_] == STRING
    input.Body.notes.STRING.image.fingerprint.v2Name == STRING
    input.Body.notes.STRING.image.resourceUrl == STRING
    input.Body.notes.STRING.kind == enum_NoteKind[_]
    input.Body.notes.STRING.longDescription == STRING
    input.Body.notes.STRING.name == STRING
    input.Body.notes.STRING.package.architecture == enum_PackageNoteArchitecture[_]
    input.Body.notes.STRING.package.cpeUri == STRING
    input.Body.notes.STRING.package.description == STRING
    input.Body.notes.STRING.package.digest[_].algo == STRING
    input.Body.notes.STRING.package.digest[_].digestBytes == STRING
    input.Body.notes.STRING.package.distribution[_].architecture == enum_DistributionArchitecture[_]
    input.Body.notes.STRING.package.distribution[_].cpeUri == STRING
    input.Body.notes.STRING.package.distribution[_].description == STRING
    input.Body.notes.STRING.package.distribution[_].latestVersion.epoch == INTEGER
    input.Body.notes.STRING.package.distribution[_].latestVersion.fullName == STRING
    input.Body.notes.STRING.package.distribution[_].latestVersion.inclusive == BOOLEAN
    input.Body.notes.STRING.package.distribution[_].latestVersion.kind == enum_VersionKind[_]
    input.Body.notes.STRING.package.distribution[_].latestVersion.name == STRING
    input.Body.notes.STRING.package.distribution[_].latestVersion.revision == STRING
    input.Body.notes.STRING.package.distribution[_].maintainer == STRING
    input.Body.notes.STRING.package.distribution[_].url == STRING
    input.Body.notes.STRING.package.license.comments == STRING
    input.Body.notes.STRING.package.license.expression == STRING
    input.Body.notes.STRING.package.maintainer == STRING
    input.Body.notes.STRING.package.name == STRING
    input.Body.notes.STRING.package.packageType == STRING
    input.Body.notes.STRING.package.url == STRING
    input.Body.notes.STRING.package.version.epoch == INTEGER
    input.Body.notes.STRING.package.version.fullName == STRING
    input.Body.notes.STRING.package.version.inclusive == BOOLEAN
    input.Body.notes.STRING.package.version.kind == enum_VersionKind[_]
    input.Body.notes.STRING.package.version.name == STRING
    input.Body.notes.STRING.package.version.revision == STRING
    input.Body.notes.STRING.relatedNoteNames[_] == STRING
    input.Body.notes.STRING.relatedUrl[_].label == STRING
    input.Body.notes.STRING.relatedUrl[_].url == STRING
    input.Body.notes.STRING.sbomReference.format == STRING
    input.Body.notes.STRING.sbomReference.version == STRING
    input.Body.notes.STRING.shortDescription == STRING
    input.Body.notes.STRING.updateTime == STRING
    input.Body.notes.STRING.upgrade.distributions[_].classification == STRING
    input.Body.notes.STRING.upgrade.distributions[_].cpeUri == STRING
    input.Body.notes.STRING.upgrade.distributions[_].cve[_] == STRING
    input.Body.notes.STRING.upgrade.distributions[_].severity == STRING
    input.Body.notes.STRING.upgrade.package == STRING
    input.Body.notes.STRING.upgrade.version.epoch == INTEGER
    input.Body.notes.STRING.upgrade.version.fullName == STRING
    input.Body.notes.STRING.upgrade.version.inclusive == BOOLEAN
    input.Body.notes.STRING.upgrade.version.kind == enum_VersionKind[_]
    input.Body.notes.STRING.upgrade.version.name == STRING
    input.Body.notes.STRING.upgrade.version.revision == STRING
    input.Body.notes.STRING.upgrade.windowsUpdate.categories[_].categoryId == STRING
    input.Body.notes.STRING.upgrade.windowsUpdate.categories[_].name == STRING
    input.Body.notes.STRING.upgrade.windowsUpdate.description == STRING
    input.Body.notes.STRING.upgrade.windowsUpdate.identity.revision == INTEGER
    input.Body.notes.STRING.upgrade.windowsUpdate.identity.updateId == STRING
    input.Body.notes.STRING.upgrade.windowsUpdate.kbArticleIds[_] == STRING
    input.Body.notes.STRING.upgrade.windowsUpdate.lastPublishedTimestamp == STRING
    input.Body.notes.STRING.upgrade.windowsUpdate.supportUrl == STRING
    input.Body.notes.STRING.upgrade.windowsUpdate.title == STRING
    input.Body.notes.STRING.vulnerability.cvssScore == NUMBER
    input.Body.notes.STRING.vulnerability.cvssV2.attackComplexity == enum_CVSSAttackComplexity[_]
    input.Body.notes.STRING.vulnerability.cvssV2.attackVector == enum_CVSSAttackVector[_]
    input.Body.notes.STRING.vulnerability.cvssV2.authentication == enum_CVSSAuthentication[_]
    input.Body.notes.STRING.vulnerability.cvssV2.availabilityImpact == enum_CVSSAvailabilityImpact[_]
    input.Body.notes.STRING.vulnerability.cvssV2.baseScore == NUMBER
    input.Body.notes.STRING.vulnerability.cvssV2.confidentialityImpact == enum_CVSSConfidentialityImpact[_]
    input.Body.notes.STRING.vulnerability.cvssV2.exploitabilityScore == NUMBER
    input.Body.notes.STRING.vulnerability.cvssV2.impactScore == NUMBER
    input.Body.notes.STRING.vulnerability.cvssV2.integrityImpact == enum_CVSSIntegrityImpact[_]
    input.Body.notes.STRING.vulnerability.cvssV2.privilegesRequired == enum_CVSSPrivilegesRequired[_]
    input.Body.notes.STRING.vulnerability.cvssV2.scope == enum_CVSSScope[_]
    input.Body.notes.STRING.vulnerability.cvssV2.userInteraction == enum_CVSSUserInteraction[_]
    input.Body.notes.STRING.vulnerability.cvssV3.attackComplexity == enum_CVSSv3AttackComplexity[_]
    input.Body.notes.STRING.vulnerability.cvssV3.attackVector == enum_CVSSv3AttackVector[_]
    input.Body.notes.STRING.vulnerability.cvssV3.availabilityImpact == enum_CVSSv3AvailabilityImpact[_]
    input.Body.notes.STRING.vulnerability.cvssV3.baseScore == NUMBER
    input.Body.notes.STRING.vulnerability.cvssV3.confidentialityImpact == enum_CVSSv3ConfidentialityImpact[_]
    input.Body.notes.STRING.vulnerability.cvssV3.exploitabilityScore == NUMBER
    input.Body.notes.STRING.vulnerability.cvssV3.impactScore == NUMBER
    input.Body.notes.STRING.vulnerability.cvssV3.integrityImpact == enum_CVSSv3IntegrityImpact[_]
    input.Body.notes.STRING.vulnerability.cvssV3.privilegesRequired == enum_CVSSv3PrivilegesRequired[_]
    input.Body.notes.STRING.vulnerability.cvssV3.scope == enum_CVSSv3Scope[_]
    input.Body.notes.STRING.vulnerability.cvssV3.userInteraction == enum_CVSSv3UserInteraction[_]
    input.Body.notes.STRING.vulnerability.cvssVersion == enum_VulnerabilityNoteCvssVersion[_]
    input.Body.notes.STRING.vulnerability.details[_].affectedCpeUri == STRING
    input.Body.notes.STRING.vulnerability.details[_].affectedPackage == STRING
    input.Body.notes.STRING.vulnerability.details[_].affectedVersionEnd.epoch == INTEGER
    input.Body.notes.STRING.vulnerability.details[_].affectedVersionEnd.fullName == STRING
    input.Body.notes.STRING.vulnerability.details[_].affectedVersionEnd.inclusive == BOOLEAN
    input.Body.notes.STRING.vulnerability.details[_].affectedVersionEnd.kind == enum_VersionKind[_]
    input.Body.notes.STRING.vulnerability.details[_].affectedVersionEnd.name == STRING
    input.Body.notes.STRING.vulnerability.details[_].affectedVersionEnd.revision == STRING
    input.Body.notes.STRING.vulnerability.details[_].affectedVersionStart.epoch == INTEGER
    input.Body.notes.STRING.vulnerability.details[_].affectedVersionStart.fullName == STRING
    input.Body.notes.STRING.vulnerability.details[_].affectedVersionStart.inclusive == BOOLEAN
    input.Body.notes.STRING.vulnerability.details[_].affectedVersionStart.kind == enum_VersionKind[_]
    input.Body.notes.STRING.vulnerability.details[_].affectedVersionStart.name == STRING
    input.Body.notes.STRING.vulnerability.details[_].affectedVersionStart.revision == STRING
    input.Body.notes.STRING.vulnerability.details[_].description == STRING
    input.Body.notes.STRING.vulnerability.details[_].fixedCpeUri == STRING
    input.Body.notes.STRING.vulnerability.details[_].fixedPackage == STRING
    input.Body.notes.STRING.vulnerability.details[_].fixedVersion.epoch == INTEGER
    input.Body.notes.STRING.vulnerability.details[_].fixedVersion.fullName == STRING
    input.Body.notes.STRING.vulnerability.details[_].fixedVersion.inclusive == BOOLEAN
    input.Body.notes.STRING.vulnerability.details[_].fixedVersion.kind == enum_VersionKind[_]
    input.Body.notes.STRING.vulnerability.details[_].fixedVersion.name == STRING
    input.Body.notes.STRING.vulnerability.details[_].fixedVersion.revision == STRING
    input.Body.notes.STRING.vulnerability.details[_].isObsolete == BOOLEAN
    input.Body.notes.STRING.vulnerability.details[_].packageType == STRING
    input.Body.notes.STRING.vulnerability.details[_].severityName == STRING
    input.Body.notes.STRING.vulnerability.details[_].source == STRING
    input.Body.notes.STRING.vulnerability.details[_].sourceUpdateTime == STRING
    input.Body.notes.STRING.vulnerability.details[_].vendor == STRING
    input.Body.notes.STRING.vulnerability.severity == enum_VulnerabilityNoteSeverity[_]
    input.Body.notes.STRING.vulnerability.sourceUpdateTime == STRING
    input.Body.notes.STRING.vulnerability.windowsDetails[_].cpeUri == STRING
    input.Body.notes.STRING.vulnerability.windowsDetails[_].description == STRING
    input.Body.notes.STRING.vulnerability.windowsDetails[_].fixingKbs[_].name == STRING
    input.Body.notes.STRING.vulnerability.windowsDetails[_].fixingKbs[_].url == STRING
    input.Body.notes.STRING.vulnerability.windowsDetails[_].name == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.assessment.cve == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.assessment.impacts[_] == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.assessment.justification.details == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.assessment.justification.justificationType == enum_JustificationJustificationType[_]
    input.Body.notes.STRING.vulnerabilityAssessment.assessment.longDescription == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.assessment.relatedUris[_].label == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.assessment.relatedUris[_].url == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.assessment.remediations[_].details == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.assessment.remediations[_].remediationType == enum_RemediationRemediationType[_]
    input.Body.notes.STRING.vulnerabilityAssessment.assessment.remediations[_].remediationUri.label == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.assessment.remediations[_].remediationUri.url == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.assessment.shortDescription == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.assessment.state == enum_AssessmentState[_]
    input.Body.notes.STRING.vulnerabilityAssessment.assessment.vulnerabilityId == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.languageCode == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.longDescription == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.product.genericUri == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.product.id == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.product.name == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.publisher.issuingAuthority == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.publisher.name == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.publisher.publisherNamespace == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.shortDescription == STRING
    input.Body.notes.STRING.vulnerabilityAssessment.title == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.notes.create

enum_AssessmentState := [ "STATE_UNSPECIFIED", "AFFECTED", "NOT_AFFECTED", "FIXED", "UNDER_INVESTIGATION" ]
enum_CVSSAttackComplexity := [ "ATTACK_COMPLEXITY_UNSPECIFIED", "ATTACK_COMPLEXITY_LOW", "ATTACK_COMPLEXITY_HIGH", "ATTACK_COMPLEXITY_MEDIUM" ]
enum_CVSSAttackVector := [ "ATTACK_VECTOR_UNSPECIFIED", "ATTACK_VECTOR_NETWORK", "ATTACK_VECTOR_ADJACENT", "ATTACK_VECTOR_LOCAL", "ATTACK_VECTOR_PHYSICAL" ]
enum_CVSSAuthentication := [ "AUTHENTICATION_UNSPECIFIED", "AUTHENTICATION_MULTIPLE", "AUTHENTICATION_SINGLE", "AUTHENTICATION_NONE" ]
enum_CVSSAvailabilityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSConfidentialityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSIntegrityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSPrivilegesRequired := [ "PRIVILEGES_REQUIRED_UNSPECIFIED", "PRIVILEGES_REQUIRED_NONE", "PRIVILEGES_REQUIRED_LOW", "PRIVILEGES_REQUIRED_HIGH" ]
enum_CVSSScope := [ "SCOPE_UNSPECIFIED", "SCOPE_UNCHANGED", "SCOPE_CHANGED" ]
enum_CVSSUserInteraction := [ "USER_INTERACTION_UNSPECIFIED", "USER_INTERACTION_NONE", "USER_INTERACTION_REQUIRED" ]
enum_CVSSv3AttackComplexity := [ "ATTACK_COMPLEXITY_UNSPECIFIED", "ATTACK_COMPLEXITY_LOW", "ATTACK_COMPLEXITY_HIGH" ]
enum_CVSSv3AttackVector := [ "ATTACK_VECTOR_UNSPECIFIED", "ATTACK_VECTOR_NETWORK", "ATTACK_VECTOR_ADJACENT", "ATTACK_VECTOR_LOCAL", "ATTACK_VECTOR_PHYSICAL" ]
enum_CVSSv3AvailabilityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE" ]
enum_CVSSv3ConfidentialityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE" ]
enum_CVSSv3IntegrityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE" ]
enum_CVSSv3PrivilegesRequired := [ "PRIVILEGES_REQUIRED_UNSPECIFIED", "PRIVILEGES_REQUIRED_NONE", "PRIVILEGES_REQUIRED_LOW", "PRIVILEGES_REQUIRED_HIGH" ]
enum_CVSSv3Scope := [ "SCOPE_UNSPECIFIED", "SCOPE_UNCHANGED", "SCOPE_CHANGED" ]
enum_CVSSv3UserInteraction := [ "USER_INTERACTION_UNSPECIFIED", "USER_INTERACTION_NONE", "USER_INTERACTION_REQUIRED" ]
enum_CisBenchmarkSeverity := [ "SEVERITY_UNSPECIFIED", "MINIMAL", "LOW", "MEDIUM", "HIGH", "CRITICAL" ]
enum_DiscoveryNoteAnalysisKind := [ "NOTE_KIND_UNSPECIFIED", "VULNERABILITY", "BUILD", "IMAGE", "PACKAGE", "DEPLOYMENT", "DISCOVERY", "ATTESTATION", "UPGRADE", "COMPLIANCE", "DSSE_ATTESTATION", "VULNERABILITY_ASSESSMENT", "SBOM_REFERENCE" ]
enum_DistributionArchitecture := [ "ARCHITECTURE_UNSPECIFIED", "X86", "X64" ]
enum_JustificationJustificationType := [ "JUSTIFICATION_TYPE_UNSPECIFIED", "COMPONENT_NOT_PRESENT", "VULNERABLE_CODE_NOT_PRESENT", "VULNERABLE_CODE_NOT_IN_EXECUTE_PATH", "VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY", "INLINE_MITIGATIONS_ALREADY_EXIST" ]
enum_NoteKind := [ "NOTE_KIND_UNSPECIFIED", "VULNERABILITY", "BUILD", "IMAGE", "PACKAGE", "DEPLOYMENT", "DISCOVERY", "ATTESTATION", "UPGRADE", "COMPLIANCE", "DSSE_ATTESTATION", "VULNERABILITY_ASSESSMENT", "SBOM_REFERENCE" ]
enum_PackageNoteArchitecture := [ "ARCHITECTURE_UNSPECIFIED", "X86", "X64" ]
enum_RemediationRemediationType := [ "REMEDIATION_TYPE_UNSPECIFIED", "MITIGATION", "NO_FIX_PLANNED", "NONE_AVAILABLE", "VENDOR_FIX", "WORKAROUND" ]
enum_VersionKind := [ "VERSION_KIND_UNSPECIFIED", "NORMAL", "MINIMUM", "MAXIMUM" ]
enum_VulnerabilityNoteCvssVersion := [ "CVSS_VERSION_UNSPECIFIED", "CVSS_VERSION_2", "CVSS_VERSION_3" ]
enum_VulnerabilityNoteSeverity := [ "SEVERITY_UNSPECIFIED", "MINIMAL", "LOW", "MEDIUM", "HIGH", "CRITICAL" ]

valid {
    input.Body.attestation.hint.humanReadableName == STRING
    input.Body.build.builderVersion == STRING
    input.Body.compliance.cisBenchmark.profileLevel == INTEGER
    input.Body.compliance.cisBenchmark.severity == enum_CisBenchmarkSeverity[_]
    input.Body.compliance.description == STRING
    input.Body.compliance.impact == STRING
    input.Body.compliance.rationale == STRING
    input.Body.compliance.remediation == STRING
    input.Body.compliance.scanInstructions == STRING
    input.Body.compliance.title == STRING
    input.Body.compliance.version[_].benchmarkDocument == STRING
    input.Body.compliance.version[_].cpeUri == STRING
    input.Body.compliance.version[_].version == STRING
    input.Body.createTime == STRING
    input.Body.deployment.resourceUri[_] == STRING
    input.Body.discovery.analysisKind == enum_DiscoveryNoteAnalysisKind[_]
    input.Body.dsseAttestation.hint.humanReadableName == STRING
    input.Body.expirationTime == STRING
    input.Body.image.fingerprint.v1Name == STRING
    input.Body.image.fingerprint.v2Blob[_] == STRING
    input.Body.image.fingerprint.v2Name == STRING
    input.Body.image.resourceUrl == STRING
    input.Body.kind == enum_NoteKind[_]
    input.Body.longDescription == STRING
    input.Body.name == STRING
    input.Body.package.architecture == enum_PackageNoteArchitecture[_]
    input.Body.package.cpeUri == STRING
    input.Body.package.description == STRING
    input.Body.package.digest[_].algo == STRING
    input.Body.package.digest[_].digestBytes == STRING
    input.Body.package.distribution[_].architecture == enum_DistributionArchitecture[_]
    input.Body.package.distribution[_].cpeUri == STRING
    input.Body.package.distribution[_].description == STRING
    input.Body.package.distribution[_].latestVersion.epoch == INTEGER
    input.Body.package.distribution[_].latestVersion.fullName == STRING
    input.Body.package.distribution[_].latestVersion.inclusive == BOOLEAN
    input.Body.package.distribution[_].latestVersion.kind == enum_VersionKind[_]
    input.Body.package.distribution[_].latestVersion.name == STRING
    input.Body.package.distribution[_].latestVersion.revision == STRING
    input.Body.package.distribution[_].maintainer == STRING
    input.Body.package.distribution[_].url == STRING
    input.Body.package.license.comments == STRING
    input.Body.package.license.expression == STRING
    input.Body.package.maintainer == STRING
    input.Body.package.name == STRING
    input.Body.package.packageType == STRING
    input.Body.package.url == STRING
    input.Body.package.version.epoch == INTEGER
    input.Body.package.version.fullName == STRING
    input.Body.package.version.inclusive == BOOLEAN
    input.Body.package.version.kind == enum_VersionKind[_]
    input.Body.package.version.name == STRING
    input.Body.package.version.revision == STRING
    input.Body.relatedNoteNames[_] == STRING
    input.Body.relatedUrl[_].label == STRING
    input.Body.relatedUrl[_].url == STRING
    input.Body.sbomReference.format == STRING
    input.Body.sbomReference.version == STRING
    input.Body.shortDescription == STRING
    input.Body.updateTime == STRING
    input.Body.upgrade.distributions[_].classification == STRING
    input.Body.upgrade.distributions[_].cpeUri == STRING
    input.Body.upgrade.distributions[_].cve[_] == STRING
    input.Body.upgrade.distributions[_].severity == STRING
    input.Body.upgrade.package == STRING
    input.Body.upgrade.version.epoch == INTEGER
    input.Body.upgrade.version.fullName == STRING
    input.Body.upgrade.version.inclusive == BOOLEAN
    input.Body.upgrade.version.kind == enum_VersionKind[_]
    input.Body.upgrade.version.name == STRING
    input.Body.upgrade.version.revision == STRING
    input.Body.upgrade.windowsUpdate.categories[_].categoryId == STRING
    input.Body.upgrade.windowsUpdate.categories[_].name == STRING
    input.Body.upgrade.windowsUpdate.description == STRING
    input.Body.upgrade.windowsUpdate.identity.revision == INTEGER
    input.Body.upgrade.windowsUpdate.identity.updateId == STRING
    input.Body.upgrade.windowsUpdate.kbArticleIds[_] == STRING
    input.Body.upgrade.windowsUpdate.lastPublishedTimestamp == STRING
    input.Body.upgrade.windowsUpdate.supportUrl == STRING
    input.Body.upgrade.windowsUpdate.title == STRING
    input.Body.vulnerability.cvssScore == NUMBER
    input.Body.vulnerability.cvssV2.attackComplexity == enum_CVSSAttackComplexity[_]
    input.Body.vulnerability.cvssV2.attackVector == enum_CVSSAttackVector[_]
    input.Body.vulnerability.cvssV2.authentication == enum_CVSSAuthentication[_]
    input.Body.vulnerability.cvssV2.availabilityImpact == enum_CVSSAvailabilityImpact[_]
    input.Body.vulnerability.cvssV2.baseScore == NUMBER
    input.Body.vulnerability.cvssV2.confidentialityImpact == enum_CVSSConfidentialityImpact[_]
    input.Body.vulnerability.cvssV2.exploitabilityScore == NUMBER
    input.Body.vulnerability.cvssV2.impactScore == NUMBER
    input.Body.vulnerability.cvssV2.integrityImpact == enum_CVSSIntegrityImpact[_]
    input.Body.vulnerability.cvssV2.privilegesRequired == enum_CVSSPrivilegesRequired[_]
    input.Body.vulnerability.cvssV2.scope == enum_CVSSScope[_]
    input.Body.vulnerability.cvssV2.userInteraction == enum_CVSSUserInteraction[_]
    input.Body.vulnerability.cvssV3.attackComplexity == enum_CVSSv3AttackComplexity[_]
    input.Body.vulnerability.cvssV3.attackVector == enum_CVSSv3AttackVector[_]
    input.Body.vulnerability.cvssV3.availabilityImpact == enum_CVSSv3AvailabilityImpact[_]
    input.Body.vulnerability.cvssV3.baseScore == NUMBER
    input.Body.vulnerability.cvssV3.confidentialityImpact == enum_CVSSv3ConfidentialityImpact[_]
    input.Body.vulnerability.cvssV3.exploitabilityScore == NUMBER
    input.Body.vulnerability.cvssV3.impactScore == NUMBER
    input.Body.vulnerability.cvssV3.integrityImpact == enum_CVSSv3IntegrityImpact[_]
    input.Body.vulnerability.cvssV3.privilegesRequired == enum_CVSSv3PrivilegesRequired[_]
    input.Body.vulnerability.cvssV3.scope == enum_CVSSv3Scope[_]
    input.Body.vulnerability.cvssV3.userInteraction == enum_CVSSv3UserInteraction[_]
    input.Body.vulnerability.cvssVersion == enum_VulnerabilityNoteCvssVersion[_]
    input.Body.vulnerability.details[_].affectedCpeUri == STRING
    input.Body.vulnerability.details[_].affectedPackage == STRING
    input.Body.vulnerability.details[_].affectedVersionEnd.epoch == INTEGER
    input.Body.vulnerability.details[_].affectedVersionEnd.fullName == STRING
    input.Body.vulnerability.details[_].affectedVersionEnd.inclusive == BOOLEAN
    input.Body.vulnerability.details[_].affectedVersionEnd.kind == enum_VersionKind[_]
    input.Body.vulnerability.details[_].affectedVersionEnd.name == STRING
    input.Body.vulnerability.details[_].affectedVersionEnd.revision == STRING
    input.Body.vulnerability.details[_].affectedVersionStart.epoch == INTEGER
    input.Body.vulnerability.details[_].affectedVersionStart.fullName == STRING
    input.Body.vulnerability.details[_].affectedVersionStart.inclusive == BOOLEAN
    input.Body.vulnerability.details[_].affectedVersionStart.kind == enum_VersionKind[_]
    input.Body.vulnerability.details[_].affectedVersionStart.name == STRING
    input.Body.vulnerability.details[_].affectedVersionStart.revision == STRING
    input.Body.vulnerability.details[_].description == STRING
    input.Body.vulnerability.details[_].fixedCpeUri == STRING
    input.Body.vulnerability.details[_].fixedPackage == STRING
    input.Body.vulnerability.details[_].fixedVersion.epoch == INTEGER
    input.Body.vulnerability.details[_].fixedVersion.fullName == STRING
    input.Body.vulnerability.details[_].fixedVersion.inclusive == BOOLEAN
    input.Body.vulnerability.details[_].fixedVersion.kind == enum_VersionKind[_]
    input.Body.vulnerability.details[_].fixedVersion.name == STRING
    input.Body.vulnerability.details[_].fixedVersion.revision == STRING
    input.Body.vulnerability.details[_].isObsolete == BOOLEAN
    input.Body.vulnerability.details[_].packageType == STRING
    input.Body.vulnerability.details[_].severityName == STRING
    input.Body.vulnerability.details[_].source == STRING
    input.Body.vulnerability.details[_].sourceUpdateTime == STRING
    input.Body.vulnerability.details[_].vendor == STRING
    input.Body.vulnerability.severity == enum_VulnerabilityNoteSeverity[_]
    input.Body.vulnerability.sourceUpdateTime == STRING
    input.Body.vulnerability.windowsDetails[_].cpeUri == STRING
    input.Body.vulnerability.windowsDetails[_].description == STRING
    input.Body.vulnerability.windowsDetails[_].fixingKbs[_].name == STRING
    input.Body.vulnerability.windowsDetails[_].fixingKbs[_].url == STRING
    input.Body.vulnerability.windowsDetails[_].name == STRING
    input.Body.vulnerabilityAssessment.assessment.cve == STRING
    input.Body.vulnerabilityAssessment.assessment.impacts[_] == STRING
    input.Body.vulnerabilityAssessment.assessment.justification.details == STRING
    input.Body.vulnerabilityAssessment.assessment.justification.justificationType == enum_JustificationJustificationType[_]
    input.Body.vulnerabilityAssessment.assessment.longDescription == STRING
    input.Body.vulnerabilityAssessment.assessment.relatedUris[_].label == STRING
    input.Body.vulnerabilityAssessment.assessment.relatedUris[_].url == STRING
    input.Body.vulnerabilityAssessment.assessment.remediations[_].details == STRING
    input.Body.vulnerabilityAssessment.assessment.remediations[_].remediationType == enum_RemediationRemediationType[_]
    input.Body.vulnerabilityAssessment.assessment.remediations[_].remediationUri.label == STRING
    input.Body.vulnerabilityAssessment.assessment.remediations[_].remediationUri.url == STRING
    input.Body.vulnerabilityAssessment.assessment.shortDescription == STRING
    input.Body.vulnerabilityAssessment.assessment.state == enum_AssessmentState[_]
    input.Body.vulnerabilityAssessment.assessment.vulnerabilityId == STRING
    input.Body.vulnerabilityAssessment.languageCode == STRING
    input.Body.vulnerabilityAssessment.longDescription == STRING
    input.Body.vulnerabilityAssessment.product.genericUri == STRING
    input.Body.vulnerabilityAssessment.product.id == STRING
    input.Body.vulnerabilityAssessment.product.name == STRING
    input.Body.vulnerabilityAssessment.publisher.issuingAuthority == STRING
    input.Body.vulnerabilityAssessment.publisher.name == STRING
    input.Body.vulnerabilityAssessment.publisher.publisherNamespace == STRING
    input.Body.vulnerabilityAssessment.shortDescription == STRING
    input.Body.vulnerabilityAssessment.title == STRING
    input.ReqMap.parent == STRING
    input.Qs.noteId == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.notes.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.notes.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.notes.getIamPolicy

valid {
    input.Body.options.requestedPolicyVersion == INTEGER
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.notes.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.notes.occurrences.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.notes.patch

enum_AssessmentState := [ "STATE_UNSPECIFIED", "AFFECTED", "NOT_AFFECTED", "FIXED", "UNDER_INVESTIGATION" ]
enum_CVSSAttackComplexity := [ "ATTACK_COMPLEXITY_UNSPECIFIED", "ATTACK_COMPLEXITY_LOW", "ATTACK_COMPLEXITY_HIGH", "ATTACK_COMPLEXITY_MEDIUM" ]
enum_CVSSAttackVector := [ "ATTACK_VECTOR_UNSPECIFIED", "ATTACK_VECTOR_NETWORK", "ATTACK_VECTOR_ADJACENT", "ATTACK_VECTOR_LOCAL", "ATTACK_VECTOR_PHYSICAL" ]
enum_CVSSAuthentication := [ "AUTHENTICATION_UNSPECIFIED", "AUTHENTICATION_MULTIPLE", "AUTHENTICATION_SINGLE", "AUTHENTICATION_NONE" ]
enum_CVSSAvailabilityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSConfidentialityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSIntegrityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSPrivilegesRequired := [ "PRIVILEGES_REQUIRED_UNSPECIFIED", "PRIVILEGES_REQUIRED_NONE", "PRIVILEGES_REQUIRED_LOW", "PRIVILEGES_REQUIRED_HIGH" ]
enum_CVSSScope := [ "SCOPE_UNSPECIFIED", "SCOPE_UNCHANGED", "SCOPE_CHANGED" ]
enum_CVSSUserInteraction := [ "USER_INTERACTION_UNSPECIFIED", "USER_INTERACTION_NONE", "USER_INTERACTION_REQUIRED" ]
enum_CVSSv3AttackComplexity := [ "ATTACK_COMPLEXITY_UNSPECIFIED", "ATTACK_COMPLEXITY_LOW", "ATTACK_COMPLEXITY_HIGH" ]
enum_CVSSv3AttackVector := [ "ATTACK_VECTOR_UNSPECIFIED", "ATTACK_VECTOR_NETWORK", "ATTACK_VECTOR_ADJACENT", "ATTACK_VECTOR_LOCAL", "ATTACK_VECTOR_PHYSICAL" ]
enum_CVSSv3AvailabilityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE" ]
enum_CVSSv3ConfidentialityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE" ]
enum_CVSSv3IntegrityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE" ]
enum_CVSSv3PrivilegesRequired := [ "PRIVILEGES_REQUIRED_UNSPECIFIED", "PRIVILEGES_REQUIRED_NONE", "PRIVILEGES_REQUIRED_LOW", "PRIVILEGES_REQUIRED_HIGH" ]
enum_CVSSv3Scope := [ "SCOPE_UNSPECIFIED", "SCOPE_UNCHANGED", "SCOPE_CHANGED" ]
enum_CVSSv3UserInteraction := [ "USER_INTERACTION_UNSPECIFIED", "USER_INTERACTION_NONE", "USER_INTERACTION_REQUIRED" ]
enum_CisBenchmarkSeverity := [ "SEVERITY_UNSPECIFIED", "MINIMAL", "LOW", "MEDIUM", "HIGH", "CRITICAL" ]
enum_DiscoveryNoteAnalysisKind := [ "NOTE_KIND_UNSPECIFIED", "VULNERABILITY", "BUILD", "IMAGE", "PACKAGE", "DEPLOYMENT", "DISCOVERY", "ATTESTATION", "UPGRADE", "COMPLIANCE", "DSSE_ATTESTATION", "VULNERABILITY_ASSESSMENT", "SBOM_REFERENCE" ]
enum_DistributionArchitecture := [ "ARCHITECTURE_UNSPECIFIED", "X86", "X64" ]
enum_JustificationJustificationType := [ "JUSTIFICATION_TYPE_UNSPECIFIED", "COMPONENT_NOT_PRESENT", "VULNERABLE_CODE_NOT_PRESENT", "VULNERABLE_CODE_NOT_IN_EXECUTE_PATH", "VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY", "INLINE_MITIGATIONS_ALREADY_EXIST" ]
enum_NoteKind := [ "NOTE_KIND_UNSPECIFIED", "VULNERABILITY", "BUILD", "IMAGE", "PACKAGE", "DEPLOYMENT", "DISCOVERY", "ATTESTATION", "UPGRADE", "COMPLIANCE", "DSSE_ATTESTATION", "VULNERABILITY_ASSESSMENT", "SBOM_REFERENCE" ]
enum_PackageNoteArchitecture := [ "ARCHITECTURE_UNSPECIFIED", "X86", "X64" ]
enum_RemediationRemediationType := [ "REMEDIATION_TYPE_UNSPECIFIED", "MITIGATION", "NO_FIX_PLANNED", "NONE_AVAILABLE", "VENDOR_FIX", "WORKAROUND" ]
enum_VersionKind := [ "VERSION_KIND_UNSPECIFIED", "NORMAL", "MINIMUM", "MAXIMUM" ]
enum_VulnerabilityNoteCvssVersion := [ "CVSS_VERSION_UNSPECIFIED", "CVSS_VERSION_2", "CVSS_VERSION_3" ]
enum_VulnerabilityNoteSeverity := [ "SEVERITY_UNSPECIFIED", "MINIMAL", "LOW", "MEDIUM", "HIGH", "CRITICAL" ]

valid {
    input.Body.attestation.hint.humanReadableName == STRING
    input.Body.build.builderVersion == STRING
    input.Body.compliance.cisBenchmark.profileLevel == INTEGER
    input.Body.compliance.cisBenchmark.severity == enum_CisBenchmarkSeverity[_]
    input.Body.compliance.description == STRING
    input.Body.compliance.impact == STRING
    input.Body.compliance.rationale == STRING
    input.Body.compliance.remediation == STRING
    input.Body.compliance.scanInstructions == STRING
    input.Body.compliance.title == STRING
    input.Body.compliance.version[_].benchmarkDocument == STRING
    input.Body.compliance.version[_].cpeUri == STRING
    input.Body.compliance.version[_].version == STRING
    input.Body.createTime == STRING
    input.Body.deployment.resourceUri[_] == STRING
    input.Body.discovery.analysisKind == enum_DiscoveryNoteAnalysisKind[_]
    input.Body.dsseAttestation.hint.humanReadableName == STRING
    input.Body.expirationTime == STRING
    input.Body.image.fingerprint.v1Name == STRING
    input.Body.image.fingerprint.v2Blob[_] == STRING
    input.Body.image.fingerprint.v2Name == STRING
    input.Body.image.resourceUrl == STRING
    input.Body.kind == enum_NoteKind[_]
    input.Body.longDescription == STRING
    input.Body.name == STRING
    input.Body.package.architecture == enum_PackageNoteArchitecture[_]
    input.Body.package.cpeUri == STRING
    input.Body.package.description == STRING
    input.Body.package.digest[_].algo == STRING
    input.Body.package.digest[_].digestBytes == STRING
    input.Body.package.distribution[_].architecture == enum_DistributionArchitecture[_]
    input.Body.package.distribution[_].cpeUri == STRING
    input.Body.package.distribution[_].description == STRING
    input.Body.package.distribution[_].latestVersion.epoch == INTEGER
    input.Body.package.distribution[_].latestVersion.fullName == STRING
    input.Body.package.distribution[_].latestVersion.inclusive == BOOLEAN
    input.Body.package.distribution[_].latestVersion.kind == enum_VersionKind[_]
    input.Body.package.distribution[_].latestVersion.name == STRING
    input.Body.package.distribution[_].latestVersion.revision == STRING
    input.Body.package.distribution[_].maintainer == STRING
    input.Body.package.distribution[_].url == STRING
    input.Body.package.license.comments == STRING
    input.Body.package.license.expression == STRING
    input.Body.package.maintainer == STRING
    input.Body.package.name == STRING
    input.Body.package.packageType == STRING
    input.Body.package.url == STRING
    input.Body.package.version.epoch == INTEGER
    input.Body.package.version.fullName == STRING
    input.Body.package.version.inclusive == BOOLEAN
    input.Body.package.version.kind == enum_VersionKind[_]
    input.Body.package.version.name == STRING
    input.Body.package.version.revision == STRING
    input.Body.relatedNoteNames[_] == STRING
    input.Body.relatedUrl[_].label == STRING
    input.Body.relatedUrl[_].url == STRING
    input.Body.sbomReference.format == STRING
    input.Body.sbomReference.version == STRING
    input.Body.shortDescription == STRING
    input.Body.updateTime == STRING
    input.Body.upgrade.distributions[_].classification == STRING
    input.Body.upgrade.distributions[_].cpeUri == STRING
    input.Body.upgrade.distributions[_].cve[_] == STRING
    input.Body.upgrade.distributions[_].severity == STRING
    input.Body.upgrade.package == STRING
    input.Body.upgrade.version.epoch == INTEGER
    input.Body.upgrade.version.fullName == STRING
    input.Body.upgrade.version.inclusive == BOOLEAN
    input.Body.upgrade.version.kind == enum_VersionKind[_]
    input.Body.upgrade.version.name == STRING
    input.Body.upgrade.version.revision == STRING
    input.Body.upgrade.windowsUpdate.categories[_].categoryId == STRING
    input.Body.upgrade.windowsUpdate.categories[_].name == STRING
    input.Body.upgrade.windowsUpdate.description == STRING
    input.Body.upgrade.windowsUpdate.identity.revision == INTEGER
    input.Body.upgrade.windowsUpdate.identity.updateId == STRING
    input.Body.upgrade.windowsUpdate.kbArticleIds[_] == STRING
    input.Body.upgrade.windowsUpdate.lastPublishedTimestamp == STRING
    input.Body.upgrade.windowsUpdate.supportUrl == STRING
    input.Body.upgrade.windowsUpdate.title == STRING
    input.Body.vulnerability.cvssScore == NUMBER
    input.Body.vulnerability.cvssV2.attackComplexity == enum_CVSSAttackComplexity[_]
    input.Body.vulnerability.cvssV2.attackVector == enum_CVSSAttackVector[_]
    input.Body.vulnerability.cvssV2.authentication == enum_CVSSAuthentication[_]
    input.Body.vulnerability.cvssV2.availabilityImpact == enum_CVSSAvailabilityImpact[_]
    input.Body.vulnerability.cvssV2.baseScore == NUMBER
    input.Body.vulnerability.cvssV2.confidentialityImpact == enum_CVSSConfidentialityImpact[_]
    input.Body.vulnerability.cvssV2.exploitabilityScore == NUMBER
    input.Body.vulnerability.cvssV2.impactScore == NUMBER
    input.Body.vulnerability.cvssV2.integrityImpact == enum_CVSSIntegrityImpact[_]
    input.Body.vulnerability.cvssV2.privilegesRequired == enum_CVSSPrivilegesRequired[_]
    input.Body.vulnerability.cvssV2.scope == enum_CVSSScope[_]
    input.Body.vulnerability.cvssV2.userInteraction == enum_CVSSUserInteraction[_]
    input.Body.vulnerability.cvssV3.attackComplexity == enum_CVSSv3AttackComplexity[_]
    input.Body.vulnerability.cvssV3.attackVector == enum_CVSSv3AttackVector[_]
    input.Body.vulnerability.cvssV3.availabilityImpact == enum_CVSSv3AvailabilityImpact[_]
    input.Body.vulnerability.cvssV3.baseScore == NUMBER
    input.Body.vulnerability.cvssV3.confidentialityImpact == enum_CVSSv3ConfidentialityImpact[_]
    input.Body.vulnerability.cvssV3.exploitabilityScore == NUMBER
    input.Body.vulnerability.cvssV3.impactScore == NUMBER
    input.Body.vulnerability.cvssV3.integrityImpact == enum_CVSSv3IntegrityImpact[_]
    input.Body.vulnerability.cvssV3.privilegesRequired == enum_CVSSv3PrivilegesRequired[_]
    input.Body.vulnerability.cvssV3.scope == enum_CVSSv3Scope[_]
    input.Body.vulnerability.cvssV3.userInteraction == enum_CVSSv3UserInteraction[_]
    input.Body.vulnerability.cvssVersion == enum_VulnerabilityNoteCvssVersion[_]
    input.Body.vulnerability.details[_].affectedCpeUri == STRING
    input.Body.vulnerability.details[_].affectedPackage == STRING
    input.Body.vulnerability.details[_].affectedVersionEnd.epoch == INTEGER
    input.Body.vulnerability.details[_].affectedVersionEnd.fullName == STRING
    input.Body.vulnerability.details[_].affectedVersionEnd.inclusive == BOOLEAN
    input.Body.vulnerability.details[_].affectedVersionEnd.kind == enum_VersionKind[_]
    input.Body.vulnerability.details[_].affectedVersionEnd.name == STRING
    input.Body.vulnerability.details[_].affectedVersionEnd.revision == STRING
    input.Body.vulnerability.details[_].affectedVersionStart.epoch == INTEGER
    input.Body.vulnerability.details[_].affectedVersionStart.fullName == STRING
    input.Body.vulnerability.details[_].affectedVersionStart.inclusive == BOOLEAN
    input.Body.vulnerability.details[_].affectedVersionStart.kind == enum_VersionKind[_]
    input.Body.vulnerability.details[_].affectedVersionStart.name == STRING
    input.Body.vulnerability.details[_].affectedVersionStart.revision == STRING
    input.Body.vulnerability.details[_].description == STRING
    input.Body.vulnerability.details[_].fixedCpeUri == STRING
    input.Body.vulnerability.details[_].fixedPackage == STRING
    input.Body.vulnerability.details[_].fixedVersion.epoch == INTEGER
    input.Body.vulnerability.details[_].fixedVersion.fullName == STRING
    input.Body.vulnerability.details[_].fixedVersion.inclusive == BOOLEAN
    input.Body.vulnerability.details[_].fixedVersion.kind == enum_VersionKind[_]
    input.Body.vulnerability.details[_].fixedVersion.name == STRING
    input.Body.vulnerability.details[_].fixedVersion.revision == STRING
    input.Body.vulnerability.details[_].isObsolete == BOOLEAN
    input.Body.vulnerability.details[_].packageType == STRING
    input.Body.vulnerability.details[_].severityName == STRING
    input.Body.vulnerability.details[_].source == STRING
    input.Body.vulnerability.details[_].sourceUpdateTime == STRING
    input.Body.vulnerability.details[_].vendor == STRING
    input.Body.vulnerability.severity == enum_VulnerabilityNoteSeverity[_]
    input.Body.vulnerability.sourceUpdateTime == STRING
    input.Body.vulnerability.windowsDetails[_].cpeUri == STRING
    input.Body.vulnerability.windowsDetails[_].description == STRING
    input.Body.vulnerability.windowsDetails[_].fixingKbs[_].name == STRING
    input.Body.vulnerability.windowsDetails[_].fixingKbs[_].url == STRING
    input.Body.vulnerability.windowsDetails[_].name == STRING
    input.Body.vulnerabilityAssessment.assessment.cve == STRING
    input.Body.vulnerabilityAssessment.assessment.impacts[_] == STRING
    input.Body.vulnerabilityAssessment.assessment.justification.details == STRING
    input.Body.vulnerabilityAssessment.assessment.justification.justificationType == enum_JustificationJustificationType[_]
    input.Body.vulnerabilityAssessment.assessment.longDescription == STRING
    input.Body.vulnerabilityAssessment.assessment.relatedUris[_].label == STRING
    input.Body.vulnerabilityAssessment.assessment.relatedUris[_].url == STRING
    input.Body.vulnerabilityAssessment.assessment.remediations[_].details == STRING
    input.Body.vulnerabilityAssessment.assessment.remediations[_].remediationType == enum_RemediationRemediationType[_]
    input.Body.vulnerabilityAssessment.assessment.remediations[_].remediationUri.label == STRING
    input.Body.vulnerabilityAssessment.assessment.remediations[_].remediationUri.url == STRING
    input.Body.vulnerabilityAssessment.assessment.shortDescription == STRING
    input.Body.vulnerabilityAssessment.assessment.state == enum_AssessmentState[_]
    input.Body.vulnerabilityAssessment.assessment.vulnerabilityId == STRING
    input.Body.vulnerabilityAssessment.languageCode == STRING
    input.Body.vulnerabilityAssessment.longDescription == STRING
    input.Body.vulnerabilityAssessment.product.genericUri == STRING
    input.Body.vulnerabilityAssessment.product.id == STRING
    input.Body.vulnerabilityAssessment.product.name == STRING
    input.Body.vulnerabilityAssessment.publisher.issuingAuthority == STRING
    input.Body.vulnerabilityAssessment.publisher.name == STRING
    input.Body.vulnerabilityAssessment.publisher.publisherNamespace == STRING
    input.Body.vulnerabilityAssessment.shortDescription == STRING
    input.Body.vulnerabilityAssessment.title == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.notes.setIamPolicy

valid {
    input.Body.policy.bindings[_].condition.description == STRING
    input.Body.policy.bindings[_].condition.expression == STRING
    input.Body.policy.bindings[_].condition.location == STRING
    input.Body.policy.bindings[_].condition.title == STRING
    input.Body.policy.bindings[_].members[_] == STRING
    input.Body.policy.bindings[_].role == STRING
    input.Body.policy.etag == STRING
    input.Body.policy.version == INTEGER
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.notes.testIamPermissions

valid {
    input.Body.permissions[_] == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.occurrences.batchCreate

enum_AliasContextKind := [ "KIND_UNSPECIFIED", "FIXED", "MOVABLE", "OTHER" ]
enum_CVSSAttackComplexity := [ "ATTACK_COMPLEXITY_UNSPECIFIED", "ATTACK_COMPLEXITY_LOW", "ATTACK_COMPLEXITY_HIGH", "ATTACK_COMPLEXITY_MEDIUM" ]
enum_CVSSAttackVector := [ "ATTACK_VECTOR_UNSPECIFIED", "ATTACK_VECTOR_NETWORK", "ATTACK_VECTOR_ADJACENT", "ATTACK_VECTOR_LOCAL", "ATTACK_VECTOR_PHYSICAL" ]
enum_CVSSAuthentication := [ "AUTHENTICATION_UNSPECIFIED", "AUTHENTICATION_MULTIPLE", "AUTHENTICATION_SINGLE", "AUTHENTICATION_NONE" ]
enum_CVSSAvailabilityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSConfidentialityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSIntegrityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSPrivilegesRequired := [ "PRIVILEGES_REQUIRED_UNSPECIFIED", "PRIVILEGES_REQUIRED_NONE", "PRIVILEGES_REQUIRED_LOW", "PRIVILEGES_REQUIRED_HIGH" ]
enum_CVSSScope := [ "SCOPE_UNSPECIFIED", "SCOPE_UNCHANGED", "SCOPE_CHANGED" ]
enum_CVSSUserInteraction := [ "USER_INTERACTION_UNSPECIFIED", "USER_INTERACTION_NONE", "USER_INTERACTION_REQUIRED" ]
enum_DeploymentOccurrencePlatform := [ "PLATFORM_UNSPECIFIED", "GKE", "FLEX", "CUSTOM" ]
enum_DiscoveryOccurrenceAnalysisStatus := [ "ANALYSIS_STATUS_UNSPECIFIED", "PENDING", "SCANNING", "FINISHED_SUCCESS", "COMPLETE", "FINISHED_FAILED", "FINISHED_UNSUPPORTED" ]
enum_DiscoveryOccurrenceContinuousAnalysis := [ "CONTINUOUS_ANALYSIS_UNSPECIFIED", "ACTIVE", "INACTIVE" ]
enum_JustificationJustificationType := [ "JUSTIFICATION_TYPE_UNSPECIFIED", "COMPONENT_NOT_PRESENT", "VULNERABLE_CODE_NOT_PRESENT", "VULNERABLE_CODE_NOT_IN_EXECUTE_PATH", "VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY", "INLINE_MITIGATIONS_ALREADY_EXIST" ]
enum_OccurrenceKind := [ "NOTE_KIND_UNSPECIFIED", "VULNERABILITY", "BUILD", "IMAGE", "PACKAGE", "DEPLOYMENT", "DISCOVERY", "ATTESTATION", "UPGRADE", "COMPLIANCE", "DSSE_ATTESTATION", "VULNERABILITY_ASSESSMENT", "SBOM_REFERENCE" ]
enum_RemediationRemediationType := [ "REMEDIATION_TYPE_UNSPECIFIED", "MITIGATION", "NO_FIX_PLANNED", "NONE_AVAILABLE", "VENDOR_FIX", "WORKAROUND" ]
enum_SBOMStatusSbomState := [ "SBOM_STATE_UNSPECIFIED", "PENDING", "COMPLETE" ]
enum_VersionKind := [ "VERSION_KIND_UNSPECIFIED", "NORMAL", "MINIMUM", "MAXIMUM" ]
enum_VexAssessmentState := [ "STATE_UNSPECIFIED", "AFFECTED", "NOT_AFFECTED", "FIXED", "UNDER_INVESTIGATION" ]
enum_VulnerabilityOccurrenceCvssVersion := [ "CVSS_VERSION_UNSPECIFIED", "CVSS_VERSION_2", "CVSS_VERSION_3" ]
enum_VulnerabilityOccurrenceEffectiveSeverity := [ "SEVERITY_UNSPECIFIED", "MINIMAL", "LOW", "MEDIUM", "HIGH", "CRITICAL" ]
enum_VulnerabilityOccurrenceSeverity := [ "SEVERITY_UNSPECIFIED", "MINIMAL", "LOW", "MEDIUM", "HIGH", "CRITICAL" ]

valid {
    input.Body.occurrences[_].attestation.jwts[_].compactJwt == STRING
    input.Body.occurrences[_].attestation.serializedPayload == STRING
    input.Body.occurrences[_].attestation.signatures[_].publicKeyId == STRING
    input.Body.occurrences[_].attestation.signatures[_].signature == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1._type == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.buildDefinition.buildType == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.buildDefinition.externalParameters.STRING == ANY
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.buildDefinition.internalParameters.STRING == ANY
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].annotations.STRING == ANY
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].content == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].digest.STRING == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].downloadLocation == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].mediaType == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].name == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].uri == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].annotations.STRING == ANY
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].content == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].digest.STRING == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].downloadLocation == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].mediaType == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].name == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].uri == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.id == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.version.STRING == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].annotations.STRING == ANY
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].content == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].digest.STRING == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].downloadLocation == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].mediaType == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].name == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].uri == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.runDetails.metadata.finishedOn == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.runDetails.metadata.invocationId == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicate.runDetails.metadata.startedOn == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.predicateType == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.subject[_].digest.STRING == STRING
    input.Body.occurrences[_].build.inTotoSlsaProvenanceV1.subject[_].name == STRING
    input.Body.occurrences[_].build.intotoProvenance.builderConfig.id == STRING
    input.Body.occurrences[_].build.intotoProvenance.materials[_] == STRING
    input.Body.occurrences[_].build.intotoProvenance.metadata.buildFinishedOn == STRING
    input.Body.occurrences[_].build.intotoProvenance.metadata.buildInvocationId == STRING
    input.Body.occurrences[_].build.intotoProvenance.metadata.buildStartedOn == STRING
    input.Body.occurrences[_].build.intotoProvenance.metadata.completeness.arguments == BOOLEAN
    input.Body.occurrences[_].build.intotoProvenance.metadata.completeness.environment == BOOLEAN
    input.Body.occurrences[_].build.intotoProvenance.metadata.completeness.materials == BOOLEAN
    input.Body.occurrences[_].build.intotoProvenance.metadata.reproducible == BOOLEAN
    input.Body.occurrences[_].build.intotoProvenance.recipe.arguments[_].STRING == ANY
    input.Body.occurrences[_].build.intotoProvenance.recipe.definedInMaterial == STRING
    input.Body.occurrences[_].build.intotoProvenance.recipe.entryPoint == STRING
    input.Body.occurrences[_].build.intotoProvenance.recipe.environment[_].STRING == ANY
    input.Body.occurrences[_].build.intotoProvenance.recipe.type == STRING
    input.Body.occurrences[_].build.intotoStatement._type == STRING
    input.Body.occurrences[_].build.intotoStatement.predicateType == STRING
    input.Body.occurrences[_].build.intotoStatement.provenance.builderConfig.id == STRING
    input.Body.occurrences[_].build.intotoStatement.provenance.materials[_] == STRING
    input.Body.occurrences[_].build.intotoStatement.provenance.metadata.buildFinishedOn == STRING
    input.Body.occurrences[_].build.intotoStatement.provenance.metadata.buildInvocationId == STRING
    input.Body.occurrences[_].build.intotoStatement.provenance.metadata.buildStartedOn == STRING
    input.Body.occurrences[_].build.intotoStatement.provenance.metadata.completeness.arguments == BOOLEAN
    input.Body.occurrences[_].build.intotoStatement.provenance.metadata.completeness.environment == BOOLEAN
    input.Body.occurrences[_].build.intotoStatement.provenance.metadata.completeness.materials == BOOLEAN
    input.Body.occurrences[_].build.intotoStatement.provenance.metadata.reproducible == BOOLEAN
    input.Body.occurrences[_].build.intotoStatement.provenance.recipe.arguments[_].STRING == ANY
    input.Body.occurrences[_].build.intotoStatement.provenance.recipe.definedInMaterial == STRING
    input.Body.occurrences[_].build.intotoStatement.provenance.recipe.entryPoint == STRING
    input.Body.occurrences[_].build.intotoStatement.provenance.recipe.environment[_].STRING == ANY
    input.Body.occurrences[_].build.intotoStatement.provenance.recipe.type == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenance.builder.id == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenance.materials[_].digest.STRING == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenance.materials[_].uri == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenance.metadata.buildFinishedOn == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenance.metadata.buildInvocationId == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenance.metadata.buildStartedOn == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenance.metadata.completeness.arguments == BOOLEAN
    input.Body.occurrences[_].build.intotoStatement.slsaProvenance.metadata.completeness.environment == BOOLEAN
    input.Body.occurrences[_].build.intotoStatement.slsaProvenance.metadata.completeness.materials == BOOLEAN
    input.Body.occurrences[_].build.intotoStatement.slsaProvenance.metadata.reproducible == BOOLEAN
    input.Body.occurrences[_].build.intotoStatement.slsaProvenance.recipe.arguments.STRING == ANY
    input.Body.occurrences[_].build.intotoStatement.slsaProvenance.recipe.definedInMaterial == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenance.recipe.entryPoint == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenance.recipe.environment.STRING == ANY
    input.Body.occurrences[_].build.intotoStatement.slsaProvenance.recipe.type == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenanceZeroTwo.buildConfig.STRING == ANY
    input.Body.occurrences[_].build.intotoStatement.slsaProvenanceZeroTwo.buildType == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenanceZeroTwo.builder.id == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenanceZeroTwo.invocation.configSource.digest.STRING == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenanceZeroTwo.invocation.configSource.entryPoint == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenanceZeroTwo.invocation.configSource.uri == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenanceZeroTwo.invocation.environment.STRING == ANY
    input.Body.occurrences[_].build.intotoStatement.slsaProvenanceZeroTwo.invocation.parameters.STRING == ANY
    input.Body.occurrences[_].build.intotoStatement.slsaProvenanceZeroTwo.materials[_].digest.STRING == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenanceZeroTwo.materials[_].uri == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenanceZeroTwo.metadata.buildFinishedOn == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenanceZeroTwo.metadata.buildInvocationId == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenanceZeroTwo.metadata.buildStartedOn == STRING
    input.Body.occurrences[_].build.intotoStatement.slsaProvenanceZeroTwo.metadata.completeness.environment == BOOLEAN
    input.Body.occurrences[_].build.intotoStatement.slsaProvenanceZeroTwo.metadata.completeness.materials == BOOLEAN
    input.Body.occurrences[_].build.intotoStatement.slsaProvenanceZeroTwo.metadata.completeness.parameters == BOOLEAN
    input.Body.occurrences[_].build.intotoStatement.slsaProvenanceZeroTwo.metadata.reproducible == BOOLEAN
    input.Body.occurrences[_].build.intotoStatement.subject[_].digest.STRING == STRING
    input.Body.occurrences[_].build.intotoStatement.subject[_].name == STRING
    input.Body.occurrences[_].build.provenance.buildOptions.STRING == STRING
    input.Body.occurrences[_].build.provenance.builderVersion == STRING
    input.Body.occurrences[_].build.provenance.builtArtifacts[_].checksum == STRING
    input.Body.occurrences[_].build.provenance.builtArtifacts[_].id == STRING
    input.Body.occurrences[_].build.provenance.builtArtifacts[_].names[_] == STRING
    input.Body.occurrences[_].build.provenance.commands[_].args[_] == STRING
    input.Body.occurrences[_].build.provenance.commands[_].dir == STRING
    input.Body.occurrences[_].build.provenance.commands[_].env[_] == STRING
    input.Body.occurrences[_].build.provenance.commands[_].id == STRING
    input.Body.occurrences[_].build.provenance.commands[_].name == STRING
    input.Body.occurrences[_].build.provenance.commands[_].waitFor[_] == STRING
    input.Body.occurrences[_].build.provenance.createTime == STRING
    input.Body.occurrences[_].build.provenance.creator == STRING
    input.Body.occurrences[_].build.provenance.endTime == STRING
    input.Body.occurrences[_].build.provenance.id == STRING
    input.Body.occurrences[_].build.provenance.logsUri == STRING
    input.Body.occurrences[_].build.provenance.projectId == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.additionalContexts[_].cloudRepo.aliasContext.kind == enum_AliasContextKind[_]
    input.Body.occurrences[_].build.provenance.sourceProvenance.additionalContexts[_].cloudRepo.aliasContext.name == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.additionalContexts[_].cloudRepo.repoId.projectRepoId.projectId == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.additionalContexts[_].cloudRepo.repoId.projectRepoId.repoName == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.additionalContexts[_].cloudRepo.repoId.uid == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.additionalContexts[_].cloudRepo.revisionId == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.additionalContexts[_].gerrit.aliasContext.kind == enum_AliasContextKind[_]
    input.Body.occurrences[_].build.provenance.sourceProvenance.additionalContexts[_].gerrit.aliasContext.name == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.additionalContexts[_].gerrit.gerritProject == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.additionalContexts[_].gerrit.hostUri == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.additionalContexts[_].gerrit.revisionId == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.additionalContexts[_].git.revisionId == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.additionalContexts[_].git.url == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.additionalContexts[_].labels.STRING == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.artifactStorageSourceUri == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.context.cloudRepo.aliasContext.kind == enum_AliasContextKind[_]
    input.Body.occurrences[_].build.provenance.sourceProvenance.context.cloudRepo.aliasContext.name == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.context.cloudRepo.repoId.projectRepoId.projectId == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.context.cloudRepo.repoId.projectRepoId.repoName == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.context.cloudRepo.repoId.uid == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.context.cloudRepo.revisionId == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.context.gerrit.aliasContext.kind == enum_AliasContextKind[_]
    input.Body.occurrences[_].build.provenance.sourceProvenance.context.gerrit.aliasContext.name == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.context.gerrit.gerritProject == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.context.gerrit.hostUri == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.context.gerrit.revisionId == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.context.git.revisionId == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.context.git.url == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.context.labels.STRING == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.fileHashes.STRING.fileHash[_].type == STRING
    input.Body.occurrences[_].build.provenance.sourceProvenance.fileHashes.STRING.fileHash[_].value == STRING
    input.Body.occurrences[_].build.provenance.startTime == STRING
    input.Body.occurrences[_].build.provenance.triggerId == STRING
    input.Body.occurrences[_].build.provenanceBytes == STRING
    input.Body.occurrences[_].compliance.nonComplianceReason == STRING
    input.Body.occurrences[_].compliance.nonCompliantFiles[_].displayCommand == STRING
    input.Body.occurrences[_].compliance.nonCompliantFiles[_].path == STRING
    input.Body.occurrences[_].compliance.nonCompliantFiles[_].reason == STRING
    input.Body.occurrences[_].createTime == STRING
    input.Body.occurrences[_].deployment.address == STRING
    input.Body.occurrences[_].deployment.config == STRING
    input.Body.occurrences[_].deployment.deployTime == STRING
    input.Body.occurrences[_].deployment.platform == enum_DeploymentOccurrencePlatform[_]
    input.Body.occurrences[_].deployment.resourceUri[_] == STRING
    input.Body.occurrences[_].deployment.undeployTime == STRING
    input.Body.occurrences[_].deployment.userEmail == STRING
    input.Body.occurrences[_].discovery.analysisCompleted.analysisType[_] == STRING
    input.Body.occurrences[_].discovery.analysisError[_].code == INTEGER
    input.Body.occurrences[_].discovery.analysisError[_].details[_].STRING == ANY
    input.Body.occurrences[_].discovery.analysisError[_].message == STRING
    input.Body.occurrences[_].discovery.analysisStatus == enum_DiscoveryOccurrenceAnalysisStatus[_]
    input.Body.occurrences[_].discovery.analysisStatusError.code == INTEGER
    input.Body.occurrences[_].discovery.analysisStatusError.details[_].STRING == ANY
    input.Body.occurrences[_].discovery.analysisStatusError.message == STRING
    input.Body.occurrences[_].discovery.continuousAnalysis == enum_DiscoveryOccurrenceContinuousAnalysis[_]
    input.Body.occurrences[_].discovery.cpe == STRING
    input.Body.occurrences[_].discovery.lastScanTime == STRING
    input.Body.occurrences[_].discovery.sbomStatus.error == STRING
    input.Body.occurrences[_].discovery.sbomStatus.sbomState == enum_SBOMStatusSbomState[_]
    input.Body.occurrences[_].dsseAttestation.envelope.payload == STRING
    input.Body.occurrences[_].dsseAttestation.envelope.payloadType == STRING
    input.Body.occurrences[_].dsseAttestation.envelope.signatures[_].keyid == STRING
    input.Body.occurrences[_].dsseAttestation.envelope.signatures[_].sig == STRING
    input.Body.occurrences[_].dsseAttestation.statement._type == STRING
    input.Body.occurrences[_].dsseAttestation.statement.predicateType == STRING
    input.Body.occurrences[_].dsseAttestation.statement.provenance.builderConfig.id == STRING
    input.Body.occurrences[_].dsseAttestation.statement.provenance.materials[_] == STRING
    input.Body.occurrences[_].dsseAttestation.statement.provenance.metadata.buildFinishedOn == STRING
    input.Body.occurrences[_].dsseAttestation.statement.provenance.metadata.buildInvocationId == STRING
    input.Body.occurrences[_].dsseAttestation.statement.provenance.metadata.buildStartedOn == STRING
    input.Body.occurrences[_].dsseAttestation.statement.provenance.metadata.completeness.arguments == BOOLEAN
    input.Body.occurrences[_].dsseAttestation.statement.provenance.metadata.completeness.environment == BOOLEAN
    input.Body.occurrences[_].dsseAttestation.statement.provenance.metadata.completeness.materials == BOOLEAN
    input.Body.occurrences[_].dsseAttestation.statement.provenance.metadata.reproducible == BOOLEAN
    input.Body.occurrences[_].dsseAttestation.statement.provenance.recipe.arguments[_].STRING == ANY
    input.Body.occurrences[_].dsseAttestation.statement.provenance.recipe.definedInMaterial == STRING
    input.Body.occurrences[_].dsseAttestation.statement.provenance.recipe.entryPoint == STRING
    input.Body.occurrences[_].dsseAttestation.statement.provenance.recipe.environment[_].STRING == ANY
    input.Body.occurrences[_].dsseAttestation.statement.provenance.recipe.type == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenance.builder.id == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenance.materials[_].digest.STRING == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenance.materials[_].uri == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenance.metadata.buildFinishedOn == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenance.metadata.buildInvocationId == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenance.metadata.buildStartedOn == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenance.metadata.completeness.arguments == BOOLEAN
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenance.metadata.completeness.environment == BOOLEAN
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenance.metadata.completeness.materials == BOOLEAN
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenance.metadata.reproducible == BOOLEAN
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenance.recipe.arguments.STRING == ANY
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenance.recipe.definedInMaterial == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenance.recipe.entryPoint == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenance.recipe.environment.STRING == ANY
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenance.recipe.type == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenanceZeroTwo.buildConfig.STRING == ANY
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenanceZeroTwo.buildType == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenanceZeroTwo.builder.id == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenanceZeroTwo.invocation.configSource.digest.STRING == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenanceZeroTwo.invocation.configSource.entryPoint == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenanceZeroTwo.invocation.configSource.uri == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenanceZeroTwo.invocation.environment.STRING == ANY
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenanceZeroTwo.invocation.parameters.STRING == ANY
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenanceZeroTwo.materials[_].digest.STRING == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenanceZeroTwo.materials[_].uri == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.buildFinishedOn == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.buildInvocationId == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.buildStartedOn == STRING
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.completeness.environment == BOOLEAN
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.completeness.materials == BOOLEAN
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.completeness.parameters == BOOLEAN
    input.Body.occurrences[_].dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.reproducible == BOOLEAN
    input.Body.occurrences[_].dsseAttestation.statement.subject[_].digest.STRING == STRING
    input.Body.occurrences[_].dsseAttestation.statement.subject[_].name == STRING
    input.Body.occurrences[_].envelope.payload == STRING
    input.Body.occurrences[_].envelope.payloadType == STRING
    input.Body.occurrences[_].envelope.signatures[_].keyid == STRING
    input.Body.occurrences[_].envelope.signatures[_].sig == STRING
    input.Body.occurrences[_].image.baseResourceUrl == STRING
    input.Body.occurrences[_].image.distance == INTEGER
    input.Body.occurrences[_].image.fingerprint.v1Name == STRING
    input.Body.occurrences[_].image.fingerprint.v2Blob[_] == STRING
    input.Body.occurrences[_].image.fingerprint.v2Name == STRING
    input.Body.occurrences[_].image.layerInfo[_].arguments == STRING
    input.Body.occurrences[_].image.layerInfo[_].directive == STRING
    input.Body.occurrences[_].kind == enum_OccurrenceKind[_]
    input.Body.occurrences[_].name == STRING
    input.Body.occurrences[_].noteName == STRING
    input.Body.occurrences[_].package.license.comments == STRING
    input.Body.occurrences[_].package.license.expression == STRING
    input.Body.occurrences[_].package.location[_].cpeUri == STRING
    input.Body.occurrences[_].package.location[_].path == STRING
    input.Body.occurrences[_].package.location[_].version.epoch == INTEGER
    input.Body.occurrences[_].package.location[_].version.fullName == STRING
    input.Body.occurrences[_].package.location[_].version.inclusive == BOOLEAN
    input.Body.occurrences[_].package.location[_].version.kind == enum_VersionKind[_]
    input.Body.occurrences[_].package.location[_].version.name == STRING
    input.Body.occurrences[_].package.location[_].version.revision == STRING
    input.Body.occurrences[_].remediation == STRING
    input.Body.occurrences[_].resourceUri == STRING
    input.Body.occurrences[_].sbomReference.payload._type == STRING
    input.Body.occurrences[_].sbomReference.payload.predicate.digest.STRING == STRING
    input.Body.occurrences[_].sbomReference.payload.predicate.location == STRING
    input.Body.occurrences[_].sbomReference.payload.predicate.mimeType == STRING
    input.Body.occurrences[_].sbomReference.payload.predicate.referrerId == STRING
    input.Body.occurrences[_].sbomReference.payload.predicateType == STRING
    input.Body.occurrences[_].sbomReference.payload.subject[_].digest.STRING == STRING
    input.Body.occurrences[_].sbomReference.payload.subject[_].name == STRING
    input.Body.occurrences[_].sbomReference.payloadType == STRING
    input.Body.occurrences[_].sbomReference.signatures[_].keyid == STRING
    input.Body.occurrences[_].sbomReference.signatures[_].sig == STRING
    input.Body.occurrences[_].updateTime == STRING
    input.Body.occurrences[_].upgrade.distribution.classification == STRING
    input.Body.occurrences[_].upgrade.distribution.cpeUri == STRING
    input.Body.occurrences[_].upgrade.distribution.cve[_] == STRING
    input.Body.occurrences[_].upgrade.distribution.severity == STRING
    input.Body.occurrences[_].upgrade.package == STRING
    input.Body.occurrences[_].upgrade.parsedVersion.epoch == INTEGER
    input.Body.occurrences[_].upgrade.parsedVersion.fullName == STRING
    input.Body.occurrences[_].upgrade.parsedVersion.inclusive == BOOLEAN
    input.Body.occurrences[_].upgrade.parsedVersion.kind == enum_VersionKind[_]
    input.Body.occurrences[_].upgrade.parsedVersion.name == STRING
    input.Body.occurrences[_].upgrade.parsedVersion.revision == STRING
    input.Body.occurrences[_].upgrade.windowsUpdate.categories[_].categoryId == STRING
    input.Body.occurrences[_].upgrade.windowsUpdate.categories[_].name == STRING
    input.Body.occurrences[_].upgrade.windowsUpdate.description == STRING
    input.Body.occurrences[_].upgrade.windowsUpdate.identity.revision == INTEGER
    input.Body.occurrences[_].upgrade.windowsUpdate.identity.updateId == STRING
    input.Body.occurrences[_].upgrade.windowsUpdate.kbArticleIds[_] == STRING
    input.Body.occurrences[_].upgrade.windowsUpdate.lastPublishedTimestamp == STRING
    input.Body.occurrences[_].upgrade.windowsUpdate.supportUrl == STRING
    input.Body.occurrences[_].upgrade.windowsUpdate.title == STRING
    input.Body.occurrences[_].vulnerability.cvssScore == NUMBER
    input.Body.occurrences[_].vulnerability.cvssV2.attackComplexity == enum_CVSSAttackComplexity[_]
    input.Body.occurrences[_].vulnerability.cvssV2.attackVector == enum_CVSSAttackVector[_]
    input.Body.occurrences[_].vulnerability.cvssV2.authentication == enum_CVSSAuthentication[_]
    input.Body.occurrences[_].vulnerability.cvssV2.availabilityImpact == enum_CVSSAvailabilityImpact[_]
    input.Body.occurrences[_].vulnerability.cvssV2.baseScore == NUMBER
    input.Body.occurrences[_].vulnerability.cvssV2.confidentialityImpact == enum_CVSSConfidentialityImpact[_]
    input.Body.occurrences[_].vulnerability.cvssV2.exploitabilityScore == NUMBER
    input.Body.occurrences[_].vulnerability.cvssV2.impactScore == NUMBER
    input.Body.occurrences[_].vulnerability.cvssV2.integrityImpact == enum_CVSSIntegrityImpact[_]
    input.Body.occurrences[_].vulnerability.cvssV2.privilegesRequired == enum_CVSSPrivilegesRequired[_]
    input.Body.occurrences[_].vulnerability.cvssV2.scope == enum_CVSSScope[_]
    input.Body.occurrences[_].vulnerability.cvssV2.userInteraction == enum_CVSSUserInteraction[_]
    input.Body.occurrences[_].vulnerability.cvssVersion == enum_VulnerabilityOccurrenceCvssVersion[_]
    input.Body.occurrences[_].vulnerability.cvssv3.attackComplexity == enum_CVSSAttackComplexity[_]
    input.Body.occurrences[_].vulnerability.cvssv3.attackVector == enum_CVSSAttackVector[_]
    input.Body.occurrences[_].vulnerability.cvssv3.authentication == enum_CVSSAuthentication[_]
    input.Body.occurrences[_].vulnerability.cvssv3.availabilityImpact == enum_CVSSAvailabilityImpact[_]
    input.Body.occurrences[_].vulnerability.cvssv3.baseScore == NUMBER
    input.Body.occurrences[_].vulnerability.cvssv3.confidentialityImpact == enum_CVSSConfidentialityImpact[_]
    input.Body.occurrences[_].vulnerability.cvssv3.exploitabilityScore == NUMBER
    input.Body.occurrences[_].vulnerability.cvssv3.impactScore == NUMBER
    input.Body.occurrences[_].vulnerability.cvssv3.integrityImpact == enum_CVSSIntegrityImpact[_]
    input.Body.occurrences[_].vulnerability.cvssv3.privilegesRequired == enum_CVSSPrivilegesRequired[_]
    input.Body.occurrences[_].vulnerability.cvssv3.scope == enum_CVSSScope[_]
    input.Body.occurrences[_].vulnerability.cvssv3.userInteraction == enum_CVSSUserInteraction[_]
    input.Body.occurrences[_].vulnerability.effectiveSeverity == enum_VulnerabilityOccurrenceEffectiveSeverity[_]
    input.Body.occurrences[_].vulnerability.extraDetails == STRING
    input.Body.occurrences[_].vulnerability.fixAvailable == BOOLEAN
    input.Body.occurrences[_].vulnerability.longDescription == STRING
    input.Body.occurrences[_].vulnerability.packageIssue[_].affectedCpeUri == STRING
    input.Body.occurrences[_].vulnerability.packageIssue[_].affectedPackage == STRING
    input.Body.occurrences[_].vulnerability.packageIssue[_].affectedVersion.epoch == INTEGER
    input.Body.occurrences[_].vulnerability.packageIssue[_].affectedVersion.fullName == STRING
    input.Body.occurrences[_].vulnerability.packageIssue[_].affectedVersion.inclusive == BOOLEAN
    input.Body.occurrences[_].vulnerability.packageIssue[_].affectedVersion.kind == enum_VersionKind[_]
    input.Body.occurrences[_].vulnerability.packageIssue[_].affectedVersion.name == STRING
    input.Body.occurrences[_].vulnerability.packageIssue[_].affectedVersion.revision == STRING
    input.Body.occurrences[_].vulnerability.packageIssue[_].fileLocation[_].filePath == STRING
    input.Body.occurrences[_].vulnerability.packageIssue[_].fixAvailable == BOOLEAN
    input.Body.occurrences[_].vulnerability.packageIssue[_].fixedCpeUri == STRING
    input.Body.occurrences[_].vulnerability.packageIssue[_].fixedPackage == STRING
    input.Body.occurrences[_].vulnerability.packageIssue[_].fixedVersion.epoch == INTEGER
    input.Body.occurrences[_].vulnerability.packageIssue[_].fixedVersion.fullName == STRING
    input.Body.occurrences[_].vulnerability.packageIssue[_].fixedVersion.inclusive == BOOLEAN
    input.Body.occurrences[_].vulnerability.packageIssue[_].fixedVersion.kind == enum_VersionKind[_]
    input.Body.occurrences[_].vulnerability.packageIssue[_].fixedVersion.name == STRING
    input.Body.occurrences[_].vulnerability.packageIssue[_].fixedVersion.revision == STRING
    input.Body.occurrences[_].vulnerability.packageIssue[_].packageType == STRING
    input.Body.occurrences[_].vulnerability.relatedUrls[_].label == STRING
    input.Body.occurrences[_].vulnerability.relatedUrls[_].url == STRING
    input.Body.occurrences[_].vulnerability.severity == enum_VulnerabilityOccurrenceSeverity[_]
    input.Body.occurrences[_].vulnerability.shortDescription == STRING
    input.Body.occurrences[_].vulnerability.type == STRING
    input.Body.occurrences[_].vulnerability.vexAssessment.cve == STRING
    input.Body.occurrences[_].vulnerability.vexAssessment.impacts[_] == STRING
    input.Body.occurrences[_].vulnerability.vexAssessment.justification.details == STRING
    input.Body.occurrences[_].vulnerability.vexAssessment.justification.justificationType == enum_JustificationJustificationType[_]
    input.Body.occurrences[_].vulnerability.vexAssessment.noteName == STRING
    input.Body.occurrences[_].vulnerability.vexAssessment.relatedUris[_].label == STRING
    input.Body.occurrences[_].vulnerability.vexAssessment.relatedUris[_].url == STRING
    input.Body.occurrences[_].vulnerability.vexAssessment.remediations[_].details == STRING
    input.Body.occurrences[_].vulnerability.vexAssessment.remediations[_].remediationType == enum_RemediationRemediationType[_]
    input.Body.occurrences[_].vulnerability.vexAssessment.remediations[_].remediationUri.label == STRING
    input.Body.occurrences[_].vulnerability.vexAssessment.remediations[_].remediationUri.url == STRING
    input.Body.occurrences[_].vulnerability.vexAssessment.state == enum_VexAssessmentState[_]
    input.Body.occurrences[_].vulnerability.vexAssessment.vulnerabilityId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.occurrences.create

enum_AliasContextKind := [ "KIND_UNSPECIFIED", "FIXED", "MOVABLE", "OTHER" ]
enum_CVSSAttackComplexity := [ "ATTACK_COMPLEXITY_UNSPECIFIED", "ATTACK_COMPLEXITY_LOW", "ATTACK_COMPLEXITY_HIGH", "ATTACK_COMPLEXITY_MEDIUM" ]
enum_CVSSAttackVector := [ "ATTACK_VECTOR_UNSPECIFIED", "ATTACK_VECTOR_NETWORK", "ATTACK_VECTOR_ADJACENT", "ATTACK_VECTOR_LOCAL", "ATTACK_VECTOR_PHYSICAL" ]
enum_CVSSAuthentication := [ "AUTHENTICATION_UNSPECIFIED", "AUTHENTICATION_MULTIPLE", "AUTHENTICATION_SINGLE", "AUTHENTICATION_NONE" ]
enum_CVSSAvailabilityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSConfidentialityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSIntegrityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSPrivilegesRequired := [ "PRIVILEGES_REQUIRED_UNSPECIFIED", "PRIVILEGES_REQUIRED_NONE", "PRIVILEGES_REQUIRED_LOW", "PRIVILEGES_REQUIRED_HIGH" ]
enum_CVSSScope := [ "SCOPE_UNSPECIFIED", "SCOPE_UNCHANGED", "SCOPE_CHANGED" ]
enum_CVSSUserInteraction := [ "USER_INTERACTION_UNSPECIFIED", "USER_INTERACTION_NONE", "USER_INTERACTION_REQUIRED" ]
enum_DeploymentOccurrencePlatform := [ "PLATFORM_UNSPECIFIED", "GKE", "FLEX", "CUSTOM" ]
enum_DiscoveryOccurrenceAnalysisStatus := [ "ANALYSIS_STATUS_UNSPECIFIED", "PENDING", "SCANNING", "FINISHED_SUCCESS", "COMPLETE", "FINISHED_FAILED", "FINISHED_UNSUPPORTED" ]
enum_DiscoveryOccurrenceContinuousAnalysis := [ "CONTINUOUS_ANALYSIS_UNSPECIFIED", "ACTIVE", "INACTIVE" ]
enum_JustificationJustificationType := [ "JUSTIFICATION_TYPE_UNSPECIFIED", "COMPONENT_NOT_PRESENT", "VULNERABLE_CODE_NOT_PRESENT", "VULNERABLE_CODE_NOT_IN_EXECUTE_PATH", "VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY", "INLINE_MITIGATIONS_ALREADY_EXIST" ]
enum_OccurrenceKind := [ "NOTE_KIND_UNSPECIFIED", "VULNERABILITY", "BUILD", "IMAGE", "PACKAGE", "DEPLOYMENT", "DISCOVERY", "ATTESTATION", "UPGRADE", "COMPLIANCE", "DSSE_ATTESTATION", "VULNERABILITY_ASSESSMENT", "SBOM_REFERENCE" ]
enum_RemediationRemediationType := [ "REMEDIATION_TYPE_UNSPECIFIED", "MITIGATION", "NO_FIX_PLANNED", "NONE_AVAILABLE", "VENDOR_FIX", "WORKAROUND" ]
enum_SBOMStatusSbomState := [ "SBOM_STATE_UNSPECIFIED", "PENDING", "COMPLETE" ]
enum_VersionKind := [ "VERSION_KIND_UNSPECIFIED", "NORMAL", "MINIMUM", "MAXIMUM" ]
enum_VexAssessmentState := [ "STATE_UNSPECIFIED", "AFFECTED", "NOT_AFFECTED", "FIXED", "UNDER_INVESTIGATION" ]
enum_VulnerabilityOccurrenceCvssVersion := [ "CVSS_VERSION_UNSPECIFIED", "CVSS_VERSION_2", "CVSS_VERSION_3" ]
enum_VulnerabilityOccurrenceEffectiveSeverity := [ "SEVERITY_UNSPECIFIED", "MINIMAL", "LOW", "MEDIUM", "HIGH", "CRITICAL" ]
enum_VulnerabilityOccurrenceSeverity := [ "SEVERITY_UNSPECIFIED", "MINIMAL", "LOW", "MEDIUM", "HIGH", "CRITICAL" ]

valid {
    input.Body.attestation.jwts[_].compactJwt == STRING
    input.Body.attestation.serializedPayload == STRING
    input.Body.attestation.signatures[_].publicKeyId == STRING
    input.Body.attestation.signatures[_].signature == STRING
    input.Body.build.inTotoSlsaProvenanceV1._type == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.buildType == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.externalParameters.STRING == ANY
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.internalParameters.STRING == ANY
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].annotations.STRING == ANY
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].content == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].digest.STRING == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].downloadLocation == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].mediaType == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].name == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].uri == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].annotations.STRING == ANY
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].content == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].digest.STRING == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].downloadLocation == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].mediaType == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].name == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].uri == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.id == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.version.STRING == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].annotations.STRING == ANY
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].content == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].digest.STRING == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].downloadLocation == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].mediaType == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].name == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].uri == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.metadata.finishedOn == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.metadata.invocationId == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.metadata.startedOn == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicateType == STRING
    input.Body.build.inTotoSlsaProvenanceV1.subject[_].digest.STRING == STRING
    input.Body.build.inTotoSlsaProvenanceV1.subject[_].name == STRING
    input.Body.build.intotoProvenance.builderConfig.id == STRING
    input.Body.build.intotoProvenance.materials[_] == STRING
    input.Body.build.intotoProvenance.metadata.buildFinishedOn == STRING
    input.Body.build.intotoProvenance.metadata.buildInvocationId == STRING
    input.Body.build.intotoProvenance.metadata.buildStartedOn == STRING
    input.Body.build.intotoProvenance.metadata.completeness.arguments == BOOLEAN
    input.Body.build.intotoProvenance.metadata.completeness.environment == BOOLEAN
    input.Body.build.intotoProvenance.metadata.completeness.materials == BOOLEAN
    input.Body.build.intotoProvenance.metadata.reproducible == BOOLEAN
    input.Body.build.intotoProvenance.recipe.arguments[_].STRING == ANY
    input.Body.build.intotoProvenance.recipe.definedInMaterial == STRING
    input.Body.build.intotoProvenance.recipe.entryPoint == STRING
    input.Body.build.intotoProvenance.recipe.environment[_].STRING == ANY
    input.Body.build.intotoProvenance.recipe.type == STRING
    input.Body.build.intotoStatement._type == STRING
    input.Body.build.intotoStatement.predicateType == STRING
    input.Body.build.intotoStatement.provenance.builderConfig.id == STRING
    input.Body.build.intotoStatement.provenance.materials[_] == STRING
    input.Body.build.intotoStatement.provenance.metadata.buildFinishedOn == STRING
    input.Body.build.intotoStatement.provenance.metadata.buildInvocationId == STRING
    input.Body.build.intotoStatement.provenance.metadata.buildStartedOn == STRING
    input.Body.build.intotoStatement.provenance.metadata.completeness.arguments == BOOLEAN
    input.Body.build.intotoStatement.provenance.metadata.completeness.environment == BOOLEAN
    input.Body.build.intotoStatement.provenance.metadata.completeness.materials == BOOLEAN
    input.Body.build.intotoStatement.provenance.metadata.reproducible == BOOLEAN
    input.Body.build.intotoStatement.provenance.recipe.arguments[_].STRING == ANY
    input.Body.build.intotoStatement.provenance.recipe.definedInMaterial == STRING
    input.Body.build.intotoStatement.provenance.recipe.entryPoint == STRING
    input.Body.build.intotoStatement.provenance.recipe.environment[_].STRING == ANY
    input.Body.build.intotoStatement.provenance.recipe.type == STRING
    input.Body.build.intotoStatement.slsaProvenance.builder.id == STRING
    input.Body.build.intotoStatement.slsaProvenance.materials[_].digest.STRING == STRING
    input.Body.build.intotoStatement.slsaProvenance.materials[_].uri == STRING
    input.Body.build.intotoStatement.slsaProvenance.metadata.buildFinishedOn == STRING
    input.Body.build.intotoStatement.slsaProvenance.metadata.buildInvocationId == STRING
    input.Body.build.intotoStatement.slsaProvenance.metadata.buildStartedOn == STRING
    input.Body.build.intotoStatement.slsaProvenance.metadata.completeness.arguments == BOOLEAN
    input.Body.build.intotoStatement.slsaProvenance.metadata.completeness.environment == BOOLEAN
    input.Body.build.intotoStatement.slsaProvenance.metadata.completeness.materials == BOOLEAN
    input.Body.build.intotoStatement.slsaProvenance.metadata.reproducible == BOOLEAN
    input.Body.build.intotoStatement.slsaProvenance.recipe.arguments.STRING == ANY
    input.Body.build.intotoStatement.slsaProvenance.recipe.definedInMaterial == STRING
    input.Body.build.intotoStatement.slsaProvenance.recipe.entryPoint == STRING
    input.Body.build.intotoStatement.slsaProvenance.recipe.environment.STRING == ANY
    input.Body.build.intotoStatement.slsaProvenance.recipe.type == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.buildConfig.STRING == ANY
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.buildType == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.builder.id == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.invocation.configSource.digest.STRING == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.invocation.configSource.entryPoint == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.invocation.configSource.uri == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.invocation.environment.STRING == ANY
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.invocation.parameters.STRING == ANY
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.materials[_].digest.STRING == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.materials[_].uri == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.metadata.buildFinishedOn == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.metadata.buildInvocationId == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.metadata.buildStartedOn == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.metadata.completeness.environment == BOOLEAN
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.metadata.completeness.materials == BOOLEAN
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.metadata.completeness.parameters == BOOLEAN
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.metadata.reproducible == BOOLEAN
    input.Body.build.intotoStatement.subject[_].digest.STRING == STRING
    input.Body.build.intotoStatement.subject[_].name == STRING
    input.Body.build.provenance.buildOptions.STRING == STRING
    input.Body.build.provenance.builderVersion == STRING
    input.Body.build.provenance.builtArtifacts[_].checksum == STRING
    input.Body.build.provenance.builtArtifacts[_].id == STRING
    input.Body.build.provenance.builtArtifacts[_].names[_] == STRING
    input.Body.build.provenance.commands[_].args[_] == STRING
    input.Body.build.provenance.commands[_].dir == STRING
    input.Body.build.provenance.commands[_].env[_] == STRING
    input.Body.build.provenance.commands[_].id == STRING
    input.Body.build.provenance.commands[_].name == STRING
    input.Body.build.provenance.commands[_].waitFor[_] == STRING
    input.Body.build.provenance.createTime == STRING
    input.Body.build.provenance.creator == STRING
    input.Body.build.provenance.endTime == STRING
    input.Body.build.provenance.id == STRING
    input.Body.build.provenance.logsUri == STRING
    input.Body.build.provenance.projectId == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].cloudRepo.aliasContext.kind == enum_AliasContextKind[_]
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].cloudRepo.aliasContext.name == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].cloudRepo.repoId.projectRepoId.projectId == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].cloudRepo.repoId.projectRepoId.repoName == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].cloudRepo.repoId.uid == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].cloudRepo.revisionId == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].gerrit.aliasContext.kind == enum_AliasContextKind[_]
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].gerrit.aliasContext.name == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].gerrit.gerritProject == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].gerrit.hostUri == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].gerrit.revisionId == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].git.revisionId == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].git.url == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].labels.STRING == STRING
    input.Body.build.provenance.sourceProvenance.artifactStorageSourceUri == STRING
    input.Body.build.provenance.sourceProvenance.context.cloudRepo.aliasContext.kind == enum_AliasContextKind[_]
    input.Body.build.provenance.sourceProvenance.context.cloudRepo.aliasContext.name == STRING
    input.Body.build.provenance.sourceProvenance.context.cloudRepo.repoId.projectRepoId.projectId == STRING
    input.Body.build.provenance.sourceProvenance.context.cloudRepo.repoId.projectRepoId.repoName == STRING
    input.Body.build.provenance.sourceProvenance.context.cloudRepo.repoId.uid == STRING
    input.Body.build.provenance.sourceProvenance.context.cloudRepo.revisionId == STRING
    input.Body.build.provenance.sourceProvenance.context.gerrit.aliasContext.kind == enum_AliasContextKind[_]
    input.Body.build.provenance.sourceProvenance.context.gerrit.aliasContext.name == STRING
    input.Body.build.provenance.sourceProvenance.context.gerrit.gerritProject == STRING
    input.Body.build.provenance.sourceProvenance.context.gerrit.hostUri == STRING
    input.Body.build.provenance.sourceProvenance.context.gerrit.revisionId == STRING
    input.Body.build.provenance.sourceProvenance.context.git.revisionId == STRING
    input.Body.build.provenance.sourceProvenance.context.git.url == STRING
    input.Body.build.provenance.sourceProvenance.context.labels.STRING == STRING
    input.Body.build.provenance.sourceProvenance.fileHashes.STRING.fileHash[_].type == STRING
    input.Body.build.provenance.sourceProvenance.fileHashes.STRING.fileHash[_].value == STRING
    input.Body.build.provenance.startTime == STRING
    input.Body.build.provenance.triggerId == STRING
    input.Body.build.provenanceBytes == STRING
    input.Body.compliance.nonComplianceReason == STRING
    input.Body.compliance.nonCompliantFiles[_].displayCommand == STRING
    input.Body.compliance.nonCompliantFiles[_].path == STRING
    input.Body.compliance.nonCompliantFiles[_].reason == STRING
    input.Body.createTime == STRING
    input.Body.deployment.address == STRING
    input.Body.deployment.config == STRING
    input.Body.deployment.deployTime == STRING
    input.Body.deployment.platform == enum_DeploymentOccurrencePlatform[_]
    input.Body.deployment.resourceUri[_] == STRING
    input.Body.deployment.undeployTime == STRING
    input.Body.deployment.userEmail == STRING
    input.Body.discovery.analysisCompleted.analysisType[_] == STRING
    input.Body.discovery.analysisError[_].code == INTEGER
    input.Body.discovery.analysisError[_].details[_].STRING == ANY
    input.Body.discovery.analysisError[_].message == STRING
    input.Body.discovery.analysisStatus == enum_DiscoveryOccurrenceAnalysisStatus[_]
    input.Body.discovery.analysisStatusError.code == INTEGER
    input.Body.discovery.analysisStatusError.details[_].STRING == ANY
    input.Body.discovery.analysisStatusError.message == STRING
    input.Body.discovery.continuousAnalysis == enum_DiscoveryOccurrenceContinuousAnalysis[_]
    input.Body.discovery.cpe == STRING
    input.Body.discovery.lastScanTime == STRING
    input.Body.discovery.sbomStatus.error == STRING
    input.Body.discovery.sbomStatus.sbomState == enum_SBOMStatusSbomState[_]
    input.Body.dsseAttestation.envelope.payload == STRING
    input.Body.dsseAttestation.envelope.payloadType == STRING
    input.Body.dsseAttestation.envelope.signatures[_].keyid == STRING
    input.Body.dsseAttestation.envelope.signatures[_].sig == STRING
    input.Body.dsseAttestation.statement._type == STRING
    input.Body.dsseAttestation.statement.predicateType == STRING
    input.Body.dsseAttestation.statement.provenance.builderConfig.id == STRING
    input.Body.dsseAttestation.statement.provenance.materials[_] == STRING
    input.Body.dsseAttestation.statement.provenance.metadata.buildFinishedOn == STRING
    input.Body.dsseAttestation.statement.provenance.metadata.buildInvocationId == STRING
    input.Body.dsseAttestation.statement.provenance.metadata.buildStartedOn == STRING
    input.Body.dsseAttestation.statement.provenance.metadata.completeness.arguments == BOOLEAN
    input.Body.dsseAttestation.statement.provenance.metadata.completeness.environment == BOOLEAN
    input.Body.dsseAttestation.statement.provenance.metadata.completeness.materials == BOOLEAN
    input.Body.dsseAttestation.statement.provenance.metadata.reproducible == BOOLEAN
    input.Body.dsseAttestation.statement.provenance.recipe.arguments[_].STRING == ANY
    input.Body.dsseAttestation.statement.provenance.recipe.definedInMaterial == STRING
    input.Body.dsseAttestation.statement.provenance.recipe.entryPoint == STRING
    input.Body.dsseAttestation.statement.provenance.recipe.environment[_].STRING == ANY
    input.Body.dsseAttestation.statement.provenance.recipe.type == STRING
    input.Body.dsseAttestation.statement.slsaProvenance.builder.id == STRING
    input.Body.dsseAttestation.statement.slsaProvenance.materials[_].digest.STRING == STRING
    input.Body.dsseAttestation.statement.slsaProvenance.materials[_].uri == STRING
    input.Body.dsseAttestation.statement.slsaProvenance.metadata.buildFinishedOn == STRING
    input.Body.dsseAttestation.statement.slsaProvenance.metadata.buildInvocationId == STRING
    input.Body.dsseAttestation.statement.slsaProvenance.metadata.buildStartedOn == STRING
    input.Body.dsseAttestation.statement.slsaProvenance.metadata.completeness.arguments == BOOLEAN
    input.Body.dsseAttestation.statement.slsaProvenance.metadata.completeness.environment == BOOLEAN
    input.Body.dsseAttestation.statement.slsaProvenance.metadata.completeness.materials == BOOLEAN
    input.Body.dsseAttestation.statement.slsaProvenance.metadata.reproducible == BOOLEAN
    input.Body.dsseAttestation.statement.slsaProvenance.recipe.arguments.STRING == ANY
    input.Body.dsseAttestation.statement.slsaProvenance.recipe.definedInMaterial == STRING
    input.Body.dsseAttestation.statement.slsaProvenance.recipe.entryPoint == STRING
    input.Body.dsseAttestation.statement.slsaProvenance.recipe.environment.STRING == ANY
    input.Body.dsseAttestation.statement.slsaProvenance.recipe.type == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.buildConfig.STRING == ANY
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.buildType == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.builder.id == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.invocation.configSource.digest.STRING == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.invocation.configSource.entryPoint == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.invocation.configSource.uri == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.invocation.environment.STRING == ANY
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.invocation.parameters.STRING == ANY
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.materials[_].digest.STRING == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.materials[_].uri == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.buildFinishedOn == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.buildInvocationId == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.buildStartedOn == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.completeness.environment == BOOLEAN
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.completeness.materials == BOOLEAN
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.completeness.parameters == BOOLEAN
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.reproducible == BOOLEAN
    input.Body.dsseAttestation.statement.subject[_].digest.STRING == STRING
    input.Body.dsseAttestation.statement.subject[_].name == STRING
    input.Body.envelope.payload == STRING
    input.Body.envelope.payloadType == STRING
    input.Body.envelope.signatures[_].keyid == STRING
    input.Body.envelope.signatures[_].sig == STRING
    input.Body.image.baseResourceUrl == STRING
    input.Body.image.distance == INTEGER
    input.Body.image.fingerprint.v1Name == STRING
    input.Body.image.fingerprint.v2Blob[_] == STRING
    input.Body.image.fingerprint.v2Name == STRING
    input.Body.image.layerInfo[_].arguments == STRING
    input.Body.image.layerInfo[_].directive == STRING
    input.Body.kind == enum_OccurrenceKind[_]
    input.Body.name == STRING
    input.Body.noteName == STRING
    input.Body.package.license.comments == STRING
    input.Body.package.license.expression == STRING
    input.Body.package.location[_].cpeUri == STRING
    input.Body.package.location[_].path == STRING
    input.Body.package.location[_].version.epoch == INTEGER
    input.Body.package.location[_].version.fullName == STRING
    input.Body.package.location[_].version.inclusive == BOOLEAN
    input.Body.package.location[_].version.kind == enum_VersionKind[_]
    input.Body.package.location[_].version.name == STRING
    input.Body.package.location[_].version.revision == STRING
    input.Body.remediation == STRING
    input.Body.resourceUri == STRING
    input.Body.sbomReference.payload._type == STRING
    input.Body.sbomReference.payload.predicate.digest.STRING == STRING
    input.Body.sbomReference.payload.predicate.location == STRING
    input.Body.sbomReference.payload.predicate.mimeType == STRING
    input.Body.sbomReference.payload.predicate.referrerId == STRING
    input.Body.sbomReference.payload.predicateType == STRING
    input.Body.sbomReference.payload.subject[_].digest.STRING == STRING
    input.Body.sbomReference.payload.subject[_].name == STRING
    input.Body.sbomReference.payloadType == STRING
    input.Body.sbomReference.signatures[_].keyid == STRING
    input.Body.sbomReference.signatures[_].sig == STRING
    input.Body.updateTime == STRING
    input.Body.upgrade.distribution.classification == STRING
    input.Body.upgrade.distribution.cpeUri == STRING
    input.Body.upgrade.distribution.cve[_] == STRING
    input.Body.upgrade.distribution.severity == STRING
    input.Body.upgrade.package == STRING
    input.Body.upgrade.parsedVersion.epoch == INTEGER
    input.Body.upgrade.parsedVersion.fullName == STRING
    input.Body.upgrade.parsedVersion.inclusive == BOOLEAN
    input.Body.upgrade.parsedVersion.kind == enum_VersionKind[_]
    input.Body.upgrade.parsedVersion.name == STRING
    input.Body.upgrade.parsedVersion.revision == STRING
    input.Body.upgrade.windowsUpdate.categories[_].categoryId == STRING
    input.Body.upgrade.windowsUpdate.categories[_].name == STRING
    input.Body.upgrade.windowsUpdate.description == STRING
    input.Body.upgrade.windowsUpdate.identity.revision == INTEGER
    input.Body.upgrade.windowsUpdate.identity.updateId == STRING
    input.Body.upgrade.windowsUpdate.kbArticleIds[_] == STRING
    input.Body.upgrade.windowsUpdate.lastPublishedTimestamp == STRING
    input.Body.upgrade.windowsUpdate.supportUrl == STRING
    input.Body.upgrade.windowsUpdate.title == STRING
    input.Body.vulnerability.cvssScore == NUMBER
    input.Body.vulnerability.cvssV2.attackComplexity == enum_CVSSAttackComplexity[_]
    input.Body.vulnerability.cvssV2.attackVector == enum_CVSSAttackVector[_]
    input.Body.vulnerability.cvssV2.authentication == enum_CVSSAuthentication[_]
    input.Body.vulnerability.cvssV2.availabilityImpact == enum_CVSSAvailabilityImpact[_]
    input.Body.vulnerability.cvssV2.baseScore == NUMBER
    input.Body.vulnerability.cvssV2.confidentialityImpact == enum_CVSSConfidentialityImpact[_]
    input.Body.vulnerability.cvssV2.exploitabilityScore == NUMBER
    input.Body.vulnerability.cvssV2.impactScore == NUMBER
    input.Body.vulnerability.cvssV2.integrityImpact == enum_CVSSIntegrityImpact[_]
    input.Body.vulnerability.cvssV2.privilegesRequired == enum_CVSSPrivilegesRequired[_]
    input.Body.vulnerability.cvssV2.scope == enum_CVSSScope[_]
    input.Body.vulnerability.cvssV2.userInteraction == enum_CVSSUserInteraction[_]
    input.Body.vulnerability.cvssVersion == enum_VulnerabilityOccurrenceCvssVersion[_]
    input.Body.vulnerability.cvssv3.attackComplexity == enum_CVSSAttackComplexity[_]
    input.Body.vulnerability.cvssv3.attackVector == enum_CVSSAttackVector[_]
    input.Body.vulnerability.cvssv3.authentication == enum_CVSSAuthentication[_]
    input.Body.vulnerability.cvssv3.availabilityImpact == enum_CVSSAvailabilityImpact[_]
    input.Body.vulnerability.cvssv3.baseScore == NUMBER
    input.Body.vulnerability.cvssv3.confidentialityImpact == enum_CVSSConfidentialityImpact[_]
    input.Body.vulnerability.cvssv3.exploitabilityScore == NUMBER
    input.Body.vulnerability.cvssv3.impactScore == NUMBER
    input.Body.vulnerability.cvssv3.integrityImpact == enum_CVSSIntegrityImpact[_]
    input.Body.vulnerability.cvssv3.privilegesRequired == enum_CVSSPrivilegesRequired[_]
    input.Body.vulnerability.cvssv3.scope == enum_CVSSScope[_]
    input.Body.vulnerability.cvssv3.userInteraction == enum_CVSSUserInteraction[_]
    input.Body.vulnerability.effectiveSeverity == enum_VulnerabilityOccurrenceEffectiveSeverity[_]
    input.Body.vulnerability.extraDetails == STRING
    input.Body.vulnerability.fixAvailable == BOOLEAN
    input.Body.vulnerability.longDescription == STRING
    input.Body.vulnerability.packageIssue[_].affectedCpeUri == STRING
    input.Body.vulnerability.packageIssue[_].affectedPackage == STRING
    input.Body.vulnerability.packageIssue[_].affectedVersion.epoch == INTEGER
    input.Body.vulnerability.packageIssue[_].affectedVersion.fullName == STRING
    input.Body.vulnerability.packageIssue[_].affectedVersion.inclusive == BOOLEAN
    input.Body.vulnerability.packageIssue[_].affectedVersion.kind == enum_VersionKind[_]
    input.Body.vulnerability.packageIssue[_].affectedVersion.name == STRING
    input.Body.vulnerability.packageIssue[_].affectedVersion.revision == STRING
    input.Body.vulnerability.packageIssue[_].fileLocation[_].filePath == STRING
    input.Body.vulnerability.packageIssue[_].fixAvailable == BOOLEAN
    input.Body.vulnerability.packageIssue[_].fixedCpeUri == STRING
    input.Body.vulnerability.packageIssue[_].fixedPackage == STRING
    input.Body.vulnerability.packageIssue[_].fixedVersion.epoch == INTEGER
    input.Body.vulnerability.packageIssue[_].fixedVersion.fullName == STRING
    input.Body.vulnerability.packageIssue[_].fixedVersion.inclusive == BOOLEAN
    input.Body.vulnerability.packageIssue[_].fixedVersion.kind == enum_VersionKind[_]
    input.Body.vulnerability.packageIssue[_].fixedVersion.name == STRING
    input.Body.vulnerability.packageIssue[_].fixedVersion.revision == STRING
    input.Body.vulnerability.packageIssue[_].packageType == STRING
    input.Body.vulnerability.relatedUrls[_].label == STRING
    input.Body.vulnerability.relatedUrls[_].url == STRING
    input.Body.vulnerability.severity == enum_VulnerabilityOccurrenceSeverity[_]
    input.Body.vulnerability.shortDescription == STRING
    input.Body.vulnerability.type == STRING
    input.Body.vulnerability.vexAssessment.cve == STRING
    input.Body.vulnerability.vexAssessment.impacts[_] == STRING
    input.Body.vulnerability.vexAssessment.justification.details == STRING
    input.Body.vulnerability.vexAssessment.justification.justificationType == enum_JustificationJustificationType[_]
    input.Body.vulnerability.vexAssessment.noteName == STRING
    input.Body.vulnerability.vexAssessment.relatedUris[_].label == STRING
    input.Body.vulnerability.vexAssessment.relatedUris[_].url == STRING
    input.Body.vulnerability.vexAssessment.remediations[_].details == STRING
    input.Body.vulnerability.vexAssessment.remediations[_].remediationType == enum_RemediationRemediationType[_]
    input.Body.vulnerability.vexAssessment.remediations[_].remediationUri.label == STRING
    input.Body.vulnerability.vexAssessment.remediations[_].remediationUri.url == STRING
    input.Body.vulnerability.vexAssessment.state == enum_VexAssessmentState[_]
    input.Body.vulnerability.vexAssessment.vulnerabilityId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.occurrences.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.occurrences.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.occurrences.getIamPolicy

valid {
    input.Body.options.requestedPolicyVersion == INTEGER
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.occurrences.getNotes

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.occurrences.getVulnerabilitySummary

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.occurrences.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.occurrences.patch

enum_AliasContextKind := [ "KIND_UNSPECIFIED", "FIXED", "MOVABLE", "OTHER" ]
enum_CVSSAttackComplexity := [ "ATTACK_COMPLEXITY_UNSPECIFIED", "ATTACK_COMPLEXITY_LOW", "ATTACK_COMPLEXITY_HIGH", "ATTACK_COMPLEXITY_MEDIUM" ]
enum_CVSSAttackVector := [ "ATTACK_VECTOR_UNSPECIFIED", "ATTACK_VECTOR_NETWORK", "ATTACK_VECTOR_ADJACENT", "ATTACK_VECTOR_LOCAL", "ATTACK_VECTOR_PHYSICAL" ]
enum_CVSSAuthentication := [ "AUTHENTICATION_UNSPECIFIED", "AUTHENTICATION_MULTIPLE", "AUTHENTICATION_SINGLE", "AUTHENTICATION_NONE" ]
enum_CVSSAvailabilityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSConfidentialityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSIntegrityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSPrivilegesRequired := [ "PRIVILEGES_REQUIRED_UNSPECIFIED", "PRIVILEGES_REQUIRED_NONE", "PRIVILEGES_REQUIRED_LOW", "PRIVILEGES_REQUIRED_HIGH" ]
enum_CVSSScope := [ "SCOPE_UNSPECIFIED", "SCOPE_UNCHANGED", "SCOPE_CHANGED" ]
enum_CVSSUserInteraction := [ "USER_INTERACTION_UNSPECIFIED", "USER_INTERACTION_NONE", "USER_INTERACTION_REQUIRED" ]
enum_DeploymentOccurrencePlatform := [ "PLATFORM_UNSPECIFIED", "GKE", "FLEX", "CUSTOM" ]
enum_DiscoveryOccurrenceAnalysisStatus := [ "ANALYSIS_STATUS_UNSPECIFIED", "PENDING", "SCANNING", "FINISHED_SUCCESS", "COMPLETE", "FINISHED_FAILED", "FINISHED_UNSUPPORTED" ]
enum_DiscoveryOccurrenceContinuousAnalysis := [ "CONTINUOUS_ANALYSIS_UNSPECIFIED", "ACTIVE", "INACTIVE" ]
enum_JustificationJustificationType := [ "JUSTIFICATION_TYPE_UNSPECIFIED", "COMPONENT_NOT_PRESENT", "VULNERABLE_CODE_NOT_PRESENT", "VULNERABLE_CODE_NOT_IN_EXECUTE_PATH", "VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY", "INLINE_MITIGATIONS_ALREADY_EXIST" ]
enum_OccurrenceKind := [ "NOTE_KIND_UNSPECIFIED", "VULNERABILITY", "BUILD", "IMAGE", "PACKAGE", "DEPLOYMENT", "DISCOVERY", "ATTESTATION", "UPGRADE", "COMPLIANCE", "DSSE_ATTESTATION", "VULNERABILITY_ASSESSMENT", "SBOM_REFERENCE" ]
enum_RemediationRemediationType := [ "REMEDIATION_TYPE_UNSPECIFIED", "MITIGATION", "NO_FIX_PLANNED", "NONE_AVAILABLE", "VENDOR_FIX", "WORKAROUND" ]
enum_SBOMStatusSbomState := [ "SBOM_STATE_UNSPECIFIED", "PENDING", "COMPLETE" ]
enum_VersionKind := [ "VERSION_KIND_UNSPECIFIED", "NORMAL", "MINIMUM", "MAXIMUM" ]
enum_VexAssessmentState := [ "STATE_UNSPECIFIED", "AFFECTED", "NOT_AFFECTED", "FIXED", "UNDER_INVESTIGATION" ]
enum_VulnerabilityOccurrenceCvssVersion := [ "CVSS_VERSION_UNSPECIFIED", "CVSS_VERSION_2", "CVSS_VERSION_3" ]
enum_VulnerabilityOccurrenceEffectiveSeverity := [ "SEVERITY_UNSPECIFIED", "MINIMAL", "LOW", "MEDIUM", "HIGH", "CRITICAL" ]
enum_VulnerabilityOccurrenceSeverity := [ "SEVERITY_UNSPECIFIED", "MINIMAL", "LOW", "MEDIUM", "HIGH", "CRITICAL" ]

valid {
    input.Body.attestation.jwts[_].compactJwt == STRING
    input.Body.attestation.serializedPayload == STRING
    input.Body.attestation.signatures[_].publicKeyId == STRING
    input.Body.attestation.signatures[_].signature == STRING
    input.Body.build.inTotoSlsaProvenanceV1._type == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.buildType == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.externalParameters.STRING == ANY
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.internalParameters.STRING == ANY
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].annotations.STRING == ANY
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].content == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].digest.STRING == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].downloadLocation == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].mediaType == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].name == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.buildDefinition.resolvedDependencies[_].uri == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].annotations.STRING == ANY
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].content == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].digest.STRING == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].downloadLocation == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].mediaType == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].name == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.builderDependencies[_].uri == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.id == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.builder.version.STRING == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].annotations.STRING == ANY
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].content == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].digest.STRING == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].downloadLocation == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].mediaType == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].name == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.byproducts[_].uri == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.metadata.finishedOn == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.metadata.invocationId == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicate.runDetails.metadata.startedOn == STRING
    input.Body.build.inTotoSlsaProvenanceV1.predicateType == STRING
    input.Body.build.inTotoSlsaProvenanceV1.subject[_].digest.STRING == STRING
    input.Body.build.inTotoSlsaProvenanceV1.subject[_].name == STRING
    input.Body.build.intotoProvenance.builderConfig.id == STRING
    input.Body.build.intotoProvenance.materials[_] == STRING
    input.Body.build.intotoProvenance.metadata.buildFinishedOn == STRING
    input.Body.build.intotoProvenance.metadata.buildInvocationId == STRING
    input.Body.build.intotoProvenance.metadata.buildStartedOn == STRING
    input.Body.build.intotoProvenance.metadata.completeness.arguments == BOOLEAN
    input.Body.build.intotoProvenance.metadata.completeness.environment == BOOLEAN
    input.Body.build.intotoProvenance.metadata.completeness.materials == BOOLEAN
    input.Body.build.intotoProvenance.metadata.reproducible == BOOLEAN
    input.Body.build.intotoProvenance.recipe.arguments[_].STRING == ANY
    input.Body.build.intotoProvenance.recipe.definedInMaterial == STRING
    input.Body.build.intotoProvenance.recipe.entryPoint == STRING
    input.Body.build.intotoProvenance.recipe.environment[_].STRING == ANY
    input.Body.build.intotoProvenance.recipe.type == STRING
    input.Body.build.intotoStatement._type == STRING
    input.Body.build.intotoStatement.predicateType == STRING
    input.Body.build.intotoStatement.provenance.builderConfig.id == STRING
    input.Body.build.intotoStatement.provenance.materials[_] == STRING
    input.Body.build.intotoStatement.provenance.metadata.buildFinishedOn == STRING
    input.Body.build.intotoStatement.provenance.metadata.buildInvocationId == STRING
    input.Body.build.intotoStatement.provenance.metadata.buildStartedOn == STRING
    input.Body.build.intotoStatement.provenance.metadata.completeness.arguments == BOOLEAN
    input.Body.build.intotoStatement.provenance.metadata.completeness.environment == BOOLEAN
    input.Body.build.intotoStatement.provenance.metadata.completeness.materials == BOOLEAN
    input.Body.build.intotoStatement.provenance.metadata.reproducible == BOOLEAN
    input.Body.build.intotoStatement.provenance.recipe.arguments[_].STRING == ANY
    input.Body.build.intotoStatement.provenance.recipe.definedInMaterial == STRING
    input.Body.build.intotoStatement.provenance.recipe.entryPoint == STRING
    input.Body.build.intotoStatement.provenance.recipe.environment[_].STRING == ANY
    input.Body.build.intotoStatement.provenance.recipe.type == STRING
    input.Body.build.intotoStatement.slsaProvenance.builder.id == STRING
    input.Body.build.intotoStatement.slsaProvenance.materials[_].digest.STRING == STRING
    input.Body.build.intotoStatement.slsaProvenance.materials[_].uri == STRING
    input.Body.build.intotoStatement.slsaProvenance.metadata.buildFinishedOn == STRING
    input.Body.build.intotoStatement.slsaProvenance.metadata.buildInvocationId == STRING
    input.Body.build.intotoStatement.slsaProvenance.metadata.buildStartedOn == STRING
    input.Body.build.intotoStatement.slsaProvenance.metadata.completeness.arguments == BOOLEAN
    input.Body.build.intotoStatement.slsaProvenance.metadata.completeness.environment == BOOLEAN
    input.Body.build.intotoStatement.slsaProvenance.metadata.completeness.materials == BOOLEAN
    input.Body.build.intotoStatement.slsaProvenance.metadata.reproducible == BOOLEAN
    input.Body.build.intotoStatement.slsaProvenance.recipe.arguments.STRING == ANY
    input.Body.build.intotoStatement.slsaProvenance.recipe.definedInMaterial == STRING
    input.Body.build.intotoStatement.slsaProvenance.recipe.entryPoint == STRING
    input.Body.build.intotoStatement.slsaProvenance.recipe.environment.STRING == ANY
    input.Body.build.intotoStatement.slsaProvenance.recipe.type == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.buildConfig.STRING == ANY
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.buildType == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.builder.id == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.invocation.configSource.digest.STRING == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.invocation.configSource.entryPoint == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.invocation.configSource.uri == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.invocation.environment.STRING == ANY
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.invocation.parameters.STRING == ANY
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.materials[_].digest.STRING == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.materials[_].uri == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.metadata.buildFinishedOn == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.metadata.buildInvocationId == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.metadata.buildStartedOn == STRING
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.metadata.completeness.environment == BOOLEAN
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.metadata.completeness.materials == BOOLEAN
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.metadata.completeness.parameters == BOOLEAN
    input.Body.build.intotoStatement.slsaProvenanceZeroTwo.metadata.reproducible == BOOLEAN
    input.Body.build.intotoStatement.subject[_].digest.STRING == STRING
    input.Body.build.intotoStatement.subject[_].name == STRING
    input.Body.build.provenance.buildOptions.STRING == STRING
    input.Body.build.provenance.builderVersion == STRING
    input.Body.build.provenance.builtArtifacts[_].checksum == STRING
    input.Body.build.provenance.builtArtifacts[_].id == STRING
    input.Body.build.provenance.builtArtifacts[_].names[_] == STRING
    input.Body.build.provenance.commands[_].args[_] == STRING
    input.Body.build.provenance.commands[_].dir == STRING
    input.Body.build.provenance.commands[_].env[_] == STRING
    input.Body.build.provenance.commands[_].id == STRING
    input.Body.build.provenance.commands[_].name == STRING
    input.Body.build.provenance.commands[_].waitFor[_] == STRING
    input.Body.build.provenance.createTime == STRING
    input.Body.build.provenance.creator == STRING
    input.Body.build.provenance.endTime == STRING
    input.Body.build.provenance.id == STRING
    input.Body.build.provenance.logsUri == STRING
    input.Body.build.provenance.projectId == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].cloudRepo.aliasContext.kind == enum_AliasContextKind[_]
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].cloudRepo.aliasContext.name == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].cloudRepo.repoId.projectRepoId.projectId == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].cloudRepo.repoId.projectRepoId.repoName == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].cloudRepo.repoId.uid == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].cloudRepo.revisionId == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].gerrit.aliasContext.kind == enum_AliasContextKind[_]
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].gerrit.aliasContext.name == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].gerrit.gerritProject == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].gerrit.hostUri == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].gerrit.revisionId == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].git.revisionId == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].git.url == STRING
    input.Body.build.provenance.sourceProvenance.additionalContexts[_].labels.STRING == STRING
    input.Body.build.provenance.sourceProvenance.artifactStorageSourceUri == STRING
    input.Body.build.provenance.sourceProvenance.context.cloudRepo.aliasContext.kind == enum_AliasContextKind[_]
    input.Body.build.provenance.sourceProvenance.context.cloudRepo.aliasContext.name == STRING
    input.Body.build.provenance.sourceProvenance.context.cloudRepo.repoId.projectRepoId.projectId == STRING
    input.Body.build.provenance.sourceProvenance.context.cloudRepo.repoId.projectRepoId.repoName == STRING
    input.Body.build.provenance.sourceProvenance.context.cloudRepo.repoId.uid == STRING
    input.Body.build.provenance.sourceProvenance.context.cloudRepo.revisionId == STRING
    input.Body.build.provenance.sourceProvenance.context.gerrit.aliasContext.kind == enum_AliasContextKind[_]
    input.Body.build.provenance.sourceProvenance.context.gerrit.aliasContext.name == STRING
    input.Body.build.provenance.sourceProvenance.context.gerrit.gerritProject == STRING
    input.Body.build.provenance.sourceProvenance.context.gerrit.hostUri == STRING
    input.Body.build.provenance.sourceProvenance.context.gerrit.revisionId == STRING
    input.Body.build.provenance.sourceProvenance.context.git.revisionId == STRING
    input.Body.build.provenance.sourceProvenance.context.git.url == STRING
    input.Body.build.provenance.sourceProvenance.context.labels.STRING == STRING
    input.Body.build.provenance.sourceProvenance.fileHashes.STRING.fileHash[_].type == STRING
    input.Body.build.provenance.sourceProvenance.fileHashes.STRING.fileHash[_].value == STRING
    input.Body.build.provenance.startTime == STRING
    input.Body.build.provenance.triggerId == STRING
    input.Body.build.provenanceBytes == STRING
    input.Body.compliance.nonComplianceReason == STRING
    input.Body.compliance.nonCompliantFiles[_].displayCommand == STRING
    input.Body.compliance.nonCompliantFiles[_].path == STRING
    input.Body.compliance.nonCompliantFiles[_].reason == STRING
    input.Body.createTime == STRING
    input.Body.deployment.address == STRING
    input.Body.deployment.config == STRING
    input.Body.deployment.deployTime == STRING
    input.Body.deployment.platform == enum_DeploymentOccurrencePlatform[_]
    input.Body.deployment.resourceUri[_] == STRING
    input.Body.deployment.undeployTime == STRING
    input.Body.deployment.userEmail == STRING
    input.Body.discovery.analysisCompleted.analysisType[_] == STRING
    input.Body.discovery.analysisError[_].code == INTEGER
    input.Body.discovery.analysisError[_].details[_].STRING == ANY
    input.Body.discovery.analysisError[_].message == STRING
    input.Body.discovery.analysisStatus == enum_DiscoveryOccurrenceAnalysisStatus[_]
    input.Body.discovery.analysisStatusError.code == INTEGER
    input.Body.discovery.analysisStatusError.details[_].STRING == ANY
    input.Body.discovery.analysisStatusError.message == STRING
    input.Body.discovery.continuousAnalysis == enum_DiscoveryOccurrenceContinuousAnalysis[_]
    input.Body.discovery.cpe == STRING
    input.Body.discovery.lastScanTime == STRING
    input.Body.discovery.sbomStatus.error == STRING
    input.Body.discovery.sbomStatus.sbomState == enum_SBOMStatusSbomState[_]
    input.Body.dsseAttestation.envelope.payload == STRING
    input.Body.dsseAttestation.envelope.payloadType == STRING
    input.Body.dsseAttestation.envelope.signatures[_].keyid == STRING
    input.Body.dsseAttestation.envelope.signatures[_].sig == STRING
    input.Body.dsseAttestation.statement._type == STRING
    input.Body.dsseAttestation.statement.predicateType == STRING
    input.Body.dsseAttestation.statement.provenance.builderConfig.id == STRING
    input.Body.dsseAttestation.statement.provenance.materials[_] == STRING
    input.Body.dsseAttestation.statement.provenance.metadata.buildFinishedOn == STRING
    input.Body.dsseAttestation.statement.provenance.metadata.buildInvocationId == STRING
    input.Body.dsseAttestation.statement.provenance.metadata.buildStartedOn == STRING
    input.Body.dsseAttestation.statement.provenance.metadata.completeness.arguments == BOOLEAN
    input.Body.dsseAttestation.statement.provenance.metadata.completeness.environment == BOOLEAN
    input.Body.dsseAttestation.statement.provenance.metadata.completeness.materials == BOOLEAN
    input.Body.dsseAttestation.statement.provenance.metadata.reproducible == BOOLEAN
    input.Body.dsseAttestation.statement.provenance.recipe.arguments[_].STRING == ANY
    input.Body.dsseAttestation.statement.provenance.recipe.definedInMaterial == STRING
    input.Body.dsseAttestation.statement.provenance.recipe.entryPoint == STRING
    input.Body.dsseAttestation.statement.provenance.recipe.environment[_].STRING == ANY
    input.Body.dsseAttestation.statement.provenance.recipe.type == STRING
    input.Body.dsseAttestation.statement.slsaProvenance.builder.id == STRING
    input.Body.dsseAttestation.statement.slsaProvenance.materials[_].digest.STRING == STRING
    input.Body.dsseAttestation.statement.slsaProvenance.materials[_].uri == STRING
    input.Body.dsseAttestation.statement.slsaProvenance.metadata.buildFinishedOn == STRING
    input.Body.dsseAttestation.statement.slsaProvenance.metadata.buildInvocationId == STRING
    input.Body.dsseAttestation.statement.slsaProvenance.metadata.buildStartedOn == STRING
    input.Body.dsseAttestation.statement.slsaProvenance.metadata.completeness.arguments == BOOLEAN
    input.Body.dsseAttestation.statement.slsaProvenance.metadata.completeness.environment == BOOLEAN
    input.Body.dsseAttestation.statement.slsaProvenance.metadata.completeness.materials == BOOLEAN
    input.Body.dsseAttestation.statement.slsaProvenance.metadata.reproducible == BOOLEAN
    input.Body.dsseAttestation.statement.slsaProvenance.recipe.arguments.STRING == ANY
    input.Body.dsseAttestation.statement.slsaProvenance.recipe.definedInMaterial == STRING
    input.Body.dsseAttestation.statement.slsaProvenance.recipe.entryPoint == STRING
    input.Body.dsseAttestation.statement.slsaProvenance.recipe.environment.STRING == ANY
    input.Body.dsseAttestation.statement.slsaProvenance.recipe.type == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.buildConfig.STRING == ANY
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.buildType == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.builder.id == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.invocation.configSource.digest.STRING == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.invocation.configSource.entryPoint == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.invocation.configSource.uri == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.invocation.environment.STRING == ANY
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.invocation.parameters.STRING == ANY
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.materials[_].digest.STRING == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.materials[_].uri == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.buildFinishedOn == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.buildInvocationId == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.buildStartedOn == STRING
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.completeness.environment == BOOLEAN
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.completeness.materials == BOOLEAN
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.completeness.parameters == BOOLEAN
    input.Body.dsseAttestation.statement.slsaProvenanceZeroTwo.metadata.reproducible == BOOLEAN
    input.Body.dsseAttestation.statement.subject[_].digest.STRING == STRING
    input.Body.dsseAttestation.statement.subject[_].name == STRING
    input.Body.envelope.payload == STRING
    input.Body.envelope.payloadType == STRING
    input.Body.envelope.signatures[_].keyid == STRING
    input.Body.envelope.signatures[_].sig == STRING
    input.Body.image.baseResourceUrl == STRING
    input.Body.image.distance == INTEGER
    input.Body.image.fingerprint.v1Name == STRING
    input.Body.image.fingerprint.v2Blob[_] == STRING
    input.Body.image.fingerprint.v2Name == STRING
    input.Body.image.layerInfo[_].arguments == STRING
    input.Body.image.layerInfo[_].directive == STRING
    input.Body.kind == enum_OccurrenceKind[_]
    input.Body.name == STRING
    input.Body.noteName == STRING
    input.Body.package.license.comments == STRING
    input.Body.package.license.expression == STRING
    input.Body.package.location[_].cpeUri == STRING
    input.Body.package.location[_].path == STRING
    input.Body.package.location[_].version.epoch == INTEGER
    input.Body.package.location[_].version.fullName == STRING
    input.Body.package.location[_].version.inclusive == BOOLEAN
    input.Body.package.location[_].version.kind == enum_VersionKind[_]
    input.Body.package.location[_].version.name == STRING
    input.Body.package.location[_].version.revision == STRING
    input.Body.remediation == STRING
    input.Body.resourceUri == STRING
    input.Body.sbomReference.payload._type == STRING
    input.Body.sbomReference.payload.predicate.digest.STRING == STRING
    input.Body.sbomReference.payload.predicate.location == STRING
    input.Body.sbomReference.payload.predicate.mimeType == STRING
    input.Body.sbomReference.payload.predicate.referrerId == STRING
    input.Body.sbomReference.payload.predicateType == STRING
    input.Body.sbomReference.payload.subject[_].digest.STRING == STRING
    input.Body.sbomReference.payload.subject[_].name == STRING
    input.Body.sbomReference.payloadType == STRING
    input.Body.sbomReference.signatures[_].keyid == STRING
    input.Body.sbomReference.signatures[_].sig == STRING
    input.Body.updateTime == STRING
    input.Body.upgrade.distribution.classification == STRING
    input.Body.upgrade.distribution.cpeUri == STRING
    input.Body.upgrade.distribution.cve[_] == STRING
    input.Body.upgrade.distribution.severity == STRING
    input.Body.upgrade.package == STRING
    input.Body.upgrade.parsedVersion.epoch == INTEGER
    input.Body.upgrade.parsedVersion.fullName == STRING
    input.Body.upgrade.parsedVersion.inclusive == BOOLEAN
    input.Body.upgrade.parsedVersion.kind == enum_VersionKind[_]
    input.Body.upgrade.parsedVersion.name == STRING
    input.Body.upgrade.parsedVersion.revision == STRING
    input.Body.upgrade.windowsUpdate.categories[_].categoryId == STRING
    input.Body.upgrade.windowsUpdate.categories[_].name == STRING
    input.Body.upgrade.windowsUpdate.description == STRING
    input.Body.upgrade.windowsUpdate.identity.revision == INTEGER
    input.Body.upgrade.windowsUpdate.identity.updateId == STRING
    input.Body.upgrade.windowsUpdate.kbArticleIds[_] == STRING
    input.Body.upgrade.windowsUpdate.lastPublishedTimestamp == STRING
    input.Body.upgrade.windowsUpdate.supportUrl == STRING
    input.Body.upgrade.windowsUpdate.title == STRING
    input.Body.vulnerability.cvssScore == NUMBER
    input.Body.vulnerability.cvssV2.attackComplexity == enum_CVSSAttackComplexity[_]
    input.Body.vulnerability.cvssV2.attackVector == enum_CVSSAttackVector[_]
    input.Body.vulnerability.cvssV2.authentication == enum_CVSSAuthentication[_]
    input.Body.vulnerability.cvssV2.availabilityImpact == enum_CVSSAvailabilityImpact[_]
    input.Body.vulnerability.cvssV2.baseScore == NUMBER
    input.Body.vulnerability.cvssV2.confidentialityImpact == enum_CVSSConfidentialityImpact[_]
    input.Body.vulnerability.cvssV2.exploitabilityScore == NUMBER
    input.Body.vulnerability.cvssV2.impactScore == NUMBER
    input.Body.vulnerability.cvssV2.integrityImpact == enum_CVSSIntegrityImpact[_]
    input.Body.vulnerability.cvssV2.privilegesRequired == enum_CVSSPrivilegesRequired[_]
    input.Body.vulnerability.cvssV2.scope == enum_CVSSScope[_]
    input.Body.vulnerability.cvssV2.userInteraction == enum_CVSSUserInteraction[_]
    input.Body.vulnerability.cvssVersion == enum_VulnerabilityOccurrenceCvssVersion[_]
    input.Body.vulnerability.cvssv3.attackComplexity == enum_CVSSAttackComplexity[_]
    input.Body.vulnerability.cvssv3.attackVector == enum_CVSSAttackVector[_]
    input.Body.vulnerability.cvssv3.authentication == enum_CVSSAuthentication[_]
    input.Body.vulnerability.cvssv3.availabilityImpact == enum_CVSSAvailabilityImpact[_]
    input.Body.vulnerability.cvssv3.baseScore == NUMBER
    input.Body.vulnerability.cvssv3.confidentialityImpact == enum_CVSSConfidentialityImpact[_]
    input.Body.vulnerability.cvssv3.exploitabilityScore == NUMBER
    input.Body.vulnerability.cvssv3.impactScore == NUMBER
    input.Body.vulnerability.cvssv3.integrityImpact == enum_CVSSIntegrityImpact[_]
    input.Body.vulnerability.cvssv3.privilegesRequired == enum_CVSSPrivilegesRequired[_]
    input.Body.vulnerability.cvssv3.scope == enum_CVSSScope[_]
    input.Body.vulnerability.cvssv3.userInteraction == enum_CVSSUserInteraction[_]
    input.Body.vulnerability.effectiveSeverity == enum_VulnerabilityOccurrenceEffectiveSeverity[_]
    input.Body.vulnerability.extraDetails == STRING
    input.Body.vulnerability.fixAvailable == BOOLEAN
    input.Body.vulnerability.longDescription == STRING
    input.Body.vulnerability.packageIssue[_].affectedCpeUri == STRING
    input.Body.vulnerability.packageIssue[_].affectedPackage == STRING
    input.Body.vulnerability.packageIssue[_].affectedVersion.epoch == INTEGER
    input.Body.vulnerability.packageIssue[_].affectedVersion.fullName == STRING
    input.Body.vulnerability.packageIssue[_].affectedVersion.inclusive == BOOLEAN
    input.Body.vulnerability.packageIssue[_].affectedVersion.kind == enum_VersionKind[_]
    input.Body.vulnerability.packageIssue[_].affectedVersion.name == STRING
    input.Body.vulnerability.packageIssue[_].affectedVersion.revision == STRING
    input.Body.vulnerability.packageIssue[_].fileLocation[_].filePath == STRING
    input.Body.vulnerability.packageIssue[_].fixAvailable == BOOLEAN
    input.Body.vulnerability.packageIssue[_].fixedCpeUri == STRING
    input.Body.vulnerability.packageIssue[_].fixedPackage == STRING
    input.Body.vulnerability.packageIssue[_].fixedVersion.epoch == INTEGER
    input.Body.vulnerability.packageIssue[_].fixedVersion.fullName == STRING
    input.Body.vulnerability.packageIssue[_].fixedVersion.inclusive == BOOLEAN
    input.Body.vulnerability.packageIssue[_].fixedVersion.kind == enum_VersionKind[_]
    input.Body.vulnerability.packageIssue[_].fixedVersion.name == STRING
    input.Body.vulnerability.packageIssue[_].fixedVersion.revision == STRING
    input.Body.vulnerability.packageIssue[_].packageType == STRING
    input.Body.vulnerability.relatedUrls[_].label == STRING
    input.Body.vulnerability.relatedUrls[_].url == STRING
    input.Body.vulnerability.severity == enum_VulnerabilityOccurrenceSeverity[_]
    input.Body.vulnerability.shortDescription == STRING
    input.Body.vulnerability.type == STRING
    input.Body.vulnerability.vexAssessment.cve == STRING
    input.Body.vulnerability.vexAssessment.impacts[_] == STRING
    input.Body.vulnerability.vexAssessment.justification.details == STRING
    input.Body.vulnerability.vexAssessment.justification.justificationType == enum_JustificationJustificationType[_]
    input.Body.vulnerability.vexAssessment.noteName == STRING
    input.Body.vulnerability.vexAssessment.relatedUris[_].label == STRING
    input.Body.vulnerability.vexAssessment.relatedUris[_].url == STRING
    input.Body.vulnerability.vexAssessment.remediations[_].details == STRING
    input.Body.vulnerability.vexAssessment.remediations[_].remediationType == enum_RemediationRemediationType[_]
    input.Body.vulnerability.vexAssessment.remediations[_].remediationUri.label == STRING
    input.Body.vulnerability.vexAssessment.remediations[_].remediationUri.url == STRING
    input.Body.vulnerability.vexAssessment.state == enum_VexAssessmentState[_]
    input.Body.vulnerability.vexAssessment.vulnerabilityId == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.occurrences.setIamPolicy

valid {
    input.Body.policy.bindings[_].condition.description == STRING
    input.Body.policy.bindings[_].condition.expression == STRING
    input.Body.policy.bindings[_].condition.location == STRING
    input.Body.policy.bindings[_].condition.title == STRING
    input.Body.policy.bindings[_].members[_] == STRING
    input.Body.policy.bindings[_].role == STRING
    input.Body.policy.etag == STRING
    input.Body.policy.version == INTEGER
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.occurrences.testIamPermissions

valid {
    input.Body.permissions[_] == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.operations.create

valid {
    input.Body.operation.done == BOOLEAN
    input.Body.operation.error.code == INTEGER
    input.Body.operation.error.details[_].STRING == ANY
    input.Body.operation.error.message == STRING
    input.Body.operation.metadata.STRING == ANY
    input.Body.operation.name == STRING
    input.Body.operation.response.STRING == ANY
    input.Body.operationId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.operations.patch

valid {
    input.Body.operation.done == BOOLEAN
    input.Body.operation.error.code == INTEGER
    input.Body.operation.error.details[_].STRING == ANY
    input.Body.operation.error.message == STRING
    input.Body.operation.metadata.STRING == ANY
    input.Body.operation.name == STRING
    input.Body.operation.response.STRING == ANY
    input.Body.updateMask == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.resources.exportSBOM

valid {
    input.Body.cloudStorageLocation.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.resources.generatePackagesSummary

valid {
    input.Body.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.scanConfigs.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.scanConfigs.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.projects.scanConfigs.patch

valid {
    input.Body.createTime == STRING
    input.Body.description == STRING
    input.Body.enabled == BOOLEAN
    input.Body.name == STRING
    input.Body.updateTime == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.providers.notes.create

enum_AssessmentState := [ "STATE_UNSPECIFIED", "AFFECTED", "NOT_AFFECTED", "FIXED", "UNDER_INVESTIGATION" ]
enum_BuildSignatureKeyType := [ "KEY_TYPE_UNSPECIFIED", "PGP_ASCII_ARMORED", "PKIX_PEM" ]
enum_CVSSAttackComplexity := [ "ATTACK_COMPLEXITY_UNSPECIFIED", "ATTACK_COMPLEXITY_LOW", "ATTACK_COMPLEXITY_HIGH", "ATTACK_COMPLEXITY_MEDIUM" ]
enum_CVSSAttackVector := [ "ATTACK_VECTOR_UNSPECIFIED", "ATTACK_VECTOR_NETWORK", "ATTACK_VECTOR_ADJACENT", "ATTACK_VECTOR_LOCAL", "ATTACK_VECTOR_PHYSICAL" ]
enum_CVSSAuthentication := [ "AUTHENTICATION_UNSPECIFIED", "AUTHENTICATION_MULTIPLE", "AUTHENTICATION_SINGLE", "AUTHENTICATION_NONE" ]
enum_CVSSAvailabilityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSConfidentialityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSIntegrityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSPrivilegesRequired := [ "PRIVILEGES_REQUIRED_UNSPECIFIED", "PRIVILEGES_REQUIRED_NONE", "PRIVILEGES_REQUIRED_LOW", "PRIVILEGES_REQUIRED_HIGH" ]
enum_CVSSScope := [ "SCOPE_UNSPECIFIED", "SCOPE_UNCHANGED", "SCOPE_CHANGED" ]
enum_CVSSUserInteraction := [ "USER_INTERACTION_UNSPECIFIED", "USER_INTERACTION_NONE", "USER_INTERACTION_REQUIRED" ]
enum_CisBenchmarkSeverity := [ "SEVERITY_UNSPECIFIED", "MINIMAL", "LOW", "MEDIUM", "HIGH", "CRITICAL" ]
enum_DiscoveryAnalysisKind := [ "KIND_UNSPECIFIED", "PACKAGE_VULNERABILITY", "BUILD_DETAILS", "IMAGE_BASIS", "PACKAGE_MANAGER", "DEPLOYABLE", "DISCOVERY", "ATTESTATION_AUTHORITY", "UPGRADE", "COMPLIANCE", "SBOM", "SPDX_PACKAGE", "SPDX_FILE", "SPDX_RELATIONSHIP", "DSSE_ATTESTATION", "VULNERABILITY_ASSESSMENT", "SBOM_REFERENCE" ]
enum_DistributionArchitecture := [ "ARCHITECTURE_UNSPECIFIED", "X86", "X64" ]
enum_ExternalRefCategory := [ "CATEGORY_UNSPECIFIED", "SECURITY", "PACKAGE_MANAGER", "PERSISTENT_ID", "OTHER" ]
enum_FileNoteFileType := [ "FILE_TYPE_UNSPECIFIED", "SOURCE", "BINARY", "ARCHIVE", "APPLICATION", "AUDIO", "IMAGE", "TEXT", "VIDEO", "DOCUMENTATION", "SPDX", "OTHER" ]
enum_IdentifierHelperField := [ "IDENTIFIER_HELPER_FIELD_UNSPECIFIED", "GENERIC_URI" ]
enum_JustificationJustificationType := [ "JUSTIFICATION_TYPE_UNSPECIFIED", "COMPONENT_NOT_PRESENT", "VULNERABLE_CODE_NOT_PRESENT", "VULNERABLE_CODE_NOT_IN_EXECUTE_PATH", "VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY", "INLINE_MITIGATIONS_ALREADY_EXIST" ]
enum_NoteKind := [ "KIND_UNSPECIFIED", "PACKAGE_VULNERABILITY", "BUILD_DETAILS", "IMAGE_BASIS", "PACKAGE_MANAGER", "DEPLOYABLE", "DISCOVERY", "ATTESTATION_AUTHORITY", "UPGRADE", "COMPLIANCE", "SBOM", "SPDX_PACKAGE", "SPDX_FILE", "SPDX_RELATIONSHIP", "DSSE_ATTESTATION", "VULNERABILITY_ASSESSMENT", "SBOM_REFERENCE" ]
enum_PackageArchitecture := [ "ARCHITECTURE_UNSPECIFIED", "X86", "X64" ]
enum_RelationshipNoteType := [ "RELATIONSHIP_TYPE_UNSPECIFIED", "DESCRIBES", "DESCRIBED_BY", "CONTAINS", "CONTAINED_BY", "DEPENDS_ON", "DEPENDENCY_OF", "DEPENDENCY_MANIFEST_OF", "BUILD_DEPENDENCY_OF", "DEV_DEPENDENCY_OF", "OPTIONAL_DEPENDENCY_OF", "PROVIDED_DEPENDENCY_OF", "TEST_DEPENDENCY_OF", "RUNTIME_DEPENDENCY_OF", "EXAMPLE_OF", "GENERATES", "GENERATED_FROM", "ANCESTOR_OF", "DESCENDANT_OF", "VARIANT_OF", "DISTRIBUTION_ARTIFACT", "PATCH_FOR", "PATCH_APPLIED", "COPY_OF", "FILE_ADDED", "FILE_DELETED", "FILE_MODIFIED", "EXPANDED_FROM_ARCHIVE", "DYNAMIC_LINK", "STATIC_LINK", "DATA_FILE_OF", "TEST_CASE_OF", "BUILD_TOOL_OF", "DEV_TOOL_OF", "TEST_OF", "TEST_TOOL_OF", "DOCUMENTATION_OF", "OPTIONAL_COMPONENT_OF", "METAFILE_OF", "PACKAGE_OF", "AMENDS", "PREREQUISITE_FOR", "HAS_PREREQUISITE", "OTHER" ]
enum_RemediationRemediationType := [ "REMEDIATION_TYPE_UNSPECIFIED", "MITIGATION", "NO_FIX_PLANNED", "NONE_AVAILABLE", "VENDOR_FIX", "WORKAROUND" ]
enum_VersionKind := [ "NORMAL", "MINIMUM", "MAXIMUM" ]
enum_VulnerabilityTypeCvssVersion := [ "CVSS_VERSION_UNSPECIFIED", "CVSS_VERSION_2", "CVSS_VERSION_3" ]
enum_VulnerabilityTypeSeverity := [ "SEVERITY_UNSPECIFIED", "MINIMAL", "LOW", "MEDIUM", "HIGH", "CRITICAL" ]

valid {
    input.Body.attestationAuthority.hint.humanReadableName == STRING
    input.Body.baseImage.fingerprint.v1Name == STRING
    input.Body.baseImage.fingerprint.v2Blob[_] == STRING
    input.Body.baseImage.fingerprint.v2Name == STRING
    input.Body.baseImage.resourceUrl == STRING
    input.Body.buildType.builderVersion == STRING
    input.Body.buildType.signature.keyId == STRING
    input.Body.buildType.signature.keyType == enum_BuildSignatureKeyType[_]
    input.Body.buildType.signature.publicKey == STRING
    input.Body.buildType.signature.signature == STRING
    input.Body.compliance.cisBenchmark.profileLevel == INTEGER
    input.Body.compliance.cisBenchmark.severity == enum_CisBenchmarkSeverity[_]
    input.Body.compliance.description == STRING
    input.Body.compliance.impact == STRING
    input.Body.compliance.rationale == STRING
    input.Body.compliance.remediation == STRING
    input.Body.compliance.scanInstructions == STRING
    input.Body.compliance.title == STRING
    input.Body.compliance.version[_].benchmarkDocument == STRING
    input.Body.compliance.version[_].cpeUri == STRING
    input.Body.compliance.version[_].version == STRING
    input.Body.createTime == STRING
    input.Body.deployable.resourceUri[_] == STRING
    input.Body.discovery.analysisKind == enum_DiscoveryAnalysisKind[_]
    input.Body.dsseAttestation.hint.humanReadableName == STRING
    input.Body.expirationTime == STRING
    input.Body.kind == enum_NoteKind[_]
    input.Body.longDescription == STRING
    input.Body.name == STRING
    input.Body.package.architecture == enum_PackageArchitecture[_]
    input.Body.package.cpeUri == STRING
    input.Body.package.description == STRING
    input.Body.package.digest[_].algo == STRING
    input.Body.package.digest[_].digestBytes == STRING
    input.Body.package.distribution[_].architecture == enum_DistributionArchitecture[_]
    input.Body.package.distribution[_].cpeUri == STRING
    input.Body.package.distribution[_].description == STRING
    input.Body.package.distribution[_].latestVersion.epoch == INTEGER
    input.Body.package.distribution[_].latestVersion.inclusive == BOOLEAN
    input.Body.package.distribution[_].latestVersion.kind == enum_VersionKind[_]
    input.Body.package.distribution[_].latestVersion.name == STRING
    input.Body.package.distribution[_].latestVersion.revision == STRING
    input.Body.package.distribution[_].maintainer == STRING
    input.Body.package.distribution[_].url == STRING
    input.Body.package.license.comments == STRING
    input.Body.package.license.expression == STRING
    input.Body.package.maintainer == STRING
    input.Body.package.name == STRING
    input.Body.package.packageType == STRING
    input.Body.package.url == STRING
    input.Body.package.version.epoch == INTEGER
    input.Body.package.version.inclusive == BOOLEAN
    input.Body.package.version.kind == enum_VersionKind[_]
    input.Body.package.version.name == STRING
    input.Body.package.version.revision == STRING
    input.Body.relatedUrl[_].label == STRING
    input.Body.relatedUrl[_].url == STRING
    input.Body.sbom.dataLicence == STRING
    input.Body.sbom.spdxVersion == STRING
    input.Body.sbomReference.format == STRING
    input.Body.sbomReference.version == STRING
    input.Body.shortDescription == STRING
    input.Body.spdxFile.checksum[_] == STRING
    input.Body.spdxFile.fileType == enum_FileNoteFileType[_]
    input.Body.spdxFile.title == STRING
    input.Body.spdxPackage.analyzed == BOOLEAN
    input.Body.spdxPackage.attribution == STRING
    input.Body.spdxPackage.checksum == STRING
    input.Body.spdxPackage.copyright == STRING
    input.Body.spdxPackage.detailedDescription == STRING
    input.Body.spdxPackage.downloadLocation == STRING
    input.Body.spdxPackage.externalRefs[_].category == enum_ExternalRefCategory[_]
    input.Body.spdxPackage.externalRefs[_].comment == STRING
    input.Body.spdxPackage.externalRefs[_].locator == STRING
    input.Body.spdxPackage.externalRefs[_].type == STRING
    input.Body.spdxPackage.filesLicenseInfo[_] == STRING
    input.Body.spdxPackage.homePage == STRING
    input.Body.spdxPackage.licenseDeclared.comments == STRING
    input.Body.spdxPackage.licenseDeclared.expression == STRING
    input.Body.spdxPackage.originator == STRING
    input.Body.spdxPackage.packageType == STRING
    input.Body.spdxPackage.summaryDescription == STRING
    input.Body.spdxPackage.supplier == STRING
    input.Body.spdxPackage.title == STRING
    input.Body.spdxPackage.verificationCode == STRING
    input.Body.spdxPackage.version == STRING
    input.Body.spdxRelationship.type == enum_RelationshipNoteType[_]
    input.Body.updateTime == STRING
    input.Body.upgrade.distributions[_].classification == STRING
    input.Body.upgrade.distributions[_].cpeUri == STRING
    input.Body.upgrade.distributions[_].cve[_] == STRING
    input.Body.upgrade.distributions[_].severity == STRING
    input.Body.upgrade.package == STRING
    input.Body.upgrade.version.epoch == INTEGER
    input.Body.upgrade.version.inclusive == BOOLEAN
    input.Body.upgrade.version.kind == enum_VersionKind[_]
    input.Body.upgrade.version.name == STRING
    input.Body.upgrade.version.revision == STRING
    input.Body.vulnerabilityAssessment.assessment.cve == STRING
    input.Body.vulnerabilityAssessment.assessment.impacts[_] == STRING
    input.Body.vulnerabilityAssessment.assessment.justification.details == STRING
    input.Body.vulnerabilityAssessment.assessment.justification.justificationType == enum_JustificationJustificationType[_]
    input.Body.vulnerabilityAssessment.assessment.longDescription == STRING
    input.Body.vulnerabilityAssessment.assessment.relatedUris[_].label == STRING
    input.Body.vulnerabilityAssessment.assessment.relatedUris[_].uri == STRING
    input.Body.vulnerabilityAssessment.assessment.remediations[_].details == STRING
    input.Body.vulnerabilityAssessment.assessment.remediations[_].remediationType == enum_RemediationRemediationType[_]
    input.Body.vulnerabilityAssessment.assessment.remediations[_].remediationUri.label == STRING
    input.Body.vulnerabilityAssessment.assessment.remediations[_].remediationUri.uri == STRING
    input.Body.vulnerabilityAssessment.assessment.shortDescription == STRING
    input.Body.vulnerabilityAssessment.assessment.state == enum_AssessmentState[_]
    input.Body.vulnerabilityAssessment.assessment.vulnerabilityId == STRING
    input.Body.vulnerabilityAssessment.languageCode == STRING
    input.Body.vulnerabilityAssessment.longDescription == STRING
    input.Body.vulnerabilityAssessment.product.id == STRING
    input.Body.vulnerabilityAssessment.product.identifierHelper.field == enum_IdentifierHelperField[_]
    input.Body.vulnerabilityAssessment.product.identifierHelper.genericUri == STRING
    input.Body.vulnerabilityAssessment.product.name == STRING
    input.Body.vulnerabilityAssessment.publisher.issuingAuthority == STRING
    input.Body.vulnerabilityAssessment.publisher.name == STRING
    input.Body.vulnerabilityAssessment.publisher.publisherNamespace == STRING
    input.Body.vulnerabilityAssessment.shortDescription == STRING
    input.Body.vulnerabilityAssessment.title == STRING
    input.Body.vulnerabilityType.cvssScore == NUMBER
    input.Body.vulnerabilityType.cvssV2.attackComplexity == enum_CVSSAttackComplexity[_]
    input.Body.vulnerabilityType.cvssV2.attackVector == enum_CVSSAttackVector[_]
    input.Body.vulnerabilityType.cvssV2.authentication == enum_CVSSAuthentication[_]
    input.Body.vulnerabilityType.cvssV2.availabilityImpact == enum_CVSSAvailabilityImpact[_]
    input.Body.vulnerabilityType.cvssV2.baseScore == NUMBER
    input.Body.vulnerabilityType.cvssV2.confidentialityImpact == enum_CVSSConfidentialityImpact[_]
    input.Body.vulnerabilityType.cvssV2.exploitabilityScore == NUMBER
    input.Body.vulnerabilityType.cvssV2.impactScore == NUMBER
    input.Body.vulnerabilityType.cvssV2.integrityImpact == enum_CVSSIntegrityImpact[_]
    input.Body.vulnerabilityType.cvssV2.privilegesRequired == enum_CVSSPrivilegesRequired[_]
    input.Body.vulnerabilityType.cvssV2.scope == enum_CVSSScope[_]
    input.Body.vulnerabilityType.cvssV2.userInteraction == enum_CVSSUserInteraction[_]
    input.Body.vulnerabilityType.cvssVersion == enum_VulnerabilityTypeCvssVersion[_]
    input.Body.vulnerabilityType.cwe[_] == STRING
    input.Body.vulnerabilityType.details[_].cpeUri == STRING
    input.Body.vulnerabilityType.details[_].description == STRING
    input.Body.vulnerabilityType.details[_].fixedLocation.cpeUri == STRING
    input.Body.vulnerabilityType.details[_].fixedLocation.fileLocation[_].filePath == STRING
    input.Body.vulnerabilityType.details[_].fixedLocation.package == STRING
    input.Body.vulnerabilityType.details[_].fixedLocation.version.epoch == INTEGER
    input.Body.vulnerabilityType.details[_].fixedLocation.version.inclusive == BOOLEAN
    input.Body.vulnerabilityType.details[_].fixedLocation.version.kind == enum_VersionKind[_]
    input.Body.vulnerabilityType.details[_].fixedLocation.version.name == STRING
    input.Body.vulnerabilityType.details[_].fixedLocation.version.revision == STRING
    input.Body.vulnerabilityType.details[_].isObsolete == BOOLEAN
    input.Body.vulnerabilityType.details[_].maxAffectedVersion.epoch == INTEGER
    input.Body.vulnerabilityType.details[_].maxAffectedVersion.inclusive == BOOLEAN
    input.Body.vulnerabilityType.details[_].maxAffectedVersion.kind == enum_VersionKind[_]
    input.Body.vulnerabilityType.details[_].maxAffectedVersion.name == STRING
    input.Body.vulnerabilityType.details[_].maxAffectedVersion.revision == STRING
    input.Body.vulnerabilityType.details[_].minAffectedVersion.epoch == INTEGER
    input.Body.vulnerabilityType.details[_].minAffectedVersion.inclusive == BOOLEAN
    input.Body.vulnerabilityType.details[_].minAffectedVersion.kind == enum_VersionKind[_]
    input.Body.vulnerabilityType.details[_].minAffectedVersion.name == STRING
    input.Body.vulnerabilityType.details[_].minAffectedVersion.revision == STRING
    input.Body.vulnerabilityType.details[_].package == STRING
    input.Body.vulnerabilityType.details[_].packageType == STRING
    input.Body.vulnerabilityType.details[_].severityName == STRING
    input.Body.vulnerabilityType.details[_].source == STRING
    input.Body.vulnerabilityType.details[_].vendor == STRING
    input.Body.vulnerabilityType.severity == enum_VulnerabilityTypeSeverity[_]
    input.ReqMap.name == STRING
    input.Qs.noteId == STRING
    input.Qs.parent == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.providers.notes.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.providers.notes.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.providers.notes.getIamPolicy

valid {
    input.Body.options.requestedPolicyVersion == INTEGER
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.providers.notes.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.Qs.parent == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.providers.notes.occurrences.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.providers.notes.patch

enum_AssessmentState := [ "STATE_UNSPECIFIED", "AFFECTED", "NOT_AFFECTED", "FIXED", "UNDER_INVESTIGATION" ]
enum_BuildSignatureKeyType := [ "KEY_TYPE_UNSPECIFIED", "PGP_ASCII_ARMORED", "PKIX_PEM" ]
enum_CVSSAttackComplexity := [ "ATTACK_COMPLEXITY_UNSPECIFIED", "ATTACK_COMPLEXITY_LOW", "ATTACK_COMPLEXITY_HIGH", "ATTACK_COMPLEXITY_MEDIUM" ]
enum_CVSSAttackVector := [ "ATTACK_VECTOR_UNSPECIFIED", "ATTACK_VECTOR_NETWORK", "ATTACK_VECTOR_ADJACENT", "ATTACK_VECTOR_LOCAL", "ATTACK_VECTOR_PHYSICAL" ]
enum_CVSSAuthentication := [ "AUTHENTICATION_UNSPECIFIED", "AUTHENTICATION_MULTIPLE", "AUTHENTICATION_SINGLE", "AUTHENTICATION_NONE" ]
enum_CVSSAvailabilityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSConfidentialityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSIntegrityImpact := [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", "IMPACT_NONE", "IMPACT_PARTIAL", "IMPACT_COMPLETE" ]
enum_CVSSPrivilegesRequired := [ "PRIVILEGES_REQUIRED_UNSPECIFIED", "PRIVILEGES_REQUIRED_NONE", "PRIVILEGES_REQUIRED_LOW", "PRIVILEGES_REQUIRED_HIGH" ]
enum_CVSSScope := [ "SCOPE_UNSPECIFIED", "SCOPE_UNCHANGED", "SCOPE_CHANGED" ]
enum_CVSSUserInteraction := [ "USER_INTERACTION_UNSPECIFIED", "USER_INTERACTION_NONE", "USER_INTERACTION_REQUIRED" ]
enum_CisBenchmarkSeverity := [ "SEVERITY_UNSPECIFIED", "MINIMAL", "LOW", "MEDIUM", "HIGH", "CRITICAL" ]
enum_DiscoveryAnalysisKind := [ "KIND_UNSPECIFIED", "PACKAGE_VULNERABILITY", "BUILD_DETAILS", "IMAGE_BASIS", "PACKAGE_MANAGER", "DEPLOYABLE", "DISCOVERY", "ATTESTATION_AUTHORITY", "UPGRADE", "COMPLIANCE", "SBOM", "SPDX_PACKAGE", "SPDX_FILE", "SPDX_RELATIONSHIP", "DSSE_ATTESTATION", "VULNERABILITY_ASSESSMENT", "SBOM_REFERENCE" ]
enum_DistributionArchitecture := [ "ARCHITECTURE_UNSPECIFIED", "X86", "X64" ]
enum_ExternalRefCategory := [ "CATEGORY_UNSPECIFIED", "SECURITY", "PACKAGE_MANAGER", "PERSISTENT_ID", "OTHER" ]
enum_FileNoteFileType := [ "FILE_TYPE_UNSPECIFIED", "SOURCE", "BINARY", "ARCHIVE", "APPLICATION", "AUDIO", "IMAGE", "TEXT", "VIDEO", "DOCUMENTATION", "SPDX", "OTHER" ]
enum_IdentifierHelperField := [ "IDENTIFIER_HELPER_FIELD_UNSPECIFIED", "GENERIC_URI" ]
enum_JustificationJustificationType := [ "JUSTIFICATION_TYPE_UNSPECIFIED", "COMPONENT_NOT_PRESENT", "VULNERABLE_CODE_NOT_PRESENT", "VULNERABLE_CODE_NOT_IN_EXECUTE_PATH", "VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY", "INLINE_MITIGATIONS_ALREADY_EXIST" ]
enum_NoteKind := [ "KIND_UNSPECIFIED", "PACKAGE_VULNERABILITY", "BUILD_DETAILS", "IMAGE_BASIS", "PACKAGE_MANAGER", "DEPLOYABLE", "DISCOVERY", "ATTESTATION_AUTHORITY", "UPGRADE", "COMPLIANCE", "SBOM", "SPDX_PACKAGE", "SPDX_FILE", "SPDX_RELATIONSHIP", "DSSE_ATTESTATION", "VULNERABILITY_ASSESSMENT", "SBOM_REFERENCE" ]
enum_PackageArchitecture := [ "ARCHITECTURE_UNSPECIFIED", "X86", "X64" ]
enum_RelationshipNoteType := [ "RELATIONSHIP_TYPE_UNSPECIFIED", "DESCRIBES", "DESCRIBED_BY", "CONTAINS", "CONTAINED_BY", "DEPENDS_ON", "DEPENDENCY_OF", "DEPENDENCY_MANIFEST_OF", "BUILD_DEPENDENCY_OF", "DEV_DEPENDENCY_OF", "OPTIONAL_DEPENDENCY_OF", "PROVIDED_DEPENDENCY_OF", "TEST_DEPENDENCY_OF", "RUNTIME_DEPENDENCY_OF", "EXAMPLE_OF", "GENERATES", "GENERATED_FROM", "ANCESTOR_OF", "DESCENDANT_OF", "VARIANT_OF", "DISTRIBUTION_ARTIFACT", "PATCH_FOR", "PATCH_APPLIED", "COPY_OF", "FILE_ADDED", "FILE_DELETED", "FILE_MODIFIED", "EXPANDED_FROM_ARCHIVE", "DYNAMIC_LINK", "STATIC_LINK", "DATA_FILE_OF", "TEST_CASE_OF", "BUILD_TOOL_OF", "DEV_TOOL_OF", "TEST_OF", "TEST_TOOL_OF", "DOCUMENTATION_OF", "OPTIONAL_COMPONENT_OF", "METAFILE_OF", "PACKAGE_OF", "AMENDS", "PREREQUISITE_FOR", "HAS_PREREQUISITE", "OTHER" ]
enum_RemediationRemediationType := [ "REMEDIATION_TYPE_UNSPECIFIED", "MITIGATION", "NO_FIX_PLANNED", "NONE_AVAILABLE", "VENDOR_FIX", "WORKAROUND" ]
enum_VersionKind := [ "NORMAL", "MINIMUM", "MAXIMUM" ]
enum_VulnerabilityTypeCvssVersion := [ "CVSS_VERSION_UNSPECIFIED", "CVSS_VERSION_2", "CVSS_VERSION_3" ]
enum_VulnerabilityTypeSeverity := [ "SEVERITY_UNSPECIFIED", "MINIMAL", "LOW", "MEDIUM", "HIGH", "CRITICAL" ]

valid {
    input.Body.attestationAuthority.hint.humanReadableName == STRING
    input.Body.baseImage.fingerprint.v1Name == STRING
    input.Body.baseImage.fingerprint.v2Blob[_] == STRING
    input.Body.baseImage.fingerprint.v2Name == STRING
    input.Body.baseImage.resourceUrl == STRING
    input.Body.buildType.builderVersion == STRING
    input.Body.buildType.signature.keyId == STRING
    input.Body.buildType.signature.keyType == enum_BuildSignatureKeyType[_]
    input.Body.buildType.signature.publicKey == STRING
    input.Body.buildType.signature.signature == STRING
    input.Body.compliance.cisBenchmark.profileLevel == INTEGER
    input.Body.compliance.cisBenchmark.severity == enum_CisBenchmarkSeverity[_]
    input.Body.compliance.description == STRING
    input.Body.compliance.impact == STRING
    input.Body.compliance.rationale == STRING
    input.Body.compliance.remediation == STRING
    input.Body.compliance.scanInstructions == STRING
    input.Body.compliance.title == STRING
    input.Body.compliance.version[_].benchmarkDocument == STRING
    input.Body.compliance.version[_].cpeUri == STRING
    input.Body.compliance.version[_].version == STRING
    input.Body.createTime == STRING
    input.Body.deployable.resourceUri[_] == STRING
    input.Body.discovery.analysisKind == enum_DiscoveryAnalysisKind[_]
    input.Body.dsseAttestation.hint.humanReadableName == STRING
    input.Body.expirationTime == STRING
    input.Body.kind == enum_NoteKind[_]
    input.Body.longDescription == STRING
    input.Body.name == STRING
    input.Body.package.architecture == enum_PackageArchitecture[_]
    input.Body.package.cpeUri == STRING
    input.Body.package.description == STRING
    input.Body.package.digest[_].algo == STRING
    input.Body.package.digest[_].digestBytes == STRING
    input.Body.package.distribution[_].architecture == enum_DistributionArchitecture[_]
    input.Body.package.distribution[_].cpeUri == STRING
    input.Body.package.distribution[_].description == STRING
    input.Body.package.distribution[_].latestVersion.epoch == INTEGER
    input.Body.package.distribution[_].latestVersion.inclusive == BOOLEAN
    input.Body.package.distribution[_].latestVersion.kind == enum_VersionKind[_]
    input.Body.package.distribution[_].latestVersion.name == STRING
    input.Body.package.distribution[_].latestVersion.revision == STRING
    input.Body.package.distribution[_].maintainer == STRING
    input.Body.package.distribution[_].url == STRING
    input.Body.package.license.comments == STRING
    input.Body.package.license.expression == STRING
    input.Body.package.maintainer == STRING
    input.Body.package.name == STRING
    input.Body.package.packageType == STRING
    input.Body.package.url == STRING
    input.Body.package.version.epoch == INTEGER
    input.Body.package.version.inclusive == BOOLEAN
    input.Body.package.version.kind == enum_VersionKind[_]
    input.Body.package.version.name == STRING
    input.Body.package.version.revision == STRING
    input.Body.relatedUrl[_].label == STRING
    input.Body.relatedUrl[_].url == STRING
    input.Body.sbom.dataLicence == STRING
    input.Body.sbom.spdxVersion == STRING
    input.Body.sbomReference.format == STRING
    input.Body.sbomReference.version == STRING
    input.Body.shortDescription == STRING
    input.Body.spdxFile.checksum[_] == STRING
    input.Body.spdxFile.fileType == enum_FileNoteFileType[_]
    input.Body.spdxFile.title == STRING
    input.Body.spdxPackage.analyzed == BOOLEAN
    input.Body.spdxPackage.attribution == STRING
    input.Body.spdxPackage.checksum == STRING
    input.Body.spdxPackage.copyright == STRING
    input.Body.spdxPackage.detailedDescription == STRING
    input.Body.spdxPackage.downloadLocation == STRING
    input.Body.spdxPackage.externalRefs[_].category == enum_ExternalRefCategory[_]
    input.Body.spdxPackage.externalRefs[_].comment == STRING
    input.Body.spdxPackage.externalRefs[_].locator == STRING
    input.Body.spdxPackage.externalRefs[_].type == STRING
    input.Body.spdxPackage.filesLicenseInfo[_] == STRING
    input.Body.spdxPackage.homePage == STRING
    input.Body.spdxPackage.licenseDeclared.comments == STRING
    input.Body.spdxPackage.licenseDeclared.expression == STRING
    input.Body.spdxPackage.originator == STRING
    input.Body.spdxPackage.packageType == STRING
    input.Body.spdxPackage.summaryDescription == STRING
    input.Body.spdxPackage.supplier == STRING
    input.Body.spdxPackage.title == STRING
    input.Body.spdxPackage.verificationCode == STRING
    input.Body.spdxPackage.version == STRING
    input.Body.spdxRelationship.type == enum_RelationshipNoteType[_]
    input.Body.updateTime == STRING
    input.Body.upgrade.distributions[_].classification == STRING
    input.Body.upgrade.distributions[_].cpeUri == STRING
    input.Body.upgrade.distributions[_].cve[_] == STRING
    input.Body.upgrade.distributions[_].severity == STRING
    input.Body.upgrade.package == STRING
    input.Body.upgrade.version.epoch == INTEGER
    input.Body.upgrade.version.inclusive == BOOLEAN
    input.Body.upgrade.version.kind == enum_VersionKind[_]
    input.Body.upgrade.version.name == STRING
    input.Body.upgrade.version.revision == STRING
    input.Body.vulnerabilityAssessment.assessment.cve == STRING
    input.Body.vulnerabilityAssessment.assessment.impacts[_] == STRING
    input.Body.vulnerabilityAssessment.assessment.justification.details == STRING
    input.Body.vulnerabilityAssessment.assessment.justification.justificationType == enum_JustificationJustificationType[_]
    input.Body.vulnerabilityAssessment.assessment.longDescription == STRING
    input.Body.vulnerabilityAssessment.assessment.relatedUris[_].label == STRING
    input.Body.vulnerabilityAssessment.assessment.relatedUris[_].uri == STRING
    input.Body.vulnerabilityAssessment.assessment.remediations[_].details == STRING
    input.Body.vulnerabilityAssessment.assessment.remediations[_].remediationType == enum_RemediationRemediationType[_]
    input.Body.vulnerabilityAssessment.assessment.remediations[_].remediationUri.label == STRING
    input.Body.vulnerabilityAssessment.assessment.remediations[_].remediationUri.uri == STRING
    input.Body.vulnerabilityAssessment.assessment.shortDescription == STRING
    input.Body.vulnerabilityAssessment.assessment.state == enum_AssessmentState[_]
    input.Body.vulnerabilityAssessment.assessment.vulnerabilityId == STRING
    input.Body.vulnerabilityAssessment.languageCode == STRING
    input.Body.vulnerabilityAssessment.longDescription == STRING
    input.Body.vulnerabilityAssessment.product.id == STRING
    input.Body.vulnerabilityAssessment.product.identifierHelper.field == enum_IdentifierHelperField[_]
    input.Body.vulnerabilityAssessment.product.identifierHelper.genericUri == STRING
    input.Body.vulnerabilityAssessment.product.name == STRING
    input.Body.vulnerabilityAssessment.publisher.issuingAuthority == STRING
    input.Body.vulnerabilityAssessment.publisher.name == STRING
    input.Body.vulnerabilityAssessment.publisher.publisherNamespace == STRING
    input.Body.vulnerabilityAssessment.shortDescription == STRING
    input.Body.vulnerabilityAssessment.title == STRING
    input.Body.vulnerabilityType.cvssScore == NUMBER
    input.Body.vulnerabilityType.cvssV2.attackComplexity == enum_CVSSAttackComplexity[_]
    input.Body.vulnerabilityType.cvssV2.attackVector == enum_CVSSAttackVector[_]
    input.Body.vulnerabilityType.cvssV2.authentication == enum_CVSSAuthentication[_]
    input.Body.vulnerabilityType.cvssV2.availabilityImpact == enum_CVSSAvailabilityImpact[_]
    input.Body.vulnerabilityType.cvssV2.baseScore == NUMBER
    input.Body.vulnerabilityType.cvssV2.confidentialityImpact == enum_CVSSConfidentialityImpact[_]
    input.Body.vulnerabilityType.cvssV2.exploitabilityScore == NUMBER
    input.Body.vulnerabilityType.cvssV2.impactScore == NUMBER
    input.Body.vulnerabilityType.cvssV2.integrityImpact == enum_CVSSIntegrityImpact[_]
    input.Body.vulnerabilityType.cvssV2.privilegesRequired == enum_CVSSPrivilegesRequired[_]
    input.Body.vulnerabilityType.cvssV2.scope == enum_CVSSScope[_]
    input.Body.vulnerabilityType.cvssV2.userInteraction == enum_CVSSUserInteraction[_]
    input.Body.vulnerabilityType.cvssVersion == enum_VulnerabilityTypeCvssVersion[_]
    input.Body.vulnerabilityType.cwe[_] == STRING
    input.Body.vulnerabilityType.details[_].cpeUri == STRING
    input.Body.vulnerabilityType.details[_].description == STRING
    input.Body.vulnerabilityType.details[_].fixedLocation.cpeUri == STRING
    input.Body.vulnerabilityType.details[_].fixedLocation.fileLocation[_].filePath == STRING
    input.Body.vulnerabilityType.details[_].fixedLocation.package == STRING
    input.Body.vulnerabilityType.details[_].fixedLocation.version.epoch == INTEGER
    input.Body.vulnerabilityType.details[_].fixedLocation.version.inclusive == BOOLEAN
    input.Body.vulnerabilityType.details[_].fixedLocation.version.kind == enum_VersionKind[_]
    input.Body.vulnerabilityType.details[_].fixedLocation.version.name == STRING
    input.Body.vulnerabilityType.details[_].fixedLocation.version.revision == STRING
    input.Body.vulnerabilityType.details[_].isObsolete == BOOLEAN
    input.Body.vulnerabilityType.details[_].maxAffectedVersion.epoch == INTEGER
    input.Body.vulnerabilityType.details[_].maxAffectedVersion.inclusive == BOOLEAN
    input.Body.vulnerabilityType.details[_].maxAffectedVersion.kind == enum_VersionKind[_]
    input.Body.vulnerabilityType.details[_].maxAffectedVersion.name == STRING
    input.Body.vulnerabilityType.details[_].maxAffectedVersion.revision == STRING
    input.Body.vulnerabilityType.details[_].minAffectedVersion.epoch == INTEGER
    input.Body.vulnerabilityType.details[_].minAffectedVersion.inclusive == BOOLEAN
    input.Body.vulnerabilityType.details[_].minAffectedVersion.kind == enum_VersionKind[_]
    input.Body.vulnerabilityType.details[_].minAffectedVersion.name == STRING
    input.Body.vulnerabilityType.details[_].minAffectedVersion.revision == STRING
    input.Body.vulnerabilityType.details[_].package == STRING
    input.Body.vulnerabilityType.details[_].packageType == STRING
    input.Body.vulnerabilityType.details[_].severityName == STRING
    input.Body.vulnerabilityType.details[_].source == STRING
    input.Body.vulnerabilityType.details[_].vendor == STRING
    input.Body.vulnerabilityType.severity == enum_VulnerabilityTypeSeverity[_]
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.providers.notes.setIamPolicy

valid {
    input.Body.policy.bindings[_].condition.description == STRING
    input.Body.policy.bindings[_].condition.expression == STRING
    input.Body.policy.bindings[_].condition.location == STRING
    input.Body.policy.bindings[_].condition.title == STRING
    input.Body.policy.bindings[_].members[_] == STRING
    input.Body.policy.bindings[_].role == STRING
    input.Body.policy.etag == STRING
    input.Body.policy.version == INTEGER
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

containeranalysis.providers.notes.testIamPermissions

valid {
    input.Body.permissions[_] == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}