wxcli 1.2.0__py3-none-any.whl

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 (413) hide show
  1. wxcli/__init__.py +4 -0
  2. wxcli/_playbook/.claude/agents/migration-advisor.md +239 -0
  3. wxcli/_playbook/.claude/agents/wxc-calling-builder.md +946 -0
  4. wxcli/_playbook/.claude/rules/cleanup.md +29 -0
  5. wxcli/_playbook/.claude/rules/cucm-migration.md +58 -0
  6. wxcli/_playbook/.claude/rules/org-health.md +14 -0
  7. wxcli/_playbook/.claude/settings.json +8 -0
  8. wxcli/_playbook/.claude/skills/audit-compliance/SKILL.md +515 -0
  9. wxcli/_playbook/.claude/skills/call-control/SKILL.md +747 -0
  10. wxcli/_playbook/.claude/skills/configure-features/SKILL.md +623 -0
  11. wxcli/_playbook/.claude/skills/configure-routing/SKILL.md +627 -0
  12. wxcli/_playbook/.claude/skills/contact-center/SKILL.md +1181 -0
  13. wxcli/_playbook/.claude/skills/cucm-migrate/SKILL.md +820 -0
  14. wxcli/_playbook/.claude/skills/customer-assist/SKILL.md +443 -0
  15. wxcli/_playbook/.claude/skills/device-platform/SKILL.md +407 -0
  16. wxcli/_playbook/.claude/skills/manage-call-settings/SKILL.md +757 -0
  17. wxcli/_playbook/.claude/skills/manage-devices/SKILL.md +790 -0
  18. wxcli/_playbook/.claude/skills/manage-identity/SKILL.md +638 -0
  19. wxcli/_playbook/.claude/skills/manage-licensing/SKILL.md +528 -0
  20. wxcli/_playbook/.claude/skills/manage-meetings/SKILL.md +708 -0
  21. wxcli/_playbook/.claude/skills/messaging-bots/SKILL.md +365 -0
  22. wxcli/_playbook/.claude/skills/messaging-spaces/SKILL.md +520 -0
  23. wxcli/_playbook/.claude/skills/org-health/SKILL.md +159 -0
  24. wxcli/_playbook/.claude/skills/provision-calling/SKILL.md +421 -0
  25. wxcli/_playbook/.claude/skills/query-live/SKILL.md +183 -0
  26. wxcli/_playbook/.claude/skills/query-live/domains/call-flow-trace.md +223 -0
  27. wxcli/_playbook/.claude/skills/query-live/domains/call-history.md +44 -0
  28. wxcli/_playbook/.claude/skills/query-live/domains/features.md +169 -0
  29. wxcli/_playbook/.claude/skills/query-live/domains/numbers.md +93 -0
  30. wxcli/_playbook/.claude/skills/query-live/domains/people-and-settings.md +146 -0
  31. wxcli/_playbook/.claude/skills/query-live/domains/routing.md +124 -0
  32. wxcli/_playbook/.claude/skills/reporting/SKILL.md +501 -0
  33. wxcli/_playbook/.claude/skills/reporting/references/cdr-recipes.md +1628 -0
  34. wxcli/_playbook/.claude/skills/reporting-cc/SKILL.md +251 -0
  35. wxcli/_playbook/.claude/skills/reporting-meetings/SKILL.md +290 -0
  36. wxcli/_playbook/.claude/skills/teardown/SKILL.md +214 -0
  37. wxcli/_playbook/.claude/skills/video-mesh/SKILL.md +379 -0
  38. wxcli/_playbook/.claude/skills/wxc-calling-debug/SKILL.md +475 -0
  39. wxcli/_playbook/CLAUDE.md +373 -0
  40. wxcli/_playbook/docs/reference/CLAUDE.md +25 -0
  41. wxcli/_playbook/docs/reference/admin-apps-data.md +643 -0
  42. wxcli/_playbook/docs/reference/admin-audit-security.md +322 -0
  43. wxcli/_playbook/docs/reference/admin-hybrid.md +383 -0
  44. wxcli/_playbook/docs/reference/admin-identity-scim.md +1007 -0
  45. wxcli/_playbook/docs/reference/admin-licensing.md +414 -0
  46. wxcli/_playbook/docs/reference/admin-org-management.md +586 -0
  47. wxcli/_playbook/docs/reference/admin-partner.md +357 -0
  48. wxcli/_playbook/docs/reference/archive/wxc-sdk-patterns.md +1229 -0
  49. wxcli/_playbook/docs/reference/archive/wxcadm-advanced.md +835 -0
  50. wxcli/_playbook/docs/reference/archive/wxcadm-core.md +743 -0
  51. wxcli/_playbook/docs/reference/archive/wxcadm-devices-workspaces.md +1305 -0
  52. wxcli/_playbook/docs/reference/archive/wxcadm-features.md +849 -0
  53. wxcli/_playbook/docs/reference/archive/wxcadm-locations.md +938 -0
  54. wxcli/_playbook/docs/reference/archive/wxcadm-person.md +1255 -0
  55. wxcli/_playbook/docs/reference/archive/wxcadm-routing.md +1262 -0
  56. wxcli/_playbook/docs/reference/authentication.md +965 -0
  57. wxcli/_playbook/docs/reference/call-control.md +1205 -0
  58. wxcli/_playbook/docs/reference/call-features-additional.md +2541 -0
  59. wxcli/_playbook/docs/reference/call-features-major.md +1320 -0
  60. wxcli/_playbook/docs/reference/call-routing.md +2304 -0
  61. wxcli/_playbook/docs/reference/contact-center-analytics.md +1049 -0
  62. wxcli/_playbook/docs/reference/contact-center-core.md +1614 -0
  63. wxcli/_playbook/docs/reference/contact-center-journey.md +457 -0
  64. wxcli/_playbook/docs/reference/contact-center-routing.md +1138 -0
  65. wxcli/_playbook/docs/reference/devices-core.md +1869 -0
  66. wxcli/_playbook/docs/reference/devices-dect.md +1150 -0
  67. wxcli/_playbook/docs/reference/devices-platform.md +467 -0
  68. wxcli/_playbook/docs/reference/devices-workspaces.md +1426 -0
  69. wxcli/_playbook/docs/reference/emergency-services.md +1122 -0
  70. wxcli/_playbook/docs/reference/location-calling-core.md +2037 -0
  71. wxcli/_playbook/docs/reference/location-calling-media.md +1334 -0
  72. wxcli/_playbook/docs/reference/location-recording-advanced.md +1482 -0
  73. wxcli/_playbook/docs/reference/meetings-content.md +473 -0
  74. wxcli/_playbook/docs/reference/meetings-core.md +903 -0
  75. wxcli/_playbook/docs/reference/meetings-infrastructure.md +899 -0
  76. wxcli/_playbook/docs/reference/meetings-settings.md +850 -0
  77. wxcli/_playbook/docs/reference/messaging-bots.md +1091 -0
  78. wxcli/_playbook/docs/reference/messaging-spaces.md +695 -0
  79. wxcli/_playbook/docs/reference/person-call-settings-behavior.md +1639 -0
  80. wxcli/_playbook/docs/reference/person-call-settings-handling.md +1394 -0
  81. wxcli/_playbook/docs/reference/person-call-settings-media.md +1898 -0
  82. wxcli/_playbook/docs/reference/person-call-settings-permissions.md +1329 -0
  83. wxcli/_playbook/docs/reference/provisioning.md +1366 -0
  84. wxcli/_playbook/docs/reference/reporting-analytics.md +1318 -0
  85. wxcli/_playbook/docs/reference/self-service-call-settings.md +1020 -0
  86. wxcli/_playbook/docs/reference/virtual-lines.md +1132 -0
  87. wxcli/_playbook/docs/reference/webhooks-events.md +1444 -0
  88. wxcli/_playbook/docs/reference/wxcadm-xsi-realtime.md +953 -0
  89. wxcli/_version.py +24 -0
  90. wxcli/auth.py +137 -0
  91. wxcli/commands/__init__.py +0 -0
  92. wxcli/commands/_registry.py +181 -0
  93. wxcli/commands/activation_email.py +103 -0
  94. wxcli/commands/admin_recordings.py +585 -0
  95. wxcli/commands/analytics.py +105 -0
  96. wxcli/commands/announcement_playlists.py +219 -0
  97. wxcli/commands/announcements.py +519 -0
  98. wxcli/commands/archive_users.py +36 -0
  99. wxcli/commands/attachment_actions.py +60 -0
  100. wxcli/commands/audit_events.py +83 -0
  101. wxcli/commands/authorizations.py +113 -0
  102. wxcli/commands/auto_attendant.py +642 -0
  103. wxcli/commands/broadworks_billing_reports.py +126 -0
  104. wxcli/commands/broadworks_enterprises.py +160 -0
  105. wxcli/commands/broadworks_subscribers.py +319 -0
  106. wxcli/commands/broadworks_workspaces.py +108 -0
  107. wxcli/commands/call_controls.py +1304 -0
  108. wxcli/commands/call_park.py +494 -0
  109. wxcli/commands/call_pickup.py +229 -0
  110. wxcli/commands/call_queue.py +1878 -0
  111. wxcli/commands/call_recording.py +707 -0
  112. wxcli/commands/call_routing.py +1610 -0
  113. wxcli/commands/call_settings_for_me_phase_5.py +212 -0
  114. wxcli/commands/caller_reputation.py +169 -0
  115. wxcli/commands/calling_service.py +305 -0
  116. wxcli/commands/cc_address_book.py +770 -0
  117. wxcli/commands/cc_agent_greetings.py +242 -0
  118. wxcli/commands/cc_agent_summaries.py +39 -0
  119. wxcli/commands/cc_agent_wellbeing.py +216 -0
  120. wxcli/commands/cc_agents.py +425 -0
  121. wxcli/commands/cc_ai_assistant.py +55 -0
  122. wxcli/commands/cc_ai_feature.py +294 -0
  123. wxcli/commands/cc_audio_files.py +149 -0
  124. wxcli/commands/cc_auto_csat.py +311 -0
  125. wxcli/commands/cc_aux_code.py +458 -0
  126. wxcli/commands/cc_business_hour.py +353 -0
  127. wxcli/commands/cc_call_monitoring.py +228 -0
  128. wxcli/commands/cc_callbacks.py +194 -0
  129. wxcli/commands/cc_campaign.py +212 -0
  130. wxcli/commands/cc_captures.py +39 -0
  131. wxcli/commands/cc_contact_list.py +169 -0
  132. wxcli/commands/cc_contact_number.py +295 -0
  133. wxcli/commands/cc_data_sources.py +235 -0
  134. wxcli/commands/cc_desktop_layout.py +380 -0
  135. wxcli/commands/cc_desktop_profile.py +322 -0
  136. wxcli/commands/cc_dial_number.py +511 -0
  137. wxcli/commands/cc_dial_plan.py +347 -0
  138. wxcli/commands/cc_dnc.py +101 -0
  139. wxcli/commands/cc_entry_point.py +545 -0
  140. wxcli/commands/cc_ewt.py +51 -0
  141. wxcli/commands/cc_flow.py +477 -0
  142. wxcli/commands/cc_global_vars.py +430 -0
  143. wxcli/commands/cc_holiday_list.py +335 -0
  144. wxcli/commands/cc_journey.py +1261 -0
  145. wxcli/commands/cc_legacy_flows.py +49 -0
  146. wxcli/commands/cc_multimedia_profile.py +436 -0
  147. wxcli/commands/cc_notification.py +51 -0
  148. wxcli/commands/cc_outdial_ani.py +604 -0
  149. wxcli/commands/cc_overrides.py +341 -0
  150. wxcli/commands/cc_queue.py +1083 -0
  151. wxcli/commands/cc_queue_stats.py +55 -0
  152. wxcli/commands/cc_realtime.py +51 -0
  153. wxcli/commands/cc_resource_collection.py +312 -0
  154. wxcli/commands/cc_search.py +46 -0
  155. wxcli/commands/cc_site.py +400 -0
  156. wxcli/commands/cc_skill.py +350 -0
  157. wxcli/commands/cc_skill_profile.py +289 -0
  158. wxcli/commands/cc_subscriptions.py +426 -0
  159. wxcli/commands/cc_summaries.py +130 -0
  160. wxcli/commands/cc_tasks.py +844 -0
  161. wxcli/commands/cc_team.py +325 -0
  162. wxcli/commands/cc_user_profiles.py +349 -0
  163. wxcli/commands/cc_users.py +701 -0
  164. wxcli/commands/cc_work_types.py +363 -0
  165. wxcli/commands/cdr.py +89 -0
  166. wxcli/commands/classifications.py +38 -0
  167. wxcli/commands/cleanup.py +1427 -0
  168. wxcli/commands/client_settings.py +72 -0
  169. wxcli/commands/conference.py +328 -0
  170. wxcli/commands/configure.py +72 -0
  171. wxcli/commands/converged_recordings.py +347 -0
  172. wxcli/commands/converged_recordings_export.py +310 -0
  173. wxcli/commands/cq_playlists.py +42 -0
  174. wxcli/commands/cucm.py +2794 -0
  175. wxcli/commands/cucm_config.py +129 -0
  176. wxcli/commands/customer_assist.py +373 -0
  177. wxcli/commands/data_sources.py +227 -0
  178. wxcli/commands/dect_devices.py +787 -0
  179. wxcli/commands/device_configurations.py +77 -0
  180. wxcli/commands/device_dynamic_settings.py +320 -0
  181. wxcli/commands/device_settings.py +1489 -0
  182. wxcli/commands/devices.py +280 -0
  183. wxcli/commands/domains.py +142 -0
  184. wxcli/commands/ecm.py +178 -0
  185. wxcli/commands/emergency_services.py +827 -0
  186. wxcli/commands/events.py +83 -0
  187. wxcli/commands/external_voicemail.py +52 -0
  188. wxcli/commands/groups.py +206 -0
  189. wxcli/commands/guest_management.py +76 -0
  190. wxcli/commands/hds.py +340 -0
  191. wxcli/commands/hot_desk.py +67 -0
  192. wxcli/commands/hot_desking_members.py +118 -0
  193. wxcli/commands/hot_desking_portal.py +124 -0
  194. wxcli/commands/hunt_group.py +577 -0
  195. wxcli/commands/hybrid_clusters.py +71 -0
  196. wxcli/commands/hybrid_connectors.py +67 -0
  197. wxcli/commands/identity_org.py +159 -0
  198. wxcli/commands/init_playbook.py +155 -0
  199. wxcli/commands/licenses.py +106 -0
  200. wxcli/commands/live_monitoring.py +40 -0
  201. wxcli/commands/location_call_handling.py +577 -0
  202. wxcli/commands/location_schedules.py +341 -0
  203. wxcli/commands/location_settings.py +1297 -0
  204. wxcli/commands/location_voicemail.py +494 -0
  205. wxcli/commands/locations.py +336 -0
  206. wxcli/commands/meeting_captions.py +110 -0
  207. wxcli/commands/meeting_chats.py +63 -0
  208. wxcli/commands/meeting_invitees.py +234 -0
  209. wxcli/commands/meeting_messages.py +28 -0
  210. wxcli/commands/meeting_participants.py +278 -0
  211. wxcli/commands/meeting_polls.py +111 -0
  212. wxcli/commands/meeting_preferences.py +515 -0
  213. wxcli/commands/meeting_qa.py +78 -0
  214. wxcli/commands/meeting_qualities.py +43 -0
  215. wxcli/commands/meeting_reports.py +101 -0
  216. wxcli/commands/meeting_session_types.py +105 -0
  217. wxcli/commands/meeting_site.py +57 -0
  218. wxcli/commands/meeting_slido.py +44 -0
  219. wxcli/commands/meeting_summaries.py +92 -0
  220. wxcli/commands/meeting_tracking_codes.py +233 -0
  221. wxcli/commands/meeting_transcripts.py +230 -0
  222. wxcli/commands/meetings.py +1997 -0
  223. wxcli/commands/memberships.py +164 -0
  224. wxcli/commands/messages.py +213 -0
  225. wxcli/commands/mode_management.py +244 -0
  226. wxcli/commands/my_call_settings.py +3577 -0
  227. wxcli/commands/numbers.py +405 -0
  228. wxcli/commands/operating_modes.py +410 -0
  229. wxcli/commands/org_contacts.py +284 -0
  230. wxcli/commands/org_health_cli.py +55 -0
  231. wxcli/commands/org_settings.py +71 -0
  232. wxcli/commands/organizations.py +83 -0
  233. wxcli/commands/paging_group.py +257 -0
  234. wxcli/commands/partner_admins.py +141 -0
  235. wxcli/commands/partner_reports.py +188 -0
  236. wxcli/commands/partner_tags.py +216 -0
  237. wxcli/commands/people.py +279 -0
  238. wxcli/commands/person_call_settings.py +71 -0
  239. wxcli/commands/pstn.py +280 -0
  240. wxcli/commands/recording_report.py +154 -0
  241. wxcli/commands/report_templates.py +38 -0
  242. wxcli/commands/reports.py +144 -0
  243. wxcli/commands/resource_group_memberships.py +160 -0
  244. wxcli/commands/resource_groups.py +67 -0
  245. wxcli/commands/roles.py +63 -0
  246. wxcli/commands/room_tabs.py +160 -0
  247. wxcli/commands/rooms.py +225 -0
  248. wxcli/commands/scim_bulk.py +46 -0
  249. wxcli/commands/scim_groups.py +246 -0
  250. wxcli/commands/scim_schemas.py +82 -0
  251. wxcli/commands/scim_users.py +283 -0
  252. wxcli/commands/security_audit.py +54 -0
  253. wxcli/commands/service_apps.py +51 -0
  254. wxcli/commands/single_number_reach.py +209 -0
  255. wxcli/commands/team_memberships.py +155 -0
  256. wxcli/commands/teams.py +153 -0
  257. wxcli/commands/ucm_profile.py +42 -0
  258. wxcli/commands/update.py +219 -0
  259. wxcli/commands/user_settings.py +5116 -0
  260. wxcli/commands/video_mesh.py +1090 -0
  261. wxcli/commands/virtual_extensions.py +502 -0
  262. wxcli/commands/virtual_line_settings.py +2072 -0
  263. wxcli/commands/webhooks.py +176 -0
  264. wxcli/commands/wholesale_billing_reports.py +147 -0
  265. wxcli/commands/wholesale_provisioning.py +523 -0
  266. wxcli/commands/workspace_locations.py +339 -0
  267. wxcli/commands/workspace_metrics.py +103 -0
  268. wxcli/commands/workspace_personalization.py +70 -0
  269. wxcli/commands/workspace_settings.py +3347 -0
  270. wxcli/commands/workspaces.py +279 -0
  271. wxcli/commands/xapi.py +114 -0
  272. wxcli/config.py +139 -0
  273. wxcli/errors.py +77 -0
  274. wxcli/main.py +210 -0
  275. wxcli/migration/CLAUDE.md +106 -0
  276. wxcli/migration/__init__.py +1 -0
  277. wxcli/migration/advisory/CLAUDE.md +196 -0
  278. wxcli/migration/advisory/__init__.py +46 -0
  279. wxcli/migration/advisory/advisor.py +107 -0
  280. wxcli/migration/advisory/advisory_patterns.py +2552 -0
  281. wxcli/migration/advisory/recommendation_rules.py +835 -0
  282. wxcli/migration/cucm/CLAUDE.md +74 -0
  283. wxcli/migration/cucm/__init__.py +5 -0
  284. wxcli/migration/cucm/connection.py +265 -0
  285. wxcli/migration/cucm/discovery.py +225 -0
  286. wxcli/migration/cucm/extractors/__init__.py +1 -0
  287. wxcli/migration/cucm/extractors/announcements.py +92 -0
  288. wxcli/migration/cucm/extractors/base.py +90 -0
  289. wxcli/migration/cucm/extractors/device_profiles.py +98 -0
  290. wxcli/migration/cucm/extractors/devices.py +193 -0
  291. wxcli/migration/cucm/extractors/e911.py +103 -0
  292. wxcli/migration/cucm/extractors/features.py +309 -0
  293. wxcli/migration/cucm/extractors/helpers.py +73 -0
  294. wxcli/migration/cucm/extractors/informational.py +295 -0
  295. wxcli/migration/cucm/extractors/locations.py +221 -0
  296. wxcli/migration/cucm/extractors/moh.py +100 -0
  297. wxcli/migration/cucm/extractors/remote_destinations.py +96 -0
  298. wxcli/migration/cucm/extractors/routing.py +493 -0
  299. wxcli/migration/cucm/extractors/shared_lines.py +146 -0
  300. wxcli/migration/cucm/extractors/templates.py +229 -0
  301. wxcli/migration/cucm/extractors/tier4.py +173 -0
  302. wxcli/migration/cucm/extractors/users.py +240 -0
  303. wxcli/migration/cucm/extractors/voicemail.py +243 -0
  304. wxcli/migration/cucm/extractors/workspaces.py +88 -0
  305. wxcli/migration/cucm/unity_connection.py +304 -0
  306. wxcli/migration/execute/CLAUDE.md +372 -0
  307. wxcli/migration/execute/__init__.py +303 -0
  308. wxcli/migration/execute/batch.py +277 -0
  309. wxcli/migration/execute/dependency.py +483 -0
  310. wxcli/migration/execute/engine.py +964 -0
  311. wxcli/migration/execute/handlers.py +2232 -0
  312. wxcli/migration/execute/planner.py +1939 -0
  313. wxcli/migration/execute/runtime.py +571 -0
  314. wxcli/migration/export/CLAUDE.md +49 -0
  315. wxcli/migration/export/__init__.py +8 -0
  316. wxcli/migration/export/csv_export.py +126 -0
  317. wxcli/migration/export/deployment_plan.py +479 -0
  318. wxcli/migration/export/json_export.py +60 -0
  319. wxcli/migration/models.py +941 -0
  320. wxcli/migration/phone_models.py +50 -0
  321. wxcli/migration/preflight/CLAUDE.md +52 -0
  322. wxcli/migration/preflight/__init__.py +89 -0
  323. wxcli/migration/preflight/checks.py +911 -0
  324. wxcli/migration/preflight/runner.py +293 -0
  325. wxcli/migration/rate_limiter.py +144 -0
  326. wxcli/migration/report/CLAUDE.md +245 -0
  327. wxcli/migration/report/__init__.py +7 -0
  328. wxcli/migration/report/appendix.py +2437 -0
  329. wxcli/migration/report/assembler.py +183 -0
  330. wxcli/migration/report/charts.py +263 -0
  331. wxcli/migration/report/executive.py +776 -0
  332. wxcli/migration/report/explainer.py +704 -0
  333. wxcli/migration/report/helpers.py +74 -0
  334. wxcli/migration/report/ingest.py +152 -0
  335. wxcli/migration/report/notice_templates.py +192 -0
  336. wxcli/migration/report/score.py +375 -0
  337. wxcli/migration/report/styles.py +1052 -0
  338. wxcli/migration/report/user_diff.py +1052 -0
  339. wxcli/migration/report/user_notice.py +425 -0
  340. wxcli/migration/state.py +139 -0
  341. wxcli/migration/store.py +860 -0
  342. wxcli/migration/transform/CLAUDE.md +107 -0
  343. wxcli/migration/transform/__init__.py +12 -0
  344. wxcli/migration/transform/analysis_pipeline.py +453 -0
  345. wxcli/migration/transform/analyzers/__init__.py +142 -0
  346. wxcli/migration/transform/analyzers/css_permission.py +189 -0
  347. wxcli/migration/transform/analyzers/css_routing.py +335 -0
  348. wxcli/migration/transform/analyzers/device_compatibility.py +122 -0
  349. wxcli/migration/transform/analyzers/dn_ambiguity.py +131 -0
  350. wxcli/migration/transform/analyzers/duplicate_user.py +221 -0
  351. wxcli/migration/transform/analyzers/extension_conflict.py +173 -0
  352. wxcli/migration/transform/analyzers/feature_approximation.py +227 -0
  353. wxcli/migration/transform/analyzers/layout_overflow.py +174 -0
  354. wxcli/migration/transform/analyzers/location_ambiguity.py +184 -0
  355. wxcli/migration/transform/analyzers/missing_data.py +300 -0
  356. wxcli/migration/transform/analyzers/selective_call_handling.py +394 -0
  357. wxcli/migration/transform/analyzers/shared_line.py +170 -0
  358. wxcli/migration/transform/analyzers/voicemail_compatibility.py +267 -0
  359. wxcli/migration/transform/analyzers/workspace_license.py +212 -0
  360. wxcli/migration/transform/cross_reference.py +1136 -0
  361. wxcli/migration/transform/cucm_pattern.py +246 -0
  362. wxcli/migration/transform/decisions.py +301 -0
  363. wxcli/migration/transform/e164.py +145 -0
  364. wxcli/migration/transform/engine.py +256 -0
  365. wxcli/migration/transform/mappers/CLAUDE.md +123 -0
  366. wxcli/migration/transform/mappers/__init__.py +76 -0
  367. wxcli/migration/transform/mappers/announcement_mapper.py +122 -0
  368. wxcli/migration/transform/mappers/base.py +190 -0
  369. wxcli/migration/transform/mappers/button_template_mapper.py +186 -0
  370. wxcli/migration/transform/mappers/call_forwarding_mapper.py +228 -0
  371. wxcli/migration/transform/mappers/call_settings_mapper.py +144 -0
  372. wxcli/migration/transform/mappers/css_mapper.py +868 -0
  373. wxcli/migration/transform/mappers/dect_mapper.py +367 -0
  374. wxcli/migration/transform/mappers/device_layout_mapper.py +289 -0
  375. wxcli/migration/transform/mappers/device_mapper.py +227 -0
  376. wxcli/migration/transform/mappers/device_profile_mapper.py +190 -0
  377. wxcli/migration/transform/mappers/device_settings_mapper.py +464 -0
  378. wxcli/migration/transform/mappers/e911_mapper.py +129 -0
  379. wxcli/migration/transform/mappers/ecbn_mapper.py +263 -0
  380. wxcli/migration/transform/mappers/executive_assistant_mapper.py +156 -0
  381. wxcli/migration/transform/mappers/feature_mapper.py +1179 -0
  382. wxcli/migration/transform/mappers/line_mapper.py +310 -0
  383. wxcli/migration/transform/mappers/location_mapper.py +235 -0
  384. wxcli/migration/transform/mappers/moh_mapper.py +114 -0
  385. wxcli/migration/transform/mappers/monitoring_mapper.py +221 -0
  386. wxcli/migration/transform/mappers/receptionist_mapper.py +245 -0
  387. wxcli/migration/transform/mappers/routing_mapper.py +821 -0
  388. wxcli/migration/transform/mappers/snr_mapper.py +201 -0
  389. wxcli/migration/transform/mappers/softkey_mapper.py +205 -0
  390. wxcli/migration/transform/mappers/user_mapper.py +264 -0
  391. wxcli/migration/transform/mappers/voicemail_group_mapper.py +286 -0
  392. wxcli/migration/transform/mappers/voicemail_mapper.py +514 -0
  393. wxcli/migration/transform/mappers/workspace_mapper.py +464 -0
  394. wxcli/migration/transform/normalizers.py +2008 -0
  395. wxcli/migration/transform/pattern_converter.py +106 -0
  396. wxcli/migration/transform/pipeline.py +271 -0
  397. wxcli/migration/transform/rules.py +255 -0
  398. wxcli/org_health/CLAUDE.md +63 -0
  399. wxcli/org_health/__init__.py +7 -0
  400. wxcli/org_health/analyze.py +93 -0
  401. wxcli/org_health/checks.py +458 -0
  402. wxcli/org_health/collector.py +62 -0
  403. wxcli/org_health/models.py +78 -0
  404. wxcli/org_health/report.py +300 -0
  405. wxcli/output.py +101 -0
  406. wxcli-1.2.0.dist-info/METADATA +505 -0
  407. wxcli-1.2.0.dist-info/RECORD +413 -0
  408. wxcli-1.2.0.dist-info/WHEEL +5 -0
  409. wxcli-1.2.0.dist-info/entry_points.txt +2 -0
  410. wxcli-1.2.0.dist-info/licenses/LICENSE +191 -0
  411. wxcli-1.2.0.dist-info/scm_file_list.json +751 -0
  412. wxcli-1.2.0.dist-info/scm_version.json +8 -0
  413. wxcli-1.2.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,457 @@
1
+ # Contact Center: Journey Data Service (JDS / CJDS)
2
+
3
+ Reference for the Webex Contact Center Customer Journey Data Service — identity resolution,
4
+ person profiles, profile view templates, journey event ingestion, and real-time streaming.
5
+ 41 commands in the `cc-journey` CLI group spanning 7 functional areas.
6
+
7
+ > **Regional base URL:** `https://api.wxcc-{region}.cisco.com`
8
+ > **Auth:** `cjp:config_read` / `cjp:config_write` for most operations. JDS admin APIs
9
+ > (`/admin/v1/api/...`) additionally require `cjds:admin_org_read` / `cjds:admin_org_write`.
10
+ > **Set region:** `wxcli set-cc-region <region>` (defaults to us1)
11
+
12
+ **Important:** Journey workspaces are NOT Webex Calling workspaces. JDS workspaces organize
13
+ journey data, persons, templates, and actions. They have no relation to Webex Calling workspaces
14
+ that represent physical rooms/devices.
15
+
16
+ **Path families:**
17
+ - Admin API: `/admin/v1/api/...` — workspace, person, template, and action management
18
+ - Runtime API: `/v1/api/...` — live profile views, event streaming, identity operations
19
+ - Publish API: `/publish/v1/api/...` — event ingestion
20
+
21
+ These do NOT follow the `/organization/{orgid}/` pattern used by all other CC APIs.
22
+
23
+ ## Sources
24
+
25
+ - OpenAPI spec: `specs/webex-contact-center.json`
26
+ - developer.webex.com Contact Center APIs
27
+
28
+ ---
29
+
30
+ ## Table of Contents
31
+
32
+ 1. [Workspace Management](#1-workspace-management)
33
+ 2. [Person and Identity Management](#2-person-and-identity-management)
34
+ 3. [Profile View Templates](#3-profile-view-templates)
35
+ 4. [Profile Views and Events](#4-profile-views-and-events)
36
+ 5. [Journey Actions](#5-journey-actions)
37
+ 6. [WXCC Subscription](#6-wxcc-subscription)
38
+ 7. [Data Ingestion](#7-data-ingestion)
39
+ 8. [Raw HTTP Endpoint Table](#8-raw-http-endpoint-table)
40
+ 9. [Gotchas](#9-gotchas)
41
+ 10. [See Also](#10-see-also)
42
+
43
+ ---
44
+
45
+ ## 1. Workspace Management
46
+
47
+ CLI group: `wxcli cc-journey` (5 commands)
48
+
49
+ JDS workspaces are the top-level container for all journey data. A workspace links to one or
50
+ more WXCC subscriptions that feed contact events into the journey stream automatically.
51
+
52
+ | CLI Command | HTTP | Description |
53
+ |-------------|------|-------------|
54
+ | `list` | GET `/admin/v1/api/workspace` | Get all workspaces |
55
+ | `create-workspace` | POST `/admin/v1/api/workspace` | Create workspace |
56
+ | `show-workspace-id-api` | GET `/admin/v1/api/workspace/workspace-id/{workspaceId}` | Get workspace |
57
+ | `update-workspace-id` | PUT `/admin/v1/api/workspace/workspace-id/{workspaceId}` | Update workspace |
58
+ | `delete` | DELETE `/admin/v1/api/workspace/workspace-id/{workspaceId}` | Delete workspace |
59
+
60
+ ```bash
61
+ # List all JDS workspaces
62
+ wxcli cc-journey list
63
+
64
+ # Create a workspace
65
+ wxcli cc-journey create-workspace --json-body '{"name": "Sales Journey"}'
66
+
67
+ # Get workspace details (includes wxccSubscriptionIds)
68
+ wxcli cc-journey show-workspace-id-api ws-abc-123
69
+ ```
70
+
71
+ **Workspace response shape:**
72
+ ```json
73
+ {
74
+ "id": "65cfdcee870a2d0e4a9864b8",
75
+ "name": "My JDS Workspace",
76
+ "description": "...",
77
+ "wxccSubscriptionIds": ["69ff3a55-612f-452f-80d2-884d6d248c9a"]
78
+ }
79
+ ```
80
+
81
+ `wxccSubscriptionIds` lists the WXCC subscription UUIDs linked to this workspace. If empty,
82
+ no WXCC events flow in automatically — person records must be created manually or via the
83
+ Publish API.
84
+
85
+ ---
86
+
87
+ ## 2. Person and Identity Management
88
+
89
+ CLI group: `wxcli cc-journey` (10 commands)
90
+
91
+ Persons are the core identity objects in JDS. Each person has typed identity buckets (`phone`,
92
+ `email`, `temporaryId`, `customerId`, `socialId`) and a flattened `aliases` array used for
93
+ lookup and merge matching.
94
+
95
+ | CLI Command | HTTP | Description |
96
+ |-------------|------|-------------|
97
+ | `show-workspace-id-person` | GET `.../person/workspace-id/{workspaceId}` | List all persons |
98
+ | `create-workspace-id-person` | POST `.../person/workspace-id/{workspaceId}` | Create a person |
99
+ | `update-person-id-workspace-id` | PATCH `.../person/workspace-id/{wId}/person-id/{pId}` | Update person |
100
+ | `delete-person-id` | DELETE `.../person/workspace-id/{wId}/person-id/{pId}` | Delete person |
101
+ | `update-person-id-workspace-id-1` | PATCH `.../person/add-identities/workspace-id/{wId}/person-id/{pId}` | Add identities |
102
+ | `update` | PATCH `/v1/api/person/remove-identities/...` | Remove identities (runtime) |
103
+ | `update-person-id-workspace-id-2` | PATCH `.../person/remove-identities/workspace-id/{wId}/person-id/{pId}` | Remove identities (admin) |
104
+ | `show-aliases` | GET `.../person/workspace-id/{wId}/aliases/{aliases}` | Search by alias |
105
+ | `create-workspace-id-merge-identities` | POST `.../person/merge-identities/workspace-id/{wId}` | Merge aliases |
106
+ | `create-primary-person-id` | POST `.../person/merge/workspace-id/{wId}/primary-person-id/{pId}` | Merge to primary |
107
+
108
+ Admin paths are prefixed with `/admin/v1/api`.
109
+
110
+ ```bash
111
+ # List all persons in a workspace
112
+ wxcli cc-journey show-workspace-id-person ws-abc-123 -o json
113
+
114
+ # Search by alias (use E.164 with + prefix for phone numbers)
115
+ wxcli cc-journey show-aliases ws-abc-123 "+19103915567" -o json
116
+
117
+ # Create a person manually
118
+ wxcli cc-journey create-workspace-id-person ws-abc-123 --json-body '{
119
+ "firstName": "John", "lastName": "Doe",
120
+ "identities": [{"type": "phone", "value": "+15551234567"}]
121
+ }'
122
+
123
+ # Delete a person by ID
124
+ wxcli cc-journey delete-person-id ws-abc-123 person-id-here
125
+
126
+ # Merge identities to a primary person
127
+ wxcli cc-journey create-primary-person-id ws-abc-123 person-001
128
+ ```
129
+
130
+ **Person record shape:**
131
+ ```json
132
+ {
133
+ "id": "69efeb1d2fb1cb6e298ca0f8",
134
+ "firstName": null,
135
+ "lastName": null,
136
+ "phone": ["+14403967184"],
137
+ "email": [],
138
+ "temporaryId": [],
139
+ "customerId": [],
140
+ "socialId": [],
141
+ "aliases": ["+14403967184"],
142
+ "organizationId": "b8410147-6104-42e8-9b93-639730d983ff",
143
+ "workspaceId": "65cfdcee870a2d0e4a9864b8",
144
+ "override": null,
145
+ "createdAt": "2026-04-27T23:02:53.490Z",
146
+ "createdBy": "journey-stream-profiles",
147
+ "updatedAt": "2026-04-27T23:02:53.490Z",
148
+ "updatedBy": "journey-stream-profiles"
149
+ }
150
+ ```
151
+
152
+ ---
153
+
154
+ ## 3. Profile View Templates
155
+
156
+ CLI group: `wxcli cc-journey` (6 commands)
157
+
158
+ Profile View Templates define which journey data fields are surfaced in the agent desktop
159
+ Customer Journey widget. A template specifies the attributes and layout shown to agents
160
+ during an active contact.
161
+
162
+ | CLI Command | HTTP | Description |
163
+ |-------------|------|-------------|
164
+ | `show-workspace-id-profile-view-template` | GET `.../profile-view-template/workspace-id/{wId}` | List templates |
165
+ | `create-workspace-id-profile-view-template` | POST `.../profile-view-template/workspace-id/{wId}` | Create template |
166
+ | `show-template-id-workspace-id` | GET `.../profile-view-template/workspace-id/{wId}/template-id/{tId}` | Get by ID |
167
+ | `show-template-name-workspace-id` | GET `.../profile-view-template/workspace-id/{wId}/template-name/{name}` | Get by name |
168
+ | `update-template-id` | PUT `.../profile-view-template/workspace-id/{wId}/template-id/{tId}` | Update template |
169
+ | `delete-template-id` | DELETE `.../profile-view-template/workspace-id/{wId}/template-id/{tId}` | Delete template |
170
+
171
+ All paths are prefixed with `/admin/v1/api`.
172
+
173
+ ```bash
174
+ # List all profile view templates
175
+ wxcli cc-journey show-workspace-id-profile-view-template ws-abc-123
176
+
177
+ # Get template by name
178
+ wxcli cc-journey show-template-name-workspace-id ws-abc-123 "Customer 360"
179
+
180
+ # Create a template
181
+ wxcli cc-journey create-workspace-id-profile-view-template ws-abc-123 --json-body '{
182
+ "name": "Customer 360",
183
+ "attributes": ["firstName", "lastName", "recentOrders"]
184
+ }'
185
+ ```
186
+
187
+ ---
188
+
189
+ ## 4. Profile Views and Events
190
+
191
+ CLI group: `wxcli cc-journey` (9 commands)
192
+
193
+ Historic and streaming profile view endpoints plus journey event retrieval.
194
+
195
+ | CLI Command | HTTP | Description |
196
+ |-------------|------|-------------|
197
+ | `show` | GET `/admin/v1/api/progressive-profile-view/.../template-name/{name}` | Historic view by person + template name |
198
+ | `show-template-name-person-id` | GET `/v1/api/progressive-profile-view/.../person-id/{pId}/template-name/{name}` | Historic view (runtime) |
199
+ | `show-template-id-identity` | GET `/v1/api/progressive-profile-view/stream/.../identity/{id}/template-id/{tId}` | Stream views by template ID |
200
+ | `show-workspace-id-events` | GET `/v1/api/events/workspace-id/{wId}` | Historic journey events |
201
+
202
+ Additional profile view endpoints provide access by identity + template ID, identity + template name,
203
+ person + template ID, and streaming by template name. All follow the pattern:
204
+ `/v1/api/progressive-profile-view/[stream/]workspace-id/{wId}/{lookup-type}/{value}/template-{id|name}/{template}`
205
+
206
+ ```bash
207
+ # Get historic profile view by person and template name
208
+ wxcli cc-journey show ws-abc-123 person-001 "Customer 360"
209
+
210
+ # Stream progressive profile views (SSE — long-lived connection)
211
+ wxcli cc-journey show-template-id-identity ws-abc-123 "+15551234567" tmpl-001
212
+
213
+ # Get all historic journey events for a workspace
214
+ wxcli cc-journey show-workspace-id-events ws-abc-123 -o json
215
+
216
+ # Filter events by type (RSQL syntax)
217
+ wxcli cc-journey show-workspace-id-events ws-abc-123 \
218
+ --identity "+19103915567" \
219
+ --filter "type=='custom:store_verified'" -o json
220
+ ```
221
+
222
+ ---
223
+
224
+ ## 5. Journey Actions
225
+
226
+ CLI group: `wxcli cc-journey` (7 commands)
227
+
228
+ CLI group: `wxcli cc-journey` (7 commands)
229
+
230
+ Journey actions define automated responses triggered by journey events — webhooks, notifications,
231
+ or other integrations that fire when specific journey conditions are met.
232
+
233
+ | CLI Command | HTTP | Description |
234
+ |-------------|------|-------------|
235
+ | `show-workspace-id-journey-actions` | GET `.../journey-actions/workspace-id/{wId}` | Get all actions |
236
+ | `show-template-id-workspace-id-1` | GET `.../journey-actions/workspace-id/{wId}/template-id/{tId}` | Get actions for template |
237
+ | `create-template-id` | POST `.../journey-actions/workspace-id/{wId}/template-id/{tId}` | Create action |
238
+ | `show-action-name` | GET `.../journey-actions/.../action-name/{name}` | Get action by name |
239
+ | `show-action-id` | GET `.../journey-actions/.../action-id/{actionId}` | Get action by ID |
240
+ | `update-action-id` | PUT `.../journey-actions/.../action-id/{actionId}` | Update action |
241
+ | `delete-action-id` | DELETE `.../journey-actions/.../action-id/{actionId}` | Delete action |
242
+
243
+ All paths are prefixed with `/admin/v1/api`.
244
+
245
+ ```bash
246
+ # List all journey actions
247
+ wxcli cc-journey show-workspace-id-journey-actions ws-abc-123
248
+
249
+ # Create an action
250
+ wxcli cc-journey create-template-id ws-abc-123 tmpl-001 --json-body '{
251
+ "name": "Send Welcome Email",
252
+ "type": "webhook",
253
+ "config": {"url": "https://example.com/webhook"}
254
+ }'
255
+
256
+ # Get action by name
257
+ wxcli cc-journey show-action-name ws-abc-123 tmpl-001 "Send Welcome Email"
258
+ ```
259
+
260
+ ---
261
+
262
+ ## 6. WXCC Subscription
263
+
264
+ CLI group: `wxcli cc-journey` (3 commands)
265
+
266
+ Manage the WXCC event subscription that feeds journey data from the contact center into JDS.
267
+ When a subscription is active, every WXCC contact event (`task:new`, `task:ended`, etc.) is
268
+ consumed by `journey-stream-profiles`, which creates or updates person records automatically.
269
+ A workspace with no subscription receives no automatic data — records must be created manually
270
+ or via the Publish API.
271
+
272
+ | CLI Command | HTTP | Description |
273
+ |-------------|------|-------------|
274
+ | `show-workspace-id-wxcc-subscription` | GET `.../wxcc-subscription/workspace-id/{wId}` | Get subscription |
275
+ | `create` | POST `.../wxcc-subscription/workspace-id/{wId}` | Create subscription |
276
+ | `delete-workspace-id` | DELETE `.../wxcc-subscription/workspace-id/{wId}` | Delete subscription |
277
+
278
+ All paths are prefixed with `/admin/v1/api`.
279
+
280
+ ```bash
281
+ # Check WXCC subscription status
282
+ wxcli cc-journey show-workspace-id-wxcc-subscription ws-abc-123
283
+
284
+ # Create WXCC subscription (links workspace to WXCC event stream)
285
+ wxcli cc-journey create ws-abc-123
286
+
287
+ # Delete WXCC subscription
288
+ wxcli cc-journey delete-workspace-id ws-abc-123
289
+ ```
290
+
291
+ ---
292
+
293
+ ## 7. Data Ingestion
294
+
295
+ CLI group: `wxcli cc-journey` (1 command)
296
+
297
+ Post custom journey events from external systems, flows, or applications. Events follow the
298
+ CloudEvents 1.0 specification and are ingested asynchronously.
299
+
300
+ | CLI Command | HTTP | Description |
301
+ |-------------|------|-------------|
302
+ | `create-event` | POST `/publish/v1/api/event?workspaceId={wId}` | Post a journey event |
303
+
304
+ ```bash
305
+ # Publish a custom journey event
306
+ wxcli cc-journey create-event --json-body '{
307
+ "id": "unique-event-id",
308
+ "specversion": "1.0",
309
+ "type": "custom:store_verified",
310
+ "source": "wxcc_flow",
311
+ "identity": "+15551234567",
312
+ "identitytype": "phone",
313
+ "datacontenttype": "application/json",
314
+ "data": {"event": "store_verified"}
315
+ }'
316
+ ```
317
+
318
+ **Raw HTTP:**
319
+ ```http
320
+ POST https://api.wxcc-us1.cisco.com/publish/v1/api/event?workspaceId={workspaceId}
321
+ Authorization: Bearer {cc_token}
322
+ Content-Type: application/json
323
+
324
+ {
325
+ "id": "unique-event-id",
326
+ "specversion": "1.0",
327
+ "type": "custom:store_verified",
328
+ "source": "wxcc_flow",
329
+ "identity": "+15551234567",
330
+ "identitytype": "phone",
331
+ "datacontenttype": "application/json",
332
+ "data": {"event": "store_verified"}
333
+ }
334
+ ```
335
+
336
+ Returns `"Accepted for processing"` on success (202). Events are immutable once ingested.
337
+
338
+ ---
339
+
340
+ ## 8. Raw HTTP Endpoint Table
341
+
342
+ All JDS endpoints. Admin paths require `cjds:admin_org_read`/`cjds:admin_org_write`.
343
+
344
+ ### Workspace
345
+
346
+ | Method | Path | Description |
347
+ |--------|------|-------------|
348
+ | GET | `/admin/v1/api/workspace` | List all workspaces |
349
+ | POST | `/admin/v1/api/workspace` | Create workspace |
350
+ | GET | `/admin/v1/api/workspace/workspace-id/{wId}` | Get workspace |
351
+ | PUT | `/admin/v1/api/workspace/workspace-id/{wId}` | Update workspace |
352
+ | DELETE | `/admin/v1/api/workspace/workspace-id/{wId}` | Delete workspace |
353
+
354
+ ### Person
355
+
356
+ | Method | Path | Description |
357
+ |--------|------|-------------|
358
+ | GET | `/admin/v1/api/person/workspace-id/{wId}` | List persons |
359
+ | POST | `/admin/v1/api/person/workspace-id/{wId}` | Create person |
360
+ | PATCH | `/admin/v1/api/person/workspace-id/{wId}/person-id/{pId}` | Update person |
361
+ | DELETE | `/admin/v1/api/person/workspace-id/{wId}/person-id/{pId}` | Delete person |
362
+ | GET | `/admin/v1/api/person/workspace-id/{wId}/aliases/{alias}` | Search by alias |
363
+ | PATCH | `/admin/v1/api/person/add-identities/workspace-id/{wId}/person-id/{pId}` | Add identities |
364
+ | PATCH | `/admin/v1/api/person/remove-identities/workspace-id/{wId}/person-id/{pId}` | Remove identities (admin) |
365
+ | PATCH | `/v1/api/person/remove-identities/workspace-id/{wId}/person-id/{pId}` | Remove identities (runtime) |
366
+ | POST | `/admin/v1/api/person/merge-identities/workspace-id/{wId}` | Merge aliases |
367
+ | POST | `/admin/v1/api/person/merge/workspace-id/{wId}/primary-person-id/{pId}` | Merge to primary |
368
+
369
+ ### Profile View Templates
370
+
371
+ | Method | Path | Description |
372
+ |--------|------|-------------|
373
+ | GET | `/admin/v1/api/profile-view-template/workspace-id/{wId}` | List templates |
374
+ | POST | `/admin/v1/api/profile-view-template/workspace-id/{wId}` | Create template |
375
+ | GET | `/admin/v1/api/profile-view-template/workspace-id/{wId}/template-id/{tId}` | Get by ID |
376
+ | GET | `/admin/v1/api/profile-view-template/workspace-id/{wId}/template-name/{name}` | Get by name |
377
+ | PUT | `/admin/v1/api/profile-view-template/workspace-id/{wId}/template-id/{tId}` | Update |
378
+ | DELETE | `/admin/v1/api/profile-view-template/workspace-id/{wId}/template-id/{tId}` | Delete |
379
+
380
+ ### Profile Views (Progressive)
381
+
382
+ | Method | Path | Description |
383
+ |--------|------|-------------|
384
+ | GET | `/admin/v1/api/progressive-profile-view/.../person-id/{pId}/template-name/{name}` | Historic view (person + name, admin) |
385
+ | GET | `/v1/api/progressive-profile-view/.../person-id/{pId}/template-name/{name}` | Historic view (person + name, runtime) |
386
+ | GET | `/v1/api/progressive-profile-view/.../person-id/{pId}/template-id/{tId}` | Historic view (person + template ID) |
387
+ | GET | `/v1/api/progressive-profile-view/.../identity/{id}/template-id/{tId}` | Historic view (identity + template ID) |
388
+ | GET | `/v1/api/progressive-profile-view/.../identity/{id}/template-name/{name}` | Historic view (identity + name) |
389
+ | GET | `/v1/api/progressive-profile-view/stream/.../identity/{id}/template-id/{tId}` | Stream views (template ID) |
390
+ | GET | `/v1/api/progressive-profile-view/stream/.../identity/{id}/template-name/{name}` | Stream views (template name) |
391
+
392
+ ### Events
393
+
394
+ | Method | Path | Description |
395
+ |--------|------|-------------|
396
+ | GET | `/v1/api/events/workspace-id/{wId}` | Historic events |
397
+ | GET | `/v1/api/events/stream/workspace-id/{wId}/identity/{identity}` | Stream events by identity |
398
+ | POST | `/publish/v1/api/event?workspaceId={wId}` | Post journey event |
399
+
400
+ ### Journey Actions
401
+
402
+ | Method | Path | Description |
403
+ |--------|------|-------------|
404
+ | GET | `/admin/v1/api/journey-actions/workspace-id/{wId}` | Get all actions |
405
+ | GET | `/admin/v1/api/journey-actions/workspace-id/{wId}/template-id/{tId}` | Get for template |
406
+ | POST | `/admin/v1/api/journey-actions/workspace-id/{wId}/template-id/{tId}` | Create action |
407
+ | GET | `/admin/v1/api/journey-actions/.../template-id/{tId}/action-id/{aId}` | Get by ID |
408
+ | GET | `/admin/v1/api/journey-actions/.../template-id/{tId}/action-name/{name}` | Get by name |
409
+ | PUT | `/admin/v1/api/journey-actions/.../template-id/{tId}/action-id/{aId}` | Update |
410
+ | DELETE | `/admin/v1/api/journey-actions/.../template-id/{tId}/action-id/{aId}` | Delete |
411
+
412
+ ### WXCC Subscription
413
+
414
+ | Method | Path | Description |
415
+ |--------|------|-------------|
416
+ | GET | `/admin/v1/api/wxcc-subscription/workspace-id/{wId}` | Get subscription |
417
+ | POST | `/admin/v1/api/wxcc-subscription/workspace-id/{wId}` | Create subscription |
418
+ | DELETE | `/admin/v1/api/wxcc-subscription/workspace-id/{wId}` | Delete subscription |
419
+
420
+ ---
421
+
422
+ ## 9. Gotchas
423
+
424
+ 1. **JDS APIs use completely different path patterns from the CC config API.** Three path families: `/admin/v1/api/` (admin management), `/v1/api/` (runtime queries and streaming), `/publish/v1/api/` (event ingestion). These do not follow the `/organization/{orgid}/` pattern used by all other CC APIs.
425
+
426
+ 2. **JDS admin operations require separate `cjds:` scopes.** The standard `cjp:config_read`/`cjp:config_write` scopes do NOT grant access to JDS admin APIs (`/admin/v1/api/...`). You also need `cjds:admin_org_read` and/or `cjds:admin_org_write`. Without these, workspace and person management calls return 403.
427
+
428
+ 3. **`task:new` is the event that triggers JDS person record creation.** When a caller first contacts WXCC, the platform fires `task:new`. `journey-stream-profiles` consumes this and creates the JDS person record using the caller's ANI in E.164 format. The record appears within seconds. At the exact moment `task:new` fires the record may not yet exist — but by the time a flow HTTP node queries JDS (a few seconds later), it will be present.
429
+
430
+ 4. **WXCC writes ANI to JDS in E.164 format.** Phone numbers are stored as `+19103915567`, not `9103915567`. Alias lookups from a flow must pass the number with `+1` prefix or they will miss.
431
+
432
+ 5. **Alias lookup strips `+` but does not normalize the country code.** `9103915567`, `19103915567`, and `+19103915567` are three distinct aliases — they will not cross-match. The `+` is stripped before matching, so `+19103915567` matches `19103915567` in `aliases`, but `9103915567` is a completely separate alias.
433
+
434
+ 6. **`createdAt == updatedAt` signals a first-time caller.** A person record where both timestamps are equal and `createdBy` is `journey-stream-profiles` was just created by the current contact — this is their first interaction. A returning caller's record will have `updatedAt > createdAt` or prior events predating the current contact.
435
+
436
+ 7. **Publish API requires `workspaceId` as a query parameter, not in the body.** POST `/publish/v1/api/event?workspaceId={workspaceId}`. The `JourneyCloudEventModel` body schema has no `workspaceId` field. Required body fields: `id`, `specversion`, `type`, `source`, `identity`, `identitytype`, `datacontenttype`, `data`.
437
+
438
+ 8. **Events are immutable — no delete endpoint exists.** The Publish API is write-only. The events read endpoints are GET-only. Once an event is ingested it cannot be removed.
439
+
440
+ 9. **Events filter uses RSQL syntax.** Pass `?filter=type=='custom:store_verified'` to filter by event type. A plain string returns `BAD_REQUEST`. Other filterable fields include `identityType`. See the [RSQL syntax reference](https://github.com/perplexhub/rsql-jpa-specification#rsql-syntax-reference).
441
+
442
+ 10. **Journey streaming endpoints (SSE) are long-lived connections.** The CLI may time out — use `--debug` to see the raw SSE stream or use raw HTTP with an SSE-capable client.
443
+
444
+ 11. **`wxcli cc-journey show-workspace-id-events` had a missing `/v1/` prefix bug.** Fixed in the current CLI. Both commands now correctly hit `/v1/api/events/...`.
445
+
446
+ 12. **Flow Designer HTTP connector requires a full absolute URL.** Relative paths like `/publish/v1/api/event` return HTTP 500 "is not a valid HTTP URL". Always use `https://api.wxcc-{region}.cisco.com/publish/v1/api/event?workspaceId=...`.
447
+
448
+ 13. **For Flow Designer JDS patterns (returning caller detection, posting events from flows), see `contact-center-routing.md` gotchas #16–18.**
449
+
450
+ ---
451
+
452
+ ## 10. See Also
453
+
454
+ - [Contact Center: Analytics](contact-center-analytics.md) — AI features, monitoring, subscriptions, tasks, search
455
+ - [Contact Center: Routing](contact-center-routing.md) — Flow Designer JDS integration patterns (#16–18)
456
+ - [Contact Center: Core](contact-center-core.md) — Agents, queues, teams, skills
457
+ - [Authentication](authentication.md) — `cjp:` and `cjds:` OAuth scopes