@graph8/sdk 0.251.0 → 0.260.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 (350) hide show
  1. package/README.md +9 -2
  2. package/dist/cli.js +216 -0
  3. package/dist/index.d.mts +104 -7
  4. package/dist/index.d.ts +104 -7
  5. package/dist/index.js +44 -3
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +44 -3
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/react.d.mts +102 -7
  10. package/dist/react.d.ts +102 -7
  11. package/dist/react.js +62 -11
  12. package/dist/react.js.map +1 -1
  13. package/dist/react.mjs +53 -12
  14. package/dist/react.mjs.map +1 -1
  15. package/dist/types/README.md +7 -0
  16. package/dist/types/agency.d.ts +20 -0
  17. package/dist/types/agentSetup.d.ts +57 -0
  18. package/dist/types/api.d.ts +127 -0
  19. package/dist/types/appClient.d.ts +99 -0
  20. package/dist/types/appPlatform.d.ts +269 -0
  21. package/dist/types/appTokens.d.ts +125 -0
  22. package/dist/types/apps.d.ts +130 -0
  23. package/dist/types/audiences.d.ts +88 -0
  24. package/dist/types/calendar.d.ts +55 -0
  25. package/dist/types/campaigns.d.ts +61 -0
  26. package/dist/types/chat.d.ts +35 -0
  27. package/dist/types/cli.d.ts +14 -0
  28. package/dist/types/companies.d.ts +123 -0
  29. package/dist/types/contacts.d.ts +200 -0
  30. package/dist/types/copilot.d.ts +31 -0
  31. package/dist/types/core.d.ts +1052 -0
  32. package/dist/types/deals.d.ts +215 -0
  33. package/dist/types/enrich.d.ts +51 -0
  34. package/dist/types/fields.d.ts +84 -0
  35. package/dist/types/forms.d.ts +16 -0
  36. package/dist/types/http.d.ts +141 -0
  37. package/dist/types/inbox.d.ts +123 -0
  38. package/dist/types/index.d.ts +63 -0
  39. package/dist/types/intent.d.ts +196 -0
  40. package/dist/types/lists.d.ts +44 -0
  41. package/dist/types/mailboxes.d.ts +240 -0
  42. package/dist/types/marketplace.d.ts +62 -0
  43. package/dist/types/meetings.d.ts +70 -0
  44. package/dist/types/newsletter.d.ts +212 -0
  45. package/dist/types/notes.d.ts +57 -0
  46. package/dist/types/objects.d.ts +281 -0
  47. package/dist/types/pipelines.d.ts +135 -0
  48. package/dist/types/quotes.d.ts +143 -0
  49. package/dist/types/react.d.ts +978 -0
  50. package/dist/types/search.d.ts +99 -0
  51. package/dist/types/sequences.d.ts +255 -0
  52. package/dist/types/signals.d.ts +28 -0
  53. package/dist/types/skills.d.ts +176 -0
  54. package/dist/types/snippet.d.ts +24 -0
  55. package/dist/types/studio.d.ts +161 -0
  56. package/dist/types/tasks.d.ts +101 -0
  57. package/dist/types/types.d.ts +45 -0
  58. package/dist/types/utils.d.ts +21 -0
  59. package/dist/types/version.d.ts +10 -0
  60. package/dist/types/visitors.d.ts +29 -0
  61. package/dist/types/voice.d.ts +304 -0
  62. package/dist/types/webhooks.d.ts +71 -0
  63. package/dist/types/workflows.d.ts +229 -0
  64. package/docs/agents.md +748 -0
  65. package/docs/api/README.md +165 -0
  66. package/docs/api/accounts.d.ts +396 -0
  67. package/docs/api/accounts.md +644 -0
  68. package/docs/api/adCampaigns.d.ts +707 -0
  69. package/docs/api/adCampaigns.md +1091 -0
  70. package/docs/api/adCreatives.d.ts +996 -0
  71. package/docs/api/adCreatives.md +1708 -0
  72. package/docs/api/agency.d.ts +556 -0
  73. package/docs/api/agency.md +845 -0
  74. package/docs/api/agent.d.ts +330 -0
  75. package/docs/api/agent.md +514 -0
  76. package/docs/api/agents.d.ts +1622 -0
  77. package/docs/api/agents.md +2860 -0
  78. package/docs/api/aiInbox.d.ts +1984 -0
  79. package/docs/api/aiInbox.md +3490 -0
  80. package/docs/api/analytics.d.ts +1273 -0
  81. package/docs/api/analytics.md +2095 -0
  82. package/docs/api/apiKeys.d.ts +252 -0
  83. package/docs/api/apiKeys.md +318 -0
  84. package/docs/api/appDeployments.d.ts +236 -0
  85. package/docs/api/appDeployments.md +471 -0
  86. package/docs/api/appDomains.d.ts +171 -0
  87. package/docs/api/appDomains.md +281 -0
  88. package/docs/api/appLogs.d.ts +120 -0
  89. package/docs/api/appLogs.md +159 -0
  90. package/docs/api/appObjects.d.ts +415 -0
  91. package/docs/api/appObjects.md +568 -0
  92. package/docs/api/appPages.d.ts +557 -0
  93. package/docs/api/appPages.md +796 -0
  94. package/docs/api/appPlatformTokens.d.ts +123 -0
  95. package/docs/api/appPlatformTokens.md +172 -0
  96. package/docs/api/appointments.d.ts +2361 -0
  97. package/docs/api/appointments.md +3917 -0
  98. package/docs/api/apps.d.ts +822 -0
  99. package/docs/api/apps.md +1342 -0
  100. package/docs/api/assertUpsert.d.ts +286 -0
  101. package/docs/api/assertUpsert.md +370 -0
  102. package/docs/api/audienceSyncs.d.ts +259 -0
  103. package/docs/api/audienceSyncs.md +395 -0
  104. package/docs/api/brandKit.d.ts +686 -0
  105. package/docs/api/brandKit.md +1133 -0
  106. package/docs/api/bugReports.d.ts +181 -0
  107. package/docs/api/bugReports.md +268 -0
  108. package/docs/api/by-path.md +3260 -0
  109. package/docs/api/calendarInvites.d.ts +117 -0
  110. package/docs/api/calendarInvites.md +148 -0
  111. package/docs/api/campaignWorkflows.d.ts +152 -0
  112. package/docs/api/campaignWorkflows.md +200 -0
  113. package/docs/api/campaigns.d.ts +721 -0
  114. package/docs/api/campaigns.md +1236 -0
  115. package/docs/api/channels.d.ts +171 -0
  116. package/docs/api/channels.md +235 -0
  117. package/docs/api/cliCampaigns.d.ts +205 -0
  118. package/docs/api/cliCampaigns.md +256 -0
  119. package/docs/api/cliPipelines.d.ts +324 -0
  120. package/docs/api/cliPipelines.md +562 -0
  121. package/docs/api/clickHouse.d.ts +115 -0
  122. package/docs/api/clickHouse.md +138 -0
  123. package/docs/api/companies.d.ts +1636 -0
  124. package/docs/api/companies.md +2211 -0
  125. package/docs/api/companyIntelligence.d.ts +299 -0
  126. package/docs/api/companyIntelligence.md +488 -0
  127. package/docs/api/contacts.d.ts +2173 -0
  128. package/docs/api/contacts.md +3143 -0
  129. package/docs/api/content.d.ts +968 -0
  130. package/docs/api/content.md +1667 -0
  131. package/docs/api/contentGridSkills.d.ts +177 -0
  132. package/docs/api/contentGridSkills.md +271 -0
  133. package/docs/api/copilot.d.ts +1017 -0
  134. package/docs/api/copilot.md +1765 -0
  135. package/docs/api/crmSyncs.d.ts +215 -0
  136. package/docs/api/crmSyncs.md +301 -0
  137. package/docs/api/customerSuccess.d.ts +491 -0
  138. package/docs/api/customerSuccess.md +776 -0
  139. package/docs/api/deals.d.ts +1696 -0
  140. package/docs/api/deals.md +2432 -0
  141. package/docs/api/deliverability.d.ts +418 -0
  142. package/docs/api/deliverability.md +677 -0
  143. package/docs/api/desk.d.ts +1765 -0
  144. package/docs/api/desk.md +3007 -0
  145. package/docs/api/dialer.d.ts +1185 -0
  146. package/docs/api/dialer.md +2166 -0
  147. package/docs/api/dialerAnalytics.d.ts +187 -0
  148. package/docs/api/dialerAnalytics.md +257 -0
  149. package/docs/api/documents.d.ts +895 -0
  150. package/docs/api/documents.md +1440 -0
  151. package/docs/api/duplicates.d.ts +195 -0
  152. package/docs/api/duplicates.md +315 -0
  153. package/docs/api/eSign.d.ts +38 -0
  154. package/docs/api/eSign.md +54 -0
  155. package/docs/api/eSignature.d.ts +242 -0
  156. package/docs/api/eSignature.md +341 -0
  157. package/docs/api/enrichment.d.ts +3207 -0
  158. package/docs/api/enrichment.md +5225 -0
  159. package/docs/api/events.d.ts +115 -0
  160. package/docs/api/events.md +105 -0
  161. package/docs/api/fields.d.ts +482 -0
  162. package/docs/api/fields.md +566 -0
  163. package/docs/api/forms.d.ts +1012 -0
  164. package/docs/api/forms.md +1542 -0
  165. package/docs/api/gtmCampaigns.d.ts +662 -0
  166. package/docs/api/gtmCampaigns.md +1044 -0
  167. package/docs/api/gtmContext.d.ts +1187 -0
  168. package/docs/api/gtmContext.md +2112 -0
  169. package/docs/api/gtmDeliverability.d.ts +60 -0
  170. package/docs/api/gtmDeliverability.md +63 -0
  171. package/docs/api/gtmKnowledgeBase.d.ts +76 -0
  172. package/docs/api/gtmKnowledgeBase.md +91 -0
  173. package/docs/api/gtmLaunchHelpers.d.ts +123 -0
  174. package/docs/api/gtmLaunchHelpers.md +148 -0
  175. package/docs/api/gtmLibrary.d.ts +448 -0
  176. package/docs/api/gtmLibrary.md +780 -0
  177. package/docs/api/health.d.ts +39 -0
  178. package/docs/api/health.md +58 -0
  179. package/docs/api/imageLibrary.d.ts +341 -0
  180. package/docs/api/imageLibrary.md +569 -0
  181. package/docs/api/imports.d.ts +157 -0
  182. package/docs/api/imports.md +174 -0
  183. package/docs/api/inbox.d.ts +709 -0
  184. package/docs/api/inbox.md +1067 -0
  185. package/docs/api/install.d.ts +213 -0
  186. package/docs/api/install.md +317 -0
  187. package/docs/api/installedApps.d.ts +131 -0
  188. package/docs/api/installedApps.md +241 -0
  189. package/docs/api/integrationStatus.d.ts +142 -0
  190. package/docs/api/integrationStatus.md +205 -0
  191. package/docs/api/integrations.d.ts +2327 -0
  192. package/docs/api/integrations.md +3791 -0
  193. package/docs/api/intent.d.ts +482 -0
  194. package/docs/api/intent.md +858 -0
  195. package/docs/api/knowledge.d.ts +501 -0
  196. package/docs/api/knowledge.md +843 -0
  197. package/docs/api/knowledgeBase.d.ts +84 -0
  198. package/docs/api/knowledgeBase.md +96 -0
  199. package/docs/api/landingPages.d.ts +1411 -0
  200. package/docs/api/landingPages.md +2488 -0
  201. package/docs/api/leads.d.ts +133 -0
  202. package/docs/api/leads.md +180 -0
  203. package/docs/api/library.d.ts +217 -0
  204. package/docs/api/library.md +338 -0
  205. package/docs/api/linkedIn.d.ts +227 -0
  206. package/docs/api/linkedIn.md +289 -0
  207. package/docs/api/linkedInOutreach.d.ts +727 -0
  208. package/docs/api/linkedInOutreach.md +990 -0
  209. package/docs/api/lists.d.ts +1106 -0
  210. package/docs/api/lists.md +1609 -0
  211. package/docs/api/logs.d.ts +71 -0
  212. package/docs/api/logs.md +70 -0
  213. package/docs/api/mailboxes.d.ts +1050 -0
  214. package/docs/api/mailboxes.md +1690 -0
  215. package/docs/api/marketingIntelligence.d.ts +256 -0
  216. package/docs/api/marketingIntelligence.md +454 -0
  217. package/docs/api/marketplace.d.ts +3173 -0
  218. package/docs/api/marketplace.md +5953 -0
  219. package/docs/api/mcp.d.ts +69 -0
  220. package/docs/api/mcp.md +69 -0
  221. package/docs/api/me.d.ts +54 -0
  222. package/docs/api/me.md +56 -0
  223. package/docs/api/meetings.d.ts +539 -0
  224. package/docs/api/meetings.md +747 -0
  225. package/docs/api/newsletter.d.ts +1613 -0
  226. package/docs/api/newsletter.md +2746 -0
  227. package/docs/api/notes.d.ts +517 -0
  228. package/docs/api/notes.md +888 -0
  229. package/docs/api/notifications.d.ts +94 -0
  230. package/docs/api/notifications.md +105 -0
  231. package/docs/api/objects.d.ts +621 -0
  232. package/docs/api/objects.md +1098 -0
  233. package/docs/api/openSearch.d.ts +234 -0
  234. package/docs/api/openSearch.md +297 -0
  235. package/docs/api/ops.d.ts +299 -0
  236. package/docs/api/ops.md +339 -0
  237. package/docs/api/orgGovernance.d.ts +393 -0
  238. package/docs/api/orgGovernance.md +623 -0
  239. package/docs/api/orgVideos.d.ts +184 -0
  240. package/docs/api/orgVideos.md +252 -0
  241. package/docs/api/organizationSettings.d.ts +626 -0
  242. package/docs/api/organizationSettings.md +911 -0
  243. package/docs/api/phoneNumbers.d.ts +484 -0
  244. package/docs/api/phoneNumbers.md +777 -0
  245. package/docs/api/profile.d.ts +329 -0
  246. package/docs/api/profile.md +540 -0
  247. package/docs/api/programmaticPages.d.ts +400 -0
  248. package/docs/api/programmaticPages.md +626 -0
  249. package/docs/api/providerDomains.d.ts +866 -0
  250. package/docs/api/providerDomains.md +1446 -0
  251. package/docs/api/providerUsage.d.ts +129 -0
  252. package/docs/api/providerUsage.md +186 -0
  253. package/docs/api/public.d.ts +69 -0
  254. package/docs/api/public.md +78 -0
  255. package/docs/api/publicCopilot.d.ts +67 -0
  256. package/docs/api/publicCopilot.md +80 -0
  257. package/docs/api/publicSignals.d.ts +66 -0
  258. package/docs/api/publicSignals.md +71 -0
  259. package/docs/api/publicVisitors.d.ts +97 -0
  260. package/docs/api/publicVisitors.md +118 -0
  261. package/docs/api/quotes.d.ts +1564 -0
  262. package/docs/api/quotes.md +2553 -0
  263. package/docs/api/radar.d.ts +808 -0
  264. package/docs/api/radar.md +1431 -0
  265. package/docs/api/radarReports.d.ts +208 -0
  266. package/docs/api/radarReports.md +306 -0
  267. package/docs/api/recordRoles.d.ts +143 -0
  268. package/docs/api/recordRoles.md +175 -0
  269. package/docs/api/repos.d.ts +146 -0
  270. package/docs/api/repos.md +211 -0
  271. package/docs/api/research.d.ts +295 -0
  272. package/docs/api/research.md +534 -0
  273. package/docs/api/revenue.d.ts +402 -0
  274. package/docs/api/revenue.md +608 -0
  275. package/docs/api/revenueAnalytics.d.ts +147 -0
  276. package/docs/api/revenueAnalytics.md +212 -0
  277. package/docs/api/revenueLifecycle.d.ts +207 -0
  278. package/docs/api/revenueLifecycle.md +274 -0
  279. package/docs/api/revenueRecords.d.ts +372 -0
  280. package/docs/api/revenueRecords.md +563 -0
  281. package/docs/api/roles.d.ts +431 -0
  282. package/docs/api/roles.md +812 -0
  283. package/docs/api/salesCoach.d.ts +877 -0
  284. package/docs/api/salesCoach.md +1540 -0
  285. package/docs/api/sandbox.d.ts +210 -0
  286. package/docs/api/sandbox.md +380 -0
  287. package/docs/api/scans.d.ts +104 -0
  288. package/docs/api/scans.md +136 -0
  289. package/docs/api/scheduleBuy.d.ts +293 -0
  290. package/docs/api/scheduleBuy.md +431 -0
  291. package/docs/api/scraping.d.ts +266 -0
  292. package/docs/api/scraping.md +383 -0
  293. package/docs/api/sdrAnalytics.d.ts +138 -0
  294. package/docs/api/sdrAnalytics.md +246 -0
  295. package/docs/api/search.d.ts +598 -0
  296. package/docs/api/search.md +866 -0
  297. package/docs/api/seo.d.ts +447 -0
  298. package/docs/api/seo.md +660 -0
  299. package/docs/api/sequenceLifecycle.d.ts +439 -0
  300. package/docs/api/sequenceLifecycle.md +513 -0
  301. package/docs/api/sequences.d.ts +1936 -0
  302. package/docs/api/sequences.md +3232 -0
  303. package/docs/api/settings.d.ts +448 -0
  304. package/docs/api/settings.md +731 -0
  305. package/docs/api/signals.d.ts +1441 -0
  306. package/docs/api/signals.md +2526 -0
  307. package/docs/api/signatures.d.ts +719 -0
  308. package/docs/api/signatures.md +1247 -0
  309. package/docs/api/skills.d.ts +230 -0
  310. package/docs/api/skills.md +466 -0
  311. package/docs/api/snippet.d.ts +85 -0
  312. package/docs/api/snippet.md +106 -0
  313. package/docs/api/socialPublishing.d.ts +824 -0
  314. package/docs/api/socialPublishing.md +1245 -0
  315. package/docs/api/studioDocuments.d.ts +244 -0
  316. package/docs/api/studioDocuments.md +348 -0
  317. package/docs/api/support.d.ts +90 -0
  318. package/docs/api/support.md +76 -0
  319. package/docs/api/suppressions.d.ts +241 -0
  320. package/docs/api/suppressions.md +343 -0
  321. package/docs/api/surveys.d.ts +847 -0
  322. package/docs/api/surveys.md +1223 -0
  323. package/docs/api/tasks.d.ts +813 -0
  324. package/docs/api/tasks.md +1344 -0
  325. package/docs/api/teamMembers.d.ts +668 -0
  326. package/docs/api/teamMembers.md +1040 -0
  327. package/docs/api/teams.d.ts +784 -0
  328. package/docs/api/teams.md +1395 -0
  329. package/docs/api/usage.d.ts +277 -0
  330. package/docs/api/usage.md +389 -0
  331. package/docs/api/visitors.d.ts +690 -0
  332. package/docs/api/visitors.md +1075 -0
  333. package/docs/api/voice.d.ts +4661 -0
  334. package/docs/api/voice.md +7905 -0
  335. package/docs/api/webAnalytics.d.ts +964 -0
  336. package/docs/api/webAnalytics.md +1452 -0
  337. package/docs/api/webChat.d.ts +1704 -0
  338. package/docs/api/webChat.md +2048 -0
  339. package/docs/api/webhooks.d.ts +251 -0
  340. package/docs/api/webhooks.md +386 -0
  341. package/docs/api/websiteEditor.d.ts +324 -0
  342. package/docs/api/websiteEditor.md +517 -0
  343. package/docs/api/work.d.ts +2298 -0
  344. package/docs/api/work.md +3096 -0
  345. package/docs/api/workbench.d.ts +2962 -0
  346. package/docs/api/workbench.md +4884 -0
  347. package/docs/api/workflows.d.ts +1218 -0
  348. package/docs/api/workflows.md +2302 -0
  349. package/docs/sdk-clients.md +4339 -0
  350. package/package.json +10 -3
@@ -0,0 +1,822 @@
1
+ /* Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. */
2
+
3
+ /**
4
+ * Types for `g8.api.apps` (Apps): 22 operations.
5
+ *
6
+ * For reading. In code, import from the package instead:
7
+ * import type { ApiInput, ApiOutput, G8Contract } from "@graph8/sdk";
8
+ * type In = ApiInput<"apply_app_manifest_apps__app_id__manifest_post">;
9
+ *
10
+ * Reference with examples: apps.md
11
+ */
12
+ /* eslint-disable */
13
+
14
+ /** `g8.api.apps.<member>` -> the operationId it calls. */
15
+ export interface AppsMembers {
16
+ applyAppManifest: "apply_app_manifest_apps__app_id__manifest_post";
17
+ clearAppLimit: "clear_app_limit_apps__app_id__limit_delete";
18
+ clearAppSource: "clear_app_source_apps__app_id__source_delete";
19
+ createApp: "create_app_apps_post";
20
+ createAppCredential: "create_app_credential_apps__app_id__credentials_post";
21
+ deleteAppSecret: "delete_app_secret_apps__app_id__secrets__secret_key__delete";
22
+ getApp: "get_app_apps__app_id__get";
23
+ getAppLimit: "get_app_limit_apps__app_id__limit_get";
24
+ getAppRuntime: "get_app_runtime_apps__app_id__runtime_get";
25
+ getAppUsage: "get_app_usage_apps__app_id__usage_get";
26
+ listAppCredentials: "list_app_credentials_apps__app_id__credentials_get";
27
+ listAppInstalls: "list_app_installs_apps__app_id__installs_get";
28
+ listAppSchemaVersions: "list_app_schema_versions_apps__app_id__schema_versions_get";
29
+ listAppSecrets: "list_app_secrets_apps__app_id__secrets_get";
30
+ listApps: "list_apps_apps_get";
31
+ publishAppSchemaVersion: "publish_app_schema_version_apps__app_id__schema_versions_post";
32
+ putAppSecret: "put_app_secret_apps__app_id__secrets__secret_key__put";
33
+ revokeAppCredential: "revoke_app_credential_apps__app_id__credentials__client_id__delete";
34
+ setAppLimit: "set_app_limit_apps__app_id__limit_put";
35
+ setAppSource: "set_app_source_apps__app_id__source_put";
36
+ setAppStatus: "set_app_status_apps__app_id__status_post";
37
+ validateAppManifest: "validate_app_manifest_apps_manifest_validate_post";
38
+ }
39
+
40
+ /** Input and output of every `g8.api.apps` operation, keyed by operationId. */
41
+ export interface AppsOperations {
42
+ /**
43
+ * POST /apps/{app_id}/manifest
44
+ * Apply App Manifest
45
+ * tier: write · scope: apps:write
46
+ */
47
+ apply_app_manifest_apps__app_id__manifest_post: {
48
+ input: {
49
+ path: {
50
+ app_id: string;
51
+ };
52
+ headers?: {
53
+ "X-Org-Id"?: string | null;
54
+ };
55
+ body: ManifestRequest;
56
+ };
57
+ output: ApiResponse_ApplyManifestResponse_;
58
+ };
59
+ /**
60
+ * DELETE /apps/{app_id}/limit
61
+ * Clear App Limit
62
+ * tier: destructive · scope: apps:delete
63
+ */
64
+ clear_app_limit_apps__app_id__limit_delete: {
65
+ input: {
66
+ path: {
67
+ app_id: string;
68
+ };
69
+ headers?: {
70
+ "X-Org-Id"?: string | null;
71
+ };
72
+ };
73
+ output: ApiResponse_NoneType_;
74
+ };
75
+ /**
76
+ * DELETE /apps/{app_id}/source
77
+ * Clear App Source
78
+ * tier: destructive · scope: apps:delete
79
+ */
80
+ clear_app_source_apps__app_id__source_delete: {
81
+ input: {
82
+ path: {
83
+ app_id: string;
84
+ };
85
+ headers?: {
86
+ "X-Org-Id"?: string | null;
87
+ };
88
+ };
89
+ output: ApiResponse_AppResponse_;
90
+ };
91
+ /**
92
+ * POST /apps
93
+ * Create App
94
+ * tier: write · scope: apps:write
95
+ */
96
+ create_app_apps_post: {
97
+ input: {
98
+ headers?: {
99
+ "X-Org-Id"?: string | null;
100
+ };
101
+ body: CreateAppRequest;
102
+ };
103
+ output: ApiResponse_AppResponse_;
104
+ };
105
+ /**
106
+ * POST /apps/{app_id}/credentials
107
+ * Create App Credential
108
+ * tier: write · scope: apps:write
109
+ */
110
+ create_app_credential_apps__app_id__credentials_post: {
111
+ input: {
112
+ path: {
113
+ app_id: string;
114
+ };
115
+ headers?: {
116
+ "X-Org-Id"?: string | null;
117
+ };
118
+ body: CreateCredentialRequest;
119
+ };
120
+ output: ApiResponse_CreatedCredentialResponse_;
121
+ };
122
+ /**
123
+ * DELETE /apps/{app_id}/secrets/{secret_key}
124
+ * Delete App Secret
125
+ * tier: destructive · scope: apps:delete
126
+ */
127
+ delete_app_secret_apps__app_id__secrets__secret_key__delete: {
128
+ input: {
129
+ path: {
130
+ app_id: string;
131
+ secret_key: string;
132
+ };
133
+ headers?: {
134
+ "X-Org-Id"?: string | null;
135
+ };
136
+ };
137
+ output: ApiResponse_dict_;
138
+ };
139
+ /**
140
+ * GET /apps/{app_id}
141
+ * Get App
142
+ * tier: read · scope: apps:read
143
+ */
144
+ get_app_apps__app_id__get: {
145
+ input: {
146
+ path: {
147
+ app_id: string;
148
+ };
149
+ headers?: {
150
+ "X-Org-Id"?: string | null;
151
+ };
152
+ };
153
+ output: ApiResponse_AppResponse_;
154
+ };
155
+ /**
156
+ * GET /apps/{app_id}/limit
157
+ * Get App Limit
158
+ * tier: read · scope: apps:read
159
+ */
160
+ get_app_limit_apps__app_id__limit_get: {
161
+ input: {
162
+ path: {
163
+ app_id: string;
164
+ };
165
+ headers?: {
166
+ "X-Org-Id"?: string | null;
167
+ };
168
+ };
169
+ output: ApiResponse_Union_AppLimitResponse__NoneType__;
170
+ };
171
+ /**
172
+ * GET /apps/{app_id}/runtime
173
+ * Get App Runtime
174
+ * tier: billable · scope: apps:run
175
+ */
176
+ get_app_runtime_apps__app_id__runtime_get: {
177
+ input: {
178
+ path: {
179
+ app_id: string;
180
+ };
181
+ headers?: {
182
+ "X-Org-Id"?: string | null;
183
+ };
184
+ };
185
+ output: ApiResponse_AppRuntimeResponse_;
186
+ };
187
+ /**
188
+ * GET /apps/{app_id}/usage
189
+ * Get App Usage
190
+ * tier: read · scope: apps:read
191
+ */
192
+ get_app_usage_apps__app_id__usage_get: {
193
+ input: {
194
+ path: {
195
+ app_id: string;
196
+ };
197
+ query?: {
198
+ /** Calendar month `YYYY-MM`. Defaults to the current month. */
199
+ period?: string | null;
200
+ };
201
+ headers?: {
202
+ "X-Org-Id"?: string | null;
203
+ };
204
+ };
205
+ output: ApiResponse_UsageSummaryResponse_;
206
+ };
207
+ /**
208
+ * GET /apps/{app_id}/credentials
209
+ * List App Credentials
210
+ * tier: read · scope: apps:read
211
+ */
212
+ list_app_credentials_apps__app_id__credentials_get: {
213
+ input: {
214
+ path: {
215
+ app_id: string;
216
+ };
217
+ headers?: {
218
+ "X-Org-Id"?: string | null;
219
+ };
220
+ };
221
+ output: ApiResponse_list_CredentialResponse__;
222
+ };
223
+ /**
224
+ * GET /apps/{app_id}/installs
225
+ * List App Installs
226
+ * tier: read · scope: apps:read
227
+ */
228
+ list_app_installs_apps__app_id__installs_get: {
229
+ input: {
230
+ path: {
231
+ app_id: string;
232
+ };
233
+ headers?: {
234
+ "X-Org-Id"?: string | null;
235
+ };
236
+ };
237
+ output: ApiResponse_list_InstallationResponse__;
238
+ };
239
+ /**
240
+ * GET /apps/{app_id}/schema-versions
241
+ * List App Schema Versions
242
+ * tier: read · scope: apps:read
243
+ */
244
+ list_app_schema_versions_apps__app_id__schema_versions_get: {
245
+ input: {
246
+ path: {
247
+ app_id: string;
248
+ };
249
+ headers?: {
250
+ "X-Org-Id"?: string | null;
251
+ };
252
+ };
253
+ output: ApiResponse_list_SchemaVersionResponse__;
254
+ };
255
+ /**
256
+ * GET /apps/{app_id}/secrets
257
+ * List App Secrets
258
+ * tier: read · scope: apps:read
259
+ */
260
+ list_app_secrets_apps__app_id__secrets_get: {
261
+ input: {
262
+ path: {
263
+ app_id: string;
264
+ };
265
+ headers?: {
266
+ "X-Org-Id"?: string | null;
267
+ };
268
+ };
269
+ output: ApiResponse_list_AppSecretResponse__;
270
+ };
271
+ /**
272
+ * GET /apps
273
+ * List Apps
274
+ * tier: read · scope: apps:read
275
+ */
276
+ list_apps_apps_get: {
277
+ input: {
278
+ headers?: {
279
+ "X-Org-Id"?: string | null;
280
+ };
281
+ };
282
+ output: ApiResponse_list_AppResponse__;
283
+ };
284
+ /**
285
+ * POST /apps/{app_id}/schema-versions
286
+ * Publish App Schema Version
287
+ * tier: write · scope: apps:write
288
+ */
289
+ publish_app_schema_version_apps__app_id__schema_versions_post: {
290
+ input: {
291
+ path: {
292
+ app_id: string;
293
+ };
294
+ headers?: {
295
+ "X-Org-Id"?: string | null;
296
+ };
297
+ body: PublishSchemaVersionRequest;
298
+ };
299
+ output: ApiResponse_PublishSchemaVersionResponse_;
300
+ };
301
+ /**
302
+ * PUT /apps/{app_id}/secrets/{secret_key}
303
+ * Put App Secret
304
+ * tier: write · scope: apps:write
305
+ */
306
+ put_app_secret_apps__app_id__secrets__secret_key__put: {
307
+ input: {
308
+ path: {
309
+ app_id: string;
310
+ secret_key: string;
311
+ };
312
+ headers?: {
313
+ "X-Org-Id"?: string | null;
314
+ };
315
+ body: PutAppSecretRequest;
316
+ };
317
+ output: ApiResponse_AppSecretResponse_;
318
+ };
319
+ /**
320
+ * DELETE /apps/{app_id}/credentials/{client_id}
321
+ * Revoke App Credential
322
+ * tier: destructive · scope: apps:delete
323
+ */
324
+ revoke_app_credential_apps__app_id__credentials__client_id__delete: {
325
+ input: {
326
+ path: {
327
+ app_id: string;
328
+ client_id: string;
329
+ };
330
+ headers?: {
331
+ "X-Org-Id"?: string | null;
332
+ };
333
+ };
334
+ output: ApiResponse_CredentialResponse_;
335
+ };
336
+ /**
337
+ * PUT /apps/{app_id}/limit
338
+ * Set App Limit
339
+ * tier: write · scope: apps:write
340
+ */
341
+ set_app_limit_apps__app_id__limit_put: {
342
+ input: {
343
+ path: {
344
+ app_id: string;
345
+ };
346
+ headers?: {
347
+ "X-Org-Id"?: string | null;
348
+ };
349
+ body: SetAppLimitRequest;
350
+ };
351
+ output: ApiResponse_AppLimitResponse_;
352
+ };
353
+ /**
354
+ * PUT /apps/{app_id}/source
355
+ * Set App Source
356
+ * tier: write · scope: apps:write
357
+ */
358
+ set_app_source_apps__app_id__source_put: {
359
+ input: {
360
+ path: {
361
+ app_id: string;
362
+ };
363
+ headers?: {
364
+ "X-Org-Id"?: string | null;
365
+ };
366
+ body: AppSourceRequest;
367
+ };
368
+ output: ApiResponse_AppResponse_;
369
+ };
370
+ /**
371
+ * POST /apps/{app_id}/status
372
+ * Set App Status
373
+ * tier: write · scope: apps:write
374
+ */
375
+ set_app_status_apps__app_id__status_post: {
376
+ input: {
377
+ path: {
378
+ app_id: string;
379
+ };
380
+ headers?: {
381
+ "X-Org-Id"?: string | null;
382
+ };
383
+ body: SetAppStatusRequest;
384
+ };
385
+ output: ApiResponse_AppResponse_;
386
+ };
387
+ /**
388
+ * POST /apps/manifest/validate
389
+ * Validate App Manifest
390
+ * tier: write · scope: apps:write
391
+ */
392
+ validate_app_manifest_apps_manifest_validate_post: {
393
+ input: {
394
+ headers?: {
395
+ "X-Org-Id"?: string | null;
396
+ };
397
+ body: ManifestRequest;
398
+ };
399
+ output: ApiResponse_ValidateManifestResponse_;
400
+ };
401
+ }
402
+
403
+ // 42 schemas referenced above (the same as G8Contract.<Name>).
404
+
405
+ export interface ApiResponse_AppLimitResponse_ {
406
+ data: AppLimitResponse;
407
+ pagination?: PaginationMeta | null;
408
+ }
409
+
410
+ export interface ApiResponse_AppResponse_ {
411
+ data: AppResponse;
412
+ pagination?: PaginationMeta | null;
413
+ }
414
+
415
+ export interface ApiResponse_AppRuntimeResponse_ {
416
+ data: AppRuntimeResponse;
417
+ pagination?: PaginationMeta | null;
418
+ }
419
+
420
+ export interface ApiResponse_AppSecretResponse_ {
421
+ data: AppSecretResponse;
422
+ pagination?: PaginationMeta | null;
423
+ }
424
+
425
+ export interface ApiResponse_ApplyManifestResponse_ {
426
+ data: ApplyManifestResponse;
427
+ pagination?: PaginationMeta | null;
428
+ }
429
+
430
+ export interface ApiResponse_CreatedCredentialResponse_ {
431
+ data: CreatedCredentialResponse;
432
+ pagination?: PaginationMeta | null;
433
+ }
434
+
435
+ export interface ApiResponse_CredentialResponse_ {
436
+ data: CredentialResponse;
437
+ pagination?: PaginationMeta | null;
438
+ }
439
+
440
+ export interface ApiResponse_NoneType_ {
441
+ data: null;
442
+ pagination?: PaginationMeta | null;
443
+ }
444
+
445
+ export interface ApiResponse_PublishSchemaVersionResponse_ {
446
+ data: PublishSchemaVersionResponse;
447
+ pagination?: PaginationMeta | null;
448
+ }
449
+
450
+ export interface ApiResponse_Union_AppLimitResponse__NoneType__ {
451
+ data: AppLimitResponse | null;
452
+ pagination?: PaginationMeta | null;
453
+ }
454
+
455
+ export interface ApiResponse_UsageSummaryResponse_ {
456
+ data: UsageSummaryResponse;
457
+ pagination?: PaginationMeta | null;
458
+ }
459
+
460
+ export interface ApiResponse_ValidateManifestResponse_ {
461
+ data: ValidateManifestResponse;
462
+ pagination?: PaginationMeta | null;
463
+ }
464
+
465
+ export interface ApiResponse_dict_ {
466
+ data: Record<string, unknown>;
467
+ pagination?: PaginationMeta | null;
468
+ }
469
+
470
+ export interface ApiResponse_list_AppResponse__ {
471
+ data: Array<AppResponse>;
472
+ pagination?: PaginationMeta | null;
473
+ }
474
+
475
+ export interface ApiResponse_list_AppSecretResponse__ {
476
+ data: Array<AppSecretResponse>;
477
+ pagination?: PaginationMeta | null;
478
+ }
479
+
480
+ export interface ApiResponse_list_CredentialResponse__ {
481
+ data: Array<CredentialResponse>;
482
+ pagination?: PaginationMeta | null;
483
+ }
484
+
485
+ export interface ApiResponse_list_InstallationResponse__ {
486
+ data: Array<InstallationResponse>;
487
+ pagination?: PaginationMeta | null;
488
+ }
489
+
490
+ export interface ApiResponse_list_SchemaVersionResponse__ {
491
+ data: Array<SchemaVersionResponse>;
492
+ pagination?: PaginationMeta | null;
493
+ }
494
+
495
+ /**
496
+ * An app's hard credit cap. Mirrors `AppLimitDto`.
497
+ *
498
+ * The endpoint returns `null` for no cap. There is no "unlimited" sentinel, so
499
+ * an accidental zero can never read as no limit.
500
+ */
501
+ export interface AppLimitResponse {
502
+ app_id: string;
503
+ created_at?: string | null;
504
+ credit_cap: number;
505
+ /** Cap window. `calendar_month` today. */
506
+ window: string;
507
+ }
508
+
509
+ /** One builder-owned app. Mirrors `AppDto`. */
510
+ export interface AppResponse {
511
+ app_id: string;
512
+ archived_at?: string | null;
513
+ builder_org_id: string;
514
+ created_at?: string | null;
515
+ default_hostname?: string | null;
516
+ name: string;
517
+ /** https-only origins a browser app token may be presented from. */
518
+ registered_origins?: Array<string>;
519
+ slug: string;
520
+ /** A POINTER to the credential (a secret-manager path), never the credential itself. */
521
+ source_credential_ref?: string | null;
522
+ source_default_branch?: string | null;
523
+ source_provider?: string | null;
524
+ /** Where this app's code lives. Null until bound. */
525
+ source_repo_url?: string | null;
526
+ /** Lifecycle state: `draft`, `published`, `suspended` or `archived`. `active` is accepted on write as a legacy spelling of `published`. */
527
+ status: string;
528
+ }
529
+
530
+ /**
531
+ * Whether an app is ready to be built and run, and what is missing (J9).
532
+ *
533
+ * A READINESS REPORT, not a promise. It answers from what the control plane
534
+ * knows: is a source bound, is a hostname assigned, are secrets declared, what
535
+ * did the last deployment do. It does NOT claim the cluster side is ready,
536
+ * because the namespace provisioner, the image registry and the runtime objects
537
+ * are separate work and none of them exist yet.
538
+ *
539
+ * `blockers` is the useful field and it is deliberately explicit. An agent
540
+ * driving a build needs to know WHY it cannot proceed, and a bare
541
+ * `ready: false` sends it guessing.
542
+ */
543
+ export interface AppRuntimeResponse {
544
+ app_id: string;
545
+ /** Each unmet prerequisite, named. Empty means ready. */
546
+ blockers?: Array<string>;
547
+ hostname_assigned: boolean;
548
+ latest_deployment_status?: string | null;
549
+ /** True only when nothing in `blockers` remains. False is the normal answer today. */
550
+ ready: boolean;
551
+ secrets_declared: number;
552
+ source_bound: boolean;
553
+ }
554
+
555
+ /**
556
+ * One declared secret. A POINTER and two timestamps, never a value.
557
+ *
558
+ * There is no `value` field and there must never be one. The control plane
559
+ * stores WHICH secrets an app declares and where they live, so a build can be
560
+ * rendered without the platform ever holding what the build will read.
561
+ */
562
+ export interface AppSecretResponse {
563
+ created_at?: string | null;
564
+ /** Where the value lives, e.g. a secret-manager path. Never the value. */
565
+ provider_ref?: string | null;
566
+ /** Last time this declaration was rewritten. Moves on every write, including one that repeats the same pointer: the pointer is not the secret, so an unchanged path does not mean an unchanged value. */
567
+ rotated_at?: string | null;
568
+ secret_key: string;
569
+ }
570
+
571
+ /**
572
+ * Bind an app to the repository a build should fetch (J1).
573
+ *
574
+ * PROVIDER IS VALIDATED HERE, NOT BY A CHECK CONSTRAINT. `ensure_public_tables`
575
+ * emits `ADD COLUMN IF NOT EXISTS`, which cannot add a CHECK to an already
576
+ * created table, and editing the constraint tuple alone is a silent no-op. So
577
+ * the vocabulary lives in `SOURCE_PROVIDERS` and this DTO is what enforces it,
578
+ * the same way `repos_router` already validates its provider.
579
+ *
580
+ * `credential_ref` is a POINTER, and the description says so on the wire. A
581
+ * builder who pastes a token here has put it in the control-plane row, in every
582
+ * backup of it, and in the response body of `GET /apps/{app_id}`. There is no
583
+ * way to un-send that, so the field is named and documented to make the mistake
584
+ * hard rather than merely regrettable.
585
+ */
586
+ export interface AppSourceRequest {
587
+ /** Secret-manager PATH for the fetch credential. Never the credential itself. */
588
+ credential_ref?: string | null;
589
+ /** Defaults to the repository's own default when omitted. */
590
+ default_branch?: string | null;
591
+ /** One of: github, gitlab, bitbucket. */
592
+ provider: string;
593
+ /** Clone URL. */
594
+ repo_url: string;
595
+ }
596
+
597
+ /**
598
+ * What an apply actually did, part by part.
599
+ *
600
+ * Each field answers "did this half happen", because a manifest declaring only
601
+ * `objects:` and one declaring only `backend:` are both legal and do different
602
+ * amounts of work. A caller should never have to infer that from a 200.
603
+ */
604
+ export interface ApplyManifestResponse {
605
+ app_id: string;
606
+ deploy_config_stored?: boolean;
607
+ materialization?: MaterializationSummary | null;
608
+ /** False when an identical schema was already published. The version named above exists either way; this is what says nothing changed. */
609
+ schema_created?: boolean;
610
+ schema_version?: SchemaVersionResponse | null;
611
+ summary: ManifestSummary;
612
+ }
613
+
614
+ /** Mirrors `CreateAppInput`. */
615
+ export interface CreateAppRequest {
616
+ name: string;
617
+ /** https-only origins a browser app token may be presented from. An http origin is rejected — a bearer token sent over http is a token disclosed to the network. */
618
+ registered_origins?: Array<string>;
619
+ /** Stable identifier, unique within your organization. Lowercased on write, so `CRM` and `crm` are the same app. */
620
+ slug: string;
621
+ }
622
+
623
+ /** A builder minting a service credential for one consented tenant. */
624
+ export interface CreateCredentialRequest {
625
+ /** The client organization this credential acts for. It must already have a consented installation of the app — a credential is bound to one tenant and cannot be pointed at another later. */
626
+ client_org_id: string;
627
+ }
628
+
629
+ /**
630
+ * The create response, and the ONLY time the secret is ever returned.
631
+ *
632
+ * Only the SHA-256 is stored — `developer_app_credentials` has no column that
633
+ * could hold a plaintext secret — so this response cannot be reissued. That is
634
+ * the point: a secret the platform can re-read is a secret the platform can
635
+ * leak.
636
+ */
637
+ export interface CreatedCredentialResponse {
638
+ app_id: string;
639
+ client_id: string;
640
+ client_org_id: string;
641
+ /** Shown ONCE. Store it now — only its hash is kept, so it cannot be retrieved again. Rotate by creating a new credential and revoking this one. */
642
+ client_secret: string;
643
+ created_at?: string | null;
644
+ revoked?: boolean;
645
+ }
646
+
647
+ /** A service credential. Carries NO secret. */
648
+ export interface CredentialResponse {
649
+ app_id: string;
650
+ client_id: string;
651
+ client_org_id: string;
652
+ created_at?: string | null;
653
+ revoked?: boolean;
654
+ }
655
+
656
+ /** One client org's install of an app. Mirrors `InstallationDto`. */
657
+ export interface InstallationResponse {
658
+ app_id: string;
659
+ client_org_id: string;
660
+ consented_scopes?: Array<string>;
661
+ created_at?: string | null;
662
+ install_id: string;
663
+ revoked_at?: string | null;
664
+ /** `pending`, `consented`, `revoked`, `suspended` or `expired`. */
665
+ status: string;
666
+ }
667
+
668
+ /** One validation problem, addressed to a line a builder can fix. */
669
+ export interface ManifestIssueResponse {
670
+ /** Machine-readable cause. Stable; safe to branch on. */
671
+ code: string;
672
+ message: string;
673
+ /** Pointer into the document, e.g. objects[0].attributes[1].type */
674
+ path: string;
675
+ }
676
+
677
+ /** A `graph8.app.yaml` document, verbatim. */
678
+ export interface ManifestRequest {
679
+ /** The full graph8.app.yaml document as text. Sent verbatim, including newlines. Rejected above 256 KiB by the parser. */
680
+ manifest: string;
681
+ }
682
+
683
+ /**
684
+ * What a valid manifest declares. The echo of a successful parse.
685
+ *
686
+ * Deliberately a summary and not the parsed document: a builder who wants the
687
+ * document already has it, and echoing it back would make this response the
688
+ * second place the shape is defined.
689
+ */
690
+ export interface ManifestSummary {
691
+ app_name?: string | null;
692
+ app_slug?: string | null;
693
+ attribute_count?: number;
694
+ has_backend?: boolean;
695
+ has_frontend?: boolean;
696
+ object_slugs?: Array<string>;
697
+ version: number;
698
+ }
699
+
700
+ /** How the fan-out went, as counts. Never tenant ids -- see module docstring. */
701
+ export interface MaterializationSummary {
702
+ failed?: number;
703
+ ready?: number;
704
+ /** Tenants already materialized on this exact digest. */
705
+ skipped?: number;
706
+ total?: number;
707
+ }
708
+
709
+ export interface PaginationMeta {
710
+ /** Whether there are more pages */
711
+ has_next: boolean;
712
+ /** Items per page */
713
+ limit: number;
714
+ /** Opaque cursor for the next page; null when there are no more items. Pass it back as the `cursor` query param to fetch the following page without computing page numbers. */
715
+ next_cursor?: string | null;
716
+ /** Current page number (1-indexed) */
717
+ page: number;
718
+ /** Total number of items */
719
+ total: number;
720
+ }
721
+
722
+ /**
723
+ * A schema publish carries ONLY declared objects.
724
+ *
725
+ * Not a whole `graph8.app.yaml`: `frontend`/`backend` are deploy-time build
726
+ * config (M6-5) and have no bearing on what a tenant's `cb_*` tables receive.
727
+ * Accepting them here would let a Dockerfile edit re-materialize every tenant.
728
+ */
729
+ export interface PublishSchemaVersionRequest {
730
+ /** Declared custom objects, in `graph8.app.yaml` `objects:` shape. */
731
+ objects: Array<unknown>;
732
+ }
733
+
734
+ /** The version, plus whether it was newly created and how the fan-out went. */
735
+ export interface PublishSchemaVersionResponse {
736
+ /** False when an identical schema was already published -- the retry no-op. */
737
+ created: boolean;
738
+ materialization: MaterializationSummary;
739
+ version: SchemaVersionResponse;
740
+ }
741
+
742
+ /**
743
+ * Declare (or rotate) one secret.
744
+ *
745
+ * `provider_ref` is the ONLY writable field, and it is a pointer. A `value`
746
+ * field here would make every backup of the control plane a place credentials
747
+ * leak from, which is why the table has no column for one.
748
+ */
749
+ export interface PutAppSecretRequest {
750
+ /** Secret-manager PATH for the value. Never the value itself. */
751
+ provider_ref?: string | null;
752
+ }
753
+
754
+ /** One published (or draft) object-schema version. */
755
+ export interface SchemaVersionResponse {
756
+ app_id: string;
757
+ created_at?: string | null;
758
+ deprecated_at?: string | null;
759
+ /** SHA-256 of the canonical schema. Re-publishing the same schema resolves here. */
760
+ digest: string;
761
+ /** The stored canonical schema. Self-describing, so the version needs no other source. */
762
+ manifest?: Record<string, unknown>;
763
+ published_at?: string | null;
764
+ schema_version_id: string;
765
+ status: string;
766
+ /** Human-facing ordinal. Nothing keys on it; the digest is the identity. */
767
+ version: number;
768
+ }
769
+
770
+ /**
771
+ * Set an app's hard credit cap for a window.
772
+ *
773
+ * ``window`` is optional and defaults to the only value the enum has today
774
+ * (`calendar_month`, D5: fixed monthly allowance, monthly reset, no rollover).
775
+ * Accepting it explicitly now means adding a second window later does not
776
+ * change this DTO's shape.
777
+ */
778
+ export interface SetAppLimitRequest {
779
+ /** Hard cap in credits for the window. `0` means 'cap at zero', NOT 'uncapped' -- to remove a cap, DELETE the limit instead. */
780
+ credit_cap: number;
781
+ /** Cap window. `calendar_month` is the only value today. */
782
+ window?: string;
783
+ }
784
+
785
+ /** Mirrors the portal's `setAppStatus(builderOrgId, appId, status)`. */
786
+ export interface SetAppStatusRequest {
787
+ /** `draft`, `published`, `suspended` or `archived`. `active` is accepted as the legacy spelling of `published`. */
788
+ status: string;
789
+ }
790
+
791
+ /** Credits an app consumed in one calendar month. Mirrors `UsageSummaryDto`. */
792
+ export interface UsageSummaryResponse {
793
+ app_id: string;
794
+ /** Everything deducted from list: the builder discount AND any hard-cap clamp. One compound number, not 'the 25%'. */
795
+ discount_credits?: number;
796
+ event_count: number;
797
+ /** Undiscounted list total for the period. `gross_credits - discount_credits == total_credits`. */
798
+ gross_credits?: number;
799
+ /** Credits per CLIENT org — whose data was touched, not who paid. The builder pays for all of them. */
800
+ per_client_credits?: Record<string, number>;
801
+ /** Net credits per operation id, so you can see which calls cost money. */
802
+ per_operation_credits?: Record<string, number>;
803
+ /** Net credits per BILLING org, who pays. The mirror of `per_client_credits`, which is whose data was touched. */
804
+ per_payer_credits?: Record<string, number>;
805
+ /** Calendar month, `YYYY-MM`. */
806
+ period: string;
807
+ total_credits: number;
808
+ }
809
+
810
+ /**
811
+ * A dry run. `valid` is the answer; `issues` is why not.
812
+ *
813
+ * 200 either way. A syntactically well-formed request that asks "is this
814
+ * manifest valid" and gets the answer "no" has been served correctly, and a
815
+ * 422 would make a builder's linter treat a working call as a transport
816
+ * failure.
817
+ */
818
+ export interface ValidateManifestResponse {
819
+ issues?: Array<ManifestIssueResponse>;
820
+ summary?: ManifestSummary | null;
821
+ valid: boolean;
822
+ }