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,322 @@
1
+ # Admin: Audit & Security
2
+
3
+ Admin audit trail, security audit events, and compliance event review for Webex organizations.
4
+
5
+ ## Sources
6
+
7
+ - [Admin Audit Events API](https://developer.webex.com/docs/api/v1/admin-audit-events)
8
+ - [Security Audit Events API](https://developer.webex.com/docs/api/v1/security-audit-events)
9
+ - [Events API](https://developer.webex.com/docs/api/v1/events)
10
+ - OpenAPI specs: `specs/webex-admin.json` (audit-events, security-audit, events)
11
+
12
+ ---
13
+
14
+ ## Key Concepts
15
+
16
+ Three different event APIs serve different purposes. Picking the right one matters.
17
+
18
+ ### Admin Audit Events (`audit-events`)
19
+
20
+ Who changed what in Control Hub. Every admin action is logged: user created, setting changed, license assigned, location modified, policy updated. Use this when you need an audit trail of administrative changes to the organization.
21
+
22
+ - **API path:** `GET /v1/adminAudit/events`
23
+ - **Date parameters:** `--from` / `--to`
24
+ - **Supports event categories** via `--event-categories` (get the list from `list-event-categories`)
25
+
26
+ ### Security Audit Events (`security-audit`)
27
+
28
+ Security-related events: login failures, suspicious activity, security policy changes, authentication anomalies. Use this when investigating security incidents or feeding events into an external SIEM.
29
+
30
+ - **API path:** `GET /v1/admin/securityAudit/events`
31
+ - **Date parameters:** `--start-time` / `--end-time`
32
+ - **Requires scope:** `audit:events_read`
33
+
34
+ ### Events (`events`)
35
+
36
+ General Webex platform events: messages created/deleted, calls placed, meetings held, memberships changed. Use this for compliance, eDiscovery, or building integrations that react to platform activity.
37
+
38
+ - **API path:** `GET /v1/events` (list), `GET /v1/events/{eventId}` (detail)
39
+ - **Date parameters:** `--from` / `--to`
40
+ - **Filterable by resource type** (`--resource`) and event type (`--type`: created, updated, deleted, ended)
41
+ - **Filterable by service** (`--service-type calling` to scope to Webex Calling events only)
42
+
43
+ ---
44
+
45
+ ## Required Scopes
46
+
47
+ | Scope | Required For | Notes |
48
+ |-------|-------------|-------|
49
+ | `audit:events_read` | `security-audit list` | Specifically required for security audit events. Without it you get 401/403. |
50
+ | Standard admin token | `audit-events list`, `audit-events list-event-categories` | Full or read-only admin. No special scope beyond admin auth. |
51
+ | Standard admin token | `events list`, `events show` | Full or read-only admin. Compliance officer role also works. |
52
+
53
+ ---
54
+
55
+ ## 1. Admin Audit Events (`audit-events`)
56
+
57
+ ### Commands
58
+
59
+ | Command | Description | Key Options |
60
+ |---------|-------------|-------------|
61
+ | `audit-events list` | List admin audit events | `--from`, `--to`, `--actor-id`, `--event-categories`, `--max`, `--offset` |
62
+ | `audit-events list-event-categories` | List available event categories | (none required) |
63
+
64
+ ### CLI Examples
65
+
66
+ ```bash
67
+ # List all available audit event categories
68
+ wxcli audit-events list-event-categories -o json
69
+
70
+ # List audit events from the last 24 hours
71
+ wxcli audit-events list --from "2026-03-18T00:00:00.000Z" --to "2026-03-19T00:00:00.000Z" -o json
72
+
73
+ # List audit events by a specific admin
74
+ wxcli audit-events list --actor-id "Y2lzY29zcGFyaz..." --from "2026-03-01T00:00:00.000Z" --to "2026-03-19T00:00:00.000Z" -o json
75
+
76
+ # Filter by event category (get category names from list-event-categories first)
77
+ wxcli audit-events list --event-categories "Users" --from "2026-03-01T00:00:00.000Z" --to "2026-03-19T00:00:00.000Z" -o json
78
+
79
+ # Limit results
80
+ wxcli audit-events list --from "2026-03-18T00:00:00.000Z" --to "2026-03-19T00:00:00.000Z" --limit 50 -o json
81
+ ```
82
+
83
+ ### Raw HTTP
84
+
85
+ ```
86
+ GET https://webexapis.com/v1/adminAudit/events?from=2026-03-18T00:00:00.000Z&to=2026-03-19T00:00:00.000Z
87
+ Authorization: Bearer <admin_token>
88
+ ```
89
+
90
+ Response key: `items` (array of event objects).
91
+
92
+ ```
93
+ GET https://webexapis.com/v1/adminAudit/eventCategories
94
+ Authorization: Bearer <admin_token>
95
+ ```
96
+
97
+ Response key: `eventCategories` (array of category strings).
98
+
99
+ ---
100
+
101
+ ## 2. Security Audit Events (`security-audit`)
102
+
103
+ ### Commands
104
+
105
+ | Command | Description | Key Options |
106
+ |---------|-------------|-------------|
107
+ | `security-audit list` | List security audit events | `--start-time`, `--end-time`, `--actor-id`, `--event-categories`, `--max` |
108
+
109
+ ### CLI Examples
110
+
111
+ ```bash
112
+ # List security events for the last 7 days
113
+ wxcli security-audit list --start-time "2026-03-12T00:00:00.000Z" --end-time "2026-03-19T00:00:00.000Z" -o json
114
+
115
+ # List security events by a specific actor
116
+ wxcli security-audit list --actor-id "Y2lzY29zcGFyaz..." --start-time "2026-03-01T00:00:00.000Z" --end-time "2026-03-19T00:00:00.000Z" -o json
117
+
118
+ # Filter by event category
119
+ wxcli security-audit list --event-categories "Logins" --start-time "2026-03-18T00:00:00.000Z" --end-time "2026-03-19T00:00:00.000Z" -o json
120
+
121
+ # Limit results for a quick check
122
+ wxcli security-audit list --start-time "2026-03-18T00:00:00.000Z" --end-time "2026-03-19T00:00:00.000Z" --limit 20 -o json
123
+ ```
124
+
125
+ ### Raw HTTP
126
+
127
+ ```
128
+ GET https://webexapis.com/v1/admin/securityAudit/events?startTime=2026-03-12T00:00:00.000Z&endTime=2026-03-19T00:00:00.000Z
129
+ Authorization: Bearer <token_with_audit:events_read_scope>
130
+ ```
131
+
132
+ Response key: `items` (array of event objects).
133
+
134
+ **Scope note:** This endpoint requires the `audit:events_read` scope. A standard admin token without this scope will return 401 or 403.
135
+
136
+ ---
137
+
138
+ ## 3. Events (`events`)
139
+
140
+ ### Commands
141
+
142
+ | Command | Description | Key Options |
143
+ |---------|-------------|-------------|
144
+ | `events list` | List platform events | `--resource`, `--type`, `--actor-id`, `--from`, `--to`, `--service-type`, `--max` |
145
+ | `events show` | Get event details by ID | `EVENT_ID` (positional argument) |
146
+
147
+ ### CLI Examples
148
+
149
+ ```bash
150
+ # List all events from the last 24 hours
151
+ wxcli events list --from "2026-03-18T00:00:00.000Z" --to "2026-03-19T00:00:00.000Z" -o json
152
+
153
+ # List only calling events
154
+ wxcli events list --service-type calling --from "2026-03-18T00:00:00.000Z" --to "2026-03-19T00:00:00.000Z" -o json
155
+
156
+ # List only message-created events
157
+ wxcli events list --resource messages --type created --from "2026-03-18T00:00:00.000Z" --to "2026-03-19T00:00:00.000Z" -o json
158
+
159
+ # List events for a specific user (actor)
160
+ wxcli events list --actor-id "Y2lzY29zcGFyaz..." --from "2026-03-01T00:00:00.000Z" --to "2026-03-19T00:00:00.000Z" -o json
161
+
162
+ # List deleted events (compliance/eDiscovery)
163
+ wxcli events list --type deleted --from "2026-03-18T00:00:00.000Z" --to "2026-03-19T00:00:00.000Z" -o json
164
+
165
+ # Get full details for a specific event
166
+ wxcli events show "Y2lzY29zcGFyazovL3VzL0VWRU5ULzEyMzQ1"
167
+ ```
168
+
169
+ ### Raw HTTP
170
+
171
+ ```
172
+ GET https://webexapis.com/v1/events?from=2026-03-18T00:00:00.000Z&to=2026-03-19T00:00:00.000Z&resource=messages&type=created
173
+ Authorization: Bearer <admin_token>
174
+ ```
175
+
176
+ Response key: `items` (array of event objects).
177
+
178
+ ```
179
+ GET https://webexapis.com/v1/events/{eventId}
180
+ Authorization: Bearer <admin_token>
181
+ ```
182
+
183
+ Response: single event object (no wrapper key).
184
+
185
+ ### Event Resource Types
186
+
187
+ The `--resource` option accepts any Webex resource type. Common values:
188
+
189
+ | Resource | Description |
190
+ |----------|-------------|
191
+ | `messages` | Messages sent/deleted in rooms |
192
+ | `memberships` | Room membership changes |
193
+ | `rooms` | Room creation/updates |
194
+ | `telephony_calls` | Webex Calling call events |
195
+ | `meetings` | Meeting events |
196
+ | `recordings` | Recording events |
197
+ | `meetingMessages` | In-meeting chat messages |
198
+
199
+ ### Event Types
200
+
201
+ | Type | Description |
202
+ |------|-------------|
203
+ | `created` | Resource was created |
204
+ | `updated` | Resource was updated |
205
+ | `deleted` | Resource was deleted |
206
+ | `ended` | Resource ended (calls, meetings) |
207
+
208
+ ---
209
+
210
+ ## Recipes
211
+
212
+ ### Pull audit trail for a specific admin over a date range
213
+
214
+ Find all Control Hub changes made by a particular administrator:
215
+
216
+ ```bash
217
+ # Step 1: Get the admin's person ID (if you don't have it)
218
+ wxcli people list --email "admin@company.com" -o json
219
+
220
+ # Step 2: Pull their audit events for the date range
221
+ wxcli audit-events list \
222
+ --actor-id "Y2lzY29zcGFyazovL3VzL1BFT1BMRS8xMjM0" \
223
+ --from "2026-03-01T00:00:00.000Z" \
224
+ --to "2026-03-19T00:00:00.000Z" \
225
+ -o json
226
+ ```
227
+
228
+ ### Export security events for external SIEM ingestion
229
+
230
+ Pull security audit events in JSON format for import into Splunk, Sentinel, or other SIEM tools:
231
+
232
+ ```bash
233
+ # Pull the last 7 days of security events as JSON
234
+ wxcli security-audit list \
235
+ --start-time "2026-03-12T00:00:00.000Z" \
236
+ --end-time "2026-03-19T00:00:00.000Z" \
237
+ -o json > security_events_export.json
238
+
239
+ # For ongoing ingestion, run daily with a 24-hour window
240
+ wxcli security-audit list \
241
+ --start-time "2026-03-18T00:00:00.000Z" \
242
+ --end-time "2026-03-19T00:00:00.000Z" \
243
+ -o json >> siem_feed.json
244
+ ```
245
+
246
+ ### Compliance event review for a specific user
247
+
248
+ Review all platform activity for a user under investigation:
249
+
250
+ ```bash
251
+ # Step 1: Get the user's person ID
252
+ wxcli people list --email "user@company.com" -o json
253
+
254
+ # Step 2: Pull all events for that user
255
+ wxcli events list \
256
+ --actor-id "Y2lzY29zcGFyazovL3VzL1BFT1BMRS8xMjM0" \
257
+ --from "2026-03-01T00:00:00.000Z" \
258
+ --to "2026-03-19T00:00:00.000Z" \
259
+ -o json
260
+
261
+ # Step 3: Narrow to specific resource types if needed
262
+ wxcli events list \
263
+ --actor-id "Y2lzY29zcGFyazovL3VzL1BFT1BMRS8xMjM0" \
264
+ --resource messages \
265
+ --from "2026-03-01T00:00:00.000Z" \
266
+ --to "2026-03-19T00:00:00.000Z" \
267
+ -o json
268
+
269
+ # Step 4: Get full details on a specific event
270
+ wxcli events show "Y2lzY29zcGFyazovL3VzL0VWRU5ULzU2Nzg5"
271
+ ```
272
+
273
+ ### Filter audit events by category
274
+
275
+ Use `list-event-categories` to discover category names, then filter:
276
+
277
+ ```bash
278
+ # Step 1: See all available categories
279
+ wxcli audit-events list-event-categories -o json
280
+
281
+ # Step 2: Filter audit events by a specific category
282
+ wxcli audit-events list \
283
+ --event-categories "Users" \
284
+ --from "2026-03-01T00:00:00.000Z" \
285
+ --to "2026-03-19T00:00:00.000Z" \
286
+ -o json
287
+
288
+ # Step 3: Try other categories (Licenses, Settings, Locations, etc.)
289
+ wxcli audit-events list \
290
+ --event-categories "Licenses" \
291
+ --from "2026-03-18T00:00:00.000Z" \
292
+ --to "2026-03-19T00:00:00.000Z" \
293
+ -o json
294
+ ```
295
+
296
+ ---
297
+
298
+ ## Gotchas
299
+
300
+ 1. **Three different APIs serve different purposes.** `audit-events` = admin changes in Control Hub. `security-audit` = security/login events. `events` = general platform activity (messages, calls, meetings). Don't confuse them -- they have different endpoints, different parameters, and different scopes.
301
+
302
+ 2. **Date range filtering is essential.** Without `--from`/`--to` (or `--start-time`/`--end-time` for security-audit), you get the full event stream, which can be enormous and slow. Always specify a date range.
303
+
304
+ 3. **Date parameter names differ across APIs.** `audit-events` and `events` use `--from`/`--to`. `security-audit` uses `--start-time`/`--end-time`. Don't mix them up.
305
+
306
+ 4. **`audit:events_read` scope is specifically required for `security-audit`, not for `audit-events`.** This is counterintuitive. The `audit-events` group works with a standard admin token. The `security-audit` group requires the `audit:events_read` scope on the token. If you get 401/403 on `security-audit list`, check your scopes.
307
+
308
+ 5. **Event categories help narrow `audit-events` results.** Run `wxcli audit-events list-event-categories` first to see available category names (34 categories including `USERS`, `WEBEX_CALLING`, `DEVICES`, `LOGINS`, `LICENSE`, `LOCATIONS`, etc.), then pass them via `--event-categories`. The category names are **case-insensitive** — `USERS`, `users`, and `Users` all return the same results.
309
+
310
+ 6. **`events list` resource types are not validated client-side.** If you pass a misspelled `--resource` value, you get an empty result set, not an error. Use the known resource types listed above.
311
+
312
+ 7. **Pagination behavior.** All three list commands use `--max` for page size and return paginated responses with `items` key. Use `--limit` to control how many results wxcli returns. For large exports, use `-o json` and handle pagination manually if needed.
313
+
314
+ 8. **ISO 8601 datetime format required.** All date parameters expect ISO 8601 format: `2026-03-18T00:00:00.000Z`. Using other formats will return an error or unexpected results.
315
+
316
+ ---
317
+
318
+ ## See Also
319
+
320
+ - For Webex Calling CDR (call detail records), see [reporting-analytics.md](reporting-analytics.md).
321
+ - For webhook event subscriptions (receiving events in real-time), see [webhooks-events.md](webhooks-events.md).
322
+ - For people/user lookups (to get actor IDs), see `wxcli people list`.