@ultracart/bq-skill 0.1.2

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 (303) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +952 -0
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +42 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/commands/alarm.d.ts +3 -0
  8. package/dist/commands/alarm.d.ts.map +1 -0
  9. package/dist/commands/alarm.js +146 -0
  10. package/dist/commands/alarm.js.map +1 -0
  11. package/dist/commands/config.d.ts +3 -0
  12. package/dist/commands/config.d.ts.map +1 -0
  13. package/dist/commands/config.js +749 -0
  14. package/dist/commands/config.js.map +1 -0
  15. package/dist/commands/deck.d.ts +3 -0
  16. package/dist/commands/deck.d.ts.map +1 -0
  17. package/dist/commands/deck.js +567 -0
  18. package/dist/commands/deck.js.map +1 -0
  19. package/dist/commands/dry-run.d.ts +3 -0
  20. package/dist/commands/dry-run.d.ts.map +1 -0
  21. package/dist/commands/dry-run.js +105 -0
  22. package/dist/commands/dry-run.js.map +1 -0
  23. package/dist/commands/history.d.ts +3 -0
  24. package/dist/commands/history.d.ts.map +1 -0
  25. package/dist/commands/history.js +127 -0
  26. package/dist/commands/history.js.map +1 -0
  27. package/dist/commands/init.d.ts +3 -0
  28. package/dist/commands/init.d.ts.map +1 -0
  29. package/dist/commands/init.js +302 -0
  30. package/dist/commands/init.js.map +1 -0
  31. package/dist/commands/install-skill.d.ts +3 -0
  32. package/dist/commands/install-skill.d.ts.map +1 -0
  33. package/dist/commands/install-skill.js +132 -0
  34. package/dist/commands/install-skill.js.map +1 -0
  35. package/dist/commands/list.d.ts +3 -0
  36. package/dist/commands/list.d.ts.map +1 -0
  37. package/dist/commands/list.js +89 -0
  38. package/dist/commands/list.js.map +1 -0
  39. package/dist/commands/query.d.ts +3 -0
  40. package/dist/commands/query.d.ts.map +1 -0
  41. package/dist/commands/query.js +152 -0
  42. package/dist/commands/query.js.map +1 -0
  43. package/dist/commands/render.d.ts +3 -0
  44. package/dist/commands/render.d.ts.map +1 -0
  45. package/dist/commands/render.js +107 -0
  46. package/dist/commands/render.js.map +1 -0
  47. package/dist/commands/run-all.d.ts +3 -0
  48. package/dist/commands/run-all.d.ts.map +1 -0
  49. package/dist/commands/run-all.js +285 -0
  50. package/dist/commands/run-all.js.map +1 -0
  51. package/dist/commands/run.d.ts +3 -0
  52. package/dist/commands/run.d.ts.map +1 -0
  53. package/dist/commands/run.js +321 -0
  54. package/dist/commands/run.js.map +1 -0
  55. package/dist/commands/schema.d.ts +3 -0
  56. package/dist/commands/schema.d.ts.map +1 -0
  57. package/dist/commands/schema.js +271 -0
  58. package/dist/commands/schema.js.map +1 -0
  59. package/dist/commands/validate.d.ts +3 -0
  60. package/dist/commands/validate.d.ts.map +1 -0
  61. package/dist/commands/validate.js +109 -0
  62. package/dist/commands/validate.js.map +1 -0
  63. package/dist/lib/alarm-notify.d.ts +16 -0
  64. package/dist/lib/alarm-notify.d.ts.map +1 -0
  65. package/dist/lib/alarm-notify.js +312 -0
  66. package/dist/lib/alarm-notify.js.map +1 -0
  67. package/dist/lib/alarm-state.d.ts +26 -0
  68. package/dist/lib/alarm-state.d.ts.map +1 -0
  69. package/dist/lib/alarm-state.js +118 -0
  70. package/dist/lib/alarm-state.js.map +1 -0
  71. package/dist/lib/alarm.d.ts +28 -0
  72. package/dist/lib/alarm.d.ts.map +1 -0
  73. package/dist/lib/alarm.js +215 -0
  74. package/dist/lib/alarm.js.map +1 -0
  75. package/dist/lib/analysis.d.ts +16 -0
  76. package/dist/lib/analysis.d.ts.map +1 -0
  77. package/dist/lib/analysis.js +134 -0
  78. package/dist/lib/analysis.js.map +1 -0
  79. package/dist/lib/bigquery.d.ts +55 -0
  80. package/dist/lib/bigquery.d.ts.map +1 -0
  81. package/dist/lib/bigquery.js +321 -0
  82. package/dist/lib/bigquery.js.map +1 -0
  83. package/dist/lib/config-writer.d.ts +3 -0
  84. package/dist/lib/config-writer.d.ts.map +1 -0
  85. package/dist/lib/config-writer.js +60 -0
  86. package/dist/lib/config-writer.js.map +1 -0
  87. package/dist/lib/config.d.ts +63 -0
  88. package/dist/lib/config.d.ts.map +1 -0
  89. package/dist/lib/config.js +151 -0
  90. package/dist/lib/config.js.map +1 -0
  91. package/dist/lib/dashboard.d.ts +3 -0
  92. package/dist/lib/dashboard.d.ts.map +1 -0
  93. package/dist/lib/dashboard.js +468 -0
  94. package/dist/lib/dashboard.js.map +1 -0
  95. package/dist/lib/deck.d.ts +58 -0
  96. package/dist/lib/deck.d.ts.map +1 -0
  97. package/dist/lib/deck.js +232 -0
  98. package/dist/lib/deck.js.map +1 -0
  99. package/dist/lib/deliver-email.d.ts +14 -0
  100. package/dist/lib/deliver-email.d.ts.map +1 -0
  101. package/dist/lib/deliver-email.js +360 -0
  102. package/dist/lib/deliver-email.js.map +1 -0
  103. package/dist/lib/deliver-slack.d.ts +6 -0
  104. package/dist/lib/deliver-slack.d.ts.map +1 -0
  105. package/dist/lib/deliver-slack.js +73 -0
  106. package/dist/lib/deliver-slack.js.map +1 -0
  107. package/dist/lib/deliver.d.ts +10 -0
  108. package/dist/lib/deliver.d.ts.map +1 -0
  109. package/dist/lib/deliver.js +95 -0
  110. package/dist/lib/deliver.js.map +1 -0
  111. package/dist/lib/llm/anthropic.d.ts +7 -0
  112. package/dist/lib/llm/anthropic.d.ts.map +1 -0
  113. package/dist/lib/llm/anthropic.js +69 -0
  114. package/dist/lib/llm/anthropic.js.map +1 -0
  115. package/dist/lib/llm/bedrock.d.ts +7 -0
  116. package/dist/lib/llm/bedrock.d.ts.map +1 -0
  117. package/dist/lib/llm/bedrock.js +67 -0
  118. package/dist/lib/llm/bedrock.js.map +1 -0
  119. package/dist/lib/llm/gemini.d.ts +7 -0
  120. package/dist/lib/llm/gemini.d.ts.map +1 -0
  121. package/dist/lib/llm/gemini.js +67 -0
  122. package/dist/lib/llm/gemini.js.map +1 -0
  123. package/dist/lib/llm/index.d.ts +5 -0
  124. package/dist/lib/llm/index.d.ts.map +1 -0
  125. package/dist/lib/llm/index.js +61 -0
  126. package/dist/lib/llm/index.js.map +1 -0
  127. package/dist/lib/llm/models.d.ts +5 -0
  128. package/dist/lib/llm/models.d.ts.map +1 -0
  129. package/dist/lib/llm/models.js +33 -0
  130. package/dist/lib/llm/models.js.map +1 -0
  131. package/dist/lib/llm/openai.d.ts +8 -0
  132. package/dist/lib/llm/openai.d.ts.map +1 -0
  133. package/dist/lib/llm/openai.js +48 -0
  134. package/dist/lib/llm/openai.js.map +1 -0
  135. package/dist/lib/llm/provider.d.ts +28 -0
  136. package/dist/lib/llm/provider.d.ts.map +1 -0
  137. package/dist/lib/llm/provider.js +3 -0
  138. package/dist/lib/llm/provider.js.map +1 -0
  139. package/dist/lib/manifest.d.ts +95 -0
  140. package/dist/lib/manifest.d.ts.map +1 -0
  141. package/dist/lib/manifest.js +105 -0
  142. package/dist/lib/manifest.js.map +1 -0
  143. package/dist/lib/params.d.ts +27 -0
  144. package/dist/lib/params.d.ts.map +1 -0
  145. package/dist/lib/params.js +192 -0
  146. package/dist/lib/params.js.map +1 -0
  147. package/dist/lib/pdf.d.ts +8 -0
  148. package/dist/lib/pdf.d.ts.map +1 -0
  149. package/dist/lib/pdf.js +86 -0
  150. package/dist/lib/pdf.js.map +1 -0
  151. package/dist/lib/renderer.d.ts +17 -0
  152. package/dist/lib/renderer.d.ts.map +1 -0
  153. package/dist/lib/renderer.js +166 -0
  154. package/dist/lib/renderer.js.map +1 -0
  155. package/dist/lib/schema-filter.d.ts +3 -0
  156. package/dist/lib/schema-filter.d.ts.map +1 -0
  157. package/dist/lib/schema-filter.js +49 -0
  158. package/dist/lib/schema-filter.js.map +1 -0
  159. package/dist/lib/template.d.ts +4 -0
  160. package/dist/lib/template.d.ts.map +1 -0
  161. package/dist/lib/template.js +37 -0
  162. package/dist/lib/template.js.map +1 -0
  163. package/dist/lib/validator.d.ts +8 -0
  164. package/dist/lib/validator.d.ts.map +1 -0
  165. package/dist/lib/validator.js +88 -0
  166. package/dist/lib/validator.js.map +1 -0
  167. package/package.json +59 -0
  168. package/schemas/deck.schema.json +122 -0
  169. package/schemas/report-manifest.schema.json +309 -0
  170. package/schemas/tables/README.md +45 -0
  171. package/schemas/tables/ultracart_dw/uc_affiliate_clicks.json +186 -0
  172. package/schemas/tables/ultracart_dw/uc_affiliate_commission_groups.json +317 -0
  173. package/schemas/tables/ultracart_dw/uc_affiliate_ledgers.json +404 -0
  174. package/schemas/tables/ultracart_dw/uc_affiliate_network_pixel_postback_logs.json +166 -0
  175. package/schemas/tables/ultracart_dw/uc_affiliate_network_pixels.json +106 -0
  176. package/schemas/tables/ultracart_dw/uc_affiliate_payments.json +204 -0
  177. package/schemas/tables/ultracart_dw/uc_affiliate_postback_logs.json +90 -0
  178. package/schemas/tables/ultracart_dw/uc_affiliates.json +425 -0
  179. package/schemas/tables/ultracart_dw/uc_auto_orders.json +13848 -0
  180. package/schemas/tables/ultracart_dw/uc_cart_abandons.json +3971 -0
  181. package/schemas/tables/ultracart_dw/uc_conversation_pbx_calls.json +374 -0
  182. package/schemas/tables/ultracart_dw/uc_conversations.json +374 -0
  183. package/schemas/tables/ultracart_dw/uc_coupons.json +1893 -0
  184. package/schemas/tables/ultracart_dw/uc_customers.json +11886 -0
  185. package/schemas/tables/ultracart_dw/uc_fraud_rules.json +239 -0
  186. package/schemas/tables/ultracart_dw/uc_gift_certificates.json +135 -0
  187. package/schemas/tables/ultracart_dw/uc_item_inventory_history.json +79 -0
  188. package/schemas/tables/ultracart_dw/uc_items.json +4437 -0
  189. package/schemas/tables/ultracart_dw/uc_orders.json +6629 -0
  190. package/schemas/tables/ultracart_dw/uc_rotating_transaction_gateway_history.json +271 -0
  191. package/schemas/tables/ultracart_dw/uc_rotating_transaction_gateways.json +416 -0
  192. package/schemas/tables/ultracart_dw/uc_shipping_methods.json +1372 -0
  193. package/schemas/tables/ultracart_dw/uc_storefront_customers.json +261 -0
  194. package/schemas/tables/ultracart_dw/uc_storefront_experiments.json +386 -0
  195. package/schemas/tables/ultracart_dw/uc_storefront_pages.json +513 -0
  196. package/schemas/tables/ultracart_dw/uc_storefront_upsell_offer_events.json +338 -0
  197. package/schemas/tables/ultracart_dw/uc_storefront_upsell_offers.json +431 -0
  198. package/schemas/tables/ultracart_dw/uc_storefront_upsell_paths.json +163 -0
  199. package/schemas/tables/ultracart_dw/uc_storefronts.json +62 -0
  200. package/schemas/tables/ultracart_dw/uc_surveys.json +238 -0
  201. package/schemas/tables/ultracart_dw/uc_workflow_tasks.json +377 -0
  202. package/schemas/tables/ultracart_dw/uc_zoho_desk_tickets.json +1184 -0
  203. package/schemas/tables/ultracart_dw_high/uc_affiliate_clicks.json +186 -0
  204. package/schemas/tables/ultracart_dw_high/uc_affiliate_commission_groups.json +317 -0
  205. package/schemas/tables/ultracart_dw_high/uc_affiliate_ledgers.json +404 -0
  206. package/schemas/tables/ultracart_dw_high/uc_affiliate_network_pixel_postback_logs.json +166 -0
  207. package/schemas/tables/ultracart_dw_high/uc_affiliate_network_pixels.json +106 -0
  208. package/schemas/tables/ultracart_dw_high/uc_affiliate_payments.json +204 -0
  209. package/schemas/tables/ultracart_dw_high/uc_affiliate_postback_logs.json +90 -0
  210. package/schemas/tables/ultracart_dw_high/uc_affiliates.json +425 -0
  211. package/schemas/tables/ultracart_dw_high/uc_auto_orders.json +14332 -0
  212. package/schemas/tables/ultracart_dw_high/uc_cart_abandons.json +4245 -0
  213. package/schemas/tables/ultracart_dw_high/uc_conversation_pbx_calls.json +415 -0
  214. package/schemas/tables/ultracart_dw_high/uc_conversations.json +415 -0
  215. package/schemas/tables/ultracart_dw_high/uc_coupons.json +1893 -0
  216. package/schemas/tables/ultracart_dw_high/uc_customers.json +12250 -0
  217. package/schemas/tables/ultracart_dw_high/uc_fraud_rules.json +239 -0
  218. package/schemas/tables/ultracart_dw_high/uc_gift_certificates.json +135 -0
  219. package/schemas/tables/ultracart_dw_high/uc_item_inventory_history.json +79 -0
  220. package/schemas/tables/ultracart_dw_high/uc_items.json +4437 -0
  221. package/schemas/tables/ultracart_dw_high/uc_orders.json +6871 -0
  222. package/schemas/tables/ultracart_dw_high/uc_rotating_transaction_gateway_history.json +271 -0
  223. package/schemas/tables/ultracart_dw_high/uc_rotating_transaction_gateways.json +416 -0
  224. package/schemas/tables/ultracart_dw_high/uc_shipping_methods.json +1372 -0
  225. package/schemas/tables/ultracart_dw_high/uc_storefront_customers.json +261 -0
  226. package/schemas/tables/ultracart_dw_high/uc_storefront_experiments.json +386 -0
  227. package/schemas/tables/ultracart_dw_high/uc_storefront_pages.json +513 -0
  228. package/schemas/tables/ultracart_dw_high/uc_storefront_upsell_offer_events.json +338 -0
  229. package/schemas/tables/ultracart_dw_high/uc_storefront_upsell_offers.json +431 -0
  230. package/schemas/tables/ultracart_dw_high/uc_storefront_upsell_paths.json +163 -0
  231. package/schemas/tables/ultracart_dw_high/uc_storefronts.json +62 -0
  232. package/schemas/tables/ultracart_dw_high/uc_surveys.json +269 -0
  233. package/schemas/tables/ultracart_dw_high/uc_workflow_tasks.json +377 -0
  234. package/schemas/tables/ultracart_dw_high/uc_zoho_desk_tickets.json +1330 -0
  235. package/schemas/tables/ultracart_dw_low/uc_affiliate_clicks.json +186 -0
  236. package/schemas/tables/ultracart_dw_low/uc_affiliate_commission_groups.json +317 -0
  237. package/schemas/tables/ultracart_dw_low/uc_affiliate_ledgers.json +404 -0
  238. package/schemas/tables/ultracart_dw_low/uc_affiliate_network_pixel_postback_logs.json +166 -0
  239. package/schemas/tables/ultracart_dw_low/uc_affiliate_network_pixels.json +106 -0
  240. package/schemas/tables/ultracart_dw_low/uc_affiliate_payments.json +204 -0
  241. package/schemas/tables/ultracart_dw_low/uc_affiliate_postback_logs.json +90 -0
  242. package/schemas/tables/ultracart_dw_low/uc_affiliates.json +425 -0
  243. package/schemas/tables/ultracart_dw_low/uc_auto_orders.json +13868 -0
  244. package/schemas/tables/ultracart_dw_low/uc_cart_abandons.json +3971 -0
  245. package/schemas/tables/ultracart_dw_low/uc_conversation_pbx_calls.json +374 -0
  246. package/schemas/tables/ultracart_dw_low/uc_conversations.json +374 -0
  247. package/schemas/tables/ultracart_dw_low/uc_coupons.json +1893 -0
  248. package/schemas/tables/ultracart_dw_low/uc_customers.json +11900 -0
  249. package/schemas/tables/ultracart_dw_low/uc_fraud_rules.json +239 -0
  250. package/schemas/tables/ultracart_dw_low/uc_gift_certificates.json +135 -0
  251. package/schemas/tables/ultracart_dw_low/uc_item_inventory_history.json +79 -0
  252. package/schemas/tables/ultracart_dw_low/uc_items.json +4437 -0
  253. package/schemas/tables/ultracart_dw_low/uc_orders.json +6639 -0
  254. package/schemas/tables/ultracart_dw_low/uc_rotating_transaction_gateway_history.json +271 -0
  255. package/schemas/tables/ultracart_dw_low/uc_rotating_transaction_gateways.json +416 -0
  256. package/schemas/tables/ultracart_dw_low/uc_shipping_methods.json +1372 -0
  257. package/schemas/tables/ultracart_dw_low/uc_storefront_customers.json +261 -0
  258. package/schemas/tables/ultracart_dw_low/uc_storefront_experiments.json +386 -0
  259. package/schemas/tables/ultracart_dw_low/uc_storefront_pages.json +513 -0
  260. package/schemas/tables/ultracart_dw_low/uc_storefront_upsell_offer_events.json +338 -0
  261. package/schemas/tables/ultracart_dw_low/uc_storefront_upsell_offers.json +431 -0
  262. package/schemas/tables/ultracart_dw_low/uc_storefront_upsell_paths.json +163 -0
  263. package/schemas/tables/ultracart_dw_low/uc_storefronts.json +62 -0
  264. package/schemas/tables/ultracart_dw_low/uc_surveys.json +238 -0
  265. package/schemas/tables/ultracart_dw_low/uc_workflow_tasks.json +377 -0
  266. package/schemas/tables/ultracart_dw_low/uc_zoho_desk_tickets.json +1184 -0
  267. package/schemas/tables/ultracart_dw_medium/uc_affiliate_clicks.json +186 -0
  268. package/schemas/tables/ultracart_dw_medium/uc_affiliate_commission_groups.json +317 -0
  269. package/schemas/tables/ultracart_dw_medium/uc_affiliate_ledgers.json +404 -0
  270. package/schemas/tables/ultracart_dw_medium/uc_affiliate_network_pixel_postback_logs.json +166 -0
  271. package/schemas/tables/ultracart_dw_medium/uc_affiliate_network_pixels.json +106 -0
  272. package/schemas/tables/ultracart_dw_medium/uc_affiliate_payments.json +204 -0
  273. package/schemas/tables/ultracart_dw_medium/uc_affiliate_postback_logs.json +90 -0
  274. package/schemas/tables/ultracart_dw_medium/uc_affiliates.json +425 -0
  275. package/schemas/tables/ultracart_dw_medium/uc_auto_orders.json +14320 -0
  276. package/schemas/tables/ultracart_dw_medium/uc_cart_abandons.json +4245 -0
  277. package/schemas/tables/ultracart_dw_medium/uc_conversation_pbx_calls.json +415 -0
  278. package/schemas/tables/ultracart_dw_medium/uc_conversations.json +415 -0
  279. package/schemas/tables/ultracart_dw_medium/uc_coupons.json +1893 -0
  280. package/schemas/tables/ultracart_dw_medium/uc_customers.json +12250 -0
  281. package/schemas/tables/ultracart_dw_medium/uc_fraud_rules.json +239 -0
  282. package/schemas/tables/ultracart_dw_medium/uc_gift_certificates.json +135 -0
  283. package/schemas/tables/ultracart_dw_medium/uc_item_inventory_history.json +79 -0
  284. package/schemas/tables/ultracart_dw_medium/uc_items.json +4437 -0
  285. package/schemas/tables/ultracart_dw_medium/uc_orders.json +6865 -0
  286. package/schemas/tables/ultracart_dw_medium/uc_rotating_transaction_gateway_history.json +271 -0
  287. package/schemas/tables/ultracart_dw_medium/uc_rotating_transaction_gateways.json +416 -0
  288. package/schemas/tables/ultracart_dw_medium/uc_shipping_methods.json +1372 -0
  289. package/schemas/tables/ultracart_dw_medium/uc_storefront_customers.json +261 -0
  290. package/schemas/tables/ultracart_dw_medium/uc_storefront_experiments.json +386 -0
  291. package/schemas/tables/ultracart_dw_medium/uc_storefront_pages.json +513 -0
  292. package/schemas/tables/ultracart_dw_medium/uc_storefront_upsell_offer_events.json +338 -0
  293. package/schemas/tables/ultracart_dw_medium/uc_storefront_upsell_offers.json +431 -0
  294. package/schemas/tables/ultracart_dw_medium/uc_storefront_upsell_paths.json +163 -0
  295. package/schemas/tables/ultracart_dw_medium/uc_storefronts.json +62 -0
  296. package/schemas/tables/ultracart_dw_medium/uc_surveys.json +269 -0
  297. package/schemas/tables/ultracart_dw_medium/uc_workflow_tasks.json +377 -0
  298. package/schemas/tables/ultracart_dw_medium/uc_zoho_desk_tickets.json +1330 -0
  299. package/schemas/tables/ultracart_dw_streaming/uc_analytics_session_streaming.json +2444 -0
  300. package/schemas/tables/ultracart_dw_streaming/uc_screen_recording_streaming.json +509 -0
  301. package/schemas/ultracart-bq-config.schema.json +140 -0
  302. package/skill/skill.md +1228 -0
  303. package/templates/render.html +73 -0
@@ -0,0 +1,1330 @@
1
+ [
2
+ {
3
+ "mode": "NULLABLE",
4
+ "name": "partition_date",
5
+ "type": "DATE"
6
+ },
7
+ {
8
+ "mode": "NULLABLE",
9
+ "name": "merchant_id",
10
+ "description": "UltraCart Merchant ID",
11
+ "type": "STRING"
12
+ },
13
+ {
14
+ "mode": "NULLABLE",
15
+ "name": "id",
16
+ "description": "Unique ticket ID",
17
+ "type": "STRING"
18
+ },
19
+ {
20
+ "mode": "NULLABLE",
21
+ "name": "ticket_number",
22
+ "description": "Human-readable ticket number",
23
+ "type": "STRING"
24
+ },
25
+ {
26
+ "mode": "NULLABLE",
27
+ "name": "subject",
28
+ "description": "Ticket subject",
29
+ "type": "STRING"
30
+ },
31
+ {
32
+ "mode": "NULLABLE",
33
+ "name": "subject_hash",
34
+ "description": "SHA-256 Base64 hash of subject",
35
+ "type": "STRING"
36
+ },
37
+ {
38
+ "mode": "NULLABLE",
39
+ "name": "description",
40
+ "description": "Initial ticket description (HTML)",
41
+ "type": "STRING"
42
+ },
43
+ {
44
+ "mode": "NULLABLE",
45
+ "name": "description_hash",
46
+ "description": "SHA-256 Base64 hash of description",
47
+ "type": "STRING"
48
+ },
49
+ {
50
+ "mode": "NULLABLE",
51
+ "name": "status",
52
+ "description": "Current status",
53
+ "type": "STRING"
54
+ },
55
+ {
56
+ "mode": "NULLABLE",
57
+ "name": "status_type",
58
+ "description": "Status category",
59
+ "type": "STRING"
60
+ },
61
+ {
62
+ "mode": "NULLABLE",
63
+ "name": "priority",
64
+ "description": "Priority",
65
+ "type": "STRING"
66
+ },
67
+ {
68
+ "mode": "NULLABLE",
69
+ "name": "classification",
70
+ "description": "Ticket classification",
71
+ "type": "STRING"
72
+ },
73
+ {
74
+ "mode": "NULLABLE",
75
+ "name": "category",
76
+ "description": "Category",
77
+ "type": "STRING"
78
+ },
79
+ {
80
+ "mode": "NULLABLE",
81
+ "name": "sub_category",
82
+ "description": "Sub-category",
83
+ "type": "STRING"
84
+ },
85
+ {
86
+ "mode": "NULLABLE",
87
+ "name": "department_id",
88
+ "description": "Department ID",
89
+ "type": "STRING"
90
+ },
91
+ {
92
+ "mode": "NULLABLE",
93
+ "name": "channel",
94
+ "description": "Source channel",
95
+ "type": "STRING"
96
+ },
97
+ {
98
+ "mode": "NULLABLE",
99
+ "name": "phone",
100
+ "description": "Contact phone from ticket",
101
+ "type": "STRING"
102
+ },
103
+ {
104
+ "mode": "NULLABLE",
105
+ "name": "phone_hash",
106
+ "description": "SHA-256 Base64 hash of phone",
107
+ "type": "STRING"
108
+ },
109
+ {
110
+ "mode": "NULLABLE",
111
+ "name": "language",
112
+ "description": "Ticket language",
113
+ "type": "STRING"
114
+ },
115
+ {
116
+ "mode": "NULLABLE",
117
+ "name": "is_spam",
118
+ "description": "Marked as spam",
119
+ "type": "BOOLEAN"
120
+ },
121
+ {
122
+ "mode": "NULLABLE",
123
+ "name": "is_public",
124
+ "description": "Visible to portal users",
125
+ "type": "BOOLEAN"
126
+ },
127
+ {
128
+ "mode": "NULLABLE",
129
+ "name": "due_date",
130
+ "description": "Due date in ISO 8601",
131
+ "type": "DATETIME"
132
+ },
133
+ {
134
+ "mode": "NULLABLE",
135
+ "name": "response_due_date",
136
+ "description": "Response due date in ISO 8601",
137
+ "type": "DATETIME"
138
+ },
139
+ {
140
+ "mode": "NULLABLE",
141
+ "name": "onhold_time",
142
+ "description": "Total time on hold in ISO 8601 duration format",
143
+ "type": "DATETIME"
144
+ },
145
+ {
146
+ "mode": "NULLABLE",
147
+ "name": "resolution",
148
+ "description": "Resolution text (HTML)",
149
+ "type": "STRING"
150
+ },
151
+ {
152
+ "mode": "NULLABLE",
153
+ "name": "resolution_hash",
154
+ "description": "SHA-256 Base64 hash of resolution",
155
+ "type": "STRING"
156
+ },
157
+ {
158
+ "mode": "NULLABLE",
159
+ "name": "closed_time",
160
+ "description": "Time when ticket was closed",
161
+ "type": "DATETIME"
162
+ },
163
+ {
164
+ "mode": "NULLABLE",
165
+ "name": "created_time",
166
+ "description": "Creation timestamp",
167
+ "type": "DATETIME"
168
+ },
169
+ {
170
+ "mode": "NULLABLE",
171
+ "name": "modified_time",
172
+ "description": "Last modification timestamp",
173
+ "type": "DATETIME"
174
+ },
175
+ {
176
+ "mode": "NULLABLE",
177
+ "name": "customer_response_time",
178
+ "description": "Last customer response time",
179
+ "type": "DATETIME"
180
+ },
181
+ {
182
+ "mode": "NULLABLE",
183
+ "name": "contact_id",
184
+ "description": "Contact (customer) ID",
185
+ "type": "STRING"
186
+ },
187
+ {
188
+ "mode": "NULLABLE",
189
+ "name": "assignee_id",
190
+ "description": "Current assignee (agent) ID",
191
+ "type": "STRING"
192
+ },
193
+ {
194
+ "mode": "NULLABLE",
195
+ "name": "team_id",
196
+ "description": "Team ID",
197
+ "type": "STRING"
198
+ },
199
+ {
200
+ "mode": "NULLABLE",
201
+ "name": "product_id",
202
+ "description": "Associated product ID",
203
+ "type": "STRING"
204
+ },
205
+ {
206
+ "mode": "NULLABLE",
207
+ "name": "account_id",
208
+ "description": "Associated account/organization ID",
209
+ "type": "STRING"
210
+ },
211
+ {
212
+ "mode": "NULLABLE",
213
+ "name": "thread_count",
214
+ "description": "Total number of threads",
215
+ "type": "STRING"
216
+ },
217
+ {
218
+ "mode": "NULLABLE",
219
+ "name": "comment_count",
220
+ "description": "Number of public comments",
221
+ "type": "STRING"
222
+ },
223
+ {
224
+ "mode": "NULLABLE",
225
+ "name": "attachment_count",
226
+ "description": "Number of attachments",
227
+ "type": "STRING"
228
+ },
229
+ {
230
+ "mode": "NULLABLE",
231
+ "name": "task_count",
232
+ "description": "Number of tasks",
233
+ "type": "STRING"
234
+ },
235
+ {
236
+ "mode": "NULLABLE",
237
+ "name": "time_entry_count",
238
+ "description": "Number of time entries",
239
+ "type": "STRING"
240
+ },
241
+ {
242
+ "mode": "NULLABLE",
243
+ "name": "approval_count",
244
+ "description": "Number of approvals",
245
+ "type": "STRING"
246
+ },
247
+ {
248
+ "mode": "NULLABLE",
249
+ "name": "tag_count",
250
+ "description": "Number of tags",
251
+ "type": "STRING"
252
+ },
253
+ {
254
+ "mode": "NULLABLE",
255
+ "name": "follower_count",
256
+ "description": "Number of followers",
257
+ "type": "STRING"
258
+ },
259
+ {
260
+ "mode": "NULLABLE",
261
+ "name": "layout_id",
262
+ "description": "Ticket layout ID",
263
+ "type": "STRING"
264
+ },
265
+ {
266
+ "mode": "NULLABLE",
267
+ "name": "web_url",
268
+ "description": "Direct link to ticket in Zoho Desk",
269
+ "type": "STRING"
270
+ },
271
+ {
272
+ "mode": "NULLABLE",
273
+ "name": "portal_url",
274
+ "description": "Customer portal URL",
275
+ "type": "STRING"
276
+ },
277
+ {
278
+ "mode": "NULLABLE",
279
+ "name": "email",
280
+ "description": "Primary email (usually same as contact.email)",
281
+ "type": "STRING"
282
+ },
283
+ {
284
+ "mode": "NULLABLE",
285
+ "name": "email_hash",
286
+ "description": "SHA-256 Base64 hash of email",
287
+ "type": "STRING"
288
+ },
289
+ {
290
+ "mode": "NULLABLE",
291
+ "name": "channel_code",
292
+ "description": "Channel code",
293
+ "type": "STRING"
294
+ },
295
+ {
296
+ "mode": "NULLABLE",
297
+ "name": "sla_id",
298
+ "description": "Applied SLA ID",
299
+ "type": "STRING"
300
+ },
301
+ {
302
+ "mode": "NULLABLE",
303
+ "name": "contract_id",
304
+ "description": "Associated contract ID",
305
+ "type": "STRING"
306
+ },
307
+ {
308
+ "mode": "NULLABLE",
309
+ "name": "created_by",
310
+ "description": "User ID who created the ticket",
311
+ "type": "STRING"
312
+ },
313
+ {
314
+ "mode": "NULLABLE",
315
+ "name": "modified_by",
316
+ "description": "User ID who last modified the ticket",
317
+ "type": "STRING"
318
+ },
319
+ {
320
+ "mode": "NULLABLE",
321
+ "name": "sentiment",
322
+ "description": "Sentiment analysis result",
323
+ "type": "STRING"
324
+ },
325
+ {
326
+ "mode": "NULLABLE",
327
+ "name": "is_over_due",
328
+ "description": "Is ticket overdue",
329
+ "type": "BOOLEAN"
330
+ },
331
+ {
332
+ "mode": "NULLABLE",
333
+ "name": "is_response_overdue",
334
+ "description": "Is response overdue",
335
+ "type": "BOOLEAN"
336
+ },
337
+ {
338
+ "mode": "NULLABLE",
339
+ "name": "is_escalated",
340
+ "description": "Is ticket escalated",
341
+ "type": "BOOLEAN"
342
+ },
343
+ {
344
+ "mode": "NULLABLE",
345
+ "name": "is_archived",
346
+ "description": "Is ticket archived",
347
+ "type": "BOOLEAN"
348
+ },
349
+ {
350
+ "mode": "NULLABLE",
351
+ "name": "is_trashed",
352
+ "description": "Is ticket in trash",
353
+ "type": "BOOLEAN"
354
+ },
355
+ {
356
+ "mode": "NULLABLE",
357
+ "name": "is_deleted",
358
+ "description": "Is ticket deleted",
359
+ "type": "BOOLEAN"
360
+ },
361
+ {
362
+ "mode": "NULLABLE",
363
+ "name": "is_read",
364
+ "description": "Has ticket been read",
365
+ "type": "BOOLEAN"
366
+ },
367
+ {
368
+ "mode": "NULLABLE",
369
+ "name": "is_following",
370
+ "description": "Is current user following",
371
+ "type": "BOOLEAN"
372
+ },
373
+ {
374
+ "mode": "REPEATED",
375
+ "name": "custom_fields",
376
+ "description": "Flat map of custom fields using human-readable labels as keys",
377
+ "type": "RECORD",
378
+ "fields": [
379
+ {
380
+ "mode": "NULLABLE",
381
+ "name": "key",
382
+ "type": "STRING"
383
+ },
384
+ {
385
+ "mode": "NULLABLE",
386
+ "name": "value",
387
+ "type": "STRING"
388
+ }
389
+ ]
390
+ },
391
+ {
392
+ "mode": "REPEATED",
393
+ "name": "cf",
394
+ "description": "Alternative flat custom fields with cf_ prefix",
395
+ "type": "RECORD",
396
+ "fields": [
397
+ {
398
+ "mode": "NULLABLE",
399
+ "name": "key",
400
+ "type": "STRING"
401
+ },
402
+ {
403
+ "mode": "NULLABLE",
404
+ "name": "value",
405
+ "type": "STRING"
406
+ }
407
+ ]
408
+ },
409
+ {
410
+ "mode": "REPEATED",
411
+ "name": "channel_related_info",
412
+ "description": "Channel-specific metadata",
413
+ "type": "RECORD",
414
+ "fields": [
415
+ {
416
+ "mode": "NULLABLE",
417
+ "name": "key",
418
+ "type": "STRING"
419
+ },
420
+ {
421
+ "mode": "NULLABLE",
422
+ "name": "value",
423
+ "type": "STRING"
424
+ }
425
+ ]
426
+ },
427
+ {
428
+ "name": "source",
429
+ "description": "Source metadata",
430
+ "type": "RECORD",
431
+ "fields": [
432
+ {
433
+ "mode": "NULLABLE",
434
+ "name": "app_name",
435
+ "type": "STRING"
436
+ },
437
+ {
438
+ "mode": "NULLABLE",
439
+ "name": "ext_id",
440
+ "type": "STRING"
441
+ },
442
+ {
443
+ "mode": "NULLABLE",
444
+ "name": "permalink",
445
+ "type": "STRING"
446
+ },
447
+ {
448
+ "mode": "NULLABLE",
449
+ "name": "type",
450
+ "type": "STRING"
451
+ },
452
+ {
453
+ "mode": "NULLABLE",
454
+ "name": "uuid",
455
+ "type": "STRING"
456
+ },
457
+ {
458
+ "mode": "NULLABLE",
459
+ "name": "app_photo_url",
460
+ "type": "STRING"
461
+ }
462
+ ]
463
+ },
464
+ {
465
+ "mode": "REPEATED",
466
+ "name": "shared_departments",
467
+ "description": "Departments this ticket is shared with",
468
+ "type": "RECORD",
469
+ "fields": [
470
+ {
471
+ "mode": "NULLABLE",
472
+ "name": "id",
473
+ "type": "STRING"
474
+ },
475
+ {
476
+ "mode": "NULLABLE",
477
+ "name": "name",
478
+ "type": "STRING"
479
+ }
480
+ ]
481
+ },
482
+ {
483
+ "mode": "REPEATED",
484
+ "name": "secondary_contacts",
485
+ "description": "Additional contacts",
486
+ "type": "RECORD",
487
+ "fields": [
488
+ {
489
+ "mode": "NULLABLE",
490
+ "name": "id",
491
+ "type": "STRING"
492
+ },
493
+ {
494
+ "mode": "NULLABLE",
495
+ "name": "name",
496
+ "type": "STRING"
497
+ },
498
+ {
499
+ "mode": "NULLABLE",
500
+ "name": "name_hash",
501
+ "type": "STRING"
502
+ },
503
+ {
504
+ "mode": "NULLABLE",
505
+ "name": "first_name",
506
+ "type": "STRING"
507
+ },
508
+ {
509
+ "mode": "NULLABLE",
510
+ "name": "first_name_hash",
511
+ "type": "STRING"
512
+ },
513
+ {
514
+ "mode": "NULLABLE",
515
+ "name": "last_name",
516
+ "type": "STRING"
517
+ },
518
+ {
519
+ "mode": "NULLABLE",
520
+ "name": "last_name_hash",
521
+ "type": "STRING"
522
+ },
523
+ {
524
+ "mode": "NULLABLE",
525
+ "name": "email",
526
+ "type": "STRING"
527
+ },
528
+ {
529
+ "mode": "NULLABLE",
530
+ "name": "email_hash",
531
+ "type": "STRING"
532
+ },
533
+ {
534
+ "mode": "NULLABLE",
535
+ "name": "phone",
536
+ "type": "STRING"
537
+ },
538
+ {
539
+ "mode": "NULLABLE",
540
+ "name": "phone_hash",
541
+ "type": "STRING"
542
+ },
543
+ {
544
+ "mode": "NULLABLE",
545
+ "name": "mobile",
546
+ "type": "STRING"
547
+ },
548
+ {
549
+ "mode": "NULLABLE",
550
+ "name": "mobile_hash",
551
+ "type": "STRING"
552
+ },
553
+ {
554
+ "mode": "NULLABLE",
555
+ "name": "photo_url",
556
+ "type": "STRING"
557
+ },
558
+ {
559
+ "mode": "NULLABLE",
560
+ "name": "company_name",
561
+ "type": "STRING"
562
+ },
563
+ {
564
+ "mode": "NULLABLE",
565
+ "name": "is_spam",
566
+ "type": "BOOLEAN"
567
+ },
568
+ {
569
+ "mode": "NULLABLE",
570
+ "name": "type",
571
+ "type": "STRING"
572
+ },
573
+ {
574
+ "mode": "REPEATED",
575
+ "name": "account",
576
+ "type": "RECORD",
577
+ "fields": [
578
+ {
579
+ "mode": "NULLABLE",
580
+ "name": "key",
581
+ "type": "STRING"
582
+ },
583
+ {
584
+ "mode": "NULLABLE",
585
+ "name": "value",
586
+ "type": "STRING"
587
+ }
588
+ ]
589
+ }
590
+ ]
591
+ },
592
+ {
593
+ "mode": "REPEATED",
594
+ "name": "entity_skills",
595
+ "description": "Required skills as strings",
596
+ "type": "RECORD",
597
+ "fields": [{
598
+ "mode": "NULLABLE",
599
+ "name": "value",
600
+ "type": "STRING"
601
+ }]
602
+ },
603
+ {
604
+ "mode": "REPEATED",
605
+ "name": "skills_info",
606
+ "description": "Skills routing information",
607
+ "type": "RECORD",
608
+ "fields": [
609
+ {
610
+ "mode": "NULLABLE",
611
+ "name": "id",
612
+ "type": "STRING"
613
+ },
614
+ {
615
+ "mode": "NULLABLE",
616
+ "name": "name",
617
+ "type": "STRING"
618
+ }
619
+ ]
620
+ },
621
+ {
622
+ "name": "contact",
623
+ "description": "Full contact object",
624
+ "type": "RECORD",
625
+ "fields": [
626
+ {
627
+ "mode": "NULLABLE",
628
+ "name": "id",
629
+ "type": "STRING"
630
+ },
631
+ {
632
+ "mode": "NULLABLE",
633
+ "name": "name",
634
+ "type": "STRING"
635
+ },
636
+ {
637
+ "mode": "NULLABLE",
638
+ "name": "name_hash",
639
+ "type": "STRING"
640
+ },
641
+ {
642
+ "mode": "NULLABLE",
643
+ "name": "first_name",
644
+ "type": "STRING"
645
+ },
646
+ {
647
+ "mode": "NULLABLE",
648
+ "name": "first_name_hash",
649
+ "type": "STRING"
650
+ },
651
+ {
652
+ "mode": "NULLABLE",
653
+ "name": "last_name",
654
+ "type": "STRING"
655
+ },
656
+ {
657
+ "mode": "NULLABLE",
658
+ "name": "last_name_hash",
659
+ "type": "STRING"
660
+ },
661
+ {
662
+ "mode": "NULLABLE",
663
+ "name": "email",
664
+ "type": "STRING"
665
+ },
666
+ {
667
+ "mode": "NULLABLE",
668
+ "name": "email_hash",
669
+ "type": "STRING"
670
+ },
671
+ {
672
+ "mode": "NULLABLE",
673
+ "name": "phone",
674
+ "type": "STRING"
675
+ },
676
+ {
677
+ "mode": "NULLABLE",
678
+ "name": "phone_hash",
679
+ "type": "STRING"
680
+ },
681
+ {
682
+ "mode": "NULLABLE",
683
+ "name": "mobile",
684
+ "type": "STRING"
685
+ },
686
+ {
687
+ "mode": "NULLABLE",
688
+ "name": "mobile_hash",
689
+ "type": "STRING"
690
+ },
691
+ {
692
+ "mode": "NULLABLE",
693
+ "name": "photo_url",
694
+ "type": "STRING"
695
+ },
696
+ {
697
+ "mode": "NULLABLE",
698
+ "name": "company_name",
699
+ "type": "STRING"
700
+ },
701
+ {
702
+ "mode": "NULLABLE",
703
+ "name": "is_spam",
704
+ "type": "BOOLEAN"
705
+ },
706
+ {
707
+ "mode": "NULLABLE",
708
+ "name": "type",
709
+ "type": "STRING"
710
+ },
711
+ {
712
+ "mode": "REPEATED",
713
+ "name": "account",
714
+ "type": "RECORD",
715
+ "fields": [
716
+ {
717
+ "mode": "NULLABLE",
718
+ "name": "key",
719
+ "type": "STRING"
720
+ },
721
+ {
722
+ "mode": "NULLABLE",
723
+ "name": "value",
724
+ "type": "STRING"
725
+ }
726
+ ]
727
+ }
728
+ ]
729
+ },
730
+ {
731
+ "name": "assignee",
732
+ "description": "Full assignee (agent) object",
733
+ "type": "RECORD",
734
+ "fields": [
735
+ {
736
+ "mode": "NULLABLE",
737
+ "name": "id",
738
+ "type": "STRING"
739
+ },
740
+ {
741
+ "mode": "NULLABLE",
742
+ "name": "first_name",
743
+ "type": "STRING"
744
+ },
745
+ {
746
+ "mode": "NULLABLE",
747
+ "name": "first_name_hash",
748
+ "type": "STRING"
749
+ },
750
+ {
751
+ "mode": "NULLABLE",
752
+ "name": "last_name",
753
+ "type": "STRING"
754
+ },
755
+ {
756
+ "mode": "NULLABLE",
757
+ "name": "last_name_hash",
758
+ "type": "STRING"
759
+ },
760
+ {
761
+ "mode": "NULLABLE",
762
+ "name": "name",
763
+ "type": "STRING"
764
+ },
765
+ {
766
+ "mode": "NULLABLE",
767
+ "name": "name_hash",
768
+ "type": "STRING"
769
+ },
770
+ {
771
+ "mode": "NULLABLE",
772
+ "name": "email",
773
+ "type": "STRING"
774
+ },
775
+ {
776
+ "mode": "NULLABLE",
777
+ "name": "email_hash",
778
+ "type": "STRING"
779
+ },
780
+ {
781
+ "mode": "NULLABLE",
782
+ "name": "role_name",
783
+ "type": "STRING"
784
+ },
785
+ {
786
+ "mode": "NULLABLE",
787
+ "name": "photo_url",
788
+ "type": "STRING"
789
+ }
790
+ ]
791
+ },
792
+ {
793
+ "name": "team",
794
+ "description": "Full team object",
795
+ "type": "RECORD",
796
+ "fields": [
797
+ {
798
+ "mode": "NULLABLE",
799
+ "name": "id",
800
+ "type": "STRING"
801
+ },
802
+ {
803
+ "mode": "NULLABLE",
804
+ "name": "name",
805
+ "type": "STRING"
806
+ },
807
+ {
808
+ "mode": "NULLABLE",
809
+ "name": "logo_url",
810
+ "type": "STRING"
811
+ }
812
+ ]
813
+ },
814
+ {
815
+ "name": "product",
816
+ "description": "Full product object",
817
+ "type": "RECORD",
818
+ "fields": [
819
+ {
820
+ "mode": "NULLABLE",
821
+ "name": "id",
822
+ "type": "STRING"
823
+ },
824
+ {
825
+ "mode": "NULLABLE",
826
+ "name": "name",
827
+ "type": "STRING"
828
+ }
829
+ ]
830
+ },
831
+ {
832
+ "name": "department",
833
+ "description": "Department details",
834
+ "type": "RECORD",
835
+ "fields": [
836
+ {
837
+ "mode": "NULLABLE",
838
+ "name": "id",
839
+ "type": "STRING"
840
+ },
841
+ {
842
+ "mode": "NULLABLE",
843
+ "name": "name",
844
+ "type": "STRING"
845
+ }
846
+ ]
847
+ },
848
+ {
849
+ "name": "layout_details",
850
+ "description": "Layout information",
851
+ "type": "RECORD",
852
+ "fields": [
853
+ {
854
+ "mode": "NULLABLE",
855
+ "name": "id",
856
+ "type": "STRING"
857
+ },
858
+ {
859
+ "mode": "NULLABLE",
860
+ "name": "layout_name",
861
+ "type": "STRING"
862
+ }
863
+ ]
864
+ },
865
+ {
866
+ "mode": "REPEATED",
867
+ "name": "threads",
868
+ "description": "Array of all threads",
869
+ "type": "RECORD",
870
+ "fields": [
871
+ {
872
+ "mode": "NULLABLE",
873
+ "name": "id",
874
+ "type": "STRING"
875
+ },
876
+ {
877
+ "mode": "NULLABLE",
878
+ "name": "ticket_id",
879
+ "type": "STRING"
880
+ },
881
+ {
882
+ "mode": "NULLABLE",
883
+ "name": "direction",
884
+ "type": "STRING"
885
+ },
886
+ {
887
+ "mode": "NULLABLE",
888
+ "name": "content",
889
+ "type": "STRING"
890
+ },
891
+ {
892
+ "mode": "NULLABLE",
893
+ "name": "content_hash",
894
+ "type": "STRING"
895
+ },
896
+ {
897
+ "mode": "NULLABLE",
898
+ "name": "content_type",
899
+ "type": "STRING"
900
+ },
901
+ {
902
+ "mode": "NULLABLE",
903
+ "name": "is_public",
904
+ "type": "BOOLEAN"
905
+ },
906
+ {
907
+ "mode": "NULLABLE",
908
+ "name": "sent_time",
909
+ "type": "STRING"
910
+ },
911
+ {
912
+ "mode": "NULLABLE",
913
+ "name": "from_email_address",
914
+ "type": "STRING"
915
+ },
916
+ {
917
+ "mode": "NULLABLE",
918
+ "name": "from_email_address_hash",
919
+ "type": "STRING"
920
+ },
921
+ {
922
+ "mode": "REPEATED",
923
+ "name": "to_email_addresses",
924
+ "type": "RECORD",
925
+ "fields": [{
926
+ "mode": "NULLABLE",
927
+ "name": "value",
928
+ "type": "STRING"
929
+ }]
930
+ },
931
+ {
932
+ "mode": "NULLABLE",
933
+ "name": "to_email_addresses_hash",
934
+ "type": "STRING"
935
+ },
936
+ {
937
+ "mode": "REPEATED",
938
+ "name": "cc_email_addresses",
939
+ "type": "RECORD",
940
+ "fields": [{
941
+ "mode": "NULLABLE",
942
+ "name": "value",
943
+ "type": "STRING"
944
+ }]
945
+ },
946
+ {
947
+ "mode": "NULLABLE",
948
+ "name": "cc_email_addresses_hash",
949
+ "type": "STRING"
950
+ },
951
+ {
952
+ "mode": "REPEATED",
953
+ "name": "bcc_email_addresses",
954
+ "type": "RECORD",
955
+ "fields": [{
956
+ "mode": "NULLABLE",
957
+ "name": "value",
958
+ "type": "STRING"
959
+ }]
960
+ },
961
+ {
962
+ "mode": "NULLABLE",
963
+ "name": "bcc_email_addresses_hash",
964
+ "type": "STRING"
965
+ },
966
+ {
967
+ "mode": "REPEATED",
968
+ "name": "attachments",
969
+ "type": "RECORD",
970
+ "fields": [
971
+ {
972
+ "mode": "NULLABLE",
973
+ "name": "id",
974
+ "type": "STRING"
975
+ },
976
+ {
977
+ "mode": "NULLABLE",
978
+ "name": "file_id",
979
+ "type": "STRING"
980
+ },
981
+ {
982
+ "mode": "NULLABLE",
983
+ "name": "file_name",
984
+ "type": "STRING"
985
+ },
986
+ {
987
+ "mode": "NULLABLE",
988
+ "name": "file_name_hash",
989
+ "type": "STRING"
990
+ },
991
+ {
992
+ "mode": "NULLABLE",
993
+ "name": "size",
994
+ "type": "INTEGER"
995
+ },
996
+ {
997
+ "mode": "NULLABLE",
998
+ "name": "file_url",
999
+ "type": "STRING"
1000
+ },
1001
+ {
1002
+ "mode": "NULLABLE",
1003
+ "name": "view_url",
1004
+ "type": "STRING"
1005
+ },
1006
+ {
1007
+ "mode": "NULLABLE",
1008
+ "name": "content_type",
1009
+ "type": "STRING"
1010
+ },
1011
+ {
1012
+ "mode": "NULLABLE",
1013
+ "name": "is_public",
1014
+ "type": "BOOLEAN"
1015
+ },
1016
+ {
1017
+ "mode": "NULLABLE",
1018
+ "name": "creator_id",
1019
+ "type": "STRING"
1020
+ },
1021
+ {
1022
+ "mode": "NULLABLE",
1023
+ "name": "uploaded_time",
1024
+ "type": "STRING"
1025
+ }
1026
+ ]
1027
+ },
1028
+ {
1029
+ "mode": "REPEATED",
1030
+ "name": "mentions",
1031
+ "type": "RECORD",
1032
+ "fields": [{
1033
+ "mode": "NULLABLE",
1034
+ "name": "value",
1035
+ "type": "STRING"
1036
+ }]
1037
+ },
1038
+ {
1039
+ "mode": "REPEATED",
1040
+ "name": "hashtags",
1041
+ "type": "RECORD",
1042
+ "fields": [{
1043
+ "mode": "NULLABLE",
1044
+ "name": "value",
1045
+ "type": "STRING"
1046
+ }]
1047
+ }
1048
+ ]
1049
+ },
1050
+ {
1051
+ "mode": "REPEATED",
1052
+ "name": "attachments",
1053
+ "description": "Array of top-level attachments",
1054
+ "type": "RECORD",
1055
+ "fields": [
1056
+ {
1057
+ "mode": "NULLABLE",
1058
+ "name": "id",
1059
+ "type": "STRING"
1060
+ },
1061
+ {
1062
+ "mode": "NULLABLE",
1063
+ "name": "file_id",
1064
+ "type": "STRING"
1065
+ },
1066
+ {
1067
+ "mode": "NULLABLE",
1068
+ "name": "file_name",
1069
+ "type": "STRING"
1070
+ },
1071
+ {
1072
+ "mode": "NULLABLE",
1073
+ "name": "file_name_hash",
1074
+ "type": "STRING"
1075
+ },
1076
+ {
1077
+ "mode": "NULLABLE",
1078
+ "name": "size",
1079
+ "type": "INTEGER"
1080
+ },
1081
+ {
1082
+ "mode": "NULLABLE",
1083
+ "name": "file_url",
1084
+ "type": "STRING"
1085
+ },
1086
+ {
1087
+ "mode": "NULLABLE",
1088
+ "name": "view_url",
1089
+ "type": "STRING"
1090
+ },
1091
+ {
1092
+ "mode": "NULLABLE",
1093
+ "name": "content_type",
1094
+ "type": "STRING"
1095
+ },
1096
+ {
1097
+ "mode": "NULLABLE",
1098
+ "name": "is_public",
1099
+ "type": "BOOLEAN"
1100
+ },
1101
+ {
1102
+ "mode": "NULLABLE",
1103
+ "name": "creator_id",
1104
+ "type": "STRING"
1105
+ },
1106
+ {
1107
+ "mode": "NULLABLE",
1108
+ "name": "uploaded_time",
1109
+ "type": "STRING"
1110
+ }
1111
+ ]
1112
+ },
1113
+ {
1114
+ "mode": "REPEATED",
1115
+ "name": "comments",
1116
+ "description": "Array of all ticket comments",
1117
+ "type": "RECORD",
1118
+ "fields": [
1119
+ {
1120
+ "mode": "NULLABLE",
1121
+ "name": "id",
1122
+ "type": "STRING"
1123
+ },
1124
+ {
1125
+ "mode": "NULLABLE",
1126
+ "name": "ticket_id",
1127
+ "type": "STRING"
1128
+ },
1129
+ {
1130
+ "mode": "NULLABLE",
1131
+ "name": "content",
1132
+ "description": "Comment content (HTML)",
1133
+ "type": "STRING"
1134
+ },
1135
+ {
1136
+ "mode": "NULLABLE",
1137
+ "name": "content_hash",
1138
+ "description": "SHA-256 Base64 hash of content",
1139
+ "type": "STRING"
1140
+ },
1141
+ {
1142
+ "mode": "NULLABLE",
1143
+ "name": "content_type",
1144
+ "description": "Content format: html or plain",
1145
+ "type": "STRING"
1146
+ },
1147
+ {
1148
+ "mode": "NULLABLE",
1149
+ "name": "is_public",
1150
+ "type": "BOOLEAN"
1151
+ },
1152
+ {
1153
+ "mode": "NULLABLE",
1154
+ "name": "commented_time",
1155
+ "type": "STRING"
1156
+ },
1157
+ {
1158
+ "mode": "NULLABLE",
1159
+ "name": "modified_time",
1160
+ "type": "STRING"
1161
+ },
1162
+ {
1163
+ "mode": "NULLABLE",
1164
+ "name": "author_id",
1165
+ "type": "STRING"
1166
+ },
1167
+ {
1168
+ "mode": "NULLABLE",
1169
+ "name": "author_type",
1170
+ "type": "STRING"
1171
+ },
1172
+ {
1173
+ "name": "commenter",
1174
+ "description": "Full author details (agent or contact)",
1175
+ "type": "RECORD",
1176
+ "fields": [
1177
+ {
1178
+ "mode": "NULLABLE",
1179
+ "name": "id",
1180
+ "type": "STRING"
1181
+ },
1182
+ {
1183
+ "mode": "NULLABLE",
1184
+ "name": "name",
1185
+ "type": "STRING"
1186
+ },
1187
+ {
1188
+ "mode": "NULLABLE",
1189
+ "name": "name_hash",
1190
+ "type": "STRING"
1191
+ },
1192
+ {
1193
+ "mode": "NULLABLE",
1194
+ "name": "first_name",
1195
+ "type": "STRING"
1196
+ },
1197
+ {
1198
+ "mode": "NULLABLE",
1199
+ "name": "first_name_hash",
1200
+ "type": "STRING"
1201
+ },
1202
+ {
1203
+ "mode": "NULLABLE",
1204
+ "name": "last_name",
1205
+ "type": "STRING"
1206
+ },
1207
+ {
1208
+ "mode": "NULLABLE",
1209
+ "name": "last_name_hash",
1210
+ "type": "STRING"
1211
+ },
1212
+ {
1213
+ "mode": "NULLABLE",
1214
+ "name": "email",
1215
+ "type": "STRING"
1216
+ },
1217
+ {
1218
+ "mode": "NULLABLE",
1219
+ "name": "email_hash",
1220
+ "type": "STRING"
1221
+ },
1222
+ {
1223
+ "mode": "NULLABLE",
1224
+ "name": "photo_url",
1225
+ "type": "STRING"
1226
+ },
1227
+ {
1228
+ "mode": "NULLABLE",
1229
+ "name": "role_name",
1230
+ "type": "STRING"
1231
+ },
1232
+ {
1233
+ "mode": "NULLABLE",
1234
+ "name": "type",
1235
+ "type": "STRING"
1236
+ }
1237
+ ]
1238
+ },
1239
+ {
1240
+ "mode": "REPEATED",
1241
+ "name": "attachments",
1242
+ "type": "RECORD",
1243
+ "fields": [
1244
+ {
1245
+ "mode": "NULLABLE",
1246
+ "name": "id",
1247
+ "type": "STRING"
1248
+ },
1249
+ {
1250
+ "mode": "NULLABLE",
1251
+ "name": "file_id",
1252
+ "type": "STRING"
1253
+ },
1254
+ {
1255
+ "mode": "NULLABLE",
1256
+ "name": "file_name",
1257
+ "type": "STRING"
1258
+ },
1259
+ {
1260
+ "mode": "NULLABLE",
1261
+ "name": "file_name_hash",
1262
+ "type": "STRING"
1263
+ },
1264
+ {
1265
+ "mode": "NULLABLE",
1266
+ "name": "size",
1267
+ "type": "INTEGER"
1268
+ },
1269
+ {
1270
+ "mode": "NULLABLE",
1271
+ "name": "file_url",
1272
+ "type": "STRING"
1273
+ },
1274
+ {
1275
+ "mode": "NULLABLE",
1276
+ "name": "view_url",
1277
+ "type": "STRING"
1278
+ },
1279
+ {
1280
+ "mode": "NULLABLE",
1281
+ "name": "content_type",
1282
+ "type": "STRING"
1283
+ },
1284
+ {
1285
+ "mode": "NULLABLE",
1286
+ "name": "is_public",
1287
+ "type": "BOOLEAN"
1288
+ },
1289
+ {
1290
+ "mode": "NULLABLE",
1291
+ "name": "creator_id",
1292
+ "type": "STRING"
1293
+ },
1294
+ {
1295
+ "mode": "NULLABLE",
1296
+ "name": "uploaded_time",
1297
+ "type": "STRING"
1298
+ }
1299
+ ]
1300
+ },
1301
+ {
1302
+ "mode": "REPEATED",
1303
+ "name": "mentions",
1304
+ "type": "RECORD",
1305
+ "fields": [
1306
+ {
1307
+ "mode": "NULLABLE",
1308
+ "name": "id",
1309
+ "type": "STRING"
1310
+ },
1311
+ {
1312
+ "mode": "NULLABLE",
1313
+ "name": "name",
1314
+ "type": "STRING"
1315
+ },
1316
+ {
1317
+ "mode": "NULLABLE",
1318
+ "name": "type",
1319
+ "type": "STRING"
1320
+ },
1321
+ {
1322
+ "mode": "NULLABLE",
1323
+ "name": "photo_url",
1324
+ "type": "STRING"
1325
+ }
1326
+ ]
1327
+ }
1328
+ ]
1329
+ }
1330
+ ]