vision.files.annotate

enum_FeatureType := [ "TYPE_UNSPECIFIED", "FACE_DETECTION", "LANDMARK_DETECTION", "LOGO_DETECTION", "LABEL_DETECTION", "TEXT_DETECTION", "DOCUMENT_TEXT_DETECTION", "SAFE_SEARCH_DETECTION", "IMAGE_PROPERTIES", "CROP_HINTS", "WEB_DETECTION", "PRODUCT_SEARCH", "OBJECT_LOCALIZATION" ]

valid {
    input.Body.labels.STRING == STRING
    input.Body.parent == STRING
    input.Body.requests[_].features[_].maxResults == INTEGER
    input.Body.requests[_].features[_].model == STRING
    input.Body.requests[_].features[_].type == enum_FeatureType[_]
    input.Body.requests[_].imageContext.cropHintsParams.aspectRatios[_] == NUMBER
    input.Body.requests[_].imageContext.languageHints[_] == STRING
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].x == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].y == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].x == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].y == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.filter == STRING
    input.Body.requests[_].imageContext.productSearchParams.productCategories[_] == STRING
    input.Body.requests[_].imageContext.productSearchParams.productSet == STRING
    input.Body.requests[_].imageContext.textDetectionParams.advancedOcrOptions[_] == STRING
    input.Body.requests[_].imageContext.textDetectionParams.enableTextDetectionConfidenceScore == BOOLEAN
    input.Body.requests[_].imageContext.webDetectionParams.includeGeoResults == BOOLEAN
    input.Body.requests[_].inputConfig.content == STRING
    input.Body.requests[_].inputConfig.gcsSource.uri == STRING
    input.Body.requests[_].inputConfig.mimeType == STRING
    input.Body.requests[_].pages[_] == INTEGER
    input.ProviderMetadata.Region == STRING
}

vision.files.asyncBatchAnnotate

enum_FeatureType := [ "TYPE_UNSPECIFIED", "FACE_DETECTION", "LANDMARK_DETECTION", "LOGO_DETECTION", "LABEL_DETECTION", "TEXT_DETECTION", "DOCUMENT_TEXT_DETECTION", "SAFE_SEARCH_DETECTION", "IMAGE_PROPERTIES", "CROP_HINTS", "WEB_DETECTION", "PRODUCT_SEARCH", "OBJECT_LOCALIZATION" ]

valid {
    input.Body.labels.STRING == STRING
    input.Body.parent == STRING
    input.Body.requests[_].features[_].maxResults == INTEGER
    input.Body.requests[_].features[_].model == STRING
    input.Body.requests[_].features[_].type == enum_FeatureType[_]
    input.Body.requests[_].imageContext.cropHintsParams.aspectRatios[_] == NUMBER
    input.Body.requests[_].imageContext.languageHints[_] == STRING
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].x == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].y == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].x == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].y == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.filter == STRING
    input.Body.requests[_].imageContext.productSearchParams.productCategories[_] == STRING
    input.Body.requests[_].imageContext.productSearchParams.productSet == STRING
    input.Body.requests[_].imageContext.textDetectionParams.advancedOcrOptions[_] == STRING
    input.Body.requests[_].imageContext.textDetectionParams.enableTextDetectionConfidenceScore == BOOLEAN
    input.Body.requests[_].imageContext.webDetectionParams.includeGeoResults == BOOLEAN
    input.Body.requests[_].inputConfig.content == STRING
    input.Body.requests[_].inputConfig.gcsSource.uri == STRING
    input.Body.requests[_].inputConfig.mimeType == STRING
    input.Body.requests[_].outputConfig.batchSize == INTEGER
    input.Body.requests[_].outputConfig.gcsDestination.uri == STRING
    input.ProviderMetadata.Region == STRING
}

vision.images.annotate

enum_FeatureType := [ "TYPE_UNSPECIFIED", "FACE_DETECTION", "LANDMARK_DETECTION", "LOGO_DETECTION", "LABEL_DETECTION", "TEXT_DETECTION", "DOCUMENT_TEXT_DETECTION", "SAFE_SEARCH_DETECTION", "IMAGE_PROPERTIES", "CROP_HINTS", "WEB_DETECTION", "PRODUCT_SEARCH", "OBJECT_LOCALIZATION" ]

valid {
    input.Body.labels.STRING == STRING
    input.Body.parent == STRING
    input.Body.requests[_].features[_].maxResults == INTEGER
    input.Body.requests[_].features[_].model == STRING
    input.Body.requests[_].features[_].type == enum_FeatureType[_]
    input.Body.requests[_].image.content == STRING
    input.Body.requests[_].image.source.gcsImageUri == STRING
    input.Body.requests[_].image.source.imageUri == STRING
    input.Body.requests[_].imageContext.cropHintsParams.aspectRatios[_] == NUMBER
    input.Body.requests[_].imageContext.languageHints[_] == STRING
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].x == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].y == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].x == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].y == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.filter == STRING
    input.Body.requests[_].imageContext.productSearchParams.productCategories[_] == STRING
    input.Body.requests[_].imageContext.productSearchParams.productSet == STRING
    input.Body.requests[_].imageContext.textDetectionParams.advancedOcrOptions[_] == STRING
    input.Body.requests[_].imageContext.textDetectionParams.enableTextDetectionConfidenceScore == BOOLEAN
    input.Body.requests[_].imageContext.webDetectionParams.includeGeoResults == BOOLEAN
    input.ProviderMetadata.Region == STRING
}

vision.images.asyncBatchAnnotate

enum_FeatureType := [ "TYPE_UNSPECIFIED", "FACE_DETECTION", "LANDMARK_DETECTION", "LOGO_DETECTION", "LABEL_DETECTION", "TEXT_DETECTION", "DOCUMENT_TEXT_DETECTION", "SAFE_SEARCH_DETECTION", "IMAGE_PROPERTIES", "CROP_HINTS", "WEB_DETECTION", "PRODUCT_SEARCH", "OBJECT_LOCALIZATION" ]

valid {
    input.Body.labels.STRING == STRING
    input.Body.outputConfig.batchSize == INTEGER
    input.Body.outputConfig.gcsDestination.uri == STRING
    input.Body.parent == STRING
    input.Body.requests[_].features[_].maxResults == INTEGER
    input.Body.requests[_].features[_].model == STRING
    input.Body.requests[_].features[_].type == enum_FeatureType[_]
    input.Body.requests[_].image.content == STRING
    input.Body.requests[_].image.source.gcsImageUri == STRING
    input.Body.requests[_].image.source.imageUri == STRING
    input.Body.requests[_].imageContext.cropHintsParams.aspectRatios[_] == NUMBER
    input.Body.requests[_].imageContext.languageHints[_] == STRING
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].x == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].y == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].x == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].y == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.filter == STRING
    input.Body.requests[_].imageContext.productSearchParams.productCategories[_] == STRING
    input.Body.requests[_].imageContext.productSearchParams.productSet == STRING
    input.Body.requests[_].imageContext.textDetectionParams.advancedOcrOptions[_] == STRING
    input.Body.requests[_].imageContext.textDetectionParams.enableTextDetectionConfidenceScore == BOOLEAN
    input.Body.requests[_].imageContext.webDetectionParams.includeGeoResults == BOOLEAN
    input.ProviderMetadata.Region == STRING
}

vision.locations.operations.get

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

vision.operations.cancel

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

vision.operations.delete

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

vision.operations.get

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

vision.operations.list

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

vision.projects.files.annotate

enum_FeatureType := [ "TYPE_UNSPECIFIED", "FACE_DETECTION", "LANDMARK_DETECTION", "LOGO_DETECTION", "LABEL_DETECTION", "TEXT_DETECTION", "DOCUMENT_TEXT_DETECTION", "SAFE_SEARCH_DETECTION", "IMAGE_PROPERTIES", "CROP_HINTS", "WEB_DETECTION", "PRODUCT_SEARCH", "OBJECT_LOCALIZATION" ]

valid {
    input.Body.labels.STRING == STRING
    input.Body.parent == STRING
    input.Body.requests[_].features[_].maxResults == INTEGER
    input.Body.requests[_].features[_].model == STRING
    input.Body.requests[_].features[_].type == enum_FeatureType[_]
    input.Body.requests[_].imageContext.cropHintsParams.aspectRatios[_] == NUMBER
    input.Body.requests[_].imageContext.languageHints[_] == STRING
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].x == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].y == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].x == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].y == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.filter == STRING
    input.Body.requests[_].imageContext.productSearchParams.productCategories[_] == STRING
    input.Body.requests[_].imageContext.productSearchParams.productSet == STRING
    input.Body.requests[_].imageContext.textDetectionParams.advancedOcrOptions[_] == STRING
    input.Body.requests[_].imageContext.textDetectionParams.enableTextDetectionConfidenceScore == BOOLEAN
    input.Body.requests[_].imageContext.webDetectionParams.includeGeoResults == BOOLEAN
    input.Body.requests[_].inputConfig.content == STRING
    input.Body.requests[_].inputConfig.gcsSource.uri == STRING
    input.Body.requests[_].inputConfig.mimeType == STRING
    input.Body.requests[_].pages[_] == INTEGER
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

vision.projects.files.asyncBatchAnnotate

enum_FeatureType := [ "TYPE_UNSPECIFIED", "FACE_DETECTION", "LANDMARK_DETECTION", "LOGO_DETECTION", "LABEL_DETECTION", "TEXT_DETECTION", "DOCUMENT_TEXT_DETECTION", "SAFE_SEARCH_DETECTION", "IMAGE_PROPERTIES", "CROP_HINTS", "WEB_DETECTION", "PRODUCT_SEARCH", "OBJECT_LOCALIZATION" ]

valid {
    input.Body.labels.STRING == STRING
    input.Body.parent == STRING
    input.Body.requests[_].features[_].maxResults == INTEGER
    input.Body.requests[_].features[_].model == STRING
    input.Body.requests[_].features[_].type == enum_FeatureType[_]
    input.Body.requests[_].imageContext.cropHintsParams.aspectRatios[_] == NUMBER
    input.Body.requests[_].imageContext.languageHints[_] == STRING
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].x == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].y == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].x == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].y == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.filter == STRING
    input.Body.requests[_].imageContext.productSearchParams.productCategories[_] == STRING
    input.Body.requests[_].imageContext.productSearchParams.productSet == STRING
    input.Body.requests[_].imageContext.textDetectionParams.advancedOcrOptions[_] == STRING
    input.Body.requests[_].imageContext.textDetectionParams.enableTextDetectionConfidenceScore == BOOLEAN
    input.Body.requests[_].imageContext.webDetectionParams.includeGeoResults == BOOLEAN
    input.Body.requests[_].inputConfig.content == STRING
    input.Body.requests[_].inputConfig.gcsSource.uri == STRING
    input.Body.requests[_].inputConfig.mimeType == STRING
    input.Body.requests[_].outputConfig.batchSize == INTEGER
    input.Body.requests[_].outputConfig.gcsDestination.uri == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

vision.projects.images.annotate

enum_FeatureType := [ "TYPE_UNSPECIFIED", "FACE_DETECTION", "LANDMARK_DETECTION", "LOGO_DETECTION", "LABEL_DETECTION", "TEXT_DETECTION", "DOCUMENT_TEXT_DETECTION", "SAFE_SEARCH_DETECTION", "IMAGE_PROPERTIES", "CROP_HINTS", "WEB_DETECTION", "PRODUCT_SEARCH", "OBJECT_LOCALIZATION" ]

valid {
    input.Body.labels.STRING == STRING
    input.Body.parent == STRING
    input.Body.requests[_].features[_].maxResults == INTEGER
    input.Body.requests[_].features[_].model == STRING
    input.Body.requests[_].features[_].type == enum_FeatureType[_]
    input.Body.requests[_].image.content == STRING
    input.Body.requests[_].image.source.gcsImageUri == STRING
    input.Body.requests[_].image.source.imageUri == STRING
    input.Body.requests[_].imageContext.cropHintsParams.aspectRatios[_] == NUMBER
    input.Body.requests[_].imageContext.languageHints[_] == STRING
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].x == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].y == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].x == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].y == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.filter == STRING
    input.Body.requests[_].imageContext.productSearchParams.productCategories[_] == STRING
    input.Body.requests[_].imageContext.productSearchParams.productSet == STRING
    input.Body.requests[_].imageContext.textDetectionParams.advancedOcrOptions[_] == STRING
    input.Body.requests[_].imageContext.textDetectionParams.enableTextDetectionConfidenceScore == BOOLEAN
    input.Body.requests[_].imageContext.webDetectionParams.includeGeoResults == BOOLEAN
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

vision.projects.images.asyncBatchAnnotate

enum_FeatureType := [ "TYPE_UNSPECIFIED", "FACE_DETECTION", "LANDMARK_DETECTION", "LOGO_DETECTION", "LABEL_DETECTION", "TEXT_DETECTION", "DOCUMENT_TEXT_DETECTION", "SAFE_SEARCH_DETECTION", "IMAGE_PROPERTIES", "CROP_HINTS", "WEB_DETECTION", "PRODUCT_SEARCH", "OBJECT_LOCALIZATION" ]

valid {
    input.Body.labels.STRING == STRING
    input.Body.outputConfig.batchSize == INTEGER
    input.Body.outputConfig.gcsDestination.uri == STRING
    input.Body.parent == STRING
    input.Body.requests[_].features[_].maxResults == INTEGER
    input.Body.requests[_].features[_].model == STRING
    input.Body.requests[_].features[_].type == enum_FeatureType[_]
    input.Body.requests[_].image.content == STRING
    input.Body.requests[_].image.source.gcsImageUri == STRING
    input.Body.requests[_].image.source.imageUri == STRING
    input.Body.requests[_].imageContext.cropHintsParams.aspectRatios[_] == NUMBER
    input.Body.requests[_].imageContext.languageHints[_] == STRING
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].x == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].y == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].x == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].y == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.filter == STRING
    input.Body.requests[_].imageContext.productSearchParams.productCategories[_] == STRING
    input.Body.requests[_].imageContext.productSearchParams.productSet == STRING
    input.Body.requests[_].imageContext.textDetectionParams.advancedOcrOptions[_] == STRING
    input.Body.requests[_].imageContext.textDetectionParams.enableTextDetectionConfidenceScore == BOOLEAN
    input.Body.requests[_].imageContext.webDetectionParams.includeGeoResults == BOOLEAN
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

vision.projects.locations.files.annotate

enum_FeatureType := [ "TYPE_UNSPECIFIED", "FACE_DETECTION", "LANDMARK_DETECTION", "LOGO_DETECTION", "LABEL_DETECTION", "TEXT_DETECTION", "DOCUMENT_TEXT_DETECTION", "SAFE_SEARCH_DETECTION", "IMAGE_PROPERTIES", "CROP_HINTS", "WEB_DETECTION", "PRODUCT_SEARCH", "OBJECT_LOCALIZATION" ]

valid {
    input.Body.labels.STRING == STRING
    input.Body.parent == STRING
    input.Body.requests[_].features[_].maxResults == INTEGER
    input.Body.requests[_].features[_].model == STRING
    input.Body.requests[_].features[_].type == enum_FeatureType[_]
    input.Body.requests[_].imageContext.cropHintsParams.aspectRatios[_] == NUMBER
    input.Body.requests[_].imageContext.languageHints[_] == STRING
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].x == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].y == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].x == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].y == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.filter == STRING
    input.Body.requests[_].imageContext.productSearchParams.productCategories[_] == STRING
    input.Body.requests[_].imageContext.productSearchParams.productSet == STRING
    input.Body.requests[_].imageContext.textDetectionParams.advancedOcrOptions[_] == STRING
    input.Body.requests[_].imageContext.textDetectionParams.enableTextDetectionConfidenceScore == BOOLEAN
    input.Body.requests[_].imageContext.webDetectionParams.includeGeoResults == BOOLEAN
    input.Body.requests[_].inputConfig.content == STRING
    input.Body.requests[_].inputConfig.gcsSource.uri == STRING
    input.Body.requests[_].inputConfig.mimeType == STRING
    input.Body.requests[_].pages[_] == INTEGER
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

vision.projects.locations.files.asyncBatchAnnotate

enum_FeatureType := [ "TYPE_UNSPECIFIED", "FACE_DETECTION", "LANDMARK_DETECTION", "LOGO_DETECTION", "LABEL_DETECTION", "TEXT_DETECTION", "DOCUMENT_TEXT_DETECTION", "SAFE_SEARCH_DETECTION", "IMAGE_PROPERTIES", "CROP_HINTS", "WEB_DETECTION", "PRODUCT_SEARCH", "OBJECT_LOCALIZATION" ]

valid {
    input.Body.labels.STRING == STRING
    input.Body.parent == STRING
    input.Body.requests[_].features[_].maxResults == INTEGER
    input.Body.requests[_].features[_].model == STRING
    input.Body.requests[_].features[_].type == enum_FeatureType[_]
    input.Body.requests[_].imageContext.cropHintsParams.aspectRatios[_] == NUMBER
    input.Body.requests[_].imageContext.languageHints[_] == STRING
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].x == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].y == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].x == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].y == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.filter == STRING
    input.Body.requests[_].imageContext.productSearchParams.productCategories[_] == STRING
    input.Body.requests[_].imageContext.productSearchParams.productSet == STRING
    input.Body.requests[_].imageContext.textDetectionParams.advancedOcrOptions[_] == STRING
    input.Body.requests[_].imageContext.textDetectionParams.enableTextDetectionConfidenceScore == BOOLEAN
    input.Body.requests[_].imageContext.webDetectionParams.includeGeoResults == BOOLEAN
    input.Body.requests[_].inputConfig.content == STRING
    input.Body.requests[_].inputConfig.gcsSource.uri == STRING
    input.Body.requests[_].inputConfig.mimeType == STRING
    input.Body.requests[_].outputConfig.batchSize == INTEGER
    input.Body.requests[_].outputConfig.gcsDestination.uri == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

vision.projects.locations.images.annotate

enum_FeatureType := [ "TYPE_UNSPECIFIED", "FACE_DETECTION", "LANDMARK_DETECTION", "LOGO_DETECTION", "LABEL_DETECTION", "TEXT_DETECTION", "DOCUMENT_TEXT_DETECTION", "SAFE_SEARCH_DETECTION", "IMAGE_PROPERTIES", "CROP_HINTS", "WEB_DETECTION", "PRODUCT_SEARCH", "OBJECT_LOCALIZATION" ]

valid {
    input.Body.labels.STRING == STRING
    input.Body.parent == STRING
    input.Body.requests[_].features[_].maxResults == INTEGER
    input.Body.requests[_].features[_].model == STRING
    input.Body.requests[_].features[_].type == enum_FeatureType[_]
    input.Body.requests[_].image.content == STRING
    input.Body.requests[_].image.source.gcsImageUri == STRING
    input.Body.requests[_].image.source.imageUri == STRING
    input.Body.requests[_].imageContext.cropHintsParams.aspectRatios[_] == NUMBER
    input.Body.requests[_].imageContext.languageHints[_] == STRING
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].x == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].y == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].x == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].y == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.filter == STRING
    input.Body.requests[_].imageContext.productSearchParams.productCategories[_] == STRING
    input.Body.requests[_].imageContext.productSearchParams.productSet == STRING
    input.Body.requests[_].imageContext.textDetectionParams.advancedOcrOptions[_] == STRING
    input.Body.requests[_].imageContext.textDetectionParams.enableTextDetectionConfidenceScore == BOOLEAN
    input.Body.requests[_].imageContext.webDetectionParams.includeGeoResults == BOOLEAN
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

vision.projects.locations.images.asyncBatchAnnotate

enum_FeatureType := [ "TYPE_UNSPECIFIED", "FACE_DETECTION", "LANDMARK_DETECTION", "LOGO_DETECTION", "LABEL_DETECTION", "TEXT_DETECTION", "DOCUMENT_TEXT_DETECTION", "SAFE_SEARCH_DETECTION", "IMAGE_PROPERTIES", "CROP_HINTS", "WEB_DETECTION", "PRODUCT_SEARCH", "OBJECT_LOCALIZATION" ]

valid {
    input.Body.labels.STRING == STRING
    input.Body.outputConfig.batchSize == INTEGER
    input.Body.outputConfig.gcsDestination.uri == STRING
    input.Body.parent == STRING
    input.Body.requests[_].features[_].maxResults == INTEGER
    input.Body.requests[_].features[_].model == STRING
    input.Body.requests[_].features[_].type == enum_FeatureType[_]
    input.Body.requests[_].image.content == STRING
    input.Body.requests[_].image.source.gcsImageUri == STRING
    input.Body.requests[_].image.source.imageUri == STRING
    input.Body.requests[_].imageContext.cropHintsParams.aspectRatios[_] == NUMBER
    input.Body.requests[_].imageContext.languageHints[_] == STRING
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.maxLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.latitude == NUMBER
    input.Body.requests[_].imageContext.latLongRect.minLatLng.longitude == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].x == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.normalizedVertices[_].y == NUMBER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].x == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.boundingPoly.vertices[_].y == INTEGER
    input.Body.requests[_].imageContext.productSearchParams.filter == STRING
    input.Body.requests[_].imageContext.productSearchParams.productCategories[_] == STRING
    input.Body.requests[_].imageContext.productSearchParams.productSet == STRING
    input.Body.requests[_].imageContext.textDetectionParams.advancedOcrOptions[_] == STRING
    input.Body.requests[_].imageContext.textDetectionParams.enableTextDetectionConfidenceScore == BOOLEAN
    input.Body.requests[_].imageContext.webDetectionParams.includeGeoResults == BOOLEAN
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

vision.projects.locations.operations.get

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

vision.projects.locations.productSets.addProduct

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

vision.projects.locations.productSets.create

valid {
    input.Body.displayName == STRING
    input.Body.name == STRING
    input.ReqMap.parent == STRING
    input.Qs.productSetId == STRING
    input.ProviderMetadata.Region == STRING
}

vision.projects.locations.productSets.delete

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

vision.projects.locations.productSets.get

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

vision.projects.locations.productSets.import

valid {
    input.Body.inputConfig.gcsSource.csvFileUri == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

vision.projects.locations.productSets.list

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

vision.projects.locations.productSets.patch

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

vision.projects.locations.productSets.products.list

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

vision.projects.locations.productSets.removeProduct

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

vision.projects.locations.products.create

valid {
    input.Body.description == STRING
    input.Body.displayName == STRING
    input.Body.name == STRING
    input.Body.productCategory == STRING
    input.Body.productLabels[_].key == STRING
    input.Body.productLabels[_].value == STRING
    input.ReqMap.parent == STRING
    input.Qs.productId == STRING
    input.ProviderMetadata.Region == STRING
}

vision.projects.locations.products.delete

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

vision.projects.locations.products.get

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

vision.projects.locations.products.list

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

vision.projects.locations.products.patch

valid {
    input.Body.description == STRING
    input.Body.displayName == STRING
    input.Body.name == STRING
    input.Body.productCategory == STRING
    input.Body.productLabels[_].key == STRING
    input.Body.productLabels[_].value == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

vision.projects.locations.products.purge

valid {
    input.Body.deleteOrphanProducts == BOOLEAN
    input.Body.force == BOOLEAN
    input.Body.productSetPurgeConfig.productSetId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

vision.projects.locations.products.referenceImages.create

valid {
    input.Body.boundingPolys[_].normalizedVertices[_].x == NUMBER
    input.Body.boundingPolys[_].normalizedVertices[_].y == NUMBER
    input.Body.boundingPolys[_].vertices[_].x == INTEGER
    input.Body.boundingPolys[_].vertices[_].y == INTEGER
    input.Body.name == STRING
    input.Body.uri == STRING
    input.ReqMap.parent == STRING
    input.Qs.referenceImageId == STRING
    input.ProviderMetadata.Region == STRING
}

vision.projects.locations.products.referenceImages.delete

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

vision.projects.locations.products.referenceImages.get

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

vision.projects.locations.products.referenceImages.list

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

vision.projects.operations.get

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