@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,707 @@
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.adCampaigns` (Ad Campaigns): 19 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<"archive_campaign_ad_ad_campaigns__campaign_id__ads__ad_id__delete">;
9
+ *
10
+ * Reference with examples: adCampaigns.md
11
+ */
12
+ /* eslint-disable */
13
+
14
+ /** `g8.api.adCampaigns.<member>` -> the operationId it calls. */
15
+ export interface AdCampaignsMembers {
16
+ archiveCampaignAd: "archive_campaign_ad_ad_campaigns__campaign_id__ads__ad_id__delete";
17
+ createCampaignAd: "create_campaign_ad_ad_campaigns__campaign_id__ads_post";
18
+ createCampaignAdsBatch: "create_campaign_ads_batch_ad_campaigns__campaign_id__ads_batch_post";
19
+ deleteAdCampaign: "delete_ad_campaign_ad_campaigns__campaign_id__delete";
20
+ getAdCampaign: "get_ad_campaign_ad_campaigns__campaign_id__get";
21
+ getCampaignAd: "get_campaign_ad_ad_campaigns__campaign_id__ads__ad_id__get";
22
+ getCampaignEditableFields: "get_campaign_editable_fields_ad_campaigns__campaign_id__editable_get";
23
+ getPerCampaignMetrics: "get_per_campaign_metrics_ad_campaigns_metrics_get";
24
+ launchAdCampaign: "launch_ad_campaign_audience_syncs__config_id__launch_post";
25
+ listAdCampaigns: "list_ad_campaigns_ad_campaigns_get";
26
+ listCampaignAds: "list_campaign_ads_ad_campaigns__campaign_id__ads_get";
27
+ previewAdCampaignEdit: "preview_ad_campaign_edit_ad_campaigns__campaign_id__edit_preview_post";
28
+ refreshAllCampaignStatuses: "refresh_all_campaign_statuses_ad_campaigns_status_refresh_post";
29
+ refreshCampaignStatus: "refresh_campaign_status_ad_campaigns__campaign_id__status_refresh_post";
30
+ retryCampaignLaunch: "retry_campaign_launch_ad_campaigns__campaign_id__retry_post";
31
+ setCampaignAdStatus: "set_campaign_ad_status_ad_campaigns__campaign_id__ads__ad_id__status_post";
32
+ updateAdCampaign: "update_ad_campaign_ad_campaigns__campaign_id__put";
33
+ updateCampaignAd: "update_campaign_ad_ad_campaigns__campaign_id__ads__ad_id__patch";
34
+ uploadAdImage: "upload_ad_image_ad_campaigns_images_post";
35
+ }
36
+
37
+ /** Input and output of every `g8.api.adCampaigns` operation, keyed by operationId. */
38
+ export interface AdCampaignsOperations {
39
+ /**
40
+ * DELETE /ad-campaigns/{campaign_id}/ads/{ad_id}
41
+ * Archive Campaign Ad
42
+ * tier: destructive · scope: ads:delete
43
+ */
44
+ archive_campaign_ad_ad_campaigns__campaign_id__ads__ad_id__delete: {
45
+ input: {
46
+ path: {
47
+ /** Ad campaign ID */
48
+ campaign_id: number;
49
+ /** graph8 ad ID */
50
+ ad_id: number;
51
+ };
52
+ headers?: {
53
+ "X-Target-Org-Id"?: string | null;
54
+ };
55
+ };
56
+ output: ApiResponse_AdResponse_;
57
+ };
58
+ /**
59
+ * POST /ad-campaigns/{campaign_id}/ads
60
+ * Create Campaign Ad
61
+ * tier: external · scope: ads:run
62
+ */
63
+ create_campaign_ad_ad_campaigns__campaign_id__ads_post: {
64
+ input: {
65
+ path: {
66
+ /** Ad campaign ID */
67
+ campaign_id: number;
68
+ };
69
+ headers?: {
70
+ "X-Target-Org-Id"?: string | null;
71
+ };
72
+ body: AdCreateRequest;
73
+ };
74
+ output: ApiResponse_AdResponse_;
75
+ };
76
+ /**
77
+ * POST /ad-campaigns/{campaign_id}/ads/batch
78
+ * Create Campaign Ads Batch
79
+ * tier: external · scope: ads:run
80
+ */
81
+ create_campaign_ads_batch_ad_campaigns__campaign_id__ads_batch_post: {
82
+ input: {
83
+ path: {
84
+ /** Ad campaign ID */
85
+ campaign_id: number;
86
+ };
87
+ headers?: {
88
+ "X-Target-Org-Id"?: string | null;
89
+ };
90
+ body: AdBatchCreateRequest;
91
+ };
92
+ output: ApiResponse_AdBatchCreateResponse_;
93
+ };
94
+ /**
95
+ * DELETE /ad-campaigns/{campaign_id}
96
+ * Delete Ad Campaign
97
+ * tier: destructive · scope: ads:delete
98
+ */
99
+ delete_ad_campaign_ad_campaigns__campaign_id__delete: {
100
+ input: {
101
+ path: {
102
+ /** The ad campaign's id. */
103
+ campaign_id: number;
104
+ };
105
+ headers?: {
106
+ "X-Target-Org-Id"?: string | null;
107
+ };
108
+ };
109
+ output: ApiResponse_AdPayload_;
110
+ };
111
+ /**
112
+ * GET /ad-campaigns/{campaign_id}
113
+ * Get Ad Campaign
114
+ * tier: read · scope: ads:read
115
+ */
116
+ get_ad_campaign_ad_campaigns__campaign_id__get: {
117
+ input: {
118
+ path: {
119
+ /** Ad campaign ID */
120
+ campaign_id: number;
121
+ };
122
+ headers?: {
123
+ "X-Target-Org-Id"?: string | null;
124
+ };
125
+ };
126
+ output: ApiResponse_AdCampaignResponse_;
127
+ };
128
+ /**
129
+ * GET /ad-campaigns/{campaign_id}/ads/{ad_id}
130
+ * Get Campaign Ad
131
+ * tier: read · scope: ads:read
132
+ */
133
+ get_campaign_ad_ad_campaigns__campaign_id__ads__ad_id__get: {
134
+ input: {
135
+ path: {
136
+ /** Ad campaign ID */
137
+ campaign_id: number;
138
+ /** graph8 ad ID */
139
+ ad_id: number;
140
+ };
141
+ headers?: {
142
+ "X-Target-Org-Id"?: string | null;
143
+ };
144
+ };
145
+ output: ApiResponse_AdResponse_;
146
+ };
147
+ /**
148
+ * GET /ad-campaigns/{campaign_id}/editable
149
+ * Get Campaign Editable Fields
150
+ * tier: read · scope: ads:read
151
+ */
152
+ get_campaign_editable_fields_ad_campaigns__campaign_id__editable_get: {
153
+ input: {
154
+ path: {
155
+ /** The ad campaign's id. */
156
+ campaign_id: number;
157
+ };
158
+ headers?: {
159
+ "X-Target-Org-Id"?: string | null;
160
+ };
161
+ };
162
+ output: ApiResponse_AdPayload_;
163
+ };
164
+ /**
165
+ * GET /ad-campaigns/metrics
166
+ * Get Per Campaign Metrics
167
+ * tier: read · scope: ads:read
168
+ */
169
+ get_per_campaign_metrics_ad_campaigns_metrics_get: {
170
+ input: {
171
+ query?: {
172
+ /** Days to look back. */
173
+ days?: number;
174
+ /** One platform. Omit for all. */
175
+ platform?: ("meta" | "linkedin" | "google" | "x") | null;
176
+ ad_account_id?: string | null;
177
+ };
178
+ headers?: {
179
+ "X-Target-Org-Id"?: string | null;
180
+ };
181
+ };
182
+ output: ApiResponse_AdPayload_;
183
+ };
184
+ /**
185
+ * POST /audience-syncs/{config_id}/launch
186
+ * Launch Ad Campaign
187
+ * tier: external · scope: ads:run
188
+ */
189
+ launch_ad_campaign_audience_syncs__config_id__launch_post: {
190
+ input: {
191
+ path: {
192
+ /** The sync config whose audience the campaign targets. */
193
+ config_id: number;
194
+ };
195
+ headers?: {
196
+ "X-Target-Org-Id"?: string | null;
197
+ };
198
+ body: LaunchAdCampaignRequest;
199
+ };
200
+ output: ApiResponse_AdPayload_;
201
+ };
202
+ /**
203
+ * GET /ad-campaigns
204
+ * List Ad Campaigns
205
+ * tier: read · scope: ads:read
206
+ */
207
+ list_ad_campaigns_ad_campaigns_get: {
208
+ input: {
209
+ query?: {
210
+ /** Filter by platform: google | linkedin */
211
+ platform?: string | null;
212
+ };
213
+ headers?: {
214
+ "X-Target-Org-Id"?: string | null;
215
+ };
216
+ };
217
+ output: ApiResponse_list_AdCampaignResponse__;
218
+ };
219
+ /**
220
+ * GET /ad-campaigns/{campaign_id}/ads
221
+ * List Campaign Ads
222
+ * tier: read · scope: ads:read
223
+ */
224
+ list_campaign_ads_ad_campaigns__campaign_id__ads_get: {
225
+ input: {
226
+ path: {
227
+ /** Ad campaign ID */
228
+ campaign_id: number;
229
+ };
230
+ query?: {
231
+ include_archived?: boolean;
232
+ };
233
+ headers?: {
234
+ "X-Target-Org-Id"?: string | null;
235
+ };
236
+ };
237
+ output: ApiResponse_AdListResponse_;
238
+ };
239
+ /**
240
+ * POST /ad-campaigns/{campaign_id}/edit-preview
241
+ * Preview Ad Campaign Edit
242
+ * tier: external · scope: ads:run
243
+ */
244
+ preview_ad_campaign_edit_ad_campaigns__campaign_id__edit_preview_post: {
245
+ input: {
246
+ path: {
247
+ /** The ad campaign's id. */
248
+ campaign_id: number;
249
+ };
250
+ headers?: {
251
+ "X-Target-Org-Id"?: string | null;
252
+ };
253
+ body: UpdateAdCampaignRequest;
254
+ };
255
+ output: ApiResponse_AdPayload_;
256
+ };
257
+ /**
258
+ * POST /ad-campaigns/status-refresh
259
+ * Refresh All Campaign Statuses
260
+ * tier: external · scope: ads:run
261
+ */
262
+ refresh_all_campaign_statuses_ad_campaigns_status_refresh_post: {
263
+ input: {
264
+ headers?: {
265
+ "X-Target-Org-Id"?: string | null;
266
+ };
267
+ };
268
+ output: ApiResponse_AdPayload_;
269
+ };
270
+ /**
271
+ * POST /ad-campaigns/{campaign_id}/status-refresh
272
+ * Refresh Campaign Status
273
+ * tier: external · scope: ads:run
274
+ */
275
+ refresh_campaign_status_ad_campaigns__campaign_id__status_refresh_post: {
276
+ input: {
277
+ path: {
278
+ /** The ad campaign's id. */
279
+ campaign_id: number;
280
+ };
281
+ headers?: {
282
+ "X-Target-Org-Id"?: string | null;
283
+ };
284
+ };
285
+ output: ApiResponse_AdPayload_;
286
+ };
287
+ /**
288
+ * POST /ad-campaigns/{campaign_id}/retry
289
+ * Retry Campaign Launch
290
+ * tier: external · scope: ads:run
291
+ */
292
+ retry_campaign_launch_ad_campaigns__campaign_id__retry_post: {
293
+ input: {
294
+ path: {
295
+ /** The ad campaign's id. */
296
+ campaign_id: number;
297
+ };
298
+ headers?: {
299
+ "X-Target-Org-Id"?: string | null;
300
+ };
301
+ };
302
+ output: ApiResponse_AdPayload_;
303
+ };
304
+ /**
305
+ * POST /ad-campaigns/{campaign_id}/ads/{ad_id}/status
306
+ * Set Campaign Ad Status
307
+ * tier: external · scope: ads:run
308
+ */
309
+ set_campaign_ad_status_ad_campaigns__campaign_id__ads__ad_id__status_post: {
310
+ input: {
311
+ path: {
312
+ /** Ad campaign ID */
313
+ campaign_id: number;
314
+ /** graph8 ad ID */
315
+ ad_id: number;
316
+ };
317
+ headers?: {
318
+ "X-Target-Org-Id"?: string | null;
319
+ };
320
+ body: AdStatusRequest;
321
+ };
322
+ output: ApiResponse_AdResponse_;
323
+ };
324
+ /**
325
+ * PUT /ad-campaigns/{campaign_id}
326
+ * Update Ad Campaign
327
+ * tier: external · scope: ads:run
328
+ */
329
+ update_ad_campaign_ad_campaigns__campaign_id__put: {
330
+ input: {
331
+ path: {
332
+ /** The ad campaign's id. */
333
+ campaign_id: number;
334
+ };
335
+ headers?: {
336
+ "X-Target-Org-Id"?: string | null;
337
+ };
338
+ body: UpdateAdCampaignRequest;
339
+ };
340
+ output: ApiResponse_AdPayload_;
341
+ };
342
+ /**
343
+ * PATCH /ad-campaigns/{campaign_id}/ads/{ad_id}
344
+ * Update Campaign Ad
345
+ * tier: external · scope: ads:run
346
+ */
347
+ update_campaign_ad_ad_campaigns__campaign_id__ads__ad_id__patch: {
348
+ input: {
349
+ path: {
350
+ /** Ad campaign ID */
351
+ campaign_id: number;
352
+ /** graph8 ad ID */
353
+ ad_id: number;
354
+ };
355
+ headers?: {
356
+ "X-Target-Org-Id"?: string | null;
357
+ };
358
+ body: AdUpdateRequest;
359
+ };
360
+ output: ApiResponse_AdUpdateResponse_;
361
+ };
362
+ /**
363
+ * POST /ad-campaigns/images
364
+ * Upload Ad Image
365
+ * tier: external · scope: ads:run
366
+ */
367
+ upload_ad_image_ad_campaigns_images_post: {
368
+ input: {
369
+ headers?: {
370
+ "X-Target-Org-Id"?: string | null;
371
+ };
372
+ };
373
+ output: ApiResponse_AdPayload_;
374
+ };
375
+ }
376
+
377
+ // 21 schemas referenced above (the same as G8Contract.<Name>).
378
+
379
+ /**
380
+ * Add several ads at once — "launch these four creatives as four ads".
381
+ *
382
+ * Partial success is expected: one creative rejected on policy does not stop
383
+ * the others, and the response reports each outcome separately.
384
+ */
385
+ export interface AdBatchCreateRequest {
386
+ ads: Array<AdCreateRequest>;
387
+ }
388
+
389
+ export interface AdBatchCreateResponse {
390
+ campaign_id: number;
391
+ failed: number;
392
+ platform?: string | null;
393
+ requested: number;
394
+ results: Array<AdBatchResultItem>;
395
+ /** ok | partial — never render success off a 200 alone */
396
+ status: string;
397
+ succeeded: number;
398
+ }
399
+
400
+ export interface AdBatchResultItem {
401
+ ad?: AdResponse | null;
402
+ error?: string | null;
403
+ index: number;
404
+ status: string;
405
+ }
406
+
407
+ /**
408
+ * A launched paid-ad campaign.
409
+ *
410
+ * Creative fields are NOT published here even though they still exist on the
411
+ * underlying row for backwards compatibility. They are attributes of an ad,
412
+ * not of a campaign, and publishing them at campaign level would force either
413
+ * a breaking change or a permanent duplicate representation once a campaign
414
+ * holds more than one ad. Read them from ``/ad-campaigns/{id}/ads``.
415
+ */
416
+ export interface AdCampaignResponse {
417
+ /** Number of live (non-archived) ads in this campaign */
418
+ ad_count?: number;
419
+ created_at?: string | null;
420
+ currency?: string | null;
421
+ daily_budget?: number | null;
422
+ end_date?: string | null;
423
+ google_campaign_subtype?: string | null;
424
+ id: number;
425
+ launched_at?: string | null;
426
+ name: string;
427
+ objective?: string | null;
428
+ platform: string;
429
+ platform_campaign_id?: string | null;
430
+ start_date?: string | null;
431
+ status: string;
432
+ sync_config_id: number;
433
+ }
434
+
435
+ /**
436
+ * Add one ad to a campaign.
437
+ *
438
+ * Valid before launch (created with its siblings when the campaign launches)
439
+ * and after (pushed to the live campaign immediately). ``extra="forbid"`` so a
440
+ * field we never wired is a 422 rather than a silent success.
441
+ */
442
+ export interface AdCreateRequest {
443
+ copy_assets?: Record<string, unknown> | null;
444
+ creative_image_url?: string | null;
445
+ creative_image_url_portrait?: string | null;
446
+ creative_image_url_square?: string | null;
447
+ cta?: string | null;
448
+ description?: string | null;
449
+ destination_url?: string | null;
450
+ headline?: string | null;
451
+ logo_image_url?: string | null;
452
+ name?: string | null;
453
+ primary_text?: string | null;
454
+ source_ad_creative_id?: string | null;
455
+ }
456
+
457
+ export interface AdListResponse {
458
+ ads: Array<AdResponse>;
459
+ campaign_id: number;
460
+ count: number;
461
+ platform?: string | null;
462
+ }
463
+
464
+ /** One ad-platform object, or one handler response. */
465
+ export type AdPayload = Record<string, unknown>;
466
+
467
+ /**
468
+ * One ad inside a campaign — a creative slot.
469
+ *
470
+ * ``id`` is graph8's, and it is stable: editing an ad almost always mints a new
471
+ * platform ad (LinkedIn creatives are immutable, and on Google only Search/RSA
472
+ * is mutable in place), but the slot and its measurement history survive that.
473
+ * Address an ad by this id, never by ``platform_ad_id``.
474
+ */
475
+ export interface AdResponse {
476
+ approval_nuance?: string | null;
477
+ campaign_id: number;
478
+ /** Multi-asset copy, e.g. {rsa_headlines: [...], rsa_descriptions: [...]} */
479
+ copy_assets?: Record<string, unknown> | null;
480
+ created_at?: string | null;
481
+ creative_image_url?: string | null;
482
+ creative_image_url_portrait?: string | null;
483
+ creative_image_url_square?: string | null;
484
+ cta?: string | null;
485
+ description?: string | null;
486
+ destination_url?: string | null;
487
+ error_message?: string | null;
488
+ headline?: string | null;
489
+ /** graph8 ad id, stable across creative replacements. Null only for a campaign launched before per-ad control, until its first read. */
490
+ id?: number | null;
491
+ launched_at?: string | null;
492
+ logo_image_url?: string | null;
493
+ name?: string | null;
494
+ /** Current platform handle. Changes when the creative is replaced. */
495
+ platform_ad_id?: string | null;
496
+ policy_topics?: Array<Record<string, unknown>> | null;
497
+ primary_text?: string | null;
498
+ slot_index: number;
499
+ /** The Studio creative this ad was built from, when it came from Studio */
500
+ source_ad_creative_id?: string | null;
501
+ /** draft | launching | active | paused | archived | failed */
502
+ status: string;
503
+ }
504
+
505
+ /** Pause or resume one ad without touching its siblings or the campaign. */
506
+ export interface AdStatusRequest {
507
+ status: "active" | "paused";
508
+ }
509
+
510
+ /**
511
+ * Edit one ad. Omitted fields are unchanged.
512
+ *
513
+ * On a live campaign a creative change is applied as a REPLACE, because that
514
+ * is what the platforms permit. The response reports whether the platform ad
515
+ * was replaced so a caller knows review and learning restarted.
516
+ */
517
+ export interface AdUpdateRequest {
518
+ copy_assets?: Record<string, unknown> | null;
519
+ creative_image_url?: string | null;
520
+ creative_image_url_portrait?: string | null;
521
+ creative_image_url_square?: string | null;
522
+ cta?: string | null;
523
+ description?: string | null;
524
+ destination_url?: string | null;
525
+ headline?: string | null;
526
+ logo_image_url?: string | null;
527
+ name?: string | null;
528
+ primary_text?: string | null;
529
+ source_ad_creative_id?: string | null;
530
+ }
531
+
532
+ export interface AdUpdateResponse {
533
+ ad: AdResponse;
534
+ changed: Array<string>;
535
+ /** policy_review | learning_reset */
536
+ consequences?: Array<string>;
537
+ /** True when the platform ad was recreated; review and learning restart */
538
+ replaced_platform_ad: boolean;
539
+ }
540
+
541
+ export interface ApiResponse_AdBatchCreateResponse_ {
542
+ data: AdBatchCreateResponse;
543
+ pagination?: PaginationMeta | null;
544
+ }
545
+
546
+ export interface ApiResponse_AdCampaignResponse_ {
547
+ data: AdCampaignResponse;
548
+ pagination?: PaginationMeta | null;
549
+ }
550
+
551
+ export interface ApiResponse_AdListResponse_ {
552
+ data: AdListResponse;
553
+ pagination?: PaginationMeta | null;
554
+ }
555
+
556
+ export interface ApiResponse_AdPayload_ {
557
+ data: AdPayload;
558
+ pagination?: PaginationMeta | null;
559
+ }
560
+
561
+ export interface ApiResponse_AdResponse_ {
562
+ data: AdResponse;
563
+ pagination?: PaginationMeta | null;
564
+ }
565
+
566
+ export interface ApiResponse_AdUpdateResponse_ {
567
+ data: AdUpdateResponse;
568
+ pagination?: PaginationMeta | null;
569
+ }
570
+
571
+ export interface ApiResponse_list_AdCampaignResponse__ {
572
+ data: Array<AdCampaignResponse>;
573
+ pagination?: PaginationMeta | null;
574
+ }
575
+
576
+ export interface LaunchAdCampaignRequest {
577
+ ad_copy_variant_index?: number | null;
578
+ ad_image_document_id?: number | null;
579
+ /** Absolute UTC instant to auto-pause at (ISO-8601 with offset) */
580
+ auto_pause_at?: string | null;
581
+ /** IANA zone the user picked in (display/intent only) */
582
+ auto_pause_tz?: string | null;
583
+ creative_image_url?: string | null;
584
+ creative_image_url_portrait?: string | null;
585
+ creative_image_url_square?: string | null;
586
+ cta?: string | null;
587
+ currency?: string;
588
+ /** Demand Gen only: intent keywords for a custom segment (people who search these) */
589
+ custom_segment_keywords?: Array<string> | null;
590
+ /** Demand Gen only: competitor/relevant URLs for a custom segment (people who browse these) */
591
+ custom_segment_urls?: Array<string> | null;
592
+ /** Google Customer Match mode: observation (default) | targeting | exclusion */
593
+ customer_match_mode?: string | null;
594
+ daily_budget?: number;
595
+ destination_url?: string | null;
596
+ end_date?: string | null;
597
+ /** ISO 3166-1 alpha-2 country code for the location criterion (Google observation/exclusion modes) */
598
+ geo_target_country?: string | null;
599
+ /** Google campaign subtype: display (default) | demand_gen | search */
600
+ google_campaign_subtype?: string | null;
601
+ headline?: string | null;
602
+ /** Demand Gen only: attach the lookalike segment derived from the Customer Match list */
603
+ include_lookalike_audiences?: boolean | null;
604
+ logo_image_url?: string | null;
605
+ /** User-provided campaign name; auto-generated if empty */
606
+ name?: string | null;
607
+ objective?: string;
608
+ primary_text?: string | null;
609
+ /** Google Search only: 2-4 Responsive Search Ad descriptions (≤90 chars each) */
610
+ rsa_descriptions?: Array<string> | null;
611
+ /** Google Search only: 3-15 Responsive Search Ad headlines (≤30 chars each) */
612
+ rsa_headlines?: Array<string> | null;
613
+ /** Google Search only: [{text, match_type: broad|phrase|exact, negative: bool}] */
614
+ search_keywords?: Array<Record<string, unknown>> | null;
615
+ /** Google Video only: placement switches — youtube_in_stream | youtube_in_feed | youtube_shorts | discover | gmail | display | maps (true/false) */
616
+ selected_channels?: Record<string, boolean> | null;
617
+ /** Meta special ad categories: HOUSING | EMPLOYMENT | CREDIT | FINANCIAL_PRODUCTS_SERVICES | ISSUES_ELECTIONS_POLITICS | ONLINE_GAMBLING_AND_GAMING | NONE */
618
+ special_ad_categories?: Array<string> | null;
619
+ /** Auto-pause once lifetime SERVED spend reaches this (account currency) */
620
+ spend_cap?: number | null;
621
+ start_date?: string;
622
+ /** Google Video only: 1-5 ids of the org's ad_video_assets rows to advertise */
623
+ video_asset_ids?: Array<number> | null;
624
+ /** Google Video only: advertiser/brand name shown on the ad (≤25 chars) */
625
+ video_business_name?: string | null;
626
+ /** Google Video only: CallToActionType enum value (e.g. LEARN_MORE, SIGN_UP) */
627
+ video_cta?: string | null;
628
+ /** Google Video only: 3-5 descriptions (≤90 chars each) */
629
+ video_descriptions?: Array<string> | null;
630
+ /** Google Video only: 3-5 headlines (≤40 chars each) */
631
+ video_headlines?: Array<string> | null;
632
+ /** Google Video only: 3-5 long headlines (≤90 chars each) */
633
+ video_long_headlines?: Array<string> | null;
634
+ }
635
+
636
+ export interface PaginationMeta {
637
+ /** Whether there are more pages */
638
+ has_next: boolean;
639
+ /** Items per page */
640
+ limit: number;
641
+ /** 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. */
642
+ next_cursor?: string | null;
643
+ /** Current page number (1-indexed) */
644
+ page: number;
645
+ /** Total number of items */
646
+ total: number;
647
+ }
648
+
649
+ /**
650
+ * Body for ``PUT /campaigns/{id}`` and ``POST /campaigns/{id}/edit-preview``.
651
+ *
652
+ * ``extra="forbid"`` is load-bearing (PRD hazard H8): the model used to inherit
653
+ * Pydantic's default ``extra="ignore"``, so the wizard could POST a field the
654
+ * backend had never wired, get a 200, and render a green "Campaign updated"
655
+ * toast for an edit that reached nothing. An unknown field is now a 422 —
656
+ * a phantom control is structurally impossible to ship.
657
+ *
658
+ * List-shaped fields (``keywords``, ``rsa_headlines``, ``rsa_descriptions``,
659
+ * ``geo_targets``) are COMPLETE desired lists, never deltas. Google replaces
660
+ * repeated fields wholesale, so a partial list silently deletes the omitted
661
+ * entries; the handler read-modify-writes against the platform's current state.
662
+ * ``None`` means "not provided / unchanged" — an empty list is a real request
663
+ * to clear, and is rejected where clearing would break the ad.
664
+ */
665
+ export interface UpdateAdCampaignRequest {
666
+ action?: string | null;
667
+ /** Absolute UTC instant to auto-pause at (ISO-8601 with offset) */
668
+ auto_pause_at?: string | null;
669
+ auto_pause_tz?: string | null;
670
+ /** Google only: COMPLETE desired campaign-level negative keywords [{text, match_type}] */
671
+ campaign_negative_keywords?: Array<Record<string, unknown>> | null;
672
+ clear_auto_stop?: boolean;
673
+ creative_image_url?: string | null;
674
+ creative_image_url_portrait?: string | null;
675
+ creative_image_url_square?: string | null;
676
+ cta?: string | null;
677
+ daily_budget?: number | null;
678
+ destination_url?: string | null;
679
+ end_date?: string | null;
680
+ /** Google only: COMPLETE list of geo target constant ids, e.g. ["2840"] */
681
+ geo_targets?: Array<string> | null;
682
+ headline?: string | null;
683
+ /** Google Search only: COMPLETE desired keyword list [{text, match_type, negative, paused, cpc_bid}] */
684
+ keywords?: Array<Record<string, unknown>> | null;
685
+ logo_image_url?: string | null;
686
+ name?: string | null;
687
+ primary_text?: string | null;
688
+ /** Google Search only: COMPLETE list of 2-4 RSA descriptions (<=90 chars each) */
689
+ rsa_descriptions?: Array<string> | null;
690
+ /** Google Search only: COMPLETE list of 3-15 RSA headlines (<=30 chars each) */
691
+ rsa_headlines?: Array<string> | null;
692
+ /** Google Video only: COMPLETE placement map (7 DemandGenSelectedChannels keys) */
693
+ selected_channels?: Record<string, boolean> | null;
694
+ spend_cap?: number | null;
695
+ /** Google Video only: COMPLETE list of 1-5 ad_video_assets ids (None = unchanged) */
696
+ video_asset_ids?: Array<number> | null;
697
+ /** Google Video only: ≤25 chars */
698
+ video_business_name?: string | null;
699
+ /** Google Video only: CallToActionType value */
700
+ video_cta?: string | null;
701
+ /** Google Video only: COMPLETE list, 3-5 × ≤90 */
702
+ video_descriptions?: Array<string> | null;
703
+ /** Google Video only: COMPLETE list, 3-5 × ≤40 */
704
+ video_headlines?: Array<string> | null;
705
+ /** Google Video only: COMPLETE list, 3-5 × ≤90 */
706
+ video_long_headlines?: Array<string> | null;
707
+ }