@hablala/api-contract 0.7.0 → 0.9.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/dist/index.d.ts +1628 -77
- package/openapi.json +8737 -6515
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -1335,6 +1335,66 @@ interface paths {
|
|
|
1335
1335
|
patch?: never;
|
|
1336
1336
|
trace?: never;
|
|
1337
1337
|
};
|
|
1338
|
+
"/v1/objects/{object_slug}/uploads": {
|
|
1339
|
+
parameters: {
|
|
1340
|
+
query?: never;
|
|
1341
|
+
header?: never;
|
|
1342
|
+
path?: never;
|
|
1343
|
+
cookie?: never;
|
|
1344
|
+
};
|
|
1345
|
+
get?: never;
|
|
1346
|
+
put?: never;
|
|
1347
|
+
/**
|
|
1348
|
+
* Pedir una URL de subida para un attribute file (staged upload)
|
|
1349
|
+
* @description Fase 1 del flujo de archivos de un record: valida el archivo declarado contra el config del attribute `file` (`accepted_content_types` con comodines `image/*`, `max_size_bytes`) y devuelve el destino de subida prefirmado. Luego: (2) `PUT` del blob crudo a `uploadUrl` con `headers`; (3) confirmar escribiendo el record con `fileUrl` en el envelope del attribute (`{"url": fileUrl, …}`) — el servidor verifica el blob contra el storage (tamaño/tipo REALES) y lo promueve a su ubicación definitiva. Un blob nunca confirmado expira solo. Gate `records:create`.
|
|
1350
|
+
*/
|
|
1351
|
+
post: operations["HablalaApiWeb.Machine.UploadController.create"];
|
|
1352
|
+
delete?: never;
|
|
1353
|
+
options?: never;
|
|
1354
|
+
head?: never;
|
|
1355
|
+
patch?: never;
|
|
1356
|
+
trace?: never;
|
|
1357
|
+
};
|
|
1358
|
+
"/v1/organization": {
|
|
1359
|
+
parameters: {
|
|
1360
|
+
query?: never;
|
|
1361
|
+
header?: never;
|
|
1362
|
+
path?: never;
|
|
1363
|
+
cookie?: never;
|
|
1364
|
+
};
|
|
1365
|
+
/**
|
|
1366
|
+
* Ver la organización del token (estado de propiedad)
|
|
1367
|
+
* @description La organización a la que pertenece la credencial de máquina, con su `status` (`active`/`unclaimed`/`claimed`) y sus relojes. Es el endpoint de polling del agente que provisionó una claimable org: mientras responda `unclaimed`, nadie la reclamó; un `401` posterior significa que se reclamó (los tokens del agente se rotaron) o venció.
|
|
1368
|
+
*/
|
|
1369
|
+
get: operations["HablalaApiWeb.Machine.OrganizationController.show"];
|
|
1370
|
+
put?: never;
|
|
1371
|
+
post?: never;
|
|
1372
|
+
delete?: never;
|
|
1373
|
+
options?: never;
|
|
1374
|
+
head?: never;
|
|
1375
|
+
patch?: never;
|
|
1376
|
+
trace?: never;
|
|
1377
|
+
};
|
|
1378
|
+
"/v1/organization/refresh-claim-url": {
|
|
1379
|
+
parameters: {
|
|
1380
|
+
query?: never;
|
|
1381
|
+
header?: never;
|
|
1382
|
+
path?: never;
|
|
1383
|
+
cookie?: never;
|
|
1384
|
+
};
|
|
1385
|
+
get?: never;
|
|
1386
|
+
put?: never;
|
|
1387
|
+
/**
|
|
1388
|
+
* Renovar el claim URL de una claimable organization
|
|
1389
|
+
* @description Emite un claim link nuevo (el anterior deja de canjear al instante) con su TTL corto, SIN extender el TTL del recurso. Falla si la org ya fue reclamada (`409`) o si el recurso venció (`410`).
|
|
1390
|
+
*/
|
|
1391
|
+
post: operations["HablalaApiWeb.Machine.OrganizationController.refresh_claim_url"];
|
|
1392
|
+
delete?: never;
|
|
1393
|
+
options?: never;
|
|
1394
|
+
head?: never;
|
|
1395
|
+
patch?: never;
|
|
1396
|
+
trace?: never;
|
|
1397
|
+
};
|
|
1338
1398
|
"/v1/organizations": {
|
|
1339
1399
|
parameters: {
|
|
1340
1400
|
query?: never;
|
|
@@ -1353,6 +1413,66 @@ interface paths {
|
|
|
1353
1413
|
patch?: never;
|
|
1354
1414
|
trace?: never;
|
|
1355
1415
|
};
|
|
1416
|
+
"/v1/organizations/claim": {
|
|
1417
|
+
parameters: {
|
|
1418
|
+
query?: never;
|
|
1419
|
+
header?: never;
|
|
1420
|
+
path?: never;
|
|
1421
|
+
cookie?: never;
|
|
1422
|
+
};
|
|
1423
|
+
get?: never;
|
|
1424
|
+
put?: never;
|
|
1425
|
+
/**
|
|
1426
|
+
* Reclamar una claimable organization
|
|
1427
|
+
* @description Consuma la **transferencia**: el usuario autenticado se vuelve `owner` de la org del claim token, la org pasa a `claimed` y los secretos del agente se ROTAN (todos los `mat_` y API keys activos se revocan; se emite un par nuevo que se revela aquí una única vez). Registra el evento `organization.claimed`.
|
|
1428
|
+
*/
|
|
1429
|
+
post: operations["HablalaApiWeb.Orgs.ClaimableOrganizationController.claim"];
|
|
1430
|
+
delete?: never;
|
|
1431
|
+
options?: never;
|
|
1432
|
+
head?: never;
|
|
1433
|
+
patch?: never;
|
|
1434
|
+
trace?: never;
|
|
1435
|
+
};
|
|
1436
|
+
"/v1/organizations/claimable": {
|
|
1437
|
+
parameters: {
|
|
1438
|
+
query?: never;
|
|
1439
|
+
header?: never;
|
|
1440
|
+
path?: never;
|
|
1441
|
+
cookie?: never;
|
|
1442
|
+
};
|
|
1443
|
+
get?: never;
|
|
1444
|
+
put?: never;
|
|
1445
|
+
/**
|
|
1446
|
+
* Provisionar una claimable organization (sin cuenta)
|
|
1447
|
+
* @description El **signup invertido** para agentes: crea una organización real `unclaimed` (sin dueño) y devuelve — UNA sola vez — el par de API keys (`pk_`/`sk_`), el machine access token (`mat_`, preset `account_as_code`) y el `claimUrl` con el que un humano la reclama. La org caduca (`expiresAt`, 72 h) si nadie la reclama; el claim link tiene su propio TTL renovable. Al reclamarse, los secretos del agente se ROTAN. Sin autenticación; rate limit estricto por IP.
|
|
1448
|
+
*/
|
|
1449
|
+
post: operations["HablalaApiWeb.Orgs.ClaimableOrganizationController.create"];
|
|
1450
|
+
delete?: never;
|
|
1451
|
+
options?: never;
|
|
1452
|
+
head?: never;
|
|
1453
|
+
patch?: never;
|
|
1454
|
+
trace?: never;
|
|
1455
|
+
};
|
|
1456
|
+
"/v1/organizations/claimable/preview": {
|
|
1457
|
+
parameters: {
|
|
1458
|
+
query?: never;
|
|
1459
|
+
header?: never;
|
|
1460
|
+
path?: never;
|
|
1461
|
+
cookie?: never;
|
|
1462
|
+
};
|
|
1463
|
+
/**
|
|
1464
|
+
* Previsualizar un claim token
|
|
1465
|
+
* @description A qué organización lleva un claim token, sin consumirlo ni requerir sesión (la pantalla de claim lo muestra antes de pedir login). Siempre `200`: `status` distingue un token válido de uno inválido/vencido/ya reclamado (sin filtrar el motivo).
|
|
1466
|
+
*/
|
|
1467
|
+
get: operations["HablalaApiWeb.Orgs.ClaimableOrganizationController.preview"];
|
|
1468
|
+
put?: never;
|
|
1469
|
+
post?: never;
|
|
1470
|
+
delete?: never;
|
|
1471
|
+
options?: never;
|
|
1472
|
+
head?: never;
|
|
1473
|
+
patch?: never;
|
|
1474
|
+
trace?: never;
|
|
1475
|
+
};
|
|
1356
1476
|
"/v1/organizations/{id}": {
|
|
1357
1477
|
parameters: {
|
|
1358
1478
|
query?: never;
|
|
@@ -3378,6 +3498,119 @@ interface paths {
|
|
|
3378
3498
|
patch?: never;
|
|
3379
3499
|
trace?: never;
|
|
3380
3500
|
};
|
|
3501
|
+
"/v1/organizations/{organization_id}/webhooks": {
|
|
3502
|
+
parameters: {
|
|
3503
|
+
query?: never;
|
|
3504
|
+
header?: never;
|
|
3505
|
+
path?: never;
|
|
3506
|
+
cookie?: never;
|
|
3507
|
+
};
|
|
3508
|
+
/**
|
|
3509
|
+
* Listar webhook endpoints
|
|
3510
|
+
* @description Los webhook endpoints de la organización (solo metadatos; el signing secret se obtiene con `GET .../:id/secret`).
|
|
3511
|
+
*/
|
|
3512
|
+
get: operations["HablalaApiWeb.Webhooks.WebhookController.index"];
|
|
3513
|
+
put?: never;
|
|
3514
|
+
/**
|
|
3515
|
+
* Crear un webhook endpoint
|
|
3516
|
+
* @description Suscribe una URL a eventos del event store. La plataforma genera el **signing secret** (`whsec_…`) y lo incluye en esta respuesta (`secret`); con él el receptor verifica la firma de cada entrega (spec Standard Webhooks). También puede recuperarse después con `GET .../:id/secret`.
|
|
3517
|
+
*/
|
|
3518
|
+
post: operations["HablalaApiWeb.Webhooks.WebhookController.create"];
|
|
3519
|
+
delete?: never;
|
|
3520
|
+
options?: never;
|
|
3521
|
+
head?: never;
|
|
3522
|
+
patch?: never;
|
|
3523
|
+
trace?: never;
|
|
3524
|
+
};
|
|
3525
|
+
"/v1/organizations/{organization_id}/webhooks/{id}": {
|
|
3526
|
+
parameters: {
|
|
3527
|
+
query?: never;
|
|
3528
|
+
header?: never;
|
|
3529
|
+
path?: never;
|
|
3530
|
+
cookie?: never;
|
|
3531
|
+
};
|
|
3532
|
+
/** Ver un webhook endpoint */
|
|
3533
|
+
get: operations["HablalaApiWeb.Webhooks.WebhookController.show"];
|
|
3534
|
+
/**
|
|
3535
|
+
* Actualizar un webhook endpoint
|
|
3536
|
+
* @description Cambia `url`/`enabledEvents`/`status`. Reactivar (`status: "enabled"`) un endpoint auto-deshabilitado limpia el motivo del disable. El slug y el secret no se tocan aquí.
|
|
3537
|
+
*/
|
|
3538
|
+
put: operations["HablalaApiWeb.Webhooks.WebhookController.update"];
|
|
3539
|
+
post?: never;
|
|
3540
|
+
/**
|
|
3541
|
+
* Borrar un webhook endpoint
|
|
3542
|
+
* @description Elimina el endpoint y su historial de deliveries. Deja de recibir entregas.
|
|
3543
|
+
*/
|
|
3544
|
+
delete: operations["HablalaApiWeb.Webhooks.WebhookController.delete"];
|
|
3545
|
+
options?: never;
|
|
3546
|
+
head?: never;
|
|
3547
|
+
/**
|
|
3548
|
+
* Actualizar un webhook endpoint
|
|
3549
|
+
* @description Cambia `url`/`enabledEvents`/`status`. Reactivar (`status: "enabled"`) un endpoint auto-deshabilitado limpia el motivo del disable. El slug y el secret no se tocan aquí.
|
|
3550
|
+
*/
|
|
3551
|
+
patch: operations["HablalaApiWeb.Webhooks.WebhookController.update (2)"];
|
|
3552
|
+
trace?: never;
|
|
3553
|
+
};
|
|
3554
|
+
"/v1/organizations/{organization_id}/webhooks/{id}/deliveries": {
|
|
3555
|
+
parameters: {
|
|
3556
|
+
query?: never;
|
|
3557
|
+
header?: never;
|
|
3558
|
+
path?: never;
|
|
3559
|
+
cookie?: never;
|
|
3560
|
+
};
|
|
3561
|
+
/**
|
|
3562
|
+
* Listar deliveries de un endpoint
|
|
3563
|
+
* @description La bitácora de entregas (canónico GitHub): qué eventos se entregaron, cuántos intentos costaron y con qué respondió el receptor. Más recientes primero (máx. 50).
|
|
3564
|
+
*/
|
|
3565
|
+
get: operations["HablalaApiWeb.Webhooks.WebhookController.deliveries"];
|
|
3566
|
+
put?: never;
|
|
3567
|
+
post?: never;
|
|
3568
|
+
delete?: never;
|
|
3569
|
+
options?: never;
|
|
3570
|
+
head?: never;
|
|
3571
|
+
patch?: never;
|
|
3572
|
+
trace?: never;
|
|
3573
|
+
};
|
|
3574
|
+
"/v1/organizations/{organization_id}/webhooks/{id}/rotate": {
|
|
3575
|
+
parameters: {
|
|
3576
|
+
query?: never;
|
|
3577
|
+
header?: never;
|
|
3578
|
+
path?: never;
|
|
3579
|
+
cookie?: never;
|
|
3580
|
+
};
|
|
3581
|
+
get?: never;
|
|
3582
|
+
put?: never;
|
|
3583
|
+
/**
|
|
3584
|
+
* Rotar el signing secret
|
|
3585
|
+
* @description Genera un `whsec_…` nuevo para el MISMO endpoint (el historial no cambia). El secret viejo deja de firmar de inmediato: actualiza la copia del receptor. La respuesta incluye el nuevo secret.
|
|
3586
|
+
*/
|
|
3587
|
+
post: operations["HablalaApiWeb.Webhooks.WebhookController.rotate"];
|
|
3588
|
+
delete?: never;
|
|
3589
|
+
options?: never;
|
|
3590
|
+
head?: never;
|
|
3591
|
+
patch?: never;
|
|
3592
|
+
trace?: never;
|
|
3593
|
+
};
|
|
3594
|
+
"/v1/organizations/{organization_id}/webhooks/{id}/secret": {
|
|
3595
|
+
parameters: {
|
|
3596
|
+
query?: never;
|
|
3597
|
+
header?: never;
|
|
3598
|
+
path?: never;
|
|
3599
|
+
cookie?: never;
|
|
3600
|
+
};
|
|
3601
|
+
/**
|
|
3602
|
+
* Revelar el signing secret
|
|
3603
|
+
* @description El `whsec_…` del endpoint, para configurarlo en el receptor (modelo Svix `GET .../secret` / Stripe dashboard "Reveal"). Es una llave de firma compartida, no una credencial de autenticación entrante: por eso es recuperable, a diferencia de `sk_`/`mat_`.
|
|
3604
|
+
*/
|
|
3605
|
+
get: operations["HablalaApiWeb.Webhooks.WebhookController.secret"];
|
|
3606
|
+
put?: never;
|
|
3607
|
+
post?: never;
|
|
3608
|
+
delete?: never;
|
|
3609
|
+
options?: never;
|
|
3610
|
+
head?: never;
|
|
3611
|
+
patch?: never;
|
|
3612
|
+
trace?: never;
|
|
3613
|
+
};
|
|
3381
3614
|
"/v1/organizations/{organization_id}/workflow-executions": {
|
|
3382
3615
|
parameters: {
|
|
3383
3616
|
query?: never;
|
|
@@ -3617,6 +3850,26 @@ interface paths {
|
|
|
3617
3850
|
patch: operations["HablalaApiWeb.PublicApi.RecordController.update (2)"];
|
|
3618
3851
|
trace?: never;
|
|
3619
3852
|
};
|
|
3853
|
+
"/v1/public/me/objects/{object_slug}/uploads": {
|
|
3854
|
+
parameters: {
|
|
3855
|
+
query?: never;
|
|
3856
|
+
header?: never;
|
|
3857
|
+
path?: never;
|
|
3858
|
+
cookie?: never;
|
|
3859
|
+
};
|
|
3860
|
+
get?: never;
|
|
3861
|
+
put?: never;
|
|
3862
|
+
/**
|
|
3863
|
+
* Pedir una URL de subida para un attribute file (canal público)
|
|
3864
|
+
* @description Como el staged upload del canal de máquina (`POST /v1/objects/{object_slug}/uploads`), pero gobernado por el ABAC default-deny del canal público: exige una policy `allow` de `create` o `update` para el principal (`public` con la API key; `end_user` con el session token en la variante `/me`) sobre el object — sin policy, 403. Flujo: presign → `PUT` del blob a `uploadUrl` → confirmar escribiendo el record con `fileUrl` en el envelope del attribute `file`.
|
|
3865
|
+
*/
|
|
3866
|
+
post: operations["HablalaApiWeb.PublicApi.UploadController.create"];
|
|
3867
|
+
delete?: never;
|
|
3868
|
+
options?: never;
|
|
3869
|
+
head?: never;
|
|
3870
|
+
patch?: never;
|
|
3871
|
+
trace?: never;
|
|
3872
|
+
};
|
|
3620
3873
|
"/v1/public/me/query": {
|
|
3621
3874
|
parameters: {
|
|
3622
3875
|
query?: never;
|
|
@@ -3673,6 +3926,26 @@ interface paths {
|
|
|
3673
3926
|
patch: operations["HablalaApiWeb.PublicApi.RecordController.update (4)"];
|
|
3674
3927
|
trace?: never;
|
|
3675
3928
|
};
|
|
3929
|
+
"/v1/public/objects/{object_slug}/uploads": {
|
|
3930
|
+
parameters: {
|
|
3931
|
+
query?: never;
|
|
3932
|
+
header?: never;
|
|
3933
|
+
path?: never;
|
|
3934
|
+
cookie?: never;
|
|
3935
|
+
};
|
|
3936
|
+
get?: never;
|
|
3937
|
+
put?: never;
|
|
3938
|
+
/**
|
|
3939
|
+
* Pedir una URL de subida para un attribute file (canal público)
|
|
3940
|
+
* @description Como el staged upload del canal de máquina (`POST /v1/objects/{object_slug}/uploads`), pero gobernado por el ABAC default-deny del canal público: exige una policy `allow` de `create` o `update` para el principal (`public` con la API key; `end_user` con el session token en la variante `/me`) sobre el object — sin policy, 403. Flujo: presign → `PUT` del blob a `uploadUrl` → confirmar escribiendo el record con `fileUrl` en el envelope del attribute `file`.
|
|
3941
|
+
*/
|
|
3942
|
+
post: operations["HablalaApiWeb.PublicApi.UploadController.create (2)"];
|
|
3943
|
+
delete?: never;
|
|
3944
|
+
options?: never;
|
|
3945
|
+
head?: never;
|
|
3946
|
+
patch?: never;
|
|
3947
|
+
trace?: never;
|
|
3948
|
+
};
|
|
3676
3949
|
"/v1/public/query": {
|
|
3677
3950
|
parameters: {
|
|
3678
3951
|
query?: never;
|
|
@@ -4247,7 +4520,7 @@ interface paths {
|
|
|
4247
4520
|
patch: operations["HablalaApiWeb.Accounts.UserSettingsController.update_username"];
|
|
4248
4521
|
trace?: never;
|
|
4249
4522
|
};
|
|
4250
|
-
"/v1/
|
|
4523
|
+
"/v1/webhooks": {
|
|
4251
4524
|
parameters: {
|
|
4252
4525
|
query?: never;
|
|
4253
4526
|
header?: never;
|
|
@@ -4255,54 +4528,167 @@ interface paths {
|
|
|
4255
4528
|
cookie?: never;
|
|
4256
4529
|
};
|
|
4257
4530
|
/**
|
|
4258
|
-
*
|
|
4259
|
-
* @description
|
|
4531
|
+
* Listar webhook endpoints
|
|
4532
|
+
* @description Los webhook endpoints de la organización (solo metadatos; el signing secret se obtiene con `GET .../:id/secret`).
|
|
4260
4533
|
*/
|
|
4261
|
-
get: operations["HablalaApiWeb.Machine.
|
|
4534
|
+
get: operations["HablalaApiWeb.Machine.WebhookController.index"];
|
|
4262
4535
|
put?: never;
|
|
4263
|
-
|
|
4536
|
+
/**
|
|
4537
|
+
* Crear un webhook endpoint
|
|
4538
|
+
* @description Suscribe una URL a eventos del event store. La plataforma genera el **signing secret** (`whsec_…`) y lo incluye en esta respuesta (`secret`); con él el receptor verifica la firma de cada entrega (spec Standard Webhooks). También puede recuperarse después con `GET .../:id/secret`.
|
|
4539
|
+
*/
|
|
4540
|
+
post: operations["HablalaApiWeb.Machine.WebhookController.create"];
|
|
4264
4541
|
delete?: never;
|
|
4265
4542
|
options?: never;
|
|
4266
4543
|
head?: never;
|
|
4267
4544
|
patch?: never;
|
|
4268
4545
|
trace?: never;
|
|
4269
4546
|
};
|
|
4270
|
-
}
|
|
4271
|
-
|
|
4272
|
-
|
|
4547
|
+
"/v1/webhooks/{id}": {
|
|
4548
|
+
parameters: {
|
|
4549
|
+
query?: never;
|
|
4550
|
+
header?: never;
|
|
4551
|
+
path?: never;
|
|
4552
|
+
cookie?: never;
|
|
4553
|
+
};
|
|
4554
|
+
/** Ver un webhook endpoint */
|
|
4555
|
+
get: operations["HablalaApiWeb.Machine.WebhookController.show"];
|
|
4273
4556
|
/**
|
|
4274
|
-
*
|
|
4275
|
-
* @description
|
|
4557
|
+
* Actualizar un webhook endpoint
|
|
4558
|
+
* @description Cambia `url`/`enabledEvents`/`status`. Reactivar (`status: "enabled"`) un endpoint auto-deshabilitado limpia el motivo del disable. El slug y el secret no se tocan aquí.
|
|
4276
4559
|
*/
|
|
4277
|
-
|
|
4278
|
-
|
|
4279
|
-
active: boolean;
|
|
4280
|
-
/** Format: date-time */
|
|
4281
|
-
expiresAt?: string | null;
|
|
4282
|
-
id: string;
|
|
4283
|
-
/** Format: date-time */
|
|
4284
|
-
insertedAt?: string;
|
|
4285
|
-
/** Format: date-time */
|
|
4286
|
-
lastUsedAt?: string | null;
|
|
4287
|
-
/** @description Etiqueta para el panel (p. ej. "CI deploy"). */
|
|
4288
|
-
name: string;
|
|
4289
|
-
/** @description Permisos RBAC del token (`recurso:accion`), su propio scope (mínimo privilegio). */
|
|
4290
|
-
permissions: string[];
|
|
4291
|
-
/** @description Primeros caracteres del secreto (no secreto), p. ej. `mat_a1b2`. */
|
|
4292
|
-
prefix?: string | null;
|
|
4293
|
-
/** Format: date-time */
|
|
4294
|
-
revokedAt?: string | null;
|
|
4295
|
-
/** Format: date-time */
|
|
4296
|
-
updatedAt?: string;
|
|
4297
|
-
};
|
|
4560
|
+
put: operations["HablalaApiWeb.Machine.WebhookController.update"];
|
|
4561
|
+
post?: never;
|
|
4298
4562
|
/**
|
|
4299
|
-
*
|
|
4300
|
-
* @description
|
|
4563
|
+
* Borrar un webhook endpoint
|
|
4564
|
+
* @description Elimina el endpoint y su historial de deliveries. Deja de recibir entregas.
|
|
4301
4565
|
*/
|
|
4302
|
-
|
|
4303
|
-
|
|
4304
|
-
|
|
4305
|
-
|
|
4566
|
+
delete: operations["HablalaApiWeb.Machine.WebhookController.delete"];
|
|
4567
|
+
options?: never;
|
|
4568
|
+
head?: never;
|
|
4569
|
+
/**
|
|
4570
|
+
* Actualizar un webhook endpoint
|
|
4571
|
+
* @description Cambia `url`/`enabledEvents`/`status`. Reactivar (`status: "enabled"`) un endpoint auto-deshabilitado limpia el motivo del disable. El slug y el secret no se tocan aquí.
|
|
4572
|
+
*/
|
|
4573
|
+
patch: operations["HablalaApiWeb.Machine.WebhookController.update (2)"];
|
|
4574
|
+
trace?: never;
|
|
4575
|
+
};
|
|
4576
|
+
"/v1/webhooks/{id}/deliveries": {
|
|
4577
|
+
parameters: {
|
|
4578
|
+
query?: never;
|
|
4579
|
+
header?: never;
|
|
4580
|
+
path?: never;
|
|
4581
|
+
cookie?: never;
|
|
4582
|
+
};
|
|
4583
|
+
/**
|
|
4584
|
+
* Listar deliveries de un endpoint
|
|
4585
|
+
* @description La bitácora de entregas (canónico GitHub): qué eventos se entregaron, cuántos intentos costaron y con qué respondió el receptor. Más recientes primero (máx. 50).
|
|
4586
|
+
*/
|
|
4587
|
+
get: operations["HablalaApiWeb.Machine.WebhookController.deliveries"];
|
|
4588
|
+
put?: never;
|
|
4589
|
+
post?: never;
|
|
4590
|
+
delete?: never;
|
|
4591
|
+
options?: never;
|
|
4592
|
+
head?: never;
|
|
4593
|
+
patch?: never;
|
|
4594
|
+
trace?: never;
|
|
4595
|
+
};
|
|
4596
|
+
"/v1/webhooks/{id}/rotate": {
|
|
4597
|
+
parameters: {
|
|
4598
|
+
query?: never;
|
|
4599
|
+
header?: never;
|
|
4600
|
+
path?: never;
|
|
4601
|
+
cookie?: never;
|
|
4602
|
+
};
|
|
4603
|
+
get?: never;
|
|
4604
|
+
put?: never;
|
|
4605
|
+
/**
|
|
4606
|
+
* Rotar el signing secret
|
|
4607
|
+
* @description Genera un `whsec_…` nuevo para el MISMO endpoint (el historial no cambia). El secret viejo deja de firmar de inmediato: actualiza la copia del receptor. La respuesta incluye el nuevo secret.
|
|
4608
|
+
*/
|
|
4609
|
+
post: operations["HablalaApiWeb.Machine.WebhookController.rotate"];
|
|
4610
|
+
delete?: never;
|
|
4611
|
+
options?: never;
|
|
4612
|
+
head?: never;
|
|
4613
|
+
patch?: never;
|
|
4614
|
+
trace?: never;
|
|
4615
|
+
};
|
|
4616
|
+
"/v1/webhooks/{id}/secret": {
|
|
4617
|
+
parameters: {
|
|
4618
|
+
query?: never;
|
|
4619
|
+
header?: never;
|
|
4620
|
+
path?: never;
|
|
4621
|
+
cookie?: never;
|
|
4622
|
+
};
|
|
4623
|
+
/**
|
|
4624
|
+
* Revelar el signing secret
|
|
4625
|
+
* @description El `whsec_…` del endpoint, para configurarlo en el receptor (modelo Svix `GET .../secret` / Stripe dashboard "Reveal"). Es una llave de firma compartida, no una credencial de autenticación entrante: por eso es recuperable, a diferencia de `sk_`/`mat_`.
|
|
4626
|
+
*/
|
|
4627
|
+
get: operations["HablalaApiWeb.Machine.WebhookController.secret"];
|
|
4628
|
+
put?: never;
|
|
4629
|
+
post?: never;
|
|
4630
|
+
delete?: never;
|
|
4631
|
+
options?: never;
|
|
4632
|
+
head?: never;
|
|
4633
|
+
patch?: never;
|
|
4634
|
+
trace?: never;
|
|
4635
|
+
};
|
|
4636
|
+
"/v1/whoami": {
|
|
4637
|
+
parameters: {
|
|
4638
|
+
query?: never;
|
|
4639
|
+
header?: never;
|
|
4640
|
+
path?: never;
|
|
4641
|
+
cookie?: never;
|
|
4642
|
+
};
|
|
4643
|
+
/**
|
|
4644
|
+
* Identificar la credencial (organización + permisos)
|
|
4645
|
+
* @description Devuelve la organización a la que pertenece el token de máquina y sus permisos efectivos. La organización sale del token (no de la URL): así una herramienta externa la infiere sin que el desarrollador la configure.
|
|
4646
|
+
*/
|
|
4647
|
+
get: operations["HablalaApiWeb.Machine.WhoamiController.show"];
|
|
4648
|
+
put?: never;
|
|
4649
|
+
post?: never;
|
|
4650
|
+
delete?: never;
|
|
4651
|
+
options?: never;
|
|
4652
|
+
head?: never;
|
|
4653
|
+
patch?: never;
|
|
4654
|
+
trace?: never;
|
|
4655
|
+
};
|
|
4656
|
+
}
|
|
4657
|
+
interface components {
|
|
4658
|
+
schemas: {
|
|
4659
|
+
/**
|
|
4660
|
+
* AccessToken
|
|
4661
|
+
* @description Metadatos de un access token de máquina (`mat_…`): la credencial con la que un agente (Claude Code) o un script CI escribe el modelo de datos por HTTP. El secreto en claro NO se incluye aquí — solo se devuelve una vez, al crearlo.
|
|
4662
|
+
*/
|
|
4663
|
+
AccessToken: {
|
|
4664
|
+
/** @description ¿Ni revocado ni expirado? */
|
|
4665
|
+
active: boolean;
|
|
4666
|
+
/** Format: date-time */
|
|
4667
|
+
expiresAt?: string | null;
|
|
4668
|
+
id: string;
|
|
4669
|
+
/** Format: date-time */
|
|
4670
|
+
insertedAt?: string;
|
|
4671
|
+
/** Format: date-time */
|
|
4672
|
+
lastUsedAt?: string | null;
|
|
4673
|
+
/** @description Etiqueta para el panel (p. ej. "CI deploy"). */
|
|
4674
|
+
name: string;
|
|
4675
|
+
/** @description Permisos RBAC del token (`recurso:accion`), su propio scope (mínimo privilegio). */
|
|
4676
|
+
permissions: string[];
|
|
4677
|
+
/** @description Primeros caracteres del secreto (no secreto), p. ej. `mat_a1b2`. */
|
|
4678
|
+
prefix?: string | null;
|
|
4679
|
+
/** Format: date-time */
|
|
4680
|
+
revokedAt?: string | null;
|
|
4681
|
+
/** Format: date-time */
|
|
4682
|
+
updatedAt?: string;
|
|
4683
|
+
};
|
|
4684
|
+
/**
|
|
4685
|
+
* AccessTokenCreated
|
|
4686
|
+
* @description El token recién creado, con el secreto en claro (`token`) presente UNA sola vez. Guárdalo: no se puede recuperar después.
|
|
4687
|
+
*/
|
|
4688
|
+
AccessTokenCreated: {
|
|
4689
|
+
active?: boolean;
|
|
4690
|
+
/** Format: date-time */
|
|
4691
|
+
expiresAt?: string | null;
|
|
4306
4692
|
id: string;
|
|
4307
4693
|
/** Format: date-time */
|
|
4308
4694
|
insertedAt?: string;
|
|
@@ -4616,6 +5002,14 @@ interface components {
|
|
|
4616
5002
|
};
|
|
4617
5003
|
/** @description ETag del estado declarable (optimistic locking). El `export`/`pull` lo emite; el CLI lo guarda y lo reenvía en el header `If-Match` al aplicar. Si la cuenta cambió desde el `pull` (UI, MCP, otro apply), el `apply` devuelve 412 en vez de pisar lo no visto. Read-only: en el cuerpo del PUT se ignora (la precondición viaja por el header). */
|
|
4618
5004
|
readonly version?: string;
|
|
5005
|
+
webhooks?: components["schemas"]["ManifestWebhookEndpoint"][] | {
|
|
5006
|
+
items: components["schemas"]["ManifestWebhookEndpoint"][];
|
|
5007
|
+
/**
|
|
5008
|
+
* @description `authoritative` (default): lo no declarado se archiva/borra. `additive`: solo crea/actualiza lo declarado, sin expulsar lo demás (least astonishment).
|
|
5009
|
+
* @enum {string}
|
|
5010
|
+
*/
|
|
5011
|
+
mode?: "authoritative" | "additive";
|
|
5012
|
+
};
|
|
4619
5013
|
workflows?: components["schemas"]["ManifestWorkflow"][] | {
|
|
4620
5014
|
items: components["schemas"]["ManifestWorkflow"][];
|
|
4621
5015
|
/**
|
|
@@ -5233,6 +5627,105 @@ interface components {
|
|
|
5233
5627
|
currency: string;
|
|
5234
5628
|
items: components["schemas"]["CheckoutItem"][];
|
|
5235
5629
|
};
|
|
5630
|
+
/**
|
|
5631
|
+
* ClaimPreviewResponse
|
|
5632
|
+
* @description Preview de un claim token: a qué organización lleva, antes de confirmar. Siempre `200`; `status` distingue un token válido de uno inválido/vencido/ya reclamado.
|
|
5633
|
+
*/
|
|
5634
|
+
ClaimPreviewResponse: {
|
|
5635
|
+
data: {
|
|
5636
|
+
/** @description Presente solo si `status` = valid. */
|
|
5637
|
+
organization?: {
|
|
5638
|
+
avatarUrl?: string | null;
|
|
5639
|
+
name: string;
|
|
5640
|
+
} | null;
|
|
5641
|
+
/** @enum {string} */
|
|
5642
|
+
status: "valid" | "invalid";
|
|
5643
|
+
};
|
|
5644
|
+
};
|
|
5645
|
+
/** ClaimRequest */
|
|
5646
|
+
ClaimRequest: {
|
|
5647
|
+
/** @description El claim token (`clm_…`) del `claimUrl`. */
|
|
5648
|
+
token: string;
|
|
5649
|
+
};
|
|
5650
|
+
/**
|
|
5651
|
+
* ClaimResponse
|
|
5652
|
+
* @description La transferencia consumada: el usuario autenticado es ahora **owner** y los secretos del agente se ROTARON — este par de API keys nuevo se revela UNA sola vez.
|
|
5653
|
+
*/
|
|
5654
|
+
ClaimResponse: {
|
|
5655
|
+
data: {
|
|
5656
|
+
/** @description El par NUEVO emitido al reclamar (el del agente quedó revocado). */
|
|
5657
|
+
apiKeys: {
|
|
5658
|
+
publishableKey: string;
|
|
5659
|
+
secretKey: string;
|
|
5660
|
+
};
|
|
5661
|
+
organization: components["schemas"]["ClaimableOrganization"];
|
|
5662
|
+
};
|
|
5663
|
+
};
|
|
5664
|
+
/**
|
|
5665
|
+
* ClaimableOrganization
|
|
5666
|
+
* @description Una organización con su ciclo de vida de propiedad: `unclaimed` (provisionada por un agente, sin dueño; caduca en `expiresAt`) → `claimed` (reclamada por un humano).
|
|
5667
|
+
*/
|
|
5668
|
+
ClaimableOrganization: {
|
|
5669
|
+
/**
|
|
5670
|
+
* Format: date-time
|
|
5671
|
+
* @description TTL del RECURSO: cuándo caduca la org si nadie la reclama (`null` = no caduca).
|
|
5672
|
+
*/
|
|
5673
|
+
expiresAt?: string | null;
|
|
5674
|
+
/** @description Id público (`org_…`). */
|
|
5675
|
+
id: string;
|
|
5676
|
+
/** Format: date-time */
|
|
5677
|
+
insertedAt?: string;
|
|
5678
|
+
name: string;
|
|
5679
|
+
slug: string;
|
|
5680
|
+
/**
|
|
5681
|
+
* @description Estado de propiedad de la org.
|
|
5682
|
+
* @enum {string}
|
|
5683
|
+
*/
|
|
5684
|
+
status: "active" | "unclaimed" | "claimed";
|
|
5685
|
+
/** Format: date-time */
|
|
5686
|
+
updatedAt?: string;
|
|
5687
|
+
};
|
|
5688
|
+
/**
|
|
5689
|
+
* ClaimableOrganizationCreateResponse
|
|
5690
|
+
* @description La claimable organization recién provisionada, con TODAS sus credenciales en claro — la ÚNICA vez que se pueden leer (patrón Stripe: las keys no vuelven en lecturas posteriores). Guárdalas de inmediato (p. ej. en el `.env`).
|
|
5691
|
+
*/
|
|
5692
|
+
ClaimableOrganizationCreateResponse: {
|
|
5693
|
+
data: {
|
|
5694
|
+
/** @description Machine access token (`mat_…`, preset `account_as_code`): la autoridad del agente sobre la org hasta el claim (se ROTA al reclamarse). */
|
|
5695
|
+
accessToken: string;
|
|
5696
|
+
/** @description El par de API keys del canal público. */
|
|
5697
|
+
apiKeys: {
|
|
5698
|
+
/** @description `pk_…` (browser-safe). */
|
|
5699
|
+
publishableKey: string;
|
|
5700
|
+
/** @description `sk_…` (solo servidor). */
|
|
5701
|
+
secretKey: string;
|
|
5702
|
+
};
|
|
5703
|
+
/**
|
|
5704
|
+
* Format: date-time
|
|
5705
|
+
* @description TTL del claim LINK (reloj distinto del `expiresAt` del recurso).
|
|
5706
|
+
*/
|
|
5707
|
+
claimExpiresAt: string;
|
|
5708
|
+
/** @description El link (panel) con el que un humano reclama la org. Un solo uso; caduca en `claimExpiresAt` y se renueva con `POST /v1/organization/refresh-claim-url`. */
|
|
5709
|
+
claimUrl: string;
|
|
5710
|
+
organization: components["schemas"]["ClaimableOrganization"];
|
|
5711
|
+
};
|
|
5712
|
+
};
|
|
5713
|
+
/**
|
|
5714
|
+
* ClaimableOrganizationRequest
|
|
5715
|
+
* @description Provisión de una **claimable organization** (el signup invertido): un agente crea la org SIN cuenta humana y un humano la reclama después abriendo el `claimUrl`.
|
|
5716
|
+
*/
|
|
5717
|
+
ClaimableOrganizationRequest: {
|
|
5718
|
+
/** @description Nombre visible de la organización. */
|
|
5719
|
+
name: string;
|
|
5720
|
+
/** @description Datos para precargar el claim (patrón Stripe `prefill`). Se guardan cifrados. */
|
|
5721
|
+
prefill?: {
|
|
5722
|
+
/**
|
|
5723
|
+
* Format: email
|
|
5724
|
+
* @description Email del humano que reclamará la org.
|
|
5725
|
+
*/
|
|
5726
|
+
email?: string;
|
|
5727
|
+
} | null;
|
|
5728
|
+
};
|
|
5236
5729
|
/**
|
|
5237
5730
|
* ContactContent
|
|
5238
5731
|
* @description Payload de un mensaje `contact` (compartir contacto, estilo WhatsApp). El cliente pinta una tarjeta con acción 'Agregar a contactos'. `vcard` es el vCard crudo opcional (fuente de verdad para importar); `name`/`phones` son la vista renderizable.
|
|
@@ -6229,6 +6722,20 @@ interface components {
|
|
|
6229
6722
|
LoginRequest: {
|
|
6230
6723
|
user: components["schemas"]["LoginCredentials"];
|
|
6231
6724
|
};
|
|
6725
|
+
/**
|
|
6726
|
+
* MachineOrganizationResponse
|
|
6727
|
+
* @description La organización del token de máquina, con su estado de propiedad. Es el endpoint de polling del agente tras provisionar una claimable org: cuando el humano reclama, los tokens del agente se rotan, así que el `401` posterior significa "reclamada (o vencida)".
|
|
6728
|
+
*/
|
|
6729
|
+
MachineOrganizationResponse: {
|
|
6730
|
+
data: {
|
|
6731
|
+
/**
|
|
6732
|
+
* Format: date-time
|
|
6733
|
+
* @description Cuándo caduca el claim link vigente (`null` si no hay).
|
|
6734
|
+
*/
|
|
6735
|
+
claimExpiresAt?: string | null;
|
|
6736
|
+
organization: components["schemas"]["ClaimableOrganization"];
|
|
6737
|
+
};
|
|
6738
|
+
};
|
|
6232
6739
|
/**
|
|
6233
6740
|
* ManifestAgent
|
|
6234
6741
|
* @description Un agente de IA declarado, identificado por `handle`. Archivar (no declararlo) lo revoca. `ownerUserId` (id público `user_…`) es obligatorio al crear con un access token de máquina; con un usuario, el creador es el dueño por defecto.
|
|
@@ -6497,6 +7004,23 @@ interface components {
|
|
|
6497
7004
|
*/
|
|
6498
7005
|
protocol: "saml" | "oidc";
|
|
6499
7006
|
};
|
|
7007
|
+
/**
|
|
7008
|
+
* ManifestWebhookEndpoint
|
|
7009
|
+
* @description Un webhook endpoint declarado (webhooks salientes): la URL de un sistema externo suscrita a eventos del event store, identificada por `slug`. Estructura AUTORITATIVA: un endpoint no declarado se BORRA (deja de recibir entregas). El **signing secret (`whsec_…`) NO se declara** — un secreto no vive en YAML versionado: lo genera la plataforma al crear el endpoint y se recupera con `GET /v1/webhooks/:id/secret`.
|
|
7010
|
+
*/
|
|
7011
|
+
ManifestWebhookEndpoint: {
|
|
7012
|
+
/** @description Event types a suscribir (al menos uno): `record.created`, `record.updated`, `record.deleted`, `record.restored`, `edge.created`, `edge.deleted`. */
|
|
7013
|
+
enabledEvents: string[];
|
|
7014
|
+
/** @description Identidad estable, única por organización (match key). */
|
|
7015
|
+
slug: string;
|
|
7016
|
+
/**
|
|
7017
|
+
* @description Omitido = `enabled`. `disabled` pausa las entregas sin borrar el endpoint.
|
|
7018
|
+
* @enum {string}
|
|
7019
|
+
*/
|
|
7020
|
+
status?: "enabled" | "disabled";
|
|
7021
|
+
/** @description URL https del receptor del POST firmado (http solo se admite hacia localhost). */
|
|
7022
|
+
url: string;
|
|
7023
|
+
};
|
|
6500
7024
|
/**
|
|
6501
7025
|
* ManifestWorkflow
|
|
6502
7026
|
* @description Una definición de workflow declarada: la máquina de estados como dato (trigger + states). El grafo `states` se valida ESTRUCTURALMENTE en el `plan` (como un linter de state machine): cada `activity` debe pertenecer al catálogo declarable y su `config` solo acepta claves conocidas; toda transición `on` debe apuntar a un estado existente (MISSING_TRANSITION_TARGET); no puede haber estados inalcanzables desde `initialState`; y debe existir al menos un estado terminal (`type: final`, MISSING_END_STATE). Esos errores bloquean el apply — no llegan a runtime. Descubre el espacio declarable completo en `GET /v1/account-config/capabilities`.
|
|
@@ -6999,6 +7523,11 @@ interface components {
|
|
|
6999
7523
|
myRole?: string | null;
|
|
7000
7524
|
name: string;
|
|
7001
7525
|
slug: string;
|
|
7526
|
+
/**
|
|
7527
|
+
* @description Propiedad de la org: `active` (creada por un humano), `unclaimed` (provisionada por un agente, sin dueño), `claimed` (reclamada).
|
|
7528
|
+
* @enum {string}
|
|
7529
|
+
*/
|
|
7530
|
+
status?: "active" | "unclaimed" | "claimed";
|
|
7002
7531
|
/** @description Identificador fiscal (RFC/EIN/VAT). */
|
|
7003
7532
|
taxId?: string | null;
|
|
7004
7533
|
/** Format: date-time */
|
|
@@ -7040,6 +7569,11 @@ interface components {
|
|
|
7040
7569
|
insertedAt?: string;
|
|
7041
7570
|
name: string;
|
|
7042
7571
|
slug: string;
|
|
7572
|
+
/**
|
|
7573
|
+
* @description Propiedad de la org: `active` (creada por un humano), `unclaimed` (provisionada por un agente, sin dueño), `claimed` (reclamada).
|
|
7574
|
+
* @enum {string}
|
|
7575
|
+
*/
|
|
7576
|
+
status?: "active" | "unclaimed" | "claimed";
|
|
7043
7577
|
/** Format: date-time */
|
|
7044
7578
|
updatedAt?: string;
|
|
7045
7579
|
/**
|
|
@@ -7185,6 +7719,7 @@ interface components {
|
|
|
7185
7719
|
Policy: {
|
|
7186
7720
|
/** @enum {string} */
|
|
7187
7721
|
action: "read" | "create" | "update" | "delete";
|
|
7722
|
+
/** @description Predicado por fila: hoja `{attr, op, value|value_from}` o árbol `and`/`or`. `attr` admite un attribute path de UN nivel por un attribute `reference` (`pet.owner`: condiciona sobre el record destino; fail-closed si la referencia es nula). */
|
|
7188
7723
|
condition?: Record<string, never>;
|
|
7189
7724
|
/** @enum {string} */
|
|
7190
7725
|
effect: "allow" | "deny";
|
|
@@ -7206,6 +7741,7 @@ interface components {
|
|
|
7206
7741
|
PolicyInput: {
|
|
7207
7742
|
/** @enum {string} */
|
|
7208
7743
|
action: "read" | "create" | "update" | "delete";
|
|
7744
|
+
/** @description Predicado por fila: hoja `{attr, op, value|value_from}` o árbol `and`/`or`. `attr` admite un attribute path de UN nivel por un attribute `reference` (`pet.owner`: condiciona sobre el record destino; fail-closed si la referencia es nula). */
|
|
7209
7745
|
condition?: Record<string, never>;
|
|
7210
7746
|
/** @enum {string} */
|
|
7211
7747
|
effect: "allow" | "deny";
|
|
@@ -7503,6 +8039,49 @@ interface components {
|
|
|
7503
8039
|
RecordResponse: {
|
|
7504
8040
|
data: components["schemas"]["Record"];
|
|
7505
8041
|
};
|
|
8042
|
+
/**
|
|
8043
|
+
* RecordUploadRequest
|
|
8044
|
+
* @description Archivo a adjuntar a un attribute `file` de un record: para qué attribute es y qué se va a subir. El servidor lo valida contra el config del attribute (`accepted_content_types` con comodines `image/*`, `max_size_bytes`) antes de emitir la URL de subida.
|
|
8045
|
+
*/
|
|
8046
|
+
RecordUploadRequest: {
|
|
8047
|
+
/** @description Slug del attribute `data_type: file` del object al que se adjuntará. */
|
|
8048
|
+
attribute: string;
|
|
8049
|
+
/** @description MIME type del archivo (p. ej. `image/jpeg`). Se valida contra `accepted_content_types` del attribute. */
|
|
8050
|
+
contentType: string;
|
|
8051
|
+
/** @description Nombre del archivo (p. ej. `firulais.jpg`). */
|
|
8052
|
+
filename: string;
|
|
8053
|
+
/** @description Tamaño declarado en bytes (opcional). Si excede `max_size_bytes` el presign se rechaza aquí (fail-fast); la verdad final la impone el storage al confirmar el record (el tamaño REAL se relee del blob). */
|
|
8054
|
+
size?: number | null;
|
|
8055
|
+
};
|
|
8056
|
+
/** RecordUploadResponse */
|
|
8057
|
+
RecordUploadResponse: {
|
|
8058
|
+
data: components["schemas"]["RecordUploadTarget"];
|
|
8059
|
+
};
|
|
8060
|
+
/**
|
|
8061
|
+
* RecordUploadTarget
|
|
8062
|
+
* @description Destino de subida prefirmado (*staged upload target*, patrón Shopify `stagedUploadsCreate` / S3 presigned upload): el cliente hace `PUT` del blob crudo a `uploadUrl` con `headers`, y luego CONFIRMA escribiendo el record con `fileUrl` en el envelope del attribute `file` (`{"url": fileUrl, "filename": …, "content_type": …}`). Un blob nunca confirmado expira solo en el staging.
|
|
8063
|
+
*/
|
|
8064
|
+
RecordUploadTarget: {
|
|
8065
|
+
/** @description URL del blob (en staging `pending/…`): va como `url` en el envelope del attribute `file` al crear/actualizar el record. Al confirmarse, el servidor la reescribe a la definitiva. */
|
|
8066
|
+
fileUrl: string;
|
|
8067
|
+
/** @description Cabeceras que el cliente debe enviar en el `PUT` (p. ej. `content-type`). */
|
|
8068
|
+
headers?: {
|
|
8069
|
+
[key: string]: string;
|
|
8070
|
+
};
|
|
8071
|
+
/** @description Destino del `PUT` del blob (URL prefirmada, expira). */
|
|
8072
|
+
uploadUrl: string;
|
|
8073
|
+
};
|
|
8074
|
+
/**
|
|
8075
|
+
* RefreshClaimUrlResponse
|
|
8076
|
+
* @description El claim link renovado (el anterior deja de canjear al instante).
|
|
8077
|
+
*/
|
|
8078
|
+
RefreshClaimUrlResponse: {
|
|
8079
|
+
data: {
|
|
8080
|
+
/** Format: date-time */
|
|
8081
|
+
claimExpiresAt: string;
|
|
8082
|
+
claimUrl: string;
|
|
8083
|
+
};
|
|
8084
|
+
};
|
|
7506
8085
|
/** RegisterCredentials */
|
|
7507
8086
|
RegisterCredentials: {
|
|
7508
8087
|
/** Format: email */
|
|
@@ -7956,6 +8535,117 @@ interface components {
|
|
|
7956
8535
|
taxId: string;
|
|
7957
8536
|
};
|
|
7958
8537
|
};
|
|
8538
|
+
/** WebhookDeliveriesResponse */
|
|
8539
|
+
WebhookDeliveriesResponse: {
|
|
8540
|
+
data: components["schemas"]["WebhookDelivery"][];
|
|
8541
|
+
};
|
|
8542
|
+
/**
|
|
8543
|
+
* WebhookDelivery
|
|
8544
|
+
* @description Una **delivery**: un evento entregado (o en camino) a un webhook endpoint, con su bitácora de intentos. La entrega es at-least-once: el receptor deduplica por el header `webhook-id` (= `eventId`, estable entre reintentos).
|
|
8545
|
+
*/
|
|
8546
|
+
WebhookDelivery: {
|
|
8547
|
+
attemptCount: number;
|
|
8548
|
+
/** Format: date-time */
|
|
8549
|
+
deliveredAt?: string | null;
|
|
8550
|
+
/** @description Detalle del último fallo. */
|
|
8551
|
+
error?: string | null;
|
|
8552
|
+
/** @description El evento entregado (`evt_…`). */
|
|
8553
|
+
eventId: string;
|
|
8554
|
+
/** @description P. ej. `record.created`. */
|
|
8555
|
+
eventType: string;
|
|
8556
|
+
/** @description Id de la delivery (`whd_…`). */
|
|
8557
|
+
id: string;
|
|
8558
|
+
/** Format: date-time */
|
|
8559
|
+
insertedAt?: string;
|
|
8560
|
+
/** @description HTTP status del último intento (si el receptor respondió). */
|
|
8561
|
+
responseStatus?: number | null;
|
|
8562
|
+
/**
|
|
8563
|
+
* @description `pending` (encolada/reintentando), `succeeded` (el receptor respondió 2xx), `failed` (agotó los reintentos).
|
|
8564
|
+
* @enum {string}
|
|
8565
|
+
*/
|
|
8566
|
+
status: "pending" | "succeeded" | "failed";
|
|
8567
|
+
};
|
|
8568
|
+
/**
|
|
8569
|
+
* WebhookEndpoint
|
|
8570
|
+
* @description Un **webhook endpoint**: la URL de un sistema externo suscrita a eventos del event store. Cuando ocurre un evento de `enabledEvents`, la plataforma le hace un POST firmado (spec Standard Webhooks: headers `webhook-id`/`webhook-timestamp`/`webhook-signature`). El signing secret NO se incluye aquí — se revela al crear, en `GET .../secret` y al rotar.
|
|
8571
|
+
*/
|
|
8572
|
+
WebhookEndpoint: {
|
|
8573
|
+
/** Format: date-time */
|
|
8574
|
+
disabledAt?: string | null;
|
|
8575
|
+
/** @description `delivery_failures` (auto-disable, modelo Stripe) o `manual`. */
|
|
8576
|
+
disabledReason?: string | null;
|
|
8577
|
+
/** @description Event types suscritos: `record.created`, `record.updated`, `record.deleted`, `record.restored`, `edge.created`, `edge.deleted`. */
|
|
8578
|
+
enabledEvents: string[];
|
|
8579
|
+
/** @description Id del endpoint (`we_…`). */
|
|
8580
|
+
id: string;
|
|
8581
|
+
/** Format: date-time */
|
|
8582
|
+
insertedAt?: string;
|
|
8583
|
+
/** Format: date-time */
|
|
8584
|
+
lastFailureAt?: string | null;
|
|
8585
|
+
/** Format: date-time */
|
|
8586
|
+
lastSuccessAt?: string | null;
|
|
8587
|
+
/** @description Primeros caracteres del signing secret (no secretos), p. ej. `whsec_A1B2`. */
|
|
8588
|
+
prefix?: string;
|
|
8589
|
+
/** @description Identificador declarable, único por organización. */
|
|
8590
|
+
slug: string;
|
|
8591
|
+
/**
|
|
8592
|
+
* @description `enabled` recibe entregas; `disabled` (manual o auto-disable por fallos) no.
|
|
8593
|
+
* @enum {string}
|
|
8594
|
+
*/
|
|
8595
|
+
status: "enabled" | "disabled";
|
|
8596
|
+
/** Format: date-time */
|
|
8597
|
+
updatedAt?: string;
|
|
8598
|
+
/** @description URL https destino del POST firmado. */
|
|
8599
|
+
url: string;
|
|
8600
|
+
};
|
|
8601
|
+
/**
|
|
8602
|
+
* WebhookEndpointRequest
|
|
8603
|
+
* @description Datos de un webhook endpoint. El signing secret no se manda: lo genera la plataforma y se devuelve en la respuesta del create (y en `GET .../secret`).
|
|
8604
|
+
*/
|
|
8605
|
+
WebhookEndpointRequest: {
|
|
8606
|
+
/** @description Event types a suscribir (al menos uno): `record.created`, `record.updated`, `record.deleted`, `record.restored`, `edge.created`, `edge.deleted`. */
|
|
8607
|
+
enabledEvents: string[];
|
|
8608
|
+
/** @description Identificador único por organización (minúsculas, dígitos, `-`/`_`), p. ej. `erp-sync`. */
|
|
8609
|
+
slug: string;
|
|
8610
|
+
/**
|
|
8611
|
+
* @description Omitir = `enabled`. `disabled` pausa las entregas sin borrar el endpoint.
|
|
8612
|
+
* @enum {string}
|
|
8613
|
+
*/
|
|
8614
|
+
status?: "enabled" | "disabled";
|
|
8615
|
+
/** @description URL https del receptor (http solo se admite hacia localhost, para desarrollo). */
|
|
8616
|
+
url: string;
|
|
8617
|
+
};
|
|
8618
|
+
/** WebhookEndpointResponse */
|
|
8619
|
+
WebhookEndpointResponse: {
|
|
8620
|
+
data: components["schemas"]["WebhookEndpoint"];
|
|
8621
|
+
};
|
|
8622
|
+
/**
|
|
8623
|
+
* WebhookEndpointWithSecret
|
|
8624
|
+
* @description El endpoint con su **signing secret** en claro (`whsec_…`): la respuesta del create, del reveal (`GET .../secret`) y del rotate. Con él el receptor verifica la firma de cada entrega (librerías de Standard Webhooks).
|
|
8625
|
+
*/
|
|
8626
|
+
WebhookEndpointWithSecret: {
|
|
8627
|
+
enabledEvents: string[];
|
|
8628
|
+
id: string;
|
|
8629
|
+
/** Format: date-time */
|
|
8630
|
+
insertedAt?: string;
|
|
8631
|
+
prefix?: string;
|
|
8632
|
+
/** @description El signing secret en claro (`whsec_…`). Guárdalo en el receptor. */
|
|
8633
|
+
secret: string;
|
|
8634
|
+
slug: string;
|
|
8635
|
+
/** @enum {string} */
|
|
8636
|
+
status: "enabled" | "disabled";
|
|
8637
|
+
/** Format: date-time */
|
|
8638
|
+
updatedAt?: string;
|
|
8639
|
+
url: string;
|
|
8640
|
+
};
|
|
8641
|
+
/** WebhookEndpointWithSecretResponse */
|
|
8642
|
+
WebhookEndpointWithSecretResponse: {
|
|
8643
|
+
data: components["schemas"]["WebhookEndpointWithSecret"];
|
|
8644
|
+
};
|
|
8645
|
+
/** WebhookEndpointsResponse */
|
|
8646
|
+
WebhookEndpointsResponse: {
|
|
8647
|
+
data: components["schemas"]["WebhookEndpoint"][];
|
|
8648
|
+
};
|
|
7959
8649
|
/**
|
|
7960
8650
|
* Whoami
|
|
7961
8651
|
* @description Identidad de una credencial de máquina: la organización que resuelve del token y sus permisos efectivos. Deja que una herramienta externa infiera la org sin que el desarrollador la configure.
|
|
@@ -11008,7 +11698,119 @@ interface operations {
|
|
|
11008
11698
|
};
|
|
11009
11699
|
};
|
|
11010
11700
|
};
|
|
11011
|
-
"HablalaApiWeb.
|
|
11701
|
+
"HablalaApiWeb.Machine.UploadController.create": {
|
|
11702
|
+
parameters: {
|
|
11703
|
+
query?: never;
|
|
11704
|
+
header?: never;
|
|
11705
|
+
path: {
|
|
11706
|
+
object_slug: string;
|
|
11707
|
+
};
|
|
11708
|
+
cookie?: never;
|
|
11709
|
+
};
|
|
11710
|
+
/** @description Archivo a subir */
|
|
11711
|
+
requestBody?: {
|
|
11712
|
+
content: {
|
|
11713
|
+
"application/json": components["schemas"]["RecordUploadRequest"];
|
|
11714
|
+
};
|
|
11715
|
+
};
|
|
11716
|
+
responses: {
|
|
11717
|
+
/** @description Destino de subida prefirmado */
|
|
11718
|
+
200: {
|
|
11719
|
+
headers: {
|
|
11720
|
+
[name: string]: unknown;
|
|
11721
|
+
};
|
|
11722
|
+
content: {
|
|
11723
|
+
"application/json": components["schemas"]["RecordUploadResponse"];
|
|
11724
|
+
};
|
|
11725
|
+
};
|
|
11726
|
+
/** @description Objeto desconocido */
|
|
11727
|
+
404: {
|
|
11728
|
+
headers: {
|
|
11729
|
+
[name: string]: unknown;
|
|
11730
|
+
};
|
|
11731
|
+
content: {
|
|
11732
|
+
"application/json": components["schemas"]["Error"];
|
|
11733
|
+
};
|
|
11734
|
+
};
|
|
11735
|
+
/** @description Attribute inexistente/no-file, MIME no admitido o tamaño excedido */
|
|
11736
|
+
422: {
|
|
11737
|
+
headers: {
|
|
11738
|
+
[name: string]: unknown;
|
|
11739
|
+
};
|
|
11740
|
+
content: {
|
|
11741
|
+
"application/json": components["schemas"]["Error"];
|
|
11742
|
+
};
|
|
11743
|
+
};
|
|
11744
|
+
};
|
|
11745
|
+
};
|
|
11746
|
+
"HablalaApiWeb.Machine.OrganizationController.show": {
|
|
11747
|
+
parameters: {
|
|
11748
|
+
query?: never;
|
|
11749
|
+
header?: never;
|
|
11750
|
+
path?: never;
|
|
11751
|
+
cookie?: never;
|
|
11752
|
+
};
|
|
11753
|
+
requestBody?: never;
|
|
11754
|
+
responses: {
|
|
11755
|
+
/** @description La organización del token */
|
|
11756
|
+
200: {
|
|
11757
|
+
headers: {
|
|
11758
|
+
[name: string]: unknown;
|
|
11759
|
+
};
|
|
11760
|
+
content: {
|
|
11761
|
+
"application/json": components["schemas"]["MachineOrganizationResponse"];
|
|
11762
|
+
};
|
|
11763
|
+
};
|
|
11764
|
+
/** @description Token inválido (o la org fue reclamada/venció) */
|
|
11765
|
+
401: {
|
|
11766
|
+
headers: {
|
|
11767
|
+
[name: string]: unknown;
|
|
11768
|
+
};
|
|
11769
|
+
content: {
|
|
11770
|
+
"application/json": components["schemas"]["Error"];
|
|
11771
|
+
};
|
|
11772
|
+
};
|
|
11773
|
+
};
|
|
11774
|
+
};
|
|
11775
|
+
"HablalaApiWeb.Machine.OrganizationController.refresh_claim_url": {
|
|
11776
|
+
parameters: {
|
|
11777
|
+
query?: never;
|
|
11778
|
+
header?: never;
|
|
11779
|
+
path?: never;
|
|
11780
|
+
cookie?: never;
|
|
11781
|
+
};
|
|
11782
|
+
requestBody?: never;
|
|
11783
|
+
responses: {
|
|
11784
|
+
/** @description Claim link renovado */
|
|
11785
|
+
200: {
|
|
11786
|
+
headers: {
|
|
11787
|
+
[name: string]: unknown;
|
|
11788
|
+
};
|
|
11789
|
+
content: {
|
|
11790
|
+
"application/json": components["schemas"]["RefreshClaimUrlResponse"];
|
|
11791
|
+
};
|
|
11792
|
+
};
|
|
11793
|
+
/** @description La org ya no es unclaimed */
|
|
11794
|
+
409: {
|
|
11795
|
+
headers: {
|
|
11796
|
+
[name: string]: unknown;
|
|
11797
|
+
};
|
|
11798
|
+
content: {
|
|
11799
|
+
"application/json": components["schemas"]["Error"];
|
|
11800
|
+
};
|
|
11801
|
+
};
|
|
11802
|
+
/** @description El recurso venció */
|
|
11803
|
+
410: {
|
|
11804
|
+
headers: {
|
|
11805
|
+
[name: string]: unknown;
|
|
11806
|
+
};
|
|
11807
|
+
content: {
|
|
11808
|
+
"application/json": components["schemas"]["Error"];
|
|
11809
|
+
};
|
|
11810
|
+
};
|
|
11811
|
+
};
|
|
11812
|
+
};
|
|
11813
|
+
"HablalaApiWeb.Orgs.OrganizationController.index": {
|
|
11012
11814
|
parameters: {
|
|
11013
11815
|
query?: never;
|
|
11014
11816
|
header?: never;
|
|
@@ -11062,6 +11864,114 @@ interface operations {
|
|
|
11062
11864
|
};
|
|
11063
11865
|
};
|
|
11064
11866
|
};
|
|
11867
|
+
"HablalaApiWeb.Orgs.ClaimableOrganizationController.claim": {
|
|
11868
|
+
parameters: {
|
|
11869
|
+
query?: never;
|
|
11870
|
+
header?: never;
|
|
11871
|
+
path?: never;
|
|
11872
|
+
cookie?: never;
|
|
11873
|
+
};
|
|
11874
|
+
/** @description El claim token */
|
|
11875
|
+
requestBody?: {
|
|
11876
|
+
content: {
|
|
11877
|
+
"application/json": components["schemas"]["ClaimRequest"];
|
|
11878
|
+
};
|
|
11879
|
+
};
|
|
11880
|
+
responses: {
|
|
11881
|
+
/** @description Transferencia consumada */
|
|
11882
|
+
200: {
|
|
11883
|
+
headers: {
|
|
11884
|
+
[name: string]: unknown;
|
|
11885
|
+
};
|
|
11886
|
+
content: {
|
|
11887
|
+
"application/json": components["schemas"]["ClaimResponse"];
|
|
11888
|
+
};
|
|
11889
|
+
};
|
|
11890
|
+
/** @description Sin sesión */
|
|
11891
|
+
401: {
|
|
11892
|
+
headers: {
|
|
11893
|
+
[name: string]: unknown;
|
|
11894
|
+
};
|
|
11895
|
+
content: {
|
|
11896
|
+
"application/json": components["schemas"]["Error"];
|
|
11897
|
+
};
|
|
11898
|
+
};
|
|
11899
|
+
/** @description Token inválido, vencido o ya reclamado */
|
|
11900
|
+
404: {
|
|
11901
|
+
headers: {
|
|
11902
|
+
[name: string]: unknown;
|
|
11903
|
+
};
|
|
11904
|
+
content: {
|
|
11905
|
+
"application/json": components["schemas"]["Error"];
|
|
11906
|
+
};
|
|
11907
|
+
};
|
|
11908
|
+
};
|
|
11909
|
+
};
|
|
11910
|
+
"HablalaApiWeb.Orgs.ClaimableOrganizationController.create": {
|
|
11911
|
+
parameters: {
|
|
11912
|
+
query?: never;
|
|
11913
|
+
header?: never;
|
|
11914
|
+
path?: never;
|
|
11915
|
+
cookie?: never;
|
|
11916
|
+
};
|
|
11917
|
+
/** @description Datos de la organización */
|
|
11918
|
+
requestBody?: {
|
|
11919
|
+
content: {
|
|
11920
|
+
"application/json": components["schemas"]["ClaimableOrganizationRequest"];
|
|
11921
|
+
};
|
|
11922
|
+
};
|
|
11923
|
+
responses: {
|
|
11924
|
+
/** @description Organización provisionada (credenciales reveladas una única vez) */
|
|
11925
|
+
201: {
|
|
11926
|
+
headers: {
|
|
11927
|
+
[name: string]: unknown;
|
|
11928
|
+
};
|
|
11929
|
+
content: {
|
|
11930
|
+
"application/json": components["schemas"]["ClaimableOrganizationCreateResponse"];
|
|
11931
|
+
};
|
|
11932
|
+
};
|
|
11933
|
+
/** @description Error de validación */
|
|
11934
|
+
422: {
|
|
11935
|
+
headers: {
|
|
11936
|
+
[name: string]: unknown;
|
|
11937
|
+
};
|
|
11938
|
+
content: {
|
|
11939
|
+
"application/json": components["schemas"]["Error"];
|
|
11940
|
+
};
|
|
11941
|
+
};
|
|
11942
|
+
/** @description Cuota excedida */
|
|
11943
|
+
429: {
|
|
11944
|
+
headers: {
|
|
11945
|
+
[name: string]: unknown;
|
|
11946
|
+
};
|
|
11947
|
+
content: {
|
|
11948
|
+
"application/json": components["schemas"]["Error"];
|
|
11949
|
+
};
|
|
11950
|
+
};
|
|
11951
|
+
};
|
|
11952
|
+
};
|
|
11953
|
+
"HablalaApiWeb.Orgs.ClaimableOrganizationController.preview": {
|
|
11954
|
+
parameters: {
|
|
11955
|
+
query: {
|
|
11956
|
+
token: string;
|
|
11957
|
+
};
|
|
11958
|
+
header?: never;
|
|
11959
|
+
path?: never;
|
|
11960
|
+
cookie?: never;
|
|
11961
|
+
};
|
|
11962
|
+
requestBody?: never;
|
|
11963
|
+
responses: {
|
|
11964
|
+
/** @description Preview del claim */
|
|
11965
|
+
200: {
|
|
11966
|
+
headers: {
|
|
11967
|
+
[name: string]: unknown;
|
|
11968
|
+
};
|
|
11969
|
+
content: {
|
|
11970
|
+
"application/json": components["schemas"]["ClaimPreviewResponse"];
|
|
11971
|
+
};
|
|
11972
|
+
};
|
|
11973
|
+
};
|
|
11974
|
+
};
|
|
11065
11975
|
"HablalaApiWeb.Orgs.OrganizationController.show": {
|
|
11066
11976
|
parameters: {
|
|
11067
11977
|
query?: never;
|
|
@@ -16853,14 +17763,9 @@ interface operations {
|
|
|
16853
17763
|
};
|
|
16854
17764
|
};
|
|
16855
17765
|
};
|
|
16856
|
-
"HablalaApiWeb.
|
|
17766
|
+
"HablalaApiWeb.Webhooks.WebhookController.index": {
|
|
16857
17767
|
parameters: {
|
|
16858
|
-
query?:
|
|
16859
|
-
/** @description Filtrar por definición (wfd_…). */
|
|
16860
|
-
workflowDefinitionId?: string;
|
|
16861
|
-
/** @description Filtrar por estado: running | completed | failed. */
|
|
16862
|
-
status?: string;
|
|
16863
|
-
};
|
|
17768
|
+
query?: never;
|
|
16864
17769
|
header?: never;
|
|
16865
17770
|
path: {
|
|
16866
17771
|
organization_id: string;
|
|
@@ -16869,13 +17774,40 @@ interface operations {
|
|
|
16869
17774
|
};
|
|
16870
17775
|
requestBody?: never;
|
|
16871
17776
|
responses: {
|
|
16872
|
-
/** @description
|
|
17777
|
+
/** @description Endpoints */
|
|
16873
17778
|
200: {
|
|
16874
17779
|
headers: {
|
|
16875
17780
|
[name: string]: unknown;
|
|
16876
17781
|
};
|
|
16877
17782
|
content: {
|
|
16878
|
-
"application/json": components["schemas"]["
|
|
17783
|
+
"application/json": components["schemas"]["WebhookEndpointsResponse"];
|
|
17784
|
+
};
|
|
17785
|
+
};
|
|
17786
|
+
};
|
|
17787
|
+
};
|
|
17788
|
+
"HablalaApiWeb.Webhooks.WebhookController.create": {
|
|
17789
|
+
parameters: {
|
|
17790
|
+
query?: never;
|
|
17791
|
+
header?: never;
|
|
17792
|
+
path: {
|
|
17793
|
+
organization_id: string;
|
|
17794
|
+
};
|
|
17795
|
+
cookie?: never;
|
|
17796
|
+
};
|
|
17797
|
+
/** @description Datos del endpoint */
|
|
17798
|
+
requestBody?: {
|
|
17799
|
+
content: {
|
|
17800
|
+
"application/json": components["schemas"]["WebhookEndpointRequest"];
|
|
17801
|
+
};
|
|
17802
|
+
};
|
|
17803
|
+
responses: {
|
|
17804
|
+
/** @description Endpoint creado (con secret) */
|
|
17805
|
+
201: {
|
|
17806
|
+
headers: {
|
|
17807
|
+
[name: string]: unknown;
|
|
17808
|
+
};
|
|
17809
|
+
content: {
|
|
17810
|
+
"application/json": components["schemas"]["WebhookEndpointWithSecretResponse"];
|
|
16879
17811
|
};
|
|
16880
17812
|
};
|
|
16881
17813
|
/** @description Sin permiso */
|
|
@@ -16887,9 +17819,18 @@ interface operations {
|
|
|
16887
17819
|
"application/json": components["schemas"]["Error"];
|
|
16888
17820
|
};
|
|
16889
17821
|
};
|
|
17822
|
+
/** @description Error de validación */
|
|
17823
|
+
422: {
|
|
17824
|
+
headers: {
|
|
17825
|
+
[name: string]: unknown;
|
|
17826
|
+
};
|
|
17827
|
+
content: {
|
|
17828
|
+
"application/json": components["schemas"]["Error"];
|
|
17829
|
+
};
|
|
17830
|
+
};
|
|
16890
17831
|
};
|
|
16891
17832
|
};
|
|
16892
|
-
"HablalaApiWeb.
|
|
17833
|
+
"HablalaApiWeb.Webhooks.WebhookController.show": {
|
|
16893
17834
|
parameters: {
|
|
16894
17835
|
query?: never;
|
|
16895
17836
|
header?: never;
|
|
@@ -16901,16 +17842,16 @@ interface operations {
|
|
|
16901
17842
|
};
|
|
16902
17843
|
requestBody?: never;
|
|
16903
17844
|
responses: {
|
|
16904
|
-
/** @description
|
|
17845
|
+
/** @description Endpoint */
|
|
16905
17846
|
200: {
|
|
16906
17847
|
headers: {
|
|
16907
17848
|
[name: string]: unknown;
|
|
16908
17849
|
};
|
|
16909
17850
|
content: {
|
|
16910
|
-
"application/json": components["schemas"]["
|
|
17851
|
+
"application/json": components["schemas"]["WebhookEndpointResponse"];
|
|
16911
17852
|
};
|
|
16912
17853
|
};
|
|
16913
|
-
/** @description No
|
|
17854
|
+
/** @description No existe */
|
|
16914
17855
|
404: {
|
|
16915
17856
|
headers: {
|
|
16916
17857
|
[name: string]: unknown;
|
|
@@ -16921,7 +17862,7 @@ interface operations {
|
|
|
16921
17862
|
};
|
|
16922
17863
|
};
|
|
16923
17864
|
};
|
|
16924
|
-
"HablalaApiWeb.
|
|
17865
|
+
"HablalaApiWeb.Webhooks.WebhookController.update": {
|
|
16925
17866
|
parameters: {
|
|
16926
17867
|
query?: never;
|
|
16927
17868
|
header?: never;
|
|
@@ -16931,33 +17872,274 @@ interface operations {
|
|
|
16931
17872
|
};
|
|
16932
17873
|
cookie?: never;
|
|
16933
17874
|
};
|
|
16934
|
-
/** @description
|
|
17875
|
+
/** @description Cambios */
|
|
16935
17876
|
requestBody?: {
|
|
16936
17877
|
content: {
|
|
16937
|
-
"application/json": components["schemas"]["
|
|
17878
|
+
"application/json": components["schemas"]["WebhookEndpointRequest"];
|
|
16938
17879
|
};
|
|
16939
17880
|
};
|
|
16940
17881
|
responses: {
|
|
16941
|
-
/** @description
|
|
17882
|
+
/** @description Endpoint actualizado */
|
|
16942
17883
|
200: {
|
|
16943
17884
|
headers: {
|
|
16944
17885
|
[name: string]: unknown;
|
|
16945
17886
|
};
|
|
16946
17887
|
content: {
|
|
16947
|
-
"application/json": components["schemas"]["
|
|
16948
|
-
};
|
|
16949
|
-
};
|
|
16950
|
-
/** @description Sin permiso */
|
|
16951
|
-
403: {
|
|
16952
|
-
headers: {
|
|
16953
|
-
[name: string]: unknown;
|
|
16954
|
-
};
|
|
16955
|
-
content: {
|
|
16956
|
-
"application/json": components["schemas"]["Error"];
|
|
17888
|
+
"application/json": components["schemas"]["WebhookEndpointResponse"];
|
|
16957
17889
|
};
|
|
16958
17890
|
};
|
|
16959
|
-
/** @description
|
|
16960
|
-
|
|
17891
|
+
/** @description Error de validación */
|
|
17892
|
+
422: {
|
|
17893
|
+
headers: {
|
|
17894
|
+
[name: string]: unknown;
|
|
17895
|
+
};
|
|
17896
|
+
content: {
|
|
17897
|
+
"application/json": components["schemas"]["Error"];
|
|
17898
|
+
};
|
|
17899
|
+
};
|
|
17900
|
+
};
|
|
17901
|
+
};
|
|
17902
|
+
"HablalaApiWeb.Webhooks.WebhookController.delete": {
|
|
17903
|
+
parameters: {
|
|
17904
|
+
query?: never;
|
|
17905
|
+
header?: never;
|
|
17906
|
+
path: {
|
|
17907
|
+
organization_id: string;
|
|
17908
|
+
id: string;
|
|
17909
|
+
};
|
|
17910
|
+
cookie?: never;
|
|
17911
|
+
};
|
|
17912
|
+
requestBody?: never;
|
|
17913
|
+
responses: {
|
|
17914
|
+
/** @description Borrado */
|
|
17915
|
+
204: {
|
|
17916
|
+
headers: {
|
|
17917
|
+
[name: string]: unknown;
|
|
17918
|
+
};
|
|
17919
|
+
content?: never;
|
|
17920
|
+
};
|
|
17921
|
+
/** @description Sin permiso */
|
|
17922
|
+
403: {
|
|
17923
|
+
headers: {
|
|
17924
|
+
[name: string]: unknown;
|
|
17925
|
+
};
|
|
17926
|
+
content: {
|
|
17927
|
+
"application/json": components["schemas"]["Error"];
|
|
17928
|
+
};
|
|
17929
|
+
};
|
|
17930
|
+
};
|
|
17931
|
+
};
|
|
17932
|
+
"HablalaApiWeb.Webhooks.WebhookController.update (2)": {
|
|
17933
|
+
parameters: {
|
|
17934
|
+
query?: never;
|
|
17935
|
+
header?: never;
|
|
17936
|
+
path: {
|
|
17937
|
+
organization_id: string;
|
|
17938
|
+
id: string;
|
|
17939
|
+
};
|
|
17940
|
+
cookie?: never;
|
|
17941
|
+
};
|
|
17942
|
+
/** @description Cambios */
|
|
17943
|
+
requestBody?: {
|
|
17944
|
+
content: {
|
|
17945
|
+
"application/json": components["schemas"]["WebhookEndpointRequest"];
|
|
17946
|
+
};
|
|
17947
|
+
};
|
|
17948
|
+
responses: {
|
|
17949
|
+
/** @description Endpoint actualizado */
|
|
17950
|
+
200: {
|
|
17951
|
+
headers: {
|
|
17952
|
+
[name: string]: unknown;
|
|
17953
|
+
};
|
|
17954
|
+
content: {
|
|
17955
|
+
"application/json": components["schemas"]["WebhookEndpointResponse"];
|
|
17956
|
+
};
|
|
17957
|
+
};
|
|
17958
|
+
/** @description Error de validación */
|
|
17959
|
+
422: {
|
|
17960
|
+
headers: {
|
|
17961
|
+
[name: string]: unknown;
|
|
17962
|
+
};
|
|
17963
|
+
content: {
|
|
17964
|
+
"application/json": components["schemas"]["Error"];
|
|
17965
|
+
};
|
|
17966
|
+
};
|
|
17967
|
+
};
|
|
17968
|
+
};
|
|
17969
|
+
"HablalaApiWeb.Webhooks.WebhookController.deliveries": {
|
|
17970
|
+
parameters: {
|
|
17971
|
+
query?: never;
|
|
17972
|
+
header?: never;
|
|
17973
|
+
path: {
|
|
17974
|
+
organization_id: string;
|
|
17975
|
+
id: string;
|
|
17976
|
+
};
|
|
17977
|
+
cookie?: never;
|
|
17978
|
+
};
|
|
17979
|
+
requestBody?: never;
|
|
17980
|
+
responses: {
|
|
17981
|
+
/** @description Deliveries */
|
|
17982
|
+
200: {
|
|
17983
|
+
headers: {
|
|
17984
|
+
[name: string]: unknown;
|
|
17985
|
+
};
|
|
17986
|
+
content: {
|
|
17987
|
+
"application/json": components["schemas"]["WebhookDeliveriesResponse"];
|
|
17988
|
+
};
|
|
17989
|
+
};
|
|
17990
|
+
};
|
|
17991
|
+
};
|
|
17992
|
+
"HablalaApiWeb.Webhooks.WebhookController.rotate": {
|
|
17993
|
+
parameters: {
|
|
17994
|
+
query?: never;
|
|
17995
|
+
header?: never;
|
|
17996
|
+
path: {
|
|
17997
|
+
organization_id: string;
|
|
17998
|
+
id: string;
|
|
17999
|
+
};
|
|
18000
|
+
cookie?: never;
|
|
18001
|
+
};
|
|
18002
|
+
requestBody?: never;
|
|
18003
|
+
responses: {
|
|
18004
|
+
/** @description Secret rotado */
|
|
18005
|
+
201: {
|
|
18006
|
+
headers: {
|
|
18007
|
+
[name: string]: unknown;
|
|
18008
|
+
};
|
|
18009
|
+
content: {
|
|
18010
|
+
"application/json": components["schemas"]["WebhookEndpointWithSecretResponse"];
|
|
18011
|
+
};
|
|
18012
|
+
};
|
|
18013
|
+
};
|
|
18014
|
+
};
|
|
18015
|
+
"HablalaApiWeb.Webhooks.WebhookController.secret": {
|
|
18016
|
+
parameters: {
|
|
18017
|
+
query?: never;
|
|
18018
|
+
header?: never;
|
|
18019
|
+
path: {
|
|
18020
|
+
organization_id: string;
|
|
18021
|
+
id: string;
|
|
18022
|
+
};
|
|
18023
|
+
cookie?: never;
|
|
18024
|
+
};
|
|
18025
|
+
requestBody?: never;
|
|
18026
|
+
responses: {
|
|
18027
|
+
/** @description Endpoint con secret */
|
|
18028
|
+
200: {
|
|
18029
|
+
headers: {
|
|
18030
|
+
[name: string]: unknown;
|
|
18031
|
+
};
|
|
18032
|
+
content: {
|
|
18033
|
+
"application/json": components["schemas"]["WebhookEndpointWithSecretResponse"];
|
|
18034
|
+
};
|
|
18035
|
+
};
|
|
18036
|
+
};
|
|
18037
|
+
};
|
|
18038
|
+
"HablalaApiWeb.Workflows.WorkflowExecutionController.index": {
|
|
18039
|
+
parameters: {
|
|
18040
|
+
query?: {
|
|
18041
|
+
/** @description Filtrar por definición (wfd_…). */
|
|
18042
|
+
workflowDefinitionId?: string;
|
|
18043
|
+
/** @description Filtrar por estado: running | completed | failed. */
|
|
18044
|
+
status?: string;
|
|
18045
|
+
};
|
|
18046
|
+
header?: never;
|
|
18047
|
+
path: {
|
|
18048
|
+
organization_id: string;
|
|
18049
|
+
};
|
|
18050
|
+
cookie?: never;
|
|
18051
|
+
};
|
|
18052
|
+
requestBody?: never;
|
|
18053
|
+
responses: {
|
|
18054
|
+
/** @description Ejecuciones */
|
|
18055
|
+
200: {
|
|
18056
|
+
headers: {
|
|
18057
|
+
[name: string]: unknown;
|
|
18058
|
+
};
|
|
18059
|
+
content: {
|
|
18060
|
+
"application/json": components["schemas"]["WorkflowExecutionsResponse"];
|
|
18061
|
+
};
|
|
18062
|
+
};
|
|
18063
|
+
/** @description Sin permiso */
|
|
18064
|
+
403: {
|
|
18065
|
+
headers: {
|
|
18066
|
+
[name: string]: unknown;
|
|
18067
|
+
};
|
|
18068
|
+
content: {
|
|
18069
|
+
"application/json": components["schemas"]["Error"];
|
|
18070
|
+
};
|
|
18071
|
+
};
|
|
18072
|
+
};
|
|
18073
|
+
};
|
|
18074
|
+
"HablalaApiWeb.Workflows.WorkflowExecutionController.show": {
|
|
18075
|
+
parameters: {
|
|
18076
|
+
query?: never;
|
|
18077
|
+
header?: never;
|
|
18078
|
+
path: {
|
|
18079
|
+
organization_id: string;
|
|
18080
|
+
id: string;
|
|
18081
|
+
};
|
|
18082
|
+
cookie?: never;
|
|
18083
|
+
};
|
|
18084
|
+
requestBody?: never;
|
|
18085
|
+
responses: {
|
|
18086
|
+
/** @description Ejecución */
|
|
18087
|
+
200: {
|
|
18088
|
+
headers: {
|
|
18089
|
+
[name: string]: unknown;
|
|
18090
|
+
};
|
|
18091
|
+
content: {
|
|
18092
|
+
"application/json": components["schemas"]["WorkflowExecutionResponse"];
|
|
18093
|
+
};
|
|
18094
|
+
};
|
|
18095
|
+
/** @description No encontrada */
|
|
18096
|
+
404: {
|
|
18097
|
+
headers: {
|
|
18098
|
+
[name: string]: unknown;
|
|
18099
|
+
};
|
|
18100
|
+
content: {
|
|
18101
|
+
"application/json": components["schemas"]["Error"];
|
|
18102
|
+
};
|
|
18103
|
+
};
|
|
18104
|
+
};
|
|
18105
|
+
};
|
|
18106
|
+
"HablalaApiWeb.Workflows.WorkflowExecutionController.signal": {
|
|
18107
|
+
parameters: {
|
|
18108
|
+
query?: never;
|
|
18109
|
+
header?: never;
|
|
18110
|
+
path: {
|
|
18111
|
+
organization_id: string;
|
|
18112
|
+
id: string;
|
|
18113
|
+
};
|
|
18114
|
+
cookie?: never;
|
|
18115
|
+
};
|
|
18116
|
+
/** @description Signal */
|
|
18117
|
+
requestBody?: {
|
|
18118
|
+
content: {
|
|
18119
|
+
"application/json": components["schemas"]["WorkflowSignalRequest"];
|
|
18120
|
+
};
|
|
18121
|
+
};
|
|
18122
|
+
responses: {
|
|
18123
|
+
/** @description Signal entregado */
|
|
18124
|
+
200: {
|
|
18125
|
+
headers: {
|
|
18126
|
+
[name: string]: unknown;
|
|
18127
|
+
};
|
|
18128
|
+
content: {
|
|
18129
|
+
"application/json": components["schemas"]["WorkflowExecutionResponse"];
|
|
18130
|
+
};
|
|
18131
|
+
};
|
|
18132
|
+
/** @description Sin permiso */
|
|
18133
|
+
403: {
|
|
18134
|
+
headers: {
|
|
18135
|
+
[name: string]: unknown;
|
|
18136
|
+
};
|
|
18137
|
+
content: {
|
|
18138
|
+
"application/json": components["schemas"]["Error"];
|
|
18139
|
+
};
|
|
18140
|
+
};
|
|
18141
|
+
/** @description No encontrada */
|
|
18142
|
+
404: {
|
|
16961
18143
|
headers: {
|
|
16962
18144
|
[name: string]: unknown;
|
|
16963
18145
|
};
|
|
@@ -17763,6 +18945,60 @@ interface operations {
|
|
|
17763
18945
|
};
|
|
17764
18946
|
};
|
|
17765
18947
|
};
|
|
18948
|
+
"HablalaApiWeb.PublicApi.UploadController.create": {
|
|
18949
|
+
parameters: {
|
|
18950
|
+
query?: never;
|
|
18951
|
+
header?: never;
|
|
18952
|
+
path: {
|
|
18953
|
+
object_slug: string;
|
|
18954
|
+
};
|
|
18955
|
+
cookie?: never;
|
|
18956
|
+
};
|
|
18957
|
+
/** @description Archivo a subir */
|
|
18958
|
+
requestBody?: {
|
|
18959
|
+
content: {
|
|
18960
|
+
"application/json": components["schemas"]["RecordUploadRequest"];
|
|
18961
|
+
};
|
|
18962
|
+
};
|
|
18963
|
+
responses: {
|
|
18964
|
+
/** @description Destino de subida prefirmado */
|
|
18965
|
+
200: {
|
|
18966
|
+
headers: {
|
|
18967
|
+
[name: string]: unknown;
|
|
18968
|
+
};
|
|
18969
|
+
content: {
|
|
18970
|
+
"application/json": components["schemas"]["RecordUploadResponse"];
|
|
18971
|
+
};
|
|
18972
|
+
};
|
|
18973
|
+
/** @description Sin policy allow de create/update para este principal */
|
|
18974
|
+
403: {
|
|
18975
|
+
headers: {
|
|
18976
|
+
[name: string]: unknown;
|
|
18977
|
+
};
|
|
18978
|
+
content: {
|
|
18979
|
+
"application/json": components["schemas"]["Error"];
|
|
18980
|
+
};
|
|
18981
|
+
};
|
|
18982
|
+
/** @description Objeto desconocido */
|
|
18983
|
+
404: {
|
|
18984
|
+
headers: {
|
|
18985
|
+
[name: string]: unknown;
|
|
18986
|
+
};
|
|
18987
|
+
content: {
|
|
18988
|
+
"application/json": components["schemas"]["Error"];
|
|
18989
|
+
};
|
|
18990
|
+
};
|
|
18991
|
+
/** @description Attribute inexistente/no-file, MIME no admitido o tamaño excedido */
|
|
18992
|
+
422: {
|
|
18993
|
+
headers: {
|
|
18994
|
+
[name: string]: unknown;
|
|
18995
|
+
};
|
|
18996
|
+
content: {
|
|
18997
|
+
"application/json": components["schemas"]["Error"];
|
|
18998
|
+
};
|
|
18999
|
+
};
|
|
19000
|
+
};
|
|
19001
|
+
};
|
|
17766
19002
|
"HablalaApiWeb.PublicApi.QueryController.create (2)": {
|
|
17767
19003
|
parameters: {
|
|
17768
19004
|
query?: never;
|
|
@@ -17941,7 +19177,53 @@ interface operations {
|
|
|
17941
19177
|
headers: {
|
|
17942
19178
|
[name: string]: unknown;
|
|
17943
19179
|
};
|
|
17944
|
-
content?: never;
|
|
19180
|
+
content?: never;
|
|
19181
|
+
};
|
|
19182
|
+
/** @description Sin permiso ABAC sobre este record */
|
|
19183
|
+
403: {
|
|
19184
|
+
headers: {
|
|
19185
|
+
[name: string]: unknown;
|
|
19186
|
+
};
|
|
19187
|
+
content: {
|
|
19188
|
+
"application/json": components["schemas"]["Error"];
|
|
19189
|
+
};
|
|
19190
|
+
};
|
|
19191
|
+
/** @description No encontrado (o de otro objeto) */
|
|
19192
|
+
404: {
|
|
19193
|
+
headers: {
|
|
19194
|
+
[name: string]: unknown;
|
|
19195
|
+
};
|
|
19196
|
+
content: {
|
|
19197
|
+
"application/json": components["schemas"]["Error"];
|
|
19198
|
+
};
|
|
19199
|
+
};
|
|
19200
|
+
};
|
|
19201
|
+
};
|
|
19202
|
+
"HablalaApiWeb.PublicApi.RecordController.update (4)": {
|
|
19203
|
+
parameters: {
|
|
19204
|
+
query?: never;
|
|
19205
|
+
header?: never;
|
|
19206
|
+
path: {
|
|
19207
|
+
object_slug: string;
|
|
19208
|
+
id: string;
|
|
19209
|
+
};
|
|
19210
|
+
cookie?: never;
|
|
19211
|
+
};
|
|
19212
|
+
/** @description Propiedades del record */
|
|
19213
|
+
requestBody?: {
|
|
19214
|
+
content: {
|
|
19215
|
+
"application/json": components["schemas"]["RecordRequest"];
|
|
19216
|
+
};
|
|
19217
|
+
};
|
|
19218
|
+
responses: {
|
|
19219
|
+
/** @description Record actualizado */
|
|
19220
|
+
200: {
|
|
19221
|
+
headers: {
|
|
19222
|
+
[name: string]: unknown;
|
|
19223
|
+
};
|
|
19224
|
+
content: {
|
|
19225
|
+
"application/json": components["schemas"]["RecordResponse"];
|
|
19226
|
+
};
|
|
17945
19227
|
};
|
|
17946
19228
|
/** @description Sin permiso ABAC sobre este record */
|
|
17947
19229
|
403: {
|
|
@@ -17961,35 +19243,43 @@ interface operations {
|
|
|
17961
19243
|
"application/json": components["schemas"]["Error"];
|
|
17962
19244
|
};
|
|
17963
19245
|
};
|
|
19246
|
+
/** @description Error de validación */
|
|
19247
|
+
422: {
|
|
19248
|
+
headers: {
|
|
19249
|
+
[name: string]: unknown;
|
|
19250
|
+
};
|
|
19251
|
+
content: {
|
|
19252
|
+
"application/json": components["schemas"]["Error"];
|
|
19253
|
+
};
|
|
19254
|
+
};
|
|
17964
19255
|
};
|
|
17965
19256
|
};
|
|
17966
|
-
"HablalaApiWeb.PublicApi.
|
|
19257
|
+
"HablalaApiWeb.PublicApi.UploadController.create (2)": {
|
|
17967
19258
|
parameters: {
|
|
17968
19259
|
query?: never;
|
|
17969
19260
|
header?: never;
|
|
17970
19261
|
path: {
|
|
17971
19262
|
object_slug: string;
|
|
17972
|
-
id: string;
|
|
17973
19263
|
};
|
|
17974
19264
|
cookie?: never;
|
|
17975
19265
|
};
|
|
17976
|
-
/** @description
|
|
19266
|
+
/** @description Archivo a subir */
|
|
17977
19267
|
requestBody?: {
|
|
17978
19268
|
content: {
|
|
17979
|
-
"application/json": components["schemas"]["
|
|
19269
|
+
"application/json": components["schemas"]["RecordUploadRequest"];
|
|
17980
19270
|
};
|
|
17981
19271
|
};
|
|
17982
19272
|
responses: {
|
|
17983
|
-
/** @description
|
|
19273
|
+
/** @description Destino de subida prefirmado */
|
|
17984
19274
|
200: {
|
|
17985
19275
|
headers: {
|
|
17986
19276
|
[name: string]: unknown;
|
|
17987
19277
|
};
|
|
17988
19278
|
content: {
|
|
17989
|
-
"application/json": components["schemas"]["
|
|
19279
|
+
"application/json": components["schemas"]["RecordUploadResponse"];
|
|
17990
19280
|
};
|
|
17991
19281
|
};
|
|
17992
|
-
/** @description Sin
|
|
19282
|
+
/** @description Sin policy allow de create/update para este principal */
|
|
17993
19283
|
403: {
|
|
17994
19284
|
headers: {
|
|
17995
19285
|
[name: string]: unknown;
|
|
@@ -17998,7 +19288,7 @@ interface operations {
|
|
|
17998
19288
|
"application/json": components["schemas"]["Error"];
|
|
17999
19289
|
};
|
|
18000
19290
|
};
|
|
18001
|
-
/** @description
|
|
19291
|
+
/** @description Objeto desconocido */
|
|
18002
19292
|
404: {
|
|
18003
19293
|
headers: {
|
|
18004
19294
|
[name: string]: unknown;
|
|
@@ -18007,7 +19297,7 @@ interface operations {
|
|
|
18007
19297
|
"application/json": components["schemas"]["Error"];
|
|
18008
19298
|
};
|
|
18009
19299
|
};
|
|
18010
|
-
/** @description
|
|
19300
|
+
/** @description Attribute inexistente/no-file, MIME no admitido o tamaño excedido */
|
|
18011
19301
|
422: {
|
|
18012
19302
|
headers: {
|
|
18013
19303
|
[name: string]: unknown;
|
|
@@ -19057,6 +20347,267 @@ interface operations {
|
|
|
19057
20347
|
};
|
|
19058
20348
|
};
|
|
19059
20349
|
};
|
|
20350
|
+
"HablalaApiWeb.Machine.WebhookController.index": {
|
|
20351
|
+
parameters: {
|
|
20352
|
+
query?: never;
|
|
20353
|
+
header?: never;
|
|
20354
|
+
path?: never;
|
|
20355
|
+
cookie?: never;
|
|
20356
|
+
};
|
|
20357
|
+
requestBody?: never;
|
|
20358
|
+
responses: {
|
|
20359
|
+
/** @description Endpoints */
|
|
20360
|
+
200: {
|
|
20361
|
+
headers: {
|
|
20362
|
+
[name: string]: unknown;
|
|
20363
|
+
};
|
|
20364
|
+
content: {
|
|
20365
|
+
"application/json": components["schemas"]["WebhookEndpointsResponse"];
|
|
20366
|
+
};
|
|
20367
|
+
};
|
|
20368
|
+
};
|
|
20369
|
+
};
|
|
20370
|
+
"HablalaApiWeb.Machine.WebhookController.create": {
|
|
20371
|
+
parameters: {
|
|
20372
|
+
query?: never;
|
|
20373
|
+
header?: never;
|
|
20374
|
+
path?: never;
|
|
20375
|
+
cookie?: never;
|
|
20376
|
+
};
|
|
20377
|
+
/** @description Datos del endpoint */
|
|
20378
|
+
requestBody?: {
|
|
20379
|
+
content: {
|
|
20380
|
+
"application/json": components["schemas"]["WebhookEndpointRequest"];
|
|
20381
|
+
};
|
|
20382
|
+
};
|
|
20383
|
+
responses: {
|
|
20384
|
+
/** @description Endpoint creado (con secret) */
|
|
20385
|
+
201: {
|
|
20386
|
+
headers: {
|
|
20387
|
+
[name: string]: unknown;
|
|
20388
|
+
};
|
|
20389
|
+
content: {
|
|
20390
|
+
"application/json": components["schemas"]["WebhookEndpointWithSecretResponse"];
|
|
20391
|
+
};
|
|
20392
|
+
};
|
|
20393
|
+
/** @description Sin permiso */
|
|
20394
|
+
403: {
|
|
20395
|
+
headers: {
|
|
20396
|
+
[name: string]: unknown;
|
|
20397
|
+
};
|
|
20398
|
+
content: {
|
|
20399
|
+
"application/json": components["schemas"]["Error"];
|
|
20400
|
+
};
|
|
20401
|
+
};
|
|
20402
|
+
/** @description Error de validación */
|
|
20403
|
+
422: {
|
|
20404
|
+
headers: {
|
|
20405
|
+
[name: string]: unknown;
|
|
20406
|
+
};
|
|
20407
|
+
content: {
|
|
20408
|
+
"application/json": components["schemas"]["Error"];
|
|
20409
|
+
};
|
|
20410
|
+
};
|
|
20411
|
+
};
|
|
20412
|
+
};
|
|
20413
|
+
"HablalaApiWeb.Machine.WebhookController.show": {
|
|
20414
|
+
parameters: {
|
|
20415
|
+
query?: never;
|
|
20416
|
+
header?: never;
|
|
20417
|
+
path: {
|
|
20418
|
+
id: string;
|
|
20419
|
+
};
|
|
20420
|
+
cookie?: never;
|
|
20421
|
+
};
|
|
20422
|
+
requestBody?: never;
|
|
20423
|
+
responses: {
|
|
20424
|
+
/** @description Endpoint */
|
|
20425
|
+
200: {
|
|
20426
|
+
headers: {
|
|
20427
|
+
[name: string]: unknown;
|
|
20428
|
+
};
|
|
20429
|
+
content: {
|
|
20430
|
+
"application/json": components["schemas"]["WebhookEndpointResponse"];
|
|
20431
|
+
};
|
|
20432
|
+
};
|
|
20433
|
+
/** @description No existe */
|
|
20434
|
+
404: {
|
|
20435
|
+
headers: {
|
|
20436
|
+
[name: string]: unknown;
|
|
20437
|
+
};
|
|
20438
|
+
content: {
|
|
20439
|
+
"application/json": components["schemas"]["Error"];
|
|
20440
|
+
};
|
|
20441
|
+
};
|
|
20442
|
+
};
|
|
20443
|
+
};
|
|
20444
|
+
"HablalaApiWeb.Machine.WebhookController.update": {
|
|
20445
|
+
parameters: {
|
|
20446
|
+
query?: never;
|
|
20447
|
+
header?: never;
|
|
20448
|
+
path: {
|
|
20449
|
+
id: string;
|
|
20450
|
+
};
|
|
20451
|
+
cookie?: never;
|
|
20452
|
+
};
|
|
20453
|
+
/** @description Cambios */
|
|
20454
|
+
requestBody?: {
|
|
20455
|
+
content: {
|
|
20456
|
+
"application/json": components["schemas"]["WebhookEndpointRequest"];
|
|
20457
|
+
};
|
|
20458
|
+
};
|
|
20459
|
+
responses: {
|
|
20460
|
+
/** @description Endpoint actualizado */
|
|
20461
|
+
200: {
|
|
20462
|
+
headers: {
|
|
20463
|
+
[name: string]: unknown;
|
|
20464
|
+
};
|
|
20465
|
+
content: {
|
|
20466
|
+
"application/json": components["schemas"]["WebhookEndpointResponse"];
|
|
20467
|
+
};
|
|
20468
|
+
};
|
|
20469
|
+
/** @description Error de validación */
|
|
20470
|
+
422: {
|
|
20471
|
+
headers: {
|
|
20472
|
+
[name: string]: unknown;
|
|
20473
|
+
};
|
|
20474
|
+
content: {
|
|
20475
|
+
"application/json": components["schemas"]["Error"];
|
|
20476
|
+
};
|
|
20477
|
+
};
|
|
20478
|
+
};
|
|
20479
|
+
};
|
|
20480
|
+
"HablalaApiWeb.Machine.WebhookController.delete": {
|
|
20481
|
+
parameters: {
|
|
20482
|
+
query?: never;
|
|
20483
|
+
header?: never;
|
|
20484
|
+
path: {
|
|
20485
|
+
id: string;
|
|
20486
|
+
};
|
|
20487
|
+
cookie?: never;
|
|
20488
|
+
};
|
|
20489
|
+
requestBody?: never;
|
|
20490
|
+
responses: {
|
|
20491
|
+
/** @description Borrado */
|
|
20492
|
+
204: {
|
|
20493
|
+
headers: {
|
|
20494
|
+
[name: string]: unknown;
|
|
20495
|
+
};
|
|
20496
|
+
content?: never;
|
|
20497
|
+
};
|
|
20498
|
+
/** @description Sin permiso */
|
|
20499
|
+
403: {
|
|
20500
|
+
headers: {
|
|
20501
|
+
[name: string]: unknown;
|
|
20502
|
+
};
|
|
20503
|
+
content: {
|
|
20504
|
+
"application/json": components["schemas"]["Error"];
|
|
20505
|
+
};
|
|
20506
|
+
};
|
|
20507
|
+
};
|
|
20508
|
+
};
|
|
20509
|
+
"HablalaApiWeb.Machine.WebhookController.update (2)": {
|
|
20510
|
+
parameters: {
|
|
20511
|
+
query?: never;
|
|
20512
|
+
header?: never;
|
|
20513
|
+
path: {
|
|
20514
|
+
id: string;
|
|
20515
|
+
};
|
|
20516
|
+
cookie?: never;
|
|
20517
|
+
};
|
|
20518
|
+
/** @description Cambios */
|
|
20519
|
+
requestBody?: {
|
|
20520
|
+
content: {
|
|
20521
|
+
"application/json": components["schemas"]["WebhookEndpointRequest"];
|
|
20522
|
+
};
|
|
20523
|
+
};
|
|
20524
|
+
responses: {
|
|
20525
|
+
/** @description Endpoint actualizado */
|
|
20526
|
+
200: {
|
|
20527
|
+
headers: {
|
|
20528
|
+
[name: string]: unknown;
|
|
20529
|
+
};
|
|
20530
|
+
content: {
|
|
20531
|
+
"application/json": components["schemas"]["WebhookEndpointResponse"];
|
|
20532
|
+
};
|
|
20533
|
+
};
|
|
20534
|
+
/** @description Error de validación */
|
|
20535
|
+
422: {
|
|
20536
|
+
headers: {
|
|
20537
|
+
[name: string]: unknown;
|
|
20538
|
+
};
|
|
20539
|
+
content: {
|
|
20540
|
+
"application/json": components["schemas"]["Error"];
|
|
20541
|
+
};
|
|
20542
|
+
};
|
|
20543
|
+
};
|
|
20544
|
+
};
|
|
20545
|
+
"HablalaApiWeb.Machine.WebhookController.deliveries": {
|
|
20546
|
+
parameters: {
|
|
20547
|
+
query?: never;
|
|
20548
|
+
header?: never;
|
|
20549
|
+
path: {
|
|
20550
|
+
id: string;
|
|
20551
|
+
};
|
|
20552
|
+
cookie?: never;
|
|
20553
|
+
};
|
|
20554
|
+
requestBody?: never;
|
|
20555
|
+
responses: {
|
|
20556
|
+
/** @description Deliveries */
|
|
20557
|
+
200: {
|
|
20558
|
+
headers: {
|
|
20559
|
+
[name: string]: unknown;
|
|
20560
|
+
};
|
|
20561
|
+
content: {
|
|
20562
|
+
"application/json": components["schemas"]["WebhookDeliveriesResponse"];
|
|
20563
|
+
};
|
|
20564
|
+
};
|
|
20565
|
+
};
|
|
20566
|
+
};
|
|
20567
|
+
"HablalaApiWeb.Machine.WebhookController.rotate": {
|
|
20568
|
+
parameters: {
|
|
20569
|
+
query?: never;
|
|
20570
|
+
header?: never;
|
|
20571
|
+
path: {
|
|
20572
|
+
id: string;
|
|
20573
|
+
};
|
|
20574
|
+
cookie?: never;
|
|
20575
|
+
};
|
|
20576
|
+
requestBody?: never;
|
|
20577
|
+
responses: {
|
|
20578
|
+
/** @description Secret rotado */
|
|
20579
|
+
201: {
|
|
20580
|
+
headers: {
|
|
20581
|
+
[name: string]: unknown;
|
|
20582
|
+
};
|
|
20583
|
+
content: {
|
|
20584
|
+
"application/json": components["schemas"]["WebhookEndpointWithSecretResponse"];
|
|
20585
|
+
};
|
|
20586
|
+
};
|
|
20587
|
+
};
|
|
20588
|
+
};
|
|
20589
|
+
"HablalaApiWeb.Machine.WebhookController.secret": {
|
|
20590
|
+
parameters: {
|
|
20591
|
+
query?: never;
|
|
20592
|
+
header?: never;
|
|
20593
|
+
path: {
|
|
20594
|
+
id: string;
|
|
20595
|
+
};
|
|
20596
|
+
cookie?: never;
|
|
20597
|
+
};
|
|
20598
|
+
requestBody?: never;
|
|
20599
|
+
responses: {
|
|
20600
|
+
/** @description Endpoint con secret */
|
|
20601
|
+
200: {
|
|
20602
|
+
headers: {
|
|
20603
|
+
[name: string]: unknown;
|
|
20604
|
+
};
|
|
20605
|
+
content: {
|
|
20606
|
+
"application/json": components["schemas"]["WebhookEndpointWithSecretResponse"];
|
|
20607
|
+
};
|
|
20608
|
+
};
|
|
20609
|
+
};
|
|
20610
|
+
};
|
|
19060
20611
|
"HablalaApiWeb.Machine.WhoamiController.show": {
|
|
19061
20612
|
parameters: {
|
|
19062
20613
|
query?: never;
|