@pidgeon-ai/cli 1.8.5 → 1.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/README.md +8 -0
- package/dist/{chunk-QVT6JKM6.js → chunk-4KV65KM4.js} +181 -3
- package/dist/chunk-4KV65KM4.js.map +1 -0
- package/dist/{chunk-OKWYDA7G.js → chunk-6FBYJ62K.js} +40 -12
- package/dist/chunk-6FBYJ62K.js.map +1 -0
- package/dist/cli.js +9 -4
- package/dist/cli.js.map +1 -1
- package/dist/commands.gen.d.ts +3 -1
- package/dist/commands.gen.js +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.js +2 -2
- package/package.json +2 -2
- package/dist/chunk-OKWYDA7G.js.map +0 -1
- package/dist/chunk-QVT6JKM6.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands.gen.ts"],"sourcesContent":["// This file is generated by `pnpm cli:commands`. Do not edit it.\n//\n// One command per operation in `public/openapi.json`. See\n// `scripts/cli-commands.ts` for why the group prefix is stripped here and\n// nowhere else.\n\nexport type FlagKind = 'string' | 'number' | 'boolean' | 'list' | 'json';\n\nexport interface Flag {\n name: string;\n kind: FlagKind;\n required: boolean;\n where: 'path' | 'query' | 'body' | 'header';\n describe?: string;\n /** The values the contract allows, where it names them. */\n choices?: string[];\n /** The header's own spelling, for a `header` flag. */\n header?: string;\n}\n\nexport interface Command {\n group: string;\n name: string;\n operationId: string;\n method: string;\n path: string;\n summary: string;\n flags: Flag[];\n}\n\nexport const COMMANDS: Command[] = [\n {\n \"group\": \"agent\",\n \"name\": \"attachHuman\",\n \"operationId\": \"agentAttachHuman\",\n \"method\": \"POST\",\n \"path\": \"/agent/human\",\n \"summary\": \"Name the human for a signup\",\n \"flags\": [\n {\n \"name\": \"signup_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\",\n \"describe\": \"From the signup this is finishing.\"\n },\n {\n \"name\": \"human_email\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\",\n \"describe\": \"A person who can be reached. They receive the code that finishes the signup.\"\n }\n ]\n },\n {\n \"group\": \"agent\",\n \"name\": \"signUp\",\n \"operationId\": \"agentSignUp\",\n \"method\": \"POST\",\n \"path\": \"/agent/signup\",\n \"summary\": \"Sign an agent up\",\n \"flags\": [\n {\n \"name\": \"username\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\",\n \"describe\": \"The local part you want on the shared domain.\"\n },\n {\n \"name\": \"human_email\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\",\n \"describe\": \"A person who can be reached. They receive the code that finishes the signup.\"\n },\n {\n \"name\": \"source\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"agent\",\n \"name\": \"verify\",\n \"operationId\": \"agentVerify\",\n \"method\": \"POST\",\n \"path\": \"/agent/verify\",\n \"summary\": \"Verify an agent with the human’s code\",\n \"flags\": [\n {\n \"name\": \"signup_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\",\n \"describe\": \"From the signup this is finishing.\"\n },\n {\n \"name\": \"code\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"appPasswords\",\n \"name\": \"create\",\n \"operationId\": \"appPasswordsCreate\",\n \"method\": \"POST\",\n \"path\": \"/app-passwords\",\n \"summary\": \"Issue IMAP and SMTP credentials for one address\",\n \"flags\": [\n {\n \"name\": \"identity_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\",\n \"describe\": \"The address this belongs to.\"\n },\n {\n \"name\": \"name\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"appPasswords\",\n \"name\": \"list\",\n \"operationId\": \"appPasswordsList\",\n \"method\": \"GET\",\n \"path\": \"/app-passwords\",\n \"summary\": \"List the devices that reach one address\",\n \"flags\": [\n {\n \"name\": \"identity_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"appPasswords\",\n \"name\": \"revoke\",\n \"operationId\": \"appPasswordsRevoke\",\n \"method\": \"DELETE\",\n \"path\": \"/app-passwords/{id}\",\n \"summary\": \"Revoke an app password\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"attachments\",\n \"name\": \"downloadUrl\",\n \"operationId\": \"attachmentsDownloadUrl\",\n \"method\": \"GET\",\n \"path\": \"/attachments/{id}\",\n \"summary\": \"Get a download link for an attachment\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"attachments\",\n \"name\": \"text\",\n \"operationId\": \"attachmentsText\",\n \"method\": \"GET\",\n \"path\": \"/attachments/{id}/text\",\n \"summary\": \"Read a text attachment\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"body\",\n \"kind\": \"string\",\n \"choices\": [\n \"original\",\n \"clean\"\n ],\n \"required\": false,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"attachments\",\n \"name\": \"upload\",\n \"operationId\": \"attachmentsUpload\",\n \"method\": \"POST\",\n \"path\": \"/attachments\",\n \"summary\": \"Upload a file to send\",\n \"flags\": []\n },\n {\n \"group\": \"calendar\",\n \"name\": \"createEvent\",\n \"operationId\": \"calendarCreateEvent\",\n \"method\": \"POST\",\n \"path\": \"/identities/{id}/calendar/events\",\n \"summary\": \"Put something on the calendar\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"idempotency-key\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.\",\n \"header\": \"Idempotency-Key\"\n },\n {\n \"name\": \"title\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\"\n },\n {\n \"name\": \"start\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\"\n },\n {\n \"name\": \"end\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\"\n },\n {\n \"name\": \"timezone\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"An IANA name, like `Europe/Lisbon`. The times above are read in it.\"\n },\n {\n \"name\": \"all_day\",\n \"kind\": \"boolean\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"description\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"location\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"status\",\n \"kind\": \"string\",\n \"choices\": [\n \"confirmed\",\n \"tentative\",\n \"cancelled\"\n ],\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"metadata\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"attendees\",\n \"kind\": \"json\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"send_invites\",\n \"kind\": \"boolean\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"recurrence\",\n \"kind\": \"json\",\n \"required\": false,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"calendar\",\n \"name\": \"deleteEvent\",\n \"operationId\": \"calendarDeleteEvent\",\n \"method\": \"DELETE\",\n \"path\": \"/identities/{id}/calendar/events/{eventId}\",\n \"summary\": \"Take it off the calendar\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"eventId\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"mode\",\n \"kind\": \"string\",\n \"choices\": [\n \"single\",\n \"future\"\n ],\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"if-match\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"The `etag` you last read. A stale one is a `409` naming the current version — two agents on one mailbox is the case this product is for, and last-write-wins loses a meeting.\",\n \"header\": \"If-Match\"\n },\n {\n \"name\": \"idempotency-key\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.\",\n \"header\": \"Idempotency-Key\"\n }\n ]\n },\n {\n \"group\": \"calendar\",\n \"name\": \"get\",\n \"operationId\": \"calendarGet\",\n \"method\": \"GET\",\n \"path\": \"/identities/{id}/calendar\",\n \"summary\": \"A mailbox’s calendar\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"calendar\",\n \"name\": \"getAgenda\",\n \"operationId\": \"calendarGetAgenda\",\n \"method\": \"GET\",\n \"path\": \"/identities/{id}/calendar/agenda\",\n \"summary\": \"What is on, in a window, in order\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"after\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"before\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"include_overlapping\",\n \"kind\": \"string\",\n \"choices\": [\n \"true\",\n \"false\"\n ],\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"limit\",\n \"kind\": \"number\",\n \"required\": false,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"calendar\",\n \"name\": \"getEvent\",\n \"operationId\": \"calendarGetEvent\",\n \"method\": \"GET\",\n \"path\": \"/identities/{id}/calendar/events/{eventId}\",\n \"summary\": \"One event\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"eventId\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"calendar\",\n \"name\": \"listEventInstances\",\n \"operationId\": \"calendarListEventInstances\",\n \"method\": \"GET\",\n \"path\": \"/identities/{id}/calendar/events/{eventId}/instances\",\n \"summary\": \"The dates a series actually happens\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"eventId\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"after\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"before\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"limit\",\n \"kind\": \"number\",\n \"required\": false,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"calendar\",\n \"name\": \"listEvents\",\n \"operationId\": \"calendarListEvents\",\n \"method\": \"GET\",\n \"path\": \"/identities/{id}/calendar/events\",\n \"summary\": \"Everything on the calendar\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"limit\",\n \"kind\": \"number\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"cursor\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\",\n \"describe\": \"From a previous page’s `next_cursor`. Opaque — do not parse it.\"\n }\n ]\n },\n {\n \"group\": \"calendar\",\n \"name\": \"respondToEvent\",\n \"operationId\": \"calendarRespondToEvent\",\n \"method\": \"POST\",\n \"path\": \"/identities/{id}/calendar/events/{eventId}/respond\",\n \"summary\": \"Answer a meeting from the calendar\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"eventId\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"if-match\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"The `etag` you last read. A stale one is a `409` naming the current version — two agents on one mailbox is the case this product is for, and last-write-wins loses a meeting.\",\n \"header\": \"If-Match\"\n },\n {\n \"name\": \"idempotency-key\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.\",\n \"header\": \"Idempotency-Key\"\n },\n {\n \"name\": \"status\",\n \"kind\": \"string\",\n \"choices\": [\n \"accepted\",\n \"declined\",\n \"tentative\"\n ],\n \"required\": true,\n \"where\": \"body\"\n },\n {\n \"name\": \"comment\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"send_reply\",\n \"kind\": \"boolean\",\n \"required\": false,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"calendar\",\n \"name\": \"update\",\n \"operationId\": \"calendarUpdate\",\n \"method\": \"PATCH\",\n \"path\": \"/identities/{id}/calendar\",\n \"summary\": \"Set the default time zone\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"if-match\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"The `etag` you last read. A stale one is a `409` naming the current version — two agents on one mailbox is the case this product is for, and last-write-wins loses a meeting.\",\n \"header\": \"If-Match\"\n },\n {\n \"name\": \"timezone\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\",\n \"describe\": \"An IANA name, like `Europe/Lisbon`. The times above are read in it.\"\n }\n ]\n },\n {\n \"group\": \"calendar\",\n \"name\": \"updateEvent\",\n \"operationId\": \"calendarUpdateEvent\",\n \"method\": \"PATCH\",\n \"path\": \"/identities/{id}/calendar/events/{eventId}\",\n \"summary\": \"Change an event\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"eventId\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"mode\",\n \"kind\": \"string\",\n \"choices\": [\n \"single\",\n \"future\"\n ],\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"if-match\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"The `etag` you last read. A stale one is a `409` naming the current version — two agents on one mailbox is the case this product is for, and last-write-wins loses a meeting.\",\n \"header\": \"If-Match\"\n },\n {\n \"name\": \"idempotency-key\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.\",\n \"header\": \"Idempotency-Key\"\n },\n {\n \"name\": \"title\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"start\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"end\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"timezone\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"An IANA name, like `Europe/Lisbon`. The times above are read in it.\"\n },\n {\n \"name\": \"all_day\",\n \"kind\": \"boolean\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"description\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"location\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"status\",\n \"kind\": \"string\",\n \"choices\": [\n \"confirmed\",\n \"tentative\",\n \"cancelled\"\n ],\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"metadata\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"attendees\",\n \"kind\": \"json\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"recurrence\",\n \"kind\": \"json\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"send_invites\",\n \"kind\": \"boolean\",\n \"required\": false,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"domains\",\n \"name\": \"create\",\n \"operationId\": \"domainsCreate\",\n \"method\": \"POST\",\n \"path\": \"/domains\",\n \"summary\": \"Connect a domain\",\n \"flags\": [\n {\n \"name\": \"idempotency-key\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.\",\n \"header\": \"Idempotency-Key\"\n },\n {\n \"name\": \"domain\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\",\n \"describe\": \"A domain name you own, or the shared one. An alternative to `domain_id`.\"\n },\n {\n \"name\": \"inbound_enabled\",\n \"kind\": \"boolean\",\n \"required\": false,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"domains\",\n \"name\": \"delete\",\n \"operationId\": \"domainsDelete\",\n \"method\": \"DELETE\",\n \"path\": \"/domains/{id}\",\n \"summary\": \"Disconnect a domain\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"domains\",\n \"name\": \"get\",\n \"operationId\": \"domainsGet\",\n \"method\": \"GET\",\n \"path\": \"/domains/{id}\",\n \"summary\": \"Fetch one domain, with the state of each record\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"domains\",\n \"name\": \"getSetupLink\",\n \"operationId\": \"domainsGetSetupLink\",\n \"method\": \"GET\",\n \"path\": \"/domains/{id}/setup-link\",\n \"summary\": \"One-click DNS setup, when the provider supports it\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"template\",\n \"kind\": \"string\",\n \"choices\": [\n \"mail\",\n \"mx\"\n ],\n \"required\": false,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"domains\",\n \"name\": \"list\",\n \"operationId\": \"domainsList\",\n \"method\": \"GET\",\n \"path\": \"/domains\",\n \"summary\": \"List domains\",\n \"flags\": [\n {\n \"name\": \"limit\",\n \"kind\": \"number\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"cursor\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\",\n \"describe\": \"From a previous page’s `next_cursor`. Opaque — do not parse it.\"\n }\n ]\n },\n {\n \"group\": \"domains\",\n \"name\": \"update\",\n \"operationId\": \"domainsUpdate\",\n \"method\": \"PATCH\",\n \"path\": \"/domains/{id}\",\n \"summary\": \"Turn the catch-all on or off\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"catch_all_enabled\",\n \"kind\": \"boolean\",\n \"required\": true,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"domains\",\n \"name\": \"verify\",\n \"operationId\": \"domainsVerify\",\n \"method\": \"POST\",\n \"path\": \"/domains/{id}/verify\",\n \"summary\": \"Check the zone again\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"domains\",\n \"name\": \"zoneFile\",\n \"operationId\": \"domainsZoneFile\",\n \"method\": \"GET\",\n \"path\": \"/domains/{id}/zone-file\",\n \"summary\": \"The records as a zone file\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"drafts\",\n \"name\": \"cancelSchedule\",\n \"operationId\": \"draftsCancelSchedule\",\n \"method\": \"DELETE\",\n \"path\": \"/drafts/{id}/schedule\",\n \"summary\": \"Back to being an ordinary draft\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"drafts\",\n \"name\": \"create\",\n \"operationId\": \"draftsCreate\",\n \"method\": \"POST\",\n \"path\": \"/drafts\",\n \"summary\": \"Write one without sending it\",\n \"flags\": [\n {\n \"name\": \"idempotency-key\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.\",\n \"header\": \"Idempotency-Key\"\n },\n {\n \"name\": \"identity_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\",\n \"describe\": \"The address this belongs to.\"\n },\n {\n \"name\": \"from\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"An address on a domain you own, and one this key may send from.\"\n },\n {\n \"name\": \"to\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"One address or several. A string is accepted for the single case.\"\n },\n {\n \"name\": \"cc\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Copied, and visible to everybody who receives the message.\"\n },\n {\n \"name\": \"bcc\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Copied, and visible to nobody else.\"\n },\n {\n \"name\": \"subject\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Left off a reply, where the thread already has one.\"\n },\n {\n \"name\": \"text\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The plain-text body. Send this even when you send `html` — some clients only read it.\"\n },\n {\n \"name\": \"in_reply_to_message_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The same field as `in_reply_to`, under the name this endpoint has always used. Both names work on both endpoints; reach for `in_reply_to`.\"\n },\n {\n \"name\": \"in_reply_to\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The message being answered. Keeps the conversation together in the recipient’s client too.\"\n },\n {\n \"name\": \"attachment_ids\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Ids from `POST /attachments`, uploaded before the message that carries them. Up to 20.\"\n }\n ]\n },\n {\n \"group\": \"drafts\",\n \"name\": \"delete\",\n \"operationId\": \"draftsDelete\",\n \"method\": \"DELETE\",\n \"path\": \"/drafts/{id}\",\n \"summary\": \"Throw it away\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"drafts\",\n \"name\": \"get\",\n \"operationId\": \"draftsGet\",\n \"method\": \"GET\",\n \"path\": \"/drafts/{id}\",\n \"summary\": \"Fetch one draft\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"drafts\",\n \"name\": \"list\",\n \"operationId\": \"draftsList\",\n \"method\": \"GET\",\n \"path\": \"/drafts\",\n \"summary\": \"Every draft in one mailbox\",\n \"flags\": [\n {\n \"name\": \"identity_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"query\"\n },\n {\n \"name\": \"limit\",\n \"kind\": \"number\",\n \"required\": false,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"drafts\",\n \"name\": \"removeAttachment\",\n \"operationId\": \"draftsRemoveAttachment\",\n \"method\": \"DELETE\",\n \"path\": \"/drafts/{id}/attachments/{attachmentId}\",\n \"summary\": \"Take a file off a draft\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"attachmentId\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"drafts\",\n \"name\": \"schedule\",\n \"operationId\": \"draftsSchedule\",\n \"method\": \"POST\",\n \"path\": \"/drafts/{id}/schedule\",\n \"summary\": \"Send it later\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"idempotency-key\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.\",\n \"header\": \"Idempotency-Key\"\n },\n {\n \"name\": \"send_at\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"drafts\",\n \"name\": \"send\",\n \"operationId\": \"draftsSend\",\n \"method\": \"POST\",\n \"path\": \"/drafts/{id}/send\",\n \"summary\": \"Send what is stored\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"idempotency-key\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.\",\n \"header\": \"Idempotency-Key\"\n }\n ]\n },\n {\n \"group\": \"drafts\",\n \"name\": \"update\",\n \"operationId\": \"draftsUpdate\",\n \"method\": \"PATCH\",\n \"path\": \"/drafts/{id}\",\n \"summary\": \"Change some of it, and leave the rest\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"from\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"An address on a domain you own, and one this key may send from.\"\n },\n {\n \"name\": \"to\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"One address or several. A string is accepted for the single case.\"\n },\n {\n \"name\": \"cc\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Copied, and visible to everybody who receives the message.\"\n },\n {\n \"name\": \"bcc\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Copied, and visible to nobody else.\"\n },\n {\n \"name\": \"subject\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Left off a reply, where the thread already has one.\"\n },\n {\n \"name\": \"text\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The plain-text body. Send this even when you send `html` — some clients only read it.\"\n },\n {\n \"name\": \"attachment_ids\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Ids from `POST /attachments`, uploaded before the message that carries them. Up to 20.\"\n }\n ]\n },\n {\n \"group\": \"events\",\n \"name\": \"get\",\n \"operationId\": \"eventsGet\",\n \"method\": \"GET\",\n \"path\": \"/events/{id}\",\n \"summary\": \"Fetch one event\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"events\",\n \"name\": \"list\",\n \"operationId\": \"eventsList\",\n \"method\": \"GET\",\n \"path\": \"/events\",\n \"summary\": \"List events\",\n \"flags\": [\n {\n \"name\": \"limit\",\n \"kind\": \"number\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"cursor\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\",\n \"describe\": \"From a previous page’s `next_cursor`. Opaque — do not parse it.\"\n },\n {\n \"name\": \"type\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"identity_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"after\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"events\",\n \"name\": \"socket\",\n \"operationId\": \"eventsSocket\",\n \"method\": \"GET\",\n \"path\": \"/events/socket\",\n \"summary\": \"Events over a WebSocket\",\n \"flags\": [\n {\n \"name\": \"limit\",\n \"kind\": \"number\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"cursor\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\",\n \"describe\": \"From a previous page’s `next_cursor`. Opaque — do not parse it.\"\n },\n {\n \"name\": \"type\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"identity_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"after\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"events\",\n \"name\": \"stream\",\n \"operationId\": \"eventsStream\",\n \"method\": \"GET\",\n \"path\": \"/events/stream\",\n \"summary\": \"Stream events as they happen\",\n \"flags\": [\n {\n \"name\": \"limit\",\n \"kind\": \"number\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"cursor\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\",\n \"describe\": \"From a previous page’s `next_cursor`. Opaque — do not parse it.\"\n },\n {\n \"name\": \"type\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"identity_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"after\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"export\",\n \"name\": \"mail\",\n \"operationId\": \"exportMail\",\n \"method\": \"GET\",\n \"path\": \"/export\",\n \"summary\": \"Export mail as mbox\",\n \"flags\": [\n {\n \"name\": \"identity_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"identities\",\n \"name\": \"accessCreate\",\n \"operationId\": \"identitiesAccessCreate\",\n \"method\": \"POST\",\n \"path\": \"/identities/{id}/access\",\n \"summary\": \"Grant access\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"user_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"api_key_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"everyone\",\n \"kind\": \"boolean\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"access\",\n \"kind\": \"string\",\n \"choices\": [\n \"read\",\n \"send\",\n \"admin\"\n ],\n \"required\": true,\n \"where\": \"body\",\n \"describe\": \"What a key may do. Give an agent the narrowest one that works.\"\n }\n ]\n },\n {\n \"group\": \"identities\",\n \"name\": \"accessDelete\",\n \"operationId\": \"identitiesAccessDelete\",\n \"method\": \"DELETE\",\n \"path\": \"/identities/{id}/access\",\n \"summary\": \"Revoke access\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"grant_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"identities\",\n \"name\": \"accessGet\",\n \"operationId\": \"identitiesAccessGet\",\n \"method\": \"GET\",\n \"path\": \"/identities/{id}/access\",\n \"summary\": \"Who can reach this address\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"identities\",\n \"name\": \"create\",\n \"operationId\": \"identitiesCreate\",\n \"method\": \"POST\",\n \"path\": \"/identities\",\n \"summary\": \"Create an address\",\n \"flags\": [\n {\n \"name\": \"idempotency-key\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.\",\n \"header\": \"Idempotency-Key\"\n },\n {\n \"name\": \"domain_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"From `GET /domains`, or the `domain_id` on any address you already have.\"\n },\n {\n \"name\": \"domain\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"A domain name you own, or the shared one. An alternative to `domain_id`.\"\n },\n {\n \"name\": \"address\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"A whole address — the local part and the domain in one. An alternative to the other two.\"\n },\n {\n \"name\": \"local_part\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Everything before the `@`.\"\n },\n {\n \"name\": \"display_name\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The name a recipient sees beside the address.\"\n },\n {\n \"name\": \"inbox\",\n \"kind\": \"boolean\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Whether it keeps mail. With an inbox what arrives is stored and a person can open it; without one it becomes an event and your webhook fires. Defaults from `type`.\"\n },\n {\n \"name\": \"type\",\n \"kind\": \"string\",\n \"choices\": [\n \"human\",\n \"team\",\n \"application\",\n \"workflow\",\n \"agent\"\n ],\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"A label for what this address is for. It does not change what the address can do — that is `inbox`.\"\n },\n {\n \"name\": \"mode\",\n \"kind\": \"string\",\n \"choices\": [\n \"human\",\n \"automated\",\n \"hybrid\"\n ],\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Who answers: a person, software, or both.\"\n },\n {\n \"name\": \"expires_at\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"When it stops accepting mail. Expiry suspends; it never deletes, so the correspondence survives.\"\n },\n {\n \"name\": \"send_policy\",\n \"kind\": \"string\",\n \"choices\": [\n \"open\",\n \"reply_only\",\n \"list\"\n ],\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Who it may write to. `reply_only` makes an address structurally unable to start a conversation with a stranger.\"\n },\n {\n \"name\": \"tenant_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Your own opaque grouping — a customer id, whatever your side calls it. Never parsed here.\"\n },\n {\n \"name\": \"pod_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The pod this belongs to — your account’s default when you name none. A pod is a sending boundary: mail from it lands on its own reputation, so one of your customers cannot damage another’s delivery. It does not change what an address can do, and no key is scoped to one.\"\n }\n ]\n },\n {\n \"group\": \"identities\",\n \"name\": \"delete\",\n \"operationId\": \"identitiesDelete\",\n \"method\": \"DELETE\",\n \"path\": \"/identities/{id}\",\n \"summary\": \"Delete an address\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"identities\",\n \"name\": \"get\",\n \"operationId\": \"identitiesGet\",\n \"method\": \"GET\",\n \"path\": \"/identities/{id}\",\n \"summary\": \"Fetch one address\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"identities\",\n \"name\": \"list\",\n \"operationId\": \"identitiesList\",\n \"method\": \"GET\",\n \"path\": \"/identities\",\n \"summary\": \"List addresses\",\n \"flags\": [\n {\n \"name\": \"limit\",\n \"kind\": \"number\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"cursor\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\",\n \"describe\": \"From a previous page’s `next_cursor`. Opaque — do not parse it.\"\n },\n {\n \"name\": \"tenant_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"pod_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"identities\",\n \"name\": \"receiveRulesCreate\",\n \"operationId\": \"identitiesReceiveRulesCreate\",\n \"method\": \"POST\",\n \"path\": \"/identities/{id}/receive-rules\",\n \"summary\": \"Decide what happens to a sender\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"action\",\n \"kind\": \"string\",\n \"choices\": [\n \"reject\",\n \"spam\",\n \"trash\",\n \"archive\",\n \"inbox\"\n ],\n \"required\": true,\n \"where\": \"body\"\n },\n {\n \"name\": \"value\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"identities\",\n \"name\": \"receiveRulesDelete\",\n \"operationId\": \"identitiesReceiveRulesDelete\",\n \"method\": \"DELETE\",\n \"path\": \"/identities/{id}/receive-rules\",\n \"summary\": \"Remove a rule\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"rule_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"identities\",\n \"name\": \"receiveRulesGet\",\n \"operationId\": \"identitiesReceiveRulesGet\",\n \"method\": \"GET\",\n \"path\": \"/identities/{id}/receive-rules\",\n \"summary\": \"Who may write to this address\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"identities\",\n \"name\": \"sendRulesCreate\",\n \"operationId\": \"identitiesSendRulesCreate\",\n \"method\": \"POST\",\n \"path\": \"/identities/{id}/send-rules\",\n \"summary\": \"Allow or block a recipient\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"effect\",\n \"kind\": \"string\",\n \"choices\": [\n \"allow\",\n \"block\"\n ],\n \"required\": true,\n \"where\": \"body\"\n },\n {\n \"name\": \"value\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"identities\",\n \"name\": \"sendRulesDelete\",\n \"operationId\": \"identitiesSendRulesDelete\",\n \"method\": \"DELETE\",\n \"path\": \"/identities/{id}/send-rules\",\n \"summary\": \"Remove a rule\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"rule_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"identities\",\n \"name\": \"sendRulesGet\",\n \"operationId\": \"identitiesSendRulesGet\",\n \"method\": \"GET\",\n \"path\": \"/identities/{id}/send-rules\",\n \"summary\": \"What this address may write to\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"identities\",\n \"name\": \"suspendTenant\",\n \"operationId\": \"identitiesSuspendTenant\",\n \"method\": \"POST\",\n \"path\": \"/tenants/{id}/suspend\",\n \"summary\": \"Offboard one of your customers\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"identities\",\n \"name\": \"update\",\n \"operationId\": \"identitiesUpdate\",\n \"method\": \"PATCH\",\n \"path\": \"/identities/{id}\",\n \"summary\": \"Update an address\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"display_name\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The name a recipient sees beside the address.\"\n },\n {\n \"name\": \"mode\",\n \"kind\": \"string\",\n \"choices\": [\n \"human\",\n \"automated\",\n \"hybrid\"\n ],\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Who answers: a person, software, or both.\"\n },\n {\n \"name\": \"capabilities\",\n \"kind\": \"json\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"status\",\n \"kind\": \"string\",\n \"choices\": [\n \"active\",\n \"suspended\",\n \"archived\"\n ],\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"expires_at\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"When it stops accepting mail. Expiry suspends; it never deletes, so the correspondence survives.\"\n },\n {\n \"name\": \"send_policy\",\n \"kind\": \"string\",\n \"choices\": [\n \"open\",\n \"reply_only\",\n \"list\"\n ],\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Who it may write to. `reply_only` makes an address structurally unable to start a conversation with a stranger.\"\n },\n {\n \"name\": \"tenant_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Your own opaque grouping — a customer id, whatever your side calls it. Never parsed here.\"\n },\n {\n \"name\": \"pod_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The pod this belongs to — your account’s default when you name none. A pod is a sending boundary: mail from it lands on its own reputation, so one of your customers cannot damage another’s delivery. It does not change what an address can do, and no key is scoped to one.\"\n }\n ]\n },\n {\n \"group\": \"keys\",\n \"name\": \"create\",\n \"operationId\": \"keysCreate\",\n \"method\": \"POST\",\n \"path\": \"/api-keys\",\n \"summary\": \"Mint a key\",\n \"flags\": [\n {\n \"name\": \"name\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\"\n },\n {\n \"name\": \"identity_ids\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"pod_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The pod this belongs to — your account’s default when you name none. A pod is a sending boundary: mail from it lands on its own reputation, so one of your customers cannot damage another’s delivery. It does not change what an address can do, and no key is scoped to one.\"\n },\n {\n \"name\": \"access\",\n \"kind\": \"string\",\n \"choices\": [\n \"read\",\n \"send\",\n \"admin\"\n ],\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"What a key may do. Give an agent the narrowest one that works.\"\n },\n {\n \"name\": \"expires_at\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"When it stops accepting mail. Expiry suspends; it never deletes, so the correspondence survives.\"\n }\n ]\n },\n {\n \"group\": \"keys\",\n \"name\": \"get\",\n \"operationId\": \"keysGet\",\n \"method\": \"GET\",\n \"path\": \"/api-keys/{id}\",\n \"summary\": \"Fetch one key\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"keys\",\n \"name\": \"list\",\n \"operationId\": \"keysList\",\n \"method\": \"GET\",\n \"path\": \"/api-keys\",\n \"summary\": \"List the keys in this workspace\",\n \"flags\": []\n },\n {\n \"group\": \"keys\",\n \"name\": \"revoke\",\n \"operationId\": \"keysRevoke\",\n \"method\": \"DELETE\",\n \"path\": \"/api-keys/{id}\",\n \"summary\": \"Revoke a key, and everything it minted\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"keys\",\n \"name\": \"update\",\n \"operationId\": \"keysUpdate\",\n \"method\": \"PATCH\",\n \"path\": \"/api-keys/{id}\",\n \"summary\": \"Rename a key\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"name\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"labels\",\n \"name\": \"create\",\n \"operationId\": \"labelsCreate\",\n \"method\": \"POST\",\n \"path\": \"/labels\",\n \"summary\": \"Create a label\",\n \"flags\": [\n {\n \"name\": \"idempotency-key\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.\",\n \"header\": \"Idempotency-Key\"\n },\n {\n \"name\": \"identity_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\",\n \"describe\": \"The address this belongs to.\"\n },\n {\n \"name\": \"name\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\"\n },\n {\n \"name\": \"colour\",\n \"kind\": \"string\",\n \"choices\": [\n \"slate\",\n \"red\",\n \"amber\",\n \"green\",\n \"teal\",\n \"blue\",\n \"violet\",\n \"pink\"\n ],\n \"required\": false,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"labels\",\n \"name\": \"delete\",\n \"operationId\": \"labelsDelete\",\n \"method\": \"DELETE\",\n \"path\": \"/labels/{id}\",\n \"summary\": \"Delete a label\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"labels\",\n \"name\": \"list\",\n \"operationId\": \"labelsList\",\n \"method\": \"GET\",\n \"path\": \"/labels\",\n \"summary\": \"List labels\",\n \"flags\": [\n {\n \"name\": \"identity_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"labels\",\n \"name\": \"update\",\n \"operationId\": \"labelsUpdate\",\n \"method\": \"PATCH\",\n \"path\": \"/labels/{id}\",\n \"summary\": \"Rename or recolour a label\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"name\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"colour\",\n \"kind\": \"string\",\n \"choices\": [\n \"slate\",\n \"red\",\n \"amber\",\n \"green\",\n \"teal\",\n \"blue\",\n \"violet\",\n \"pink\"\n ],\n \"required\": false,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"mailboxes\",\n \"name\": \"changes\",\n \"operationId\": \"mailboxesChanges\",\n \"method\": \"GET\",\n \"path\": \"/mailboxes/changes\",\n \"summary\": \"What changed since you last looked\",\n \"flags\": [\n {\n \"name\": \"identity_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"query\"\n },\n {\n \"name\": \"since\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"query\"\n },\n {\n \"name\": \"limit\",\n \"kind\": \"number\",\n \"required\": false,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"mailboxes\",\n \"name\": \"emptyTrash\",\n \"operationId\": \"mailboxesEmptyTrash\",\n \"method\": \"DELETE\",\n \"path\": \"/mailboxes/{folder}\",\n \"summary\": \"Empty the trash\",\n \"flags\": [\n {\n \"name\": \"folder\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"identity_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"mailboxes\",\n \"name\": \"list\",\n \"operationId\": \"mailboxesList\",\n \"method\": \"GET\",\n \"path\": \"/mailboxes\",\n \"summary\": \"List the folders of one mailbox\",\n \"flags\": [\n {\n \"name\": \"identity_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"mailboxes\",\n \"name\": \"listFolder\",\n \"operationId\": \"mailboxesListFolder\",\n \"method\": \"GET\",\n \"path\": \"/mailboxes/{folder}\",\n \"summary\": \"List one folder\",\n \"flags\": [\n {\n \"name\": \"folder\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"identity_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"query\"\n },\n {\n \"name\": \"limit\",\n \"kind\": \"number\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"cursor\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\",\n \"describe\": \"From a previous page’s `next_cursor`. Opaque — do not parse it.\"\n },\n {\n \"name\": \"label_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"me\",\n \"name\": \"get\",\n \"operationId\": \"meGet\",\n \"method\": \"GET\",\n \"path\": \"/me\",\n \"summary\": \"What this key is, and what it may do\",\n \"flags\": []\n },\n {\n \"group\": \"messages\",\n \"name\": \"act\",\n \"operationId\": \"messagesAct\",\n \"method\": \"POST\",\n \"path\": \"/messages/actions\",\n \"summary\": \"Apply one action to many conversations\",\n \"flags\": [\n {\n \"name\": \"message_ids\",\n \"kind\": \"list\",\n \"required\": true,\n \"where\": \"body\"\n },\n {\n \"name\": \"action\",\n \"kind\": \"string\",\n \"choices\": [\n \"read\",\n \"unread\",\n \"star\",\n \"unstar\",\n \"archive\",\n \"unarchive\",\n \"delete\",\n \"restore\",\n \"spam\",\n \"not_spam\",\n \"delete_forever\"\n ],\n \"required\": true,\n \"where\": \"body\",\n \"describe\": \"`read` and `unread` are refused for an API key: read state belongs to a person and a key is not one. Every other action works.\"\n }\n ]\n },\n {\n \"group\": \"messages\",\n \"name\": \"await\",\n \"operationId\": \"messagesAwait\",\n \"method\": \"GET\",\n \"path\": \"/messages/await\",\n \"summary\": \"Wait for the next message\",\n \"flags\": [\n {\n \"name\": \"identity_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"query\"\n },\n {\n \"name\": \"body\",\n \"kind\": \"string\",\n \"choices\": [\n \"original\",\n \"clean\"\n ],\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"from\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"subject_contains\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"has_code\",\n \"kind\": \"string\",\n \"choices\": [\n \"true\",\n \"false\"\n ],\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"include_spam\",\n \"kind\": \"string\",\n \"choices\": [\n \"true\",\n \"false\"\n ],\n \"required\": false,\n \"where\": \"query\",\n \"describe\": \"Also return a matching message filed as spam. Without it, one is counted in `held_back` instead, with its id.\"\n },\n {\n \"name\": \"after\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\",\n \"describe\": \"Only messages that arrived after this: the `cursor` a previous call returned, or `now`. Without it, the wait first looks back 2 minutes and returns the newest matching message from then, so a code that beat you to the call is not missed.\"\n },\n {\n \"name\": \"timeout\",\n \"kind\": \"number\",\n \"required\": false,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"messages\",\n \"name\": \"forward\",\n \"operationId\": \"messagesForward\",\n \"method\": \"POST\",\n \"path\": \"/messages/{id}/forward\",\n \"summary\": \"Forward one message\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"idempotency-key\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.\",\n \"header\": \"Idempotency-Key\"\n },\n {\n \"name\": \"text\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The plain-text body. Send this even when you send `html` — some clients only read it.\"\n },\n {\n \"name\": \"html\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The rich body. Sanitised on the way in; scripts and remote content are removed.\"\n },\n {\n \"name\": \"to\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"One address or several. A string is accepted for the single case.\"\n },\n {\n \"name\": \"cc\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Copied, and visible to everybody who receives the message.\"\n },\n {\n \"name\": \"bcc\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Copied, and visible to nobody else.\"\n },\n {\n \"name\": \"attachment_ids\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Ids from `POST /attachments`, uploaded before the message that carries them. Up to 20.\"\n }\n ]\n },\n {\n \"group\": \"messages\",\n \"name\": \"get\",\n \"operationId\": \"messagesGet\",\n \"method\": \"GET\",\n \"path\": \"/messages/{id}\",\n \"summary\": \"Fetch one message\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"body\",\n \"kind\": \"string\",\n \"choices\": [\n \"original\",\n \"clean\"\n ],\n \"required\": false,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"messages\",\n \"name\": \"listInThread\",\n \"operationId\": \"messagesListInThread\",\n \"method\": \"GET\",\n \"path\": \"/messages\",\n \"summary\": \"List messages\",\n \"flags\": [\n {\n \"name\": \"limit\",\n \"kind\": \"number\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"cursor\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\",\n \"describe\": \"From a previous page’s `next_cursor`. Opaque — do not parse it.\"\n },\n {\n \"name\": \"thread_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"query\"\n },\n {\n \"name\": \"body\",\n \"kind\": \"string\",\n \"choices\": [\n \"original\",\n \"clean\"\n ],\n \"required\": false,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"messages\",\n \"name\": \"raw\",\n \"operationId\": \"messagesRaw\",\n \"method\": \"GET\",\n \"path\": \"/messages/{id}/raw\",\n \"summary\": \"The message as it arrived\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"messages\",\n \"name\": \"reply\",\n \"operationId\": \"messagesReply\",\n \"method\": \"POST\",\n \"path\": \"/messages/{id}/reply\",\n \"summary\": \"Reply to one message\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"idempotency-key\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.\",\n \"header\": \"Idempotency-Key\"\n },\n {\n \"name\": \"text\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The plain-text body. Send this even when you send `html` — some clients only read it.\"\n },\n {\n \"name\": \"html\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The rich body. Sanitised on the way in; scripts and remote content are removed.\"\n },\n {\n \"name\": \"to\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"One address or several. A string is accepted for the single case.\"\n },\n {\n \"name\": \"cc\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Copied, and visible to everybody who receives the message.\"\n },\n {\n \"name\": \"bcc\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Copied, and visible to nobody else.\"\n },\n {\n \"name\": \"attachment_ids\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Ids from `POST /attachments`, uploaded before the message that carries them. Up to 20.\"\n }\n ]\n },\n {\n \"group\": \"messages\",\n \"name\": \"replyAll\",\n \"operationId\": \"messagesReplyAll\",\n \"method\": \"POST\",\n \"path\": \"/messages/{id}/reply-all\",\n \"summary\": \"Reply to everybody on one message\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"idempotency-key\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.\",\n \"header\": \"Idempotency-Key\"\n },\n {\n \"name\": \"text\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The plain-text body. Send this even when you send `html` — some clients only read it.\"\n },\n {\n \"name\": \"html\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The rich body. Sanitised on the way in; scripts and remote content are removed.\"\n },\n {\n \"name\": \"to\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"One address or several. A string is accepted for the single case.\"\n },\n {\n \"name\": \"cc\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Copied, and visible to everybody who receives the message.\"\n },\n {\n \"name\": \"bcc\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Copied, and visible to nobody else.\"\n },\n {\n \"name\": \"attachment_ids\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Ids from `POST /attachments`, uploaded before the message that carries them. Up to 20.\"\n }\n ]\n },\n {\n \"group\": \"messages\",\n \"name\": \"respondToInvitation\",\n \"operationId\": \"messagesRespondToInvitation\",\n \"method\": \"POST\",\n \"path\": \"/messages/{id}/invitation/respond\",\n \"summary\": \"Accept, decline or tentatively accept a meeting\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"idempotency-key\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.\",\n \"header\": \"Idempotency-Key\"\n },\n {\n \"name\": \"status\",\n \"kind\": \"string\",\n \"choices\": [\n \"accepted\",\n \"declined\",\n \"tentative\"\n ],\n \"required\": true,\n \"where\": \"body\"\n },\n {\n \"name\": \"comment\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"messages\",\n \"name\": \"search\",\n \"operationId\": \"messagesSearch\",\n \"method\": \"GET\",\n \"path\": \"/messages/search\",\n \"summary\": \"Search messages\",\n \"flags\": [\n {\n \"name\": \"identity_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"q\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"in\",\n \"kind\": \"string\",\n \"choices\": [\n \"inbox\",\n \"starred\",\n \"sent\",\n \"drafts\",\n \"scheduled\",\n \"snoozed\",\n \"archive\",\n \"spam\",\n \"trash\",\n \"unauthenticated\"\n ],\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"from\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"to\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"has_attachment\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"is_unread\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"is_starred\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"label_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"limit\",\n \"kind\": \"number\",\n \"required\": false,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"messages\",\n \"name\": \"send\",\n \"operationId\": \"messagesSend\",\n \"method\": \"POST\",\n \"path\": \"/messages\",\n \"summary\": \"Send a message\",\n \"flags\": [\n {\n \"name\": \"idempotency-key\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.\",\n \"header\": \"Idempotency-Key\"\n },\n {\n \"name\": \"from\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\",\n \"describe\": \"An address on a domain you own, and one this key may send from.\"\n },\n {\n \"name\": \"to\",\n \"kind\": \"list\",\n \"required\": true,\n \"where\": \"body\",\n \"describe\": \"One address or several. A string is accepted for the single case.\"\n },\n {\n \"name\": \"cc\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Copied, and visible to everybody who receives the message.\"\n },\n {\n \"name\": \"bcc\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Copied, and visible to nobody else.\"\n },\n {\n \"name\": \"subject\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Left off a reply, where the thread already has one.\"\n },\n {\n \"name\": \"text\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The plain-text body. Send this even when you send `html` — some clients only read it.\"\n },\n {\n \"name\": \"html\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The rich body. Sanitised on the way in; scripts and remote content are removed.\"\n },\n {\n \"name\": \"attachment_ids\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Ids from `POST /attachments`, uploaded before the message that carries them. Up to 20.\"\n },\n {\n \"name\": \"in_reply_to\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The message being answered. Keeps the conversation together in the recipient’s client too.\"\n },\n {\n \"name\": \"in_reply_to_message_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The same field as `in_reply_to`, under the name this endpoint has always used. Both names work on both endpoints; reach for `in_reply_to`.\"\n }\n ]\n },\n {\n \"group\": \"messages\",\n \"name\": \"undo\",\n \"operationId\": \"messagesUndo\",\n \"method\": \"POST\",\n \"path\": \"/messages/undo\",\n \"summary\": \"Put an action back\",\n \"flags\": [\n {\n \"name\": \"undo\",\n \"kind\": \"list\",\n \"required\": true,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"messages\",\n \"name\": \"update\",\n \"operationId\": \"messagesUpdate\",\n \"method\": \"PATCH\",\n \"path\": \"/messages/{id}\",\n \"summary\": \"Change one conversation\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"is_read\",\n \"kind\": \"boolean\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Refused for an API key: read state belongs to a person and a key is not one. Archive the message, or track what you have seen with `GET /v1/mailboxes/changes`. A person signed in to the dashboard sets this.\"\n },\n {\n \"name\": \"is_starred\",\n \"kind\": \"boolean\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"folder\",\n \"kind\": \"string\",\n \"choices\": [\n \"inbox\",\n \"archive\",\n \"spam\",\n \"trash\"\n ],\n \"required\": false,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"metrics\",\n \"name\": \"query\",\n \"operationId\": \"metricsQuery\",\n \"method\": \"GET\",\n \"path\": \"/metrics\",\n \"summary\": \"What happened to the mail\",\n \"flags\": [\n {\n \"name\": \"days\",\n \"kind\": \"number\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"identity_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"pod_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"pods\",\n \"name\": \"create\",\n \"operationId\": \"podsCreate\",\n \"method\": \"POST\",\n \"path\": \"/pods\",\n \"summary\": \"Create a pod\",\n \"flags\": [\n {\n \"name\": \"idempotency-key\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.\",\n \"header\": \"Idempotency-Key\"\n },\n {\n \"name\": \"name\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\"\n },\n {\n \"name\": \"client_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Your own id for this pod. Carried and returned, never parsed.\"\n }\n ]\n },\n {\n \"group\": \"pods\",\n \"name\": \"get\",\n \"operationId\": \"podsGet\",\n \"method\": \"GET\",\n \"path\": \"/pods/{id}\",\n \"summary\": \"Fetch one pod\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"pods\",\n \"name\": \"list\",\n \"operationId\": \"podsList\",\n \"method\": \"GET\",\n \"path\": \"/pods\",\n \"summary\": \"List pods\",\n \"flags\": []\n },\n {\n \"group\": \"pods\",\n \"name\": \"update\",\n \"operationId\": \"podsUpdate\",\n \"method\": \"PATCH\",\n \"path\": \"/pods/{id}\",\n \"summary\": \"Rename a pod, or change its client id\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"name\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"client_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"Your own id for this pod. Carried and returned, never parsed.\"\n }\n ]\n },\n {\n \"group\": \"routing\",\n \"name\": \"create\",\n \"operationId\": \"routingCreate\",\n \"method\": \"POST\",\n \"path\": \"/routing-rules\",\n \"summary\": \"Route an address somewhere\",\n \"flags\": [\n {\n \"name\": \"idempotency-key\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.\",\n \"header\": \"Idempotency-Key\"\n }\n ]\n },\n {\n \"group\": \"routing\",\n \"name\": \"delete\",\n \"operationId\": \"routingDelete\",\n \"method\": \"DELETE\",\n \"path\": \"/routing-rules/{id}\",\n \"summary\": \"Delete a routing rule\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"routing\",\n \"name\": \"list\",\n \"operationId\": \"routingList\",\n \"method\": \"GET\",\n \"path\": \"/routing-rules\",\n \"summary\": \"List routing rules\",\n \"flags\": [\n {\n \"name\": \"domain_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"routing\",\n \"name\": \"update\",\n \"operationId\": \"routingUpdate\",\n \"method\": \"PATCH\",\n \"path\": \"/routing-rules/{id}\",\n \"summary\": \"Enable or disable a rule\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"status\",\n \"kind\": \"string\",\n \"choices\": [\n \"active\",\n \"disabled\"\n ],\n \"required\": true,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"threads\",\n \"name\": \"get\",\n \"operationId\": \"threadsGet\",\n \"method\": \"GET\",\n \"path\": \"/threads/{id}\",\n \"summary\": \"Read a conversation\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"threads\",\n \"name\": \"labelsCreate\",\n \"operationId\": \"threadsLabelsCreate\",\n \"method\": \"POST\",\n \"path\": \"/threads/{id}/labels\",\n \"summary\": \"Apply a label\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"label_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"threads\",\n \"name\": \"labelsDelete\",\n \"operationId\": \"threadsLabelsDelete\",\n \"method\": \"DELETE\",\n \"path\": \"/threads/{id}/labels\",\n \"summary\": \"Remove a label\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"label_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"threads\",\n \"name\": \"labelsGet\",\n \"operationId\": \"threadsLabelsGet\",\n \"method\": \"GET\",\n \"path\": \"/threads/{id}/labels\",\n \"summary\": \"The labels on a conversation\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"threads\",\n \"name\": \"list\",\n \"operationId\": \"threadsList\",\n \"method\": \"GET\",\n \"path\": \"/threads\",\n \"summary\": \"List threads\",\n \"flags\": [\n {\n \"name\": \"limit\",\n \"kind\": \"number\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"cursor\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\",\n \"describe\": \"From a previous page’s `next_cursor`. Opaque — do not parse it.\"\n },\n {\n \"name\": \"identity_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"status\",\n \"kind\": \"string\",\n \"choices\": [\n \"open\",\n \"waiting\",\n \"resolved\",\n \"human_review\"\n ],\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"owner_type\",\n \"kind\": \"string\",\n \"choices\": [\n \"human\",\n \"automation\",\n \"agent\"\n ],\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"assignee_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\",\n \"describe\": \"A person’s id, or `unassigned` for the queue nobody has taken.\"\n }\n ]\n },\n {\n \"group\": \"threads\",\n \"name\": \"update\",\n \"operationId\": \"threadsUpdate\",\n \"method\": \"PATCH\",\n \"path\": \"/threads/{id}\",\n \"summary\": \"Update a thread\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"status\",\n \"kind\": \"string\",\n \"choices\": [\n \"open\",\n \"waiting\",\n \"resolved\",\n \"human_review\"\n ],\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"owner_type\",\n \"kind\": \"string\",\n \"choices\": [\n \"human\",\n \"automation\",\n \"agent\"\n ],\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"assignee_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\"\n },\n {\n \"name\": \"reason\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"webhooks\",\n \"name\": \"create\",\n \"operationId\": \"webhooksCreate\",\n \"method\": \"POST\",\n \"path\": \"/webhooks\",\n \"summary\": \"Create a webhook\",\n \"flags\": [\n {\n \"name\": \"idempotency-key\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"header\",\n \"describe\": \"Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.\",\n \"header\": \"Idempotency-Key\"\n },\n {\n \"name\": \"url\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"body\",\n \"describe\": \"Where we POST. HTTPS, and it has to answer within a few seconds.\"\n },\n {\n \"name\": \"identity_id\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"body\",\n \"describe\": \"The address this belongs to.\"\n },\n {\n \"name\": \"event_types\",\n \"kind\": \"list\",\n \"required\": false,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"webhooks\",\n \"name\": \"delete\",\n \"operationId\": \"webhooksDelete\",\n \"method\": \"DELETE\",\n \"path\": \"/webhooks/{id}\",\n \"summary\": \"Delete a webhook\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"webhooks\",\n \"name\": \"deliveries\",\n \"operationId\": \"webhooksDeliveries\",\n \"method\": \"GET\",\n \"path\": \"/deliveries\",\n \"summary\": \"What happened to each event we tried to hand you\",\n \"flags\": [\n {\n \"name\": \"webhook_id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"query\"\n },\n {\n \"name\": \"limit\",\n \"kind\": \"number\",\n \"required\": false,\n \"where\": \"query\"\n }\n ]\n },\n {\n \"group\": \"webhooks\",\n \"name\": \"get\",\n \"operationId\": \"webhooksGet\",\n \"method\": \"GET\",\n \"path\": \"/webhooks/{id}\",\n \"summary\": \"Fetch one endpoint\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"webhooks\",\n \"name\": \"getHeaders\",\n \"operationId\": \"webhooksGetHeaders\",\n \"method\": \"GET\",\n \"path\": \"/webhooks/{id}/headers\",\n \"summary\": \"The headers this endpoint carries\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"webhooks\",\n \"name\": \"list\",\n \"operationId\": \"webhooksList\",\n \"method\": \"GET\",\n \"path\": \"/webhooks\",\n \"summary\": \"List webhooks\",\n \"flags\": [\n {\n \"name\": \"limit\",\n \"kind\": \"number\",\n \"required\": false,\n \"where\": \"query\"\n },\n {\n \"name\": \"cursor\",\n \"kind\": \"string\",\n \"required\": false,\n \"where\": \"query\",\n \"describe\": \"From a previous page’s `next_cursor`. Opaque — do not parse it.\"\n }\n ]\n },\n {\n \"group\": \"webhooks\",\n \"name\": \"replay\",\n \"operationId\": \"webhooksReplay\",\n \"method\": \"POST\",\n \"path\": \"/deliveries/{id}/replay\",\n \"summary\": \"Send it again\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n }\n ]\n },\n {\n \"group\": \"webhooks\",\n \"name\": \"update\",\n \"operationId\": \"webhooksUpdate\",\n \"method\": \"PATCH\",\n \"path\": \"/webhooks/{id}\",\n \"summary\": \"Turn an endpoint off, or back on\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"status\",\n \"kind\": \"string\",\n \"choices\": [\n \"active\",\n \"disabled\"\n ],\n \"required\": true,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"webhooks\",\n \"name\": \"updateHeaders\",\n \"operationId\": \"webhooksUpdateHeaders\",\n \"method\": \"PUT\",\n \"path\": \"/webhooks/{id}/headers\",\n \"summary\": \"Replace the headers this endpoint carries\",\n \"flags\": [\n {\n \"name\": \"id\",\n \"kind\": \"string\",\n \"required\": true,\n \"where\": \"path\"\n },\n {\n \"name\": \"headers\",\n \"kind\": \"json\",\n \"required\": false,\n \"where\": \"body\"\n }\n ]\n },\n {\n \"group\": \"workspace\",\n \"name\": \"get\",\n \"operationId\": \"workspaceGet\",\n \"method\": \"GET\",\n \"path\": \"/workspace\",\n \"summary\": \"Which account this key is for\",\n \"flags\": []\n },\n {\n \"group\": \"workspace\",\n \"name\": \"members\",\n \"operationId\": \"workspaceMembers\",\n \"method\": \"GET\",\n \"path\": \"/workspace/members\",\n \"summary\": \"List the people in this workspace\",\n \"flags\": []\n }\n];\n"],"mappings":"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","names":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
COMMANDS,
|
|
4
4
|
__export
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-4KV65KM4.js";
|
|
6
6
|
|
|
7
7
|
// ../sdk/dist/index.js
|
|
8
8
|
var dist_exports = {};
|
|
@@ -1798,7 +1798,7 @@ function coerce(flag, raw) {
|
|
|
1798
1798
|
}
|
|
1799
1799
|
function parse(command, argv) {
|
|
1800
1800
|
const byName = new Map(command.flags.map((flag) => [flag.name, flag]));
|
|
1801
|
-
const out = { path: {}, query: {}, body: {} };
|
|
1801
|
+
const out = { path: {}, query: {}, body: {}, header: {} };
|
|
1802
1802
|
for (let i = 0; i < argv.length; i++) {
|
|
1803
1803
|
const token = argv[i];
|
|
1804
1804
|
if (!token.startsWith("--")) throw new UsageError(`Unexpected argument "${token}".`);
|
|
@@ -1841,7 +1841,7 @@ function help(command) {
|
|
|
1841
1841
|
}),
|
|
1842
1842
|
"",
|
|
1843
1843
|
"An API key goes in PIDGEON_API_KEY. `pidgeon <group> <command> --help`",
|
|
1844
|
-
"describes one command."
|
|
1844
|
+
"describes one command; --verbose prints what was sent, on stderr."
|
|
1845
1845
|
].join("\n");
|
|
1846
1846
|
}
|
|
1847
1847
|
const flags = command.flags.map((flag) => {
|
|
@@ -1860,11 +1860,22 @@ function help(command) {
|
|
|
1860
1860
|
...flags.length > 0 ? ["Flags:", ...flags] : ["Takes no flags."]
|
|
1861
1861
|
].join("\n");
|
|
1862
1862
|
}
|
|
1863
|
+
function headersFor(command, parsed) {
|
|
1864
|
+
const headers = {};
|
|
1865
|
+
for (const flag of command.flags) {
|
|
1866
|
+
if (flag.where !== "header" || !flag.header) continue;
|
|
1867
|
+
const given = parsed.header[flag.name];
|
|
1868
|
+
if (typeof given === "string") headers[flag.header] = given;
|
|
1869
|
+
else if (flag.header === "Idempotency-Key") headers[flag.header] = crypto.randomUUID();
|
|
1870
|
+
}
|
|
1871
|
+
return headers;
|
|
1872
|
+
}
|
|
1863
1873
|
function find(group, name) {
|
|
1864
1874
|
return COMMANDS.find((c) => c.group === group && c.name === name);
|
|
1865
1875
|
}
|
|
1866
|
-
async function run(argv, env) {
|
|
1867
|
-
const
|
|
1876
|
+
async function run(argv, env, options = {}) {
|
|
1877
|
+
const verbose = argv.includes("--verbose");
|
|
1878
|
+
const [group, name, ...rest] = argv.filter((token) => token !== "--verbose");
|
|
1868
1879
|
if (!group || group === "--help" || group === "help") return help();
|
|
1869
1880
|
const command = find(group, name);
|
|
1870
1881
|
if (!command) {
|
|
@@ -1884,6 +1895,9 @@ ${help()}`);
|
|
|
1884
1895
|
);
|
|
1885
1896
|
}
|
|
1886
1897
|
const parsed = parse(command, rest);
|
|
1898
|
+
const headers = headersFor(command, parsed);
|
|
1899
|
+
const idempotencyKey = headers["Idempotency-Key"];
|
|
1900
|
+
if (verbose && idempotencyKey) options.stderr?.(`Idempotency-Key: ${idempotencyKey}`);
|
|
1887
1901
|
client.setConfig(
|
|
1888
1902
|
createConfig({ baseUrl: env.PIDGEON_BASE_URL ?? DEFAULT_BASE_URL, auth: () => apiKey })
|
|
1889
1903
|
);
|
|
@@ -1891,17 +1905,31 @@ ${help()}`);
|
|
|
1891
1905
|
if (typeof call !== "function") {
|
|
1892
1906
|
throw new Error(`The SDK does not export \`${command.operationId}\`. Run \`pnpm sdk\`.`);
|
|
1893
1907
|
}
|
|
1894
|
-
const
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1908
|
+
const retry = idempotencyKey ? ` It may have been sent: retry with --idempotency-key ${idempotencyKey} and it goes out at most once.` : "";
|
|
1909
|
+
let answer;
|
|
1910
|
+
try {
|
|
1911
|
+
answer = await call({
|
|
1912
|
+
...Object.keys(parsed.path).length > 0 ? { path: parsed.path } : {},
|
|
1913
|
+
...Object.keys(parsed.query).length > 0 ? { query: parsed.query } : {},
|
|
1914
|
+
...Object.keys(parsed.body).length > 0 ? { body: parsed.body } : {},
|
|
1915
|
+
...Object.keys(headers).length > 0 ? { headers } : {}
|
|
1916
|
+
});
|
|
1917
|
+
} catch (thrown) {
|
|
1918
|
+
const reason = thrown instanceof Error ? thrown.message : "The request failed.";
|
|
1919
|
+
throw new Error(`${reason}${retry ? `
|
|
1920
|
+
${retry.trim()}` : ""}`);
|
|
1921
|
+
}
|
|
1922
|
+
const { data, error, response } = answer;
|
|
1923
|
+
if (verbose && response.headers.get("Idempotent-Replay") === "true") {
|
|
1924
|
+
options.stderr?.("Idempotent-Replay: true \u2014 answered from the first send; nothing sent again.");
|
|
1925
|
+
}
|
|
1899
1926
|
if (error !== void 0) {
|
|
1900
1927
|
const detail = error?.error;
|
|
1928
|
+
const message = detail?.message ?? (typeof error === "string" && error ? error.slice(0, 500) : "The request failed.");
|
|
1901
1929
|
throw new ApiError(
|
|
1902
1930
|
response.status,
|
|
1903
1931
|
detail?.code,
|
|
1904
|
-
|
|
1932
|
+
response.status >= 500 ? message + retry : message
|
|
1905
1933
|
);
|
|
1906
1934
|
}
|
|
1907
1935
|
return JSON.stringify(data, null, 2);
|
|
@@ -1915,4 +1943,4 @@ export {
|
|
|
1915
1943
|
find,
|
|
1916
1944
|
run
|
|
1917
1945
|
};
|
|
1918
|
-
//# sourceMappingURL=chunk-
|
|
1946
|
+
//# sourceMappingURL=chunk-6FBYJ62K.js.map
|