{"openapi":"3.0.3","info":{"title":"API CaldaJusta","description":"Este aplicativo permite calcular a dose das caldas para qualquer pulverizador e registrar as aplicações para o técnico e a certificadora. Prova de conceito gerada no Embrapa I/O Forge: as contas e os dados vêm do levantamento do projeto e ainda não servem ao público final.\n\nToda chamada a `/v1` pede uma chave de API, no cabeçalho `Authorization: Bearer <chave>` ou `X-API-Key: <chave>`. Cada chave tem um limite de chamadas por minuto e uma cota mensal; as respostas trazem os cabeçalhos `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-Quota-Limit` e `X-Quota-Remaining`.","version":"0.26.11-alpha.1"},"servers":[{"url":"https://test-caldajusta-api.alpha.agro.rocks","description":"Estágio alpha"}],"tags":[{"name":"Cálculos","description":"As contas do projeto: envie as entradas e receba o resultado."},{"name":"Catálogos","description":"Dados de referência do projeto, prontos para consulta."},{"name":"Serviço","description":"Situação do serviço."}],"security":[{"BearerKey":[]},{"HeaderKey":[]}],"paths":{"/v1/formulas":{"get":{"tags":["Cálculos"],"operationId":"list_formulas","summary":"Lista as contas que a API faz","responses":{"200":{"description":"Contas disponíveis, com as entradas de cada uma","content":{"application/json":{"schema":{"type":"object","properties":{"formulas":{"type":"array","items":{"$ref":"#/components/schemas/Formula"}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/formulas/bordelaise_copper_g":{"post":{"tags":["Cálculos"],"operationId":"calculate_bordelaise_copper_g","summary":"Sulfato de cobre da bordalesa","description":"Fonte: Equipe do projeto","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["volume_l","concentration_pct"],"properties":{"volume_l":{"type":"number","description":"volume da calda a preparar (litros)","example":20},"concentration_pct":{"type":"number","description":"concentração desejada (%, por exemplo 1 para 1%)","example":1}}},"example":{"volume_l":20,"concentration_pct":1}}}},"responses":{"200":{"description":"Resultado da conta","content":{"application/json":{"schema":{"type":"object","required":["code_name","name","result","unit","inputs"],"properties":{"code_name":{"type":"string","example":"bordelaise_copper_g"},"name":{"type":"string","example":"Sulfato de cobre da bordalesa"},"result":{"type":"number","description":"Resultado da conta (g de sulfato de cobre)","example":200},"unit":{"type":"string","description":"Unidade do resultado","example":"g de sulfato de cobre"},"inputs":{"type":"object","additionalProperties":false,"required":["volume_l","concentration_pct"],"properties":{"volume_l":{"type":"number","description":"volume da calda a preparar (litros)","example":20},"concentration_pct":{"type":"number","description":"concentração desejada (%, por exemplo 1 para 1%)","example":1}},"description":"As entradas usadas na conta"}}}}}},"400":{"description":"O corpo da chamada não é um JSON válido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"description":"Entrada ausente, com tipo errado ou com a qual a conta não fecha (divisão por zero, por exemplo)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/formulas/bordelaise_quicklime_g":{"post":{"tags":["Cálculos"],"operationId":"calculate_bordelaise_quicklime_g","summary":"Cal virgem da bordalesa","description":"Fonte: Equipe do projeto","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["volume_l","concentration_pct"],"properties":{"volume_l":{"type":"number","description":"volume da calda a preparar (litros)","example":20},"concentration_pct":{"type":"number","description":"concentração desejada (%, por exemplo 1 para 1%)","example":1}}},"example":{"volume_l":20,"concentration_pct":1}}}},"responses":{"200":{"description":"Resultado da conta","content":{"application/json":{"schema":{"type":"object","required":["code_name","name","result","unit","inputs"],"properties":{"code_name":{"type":"string","example":"bordelaise_quicklime_g"},"name":{"type":"string","example":"Cal virgem da bordalesa"},"result":{"type":"number","description":"Resultado da conta (g de cal virgem)","example":200},"unit":{"type":"string","description":"Unidade do resultado","example":"g de cal virgem"},"inputs":{"type":"object","additionalProperties":false,"required":["volume_l","concentration_pct"],"properties":{"volume_l":{"type":"number","description":"volume da calda a preparar (litros)","example":20},"concentration_pct":{"type":"number","description":"concentração desejada (%, por exemplo 1 para 1%)","example":1}},"description":"As entradas usadas na conta"}}}}}},"400":{"description":"O corpo da chamada não é um JSON válido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"description":"Entrada ausente, com tipo errado ou com a qual a conta não fecha (divisão por zero, por exemplo)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/formulas/bordelaise_slaked_lime_g":{"post":{"tags":["Cálculos"],"operationId":"calculate_bordelaise_slaked_lime_g","summary":"Cal hidratada da bordalesa","description":"Fonte: Equipe do projeto","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["volume_l","concentration_pct"],"properties":{"volume_l":{"type":"number","description":"volume da calda a preparar (litros)","example":10},"concentration_pct":{"type":"number","description":"concentração desejada (%, por exemplo 1 para 1%)","example":1}}},"example":{"volume_l":10,"concentration_pct":1}}}},"responses":{"200":{"description":"Resultado da conta","content":{"application/json":{"schema":{"type":"object","required":["code_name","name","result","unit","inputs"],"properties":{"code_name":{"type":"string","example":"bordelaise_slaked_lime_g"},"name":{"type":"string","example":"Cal hidratada da bordalesa"},"result":{"type":"number","description":"Resultado da conta (g de cal hidratada)","example":180},"unit":{"type":"string","description":"Unidade do resultado","example":"g de cal hidratada"},"inputs":{"type":"object","additionalProperties":false,"required":["volume_l","concentration_pct"],"properties":{"volume_l":{"type":"number","description":"volume da calda a preparar (litros)","example":10},"concentration_pct":{"type":"number","description":"concentração desejada (%, por exemplo 1 para 1%)","example":1}},"description":"As entradas usadas na conta"}}}}}},"400":{"description":"O corpo da chamada não é um JSON válido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"description":"Entrada ausente, com tipo errado ou com a qual a conta não fecha (divisão por zero, por exemplo)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/formulas/bordelaise_stock_solution_l":{"post":{"tags":["Cálculos"],"operationId":"calculate_bordelaise_stock_solution_l","summary":"Solução estoque da bordalesa","description":"Fonte: Equipe do projeto","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["volume_l","concentration_pct"],"properties":{"volume_l":{"type":"number","description":"volume da calda a preparar (litros)","example":10},"concentration_pct":{"type":"number","description":"concentração desejada (%, por exemplo 2 para 2%)","example":2}}},"example":{"volume_l":10,"concentration_pct":2}}}},"responses":{"200":{"description":"Resultado da conta","content":{"application/json":{"schema":{"type":"object","required":["code_name","name","result","unit","inputs"],"properties":{"code_name":{"type":"string","example":"bordelaise_stock_solution_l"},"name":{"type":"string","example":"Solução estoque da bordalesa"},"result":{"type":"number","description":"Resultado da conta (litros de solução estoque de cobre, e o mesmo tanto da solução estoque de cal)","example":2},"unit":{"type":"string","description":"Unidade do resultado","example":"litros de solução estoque de cobre, e o mesmo tanto da solução estoque de cal"},"inputs":{"type":"object","additionalProperties":false,"required":["volume_l","concentration_pct"],"properties":{"volume_l":{"type":"number","description":"volume da calda a preparar (litros)","example":10},"concentration_pct":{"type":"number","description":"concentração desejada (%, por exemplo 2 para 2%)","example":2}},"description":"As entradas usadas na conta"}}}}}},"400":{"description":"O corpo da chamada não é um JSON válido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"description":"Entrada ausente, com tipo errado ou com a qual a conta não fecha (divisão por zero, por exemplo)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/formulas/vicosa_copper_g":{"post":{"tags":["Cálculos"],"operationId":"calculate_vicosa_copper_g","summary":"Sulfato de cobre da calda Viçosa","description":"Fonte: Equipe do projeto","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["volume_l"],"properties":{"volume_l":{"type":"number","description":"volume da calda a preparar (litros)","example":20}}},"example":{"volume_l":20}}}},"responses":{"200":{"description":"Resultado da conta","content":{"application/json":{"schema":{"type":"object","required":["code_name","name","result","unit","inputs"],"properties":{"code_name":{"type":"string","example":"vicosa_copper_g"},"name":{"type":"string","example":"Sulfato de cobre da calda Viçosa"},"result":{"type":"number","description":"Resultado da conta (g de sulfato de cobre)","example":75},"unit":{"type":"string","description":"Unidade do resultado","example":"g de sulfato de cobre"},"inputs":{"type":"object","additionalProperties":false,"required":["volume_l"],"properties":{"volume_l":{"type":"number","description":"volume da calda a preparar (litros)","example":20}},"description":"As entradas usadas na conta"}}}}}},"400":{"description":"O corpo da chamada não é um JSON válido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"description":"Entrada ausente, com tipo errado ou com a qual a conta não fecha (divisão por zero, por exemplo)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/formulas/acidity_correction_lime_g":{"post":{"tags":["Cálculos"],"operationId":"calculate_acidity_correction_lime_g","summary":"Cal para corrigir a bordalesa ácida","description":"Fonte: Equipe do projeto","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["volume_l"],"properties":{"volume_l":{"type":"number","description":"volume da calda a preparar (litros)","example":20}}},"example":{"volume_l":20}}}},"responses":{"200":{"description":"Resultado da conta","content":{"application/json":{"schema":{"type":"object","required":["code_name","name","result","unit","inputs"],"properties":{"code_name":{"type":"string","example":"acidity_correction_lime_g"},"name":{"type":"string","example":"Cal para corrigir a bordalesa ácida"},"result":{"type":"number","description":"Resultado da conta (g de cal a mais)","example":40},"unit":{"type":"string","description":"Unidade do resultado","example":"g de cal a mais"},"inputs":{"type":"object","additionalProperties":false,"required":["volume_l"],"properties":{"volume_l":{"type":"number","description":"volume da calda a preparar (litros)","example":20}},"description":"As entradas usadas na conta"}}}}}},"400":{"description":"O corpo da chamada não é um JSON válido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"description":"Entrada ausente, com tipo errado ou com a qual a conta não fecha (divisão por zero, por exemplo)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/formulas/bordalaise_direct_dose":{"post":{"tags":["Cálculos"],"operationId":"calculate_bordalaise_direct_dose","summary":"Dose dos insumos da bordalesa para qualquer volume","description":"Fonte: Equipe do projeto","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["volume_l","concentration_pct","is_hydrated_lime"],"properties":{"volume_l":{"type":"number","description":"volume de calda a preparar (litros)","example":20},"concentration_pct":{"type":"number","description":"concentração desejada (%, por exemplo 1 para 1%)","example":1},"is_hydrated_lime":{"type":"number","description":"cal hidratada (1) ou cal virgem (0)","example":0}}},"example":{"volume_l":20,"concentration_pct":1,"is_hydrated_lime":0}}}},"responses":{"200":{"description":"Resultado da conta","content":{"application/json":{"schema":{"type":"object","required":["code_name","name","result","unit","inputs"],"properties":{"code_name":{"type":"string","example":"bordalaise_direct_dose"},"name":{"type":"string","example":"Dose dos insumos da bordalesa para qualquer volume"},"result":{"type":"number","description":"Resultado da conta (g de sulfato de cobre e o mesmo valor de cal virgem (com cal hidratada, o resultado já vem multiplicado por 1,8))","example":2},"unit":{"type":"string","description":"Unidade do resultado","example":"g de sulfato de cobre e o mesmo valor de cal virgem (com cal hidratada, o resultado já vem multiplicado por 1,8)"},"inputs":{"type":"object","additionalProperties":false,"required":["volume_l","concentration_pct","is_hydrated_lime"],"properties":{"volume_l":{"type":"number","description":"volume de calda a preparar (litros)","example":20},"concentration_pct":{"type":"number","description":"concentração desejada (%, por exemplo 1 para 1%)","example":1},"is_hydrated_lime":{"type":"number","description":"cal hidratada (1) ou cal virgem (0)","example":0}},"description":"As entradas usadas na conta"}}}}}},"400":{"description":"O corpo da chamada não é um JSON válido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"description":"Entrada ausente, com tipo errado ou com a qual a conta não fecha (divisão por zero, por exemplo)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/catalogs":{"get":{"tags":["Catálogos"],"operationId":"list_catalogs","summary":"Lista os catálogos de dados de referência","responses":{"200":{"description":"Catálogos disponíveis","content":{"application/json":{"schema":{"type":"object","properties":{"catalogs":{"type":"array","items":{"type":"object","required":["code_name","name"],"properties":{"code_name":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"}}}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/catalogs/crop_mix_rate":{"get":{"tags":["Catálogos"],"operationId":"list_crop_mix_rate","summary":"Caldas por cultura, doença e concentração","description":"As doses por cultura que o app oferece como sugestão quando a pessoa escolhe a calda e a cultura no formulário.\n\nFonte: Schwengber, Schiedeck e Gonçalves (2007), Quadros 2 e 4; Motta (2016); Pereira e Pinheiro (2012), Circular Técnica 111.","parameters":[{"name":"q","in":"query","description":"Texto a procurar em qualquer coluna (sem diferenciar maiúsculas nem acentos)","schema":{"type":"string"}},{"name":"limit","in":"query","description":"Quantas linhas devolver","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}},{"name":"offset","in":"query","description":"Quantas linhas pular","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"Linhas do catálogo","content":{"application/json":{"schema":{"type":"object","required":["code_name","name","columns","total","offset","limit","rows"],"properties":{"code_name":{"type":"string","example":"crop_mix_rate"},"name":{"type":"string","example":"Caldas por cultura, doença e concentração"},"description":{"type":"string"},"source":{"type":"string"},"example":{"type":"boolean","description":"true quando as linhas são exemplos a validar"},"columns":{"type":"array","items":{"$ref":"#/components/schemas/Column"}},"total":{"type":"integer","description":"Linhas que atendem à busca"},"offset":{"type":"integer"},"limit":{"type":"integer"},"rows":{"type":"array","items":{"type":"object","properties":{"cultura":{"description":"Cultura","nullable":true},"calda":{"description":"Calda","nullable":true},"concentracao_de_uso":{"description":"Concentração de uso","nullable":true},"quando_aplicar":{"description":"Quando aplicar","nullable":true},"alvo":{"description":"Alvo","nullable":true},"fonte":{"description":"Fonte","nullable":true}}}}}},"example":{"code_name":"crop_mix_rate","name":"Caldas por cultura, doença e concentração","description":"As doses por cultura que o app oferece como sugestão quando a pessoa escolhe a calda e a cultura no formulário.","source":"Schwengber, Schiedeck e Gonçalves (2007), Quadros 2 e 4; Motta (2016); Pereira e Pinheiro (2012), Circular Técnica 111.","example":false,"columns":[{"key":"cultura","label":"Cultura"},{"key":"calda","label":"Calda"},{"key":"concentracao_de_uso","label":"Concentração de uso"},{"key":"quando_aplicar","label":"Quando aplicar"},{"key":"alvo","label":"Alvo"},{"key":"fonte","label":"Fonte"}],"total":10,"offset":0,"limit":100,"rows":[{"cultura":"Tomate","calda":"Bordalesa","concentracao_de_uso":"0,5% a 1,0%","quando_aplicar":"Aplicações quinzenais","alvo":"Mancha bacteriana e doenças foliares","fonte":"Schwengber et al. (2007), Quadro 2; Pereira e Pinheiro (2012)"},{"cultura":"Café","calda":"Bordalesa","concentracao_de_uso":"1,0% a 1,5%","quando_aplicar":"Fase de crescimento","alvo":"Ferrugem","fonte":"Schwengber et al. (2007)"}]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"description":"Parâmetro de consulta inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/catalogs/ls_dilution_table":{"get":{"tags":["Catálogos"],"operationId":"list_ls_dilution_table","summary":"Diluição da sulfocálcica em °Bé","description":"A tabela que diz quantos litros de água juntar a cada litro de calda original, conforme a densidade medida no areômetro e a densidade desejada.\n\nFonte: Tabela de diluição da sulfocálcica em °Bé das publicações de 2007 (Schwengber, Schiedeck e Gonçalves) e de 2016 (Motta), indicada pela pessoa.","parameters":[{"name":"q","in":"query","description":"Texto a procurar em qualquer coluna (sem diferenciar maiúsculas nem acentos)","schema":{"type":"string"}},{"name":"limit","in":"query","description":"Quantas linhas devolver","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}},{"name":"offset","in":"query","description":"Quantas linhas pular","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"Linhas do catálogo","content":{"application/json":{"schema":{"type":"object","required":["code_name","name","columns","total","offset","limit","rows"],"properties":{"code_name":{"type":"string","example":"ls_dilution_table"},"name":{"type":"string","example":"Diluição da sulfocálcica em °Bé"},"description":{"type":"string"},"source":{"type":"string"},"example":{"type":"boolean","description":"true quando as linhas são exemplos a validar"},"columns":{"type":"array","items":{"$ref":"#/components/schemas/Column"}},"total":{"type":"integer","description":"Linhas que atendem à busca"},"offset":{"type":"integer"},"limit":{"type":"integer"},"rows":{"type":"array","items":{"type":"object","properties":{"densidade_medida_be":{"description":"Densidade medida (°Bé)","nullable":true},"c_4_0_be":{"description":"4,0 °Bé","nullable":true},"c_3_5_be":{"description":"3,5 °Bé","nullable":true},"c_3_0_be":{"description":"3,0 °Bé","nullable":true},"c_2_5_be":{"description":"2,5 °Bé","nullable":true},"c_2_0_be":{"description":"2,0 °Bé","nullable":true},"c_1_5_be":{"description":"1,5 °Bé","nullable":true},"c_1_0_be":{"description":"1,0 °Bé","nullable":true},"c_0_8_be":{"description":"0,8 °Bé","nullable":true},"c_0_5_be":{"description":"0,5 °Bé","nullable":true},"c_0_3_be":{"description":"0,3 °Bé","nullable":true}}}}}},"example":{"code_name":"ls_dilution_table","name":"Diluição da sulfocálcica em °Bé","description":"A tabela que diz quantos litros de água juntar a cada litro de calda original, conforme a densidade medida no areômetro e a densidade desejada.","source":"Tabela de diluição da sulfocálcica em °Bé das publicações de 2007 (Schwengber, Schiedeck e Gonçalves) e de 2016 (Motta), indicada pela pessoa.","example":false,"columns":[{"key":"densidade_medida_be","label":"Densidade medida (°Bé)"},{"key":"c_4_0_be","label":"4,0 °Bé"},{"key":"c_3_5_be","label":"3,5 °Bé"},{"key":"c_3_0_be","label":"3,0 °Bé"},{"key":"c_2_5_be","label":"2,5 °Bé"},{"key":"c_2_0_be","label":"2,0 °Bé"},{"key":"c_1_5_be","label":"1,5 °Bé"},{"key":"c_1_0_be","label":"1,0 °Bé"},{"key":"c_0_8_be","label":"0,8 °Bé"},{"key":"c_0_5_be","label":"0,5 °Bé"},{"key":"c_0_3_be","label":"0,3 °Bé"}],"total":6,"offset":0,"limit":100,"rows":[{"densidade_medida_be":"30","c_4_0_be":"a confirmar","c_3_5_be":"a confirmar","c_3_0_be":"a confirmar","c_2_5_be":"a confirmar","c_2_0_be":"a confirmar","c_1_5_be":"a confirmar","c_1_0_be":"a confirmar","c_0_8_be":"46,0","c_0_5_be":"a confirmar","c_0_3_be":"a confirmar"},{"densidade_medida_be":"28","c_4_0_be":"a confirmar","c_3_5_be":"a confirmar","c_3_0_be":"a confirmar","c_2_5_be":"a confirmar","c_2_0_be":"a confirmar","c_1_5_be":"a confirmar","c_1_0_be":"a confirmar","c_0_8_be":"a confirmar","c_0_5_be":"a confirmar","c_0_3_be":"a confirmar"}]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"description":"Parâmetro de consulta inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/catalogs/spray_recipe":{"get":{"tags":["Catálogos"],"operationId":"list_spray_recipe","summary":"Receitas das caldas","description":"As receitas que o app usa para calcular a dose dos insumos em qualquer volume: bordalesa, sulfocálcica e Viçosa, cada uma receita própria.\n\nFonte: Bordalesa direta: valores dados pela pessoa, de Motta, I. de S. Calda bordalesa: utilidades e preparo. Dourados: Embrapa Agropecuária Oeste, 2016. Sulfocálcica e Viçosa são receitas próprias, cada uma no seu volume de referência.","parameters":[{"name":"q","in":"query","description":"Texto a procurar em qualquer coluna (sem diferenciar maiúsculas nem acentos)","schema":{"type":"string"}},{"name":"limit","in":"query","description":"Quantas linhas devolver","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}},{"name":"offset","in":"query","description":"Quantas linhas pular","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"Linhas do catálogo","content":{"application/json":{"schema":{"type":"object","required":["code_name","name","columns","total","offset","limit","rows"],"properties":{"code_name":{"type":"string","example":"spray_recipe"},"name":{"type":"string","example":"Receitas das caldas"},"description":{"type":"string"},"source":{"type":"string"},"example":{"type":"boolean","description":"true quando as linhas são exemplos a validar"},"columns":{"type":"array","items":{"$ref":"#/components/schemas/Column"}},"total":{"type":"integer","description":"Linhas que atendem à busca"},"offset":{"type":"integer"},"limit":{"type":"integer"},"rows":{"type":"array","items":{"type":"object","properties":{"calda":{"description":"Calda","nullable":true},"modo_de_preparo":{"description":"Modo de preparo","nullable":true},"insumo":{"description":"Insumo","nullable":true},"quantidade":{"description":"Quantidade","nullable":true},"volume_de_referencia":{"description":"Volume de referência","nullable":true},"fonte":{"description":"Fonte","nullable":true}}}}}},"example":{"code_name":"spray_recipe","name":"Receitas das caldas","description":"As receitas que o app usa para calcular a dose dos insumos em qualquer volume: bordalesa, sulfocálcica e Viçosa, cada uma receita própria.","source":"Bordalesa direta: valores dados pela pessoa, de Motta, I. de S. Calda bordalesa: utilidades e preparo. Dourados: Embrapa Agropecuária Oeste, 2016. Sulfocálcica e Viçosa são receitas próprias, cada uma no seu volume de referência.","example":false,"columns":[{"key":"calda","label":"Calda"},{"key":"modo_de_preparo","label":"Modo de preparo"},{"key":"insumo","label":"Insumo"},{"key":"quantidade","label":"Quantidade"},{"key":"volume_de_referencia","label":"Volume de referência"},{"key":"fonte","label":"Fonte"}],"total":14,"offset":0,"limit":100,"rows":[{"calda":"Bordalesa","modo_de_preparo":"Direto","insumo":"Sulfato de cobre","quantidade":"100 g","volume_de_referencia":"10 litros a 1%","fonte":"Motta, 2016"},{"calda":"Bordalesa","modo_de_preparo":"Direto","insumo":"Cal virgem","quantidade":"100 g","volume_de_referencia":"10 litros a 1%","fonte":"Motta, 2016"}]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"description":"Parâmetro de consulta inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/health":{"get":{"tags":["Serviço"],"operationId":"health","summary":"Saúde do serviço","security":[],"responses":{"200":{"description":"O serviço está no ar","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"ok"},"version":{"type":"string"},"stage":{"type":"string"},"formulas":{"type":"integer"},"catalogs":{"type":"integer"},"database":{"type":"string","enum":["ok","unreachable"]}}}}}}}}}},"components":{"securitySchemes":{"BearerKey":{"type":"http","scheme":"bearer","description":"Chave de API no cabeçalho Authorization"},"HeaderKey":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Chave de API no cabeçalho X-API-Key"}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"INVALID_INPUT"},"message":{"type":"string"},"fields":{"type":"array","description":"Nas entradas inválidas, o problema de cada campo","items":{"type":"object","properties":{"field":{"type":"string"},"message":{"type":"string"}}}}}}}},"Column":{"type":"object","required":["key","label"],"properties":{"key":{"type":"string","description":"Chave da coluna nos objetos de `rows`"},"label":{"type":"string","description":"Nome da coluna"}}},"Formula":{"type":"object","required":["code_name","name","variables"],"properties":{"code_name":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"result_unit":{"type":"string"},"source":{"type":"string"},"variables":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string"},"description":{"type":"string"},"unit":{"type":"string"},"list":{"type":"boolean","description":"true quando a entrada é uma lista de números"}}}}}}},"responses":{"Unauthorized":{"description":"Chave de API ausente, inválida, expirada ou revogada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"Limite de chamadas por minuto ou cota mensal da chave atingidos","headers":{"Retry-After":{"description":"Segundos até a próxima chamada aceita (no limite por minuto)","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unavailable":{"description":"O serviço não conseguiu conferir a chave agora; tente de novo em instantes","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}