@messagebird/n8n-nodes-bird 0.1.1
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/LICENSE +21 -0
- package/README.md +59 -0
- package/dist/credentials/BirdApi.credentials.js +53 -0
- package/dist/credentials/bird-dark.svg +4 -0
- package/dist/credentials/bird.svg +4 -0
- package/dist/index.js +9 -0
- package/dist/nodes/Bird/Bird.node.js +121 -0
- package/dist/nodes/Bird/Bird.node.json +23 -0
- package/dist/nodes/Bird/BirdTrigger.node.js +161 -0
- package/dist/nodes/Bird/BirdTrigger.node.json +23 -0
- package/dist/nodes/Bird/bird-dark.svg +4 -0
- package/dist/nodes/Bird/bird.svg +4 -0
- package/dist/nodes/Bird/generated/events.gen.js +59 -0
- package/dist/nodes/Bird/generated/pickers.gen.js +28 -0
- package/dist/nodes/Bird/generated/properties.gen.js +10560 -0
- package/dist/nodes/Bird/generated/routing.gen.js +182 -0
- package/dist/nodes/Bird/generated/scopes.gen.js +5 -0
- package/dist/nodes/Bird/pickers.js +116 -0
- package/dist/nodes/Bird/transport.js +484 -0
- package/dist/nodes/Bird/webhook-verify.js +46 -0
- package/package.json +64 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.birdRoutes = void 0;
|
|
4
|
+
exports.birdRoutes = {
|
|
5
|
+
"email:send": { method: "POST", path: "/v1/email/messages", pathParams: [], topLevel: ["from", "to"], collections: ["additionalFields"], query: [], body: ["from", "to", "cc", "bcc", "subject", "html", "text", "reply_to", "headers", "tags", "metadata", "parameters", "template", "track_opens", "track_clicks", "ip_pool_id", "category", "attachments", "scheduled_at"], jsonFields: [], structured: { "headers": "map", "tags": "list", "metadata": "map", "parameters": "map", "template": "struct", "attachments": "list" }, renames: {}, arrayFields: ["to", "cc", "bcc", "reply_to"], dateTimeFields: ["scheduled_at"], nullableFields: [], binaryFields: ["attachments"], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["emails"] },
|
|
6
|
+
"email:send_batch": { method: "POST", path: "/v1/email/batches", pathParams: [], topLevel: ["messages"], collections: ["additionalFields"], query: [], body: ["messages"], jsonFields: ["messages"], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: true, scopes: ["emails"] },
|
|
7
|
+
"email:get": { method: "GET", path: "/v1/email/messages/{message_id}", pathParams: ["message_id"], topLevel: ["message_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["emails"] },
|
|
8
|
+
"email:list": { method: "GET", path: "/v1/email/messages", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["limit", "starting_after", "ending_before", "created_after", "created_before", "status", "tag", "category", "to", "from"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: ["tag"], dateTimeFields: ["created_after", "created_before"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
9
|
+
"email:cancel": { method: "POST", path: "/v1/email/messages/{message_id}/cancel", pathParams: ["message_id"], topLevel: ["message_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["emails"] },
|
|
10
|
+
"email:stats_summary": { method: "GET", path: "/v1/email/stats/summary", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["from", "to", "timezone", "category", "sending_domain", "tag", "sending_ip", "recipient_domain", "template", "compare"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["emails"] },
|
|
11
|
+
"email:stats_daily": { method: "GET", path: "/v1/email/stats/daily", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["from", "to", "timezone", "category", "sending_domain", "tag", "sending_ip", "recipient_domain", "template"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
12
|
+
"email:stats_hourly": { method: "GET", path: "/v1/email/stats/hourly", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["from", "to", "timezone", "category", "sending_domain", "tag", "sending_ip", "recipient_domain", "template"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: ["from", "to"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
13
|
+
"email:stats_by_tag": { method: "GET", path: "/v1/email/stats/tags", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["from", "to", "timezone", "category", "sort", "limit", "include_trend", "trend_grain"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
14
|
+
"email:stats_by_category": { method: "GET", path: "/v1/email/stats/categories", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["from", "to", "timezone", "sort", "limit", "include_trend", "trend_grain"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
15
|
+
"email:stats_by_sending_ip": { method: "GET", path: "/v1/email/stats/sending-ips", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["from", "to", "timezone", "category", "sort", "limit", "include_trend", "trend_grain"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
16
|
+
"email:stats_by_sending_domain": { method: "GET", path: "/v1/email/stats/sending-domains", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["from", "to", "timezone", "category", "sort", "limit", "include_trend", "trend_grain"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
17
|
+
"email:stats_by_recipient_domain": { method: "GET", path: "/v1/email/stats/recipient-domains", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["from", "to", "timezone", "category", "sort", "limit", "include_trend", "trend_grain"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
18
|
+
"email:stats_by_mailbox_provider": { method: "GET", path: "/v1/email/stats/mailbox-providers", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["from", "to", "timezone", "category", "sort", "limit", "include_trend", "trend_grain"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
19
|
+
"email:stats_by_mailbox_provider_region": { method: "GET", path: "/v1/email/stats/mailbox-provider-regions", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["from", "to", "timezone", "category", "sort", "limit", "include_trend", "trend_grain"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
20
|
+
"email:stats_by_template": { method: "GET", path: "/v1/email/stats/templates", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["from", "to", "timezone", "category", "sort", "limit", "include_trend", "trend_grain"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
21
|
+
"email:stats_by_location": { method: "GET", path: "/v1/email/stats/locations", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["from", "to", "timezone", "category", "group_by", "sort", "limit"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
22
|
+
"email:stats_by_client": { method: "GET", path: "/v1/email/stats/clients", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["from", "to", "timezone", "category", "group_by", "sort", "limit"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
23
|
+
"email:stats_by_bounce_code": { method: "GET", path: "/v1/email/stats/bounce-codes", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["from", "to", "timezone", "category", "sort", "limit"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
24
|
+
"email:stats_by_complaint_type": { method: "GET", path: "/v1/email/stats/complaint-types", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["from", "to", "timezone", "category", "sort", "limit"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
25
|
+
"email:stats_by_broadcast": { method: "GET", path: "/v1/email/stats/broadcasts", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["from", "to", "category", "sort", "limit"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["email_marketing"] },
|
|
26
|
+
"sms:send": { method: "POST", path: "/v1/sms/messages", pathParams: [], topLevel: ["to"], collections: ["additionalFields"], query: [], body: ["to", "from", "text", "category", "tags", "metadata", "options", "template"], jsonFields: [], structured: { "tags": "list", "metadata": "map", "options": "struct", "template": "struct" }, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["sms"] },
|
|
27
|
+
"sms:send_batch": { method: "POST", path: "/v1/sms/batches", pathParams: [], topLevel: ["messages"], collections: ["additionalFields"], query: [], body: ["messages"], jsonFields: ["messages"], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: true, scopes: ["sms"] },
|
|
28
|
+
"sms:get": { method: "GET", path: "/v1/sms/messages/{message_id}", pathParams: ["message_id"], topLevel: ["message_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["sms"] },
|
|
29
|
+
"sms:list": { method: "GET", path: "/v1/sms/messages", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["limit", "starting_after", "ending_before", "created_after", "created_before", "direction", "status", "error_code", "category", "to", "from", "tag"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: ["status", "error_code", "tag"], dateTimeFields: ["created_after", "created_before"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["sms"] },
|
|
30
|
+
"sms_templates:list": { method: "GET", path: "/v1/sms/templates", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["scope", "category", "language"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["sms_management"] },
|
|
31
|
+
"sms_templates:get": { method: "GET", path: "/v1/sms/templates/{template_ref}", pathParams: ["template_ref"], topLevel: ["template_ref"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["sms_management"] },
|
|
32
|
+
"sms:list_events": { method: "GET", path: "/v1/sms/messages/{message_id}/events", pathParams: ["message_id"], topLevel: ["message_id"], collections: ["additionalFields"], query: ["type"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["sms"] },
|
|
33
|
+
"sms:stats_summary": { method: "GET", path: "/v1/sms/stats/summary", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["from", "to", "timezone", "originator", "country", "category", "carrier", "compare"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["sms"] },
|
|
34
|
+
"sms:stats_daily": { method: "GET", path: "/v1/sms/stats/daily", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["from", "to", "timezone", "originator", "country", "category", "carrier"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["sms"] },
|
|
35
|
+
"sms:stats_hourly": { method: "GET", path: "/v1/sms/stats/hourly", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["from", "to", "timezone", "originator", "country", "category", "carrier"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: ["from", "to"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["sms"] },
|
|
36
|
+
"sms:stats_by_country": { method: "GET", path: "/v1/sms/stats/countries", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["from", "to", "timezone", "sort", "limit", "include_trend", "trend_grain"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["sms"] },
|
|
37
|
+
"sms:stats_by_carrier": { method: "GET", path: "/v1/sms/stats/carriers", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["from", "to", "timezone", "sort", "limit", "include_trend", "trend_grain"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["sms"] },
|
|
38
|
+
"sms:stats_by_category": { method: "GET", path: "/v1/sms/stats/categories", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["from", "to", "timezone", "sort", "limit", "include_trend", "trend_grain"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["sms"] },
|
|
39
|
+
"sms:stats_by_originator": { method: "GET", path: "/v1/sms/stats/originators", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["from", "to", "timezone", "sort", "limit", "include_trend", "trend_grain"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["sms"] },
|
|
40
|
+
"sms:stats_by_status": { method: "GET", path: "/v1/sms/stats/statuses", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["from", "to", "timezone"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["sms"] },
|
|
41
|
+
"sms:stats_by_error_code": { method: "GET", path: "/v1/sms/stats/error-codes", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["from", "to", "timezone", "sort", "limit", "include_trend", "trend_grain"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["sms"] },
|
|
42
|
+
"sms:stats_by_tag": { method: "GET", path: "/v1/sms/stats/tags", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["from", "to", "timezone", "sort", "limit", "include_trend", "trend_grain"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["sms"] },
|
|
43
|
+
"sms:stats_inbound_summary": { method: "GET", path: "/v1/sms/stats/inbound/summary", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["from", "to", "timezone", "compare"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["sms"] },
|
|
44
|
+
"sms:stats_inbound_daily": { method: "GET", path: "/v1/sms/stats/inbound/daily", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["from", "to", "timezone"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["sms"] },
|
|
45
|
+
"sms:stats_inbound_hourly": { method: "GET", path: "/v1/sms/stats/inbound/hourly", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["from", "to", "timezone"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: ["from", "to"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["sms"] },
|
|
46
|
+
"sms:stats_inbound_by_country": { method: "GET", path: "/v1/sms/stats/inbound/countries", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["from", "to", "timezone", "limit"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["sms"] },
|
|
47
|
+
"sms:stats_inbound_by_operator": { method: "GET", path: "/v1/sms/stats/inbound/operators", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["from", "to", "timezone", "limit"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["sms"] },
|
|
48
|
+
"sms:stats_inbound_by_number": { method: "GET", path: "/v1/sms/stats/inbound/numbers", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["from", "to", "timezone", "limit"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["sms"] },
|
|
49
|
+
"sms_suppressions:list": { method: "GET", path: "/v1/sms/suppressions", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["destination", "originator", "reason", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["sms_management"] },
|
|
50
|
+
"sms_suppressions:get": { method: "GET", path: "/v1/sms/suppressions/{suppression_id}", pathParams: ["suppression_id"], topLevel: ["suppression_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["sms_management"] },
|
|
51
|
+
"sms_suppressions:add": { method: "POST", path: "/v1/sms/suppressions", pathParams: [], topLevel: ["destination", "originator"], collections: ["additionalFields"], query: [], body: ["destination", "originator"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["sms_management"] },
|
|
52
|
+
"sms_suppressions:remove": { method: "DELETE", path: "/v1/sms/suppressions/{suppression_id}", pathParams: ["suppression_id"], topLevel: ["suppression_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["sms_management"] },
|
|
53
|
+
"sms_keyword_rules:list": { method: "GET", path: "/v1/sms/keyword-rules", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["country", "number", "from_country", "operation", "scope"], body: [], jsonFields: [], structured: {}, renames: { "keyword_operation": "operation" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["sms_management"] },
|
|
54
|
+
"sms_keyword_rules:get": { method: "GET", path: "/v1/sms/keyword-rules/{id}", pathParams: ["id"], topLevel: ["id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["sms_management"] },
|
|
55
|
+
"sms_keyword_rules:create": { method: "POST", path: "/v1/sms/keyword-rules", pathParams: [], topLevel: ["keyword_operation"], collections: ["additionalFields"], query: [], body: ["operation", "country", "language", "number", "keywords", "reply", "confirmed_self_managed"], jsonFields: [], structured: {}, renames: { "keyword_operation": "operation" }, arrayFields: ["keywords"], dateTimeFields: [], nullableFields: ["country", "language", "number", "reply"], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["sms_management"] },
|
|
56
|
+
"sms_keyword_rules:update": { method: "PATCH", path: "/v1/sms/keyword-rules/{id}", pathParams: ["id"], topLevel: ["id"], collections: ["updateFields"], query: [], body: ["keywords", "reply", "confirmed_self_managed"], jsonFields: [], structured: {}, renames: {}, arrayFields: ["keywords"], dateTimeFields: [], nullableFields: ["reply"], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["sms_management"] },
|
|
57
|
+
"sms_keyword_rules:delete": { method: "DELETE", path: "/v1/sms/keyword-rules/{id}", pathParams: ["id"], topLevel: ["id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["sms_management"] },
|
|
58
|
+
"whatsapp:send": { method: "POST", path: "/v1/whatsapp/messages", pathParams: [], topLevel: ["to"], collections: ["additionalFields"], query: [], body: ["to", "from", "template", "text", "image", "video", "audio", "sticker", "document", "location", "interactive", "contact_cards", "in_reply_to_message_id", "tags", "metadata"], jsonFields: ["template.components", "interactive.header", "interactive.buttons", "interactive.list", "interactive.cta_url", "interactive.cards", "contact_cards"], structured: { "template": "struct", "text": "struct", "image": "struct", "video": "struct", "audio": "struct", "sticker": "struct", "document": "struct", "location": "struct", "interactive": "struct", "tags": "list", "metadata": "map" }, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["whatsapp"] },
|
|
59
|
+
"whatsapp:get": { method: "GET", path: "/v1/whatsapp/messages/{message_id}", pathParams: ["message_id"], topLevel: ["message_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["whatsapp"] },
|
|
60
|
+
"whatsapp:list": { method: "GET", path: "/v1/whatsapp/messages", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["limit", "starting_after", "ending_before", "created_after", "created_before", "status", "direction", "to", "from", "phone_number", "bsuid", "category", "tag"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: ["status", "tag"], dateTimeFields: ["created_after", "created_before"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["whatsapp"] },
|
|
61
|
+
"whatsapp:list_events": { method: "GET", path: "/v1/whatsapp/messages/{message_id}/events", pathParams: ["message_id"], topLevel: ["message_id"], collections: ["additionalFields"], query: ["type"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["whatsapp"] },
|
|
62
|
+
"voice:list": { method: "GET", path: "/v1/voice/calls", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["direction", "status", "session_id", "sip_trunk_id", "from", "to", "number", "tag", "started_after", "started_before", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: ["status", "tag"], dateTimeFields: ["started_after", "started_before"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["voice"] },
|
|
63
|
+
"voice:get": { method: "GET", path: "/v1/voice/calls/{call_id}", pathParams: ["call_id"], topLevel: ["call_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["voice"] },
|
|
64
|
+
"verify:verifications_create": { method: "POST", path: "/v1/verify/verifications", pathParams: [], topLevel: ["to"], collections: ["additionalFields"], query: [], body: ["to", "options", "metadata"], jsonFields: [], structured: { "to": "struct", "options": "struct", "metadata": "map" }, renames: {}, arrayFields: ["options.channels"], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["verify"] },
|
|
65
|
+
"verify:verifications_check": { method: "POST", path: "/v1/verify/verifications/check", pathParams: [], topLevel: ["to", "code"], collections: ["additionalFields"], query: [], body: ["to", "code"], jsonFields: [], structured: { "to": "struct" }, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["verify"] },
|
|
66
|
+
"verify:verifications_next_channel": { method: "POST", path: "/v1/verify/verifications/next-channel", pathParams: [], topLevel: ["to"], collections: ["additionalFields"], query: [], body: ["to"], jsonFields: [], structured: { "to": "struct" }, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["verify"] },
|
|
67
|
+
"lookup:phone_number": { method: "POST", path: "/v1/lookup/phone-number", pathParams: [], topLevel: ["phone_number"], collections: ["additionalFields"], query: [], body: ["phone_number", "type"], jsonFields: [], structured: {}, renames: {}, arrayFields: ["type"], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["lookup"] },
|
|
68
|
+
"lookup:email": { method: "POST", path: "/v1/lookup/email", pathParams: [], topLevel: ["email"], collections: ["additionalFields"], query: [], body: ["email"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["lookup"] },
|
|
69
|
+
"numbers:list": { method: "GET", path: "/v1/numbers", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["number", "country_code", "number_type", "prefix", "capabilities", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: ["capabilities"], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["numbers"] },
|
|
70
|
+
"numbers:get": { method: "GET", path: "/v1/numbers/{number_id}", pathParams: ["number_id"], topLevel: ["number_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["numbers"] },
|
|
71
|
+
"numbers:release": { method: "DELETE", path: "/v1/numbers/{number_id}", pathParams: ["number_id"], topLevel: ["number_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["numbers"] },
|
|
72
|
+
"numbers:available_list": { method: "GET", path: "/v1/numbers/available", pathParams: [], topLevel: ["country_code"], collections: ["additionalFields"], query: ["country_code", "number_type", "prefix", "capabilities", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: ["capabilities"], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["numbers"] },
|
|
73
|
+
"numbers:available_get": { method: "GET", path: "/v1/numbers/available/{number}", pathParams: ["number"], topLevel: ["number"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["numbers"] },
|
|
74
|
+
"numbers:orders_create": { method: "POST", path: "/v1/numbers/orders", pathParams: [], topLevel: ["number"], collections: ["additionalFields"], query: [], body: ["number"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["numbers"] },
|
|
75
|
+
"numbers:orders_list": { method: "GET", path: "/v1/numbers/orders", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["status", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["numbers"] },
|
|
76
|
+
"numbers:orders_get": { method: "GET", path: "/v1/numbers/orders/{order_id}", pathParams: ["order_id"], topLevel: ["order_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["numbers"] },
|
|
77
|
+
"domains:list": { method: "GET", path: "/v1/email/domains", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["name", "sort", "order", "limit", "starting_after", "ending_before", "include_total"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["domains"] },
|
|
78
|
+
"domains:get": { method: "GET", path: "/v1/email/domains/{domain_id}", pathParams: ["domain_id"], topLevel: ["domain_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["domains"] },
|
|
79
|
+
"domains:create": { method: "POST", path: "/v1/email/domains", pathParams: [], topLevel: ["domain"], collections: ["additionalFields"], query: [], body: ["domain", "return_path", "tracking", "dkim", "settings"], jsonFields: [], structured: { "return_path": "struct", "tracking": "struct", "dkim": "struct", "settings": "struct" }, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["domains"] },
|
|
80
|
+
"domains:verify": { method: "POST", path: "/v1/email/domains/{domain_id}/verify", pathParams: ["domain_id"], topLevel: ["domain_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["domains"] },
|
|
81
|
+
"domains:update": { method: "PATCH", path: "/v1/email/domains/{domain_id}", pathParams: ["domain_id"], topLevel: ["domain_id"], collections: ["updateFields"], query: [], body: ["settings", "return_path", "tracking", "dkim", "inbound"], jsonFields: [], structured: { "settings": "struct", "return_path": "struct", "tracking": "struct", "dkim": "struct", "inbound": "struct" }, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: ["tracking"], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["domains"] },
|
|
82
|
+
"domains:delete": { method: "DELETE", path: "/v1/email/domains/{domain_id}", pathParams: ["domain_id"], topLevel: ["domain_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["domains"] },
|
|
83
|
+
"inbound_address:list": { method: "GET", path: "/v1/email/inbound-addresses", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
84
|
+
"inbound_address:create": { method: "POST", path: "/v1/email/inbound-addresses", pathParams: [], topLevel: [], collections: ["additionalFields"], query: [], body: ["label"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_management"] },
|
|
85
|
+
"inbound_address:get": { method: "GET", path: "/v1/email/inbound-addresses/{inbound_address_id}", pathParams: ["inbound_address_id"], topLevel: ["inbound_address_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["emails"] },
|
|
86
|
+
"inbound_address:update": { method: "PATCH", path: "/v1/email/inbound-addresses/{inbound_address_id}", pathParams: ["inbound_address_id"], topLevel: ["inbound_address_id"], collections: ["updateFields"], query: [], body: ["label"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: ["label"], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_management"] },
|
|
87
|
+
"inbound_address:delete": { method: "DELETE", path: "/v1/email/inbound-addresses/{inbound_address_id}", pathParams: ["inbound_address_id"], topLevel: ["inbound_address_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_management"] },
|
|
88
|
+
"inbound_message:list": { method: "GET", path: "/v1/email/inbound-messages", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["from", "inbound_address_id", "received_after", "received_before", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: ["received_after", "received_before"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
89
|
+
"inbound_message:get": { method: "GET", path: "/v1/email/inbound-messages/{inbound_message_id}", pathParams: ["inbound_message_id"], topLevel: ["inbound_message_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["emails"] },
|
|
90
|
+
"inbound_message:body": { method: "GET", path: "/v1/email/inbound-messages/{inbound_message_id}/body", pathParams: ["inbound_message_id"], topLevel: ["inbound_message_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["emails"] },
|
|
91
|
+
"inbound_message:attachments": { method: "GET", path: "/v1/email/inbound-messages/{inbound_message_id}/attachments", pathParams: ["inbound_message_id"], topLevel: ["inbound_message_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
92
|
+
"suppression:list": { method: "GET", path: "/v1/email/suppressions", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["email", "reason", "scope_type", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["email_management"] },
|
|
93
|
+
"suppression:add": { method: "POST", path: "/v1/email/suppressions", pathParams: [], topLevel: ["email"], collections: ["additionalFields"], query: [], body: ["email"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_management"] },
|
|
94
|
+
"suppression:remove": { method: "DELETE", path: "/v1/email/suppressions/{suppression_id}", pathParams: ["suppression_id"], topLevel: ["suppression_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_management"] },
|
|
95
|
+
"webhooks:list": { method: "GET", path: "/v1/webhooks", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["sort", "order", "limit", "starting_after", "ending_before", "include_total"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["webhooks"] },
|
|
96
|
+
"webhooks:get": { method: "GET", path: "/v1/webhooks/{webhook_id}", pathParams: ["webhook_id"], topLevel: ["webhook_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["webhooks"] },
|
|
97
|
+
"webhooks:create": { method: "POST", path: "/v1/webhooks", pathParams: [], topLevel: ["url", "events"], collections: ["additionalFields"], query: [], body: ["url", "events", "description"], jsonFields: [], structured: {}, renames: {}, arrayFields: ["events"], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["webhooks"] },
|
|
98
|
+
"webhooks:test": { method: "POST", path: "/v1/webhooks/{webhook_id}/test", pathParams: ["webhook_id"], topLevel: ["webhook_id"], collections: ["additionalFields"], query: [], body: ["event_type"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["webhooks"] },
|
|
99
|
+
"webhooks:delete": { method: "DELETE", path: "/v1/webhooks/{webhook_id}", pathParams: ["webhook_id"], topLevel: ["webhook_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["webhooks"] },
|
|
100
|
+
"webhooks:attempts": { method: "GET", path: "/v1/webhooks/{webhook_id}/attempts", pathParams: ["webhook_id"], topLevel: ["webhook_id"], collections: ["additionalFields"], query: ["limit", "before", "after"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: ["before", "after"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["webhooks"] },
|
|
101
|
+
"webhooks:rotate_secret": { method: "POST", path: "/v1/webhooks/{webhook_id}/rotate-secret", pathParams: ["webhook_id"], topLevel: ["webhook_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["webhooks"] },
|
|
102
|
+
"webhooks:update": { method: "PATCH", path: "/v1/webhooks/{webhook_id}", pathParams: ["webhook_id"], topLevel: ["webhook_id"], collections: ["updateFields"], query: [], body: ["url", "description", "events", "status"], jsonFields: [], structured: {}, renames: {}, arrayFields: ["events"], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["webhooks"] },
|
|
103
|
+
"workspace:get": { method: "GET", path: "/v1/workspace", pathParams: [], topLevel: [], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["workspace"] },
|
|
104
|
+
"docs:search": { method: "GET", path: "/v1/docs/search", pathParams: [], topLevel: ["q"], collections: ["additionalFields"], query: ["q", "locale", "limit", "contents"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: [] },
|
|
105
|
+
"docs:read": { method: "GET", path: "/v1/docs/pages", pathParams: [], topLevel: ["slug"], collections: ["additionalFields"], query: ["slug", "locale"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: [] },
|
|
106
|
+
"preferences:list": { method: "GET", path: "/v1/preferences", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["channel", "handle", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["preferences"] },
|
|
107
|
+
"preferences:get": { method: "GET", path: "/v1/preferences/{preference_id}", pathParams: ["preference_id"], topLevel: ["preference_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["preferences"] },
|
|
108
|
+
"preferences:create": { method: "POST", path: "/v1/preferences", pathParams: [], topLevel: ["handle", "channel", "status"], collections: ["additionalFields"], query: [], body: ["handle", "channel", "status", "coverage", "sender_scope", "source", "consented_at"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: ["consented_at"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["preferences"] },
|
|
109
|
+
"preferences:delete": { method: "DELETE", path: "/v1/preferences/{preference_id}", pathParams: ["preference_id"], topLevel: ["preference_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["preferences"] },
|
|
110
|
+
"contacts:list": { method: "GET", path: "/v1/contacts", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["email", "phone_number", "external_id", "q", "identifier", "limit", "starting_after", "ending_before", "include_total"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: ["phone_number"], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["email_marketing"] },
|
|
111
|
+
"contacts:get": { method: "GET", path: "/v1/contacts/{contact_id}", pathParams: ["contact_id"], topLevel: ["contact_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["email_marketing"] },
|
|
112
|
+
"contacts:create": { method: "POST", path: "/v1/contacts", pathParams: [], topLevel: [], collections: ["additionalFields"], query: [], body: ["email", "phone_number", "first_name", "last_name", "external_id", "data"], jsonFields: [], structured: { "data": "map" }, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_marketing"] },
|
|
113
|
+
"contacts:update": { method: "PATCH", path: "/v1/contacts/{contact_id}", pathParams: ["contact_id"], topLevel: ["contact_id"], collections: ["updateFields"], query: [], body: ["email", "phone_number", "first_name", "last_name", "external_id", "data"], jsonFields: [], structured: { "data": "map" }, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: ["email", "phone_number", "first_name", "last_name", "external_id"], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_marketing"] },
|
|
114
|
+
"contacts:delete": { method: "DELETE", path: "/v1/contacts/{contact_id}", pathParams: ["contact_id"], topLevel: ["contact_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_marketing"] },
|
|
115
|
+
"contacts:batch": { method: "POST", path: "/v1/contacts/batch", pathParams: [], topLevel: ["contacts"], collections: ["additionalFields"], query: [], body: ["contacts", "audience_ids", "match_on", "data_mode"], jsonFields: [], structured: { "contacts": "list" }, renames: {}, arrayFields: ["audience_ids"], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: true, scopes: ["email_marketing"] },
|
|
116
|
+
"contacts:preferences_list": { method: "GET", path: "/v1/contacts/{contact_id}/preferences", pathParams: ["contact_id"], topLevel: ["contact_id"], collections: ["additionalFields"], query: ["limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["preferences"] },
|
|
117
|
+
"contact_properties:list": { method: "GET", path: "/v1/contact-properties", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["email_marketing"] },
|
|
118
|
+
"contact_properties:get": { method: "GET", path: "/v1/contact-properties/{property_id}", pathParams: ["property_id"], topLevel: ["property_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["email_marketing"] },
|
|
119
|
+
"contact_properties:create": { method: "POST", path: "/v1/contact-properties", pathParams: [], topLevel: ["key", "type"], collections: ["additionalFields"], query: [], body: ["key", "type", "fallback_value"], jsonFields: ["fallback_value"], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_marketing"] },
|
|
120
|
+
"contact_properties:update": { method: "PATCH", path: "/v1/contact-properties/{property_id}", pathParams: ["property_id"], topLevel: ["property_id"], collections: ["updateFields"], query: [], body: ["fallback_value"], jsonFields: ["fallback_value"], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_marketing"] },
|
|
121
|
+
"contact_properties:archive": { method: "POST", path: "/v1/contact-properties/{property_id}/archive", pathParams: ["property_id"], topLevel: ["property_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_marketing"] },
|
|
122
|
+
"contact_properties:unarchive": { method: "POST", path: "/v1/contact-properties/{property_id}/unarchive", pathParams: ["property_id"], topLevel: ["property_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_marketing"] },
|
|
123
|
+
"audiences:list": { method: "GET", path: "/v1/audiences", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["q", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["email_marketing"] },
|
|
124
|
+
"audiences:get": { method: "GET", path: "/v1/audiences/{audience_id}", pathParams: ["audience_id"], topLevel: ["audience_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["email_marketing"] },
|
|
125
|
+
"audiences:create": { method: "POST", path: "/v1/audiences", pathParams: [], topLevel: ["name"], collections: ["additionalFields"], query: [], body: ["name", "description", "type"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_marketing"] },
|
|
126
|
+
"audiences:update": { method: "PATCH", path: "/v1/audiences/{audience_id}", pathParams: ["audience_id"], topLevel: ["audience_id"], collections: ["updateFields"], query: [], body: ["name", "description"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: ["description"], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_marketing"] },
|
|
127
|
+
"audiences:delete": { method: "DELETE", path: "/v1/audiences/{audience_id}", pathParams: ["audience_id"], topLevel: ["audience_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_marketing"] },
|
|
128
|
+
"audiences:list_contacts": { method: "GET", path: "/v1/audiences/{audience_id}/contacts", pathParams: ["audience_id"], topLevel: ["audience_id"], collections: ["additionalFields"], query: ["q", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["email_marketing"] },
|
|
129
|
+
"audiences:add_contacts": { method: "POST", path: "/v1/audiences/{audience_id}/contacts", pathParams: ["audience_id"], topLevel: ["audience_id", "contact_ids"], collections: ["additionalFields"], query: [], body: ["contact_ids"], jsonFields: [], structured: {}, renames: {}, arrayFields: ["contact_ids"], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_marketing"] },
|
|
130
|
+
"audiences:remove_contacts": { method: "POST", path: "/v1/audiences/{audience_id}/contacts/remove", pathParams: ["audience_id"], topLevel: ["audience_id", "contact_ids"], collections: ["additionalFields"], query: [], body: ["contact_ids"], jsonFields: [], structured: {}, renames: {}, arrayFields: ["contact_ids"], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_marketing"] },
|
|
131
|
+
"audiences:remove_contact": { method: "DELETE", path: "/v1/audiences/{audience_id}/contacts/{contact_id}", pathParams: ["audience_id", "contact_id"], topLevel: ["audience_id", "contact_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_marketing"] },
|
|
132
|
+
"email:mailboxes_list": { method: "GET", path: "/v1/email/mailboxes", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["address", "q", "state", "domain", "include_deleted", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["mailbox"] },
|
|
133
|
+
"email:mailboxes_create": { method: "POST", path: "/v1/email/mailboxes", pathParams: [], topLevel: [], collections: ["additionalFields"], query: [], body: ["local_part", "domain", "display_name", "default_reply_to", "receive_policy", "retention_tier", "metadata"], jsonFields: [], structured: { "metadata": "map" }, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["mailbox_management"] },
|
|
134
|
+
"email:mailboxes_get": { method: "GET", path: "/v1/email/mailboxes/{mailbox_id}", pathParams: ["mailbox_id"], topLevel: ["mailbox_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["mailbox"] },
|
|
135
|
+
"email:mailboxes_update": { method: "PATCH", path: "/v1/email/mailboxes/{mailbox_id}", pathParams: ["mailbox_id"], topLevel: ["mailbox_id"], collections: ["updateFields"], query: ["confirm"], body: ["display_name", "default_reply_to", "receive_policy", "retention_tier", "metadata"], jsonFields: [], structured: { "metadata": "map" }, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: ["display_name", "default_reply_to"], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["mailbox_management"] },
|
|
136
|
+
"email:mailboxes_delete": { method: "DELETE", path: "/v1/email/mailboxes/{mailbox_id}", pathParams: ["mailbox_id"], topLevel: ["mailbox_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["mailbox_management"] },
|
|
137
|
+
"email:mailboxes_restore": { method: "POST", path: "/v1/email/mailboxes/{mailbox_id}/restore", pathParams: ["mailbox_id"], topLevel: ["mailbox_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["mailbox_management"] },
|
|
138
|
+
"email:mailboxes_resume": { method: "POST", path: "/v1/email/mailboxes/{mailbox_id}/resume", pathParams: ["mailbox_id"], topLevel: ["mailbox_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["mailbox_management"] },
|
|
139
|
+
"email:mailboxes_stats": { method: "GET", path: "/v1/email/mailboxes/{mailbox_id}/stats", pathParams: ["mailbox_id"], topLevel: ["mailbox_id"], collections: ["additionalFields"], query: ["from", "to", "timezone", "granularity"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["mailbox"] },
|
|
140
|
+
"email:mailboxes_messages_create": { method: "POST", path: "/v1/email/mailboxes/{mailbox_id}/messages", pathParams: ["mailbox_id"], topLevel: ["mailbox_id", "to", "subject"], collections: ["additionalFields"], query: [], body: ["to", "cc", "bcc", "subject", "html", "text", "reply_to", "attachments", "tags", "metadata", "category"], jsonFields: [], structured: { "attachments": "list", "tags": "list", "metadata": "map" }, renames: {}, arrayFields: ["to", "cc", "bcc", "reply_to"], dateTimeFields: [], nullableFields: [], binaryFields: ["attachments"], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["mailbox"] },
|
|
141
|
+
"email:mailboxes_labels": { method: "GET", path: "/v1/email/mailboxes/{mailbox_id}/labels", pathParams: ["mailbox_id"], topLevel: ["mailbox_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["mailbox"] },
|
|
142
|
+
"email:mailboxes_receive_rules_list": { method: "GET", path: "/v1/email/mailboxes/{mailbox_id}/receive-rules", pathParams: ["mailbox_id"], topLevel: ["mailbox_id"], collections: ["additionalFields"], query: ["action", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["mailbox_management"] },
|
|
143
|
+
"email:mailboxes_receive_rules_create": { method: "POST", path: "/v1/email/mailboxes/{mailbox_id}/receive-rules", pathParams: ["mailbox_id"], topLevel: ["mailbox_id", "action", "entry"], collections: ["additionalFields"], query: [], body: ["action", "entry", "note"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["mailbox_management"] },
|
|
144
|
+
"email:mailboxes_receive_rules_delete": { method: "DELETE", path: "/v1/email/mailboxes/{mailbox_id}/receive-rules/{rule_id}", pathParams: ["mailbox_id", "rule_id"], topLevel: ["mailbox_id", "rule_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["mailbox_management"] },
|
|
145
|
+
"email:threads_list": { method: "GET", path: "/v1/email/threads", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["mailbox_id", "contact_id", "label", "has_unread", "participant", "subject", "after", "before", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: ["label"], dateTimeFields: ["after", "before"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["mailbox"] },
|
|
146
|
+
"email:threads_get": { method: "GET", path: "/v1/email/threads/{thread_id}", pathParams: ["thread_id"], topLevel: ["thread_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["mailbox"] },
|
|
147
|
+
"email:threads_update": { method: "PATCH", path: "/v1/email/threads/{thread_id}", pathParams: ["thread_id"], topLevel: ["thread_id"], collections: ["updateFields"], query: [], body: ["labels", "contact_id"], jsonFields: [], structured: { "labels": "struct" }, renames: {}, arrayFields: ["labels.add", "labels.remove"], dateTimeFields: [], nullableFields: ["contact_id"], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["mailbox"] },
|
|
148
|
+
"email:threads_delete": { method: "DELETE", path: "/v1/email/threads/{thread_id}", pathParams: ["thread_id"], topLevel: ["thread_id"], collections: ["additionalFields"], query: ["permanent"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["mailbox"] },
|
|
149
|
+
"email:threads_messages_list": { method: "GET", path: "/v1/email/threads/{thread_id}/messages", pathParams: ["thread_id"], topLevel: ["thread_id"], collections: ["additionalFields"], query: ["direction", "label", "include", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["mailbox"] },
|
|
150
|
+
"email:threads_messages_get": { method: "GET", path: "/v1/email/threads/{thread_id}/messages/{message_id}", pathParams: ["thread_id", "message_id"], topLevel: ["thread_id", "message_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["mailbox"] },
|
|
151
|
+
"email:threads_messages_body": { method: "GET", path: "/v1/email/threads/{thread_id}/messages/{message_id}/body", pathParams: ["thread_id", "message_id"], topLevel: ["thread_id", "message_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["mailbox"] },
|
|
152
|
+
"email:threads_messages_reply": { method: "POST", path: "/v1/email/threads/{thread_id}/messages/{message_id}/reply", pathParams: ["thread_id", "message_id"], topLevel: ["thread_id", "message_id"], collections: ["additionalFields"], query: [], body: ["html", "text", "reply_all", "tags", "metadata", "category", "attachments"], jsonFields: [], structured: { "tags": "list", "metadata": "map", "attachments": "list" }, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: ["attachments"], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["mailbox"] },
|
|
153
|
+
"email:threads_messages_attachments": { method: "GET", path: "/v1/email/threads/{thread_id}/messages/{message_id}/attachments", pathParams: ["thread_id", "message_id"], topLevel: ["thread_id", "message_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["mailbox"] },
|
|
154
|
+
"email:content": { method: "GET", path: "/v1/email/messages/{message_id}/content", pathParams: ["message_id"], topLevel: ["message_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["emails"] },
|
|
155
|
+
"email:recipients": { method: "GET", path: "/v1/email/messages/{message_id}/recipients", pathParams: ["message_id"], topLevel: ["message_id"], collections: ["additionalFields"], query: ["limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
156
|
+
"realtime:apps_create": { method: "POST", path: "/v1/realtime/apps", pathParams: [], topLevel: ["name", "region"], collections: ["additionalFields"], query: [], body: ["client_events", "connection_counting", "connection_count_events", "watchlist_events", "authorized_connections", "name", "region"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["realtime"] },
|
|
157
|
+
"realtime:apps_list": { method: "GET", path: "/v1/realtime/apps", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["name", "sort", "order", "limit", "starting_after", "ending_before", "include_total"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["realtime"] },
|
|
158
|
+
"realtime:apps_get": { method: "GET", path: "/v1/realtime/apps/{realtime_app_id}", pathParams: ["realtime_app_id"], topLevel: ["realtime_app_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["realtime"] },
|
|
159
|
+
"realtime:apps_update": { method: "PATCH", path: "/v1/realtime/apps/{realtime_app_id}", pathParams: ["realtime_app_id"], topLevel: ["realtime_app_id"], collections: ["updateFields"], query: [], body: ["name", "client_events", "connection_counting", "connection_count_events", "watchlist_events", "authorized_connections"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["realtime"] },
|
|
160
|
+
"realtime:apps_delete": { method: "DELETE", path: "/v1/realtime/apps/{realtime_app_id}", pathParams: ["realtime_app_id"], topLevel: ["realtime_app_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["realtime"] },
|
|
161
|
+
"realtime:apps_keys_list": { method: "GET", path: "/v1/realtime/apps/{realtime_app_id}/keys", pathParams: ["realtime_app_id"], topLevel: ["realtime_app_id"], collections: ["additionalFields"], query: ["include_revoked"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["realtime"] },
|
|
162
|
+
"realtime:apps_keys_create": { method: "POST", path: "/v1/realtime/apps/{realtime_app_id}/keys", pathParams: ["realtime_app_id"], topLevel: ["realtime_app_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["realtime"] },
|
|
163
|
+
"realtime:apps_keys_revoke": { method: "POST", path: "/v1/realtime/apps/{realtime_app_id}/keys/{realtime_app_key_id}/revoke", pathParams: ["realtime_app_id", "realtime_app_key_id"], topLevel: ["realtime_app_id", "realtime_app_key_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["realtime"] },
|
|
164
|
+
"realtime:regions_list": { method: "GET", path: "/v1/realtime/regions", pathParams: [], topLevel: [], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["realtime"] },
|
|
165
|
+
"webhooks:replay": { method: "POST", path: "/v1/webhooks/{webhook_id}/replay", pathParams: ["webhook_id"], topLevel: ["webhook_id"], collections: ["additionalFields"], query: [], body: ["since", "until"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: ["since", "until"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["webhooks"] },
|
|
166
|
+
"email:list_events": { method: "GET", path: "/v1/email/messages/{message_id}/events", pathParams: ["message_id"], topLevel: ["message_id"], collections: ["additionalFields"], query: ["limit", "starting_after", "ending_before", "type"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["emails"] },
|
|
167
|
+
"email:threads_messages_update": { method: "PATCH", path: "/v1/email/threads/{thread_id}/messages/{message_id}", pathParams: ["thread_id", "message_id"], topLevel: ["thread_id", "message_id"], collections: ["updateFields"], query: [], body: ["labels", "contact_id"], jsonFields: [], structured: { "labels": "struct" }, renames: {}, arrayFields: ["labels.add", "labels.remove"], dateTimeFields: [], nullableFields: ["contact_id"], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["mailbox"] },
|
|
168
|
+
"email:threads_messages_delete": { method: "DELETE", path: "/v1/email/threads/{thread_id}/messages/{message_id}", pathParams: ["thread_id", "message_id"], topLevel: ["thread_id", "message_id"], collections: ["additionalFields"], query: ["permanent"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["mailbox"] },
|
|
169
|
+
"email:mailboxes_messages_list": { method: "GET", path: "/v1/email/mailboxes/{mailbox_id}/messages", pathParams: ["mailbox_id"], topLevel: ["mailbox_id"], collections: ["additionalFields"], query: ["label", "direction", "status", "after", "before", "include", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: ["after", "before"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["mailbox"] },
|
|
170
|
+
"suppression:get": { method: "GET", path: "/v1/email/suppressions/{suppression_id}", pathParams: ["suppression_id"], topLevel: ["suppression_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["email_management"] },
|
|
171
|
+
"domains:list_events": { method: "GET", path: "/v1/email/domains/{domain_id}/events", pathParams: ["domain_id"], topLevel: ["domain_id"], collections: ["additionalFields", "sort"], query: ["sort", "order", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["domains"] },
|
|
172
|
+
"domains:release_tracking": { method: "POST", path: "/v1/email/domains/{domain_id}/tracking/release", pathParams: ["domain_id"], topLevel: ["domain_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["domains"] },
|
|
173
|
+
"domains:share_dns_records": { method: "POST", path: "/v1/email/domains/{domain_id}/dns-records/share", pathParams: ["domain_id"], topLevel: ["domain_id", "emails"], collections: ["additionalFields"], query: [], body: ["emails"], jsonFields: [], structured: {}, renames: {}, arrayFields: ["emails"], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["domains"] },
|
|
174
|
+
"email:inbound_routes_create": { method: "POST", path: "/v1/email/inbound-routes", pathParams: [], topLevel: ["domain", "match_type", "action"], collections: ["additionalFields"], query: [], body: ["domain", "match_type", "match_value", "action", "target_mailbox_id", "priority", "enabled"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_management"] },
|
|
175
|
+
"email:inbound_routes_list": { method: "GET", path: "/v1/email/inbound-routes", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["domain", "enabled", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["email_management"] },
|
|
176
|
+
"email:inbound_routes_get": { method: "GET", path: "/v1/email/inbound-routes/{route_id}", pathParams: ["route_id"], topLevel: ["route_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["email_management"] },
|
|
177
|
+
"email:inbound_routes_update": { method: "PATCH", path: "/v1/email/inbound-routes/{route_id}", pathParams: ["route_id"], topLevel: ["route_id"], collections: ["updateFields"], query: [], body: ["match_type", "match_value", "action", "target_mailbox_id", "priority", "enabled"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: ["match_value", "target_mailbox_id"], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_management"] },
|
|
178
|
+
"email:inbound_routes_delete": { method: "DELETE", path: "/v1/email/inbound-routes/{route_id}", pathParams: ["route_id"], topLevel: ["route_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_management"] },
|
|
179
|
+
"email:smtp_configs_list": { method: "GET", path: "/v1/email/smtp/configs", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["sort", "order", "limit", "starting_after", "ending_before", "include_total"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["email_management"] },
|
|
180
|
+
"email:smtp_configs_get": { method: "GET", path: "/v1/email/smtp/configs/{api_key_id}", pathParams: ["api_key_id"], topLevel: ["api_key_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["email_management"] },
|
|
181
|
+
"email:smtp_configs_update": { method: "PATCH", path: "/v1/email/smtp/configs/{api_key_id}", pathParams: ["api_key_id"], topLevel: ["api_key_id"], collections: ["updateFields"], query: [], body: ["ip_pool_id", "category", "tags", "track_opens", "track_clicks"], jsonFields: [], structured: { "tags": "list" }, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: ["ip_pool_id"], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["email_management"] },
|
|
182
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CREDENTIAL_SCOPES = void 0;
|
|
4
|
+
// Code generated by surface-gen; DO NOT EDIT.
|
|
5
|
+
exports.CREDENTIAL_SCOPES = ["domains", "email_management", "email_marketing", "emails", "lookup", "mailbox", "mailbox_management", "numbers", "preferences", "realtime", "sms", "sms_management", "verify", "voice", "webhooks", "whatsapp", "workspace", "workspace:read"];
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pickerRowName = pickerRowName;
|
|
4
|
+
exports.pickerRows = pickerRows;
|
|
5
|
+
exports.runPicker = runPicker;
|
|
6
|
+
exports.birdListSearch = birdListSearch;
|
|
7
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
8
|
+
const pickers_gen_1 = require("./generated/pickers.gen");
|
|
9
|
+
const routing_gen_1 = require("./generated/routing.gen");
|
|
10
|
+
const transport_1 = require("./transport");
|
|
11
|
+
const PICKER_PAGE_SIZE = 50;
|
|
12
|
+
const PICKER_FILTER_PAGES = 5;
|
|
13
|
+
// A label field may name a member of a nested object ("to.phone_number"), which
|
|
14
|
+
// is where a WhatsApp address keeps its number.
|
|
15
|
+
function readPath(row, field) {
|
|
16
|
+
const [head, member] = field.split(".");
|
|
17
|
+
if (member === undefined)
|
|
18
|
+
return row[head];
|
|
19
|
+
const nested = row[head];
|
|
20
|
+
if (typeof nested !== "object" || nested === null)
|
|
21
|
+
return undefined;
|
|
22
|
+
return nested[member];
|
|
23
|
+
}
|
|
24
|
+
// A row reads as its own label with the id it will store in parentheses, the
|
|
25
|
+
// shape the reference verified connector uses: two rows that read alike — two
|
|
26
|
+
// messages to one number — stay distinguishable, and what a pick sends is
|
|
27
|
+
// visible before it runs. A row with nothing to label it is its id.
|
|
28
|
+
function pickerRowName(row, fields) {
|
|
29
|
+
const id = typeof row.id === "string" ? row.id : "";
|
|
30
|
+
const qualify = (label) => (id === "" ? label : `${label} (${id})`);
|
|
31
|
+
for (const field of fields) {
|
|
32
|
+
const value = readPath(row, field);
|
|
33
|
+
if (typeof value === "string" && value.trim() !== "")
|
|
34
|
+
return qualify(value.trim());
|
|
35
|
+
if (Array.isArray(value)) {
|
|
36
|
+
const list = value.filter((e) => typeof e === "string" && e.trim() !== "");
|
|
37
|
+
if (list.length > 0)
|
|
38
|
+
return qualify(list.join(", "));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return id;
|
|
42
|
+
}
|
|
43
|
+
function pickerRows(rows, picker, filter) {
|
|
44
|
+
const needle = filter?.trim().toLowerCase() ?? "";
|
|
45
|
+
const out = [];
|
|
46
|
+
for (const raw of rows) {
|
|
47
|
+
const row = (typeof raw === "object" && raw !== null ? raw : {});
|
|
48
|
+
const value = typeof row.id === "string" ? row.id : "";
|
|
49
|
+
if (value === "")
|
|
50
|
+
continue;
|
|
51
|
+
const name = pickerRowName(row, picker.fields);
|
|
52
|
+
if (needle !== "" &&
|
|
53
|
+
!name.toLowerCase().includes(needle) &&
|
|
54
|
+
!value.toLowerCase().includes(needle)) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
out.push({ name, value });
|
|
58
|
+
}
|
|
59
|
+
return out;
|
|
60
|
+
}
|
|
61
|
+
function pickerPath(ctx, picker) {
|
|
62
|
+
const route = routing_gen_1.birdRoutes[picker.route];
|
|
63
|
+
let path = route.path;
|
|
64
|
+
for (const name of picker.pathFrom) {
|
|
65
|
+
const raw = (0, transport_1.unwrapLocator)(ctx.getCurrentNodeParameter(name));
|
|
66
|
+
const value = typeof raw === "string" ? raw.trim() : "";
|
|
67
|
+
if (value === "") {
|
|
68
|
+
throw new n8n_workflow_1.NodeOperationError(ctx.getNode(), `Set ${name} before picking from this list — the list is scoped to it.`);
|
|
69
|
+
}
|
|
70
|
+
path = path.replace(`{${name}}`, encodeURIComponent(value));
|
|
71
|
+
}
|
|
72
|
+
return path;
|
|
73
|
+
}
|
|
74
|
+
async function runPicker(ctx, picker, filter, paginationToken) {
|
|
75
|
+
const route = routing_gen_1.birdRoutes[picker.route];
|
|
76
|
+
const path = pickerPath(ctx, picker);
|
|
77
|
+
// A route that filters server-side has already answered the query; narrowing
|
|
78
|
+
// its rows again would drop the ones it matched on a field we do not show.
|
|
79
|
+
const clientFilter = picker.search === "" ? filter : undefined;
|
|
80
|
+
const results = [];
|
|
81
|
+
let cursor = paginationToken;
|
|
82
|
+
let pages = 0;
|
|
83
|
+
do {
|
|
84
|
+
const qs = {};
|
|
85
|
+
// A short list answers in one page and takes no cursor parameters; sending
|
|
86
|
+
// them anyway would put the picker's own paging on a route that has none.
|
|
87
|
+
if (route.paginated) {
|
|
88
|
+
qs.limit = PICKER_PAGE_SIZE;
|
|
89
|
+
if (cursor)
|
|
90
|
+
qs.starting_after = cursor;
|
|
91
|
+
}
|
|
92
|
+
if (picker.search !== "" && filter)
|
|
93
|
+
qs[picker.search] = filter;
|
|
94
|
+
const res = await (0, transport_1.birdRequest)(ctx, { method: route.method, path, qs });
|
|
95
|
+
const rows = res.data ?? [];
|
|
96
|
+
results.push(...pickerRows(rows, picker, clientFilter));
|
|
97
|
+
cursor = res.next_cursor;
|
|
98
|
+
pages++;
|
|
99
|
+
// A filter applied here only sees the rows already fetched, so a match on a
|
|
100
|
+
// later page would leave the dropdown empty with nothing to scroll for.
|
|
101
|
+
} while (clientFilter &&
|
|
102
|
+
results.length === 0 &&
|
|
103
|
+
cursor !== undefined &&
|
|
104
|
+
route.paginated &&
|
|
105
|
+
pages < PICKER_FILTER_PAGES);
|
|
106
|
+
return { results, paginationToken: cursor };
|
|
107
|
+
}
|
|
108
|
+
function birdListSearch() {
|
|
109
|
+
const methods = {};
|
|
110
|
+
for (const [name, picker] of Object.entries(pickers_gen_1.birdPickers)) {
|
|
111
|
+
methods[name] = async function (filter, paginationToken) {
|
|
112
|
+
return await runPicker(this, picker, filter, paginationToken);
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
return methods;
|
|
116
|
+
}
|