@zavudev/sdk 0.55.0 → 0.56.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.
Files changed (273) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/client.d.mts +25 -10
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +25 -10
  5. package/client.d.ts.map +1 -1
  6. package/client.js +15 -0
  7. package/client.js.map +1 -1
  8. package/client.mjs +15 -0
  9. package/client.mjs.map +1 -1
  10. package/package.json +1 -1
  11. package/resources/agent-templates.d.mts +97 -0
  12. package/resources/agent-templates.d.mts.map +1 -0
  13. package/resources/agent-templates.d.ts +97 -0
  14. package/resources/agent-templates.d.ts.map +1 -0
  15. package/resources/agent-templates.js +39 -0
  16. package/resources/agent-templates.js.map +1 -0
  17. package/resources/agent-templates.mjs +35 -0
  18. package/resources/agent-templates.mjs.map +1 -0
  19. package/resources/agents/agents.d.mts +462 -0
  20. package/resources/agents/agents.d.mts.map +1 -0
  21. package/resources/agents/agents.d.ts +462 -0
  22. package/resources/agents/agents.d.ts.map +1 -0
  23. package/resources/agents/agents.js +129 -0
  24. package/resources/agents/agents.js.map +1 -0
  25. package/resources/agents/agents.mjs +124 -0
  26. package/resources/agents/agents.mjs.map +1 -0
  27. package/resources/agents/index.d.mts +3 -0
  28. package/resources/agents/index.d.mts.map +1 -0
  29. package/resources/agents/index.d.ts +3 -0
  30. package/resources/agents/index.d.ts.map +1 -0
  31. package/resources/agents/index.js +9 -0
  32. package/resources/agents/index.js.map +1 -0
  33. package/resources/agents/index.mjs +4 -0
  34. package/resources/agents/index.mjs.map +1 -0
  35. package/resources/agents/senders.d.mts +54 -0
  36. package/resources/agents/senders.d.mts.map +1 -0
  37. package/resources/agents/senders.d.ts +54 -0
  38. package/resources/agents/senders.d.ts.map +1 -0
  39. package/resources/agents/senders.js +45 -0
  40. package/resources/agents/senders.js.map +1 -0
  41. package/resources/agents/senders.mjs +41 -0
  42. package/resources/agents/senders.mjs.map +1 -0
  43. package/resources/agents.d.mts +2 -0
  44. package/resources/agents.d.mts.map +1 -0
  45. package/resources/agents.d.ts +2 -0
  46. package/resources/agents.d.ts.map +1 -0
  47. package/resources/agents.js +6 -0
  48. package/resources/agents.js.map +1 -0
  49. package/resources/agents.mjs +3 -0
  50. package/resources/agents.mjs.map +1 -0
  51. package/resources/calls.d.mts +530 -0
  52. package/resources/calls.d.mts.map +1 -0
  53. package/resources/calls.d.ts +530 -0
  54. package/resources/calls.d.ts.map +1 -0
  55. package/resources/calls.js +76 -0
  56. package/resources/calls.js.map +1 -0
  57. package/resources/calls.mjs +72 -0
  58. package/resources/calls.mjs.map +1 -0
  59. package/resources/conversations.d.mts +360 -0
  60. package/resources/conversations.d.mts.map +1 -0
  61. package/resources/conversations.d.ts +360 -0
  62. package/resources/conversations.d.ts.map +1 -0
  63. package/resources/conversations.js +47 -0
  64. package/resources/conversations.js.map +1 -0
  65. package/resources/conversations.mjs +43 -0
  66. package/resources/conversations.mjs.map +1 -0
  67. package/resources/email-domains.d.mts +260 -0
  68. package/resources/email-domains.d.mts.map +1 -0
  69. package/resources/email-domains.d.ts +260 -0
  70. package/resources/email-domains.d.ts.map +1 -0
  71. package/resources/email-domains.js +77 -0
  72. package/resources/email-domains.js.map +1 -0
  73. package/resources/email-domains.mjs +73 -0
  74. package/resources/email-domains.mjs.map +1 -0
  75. package/resources/functions/functions.d.mts +122 -1
  76. package/resources/functions/functions.d.mts.map +1 -1
  77. package/resources/functions/functions.d.ts +122 -1
  78. package/resources/functions/functions.d.ts.map +1 -1
  79. package/resources/functions/functions.js +53 -0
  80. package/resources/functions/functions.js.map +1 -1
  81. package/resources/functions/functions.mjs +53 -0
  82. package/resources/functions/functions.mjs.map +1 -1
  83. package/resources/functions/git-link.d.mts +295 -0
  84. package/resources/functions/git-link.d.mts.map +1 -0
  85. package/resources/functions/git-link.d.ts +295 -0
  86. package/resources/functions/git-link.d.ts.map +1 -0
  87. package/resources/functions/git-link.js +97 -0
  88. package/resources/functions/git-link.js.map +1 -0
  89. package/resources/functions/git-link.mjs +93 -0
  90. package/resources/functions/git-link.mjs.map +1 -0
  91. package/resources/functions/index.d.mts +3 -1
  92. package/resources/functions/index.d.mts.map +1 -1
  93. package/resources/functions/index.d.ts +3 -1
  94. package/resources/functions/index.d.ts.map +1 -1
  95. package/resources/functions/index.js +5 -1
  96. package/resources/functions/index.js.map +1 -1
  97. package/resources/functions/index.mjs +2 -0
  98. package/resources/functions/index.mjs.map +1 -1
  99. package/resources/functions/triggers.d.mts +164 -0
  100. package/resources/functions/triggers.d.mts.map +1 -0
  101. package/resources/functions/triggers.d.ts +164 -0
  102. package/resources/functions/triggers.d.ts.map +1 -0
  103. package/resources/functions/triggers.js +74 -0
  104. package/resources/functions/triggers.js.map +1 -0
  105. package/resources/functions/triggers.mjs +70 -0
  106. package/resources/functions/triggers.mjs.map +1 -0
  107. package/resources/index.d.mts +10 -5
  108. package/resources/index.d.mts.map +1 -1
  109. package/resources/index.d.ts +10 -5
  110. package/resources/index.d.ts.map +1 -1
  111. package/resources/index.js +11 -1
  112. package/resources/index.js.map +1 -1
  113. package/resources/index.mjs +5 -0
  114. package/resources/index.mjs.map +1 -1
  115. package/resources/introspect.d.mts +74 -1
  116. package/resources/introspect.d.mts.map +1 -1
  117. package/resources/introspect.d.ts +74 -1
  118. package/resources/introspect.d.ts.map +1 -1
  119. package/resources/introspect.js +22 -0
  120. package/resources/introspect.js.map +1 -1
  121. package/resources/introspect.mjs +22 -0
  122. package/resources/introspect.mjs.map +1 -1
  123. package/resources/messages.d.mts +54 -1
  124. package/resources/messages.d.mts.map +1 -1
  125. package/resources/messages.d.ts +54 -1
  126. package/resources/messages.d.ts.map +1 -1
  127. package/resources/messages.js +18 -0
  128. package/resources/messages.js.map +1 -1
  129. package/resources/messages.mjs +18 -0
  130. package/resources/messages.mjs.map +1 -1
  131. package/resources/senders/agent/agent.d.mts +4 -3
  132. package/resources/senders/agent/agent.d.mts.map +1 -1
  133. package/resources/senders/agent/agent.d.ts +4 -3
  134. package/resources/senders/agent/agent.d.ts.map +1 -1
  135. package/resources/senders/agent/agent.js +2 -2
  136. package/resources/senders/agent/agent.js.map +1 -1
  137. package/resources/senders/agent/agent.mjs +2 -2
  138. package/resources/senders/agent/agent.mjs.map +1 -1
  139. package/resources/senders/agent/index.d.mts +2 -2
  140. package/resources/senders/agent/index.d.mts.map +1 -1
  141. package/resources/senders/agent/index.d.ts +2 -2
  142. package/resources/senders/agent/index.d.ts.map +1 -1
  143. package/resources/senders/agent/index.js +2 -2
  144. package/resources/senders/agent/index.js.map +1 -1
  145. package/resources/senders/agent/index.mjs +1 -1
  146. package/resources/senders/agent/index.mjs.map +1 -1
  147. package/resources/senders/agent/knowledge-bases/documents.d.mts +56 -1
  148. package/resources/senders/agent/knowledge-bases/documents.d.mts.map +1 -1
  149. package/resources/senders/agent/knowledge-bases/documents.d.ts +56 -1
  150. package/resources/senders/agent/knowledge-bases/documents.d.ts.map +1 -1
  151. package/resources/senders/agent/knowledge-bases/documents.js +33 -0
  152. package/resources/senders/agent/knowledge-bases/documents.js.map +1 -1
  153. package/resources/senders/agent/knowledge-bases/documents.mjs +33 -0
  154. package/resources/senders/agent/knowledge-bases/documents.mjs.map +1 -1
  155. package/resources/senders/agent/knowledge-bases/index.d.mts +1 -1
  156. package/resources/senders/agent/knowledge-bases/index.d.mts.map +1 -1
  157. package/resources/senders/agent/knowledge-bases/index.d.ts +1 -1
  158. package/resources/senders/agent/knowledge-bases/index.d.ts.map +1 -1
  159. package/resources/senders/agent/knowledge-bases/index.js.map +1 -1
  160. package/resources/senders/agent/knowledge-bases/index.mjs.map +1 -1
  161. package/resources/senders/agent/knowledge-bases/knowledge-bases.d.mts +2 -2
  162. package/resources/senders/agent/knowledge-bases/knowledge-bases.d.mts.map +1 -1
  163. package/resources/senders/agent/knowledge-bases/knowledge-bases.d.ts +2 -2
  164. package/resources/senders/agent/knowledge-bases/knowledge-bases.d.ts.map +1 -1
  165. package/resources/senders/agent/knowledge-bases/knowledge-bases.js.map +1 -1
  166. package/resources/senders/agent/knowledge-bases/knowledge-bases.mjs.map +1 -1
  167. package/resources/senders/agent/tools/index.d.mts +3 -0
  168. package/resources/senders/agent/tools/index.d.mts.map +1 -0
  169. package/resources/senders/agent/tools/index.d.ts +3 -0
  170. package/resources/senders/agent/tools/index.d.ts.map +1 -0
  171. package/resources/senders/agent/tools/index.js +9 -0
  172. package/resources/senders/agent/tools/index.js.map +1 -0
  173. package/resources/senders/agent/tools/index.mjs +4 -0
  174. package/resources/senders/agent/tools/index.mjs.map +1 -0
  175. package/resources/senders/agent/tools/tools.d.mts +338 -0
  176. package/resources/senders/agent/tools/tools.d.mts.map +1 -0
  177. package/resources/senders/agent/tools/tools.d.ts +338 -0
  178. package/resources/senders/agent/tools/tools.d.ts.map +1 -0
  179. package/resources/senders/agent/tools/tools.js +163 -0
  180. package/resources/senders/agent/tools/tools.js.map +1 -0
  181. package/resources/senders/agent/tools/tools.mjs +158 -0
  182. package/resources/senders/agent/tools/tools.mjs.map +1 -0
  183. package/resources/senders/agent/tools/webhook.d.mts +28 -0
  184. package/resources/senders/agent/tools/webhook.d.mts.map +1 -0
  185. package/resources/senders/agent/tools/webhook.d.ts +28 -0
  186. package/resources/senders/agent/tools/webhook.d.ts.map +1 -0
  187. package/resources/senders/agent/tools/webhook.js +28 -0
  188. package/resources/senders/agent/tools/webhook.js.map +1 -0
  189. package/resources/senders/agent/tools/webhook.mjs +24 -0
  190. package/resources/senders/agent/tools/webhook.mjs.map +1 -0
  191. package/resources/senders/agent/tools.d.mts +1 -270
  192. package/resources/senders/agent/tools.d.mts.map +1 -1
  193. package/resources/senders/agent/tools.d.ts +1 -270
  194. package/resources/senders/agent/tools.d.ts.map +1 -1
  195. package/resources/senders/agent/tools.js +2 -131
  196. package/resources/senders/agent/tools.js.map +1 -1
  197. package/resources/senders/agent/tools.mjs +1 -129
  198. package/resources/senders/agent/tools.mjs.map +1 -1
  199. package/resources/senders/index.d.mts +2 -1
  200. package/resources/senders/index.d.mts.map +1 -1
  201. package/resources/senders/index.d.ts +2 -1
  202. package/resources/senders/index.d.ts.map +1 -1
  203. package/resources/senders/index.js +3 -1
  204. package/resources/senders/index.js.map +1 -1
  205. package/resources/senders/index.mjs +1 -0
  206. package/resources/senders/index.mjs.map +1 -1
  207. package/resources/senders/senders.d.mts +4 -0
  208. package/resources/senders/senders.d.mts.map +1 -1
  209. package/resources/senders/senders.d.ts +4 -0
  210. package/resources/senders/senders.d.ts.map +1 -1
  211. package/resources/senders/senders.js +4 -0
  212. package/resources/senders/senders.js.map +1 -1
  213. package/resources/senders/senders.mjs +4 -0
  214. package/resources/senders/senders.mjs.map +1 -1
  215. package/resources/senders/telegram.d.mts +48 -0
  216. package/resources/senders/telegram.d.mts.map +1 -0
  217. package/resources/senders/telegram.d.ts +48 -0
  218. package/resources/senders/telegram.d.ts.map +1 -0
  219. package/resources/senders/telegram.js +41 -0
  220. package/resources/senders/telegram.js.map +1 -0
  221. package/resources/senders/telegram.mjs +37 -0
  222. package/resources/senders/telegram.mjs.map +1 -0
  223. package/resources/templates.d.mts +66 -1
  224. package/resources/templates.d.mts.map +1 -1
  225. package/resources/templates.d.ts +66 -1
  226. package/resources/templates.d.ts.map +1 -1
  227. package/resources/templates.js +31 -0
  228. package/resources/templates.js.map +1 -1
  229. package/resources/templates.mjs +31 -0
  230. package/resources/templates.mjs.map +1 -1
  231. package/resources/urls.d.mts +24 -1
  232. package/resources/urls.d.mts.map +1 -1
  233. package/resources/urls.d.ts +24 -1
  234. package/resources/urls.d.ts.map +1 -1
  235. package/resources/urls.js +15 -0
  236. package/resources/urls.js.map +1 -1
  237. package/resources/urls.mjs +15 -0
  238. package/resources/urls.mjs.map +1 -1
  239. package/src/client.ts +129 -0
  240. package/src/resources/agent-templates.ts +128 -0
  241. package/src/resources/agents/agents.ts +603 -0
  242. package/src/resources/agents/index.ts +21 -0
  243. package/src/resources/agents/senders.ts +79 -0
  244. package/src/resources/agents.ts +3 -0
  245. package/src/resources/calls.ts +638 -0
  246. package/src/resources/conversations.ts +472 -0
  247. package/src/resources/email-domains.ts +337 -0
  248. package/src/resources/functions/functions.ts +202 -0
  249. package/src/resources/functions/git-link.ts +398 -0
  250. package/src/resources/functions/index.ts +22 -0
  251. package/src/resources/functions/triggers.ts +227 -0
  252. package/src/resources/index.ts +57 -0
  253. package/src/resources/introspect.ts +105 -0
  254. package/src/resources/messages.ts +66 -0
  255. package/src/resources/senders/agent/agent.ts +23 -17
  256. package/src/resources/senders/agent/index.ts +4 -1
  257. package/src/resources/senders/agent/knowledge-bases/documents.ts +89 -0
  258. package/src/resources/senders/agent/knowledge-bases/index.ts +4 -0
  259. package/src/resources/senders/agent/knowledge-bases/knowledge-bases.ts +8 -0
  260. package/src/resources/senders/agent/tools/index.ts +21 -0
  261. package/src/resources/senders/agent/tools/tools.ts +460 -0
  262. package/src/resources/senders/agent/tools/webhook.ts +40 -0
  263. package/src/resources/senders/agent/tools.ts +1 -364
  264. package/src/resources/senders/index.ts +2 -0
  265. package/src/resources/senders/senders.ts +10 -0
  266. package/src/resources/senders/telegram.ts +73 -0
  267. package/src/resources/templates.ts +80 -0
  268. package/src/resources/urls.ts +35 -0
  269. package/src/version.ts +1 -1
  270. package/version.d.mts +1 -1
  271. package/version.d.ts +1 -1
  272. package/version.js +1 -1
  273. package/version.mjs +1 -1
@@ -0,0 +1,398 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../core/resource';
4
+ import { APIPromise } from '../../core/api-promise';
5
+ import { buildHeaders } from '../../internal/headers';
6
+ import { RequestOptions } from '../../internal/request-options';
7
+ import { path } from '../../internal/utils/path';
8
+
9
+ export class GitLink extends APIResource {
10
+ /**
11
+ * The link and its last deploy. Never returns the webhook secret.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * const gitLink = await client.functions.gitLink.retrieve(
16
+ * 'functionId',
17
+ * );
18
+ * ```
19
+ */
20
+ retrieve(functionID: string, options?: RequestOptions): APIPromise<GitLinkRetrieveResponse> {
21
+ return this._client.get(path`/v1/functions/${functionID}/git-link`, options);
22
+ }
23
+
24
+ /**
25
+ * Change the branch, the root directory, or whether pushes deploy. Pass at least
26
+ * one field. `rootDir: null` clears the subdirectory.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * const gitLink = await client.functions.gitLink.update(
31
+ * 'functionId',
32
+ * );
33
+ * ```
34
+ */
35
+ update(
36
+ functionID: string,
37
+ body: GitLinkUpdateParams,
38
+ options?: RequestOptions,
39
+ ): APIPromise<GitLinkUpdateResponse> {
40
+ return this._client.patch(path`/v1/functions/${functionID}/git-link`, { body, ...options });
41
+ }
42
+
43
+ /**
44
+ * Fetch the linked branch and deploy it without waiting for a push. Returns
45
+ * immediately; follow the outcome with `GET /v1/functions/{functionId}/git-link`,
46
+ * whose `lastStatus` and `lastError` describe the run.
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * const response = await client.functions.gitLink.deployNow(
51
+ * 'functionId',
52
+ * );
53
+ * ```
54
+ */
55
+ deployNow(functionID: string, options?: RequestOptions): APIPromise<GitLinkDeployNowResponse> {
56
+ return this._client.post(path`/v1/functions/${functionID}/git-link/deploy`, options);
57
+ }
58
+
59
+ /**
60
+ * Bind a repository to this function so every push to `branch` deploys it. A
61
+ * function holds at most one link; linking again returns 400.
62
+ *
63
+ * **The server decides how the link authenticates.** If the project has the Zavu
64
+ * GitHub App installed, the link uses that installation: private repositories work
65
+ * and there is nothing to configure in the repository. Otherwise it falls back to
66
+ * a manual link and the response carries a `webhookSecret` you add to the
67
+ * repository yourself. `connection` says which one you got.
68
+ *
69
+ * The repository is not checked against GitHub here, because it cannot be: an
70
+ * owner/repo that does not exist, or that the installation cannot see, is accepted
71
+ * and fails on the first deploy with a fetch error.
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * const response = await client.functions.gitLink.link(
76
+ * 'functionId',
77
+ * {
78
+ * owner: 'acme',
79
+ * repo: 'order-bot',
80
+ * branch: 'main',
81
+ * },
82
+ * );
83
+ * ```
84
+ */
85
+ link(
86
+ functionID: string,
87
+ body: GitLinkLinkParams,
88
+ options?: RequestOptions,
89
+ ): APIPromise<GitLinkLinkResponse> {
90
+ return this._client.post(path`/v1/functions/${functionID}/git-link`, { body, ...options });
91
+ }
92
+
93
+ /**
94
+ * Remove the link. The function and its deployments stay. A manual webhook left in
95
+ * the repository stops being accepted, so remove it there too.
96
+ *
97
+ * @example
98
+ * ```ts
99
+ * await client.functions.gitLink.unlink('functionId');
100
+ * ```
101
+ */
102
+ unlink(functionID: string, options?: RequestOptions): APIPromise<void> {
103
+ return this._client.delete(path`/v1/functions/${functionID}/git-link`, {
104
+ ...options,
105
+ headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
106
+ });
107
+ }
108
+ }
109
+
110
+ export interface GitLinkRetrieveResponse {
111
+ /**
112
+ * A GitHub repository bound to a function. A push to `branch` deploys the
113
+ * function. A function holds at most one link.
114
+ */
115
+ link: GitLinkRetrieveResponse.Link;
116
+
117
+ /**
118
+ * Endpoint that receives GitHub's push deliveries. Only needed on a `manual` link,
119
+ * where you add it to the repository yourself.
120
+ */
121
+ webhookUrl: string;
122
+
123
+ /**
124
+ * Shared secret for the repository's webhook. **Returned only when creating a
125
+ * `manual` link, and only there** — every later read strips it, and re-linking
126
+ * mints a new one. Absent entirely on an `app` link, which needs no secret of its
127
+ * own.
128
+ */
129
+ webhookSecret?: string;
130
+ }
131
+
132
+ export namespace GitLinkRetrieveResponse {
133
+ /**
134
+ * A GitHub repository bound to a function. A push to `branch` deploys the
135
+ * function. A function holds at most one link.
136
+ */
137
+ export interface Link {
138
+ id: string;
139
+
140
+ /**
141
+ * When false the link is kept and pushes are ignored.
142
+ */
143
+ autoDeploy: boolean;
144
+
145
+ /**
146
+ * Only pushes to this branch deploy.
147
+ */
148
+ branch: string;
149
+
150
+ /**
151
+ * How this link authenticates, decided by the server rather than by the caller.
152
+ *
153
+ * - `app`: the Zavu GitHub App is installed on the account. Pushes arrive on the
154
+ * app's webhook and private repositories work. Nothing to configure in the
155
+ * repository.
156
+ * - `manual`: no installation. The link carries its own secret and you add the
157
+ * webhook to the repository yourself.
158
+ */
159
+ connection: 'app' | 'manual';
160
+
161
+ createdAt: string;
162
+
163
+ functionId: string;
164
+
165
+ owner: string;
166
+
167
+ provider: 'github';
168
+
169
+ repo: string;
170
+
171
+ updatedAt: string;
172
+
173
+ lastCommitMessage?: string | null;
174
+
175
+ lastCommitSha?: string | null;
176
+
177
+ lastDeployAt?: string | null;
178
+
179
+ /**
180
+ * Why the last deploy failed. Null otherwise.
181
+ */
182
+ lastError?: string | null;
183
+
184
+ lastStatus?: 'deploying' | 'deployed' | 'failed' | null;
185
+
186
+ /**
187
+ * Subdirectory holding the project, for monorepos. Null when the project is at the
188
+ * repository root.
189
+ */
190
+ rootDir?: string | null;
191
+ }
192
+ }
193
+
194
+ export interface GitLinkUpdateResponse {
195
+ /**
196
+ * A GitHub repository bound to a function. A push to `branch` deploys the
197
+ * function. A function holds at most one link.
198
+ */
199
+ link: GitLinkUpdateResponse.Link;
200
+
201
+ /**
202
+ * Endpoint that receives GitHub's push deliveries. Only needed on a `manual` link,
203
+ * where you add it to the repository yourself.
204
+ */
205
+ webhookUrl: string;
206
+
207
+ /**
208
+ * Shared secret for the repository's webhook. **Returned only when creating a
209
+ * `manual` link, and only there** — every later read strips it, and re-linking
210
+ * mints a new one. Absent entirely on an `app` link, which needs no secret of its
211
+ * own.
212
+ */
213
+ webhookSecret?: string;
214
+ }
215
+
216
+ export namespace GitLinkUpdateResponse {
217
+ /**
218
+ * A GitHub repository bound to a function. A push to `branch` deploys the
219
+ * function. A function holds at most one link.
220
+ */
221
+ export interface Link {
222
+ id: string;
223
+
224
+ /**
225
+ * When false the link is kept and pushes are ignored.
226
+ */
227
+ autoDeploy: boolean;
228
+
229
+ /**
230
+ * Only pushes to this branch deploy.
231
+ */
232
+ branch: string;
233
+
234
+ /**
235
+ * How this link authenticates, decided by the server rather than by the caller.
236
+ *
237
+ * - `app`: the Zavu GitHub App is installed on the account. Pushes arrive on the
238
+ * app's webhook and private repositories work. Nothing to configure in the
239
+ * repository.
240
+ * - `manual`: no installation. The link carries its own secret and you add the
241
+ * webhook to the repository yourself.
242
+ */
243
+ connection: 'app' | 'manual';
244
+
245
+ createdAt: string;
246
+
247
+ functionId: string;
248
+
249
+ owner: string;
250
+
251
+ provider: 'github';
252
+
253
+ repo: string;
254
+
255
+ updatedAt: string;
256
+
257
+ lastCommitMessage?: string | null;
258
+
259
+ lastCommitSha?: string | null;
260
+
261
+ lastDeployAt?: string | null;
262
+
263
+ /**
264
+ * Why the last deploy failed. Null otherwise.
265
+ */
266
+ lastError?: string | null;
267
+
268
+ lastStatus?: 'deploying' | 'deployed' | 'failed' | null;
269
+
270
+ /**
271
+ * Subdirectory holding the project, for monorepos. Null when the project is at the
272
+ * repository root.
273
+ */
274
+ rootDir?: string | null;
275
+ }
276
+ }
277
+
278
+ export interface GitLinkDeployNowResponse {
279
+ scheduled: boolean;
280
+ }
281
+
282
+ export interface GitLinkLinkResponse {
283
+ /**
284
+ * A GitHub repository bound to a function. A push to `branch` deploys the
285
+ * function. A function holds at most one link.
286
+ */
287
+ link: GitLinkLinkResponse.Link;
288
+
289
+ /**
290
+ * Endpoint that receives GitHub's push deliveries. Only needed on a `manual` link,
291
+ * where you add it to the repository yourself.
292
+ */
293
+ webhookUrl: string;
294
+
295
+ /**
296
+ * Shared secret for the repository's webhook. **Returned only when creating a
297
+ * `manual` link, and only there** — every later read strips it, and re-linking
298
+ * mints a new one. Absent entirely on an `app` link, which needs no secret of its
299
+ * own.
300
+ */
301
+ webhookSecret?: string;
302
+ }
303
+
304
+ export namespace GitLinkLinkResponse {
305
+ /**
306
+ * A GitHub repository bound to a function. A push to `branch` deploys the
307
+ * function. A function holds at most one link.
308
+ */
309
+ export interface Link {
310
+ id: string;
311
+
312
+ /**
313
+ * When false the link is kept and pushes are ignored.
314
+ */
315
+ autoDeploy: boolean;
316
+
317
+ /**
318
+ * Only pushes to this branch deploy.
319
+ */
320
+ branch: string;
321
+
322
+ /**
323
+ * How this link authenticates, decided by the server rather than by the caller.
324
+ *
325
+ * - `app`: the Zavu GitHub App is installed on the account. Pushes arrive on the
326
+ * app's webhook and private repositories work. Nothing to configure in the
327
+ * repository.
328
+ * - `manual`: no installation. The link carries its own secret and you add the
329
+ * webhook to the repository yourself.
330
+ */
331
+ connection: 'app' | 'manual';
332
+
333
+ createdAt: string;
334
+
335
+ functionId: string;
336
+
337
+ owner: string;
338
+
339
+ provider: 'github';
340
+
341
+ repo: string;
342
+
343
+ updatedAt: string;
344
+
345
+ lastCommitMessage?: string | null;
346
+
347
+ lastCommitSha?: string | null;
348
+
349
+ lastDeployAt?: string | null;
350
+
351
+ /**
352
+ * Why the last deploy failed. Null otherwise.
353
+ */
354
+ lastError?: string | null;
355
+
356
+ lastStatus?: 'deploying' | 'deployed' | 'failed' | null;
357
+
358
+ /**
359
+ * Subdirectory holding the project, for monorepos. Null when the project is at the
360
+ * repository root.
361
+ */
362
+ rootDir?: string | null;
363
+ }
364
+ }
365
+
366
+ export interface GitLinkUpdateParams {
367
+ autoDeploy?: boolean;
368
+
369
+ branch?: string;
370
+
371
+ rootDir?: string | null;
372
+ }
373
+
374
+ export interface GitLinkLinkParams {
375
+ owner: string;
376
+
377
+ repo: string;
378
+
379
+ autoDeploy?: boolean;
380
+
381
+ branch?: string;
382
+
383
+ /**
384
+ * Subdirectory holding the project, for monorepos.
385
+ */
386
+ rootDir?: string;
387
+ }
388
+
389
+ export declare namespace GitLink {
390
+ export {
391
+ type GitLinkRetrieveResponse as GitLinkRetrieveResponse,
392
+ type GitLinkUpdateResponse as GitLinkUpdateResponse,
393
+ type GitLinkDeployNowResponse as GitLinkDeployNowResponse,
394
+ type GitLinkLinkResponse as GitLinkLinkResponse,
395
+ type GitLinkUpdateParams as GitLinkUpdateParams,
396
+ type GitLinkLinkParams as GitLinkLinkParams,
397
+ };
398
+ }
@@ -8,12 +8,26 @@ export {
8
8
  type FunctionDeleteResponse,
9
9
  type FunctionDeployResponse,
10
10
  type FunctionGetDeploymentResponse,
11
+ type FunctionListDeploymentsResponse,
12
+ type FunctionListEventTypesResponse,
13
+ type FunctionRollbackDeploymentResponse,
11
14
  type FunctionTailLogsResponse,
12
15
  type FunctionCreateParams,
13
16
  type FunctionUpdateParams,
14
17
  type FunctionDeployParams,
18
+ type FunctionListDeploymentsParams,
19
+ type FunctionRollbackDeploymentParams,
15
20
  type FunctionTailLogsParams,
16
21
  } from './functions';
22
+ export {
23
+ GitLink,
24
+ type GitLinkRetrieveResponse,
25
+ type GitLinkUpdateResponse,
26
+ type GitLinkDeployNowResponse,
27
+ type GitLinkLinkResponse,
28
+ type GitLinkUpdateParams,
29
+ type GitLinkLinkParams,
30
+ } from './git-link';
17
31
  export {
18
32
  Secrets,
19
33
  type SecretListResponse,
@@ -21,3 +35,11 @@ export {
21
35
  type SecretSetParams,
22
36
  type SecretUnsetParams,
23
37
  } from './secrets';
38
+ export {
39
+ Triggers,
40
+ type TriggerCreateResponse,
41
+ type TriggerUpdateResponse,
42
+ type TriggerListResponse,
43
+ type TriggerCreateParams,
44
+ type TriggerUpdateParams,
45
+ } from './triggers';
@@ -0,0 +1,227 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../core/resource';
4
+ import { APIPromise } from '../../core/api-promise';
5
+ import { buildHeaders } from '../../internal/headers';
6
+ import { RequestOptions } from '../../internal/request-options';
7
+ import { path } from '../../internal/utils/path';
8
+
9
+ export class Triggers extends APIResource {
10
+ /**
11
+ * Subscribe a function to one or more event types, optionally scoped to specific
12
+ * senders. Provide eventTypes and senderIds (use null in senderIds for all
13
+ * senders); a trigger is created for each event type and sender combination.
14
+ *
15
+ * The special event type `cron` runs the function on a schedule instead of a
16
+ * messaging event: include a `cron` field with a 5-field UTC cron expression
17
+ * (minimum granularity one minute). A cron trigger ignores the sender axis, and a
18
+ * function may hold several cron triggers with different expressions. The function
19
+ * receives an event with `type: "cron"` and `data.cron`.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const trigger = await client.functions.triggers.create(
24
+ * 'functionId',
25
+ * { eventTypes: ['message.inbound'], senderIds: [null] },
26
+ * );
27
+ * ```
28
+ */
29
+ create(
30
+ functionID: string,
31
+ body: TriggerCreateParams,
32
+ options?: RequestOptions,
33
+ ): APIPromise<TriggerCreateResponse> {
34
+ return this._client.post(path`/v1/functions/${functionID}/triggers`, { body, ...options });
35
+ }
36
+
37
+ /**
38
+ * Enable or disable a trigger
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * const trigger = await client.functions.triggers.update(
43
+ * 'triggerId',
44
+ * { active: true },
45
+ * );
46
+ * ```
47
+ */
48
+ update(
49
+ triggerID: string,
50
+ body: TriggerUpdateParams,
51
+ options?: RequestOptions,
52
+ ): APIPromise<TriggerUpdateResponse> {
53
+ return this._client.patch(path`/v1/functions/triggers/${triggerID}`, { body, ...options });
54
+ }
55
+
56
+ /**
57
+ * List function triggers
58
+ *
59
+ * @example
60
+ * ```ts
61
+ * const triggers = await client.functions.triggers.list(
62
+ * 'functionId',
63
+ * );
64
+ * ```
65
+ */
66
+ list(functionID: string, options?: RequestOptions): APIPromise<TriggerListResponse> {
67
+ return this._client.get(path`/v1/functions/${functionID}/triggers`, options);
68
+ }
69
+
70
+ /**
71
+ * Delete a trigger
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * await client.functions.triggers.delete('triggerId');
76
+ * ```
77
+ */
78
+ delete(triggerID: string, options?: RequestOptions): APIPromise<void> {
79
+ return this._client.delete(path`/v1/functions/triggers/${triggerID}`, {
80
+ ...options,
81
+ headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
82
+ });
83
+ }
84
+ }
85
+
86
+ export interface TriggerCreateResponse {
87
+ added: number;
88
+
89
+ /**
90
+ * Number of triggers that already existed.
91
+ */
92
+ skipped: number;
93
+
94
+ triggers: Array<TriggerCreateResponse.Trigger>;
95
+ }
96
+
97
+ export namespace TriggerCreateResponse {
98
+ /**
99
+ * A subscription that runs a Zavu Function when a messaging event fires.
100
+ */
101
+ export interface Trigger {
102
+ id: string;
103
+
104
+ active: boolean;
105
+
106
+ createdAt: string;
107
+
108
+ /**
109
+ * Event type that fires the function. See GET /v1/functions/event-types for the
110
+ * supported list. The special type `cron` fires on a schedule instead of a
111
+ * messaging event and carries a `cron` expression.
112
+ */
113
+ eventType: string;
114
+
115
+ functionId: string;
116
+
117
+ updatedAt: string;
118
+
119
+ /**
120
+ * 5-field cron expression (minute hour day-of-month month day-of-week), evaluated
121
+ * in UTC. Present only on `cron` triggers.
122
+ */
123
+ cron?: string | null;
124
+
125
+ /**
126
+ * Last time the schedule fired. Null until the first fire.
127
+ */
128
+ lastRunAt?: string | null;
129
+
130
+ /**
131
+ * Next scheduled fire time. Present only on `cron` triggers.
132
+ */
133
+ nextRunAt?: string | null;
134
+
135
+ /**
136
+ * Restrict the trigger to a single sender. Null means all senders in the project.
137
+ */
138
+ senderId?: string | null;
139
+ }
140
+ }
141
+
142
+ export interface TriggerUpdateResponse {
143
+ active: boolean;
144
+
145
+ ok: boolean;
146
+ }
147
+
148
+ export interface TriggerListResponse {
149
+ triggers: Array<TriggerListResponse.Trigger>;
150
+ }
151
+
152
+ export namespace TriggerListResponse {
153
+ /**
154
+ * A subscription that runs a Zavu Function when a messaging event fires.
155
+ */
156
+ export interface Trigger {
157
+ id: string;
158
+
159
+ active: boolean;
160
+
161
+ createdAt: string;
162
+
163
+ /**
164
+ * Event type that fires the function. See GET /v1/functions/event-types for the
165
+ * supported list. The special type `cron` fires on a schedule instead of a
166
+ * messaging event and carries a `cron` expression.
167
+ */
168
+ eventType: string;
169
+
170
+ functionId: string;
171
+
172
+ updatedAt: string;
173
+
174
+ /**
175
+ * 5-field cron expression (minute hour day-of-month month day-of-week), evaluated
176
+ * in UTC. Present only on `cron` triggers.
177
+ */
178
+ cron?: string | null;
179
+
180
+ /**
181
+ * Last time the schedule fired. Null until the first fire.
182
+ */
183
+ lastRunAt?: string | null;
184
+
185
+ /**
186
+ * Next scheduled fire time. Present only on `cron` triggers.
187
+ */
188
+ nextRunAt?: string | null;
189
+
190
+ /**
191
+ * Restrict the trigger to a single sender. Null means all senders in the project.
192
+ */
193
+ senderId?: string | null;
194
+ }
195
+ }
196
+
197
+ export interface TriggerCreateParams {
198
+ /**
199
+ * Event types to subscribe to.
200
+ */
201
+ eventTypes: Array<string>;
202
+
203
+ /**
204
+ * Senders to scope the triggers to. Use null for all senders.
205
+ */
206
+ senderIds: Array<string | null>;
207
+
208
+ /**
209
+ * Required when eventTypes includes `cron`: a 5-field cron expression (minute hour
210
+ * day-of-month month day-of-week), evaluated in UTC.
211
+ */
212
+ cron?: string;
213
+ }
214
+
215
+ export interface TriggerUpdateParams {
216
+ active: boolean;
217
+ }
218
+
219
+ export declare namespace Triggers {
220
+ export {
221
+ type TriggerCreateResponse as TriggerCreateResponse,
222
+ type TriggerUpdateResponse as TriggerUpdateResponse,
223
+ type TriggerListResponse as TriggerListResponse,
224
+ type TriggerCreateParams as TriggerCreateParams,
225
+ type TriggerUpdateParams as TriggerUpdateParams,
226
+ };
227
+ }