jobs.companies.create

enum_CompanyCompanySize := [ "COMPANY_SIZE_UNSPECIFIED", "MINI", "SMALL", "SMEDIUM", "MEDIUM", "BIG", "BIGGER", "GIANT" ]
enum_JobLocationLocationType := [ "LOCATION_TYPE_UNSPECIFIED", "COUNTRY", "ADMINISTRATIVE_AREA", "SUB_ADMINISTRATIVE_AREA", "LOCALITY", "POSTAL_CODE", "SUB_LOCALITY", "SUB_LOCALITY_1", "SUB_LOCALITY_2", "NEIGHBORHOOD", "STREET_ADDRESS" ]

valid {
    input.Body.careerPageLink == STRING
    input.Body.companyInfoSources[_].freebaseMid == STRING
    input.Body.companyInfoSources[_].gplusId == STRING
    input.Body.companyInfoSources[_].mapsCid == STRING
    input.Body.companyInfoSources[_].unknownTypeId == STRING
    input.Body.companySize == enum_CompanyCompanySize[_]
    input.Body.disableLocationOptimization == BOOLEAN
    input.Body.displayName == STRING
    input.Body.distributorBillingCompanyId == STRING
    input.Body.distributorCompanyId == STRING
    input.Body.eeoText == STRING
    input.Body.hiringAgency == BOOLEAN
    input.Body.hqLocation == STRING
    input.Body.imageUrl == STRING
    input.Body.keywordSearchableCustomAttributes[_] == STRING
    input.Body.keywordSearchableCustomFields[_] == INTEGER
    input.Body.name == STRING
    input.Body.structuredCompanyHqLocation.latLng.latitude == NUMBER
    input.Body.structuredCompanyHqLocation.latLng.longitude == NUMBER
    input.Body.structuredCompanyHqLocation.locationType == enum_JobLocationLocationType[_]
    input.Body.structuredCompanyHqLocation.postalAddress.addressLines[_] == STRING
    input.Body.structuredCompanyHqLocation.postalAddress.administrativeArea == STRING
    input.Body.structuredCompanyHqLocation.postalAddress.languageCode == STRING
    input.Body.structuredCompanyHqLocation.postalAddress.locality == STRING
    input.Body.structuredCompanyHqLocation.postalAddress.organization == STRING
    input.Body.structuredCompanyHqLocation.postalAddress.postalCode == STRING
    input.Body.structuredCompanyHqLocation.postalAddress.recipients[_] == STRING
    input.Body.structuredCompanyHqLocation.postalAddress.regionCode == STRING
    input.Body.structuredCompanyHqLocation.postalAddress.revision == INTEGER
    input.Body.structuredCompanyHqLocation.postalAddress.sortingCode == STRING
    input.Body.structuredCompanyHqLocation.postalAddress.sublocality == STRING
    input.Body.structuredCompanyHqLocation.radiusMeters == NUMBER
    input.Body.suspended == BOOLEAN
    input.Body.title == STRING
    input.Body.website == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.companies.delete

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

jobs.companies.get

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

jobs.companies.jobs.list

valid {
    input.ReqMap.companyName == STRING
    input.Qs.idsOnly == BOOLEAN
    input.Qs.includeJobsCount == BOOLEAN
    input.Qs.jobRequisitionId == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.companies.list

valid {
    input.Qs.mustHaveOpenJobs == BOOLEAN
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.companies.patch

enum_CompanyCompanySize := [ "COMPANY_SIZE_UNSPECIFIED", "MINI", "SMALL", "SMEDIUM", "MEDIUM", "BIG", "BIGGER", "GIANT" ]
enum_JobLocationLocationType := [ "LOCATION_TYPE_UNSPECIFIED", "COUNTRY", "ADMINISTRATIVE_AREA", "SUB_ADMINISTRATIVE_AREA", "LOCALITY", "POSTAL_CODE", "SUB_LOCALITY", "SUB_LOCALITY_1", "SUB_LOCALITY_2", "NEIGHBORHOOD", "STREET_ADDRESS" ]

valid {
    input.Body.careerPageLink == STRING
    input.Body.companyInfoSources[_].freebaseMid == STRING
    input.Body.companyInfoSources[_].gplusId == STRING
    input.Body.companyInfoSources[_].mapsCid == STRING
    input.Body.companyInfoSources[_].unknownTypeId == STRING
    input.Body.companySize == enum_CompanyCompanySize[_]
    input.Body.disableLocationOptimization == BOOLEAN
    input.Body.displayName == STRING
    input.Body.distributorBillingCompanyId == STRING
    input.Body.distributorCompanyId == STRING
    input.Body.eeoText == STRING
    input.Body.hiringAgency == BOOLEAN
    input.Body.hqLocation == STRING
    input.Body.imageUrl == STRING
    input.Body.keywordSearchableCustomAttributes[_] == STRING
    input.Body.keywordSearchableCustomFields[_] == INTEGER
    input.Body.name == STRING
    input.Body.structuredCompanyHqLocation.latLng.latitude == NUMBER
    input.Body.structuredCompanyHqLocation.latLng.longitude == NUMBER
    input.Body.structuredCompanyHqLocation.locationType == enum_JobLocationLocationType[_]
    input.Body.structuredCompanyHqLocation.postalAddress.addressLines[_] == STRING
    input.Body.structuredCompanyHqLocation.postalAddress.administrativeArea == STRING
    input.Body.structuredCompanyHqLocation.postalAddress.languageCode == STRING
    input.Body.structuredCompanyHqLocation.postalAddress.locality == STRING
    input.Body.structuredCompanyHqLocation.postalAddress.organization == STRING
    input.Body.structuredCompanyHqLocation.postalAddress.postalCode == STRING
    input.Body.structuredCompanyHqLocation.postalAddress.recipients[_] == STRING
    input.Body.structuredCompanyHqLocation.postalAddress.regionCode == STRING
    input.Body.structuredCompanyHqLocation.postalAddress.revision == INTEGER
    input.Body.structuredCompanyHqLocation.postalAddress.sortingCode == STRING
    input.Body.structuredCompanyHqLocation.postalAddress.sublocality == STRING
    input.Body.structuredCompanyHqLocation.radiusMeters == NUMBER
    input.Body.suspended == BOOLEAN
    input.Body.title == STRING
    input.Body.website == STRING
    input.ReqMap.name == STRING
    input.Qs.updateCompanyFields == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.complete

enum_ScopeParameter := [ "COMPLETION_SCOPE_UNSPECIFIED", "TENANT", "PUBLIC" ]
enum_TypeParameter := [ "COMPLETION_TYPE_UNSPECIFIED", "JOB_TITLE", "COMPANY_NAME", "COMBINED" ]

valid {
    input.Qs.companyName == STRING
    input.Qs.languageCode == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.query == STRING
    input.Qs.scope == enum_ScopeParameter[_]
    input.Qs.type == enum_TypeParameter[_]
    input.ProviderMetadata.Region == STRING
}

jobs.jobs.batchDelete

valid {
    input.Body.filter == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.jobs.create

enum_CompensationEntryType := [ "COMPENSATION_TYPE_UNSPECIFIED", "BASE", "BONUS", "SIGNING_BONUS", "EQUITY", "PROFIT_SHARING", "COMMISSIONS", "TIPS", "OTHER_COMPENSATION_TYPE" ]
enum_CompensationEntryUnit := [ "COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_CompensationInfoType := [ "JOB_COMPENSATION_TYPE_UNSPECIFIED", "HOURLY", "SALARY", "PER_PROJECT", "COMMISSION", "OTHER_TYPE" ]
enum_ExtendedCompensationInfoCompensationEntryType := [ "EXTENDED_COMPENSATION_TYPE_UNSPECIFIED", "BASE", "BONUS", "SIGNING_BONUS", "EQUITY", "PROFIT_SHARING", "COMMISSIONS", "TIPS", "OTHER_COMPENSATION_TYPE" ]
enum_ExtendedCompensationInfoCompensationEntryUnit := [ "EXTENDED_COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_JobBenefits := [ "JOB_BENEFIT_TYPE_UNSPECIFIED", "CHILD_CARE", "DENTAL", "DOMESTIC_PARTNER", "FLEXIBLE_HOURS", "MEDICAL", "LIFE_INSURANCE", "PARENTAL_LEAVE", "RETIREMENT_PLAN", "SICK_DAYS", "TELECOMMUTE", "VACATION", "VISION" ]
enum_JobEducationLevels := [ "EDUCATION_LEVEL_UNSPECIFIED", "HIGH_SCHOOL", "ASSOCIATE", "BACHELORS", "MASTERS", "DOCTORATE", "NO_DEGREE_REQUIRED" ]
enum_JobEmploymentTypes := [ "EMPLOYMENT_TYPE_UNSPECIFIED", "FULL_TIME", "PART_TIME", "CONTRACTOR", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "CONTRACT_TO_HIRE", "FLY_IN_FLY_OUT", "OTHER" ]
enum_JobLevel := [ "JOB_LEVEL_UNSPECIFIED", "ENTRY_LEVEL", "EXPERIENCED", "MANAGER", "DIRECTOR", "EXECUTIVE" ]
enum_JobLocationLocationType := [ "LOCATION_TYPE_UNSPECIFIED", "COUNTRY", "ADMINISTRATIVE_AREA", "SUB_ADMINISTRATIVE_AREA", "LOCALITY", "POSTAL_CODE", "SUB_LOCALITY", "SUB_LOCALITY_1", "SUB_LOCALITY_2", "NEIGHBORHOOD", "STREET_ADDRESS" ]
enum_JobProcessingOptionsHtmlSanitization := [ "HTML_SANITIZATION_UNSPECIFIED", "HTML_SANITIZATION_DISABLED", "SIMPLE_FORMATTING_ONLY" ]
enum_JobRegion := [ "REGION_UNSPECIFIED", "STATE_WIDE", "NATION_WIDE", "TELECOMMUTE" ]
enum_JobVisibility := [ "JOB_VISIBILITY_UNSPECIFIED", "PRIVATE", "GOOGLE", "PUBLIC" ]

valid {
    input.Body.disableStreetAddressResolution == BOOLEAN
    input.Body.job.applicationEmailList[_] == STRING
    input.Body.job.applicationInstruction == STRING
    input.Body.job.applicationUrls[_] == STRING
    input.Body.job.benefits[_] == enum_JobBenefits[_]
    input.Body.job.companyDisplayName == STRING
    input.Body.job.companyName == STRING
    input.Body.job.companyTitle == STRING
    input.Body.job.compensationInfo.amount.currencyCode == STRING
    input.Body.job.compensationInfo.amount.nanos == INTEGER
    input.Body.job.compensationInfo.amount.units == STRING
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.max.currencyCode == STRING
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.max.nanos == INTEGER
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.max.units == STRING
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.min.currencyCode == STRING
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.min.nanos == INTEGER
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.min.units == STRING
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.max.currencyCode == STRING
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.max.nanos == INTEGER
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.max.units == STRING
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.min.currencyCode == STRING
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.min.nanos == INTEGER
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.min.units == STRING
    input.Body.job.compensationInfo.entries[_].amount.currencyCode == STRING
    input.Body.job.compensationInfo.entries[_].amount.nanos == INTEGER
    input.Body.job.compensationInfo.entries[_].amount.units == STRING
    input.Body.job.compensationInfo.entries[_].description == STRING
    input.Body.job.compensationInfo.entries[_].expectedUnitsPerYear == NUMBER
    input.Body.job.compensationInfo.entries[_].range.max.currencyCode == STRING
    input.Body.job.compensationInfo.entries[_].range.max.nanos == INTEGER
    input.Body.job.compensationInfo.entries[_].range.max.units == STRING
    input.Body.job.compensationInfo.entries[_].range.min.currencyCode == STRING
    input.Body.job.compensationInfo.entries[_].range.min.nanos == INTEGER
    input.Body.job.compensationInfo.entries[_].range.min.units == STRING
    input.Body.job.compensationInfo.entries[_].type == enum_CompensationEntryType[_]
    input.Body.job.compensationInfo.entries[_].unit == enum_CompensationEntryUnit[_]
    input.Body.job.compensationInfo.max.currencyCode == STRING
    input.Body.job.compensationInfo.max.nanos == INTEGER
    input.Body.job.compensationInfo.max.units == STRING
    input.Body.job.compensationInfo.min.currencyCode == STRING
    input.Body.job.compensationInfo.min.nanos == INTEGER
    input.Body.job.compensationInfo.min.units == STRING
    input.Body.job.compensationInfo.type == enum_CompensationInfoType[_]
    input.Body.job.createTime == STRING
    input.Body.job.customAttributes.STRING.filterable == BOOLEAN
    input.Body.job.customAttributes.STRING.longValue == STRING
    input.Body.job.customAttributes.STRING.stringValues.values[_] == STRING
    input.Body.job.department == STRING
    input.Body.job.description == STRING
    input.Body.job.distributorCompanyId == STRING
    input.Body.job.educationLevels[_] == enum_JobEducationLevels[_]
    input.Body.job.employmentTypes[_] == enum_JobEmploymentTypes[_]
    input.Body.job.endDate.day == INTEGER
    input.Body.job.endDate.month == INTEGER
    input.Body.job.endDate.year == INTEGER
    input.Body.job.expireTime == STRING
    input.Body.job.expiryDate.day == INTEGER
    input.Body.job.expiryDate.month == INTEGER
    input.Body.job.expiryDate.year == INTEGER
    input.Body.job.extendedCompensationInfo.annualizedBaseCompensationRange.max.micros == INTEGER
    input.Body.job.extendedCompensationInfo.annualizedBaseCompensationRange.max.units == STRING
    input.Body.job.extendedCompensationInfo.annualizedBaseCompensationRange.min.micros == INTEGER
    input.Body.job.extendedCompensationInfo.annualizedBaseCompensationRange.min.units == STRING
    input.Body.job.extendedCompensationInfo.annualizedBaseCompensationUnspecified == BOOLEAN
    input.Body.job.extendedCompensationInfo.annualizedTotalCompensationRange.max.micros == INTEGER
    input.Body.job.extendedCompensationInfo.annualizedTotalCompensationRange.max.units == STRING
    input.Body.job.extendedCompensationInfo.annualizedTotalCompensationRange.min.micros == INTEGER
    input.Body.job.extendedCompensationInfo.annualizedTotalCompensationRange.min.units == STRING
    input.Body.job.extendedCompensationInfo.annualizedTotalCompensationUnspecified == BOOLEAN
    input.Body.job.extendedCompensationInfo.currency == STRING
    input.Body.job.extendedCompensationInfo.entries[_].amount.micros == INTEGER
    input.Body.job.extendedCompensationInfo.entries[_].amount.units == STRING
    input.Body.job.extendedCompensationInfo.entries[_].description == STRING
    input.Body.job.extendedCompensationInfo.entries[_].expectedUnitsPerYear.micros == INTEGER
    input.Body.job.extendedCompensationInfo.entries[_].expectedUnitsPerYear.units == STRING
    input.Body.job.extendedCompensationInfo.entries[_].range.max.micros == INTEGER
    input.Body.job.extendedCompensationInfo.entries[_].range.max.units == STRING
    input.Body.job.extendedCompensationInfo.entries[_].range.min.micros == INTEGER
    input.Body.job.extendedCompensationInfo.entries[_].range.min.units == STRING
    input.Body.job.extendedCompensationInfo.entries[_].type == enum_ExtendedCompensationInfoCompensationEntryType[_]
    input.Body.job.extendedCompensationInfo.entries[_].unit == enum_ExtendedCompensationInfoCompensationEntryUnit[_]
    input.Body.job.extendedCompensationInfo.entries[_].unspecified == BOOLEAN
    input.Body.job.filterableCustomFields.STRING.values[_] == STRING
    input.Body.job.incentives == STRING
    input.Body.job.jobLocations[_].latLng.latitude == NUMBER
    input.Body.job.jobLocations[_].latLng.longitude == NUMBER
    input.Body.job.jobLocations[_].locationType == enum_JobLocationLocationType[_]
    input.Body.job.jobLocations[_].postalAddress.addressLines[_] == STRING
    input.Body.job.jobLocations[_].postalAddress.administrativeArea == STRING
    input.Body.job.jobLocations[_].postalAddress.languageCode == STRING
    input.Body.job.jobLocations[_].postalAddress.locality == STRING
    input.Body.job.jobLocations[_].postalAddress.organization == STRING
    input.Body.job.jobLocations[_].postalAddress.postalCode == STRING
    input.Body.job.jobLocations[_].postalAddress.recipients[_] == STRING
    input.Body.job.jobLocations[_].postalAddress.regionCode == STRING
    input.Body.job.jobLocations[_].postalAddress.revision == INTEGER
    input.Body.job.jobLocations[_].postalAddress.sortingCode == STRING
    input.Body.job.jobLocations[_].postalAddress.sublocality == STRING
    input.Body.job.jobLocations[_].radiusMeters == NUMBER
    input.Body.job.jobTitle == STRING
    input.Body.job.languageCode == STRING
    input.Body.job.level == enum_JobLevel[_]
    input.Body.job.locations[_] == STRING
    input.Body.job.name == STRING
    input.Body.job.promotionValue == INTEGER
    input.Body.job.publishDate.day == INTEGER
    input.Body.job.publishDate.month == INTEGER
    input.Body.job.publishDate.year == INTEGER
    input.Body.job.qualifications == STRING
    input.Body.job.referenceUrl == STRING
    input.Body.job.region == enum_JobRegion[_]
    input.Body.job.requisitionId == STRING
    input.Body.job.responsibilities == STRING
    input.Body.job.startDate.day == INTEGER
    input.Body.job.startDate.month == INTEGER
    input.Body.job.startDate.year == INTEGER
    input.Body.job.unindexedCustomFields.STRING.values[_] == STRING
    input.Body.job.updateTime == STRING
    input.Body.job.visibility == enum_JobVisibility[_]
    input.Body.processingOptions.disableStreetAddressResolution == BOOLEAN
    input.Body.processingOptions.htmlSanitization == enum_JobProcessingOptionsHtmlSanitization[_]
    input.ProviderMetadata.Region == STRING
}

jobs.jobs.delete

valid {
    input.ReqMap.name == STRING
    input.Qs.disableFastProcess == BOOLEAN
    input.ProviderMetadata.Region == STRING
}

jobs.jobs.deleteByFilter

valid {
    input.Body.disableFastProcess == BOOLEAN
    input.Body.filter.requisitionId == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.jobs.get

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

jobs.jobs.histogram

enum_CommutePreferenceMethod := [ "COMMUTE_METHOD_UNSPECIFIED", "DRIVING", "TRANSIT" ]
enum_CommutePreferenceRoadTraffic := [ "ROAD_TRAFFIC_UNSPECIFIED", "TRAFFIC_FREE", "BUSY_HOUR" ]
enum_CompensationFilterType := [ "FILTER_TYPE_UNSPECIFIED", "UNIT_ONLY", "UNIT_AND_AMOUNT", "ANNUALIZED_BASE_AMOUNT", "ANNUALIZED_TOTAL_AMOUNT" ]
enum_CompensationFilterUnits := [ "COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_CustomFieldFilterType := [ "FILTER_TYPE_UNSPECIFIED", "OR", "AND", "NOT" ]
enum_DeviceInfoDeviceType := [ "DEVICE_TYPE_UNSPECIFIED", "WEB", "MOBILE_WEB", "ANDROID", "IOS", "BOT", "OTHER" ]
enum_ExtendedCompensationFilterCompensationUnits := [ "EXTENDED_COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_ExtendedCompensationFilterType := [ "FILTER_TYPE_UNSPECIFIED", "UNIT_ONLY", "UNIT_AND_AMOUNT", "ANNUALIZED_BASE_AMOUNT", "ANNUALIZED_TOTAL_AMOUNT" ]
enum_GetHistogramRequestSearchTypes := [ "JOB_FIELD_UNSPECIFIED", "COMPANY_ID", "EMPLOYMENT_TYPE", "COMPANY_SIZE", "DATE_PUBLISHED", "CUSTOM_FIELD_1", "CUSTOM_FIELD_2", "CUSTOM_FIELD_3", "CUSTOM_FIELD_4", "CUSTOM_FIELD_5", "CUSTOM_FIELD_6", "CUSTOM_FIELD_7", "CUSTOM_FIELD_8", "CUSTOM_FIELD_9", "CUSTOM_FIELD_10", "CUSTOM_FIELD_11", "CUSTOM_FIELD_12", "CUSTOM_FIELD_13", "CUSTOM_FIELD_14", "CUSTOM_FIELD_15", "CUSTOM_FIELD_16", "CUSTOM_FIELD_17", "CUSTOM_FIELD_18", "CUSTOM_FIELD_19", "CUSTOM_FIELD_20", "EDUCATION_LEVEL", "EXPERIENCE_LEVEL", "ADMIN1", "COUNTRY", "CITY", "LOCALE", "LANGUAGE", "CATEGORY", "CITY_COORDINATE", "ADMIN1_COUNTRY", "COMPANY_TITLE", "COMPANY_DISPLAY_NAME", "BASE_COMPENSATION_UNIT" ]
enum_JobFiltersCategories := [ "JOB_CATEGORY_UNSPECIFIED", "ACCOUNTING_AND_FINANCE", "ADMINISTRATIVE_AND_OFFICE", "ADVERTISING_AND_MARKETING", "ANIMAL_CARE", "ART_FASHION_AND_DESIGN", "BUSINESS_OPERATIONS", "CLEANING_AND_FACILITIES", "COMPUTER_AND_IT", "CONSTRUCTION", "CUSTOMER_SERVICE", "EDUCATION", "ENTERTAINMENT_AND_TRAVEL", "FARMING_AND_OUTDOORS", "HEALTHCARE", "HUMAN_RESOURCES", "INSTALLATION_MAINTENANCE_AND_REPAIR", "LEGAL", "MANAGEMENT", "MANUFACTURING_AND_WAREHOUSE", "MEDIA_COMMUNICATIONS_AND_WRITING", "OIL_GAS_AND_MINING", "PERSONAL_CARE_AND_SERVICES", "PROTECTIVE_SERVICES", "REAL_ESTATE", "RESTAURANT_AND_HOSPITALITY", "SALES_AND_RETAIL", "SCIENCE_AND_ENGINEERING", "SOCIAL_SERVICES_AND_NON_PROFIT", "SPORTS_FITNESS_AND_RECREATION", "TRANSPORTATION_AND_LOGISTICS" ]
enum_JobFiltersEmploymentTypes := [ "EMPLOYMENT_TYPE_UNSPECIFIED", "FULL_TIME", "PART_TIME", "CONTRACTOR", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "CONTRACT_TO_HIRE", "FLY_IN_FLY_OUT", "OTHER" ]
enum_JobFiltersPublishDateRange := [ "DATE_RANGE_UNSPECIFIED", "PAST_24_HOURS", "PAST_WEEK", "PAST_MONTH", "PAST_YEAR", "PAST_3_DAYS" ]
enum_JobQueryCategories := [ "JOB_CATEGORY_UNSPECIFIED", "ACCOUNTING_AND_FINANCE", "ADMINISTRATIVE_AND_OFFICE", "ADVERTISING_AND_MARKETING", "ANIMAL_CARE", "ART_FASHION_AND_DESIGN", "BUSINESS_OPERATIONS", "CLEANING_AND_FACILITIES", "COMPUTER_AND_IT", "CONSTRUCTION", "CUSTOMER_SERVICE", "EDUCATION", "ENTERTAINMENT_AND_TRAVEL", "FARMING_AND_OUTDOORS", "HEALTHCARE", "HUMAN_RESOURCES", "INSTALLATION_MAINTENANCE_AND_REPAIR", "LEGAL", "MANAGEMENT", "MANUFACTURING_AND_WAREHOUSE", "MEDIA_COMMUNICATIONS_AND_WRITING", "OIL_GAS_AND_MINING", "PERSONAL_CARE_AND_SERVICES", "PROTECTIVE_SERVICES", "REAL_ESTATE", "RESTAURANT_AND_HOSPITALITY", "SALES_AND_RETAIL", "SCIENCE_AND_ENGINEERING", "SOCIAL_SERVICES_AND_NON_PROFIT", "SPORTS_FITNESS_AND_RECREATION", "TRANSPORTATION_AND_LOGISTICS" ]
enum_JobQueryEmploymentTypes := [ "EMPLOYMENT_TYPE_UNSPECIFIED", "FULL_TIME", "PART_TIME", "CONTRACTOR", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "CONTRACT_TO_HIRE", "FLY_IN_FLY_OUT", "OTHER" ]
enum_JobQueryPublishDateRange := [ "DATE_RANGE_UNSPECIFIED", "PAST_24_HOURS", "PAST_WEEK", "PAST_MONTH", "PAST_YEAR", "PAST_3_DAYS" ]

valid {
    input.Body.allowBroadening == BOOLEAN
    input.Body.filters.categories[_] == enum_JobFiltersCategories[_]
    input.Body.filters.commuteFilter.allowNonStreetLevelAddress == BOOLEAN
    input.Body.filters.commuteFilter.departureHourLocal == INTEGER
    input.Body.filters.commuteFilter.method == enum_CommutePreferenceMethod[_]
    input.Body.filters.commuteFilter.roadTraffic == enum_CommutePreferenceRoadTraffic[_]
    input.Body.filters.commuteFilter.startLocation.latitude == NUMBER
    input.Body.filters.commuteFilter.startLocation.longitude == NUMBER
    input.Body.filters.commuteFilter.travelTime == STRING
    input.Body.filters.companyNames[_] == STRING
    input.Body.filters.companyTitles[_] == STRING
    input.Body.filters.compensationFilter.includeJobsWithUnspecifiedCompensationRange == BOOLEAN
    input.Body.filters.compensationFilter.range.max.currencyCode == STRING
    input.Body.filters.compensationFilter.range.max.nanos == INTEGER
    input.Body.filters.compensationFilter.range.max.units == STRING
    input.Body.filters.compensationFilter.range.min.currencyCode == STRING
    input.Body.filters.compensationFilter.range.min.nanos == INTEGER
    input.Body.filters.compensationFilter.range.min.units == STRING
    input.Body.filters.compensationFilter.type == enum_CompensationFilterType[_]
    input.Body.filters.compensationFilter.units[_] == enum_CompensationFilterUnits[_]
    input.Body.filters.customAttributeFilter == STRING
    input.Body.filters.customFieldFilters.STRING.queries[_] == STRING
    input.Body.filters.customFieldFilters.STRING.type == enum_CustomFieldFilterType[_]
    input.Body.filters.disableSpellCheck == BOOLEAN
    input.Body.filters.employmentTypes[_] == enum_JobFiltersEmploymentTypes[_]
    input.Body.filters.extendedCompensationFilter.compensationRange.max.micros == INTEGER
    input.Body.filters.extendedCompensationFilter.compensationRange.max.units == STRING
    input.Body.filters.extendedCompensationFilter.compensationRange.min.micros == INTEGER
    input.Body.filters.extendedCompensationFilter.compensationRange.min.units == STRING
    input.Body.filters.extendedCompensationFilter.compensationUnits[_] == enum_ExtendedCompensationFilterCompensationUnits[_]
    input.Body.filters.extendedCompensationFilter.currency == STRING
    input.Body.filters.extendedCompensationFilter.includeJobWithUnspecifiedCompensationRange == BOOLEAN
    input.Body.filters.extendedCompensationFilter.type == enum_ExtendedCompensationFilterType[_]
    input.Body.filters.languageCodes[_] == STRING
    input.Body.filters.locationFilters[_].distanceInMiles == NUMBER
    input.Body.filters.locationFilters[_].isTelecommute == BOOLEAN
    input.Body.filters.locationFilters[_].latLng.latitude == NUMBER
    input.Body.filters.locationFilters[_].latLng.longitude == NUMBER
    input.Body.filters.locationFilters[_].name == STRING
    input.Body.filters.locationFilters[_].regionCode == STRING
    input.Body.filters.publishDateRange == enum_JobFiltersPublishDateRange[_]
    input.Body.filters.query == STRING
    input.Body.filters.tenantJobOnly == BOOLEAN
    input.Body.query.categories[_] == enum_JobQueryCategories[_]
    input.Body.query.commuteFilter.allowNonStreetLevelAddress == BOOLEAN
    input.Body.query.commuteFilter.departureHourLocal == INTEGER
    input.Body.query.commuteFilter.method == enum_CommutePreferenceMethod[_]
    input.Body.query.commuteFilter.roadTraffic == enum_CommutePreferenceRoadTraffic[_]
    input.Body.query.commuteFilter.startLocation.latitude == NUMBER
    input.Body.query.commuteFilter.startLocation.longitude == NUMBER
    input.Body.query.commuteFilter.travelTime == STRING
    input.Body.query.companyDisplayNames[_] == STRING
    input.Body.query.companyNames[_] == STRING
    input.Body.query.compensationFilter.includeJobsWithUnspecifiedCompensationRange == BOOLEAN
    input.Body.query.compensationFilter.range.max.currencyCode == STRING
    input.Body.query.compensationFilter.range.max.nanos == INTEGER
    input.Body.query.compensationFilter.range.max.units == STRING
    input.Body.query.compensationFilter.range.min.currencyCode == STRING
    input.Body.query.compensationFilter.range.min.nanos == INTEGER
    input.Body.query.compensationFilter.range.min.units == STRING
    input.Body.query.compensationFilter.type == enum_CompensationFilterType[_]
    input.Body.query.compensationFilter.units[_] == enum_CompensationFilterUnits[_]
    input.Body.query.customAttributeFilter == STRING
    input.Body.query.disableSpellCheck == BOOLEAN
    input.Body.query.employmentTypes[_] == enum_JobQueryEmploymentTypes[_]
    input.Body.query.languageCodes[_] == STRING
    input.Body.query.locationFilters[_].distanceInMiles == NUMBER
    input.Body.query.locationFilters[_].isTelecommute == BOOLEAN
    input.Body.query.locationFilters[_].latLng.latitude == NUMBER
    input.Body.query.locationFilters[_].latLng.longitude == NUMBER
    input.Body.query.locationFilters[_].name == STRING
    input.Body.query.locationFilters[_].regionCode == STRING
    input.Body.query.publishDateRange == enum_JobQueryPublishDateRange[_]
    input.Body.query.query == STRING
    input.Body.requestMetadata.deviceInfo.deviceType == enum_DeviceInfoDeviceType[_]
    input.Body.requestMetadata.deviceInfo.id == STRING
    input.Body.requestMetadata.domain == STRING
    input.Body.requestMetadata.sessionId == STRING
    input.Body.requestMetadata.userId == STRING
    input.Body.searchTypes[_] == enum_GetHistogramRequestSearchTypes[_]
    input.ProviderMetadata.Region == STRING
}

jobs.jobs.list

valid {
    input.Qs.filter == STRING
    input.Qs.idsOnly == BOOLEAN
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.jobs.patch

enum_CompensationEntryType := [ "COMPENSATION_TYPE_UNSPECIFIED", "BASE", "BONUS", "SIGNING_BONUS", "EQUITY", "PROFIT_SHARING", "COMMISSIONS", "TIPS", "OTHER_COMPENSATION_TYPE" ]
enum_CompensationEntryUnit := [ "COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_CompensationInfoType := [ "JOB_COMPENSATION_TYPE_UNSPECIFIED", "HOURLY", "SALARY", "PER_PROJECT", "COMMISSION", "OTHER_TYPE" ]
enum_ExtendedCompensationInfoCompensationEntryType := [ "EXTENDED_COMPENSATION_TYPE_UNSPECIFIED", "BASE", "BONUS", "SIGNING_BONUS", "EQUITY", "PROFIT_SHARING", "COMMISSIONS", "TIPS", "OTHER_COMPENSATION_TYPE" ]
enum_ExtendedCompensationInfoCompensationEntryUnit := [ "EXTENDED_COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_JobBenefits := [ "JOB_BENEFIT_TYPE_UNSPECIFIED", "CHILD_CARE", "DENTAL", "DOMESTIC_PARTNER", "FLEXIBLE_HOURS", "MEDICAL", "LIFE_INSURANCE", "PARENTAL_LEAVE", "RETIREMENT_PLAN", "SICK_DAYS", "TELECOMMUTE", "VACATION", "VISION" ]
enum_JobEducationLevels := [ "EDUCATION_LEVEL_UNSPECIFIED", "HIGH_SCHOOL", "ASSOCIATE", "BACHELORS", "MASTERS", "DOCTORATE", "NO_DEGREE_REQUIRED" ]
enum_JobEmploymentTypes := [ "EMPLOYMENT_TYPE_UNSPECIFIED", "FULL_TIME", "PART_TIME", "CONTRACTOR", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "CONTRACT_TO_HIRE", "FLY_IN_FLY_OUT", "OTHER" ]
enum_JobLevel := [ "JOB_LEVEL_UNSPECIFIED", "ENTRY_LEVEL", "EXPERIENCED", "MANAGER", "DIRECTOR", "EXECUTIVE" ]
enum_JobLocationLocationType := [ "LOCATION_TYPE_UNSPECIFIED", "COUNTRY", "ADMINISTRATIVE_AREA", "SUB_ADMINISTRATIVE_AREA", "LOCALITY", "POSTAL_CODE", "SUB_LOCALITY", "SUB_LOCALITY_1", "SUB_LOCALITY_2", "NEIGHBORHOOD", "STREET_ADDRESS" ]
enum_JobProcessingOptionsHtmlSanitization := [ "HTML_SANITIZATION_UNSPECIFIED", "HTML_SANITIZATION_DISABLED", "SIMPLE_FORMATTING_ONLY" ]
enum_JobRegion := [ "REGION_UNSPECIFIED", "STATE_WIDE", "NATION_WIDE", "TELECOMMUTE" ]
enum_JobVisibility := [ "JOB_VISIBILITY_UNSPECIFIED", "PRIVATE", "GOOGLE", "PUBLIC" ]

valid {
    input.Body.disableStreetAddressResolution == BOOLEAN
    input.Body.job.applicationEmailList[_] == STRING
    input.Body.job.applicationInstruction == STRING
    input.Body.job.applicationUrls[_] == STRING
    input.Body.job.benefits[_] == enum_JobBenefits[_]
    input.Body.job.companyDisplayName == STRING
    input.Body.job.companyName == STRING
    input.Body.job.companyTitle == STRING
    input.Body.job.compensationInfo.amount.currencyCode == STRING
    input.Body.job.compensationInfo.amount.nanos == INTEGER
    input.Body.job.compensationInfo.amount.units == STRING
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.max.currencyCode == STRING
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.max.nanos == INTEGER
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.max.units == STRING
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.min.currencyCode == STRING
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.min.nanos == INTEGER
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.min.units == STRING
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.max.currencyCode == STRING
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.max.nanos == INTEGER
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.max.units == STRING
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.min.currencyCode == STRING
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.min.nanos == INTEGER
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.min.units == STRING
    input.Body.job.compensationInfo.entries[_].amount.currencyCode == STRING
    input.Body.job.compensationInfo.entries[_].amount.nanos == INTEGER
    input.Body.job.compensationInfo.entries[_].amount.units == STRING
    input.Body.job.compensationInfo.entries[_].description == STRING
    input.Body.job.compensationInfo.entries[_].expectedUnitsPerYear == NUMBER
    input.Body.job.compensationInfo.entries[_].range.max.currencyCode == STRING
    input.Body.job.compensationInfo.entries[_].range.max.nanos == INTEGER
    input.Body.job.compensationInfo.entries[_].range.max.units == STRING
    input.Body.job.compensationInfo.entries[_].range.min.currencyCode == STRING
    input.Body.job.compensationInfo.entries[_].range.min.nanos == INTEGER
    input.Body.job.compensationInfo.entries[_].range.min.units == STRING
    input.Body.job.compensationInfo.entries[_].type == enum_CompensationEntryType[_]
    input.Body.job.compensationInfo.entries[_].unit == enum_CompensationEntryUnit[_]
    input.Body.job.compensationInfo.max.currencyCode == STRING
    input.Body.job.compensationInfo.max.nanos == INTEGER
    input.Body.job.compensationInfo.max.units == STRING
    input.Body.job.compensationInfo.min.currencyCode == STRING
    input.Body.job.compensationInfo.min.nanos == INTEGER
    input.Body.job.compensationInfo.min.units == STRING
    input.Body.job.compensationInfo.type == enum_CompensationInfoType[_]
    input.Body.job.createTime == STRING
    input.Body.job.customAttributes.STRING.filterable == BOOLEAN
    input.Body.job.customAttributes.STRING.longValue == STRING
    input.Body.job.customAttributes.STRING.stringValues.values[_] == STRING
    input.Body.job.department == STRING
    input.Body.job.description == STRING
    input.Body.job.distributorCompanyId == STRING
    input.Body.job.educationLevels[_] == enum_JobEducationLevels[_]
    input.Body.job.employmentTypes[_] == enum_JobEmploymentTypes[_]
    input.Body.job.endDate.day == INTEGER
    input.Body.job.endDate.month == INTEGER
    input.Body.job.endDate.year == INTEGER
    input.Body.job.expireTime == STRING
    input.Body.job.expiryDate.day == INTEGER
    input.Body.job.expiryDate.month == INTEGER
    input.Body.job.expiryDate.year == INTEGER
    input.Body.job.extendedCompensationInfo.annualizedBaseCompensationRange.max.micros == INTEGER
    input.Body.job.extendedCompensationInfo.annualizedBaseCompensationRange.max.units == STRING
    input.Body.job.extendedCompensationInfo.annualizedBaseCompensationRange.min.micros == INTEGER
    input.Body.job.extendedCompensationInfo.annualizedBaseCompensationRange.min.units == STRING
    input.Body.job.extendedCompensationInfo.annualizedBaseCompensationUnspecified == BOOLEAN
    input.Body.job.extendedCompensationInfo.annualizedTotalCompensationRange.max.micros == INTEGER
    input.Body.job.extendedCompensationInfo.annualizedTotalCompensationRange.max.units == STRING
    input.Body.job.extendedCompensationInfo.annualizedTotalCompensationRange.min.micros == INTEGER
    input.Body.job.extendedCompensationInfo.annualizedTotalCompensationRange.min.units == STRING
    input.Body.job.extendedCompensationInfo.annualizedTotalCompensationUnspecified == BOOLEAN
    input.Body.job.extendedCompensationInfo.currency == STRING
    input.Body.job.extendedCompensationInfo.entries[_].amount.micros == INTEGER
    input.Body.job.extendedCompensationInfo.entries[_].amount.units == STRING
    input.Body.job.extendedCompensationInfo.entries[_].description == STRING
    input.Body.job.extendedCompensationInfo.entries[_].expectedUnitsPerYear.micros == INTEGER
    input.Body.job.extendedCompensationInfo.entries[_].expectedUnitsPerYear.units == STRING
    input.Body.job.extendedCompensationInfo.entries[_].range.max.micros == INTEGER
    input.Body.job.extendedCompensationInfo.entries[_].range.max.units == STRING
    input.Body.job.extendedCompensationInfo.entries[_].range.min.micros == INTEGER
    input.Body.job.extendedCompensationInfo.entries[_].range.min.units == STRING
    input.Body.job.extendedCompensationInfo.entries[_].type == enum_ExtendedCompensationInfoCompensationEntryType[_]
    input.Body.job.extendedCompensationInfo.entries[_].unit == enum_ExtendedCompensationInfoCompensationEntryUnit[_]
    input.Body.job.extendedCompensationInfo.entries[_].unspecified == BOOLEAN
    input.Body.job.filterableCustomFields.STRING.values[_] == STRING
    input.Body.job.incentives == STRING
    input.Body.job.jobLocations[_].latLng.latitude == NUMBER
    input.Body.job.jobLocations[_].latLng.longitude == NUMBER
    input.Body.job.jobLocations[_].locationType == enum_JobLocationLocationType[_]
    input.Body.job.jobLocations[_].postalAddress.addressLines[_] == STRING
    input.Body.job.jobLocations[_].postalAddress.administrativeArea == STRING
    input.Body.job.jobLocations[_].postalAddress.languageCode == STRING
    input.Body.job.jobLocations[_].postalAddress.locality == STRING
    input.Body.job.jobLocations[_].postalAddress.organization == STRING
    input.Body.job.jobLocations[_].postalAddress.postalCode == STRING
    input.Body.job.jobLocations[_].postalAddress.recipients[_] == STRING
    input.Body.job.jobLocations[_].postalAddress.regionCode == STRING
    input.Body.job.jobLocations[_].postalAddress.revision == INTEGER
    input.Body.job.jobLocations[_].postalAddress.sortingCode == STRING
    input.Body.job.jobLocations[_].postalAddress.sublocality == STRING
    input.Body.job.jobLocations[_].radiusMeters == NUMBER
    input.Body.job.jobTitle == STRING
    input.Body.job.languageCode == STRING
    input.Body.job.level == enum_JobLevel[_]
    input.Body.job.locations[_] == STRING
    input.Body.job.name == STRING
    input.Body.job.promotionValue == INTEGER
    input.Body.job.publishDate.day == INTEGER
    input.Body.job.publishDate.month == INTEGER
    input.Body.job.publishDate.year == INTEGER
    input.Body.job.qualifications == STRING
    input.Body.job.referenceUrl == STRING
    input.Body.job.region == enum_JobRegion[_]
    input.Body.job.requisitionId == STRING
    input.Body.job.responsibilities == STRING
    input.Body.job.startDate.day == INTEGER
    input.Body.job.startDate.month == INTEGER
    input.Body.job.startDate.year == INTEGER
    input.Body.job.unindexedCustomFields.STRING.values[_] == STRING
    input.Body.job.updateTime == STRING
    input.Body.job.visibility == enum_JobVisibility[_]
    input.Body.processingOptions.disableStreetAddressResolution == BOOLEAN
    input.Body.processingOptions.htmlSanitization == enum_JobProcessingOptionsHtmlSanitization[_]
    input.Body.updateJobFields == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.jobs.search

enum_CommutePreferenceMethod := [ "COMMUTE_METHOD_UNSPECIFIED", "DRIVING", "TRANSIT" ]
enum_CommutePreferenceRoadTraffic := [ "ROAD_TRAFFIC_UNSPECIFIED", "TRAFFIC_FREE", "BUSY_HOUR" ]
enum_CompensationFilterType := [ "FILTER_TYPE_UNSPECIFIED", "UNIT_ONLY", "UNIT_AND_AMOUNT", "ANNUALIZED_BASE_AMOUNT", "ANNUALIZED_TOTAL_AMOUNT" ]
enum_CompensationFilterUnits := [ "COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_CompensationHistogramRequestType := [ "COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED", "BASE", "ANNUALIZED_BASE", "ANNUALIZED_TOTAL" ]
enum_CustomFieldFilterType := [ "FILTER_TYPE_UNSPECIFIED", "OR", "AND", "NOT" ]
enum_DeviceInfoDeviceType := [ "DEVICE_TYPE_UNSPECIFIED", "WEB", "MOBILE_WEB", "ANDROID", "IOS", "BOT", "OTHER" ]
enum_ExtendedCompensationFilterCompensationUnits := [ "EXTENDED_COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_ExtendedCompensationFilterType := [ "FILTER_TYPE_UNSPECIFIED", "UNIT_ONLY", "UNIT_AND_AMOUNT", "ANNUALIZED_BASE_AMOUNT", "ANNUALIZED_TOTAL_AMOUNT" ]
enum_HistogramFacetsSimpleHistogramFacets := [ "JOB_FIELD_UNSPECIFIED", "COMPANY_ID", "EMPLOYMENT_TYPE", "COMPANY_SIZE", "DATE_PUBLISHED", "CUSTOM_FIELD_1", "CUSTOM_FIELD_2", "CUSTOM_FIELD_3", "CUSTOM_FIELD_4", "CUSTOM_FIELD_5", "CUSTOM_FIELD_6", "CUSTOM_FIELD_7", "CUSTOM_FIELD_8", "CUSTOM_FIELD_9", "CUSTOM_FIELD_10", "CUSTOM_FIELD_11", "CUSTOM_FIELD_12", "CUSTOM_FIELD_13", "CUSTOM_FIELD_14", "CUSTOM_FIELD_15", "CUSTOM_FIELD_16", "CUSTOM_FIELD_17", "CUSTOM_FIELD_18", "CUSTOM_FIELD_19", "CUSTOM_FIELD_20", "EDUCATION_LEVEL", "EXPERIENCE_LEVEL", "ADMIN1", "COUNTRY", "CITY", "LOCALE", "LANGUAGE", "CATEGORY", "CITY_COORDINATE", "ADMIN1_COUNTRY", "COMPANY_TITLE", "COMPANY_DISPLAY_NAME", "BASE_COMPENSATION_UNIT" ]
enum_JobFiltersCategories := [ "JOB_CATEGORY_UNSPECIFIED", "ACCOUNTING_AND_FINANCE", "ADMINISTRATIVE_AND_OFFICE", "ADVERTISING_AND_MARKETING", "ANIMAL_CARE", "ART_FASHION_AND_DESIGN", "BUSINESS_OPERATIONS", "CLEANING_AND_FACILITIES", "COMPUTER_AND_IT", "CONSTRUCTION", "CUSTOMER_SERVICE", "EDUCATION", "ENTERTAINMENT_AND_TRAVEL", "FARMING_AND_OUTDOORS", "HEALTHCARE", "HUMAN_RESOURCES", "INSTALLATION_MAINTENANCE_AND_REPAIR", "LEGAL", "MANAGEMENT", "MANUFACTURING_AND_WAREHOUSE", "MEDIA_COMMUNICATIONS_AND_WRITING", "OIL_GAS_AND_MINING", "PERSONAL_CARE_AND_SERVICES", "PROTECTIVE_SERVICES", "REAL_ESTATE", "RESTAURANT_AND_HOSPITALITY", "SALES_AND_RETAIL", "SCIENCE_AND_ENGINEERING", "SOCIAL_SERVICES_AND_NON_PROFIT", "SPORTS_FITNESS_AND_RECREATION", "TRANSPORTATION_AND_LOGISTICS" ]
enum_JobFiltersEmploymentTypes := [ "EMPLOYMENT_TYPE_UNSPECIFIED", "FULL_TIME", "PART_TIME", "CONTRACTOR", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "CONTRACT_TO_HIRE", "FLY_IN_FLY_OUT", "OTHER" ]
enum_JobFiltersPublishDateRange := [ "DATE_RANGE_UNSPECIFIED", "PAST_24_HOURS", "PAST_WEEK", "PAST_MONTH", "PAST_YEAR", "PAST_3_DAYS" ]
enum_JobQueryCategories := [ "JOB_CATEGORY_UNSPECIFIED", "ACCOUNTING_AND_FINANCE", "ADMINISTRATIVE_AND_OFFICE", "ADVERTISING_AND_MARKETING", "ANIMAL_CARE", "ART_FASHION_AND_DESIGN", "BUSINESS_OPERATIONS", "CLEANING_AND_FACILITIES", "COMPUTER_AND_IT", "CONSTRUCTION", "CUSTOMER_SERVICE", "EDUCATION", "ENTERTAINMENT_AND_TRAVEL", "FARMING_AND_OUTDOORS", "HEALTHCARE", "HUMAN_RESOURCES", "INSTALLATION_MAINTENANCE_AND_REPAIR", "LEGAL", "MANAGEMENT", "MANUFACTURING_AND_WAREHOUSE", "MEDIA_COMMUNICATIONS_AND_WRITING", "OIL_GAS_AND_MINING", "PERSONAL_CARE_AND_SERVICES", "PROTECTIVE_SERVICES", "REAL_ESTATE", "RESTAURANT_AND_HOSPITALITY", "SALES_AND_RETAIL", "SCIENCE_AND_ENGINEERING", "SOCIAL_SERVICES_AND_NON_PROFIT", "SPORTS_FITNESS_AND_RECREATION", "TRANSPORTATION_AND_LOGISTICS" ]
enum_JobQueryEmploymentTypes := [ "EMPLOYMENT_TYPE_UNSPECIFIED", "FULL_TIME", "PART_TIME", "CONTRACTOR", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "CONTRACT_TO_HIRE", "FLY_IN_FLY_OUT", "OTHER" ]
enum_JobQueryPublishDateRange := [ "DATE_RANGE_UNSPECIFIED", "PAST_24_HOURS", "PAST_WEEK", "PAST_MONTH", "PAST_YEAR", "PAST_3_DAYS" ]
enum_SearchJobsRequestJobView := [ "JOB_VIEW_UNSPECIFIED", "SMALL", "MINIMAL", "FULL" ]
enum_SearchJobsRequestMode := [ "SEARCH_MODE_UNSPECIFIED", "JOB_SEARCH", "FEATURED_JOB_SEARCH", "EMAIL_ALERT_SEARCH" ]
enum_SearchJobsRequestOrderBy := [ "SORT_BY_UNSPECIFIED", "RELEVANCE_DESC", "PUBLISHED_DATE_DESC", "UPDATED_DATE_DESC", "TITLE", "TITLE_DESC", "ANNUALIZED_BASE_COMPENSATION", "ANNUALIZED_TOTAL_COMPENSATION", "ANNUALIZED_BASE_COMPENSATION_DESC", "ANNUALIZED_TOTAL_COMPENSATION_DESC" ]
enum_SearchJobsRequestSortBy := [ "SORT_BY_UNSPECIFIED", "RELEVANCE_DESC", "PUBLISHED_DATE_DESC", "UPDATED_DATE_DESC", "TITLE", "TITLE_DESC", "ANNUALIZED_BASE_COMPENSATION", "ANNUALIZED_TOTAL_COMPENSATION", "ANNUALIZED_BASE_COMPENSATION_DESC", "ANNUALIZED_TOTAL_COMPENSATION_DESC" ]

valid {
    input.Body.disableRelevanceThresholding == BOOLEAN
    input.Body.enableBroadening == BOOLEAN
    input.Body.enablePreciseResultSize == BOOLEAN
    input.Body.filters.categories[_] == enum_JobFiltersCategories[_]
    input.Body.filters.commuteFilter.allowNonStreetLevelAddress == BOOLEAN
    input.Body.filters.commuteFilter.departureHourLocal == INTEGER
    input.Body.filters.commuteFilter.method == enum_CommutePreferenceMethod[_]
    input.Body.filters.commuteFilter.roadTraffic == enum_CommutePreferenceRoadTraffic[_]
    input.Body.filters.commuteFilter.startLocation.latitude == NUMBER
    input.Body.filters.commuteFilter.startLocation.longitude == NUMBER
    input.Body.filters.commuteFilter.travelTime == STRING
    input.Body.filters.companyNames[_] == STRING
    input.Body.filters.companyTitles[_] == STRING
    input.Body.filters.compensationFilter.includeJobsWithUnspecifiedCompensationRange == BOOLEAN
    input.Body.filters.compensationFilter.range.max.currencyCode == STRING
    input.Body.filters.compensationFilter.range.max.nanos == INTEGER
    input.Body.filters.compensationFilter.range.max.units == STRING
    input.Body.filters.compensationFilter.range.min.currencyCode == STRING
    input.Body.filters.compensationFilter.range.min.nanos == INTEGER
    input.Body.filters.compensationFilter.range.min.units == STRING
    input.Body.filters.compensationFilter.type == enum_CompensationFilterType[_]
    input.Body.filters.compensationFilter.units[_] == enum_CompensationFilterUnits[_]
    input.Body.filters.customAttributeFilter == STRING
    input.Body.filters.customFieldFilters.STRING.queries[_] == STRING
    input.Body.filters.customFieldFilters.STRING.type == enum_CustomFieldFilterType[_]
    input.Body.filters.disableSpellCheck == BOOLEAN
    input.Body.filters.employmentTypes[_] == enum_JobFiltersEmploymentTypes[_]
    input.Body.filters.extendedCompensationFilter.compensationRange.max.micros == INTEGER
    input.Body.filters.extendedCompensationFilter.compensationRange.max.units == STRING
    input.Body.filters.extendedCompensationFilter.compensationRange.min.micros == INTEGER
    input.Body.filters.extendedCompensationFilter.compensationRange.min.units == STRING
    input.Body.filters.extendedCompensationFilter.compensationUnits[_] == enum_ExtendedCompensationFilterCompensationUnits[_]
    input.Body.filters.extendedCompensationFilter.currency == STRING
    input.Body.filters.extendedCompensationFilter.includeJobWithUnspecifiedCompensationRange == BOOLEAN
    input.Body.filters.extendedCompensationFilter.type == enum_ExtendedCompensationFilterType[_]
    input.Body.filters.languageCodes[_] == STRING
    input.Body.filters.locationFilters[_].distanceInMiles == NUMBER
    input.Body.filters.locationFilters[_].isTelecommute == BOOLEAN
    input.Body.filters.locationFilters[_].latLng.latitude == NUMBER
    input.Body.filters.locationFilters[_].latLng.longitude == NUMBER
    input.Body.filters.locationFilters[_].name == STRING
    input.Body.filters.locationFilters[_].regionCode == STRING
    input.Body.filters.publishDateRange == enum_JobFiltersPublishDateRange[_]
    input.Body.filters.query == STRING
    input.Body.filters.tenantJobOnly == BOOLEAN
    input.Body.histogramFacets.compensationHistogramFacets[_].bucketingOption.bucketBounds[_] == NUMBER
    input.Body.histogramFacets.compensationHistogramFacets[_].bucketingOption.requiresMinMax == BOOLEAN
    input.Body.histogramFacets.compensationHistogramFacets[_].type == enum_CompensationHistogramRequestType[_]
    input.Body.histogramFacets.customAttributeHistogramFacets[_].key == STRING
    input.Body.histogramFacets.customAttributeHistogramFacets[_].longValueHistogramBucketingOption.bucketBounds[_] == NUMBER
    input.Body.histogramFacets.customAttributeHistogramFacets[_].longValueHistogramBucketingOption.requiresMinMax == BOOLEAN
    input.Body.histogramFacets.customAttributeHistogramFacets[_].stringValueHistogram == BOOLEAN
    input.Body.histogramFacets.simpleHistogramFacets[_] == enum_HistogramFacetsSimpleHistogramFacets[_]
    input.Body.jobView == enum_SearchJobsRequestJobView[_]
    input.Body.mode == enum_SearchJobsRequestMode[_]
    input.Body.offset == INTEGER
    input.Body.orderBy == enum_SearchJobsRequestOrderBy[_]
    input.Body.pageSize == INTEGER
    input.Body.pageToken == STRING
    input.Body.query.categories[_] == enum_JobQueryCategories[_]
    input.Body.query.commuteFilter.allowNonStreetLevelAddress == BOOLEAN
    input.Body.query.commuteFilter.departureHourLocal == INTEGER
    input.Body.query.commuteFilter.method == enum_CommutePreferenceMethod[_]
    input.Body.query.commuteFilter.roadTraffic == enum_CommutePreferenceRoadTraffic[_]
    input.Body.query.commuteFilter.startLocation.latitude == NUMBER
    input.Body.query.commuteFilter.startLocation.longitude == NUMBER
    input.Body.query.commuteFilter.travelTime == STRING
    input.Body.query.companyDisplayNames[_] == STRING
    input.Body.query.companyNames[_] == STRING
    input.Body.query.compensationFilter.includeJobsWithUnspecifiedCompensationRange == BOOLEAN
    input.Body.query.compensationFilter.range.max.currencyCode == STRING
    input.Body.query.compensationFilter.range.max.nanos == INTEGER
    input.Body.query.compensationFilter.range.max.units == STRING
    input.Body.query.compensationFilter.range.min.currencyCode == STRING
    input.Body.query.compensationFilter.range.min.nanos == INTEGER
    input.Body.query.compensationFilter.range.min.units == STRING
    input.Body.query.compensationFilter.type == enum_CompensationFilterType[_]
    input.Body.query.compensationFilter.units[_] == enum_CompensationFilterUnits[_]
    input.Body.query.customAttributeFilter == STRING
    input.Body.query.disableSpellCheck == BOOLEAN
    input.Body.query.employmentTypes[_] == enum_JobQueryEmploymentTypes[_]
    input.Body.query.languageCodes[_] == STRING
    input.Body.query.locationFilters[_].distanceInMiles == NUMBER
    input.Body.query.locationFilters[_].isTelecommute == BOOLEAN
    input.Body.query.locationFilters[_].latLng.latitude == NUMBER
    input.Body.query.locationFilters[_].latLng.longitude == NUMBER
    input.Body.query.locationFilters[_].name == STRING
    input.Body.query.locationFilters[_].regionCode == STRING
    input.Body.query.publishDateRange == enum_JobQueryPublishDateRange[_]
    input.Body.query.query == STRING
    input.Body.requestMetadata.deviceInfo.deviceType == enum_DeviceInfoDeviceType[_]
    input.Body.requestMetadata.deviceInfo.id == STRING
    input.Body.requestMetadata.domain == STRING
    input.Body.requestMetadata.sessionId == STRING
    input.Body.requestMetadata.userId == STRING
    input.Body.sortBy == enum_SearchJobsRequestSortBy[_]
    input.ProviderMetadata.Region == STRING
}

jobs.jobs.searchForAlert

enum_CommutePreferenceMethod := [ "COMMUTE_METHOD_UNSPECIFIED", "DRIVING", "TRANSIT" ]
enum_CommutePreferenceRoadTraffic := [ "ROAD_TRAFFIC_UNSPECIFIED", "TRAFFIC_FREE", "BUSY_HOUR" ]
enum_CompensationFilterType := [ "FILTER_TYPE_UNSPECIFIED", "UNIT_ONLY", "UNIT_AND_AMOUNT", "ANNUALIZED_BASE_AMOUNT", "ANNUALIZED_TOTAL_AMOUNT" ]
enum_CompensationFilterUnits := [ "COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_CompensationHistogramRequestType := [ "COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED", "BASE", "ANNUALIZED_BASE", "ANNUALIZED_TOTAL" ]
enum_CustomFieldFilterType := [ "FILTER_TYPE_UNSPECIFIED", "OR", "AND", "NOT" ]
enum_DeviceInfoDeviceType := [ "DEVICE_TYPE_UNSPECIFIED", "WEB", "MOBILE_WEB", "ANDROID", "IOS", "BOT", "OTHER" ]
enum_ExtendedCompensationFilterCompensationUnits := [ "EXTENDED_COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_ExtendedCompensationFilterType := [ "FILTER_TYPE_UNSPECIFIED", "UNIT_ONLY", "UNIT_AND_AMOUNT", "ANNUALIZED_BASE_AMOUNT", "ANNUALIZED_TOTAL_AMOUNT" ]
enum_HistogramFacetsSimpleHistogramFacets := [ "JOB_FIELD_UNSPECIFIED", "COMPANY_ID", "EMPLOYMENT_TYPE", "COMPANY_SIZE", "DATE_PUBLISHED", "CUSTOM_FIELD_1", "CUSTOM_FIELD_2", "CUSTOM_FIELD_3", "CUSTOM_FIELD_4", "CUSTOM_FIELD_5", "CUSTOM_FIELD_6", "CUSTOM_FIELD_7", "CUSTOM_FIELD_8", "CUSTOM_FIELD_9", "CUSTOM_FIELD_10", "CUSTOM_FIELD_11", "CUSTOM_FIELD_12", "CUSTOM_FIELD_13", "CUSTOM_FIELD_14", "CUSTOM_FIELD_15", "CUSTOM_FIELD_16", "CUSTOM_FIELD_17", "CUSTOM_FIELD_18", "CUSTOM_FIELD_19", "CUSTOM_FIELD_20", "EDUCATION_LEVEL", "EXPERIENCE_LEVEL", "ADMIN1", "COUNTRY", "CITY", "LOCALE", "LANGUAGE", "CATEGORY", "CITY_COORDINATE", "ADMIN1_COUNTRY", "COMPANY_TITLE", "COMPANY_DISPLAY_NAME", "BASE_COMPENSATION_UNIT" ]
enum_JobFiltersCategories := [ "JOB_CATEGORY_UNSPECIFIED", "ACCOUNTING_AND_FINANCE", "ADMINISTRATIVE_AND_OFFICE", "ADVERTISING_AND_MARKETING", "ANIMAL_CARE", "ART_FASHION_AND_DESIGN", "BUSINESS_OPERATIONS", "CLEANING_AND_FACILITIES", "COMPUTER_AND_IT", "CONSTRUCTION", "CUSTOMER_SERVICE", "EDUCATION", "ENTERTAINMENT_AND_TRAVEL", "FARMING_AND_OUTDOORS", "HEALTHCARE", "HUMAN_RESOURCES", "INSTALLATION_MAINTENANCE_AND_REPAIR", "LEGAL", "MANAGEMENT", "MANUFACTURING_AND_WAREHOUSE", "MEDIA_COMMUNICATIONS_AND_WRITING", "OIL_GAS_AND_MINING", "PERSONAL_CARE_AND_SERVICES", "PROTECTIVE_SERVICES", "REAL_ESTATE", "RESTAURANT_AND_HOSPITALITY", "SALES_AND_RETAIL", "SCIENCE_AND_ENGINEERING", "SOCIAL_SERVICES_AND_NON_PROFIT", "SPORTS_FITNESS_AND_RECREATION", "TRANSPORTATION_AND_LOGISTICS" ]
enum_JobFiltersEmploymentTypes := [ "EMPLOYMENT_TYPE_UNSPECIFIED", "FULL_TIME", "PART_TIME", "CONTRACTOR", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "CONTRACT_TO_HIRE", "FLY_IN_FLY_OUT", "OTHER" ]
enum_JobFiltersPublishDateRange := [ "DATE_RANGE_UNSPECIFIED", "PAST_24_HOURS", "PAST_WEEK", "PAST_MONTH", "PAST_YEAR", "PAST_3_DAYS" ]
enum_JobQueryCategories := [ "JOB_CATEGORY_UNSPECIFIED", "ACCOUNTING_AND_FINANCE", "ADMINISTRATIVE_AND_OFFICE", "ADVERTISING_AND_MARKETING", "ANIMAL_CARE", "ART_FASHION_AND_DESIGN", "BUSINESS_OPERATIONS", "CLEANING_AND_FACILITIES", "COMPUTER_AND_IT", "CONSTRUCTION", "CUSTOMER_SERVICE", "EDUCATION", "ENTERTAINMENT_AND_TRAVEL", "FARMING_AND_OUTDOORS", "HEALTHCARE", "HUMAN_RESOURCES", "INSTALLATION_MAINTENANCE_AND_REPAIR", "LEGAL", "MANAGEMENT", "MANUFACTURING_AND_WAREHOUSE", "MEDIA_COMMUNICATIONS_AND_WRITING", "OIL_GAS_AND_MINING", "PERSONAL_CARE_AND_SERVICES", "PROTECTIVE_SERVICES", "REAL_ESTATE", "RESTAURANT_AND_HOSPITALITY", "SALES_AND_RETAIL", "SCIENCE_AND_ENGINEERING", "SOCIAL_SERVICES_AND_NON_PROFIT", "SPORTS_FITNESS_AND_RECREATION", "TRANSPORTATION_AND_LOGISTICS" ]
enum_JobQueryEmploymentTypes := [ "EMPLOYMENT_TYPE_UNSPECIFIED", "FULL_TIME", "PART_TIME", "CONTRACTOR", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "CONTRACT_TO_HIRE", "FLY_IN_FLY_OUT", "OTHER" ]
enum_JobQueryPublishDateRange := [ "DATE_RANGE_UNSPECIFIED", "PAST_24_HOURS", "PAST_WEEK", "PAST_MONTH", "PAST_YEAR", "PAST_3_DAYS" ]
enum_SearchJobsRequestJobView := [ "JOB_VIEW_UNSPECIFIED", "SMALL", "MINIMAL", "FULL" ]
enum_SearchJobsRequestMode := [ "SEARCH_MODE_UNSPECIFIED", "JOB_SEARCH", "FEATURED_JOB_SEARCH", "EMAIL_ALERT_SEARCH" ]
enum_SearchJobsRequestOrderBy := [ "SORT_BY_UNSPECIFIED", "RELEVANCE_DESC", "PUBLISHED_DATE_DESC", "UPDATED_DATE_DESC", "TITLE", "TITLE_DESC", "ANNUALIZED_BASE_COMPENSATION", "ANNUALIZED_TOTAL_COMPENSATION", "ANNUALIZED_BASE_COMPENSATION_DESC", "ANNUALIZED_TOTAL_COMPENSATION_DESC" ]
enum_SearchJobsRequestSortBy := [ "SORT_BY_UNSPECIFIED", "RELEVANCE_DESC", "PUBLISHED_DATE_DESC", "UPDATED_DATE_DESC", "TITLE", "TITLE_DESC", "ANNUALIZED_BASE_COMPENSATION", "ANNUALIZED_TOTAL_COMPENSATION", "ANNUALIZED_BASE_COMPENSATION_DESC", "ANNUALIZED_TOTAL_COMPENSATION_DESC" ]

valid {
    input.Body.disableRelevanceThresholding == BOOLEAN
    input.Body.enableBroadening == BOOLEAN
    input.Body.enablePreciseResultSize == BOOLEAN
    input.Body.filters.categories[_] == enum_JobFiltersCategories[_]
    input.Body.filters.commuteFilter.allowNonStreetLevelAddress == BOOLEAN
    input.Body.filters.commuteFilter.departureHourLocal == INTEGER
    input.Body.filters.commuteFilter.method == enum_CommutePreferenceMethod[_]
    input.Body.filters.commuteFilter.roadTraffic == enum_CommutePreferenceRoadTraffic[_]
    input.Body.filters.commuteFilter.startLocation.latitude == NUMBER
    input.Body.filters.commuteFilter.startLocation.longitude == NUMBER
    input.Body.filters.commuteFilter.travelTime == STRING
    input.Body.filters.companyNames[_] == STRING
    input.Body.filters.companyTitles[_] == STRING
    input.Body.filters.compensationFilter.includeJobsWithUnspecifiedCompensationRange == BOOLEAN
    input.Body.filters.compensationFilter.range.max.currencyCode == STRING
    input.Body.filters.compensationFilter.range.max.nanos == INTEGER
    input.Body.filters.compensationFilter.range.max.units == STRING
    input.Body.filters.compensationFilter.range.min.currencyCode == STRING
    input.Body.filters.compensationFilter.range.min.nanos == INTEGER
    input.Body.filters.compensationFilter.range.min.units == STRING
    input.Body.filters.compensationFilter.type == enum_CompensationFilterType[_]
    input.Body.filters.compensationFilter.units[_] == enum_CompensationFilterUnits[_]
    input.Body.filters.customAttributeFilter == STRING
    input.Body.filters.customFieldFilters.STRING.queries[_] == STRING
    input.Body.filters.customFieldFilters.STRING.type == enum_CustomFieldFilterType[_]
    input.Body.filters.disableSpellCheck == BOOLEAN
    input.Body.filters.employmentTypes[_] == enum_JobFiltersEmploymentTypes[_]
    input.Body.filters.extendedCompensationFilter.compensationRange.max.micros == INTEGER
    input.Body.filters.extendedCompensationFilter.compensationRange.max.units == STRING
    input.Body.filters.extendedCompensationFilter.compensationRange.min.micros == INTEGER
    input.Body.filters.extendedCompensationFilter.compensationRange.min.units == STRING
    input.Body.filters.extendedCompensationFilter.compensationUnits[_] == enum_ExtendedCompensationFilterCompensationUnits[_]
    input.Body.filters.extendedCompensationFilter.currency == STRING
    input.Body.filters.extendedCompensationFilter.includeJobWithUnspecifiedCompensationRange == BOOLEAN
    input.Body.filters.extendedCompensationFilter.type == enum_ExtendedCompensationFilterType[_]
    input.Body.filters.languageCodes[_] == STRING
    input.Body.filters.locationFilters[_].distanceInMiles == NUMBER
    input.Body.filters.locationFilters[_].isTelecommute == BOOLEAN
    input.Body.filters.locationFilters[_].latLng.latitude == NUMBER
    input.Body.filters.locationFilters[_].latLng.longitude == NUMBER
    input.Body.filters.locationFilters[_].name == STRING
    input.Body.filters.locationFilters[_].regionCode == STRING
    input.Body.filters.publishDateRange == enum_JobFiltersPublishDateRange[_]
    input.Body.filters.query == STRING
    input.Body.filters.tenantJobOnly == BOOLEAN
    input.Body.histogramFacets.compensationHistogramFacets[_].bucketingOption.bucketBounds[_] == NUMBER
    input.Body.histogramFacets.compensationHistogramFacets[_].bucketingOption.requiresMinMax == BOOLEAN
    input.Body.histogramFacets.compensationHistogramFacets[_].type == enum_CompensationHistogramRequestType[_]
    input.Body.histogramFacets.customAttributeHistogramFacets[_].key == STRING
    input.Body.histogramFacets.customAttributeHistogramFacets[_].longValueHistogramBucketingOption.bucketBounds[_] == NUMBER
    input.Body.histogramFacets.customAttributeHistogramFacets[_].longValueHistogramBucketingOption.requiresMinMax == BOOLEAN
    input.Body.histogramFacets.customAttributeHistogramFacets[_].stringValueHistogram == BOOLEAN
    input.Body.histogramFacets.simpleHistogramFacets[_] == enum_HistogramFacetsSimpleHistogramFacets[_]
    input.Body.jobView == enum_SearchJobsRequestJobView[_]
    input.Body.mode == enum_SearchJobsRequestMode[_]
    input.Body.offset == INTEGER
    input.Body.orderBy == enum_SearchJobsRequestOrderBy[_]
    input.Body.pageSize == INTEGER
    input.Body.pageToken == STRING
    input.Body.query.categories[_] == enum_JobQueryCategories[_]
    input.Body.query.commuteFilter.allowNonStreetLevelAddress == BOOLEAN
    input.Body.query.commuteFilter.departureHourLocal == INTEGER
    input.Body.query.commuteFilter.method == enum_CommutePreferenceMethod[_]
    input.Body.query.commuteFilter.roadTraffic == enum_CommutePreferenceRoadTraffic[_]
    input.Body.query.commuteFilter.startLocation.latitude == NUMBER
    input.Body.query.commuteFilter.startLocation.longitude == NUMBER
    input.Body.query.commuteFilter.travelTime == STRING
    input.Body.query.companyDisplayNames[_] == STRING
    input.Body.query.companyNames[_] == STRING
    input.Body.query.compensationFilter.includeJobsWithUnspecifiedCompensationRange == BOOLEAN
    input.Body.query.compensationFilter.range.max.currencyCode == STRING
    input.Body.query.compensationFilter.range.max.nanos == INTEGER
    input.Body.query.compensationFilter.range.max.units == STRING
    input.Body.query.compensationFilter.range.min.currencyCode == STRING
    input.Body.query.compensationFilter.range.min.nanos == INTEGER
    input.Body.query.compensationFilter.range.min.units == STRING
    input.Body.query.compensationFilter.type == enum_CompensationFilterType[_]
    input.Body.query.compensationFilter.units[_] == enum_CompensationFilterUnits[_]
    input.Body.query.customAttributeFilter == STRING
    input.Body.query.disableSpellCheck == BOOLEAN
    input.Body.query.employmentTypes[_] == enum_JobQueryEmploymentTypes[_]
    input.Body.query.languageCodes[_] == STRING
    input.Body.query.locationFilters[_].distanceInMiles == NUMBER
    input.Body.query.locationFilters[_].isTelecommute == BOOLEAN
    input.Body.query.locationFilters[_].latLng.latitude == NUMBER
    input.Body.query.locationFilters[_].latLng.longitude == NUMBER
    input.Body.query.locationFilters[_].name == STRING
    input.Body.query.locationFilters[_].regionCode == STRING
    input.Body.query.publishDateRange == enum_JobQueryPublishDateRange[_]
    input.Body.query.query == STRING
    input.Body.requestMetadata.deviceInfo.deviceType == enum_DeviceInfoDeviceType[_]
    input.Body.requestMetadata.deviceInfo.id == STRING
    input.Body.requestMetadata.domain == STRING
    input.Body.requestMetadata.sessionId == STRING
    input.Body.requestMetadata.userId == STRING
    input.Body.sortBy == enum_SearchJobsRequestSortBy[_]
    input.ProviderMetadata.Region == STRING
}

jobs.projects.clientEvents.create

enum_JobEventType := [ "JOB_EVENT_TYPE_UNSPECIFIED", "IMPRESSION", "VIEW", "VIEW_REDIRECT", "APPLICATION_START", "APPLICATION_FINISH", "APPLICATION_QUICK_SUBMISSION", "APPLICATION_REDIRECT", "APPLICATION_START_FROM_SEARCH", "APPLICATION_REDIRECT_FROM_SEARCH", "APPLICATION_COMPANY_SUBMIT", "BOOKMARK", "NOTIFICATION", "HIRED", "SENT_CV", "INTERVIEW_GRANTED", "NOT_INTERESTED" ]

valid {
    input.Body.clientEvent.createTime == STRING
    input.Body.clientEvent.eventId == STRING
    input.Body.clientEvent.extraInfo.STRING == STRING
    input.Body.clientEvent.jobEvent.jobs[_] == STRING
    input.Body.clientEvent.jobEvent.type == enum_JobEventType[_]
    input.Body.clientEvent.parentEventId == STRING
    input.Body.clientEvent.requestId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.projects.companies.create

enum_CompanySize := [ "COMPANY_SIZE_UNSPECIFIED", "MINI", "SMALL", "SMEDIUM", "MEDIUM", "BIG", "BIGGER", "GIANT" ]
enum_LocationLocationType := [ "LOCATION_TYPE_UNSPECIFIED", "COUNTRY", "ADMINISTRATIVE_AREA", "SUB_ADMINISTRATIVE_AREA", "LOCALITY", "POSTAL_CODE", "SUB_LOCALITY", "SUB_LOCALITY_1", "SUB_LOCALITY_2", "NEIGHBORHOOD", "STREET_ADDRESS" ]

valid {
    input.Body.company.careerSiteUri == STRING
    input.Body.company.derivedInfo.headquartersLocation.latLng.latitude == NUMBER
    input.Body.company.derivedInfo.headquartersLocation.latLng.longitude == NUMBER
    input.Body.company.derivedInfo.headquartersLocation.locationType == enum_LocationLocationType[_]
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.addressLines[_] == STRING
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.administrativeArea == STRING
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.languageCode == STRING
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.locality == STRING
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.organization == STRING
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.postalCode == STRING
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.recipients[_] == STRING
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.regionCode == STRING
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.revision == INTEGER
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.sortingCode == STRING
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.sublocality == STRING
    input.Body.company.derivedInfo.headquartersLocation.radiusInMiles == NUMBER
    input.Body.company.displayName == STRING
    input.Body.company.eeoText == STRING
    input.Body.company.externalId == STRING
    input.Body.company.headquartersAddress == STRING
    input.Body.company.hiringAgency == BOOLEAN
    input.Body.company.imageUri == STRING
    input.Body.company.keywordSearchableJobCustomAttributes[_] == STRING
    input.Body.company.name == STRING
    input.Body.company.size == enum_CompanySize[_]
    input.Body.company.suspended == BOOLEAN
    input.Body.company.websiteUri == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.projects.companies.delete

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

jobs.projects.companies.get

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

jobs.projects.companies.list

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

jobs.projects.companies.patch

enum_CompanySize := [ "COMPANY_SIZE_UNSPECIFIED", "MINI", "SMALL", "SMEDIUM", "MEDIUM", "BIG", "BIGGER", "GIANT" ]
enum_LocationLocationType := [ "LOCATION_TYPE_UNSPECIFIED", "COUNTRY", "ADMINISTRATIVE_AREA", "SUB_ADMINISTRATIVE_AREA", "LOCALITY", "POSTAL_CODE", "SUB_LOCALITY", "SUB_LOCALITY_1", "SUB_LOCALITY_2", "NEIGHBORHOOD", "STREET_ADDRESS" ]

valid {
    input.Body.company.careerSiteUri == STRING
    input.Body.company.derivedInfo.headquartersLocation.latLng.latitude == NUMBER
    input.Body.company.derivedInfo.headquartersLocation.latLng.longitude == NUMBER
    input.Body.company.derivedInfo.headquartersLocation.locationType == enum_LocationLocationType[_]
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.addressLines[_] == STRING
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.administrativeArea == STRING
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.languageCode == STRING
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.locality == STRING
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.organization == STRING
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.postalCode == STRING
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.recipients[_] == STRING
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.regionCode == STRING
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.revision == INTEGER
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.sortingCode == STRING
    input.Body.company.derivedInfo.headquartersLocation.postalAddress.sublocality == STRING
    input.Body.company.derivedInfo.headquartersLocation.radiusInMiles == NUMBER
    input.Body.company.displayName == STRING
    input.Body.company.eeoText == STRING
    input.Body.company.externalId == STRING
    input.Body.company.headquartersAddress == STRING
    input.Body.company.hiringAgency == BOOLEAN
    input.Body.company.imageUri == STRING
    input.Body.company.keywordSearchableJobCustomAttributes[_] == STRING
    input.Body.company.name == STRING
    input.Body.company.size == enum_CompanySize[_]
    input.Body.company.suspended == BOOLEAN
    input.Body.company.websiteUri == STRING
    input.Body.updateMask == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.projects.complete

enum_ScopeParameter := [ "COMPLETION_SCOPE_UNSPECIFIED", "TENANT", "PUBLIC" ]
enum_TypeParameter := [ "COMPLETION_TYPE_UNSPECIFIED", "JOB_TITLE", "COMPANY_NAME", "COMBINED" ]

valid {
    input.ReqMap.name == STRING
    input.Qs.companyName == STRING
    input.Qs.languageCode == STRING
    input.Qs.languageCodes == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.query == STRING
    input.Qs.scope == enum_ScopeParameter[_]
    input.Qs.type == enum_TypeParameter[_]
    input.ProviderMetadata.Region == STRING
}

jobs.projects.jobs.batchDelete

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

jobs.projects.jobs.create

enum_CompensationEntryType := [ "COMPENSATION_TYPE_UNSPECIFIED", "BASE", "BONUS", "SIGNING_BONUS", "EQUITY", "PROFIT_SHARING", "COMMISSIONS", "TIPS", "OTHER_COMPENSATION_TYPE" ]
enum_CompensationEntryUnit := [ "COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_JobDegreeTypes := [ "DEGREE_TYPE_UNSPECIFIED", "PRIMARY_EDUCATION", "LOWER_SECONDARY_EDUCATION", "UPPER_SECONDARY_EDUCATION", "ADULT_REMEDIAL_EDUCATION", "ASSOCIATES_OR_EQUIVALENT", "BACHELORS_OR_EQUIVALENT", "MASTERS_OR_EQUIVALENT", "DOCTORAL_OR_EQUIVALENT" ]
enum_JobDerivedInfoJobCategories := [ "JOB_CATEGORY_UNSPECIFIED", "ACCOUNTING_AND_FINANCE", "ADMINISTRATIVE_AND_OFFICE", "ADVERTISING_AND_MARKETING", "ANIMAL_CARE", "ART_FASHION_AND_DESIGN", "BUSINESS_OPERATIONS", "CLEANING_AND_FACILITIES", "COMPUTER_AND_IT", "CONSTRUCTION", "CUSTOMER_SERVICE", "EDUCATION", "ENTERTAINMENT_AND_TRAVEL", "FARMING_AND_OUTDOORS", "HEALTHCARE", "HUMAN_RESOURCES", "INSTALLATION_MAINTENANCE_AND_REPAIR", "LEGAL", "MANAGEMENT", "MANUFACTURING_AND_WAREHOUSE", "MEDIA_COMMUNICATIONS_AND_WRITING", "OIL_GAS_AND_MINING", "PERSONAL_CARE_AND_SERVICES", "PROTECTIVE_SERVICES", "REAL_ESTATE", "RESTAURANT_AND_HOSPITALITY", "SALES_AND_RETAIL", "SCIENCE_AND_ENGINEERING", "SOCIAL_SERVICES_AND_NON_PROFIT", "SPORTS_FITNESS_AND_RECREATION", "TRANSPORTATION_AND_LOGISTICS" ]
enum_JobEmploymentTypes := [ "EMPLOYMENT_TYPE_UNSPECIFIED", "FULL_TIME", "PART_TIME", "CONTRACTOR", "CONTRACT_TO_HIRE", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "FLY_IN_FLY_OUT", "OTHER_EMPLOYMENT_TYPE" ]
enum_JobJobBenefits := [ "JOB_BENEFIT_UNSPECIFIED", "CHILD_CARE", "DENTAL", "DOMESTIC_PARTNER", "FLEXIBLE_HOURS", "MEDICAL", "LIFE_INSURANCE", "PARENTAL_LEAVE", "RETIREMENT_PLAN", "SICK_DAYS", "VACATION", "VISION" ]
enum_JobJobLevel := [ "JOB_LEVEL_UNSPECIFIED", "ENTRY_LEVEL", "EXPERIENCED", "MANAGER", "DIRECTOR", "EXECUTIVE" ]
enum_JobPostingRegion := [ "POSTING_REGION_UNSPECIFIED", "ADMINISTRATIVE_AREA", "NATION", "TELECOMMUTE" ]
enum_JobVisibility := [ "VISIBILITY_UNSPECIFIED", "ACCOUNT_ONLY", "SHARED_WITH_GOOGLE", "SHARED_WITH_PUBLIC" ]
enum_LocationLocationType := [ "LOCATION_TYPE_UNSPECIFIED", "COUNTRY", "ADMINISTRATIVE_AREA", "SUB_ADMINISTRATIVE_AREA", "LOCALITY", "POSTAL_CODE", "SUB_LOCALITY", "SUB_LOCALITY_1", "SUB_LOCALITY_2", "NEIGHBORHOOD", "STREET_ADDRESS" ]
enum_ProcessingOptionsHtmlSanitization := [ "HTML_SANITIZATION_UNSPECIFIED", "HTML_SANITIZATION_DISABLED", "SIMPLE_FORMATTING_ONLY" ]

valid {
    input.Body.job.addresses[_] == STRING
    input.Body.job.applicationInfo.emails[_] == STRING
    input.Body.job.applicationInfo.instruction == STRING
    input.Body.job.applicationInfo.uris[_] == STRING
    input.Body.job.companyDisplayName == STRING
    input.Body.job.companyName == STRING
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.maxCompensation.currencyCode == STRING
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.maxCompensation.nanos == INTEGER
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.maxCompensation.units == STRING
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.minCompensation.currencyCode == STRING
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.minCompensation.nanos == INTEGER
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.minCompensation.units == STRING
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.maxCompensation.currencyCode == STRING
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.maxCompensation.nanos == INTEGER
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.maxCompensation.units == STRING
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.minCompensation.currencyCode == STRING
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.minCompensation.nanos == INTEGER
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.minCompensation.units == STRING
    input.Body.job.compensationInfo.entries[_].amount.currencyCode == STRING
    input.Body.job.compensationInfo.entries[_].amount.nanos == INTEGER
    input.Body.job.compensationInfo.entries[_].amount.units == STRING
    input.Body.job.compensationInfo.entries[_].description == STRING
    input.Body.job.compensationInfo.entries[_].expectedUnitsPerYear == NUMBER
    input.Body.job.compensationInfo.entries[_].range.maxCompensation.currencyCode == STRING
    input.Body.job.compensationInfo.entries[_].range.maxCompensation.nanos == INTEGER
    input.Body.job.compensationInfo.entries[_].range.maxCompensation.units == STRING
    input.Body.job.compensationInfo.entries[_].range.minCompensation.currencyCode == STRING
    input.Body.job.compensationInfo.entries[_].range.minCompensation.nanos == INTEGER
    input.Body.job.compensationInfo.entries[_].range.minCompensation.units == STRING
    input.Body.job.compensationInfo.entries[_].type == enum_CompensationEntryType[_]
    input.Body.job.compensationInfo.entries[_].unit == enum_CompensationEntryUnit[_]
    input.Body.job.customAttributes.STRING.filterable == BOOLEAN
    input.Body.job.customAttributes.STRING.longValues[_] == STRING
    input.Body.job.customAttributes.STRING.stringValues[_] == STRING
    input.Body.job.degreeTypes[_] == enum_JobDegreeTypes[_]
    input.Body.job.department == STRING
    input.Body.job.derivedInfo.jobCategories[_] == enum_JobDerivedInfoJobCategories[_]
    input.Body.job.derivedInfo.locations[_].latLng.latitude == NUMBER
    input.Body.job.derivedInfo.locations[_].latLng.longitude == NUMBER
    input.Body.job.derivedInfo.locations[_].locationType == enum_LocationLocationType[_]
    input.Body.job.derivedInfo.locations[_].postalAddress.addressLines[_] == STRING
    input.Body.job.derivedInfo.locations[_].postalAddress.administrativeArea == STRING
    input.Body.job.derivedInfo.locations[_].postalAddress.languageCode == STRING
    input.Body.job.derivedInfo.locations[_].postalAddress.locality == STRING
    input.Body.job.derivedInfo.locations[_].postalAddress.organization == STRING
    input.Body.job.derivedInfo.locations[_].postalAddress.postalCode == STRING
    input.Body.job.derivedInfo.locations[_].postalAddress.recipients[_] == STRING
    input.Body.job.derivedInfo.locations[_].postalAddress.regionCode == STRING
    input.Body.job.derivedInfo.locations[_].postalAddress.revision == INTEGER
    input.Body.job.derivedInfo.locations[_].postalAddress.sortingCode == STRING
    input.Body.job.derivedInfo.locations[_].postalAddress.sublocality == STRING
    input.Body.job.derivedInfo.locations[_].radiusInMiles == NUMBER
    input.Body.job.description == STRING
    input.Body.job.employmentTypes[_] == enum_JobEmploymentTypes[_]
    input.Body.job.incentives == STRING
    input.Body.job.jobBenefits[_] == enum_JobJobBenefits[_]
    input.Body.job.jobEndTime == STRING
    input.Body.job.jobLevel == enum_JobJobLevel[_]
    input.Body.job.jobStartTime == STRING
    input.Body.job.languageCode == STRING
    input.Body.job.name == STRING
    input.Body.job.postingCreateTime == STRING
    input.Body.job.postingExpireTime == STRING
    input.Body.job.postingPublishTime == STRING
    input.Body.job.postingRegion == enum_JobPostingRegion[_]
    input.Body.job.postingUpdateTime == STRING
    input.Body.job.processingOptions.disableStreetAddressResolution == BOOLEAN
    input.Body.job.processingOptions.htmlSanitization == enum_ProcessingOptionsHtmlSanitization[_]
    input.Body.job.promotionValue == INTEGER
    input.Body.job.qualifications == STRING
    input.Body.job.requisitionId == STRING
    input.Body.job.responsibilities == STRING
    input.Body.job.title == STRING
    input.Body.job.visibility == enum_JobVisibility[_]
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.projects.jobs.delete

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

jobs.projects.jobs.get

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

jobs.projects.jobs.list

enum_JobViewParameter := [ "JOB_VIEW_UNSPECIFIED", "JOB_VIEW_ID_ONLY", "JOB_VIEW_MINIMAL", "JOB_VIEW_SMALL", "JOB_VIEW_FULL" ]

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.jobView == enum_JobViewParameter[_]
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.projects.jobs.patch

enum_CompensationEntryType := [ "COMPENSATION_TYPE_UNSPECIFIED", "BASE", "BONUS", "SIGNING_BONUS", "EQUITY", "PROFIT_SHARING", "COMMISSIONS", "TIPS", "OTHER_COMPENSATION_TYPE" ]
enum_CompensationEntryUnit := [ "COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_JobDegreeTypes := [ "DEGREE_TYPE_UNSPECIFIED", "PRIMARY_EDUCATION", "LOWER_SECONDARY_EDUCATION", "UPPER_SECONDARY_EDUCATION", "ADULT_REMEDIAL_EDUCATION", "ASSOCIATES_OR_EQUIVALENT", "BACHELORS_OR_EQUIVALENT", "MASTERS_OR_EQUIVALENT", "DOCTORAL_OR_EQUIVALENT" ]
enum_JobDerivedInfoJobCategories := [ "JOB_CATEGORY_UNSPECIFIED", "ACCOUNTING_AND_FINANCE", "ADMINISTRATIVE_AND_OFFICE", "ADVERTISING_AND_MARKETING", "ANIMAL_CARE", "ART_FASHION_AND_DESIGN", "BUSINESS_OPERATIONS", "CLEANING_AND_FACILITIES", "COMPUTER_AND_IT", "CONSTRUCTION", "CUSTOMER_SERVICE", "EDUCATION", "ENTERTAINMENT_AND_TRAVEL", "FARMING_AND_OUTDOORS", "HEALTHCARE", "HUMAN_RESOURCES", "INSTALLATION_MAINTENANCE_AND_REPAIR", "LEGAL", "MANAGEMENT", "MANUFACTURING_AND_WAREHOUSE", "MEDIA_COMMUNICATIONS_AND_WRITING", "OIL_GAS_AND_MINING", "PERSONAL_CARE_AND_SERVICES", "PROTECTIVE_SERVICES", "REAL_ESTATE", "RESTAURANT_AND_HOSPITALITY", "SALES_AND_RETAIL", "SCIENCE_AND_ENGINEERING", "SOCIAL_SERVICES_AND_NON_PROFIT", "SPORTS_FITNESS_AND_RECREATION", "TRANSPORTATION_AND_LOGISTICS" ]
enum_JobEmploymentTypes := [ "EMPLOYMENT_TYPE_UNSPECIFIED", "FULL_TIME", "PART_TIME", "CONTRACTOR", "CONTRACT_TO_HIRE", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "FLY_IN_FLY_OUT", "OTHER_EMPLOYMENT_TYPE" ]
enum_JobJobBenefits := [ "JOB_BENEFIT_UNSPECIFIED", "CHILD_CARE", "DENTAL", "DOMESTIC_PARTNER", "FLEXIBLE_HOURS", "MEDICAL", "LIFE_INSURANCE", "PARENTAL_LEAVE", "RETIREMENT_PLAN", "SICK_DAYS", "VACATION", "VISION" ]
enum_JobJobLevel := [ "JOB_LEVEL_UNSPECIFIED", "ENTRY_LEVEL", "EXPERIENCED", "MANAGER", "DIRECTOR", "EXECUTIVE" ]
enum_JobPostingRegion := [ "POSTING_REGION_UNSPECIFIED", "ADMINISTRATIVE_AREA", "NATION", "TELECOMMUTE" ]
enum_JobVisibility := [ "VISIBILITY_UNSPECIFIED", "ACCOUNT_ONLY", "SHARED_WITH_GOOGLE", "SHARED_WITH_PUBLIC" ]
enum_LocationLocationType := [ "LOCATION_TYPE_UNSPECIFIED", "COUNTRY", "ADMINISTRATIVE_AREA", "SUB_ADMINISTRATIVE_AREA", "LOCALITY", "POSTAL_CODE", "SUB_LOCALITY", "SUB_LOCALITY_1", "SUB_LOCALITY_2", "NEIGHBORHOOD", "STREET_ADDRESS" ]
enum_ProcessingOptionsHtmlSanitization := [ "HTML_SANITIZATION_UNSPECIFIED", "HTML_SANITIZATION_DISABLED", "SIMPLE_FORMATTING_ONLY" ]

valid {
    input.Body.job.addresses[_] == STRING
    input.Body.job.applicationInfo.emails[_] == STRING
    input.Body.job.applicationInfo.instruction == STRING
    input.Body.job.applicationInfo.uris[_] == STRING
    input.Body.job.companyDisplayName == STRING
    input.Body.job.companyName == STRING
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.maxCompensation.currencyCode == STRING
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.maxCompensation.nanos == INTEGER
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.maxCompensation.units == STRING
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.minCompensation.currencyCode == STRING
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.minCompensation.nanos == INTEGER
    input.Body.job.compensationInfo.annualizedBaseCompensationRange.minCompensation.units == STRING
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.maxCompensation.currencyCode == STRING
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.maxCompensation.nanos == INTEGER
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.maxCompensation.units == STRING
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.minCompensation.currencyCode == STRING
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.minCompensation.nanos == INTEGER
    input.Body.job.compensationInfo.annualizedTotalCompensationRange.minCompensation.units == STRING
    input.Body.job.compensationInfo.entries[_].amount.currencyCode == STRING
    input.Body.job.compensationInfo.entries[_].amount.nanos == INTEGER
    input.Body.job.compensationInfo.entries[_].amount.units == STRING
    input.Body.job.compensationInfo.entries[_].description == STRING
    input.Body.job.compensationInfo.entries[_].expectedUnitsPerYear == NUMBER
    input.Body.job.compensationInfo.entries[_].range.maxCompensation.currencyCode == STRING
    input.Body.job.compensationInfo.entries[_].range.maxCompensation.nanos == INTEGER
    input.Body.job.compensationInfo.entries[_].range.maxCompensation.units == STRING
    input.Body.job.compensationInfo.entries[_].range.minCompensation.currencyCode == STRING
    input.Body.job.compensationInfo.entries[_].range.minCompensation.nanos == INTEGER
    input.Body.job.compensationInfo.entries[_].range.minCompensation.units == STRING
    input.Body.job.compensationInfo.entries[_].type == enum_CompensationEntryType[_]
    input.Body.job.compensationInfo.entries[_].unit == enum_CompensationEntryUnit[_]
    input.Body.job.customAttributes.STRING.filterable == BOOLEAN
    input.Body.job.customAttributes.STRING.longValues[_] == STRING
    input.Body.job.customAttributes.STRING.stringValues[_] == STRING
    input.Body.job.degreeTypes[_] == enum_JobDegreeTypes[_]
    input.Body.job.department == STRING
    input.Body.job.derivedInfo.jobCategories[_] == enum_JobDerivedInfoJobCategories[_]
    input.Body.job.derivedInfo.locations[_].latLng.latitude == NUMBER
    input.Body.job.derivedInfo.locations[_].latLng.longitude == NUMBER
    input.Body.job.derivedInfo.locations[_].locationType == enum_LocationLocationType[_]
    input.Body.job.derivedInfo.locations[_].postalAddress.addressLines[_] == STRING
    input.Body.job.derivedInfo.locations[_].postalAddress.administrativeArea == STRING
    input.Body.job.derivedInfo.locations[_].postalAddress.languageCode == STRING
    input.Body.job.derivedInfo.locations[_].postalAddress.locality == STRING
    input.Body.job.derivedInfo.locations[_].postalAddress.organization == STRING
    input.Body.job.derivedInfo.locations[_].postalAddress.postalCode == STRING
    input.Body.job.derivedInfo.locations[_].postalAddress.recipients[_] == STRING
    input.Body.job.derivedInfo.locations[_].postalAddress.regionCode == STRING
    input.Body.job.derivedInfo.locations[_].postalAddress.revision == INTEGER
    input.Body.job.derivedInfo.locations[_].postalAddress.sortingCode == STRING
    input.Body.job.derivedInfo.locations[_].postalAddress.sublocality == STRING
    input.Body.job.derivedInfo.locations[_].radiusInMiles == NUMBER
    input.Body.job.description == STRING
    input.Body.job.employmentTypes[_] == enum_JobEmploymentTypes[_]
    input.Body.job.incentives == STRING
    input.Body.job.jobBenefits[_] == enum_JobJobBenefits[_]
    input.Body.job.jobEndTime == STRING
    input.Body.job.jobLevel == enum_JobJobLevel[_]
    input.Body.job.jobStartTime == STRING
    input.Body.job.languageCode == STRING
    input.Body.job.name == STRING
    input.Body.job.postingCreateTime == STRING
    input.Body.job.postingExpireTime == STRING
    input.Body.job.postingPublishTime == STRING
    input.Body.job.postingRegion == enum_JobPostingRegion[_]
    input.Body.job.postingUpdateTime == STRING
    input.Body.job.processingOptions.disableStreetAddressResolution == BOOLEAN
    input.Body.job.processingOptions.htmlSanitization == enum_ProcessingOptionsHtmlSanitization[_]
    input.Body.job.promotionValue == INTEGER
    input.Body.job.qualifications == STRING
    input.Body.job.requisitionId == STRING
    input.Body.job.responsibilities == STRING
    input.Body.job.title == STRING
    input.Body.job.visibility == enum_JobVisibility[_]
    input.Body.updateMask == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.projects.jobs.search

enum_CommuteFilterCommuteMethod := [ "COMMUTE_METHOD_UNSPECIFIED", "DRIVING", "TRANSIT" ]
enum_CommuteFilterRoadTraffic := [ "ROAD_TRAFFIC_UNSPECIFIED", "TRAFFIC_FREE", "BUSY_HOUR" ]
enum_CompensationFilterType := [ "FILTER_TYPE_UNSPECIFIED", "UNIT_ONLY", "UNIT_AND_AMOUNT", "ANNUALIZED_BASE_AMOUNT", "ANNUALIZED_TOTAL_AMOUNT" ]
enum_CompensationFilterUnits := [ "COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_CompensationHistogramRequestType := [ "COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED", "BASE", "ANNUALIZED_BASE", "ANNUALIZED_TOTAL" ]
enum_DeviceInfoDeviceType := [ "DEVICE_TYPE_UNSPECIFIED", "WEB", "MOBILE_WEB", "ANDROID", "IOS", "BOT", "OTHER" ]
enum_HistogramFacetsSimpleHistogramFacets := [ "SEARCH_TYPE_UNSPECIFIED", "COMPANY_ID", "EMPLOYMENT_TYPE", "COMPANY_SIZE", "DATE_PUBLISHED", "EDUCATION_LEVEL", "EXPERIENCE_LEVEL", "ADMIN_1", "COUNTRY", "CITY", "LOCALE", "LANGUAGE", "CATEGORY", "CITY_COORDINATE", "ADMIN_1_COUNTRY", "COMPANY_DISPLAY_NAME", "BASE_COMPENSATION_UNIT" ]
enum_JobQueryEmploymentTypes := [ "EMPLOYMENT_TYPE_UNSPECIFIED", "FULL_TIME", "PART_TIME", "CONTRACTOR", "CONTRACT_TO_HIRE", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "FLY_IN_FLY_OUT", "OTHER_EMPLOYMENT_TYPE" ]
enum_JobQueryJobCategories := [ "JOB_CATEGORY_UNSPECIFIED", "ACCOUNTING_AND_FINANCE", "ADMINISTRATIVE_AND_OFFICE", "ADVERTISING_AND_MARKETING", "ANIMAL_CARE", "ART_FASHION_AND_DESIGN", "BUSINESS_OPERATIONS", "CLEANING_AND_FACILITIES", "COMPUTER_AND_IT", "CONSTRUCTION", "CUSTOMER_SERVICE", "EDUCATION", "ENTERTAINMENT_AND_TRAVEL", "FARMING_AND_OUTDOORS", "HEALTHCARE", "HUMAN_RESOURCES", "INSTALLATION_MAINTENANCE_AND_REPAIR", "LEGAL", "MANAGEMENT", "MANUFACTURING_AND_WAREHOUSE", "MEDIA_COMMUNICATIONS_AND_WRITING", "OIL_GAS_AND_MINING", "PERSONAL_CARE_AND_SERVICES", "PROTECTIVE_SERVICES", "REAL_ESTATE", "RESTAURANT_AND_HOSPITALITY", "SALES_AND_RETAIL", "SCIENCE_AND_ENGINEERING", "SOCIAL_SERVICES_AND_NON_PROFIT", "SPORTS_FITNESS_AND_RECREATION", "TRANSPORTATION_AND_LOGISTICS" ]
enum_LocationFilterTelecommutePreference := [ "TELECOMMUTE_PREFERENCE_UNSPECIFIED", "TELECOMMUTE_EXCLUDED", "TELECOMMUTE_ALLOWED", "TELECOMMUTE_JOBS_EXCLUDED" ]
enum_SearchJobsRequestDiversificationLevel := [ "DIVERSIFICATION_LEVEL_UNSPECIFIED", "DISABLED", "SIMPLE" ]
enum_SearchJobsRequestJobView := [ "JOB_VIEW_UNSPECIFIED", "JOB_VIEW_ID_ONLY", "JOB_VIEW_MINIMAL", "JOB_VIEW_SMALL", "JOB_VIEW_FULL" ]
enum_SearchJobsRequestSearchMode := [ "SEARCH_MODE_UNSPECIFIED", "JOB_SEARCH", "FEATURED_JOB_SEARCH" ]

valid {
    input.Body.disableKeywordMatch == BOOLEAN
    input.Body.diversificationLevel == enum_SearchJobsRequestDiversificationLevel[_]
    input.Body.enableBroadening == BOOLEAN
    input.Body.histogramFacets.compensationHistogramFacets[_].bucketingOption.bucketBounds[_] == NUMBER
    input.Body.histogramFacets.compensationHistogramFacets[_].bucketingOption.requiresMinMax == BOOLEAN
    input.Body.histogramFacets.compensationHistogramFacets[_].type == enum_CompensationHistogramRequestType[_]
    input.Body.histogramFacets.customAttributeHistogramFacets[_].key == STRING
    input.Body.histogramFacets.customAttributeHistogramFacets[_].longValueHistogramBucketingOption.bucketBounds[_] == NUMBER
    input.Body.histogramFacets.customAttributeHistogramFacets[_].longValueHistogramBucketingOption.requiresMinMax == BOOLEAN
    input.Body.histogramFacets.customAttributeHistogramFacets[_].stringValueHistogram == BOOLEAN
    input.Body.histogramFacets.simpleHistogramFacets[_] == enum_HistogramFacetsSimpleHistogramFacets[_]
    input.Body.jobQuery.commuteFilter.allowImpreciseAddresses == BOOLEAN
    input.Body.jobQuery.commuteFilter.commuteMethod == enum_CommuteFilterCommuteMethod[_]
    input.Body.jobQuery.commuteFilter.departureTime.hours == INTEGER
    input.Body.jobQuery.commuteFilter.departureTime.minutes == INTEGER
    input.Body.jobQuery.commuteFilter.departureTime.nanos == INTEGER
    input.Body.jobQuery.commuteFilter.departureTime.seconds == INTEGER
    input.Body.jobQuery.commuteFilter.roadTraffic == enum_CommuteFilterRoadTraffic[_]
    input.Body.jobQuery.commuteFilter.startCoordinates.latitude == NUMBER
    input.Body.jobQuery.commuteFilter.startCoordinates.longitude == NUMBER
    input.Body.jobQuery.commuteFilter.travelDuration == STRING
    input.Body.jobQuery.companyDisplayNames[_] == STRING
    input.Body.jobQuery.companyNames[_] == STRING
    input.Body.jobQuery.compensationFilter.includeJobsWithUnspecifiedCompensationRange == BOOLEAN
    input.Body.jobQuery.compensationFilter.range.maxCompensation.currencyCode == STRING
    input.Body.jobQuery.compensationFilter.range.maxCompensation.nanos == INTEGER
    input.Body.jobQuery.compensationFilter.range.maxCompensation.units == STRING
    input.Body.jobQuery.compensationFilter.range.minCompensation.currencyCode == STRING
    input.Body.jobQuery.compensationFilter.range.minCompensation.nanos == INTEGER
    input.Body.jobQuery.compensationFilter.range.minCompensation.units == STRING
    input.Body.jobQuery.compensationFilter.type == enum_CompensationFilterType[_]
    input.Body.jobQuery.compensationFilter.units[_] == enum_CompensationFilterUnits[_]
    input.Body.jobQuery.customAttributeFilter == STRING
    input.Body.jobQuery.disableSpellCheck == BOOLEAN
    input.Body.jobQuery.employmentTypes[_] == enum_JobQueryEmploymentTypes[_]
    input.Body.jobQuery.jobCategories[_] == enum_JobQueryJobCategories[_]
    input.Body.jobQuery.languageCodes[_] == STRING
    input.Body.jobQuery.locationFilters[_].address == STRING
    input.Body.jobQuery.locationFilters[_].distanceInMiles == NUMBER
    input.Body.jobQuery.locationFilters[_].latLng.latitude == NUMBER
    input.Body.jobQuery.locationFilters[_].latLng.longitude == NUMBER
    input.Body.jobQuery.locationFilters[_].regionCode == STRING
    input.Body.jobQuery.locationFilters[_].telecommutePreference == enum_LocationFilterTelecommutePreference[_]
    input.Body.jobQuery.publishTimeRange.endTime == STRING
    input.Body.jobQuery.publishTimeRange.startTime == STRING
    input.Body.jobQuery.query == STRING
    input.Body.jobQuery.queryLanguageCode == STRING
    input.Body.jobView == enum_SearchJobsRequestJobView[_]
    input.Body.offset == INTEGER
    input.Body.orderBy == STRING
    input.Body.pageSize == INTEGER
    input.Body.pageToken == STRING
    input.Body.requestMetadata.deviceInfo.deviceType == enum_DeviceInfoDeviceType[_]
    input.Body.requestMetadata.deviceInfo.id == STRING
    input.Body.requestMetadata.domain == STRING
    input.Body.requestMetadata.sessionId == STRING
    input.Body.requestMetadata.userId == STRING
    input.Body.requirePreciseResultSize == BOOLEAN
    input.Body.searchMode == enum_SearchJobsRequestSearchMode[_]
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.projects.jobs.searchForAlert

enum_CommuteFilterCommuteMethod := [ "COMMUTE_METHOD_UNSPECIFIED", "DRIVING", "TRANSIT" ]
enum_CommuteFilterRoadTraffic := [ "ROAD_TRAFFIC_UNSPECIFIED", "TRAFFIC_FREE", "BUSY_HOUR" ]
enum_CompensationFilterType := [ "FILTER_TYPE_UNSPECIFIED", "UNIT_ONLY", "UNIT_AND_AMOUNT", "ANNUALIZED_BASE_AMOUNT", "ANNUALIZED_TOTAL_AMOUNT" ]
enum_CompensationFilterUnits := [ "COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_CompensationHistogramRequestType := [ "COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED", "BASE", "ANNUALIZED_BASE", "ANNUALIZED_TOTAL" ]
enum_DeviceInfoDeviceType := [ "DEVICE_TYPE_UNSPECIFIED", "WEB", "MOBILE_WEB", "ANDROID", "IOS", "BOT", "OTHER" ]
enum_HistogramFacetsSimpleHistogramFacets := [ "SEARCH_TYPE_UNSPECIFIED", "COMPANY_ID", "EMPLOYMENT_TYPE", "COMPANY_SIZE", "DATE_PUBLISHED", "EDUCATION_LEVEL", "EXPERIENCE_LEVEL", "ADMIN_1", "COUNTRY", "CITY", "LOCALE", "LANGUAGE", "CATEGORY", "CITY_COORDINATE", "ADMIN_1_COUNTRY", "COMPANY_DISPLAY_NAME", "BASE_COMPENSATION_UNIT" ]
enum_JobQueryEmploymentTypes := [ "EMPLOYMENT_TYPE_UNSPECIFIED", "FULL_TIME", "PART_TIME", "CONTRACTOR", "CONTRACT_TO_HIRE", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "FLY_IN_FLY_OUT", "OTHER_EMPLOYMENT_TYPE" ]
enum_JobQueryJobCategories := [ "JOB_CATEGORY_UNSPECIFIED", "ACCOUNTING_AND_FINANCE", "ADMINISTRATIVE_AND_OFFICE", "ADVERTISING_AND_MARKETING", "ANIMAL_CARE", "ART_FASHION_AND_DESIGN", "BUSINESS_OPERATIONS", "CLEANING_AND_FACILITIES", "COMPUTER_AND_IT", "CONSTRUCTION", "CUSTOMER_SERVICE", "EDUCATION", "ENTERTAINMENT_AND_TRAVEL", "FARMING_AND_OUTDOORS", "HEALTHCARE", "HUMAN_RESOURCES", "INSTALLATION_MAINTENANCE_AND_REPAIR", "LEGAL", "MANAGEMENT", "MANUFACTURING_AND_WAREHOUSE", "MEDIA_COMMUNICATIONS_AND_WRITING", "OIL_GAS_AND_MINING", "PERSONAL_CARE_AND_SERVICES", "PROTECTIVE_SERVICES", "REAL_ESTATE", "RESTAURANT_AND_HOSPITALITY", "SALES_AND_RETAIL", "SCIENCE_AND_ENGINEERING", "SOCIAL_SERVICES_AND_NON_PROFIT", "SPORTS_FITNESS_AND_RECREATION", "TRANSPORTATION_AND_LOGISTICS" ]
enum_LocationFilterTelecommutePreference := [ "TELECOMMUTE_PREFERENCE_UNSPECIFIED", "TELECOMMUTE_EXCLUDED", "TELECOMMUTE_ALLOWED", "TELECOMMUTE_JOBS_EXCLUDED" ]
enum_SearchJobsRequestDiversificationLevel := [ "DIVERSIFICATION_LEVEL_UNSPECIFIED", "DISABLED", "SIMPLE" ]
enum_SearchJobsRequestJobView := [ "JOB_VIEW_UNSPECIFIED", "JOB_VIEW_ID_ONLY", "JOB_VIEW_MINIMAL", "JOB_VIEW_SMALL", "JOB_VIEW_FULL" ]
enum_SearchJobsRequestSearchMode := [ "SEARCH_MODE_UNSPECIFIED", "JOB_SEARCH", "FEATURED_JOB_SEARCH" ]

valid {
    input.Body.disableKeywordMatch == BOOLEAN
    input.Body.diversificationLevel == enum_SearchJobsRequestDiversificationLevel[_]
    input.Body.enableBroadening == BOOLEAN
    input.Body.histogramFacets.compensationHistogramFacets[_].bucketingOption.bucketBounds[_] == NUMBER
    input.Body.histogramFacets.compensationHistogramFacets[_].bucketingOption.requiresMinMax == BOOLEAN
    input.Body.histogramFacets.compensationHistogramFacets[_].type == enum_CompensationHistogramRequestType[_]
    input.Body.histogramFacets.customAttributeHistogramFacets[_].key == STRING
    input.Body.histogramFacets.customAttributeHistogramFacets[_].longValueHistogramBucketingOption.bucketBounds[_] == NUMBER
    input.Body.histogramFacets.customAttributeHistogramFacets[_].longValueHistogramBucketingOption.requiresMinMax == BOOLEAN
    input.Body.histogramFacets.customAttributeHistogramFacets[_].stringValueHistogram == BOOLEAN
    input.Body.histogramFacets.simpleHistogramFacets[_] == enum_HistogramFacetsSimpleHistogramFacets[_]
    input.Body.jobQuery.commuteFilter.allowImpreciseAddresses == BOOLEAN
    input.Body.jobQuery.commuteFilter.commuteMethod == enum_CommuteFilterCommuteMethod[_]
    input.Body.jobQuery.commuteFilter.departureTime.hours == INTEGER
    input.Body.jobQuery.commuteFilter.departureTime.minutes == INTEGER
    input.Body.jobQuery.commuteFilter.departureTime.nanos == INTEGER
    input.Body.jobQuery.commuteFilter.departureTime.seconds == INTEGER
    input.Body.jobQuery.commuteFilter.roadTraffic == enum_CommuteFilterRoadTraffic[_]
    input.Body.jobQuery.commuteFilter.startCoordinates.latitude == NUMBER
    input.Body.jobQuery.commuteFilter.startCoordinates.longitude == NUMBER
    input.Body.jobQuery.commuteFilter.travelDuration == STRING
    input.Body.jobQuery.companyDisplayNames[_] == STRING
    input.Body.jobQuery.companyNames[_] == STRING
    input.Body.jobQuery.compensationFilter.includeJobsWithUnspecifiedCompensationRange == BOOLEAN
    input.Body.jobQuery.compensationFilter.range.maxCompensation.currencyCode == STRING
    input.Body.jobQuery.compensationFilter.range.maxCompensation.nanos == INTEGER
    input.Body.jobQuery.compensationFilter.range.maxCompensation.units == STRING
    input.Body.jobQuery.compensationFilter.range.minCompensation.currencyCode == STRING
    input.Body.jobQuery.compensationFilter.range.minCompensation.nanos == INTEGER
    input.Body.jobQuery.compensationFilter.range.minCompensation.units == STRING
    input.Body.jobQuery.compensationFilter.type == enum_CompensationFilterType[_]
    input.Body.jobQuery.compensationFilter.units[_] == enum_CompensationFilterUnits[_]
    input.Body.jobQuery.customAttributeFilter == STRING
    input.Body.jobQuery.disableSpellCheck == BOOLEAN
    input.Body.jobQuery.employmentTypes[_] == enum_JobQueryEmploymentTypes[_]
    input.Body.jobQuery.jobCategories[_] == enum_JobQueryJobCategories[_]
    input.Body.jobQuery.languageCodes[_] == STRING
    input.Body.jobQuery.locationFilters[_].address == STRING
    input.Body.jobQuery.locationFilters[_].distanceInMiles == NUMBER
    input.Body.jobQuery.locationFilters[_].latLng.latitude == NUMBER
    input.Body.jobQuery.locationFilters[_].latLng.longitude == NUMBER
    input.Body.jobQuery.locationFilters[_].regionCode == STRING
    input.Body.jobQuery.locationFilters[_].telecommutePreference == enum_LocationFilterTelecommutePreference[_]
    input.Body.jobQuery.publishTimeRange.endTime == STRING
    input.Body.jobQuery.publishTimeRange.startTime == STRING
    input.Body.jobQuery.query == STRING
    input.Body.jobQuery.queryLanguageCode == STRING
    input.Body.jobView == enum_SearchJobsRequestJobView[_]
    input.Body.offset == INTEGER
    input.Body.orderBy == STRING
    input.Body.pageSize == INTEGER
    input.Body.pageToken == STRING
    input.Body.requestMetadata.deviceInfo.deviceType == enum_DeviceInfoDeviceType[_]
    input.Body.requestMetadata.deviceInfo.id == STRING
    input.Body.requestMetadata.domain == STRING
    input.Body.requestMetadata.sessionId == STRING
    input.Body.requestMetadata.userId == STRING
    input.Body.requirePreciseResultSize == BOOLEAN
    input.Body.searchMode == enum_SearchJobsRequestSearchMode[_]
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.projects.operations.get

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

jobs.projects.tenants.clientEvents.create

enum_JobEventType := [ "JOB_EVENT_TYPE_UNSPECIFIED", "IMPRESSION", "VIEW", "VIEW_REDIRECT", "APPLICATION_START", "APPLICATION_FINISH", "APPLICATION_QUICK_SUBMISSION", "APPLICATION_REDIRECT", "APPLICATION_START_FROM_SEARCH", "APPLICATION_REDIRECT_FROM_SEARCH", "APPLICATION_COMPANY_SUBMIT", "BOOKMARK", "NOTIFICATION", "HIRED", "SENT_CV", "INTERVIEW_GRANTED" ]

valid {
    input.Body.createTime == STRING
    input.Body.eventId == STRING
    input.Body.eventNotes == STRING
    input.Body.jobEvent.jobs[_] == STRING
    input.Body.jobEvent.type == enum_JobEventType[_]
    input.Body.requestId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.projects.tenants.companies.create

enum_CompanySize := [ "COMPANY_SIZE_UNSPECIFIED", "MINI", "SMALL", "SMEDIUM", "MEDIUM", "BIG", "BIGGER", "GIANT" ]

valid {
    input.Body.careerSiteUri == STRING
    input.Body.displayName == STRING
    input.Body.eeoText == STRING
    input.Body.externalId == STRING
    input.Body.headquartersAddress == STRING
    input.Body.hiringAgency == BOOLEAN
    input.Body.imageUri == STRING
    input.Body.keywordSearchableJobCustomAttributes[_] == STRING
    input.Body.name == STRING
    input.Body.size == enum_CompanySize[_]
    input.Body.websiteUri == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.projects.tenants.companies.delete

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

jobs.projects.tenants.companies.get

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

jobs.projects.tenants.companies.list

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

jobs.projects.tenants.companies.patch

enum_CompanySize := [ "COMPANY_SIZE_UNSPECIFIED", "MINI", "SMALL", "SMEDIUM", "MEDIUM", "BIG", "BIGGER", "GIANT" ]

valid {
    input.Body.careerSiteUri == STRING
    input.Body.displayName == STRING
    input.Body.eeoText == STRING
    input.Body.externalId == STRING
    input.Body.headquartersAddress == STRING
    input.Body.hiringAgency == BOOLEAN
    input.Body.imageUri == STRING
    input.Body.keywordSearchableJobCustomAttributes[_] == STRING
    input.Body.name == STRING
    input.Body.size == enum_CompanySize[_]
    input.Body.websiteUri == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.projects.tenants.completeQuery

enum_ScopeParameter := [ "COMPLETION_SCOPE_UNSPECIFIED", "TENANT", "PUBLIC" ]
enum_TypeParameter := [ "COMPLETION_TYPE_UNSPECIFIED", "JOB_TITLE", "COMPANY_NAME", "COMBINED" ]

valid {
    input.ReqMap.tenant == STRING
    input.Qs.company == STRING
    input.Qs.languageCodes == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.query == STRING
    input.Qs.scope == enum_ScopeParameter[_]
    input.Qs.type == enum_TypeParameter[_]
    input.ProviderMetadata.Region == STRING
}

jobs.projects.tenants.create

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

jobs.projects.tenants.delete

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

jobs.projects.tenants.get

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

jobs.projects.tenants.jobs.batchCreate

enum_CompensationEntryType := [ "COMPENSATION_TYPE_UNSPECIFIED", "BASE", "BONUS", "SIGNING_BONUS", "EQUITY", "PROFIT_SHARING", "COMMISSIONS", "TIPS", "OTHER_COMPENSATION_TYPE" ]
enum_CompensationEntryUnit := [ "COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_JobDegreeTypes := [ "DEGREE_TYPE_UNSPECIFIED", "PRIMARY_EDUCATION", "LOWER_SECONDARY_EDUCATION", "UPPER_SECONDARY_EDUCATION", "ADULT_REMEDIAL_EDUCATION", "ASSOCIATES_OR_EQUIVALENT", "BACHELORS_OR_EQUIVALENT", "MASTERS_OR_EQUIVALENT", "DOCTORAL_OR_EQUIVALENT" ]
enum_JobEmploymentTypes := [ "EMPLOYMENT_TYPE_UNSPECIFIED", "FULL_TIME", "PART_TIME", "CONTRACTOR", "CONTRACT_TO_HIRE", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "FLY_IN_FLY_OUT", "OTHER_EMPLOYMENT_TYPE" ]
enum_JobJobBenefits := [ "JOB_BENEFIT_UNSPECIFIED", "CHILD_CARE", "DENTAL", "DOMESTIC_PARTNER", "FLEXIBLE_HOURS", "MEDICAL", "LIFE_INSURANCE", "PARENTAL_LEAVE", "RETIREMENT_PLAN", "SICK_DAYS", "VACATION", "VISION" ]
enum_JobJobLevel := [ "JOB_LEVEL_UNSPECIFIED", "ENTRY_LEVEL", "EXPERIENCED", "MANAGER", "DIRECTOR", "EXECUTIVE" ]
enum_JobPostingRegion := [ "POSTING_REGION_UNSPECIFIED", "ADMINISTRATIVE_AREA", "NATION", "TELECOMMUTE" ]
enum_JobVisibility := [ "VISIBILITY_UNSPECIFIED", "ACCOUNT_ONLY", "SHARED_WITH_GOOGLE", "SHARED_WITH_PUBLIC" ]
enum_ProcessingOptionsHtmlSanitization := [ "HTML_SANITIZATION_UNSPECIFIED", "HTML_SANITIZATION_DISABLED", "SIMPLE_FORMATTING_ONLY" ]

valid {
    input.Body.jobs[_].addresses[_] == STRING
    input.Body.jobs[_].applicationInfo.emails[_] == STRING
    input.Body.jobs[_].applicationInfo.instruction == STRING
    input.Body.jobs[_].applicationInfo.uris[_] == STRING
    input.Body.jobs[_].company == STRING
    input.Body.jobs[_].compensationInfo.entries[_].amount.currencyCode == STRING
    input.Body.jobs[_].compensationInfo.entries[_].amount.nanos == INTEGER
    input.Body.jobs[_].compensationInfo.entries[_].amount.units == STRING
    input.Body.jobs[_].compensationInfo.entries[_].description == STRING
    input.Body.jobs[_].compensationInfo.entries[_].expectedUnitsPerYear == NUMBER
    input.Body.jobs[_].compensationInfo.entries[_].range.maxCompensation.currencyCode == STRING
    input.Body.jobs[_].compensationInfo.entries[_].range.maxCompensation.nanos == INTEGER
    input.Body.jobs[_].compensationInfo.entries[_].range.maxCompensation.units == STRING
    input.Body.jobs[_].compensationInfo.entries[_].range.minCompensation.currencyCode == STRING
    input.Body.jobs[_].compensationInfo.entries[_].range.minCompensation.nanos == INTEGER
    input.Body.jobs[_].compensationInfo.entries[_].range.minCompensation.units == STRING
    input.Body.jobs[_].compensationInfo.entries[_].type == enum_CompensationEntryType[_]
    input.Body.jobs[_].compensationInfo.entries[_].unit == enum_CompensationEntryUnit[_]
    input.Body.jobs[_].customAttributes.STRING.filterable == BOOLEAN
    input.Body.jobs[_].customAttributes.STRING.keywordSearchable == BOOLEAN
    input.Body.jobs[_].customAttributes.STRING.longValues[_] == STRING
    input.Body.jobs[_].customAttributes.STRING.stringValues[_] == STRING
    input.Body.jobs[_].degreeTypes[_] == enum_JobDegreeTypes[_]
    input.Body.jobs[_].department == STRING
    input.Body.jobs[_].description == STRING
    input.Body.jobs[_].employmentTypes[_] == enum_JobEmploymentTypes[_]
    input.Body.jobs[_].incentives == STRING
    input.Body.jobs[_].jobBenefits[_] == enum_JobJobBenefits[_]
    input.Body.jobs[_].jobEndTime == STRING
    input.Body.jobs[_].jobLevel == enum_JobJobLevel[_]
    input.Body.jobs[_].jobStartTime == STRING
    input.Body.jobs[_].languageCode == STRING
    input.Body.jobs[_].name == STRING
    input.Body.jobs[_].postingExpireTime == STRING
    input.Body.jobs[_].postingPublishTime == STRING
    input.Body.jobs[_].postingRegion == enum_JobPostingRegion[_]
    input.Body.jobs[_].processingOptions.disableStreetAddressResolution == BOOLEAN
    input.Body.jobs[_].processingOptions.htmlSanitization == enum_ProcessingOptionsHtmlSanitization[_]
    input.Body.jobs[_].promotionValue == INTEGER
    input.Body.jobs[_].qualifications == STRING
    input.Body.jobs[_].requisitionId == STRING
    input.Body.jobs[_].responsibilities == STRING
    input.Body.jobs[_].title == STRING
    input.Body.jobs[_].visibility == enum_JobVisibility[_]
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.projects.tenants.jobs.batchDelete

valid {
    input.Body.names[_] == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.projects.tenants.jobs.batchUpdate

enum_CompensationEntryType := [ "COMPENSATION_TYPE_UNSPECIFIED", "BASE", "BONUS", "SIGNING_BONUS", "EQUITY", "PROFIT_SHARING", "COMMISSIONS", "TIPS", "OTHER_COMPENSATION_TYPE" ]
enum_CompensationEntryUnit := [ "COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_JobDegreeTypes := [ "DEGREE_TYPE_UNSPECIFIED", "PRIMARY_EDUCATION", "LOWER_SECONDARY_EDUCATION", "UPPER_SECONDARY_EDUCATION", "ADULT_REMEDIAL_EDUCATION", "ASSOCIATES_OR_EQUIVALENT", "BACHELORS_OR_EQUIVALENT", "MASTERS_OR_EQUIVALENT", "DOCTORAL_OR_EQUIVALENT" ]
enum_JobEmploymentTypes := [ "EMPLOYMENT_TYPE_UNSPECIFIED", "FULL_TIME", "PART_TIME", "CONTRACTOR", "CONTRACT_TO_HIRE", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "FLY_IN_FLY_OUT", "OTHER_EMPLOYMENT_TYPE" ]
enum_JobJobBenefits := [ "JOB_BENEFIT_UNSPECIFIED", "CHILD_CARE", "DENTAL", "DOMESTIC_PARTNER", "FLEXIBLE_HOURS", "MEDICAL", "LIFE_INSURANCE", "PARENTAL_LEAVE", "RETIREMENT_PLAN", "SICK_DAYS", "VACATION", "VISION" ]
enum_JobJobLevel := [ "JOB_LEVEL_UNSPECIFIED", "ENTRY_LEVEL", "EXPERIENCED", "MANAGER", "DIRECTOR", "EXECUTIVE" ]
enum_JobPostingRegion := [ "POSTING_REGION_UNSPECIFIED", "ADMINISTRATIVE_AREA", "NATION", "TELECOMMUTE" ]
enum_JobVisibility := [ "VISIBILITY_UNSPECIFIED", "ACCOUNT_ONLY", "SHARED_WITH_GOOGLE", "SHARED_WITH_PUBLIC" ]
enum_ProcessingOptionsHtmlSanitization := [ "HTML_SANITIZATION_UNSPECIFIED", "HTML_SANITIZATION_DISABLED", "SIMPLE_FORMATTING_ONLY" ]

valid {
    input.Body.jobs[_].addresses[_] == STRING
    input.Body.jobs[_].applicationInfo.emails[_] == STRING
    input.Body.jobs[_].applicationInfo.instruction == STRING
    input.Body.jobs[_].applicationInfo.uris[_] == STRING
    input.Body.jobs[_].company == STRING
    input.Body.jobs[_].compensationInfo.entries[_].amount.currencyCode == STRING
    input.Body.jobs[_].compensationInfo.entries[_].amount.nanos == INTEGER
    input.Body.jobs[_].compensationInfo.entries[_].amount.units == STRING
    input.Body.jobs[_].compensationInfo.entries[_].description == STRING
    input.Body.jobs[_].compensationInfo.entries[_].expectedUnitsPerYear == NUMBER
    input.Body.jobs[_].compensationInfo.entries[_].range.maxCompensation.currencyCode == STRING
    input.Body.jobs[_].compensationInfo.entries[_].range.maxCompensation.nanos == INTEGER
    input.Body.jobs[_].compensationInfo.entries[_].range.maxCompensation.units == STRING
    input.Body.jobs[_].compensationInfo.entries[_].range.minCompensation.currencyCode == STRING
    input.Body.jobs[_].compensationInfo.entries[_].range.minCompensation.nanos == INTEGER
    input.Body.jobs[_].compensationInfo.entries[_].range.minCompensation.units == STRING
    input.Body.jobs[_].compensationInfo.entries[_].type == enum_CompensationEntryType[_]
    input.Body.jobs[_].compensationInfo.entries[_].unit == enum_CompensationEntryUnit[_]
    input.Body.jobs[_].customAttributes.STRING.filterable == BOOLEAN
    input.Body.jobs[_].customAttributes.STRING.keywordSearchable == BOOLEAN
    input.Body.jobs[_].customAttributes.STRING.longValues[_] == STRING
    input.Body.jobs[_].customAttributes.STRING.stringValues[_] == STRING
    input.Body.jobs[_].degreeTypes[_] == enum_JobDegreeTypes[_]
    input.Body.jobs[_].department == STRING
    input.Body.jobs[_].description == STRING
    input.Body.jobs[_].employmentTypes[_] == enum_JobEmploymentTypes[_]
    input.Body.jobs[_].incentives == STRING
    input.Body.jobs[_].jobBenefits[_] == enum_JobJobBenefits[_]
    input.Body.jobs[_].jobEndTime == STRING
    input.Body.jobs[_].jobLevel == enum_JobJobLevel[_]
    input.Body.jobs[_].jobStartTime == STRING
    input.Body.jobs[_].languageCode == STRING
    input.Body.jobs[_].name == STRING
    input.Body.jobs[_].postingExpireTime == STRING
    input.Body.jobs[_].postingPublishTime == STRING
    input.Body.jobs[_].postingRegion == enum_JobPostingRegion[_]
    input.Body.jobs[_].processingOptions.disableStreetAddressResolution == BOOLEAN
    input.Body.jobs[_].processingOptions.htmlSanitization == enum_ProcessingOptionsHtmlSanitization[_]
    input.Body.jobs[_].promotionValue == INTEGER
    input.Body.jobs[_].qualifications == STRING
    input.Body.jobs[_].requisitionId == STRING
    input.Body.jobs[_].responsibilities == STRING
    input.Body.jobs[_].title == STRING
    input.Body.jobs[_].visibility == enum_JobVisibility[_]
    input.Body.updateMask == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.projects.tenants.jobs.create

enum_CompensationEntryType := [ "COMPENSATION_TYPE_UNSPECIFIED", "BASE", "BONUS", "SIGNING_BONUS", "EQUITY", "PROFIT_SHARING", "COMMISSIONS", "TIPS", "OTHER_COMPENSATION_TYPE" ]
enum_CompensationEntryUnit := [ "COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_JobDegreeTypes := [ "DEGREE_TYPE_UNSPECIFIED", "PRIMARY_EDUCATION", "LOWER_SECONDARY_EDUCATION", "UPPER_SECONDARY_EDUCATION", "ADULT_REMEDIAL_EDUCATION", "ASSOCIATES_OR_EQUIVALENT", "BACHELORS_OR_EQUIVALENT", "MASTERS_OR_EQUIVALENT", "DOCTORAL_OR_EQUIVALENT" ]
enum_JobEmploymentTypes := [ "EMPLOYMENT_TYPE_UNSPECIFIED", "FULL_TIME", "PART_TIME", "CONTRACTOR", "CONTRACT_TO_HIRE", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "FLY_IN_FLY_OUT", "OTHER_EMPLOYMENT_TYPE" ]
enum_JobJobBenefits := [ "JOB_BENEFIT_UNSPECIFIED", "CHILD_CARE", "DENTAL", "DOMESTIC_PARTNER", "FLEXIBLE_HOURS", "MEDICAL", "LIFE_INSURANCE", "PARENTAL_LEAVE", "RETIREMENT_PLAN", "SICK_DAYS", "VACATION", "VISION" ]
enum_JobJobLevel := [ "JOB_LEVEL_UNSPECIFIED", "ENTRY_LEVEL", "EXPERIENCED", "MANAGER", "DIRECTOR", "EXECUTIVE" ]
enum_JobPostingRegion := [ "POSTING_REGION_UNSPECIFIED", "ADMINISTRATIVE_AREA", "NATION", "TELECOMMUTE" ]
enum_JobVisibility := [ "VISIBILITY_UNSPECIFIED", "ACCOUNT_ONLY", "SHARED_WITH_GOOGLE", "SHARED_WITH_PUBLIC" ]
enum_ProcessingOptionsHtmlSanitization := [ "HTML_SANITIZATION_UNSPECIFIED", "HTML_SANITIZATION_DISABLED", "SIMPLE_FORMATTING_ONLY" ]

valid {
    input.Body.addresses[_] == STRING
    input.Body.applicationInfo.emails[_] == STRING
    input.Body.applicationInfo.instruction == STRING
    input.Body.applicationInfo.uris[_] == STRING
    input.Body.company == STRING
    input.Body.compensationInfo.entries[_].amount.currencyCode == STRING
    input.Body.compensationInfo.entries[_].amount.nanos == INTEGER
    input.Body.compensationInfo.entries[_].amount.units == STRING
    input.Body.compensationInfo.entries[_].description == STRING
    input.Body.compensationInfo.entries[_].expectedUnitsPerYear == NUMBER
    input.Body.compensationInfo.entries[_].range.maxCompensation.currencyCode == STRING
    input.Body.compensationInfo.entries[_].range.maxCompensation.nanos == INTEGER
    input.Body.compensationInfo.entries[_].range.maxCompensation.units == STRING
    input.Body.compensationInfo.entries[_].range.minCompensation.currencyCode == STRING
    input.Body.compensationInfo.entries[_].range.minCompensation.nanos == INTEGER
    input.Body.compensationInfo.entries[_].range.minCompensation.units == STRING
    input.Body.compensationInfo.entries[_].type == enum_CompensationEntryType[_]
    input.Body.compensationInfo.entries[_].unit == enum_CompensationEntryUnit[_]
    input.Body.customAttributes.STRING.filterable == BOOLEAN
    input.Body.customAttributes.STRING.keywordSearchable == BOOLEAN
    input.Body.customAttributes.STRING.longValues[_] == STRING
    input.Body.customAttributes.STRING.stringValues[_] == STRING
    input.Body.degreeTypes[_] == enum_JobDegreeTypes[_]
    input.Body.department == STRING
    input.Body.description == STRING
    input.Body.employmentTypes[_] == enum_JobEmploymentTypes[_]
    input.Body.incentives == STRING
    input.Body.jobBenefits[_] == enum_JobJobBenefits[_]
    input.Body.jobEndTime == STRING
    input.Body.jobLevel == enum_JobJobLevel[_]
    input.Body.jobStartTime == STRING
    input.Body.languageCode == STRING
    input.Body.name == STRING
    input.Body.postingExpireTime == STRING
    input.Body.postingPublishTime == STRING
    input.Body.postingRegion == enum_JobPostingRegion[_]
    input.Body.processingOptions.disableStreetAddressResolution == BOOLEAN
    input.Body.processingOptions.htmlSanitization == enum_ProcessingOptionsHtmlSanitization[_]
    input.Body.promotionValue == INTEGER
    input.Body.qualifications == STRING
    input.Body.requisitionId == STRING
    input.Body.responsibilities == STRING
    input.Body.title == STRING
    input.Body.visibility == enum_JobVisibility[_]
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.projects.tenants.jobs.delete

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

jobs.projects.tenants.jobs.get

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

jobs.projects.tenants.jobs.list

enum_JobViewParameter := [ "JOB_VIEW_UNSPECIFIED", "JOB_VIEW_ID_ONLY", "JOB_VIEW_MINIMAL", "JOB_VIEW_SMALL", "JOB_VIEW_FULL" ]

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.jobView == enum_JobViewParameter[_]
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.projects.tenants.jobs.patch

enum_CompensationEntryType := [ "COMPENSATION_TYPE_UNSPECIFIED", "BASE", "BONUS", "SIGNING_BONUS", "EQUITY", "PROFIT_SHARING", "COMMISSIONS", "TIPS", "OTHER_COMPENSATION_TYPE" ]
enum_CompensationEntryUnit := [ "COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_JobDegreeTypes := [ "DEGREE_TYPE_UNSPECIFIED", "PRIMARY_EDUCATION", "LOWER_SECONDARY_EDUCATION", "UPPER_SECONDARY_EDUCATION", "ADULT_REMEDIAL_EDUCATION", "ASSOCIATES_OR_EQUIVALENT", "BACHELORS_OR_EQUIVALENT", "MASTERS_OR_EQUIVALENT", "DOCTORAL_OR_EQUIVALENT" ]
enum_JobEmploymentTypes := [ "EMPLOYMENT_TYPE_UNSPECIFIED", "FULL_TIME", "PART_TIME", "CONTRACTOR", "CONTRACT_TO_HIRE", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "FLY_IN_FLY_OUT", "OTHER_EMPLOYMENT_TYPE" ]
enum_JobJobBenefits := [ "JOB_BENEFIT_UNSPECIFIED", "CHILD_CARE", "DENTAL", "DOMESTIC_PARTNER", "FLEXIBLE_HOURS", "MEDICAL", "LIFE_INSURANCE", "PARENTAL_LEAVE", "RETIREMENT_PLAN", "SICK_DAYS", "VACATION", "VISION" ]
enum_JobJobLevel := [ "JOB_LEVEL_UNSPECIFIED", "ENTRY_LEVEL", "EXPERIENCED", "MANAGER", "DIRECTOR", "EXECUTIVE" ]
enum_JobPostingRegion := [ "POSTING_REGION_UNSPECIFIED", "ADMINISTRATIVE_AREA", "NATION", "TELECOMMUTE" ]
enum_JobVisibility := [ "VISIBILITY_UNSPECIFIED", "ACCOUNT_ONLY", "SHARED_WITH_GOOGLE", "SHARED_WITH_PUBLIC" ]
enum_ProcessingOptionsHtmlSanitization := [ "HTML_SANITIZATION_UNSPECIFIED", "HTML_SANITIZATION_DISABLED", "SIMPLE_FORMATTING_ONLY" ]

valid {
    input.Body.addresses[_] == STRING
    input.Body.applicationInfo.emails[_] == STRING
    input.Body.applicationInfo.instruction == STRING
    input.Body.applicationInfo.uris[_] == STRING
    input.Body.company == STRING
    input.Body.compensationInfo.entries[_].amount.currencyCode == STRING
    input.Body.compensationInfo.entries[_].amount.nanos == INTEGER
    input.Body.compensationInfo.entries[_].amount.units == STRING
    input.Body.compensationInfo.entries[_].description == STRING
    input.Body.compensationInfo.entries[_].expectedUnitsPerYear == NUMBER
    input.Body.compensationInfo.entries[_].range.maxCompensation.currencyCode == STRING
    input.Body.compensationInfo.entries[_].range.maxCompensation.nanos == INTEGER
    input.Body.compensationInfo.entries[_].range.maxCompensation.units == STRING
    input.Body.compensationInfo.entries[_].range.minCompensation.currencyCode == STRING
    input.Body.compensationInfo.entries[_].range.minCompensation.nanos == INTEGER
    input.Body.compensationInfo.entries[_].range.minCompensation.units == STRING
    input.Body.compensationInfo.entries[_].type == enum_CompensationEntryType[_]
    input.Body.compensationInfo.entries[_].unit == enum_CompensationEntryUnit[_]
    input.Body.customAttributes.STRING.filterable == BOOLEAN
    input.Body.customAttributes.STRING.keywordSearchable == BOOLEAN
    input.Body.customAttributes.STRING.longValues[_] == STRING
    input.Body.customAttributes.STRING.stringValues[_] == STRING
    input.Body.degreeTypes[_] == enum_JobDegreeTypes[_]
    input.Body.department == STRING
    input.Body.description == STRING
    input.Body.employmentTypes[_] == enum_JobEmploymentTypes[_]
    input.Body.incentives == STRING
    input.Body.jobBenefits[_] == enum_JobJobBenefits[_]
    input.Body.jobEndTime == STRING
    input.Body.jobLevel == enum_JobJobLevel[_]
    input.Body.jobStartTime == STRING
    input.Body.languageCode == STRING
    input.Body.name == STRING
    input.Body.postingExpireTime == STRING
    input.Body.postingPublishTime == STRING
    input.Body.postingRegion == enum_JobPostingRegion[_]
    input.Body.processingOptions.disableStreetAddressResolution == BOOLEAN
    input.Body.processingOptions.htmlSanitization == enum_ProcessingOptionsHtmlSanitization[_]
    input.Body.promotionValue == INTEGER
    input.Body.qualifications == STRING
    input.Body.requisitionId == STRING
    input.Body.responsibilities == STRING
    input.Body.title == STRING
    input.Body.visibility == enum_JobVisibility[_]
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.projects.tenants.jobs.search

enum_CommuteFilterCommuteMethod := [ "COMMUTE_METHOD_UNSPECIFIED", "DRIVING", "TRANSIT", "WALKING", "CYCLING", "TRANSIT_ACCESSIBLE" ]
enum_CommuteFilterRoadTraffic := [ "ROAD_TRAFFIC_UNSPECIFIED", "TRAFFIC_FREE", "BUSY_HOUR" ]
enum_CompensationFilterType := [ "FILTER_TYPE_UNSPECIFIED", "UNIT_ONLY", "UNIT_AND_AMOUNT", "ANNUALIZED_BASE_AMOUNT", "ANNUALIZED_TOTAL_AMOUNT" ]
enum_CompensationFilterUnits := [ "COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_CustomRankingInfoImportanceLevel := [ "IMPORTANCE_LEVEL_UNSPECIFIED", "NONE", "LOW", "MILD", "MEDIUM", "HIGH", "EXTREME" ]
enum_DeviceInfoDeviceType := [ "DEVICE_TYPE_UNSPECIFIED", "WEB", "MOBILE_WEB", "ANDROID", "IOS", "BOT", "OTHER" ]
enum_JobQueryEmploymentTypes := [ "EMPLOYMENT_TYPE_UNSPECIFIED", "FULL_TIME", "PART_TIME", "CONTRACTOR", "CONTRACT_TO_HIRE", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "FLY_IN_FLY_OUT", "OTHER_EMPLOYMENT_TYPE" ]
enum_JobQueryJobCategories := [ "JOB_CATEGORY_UNSPECIFIED", "ACCOUNTING_AND_FINANCE", "ADMINISTRATIVE_AND_OFFICE", "ADVERTISING_AND_MARKETING", "ANIMAL_CARE", "ART_FASHION_AND_DESIGN", "BUSINESS_OPERATIONS", "CLEANING_AND_FACILITIES", "COMPUTER_AND_IT", "CONSTRUCTION", "CUSTOMER_SERVICE", "EDUCATION", "ENTERTAINMENT_AND_TRAVEL", "FARMING_AND_OUTDOORS", "HEALTHCARE", "HUMAN_RESOURCES", "INSTALLATION_MAINTENANCE_AND_REPAIR", "LEGAL", "MANAGEMENT", "MANUFACTURING_AND_WAREHOUSE", "MEDIA_COMMUNICATIONS_AND_WRITING", "OIL_GAS_AND_MINING", "PERSONAL_CARE_AND_SERVICES", "PROTECTIVE_SERVICES", "REAL_ESTATE", "RESTAURANT_AND_HOSPITALITY", "SALES_AND_RETAIL", "SCIENCE_AND_ENGINEERING", "SOCIAL_SERVICES_AND_NON_PROFIT", "SPORTS_FITNESS_AND_RECREATION", "TRANSPORTATION_AND_LOGISTICS" ]
enum_LocationFilterTelecommutePreference := [ "TELECOMMUTE_PREFERENCE_UNSPECIFIED", "TELECOMMUTE_EXCLUDED", "TELECOMMUTE_ALLOWED", "TELECOMMUTE_JOBS_EXCLUDED" ]
enum_SearchJobsRequestDiversificationLevel := [ "DIVERSIFICATION_LEVEL_UNSPECIFIED", "DISABLED", "SIMPLE", "ONE_PER_COMPANY", "TWO_PER_COMPANY", "MAX_THREE_PER_COMPANY", "DIVERSIFY_BY_LOOSER_SIMILARITY" ]
enum_SearchJobsRequestJobView := [ "JOB_VIEW_UNSPECIFIED", "JOB_VIEW_ID_ONLY", "JOB_VIEW_MINIMAL", "JOB_VIEW_SMALL", "JOB_VIEW_FULL" ]
enum_SearchJobsRequestKeywordMatchMode := [ "KEYWORD_MATCH_MODE_UNSPECIFIED", "KEYWORD_MATCH_DISABLED", "KEYWORD_MATCH_ALL", "KEYWORD_MATCH_TITLE_ONLY" ]
enum_SearchJobsRequestSearchMode := [ "SEARCH_MODE_UNSPECIFIED", "JOB_SEARCH", "FEATURED_JOB_SEARCH" ]

valid {
    input.Body.customRankingInfo.importanceLevel == enum_CustomRankingInfoImportanceLevel[_]
    input.Body.customRankingInfo.rankingExpression == STRING
    input.Body.disableKeywordMatch == BOOLEAN
    input.Body.diversificationLevel == enum_SearchJobsRequestDiversificationLevel[_]
    input.Body.enableBroadening == BOOLEAN
    input.Body.histogramQueries[_].histogramQuery == STRING
    input.Body.jobQuery.commuteFilter.allowImpreciseAddresses == BOOLEAN
    input.Body.jobQuery.commuteFilter.commuteMethod == enum_CommuteFilterCommuteMethod[_]
    input.Body.jobQuery.commuteFilter.departureTime.hours == INTEGER
    input.Body.jobQuery.commuteFilter.departureTime.minutes == INTEGER
    input.Body.jobQuery.commuteFilter.departureTime.nanos == INTEGER
    input.Body.jobQuery.commuteFilter.departureTime.seconds == INTEGER
    input.Body.jobQuery.commuteFilter.roadTraffic == enum_CommuteFilterRoadTraffic[_]
    input.Body.jobQuery.commuteFilter.startCoordinates.latitude == NUMBER
    input.Body.jobQuery.commuteFilter.startCoordinates.longitude == NUMBER
    input.Body.jobQuery.commuteFilter.travelDuration == STRING
    input.Body.jobQuery.companies[_] == STRING
    input.Body.jobQuery.companyDisplayNames[_] == STRING
    input.Body.jobQuery.compensationFilter.includeJobsWithUnspecifiedCompensationRange == BOOLEAN
    input.Body.jobQuery.compensationFilter.range.maxCompensation.currencyCode == STRING
    input.Body.jobQuery.compensationFilter.range.maxCompensation.nanos == INTEGER
    input.Body.jobQuery.compensationFilter.range.maxCompensation.units == STRING
    input.Body.jobQuery.compensationFilter.range.minCompensation.currencyCode == STRING
    input.Body.jobQuery.compensationFilter.range.minCompensation.nanos == INTEGER
    input.Body.jobQuery.compensationFilter.range.minCompensation.units == STRING
    input.Body.jobQuery.compensationFilter.type == enum_CompensationFilterType[_]
    input.Body.jobQuery.compensationFilter.units[_] == enum_CompensationFilterUnits[_]
    input.Body.jobQuery.customAttributeFilter == STRING
    input.Body.jobQuery.disableSpellCheck == BOOLEAN
    input.Body.jobQuery.employmentTypes[_] == enum_JobQueryEmploymentTypes[_]
    input.Body.jobQuery.excludedJobs[_] == STRING
    input.Body.jobQuery.jobCategories[_] == enum_JobQueryJobCategories[_]
    input.Body.jobQuery.languageCodes[_] == STRING
    input.Body.jobQuery.locationFilters[_].address == STRING
    input.Body.jobQuery.locationFilters[_].distanceInMiles == NUMBER
    input.Body.jobQuery.locationFilters[_].latLng.latitude == NUMBER
    input.Body.jobQuery.locationFilters[_].latLng.longitude == NUMBER
    input.Body.jobQuery.locationFilters[_].regionCode == STRING
    input.Body.jobQuery.locationFilters[_].telecommutePreference == enum_LocationFilterTelecommutePreference[_]
    input.Body.jobQuery.publishTimeRange.endTime == STRING
    input.Body.jobQuery.publishTimeRange.startTime == STRING
    input.Body.jobQuery.query == STRING
    input.Body.jobQuery.queryLanguageCode == STRING
    input.Body.jobView == enum_SearchJobsRequestJobView[_]
    input.Body.keywordMatchMode == enum_SearchJobsRequestKeywordMatchMode[_]
    input.Body.maxPageSize == INTEGER
    input.Body.offset == INTEGER
    input.Body.orderBy == STRING
    input.Body.pageToken == STRING
    input.Body.requestMetadata.allowMissingIds == BOOLEAN
    input.Body.requestMetadata.deviceInfo.deviceType == enum_DeviceInfoDeviceType[_]
    input.Body.requestMetadata.deviceInfo.id == STRING
    input.Body.requestMetadata.domain == STRING
    input.Body.requestMetadata.sessionId == STRING
    input.Body.requestMetadata.userId == STRING
    input.Body.searchMode == enum_SearchJobsRequestSearchMode[_]
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.projects.tenants.jobs.searchForAlert

enum_CommuteFilterCommuteMethod := [ "COMMUTE_METHOD_UNSPECIFIED", "DRIVING", "TRANSIT", "WALKING", "CYCLING", "TRANSIT_ACCESSIBLE" ]
enum_CommuteFilterRoadTraffic := [ "ROAD_TRAFFIC_UNSPECIFIED", "TRAFFIC_FREE", "BUSY_HOUR" ]
enum_CompensationFilterType := [ "FILTER_TYPE_UNSPECIFIED", "UNIT_ONLY", "UNIT_AND_AMOUNT", "ANNUALIZED_BASE_AMOUNT", "ANNUALIZED_TOTAL_AMOUNT" ]
enum_CompensationFilterUnits := [ "COMPENSATION_UNIT_UNSPECIFIED", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ONE_TIME", "OTHER_COMPENSATION_UNIT" ]
enum_CustomRankingInfoImportanceLevel := [ "IMPORTANCE_LEVEL_UNSPECIFIED", "NONE", "LOW", "MILD", "MEDIUM", "HIGH", "EXTREME" ]
enum_DeviceInfoDeviceType := [ "DEVICE_TYPE_UNSPECIFIED", "WEB", "MOBILE_WEB", "ANDROID", "IOS", "BOT", "OTHER" ]
enum_JobQueryEmploymentTypes := [ "EMPLOYMENT_TYPE_UNSPECIFIED", "FULL_TIME", "PART_TIME", "CONTRACTOR", "CONTRACT_TO_HIRE", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "FLY_IN_FLY_OUT", "OTHER_EMPLOYMENT_TYPE" ]
enum_JobQueryJobCategories := [ "JOB_CATEGORY_UNSPECIFIED", "ACCOUNTING_AND_FINANCE", "ADMINISTRATIVE_AND_OFFICE", "ADVERTISING_AND_MARKETING", "ANIMAL_CARE", "ART_FASHION_AND_DESIGN", "BUSINESS_OPERATIONS", "CLEANING_AND_FACILITIES", "COMPUTER_AND_IT", "CONSTRUCTION", "CUSTOMER_SERVICE", "EDUCATION", "ENTERTAINMENT_AND_TRAVEL", "FARMING_AND_OUTDOORS", "HEALTHCARE", "HUMAN_RESOURCES", "INSTALLATION_MAINTENANCE_AND_REPAIR", "LEGAL", "MANAGEMENT", "MANUFACTURING_AND_WAREHOUSE", "MEDIA_COMMUNICATIONS_AND_WRITING", "OIL_GAS_AND_MINING", "PERSONAL_CARE_AND_SERVICES", "PROTECTIVE_SERVICES", "REAL_ESTATE", "RESTAURANT_AND_HOSPITALITY", "SALES_AND_RETAIL", "SCIENCE_AND_ENGINEERING", "SOCIAL_SERVICES_AND_NON_PROFIT", "SPORTS_FITNESS_AND_RECREATION", "TRANSPORTATION_AND_LOGISTICS" ]
enum_LocationFilterTelecommutePreference := [ "TELECOMMUTE_PREFERENCE_UNSPECIFIED", "TELECOMMUTE_EXCLUDED", "TELECOMMUTE_ALLOWED", "TELECOMMUTE_JOBS_EXCLUDED" ]
enum_SearchJobsRequestDiversificationLevel := [ "DIVERSIFICATION_LEVEL_UNSPECIFIED", "DISABLED", "SIMPLE", "ONE_PER_COMPANY", "TWO_PER_COMPANY", "MAX_THREE_PER_COMPANY", "DIVERSIFY_BY_LOOSER_SIMILARITY" ]
enum_SearchJobsRequestJobView := [ "JOB_VIEW_UNSPECIFIED", "JOB_VIEW_ID_ONLY", "JOB_VIEW_MINIMAL", "JOB_VIEW_SMALL", "JOB_VIEW_FULL" ]
enum_SearchJobsRequestKeywordMatchMode := [ "KEYWORD_MATCH_MODE_UNSPECIFIED", "KEYWORD_MATCH_DISABLED", "KEYWORD_MATCH_ALL", "KEYWORD_MATCH_TITLE_ONLY" ]
enum_SearchJobsRequestSearchMode := [ "SEARCH_MODE_UNSPECIFIED", "JOB_SEARCH", "FEATURED_JOB_SEARCH" ]

valid {
    input.Body.customRankingInfo.importanceLevel == enum_CustomRankingInfoImportanceLevel[_]
    input.Body.customRankingInfo.rankingExpression == STRING
    input.Body.disableKeywordMatch == BOOLEAN
    input.Body.diversificationLevel == enum_SearchJobsRequestDiversificationLevel[_]
    input.Body.enableBroadening == BOOLEAN
    input.Body.histogramQueries[_].histogramQuery == STRING
    input.Body.jobQuery.commuteFilter.allowImpreciseAddresses == BOOLEAN
    input.Body.jobQuery.commuteFilter.commuteMethod == enum_CommuteFilterCommuteMethod[_]
    input.Body.jobQuery.commuteFilter.departureTime.hours == INTEGER
    input.Body.jobQuery.commuteFilter.departureTime.minutes == INTEGER
    input.Body.jobQuery.commuteFilter.departureTime.nanos == INTEGER
    input.Body.jobQuery.commuteFilter.departureTime.seconds == INTEGER
    input.Body.jobQuery.commuteFilter.roadTraffic == enum_CommuteFilterRoadTraffic[_]
    input.Body.jobQuery.commuteFilter.startCoordinates.latitude == NUMBER
    input.Body.jobQuery.commuteFilter.startCoordinates.longitude == NUMBER
    input.Body.jobQuery.commuteFilter.travelDuration == STRING
    input.Body.jobQuery.companies[_] == STRING
    input.Body.jobQuery.companyDisplayNames[_] == STRING
    input.Body.jobQuery.compensationFilter.includeJobsWithUnspecifiedCompensationRange == BOOLEAN
    input.Body.jobQuery.compensationFilter.range.maxCompensation.currencyCode == STRING
    input.Body.jobQuery.compensationFilter.range.maxCompensation.nanos == INTEGER
    input.Body.jobQuery.compensationFilter.range.maxCompensation.units == STRING
    input.Body.jobQuery.compensationFilter.range.minCompensation.currencyCode == STRING
    input.Body.jobQuery.compensationFilter.range.minCompensation.nanos == INTEGER
    input.Body.jobQuery.compensationFilter.range.minCompensation.units == STRING
    input.Body.jobQuery.compensationFilter.type == enum_CompensationFilterType[_]
    input.Body.jobQuery.compensationFilter.units[_] == enum_CompensationFilterUnits[_]
    input.Body.jobQuery.customAttributeFilter == STRING
    input.Body.jobQuery.disableSpellCheck == BOOLEAN
    input.Body.jobQuery.employmentTypes[_] == enum_JobQueryEmploymentTypes[_]
    input.Body.jobQuery.excludedJobs[_] == STRING
    input.Body.jobQuery.jobCategories[_] == enum_JobQueryJobCategories[_]
    input.Body.jobQuery.languageCodes[_] == STRING
    input.Body.jobQuery.locationFilters[_].address == STRING
    input.Body.jobQuery.locationFilters[_].distanceInMiles == NUMBER
    input.Body.jobQuery.locationFilters[_].latLng.latitude == NUMBER
    input.Body.jobQuery.locationFilters[_].latLng.longitude == NUMBER
    input.Body.jobQuery.locationFilters[_].regionCode == STRING
    input.Body.jobQuery.locationFilters[_].telecommutePreference == enum_LocationFilterTelecommutePreference[_]
    input.Body.jobQuery.publishTimeRange.endTime == STRING
    input.Body.jobQuery.publishTimeRange.startTime == STRING
    input.Body.jobQuery.query == STRING
    input.Body.jobQuery.queryLanguageCode == STRING
    input.Body.jobView == enum_SearchJobsRequestJobView[_]
    input.Body.keywordMatchMode == enum_SearchJobsRequestKeywordMatchMode[_]
    input.Body.maxPageSize == INTEGER
    input.Body.offset == INTEGER
    input.Body.orderBy == STRING
    input.Body.pageToken == STRING
    input.Body.requestMetadata.allowMissingIds == BOOLEAN
    input.Body.requestMetadata.deviceInfo.deviceType == enum_DeviceInfoDeviceType[_]
    input.Body.requestMetadata.deviceInfo.id == STRING
    input.Body.requestMetadata.domain == STRING
    input.Body.requestMetadata.sessionId == STRING
    input.Body.requestMetadata.userId == STRING
    input.Body.searchMode == enum_SearchJobsRequestSearchMode[_]
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

jobs.projects.tenants.list

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

jobs.projects.tenants.patch

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