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.
- wxcli/__init__.py +4 -0
- wxcli/_playbook/.claude/agents/migration-advisor.md +239 -0
- wxcli/_playbook/.claude/agents/wxc-calling-builder.md +946 -0
- wxcli/_playbook/.claude/rules/cleanup.md +29 -0
- wxcli/_playbook/.claude/rules/cucm-migration.md +58 -0
- wxcli/_playbook/.claude/rules/org-health.md +14 -0
- wxcli/_playbook/.claude/settings.json +8 -0
- wxcli/_playbook/.claude/skills/audit-compliance/SKILL.md +515 -0
- wxcli/_playbook/.claude/skills/call-control/SKILL.md +747 -0
- wxcli/_playbook/.claude/skills/configure-features/SKILL.md +623 -0
- wxcli/_playbook/.claude/skills/configure-routing/SKILL.md +627 -0
- wxcli/_playbook/.claude/skills/contact-center/SKILL.md +1181 -0
- wxcli/_playbook/.claude/skills/cucm-migrate/SKILL.md +820 -0
- wxcli/_playbook/.claude/skills/customer-assist/SKILL.md +443 -0
- wxcli/_playbook/.claude/skills/device-platform/SKILL.md +407 -0
- wxcli/_playbook/.claude/skills/manage-call-settings/SKILL.md +757 -0
- wxcli/_playbook/.claude/skills/manage-devices/SKILL.md +790 -0
- wxcli/_playbook/.claude/skills/manage-identity/SKILL.md +638 -0
- wxcli/_playbook/.claude/skills/manage-licensing/SKILL.md +528 -0
- wxcli/_playbook/.claude/skills/manage-meetings/SKILL.md +708 -0
- wxcli/_playbook/.claude/skills/messaging-bots/SKILL.md +365 -0
- wxcli/_playbook/.claude/skills/messaging-spaces/SKILL.md +520 -0
- wxcli/_playbook/.claude/skills/org-health/SKILL.md +159 -0
- wxcli/_playbook/.claude/skills/provision-calling/SKILL.md +421 -0
- wxcli/_playbook/.claude/skills/query-live/SKILL.md +183 -0
- wxcli/_playbook/.claude/skills/query-live/domains/call-flow-trace.md +223 -0
- wxcli/_playbook/.claude/skills/query-live/domains/call-history.md +44 -0
- wxcli/_playbook/.claude/skills/query-live/domains/features.md +169 -0
- wxcli/_playbook/.claude/skills/query-live/domains/numbers.md +93 -0
- wxcli/_playbook/.claude/skills/query-live/domains/people-and-settings.md +146 -0
- wxcli/_playbook/.claude/skills/query-live/domains/routing.md +124 -0
- wxcli/_playbook/.claude/skills/reporting/SKILL.md +501 -0
- wxcli/_playbook/.claude/skills/reporting/references/cdr-recipes.md +1628 -0
- wxcli/_playbook/.claude/skills/reporting-cc/SKILL.md +251 -0
- wxcli/_playbook/.claude/skills/reporting-meetings/SKILL.md +290 -0
- wxcli/_playbook/.claude/skills/teardown/SKILL.md +214 -0
- wxcli/_playbook/.claude/skills/video-mesh/SKILL.md +379 -0
- wxcli/_playbook/.claude/skills/wxc-calling-debug/SKILL.md +475 -0
- wxcli/_playbook/CLAUDE.md +373 -0
- wxcli/_playbook/docs/reference/CLAUDE.md +25 -0
- wxcli/_playbook/docs/reference/admin-apps-data.md +643 -0
- wxcli/_playbook/docs/reference/admin-audit-security.md +322 -0
- wxcli/_playbook/docs/reference/admin-hybrid.md +383 -0
- wxcli/_playbook/docs/reference/admin-identity-scim.md +1007 -0
- wxcli/_playbook/docs/reference/admin-licensing.md +414 -0
- wxcli/_playbook/docs/reference/admin-org-management.md +586 -0
- wxcli/_playbook/docs/reference/admin-partner.md +357 -0
- wxcli/_playbook/docs/reference/archive/wxc-sdk-patterns.md +1229 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-advanced.md +835 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-core.md +743 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-devices-workspaces.md +1305 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-features.md +849 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-locations.md +938 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-person.md +1255 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-routing.md +1262 -0
- wxcli/_playbook/docs/reference/authentication.md +965 -0
- wxcli/_playbook/docs/reference/call-control.md +1205 -0
- wxcli/_playbook/docs/reference/call-features-additional.md +2541 -0
- wxcli/_playbook/docs/reference/call-features-major.md +1320 -0
- wxcli/_playbook/docs/reference/call-routing.md +2304 -0
- wxcli/_playbook/docs/reference/contact-center-analytics.md +1049 -0
- wxcli/_playbook/docs/reference/contact-center-core.md +1614 -0
- wxcli/_playbook/docs/reference/contact-center-journey.md +457 -0
- wxcli/_playbook/docs/reference/contact-center-routing.md +1138 -0
- wxcli/_playbook/docs/reference/devices-core.md +1869 -0
- wxcli/_playbook/docs/reference/devices-dect.md +1150 -0
- wxcli/_playbook/docs/reference/devices-platform.md +467 -0
- wxcli/_playbook/docs/reference/devices-workspaces.md +1426 -0
- wxcli/_playbook/docs/reference/emergency-services.md +1122 -0
- wxcli/_playbook/docs/reference/location-calling-core.md +2037 -0
- wxcli/_playbook/docs/reference/location-calling-media.md +1334 -0
- wxcli/_playbook/docs/reference/location-recording-advanced.md +1482 -0
- wxcli/_playbook/docs/reference/meetings-content.md +473 -0
- wxcli/_playbook/docs/reference/meetings-core.md +903 -0
- wxcli/_playbook/docs/reference/meetings-infrastructure.md +899 -0
- wxcli/_playbook/docs/reference/meetings-settings.md +850 -0
- wxcli/_playbook/docs/reference/messaging-bots.md +1091 -0
- wxcli/_playbook/docs/reference/messaging-spaces.md +695 -0
- wxcli/_playbook/docs/reference/person-call-settings-behavior.md +1639 -0
- wxcli/_playbook/docs/reference/person-call-settings-handling.md +1394 -0
- wxcli/_playbook/docs/reference/person-call-settings-media.md +1898 -0
- wxcli/_playbook/docs/reference/person-call-settings-permissions.md +1329 -0
- wxcli/_playbook/docs/reference/provisioning.md +1366 -0
- wxcli/_playbook/docs/reference/reporting-analytics.md +1318 -0
- wxcli/_playbook/docs/reference/self-service-call-settings.md +1020 -0
- wxcli/_playbook/docs/reference/virtual-lines.md +1132 -0
- wxcli/_playbook/docs/reference/webhooks-events.md +1444 -0
- wxcli/_playbook/docs/reference/wxcadm-xsi-realtime.md +953 -0
- wxcli/_version.py +24 -0
- wxcli/auth.py +137 -0
- wxcli/commands/__init__.py +0 -0
- wxcli/commands/_registry.py +181 -0
- wxcli/commands/activation_email.py +103 -0
- wxcli/commands/admin_recordings.py +585 -0
- wxcli/commands/analytics.py +105 -0
- wxcli/commands/announcement_playlists.py +219 -0
- wxcli/commands/announcements.py +519 -0
- wxcli/commands/archive_users.py +36 -0
- wxcli/commands/attachment_actions.py +60 -0
- wxcli/commands/audit_events.py +83 -0
- wxcli/commands/authorizations.py +113 -0
- wxcli/commands/auto_attendant.py +642 -0
- wxcli/commands/broadworks_billing_reports.py +126 -0
- wxcli/commands/broadworks_enterprises.py +160 -0
- wxcli/commands/broadworks_subscribers.py +319 -0
- wxcli/commands/broadworks_workspaces.py +108 -0
- wxcli/commands/call_controls.py +1304 -0
- wxcli/commands/call_park.py +494 -0
- wxcli/commands/call_pickup.py +229 -0
- wxcli/commands/call_queue.py +1878 -0
- wxcli/commands/call_recording.py +707 -0
- wxcli/commands/call_routing.py +1610 -0
- wxcli/commands/call_settings_for_me_phase_5.py +212 -0
- wxcli/commands/caller_reputation.py +169 -0
- wxcli/commands/calling_service.py +305 -0
- wxcli/commands/cc_address_book.py +770 -0
- wxcli/commands/cc_agent_greetings.py +242 -0
- wxcli/commands/cc_agent_summaries.py +39 -0
- wxcli/commands/cc_agent_wellbeing.py +216 -0
- wxcli/commands/cc_agents.py +425 -0
- wxcli/commands/cc_ai_assistant.py +55 -0
- wxcli/commands/cc_ai_feature.py +294 -0
- wxcli/commands/cc_audio_files.py +149 -0
- wxcli/commands/cc_auto_csat.py +311 -0
- wxcli/commands/cc_aux_code.py +458 -0
- wxcli/commands/cc_business_hour.py +353 -0
- wxcli/commands/cc_call_monitoring.py +228 -0
- wxcli/commands/cc_callbacks.py +194 -0
- wxcli/commands/cc_campaign.py +212 -0
- wxcli/commands/cc_captures.py +39 -0
- wxcli/commands/cc_contact_list.py +169 -0
- wxcli/commands/cc_contact_number.py +295 -0
- wxcli/commands/cc_data_sources.py +235 -0
- wxcli/commands/cc_desktop_layout.py +380 -0
- wxcli/commands/cc_desktop_profile.py +322 -0
- wxcli/commands/cc_dial_number.py +511 -0
- wxcli/commands/cc_dial_plan.py +347 -0
- wxcli/commands/cc_dnc.py +101 -0
- wxcli/commands/cc_entry_point.py +545 -0
- wxcli/commands/cc_ewt.py +51 -0
- wxcli/commands/cc_flow.py +477 -0
- wxcli/commands/cc_global_vars.py +430 -0
- wxcli/commands/cc_holiday_list.py +335 -0
- wxcli/commands/cc_journey.py +1261 -0
- wxcli/commands/cc_legacy_flows.py +49 -0
- wxcli/commands/cc_multimedia_profile.py +436 -0
- wxcli/commands/cc_notification.py +51 -0
- wxcli/commands/cc_outdial_ani.py +604 -0
- wxcli/commands/cc_overrides.py +341 -0
- wxcli/commands/cc_queue.py +1083 -0
- wxcli/commands/cc_queue_stats.py +55 -0
- wxcli/commands/cc_realtime.py +51 -0
- wxcli/commands/cc_resource_collection.py +312 -0
- wxcli/commands/cc_search.py +46 -0
- wxcli/commands/cc_site.py +400 -0
- wxcli/commands/cc_skill.py +350 -0
- wxcli/commands/cc_skill_profile.py +289 -0
- wxcli/commands/cc_subscriptions.py +426 -0
- wxcli/commands/cc_summaries.py +130 -0
- wxcli/commands/cc_tasks.py +844 -0
- wxcli/commands/cc_team.py +325 -0
- wxcli/commands/cc_user_profiles.py +349 -0
- wxcli/commands/cc_users.py +701 -0
- wxcli/commands/cc_work_types.py +363 -0
- wxcli/commands/cdr.py +89 -0
- wxcli/commands/classifications.py +38 -0
- wxcli/commands/cleanup.py +1427 -0
- wxcli/commands/client_settings.py +72 -0
- wxcli/commands/conference.py +328 -0
- wxcli/commands/configure.py +72 -0
- wxcli/commands/converged_recordings.py +347 -0
- wxcli/commands/converged_recordings_export.py +310 -0
- wxcli/commands/cq_playlists.py +42 -0
- wxcli/commands/cucm.py +2794 -0
- wxcli/commands/cucm_config.py +129 -0
- wxcli/commands/customer_assist.py +373 -0
- wxcli/commands/data_sources.py +227 -0
- wxcli/commands/dect_devices.py +787 -0
- wxcli/commands/device_configurations.py +77 -0
- wxcli/commands/device_dynamic_settings.py +320 -0
- wxcli/commands/device_settings.py +1489 -0
- wxcli/commands/devices.py +280 -0
- wxcli/commands/domains.py +142 -0
- wxcli/commands/ecm.py +178 -0
- wxcli/commands/emergency_services.py +827 -0
- wxcli/commands/events.py +83 -0
- wxcli/commands/external_voicemail.py +52 -0
- wxcli/commands/groups.py +206 -0
- wxcli/commands/guest_management.py +76 -0
- wxcli/commands/hds.py +340 -0
- wxcli/commands/hot_desk.py +67 -0
- wxcli/commands/hot_desking_members.py +118 -0
- wxcli/commands/hot_desking_portal.py +124 -0
- wxcli/commands/hunt_group.py +577 -0
- wxcli/commands/hybrid_clusters.py +71 -0
- wxcli/commands/hybrid_connectors.py +67 -0
- wxcli/commands/identity_org.py +159 -0
- wxcli/commands/init_playbook.py +155 -0
- wxcli/commands/licenses.py +106 -0
- wxcli/commands/live_monitoring.py +40 -0
- wxcli/commands/location_call_handling.py +577 -0
- wxcli/commands/location_schedules.py +341 -0
- wxcli/commands/location_settings.py +1297 -0
- wxcli/commands/location_voicemail.py +494 -0
- wxcli/commands/locations.py +336 -0
- wxcli/commands/meeting_captions.py +110 -0
- wxcli/commands/meeting_chats.py +63 -0
- wxcli/commands/meeting_invitees.py +234 -0
- wxcli/commands/meeting_messages.py +28 -0
- wxcli/commands/meeting_participants.py +278 -0
- wxcli/commands/meeting_polls.py +111 -0
- wxcli/commands/meeting_preferences.py +515 -0
- wxcli/commands/meeting_qa.py +78 -0
- wxcli/commands/meeting_qualities.py +43 -0
- wxcli/commands/meeting_reports.py +101 -0
- wxcli/commands/meeting_session_types.py +105 -0
- wxcli/commands/meeting_site.py +57 -0
- wxcli/commands/meeting_slido.py +44 -0
- wxcli/commands/meeting_summaries.py +92 -0
- wxcli/commands/meeting_tracking_codes.py +233 -0
- wxcli/commands/meeting_transcripts.py +230 -0
- wxcli/commands/meetings.py +1997 -0
- wxcli/commands/memberships.py +164 -0
- wxcli/commands/messages.py +213 -0
- wxcli/commands/mode_management.py +244 -0
- wxcli/commands/my_call_settings.py +3577 -0
- wxcli/commands/numbers.py +405 -0
- wxcli/commands/operating_modes.py +410 -0
- wxcli/commands/org_contacts.py +284 -0
- wxcli/commands/org_health_cli.py +55 -0
- wxcli/commands/org_settings.py +71 -0
- wxcli/commands/organizations.py +83 -0
- wxcli/commands/paging_group.py +257 -0
- wxcli/commands/partner_admins.py +141 -0
- wxcli/commands/partner_reports.py +188 -0
- wxcli/commands/partner_tags.py +216 -0
- wxcli/commands/people.py +279 -0
- wxcli/commands/person_call_settings.py +71 -0
- wxcli/commands/pstn.py +280 -0
- wxcli/commands/recording_report.py +154 -0
- wxcli/commands/report_templates.py +38 -0
- wxcli/commands/reports.py +144 -0
- wxcli/commands/resource_group_memberships.py +160 -0
- wxcli/commands/resource_groups.py +67 -0
- wxcli/commands/roles.py +63 -0
- wxcli/commands/room_tabs.py +160 -0
- wxcli/commands/rooms.py +225 -0
- wxcli/commands/scim_bulk.py +46 -0
- wxcli/commands/scim_groups.py +246 -0
- wxcli/commands/scim_schemas.py +82 -0
- wxcli/commands/scim_users.py +283 -0
- wxcli/commands/security_audit.py +54 -0
- wxcli/commands/service_apps.py +51 -0
- wxcli/commands/single_number_reach.py +209 -0
- wxcli/commands/team_memberships.py +155 -0
- wxcli/commands/teams.py +153 -0
- wxcli/commands/ucm_profile.py +42 -0
- wxcli/commands/update.py +219 -0
- wxcli/commands/user_settings.py +5116 -0
- wxcli/commands/video_mesh.py +1090 -0
- wxcli/commands/virtual_extensions.py +502 -0
- wxcli/commands/virtual_line_settings.py +2072 -0
- wxcli/commands/webhooks.py +176 -0
- wxcli/commands/wholesale_billing_reports.py +147 -0
- wxcli/commands/wholesale_provisioning.py +523 -0
- wxcli/commands/workspace_locations.py +339 -0
- wxcli/commands/workspace_metrics.py +103 -0
- wxcli/commands/workspace_personalization.py +70 -0
- wxcli/commands/workspace_settings.py +3347 -0
- wxcli/commands/workspaces.py +279 -0
- wxcli/commands/xapi.py +114 -0
- wxcli/config.py +139 -0
- wxcli/errors.py +77 -0
- wxcli/main.py +210 -0
- wxcli/migration/CLAUDE.md +106 -0
- wxcli/migration/__init__.py +1 -0
- wxcli/migration/advisory/CLAUDE.md +196 -0
- wxcli/migration/advisory/__init__.py +46 -0
- wxcli/migration/advisory/advisor.py +107 -0
- wxcli/migration/advisory/advisory_patterns.py +2552 -0
- wxcli/migration/advisory/recommendation_rules.py +835 -0
- wxcli/migration/cucm/CLAUDE.md +74 -0
- wxcli/migration/cucm/__init__.py +5 -0
- wxcli/migration/cucm/connection.py +265 -0
- wxcli/migration/cucm/discovery.py +225 -0
- wxcli/migration/cucm/extractors/__init__.py +1 -0
- wxcli/migration/cucm/extractors/announcements.py +92 -0
- wxcli/migration/cucm/extractors/base.py +90 -0
- wxcli/migration/cucm/extractors/device_profiles.py +98 -0
- wxcli/migration/cucm/extractors/devices.py +193 -0
- wxcli/migration/cucm/extractors/e911.py +103 -0
- wxcli/migration/cucm/extractors/features.py +309 -0
- wxcli/migration/cucm/extractors/helpers.py +73 -0
- wxcli/migration/cucm/extractors/informational.py +295 -0
- wxcli/migration/cucm/extractors/locations.py +221 -0
- wxcli/migration/cucm/extractors/moh.py +100 -0
- wxcli/migration/cucm/extractors/remote_destinations.py +96 -0
- wxcli/migration/cucm/extractors/routing.py +493 -0
- wxcli/migration/cucm/extractors/shared_lines.py +146 -0
- wxcli/migration/cucm/extractors/templates.py +229 -0
- wxcli/migration/cucm/extractors/tier4.py +173 -0
- wxcli/migration/cucm/extractors/users.py +240 -0
- wxcli/migration/cucm/extractors/voicemail.py +243 -0
- wxcli/migration/cucm/extractors/workspaces.py +88 -0
- wxcli/migration/cucm/unity_connection.py +304 -0
- wxcli/migration/execute/CLAUDE.md +372 -0
- wxcli/migration/execute/__init__.py +303 -0
- wxcli/migration/execute/batch.py +277 -0
- wxcli/migration/execute/dependency.py +483 -0
- wxcli/migration/execute/engine.py +964 -0
- wxcli/migration/execute/handlers.py +2232 -0
- wxcli/migration/execute/planner.py +1939 -0
- wxcli/migration/execute/runtime.py +571 -0
- wxcli/migration/export/CLAUDE.md +49 -0
- wxcli/migration/export/__init__.py +8 -0
- wxcli/migration/export/csv_export.py +126 -0
- wxcli/migration/export/deployment_plan.py +479 -0
- wxcli/migration/export/json_export.py +60 -0
- wxcli/migration/models.py +941 -0
- wxcli/migration/phone_models.py +50 -0
- wxcli/migration/preflight/CLAUDE.md +52 -0
- wxcli/migration/preflight/__init__.py +89 -0
- wxcli/migration/preflight/checks.py +911 -0
- wxcli/migration/preflight/runner.py +293 -0
- wxcli/migration/rate_limiter.py +144 -0
- wxcli/migration/report/CLAUDE.md +245 -0
- wxcli/migration/report/__init__.py +7 -0
- wxcli/migration/report/appendix.py +2437 -0
- wxcli/migration/report/assembler.py +183 -0
- wxcli/migration/report/charts.py +263 -0
- wxcli/migration/report/executive.py +776 -0
- wxcli/migration/report/explainer.py +704 -0
- wxcli/migration/report/helpers.py +74 -0
- wxcli/migration/report/ingest.py +152 -0
- wxcli/migration/report/notice_templates.py +192 -0
- wxcli/migration/report/score.py +375 -0
- wxcli/migration/report/styles.py +1052 -0
- wxcli/migration/report/user_diff.py +1052 -0
- wxcli/migration/report/user_notice.py +425 -0
- wxcli/migration/state.py +139 -0
- wxcli/migration/store.py +860 -0
- wxcli/migration/transform/CLAUDE.md +107 -0
- wxcli/migration/transform/__init__.py +12 -0
- wxcli/migration/transform/analysis_pipeline.py +453 -0
- wxcli/migration/transform/analyzers/__init__.py +142 -0
- wxcli/migration/transform/analyzers/css_permission.py +189 -0
- wxcli/migration/transform/analyzers/css_routing.py +335 -0
- wxcli/migration/transform/analyzers/device_compatibility.py +122 -0
- wxcli/migration/transform/analyzers/dn_ambiguity.py +131 -0
- wxcli/migration/transform/analyzers/duplicate_user.py +221 -0
- wxcli/migration/transform/analyzers/extension_conflict.py +173 -0
- wxcli/migration/transform/analyzers/feature_approximation.py +227 -0
- wxcli/migration/transform/analyzers/layout_overflow.py +174 -0
- wxcli/migration/transform/analyzers/location_ambiguity.py +184 -0
- wxcli/migration/transform/analyzers/missing_data.py +300 -0
- wxcli/migration/transform/analyzers/selective_call_handling.py +394 -0
- wxcli/migration/transform/analyzers/shared_line.py +170 -0
- wxcli/migration/transform/analyzers/voicemail_compatibility.py +267 -0
- wxcli/migration/transform/analyzers/workspace_license.py +212 -0
- wxcli/migration/transform/cross_reference.py +1136 -0
- wxcli/migration/transform/cucm_pattern.py +246 -0
- wxcli/migration/transform/decisions.py +301 -0
- wxcli/migration/transform/e164.py +145 -0
- wxcli/migration/transform/engine.py +256 -0
- wxcli/migration/transform/mappers/CLAUDE.md +123 -0
- wxcli/migration/transform/mappers/__init__.py +76 -0
- wxcli/migration/transform/mappers/announcement_mapper.py +122 -0
- wxcli/migration/transform/mappers/base.py +190 -0
- wxcli/migration/transform/mappers/button_template_mapper.py +186 -0
- wxcli/migration/transform/mappers/call_forwarding_mapper.py +228 -0
- wxcli/migration/transform/mappers/call_settings_mapper.py +144 -0
- wxcli/migration/transform/mappers/css_mapper.py +868 -0
- wxcli/migration/transform/mappers/dect_mapper.py +367 -0
- wxcli/migration/transform/mappers/device_layout_mapper.py +289 -0
- wxcli/migration/transform/mappers/device_mapper.py +227 -0
- wxcli/migration/transform/mappers/device_profile_mapper.py +190 -0
- wxcli/migration/transform/mappers/device_settings_mapper.py +464 -0
- wxcli/migration/transform/mappers/e911_mapper.py +129 -0
- wxcli/migration/transform/mappers/ecbn_mapper.py +263 -0
- wxcli/migration/transform/mappers/executive_assistant_mapper.py +156 -0
- wxcli/migration/transform/mappers/feature_mapper.py +1179 -0
- wxcli/migration/transform/mappers/line_mapper.py +310 -0
- wxcli/migration/transform/mappers/location_mapper.py +235 -0
- wxcli/migration/transform/mappers/moh_mapper.py +114 -0
- wxcli/migration/transform/mappers/monitoring_mapper.py +221 -0
- wxcli/migration/transform/mappers/receptionist_mapper.py +245 -0
- wxcli/migration/transform/mappers/routing_mapper.py +821 -0
- wxcli/migration/transform/mappers/snr_mapper.py +201 -0
- wxcli/migration/transform/mappers/softkey_mapper.py +205 -0
- wxcli/migration/transform/mappers/user_mapper.py +264 -0
- wxcli/migration/transform/mappers/voicemail_group_mapper.py +286 -0
- wxcli/migration/transform/mappers/voicemail_mapper.py +514 -0
- wxcli/migration/transform/mappers/workspace_mapper.py +464 -0
- wxcli/migration/transform/normalizers.py +2008 -0
- wxcli/migration/transform/pattern_converter.py +106 -0
- wxcli/migration/transform/pipeline.py +271 -0
- wxcli/migration/transform/rules.py +255 -0
- wxcli/org_health/CLAUDE.md +63 -0
- wxcli/org_health/__init__.py +7 -0
- wxcli/org_health/analyze.py +93 -0
- wxcli/org_health/checks.py +458 -0
- wxcli/org_health/collector.py +62 -0
- wxcli/org_health/models.py +78 -0
- wxcli/org_health/report.py +300 -0
- wxcli/output.py +101 -0
- wxcli-1.2.0.dist-info/METADATA +505 -0
- wxcli-1.2.0.dist-info/RECORD +413 -0
- wxcli-1.2.0.dist-info/WHEEL +5 -0
- wxcli-1.2.0.dist-info/entry_points.txt +2 -0
- wxcli-1.2.0.dist-info/licenses/LICENSE +191 -0
- wxcli-1.2.0.dist-info/scm_file_list.json +751 -0
- wxcli-1.2.0.dist-info/scm_version.json +8 -0
- 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`.
|