wxcli 1.4.0__tar.gz → 1.4.2__tar.gz
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-1.4.0 → wxcli-1.4.2}/.claude/agents/wxc-calling-builder.md +0 -6
- {wxcli-1.4.0/src/wxcli/_playbook/.codex → wxcli-1.4.2/.claude}/skills/configure-features/SKILL.md +2 -2
- {wxcli-1.4.0/src/wxcli/_playbook → wxcli-1.4.2}/.claude/skills/cucm-migrate/SKILL.md +1 -1
- {wxcli-1.4.0/src/wxcli/_playbook → wxcli-1.4.2}/.claude/skills/manage-licensing/SKILL.md +1 -12
- {wxcli-1.4.0 → wxcli-1.4.2}/.github/workflows/ci.yml +24 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/PKG-INFO +1 -1
- {wxcli-1.4.0/src/wxcli/_playbook → wxcli-1.4.2}/docs/reference/contact-center-routing.md +7 -3
- {wxcli-1.4.0/src/wxcli/_playbook → wxcli-1.4.2}/docs/reference/meetings-core.md +3 -1
- {wxcli-1.4.0/src/wxcli/_playbook → wxcli-1.4.2}/docs/reference/messaging-spaces.md +1 -1
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/agents/wxc-calling-builder.md +0 -6
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/configure-features/SKILL.md +2 -2
- {wxcli-1.4.0/src/wxcli/_playbook/.codex → wxcli-1.4.2/src/wxcli/_playbook/.claude}/skills/cucm-migrate/SKILL.md +1 -1
- {wxcli-1.4.0 → wxcli-1.4.2/src/wxcli/_playbook}/.claude/skills/manage-licensing/SKILL.md +1 -12
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/agents/wxc-calling-builder.toml +0 -6
- {wxcli-1.4.0/.claude → wxcli-1.4.2/src/wxcli/_playbook/.codex}/skills/configure-features/SKILL.md +2 -2
- {wxcli-1.4.0/.claude → wxcli-1.4.2/src/wxcli/_playbook/.codex}/skills/cucm-migrate/SKILL.md +1 -1
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/manage-licensing/SKILL.md +1 -12
- {wxcli-1.4.0 → wxcli-1.4.2/src/wxcli/_playbook}/docs/reference/contact-center-routing.md +7 -3
- {wxcli-1.4.0 → wxcli-1.4.2/src/wxcli/_playbook}/docs/reference/meetings-core.md +3 -1
- {wxcli-1.4.0 → wxcli-1.4.2/src/wxcli/_playbook}/docs/reference/messaging-spaces.md +1 -1
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_version.py +3 -3
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/auth.py +8 -2
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/admin_recordings.py +12 -1
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/call_queue.py +26 -2
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_flow.py +2 -2
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/converged_recordings.py +12 -1
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/dect_devices.py +13 -1
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/device_settings.py +10 -1
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/meeting_transcripts.py +12 -1
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/numbers.py +10 -1
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/preflight/runner.py +1 -1
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli.egg-info/PKG-INFO +1 -1
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli.egg-info/scm_version.json +2 -2
- {wxcli-1.4.0 → wxcli-1.4.2}/tools/CLAUDE.md +36 -10
- {wxcli-1.4.0 → wxcli-1.4.2}/tools/command_renderer.py +54 -1
- {wxcli-1.4.0 → wxcli-1.4.2}/tools/drift_check.py +51 -2
- {wxcli-1.4.0 → wxcli-1.4.2}/tools/drift_check_allowlist.txt +32 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tools/field_overrides.yaml +17 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tools/generate_commands.py +46 -3
- {wxcli-1.4.0 → wxcli-1.4.2}/tools/openapi_parser.py +27 -3
- {wxcli-1.4.0 → wxcli-1.4.2}/tools/spec_sync.py +3 -1
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/agents/migration-advisor.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/projects/-Users-ahobgood-Documents-webexCalling/memory/feedback_help_gate_for_skills.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/rules/cleanup.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/rules/cucm-migration.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/rules/org-health.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/settings.json +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/audit-compliance/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/call-control/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/configure-routing/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/contact-center/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/customer-assist/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/device-platform/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/manage-call-settings/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/manage-devices/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/manage-identity/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/manage-meetings/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/messaging-bots/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/messaging-spaces/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/org-health/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/provision-calling/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/query-live/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/query-live/domains/call-flow-trace.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/query-live/domains/call-history.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/query-live/domains/features.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/query-live/domains/numbers.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/query-live/domains/people-and-settings.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/query-live/domains/routing.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/reporting/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/reporting/references/cdr-recipes.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/reporting-cc/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/reporting-meetings/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/teardown/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/video-mesh/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.claude/skills/wxc-calling-debug/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.github/workflows/release.yml +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/.gitignore +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/CLAUDE.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/LICENSE +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/README.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/TODO.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/CLAUDE.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/architecture/00-index.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/architecture/01-structural-map.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/architecture/02-decisions.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/architecture/03-behavior.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/architecture/04-operations-and-evolution.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/architecture/05-purpose.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/knowledge-base/migration/kb-css-routing.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/knowledge-base/migration/kb-device-migration.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/knowledge-base/migration/kb-feature-mapping.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/knowledge-base/migration/kb-identity-numbering.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/knowledge-base/migration/kb-location-design.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/knowledge-base/migration/kb-trunk-pstn.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/knowledge-base/migration/kb-user-settings.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/knowledge-base/migration/kb-webex-limits.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/CLAUDE.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/TODO.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/admin-apps-data.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/admin-audit-security.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/admin-hybrid.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/admin-identity-scim.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/admin-licensing.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/admin-org-management.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/admin-partner.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/archive/wxc-sdk-patterns.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/archive/wxcadm-advanced.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/archive/wxcadm-core.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/archive/wxcadm-devices-workspaces.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/archive/wxcadm-features.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/archive/wxcadm-locations.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/archive/wxcadm-person.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/archive/wxcadm-routing.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/authentication.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/call-control.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/call-features-additional.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/call-features-major.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/call-routing.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/contact-center-analytics.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/contact-center-core.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/contact-center-journey.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/devices-core.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/devices-dect.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/devices-platform.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/devices-workspaces.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/emergency-services.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/location-calling-core.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/location-calling-media.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/location-recording-advanced.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/meetings-content.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/meetings-infrastructure.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/meetings-settings.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/messaging-bots.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/migration-spec-template.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/person-call-settings-behavior.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/person-call-settings-handling.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/person-call-settings-media.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/person-call-settings-permissions.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/provisioning.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/reporting-analytics.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/self-service-call-settings.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/virtual-lines.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/webhooks-events.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/reference/wxcadm-xsi-realtime.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/runbooks/cucm-migration/decision-guide.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/runbooks/cucm-migration/operator-runbook.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/runbooks/cucm-migration/self-review-findings.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/runbooks/cucm-migration/tuning-reference.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/templates/deployment-plan.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/docs/templates/execution-report.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/pyproject.toml +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/setup.cfg +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/specs/overlays/webex-cloud-calling.overlay.json +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/specs/webex-admin.json +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/specs/webex-broadworks.json +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/specs/webex-cloud-calling.json +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/specs/webex-contact-center.json +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/specs/webex-device.json +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/specs/webex-meetings.json +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/specs/webex-messaging.json +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/specs/webex-ucm.json +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/specs/webex-wholesale.json +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/agents/migration-advisor.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/rules/cleanup.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/rules/cucm-migration.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/rules/org-health.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/settings.json +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/audit-compliance/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/call-control/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/configure-routing/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/contact-center/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/customer-assist/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/device-platform/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/manage-call-settings/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/manage-devices/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/manage-identity/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/manage-meetings/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/messaging-bots/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/messaging-spaces/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/org-health/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/provision-calling/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/query-live/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/query-live/domains/call-flow-trace.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/query-live/domains/call-history.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/query-live/domains/features.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/query-live/domains/numbers.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/query-live/domains/people-and-settings.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/query-live/domains/routing.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/reporting/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/reporting/references/cdr-recipes.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/reporting-cc/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/reporting-meetings/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/teardown/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/video-mesh/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.claude/skills/wxc-calling-debug/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/agents/migration-advisor.toml +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/config.toml +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/rules/cleanup.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/rules/cucm-migration.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/rules/org-health.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/audit-compliance/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/call-control/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/configure-routing/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/contact-center/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/customer-assist/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/device-platform/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/manage-call-settings/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/manage-devices/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/manage-identity/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/manage-meetings/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/messaging-bots/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/messaging-spaces/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/org-health/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/provision-calling/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/query-live/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/query-live/domains/call-flow-trace.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/query-live/domains/call-history.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/query-live/domains/features.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/query-live/domains/numbers.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/query-live/domains/people-and-settings.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/query-live/domains/routing.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/reporting/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/reporting/references/cdr-recipes.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/reporting-cc/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/reporting-meetings/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/teardown/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/video-mesh/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/.codex/skills/wxc-calling-debug/SKILL.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/AGENTS.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/CLAUDE.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/knowledge-base/migration/kb-css-routing.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/knowledge-base/migration/kb-device-migration.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/knowledge-base/migration/kb-feature-mapping.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/knowledge-base/migration/kb-identity-numbering.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/knowledge-base/migration/kb-location-design.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/knowledge-base/migration/kb-trunk-pstn.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/knowledge-base/migration/kb-user-settings.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/knowledge-base/migration/kb-webex-limits.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/CLAUDE.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/admin-apps-data.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/admin-audit-security.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/admin-hybrid.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/admin-identity-scim.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/admin-licensing.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/admin-org-management.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/admin-partner.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/archive/wxc-sdk-patterns.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/archive/wxcadm-advanced.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/archive/wxcadm-core.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/archive/wxcadm-devices-workspaces.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/archive/wxcadm-features.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/archive/wxcadm-locations.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/archive/wxcadm-person.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/archive/wxcadm-routing.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/authentication.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/call-control.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/call-features-additional.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/call-features-major.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/call-routing.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/contact-center-analytics.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/contact-center-core.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/contact-center-journey.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/devices-core.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/devices-dect.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/devices-platform.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/devices-workspaces.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/emergency-services.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/location-calling-core.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/location-calling-media.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/location-recording-advanced.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/meetings-content.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/meetings-infrastructure.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/meetings-settings.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/messaging-bots.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/person-call-settings-behavior.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/person-call-settings-handling.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/person-call-settings-media.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/person-call-settings-permissions.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/provisioning.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/reporting-analytics.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/self-service-call-settings.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/virtual-lines.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/webhooks-events.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/reference/wxcadm-xsi-realtime.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/runbooks/cucm-migration/decision-guide.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/runbooks/cucm-migration/operator-runbook.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/_playbook/docs/runbooks/cucm-migration/tuning-reference.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/_registry.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/activation_email.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/analytics.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/announcement_playlists.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/announcements.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/archive_users.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/attachment_actions.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/audit_events.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/authorizations.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/auto_attendant.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/broadworks_billing_reports.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/broadworks_enterprises.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/broadworks_subscribers.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/broadworks_workspaces.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/call_controls.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/call_park.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/call_pickup.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/call_recording.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/call_routing.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/call_settings_for_me_phase_5.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/caller_reputation.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/calling_service.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_address_book.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_agent_greetings.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_agent_summaries.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_agent_wellbeing.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_agents.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_ai_assistant.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_ai_feature.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_audio_files.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_auto_csat.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_aux_code.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_business_hour.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_call_monitoring.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_callbacks.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_campaign.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_captures.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_contact_list.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_contact_number.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_data_sources.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_desktop_layout.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_desktop_profile.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_dial_number.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_dial_plan.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_dnc.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_entry_point.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_ewt.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_global_vars.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_holiday_list.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_journey.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_legacy_flows.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_multimedia_profile.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_notification.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_outdial_ani.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_overrides.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_queue.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_queue_stats.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_realtime.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_resource_collection.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_search.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_site.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_skill.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_skill_profile.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_subscriptions.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_summaries.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_tasks.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_team.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_user_profiles.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_users.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cc_work_types.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cdr.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/classifications.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cleanup.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/client_settings.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/conference.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/configure.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/converged_recordings_export.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cq_playlists.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cucm.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/cucm_config.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/customer_assist.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/data_sources.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/device_configurations.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/device_dynamic_settings.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/devices.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/domains.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/ecm.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/emergency_services.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/events.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/external_voicemail.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/groups.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/guest_management.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/hds.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/hot_desk.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/hot_desking_members.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/hot_desking_portal.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/hunt_group.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/hybrid_clusters.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/hybrid_connectors.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/identity_org.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/init_playbook.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/licenses.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/live_monitoring.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/location_call_handling.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/location_schedules.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/location_settings.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/location_voicemail.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/locations.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/meeting_captions.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/meeting_chats.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/meeting_invitees.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/meeting_messages.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/meeting_participants.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/meeting_polls.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/meeting_preferences.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/meeting_qa.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/meeting_qualities.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/meeting_reports.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/meeting_session_types.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/meeting_site.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/meeting_slido.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/meeting_summaries.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/meeting_tracking_codes.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/meetings.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/memberships.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/messages.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/mode_management.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/my_call_settings.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/operating_modes.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/org_contacts.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/org_health_cli.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/org_settings.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/organizations.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/paging_group.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/partner_admins.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/partner_reports.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/partner_tags.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/people.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/person_call_settings.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/pstn.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/recording_report.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/report_templates.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/reports.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/resource_group_memberships.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/resource_groups.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/roles.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/room_tabs.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/rooms.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/scim_bulk.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/scim_groups.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/scim_schemas.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/scim_users.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/security_audit.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/service_apps.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/single_number_reach.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/team_memberships.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/teams.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/ucm_profile.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/update.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/user_settings.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/video_mesh.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/virtual_extensions.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/virtual_line_settings.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/webhooks.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/wholesale_billing_reports.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/wholesale_provisioning.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/workspace_locations.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/workspace_metrics.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/workspace_personalization.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/workspace_settings.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/workspaces.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/commands/xapi.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/config.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/errors.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/main.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/CLAUDE.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/advisory/CLAUDE.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/advisory/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/advisory/advisor.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/advisory/advisory_patterns.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/advisory/recommendation_rules.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/CLAUDE.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/connection.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/discovery.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/extractors/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/extractors/announcements.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/extractors/base.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/extractors/device_profiles.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/extractors/devices.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/extractors/e911.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/extractors/features.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/extractors/helpers.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/extractors/informational.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/extractors/locations.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/extractors/moh.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/extractors/remote_destinations.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/extractors/routing.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/extractors/shared_lines.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/extractors/templates.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/extractors/tier4.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/extractors/users.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/extractors/voicemail.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/extractors/workspaces.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/cucm/unity_connection.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/execute/CLAUDE.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/execute/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/execute/batch.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/execute/dependency.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/execute/engine.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/execute/handlers.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/execute/planner.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/execute/runtime.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/export/CLAUDE.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/export/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/export/csv_export.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/export/deployment_plan.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/export/json_export.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/models.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/phone_models.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/preflight/CLAUDE.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/preflight/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/preflight/checks.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/rate_limiter.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/report/CLAUDE.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/report/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/report/appendix.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/report/assembler.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/report/charts.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/report/executive.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/report/explainer.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/report/helpers.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/report/ingest.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/report/notice_templates.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/report/score.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/report/styles.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/report/user_diff.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/report/user_notice.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/state.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/store.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/CLAUDE.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/analysis_pipeline.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/analyzers/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/analyzers/css_permission.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/analyzers/css_routing.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/analyzers/device_compatibility.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/analyzers/dn_ambiguity.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/analyzers/duplicate_user.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/analyzers/extension_conflict.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/analyzers/feature_approximation.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/analyzers/layout_overflow.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/analyzers/location_ambiguity.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/analyzers/missing_data.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/analyzers/selective_call_handling.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/analyzers/shared_line.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/analyzers/voicemail_compatibility.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/analyzers/workspace_license.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/cross_reference.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/cucm_pattern.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/decisions.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/e164.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/engine.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/CLAUDE.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/announcement_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/base.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/button_template_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/call_forwarding_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/call_settings_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/css_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/dect_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/device_layout_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/device_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/device_profile_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/device_settings_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/e911_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/ecbn_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/executive_assistant_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/feature_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/line_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/location_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/moh_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/monitoring_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/receptionist_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/routing_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/snr_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/softkey_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/user_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/voicemail_group_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/voicemail_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/mappers/workspace_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/normalizers.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/pattern_converter.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/pipeline.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/migration/transform/rules.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/org_health/CLAUDE.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/org_health/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/org_health/analyze.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/org_health/checks.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/org_health/collector.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/org_health/models.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/org_health/report.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/output.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli/update_check.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli.egg-info/SOURCES.txt +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli.egg-info/dependency_links.txt +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli.egg-info/entry_points.txt +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli.egg-info/requires.txt +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli.egg-info/scm_file_list.json +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/src/wxcli.egg-info/top_level.txt +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/advisory/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/advisory/test_advisor.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/advisory/test_advisory_executive_assistant.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/advisory/test_advisory_intercept.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/advisory/test_advisory_patterns.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/advisory/test_advisory_selective.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/advisory/test_foundation.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/advisory/test_integration.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/advisory/test_new_patterns.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/advisory/test_receptionist_advisory.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/advisory/test_recommendation_rules.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/advisory/test_recommendation_rules_tier2p2.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/advisory/test_recommendation_selective.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/advisory/test_tier4_patterns.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/cucm/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/cucm/fixtures/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/cucm/test_connection.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/cucm/test_cpc_detail_fetch.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/cucm/test_device_settings_tags.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/cucm/test_discovery.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/cucm/test_executive_assistant_extractor.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/cucm/test_extractors.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/cucm/test_informational_extractor.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/cucm/test_intercept_extractor.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/cucm/test_template_extractor.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/cucm/test_tier4_extractor.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/cucm/test_unity_shared_mailboxes.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/conftest.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_advisory_to_execution_bridge.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_batch.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_bridge_integration.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_bulk_batch.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_bulk_config.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_bulk_constants.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_bulk_e2e.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_bulk_fallback.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_bulk_handlers.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_bulk_integration.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_bulk_planner.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_bulk_polling.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_bulk_serialization.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_cascade_and_retry.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_dect_handlers.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_dect_planner.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_dependency.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_device_settings_handlers.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_device_settings_planner.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_engine.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_engine_409_recovery.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_executive_assistant_handlers.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_handlers.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_handlers_forwarding.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_handlers_workspace_settings.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_hoteling_handlers.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_phase12a_planner_fixes.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_planner.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_planner_forwarding.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_planner_settings_ops.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_planner_silent_skip_visibility.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_receptionist_handler.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_runtime.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_silent_failure_wave1.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_silent_failure_wave2a.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_silent_failure_wave2b.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_silent_failure_wave2c.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_silent_failure_wave3a.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_silent_failure_wave3b.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_voicemail_group_handler.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/execute/test_voicemail_group_planner.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/export/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/export/test_csv_activation_codes.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/export/test_deployment_plan.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/preflight/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/preflight/test_checks.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/preflight/test_runner.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/conftest.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/test_appendix.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/test_appendix_selective.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/test_appendix_tier2p2.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/test_appendix_tier3.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/test_assembler.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/test_cli_integration.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/test_dect_appendix.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/test_device_settings_score.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/test_e2e.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/test_executive.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/test_executive_selective.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/test_explainer.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/test_from_file.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/test_helpers.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/test_score.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/test_tier4_appendix.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/test_user_diff.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/report/test_user_notice.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/test_cucm_cli.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/test_decision_cli.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/test_dect_integration.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/test_device_settings_lossy_type.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/test_models.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/test_models_tier2p2.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/test_models_voicemail_group.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/test_pipeline_e2e.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/test_rate_limiter.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/test_state.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/test_store.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transferability/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transferability/conftest.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transferability/test_advisor_routing_coverage.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transferability/test_advisory_pattern_coverage.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transferability/test_config_key_coverage.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transferability/test_decision_type_coverage.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transferability/test_default_auto_rules_coverage.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transferability/test_recommendation_output_coverage.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transferability/test_runbook_cites.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transferability/test_runbook_cli_commands.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transferability/test_runbook_links.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transferability/test_runbook_parsability.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transferability/test_score_factor_display_names.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/analyzers/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/analyzers/test_each_analyzer.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/analyzers/test_layout_overflow.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/conftest.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_announcement_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_button_template_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_call_forwarding_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_call_settings_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_call_settings_mapper_intercept.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_css_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_dect_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_device_layout_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_device_layout_mapper_convertible.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_device_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_device_profile_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_device_settings_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_e911_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_executive_assistant_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_feature_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_feature_mapper_forwarding.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_feature_mapper_voicemail_gap.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_line_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_location_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_moh_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_monitoring_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_phase12a_feature_fixes.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_receptionist_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_routing_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_snr_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_softkey_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_user_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_voicemail_enrichment.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_voicemail_group_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_voicemail_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_workspace_mapper.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/mappers/test_workspace_mapper_call_settings.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_analysis_pipeline.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_classify_decisions.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_cpc_cross_ref.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_cross_decision_enrichment.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_cross_ref_phone_mirror.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_cross_ref_tier2p2.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_cross_reference.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_cucm_pattern.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_decision_merge.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_dect_classification.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_default_auto_rules_field_alignment.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_e164.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_engine.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_executive_assistant_integration.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_integration.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_intercept_integration.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_normalize_phone_device_settings.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_normalizers.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_normalizers_executive.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_normalizers_intercept.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_normalizers_tier2p2.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_normalizers_voicemail_group.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_pattern_converter.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_phase12a_analyzer_routing_fixes.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_pipeline.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_pipeline_common_area.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_rules.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_selective_call_handling_analyzer.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_selective_integration.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_shared_line_status.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_voicemail_group_integration.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_voicemail_group_pipeline.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/migration/transform/test_workspace_call_settings_integration.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/org_health/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/org_health/conftest.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/org_health/test_analyze.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/org_health/test_checks.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/org_health/test_cli.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/org_health/test_collector.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/org_health/test_models.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tests/org_health/test_report.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tools/__init__.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tools/create_stress_test_db.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tools/expand_cucm_data.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tools/postman_parser.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tools/postman_spec_diff.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tools/spec_overlay.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tools/update-specs.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tools/webhook_receiver.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/tools/wheel_playbook_smoke.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/wxcli-dist/assemble.py +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/wxcli-dist/codex/agents-md-sections.md +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/wxcli-dist/codex/config.toml +0 -0
- {wxcli-1.4.0 → wxcli-1.4.2}/wxcli-dist/settings.bundled.json +0 -0
|
@@ -692,12 +692,6 @@ These are non-negotiable. Violating any of these causes failures, data loss, or
|
|
|
692
692
|
### Verify Auth Before Executing
|
|
693
693
|
ALWAYS validate the access token before running any commands. A stale token causes cryptic 401 errors mid-execution. Run `wxcli whoami` as a smoke test before starting.
|
|
694
694
|
|
|
695
|
-
### Present Plan Before Executing
|
|
696
|
-
ALWAYS show the complete deployment plan and get explicit user approval before making any API calls. Never execute without sign-off. The user must see every API call that will be made, with actual parameter values.
|
|
697
|
-
|
|
698
|
-
### Never Execute Without Approval
|
|
699
|
-
If the user says "just do it" without seeing the plan, show the plan first anyway. This is not optional. The one exception is single read-only operations (GET requests) used for discovery during the interview phase.
|
|
700
|
-
|
|
701
695
|
### Handle Rate Limiting
|
|
702
696
|
Webex APIs enforce rate limits. wxcli does NOT auto-retry 429s in normal CLI mode — it raises an error. For shell loops, add `sleep 1` between commands to avoid hitting limits. For bulk async operations, use the semaphore + 429 retry pattern (see Bulk Operations section).
|
|
703
697
|
|
{wxcli-1.4.0/src/wxcli/_playbook/.codex → wxcli-1.4.2/.claude}/skills/configure-features/SKILL.md
RENAMED
|
@@ -217,7 +217,7 @@ wxcli auto-attendant create LOCATION_ID \
|
|
|
217
217
|
--business-schedule "Business Hours"
|
|
218
218
|
```
|
|
219
219
|
|
|
220
|
-
Optional flags: `--phone-number`, `--holiday-schedule`, `--
|
|
220
|
+
Optional flags: `--phone-number`, `--holiday-schedule`, `--extension-dialing`, `--name-dialing`, `--first-name`, `--last-name`, `--language-code`, `--time-zone`.
|
|
221
221
|
|
|
222
222
|
---
|
|
223
223
|
|
|
@@ -376,7 +376,7 @@ wxcli paging-group create LOCATION_ID \
|
|
|
376
376
|
--extension 8100
|
|
377
377
|
```
|
|
378
378
|
|
|
379
|
-
Optional flags: `--
|
|
379
|
+
Optional flags: `--phone-number`, `--first-name`, `--last-name`, `--language-code`, `--originator-caller-id-enabled`.
|
|
380
380
|
|
|
381
381
|
To list existing paging groups:
|
|
382
382
|
|
|
@@ -463,7 +463,7 @@ This table is the PRIMARY execution mechanism. The pipeline says WHAT. The domai
|
|
|
463
463
|
|--------------|---------|-------------|------------------------------|
|
|
464
464
|
| location | create | provision-calling | Two-step: `locations create` + `location-settings create` to enable calling |
|
|
465
465
|
| location | enable_calling | provision-calling | Separate API call to enable Webex Calling on the location |
|
|
466
|
-
| user | create | provision-calling | Extension required at creation.
|
|
466
|
+
| user | create | provision-calling | Extension required at creation. `people create` has no license flag — licenses are assigned separately via the `licenses` group. Combines create + assign_number + assign_license |
|
|
467
467
|
| user | configure_settings | manage-call-settings | Read-before-write. `--json-body` format. Per-setting endpoint paths |
|
|
468
468
|
| user | configure_voicemail | manage-call-settings | Same as configure_settings |
|
|
469
469
|
| workspace | create | provision-calling | License tier matters. Basic vs Professional determines which settings work |
|
|
@@ -504,7 +504,7 @@ Next steps:
|
|
|
504
504
|
|
|
505
505
|
10. **206 Partial Content is not an error** -- The PATCH endpoint can return HTTP 206 when some licenses succeeded but others failed. Always compare the returned `licenses` array against what was requested.
|
|
506
506
|
|
|
507
|
-
11. **`licenses`
|
|
507
|
+
11. **`licenses-api` is a deprecated alias for `licenses`** -- Both names resolve to the same module with the same commands (`list`, `show`, `update`). Prefer `licenses`; `licenses-api` will be removed.
|
|
508
508
|
|
|
509
509
|
12. **Log all operations** -- Print what you are about to do before each CLI command, and print the result after. This creates an audit trail for troubleshooting.
|
|
510
510
|
|
|
@@ -555,17 +555,6 @@ Licensing-specific errors:
|
|
|
555
555
|
|
|
556
556
|
---
|
|
557
557
|
|
|
558
|
-
## Two CLI Groups for Licensing
|
|
559
|
-
|
|
560
|
-
| | `licenses` (admin spec) | `licenses` (calling spec) |
|
|
561
|
-
|---|---|---|
|
|
562
|
-
| **Commands** | list, show, update | list, show |
|
|
563
|
-
| **Best for** | Full lifecycle: inventory, details with assigned users, assign, remove | Quick calling-license audit |
|
|
564
|
-
| **Assignment** | Yes -- via `update` with `--json-body` | No -- read-only |
|
|
565
|
-
| **Filter** | No built-in filter (use JSON output + script) | `--calling-only` flag |
|
|
566
|
-
|
|
567
|
-
---
|
|
568
|
-
|
|
569
558
|
## License Type Quick Reference
|
|
570
559
|
|
|
571
560
|
| License Name Pattern | Type | Properties Required |
|
|
@@ -33,8 +33,32 @@ jobs:
|
|
|
33
33
|
# to stub aiohttp. It is declared nowhere else, so a dev with it
|
|
34
34
|
# installed sees green locally while CI cannot even collect them.
|
|
35
35
|
pip install pytest pytest-asyncio aioresponses
|
|
36
|
+
# aiohttp is pinned HERE and not in pyproject on purpose: nothing is
|
|
37
|
+
# wrong with the CLI on aiohttp 3.14 — the break is in the test double.
|
|
38
|
+
# aioresponses 0.7.9 builds a ClientResponse by hand and does not pass
|
|
39
|
+
# `stream_writer`, which aiohttp 3.14 made a required kwarg, so every
|
|
40
|
+
# test that stubs aiohttp dies with TypeError at request time. Its own
|
|
41
|
+
# metadata claims `aiohttp<4.0,>=3.8`, so pip will not resolve away
|
|
42
|
+
# from it and the pin has to be ours. Pinning the runtime dep in
|
|
43
|
+
# pyproject instead would constrain USERS for a test-only defect.
|
|
44
|
+
# Drop this the moment aioresponses supports 3.14 (28 tests, all in
|
|
45
|
+
# tests/migration/execute/, will tell you immediately).
|
|
46
|
+
pip install 'aiohttp<3.14'
|
|
36
47
|
|
|
37
48
|
- name: Run tests (excluding live API tests)
|
|
49
|
+
# TERM=dumb, not NO_COLOR=1. rich special-cases GitHub Actions as a
|
|
50
|
+
# colour-capable terminal, so `--help` output comes back wrapped in ANSI
|
|
51
|
+
# and `assert "--host" in result.output` fails on text that renders
|
|
52
|
+
# correctly. NO_COLOR is the wrong knob and was measured failing: it
|
|
53
|
+
# suppresses colour but NOT bold/dim, so rich still emits `\x1b[1m`
|
|
54
|
+
# between the dashes and still splits the flag. TERM=dumb makes
|
|
55
|
+
# rich's is_terminal false, which is what actually yields plain text.
|
|
56
|
+
# COLUMNS is set for the same reason the repo drives every real
|
|
57
|
+
# `--help` as `COLUMNS=400 TERM=dumb`: at 80 cols rich wraps a long flag
|
|
58
|
+
# declaration onto a second line and a substring assertion misses it.
|
|
59
|
+
env:
|
|
60
|
+
TERM: dumb
|
|
61
|
+
COLUMNS: "400"
|
|
38
62
|
run: |
|
|
39
63
|
pytest tests/ -m "not live" -v --tb=short
|
|
40
64
|
|
|
@@ -373,9 +373,13 @@ channel. Useful for IVR flows that announce hold times to callers. 1 command.
|
|
|
373
373
|
|
|
374
374
|
### Key Parameters
|
|
375
375
|
|
|
376
|
-
- `--queue-id` -- Queue ID to check
|
|
377
|
-
- `--
|
|
378
|
-
- `--
|
|
376
|
+
- `--queue-id` -- Queue ID to check (required)
|
|
377
|
+
- `--lookback-minutes` -- Sampling window, 5-240 (required)
|
|
378
|
+
- `--max-cv` -- Maximum coefficient of variance within a subset of samples (wait times for tasks
|
|
379
|
+
connected to an agent in a one-minute interval), used to determine whether the average of those
|
|
380
|
+
values is treated as a valid sample for EWT computation. 1-100, defaults to 40%
|
|
381
|
+
- `--min-valid-samples` -- Minimum percentage of valid samples, with respect to the total number of
|
|
382
|
+
samples, within the specified lookback window. 1-100, defaults to 40%
|
|
379
383
|
|
|
380
384
|
### CLI Examples
|
|
381
385
|
|
|
@@ -459,7 +459,9 @@ Registration forms and registrant management for webinar-type meetings. These en
|
|
|
459
459
|
| `--require-company-name` | Require company name |
|
|
460
460
|
| `--require-job-title` | Require job title |
|
|
461
461
|
| `--require-work-phone` | Require work phone number |
|
|
462
|
-
| `--require-
|
|
462
|
+
| `--require-fax` | Require fax number |
|
|
463
|
+
| `--require-address1` | Require address line 1 |
|
|
464
|
+
| `--require-address2` | Require address line 2 |
|
|
463
465
|
| `--require-city` | Require city |
|
|
464
466
|
| `--require-state` | Require state/province |
|
|
465
467
|
| `--require-zip-code` | Require postal code |
|
|
@@ -258,7 +258,7 @@ messages = result.get("items", [])
|
|
|
258
258
|
### Gotchas
|
|
259
259
|
|
|
260
260
|
- **`--room-id` is required for `list`** — there is no global messages endpoint. You must specify a room.
|
|
261
|
-
-
|
|
261
|
+
- **There is no `--files` flag** — the API's `files` field is an array, so it is not rendered as a flag (known issue #2). Attach via `--json-body '{"roomId":"...","text":"...","files":["https://example.com/a.png"]}'`. The entry must be a **publicly accessible URL, not a local file path**, and the API accepts only one file per message. For a local file, upload it somewhere reachable first.
|
|
262
262
|
- **Bots can only read messages where they are @mentioned**, except in 1:1 direct spaces where they see all messages.
|
|
263
263
|
- **Edit only works on messages sent by the authenticated user or bot.** Editing someone else's message will return 403.
|
|
264
264
|
- **`--before` and `--before-message` are pagination tools** — use `--before-message` with the ID of the oldest message in the last page to walk backward through history.
|
|
@@ -692,12 +692,6 @@ These are non-negotiable. Violating any of these causes failures, data loss, or
|
|
|
692
692
|
### Verify Auth Before Executing
|
|
693
693
|
ALWAYS validate the access token before running any commands. A stale token causes cryptic 401 errors mid-execution. Run `wxcli whoami` as a smoke test before starting.
|
|
694
694
|
|
|
695
|
-
### Present Plan Before Executing
|
|
696
|
-
ALWAYS show the complete deployment plan and get explicit user approval before making any API calls. Never execute without sign-off. The user must see every API call that will be made, with actual parameter values.
|
|
697
|
-
|
|
698
|
-
### Never Execute Without Approval
|
|
699
|
-
If the user says "just do it" without seeing the plan, show the plan first anyway. This is not optional. The one exception is single read-only operations (GET requests) used for discovery during the interview phase.
|
|
700
|
-
|
|
701
695
|
### Handle Rate Limiting
|
|
702
696
|
Webex APIs enforce rate limits. wxcli does NOT auto-retry 429s in normal CLI mode — it raises an error. For shell loops, add `sleep 1` between commands to avoid hitting limits. For bulk async operations, use the semaphore + 429 retry pattern (see Bulk Operations section).
|
|
703
697
|
|
|
@@ -217,7 +217,7 @@ wxcli auto-attendant create LOCATION_ID \
|
|
|
217
217
|
--business-schedule "Business Hours"
|
|
218
218
|
```
|
|
219
219
|
|
|
220
|
-
Optional flags: `--phone-number`, `--holiday-schedule`, `--
|
|
220
|
+
Optional flags: `--phone-number`, `--holiday-schedule`, `--extension-dialing`, `--name-dialing`, `--first-name`, `--last-name`, `--language-code`, `--time-zone`.
|
|
221
221
|
|
|
222
222
|
---
|
|
223
223
|
|
|
@@ -376,7 +376,7 @@ wxcli paging-group create LOCATION_ID \
|
|
|
376
376
|
--extension 8100
|
|
377
377
|
```
|
|
378
378
|
|
|
379
|
-
Optional flags: `--
|
|
379
|
+
Optional flags: `--phone-number`, `--first-name`, `--last-name`, `--language-code`, `--originator-caller-id-enabled`.
|
|
380
380
|
|
|
381
381
|
To list existing paging groups:
|
|
382
382
|
|
|
@@ -463,7 +463,7 @@ This table is the PRIMARY execution mechanism. The pipeline says WHAT. The domai
|
|
|
463
463
|
|--------------|---------|-------------|------------------------------|
|
|
464
464
|
| location | create | provision-calling | Two-step: `locations create` + `location-settings create` to enable calling |
|
|
465
465
|
| location | enable_calling | provision-calling | Separate API call to enable Webex Calling on the location |
|
|
466
|
-
| user | create | provision-calling | Extension required at creation.
|
|
466
|
+
| user | create | provision-calling | Extension required at creation. `people create` has no license flag — licenses are assigned separately via the `licenses` group. Combines create + assign_number + assign_license |
|
|
467
467
|
| user | configure_settings | manage-call-settings | Read-before-write. `--json-body` format. Per-setting endpoint paths |
|
|
468
468
|
| user | configure_voicemail | manage-call-settings | Same as configure_settings |
|
|
469
469
|
| workspace | create | provision-calling | License tier matters. Basic vs Professional determines which settings work |
|
|
@@ -504,7 +504,7 @@ Next steps:
|
|
|
504
504
|
|
|
505
505
|
10. **206 Partial Content is not an error** -- The PATCH endpoint can return HTTP 206 when some licenses succeeded but others failed. Always compare the returned `licenses` array against what was requested.
|
|
506
506
|
|
|
507
|
-
11. **`licenses`
|
|
507
|
+
11. **`licenses-api` is a deprecated alias for `licenses`** -- Both names resolve to the same module with the same commands (`list`, `show`, `update`). Prefer `licenses`; `licenses-api` will be removed.
|
|
508
508
|
|
|
509
509
|
12. **Log all operations** -- Print what you are about to do before each CLI command, and print the result after. This creates an audit trail for troubleshooting.
|
|
510
510
|
|
|
@@ -555,17 +555,6 @@ Licensing-specific errors:
|
|
|
555
555
|
|
|
556
556
|
---
|
|
557
557
|
|
|
558
|
-
## Two CLI Groups for Licensing
|
|
559
|
-
|
|
560
|
-
| | `licenses` (admin spec) | `licenses` (calling spec) |
|
|
561
|
-
|---|---|---|
|
|
562
|
-
| **Commands** | list, show, update | list, show |
|
|
563
|
-
| **Best for** | Full lifecycle: inventory, details with assigned users, assign, remove | Quick calling-license audit |
|
|
564
|
-
| **Assignment** | Yes -- via `update` with `--json-body` | No -- read-only |
|
|
565
|
-
| **Filter** | No built-in filter (use JSON output + script) | `--calling-only` flag |
|
|
566
|
-
|
|
567
|
-
---
|
|
568
|
-
|
|
569
558
|
## License Type Quick Reference
|
|
570
559
|
|
|
571
560
|
| License Name Pattern | Type | Properties Required |
|
|
@@ -687,12 +687,6 @@ These are non-negotiable. Violating any of these causes failures, data loss, or
|
|
|
687
687
|
### Verify Auth Before Executing
|
|
688
688
|
ALWAYS validate the access token before running any commands. A stale token causes cryptic 401 errors mid-execution. Run `wxcli whoami` as a smoke test before starting.
|
|
689
689
|
|
|
690
|
-
### Present Plan Before Executing
|
|
691
|
-
ALWAYS show the complete deployment plan and get explicit user approval before making any API calls. Never execute without sign-off. The user must see every API call that will be made, with actual parameter values.
|
|
692
|
-
|
|
693
|
-
### Never Execute Without Approval
|
|
694
|
-
If the user says "just do it" without seeing the plan, show the plan first anyway. This is not optional. The one exception is single read-only operations (GET requests) used for discovery during the interview phase.
|
|
695
|
-
|
|
696
690
|
### Handle Rate Limiting
|
|
697
691
|
Webex APIs enforce rate limits. wxcli does NOT auto-retry 429s in normal CLI mode — it raises an error. For shell loops, add `sleep 1` between commands to avoid hitting limits. For bulk async operations, use the semaphore + 429 retry pattern (see Bulk Operations section).
|
|
698
692
|
|
{wxcli-1.4.0/.claude → wxcli-1.4.2/src/wxcli/_playbook/.codex}/skills/configure-features/SKILL.md
RENAMED
|
@@ -217,7 +217,7 @@ wxcli auto-attendant create LOCATION_ID \
|
|
|
217
217
|
--business-schedule "Business Hours"
|
|
218
218
|
```
|
|
219
219
|
|
|
220
|
-
Optional flags: `--phone-number`, `--holiday-schedule`, `--
|
|
220
|
+
Optional flags: `--phone-number`, `--holiday-schedule`, `--extension-dialing`, `--name-dialing`, `--first-name`, `--last-name`, `--language-code`, `--time-zone`.
|
|
221
221
|
|
|
222
222
|
---
|
|
223
223
|
|
|
@@ -376,7 +376,7 @@ wxcli paging-group create LOCATION_ID \
|
|
|
376
376
|
--extension 8100
|
|
377
377
|
```
|
|
378
378
|
|
|
379
|
-
Optional flags: `--
|
|
379
|
+
Optional flags: `--phone-number`, `--first-name`, `--last-name`, `--language-code`, `--originator-caller-id-enabled`.
|
|
380
380
|
|
|
381
381
|
To list existing paging groups:
|
|
382
382
|
|
|
@@ -463,7 +463,7 @@ This table is the PRIMARY execution mechanism. The pipeline says WHAT. The domai
|
|
|
463
463
|
|--------------|---------|-------------|------------------------------|
|
|
464
464
|
| location | create | provision-calling | Two-step: `locations create` + `location-settings create` to enable calling |
|
|
465
465
|
| location | enable_calling | provision-calling | Separate API call to enable Webex Calling on the location |
|
|
466
|
-
| user | create | provision-calling | Extension required at creation.
|
|
466
|
+
| user | create | provision-calling | Extension required at creation. `people create` has no license flag — licenses are assigned separately via the `licenses` group. Combines create + assign_number + assign_license |
|
|
467
467
|
| user | configure_settings | manage-call-settings | Read-before-write. `--json-body` format. Per-setting endpoint paths |
|
|
468
468
|
| user | configure_voicemail | manage-call-settings | Same as configure_settings |
|
|
469
469
|
| workspace | create | provision-calling | License tier matters. Basic vs Professional determines which settings work |
|
|
@@ -504,7 +504,7 @@ Next steps:
|
|
|
504
504
|
|
|
505
505
|
10. **206 Partial Content is not an error** -- The PATCH endpoint can return HTTP 206 when some licenses succeeded but others failed. Always compare the returned `licenses` array against what was requested.
|
|
506
506
|
|
|
507
|
-
11. **`licenses`
|
|
507
|
+
11. **`licenses-api` is a deprecated alias for `licenses`** -- Both names resolve to the same module with the same commands (`list`, `show`, `update`). Prefer `licenses`; `licenses-api` will be removed.
|
|
508
508
|
|
|
509
509
|
12. **Log all operations** -- Print what you are about to do before each CLI command, and print the result after. This creates an audit trail for troubleshooting.
|
|
510
510
|
|
|
@@ -555,17 +555,6 @@ Licensing-specific errors:
|
|
|
555
555
|
|
|
556
556
|
---
|
|
557
557
|
|
|
558
|
-
## Two CLI Groups for Licensing
|
|
559
|
-
|
|
560
|
-
| | `licenses` (admin spec) | `licenses` (calling spec) |
|
|
561
|
-
|---|---|---|
|
|
562
|
-
| **Commands** | list, show, update | list, show |
|
|
563
|
-
| **Best for** | Full lifecycle: inventory, details with assigned users, assign, remove | Quick calling-license audit |
|
|
564
|
-
| **Assignment** | Yes -- via `update` with `--json-body` | No -- read-only |
|
|
565
|
-
| **Filter** | No built-in filter (use JSON output + script) | `--calling-only` flag |
|
|
566
|
-
|
|
567
|
-
---
|
|
568
|
-
|
|
569
558
|
## License Type Quick Reference
|
|
570
559
|
|
|
571
560
|
| License Name Pattern | Type | Properties Required |
|
|
@@ -373,9 +373,13 @@ channel. Useful for IVR flows that announce hold times to callers. 1 command.
|
|
|
373
373
|
|
|
374
374
|
### Key Parameters
|
|
375
375
|
|
|
376
|
-
- `--queue-id` -- Queue ID to check
|
|
377
|
-
- `--
|
|
378
|
-
- `--
|
|
376
|
+
- `--queue-id` -- Queue ID to check (required)
|
|
377
|
+
- `--lookback-minutes` -- Sampling window, 5-240 (required)
|
|
378
|
+
- `--max-cv` -- Maximum coefficient of variance within a subset of samples (wait times for tasks
|
|
379
|
+
connected to an agent in a one-minute interval), used to determine whether the average of those
|
|
380
|
+
values is treated as a valid sample for EWT computation. 1-100, defaults to 40%
|
|
381
|
+
- `--min-valid-samples` -- Minimum percentage of valid samples, with respect to the total number of
|
|
382
|
+
samples, within the specified lookback window. 1-100, defaults to 40%
|
|
379
383
|
|
|
380
384
|
### CLI Examples
|
|
381
385
|
|
|
@@ -459,7 +459,9 @@ Registration forms and registrant management for webinar-type meetings. These en
|
|
|
459
459
|
| `--require-company-name` | Require company name |
|
|
460
460
|
| `--require-job-title` | Require job title |
|
|
461
461
|
| `--require-work-phone` | Require work phone number |
|
|
462
|
-
| `--require-
|
|
462
|
+
| `--require-fax` | Require fax number |
|
|
463
|
+
| `--require-address1` | Require address line 1 |
|
|
464
|
+
| `--require-address2` | Require address line 2 |
|
|
463
465
|
| `--require-city` | Require city |
|
|
464
466
|
| `--require-state` | Require state/province |
|
|
465
467
|
| `--require-zip-code` | Require postal code |
|
|
@@ -258,7 +258,7 @@ messages = result.get("items", [])
|
|
|
258
258
|
### Gotchas
|
|
259
259
|
|
|
260
260
|
- **`--room-id` is required for `list`** — there is no global messages endpoint. You must specify a room.
|
|
261
|
-
-
|
|
261
|
+
- **There is no `--files` flag** — the API's `files` field is an array, so it is not rendered as a flag (known issue #2). Attach via `--json-body '{"roomId":"...","text":"...","files":["https://example.com/a.png"]}'`. The entry must be a **publicly accessible URL, not a local file path**, and the API accepts only one file per message. For a local file, upload it somewhere reachable first.
|
|
262
262
|
- **Bots can only read messages where they are @mentioned**, except in 1:1 direct spaces where they see all messages.
|
|
263
263
|
- **Edit only works on messages sent by the authenticated user or bot.** Editing someone else's message will return 403.
|
|
264
264
|
- **`--before` and `--before-message` are pagination tools** — use `--before-message` with the ID of the oldest message in the last page to walk backward through history.
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '1.4.
|
|
22
|
-
__version_tuple__ = version_tuple = (1, 4,
|
|
21
|
+
__version__ = version = '1.4.2'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 4, 2)
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g9318ddb89'
|
|
@@ -79,8 +79,14 @@ class WebexSession:
|
|
|
79
79
|
return self._json_or_raise(self._request("PATCH", url, json=json, params=params,
|
|
80
80
|
content_type=content_type))
|
|
81
81
|
|
|
82
|
-
def rest_delete(self, url: str, params=None) -> dict:
|
|
83
|
-
|
|
82
|
+
def rest_delete(self, url: str, json=None, params=None) -> dict:
|
|
83
|
+
# DELETE carries a body on 10 Webex operations: the body is what SCOPES
|
|
84
|
+
# the delete (`supervisorIds`, `phoneNumbers`, `backgroundImages`...).
|
|
85
|
+
# Without it the API rejects the call outright — verified live against
|
|
86
|
+
# /telephony/config/supervisors: 400, errorCode 25024, "Required request
|
|
87
|
+
# body is missing". It does NOT delete everything; those endpoints gate
|
|
88
|
+
# delete-all behind an explicit `deleteAll: true`.
|
|
89
|
+
return self._json_or_raise(self._request("DELETE", url, json=json, params=params))
|
|
84
90
|
|
|
85
91
|
def follow_pagination(self, url: str, params=None, item_key: str = "items"):
|
|
86
92
|
while url:
|
|
@@ -301,6 +301,9 @@ def show(
|
|
|
301
301
|
def delete_recordings(
|
|
302
302
|
recording_id: str = typer.Argument(help="recordingId"),
|
|
303
303
|
host_email: str = typer.Option(None, "--host-email", help="Email address for the meeting host. Only used if the user or"),
|
|
304
|
+
reason: str = typer.Option(None, "--reason", help="Reason for deleting a recording. Only required when a Compli"),
|
|
305
|
+
comment: str = typer.Option(None, "--comment", help="Compliance Officer's explanation for deleting a recording. T"),
|
|
306
|
+
json_body: str = typer.Option(None, "--json-body", help="Full JSON body (overrides other options)"),
|
|
304
307
|
force: bool = typer.Option(False, "--force", help="Skip confirmation"),
|
|
305
308
|
debug: bool = typer.Option(False, "--debug"),
|
|
306
309
|
):
|
|
@@ -312,8 +315,16 @@ def delete_recordings(
|
|
|
312
315
|
params = {}
|
|
313
316
|
if host_email is not None:
|
|
314
317
|
params["hostEmail"] = host_email
|
|
318
|
+
if json_body:
|
|
319
|
+
body = json.loads(json_body)
|
|
320
|
+
else:
|
|
321
|
+
body = {}
|
|
322
|
+
if reason is not None:
|
|
323
|
+
body["reason"] = reason
|
|
324
|
+
if comment is not None:
|
|
325
|
+
body["comment"] = comment
|
|
315
326
|
try:
|
|
316
|
-
api.session.rest_delete(url, params=params)
|
|
327
|
+
api.session.rest_delete(url, json=body or None, params=params)
|
|
317
328
|
except WebexError as e:
|
|
318
329
|
handle_rest_error(e)
|
|
319
330
|
typer.echo(f"Deleted: {recording_id}")
|
|
@@ -1159,6 +1159,9 @@ def create_supervisors(
|
|
|
1159
1159
|
|
|
1160
1160
|
@app.command("delete-supervisors-config")
|
|
1161
1161
|
def delete_supervisors_config(
|
|
1162
|
+
has_cx_essentials: bool = typer.Option(None, "--has-cx-essentials/--no-has-cx-essentials", help="Delete the Customer Assist supervisors, when `true`. Otherwi"),
|
|
1163
|
+
delete_all: bool = typer.Option(None, "--delete-all/--no-delete-all", help="If present the `supervisorIds` array is ignored, and all sup"),
|
|
1164
|
+
json_body: str = typer.Option(None, "--json-body", help="Full JSON body (overrides other options)"),
|
|
1162
1165
|
force: bool = typer.Option(False, "--force", help="Skip confirmation"),
|
|
1163
1166
|
debug: bool = typer.Option(False, "--debug"),
|
|
1164
1167
|
):
|
|
@@ -1171,8 +1174,20 @@ def delete_supervisors_config(
|
|
|
1171
1174
|
org_id = get_org_id()
|
|
1172
1175
|
if org_id is not None:
|
|
1173
1176
|
params["orgId"] = org_id
|
|
1177
|
+
if json_body:
|
|
1178
|
+
body = json.loads(json_body)
|
|
1179
|
+
else:
|
|
1180
|
+
body = {}
|
|
1181
|
+
if has_cx_essentials is not None:
|
|
1182
|
+
body["hasCxEssentials"] = has_cx_essentials
|
|
1183
|
+
if delete_all is not None:
|
|
1184
|
+
body["deleteAll"] = delete_all
|
|
1185
|
+
missing = [f for f in ['supervisorIds'] if f not in body]
|
|
1186
|
+
if missing:
|
|
1187
|
+
typer.echo(f"Error: required body field(s) missing: {', '.join(missing)}. Pass them via --json-body — this delete needs to know what to delete.", err=True)
|
|
1188
|
+
raise typer.Exit(1)
|
|
1174
1189
|
try:
|
|
1175
|
-
api.session.rest_delete(url, params=params)
|
|
1190
|
+
api.session.rest_delete(url, json=body or None, params=params)
|
|
1176
1191
|
except WebexError as e:
|
|
1177
1192
|
handle_rest_error(e)
|
|
1178
1193
|
typer.echo("Deleted.")
|
|
@@ -1600,6 +1615,7 @@ def create_dnis(
|
|
|
1600
1615
|
def delete_dnis_queues(
|
|
1601
1616
|
location_id: str = typer.Argument(help="locationId"),
|
|
1602
1617
|
queue_id: str = typer.Argument(help="queueId"),
|
|
1618
|
+
json_body: str = typer.Option(None, "--json-body", help="Full JSON body (overrides other options)"),
|
|
1603
1619
|
force: bool = typer.Option(False, "--force", help="Skip confirmation"),
|
|
1604
1620
|
debug: bool = typer.Option(False, "--debug"),
|
|
1605
1621
|
):
|
|
@@ -1612,8 +1628,16 @@ def delete_dnis_queues(
|
|
|
1612
1628
|
org_id = get_org_id()
|
|
1613
1629
|
if org_id is not None:
|
|
1614
1630
|
params["orgId"] = org_id
|
|
1631
|
+
if json_body:
|
|
1632
|
+
body = json.loads(json_body)
|
|
1633
|
+
else:
|
|
1634
|
+
body = {}
|
|
1635
|
+
missing = [f for f in ['items'] if f not in body]
|
|
1636
|
+
if missing:
|
|
1637
|
+
typer.echo(f"Error: required body field(s) missing: {', '.join(missing)}. Pass them via --json-body — this delete needs to know what to delete.", err=True)
|
|
1638
|
+
raise typer.Exit(1)
|
|
1615
1639
|
try:
|
|
1616
|
-
api.session.rest_delete(url, params=params)
|
|
1640
|
+
api.session.rest_delete(url, json=body or None, params=params)
|
|
1617
1641
|
except WebexError as e:
|
|
1618
1642
|
handle_rest_error(e)
|
|
1619
1643
|
typer.echo(f"Deleted: {queue_id}")
|
|
@@ -18,7 +18,7 @@ def cmd_list(
|
|
|
18
18
|
partial_name_search: str = typer.Option(None, "--partial-name-search", help="Performs a partial string match on the name of the flow. If"),
|
|
19
19
|
search_by: str = typer.Option(None, "--search-by", help="Filter expression in the format `<field>|<value>`. Supports"),
|
|
20
20
|
size: str = typer.Option(None, "--size", help="Defines the number of items to be displayed on a page. If th"),
|
|
21
|
-
include_pagination: str = typer.Option(None, "--include-pagination", help="If set to
|
|
21
|
+
include_pagination: str = typer.Option(None, "--include-pagination", help="If set to true then a different paginated response object co"),
|
|
22
22
|
is_validation: str = typer.Option(None, "--is-validation", help="If true, validates the existence of flows by ID regardless o"),
|
|
23
23
|
output: str = typer.Option("table", "--output", "-o", help="Output format: table|json"),
|
|
24
24
|
limit: int = typer.Option(0, "--limit", help="Max results (0=all for paginated endpoints, API default for non-paginated)"),
|
|
@@ -429,7 +429,7 @@ def list_validate(
|
|
|
429
429
|
except WebexError as e:
|
|
430
430
|
handle_rest_error(e)
|
|
431
431
|
result = result or []
|
|
432
|
-
items = result.get("
|
|
432
|
+
items = result.get("results", result.get("data", result if isinstance(result, list) else [])) if isinstance(result, dict) else (result if isinstance(result, list) else [])
|
|
433
433
|
if output == "json":
|
|
434
434
|
print_json(items)
|
|
435
435
|
else:
|
|
@@ -158,6 +158,9 @@ def show(
|
|
|
158
158
|
@app.command("delete")
|
|
159
159
|
def delete(
|
|
160
160
|
recording_id: str = typer.Argument(help="recordingId"),
|
|
161
|
+
reason: str = typer.Option(None, "--reason", help="Reason for deleting a recording. Only required when a Compli"),
|
|
162
|
+
comment: str = typer.Option(None, "--comment", help="Compliance Officer's explanation for deleting a recording. T"),
|
|
163
|
+
json_body: str = typer.Option(None, "--json-body", help="Full JSON body (overrides other options)"),
|
|
161
164
|
force: bool = typer.Option(False, "--force", help="Skip confirmation"),
|
|
162
165
|
debug: bool = typer.Option(False, "--debug"),
|
|
163
166
|
):
|
|
@@ -166,8 +169,16 @@ def delete(
|
|
|
166
169
|
typer.confirm(f"Delete {recording_id}?", abort=True)
|
|
167
170
|
api = get_api(debug=debug)
|
|
168
171
|
url = f"https://webexapis.com/v1/convergedRecordings/{recording_id}"
|
|
172
|
+
if json_body:
|
|
173
|
+
body = json.loads(json_body)
|
|
174
|
+
else:
|
|
175
|
+
body = {}
|
|
176
|
+
if reason is not None:
|
|
177
|
+
body["reason"] = reason
|
|
178
|
+
if comment is not None:
|
|
179
|
+
body["comment"] = comment
|
|
169
180
|
try:
|
|
170
|
-
api.session.rest_delete(url)
|
|
181
|
+
api.session.rest_delete(url, json=body or None)
|
|
171
182
|
except WebexError as e:
|
|
172
183
|
handle_rest_error(e)
|
|
173
184
|
typer.echo(f"Deleted: {recording_id}")
|
|
@@ -526,6 +526,8 @@ def delete_handsets_dect_networks(
|
|
|
526
526
|
def delete_handsets_dect_networks_1(
|
|
527
527
|
location_id: str = typer.Argument(help="locationId"),
|
|
528
528
|
dect_network_id: str = typer.Argument(help="dectNetworkId"),
|
|
529
|
+
delete_all: bool = typer.Option(None, "--delete-all/--no-delete-all", help="If present the items array is ignored and all items in the c"),
|
|
530
|
+
json_body: str = typer.Option(None, "--json-body", help="Full JSON body (overrides other options)"),
|
|
529
531
|
force: bool = typer.Option(False, "--force", help="Skip confirmation"),
|
|
530
532
|
debug: bool = typer.Option(False, "--debug"),
|
|
531
533
|
):
|
|
@@ -538,8 +540,18 @@ def delete_handsets_dect_networks_1(
|
|
|
538
540
|
org_id = get_org_id()
|
|
539
541
|
if org_id is not None:
|
|
540
542
|
params["orgId"] = org_id
|
|
543
|
+
if json_body:
|
|
544
|
+
body = json.loads(json_body)
|
|
545
|
+
else:
|
|
546
|
+
body = {}
|
|
547
|
+
if delete_all is not None:
|
|
548
|
+
body["deleteAll"] = delete_all
|
|
549
|
+
missing = [f for f in ['handsetIds'] if f not in body]
|
|
550
|
+
if missing:
|
|
551
|
+
typer.echo(f"Error: required body field(s) missing: {', '.join(missing)}. Pass them via --json-body — this delete needs to know what to delete.", err=True)
|
|
552
|
+
raise typer.Exit(1)
|
|
541
553
|
try:
|
|
542
|
-
api.session.rest_delete(url, params=params)
|
|
554
|
+
api.session.rest_delete(url, json=body or None, params=params)
|
|
543
555
|
except WebexError as e:
|
|
544
556
|
handle_rest_error(e)
|
|
545
557
|
typer.echo(f"Deleted: {dect_network_id}")
|
|
@@ -1439,6 +1439,7 @@ def list_background_images(
|
|
|
1439
1439
|
|
|
1440
1440
|
@app.command("delete-background-images")
|
|
1441
1441
|
def delete_background_images(
|
|
1442
|
+
json_body: str = typer.Option(None, "--json-body", help="Full JSON body (overrides other options)"),
|
|
1442
1443
|
force: bool = typer.Option(False, "--force", help="Skip confirmation"),
|
|
1443
1444
|
debug: bool = typer.Option(False, "--debug"),
|
|
1444
1445
|
):
|
|
@@ -1451,8 +1452,16 @@ def delete_background_images(
|
|
|
1451
1452
|
org_id = get_org_id()
|
|
1452
1453
|
if org_id is not None:
|
|
1453
1454
|
params["orgId"] = org_id
|
|
1455
|
+
if json_body:
|
|
1456
|
+
body = json.loads(json_body)
|
|
1457
|
+
else:
|
|
1458
|
+
body = {}
|
|
1459
|
+
missing = [f for f in ['backgroundImages'] if f not in body]
|
|
1460
|
+
if missing:
|
|
1461
|
+
typer.echo(f"Error: required body field(s) missing: {', '.join(missing)}. Pass them via --json-body — this delete needs to know what to delete.", err=True)
|
|
1462
|
+
raise typer.Exit(1)
|
|
1454
1463
|
try:
|
|
1455
|
-
api.session.rest_delete(url, params=params)
|
|
1464
|
+
api.session.rest_delete(url, json=body or None, params=params)
|
|
1456
1465
|
except WebexError as e:
|
|
1457
1466
|
handle_rest_error(e)
|
|
1458
1467
|
typer.echo("Deleted.")
|
|
@@ -213,6 +213,9 @@ def update(
|
|
|
213
213
|
@app.command("delete")
|
|
214
214
|
def delete(
|
|
215
215
|
transcript_id: str = typer.Argument(help="transcriptId"),
|
|
216
|
+
reason: str = typer.Option(None, "--reason", help="Reason for deleting a transcript. Only required when a Compl"),
|
|
217
|
+
comment: str = typer.Option(None, "--comment", help="Explanation for deleting a transcript. The comment can be a"),
|
|
218
|
+
json_body: str = typer.Option(None, "--json-body", help="Full JSON body (overrides other options)"),
|
|
216
219
|
force: bool = typer.Option(False, "--force", help="Skip confirmation"),
|
|
217
220
|
debug: bool = typer.Option(False, "--debug"),
|
|
218
221
|
):
|
|
@@ -221,8 +224,16 @@ def delete(
|
|
|
221
224
|
typer.confirm(f"Delete {transcript_id}?", abort=True)
|
|
222
225
|
api = get_api(debug=debug)
|
|
223
226
|
url = f"https://webexapis.com/v1/meetingTranscripts/{transcript_id}"
|
|
227
|
+
if json_body:
|
|
228
|
+
body = json.loads(json_body)
|
|
229
|
+
else:
|
|
230
|
+
body = {}
|
|
231
|
+
if reason is not None:
|
|
232
|
+
body["reason"] = reason
|
|
233
|
+
if comment is not None:
|
|
234
|
+
body["comment"] = comment
|
|
224
235
|
try:
|
|
225
|
-
api.session.rest_delete(url)
|
|
236
|
+
api.session.rest_delete(url, json=body or None)
|
|
226
237
|
except WebexError as e:
|
|
227
238
|
handle_rest_error(e)
|
|
228
239
|
typer.echo(f"Deleted: {transcript_id}")
|
|
@@ -88,6 +88,7 @@ def update(
|
|
|
88
88
|
@app.command("delete")
|
|
89
89
|
def delete(
|
|
90
90
|
location_id: str = typer.Argument(help="locationId"),
|
|
91
|
+
json_body: str = typer.Option(None, "--json-body", help="Full JSON body (overrides other options)"),
|
|
91
92
|
force: bool = typer.Option(False, "--force", help="Skip confirmation"),
|
|
92
93
|
debug: bool = typer.Option(False, "--debug"),
|
|
93
94
|
):
|
|
@@ -100,8 +101,16 @@ def delete(
|
|
|
100
101
|
org_id = get_org_id()
|
|
101
102
|
if org_id is not None:
|
|
102
103
|
params["orgId"] = org_id
|
|
104
|
+
if json_body:
|
|
105
|
+
body = json.loads(json_body)
|
|
106
|
+
else:
|
|
107
|
+
body = {}
|
|
108
|
+
missing = [f for f in ['phoneNumbers'] if f not in body]
|
|
109
|
+
if missing:
|
|
110
|
+
typer.echo(f"Error: required body field(s) missing: {', '.join(missing)}. Pass them via --json-body — this delete needs to know what to delete.", err=True)
|
|
111
|
+
raise typer.Exit(1)
|
|
103
112
|
try:
|
|
104
|
-
api.session.rest_delete(url, params=params)
|
|
113
|
+
api.session.rest_delete(url, json=body or None, params=params)
|
|
105
114
|
except WebexError as e:
|
|
106
115
|
handle_rest_error(e)
|
|
107
116
|
typer.echo(f"Deleted: {location_id}")
|