AREAINSIGHTS

areainsights.computeInsights

enum_ComputeInsightsRequestInsights := [ "INSIGHT_UNSPECIFIED", "INSIGHT_COUNT", "INSIGHT_PLACES" ]
enum_FilterOperatingStatus := [ "OPERATING_STATUS_UNSPECIFIED", "OPERATING_STATUS_OPERATIONAL", "OPERATING_STATUS_PERMANENTLY_CLOSED", "OPERATING_STATUS_TEMPORARILY_CLOSED" ]
enum_FilterPriceLevels := [ "PRICE_LEVEL_UNSPECIFIED", "PRICE_LEVEL_FREE", "PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE", "PRICE_LEVEL_EXPENSIVE", "PRICE_LEVEL_VERY_EXPENSIVE" ]

valid {
    input.Body.filter.locationFilter.circle.latLng.latitude == NUMBER
    input.Body.filter.locationFilter.circle.latLng.longitude == NUMBER
    input.Body.filter.locationFilter.circle.place == STRING
    input.Body.filter.locationFilter.circle.radius == INTEGER
    input.Body.filter.locationFilter.customArea.polygon.coordinates[_].latitude == NUMBER
    input.Body.filter.locationFilter.customArea.polygon.coordinates[_].longitude == NUMBER
    input.Body.filter.locationFilter.region.place == STRING
    input.Body.filter.operatingStatus[_] == enum_FilterOperatingStatus[_]
    input.Body.filter.priceLevels[_] == enum_FilterPriceLevels[_]
    input.Body.filter.ratingFilter.maxRating == NUMBER
    input.Body.filter.ratingFilter.minRating == NUMBER
    input.Body.filter.typeFilter.excludedPrimaryTypes[_] == STRING
    input.Body.filter.typeFilter.excludedTypes[_] == STRING
    input.Body.filter.typeFilter.includedPrimaryTypes[_] == STRING
    input.Body.filter.typeFilter.includedTypes[_] == STRING
    input.Body.insights[_] == enum_ComputeInsightsRequestInsights[_]
    input.ProviderMetadata.Region == STRING
}