FIREBASEML

firebaseml.operations.cancel

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

firebaseml.operations.delete

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

firebaseml.operations.list

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

firebaseml.projects.locations.publishers.models.countTokens

valid {
    input.Body.contents[_].parts[_].fileData.fileUri == STRING
    input.Body.contents[_].parts[_].fileData.mimeType == STRING
    input.Body.contents[_].parts[_].functionCall.args.STRING == ANY
    input.Body.contents[_].parts[_].functionCall.name == STRING
    input.Body.contents[_].parts[_].functionResponse.name == STRING
    input.Body.contents[_].parts[_].functionResponse.response.STRING == ANY
    input.Body.contents[_].parts[_].inlineData.data == STRING
    input.Body.contents[_].parts[_].inlineData.mimeType == STRING
    input.Body.contents[_].parts[_].text == STRING
    input.Body.contents[_].parts[_].videoMetadata.endOffset == STRING
    input.Body.contents[_].parts[_].videoMetadata.startOffset == STRING
    input.Body.contents[_].role == STRING
    input.Body.instances[_] == ANY
    input.Body.model == STRING
    input.ReqMap.endpoint == STRING
    input.ProviderMetadata.Region == STRING
}

firebaseml.projects.locations.publishers.models.generateContent

enum_FunctionCallingConfigMode := [ "MODE_UNSPECIFIED", "AUTO", "ANY", "NONE" ]
enum_SafetySettingCategory := [ "HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT" ]
enum_SafetySettingMethod := [ "HARM_BLOCK_METHOD_UNSPECIFIED", "SEVERITY", "PROBABILITY" ]
enum_SafetySettingThreshold := [ "HARM_BLOCK_THRESHOLD_UNSPECIFIED", "BLOCK_LOW_AND_ABOVE", "BLOCK_MEDIUM_AND_ABOVE", "BLOCK_ONLY_HIGH", "BLOCK_NONE" ]
enum_SchemaType := [ "TYPE_UNSPECIFIED", "STRING", "NUMBER", "INTEGER", "BOOLEAN", "ARRAY", "OBJECT" ]

valid {
    input.Body.contents[_].parts[_].fileData.fileUri == STRING
    input.Body.contents[_].parts[_].fileData.mimeType == STRING
    input.Body.contents[_].parts[_].functionCall.args.STRING == ANY
    input.Body.contents[_].parts[_].functionCall.name == STRING
    input.Body.contents[_].parts[_].functionResponse.name == STRING
    input.Body.contents[_].parts[_].functionResponse.response.STRING == ANY
    input.Body.contents[_].parts[_].inlineData.data == STRING
    input.Body.contents[_].parts[_].inlineData.mimeType == STRING
    input.Body.contents[_].parts[_].text == STRING
    input.Body.contents[_].parts[_].videoMetadata.endOffset == STRING
    input.Body.contents[_].parts[_].videoMetadata.startOffset == STRING
    input.Body.contents[_].role == STRING
    input.Body.generationConfig.candidateCount == INTEGER
    input.Body.generationConfig.frequencyPenalty == NUMBER
    input.Body.generationConfig.maxOutputTokens == INTEGER
    input.Body.generationConfig.presencePenalty == NUMBER
    input.Body.generationConfig.responseMimeType == STRING
    input.Body.generationConfig.stopSequences[_] == STRING
    input.Body.generationConfig.temperature == NUMBER
    input.Body.generationConfig.topK == NUMBER
    input.Body.generationConfig.topP == NUMBER
    input.Body.safetySettings[_].category == enum_SafetySettingCategory[_]
    input.Body.safetySettings[_].method == enum_SafetySettingMethod[_]
    input.Body.safetySettings[_].threshold == enum_SafetySettingThreshold[_]
    input.Body.systemInstruction.parts[_].fileData.fileUri == STRING
    input.Body.systemInstruction.parts[_].fileData.mimeType == STRING
    input.Body.systemInstruction.parts[_].functionCall.args.STRING == ANY
    input.Body.systemInstruction.parts[_].functionCall.name == STRING
    input.Body.systemInstruction.parts[_].functionResponse.name == STRING
    input.Body.systemInstruction.parts[_].functionResponse.response.STRING == ANY
    input.Body.systemInstruction.parts[_].inlineData.data == STRING
    input.Body.systemInstruction.parts[_].inlineData.mimeType == STRING
    input.Body.systemInstruction.parts[_].text == STRING
    input.Body.systemInstruction.parts[_].videoMetadata.endOffset == STRING
    input.Body.systemInstruction.parts[_].videoMetadata.startOffset == STRING
    input.Body.systemInstruction.role == STRING
    input.Body.toolConfig.functionCallingConfig.allowedFunctionNames[_] == STRING
    input.Body.toolConfig.functionCallingConfig.mode == enum_FunctionCallingConfigMode[_]
    input.Body.tools[_].functionDeclarations[_].description == STRING
    input.Body.tools[_].functionDeclarations[_].name == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.default == ANY
    input.Body.tools[_].functionDeclarations[_].parameters.description == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.enum[_] == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.example == ANY
    input.Body.tools[_].functionDeclarations[_].parameters.format == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.items == NESTED
    input.Body.tools[_].functionDeclarations[_].parameters.maxItems == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.maxLength == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.maxProperties == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.maximum == NUMBER
    input.Body.tools[_].functionDeclarations[_].parameters.minItems == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.minLength == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.minProperties == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.minimum == NUMBER
    input.Body.tools[_].functionDeclarations[_].parameters.nullable == BOOLEAN
    input.Body.tools[_].functionDeclarations[_].parameters.pattern == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.properties.STRING == NESTED
    input.Body.tools[_].functionDeclarations[_].parameters.required[_] == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.title == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.type == enum_SchemaType[_]
    input.Body.tools[_].functionDeclarations[_].response.default == ANY
    input.Body.tools[_].functionDeclarations[_].response.description == STRING
    input.Body.tools[_].functionDeclarations[_].response.enum[_] == STRING
    input.Body.tools[_].functionDeclarations[_].response.example == ANY
    input.Body.tools[_].functionDeclarations[_].response.format == STRING
    input.Body.tools[_].functionDeclarations[_].response.items == NESTED
    input.Body.tools[_].functionDeclarations[_].response.maxItems == STRING
    input.Body.tools[_].functionDeclarations[_].response.maxLength == STRING
    input.Body.tools[_].functionDeclarations[_].response.maxProperties == STRING
    input.Body.tools[_].functionDeclarations[_].response.maximum == NUMBER
    input.Body.tools[_].functionDeclarations[_].response.minItems == STRING
    input.Body.tools[_].functionDeclarations[_].response.minLength == STRING
    input.Body.tools[_].functionDeclarations[_].response.minProperties == STRING
    input.Body.tools[_].functionDeclarations[_].response.minimum == NUMBER
    input.Body.tools[_].functionDeclarations[_].response.nullable == BOOLEAN
    input.Body.tools[_].functionDeclarations[_].response.pattern == STRING
    input.Body.tools[_].functionDeclarations[_].response.properties.STRING == NESTED
    input.Body.tools[_].functionDeclarations[_].response.required[_] == STRING
    input.Body.tools[_].functionDeclarations[_].response.title == STRING
    input.Body.tools[_].functionDeclarations[_].response.type == enum_SchemaType[_]
    input.Body.tools[_].retrieval.disableAttribution == BOOLEAN
    input.Body.tools[_].retrieval.vertexAiSearch.datastore == STRING
    input.Body.tools[_].retrieval.vertexRagStore.ragCorpora[_] == STRING
    input.Body.tools[_].retrieval.vertexRagStore.similarityTopK == INTEGER
    input.Body.tools[_].retrieval.vertexRagStore.vectorDistanceThreshold == NUMBER
    input.ReqMap.model == STRING
    input.ProviderMetadata.Region == STRING
}

firebaseml.projects.locations.publishers.models.streamGenerateContent

enum_FunctionCallingConfigMode := [ "MODE_UNSPECIFIED", "AUTO", "ANY", "NONE" ]
enum_SafetySettingCategory := [ "HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT" ]
enum_SafetySettingMethod := [ "HARM_BLOCK_METHOD_UNSPECIFIED", "SEVERITY", "PROBABILITY" ]
enum_SafetySettingThreshold := [ "HARM_BLOCK_THRESHOLD_UNSPECIFIED", "BLOCK_LOW_AND_ABOVE", "BLOCK_MEDIUM_AND_ABOVE", "BLOCK_ONLY_HIGH", "BLOCK_NONE" ]
enum_SchemaType := [ "TYPE_UNSPECIFIED", "STRING", "NUMBER", "INTEGER", "BOOLEAN", "ARRAY", "OBJECT" ]

valid {
    input.Body.contents[_].parts[_].fileData.fileUri == STRING
    input.Body.contents[_].parts[_].fileData.mimeType == STRING
    input.Body.contents[_].parts[_].functionCall.args.STRING == ANY
    input.Body.contents[_].parts[_].functionCall.name == STRING
    input.Body.contents[_].parts[_].functionResponse.name == STRING
    input.Body.contents[_].parts[_].functionResponse.response.STRING == ANY
    input.Body.contents[_].parts[_].inlineData.data == STRING
    input.Body.contents[_].parts[_].inlineData.mimeType == STRING
    input.Body.contents[_].parts[_].text == STRING
    input.Body.contents[_].parts[_].videoMetadata.endOffset == STRING
    input.Body.contents[_].parts[_].videoMetadata.startOffset == STRING
    input.Body.contents[_].role == STRING
    input.Body.generationConfig.candidateCount == INTEGER
    input.Body.generationConfig.frequencyPenalty == NUMBER
    input.Body.generationConfig.maxOutputTokens == INTEGER
    input.Body.generationConfig.presencePenalty == NUMBER
    input.Body.generationConfig.responseMimeType == STRING
    input.Body.generationConfig.stopSequences[_] == STRING
    input.Body.generationConfig.temperature == NUMBER
    input.Body.generationConfig.topK == NUMBER
    input.Body.generationConfig.topP == NUMBER
    input.Body.safetySettings[_].category == enum_SafetySettingCategory[_]
    input.Body.safetySettings[_].method == enum_SafetySettingMethod[_]
    input.Body.safetySettings[_].threshold == enum_SafetySettingThreshold[_]
    input.Body.systemInstruction.parts[_].fileData.fileUri == STRING
    input.Body.systemInstruction.parts[_].fileData.mimeType == STRING
    input.Body.systemInstruction.parts[_].functionCall.args.STRING == ANY
    input.Body.systemInstruction.parts[_].functionCall.name == STRING
    input.Body.systemInstruction.parts[_].functionResponse.name == STRING
    input.Body.systemInstruction.parts[_].functionResponse.response.STRING == ANY
    input.Body.systemInstruction.parts[_].inlineData.data == STRING
    input.Body.systemInstruction.parts[_].inlineData.mimeType == STRING
    input.Body.systemInstruction.parts[_].text == STRING
    input.Body.systemInstruction.parts[_].videoMetadata.endOffset == STRING
    input.Body.systemInstruction.parts[_].videoMetadata.startOffset == STRING
    input.Body.systemInstruction.role == STRING
    input.Body.toolConfig.functionCallingConfig.allowedFunctionNames[_] == STRING
    input.Body.toolConfig.functionCallingConfig.mode == enum_FunctionCallingConfigMode[_]
    input.Body.tools[_].functionDeclarations[_].description == STRING
    input.Body.tools[_].functionDeclarations[_].name == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.default == ANY
    input.Body.tools[_].functionDeclarations[_].parameters.description == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.enum[_] == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.example == ANY
    input.Body.tools[_].functionDeclarations[_].parameters.format == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.items == NESTED
    input.Body.tools[_].functionDeclarations[_].parameters.maxItems == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.maxLength == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.maxProperties == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.maximum == NUMBER
    input.Body.tools[_].functionDeclarations[_].parameters.minItems == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.minLength == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.minProperties == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.minimum == NUMBER
    input.Body.tools[_].functionDeclarations[_].parameters.nullable == BOOLEAN
    input.Body.tools[_].functionDeclarations[_].parameters.pattern == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.properties.STRING == NESTED
    input.Body.tools[_].functionDeclarations[_].parameters.required[_] == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.title == STRING
    input.Body.tools[_].functionDeclarations[_].parameters.type == enum_SchemaType[_]
    input.Body.tools[_].functionDeclarations[_].response.default == ANY
    input.Body.tools[_].functionDeclarations[_].response.description == STRING
    input.Body.tools[_].functionDeclarations[_].response.enum[_] == STRING
    input.Body.tools[_].functionDeclarations[_].response.example == ANY
    input.Body.tools[_].functionDeclarations[_].response.format == STRING
    input.Body.tools[_].functionDeclarations[_].response.items == NESTED
    input.Body.tools[_].functionDeclarations[_].response.maxItems == STRING
    input.Body.tools[_].functionDeclarations[_].response.maxLength == STRING
    input.Body.tools[_].functionDeclarations[_].response.maxProperties == STRING
    input.Body.tools[_].functionDeclarations[_].response.maximum == NUMBER
    input.Body.tools[_].functionDeclarations[_].response.minItems == STRING
    input.Body.tools[_].functionDeclarations[_].response.minLength == STRING
    input.Body.tools[_].functionDeclarations[_].response.minProperties == STRING
    input.Body.tools[_].functionDeclarations[_].response.minimum == NUMBER
    input.Body.tools[_].functionDeclarations[_].response.nullable == BOOLEAN
    input.Body.tools[_].functionDeclarations[_].response.pattern == STRING
    input.Body.tools[_].functionDeclarations[_].response.properties.STRING == NESTED
    input.Body.tools[_].functionDeclarations[_].response.required[_] == STRING
    input.Body.tools[_].functionDeclarations[_].response.title == STRING
    input.Body.tools[_].functionDeclarations[_].response.type == enum_SchemaType[_]
    input.Body.tools[_].retrieval.disableAttribution == BOOLEAN
    input.Body.tools[_].retrieval.vertexAiSearch.datastore == STRING
    input.Body.tools[_].retrieval.vertexRagStore.ragCorpora[_] == STRING
    input.Body.tools[_].retrieval.vertexRagStore.similarityTopK == INTEGER
    input.Body.tools[_].retrieval.vertexRagStore.vectorDistanceThreshold == NUMBER
    input.ReqMap.model == STRING
    input.ProviderMetadata.Region == STRING
}

firebaseml.projects.models.create

valid {
    input.Body.displayName == STRING
    input.Body.name == STRING
    input.Body.state.published == BOOLEAN
    input.Body.tags[_] == STRING
    input.Body.tfliteModel.automlModel == STRING
    input.Body.tfliteModel.gcsTfliteUri == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

firebaseml.projects.models.delete

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

firebaseml.projects.models.download

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

firebaseml.projects.models.get

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

firebaseml.projects.models.list

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

firebaseml.projects.models.patch

valid {
    input.Body.displayName == STRING
    input.Body.name == STRING
    input.Body.state.published == BOOLEAN
    input.Body.tags[_] == STRING
    input.Body.tfliteModel.automlModel == STRING
    input.Body.tfliteModel.gcsTfliteUri == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

firebaseml.projects.operations.get

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