Licenciamento de recursos e limites de uso
Permissão para exportar difere de 500 exportações mensais. RunFeature verifica acesso; RunMeteredFeature confirma uso após sucesso.
Permitir 500 exportações por mês
Adicione export às funções e uma cota: export, 500, Mensal. Por padrão, após acabar, recusa o uso. Para permitir excedente, defina seu máximo; o sistema registra para seu sistema de pedidos.
Cotas diárias e mensais reiniciam à meia-noite UTC; acumuladas não reiniciam. Alterar a cota não apaga o uso consumido.
Confirmar o uso após exportar com sucesso
Passe sua função ao SDK. Novas tarefas usam novos IDs; novas tentativas mantêm ID, recurso e quantidade. Processos diferentes não devem executar o mesmo ID simultaneamente.
| Idioma | Chamada de operação por uso |
|---|---|
| Go | client.RunMeteredFeature(ctx, "export", 1, jobID, exportReport) |
| Java | client.runMeteredFeature("export", 1, jobID, this::exportReport) |
| Node.js | await client.runMeteredFeature("export", 1, jobID, exportReport) |
| Python | client.run_metered_feature("export", 1, job_id, export_report) |
| C# | await client.RunMeteredFeature("export", 1, jobID, ExportReport) |
| C++ | client.RunMeteredFeature("export", 1, jobID, exportReport) |
| Rust | client.run_metered_feature("export", 1, &job_id, || export_report())? |
| Ruby | client.run_metered_feature("export", 1, job_id) { export_report } |
| C | ln_run_metered_feature(client, "export", 1, job_id, export_report, context) |
Configure a meter for the actual feature in your policy, then generate the AI integration prompt. AI should use the language's RunMeteredFeature with a stable business operation ID, preserving that ID when retrying the same task.
Se a operação tiver sucesso mas a confirmação falhar, a repetição só confirma. Falha durante a operação bloqueia nova execução automática. Confira o resultado persistido e use ResolveMeteredFeature para confirmar ou cancelar. Uso remoto e operação local não são uma só transação.
Quando precisar controlar as reservas
- Crie e salve um ID de tarefa para esta exportação.
- Reserve uma unidade e exporte só após pending. committed indica que já terminou; não execute novamente.
- Após exportar com sucesso e salvar o resultado, chame Commit para confirmar o uso.
- Se a exportação falhar antes de concluir, chame Cancel para liberar a reserva sem consumir unidades.
Reservas duram 15 minutos por padrão, reduzidos na virada do período UTC. Na API, reservation_seconds aceita 30–3600 segundos.
| Idioma | Reservar | Confirmar / Cancelar |
|---|---|---|
| Go | Reserve(ctx, "export", 1, jobID) | Commit / Cancel(ctx, hold.ID, jobID) |
| Java / Node.js | reserve("export", 1, jobID) | commit / cancel(id, jobID) |
| C | ln_reserve(client, "export", 1, jobID) | ln_commit / ln_cancel(client, id, jobID) |
| C++ / C# | Reserve("export", 1, jobID) | Commit / Cancel(id, jobID) |
| Python | reserve("export", 1, jobID) | commit / cancel(id, jobID) |
Como interpretar os campos da resposta?
| Campo | Significado |
|---|---|
| reservation_id / operation_id | ID da reserva e ID original da tarefa; reutilize os mesmos valores nas tentativas. |
| status / expires_at | Estado e prazo: pending aguarda conclusão, committed foi debitado, canceled foi liberado, expired venceu. |
| consumption.used / reserved | Usos confirmados no período / unidades reservadas por todas as tarefas válidas. |
| consumption.limit / remaining | Cota básica / unidades básicas disponíveis. remaining = max(0, limit - used - reserved), sem o excedente permitido. |
| consumption.quantity / overage | Unidades desta tarefa / unidades confirmadas acima da cota básica; não há cobrança ao cliente. |
| consumption.period / reset_at | Período UTC / próxima reinicialização; cotas vitalícias têm reset_at = null. |
Veja corpos de solicitação, respostas e tipos de campos em Reserve, Commit e Cancel na referência da API de execução.
Após o sucesso, não cancele nem exporte de novo. Guarde IDs e resultado e repita Commit. Se a reserva expirou, mantenha a tarefa para conciliação. O consumo remoto e a operação local não formam uma transação atômica.
Consume registra uso imediatamente. Use reservas para não contar operações que falharam. Todos os endpoints de uso exigem conexão e não entram nas quatro operações API cobradas pela plataforma.