@primitivedotdev/sdk 1.14.3 → 1.15.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.
@@ -81,6 +81,10 @@ const openapiDocument = {
81
81
  "name": "Payments",
82
82
  "description": "Collect and pay stablecoin (USDC) payments with x402. Settlement is\nnon-custodial: funds move directly from payer to payee on-chain via an\nEIP-3009 authorization the payer signs with their own key, and Primitive\nnever holds funds. The payee registers a payout address and creates a\nchallenge; the payer signs and settles it under a configurable spend\npolicy (kill-switch, per-payment and per-day caps, payee allowlist).\n"
83
83
  },
84
+ {
85
+ "name": "Wake",
86
+ "description": "Wake scheduling: schedule and send typed wake commands to your own\nfunctions over real DKIM-signed email on a cron cadence, and manage the\nper-target allowlist that authorizes which senders may wake a function.\n"
87
+ },
84
88
  {
85
89
  "name": "Webhook Deliveries",
86
90
  "description": "View and replay webhook delivery attempts"
@@ -1491,6 +1495,244 @@ const openapiDocument = {
1491
1495
  }
1492
1496
  }
1493
1497
  },
1498
+ "/wake/schedules": {
1499
+ "get": {
1500
+ "operationId": "listWakeSchedules",
1501
+ "summary": "List wake schedules",
1502
+ "description": "Returns the org's wake.dispatch schedules.",
1503
+ "tags": ["Wake"],
1504
+ "responses": {
1505
+ "200": {
1506
+ "description": "List of wake schedules",
1507
+ "content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, {
1508
+ "type": "object",
1509
+ "properties": { "data": {
1510
+ "type": "array",
1511
+ "items": { "$ref": "#/components/schemas/WakeSchedule" }
1512
+ } }
1513
+ }] } } }
1514
+ },
1515
+ "401": { "$ref": "#/components/responses/Unauthorized" }
1516
+ }
1517
+ },
1518
+ "post": {
1519
+ "operationId": "createWakeSchedule",
1520
+ "summary": "Create a wake schedule",
1521
+ "description": "Create a cron schedule that sends a wake.dispatch command to one of your\nown function addresses. `from` and `to` must differ (no self-dispatch);\nthe cron expression and IANA timezone are validated and the first fire\ntime is computed without firing immediately.\n",
1522
+ "tags": ["Wake"],
1523
+ "requestBody": {
1524
+ "required": true,
1525
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWakeScheduleInput" } } }
1526
+ },
1527
+ "responses": {
1528
+ "201": {
1529
+ "description": "Wake schedule created",
1530
+ "content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, {
1531
+ "type": "object",
1532
+ "properties": { "data": { "$ref": "#/components/schemas/WakeSchedule" } }
1533
+ }] } } }
1534
+ },
1535
+ "400": { "$ref": "#/components/responses/ValidationError" },
1536
+ "401": { "$ref": "#/components/responses/Unauthorized" }
1537
+ }
1538
+ }
1539
+ },
1540
+ "/wake/schedules/{id}": {
1541
+ "parameters": [{ "$ref": "#/components/parameters/ResourceId" }],
1542
+ "get": {
1543
+ "operationId": "getWakeSchedule",
1544
+ "summary": "Get a wake schedule",
1545
+ "tags": ["Wake"],
1546
+ "responses": {
1547
+ "200": {
1548
+ "description": "The wake schedule",
1549
+ "content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, {
1550
+ "type": "object",
1551
+ "properties": { "data": { "$ref": "#/components/schemas/WakeSchedule" } }
1552
+ }] } } }
1553
+ },
1554
+ "401": { "$ref": "#/components/responses/Unauthorized" },
1555
+ "404": { "$ref": "#/components/responses/NotFound" }
1556
+ }
1557
+ },
1558
+ "patch": {
1559
+ "operationId": "updateWakeSchedule",
1560
+ "summary": "Update a wake schedule",
1561
+ "description": "Update a schedule's command, args, cadence, addresses, note, or enabled\nstate. Changing the cadence (or re-enabling) recomputes the next fire time.\n",
1562
+ "tags": ["Wake"],
1563
+ "requestBody": {
1564
+ "required": true,
1565
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateWakeScheduleInput" } } }
1566
+ },
1567
+ "responses": {
1568
+ "200": {
1569
+ "description": "Updated wake schedule",
1570
+ "content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, {
1571
+ "type": "object",
1572
+ "properties": { "data": { "$ref": "#/components/schemas/WakeSchedule" } }
1573
+ }] } } }
1574
+ },
1575
+ "400": { "$ref": "#/components/responses/ValidationError" },
1576
+ "401": { "$ref": "#/components/responses/Unauthorized" },
1577
+ "404": { "$ref": "#/components/responses/NotFound" }
1578
+ }
1579
+ },
1580
+ "delete": {
1581
+ "operationId": "deleteWakeSchedule",
1582
+ "summary": "Delete a wake schedule",
1583
+ "tags": ["Wake"],
1584
+ "responses": {
1585
+ "200": { "$ref": "#/components/responses/Deleted" },
1586
+ "401": { "$ref": "#/components/responses/Unauthorized" },
1587
+ "404": { "$ref": "#/components/responses/NotFound" }
1588
+ }
1589
+ }
1590
+ },
1591
+ "/wake/schedules/{id}/run": {
1592
+ "parameters": [{ "$ref": "#/components/parameters/ResourceId" }],
1593
+ "post": {
1594
+ "operationId": "runWakeSchedule",
1595
+ "summary": "Run a wake schedule now",
1596
+ "description": "Fire the schedule immediately, sending one wake.dispatch via the same\nsigned-send path as a scheduled fire. Does not change the schedule's next\nfire time.\n",
1597
+ "tags": ["Wake"],
1598
+ "responses": {
1599
+ "200": {
1600
+ "description": "The wake interaction that was emitted",
1601
+ "content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, {
1602
+ "type": "object",
1603
+ "properties": { "data": {
1604
+ "type": "object",
1605
+ "additionalProperties": true
1606
+ } }
1607
+ }] } } }
1608
+ },
1609
+ "400": { "$ref": "#/components/responses/ValidationError" },
1610
+ "401": { "$ref": "#/components/responses/Unauthorized" },
1611
+ "404": { "$ref": "#/components/responses/NotFound" }
1612
+ }
1613
+ }
1614
+ },
1615
+ "/wake/authorizations": {
1616
+ "get": {
1617
+ "operationId": "listWakeAuthorizations",
1618
+ "summary": "List wake authorizations",
1619
+ "description": "Returns the per-target allowlist grants that authorize which senders may\nwake a function. Optionally filter by the target endpoint.\n",
1620
+ "tags": ["Wake"],
1621
+ "parameters": [{
1622
+ "name": "recipient_endpoint_id",
1623
+ "in": "query",
1624
+ "required": false,
1625
+ "schema": {
1626
+ "type": "string",
1627
+ "format": "uuid"
1628
+ },
1629
+ "description": "Only return grants for this target endpoint"
1630
+ }],
1631
+ "responses": {
1632
+ "200": {
1633
+ "description": "List of wake authorizations",
1634
+ "content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, {
1635
+ "type": "object",
1636
+ "properties": { "data": {
1637
+ "type": "array",
1638
+ "items": { "$ref": "#/components/schemas/WakeAuthorization" }
1639
+ } }
1640
+ }] } } }
1641
+ },
1642
+ "400": { "$ref": "#/components/responses/ValidationError" },
1643
+ "401": { "$ref": "#/components/responses/Unauthorized" }
1644
+ }
1645
+ },
1646
+ "post": {
1647
+ "operationId": "createWakeAuthorization",
1648
+ "summary": "Create a wake authorization",
1649
+ "description": "Grant a sender domain (and optionally a specific address and command set)\npermission to wake a target function. The domain must be fully-qualified.\n",
1650
+ "tags": ["Wake"],
1651
+ "requestBody": {
1652
+ "required": true,
1653
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWakeAuthorizationInput" } } }
1654
+ },
1655
+ "responses": {
1656
+ "201": {
1657
+ "description": "Wake authorization created",
1658
+ "content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, {
1659
+ "type": "object",
1660
+ "properties": { "data": { "$ref": "#/components/schemas/WakeAuthorization" } }
1661
+ }] } } }
1662
+ },
1663
+ "400": { "$ref": "#/components/responses/ValidationError" },
1664
+ "401": { "$ref": "#/components/responses/Unauthorized" },
1665
+ "404": { "$ref": "#/components/responses/NotFound" },
1666
+ "409": { "$ref": "#/components/responses/Conflict" }
1667
+ }
1668
+ }
1669
+ },
1670
+ "/wake/authorizations/{id}": {
1671
+ "parameters": [{ "$ref": "#/components/parameters/ResourceId" }],
1672
+ "patch": {
1673
+ "operationId": "updateWakeAuthorization",
1674
+ "summary": "Update a wake authorization",
1675
+ "description": "Toggle a wake authorization's enabled state.",
1676
+ "tags": ["Wake"],
1677
+ "requestBody": {
1678
+ "required": true,
1679
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateWakeAuthorizationInput" } } }
1680
+ },
1681
+ "responses": {
1682
+ "200": {
1683
+ "description": "Updated wake authorization",
1684
+ "content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, {
1685
+ "type": "object",
1686
+ "properties": { "data": { "$ref": "#/components/schemas/WakeAuthorization" } }
1687
+ }] } } }
1688
+ },
1689
+ "400": { "$ref": "#/components/responses/ValidationError" },
1690
+ "401": { "$ref": "#/components/responses/Unauthorized" },
1691
+ "404": { "$ref": "#/components/responses/NotFound" }
1692
+ }
1693
+ },
1694
+ "delete": {
1695
+ "operationId": "deleteWakeAuthorization",
1696
+ "summary": "Delete a wake authorization",
1697
+ "tags": ["Wake"],
1698
+ "responses": {
1699
+ "200": { "$ref": "#/components/responses/Deleted" },
1700
+ "401": { "$ref": "#/components/responses/Unauthorized" },
1701
+ "404": { "$ref": "#/components/responses/NotFound" }
1702
+ }
1703
+ }
1704
+ },
1705
+ "/wake/dispatches": { "get": {
1706
+ "operationId": "listWakeDispatches",
1707
+ "summary": "List recent wake dispatches",
1708
+ "description": "Read-only audit of recent wake.dispatch interactions for the org.",
1709
+ "tags": ["Wake"],
1710
+ "parameters": [{
1711
+ "name": "limit",
1712
+ "in": "query",
1713
+ "required": false,
1714
+ "schema": {
1715
+ "type": "integer",
1716
+ "minimum": 1,
1717
+ "maximum": 200,
1718
+ "default": 50
1719
+ },
1720
+ "description": "Maximum number of rows to return (1-200, default 50)"
1721
+ }],
1722
+ "responses": {
1723
+ "200": {
1724
+ "description": "List of recent wake dispatches",
1725
+ "content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, {
1726
+ "type": "object",
1727
+ "properties": { "data": {
1728
+ "type": "array",
1729
+ "items": { "$ref": "#/components/schemas/WakeDispatch" }
1730
+ } }
1731
+ }] } } }
1732
+ },
1733
+ "401": { "$ref": "#/components/responses/Unauthorized" }
1734
+ }
1735
+ } },
1494
1736
  "/routes": {
1495
1737
  "get": {
1496
1738
  "operationId": "listRoutes",
@@ -7044,103 +7286,349 @@ const openapiDocument = {
7044
7286
  "properties": { "enabled": { "type": "boolean" } },
7045
7287
  "required": ["enabled"]
7046
7288
  },
7047
- "RecipientRoute": {
7289
+ "WakeSchedule": {
7048
7290
  "type": "object",
7049
- "description": "A recipient routing rule binding an address pattern to one endpoint.",
7291
+ "description": "A cron schedule that sends a wake.dispatch command to a function.",
7050
7292
  "properties": {
7051
7293
  "id": {
7052
7294
  "type": "string",
7053
7295
  "format": "uuid"
7054
7296
  },
7055
- "org_id": {
7056
- "type": "string",
7057
- "format": "uuid"
7058
- },
7059
- "domain_id": {
7297
+ "from_address": {
7060
7298
  "type": ["string", "null"],
7061
- "format": "uuid",
7062
- "description": "Domain the route is scoped to; null = org-wide."
7063
- },
7064
- "match_type": {
7065
- "type": "string",
7066
- "enum": [
7067
- "exact",
7068
- "wildcard",
7069
- "regex"
7070
- ]
7299
+ "description": "The sending identity the wake is signed as."
7071
7300
  },
7072
- "pattern": {
7301
+ "target_address": {
7073
7302
  "type": "string",
7074
- "description": "The recipient address pattern (an exact address or a wildcard)."
7303
+ "description": "The function address the wake is delivered to."
7075
7304
  },
7076
- "pattern_norm": {
7077
- "type": ["string", "null"],
7078
- "description": "Normalized pattern used for matching."
7305
+ "command": { "type": "string" },
7306
+ "args": {
7307
+ "type": "object",
7308
+ "additionalProperties": true
7079
7309
  },
7080
- "endpoint_id": {
7310
+ "cron_expr": {
7081
7311
  "type": "string",
7082
- "format": "uuid",
7083
- "description": "The endpoint inbound mail matching this rule is delivered to."
7312
+ "description": "5-field cron expression."
7084
7313
  },
7085
- "priority": {
7086
- "type": "integer",
7087
- "description": "Evaluation order within a scope; lower is checked first."
7314
+ "timezone": {
7315
+ "type": "string",
7316
+ "description": "IANA timezone the cron is evaluated in."
7088
7317
  },
7089
- "enabled": { "type": "boolean" },
7090
- "match_count": {
7318
+ "next_run_at": {
7091
7319
  "type": "string",
7092
- "description": "How many emails have matched this rule (a bigint, returned as a string)."
7320
+ "format": "date-time"
7093
7321
  },
7094
- "last_matched_at": {
7322
+ "last_run_at": {
7095
7323
  "type": ["string", "null"],
7096
7324
  "format": "date-time"
7097
7325
  },
7326
+ "enabled": { "type": "boolean" },
7327
+ "note": { "type": ["string", "null"] },
7098
7328
  "created_at": {
7099
7329
  "type": "string",
7100
7330
  "format": "date-time"
7331
+ },
7332
+ "updated_at": {
7333
+ "type": "string",
7334
+ "format": "date-time"
7101
7335
  }
7102
7336
  },
7103
- "required": ["id"]
7337
+ "required": [
7338
+ "id",
7339
+ "target_address",
7340
+ "command",
7341
+ "cron_expr",
7342
+ "timezone",
7343
+ "next_run_at",
7344
+ "enabled",
7345
+ "created_at",
7346
+ "updated_at"
7347
+ ]
7104
7348
  },
7105
- "CreateRouteInput": {
7349
+ "CreateWakeScheduleInput": {
7106
7350
  "type": "object",
7107
7351
  "additionalProperties": false,
7108
- "description": "Provide exactly one of `endpoint_id` or `function_id`. With `function_id`,\na route-target endpoint is minted for that function and the route is bound\nto it in one transaction.\n",
7109
7352
  "properties": {
7110
- "match_type": {
7353
+ "from_address": {
7111
7354
  "type": "string",
7112
- "enum": [
7113
- "exact",
7114
- "wildcard",
7115
- "regex"
7116
- ]
7355
+ "description": "Sending identity (must be a domain the org can sign)."
7117
7356
  },
7118
- "pattern": {
7357
+ "target_address": {
7119
7358
  "type": "string",
7120
- "minLength": 1,
7121
- "maxLength": 512
7359
+ "description": "Your function address (must differ from from_address)."
7122
7360
  },
7123
- "endpoint_id": {
7361
+ "command": {
7124
7362
  "type": "string",
7125
- "format": "uuid",
7126
- "description": "An existing endpoint to route to. Mutually exclusive with function_id."
7363
+ "minLength": 1,
7364
+ "maxLength": 200
7127
7365
  },
7128
- "function_id": {
7129
- "type": "string",
7130
- "format": "uuid",
7131
- "description": "Route to this function, minting its route-target endpoint if needed. Mutually exclusive with endpoint_id."
7366
+ "args": {
7367
+ "type": "object",
7368
+ "additionalProperties": true,
7369
+ "description": "Optional JSON object passed through to the woken function."
7132
7370
  },
7133
- "domain_id": {
7134
- "type": ["string", "null"],
7135
- "format": "uuid",
7136
- "description": "Scope the route to a domain; defaults to the pattern's domain."
7371
+ "cron_expr": {
7372
+ "type": "string",
7373
+ "minLength": 1,
7374
+ "maxLength": 120
7137
7375
  },
7138
- "priority": {
7139
- "type": "integer",
7140
- "minimum": 0,
7141
- "maximum": 1e6
7376
+ "timezone": {
7377
+ "type": "string",
7378
+ "minLength": 1,
7379
+ "maxLength": 64,
7380
+ "default": "UTC"
7142
7381
  },
7143
- "enabled": { "type": "boolean" }
7382
+ "note": {
7383
+ "type": "string",
7384
+ "maxLength": 2e3
7385
+ }
7386
+ },
7387
+ "required": [
7388
+ "from_address",
7389
+ "target_address",
7390
+ "command",
7391
+ "cron_expr"
7392
+ ]
7393
+ },
7394
+ "UpdateWakeScheduleInput": {
7395
+ "type": "object",
7396
+ "additionalProperties": false,
7397
+ "properties": {
7398
+ "enabled": { "type": "boolean" },
7399
+ "command": {
7400
+ "type": "string",
7401
+ "minLength": 1,
7402
+ "maxLength": 200
7403
+ },
7404
+ "args": {
7405
+ "type": "object",
7406
+ "additionalProperties": true
7407
+ },
7408
+ "cron_expr": {
7409
+ "type": "string",
7410
+ "minLength": 1,
7411
+ "maxLength": 120
7412
+ },
7413
+ "timezone": {
7414
+ "type": "string",
7415
+ "minLength": 1,
7416
+ "maxLength": 64
7417
+ },
7418
+ "from_address": { "type": "string" },
7419
+ "target_address": { "type": "string" },
7420
+ "note": {
7421
+ "type": ["string", "null"],
7422
+ "maxLength": 2e3
7423
+ }
7424
+ }
7425
+ },
7426
+ "WakeAuthorization": {
7427
+ "type": "object",
7428
+ "description": "A per-target allowlist grant authorizing a sender to wake a function.",
7429
+ "properties": {
7430
+ "id": {
7431
+ "type": "string",
7432
+ "format": "uuid"
7433
+ },
7434
+ "recipient_endpoint_id": {
7435
+ "type": "string",
7436
+ "format": "uuid"
7437
+ },
7438
+ "allowed_sender_domain": { "type": "string" },
7439
+ "allowed_sender_address": { "type": ["string", "null"] },
7440
+ "allowed_commands": {
7441
+ "type": ["array", "null"],
7442
+ "items": { "type": "string" }
7443
+ },
7444
+ "enabled": { "type": "boolean" },
7445
+ "note": { "type": ["string", "null"] },
7446
+ "created_at": {
7447
+ "type": "string",
7448
+ "format": "date-time"
7449
+ }
7450
+ },
7451
+ "required": [
7452
+ "id",
7453
+ "recipient_endpoint_id",
7454
+ "allowed_sender_domain",
7455
+ "enabled",
7456
+ "created_at"
7457
+ ]
7458
+ },
7459
+ "CreateWakeAuthorizationInput": {
7460
+ "type": "object",
7461
+ "additionalProperties": false,
7462
+ "properties": {
7463
+ "recipient_endpoint_id": {
7464
+ "type": "string",
7465
+ "format": "uuid"
7466
+ },
7467
+ "allowed_sender_domain": {
7468
+ "type": "string",
7469
+ "minLength": 1,
7470
+ "maxLength": 253,
7471
+ "description": "Fully-qualified sender domain (at least two labels)."
7472
+ },
7473
+ "allowed_sender_address": {
7474
+ "type": ["string", "null"],
7475
+ "description": "Optional specific sender address to pin the grant to."
7476
+ },
7477
+ "allowed_commands": {
7478
+ "type": ["array", "null"],
7479
+ "maxItems": 64,
7480
+ "items": {
7481
+ "type": "string",
7482
+ "minLength": 1,
7483
+ "maxLength": 200
7484
+ },
7485
+ "description": "Optional command allowlist; null = any command."
7486
+ },
7487
+ "note": {
7488
+ "type": "string",
7489
+ "maxLength": 2e3
7490
+ }
7491
+ },
7492
+ "required": ["recipient_endpoint_id", "allowed_sender_domain"]
7493
+ },
7494
+ "UpdateWakeAuthorizationInput": {
7495
+ "type": "object",
7496
+ "additionalProperties": false,
7497
+ "properties": { "enabled": { "type": "boolean" } },
7498
+ "required": ["enabled"]
7499
+ },
7500
+ "WakeDispatch": {
7501
+ "type": "object",
7502
+ "description": "A recorded wake.dispatch interaction (audit row).",
7503
+ "properties": {
7504
+ "id": {
7505
+ "type": "string",
7506
+ "format": "uuid"
7507
+ },
7508
+ "wire_id": { "type": "string" },
7509
+ "role": { "type": "string" },
7510
+ "state": { "type": "string" },
7511
+ "outcome": { "type": ["string", "null"] },
7512
+ "awaiting": { "type": ["string", "null"] },
7513
+ "counterparty_address": { "type": "string" },
7514
+ "our_address": { "type": "string" },
7515
+ "step_count": { "type": "integer" },
7516
+ "created_at": {
7517
+ "type": "string",
7518
+ "format": "date-time"
7519
+ },
7520
+ "completed_at": {
7521
+ "type": ["string", "null"],
7522
+ "format": "date-time"
7523
+ }
7524
+ },
7525
+ "required": [
7526
+ "id",
7527
+ "wire_id",
7528
+ "role",
7529
+ "state",
7530
+ "counterparty_address",
7531
+ "our_address",
7532
+ "created_at"
7533
+ ]
7534
+ },
7535
+ "RecipientRoute": {
7536
+ "type": "object",
7537
+ "description": "A recipient routing rule binding an address pattern to one endpoint.",
7538
+ "properties": {
7539
+ "id": {
7540
+ "type": "string",
7541
+ "format": "uuid"
7542
+ },
7543
+ "org_id": {
7544
+ "type": "string",
7545
+ "format": "uuid"
7546
+ },
7547
+ "domain_id": {
7548
+ "type": ["string", "null"],
7549
+ "format": "uuid",
7550
+ "description": "Domain the route is scoped to; null = org-wide."
7551
+ },
7552
+ "match_type": {
7553
+ "type": "string",
7554
+ "enum": [
7555
+ "exact",
7556
+ "wildcard",
7557
+ "regex"
7558
+ ]
7559
+ },
7560
+ "pattern": {
7561
+ "type": "string",
7562
+ "description": "The recipient address pattern (an exact address or a wildcard)."
7563
+ },
7564
+ "pattern_norm": {
7565
+ "type": ["string", "null"],
7566
+ "description": "Normalized pattern used for matching."
7567
+ },
7568
+ "endpoint_id": {
7569
+ "type": "string",
7570
+ "format": "uuid",
7571
+ "description": "The endpoint inbound mail matching this rule is delivered to."
7572
+ },
7573
+ "priority": {
7574
+ "type": "integer",
7575
+ "description": "Evaluation order within a scope; lower is checked first."
7576
+ },
7577
+ "enabled": { "type": "boolean" },
7578
+ "match_count": {
7579
+ "type": "string",
7580
+ "description": "How many emails have matched this rule (a bigint, returned as a string)."
7581
+ },
7582
+ "last_matched_at": {
7583
+ "type": ["string", "null"],
7584
+ "format": "date-time"
7585
+ },
7586
+ "created_at": {
7587
+ "type": "string",
7588
+ "format": "date-time"
7589
+ }
7590
+ },
7591
+ "required": ["id"]
7592
+ },
7593
+ "CreateRouteInput": {
7594
+ "type": "object",
7595
+ "additionalProperties": false,
7596
+ "description": "Provide exactly one of `endpoint_id` or `function_id`. With `function_id`,\na route-target endpoint is minted for that function and the route is bound\nto it in one transaction.\n",
7597
+ "properties": {
7598
+ "match_type": {
7599
+ "type": "string",
7600
+ "enum": [
7601
+ "exact",
7602
+ "wildcard",
7603
+ "regex"
7604
+ ]
7605
+ },
7606
+ "pattern": {
7607
+ "type": "string",
7608
+ "minLength": 1,
7609
+ "maxLength": 512
7610
+ },
7611
+ "endpoint_id": {
7612
+ "type": "string",
7613
+ "format": "uuid",
7614
+ "description": "An existing endpoint to route to. Mutually exclusive with function_id."
7615
+ },
7616
+ "function_id": {
7617
+ "type": "string",
7618
+ "format": "uuid",
7619
+ "description": "Route to this function, minting its route-target endpoint if needed. Mutually exclusive with endpoint_id."
7620
+ },
7621
+ "domain_id": {
7622
+ "type": ["string", "null"],
7623
+ "format": "uuid",
7624
+ "description": "Scope the route to a domain; defaults to the pattern's domain."
7625
+ },
7626
+ "priority": {
7627
+ "type": "integer",
7628
+ "minimum": 0,
7629
+ "maximum": 1e6
7630
+ },
7631
+ "enabled": { "type": "boolean" }
7144
7632
  },
7145
7633
  "required": ["match_type", "pattern"]
7146
7634
  },
@@ -17240,6 +17728,747 @@ const operationManifest = [
17240
17728
  "tag": "Threads",
17241
17729
  "tagCommand": "threads"
17242
17730
  },
17731
+ {
17732
+ "binaryResponse": false,
17733
+ "bodyRequired": true,
17734
+ "command": "create-wake-authorization",
17735
+ "description": "Grant a sender domain (and optionally a specific address and command set)\npermission to wake a target function. The domain must be fully-qualified.\n",
17736
+ "hasJsonBody": true,
17737
+ "method": "POST",
17738
+ "operationId": "createWakeAuthorization",
17739
+ "path": "/wake/authorizations",
17740
+ "pathParams": [],
17741
+ "queryParams": [],
17742
+ "requestSchema": {
17743
+ "type": "object",
17744
+ "additionalProperties": false,
17745
+ "properties": {
17746
+ "recipient_endpoint_id": {
17747
+ "type": "string",
17748
+ "format": "uuid"
17749
+ },
17750
+ "allowed_sender_domain": {
17751
+ "type": "string",
17752
+ "minLength": 1,
17753
+ "maxLength": 253,
17754
+ "description": "Fully-qualified sender domain (at least two labels)."
17755
+ },
17756
+ "allowed_sender_address": {
17757
+ "type": ["string", "null"],
17758
+ "description": "Optional specific sender address to pin the grant to."
17759
+ },
17760
+ "allowed_commands": {
17761
+ "type": ["array", "null"],
17762
+ "maxItems": 64,
17763
+ "items": {
17764
+ "type": "string",
17765
+ "minLength": 1,
17766
+ "maxLength": 200
17767
+ },
17768
+ "description": "Optional command allowlist; null = any command."
17769
+ },
17770
+ "note": {
17771
+ "type": "string",
17772
+ "maxLength": 2e3
17773
+ }
17774
+ },
17775
+ "required": ["recipient_endpoint_id", "allowed_sender_domain"]
17776
+ },
17777
+ "responseSchema": {
17778
+ "type": "object",
17779
+ "description": "A per-target allowlist grant authorizing a sender to wake a function.",
17780
+ "properties": {
17781
+ "id": {
17782
+ "type": "string",
17783
+ "format": "uuid"
17784
+ },
17785
+ "recipient_endpoint_id": {
17786
+ "type": "string",
17787
+ "format": "uuid"
17788
+ },
17789
+ "allowed_sender_domain": { "type": "string" },
17790
+ "allowed_sender_address": { "type": ["string", "null"] },
17791
+ "allowed_commands": {
17792
+ "type": ["array", "null"],
17793
+ "items": { "type": "string" }
17794
+ },
17795
+ "enabled": { "type": "boolean" },
17796
+ "note": { "type": ["string", "null"] },
17797
+ "created_at": {
17798
+ "type": "string",
17799
+ "format": "date-time"
17800
+ }
17801
+ },
17802
+ "required": [
17803
+ "id",
17804
+ "recipient_endpoint_id",
17805
+ "allowed_sender_domain",
17806
+ "enabled",
17807
+ "created_at"
17808
+ ]
17809
+ },
17810
+ "sdkName": "createWakeAuthorization",
17811
+ "summary": "Create a wake authorization",
17812
+ "tag": "Wake",
17813
+ "tagCommand": "wake"
17814
+ },
17815
+ {
17816
+ "binaryResponse": false,
17817
+ "bodyRequired": true,
17818
+ "command": "create-wake-schedule",
17819
+ "description": "Create a cron schedule that sends a wake.dispatch command to one of your\nown function addresses. `from` and `to` must differ (no self-dispatch);\nthe cron expression and IANA timezone are validated and the first fire\ntime is computed without firing immediately.\n",
17820
+ "hasJsonBody": true,
17821
+ "method": "POST",
17822
+ "operationId": "createWakeSchedule",
17823
+ "path": "/wake/schedules",
17824
+ "pathParams": [],
17825
+ "queryParams": [],
17826
+ "requestSchema": {
17827
+ "type": "object",
17828
+ "additionalProperties": false,
17829
+ "properties": {
17830
+ "from_address": {
17831
+ "type": "string",
17832
+ "description": "Sending identity (must be a domain the org can sign)."
17833
+ },
17834
+ "target_address": {
17835
+ "type": "string",
17836
+ "description": "Your function address (must differ from from_address)."
17837
+ },
17838
+ "command": {
17839
+ "type": "string",
17840
+ "minLength": 1,
17841
+ "maxLength": 200
17842
+ },
17843
+ "args": {
17844
+ "type": "object",
17845
+ "additionalProperties": true,
17846
+ "description": "Optional JSON object passed through to the woken function."
17847
+ },
17848
+ "cron_expr": {
17849
+ "type": "string",
17850
+ "minLength": 1,
17851
+ "maxLength": 120
17852
+ },
17853
+ "timezone": {
17854
+ "type": "string",
17855
+ "minLength": 1,
17856
+ "maxLength": 64,
17857
+ "default": "UTC"
17858
+ },
17859
+ "note": {
17860
+ "type": "string",
17861
+ "maxLength": 2e3
17862
+ }
17863
+ },
17864
+ "required": [
17865
+ "from_address",
17866
+ "target_address",
17867
+ "command",
17868
+ "cron_expr"
17869
+ ]
17870
+ },
17871
+ "responseSchema": {
17872
+ "type": "object",
17873
+ "description": "A cron schedule that sends a wake.dispatch command to a function.",
17874
+ "properties": {
17875
+ "id": {
17876
+ "type": "string",
17877
+ "format": "uuid"
17878
+ },
17879
+ "from_address": {
17880
+ "type": ["string", "null"],
17881
+ "description": "The sending identity the wake is signed as."
17882
+ },
17883
+ "target_address": {
17884
+ "type": "string",
17885
+ "description": "The function address the wake is delivered to."
17886
+ },
17887
+ "command": { "type": "string" },
17888
+ "args": {
17889
+ "type": "object",
17890
+ "additionalProperties": true
17891
+ },
17892
+ "cron_expr": {
17893
+ "type": "string",
17894
+ "description": "5-field cron expression."
17895
+ },
17896
+ "timezone": {
17897
+ "type": "string",
17898
+ "description": "IANA timezone the cron is evaluated in."
17899
+ },
17900
+ "next_run_at": {
17901
+ "type": "string",
17902
+ "format": "date-time"
17903
+ },
17904
+ "last_run_at": {
17905
+ "type": ["string", "null"],
17906
+ "format": "date-time"
17907
+ },
17908
+ "enabled": { "type": "boolean" },
17909
+ "note": { "type": ["string", "null"] },
17910
+ "created_at": {
17911
+ "type": "string",
17912
+ "format": "date-time"
17913
+ },
17914
+ "updated_at": {
17915
+ "type": "string",
17916
+ "format": "date-time"
17917
+ }
17918
+ },
17919
+ "required": [
17920
+ "id",
17921
+ "target_address",
17922
+ "command",
17923
+ "cron_expr",
17924
+ "timezone",
17925
+ "next_run_at",
17926
+ "enabled",
17927
+ "created_at",
17928
+ "updated_at"
17929
+ ]
17930
+ },
17931
+ "sdkName": "createWakeSchedule",
17932
+ "summary": "Create a wake schedule",
17933
+ "tag": "Wake",
17934
+ "tagCommand": "wake"
17935
+ },
17936
+ {
17937
+ "binaryResponse": false,
17938
+ "bodyRequired": false,
17939
+ "command": "delete-wake-authorization",
17940
+ "description": null,
17941
+ "hasJsonBody": false,
17942
+ "method": "DELETE",
17943
+ "operationId": "deleteWakeAuthorization",
17944
+ "path": "/wake/authorizations/{id}",
17945
+ "pathParams": [{
17946
+ "description": "Resource UUID",
17947
+ "enum": null,
17948
+ "name": "id",
17949
+ "required": true,
17950
+ "type": "string"
17951
+ }],
17952
+ "queryParams": [],
17953
+ "requestSchema": null,
17954
+ "responseSchema": null,
17955
+ "sdkName": "deleteWakeAuthorization",
17956
+ "summary": "Delete a wake authorization",
17957
+ "tag": "Wake",
17958
+ "tagCommand": "wake"
17959
+ },
17960
+ {
17961
+ "binaryResponse": false,
17962
+ "bodyRequired": false,
17963
+ "command": "delete-wake-schedule",
17964
+ "description": null,
17965
+ "hasJsonBody": false,
17966
+ "method": "DELETE",
17967
+ "operationId": "deleteWakeSchedule",
17968
+ "path": "/wake/schedules/{id}",
17969
+ "pathParams": [{
17970
+ "description": "Resource UUID",
17971
+ "enum": null,
17972
+ "name": "id",
17973
+ "required": true,
17974
+ "type": "string"
17975
+ }],
17976
+ "queryParams": [],
17977
+ "requestSchema": null,
17978
+ "responseSchema": null,
17979
+ "sdkName": "deleteWakeSchedule",
17980
+ "summary": "Delete a wake schedule",
17981
+ "tag": "Wake",
17982
+ "tagCommand": "wake"
17983
+ },
17984
+ {
17985
+ "binaryResponse": false,
17986
+ "bodyRequired": false,
17987
+ "command": "get-wake-schedule",
17988
+ "description": null,
17989
+ "hasJsonBody": false,
17990
+ "method": "GET",
17991
+ "operationId": "getWakeSchedule",
17992
+ "path": "/wake/schedules/{id}",
17993
+ "pathParams": [{
17994
+ "description": "Resource UUID",
17995
+ "enum": null,
17996
+ "name": "id",
17997
+ "required": true,
17998
+ "type": "string"
17999
+ }],
18000
+ "queryParams": [],
18001
+ "requestSchema": null,
18002
+ "responseSchema": {
18003
+ "type": "object",
18004
+ "description": "A cron schedule that sends a wake.dispatch command to a function.",
18005
+ "properties": {
18006
+ "id": {
18007
+ "type": "string",
18008
+ "format": "uuid"
18009
+ },
18010
+ "from_address": {
18011
+ "type": ["string", "null"],
18012
+ "description": "The sending identity the wake is signed as."
18013
+ },
18014
+ "target_address": {
18015
+ "type": "string",
18016
+ "description": "The function address the wake is delivered to."
18017
+ },
18018
+ "command": { "type": "string" },
18019
+ "args": {
18020
+ "type": "object",
18021
+ "additionalProperties": true
18022
+ },
18023
+ "cron_expr": {
18024
+ "type": "string",
18025
+ "description": "5-field cron expression."
18026
+ },
18027
+ "timezone": {
18028
+ "type": "string",
18029
+ "description": "IANA timezone the cron is evaluated in."
18030
+ },
18031
+ "next_run_at": {
18032
+ "type": "string",
18033
+ "format": "date-time"
18034
+ },
18035
+ "last_run_at": {
18036
+ "type": ["string", "null"],
18037
+ "format": "date-time"
18038
+ },
18039
+ "enabled": { "type": "boolean" },
18040
+ "note": { "type": ["string", "null"] },
18041
+ "created_at": {
18042
+ "type": "string",
18043
+ "format": "date-time"
18044
+ },
18045
+ "updated_at": {
18046
+ "type": "string",
18047
+ "format": "date-time"
18048
+ }
18049
+ },
18050
+ "required": [
18051
+ "id",
18052
+ "target_address",
18053
+ "command",
18054
+ "cron_expr",
18055
+ "timezone",
18056
+ "next_run_at",
18057
+ "enabled",
18058
+ "created_at",
18059
+ "updated_at"
18060
+ ]
18061
+ },
18062
+ "sdkName": "getWakeSchedule",
18063
+ "summary": "Get a wake schedule",
18064
+ "tag": "Wake",
18065
+ "tagCommand": "wake"
18066
+ },
18067
+ {
18068
+ "binaryResponse": false,
18069
+ "bodyRequired": false,
18070
+ "command": "list-wake-authorizations",
18071
+ "description": "Returns the per-target allowlist grants that authorize which senders may\nwake a function. Optionally filter by the target endpoint.\n",
18072
+ "hasJsonBody": false,
18073
+ "method": "GET",
18074
+ "operationId": "listWakeAuthorizations",
18075
+ "path": "/wake/authorizations",
18076
+ "pathParams": [],
18077
+ "queryParams": [{
18078
+ "description": "Only return grants for this target endpoint",
18079
+ "enum": null,
18080
+ "name": "recipient_endpoint_id",
18081
+ "required": false,
18082
+ "type": "string"
18083
+ }],
18084
+ "requestSchema": null,
18085
+ "responseSchema": {
18086
+ "type": "array",
18087
+ "items": {
18088
+ "type": "object",
18089
+ "description": "A per-target allowlist grant authorizing a sender to wake a function.",
18090
+ "properties": {
18091
+ "id": {
18092
+ "type": "string",
18093
+ "format": "uuid"
18094
+ },
18095
+ "recipient_endpoint_id": {
18096
+ "type": "string",
18097
+ "format": "uuid"
18098
+ },
18099
+ "allowed_sender_domain": { "type": "string" },
18100
+ "allowed_sender_address": { "type": ["string", "null"] },
18101
+ "allowed_commands": {
18102
+ "type": ["array", "null"],
18103
+ "items": { "type": "string" }
18104
+ },
18105
+ "enabled": { "type": "boolean" },
18106
+ "note": { "type": ["string", "null"] },
18107
+ "created_at": {
18108
+ "type": "string",
18109
+ "format": "date-time"
18110
+ }
18111
+ },
18112
+ "required": [
18113
+ "id",
18114
+ "recipient_endpoint_id",
18115
+ "allowed_sender_domain",
18116
+ "enabled",
18117
+ "created_at"
18118
+ ]
18119
+ }
18120
+ },
18121
+ "sdkName": "listWakeAuthorizations",
18122
+ "summary": "List wake authorizations",
18123
+ "tag": "Wake",
18124
+ "tagCommand": "wake"
18125
+ },
18126
+ {
18127
+ "binaryResponse": false,
18128
+ "bodyRequired": false,
18129
+ "command": "list-wake-dispatches",
18130
+ "description": "Read-only audit of recent wake.dispatch interactions for the org.",
18131
+ "hasJsonBody": false,
18132
+ "method": "GET",
18133
+ "operationId": "listWakeDispatches",
18134
+ "path": "/wake/dispatches",
18135
+ "pathParams": [],
18136
+ "queryParams": [{
18137
+ "default": 50,
18138
+ "description": "Maximum number of rows to return (1-200, default 50)",
18139
+ "enum": null,
18140
+ "maximum": 200,
18141
+ "minimum": 1,
18142
+ "name": "limit",
18143
+ "required": false,
18144
+ "type": "integer"
18145
+ }],
18146
+ "requestSchema": null,
18147
+ "responseSchema": {
18148
+ "type": "array",
18149
+ "items": {
18150
+ "type": "object",
18151
+ "description": "A recorded wake.dispatch interaction (audit row).",
18152
+ "properties": {
18153
+ "id": {
18154
+ "type": "string",
18155
+ "format": "uuid"
18156
+ },
18157
+ "wire_id": { "type": "string" },
18158
+ "role": { "type": "string" },
18159
+ "state": { "type": "string" },
18160
+ "outcome": { "type": ["string", "null"] },
18161
+ "awaiting": { "type": ["string", "null"] },
18162
+ "counterparty_address": { "type": "string" },
18163
+ "our_address": { "type": "string" },
18164
+ "step_count": { "type": "integer" },
18165
+ "created_at": {
18166
+ "type": "string",
18167
+ "format": "date-time"
18168
+ },
18169
+ "completed_at": {
18170
+ "type": ["string", "null"],
18171
+ "format": "date-time"
18172
+ }
18173
+ },
18174
+ "required": [
18175
+ "id",
18176
+ "wire_id",
18177
+ "role",
18178
+ "state",
18179
+ "counterparty_address",
18180
+ "our_address",
18181
+ "created_at"
18182
+ ]
18183
+ }
18184
+ },
18185
+ "sdkName": "listWakeDispatches",
18186
+ "summary": "List recent wake dispatches",
18187
+ "tag": "Wake",
18188
+ "tagCommand": "wake"
18189
+ },
18190
+ {
18191
+ "binaryResponse": false,
18192
+ "bodyRequired": false,
18193
+ "command": "list-wake-schedules",
18194
+ "description": "Returns the org's wake.dispatch schedules.",
18195
+ "hasJsonBody": false,
18196
+ "method": "GET",
18197
+ "operationId": "listWakeSchedules",
18198
+ "path": "/wake/schedules",
18199
+ "pathParams": [],
18200
+ "queryParams": [],
18201
+ "requestSchema": null,
18202
+ "responseSchema": {
18203
+ "type": "array",
18204
+ "items": {
18205
+ "type": "object",
18206
+ "description": "A cron schedule that sends a wake.dispatch command to a function.",
18207
+ "properties": {
18208
+ "id": {
18209
+ "type": "string",
18210
+ "format": "uuid"
18211
+ },
18212
+ "from_address": {
18213
+ "type": ["string", "null"],
18214
+ "description": "The sending identity the wake is signed as."
18215
+ },
18216
+ "target_address": {
18217
+ "type": "string",
18218
+ "description": "The function address the wake is delivered to."
18219
+ },
18220
+ "command": { "type": "string" },
18221
+ "args": {
18222
+ "type": "object",
18223
+ "additionalProperties": true
18224
+ },
18225
+ "cron_expr": {
18226
+ "type": "string",
18227
+ "description": "5-field cron expression."
18228
+ },
18229
+ "timezone": {
18230
+ "type": "string",
18231
+ "description": "IANA timezone the cron is evaluated in."
18232
+ },
18233
+ "next_run_at": {
18234
+ "type": "string",
18235
+ "format": "date-time"
18236
+ },
18237
+ "last_run_at": {
18238
+ "type": ["string", "null"],
18239
+ "format": "date-time"
18240
+ },
18241
+ "enabled": { "type": "boolean" },
18242
+ "note": { "type": ["string", "null"] },
18243
+ "created_at": {
18244
+ "type": "string",
18245
+ "format": "date-time"
18246
+ },
18247
+ "updated_at": {
18248
+ "type": "string",
18249
+ "format": "date-time"
18250
+ }
18251
+ },
18252
+ "required": [
18253
+ "id",
18254
+ "target_address",
18255
+ "command",
18256
+ "cron_expr",
18257
+ "timezone",
18258
+ "next_run_at",
18259
+ "enabled",
18260
+ "created_at",
18261
+ "updated_at"
18262
+ ]
18263
+ }
18264
+ },
18265
+ "sdkName": "listWakeSchedules",
18266
+ "summary": "List wake schedules",
18267
+ "tag": "Wake",
18268
+ "tagCommand": "wake"
18269
+ },
18270
+ {
18271
+ "binaryResponse": false,
18272
+ "bodyRequired": false,
18273
+ "command": "run-wake-schedule",
18274
+ "description": "Fire the schedule immediately, sending one wake.dispatch via the same\nsigned-send path as a scheduled fire. Does not change the schedule's next\nfire time.\n",
18275
+ "hasJsonBody": false,
18276
+ "method": "POST",
18277
+ "operationId": "runWakeSchedule",
18278
+ "path": "/wake/schedules/{id}/run",
18279
+ "pathParams": [{
18280
+ "description": "Resource UUID",
18281
+ "enum": null,
18282
+ "name": "id",
18283
+ "required": true,
18284
+ "type": "string"
18285
+ }],
18286
+ "queryParams": [],
18287
+ "requestSchema": null,
18288
+ "responseSchema": {
18289
+ "type": "object",
18290
+ "additionalProperties": true
18291
+ },
18292
+ "sdkName": "runWakeSchedule",
18293
+ "summary": "Run a wake schedule now",
18294
+ "tag": "Wake",
18295
+ "tagCommand": "wake"
18296
+ },
18297
+ {
18298
+ "binaryResponse": false,
18299
+ "bodyRequired": true,
18300
+ "command": "update-wake-authorization",
18301
+ "description": "Toggle a wake authorization's enabled state.",
18302
+ "hasJsonBody": true,
18303
+ "method": "PATCH",
18304
+ "operationId": "updateWakeAuthorization",
18305
+ "path": "/wake/authorizations/{id}",
18306
+ "pathParams": [{
18307
+ "description": "Resource UUID",
18308
+ "enum": null,
18309
+ "name": "id",
18310
+ "required": true,
18311
+ "type": "string"
18312
+ }],
18313
+ "queryParams": [],
18314
+ "requestSchema": {
18315
+ "type": "object",
18316
+ "additionalProperties": false,
18317
+ "properties": { "enabled": { "type": "boolean" } },
18318
+ "required": ["enabled"]
18319
+ },
18320
+ "responseSchema": {
18321
+ "type": "object",
18322
+ "description": "A per-target allowlist grant authorizing a sender to wake a function.",
18323
+ "properties": {
18324
+ "id": {
18325
+ "type": "string",
18326
+ "format": "uuid"
18327
+ },
18328
+ "recipient_endpoint_id": {
18329
+ "type": "string",
18330
+ "format": "uuid"
18331
+ },
18332
+ "allowed_sender_domain": { "type": "string" },
18333
+ "allowed_sender_address": { "type": ["string", "null"] },
18334
+ "allowed_commands": {
18335
+ "type": ["array", "null"],
18336
+ "items": { "type": "string" }
18337
+ },
18338
+ "enabled": { "type": "boolean" },
18339
+ "note": { "type": ["string", "null"] },
18340
+ "created_at": {
18341
+ "type": "string",
18342
+ "format": "date-time"
18343
+ }
18344
+ },
18345
+ "required": [
18346
+ "id",
18347
+ "recipient_endpoint_id",
18348
+ "allowed_sender_domain",
18349
+ "enabled",
18350
+ "created_at"
18351
+ ]
18352
+ },
18353
+ "sdkName": "updateWakeAuthorization",
18354
+ "summary": "Update a wake authorization",
18355
+ "tag": "Wake",
18356
+ "tagCommand": "wake"
18357
+ },
18358
+ {
18359
+ "binaryResponse": false,
18360
+ "bodyRequired": true,
18361
+ "command": "update-wake-schedule",
18362
+ "description": "Update a schedule's command, args, cadence, addresses, note, or enabled\nstate. Changing the cadence (or re-enabling) recomputes the next fire time.\n",
18363
+ "hasJsonBody": true,
18364
+ "method": "PATCH",
18365
+ "operationId": "updateWakeSchedule",
18366
+ "path": "/wake/schedules/{id}",
18367
+ "pathParams": [{
18368
+ "description": "Resource UUID",
18369
+ "enum": null,
18370
+ "name": "id",
18371
+ "required": true,
18372
+ "type": "string"
18373
+ }],
18374
+ "queryParams": [],
18375
+ "requestSchema": {
18376
+ "type": "object",
18377
+ "additionalProperties": false,
18378
+ "properties": {
18379
+ "enabled": { "type": "boolean" },
18380
+ "command": {
18381
+ "type": "string",
18382
+ "minLength": 1,
18383
+ "maxLength": 200
18384
+ },
18385
+ "args": {
18386
+ "type": "object",
18387
+ "additionalProperties": true
18388
+ },
18389
+ "cron_expr": {
18390
+ "type": "string",
18391
+ "minLength": 1,
18392
+ "maxLength": 120
18393
+ },
18394
+ "timezone": {
18395
+ "type": "string",
18396
+ "minLength": 1,
18397
+ "maxLength": 64
18398
+ },
18399
+ "from_address": { "type": "string" },
18400
+ "target_address": { "type": "string" },
18401
+ "note": {
18402
+ "type": ["string", "null"],
18403
+ "maxLength": 2e3
18404
+ }
18405
+ }
18406
+ },
18407
+ "responseSchema": {
18408
+ "type": "object",
18409
+ "description": "A cron schedule that sends a wake.dispatch command to a function.",
18410
+ "properties": {
18411
+ "id": {
18412
+ "type": "string",
18413
+ "format": "uuid"
18414
+ },
18415
+ "from_address": {
18416
+ "type": ["string", "null"],
18417
+ "description": "The sending identity the wake is signed as."
18418
+ },
18419
+ "target_address": {
18420
+ "type": "string",
18421
+ "description": "The function address the wake is delivered to."
18422
+ },
18423
+ "command": { "type": "string" },
18424
+ "args": {
18425
+ "type": "object",
18426
+ "additionalProperties": true
18427
+ },
18428
+ "cron_expr": {
18429
+ "type": "string",
18430
+ "description": "5-field cron expression."
18431
+ },
18432
+ "timezone": {
18433
+ "type": "string",
18434
+ "description": "IANA timezone the cron is evaluated in."
18435
+ },
18436
+ "next_run_at": {
18437
+ "type": "string",
18438
+ "format": "date-time"
18439
+ },
18440
+ "last_run_at": {
18441
+ "type": ["string", "null"],
18442
+ "format": "date-time"
18443
+ },
18444
+ "enabled": { "type": "boolean" },
18445
+ "note": { "type": ["string", "null"] },
18446
+ "created_at": {
18447
+ "type": "string",
18448
+ "format": "date-time"
18449
+ },
18450
+ "updated_at": {
18451
+ "type": "string",
18452
+ "format": "date-time"
18453
+ }
18454
+ },
18455
+ "required": [
18456
+ "id",
18457
+ "target_address",
18458
+ "command",
18459
+ "cron_expr",
18460
+ "timezone",
18461
+ "next_run_at",
18462
+ "enabled",
18463
+ "created_at",
18464
+ "updated_at"
18465
+ ]
18466
+ },
18467
+ "sdkName": "updateWakeSchedule",
18468
+ "summary": "Update a wake schedule",
18469
+ "tag": "Wake",
18470
+ "tagCommand": "wake"
18471
+ },
17243
18472
  {
17244
18473
  "binaryResponse": false,
17245
18474
  "bodyRequired": false,