@lexnode/legal-data-sdk 1.18.0 → 1.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -75,6 +75,7 @@ await lexnode.subscriptions.create({ tribunalAlias, processNumber, externalRef }
75
75
  await lexnode.searchJobs.get(jobId);
76
76
  await lexnode.events.list({ limit: 50 });
77
77
  await lexnode.webhooks.endpoints.list();
78
+ await lexnode.webhooks.unsubscribedEventTypes();
78
79
  await lexnode.usage.get();
79
80
  ```
80
81
 
@@ -160,6 +161,9 @@ A afirmação é sua: sem ela, um `POST` repetido cria um **segundo** recurso
160
161
  endpoints para a mesma URL entregam cada evento em dobro, e o segredo do
161
162
  primeiro fica órfão. Em toda outra rota o `requestId` é só rastreio.
162
163
 
164
+ A exceção é o `UPSTREAM_TIMEOUT` da leitura de um processo, que a política não
165
+ repete — ver [a seção da fonte lenta](#ler-um-processo-quando-a-fonte-está-lenta).
166
+
163
167
  ## Webhooks
164
168
 
165
169
  ```ts
@@ -252,6 +256,75 @@ if (desfecho.kind === "sync") {
252
256
  }
253
257
  ```
254
258
 
259
+ ## Ler um processo quando a fonte está lenta
260
+
261
+ A ficha (`processes.get`) vai à fonte processual quando o acervo não tem o
262
+ processo fresco; o retrato (`processes.snapshot`) vai sempre, e só recorre ao
263
+ acervo quando a fonte falha. A fonte às vezes leva perto de um minuto por
264
+ consulta. `waitSeconds` diz quanto o motor espera por ela: de 10 a 180
265
+ segundos, padrão 20 na API.
266
+
267
+ ```ts
268
+ const { data, meta } = await lexnode.processes.get(numero, {
269
+ tribunalAlias: "api_publica_tjsp",
270
+ waitSeconds: 120,
271
+ });
272
+ ```
273
+
274
+ **O prazo da chamada acompanha a espera.** Sem `timeoutMs` na chamada, o SDK
275
+ usa o maior entre o prazo do cliente e a espera mais 15 s: depois da fonte, a
276
+ ficha ainda espera até 10 s pelo resumo das publicações do processo, e o resto
277
+ é a rede. Com `waitSeconds: 120`, a chamada desiste aos 135 s, e não aos 30 s do
278
+ padrão; sem `waitSeconds`, o SDK conta a espera padrão da API, e a chamada
279
+ desiste aos 35 s. Um `timeoutMs` explícito sempre vence. O mesmo vale para a
280
+ chamada genérica (`request`) nessas duas rotas.
281
+
282
+ **O tempo esgotado não se repete sozinho.** `UPSTREAM_TIMEOUT` (504) nessas
283
+ duas leituras é lentidão da fonte, não ausência do processo, e a política de
284
+ retentativa não o repete: a espera já correu inteira, e repetir na hora a
285
+ dobraria diante da mesma fonte lenta. As outras recusas retentáveis seguem a
286
+ política. Para insistir, a decisão é sua — uma nova chamada com espera maior,
287
+ ou a vigília do processo (`watchProcess`), que consulta em segundo plano.
288
+
289
+ **`meta.partialIndex`: o processo veio de parte do índice.** Quando a fonte
290
+ responde com só parte do índice e o processo estava na parte que respondeu, ele
291
+ é servido, e `meta.partialIndex` diz quantas partes falharam (`shardsFailed`),
292
+ de quantas (`shardsTotal`, nulo quando a fonte não as contou) e se o prazo
293
+ interno dela estourou (`timedOut`). O processo servido é o que a fonte tem, mas
294
+ outra instância do mesmo número — outro grau — pode estar na parte que não
295
+ respondeu. A resposta parcial que não serve o processo — sem ele, ou com uma
296
+ instância diferente da que o acervo já guarda — é 502 `UPSTREAM_UNAVAILABLE`
297
+ retentável, nunca 404.
298
+
299
+ ```ts
300
+ if (meta.partialIndex) {
301
+ // Outro grau deste número, se existir, pode não ter vindo.
302
+ }
303
+ ```
304
+
305
+ Antes de recusar a resposta parcial que veio sem o processo porque partes do
306
+ índice ficaram fora, o motor consulta a fonte de novo — até duas vezes, com uma
307
+ pausa curta, enquanto a espera couber.
308
+
309
+ **`meta.otherInstances`: o número tem outro documento na fonte.** A fonte pode
310
+ guardar mais de um documento por número — em geral um por instância (1º grau,
311
+ 2º grau, turma recursal…), às vezes dois no mesmo grau —, e o motor serve e
312
+ guarda um só: o de `data`, cujo grau está em `degree`. Quando a resposta da
313
+ fonte trouxe outros, `meta.otherInstances` lista cada um com o grau (`grau`), a
314
+ data em que a fonte o atualizou (`updatedAt`) e o órgão julgador (`courtBody`,
315
+ quando vem). A lista não sai para processo restrito e não inclui documento que o
316
+ motor classificaria como segredo de justiça.
317
+
318
+ ```ts
319
+ for (const outra of meta.otherInstances ?? []) {
320
+ // Ex.: { grau: "G1", updatedAt: "2026-04-15T12:00:00.000Z" }
321
+ }
322
+ ```
323
+
324
+ **Agentes têm a espera deles.** No canal para agentes (MCP), as tools
325
+ `ler_processo` e `consultar_processo` escolhem a espera em `maxWaitSeconds`, na
326
+ mesma faixa e com padrão de 120 s; esse canal não passa pelo SDK.
327
+
255
328
  ## Frescor: o `total: 0` qualificado
256
329
 
257
330
  Um resultado vazio não distingue sozinho "não existe" de "a fonte ainda não
package/dist/client.d.ts CHANGED
@@ -10,7 +10,11 @@ export interface LexNodeClientOptions {
10
10
  apiKey: string;
11
11
  /** Sub-tenant padrão (`X-Office-Id`). Cada chamada pode trocá-lo ou omiti-lo. */
12
12
  officeId?: string;
13
- /** Prazo de cada chamada, em ms. Padrão: 30 s. */
13
+ /**
14
+ * Prazo de cada chamada, em ms. Padrão: 30 s. A ficha e o retrato de um
15
+ * processo levam o maior entre este prazo e a espera pela fonte mais 15 s —
16
+ * `waitSeconds`, ou o padrão de 20 s da API quando ele falta.
17
+ */
14
18
  timeoutMs?: number;
15
19
  /** Transporte alternativo — o `fetch` global é o padrão. */
16
20
  fetch?: typeof globalThis.fetch;
@@ -90,6 +94,7 @@ export declare function createLexNodeClient(options: LexNodeClientOptions): {
90
94
  };
91
95
  deliveries: (query?: Query<"/v1/webhooks/deliveries", "get">, opts?: CallOptions) => Promise<LexNodeResult<"/v1/webhooks/deliveries", "get">>;
92
96
  health: (opts?: CallOptions) => Promise<LexNodeResult<"/v1/webhooks/health", "get">>;
97
+ unsubscribedEventTypes: (opts?: CallOptions) => Promise<LexNodeResult<"/v1/webhooks/unsubscribed-event-types", "get">>;
93
98
  };
94
99
  };
95
100
  export type LexNodeClient = ReturnType<typeof createLexNodeClient>;
package/dist/client.js CHANGED
@@ -17,6 +17,24 @@ const IDEMPOTENT_METHODS = new Set(["get", "delete"]);
17
17
  const REQUEST_ID_IDEMPOTENT_WRITES = new Set([
18
18
  "post /v1/publications/text-searches",
19
19
  ]);
20
+ /**
21
+ * As leituras de UM processo em que quem chama escolhe, em `waitSeconds`,
22
+ * quanto o motor espera pela fonte processual.
23
+ */
24
+ const SOURCE_WAIT_ROUTES = new Set([
25
+ "get /v1/processes/{processNumber}",
26
+ "get /v1/processes/{processNumber}/snapshot",
27
+ ]);
28
+ /**
29
+ * A espera que o motor aplica a essas leituras quando a chamada não traz
30
+ * `waitSeconds`: o padrão do parâmetro no contrato.
31
+ */
32
+ const SOURCE_WAIT_API_DEFAULT_SECONDS = 20;
33
+ /**
34
+ * O que a chamada espera além da espera do motor: na ficha, até 10 s de
35
+ * enriquecimento depois da fonte, e a rede.
36
+ */
37
+ const SOURCE_WAIT_MARGIN_MS = 15_000;
20
38
  /** O que um valor de cabeçalho não pode conter: `fetch` recusa montá-lo. */
21
39
  const FORBIDDEN_HEADER_CHARS = /[\r\n\0]/u;
22
40
  /** Hosts em que falar claro é desenvolvimento, não credencial exposta. */
@@ -87,6 +105,23 @@ function appendQuery(url, query) {
87
105
  }
88
106
  }
89
107
  }
108
+ /**
109
+ * O prazo da chamada que não trouxe `timeoutMs` próprio.
110
+ *
111
+ * Numa leitura que espera pela fonte, o motor pode levar a espera inteira
112
+ * antes de responder — a de `waitSeconds` ou, sem ele, a padrão da API: o
113
+ * prazo cobre essa espera mais a margem e nunca fica abaixo do prazo do
114
+ * cliente. Nas outras rotas, vale o prazo do cliente.
115
+ */
116
+ function defaultCallTimeoutMs(method, path, query, clientTimeoutMs) {
117
+ if (!SOURCE_WAIT_ROUTES.has(`${method} ${path}`))
118
+ return clientTimeoutMs;
119
+ const requested = Number(query?.waitSeconds);
120
+ const waitSeconds = Number.isFinite(requested) && requested > 0
121
+ ? requested
122
+ : SOURCE_WAIT_API_DEFAULT_SECONDS;
123
+ return Math.max(clientTimeoutMs, waitSeconds * 1_000 + SOURCE_WAIT_MARGIN_MS);
124
+ }
90
125
  /**
91
126
  * Junta o prazo do cliente ao `signal` de quem chamou.
92
127
  *
@@ -146,10 +181,19 @@ function sleep(ms, signal) {
146
181
  * repetir é seguro. Uma escrita fora da lista só é repetida quando quem chama
147
182
  * declara `idempotent: true` — quem conhece o próprio uso pode afirmar o que o
148
183
  * contrato não afirma, mas a afirmação é dele, e explícita.
184
+ *
185
+ * O tempo esgotado da fonte (`UPSTREAM_TIMEOUT`) numa leitura que espera por
186
+ * ela não se repete: o motor já esperou tudo o que a chamada pediu, e repetir
187
+ * na hora dobra a espera diante da mesma fonte lenta. As demais recusas
188
+ * retentáveis dessas leituras seguem a política.
149
189
  */
150
190
  function mayRetry(error, method, path, options) {
151
191
  if (!(error instanceof LexNodeError) || !error.retryable)
152
192
  return false;
193
+ if (error.code === "UPSTREAM_TIMEOUT" &&
194
+ SOURCE_WAIT_ROUTES.has(`${method} ${path}`)) {
195
+ return false;
196
+ }
153
197
  if (IDEMPOTENT_METHODS.has(method))
154
198
  return true;
155
199
  if (options.idempotent === true)
@@ -212,7 +256,8 @@ export function createLexNodeClient(options) {
212
256
  catch (error) {
213
257
  throw LexNodeError.invalidRequest("O corpo da chamada não é serializável em JSON.", error);
214
258
  }
215
- const timeoutMs = args.timeoutMs ?? defaultTimeoutMs;
259
+ const timeoutMs = args.timeoutMs ??
260
+ defaultCallTimeoutMs(String(method), String(path), bag.params?.query, defaultTimeoutMs);
216
261
  const link = linkAbort(timeoutMs, args.signal);
217
262
  let response;
218
263
  let raw;
@@ -425,6 +470,7 @@ export function createLexNodeClient(options) {
425
470
  ...opts,
426
471
  }),
427
472
  health: (opts = {}) => request("/v1/webhooks/health", "get", { ...opts }),
473
+ unsubscribedEventTypes: (opts = {}) => request("/v1/webhooks/unsubscribed-event-types", "get", { ...opts }),
428
474
  },
429
475
  };
430
476
  }
package/dist/errors.d.ts CHANGED
@@ -9,7 +9,7 @@ import type { RateLimitSnapshot } from "./types.js";
9
9
  * os dois por literal redigitado descobre o engano em produção. A lista é
10
10
  * fechada para o que se conhece e aberta para o que vier (ver `LexNodeError`).
11
11
  */
12
- export declare const LEXNODE_ERROR_CODES: readonly ["INVALID_MONITOR", "TRIBUNAL_NOT_SUPPORTED", "VALIDATION_ERROR", "UNAUTHORIZED", "QUOTA_EXCEEDED", "INSUFFICIENT_SCOPE", "LGPD_FORBIDDEN", "PLAN_FEATURE_NOT_INCLUDED", "SANDBOX_UPSTREAM_DISABLED", "MOVEMENTS_NOT_AVAILABLE", "PRECEDENT_NOT_FOUND", "PROCESS_NOT_FOUND", "RESOURCE_NOT_FOUND", "RESOURCE_CONFLICT", "QUERY_TOO_BROAD", "RATE_LIMITED", "UPSTREAM_RATE_LIMITED", "INTERNAL_ERROR", "UPSTREAM_UNAVAILABLE", "DATABASE_TIMEOUT", "DATABASE_UNAVAILABLE", "SYNC_ABANDONED", "UPSTREAM_TIMEOUT", "ACCOUNT_SUSPENDED", "ENTITLEMENT_EXPIRED", "PROJECT_DISABLED", "SUBSCRIPTION_INACTIVE", "MONITOR_ALREADY_EXISTS", "MONITOR_NOT_FOUND", "SEARCH_JOB_NOT_FOUND", "PUBLICATION_NOT_FOUND", "EVENT_NOT_FOUND", "TEXT_ALERT_NOT_FOUND", "TEXT_SEARCH_NOT_FOUND", "CLIENT_TIMEOUT", "CLIENT_NETWORK_ERROR", "CLIENT_INVALID_REQUEST", "CLIENT_MISSING_PATH_PARAM", "INVALID_RESPONSE", "SEARCH_JOB_BUDGET_EXCEEDED", "PAGINATION_LIMIT_REACHED"];
12
+ export declare const LEXNODE_ERROR_CODES: readonly ["INVALID_MONITOR", "TRIBUNAL_NOT_SUPPORTED", "PERSONAL_DOCUMENT_QUERY_NOT_ALLOWED", "VALIDATION_ERROR", "UNAUTHORIZED", "QUOTA_EXCEEDED", "INSUFFICIENT_SCOPE", "LGPD_FORBIDDEN", "PLAN_FEATURE_NOT_INCLUDED", "SUB_TENANT_LIMIT_EXCEEDED", "SANDBOX_UPSTREAM_DISABLED", "MOVEMENTS_NOT_AVAILABLE", "PRECEDENT_NOT_FOUND", "PROCESS_NOT_FOUND", "RESOURCE_NOT_FOUND", "RESOURCE_CONFLICT", "QUERY_TOO_BROAD", "RATE_LIMITED", "UPSTREAM_RATE_LIMITED", "INTERNAL_ERROR", "UPSTREAM_UNAVAILABLE", "DATABASE_TIMEOUT", "DATABASE_UNAVAILABLE", "SYNC_ABANDONED", "UPSTREAM_TIMEOUT", "ACCOUNT_SUSPENDED", "ENTITLEMENT_EXPIRED", "PROJECT_DISABLED", "SUBSCRIPTION_INACTIVE", "MONITOR_ALREADY_EXISTS", "MONITOR_NOT_FOUND", "SEARCH_JOB_NOT_FOUND", "PUBLICATION_NOT_FOUND", "EVENT_NOT_FOUND", "TEXT_ALERT_NOT_FOUND", "TEXT_SEARCH_NOT_FOUND", "CLIENT_TIMEOUT", "CLIENT_NETWORK_ERROR", "CLIENT_INVALID_REQUEST", "CLIENT_MISSING_PATH_PARAM", "INVALID_RESPONSE", "SEARCH_JOB_BUDGET_EXCEEDED", "PAGINATION_LIMIT_REACHED"];
13
13
  /**
14
14
  * Um código conhecido — ou qualquer outro.
15
15
  *
package/dist/errors.js CHANGED
@@ -11,12 +11,14 @@
11
11
  export const LEXNODE_ERROR_CODES = [
12
12
  "INVALID_MONITOR",
13
13
  "TRIBUNAL_NOT_SUPPORTED",
14
+ "PERSONAL_DOCUMENT_QUERY_NOT_ALLOWED",
14
15
  "VALIDATION_ERROR",
15
16
  "UNAUTHORIZED",
16
17
  "QUOTA_EXCEEDED",
17
18
  "INSUFFICIENT_SCOPE",
18
19
  "LGPD_FORBIDDEN",
19
20
  "PLAN_FEATURE_NOT_INCLUDED",
21
+ "SUB_TENANT_LIMIT_EXCEEDED",
20
22
  "SANDBOX_UPSTREAM_DISABLED",
21
23
  "MOVEMENTS_NOT_AVAILABLE",
22
24
  "PRECEDENT_NOT_FOUND",
package/dist/types.d.ts CHANGED
@@ -150,7 +150,10 @@ export interface CallOptions {
150
150
  officeId?: string | null;
151
151
  /** Aborta a chamada. É COMBINADO com o prazo, nunca o substitui. */
152
152
  signal?: AbortSignal;
153
- /** Prazo desta chamada, em ms. Vence o do construtor. */
153
+ /**
154
+ * Prazo desta chamada, em ms. Vence o do construtor e o que o cliente
155
+ * calcula para a ficha e o retrato de um processo a partir da espera.
156
+ */
154
157
  timeoutMs?: number;
155
158
  /**
156
159
  * `X-Request-Id`. Cunhado quando ausente.
@@ -127,6 +127,13 @@ export interface PublicationCreatedPayload {
127
127
  /** Só na vigília por nome de parte. */
128
128
  partyName?: string;
129
129
  partyRole?: string | null;
130
+ /** Só na vigília por CNPJ: o literal vigiado — o documento pontuado
131
+ * inteiro, ou a raiz `NN.NNN.NNN` quando `includeBranches`. */
132
+ partyDocument?: string;
133
+ includeBranches?: boolean;
134
+ /** `document`: o CNPJ consta no teor — a empresa foi citada no ato, seja
135
+ * ou não parte. */
136
+ matchedBy?: "document";
130
137
  }
131
138
  export interface MonitorSyncSucceededPayload {
132
139
  monitorId: string;
@@ -177,6 +184,8 @@ export interface MonitorSyncSucceededPayload {
177
184
  refusedDays?: string[];
178
185
  term?: string;
179
186
  partyName?: string;
187
+ partyDocument?: string;
188
+ includeBranches?: boolean;
180
189
  publicationsMatched?: number;
181
190
  }
182
191
  export interface MonitorSyncFailedPayload {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lexnode/legal-data-sdk",
3
- "version": "1.18.0",
4
- "description": "Cliente TypeScript do LexNode, o motor de dados jurídicos do Brasil: transporte tipado, erros classificados, verificação de webhook e os tipos gerados do contrato OpenAPI.",
3
+ "version": "1.25.0",
4
+ "description": "Cliente TypeScript do LexNode, o motor de dados jur\u00eddicos do Brasil: transporte tipado, erros classificados, verifica\u00e7\u00e3o de webhook e os tipos gerados do contrato OpenAPI.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://www.lexnode.com.br/docs",
7
7
  "keywords": [
package/schema.d.ts CHANGED
@@ -73,7 +73,7 @@ export interface paths {
73
73
  };
74
74
  /**
75
75
  * Estado público do motor
76
- * @description Estado operacional de cada capacidade, sem autenticação: é a página que se consulta antes de abrir chamado. Devolve estado, nunca volume — se uma capacidade está de pé, não quantas requisições ela serviu. `NO_SIGNAL` significa que não houve consulta à fonte na última hora, então não há o que medir. A resposta é cacheada por 30 segundos.
76
+ * @description Estado operacional de cada capacidade, sem autenticação: é a página que se consulta antes de abrir chamado. Devolve estado, nunca volume — se uma capacidade está de pé, não quantas requisições ela serviu. `NO_SIGNAL` significa que não houve consulta à fonte na última hora, então não há o que medir. Cada capacidade carrega também quando a fonte foi lida (`lastReadAt`) e, onde existe uma data de conteúdo para o acervo inteiro, até quando ela está lida (`readThrough`) — é com ela que se escreve "nada encontrado" sem confundir ausência com atraso. A resposta é cacheada por 30 segundos.
77
77
  */
78
78
  get: operations["getPublicStatus"];
79
79
  put?: never;
@@ -93,7 +93,7 @@ export interface paths {
93
93
  };
94
94
  /**
95
95
  * Listar os tribunais suportados
96
- * @description Retorna os tribunais suportados e, para cada um, as fontes que o servem em `sources`: o eixo de processo, o diário e, onde existe, o acervo de jurisprudência. A entrada do ramo `ADMINISTRATIVE` tem só o acervo — consulta de processo, busca e colheita no diário, vigília e calendário forense a recusam com `TRIBUNAL_NOT_SUPPORTED`. É daqui que sai a grafia aceita nas demais rotas, pela sigla (`code`) ou pelo apelido da fonte (`alias`); a chave que liga uma publicação ao catálogo é `code`.
96
+ * @description Retorna os tribunais suportados e, para cada um, as fontes que o servem em `sources`: o eixo de processo, o diário e, onde existe, o acervo de jurisprudência. A entrada do ramo `ADMINISTRATIVE` tem só o acervo — consulta de processo, busca e colheita no diário, vigília e calendário forense a recusam com `TRIBUNAL_NOT_SUPPORTED`. É daqui que sai a grafia aceita nas demais rotas, pela sigla (`code`) ou pelo apelido da fonte (`alias`); a chave que liga uma publicação ao catálogo é `code`. Cada entrada traz também `processIndex`: até quando o índice da fonte foi lido no eixo do processo daquele tribunal — a data com que se escreve "não encontrei" sem confundir ausência com atraso.
97
97
  *
98
98
  * **Escopo exigido na chave de API:** `TRIBUNALS_READ`
99
99
  */
@@ -115,7 +115,7 @@ export interface paths {
115
115
  };
116
116
  /**
117
117
  * Calendário forense do tribunal
118
- * @description Retorna os feriados forenses estaduais de um tribunal dentro de uma janela de datas. O tribunal vai em `court`, pela sigla (`court=TJSP`) ou pelo apelido da fonte; `tribunalAlias` continua aceito como sinônimo. A janela vai em `from`/`to`, no formato AAAA-MM-DD. Feriados nacionais e o recesso de fim de ano (art. 220 do CPC) ficam a cargo do motor de prazos do próprio consumidor; este endpoint devolve a camada estadual que o tribunal acrescenta por cima, derivada da UF do tribunal.
118
+ * @description Retorna os dias em que o prazo não corre num tribunal dentro de uma janela de datas: os feriados nacionais, o Dia da Justiça (8/12) em todo tribunal, os feriados forenses que a lei federal dá à Justiça Federal e aos tribunais superiores, e que as justiças do Trabalho e Eleitoral adotam (segunda de Carnaval, Semana Santa de quarta a domingo, 11/8 e 1º/11), todos com `scope` NATIONAL, o recesso de fim de ano (art. 220 do CPC), os feriados estaduais da UF do tribunal e, com `municipalityIbgeCode`, os municipais da comarca. O tribunal vai em `court`, pela sigla (`court=TJSP`) ou pelo apelido da fonte; `tribunalAlias` continua aceito como sinônimo. A janela vai em `from`/`to`, no formato AAAA-MM-DD. Quando o tribunal transferiu um feriado por ato próprio e o motor conhece o ato, o feriado sai no dia que o ato fixa, com `transfer` dizendo de qual dia veio. `coverage` diz, camada a camada, o que esta resposta consultou.
119
119
  *
120
120
  * **Escopo exigido na chave de API:** `TRIBUNALS_READ`
121
121
  */
@@ -159,7 +159,7 @@ export interface paths {
159
159
  };
160
160
  /**
161
161
  * Obter um processo pelo número
162
- * @description Retorna o registro exato do processo para o tribunal e o número informados, com resolução cache-first quando disponível.
162
+ * @description Retorna o registro exato do processo para o tribunal e o número informados, com resolução cache-first quando disponível. `waitSeconds` escolhe quanto esperar pela fonte processual. Quando a fonte responde com parte do índice e o processo está na parte que respondeu, ele é servido e `meta.partialIndex` diz quantas partes falharam (`shardsFailed`), de quantas (`shardsTotal`) e se o prazo interno da fonte estourou (`timedOut`): outra instância do mesmo número, se existir, pode não ter vindo. A exceção é o processo que veio de uma instância diferente da que o acervo já guarda do número: a guardada pode estar na parte que não respondeu, e a resposta parcial não é servida. Resposta parcial que não serve o processo — sem ele, ou com a outra instância — é 502 `UPSTREAM_UNAVAILABLE` retentável, nunca 404; antes dela, o motor consulta a fonte de novo, até duas vezes, enquanto o prazo de `waitSeconds` couber. Quando a resposta traz mais de um documento do número — em geral um por instância, mas dois podem ser do mesmo grau —, o motor serve e guarda um só, o de `data` (grau em `degree`), e `meta.otherInstances` lista os outros que vieram: grau, data de atualização na fonte e órgão julgador.
163
163
  *
164
164
  * **Escopo exigido na chave de API:** `PROCESSES_READ`
165
165
  */
@@ -203,7 +203,7 @@ export interface paths {
203
203
  };
204
204
  /**
205
205
  * Obter um snapshot vivo do processo
206
- * @description Busca o hit exato do processo no upstream do CNJ e retorna o registro normalizado do processo, o payload bruto da fonte e as movimentações CNJ normalizadas.
206
+ * @description Busca o hit exato do processo no upstream do CNJ e retorna o registro normalizado do processo, o payload bruto da fonte e as movimentações CNJ normalizadas. `waitSeconds` escolhe quanto esperar pela fonte processual. Quando a fonte responde com parte do índice e o processo está na parte que respondeu, ele é servido e `meta.partialIndex` diz quantas partes falharam (`shardsFailed`), de quantas (`shardsTotal`) e se o prazo interno da fonte estourou (`timedOut`): outra instância do mesmo número, se existir, pode não ter vindo. A exceção é o processo que veio de uma instância diferente da que o acervo já guarda do número: a guardada pode estar na parte que não respondeu, e a resposta parcial não é servida. Resposta parcial que não serve o processo — sem ele, ou com a outra instância — é 502 `UPSTREAM_UNAVAILABLE` retentável, nunca 404; antes dela, o motor consulta a fonte de novo, até duas vezes, enquanto o prazo de `waitSeconds` couber. Quando a resposta traz mais de um documento do número — em geral um por instância, mas dois podem ser do mesmo grau —, o motor serve e guarda um só, o de `data` (grau em `degree`), e `meta.otherInstances` lista os outros que vieram: grau, data de atualização na fonte e órgão julgador.
207
207
  *
208
208
  * **Escopo exigido na chave de API:** `PROCESSES_READ`
209
209
  */
@@ -269,7 +269,7 @@ export interface paths {
269
269
  };
270
270
  /**
271
271
  * Listar monitores
272
- * @description Paginação keyset: passe em `cursor` o `meta.nextCursor` da resposta anterior. `officeScoped=true` restringe aos monitores atribuídos ao `X-Office-Id` da chamada. Os campos de alvo (`tribunalAlias`, `processNumber`, `oabNumber`, `oabState`, `term`, `partyName`) filtram pelo que o monitor vigia, nas mesmas grafias que a criação aceita — quem mantém um sensor por alvo pergunta pelo alvo em vez de paginar a conta inteira.
272
+ * @description Paginação keyset: passe em `cursor` o `meta.nextCursor` da resposta anterior. `officeScoped=true` restringe aos monitores atribuídos ao `X-Office-Id` da chamada. Os campos de alvo (`tribunalAlias`, `processNumber`, `oabNumber`, `oabState`, `term`, `partyName`, `partyDocument`) filtram pelo que o monitor vigia, nas mesmas grafias que a criação aceita — quem mantém um sensor por alvo pergunta pelo alvo em vez de paginar a conta inteira.
273
273
  *
274
274
  * **Escopo exigido na chave de API:** `MONITORS_READ`
275
275
  */
@@ -277,7 +277,7 @@ export interface paths {
277
277
  put?: never;
278
278
  /**
279
279
  * Criar um monitor
280
- * @description Cria um monitor PROCESS, OAB ou TERM. O motor varre as fontes na própria agenda: monitor OAB emite `PUBLICATION_CREATED` a cada publicação nova do advogado; monitor TERM vigia a edição diária do diário por um termo livre (mínimo 5 caracteres — piso da fonte —, casamento por palavra inteira, varredura nacional) e emite `PUBLICATION_CREATED` — com o campo `term` no payload — para cada menção compartilhável nova; monitor PROCESS emite `MONITOR_SYNC_SUCCEEDED` (com o campo `changed`) a cada varredura e `MONITOR_SYNC_FAILED` quando a varredura falha. Para ser notificado de movimentação nova de um processo, use POST /v1/subscriptions. **Vigília de aparição:** um monitor PROCESS cujo alvo a fonte ainda não indexou é aceito e fica esperando — `targetSeenAt: null` na resposta marca a espera, a varredura em espera emite `MONITOR_SYNC_SUCCEEDED` com `awaitingAppearance: true`, e a primeira aparição chega com `firstAppearance: true`. Informe `distributedAt` (AAAA-MM-DD, nunca no futuro; imutável depois de criado — corrigir a data é recriar o monitor) para a espera ter critério de parada: enquanto a data-limite do índice da fonte não alcança a data, o alvo nem é consultado; quando a ultrapassa com folga de 3 dias e nada apareceu, o monitor entra em ERROR — cadastro provavelmente errado — sem deixar de tentar. **Alvo já vigiado:** o monitor é único por alvo dentro da conta e do projeto, e o segundo pedido responde 409 `MONITOR_ALREADY_EXISTS` com `error.details.monitorId` — o id do que já está lá, para quem compõe sensor e assinatura seguir sem procurar na lista.
280
+ * @description Cria um monitor PROCESS, OAB, TERM, PARTY ou DOCUMENT. O motor varre as fontes na própria agenda: monitor OAB emite `PUBLICATION_CREATED` a cada publicação nova do advogado; monitor TERM vigia a edição diária do diário por um termo livre (mínimo 5 caracteres — piso da fonte —, casamento por palavra inteira, varredura nacional) e emite `PUBLICATION_CREATED` — com o campo `term` no payload — para cada menção compartilhável nova; monitor PARTY vigia pelo nome de parte no cadastro da publicação e emite `PUBLICATION_CREATED` com `partyName` e `partyRole`; monitor DOCUMENT vigia pelo CNPJ no TEOR (`partyDocument`, nos 14 dígitos ou pontuado — normalizado para a grafia pontuada, a única que o teor escreve) e emite `PUBLICATION_CREATED` com `partyDocument`, `includeBranches` e `matchedBy: "document"` — a empresa foi citada no ato, seja ou não parte, o que alcança a decisão que manda citá-la antes de ela figurar nos destinatários; `includeBranches: true` vigia a raiz de 8 dígitos e alcança matriz e filiais (muda a contagem; nunca é o padrão). TERM, PARTY e DOCUMENT dividem a mesma vaga do plano. Monitor PROCESS emite `MONITOR_SYNC_SUCCEEDED` (com o campo `changed`) a cada varredura — cadência de 15 minutos, até 96 por dia por monitor, quase todos sem novidade — e `MONITOR_SYNC_FAILED` quando a varredura falha. Para ser notificado de movimentação nova de um processo, use POST /v1/subscriptions. **Vigília de aparição:** um monitor PROCESS cujo alvo a fonte ainda não indexou é aceito e fica esperando — `targetSeenAt: null` na resposta marca a espera, a varredura em espera emite `MONITOR_SYNC_SUCCEEDED` com `awaitingAppearance: true`, e a primeira aparição chega com `firstAppearance: true`. Informe `distributedAt` (AAAA-MM-DD, nunca no futuro; imutável depois de criado — corrigir a data é recriar o monitor) para a espera ter critério de parada: enquanto a data-limite do índice da fonte não alcança a data, o alvo nem é consultado; quando a ultrapassa com folga de 3 dias e nada apareceu, o monitor entra em ERROR — cadastro provavelmente errado — sem deixar de tentar. **Alvo já vigiado:** o monitor é único por alvo dentro da conta e do projeto, e o segundo pedido responde 409 `MONITOR_ALREADY_EXISTS` com `error.details.monitorId` — o id do que já está lá, para quem compõe sensor e assinatura seguir sem procurar na lista.
281
281
  *
282
282
  * **Escopo exigido na chave de API:** `MONITORS_WRITE`
283
283
  */
@@ -497,7 +497,7 @@ export interface paths {
497
497
  };
498
498
  /**
499
499
  * Listar publicações
500
- * @description Retorna as publicações que casam com os filtros informados. Uma consulta com escopo de processo é lake-first e incremental: a primeira busca faz a captura completa no DJEN e grava no data lake; as seguintes buscam apenas o delta desde a publicação mais recente conhecida e servem as linhas consolidadas do lake. `text`, `partyName` e `lawyerName` filtram na própria fonte; os matches de `text` são adicionalmente revalidados localmente com fronteira de palavra, então itens cujo conteúdo só casa por substring são descartados (`total` permanece a contagem reportada pela fonte). **Antes de concluir que uma publicação não existe, leia `sourceIndex.lastEditionDate`:** é a última edição do diário que o motor detectou no ar. O diário publica uma edição por dia útil, e `total: 0` sem a edição do dia detectada significa *ainda não saiu*, não *não existe*. A prova vale numa direção só: edição detectada NÃO garante o índice do dia completo — ele continua recebendo itens ao longo do dia, então um zero com a edição de hoje no ar ainda pode virar publicação horas depois. O campo acompanha toda resposta, sem custo adicional.
500
+ * @description Retorna as publicações que casam com os filtros informados. Uma consulta com escopo de processo é lake-first e incremental: a primeira busca faz a captura completa na fonte e grava no data lake; as seguintes buscam apenas o delta desde a publicação mais recente conhecida e servem as linhas consolidadas do lake. `text`, `partyName`, `lawyerName` e `partyDocument` filtram na própria fonte; os matches de `text` são adicionalmente revalidados localmente com fronteira de palavra, então itens cujo conteúdo só casa por substring são descartados (`total` permanece a contagem reportada pela fonte). **Os três eixos de empresa se completam:** `partyName` casa por continência de palavras e acha as irmãs de uma família de razões sociais; `lawyerName` confirma quais pertencem ao mesmo grupo, porque o corpo de procuradores é compartilhado; `partyDocument` — o CNPJ nos 14 dígitos ou pontuado, normalizado para `NN.NNN.NNN/NNNN-NN` — casa o documento no TEOR e acha a empresa citada no ato (mandada citar, garantidora, penhorada) antes de ela figurar como parte. A reconfirmação local por documento é substring literal, e cada item assim casado vem com `matchedBy: "document"`; compare com `parties` para saber se a empresa já é parte. `includeBranches=true` busca pela raiz de 8 dígitos e alcança matriz e filiais — opção declarada, porque muda a contagem; nunca é o padrão. `partyDocument` não se combina com `text`. Um CPF em qualquer desses campos é recusado com `PERSONAL_DOCUMENT_QUERY_NOT_ALLOWED`. **Antes de concluir que uma publicação não existe, leia `sourceIndex.lastEditionDate`:** é a última edição do diário que o motor detectou no ar. O diário publica uma edição por dia útil, e `total: 0` sem a edição do dia detectada significa *ainda não saiu*, não *não existe*. A prova vale numa direção só: edição detectada NÃO garante o índice do dia completo — ele continua recebendo itens ao longo do dia, então um zero com a edição de hoje no ar ainda pode virar publicação horas depois. O campo acompanha toda resposta, sem custo adicional.
501
501
  *
502
502
  * **Escopo exigido na chave de API:** `PUBLICATIONS_READ`
503
503
  */
@@ -757,7 +757,7 @@ export interface paths {
757
757
  };
758
758
  /**
759
759
  * Consultar o uso do projeto da API key atual
760
- * @description Retorna o uso do período, os créditos restantes, métricas de uso agrupadas e os eventos de uso recentes da conta e do projeto autenticados. `byOffice` reparte o consumo pelos valores de `X-Office-Id` que as requisições informaram — é o recorte para repassar custo a sub-contas. A entrada com `officeId: null` reúne o que nenhuma requisição atribuiu mais o trabalho recorrente (varredura de monitor, entrega de webhook), então a soma das partes fecha com o total.
760
+ * @description Retorna o uso do período, os créditos restantes, métricas de uso agrupadas e os eventos de uso recentes da conta e do projeto autenticados. `byOffice` reparte o consumo pelos valores de `X-Office-Id` que as requisições informaram — é o recorte para repassar custo a sub-contas. A entrada com `officeId: null` reúne o que nenhuma requisição atribuiu mais o trabalho recorrente (varredura de monitor, entrega de webhook), então a soma das partes fecha com o total. `subTenantLimit` é quantos sub-tenants o plano admite por período (nulo é sem teto) e `subTenantsUsed` quantos já receberam requisição no período da conta inteira — um office novo além do teto é recusado com 403 `SUB_TENANT_LIMIT_EXCEEDED`; os já atendidos passam sempre.
761
761
  *
762
762
  * **Escopo exigido na chave de API:** `USAGE_READ`
763
763
  */
@@ -814,6 +814,28 @@ export interface paths {
814
814
  patch?: never;
815
815
  trace?: never;
816
816
  };
817
+ "/v1/webhooks/unsubscribed-event-types": {
818
+ parameters: {
819
+ query?: never;
820
+ header?: never;
821
+ path?: never;
822
+ cookie?: never;
823
+ };
824
+ /**
825
+ * Tipos de evento que a conta produz e nenhum receptor assina
826
+ * @description Os tipos de evento que a conta produziu nos últimos 30 dias e que nenhum endpoint ativo assina — com a contagem, o último instante e a classe: `DATA` é o produto (movimentação, publicação, achado, busca ou colheita concluída) e `OPERATIONAL` é sinal sobre a operação (`MONITOR_SYNC_FAILED` e os avisos comerciais). Um evento nasce como registro mesmo sem assinante e fica disponível por 180 dias: para fechar a lacuna, assine o tipo no endpoint (`PATCH /v1/webhooks/endpoints/{endpointId}`) e reenvie a janela (`POST /v1/webhooks/endpoints/{endpointId}/replay`) — nada é assinado nem reenviado sozinho. `MONITOR_SYNC_SUCCEEDED` nunca aparece aqui: é o sinal de vida da vigília, sai a cada varredura e não assiná-lo é a escolha esperada. O endpoint suspenso pelo motor conta como assinante; o pausado pelo dono, não. Os tipos operacionais dispensados no portal vêm em `dismissed`. A lacuna é medida por conta: qualquer endpoint ativo da conta conta como assinante, independentemente do projeto a que ele se limite. Custa 0 créditos.
827
+ *
828
+ * **Escopo exigido na chave de API:** `EVENTS_READ`
829
+ */
830
+ get: operations["listUnsubscribedEventTypes"];
831
+ put?: never;
832
+ post?: never;
833
+ delete?: never;
834
+ options?: never;
835
+ head?: never;
836
+ patch?: never;
837
+ trace?: never;
838
+ };
817
839
  "/v1/events": {
818
840
  parameters: {
819
841
  query?: never;
@@ -925,7 +947,7 @@ export interface paths {
925
947
  put?: never;
926
948
  /**
927
949
  * Disparar uma entrega de teste
928
- * @description Envia na hora, de forma síncrona, uma entrega sintética assinada (type `WEBHOOK_TEST`) ao endpoint e responde com o resultado: alcançou o receptor? Qual status HTTP voltou? Nada é gravado na fila — é a forma de validar conectividade e verificação de assinatura antes do primeiro evento real. Endpoint de outra conta responde 404.
950
+ * @description Envia na hora, de forma síncrona, uma entrega sintética assinada (type `WEBHOOK_TEST`) ao endpoint e responde com o resultado: alcançou o receptor? Qual status HTTP voltou? Nada é gravado na fila e nada conta como entrega: o desfecho fica carimbado no próprio receptor (`lastTestAt`, `lastTestStatus`, `lastTestError`, visíveis em `GET /v1/webhooks/endpoints` e `GET /v1/webhooks/health`), sem tocar na série de recusas nem na suspensão. É a forma de validar conectividade e verificação de assinatura antes do primeiro evento real. Endpoint de outra conta responde 404.
929
951
  *
930
952
  * **Escopo exigido na chave de API:** `WEBHOOKS_WRITE`
931
953
  */
@@ -1181,6 +1203,10 @@ export interface operations {
1181
1203
  /** @enum {string} */
1182
1204
  status: "OPERATIONAL" | "DEGRADED" | "OUTAGE" | "NO_SIGNAL";
1183
1205
  detail: string;
1206
+ /** @description Quando esta capacidade leu a fonte com sucesso pela última vez, ISO. Nulo quando não houve leitura na janela medida — o que é silêncio, não queda. */
1207
+ lastReadAt: string | null;
1208
+ /** @description Até quando o conteúdo da fonte está lido, no recorte que a capacidade serve (AAAA-MM-DD). É a data com que se escreve 'nada encontrado' sem mentir: o que é posterior a ela ainda não chegou. Nulo na capacidade que não tem data de conteúdo para o acervo inteiro — ali a data vem com o recorte, na própria resposta da consulta. */
1209
+ readThrough: string | null;
1184
1210
  }[];
1185
1211
  };
1186
1212
  };
@@ -1221,6 +1247,12 @@ export interface operations {
1221
1247
  segment: number;
1222
1248
  code: number;
1223
1249
  } | null;
1250
+ processIndex: {
1251
+ /** Format: date-time */
1252
+ updatedThrough: string | null;
1253
+ /** Format: date-time */
1254
+ checkedAt: string;
1255
+ } | null;
1224
1256
  }[];
1225
1257
  meta: {
1226
1258
  /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */
@@ -1456,6 +1488,13 @@ export interface operations {
1456
1488
  label: string;
1457
1489
  uf: string | null;
1458
1490
  municipalityIbgeCode?: number;
1491
+ /** @description Presente quando o tribunal transferiu o feriado por ato próprio: date é o dia em que o tribunal o observa, fromDate o dia que a lei fixa (que não sai na lista), e act e url o ato e onde ele foi lido. */
1492
+ transfer?: {
1493
+ fromDate: string;
1494
+ act: string;
1495
+ /** Format: uri */
1496
+ url: string;
1497
+ };
1459
1498
  }[];
1460
1499
  coverage: {
1461
1500
  /** @enum {string} */
@@ -2002,6 +2041,8 @@ export interface operations {
2002
2041
  query: {
2003
2042
  tribunalAlias: string;
2004
2043
  since?: unknown;
2044
+ /** @description Quanto esperar pela fonte processual quando o processo precisa ser buscado nela, em segundos: de 10 a 180, padrão 20. É o teto da consulta à fonte: ela às vezes leva até ~60 s por consulta, cada ida a ela espera no máximo 60 s, e a segunda ida só sai depois de uma recusa por volume ou de um erro da fonte, nunca depois de tempo esgotado. Depois dela, a ficha ainda espera até 10 s pelo resumo das publicações do processo. Tempo esgotado é 504 `UPSTREAM_TIMEOUT` (lentidão, não ausência). Dê ao seu cliente HTTP um tempo limite que cubra a espera, esses segundos da ficha e a rede: no padrão, mais de 30 s. */
2045
+ waitSeconds?: number;
2005
2046
  };
2006
2047
  header?: {
2007
2048
  /** @description Identificador da requisição escolhido pelo cliente, ecoado em meta.requestId e no corpo de erro. Tem DOIS papéis: (1) rastreio, em toda rota — é por ele que o suporte encontra a chamada; (2) idempotência por conta em POST /v1/publications/text-searches e POST /v1/search-jobs, onde reenviar o mesmo valor reapresenta o resultado já produzido, sem nova cobrança. Fora dessas duas rotas o valor não deduplica nada: para repetir uma chamada de propósito, mande um valor novo. Aceita [A-Za-z0-9_.:-], até 200 caracteres; valor fora disso é ignorado e o motor cunha o próprio. */
@@ -2081,6 +2122,27 @@ export interface operations {
2081
2122
  requestId: string;
2082
2123
  credits?: number;
2083
2124
  cacheHit?: boolean;
2125
+ /** @description Presente só quando a fonte respondeu com parte do índice e o processo estava na parte que respondeu: outra instância do mesmo número, se existir, pode não ter vindo. */
2126
+ partialIndex?: {
2127
+ /** @description Partes do índice da fonte que não responderam. */
2128
+ shardsFailed: number;
2129
+ /** @description Total de partes do índice; nulo quando a fonte não as contou. */
2130
+ shardsTotal: number | null;
2131
+ /** @description A fonte estourou o próprio prazo interno e devolveu só o que deu tempo de olhar. */
2132
+ timedOut: boolean;
2133
+ };
2134
+ /** @description Presente só quando a resposta da fonte trouxe mais de um documento do número — em geral de instâncias diferentes, mas dois podem ter o mesmo `grau`. O motor serve e guarda um só (o de `data`, que diz o grau em `degree`); estes são os outros que vieram na mesma resposta. Não inclui documento que o motor classificaria como segredo de justiça, e não aparece quando o processo servido é restrito. */
2135
+ otherInstances?: {
2136
+ /** @description O grau deste documento na fonte: G1, G2, JE, TR… */
2137
+ grau: string | null;
2138
+ /**
2139
+ * Format: date-time
2140
+ * @description Quando a fonte atualizou este documento pela última vez.
2141
+ */
2142
+ updatedAt: string | null;
2143
+ /** @description O órgão julgador deste documento, quando a fonte o traz. */
2144
+ courtBody?: string;
2145
+ }[];
2084
2146
  } & {
2085
2147
  [key: string]: unknown;
2086
2148
  };
@@ -2612,6 +2674,8 @@ export interface operations {
2612
2674
  query: {
2613
2675
  tribunalAlias: string;
2614
2676
  since?: unknown;
2677
+ /** @description Quanto esperar pela fonte processual quando o processo precisa ser buscado nela, em segundos: de 10 a 180, padrão 20. É o teto da consulta à fonte: ela às vezes leva até ~60 s por consulta, cada ida a ela espera no máximo 60 s, e a segunda ida só sai depois de uma recusa por volume ou de um erro da fonte, nunca depois de tempo esgotado. Depois dela, a ficha ainda espera até 10 s pelo resumo das publicações do processo. Tempo esgotado é 504 `UPSTREAM_TIMEOUT` (lentidão, não ausência). Dê ao seu cliente HTTP um tempo limite que cubra a espera, esses segundos da ficha e a rede: no padrão, mais de 30 s. */
2678
+ waitSeconds?: number;
2615
2679
  };
2616
2680
  header?: {
2617
2681
  /** @description Identificador da requisição escolhido pelo cliente, ecoado em meta.requestId e no corpo de erro. Tem DOIS papéis: (1) rastreio, em toda rota — é por ele que o suporte encontra a chamada; (2) idempotência por conta em POST /v1/publications/text-searches e POST /v1/search-jobs, onde reenviar o mesmo valor reapresenta o resultado já produzido, sem nova cobrança. Fora dessas duas rotas o valor não deduplica nada: para repetir uma chamada de propósito, mande um valor novo. Aceita [A-Za-z0-9_.:-], até 200 caracteres; valor fora disso é ignorado e o motor cunha o próprio. */
@@ -2703,6 +2767,27 @@ export interface operations {
2703
2767
  requestId: string;
2704
2768
  credits?: number;
2705
2769
  cacheHit?: boolean;
2770
+ /** @description Presente só quando a fonte respondeu com parte do índice e o processo estava na parte que respondeu: outra instância do mesmo número, se existir, pode não ter vindo. */
2771
+ partialIndex?: {
2772
+ /** @description Partes do índice da fonte que não responderam. */
2773
+ shardsFailed: number;
2774
+ /** @description Total de partes do índice; nulo quando a fonte não as contou. */
2775
+ shardsTotal: number | null;
2776
+ /** @description A fonte estourou o próprio prazo interno e devolveu só o que deu tempo de olhar. */
2777
+ timedOut: boolean;
2778
+ };
2779
+ /** @description Presente só quando a resposta da fonte trouxe mais de um documento do número — em geral de instâncias diferentes, mas dois podem ter o mesmo `grau`. O motor serve e guarda um só (o de `data`, que diz o grau em `degree`); estes são os outros que vieram na mesma resposta. Não inclui documento que o motor classificaria como segredo de justiça, e não aparece quando o processo servido é restrito. */
2780
+ otherInstances?: {
2781
+ /** @description O grau deste documento na fonte: G1, G2, JE, TR… */
2782
+ grau: string | null;
2783
+ /**
2784
+ * Format: date-time
2785
+ * @description Quando a fonte atualizou este documento pela última vez.
2786
+ */
2787
+ updatedAt: string | null;
2788
+ /** @description O órgão julgador deste documento, quando a fonte o traz. */
2789
+ courtBody?: string;
2790
+ }[];
2706
2791
  } & {
2707
2792
  [key: string]: unknown;
2708
2793
  };
@@ -3490,7 +3575,7 @@ export interface operations {
3490
3575
  cursor?: string;
3491
3576
  limit?: number;
3492
3577
  status?: "ACTIVE" | "PAUSED" | "DISABLED" | "ERROR";
3493
- type?: "PROCESS" | "OAB" | "TERM" | "PARTY";
3578
+ type?: "PROCESS" | "OAB" | "TERM" | "PARTY" | "DOCUMENT";
3494
3579
  officeScoped?: "true" | "false";
3495
3580
  tribunalAlias?: string;
3496
3581
  processNumber?: string;
@@ -3498,6 +3583,7 @@ export interface operations {
3498
3583
  oabState?: string;
3499
3584
  term?: string;
3500
3585
  partyName?: string;
3586
+ partyDocument?: string;
3501
3587
  };
3502
3588
  header?: {
3503
3589
  /** @description Identificador da requisição escolhido pelo cliente, ecoado em meta.requestId e no corpo de erro. Tem DOIS papéis: (1) rastreio, em toda rota — é por ele que o suporte encontra a chamada; (2) idempotência por conta em POST /v1/publications/text-searches e POST /v1/search-jobs, onde reenviar o mesmo valor reapresenta o resultado já produzido, sem nova cobrança. Fora dessas duas rotas o valor não deduplica nada: para repetir uma chamada de propósito, mande um valor novo. Aceita [A-Za-z0-9_.:-], até 200 caracteres; valor fora disso é ignorado e o motor cunha o próprio. */
@@ -3520,7 +3606,7 @@ export interface operations {
3520
3606
  data: ({
3521
3607
  id: string;
3522
3608
  /** @enum {string} */
3523
- type: "PROCESS" | "OAB" | "TERM" | "PARTY";
3609
+ type: "PROCESS" | "OAB" | "TERM" | "PARTY" | "DOCUMENT";
3524
3610
  /** @enum {string} */
3525
3611
  status: "ACTIVE" | "PAUSED" | "DISABLED" | "ERROR";
3526
3612
  label?: string | null;
@@ -3531,6 +3617,7 @@ export interface operations {
3531
3617
  oabState?: string | null;
3532
3618
  term?: string | null;
3533
3619
  partyName?: string | null;
3620
+ partyDocument?: string | null;
3534
3621
  /** Format: date-time */
3535
3622
  lastCheckedAt?: string | null;
3536
3623
  /** Format: date-time */
@@ -3763,7 +3850,7 @@ export interface operations {
3763
3850
  content: {
3764
3851
  "application/json": {
3765
3852
  /** @enum {string} */
3766
- type: "PROCESS" | "OAB" | "TERM" | "PARTY";
3853
+ type: "PROCESS" | "OAB" | "TERM" | "PARTY" | "DOCUMENT";
3767
3854
  label?: string;
3768
3855
  tribunalAlias?: string;
3769
3856
  processNumber?: string;
@@ -3771,6 +3858,10 @@ export interface operations {
3771
3858
  oabState?: string;
3772
3859
  term?: string;
3773
3860
  partyName?: string;
3861
+ /** @description CNPJ vigiado no teor, nos 14 dígitos ou pontuado; normalizado para NN.NNN.NNN/NNNN-NN. CPF é recusado. */
3862
+ partyDocument?: string;
3863
+ /** @description Com true, busca pela raiz de 8 dígitos do CNPJ (NN.NNN.NNN) e alcança a matriz e todas as filiais; muda a contagem. Padrão false: só o estabelecimento informado. */
3864
+ includeBranches?: boolean;
3774
3865
  distributedAt?: string;
3775
3866
  };
3776
3867
  };
@@ -3786,7 +3877,7 @@ export interface operations {
3786
3877
  data: {
3787
3878
  id: string;
3788
3879
  /** @enum {string} */
3789
- type: "PROCESS" | "OAB" | "TERM" | "PARTY";
3880
+ type: "PROCESS" | "OAB" | "TERM" | "PARTY" | "DOCUMENT";
3790
3881
  /** @enum {string} */
3791
3882
  status: "ACTIVE" | "PAUSED" | "DISABLED" | "ERROR";
3792
3883
  label?: string | null;
@@ -3797,6 +3888,7 @@ export interface operations {
3797
3888
  oabState?: string | null;
3798
3889
  term?: string | null;
3799
3890
  partyName?: string | null;
3891
+ partyDocument?: string | null;
3800
3892
  /** Format: date-time */
3801
3893
  lastCheckedAt?: string | null;
3802
3894
  /** Format: date-time */
@@ -4277,7 +4369,7 @@ export interface operations {
4277
4369
  data: {
4278
4370
  id: string;
4279
4371
  /** @enum {string} */
4280
- type: "PROCESS" | "OAB" | "TERM" | "PARTY";
4372
+ type: "PROCESS" | "OAB" | "TERM" | "PARTY" | "DOCUMENT";
4281
4373
  /** @enum {string} */
4282
4374
  status: "ACTIVE" | "PAUSED" | "DISABLED" | "ERROR";
4283
4375
  label?: string | null;
@@ -4288,6 +4380,7 @@ export interface operations {
4288
4380
  oabState?: string | null;
4289
4381
  term?: string | null;
4290
4382
  partyName?: string | null;
4383
+ partyDocument?: string | null;
4291
4384
  /** Format: date-time */
4292
4385
  lastCheckedAt?: string | null;
4293
4386
  /** Format: date-time */
@@ -4818,7 +4911,7 @@ export interface operations {
4818
4911
  data: {
4819
4912
  id: string;
4820
4913
  /** @enum {string} */
4821
- type: "PROCESS" | "OAB" | "TERM" | "PARTY";
4914
+ type: "PROCESS" | "OAB" | "TERM" | "PARTY" | "DOCUMENT";
4822
4915
  /** @enum {string} */
4823
4916
  status: "ACTIVE" | "PAUSED" | "DISABLED" | "ERROR";
4824
4917
  label?: string | null;
@@ -4829,6 +4922,7 @@ export interface operations {
4829
4922
  oabState?: string | null;
4830
4923
  term?: string | null;
4831
4924
  partyName?: string | null;
4925
+ partyDocument?: string | null;
4832
4926
  /** Format: date-time */
4833
4927
  lastCheckedAt?: string | null;
4834
4928
  /** Format: date-time */
@@ -7091,6 +7185,10 @@ export interface operations {
7091
7185
  text?: string;
7092
7186
  partyName?: string;
7093
7187
  lawyerName?: string;
7188
+ /** @description CNPJ citado no teor, nos 14 dígitos ou pontuado; normalizado para NN.NNN.NNN/NNNN-NN. Acha a empresa citada no ato antes de ela ser parte. CPF é recusado. */
7189
+ partyDocument?: string;
7190
+ /** @description Com true, busca pela raiz de 8 dígitos do CNPJ (NN.NNN.NNN) e alcança a matriz e todas as filiais; muda a contagem. Padrão false: só o estabelecimento informado. */
7191
+ includeBranches?: boolean;
7094
7192
  availableFrom?: string;
7095
7193
  availableTo?: string;
7096
7194
  page?: number;
@@ -7162,6 +7260,11 @@ export interface operations {
7162
7260
  /** @description Órgão julgador da publicação, como a fonte o escreve. Presente nos dois eixos; `null` quando a fonte não o declara. */
7163
7261
  courtBody?: string | null;
7164
7262
  shareable?: boolean;
7263
+ /**
7264
+ * @description Como o item casou a consulta por documento: `document` = o CNPJ consta no teor, a empresa foi citada no ato. Compare com `parties` para saber se ela já figura como parte.
7265
+ * @enum {string}
7266
+ */
7267
+ matchedBy?: "document";
7165
7268
  rawPayload?: unknown;
7166
7269
  }[];
7167
7270
  sourceItemCount?: number;
@@ -7729,6 +7832,11 @@ export interface operations {
7729
7832
  /** @description Órgão julgador da publicação, como a fonte o escreve. Presente nos dois eixos; `null` quando a fonte não o declara. */
7730
7833
  courtBody?: string | null;
7731
7834
  shareable?: boolean;
7835
+ /**
7836
+ * @description Como o item casou a consulta por documento: `document` = o CNPJ consta no teor, a empresa foi citada no ato. Compare com `parties` para saber se ela já figura como parte.
7837
+ * @enum {string}
7838
+ */
7839
+ matchedBy?: "document";
7732
7840
  } & {
7733
7841
  [key: string]: unknown;
7734
7842
  }) | null;
@@ -8086,6 +8194,11 @@ export interface operations {
8086
8194
  /** @description Órgão julgador da publicação, como a fonte o escreve. Presente nos dois eixos; `null` quando a fonte não o declara. */
8087
8195
  courtBody?: string | null;
8088
8196
  shareable?: boolean;
8197
+ /**
8198
+ * @description Como o item casou a consulta por documento: `document` = o CNPJ consta no teor, a empresa foi citada no ato. Compare com `parties` para saber se ela já figura como parte.
8199
+ * @enum {string}
8200
+ */
8201
+ matchedBy?: "document";
8089
8202
  } & {
8090
8203
  [key: string]: unknown;
8091
8204
  }) | null;
@@ -9888,6 +10001,11 @@ export interface operations {
9888
10001
  /** @description Órgão julgador da publicação, como a fonte o escreve. Presente nos dois eixos; `null` quando a fonte não o declara. */
9889
10002
  courtBody?: string | null;
9890
10003
  shareable?: boolean;
10004
+ /**
10005
+ * @description Como o item casou a consulta por documento: `document` = o CNPJ consta no teor, a empresa foi citada no ato. Compare com `parties` para saber se ela já figura como parte.
10006
+ * @enum {string}
10007
+ */
10008
+ matchedBy?: "document";
9891
10009
  } & {
9892
10010
  [key: string]: unknown;
9893
10011
  };
@@ -11003,6 +11121,8 @@ export interface operations {
11003
11121
  backgroundWork: number;
11004
11122
  credits: number;
11005
11123
  }[];
11124
+ subTenantLimit: number | null;
11125
+ subTenantsUsed: number;
11006
11126
  recentEvents: {
11007
11127
  requestId: string;
11008
11128
  kind: string;
@@ -11012,6 +11132,10 @@ export interface operations {
11012
11132
  credits: number;
11013
11133
  /** Format: date-time */
11014
11134
  createdAt: string;
11135
+ /** @description O código do erro que recusou a requisição ou o trabalho de fundo. Ausente quando foi servido. */
11136
+ errorCode?: string;
11137
+ /** @description Num 400 de validação, os campos recusados em notação de ponto (`root` é o corpo ou a query inteira). Só o nome do campo, nunca o valor enviado. */
11138
+ fieldPaths?: string[];
11015
11139
  }[];
11016
11140
  };
11017
11141
  meta: {
@@ -11247,6 +11371,10 @@ export interface operations {
11247
11371
  suspendedAt: string | null;
11248
11372
  /** Format: date-time */
11249
11373
  oldestPendingAt: string | null;
11374
+ /** Format: date-time */
11375
+ lastTestAt: string | null;
11376
+ lastTestStatus: number | null;
11377
+ lastTestError: string | null;
11250
11378
  } & {
11251
11379
  [key: string]: unknown;
11252
11380
  })[];
@@ -11685,6 +11813,242 @@ export interface operations {
11685
11813
  };
11686
11814
  };
11687
11815
  };
11816
+ listUnsubscribedEventTypes: {
11817
+ parameters: {
11818
+ query?: never;
11819
+ header?: {
11820
+ /** @description Identificador da requisição escolhido pelo cliente, ecoado em meta.requestId e no corpo de erro. Tem DOIS papéis: (1) rastreio, em toda rota — é por ele que o suporte encontra a chamada; (2) idempotência por conta em POST /v1/publications/text-searches e POST /v1/search-jobs, onde reenviar o mesmo valor reapresenta o resultado já produzido, sem nova cobrança. Fora dessas duas rotas o valor não deduplica nada: para repetir uma chamada de propósito, mande um valor novo. Aceita [A-Za-z0-9_.:-], até 200 caracteres; valor fora disso é ignorado e o motor cunha o próprio. */
11821
+ "x-request-id"?: string;
11822
+ /** @description Atribui a chamada a um sub-tenant seu (por exemplo, um escritório) na medição de uso e no roteamento de eventos. Opcional. */
11823
+ "x-office-id"?: string;
11824
+ };
11825
+ path?: never;
11826
+ cookie?: never;
11827
+ };
11828
+ requestBody?: never;
11829
+ responses: {
11830
+ /** @description Resposta padrão */
11831
+ 200: {
11832
+ headers: {
11833
+ [name: string]: unknown;
11834
+ };
11835
+ content: {
11836
+ "application/json": {
11837
+ data: {
11838
+ windowDays: number;
11839
+ items: ({
11840
+ /** @enum {string} */
11841
+ type: "PROCESS_MOVEMENT_CREATED" | "PUBLICATION_CREATED" | "MONITOR_SYNC_SUCCEEDED" | "MONITOR_SYNC_FAILED" | "SEARCH_JOB_COMPLETED" | "PUBLICATION_TEXT_ALERT_MATCHED" | "PUBLICATION_HARVEST_COMPLETED" | "QUOTA_LOW" | "PERIOD_ENDING" | "SUBSCRIPTION_PAST_DUE";
11842
+ /** @enum {string} */
11843
+ class: "DATA" | "OPERATIONAL";
11844
+ count: number;
11845
+ /** Format: date-time */
11846
+ lastOccurredAt: string;
11847
+ } & {
11848
+ [key: string]: unknown;
11849
+ })[];
11850
+ dismissed: ({
11851
+ /** @enum {string} */
11852
+ type: "PROCESS_MOVEMENT_CREATED" | "PUBLICATION_CREATED" | "MONITOR_SYNC_SUCCEEDED" | "MONITOR_SYNC_FAILED" | "SEARCH_JOB_COMPLETED" | "PUBLICATION_TEXT_ALERT_MATCHED" | "PUBLICATION_HARVEST_COMPLETED" | "QUOTA_LOW" | "PERIOD_ENDING" | "SUBSCRIPTION_PAST_DUE";
11853
+ /** Format: date-time */
11854
+ dismissedAt: string;
11855
+ } & {
11856
+ [key: string]: unknown;
11857
+ })[];
11858
+ };
11859
+ meta: {
11860
+ /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */
11861
+ requestId: string;
11862
+ credits?: number;
11863
+ cacheHit?: boolean;
11864
+ } & {
11865
+ [key: string]: unknown;
11866
+ };
11867
+ };
11868
+ };
11869
+ };
11870
+ /** @description Resposta padrão */
11871
+ 400: {
11872
+ headers: {
11873
+ [name: string]: unknown;
11874
+ };
11875
+ content: {
11876
+ "application/json": {
11877
+ error: {
11878
+ /** @description Código estável da taxonomia (VALIDATION_ERROR, QUOTA_EXCEEDED, UPSTREAM_TIMEOUT…). É por ele que se programa, não pela mensagem. */
11879
+ code: string;
11880
+ /** @description Descrição legível, sujeita a mudança. */
11881
+ message: string;
11882
+ /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */
11883
+ requestId: string;
11884
+ /**
11885
+ * @description Classificação da falha. TERMINAL não melhora com nova tentativa; RETRYABLE sim.
11886
+ * @enum {string}
11887
+ */
11888
+ class: "RETRYABLE" | "TERMINAL";
11889
+ /** @description Atalho booleano de `class`, para quem só precisa decidir se repete. */
11890
+ retryable: boolean;
11891
+ /** @description Status HTTP real devolvido pela fonte externa, quando a falha veio dela. Preservado sem tradução. */
11892
+ upstreamStatus?: number;
11893
+ details: {
11894
+ [key: string]: unknown;
11895
+ };
11896
+ };
11897
+ };
11898
+ };
11899
+ };
11900
+ /** @description Resposta padrão */
11901
+ 401: {
11902
+ headers: {
11903
+ [name: string]: unknown;
11904
+ };
11905
+ content: {
11906
+ "application/json": {
11907
+ error: {
11908
+ /** @description Código estável da taxonomia (VALIDATION_ERROR, QUOTA_EXCEEDED, UPSTREAM_TIMEOUT…). É por ele que se programa, não pela mensagem. */
11909
+ code: string;
11910
+ /** @description Descrição legível, sujeita a mudança. */
11911
+ message: string;
11912
+ /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */
11913
+ requestId: string;
11914
+ /**
11915
+ * @description Classificação da falha. TERMINAL não melhora com nova tentativa; RETRYABLE sim.
11916
+ * @enum {string}
11917
+ */
11918
+ class: "RETRYABLE" | "TERMINAL";
11919
+ /** @description Atalho booleano de `class`, para quem só precisa decidir se repete. */
11920
+ retryable: boolean;
11921
+ /** @description Status HTTP real devolvido pela fonte externa, quando a falha veio dela. Preservado sem tradução. */
11922
+ upstreamStatus?: number;
11923
+ details: {
11924
+ [key: string]: unknown;
11925
+ };
11926
+ };
11927
+ };
11928
+ };
11929
+ };
11930
+ /** @description Resposta padrão */
11931
+ 402: {
11932
+ headers: {
11933
+ [name: string]: unknown;
11934
+ };
11935
+ content: {
11936
+ "application/json": {
11937
+ error: {
11938
+ /** @description Código estável da taxonomia (VALIDATION_ERROR, QUOTA_EXCEEDED, UPSTREAM_TIMEOUT…). É por ele que se programa, não pela mensagem. */
11939
+ code: string;
11940
+ /** @description Descrição legível, sujeita a mudança. */
11941
+ message: string;
11942
+ /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */
11943
+ requestId: string;
11944
+ /**
11945
+ * @description Classificação da falha. TERMINAL não melhora com nova tentativa; RETRYABLE sim.
11946
+ * @enum {string}
11947
+ */
11948
+ class: "RETRYABLE" | "TERMINAL";
11949
+ /** @description Atalho booleano de `class`, para quem só precisa decidir se repete. */
11950
+ retryable: boolean;
11951
+ /** @description Status HTTP real devolvido pela fonte externa, quando a falha veio dela. Preservado sem tradução. */
11952
+ upstreamStatus?: number;
11953
+ details: {
11954
+ [key: string]: unknown;
11955
+ };
11956
+ };
11957
+ };
11958
+ };
11959
+ };
11960
+ /** @description Resposta padrão */
11961
+ 403: {
11962
+ headers: {
11963
+ [name: string]: unknown;
11964
+ };
11965
+ content: {
11966
+ "application/json": {
11967
+ error: {
11968
+ /** @description Código estável da taxonomia (VALIDATION_ERROR, QUOTA_EXCEEDED, UPSTREAM_TIMEOUT…). É por ele que se programa, não pela mensagem. */
11969
+ code: string;
11970
+ /** @description Descrição legível, sujeita a mudança. */
11971
+ message: string;
11972
+ /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */
11973
+ requestId: string;
11974
+ /**
11975
+ * @description Classificação da falha. TERMINAL não melhora com nova tentativa; RETRYABLE sim.
11976
+ * @enum {string}
11977
+ */
11978
+ class: "RETRYABLE" | "TERMINAL";
11979
+ /** @description Atalho booleano de `class`, para quem só precisa decidir se repete. */
11980
+ retryable: boolean;
11981
+ /** @description Status HTTP real devolvido pela fonte externa, quando a falha veio dela. Preservado sem tradução. */
11982
+ upstreamStatus?: number;
11983
+ details: {
11984
+ [key: string]: unknown;
11985
+ };
11986
+ };
11987
+ };
11988
+ };
11989
+ };
11990
+ /** @description Resposta padrão */
11991
+ 429: {
11992
+ headers: {
11993
+ [name: string]: unknown;
11994
+ };
11995
+ content: {
11996
+ "application/json": {
11997
+ error: {
11998
+ /** @description Código estável da taxonomia (VALIDATION_ERROR, QUOTA_EXCEEDED, UPSTREAM_TIMEOUT…). É por ele que se programa, não pela mensagem. */
11999
+ code: string;
12000
+ /** @description Descrição legível, sujeita a mudança. */
12001
+ message: string;
12002
+ /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */
12003
+ requestId: string;
12004
+ /**
12005
+ * @description Classificação da falha. TERMINAL não melhora com nova tentativa; RETRYABLE sim.
12006
+ * @enum {string}
12007
+ */
12008
+ class: "RETRYABLE" | "TERMINAL";
12009
+ /** @description Atalho booleano de `class`, para quem só precisa decidir se repete. */
12010
+ retryable: boolean;
12011
+ /** @description Status HTTP real devolvido pela fonte externa, quando a falha veio dela. Preservado sem tradução. */
12012
+ upstreamStatus?: number;
12013
+ details: {
12014
+ [key: string]: unknown;
12015
+ };
12016
+ };
12017
+ };
12018
+ };
12019
+ };
12020
+ /** @description Resposta padrão */
12021
+ 500: {
12022
+ headers: {
12023
+ [name: string]: unknown;
12024
+ };
12025
+ content: {
12026
+ "application/json": {
12027
+ error: {
12028
+ /** @description Código estável da taxonomia (VALIDATION_ERROR, QUOTA_EXCEEDED, UPSTREAM_TIMEOUT…). É por ele que se programa, não pela mensagem. */
12029
+ code: string;
12030
+ /** @description Descrição legível, sujeita a mudança. */
12031
+ message: string;
12032
+ /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */
12033
+ requestId: string;
12034
+ /**
12035
+ * @description Classificação da falha. TERMINAL não melhora com nova tentativa; RETRYABLE sim.
12036
+ * @enum {string}
12037
+ */
12038
+ class: "RETRYABLE" | "TERMINAL";
12039
+ /** @description Atalho booleano de `class`, para quem só precisa decidir se repete. */
12040
+ retryable: boolean;
12041
+ /** @description Status HTTP real devolvido pela fonte externa, quando a falha veio dela. Preservado sem tradução. */
12042
+ upstreamStatus?: number;
12043
+ details: {
12044
+ [key: string]: unknown;
12045
+ };
12046
+ };
12047
+ };
12048
+ };
12049
+ };
12050
+ };
12051
+ };
11688
12052
  listEvents: {
11689
12053
  parameters: {
11690
12054
  query?: {
@@ -11725,6 +12089,8 @@ export interface operations {
11725
12089
  deliveries: {
11726
12090
  total: number;
11727
12091
  delivered: number;
12092
+ failed: number;
12093
+ pending: number;
11728
12094
  };
11729
12095
  } & {
11730
12096
  [key: string]: unknown;
@@ -11956,6 +12322,8 @@ export interface operations {
11956
12322
  deliveries: {
11957
12323
  total: number;
11958
12324
  delivered: number;
12325
+ failed: number;
12326
+ pending: number;
11959
12327
  };
11960
12328
  } & {
11961
12329
  [key: string]: unknown;
@@ -12212,10 +12580,20 @@ export interface operations {
12212
12580
  isActive: boolean;
12213
12581
  /** Format: date-time */
12214
12582
  suspendedAt: string | null;
12583
+ /** Format: date-time */
12584
+ lastTestAt: string | null;
12585
+ lastTestStatus: number | null;
12586
+ lastTestError: string | null;
12215
12587
  project: {
12216
12588
  id: string;
12217
12589
  name: string;
12218
12590
  } | null;
12591
+ reach: {
12592
+ /** @enum {string} */
12593
+ scope: "ACCOUNT" | "PROJECT";
12594
+ projects: number;
12595
+ includesFutureProjects: boolean;
12596
+ };
12219
12597
  }[];
12220
12598
  meta: {
12221
12599
  /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */
@@ -12452,10 +12830,20 @@ export interface operations {
12452
12830
  isActive: boolean;
12453
12831
  /** Format: date-time */
12454
12832
  suspendedAt: string | null;
12833
+ /** Format: date-time */
12834
+ lastTestAt: string | null;
12835
+ lastTestStatus: number | null;
12836
+ lastTestError: string | null;
12455
12837
  project: {
12456
12838
  id: string;
12457
12839
  name: string;
12458
12840
  } | null;
12841
+ reach: {
12842
+ /** @enum {string} */
12843
+ scope: "ACCOUNT" | "PROJECT";
12844
+ projects: number;
12845
+ includesFutureProjects: boolean;
12846
+ };
12459
12847
  };
12460
12848
  signingSecret: string;
12461
12849
  };
@@ -12915,10 +13303,20 @@ export interface operations {
12915
13303
  isActive: boolean;
12916
13304
  /** Format: date-time */
12917
13305
  suspendedAt: string | null;
13306
+ /** Format: date-time */
13307
+ lastTestAt: string | null;
13308
+ lastTestStatus: number | null;
13309
+ lastTestError: string | null;
12918
13310
  project: {
12919
13311
  id: string;
12920
13312
  name: string;
12921
13313
  } | null;
13314
+ reach: {
13315
+ /** @enum {string} */
13316
+ scope: "ACCOUNT" | "PROJECT";
13317
+ projects: number;
13318
+ includesFutureProjects: boolean;
13319
+ };
12922
13320
  };
12923
13321
  meta: {
12924
13322
  /** @description Identificador da requisição, para suporte e rastreamento. É o X-Request-Id enviado pelo cliente quando há um; senão, um req_<uuid> cunhado pelo motor. */