wxcli 1.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- wxcli/__init__.py +4 -0
- wxcli/_playbook/.claude/agents/migration-advisor.md +239 -0
- wxcli/_playbook/.claude/agents/wxc-calling-builder.md +946 -0
- wxcli/_playbook/.claude/rules/cleanup.md +29 -0
- wxcli/_playbook/.claude/rules/cucm-migration.md +58 -0
- wxcli/_playbook/.claude/rules/org-health.md +14 -0
- wxcli/_playbook/.claude/settings.json +8 -0
- wxcli/_playbook/.claude/skills/audit-compliance/SKILL.md +515 -0
- wxcli/_playbook/.claude/skills/call-control/SKILL.md +747 -0
- wxcli/_playbook/.claude/skills/configure-features/SKILL.md +623 -0
- wxcli/_playbook/.claude/skills/configure-routing/SKILL.md +627 -0
- wxcli/_playbook/.claude/skills/contact-center/SKILL.md +1181 -0
- wxcli/_playbook/.claude/skills/cucm-migrate/SKILL.md +820 -0
- wxcli/_playbook/.claude/skills/customer-assist/SKILL.md +443 -0
- wxcli/_playbook/.claude/skills/device-platform/SKILL.md +407 -0
- wxcli/_playbook/.claude/skills/manage-call-settings/SKILL.md +757 -0
- wxcli/_playbook/.claude/skills/manage-devices/SKILL.md +790 -0
- wxcli/_playbook/.claude/skills/manage-identity/SKILL.md +638 -0
- wxcli/_playbook/.claude/skills/manage-licensing/SKILL.md +528 -0
- wxcli/_playbook/.claude/skills/manage-meetings/SKILL.md +708 -0
- wxcli/_playbook/.claude/skills/messaging-bots/SKILL.md +365 -0
- wxcli/_playbook/.claude/skills/messaging-spaces/SKILL.md +520 -0
- wxcli/_playbook/.claude/skills/org-health/SKILL.md +159 -0
- wxcli/_playbook/.claude/skills/provision-calling/SKILL.md +421 -0
- wxcli/_playbook/.claude/skills/query-live/SKILL.md +183 -0
- wxcli/_playbook/.claude/skills/query-live/domains/call-flow-trace.md +223 -0
- wxcli/_playbook/.claude/skills/query-live/domains/call-history.md +44 -0
- wxcli/_playbook/.claude/skills/query-live/domains/features.md +169 -0
- wxcli/_playbook/.claude/skills/query-live/domains/numbers.md +93 -0
- wxcli/_playbook/.claude/skills/query-live/domains/people-and-settings.md +146 -0
- wxcli/_playbook/.claude/skills/query-live/domains/routing.md +124 -0
- wxcli/_playbook/.claude/skills/reporting/SKILL.md +501 -0
- wxcli/_playbook/.claude/skills/reporting/references/cdr-recipes.md +1628 -0
- wxcli/_playbook/.claude/skills/reporting-cc/SKILL.md +251 -0
- wxcli/_playbook/.claude/skills/reporting-meetings/SKILL.md +290 -0
- wxcli/_playbook/.claude/skills/teardown/SKILL.md +214 -0
- wxcli/_playbook/.claude/skills/video-mesh/SKILL.md +379 -0
- wxcli/_playbook/.claude/skills/wxc-calling-debug/SKILL.md +475 -0
- wxcli/_playbook/CLAUDE.md +373 -0
- wxcli/_playbook/docs/reference/CLAUDE.md +25 -0
- wxcli/_playbook/docs/reference/admin-apps-data.md +643 -0
- wxcli/_playbook/docs/reference/admin-audit-security.md +322 -0
- wxcli/_playbook/docs/reference/admin-hybrid.md +383 -0
- wxcli/_playbook/docs/reference/admin-identity-scim.md +1007 -0
- wxcli/_playbook/docs/reference/admin-licensing.md +414 -0
- wxcli/_playbook/docs/reference/admin-org-management.md +586 -0
- wxcli/_playbook/docs/reference/admin-partner.md +357 -0
- wxcli/_playbook/docs/reference/archive/wxc-sdk-patterns.md +1229 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-advanced.md +835 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-core.md +743 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-devices-workspaces.md +1305 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-features.md +849 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-locations.md +938 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-person.md +1255 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-routing.md +1262 -0
- wxcli/_playbook/docs/reference/authentication.md +965 -0
- wxcli/_playbook/docs/reference/call-control.md +1205 -0
- wxcli/_playbook/docs/reference/call-features-additional.md +2541 -0
- wxcli/_playbook/docs/reference/call-features-major.md +1320 -0
- wxcli/_playbook/docs/reference/call-routing.md +2304 -0
- wxcli/_playbook/docs/reference/contact-center-analytics.md +1049 -0
- wxcli/_playbook/docs/reference/contact-center-core.md +1614 -0
- wxcli/_playbook/docs/reference/contact-center-journey.md +457 -0
- wxcli/_playbook/docs/reference/contact-center-routing.md +1138 -0
- wxcli/_playbook/docs/reference/devices-core.md +1869 -0
- wxcli/_playbook/docs/reference/devices-dect.md +1150 -0
- wxcli/_playbook/docs/reference/devices-platform.md +467 -0
- wxcli/_playbook/docs/reference/devices-workspaces.md +1426 -0
- wxcli/_playbook/docs/reference/emergency-services.md +1122 -0
- wxcli/_playbook/docs/reference/location-calling-core.md +2037 -0
- wxcli/_playbook/docs/reference/location-calling-media.md +1334 -0
- wxcli/_playbook/docs/reference/location-recording-advanced.md +1482 -0
- wxcli/_playbook/docs/reference/meetings-content.md +473 -0
- wxcli/_playbook/docs/reference/meetings-core.md +903 -0
- wxcli/_playbook/docs/reference/meetings-infrastructure.md +899 -0
- wxcli/_playbook/docs/reference/meetings-settings.md +850 -0
- wxcli/_playbook/docs/reference/messaging-bots.md +1091 -0
- wxcli/_playbook/docs/reference/messaging-spaces.md +695 -0
- wxcli/_playbook/docs/reference/person-call-settings-behavior.md +1639 -0
- wxcli/_playbook/docs/reference/person-call-settings-handling.md +1394 -0
- wxcli/_playbook/docs/reference/person-call-settings-media.md +1898 -0
- wxcli/_playbook/docs/reference/person-call-settings-permissions.md +1329 -0
- wxcli/_playbook/docs/reference/provisioning.md +1366 -0
- wxcli/_playbook/docs/reference/reporting-analytics.md +1318 -0
- wxcli/_playbook/docs/reference/self-service-call-settings.md +1020 -0
- wxcli/_playbook/docs/reference/virtual-lines.md +1132 -0
- wxcli/_playbook/docs/reference/webhooks-events.md +1444 -0
- wxcli/_playbook/docs/reference/wxcadm-xsi-realtime.md +953 -0
- wxcli/_version.py +24 -0
- wxcli/auth.py +137 -0
- wxcli/commands/__init__.py +0 -0
- wxcli/commands/_registry.py +181 -0
- wxcli/commands/activation_email.py +103 -0
- wxcli/commands/admin_recordings.py +585 -0
- wxcli/commands/analytics.py +105 -0
- wxcli/commands/announcement_playlists.py +219 -0
- wxcli/commands/announcements.py +519 -0
- wxcli/commands/archive_users.py +36 -0
- wxcli/commands/attachment_actions.py +60 -0
- wxcli/commands/audit_events.py +83 -0
- wxcli/commands/authorizations.py +113 -0
- wxcli/commands/auto_attendant.py +642 -0
- wxcli/commands/broadworks_billing_reports.py +126 -0
- wxcli/commands/broadworks_enterprises.py +160 -0
- wxcli/commands/broadworks_subscribers.py +319 -0
- wxcli/commands/broadworks_workspaces.py +108 -0
- wxcli/commands/call_controls.py +1304 -0
- wxcli/commands/call_park.py +494 -0
- wxcli/commands/call_pickup.py +229 -0
- wxcli/commands/call_queue.py +1878 -0
- wxcli/commands/call_recording.py +707 -0
- wxcli/commands/call_routing.py +1610 -0
- wxcli/commands/call_settings_for_me_phase_5.py +212 -0
- wxcli/commands/caller_reputation.py +169 -0
- wxcli/commands/calling_service.py +305 -0
- wxcli/commands/cc_address_book.py +770 -0
- wxcli/commands/cc_agent_greetings.py +242 -0
- wxcli/commands/cc_agent_summaries.py +39 -0
- wxcli/commands/cc_agent_wellbeing.py +216 -0
- wxcli/commands/cc_agents.py +425 -0
- wxcli/commands/cc_ai_assistant.py +55 -0
- wxcli/commands/cc_ai_feature.py +294 -0
- wxcli/commands/cc_audio_files.py +149 -0
- wxcli/commands/cc_auto_csat.py +311 -0
- wxcli/commands/cc_aux_code.py +458 -0
- wxcli/commands/cc_business_hour.py +353 -0
- wxcli/commands/cc_call_monitoring.py +228 -0
- wxcli/commands/cc_callbacks.py +194 -0
- wxcli/commands/cc_campaign.py +212 -0
- wxcli/commands/cc_captures.py +39 -0
- wxcli/commands/cc_contact_list.py +169 -0
- wxcli/commands/cc_contact_number.py +295 -0
- wxcli/commands/cc_data_sources.py +235 -0
- wxcli/commands/cc_desktop_layout.py +380 -0
- wxcli/commands/cc_desktop_profile.py +322 -0
- wxcli/commands/cc_dial_number.py +511 -0
- wxcli/commands/cc_dial_plan.py +347 -0
- wxcli/commands/cc_dnc.py +101 -0
- wxcli/commands/cc_entry_point.py +545 -0
- wxcli/commands/cc_ewt.py +51 -0
- wxcli/commands/cc_flow.py +477 -0
- wxcli/commands/cc_global_vars.py +430 -0
- wxcli/commands/cc_holiday_list.py +335 -0
- wxcli/commands/cc_journey.py +1261 -0
- wxcli/commands/cc_legacy_flows.py +49 -0
- wxcli/commands/cc_multimedia_profile.py +436 -0
- wxcli/commands/cc_notification.py +51 -0
- wxcli/commands/cc_outdial_ani.py +604 -0
- wxcli/commands/cc_overrides.py +341 -0
- wxcli/commands/cc_queue.py +1083 -0
- wxcli/commands/cc_queue_stats.py +55 -0
- wxcli/commands/cc_realtime.py +51 -0
- wxcli/commands/cc_resource_collection.py +312 -0
- wxcli/commands/cc_search.py +46 -0
- wxcli/commands/cc_site.py +400 -0
- wxcli/commands/cc_skill.py +350 -0
- wxcli/commands/cc_skill_profile.py +289 -0
- wxcli/commands/cc_subscriptions.py +426 -0
- wxcli/commands/cc_summaries.py +130 -0
- wxcli/commands/cc_tasks.py +844 -0
- wxcli/commands/cc_team.py +325 -0
- wxcli/commands/cc_user_profiles.py +349 -0
- wxcli/commands/cc_users.py +701 -0
- wxcli/commands/cc_work_types.py +363 -0
- wxcli/commands/cdr.py +89 -0
- wxcli/commands/classifications.py +38 -0
- wxcli/commands/cleanup.py +1427 -0
- wxcli/commands/client_settings.py +72 -0
- wxcli/commands/conference.py +328 -0
- wxcli/commands/configure.py +72 -0
- wxcli/commands/converged_recordings.py +347 -0
- wxcli/commands/converged_recordings_export.py +310 -0
- wxcli/commands/cq_playlists.py +42 -0
- wxcli/commands/cucm.py +2794 -0
- wxcli/commands/cucm_config.py +129 -0
- wxcli/commands/customer_assist.py +373 -0
- wxcli/commands/data_sources.py +227 -0
- wxcli/commands/dect_devices.py +787 -0
- wxcli/commands/device_configurations.py +77 -0
- wxcli/commands/device_dynamic_settings.py +320 -0
- wxcli/commands/device_settings.py +1489 -0
- wxcli/commands/devices.py +280 -0
- wxcli/commands/domains.py +142 -0
- wxcli/commands/ecm.py +178 -0
- wxcli/commands/emergency_services.py +827 -0
- wxcli/commands/events.py +83 -0
- wxcli/commands/external_voicemail.py +52 -0
- wxcli/commands/groups.py +206 -0
- wxcli/commands/guest_management.py +76 -0
- wxcli/commands/hds.py +340 -0
- wxcli/commands/hot_desk.py +67 -0
- wxcli/commands/hot_desking_members.py +118 -0
- wxcli/commands/hot_desking_portal.py +124 -0
- wxcli/commands/hunt_group.py +577 -0
- wxcli/commands/hybrid_clusters.py +71 -0
- wxcli/commands/hybrid_connectors.py +67 -0
- wxcli/commands/identity_org.py +159 -0
- wxcli/commands/init_playbook.py +155 -0
- wxcli/commands/licenses.py +106 -0
- wxcli/commands/live_monitoring.py +40 -0
- wxcli/commands/location_call_handling.py +577 -0
- wxcli/commands/location_schedules.py +341 -0
- wxcli/commands/location_settings.py +1297 -0
- wxcli/commands/location_voicemail.py +494 -0
- wxcli/commands/locations.py +336 -0
- wxcli/commands/meeting_captions.py +110 -0
- wxcli/commands/meeting_chats.py +63 -0
- wxcli/commands/meeting_invitees.py +234 -0
- wxcli/commands/meeting_messages.py +28 -0
- wxcli/commands/meeting_participants.py +278 -0
- wxcli/commands/meeting_polls.py +111 -0
- wxcli/commands/meeting_preferences.py +515 -0
- wxcli/commands/meeting_qa.py +78 -0
- wxcli/commands/meeting_qualities.py +43 -0
- wxcli/commands/meeting_reports.py +101 -0
- wxcli/commands/meeting_session_types.py +105 -0
- wxcli/commands/meeting_site.py +57 -0
- wxcli/commands/meeting_slido.py +44 -0
- wxcli/commands/meeting_summaries.py +92 -0
- wxcli/commands/meeting_tracking_codes.py +233 -0
- wxcli/commands/meeting_transcripts.py +230 -0
- wxcli/commands/meetings.py +1997 -0
- wxcli/commands/memberships.py +164 -0
- wxcli/commands/messages.py +213 -0
- wxcli/commands/mode_management.py +244 -0
- wxcli/commands/my_call_settings.py +3577 -0
- wxcli/commands/numbers.py +405 -0
- wxcli/commands/operating_modes.py +410 -0
- wxcli/commands/org_contacts.py +284 -0
- wxcli/commands/org_health_cli.py +55 -0
- wxcli/commands/org_settings.py +71 -0
- wxcli/commands/organizations.py +83 -0
- wxcli/commands/paging_group.py +257 -0
- wxcli/commands/partner_admins.py +141 -0
- wxcli/commands/partner_reports.py +188 -0
- wxcli/commands/partner_tags.py +216 -0
- wxcli/commands/people.py +279 -0
- wxcli/commands/person_call_settings.py +71 -0
- wxcli/commands/pstn.py +280 -0
- wxcli/commands/recording_report.py +154 -0
- wxcli/commands/report_templates.py +38 -0
- wxcli/commands/reports.py +144 -0
- wxcli/commands/resource_group_memberships.py +160 -0
- wxcli/commands/resource_groups.py +67 -0
- wxcli/commands/roles.py +63 -0
- wxcli/commands/room_tabs.py +160 -0
- wxcli/commands/rooms.py +225 -0
- wxcli/commands/scim_bulk.py +46 -0
- wxcli/commands/scim_groups.py +246 -0
- wxcli/commands/scim_schemas.py +82 -0
- wxcli/commands/scim_users.py +283 -0
- wxcli/commands/security_audit.py +54 -0
- wxcli/commands/service_apps.py +51 -0
- wxcli/commands/single_number_reach.py +209 -0
- wxcli/commands/team_memberships.py +155 -0
- wxcli/commands/teams.py +153 -0
- wxcli/commands/ucm_profile.py +42 -0
- wxcli/commands/update.py +219 -0
- wxcli/commands/user_settings.py +5116 -0
- wxcli/commands/video_mesh.py +1090 -0
- wxcli/commands/virtual_extensions.py +502 -0
- wxcli/commands/virtual_line_settings.py +2072 -0
- wxcli/commands/webhooks.py +176 -0
- wxcli/commands/wholesale_billing_reports.py +147 -0
- wxcli/commands/wholesale_provisioning.py +523 -0
- wxcli/commands/workspace_locations.py +339 -0
- wxcli/commands/workspace_metrics.py +103 -0
- wxcli/commands/workspace_personalization.py +70 -0
- wxcli/commands/workspace_settings.py +3347 -0
- wxcli/commands/workspaces.py +279 -0
- wxcli/commands/xapi.py +114 -0
- wxcli/config.py +139 -0
- wxcli/errors.py +77 -0
- wxcli/main.py +210 -0
- wxcli/migration/CLAUDE.md +106 -0
- wxcli/migration/__init__.py +1 -0
- wxcli/migration/advisory/CLAUDE.md +196 -0
- wxcli/migration/advisory/__init__.py +46 -0
- wxcli/migration/advisory/advisor.py +107 -0
- wxcli/migration/advisory/advisory_patterns.py +2552 -0
- wxcli/migration/advisory/recommendation_rules.py +835 -0
- wxcli/migration/cucm/CLAUDE.md +74 -0
- wxcli/migration/cucm/__init__.py +5 -0
- wxcli/migration/cucm/connection.py +265 -0
- wxcli/migration/cucm/discovery.py +225 -0
- wxcli/migration/cucm/extractors/__init__.py +1 -0
- wxcli/migration/cucm/extractors/announcements.py +92 -0
- wxcli/migration/cucm/extractors/base.py +90 -0
- wxcli/migration/cucm/extractors/device_profiles.py +98 -0
- wxcli/migration/cucm/extractors/devices.py +193 -0
- wxcli/migration/cucm/extractors/e911.py +103 -0
- wxcli/migration/cucm/extractors/features.py +309 -0
- wxcli/migration/cucm/extractors/helpers.py +73 -0
- wxcli/migration/cucm/extractors/informational.py +295 -0
- wxcli/migration/cucm/extractors/locations.py +221 -0
- wxcli/migration/cucm/extractors/moh.py +100 -0
- wxcli/migration/cucm/extractors/remote_destinations.py +96 -0
- wxcli/migration/cucm/extractors/routing.py +493 -0
- wxcli/migration/cucm/extractors/shared_lines.py +146 -0
- wxcli/migration/cucm/extractors/templates.py +229 -0
- wxcli/migration/cucm/extractors/tier4.py +173 -0
- wxcli/migration/cucm/extractors/users.py +240 -0
- wxcli/migration/cucm/extractors/voicemail.py +243 -0
- wxcli/migration/cucm/extractors/workspaces.py +88 -0
- wxcli/migration/cucm/unity_connection.py +304 -0
- wxcli/migration/execute/CLAUDE.md +372 -0
- wxcli/migration/execute/__init__.py +303 -0
- wxcli/migration/execute/batch.py +277 -0
- wxcli/migration/execute/dependency.py +483 -0
- wxcli/migration/execute/engine.py +964 -0
- wxcli/migration/execute/handlers.py +2232 -0
- wxcli/migration/execute/planner.py +1939 -0
- wxcli/migration/execute/runtime.py +571 -0
- wxcli/migration/export/CLAUDE.md +49 -0
- wxcli/migration/export/__init__.py +8 -0
- wxcli/migration/export/csv_export.py +126 -0
- wxcli/migration/export/deployment_plan.py +479 -0
- wxcli/migration/export/json_export.py +60 -0
- wxcli/migration/models.py +941 -0
- wxcli/migration/phone_models.py +50 -0
- wxcli/migration/preflight/CLAUDE.md +52 -0
- wxcli/migration/preflight/__init__.py +89 -0
- wxcli/migration/preflight/checks.py +911 -0
- wxcli/migration/preflight/runner.py +293 -0
- wxcli/migration/rate_limiter.py +144 -0
- wxcli/migration/report/CLAUDE.md +245 -0
- wxcli/migration/report/__init__.py +7 -0
- wxcli/migration/report/appendix.py +2437 -0
- wxcli/migration/report/assembler.py +183 -0
- wxcli/migration/report/charts.py +263 -0
- wxcli/migration/report/executive.py +776 -0
- wxcli/migration/report/explainer.py +704 -0
- wxcli/migration/report/helpers.py +74 -0
- wxcli/migration/report/ingest.py +152 -0
- wxcli/migration/report/notice_templates.py +192 -0
- wxcli/migration/report/score.py +375 -0
- wxcli/migration/report/styles.py +1052 -0
- wxcli/migration/report/user_diff.py +1052 -0
- wxcli/migration/report/user_notice.py +425 -0
- wxcli/migration/state.py +139 -0
- wxcli/migration/store.py +860 -0
- wxcli/migration/transform/CLAUDE.md +107 -0
- wxcli/migration/transform/__init__.py +12 -0
- wxcli/migration/transform/analysis_pipeline.py +453 -0
- wxcli/migration/transform/analyzers/__init__.py +142 -0
- wxcli/migration/transform/analyzers/css_permission.py +189 -0
- wxcli/migration/transform/analyzers/css_routing.py +335 -0
- wxcli/migration/transform/analyzers/device_compatibility.py +122 -0
- wxcli/migration/transform/analyzers/dn_ambiguity.py +131 -0
- wxcli/migration/transform/analyzers/duplicate_user.py +221 -0
- wxcli/migration/transform/analyzers/extension_conflict.py +173 -0
- wxcli/migration/transform/analyzers/feature_approximation.py +227 -0
- wxcli/migration/transform/analyzers/layout_overflow.py +174 -0
- wxcli/migration/transform/analyzers/location_ambiguity.py +184 -0
- wxcli/migration/transform/analyzers/missing_data.py +300 -0
- wxcli/migration/transform/analyzers/selective_call_handling.py +394 -0
- wxcli/migration/transform/analyzers/shared_line.py +170 -0
- wxcli/migration/transform/analyzers/voicemail_compatibility.py +267 -0
- wxcli/migration/transform/analyzers/workspace_license.py +212 -0
- wxcli/migration/transform/cross_reference.py +1136 -0
- wxcli/migration/transform/cucm_pattern.py +246 -0
- wxcli/migration/transform/decisions.py +301 -0
- wxcli/migration/transform/e164.py +145 -0
- wxcli/migration/transform/engine.py +256 -0
- wxcli/migration/transform/mappers/CLAUDE.md +123 -0
- wxcli/migration/transform/mappers/__init__.py +76 -0
- wxcli/migration/transform/mappers/announcement_mapper.py +122 -0
- wxcli/migration/transform/mappers/base.py +190 -0
- wxcli/migration/transform/mappers/button_template_mapper.py +186 -0
- wxcli/migration/transform/mappers/call_forwarding_mapper.py +228 -0
- wxcli/migration/transform/mappers/call_settings_mapper.py +144 -0
- wxcli/migration/transform/mappers/css_mapper.py +868 -0
- wxcli/migration/transform/mappers/dect_mapper.py +367 -0
- wxcli/migration/transform/mappers/device_layout_mapper.py +289 -0
- wxcli/migration/transform/mappers/device_mapper.py +227 -0
- wxcli/migration/transform/mappers/device_profile_mapper.py +190 -0
- wxcli/migration/transform/mappers/device_settings_mapper.py +464 -0
- wxcli/migration/transform/mappers/e911_mapper.py +129 -0
- wxcli/migration/transform/mappers/ecbn_mapper.py +263 -0
- wxcli/migration/transform/mappers/executive_assistant_mapper.py +156 -0
- wxcli/migration/transform/mappers/feature_mapper.py +1179 -0
- wxcli/migration/transform/mappers/line_mapper.py +310 -0
- wxcli/migration/transform/mappers/location_mapper.py +235 -0
- wxcli/migration/transform/mappers/moh_mapper.py +114 -0
- wxcli/migration/transform/mappers/monitoring_mapper.py +221 -0
- wxcli/migration/transform/mappers/receptionist_mapper.py +245 -0
- wxcli/migration/transform/mappers/routing_mapper.py +821 -0
- wxcli/migration/transform/mappers/snr_mapper.py +201 -0
- wxcli/migration/transform/mappers/softkey_mapper.py +205 -0
- wxcli/migration/transform/mappers/user_mapper.py +264 -0
- wxcli/migration/transform/mappers/voicemail_group_mapper.py +286 -0
- wxcli/migration/transform/mappers/voicemail_mapper.py +514 -0
- wxcli/migration/transform/mappers/workspace_mapper.py +464 -0
- wxcli/migration/transform/normalizers.py +2008 -0
- wxcli/migration/transform/pattern_converter.py +106 -0
- wxcli/migration/transform/pipeline.py +271 -0
- wxcli/migration/transform/rules.py +255 -0
- wxcli/org_health/CLAUDE.md +63 -0
- wxcli/org_health/__init__.py +7 -0
- wxcli/org_health/analyze.py +93 -0
- wxcli/org_health/checks.py +458 -0
- wxcli/org_health/collector.py +62 -0
- wxcli/org_health/models.py +78 -0
- wxcli/org_health/report.py +300 -0
- wxcli/output.py +101 -0
- wxcli-1.2.0.dist-info/METADATA +505 -0
- wxcli-1.2.0.dist-info/RECORD +413 -0
- wxcli-1.2.0.dist-info/WHEEL +5 -0
- wxcli-1.2.0.dist-info/entry_points.txt +2 -0
- wxcli-1.2.0.dist-info/licenses/LICENSE +191 -0
- wxcli-1.2.0.dist-info/scm_file_list.json +751 -0
- wxcli-1.2.0.dist-info/scm_version.json +8 -0
- wxcli-1.2.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
# Admin: Partner Operations
|
|
2
|
+
|
|
3
|
+
Partner/VAR/MSP multi-tenant management -- customer org management, admin assignment, tagging, and partner-level reporting.
|
|
4
|
+
|
|
5
|
+
**Audience note:** This doc serves partner/VAR/MSP organizations. Most single-org admins will never use these commands. All commands require a partner-level admin token.
|
|
6
|
+
|
|
7
|
+
## Sources
|
|
8
|
+
|
|
9
|
+
- OpenAPI spec: `specs/webex-admin.json` (tags: Partner Administrators, Partner Tags, Partner Reports Templates)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Required Scopes
|
|
14
|
+
|
|
15
|
+
| Scope | Purpose |
|
|
16
|
+
|-------|---------|
|
|
17
|
+
| `spark-admin:reports_read` | List and retrieve partner reports and templates. |
|
|
18
|
+
| `spark-admin:reports_write` | Create and delete partner reports. |
|
|
19
|
+
| `spark-admin:organizations_read` | Read operations for `partner-admins` and `partner-tags` commands. |
|
|
20
|
+
| `spark-admin:organizations_write` | Write operations for `partner-admins` and `partner-tags` commands. |
|
|
21
|
+
| Partner admin token | Required for `partner-admins` and `partner-tags` commands. These APIs are only accessible to partner-level administrators (VAR/MSP). |
|
|
22
|
+
|
|
23
|
+
**Token requirement:** A standard org admin token will not work. You must authenticate as a partner administrator with access to the partner organization. Service app tokens scoped to a single customer org will also fail.
|
|
24
|
+
|
|
25
|
+
**wxcli multi-org support:** wxcli natively handles partner token org targeting. Run `wxcli configure` to auto-detect your multi-org token and select a target customer org. Use `wxcli switch-org` to change the active org and `wxcli clear-org` to reset. Once configured, `orgId` is injected automatically on all applicable commands — no extra flags required. See `docs/reference/authentication.md` (Partner/Multi-Org Tokens section) for full details.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 1. Partner Admins (`partner-admins`)
|
|
30
|
+
|
|
31
|
+
Manage assignment of partner administrators to customer organizations.
|
|
32
|
+
|
|
33
|
+
### API Endpoints
|
|
34
|
+
|
|
35
|
+
| Operation | Method | URL |
|
|
36
|
+
|-----------|--------|-----|
|
|
37
|
+
| List customer orgs | GET | `/v1/partner/organizations` |
|
|
38
|
+
| List partner admins for customer | GET | `/v1/partner/organizations/{orgId}/partnerAdmins` |
|
|
39
|
+
| Assign partner admin | POST | `/v1/partner/organizations/{orgId}/partnerAdmin/{personId}/assign` |
|
|
40
|
+
| Unassign partner admin | DELETE | `/v1/partner/organizations/{orgId}/partnerAdmin/{personId}/unassign` |
|
|
41
|
+
| Revoke all partner admin roles | DELETE | `/v1/partner/organizations/partnerAdmin/{personId}` |
|
|
42
|
+
|
|
43
|
+
### Command Reference
|
|
44
|
+
|
|
45
|
+
| Command | Description | Key Arguments |
|
|
46
|
+
|---------|-------------|---------------|
|
|
47
|
+
| `list` | Get all customers managed by a partner admin | `--managed-by PERSON_ID` |
|
|
48
|
+
| `list-partner-admins` | Get all partner admins assigned to a customer | `ORG_ID` (required) |
|
|
49
|
+
| `create` | Assign partner admin to a customer | `ORG_ID PERSON_ID` (both required) |
|
|
50
|
+
| `delete` | Unassign partner admin from a customer | `ORG_ID PERSON_ID` (both required), `--force` |
|
|
51
|
+
| `delete-partner-admin` | Revoke all partner admin roles for a person | `PERSON_ID` (required), `--force` |
|
|
52
|
+
|
|
53
|
+
### CLI Examples
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# List all customer orgs managed by the authenticated partner
|
|
57
|
+
wxcli partner-admins list
|
|
58
|
+
|
|
59
|
+
# List customer orgs managed by a specific partner admin
|
|
60
|
+
wxcli partner-admins list --managed-by Y2lzY29zcGFyazovL3...
|
|
61
|
+
|
|
62
|
+
# List all partner admins assigned to a customer org
|
|
63
|
+
wxcli partner-admins list-partner-admins Y2lzY29zcGFyazovL3VzL09SR...
|
|
64
|
+
|
|
65
|
+
# Assign a partner admin to a customer org
|
|
66
|
+
wxcli partner-admins create Y2lzY29zcGFyazovL3VzL09SR... Y2lzY29zcGFyazovL3VzL1BF...
|
|
67
|
+
|
|
68
|
+
# Unassign a partner admin from a customer (skip confirmation)
|
|
69
|
+
wxcli partner-admins delete Y2lzY29zcGFyazovL3VzL09SR... Y2lzY29zcGFyazovL3VzL1BF... --force
|
|
70
|
+
|
|
71
|
+
# Revoke ALL partner admin roles for a person across all customer orgs
|
|
72
|
+
wxcli partner-admins delete-partner-admin Y2lzY29zcGFyazovL3VzL1BF... --force
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Raw HTTP Fallback
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# List customer orgs (optionally filter by managedBy person ID)
|
|
79
|
+
curl -s -H "Authorization: Bearer $TOKEN" \
|
|
80
|
+
"https://webexapis.com/v1/partner/organizations?managedBy=PERSON_ID"
|
|
81
|
+
|
|
82
|
+
# Assign partner admin to customer
|
|
83
|
+
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
|
|
84
|
+
-H "Content-Type: application/json" \
|
|
85
|
+
"https://webexapis.com/v1/partner/organizations/{orgId}/partnerAdmin/{personId}/assign"
|
|
86
|
+
|
|
87
|
+
# Unassign partner admin from customer
|
|
88
|
+
curl -s -X DELETE -H "Authorization: Bearer $TOKEN" \
|
|
89
|
+
"https://webexapis.com/v1/partner/organizations/{orgId}/partnerAdmin/{personId}/unassign"
|
|
90
|
+
|
|
91
|
+
# Revoke all partner admin roles for a person
|
|
92
|
+
curl -s -X DELETE -H "Authorization: Bearer $TOKEN" \
|
|
93
|
+
"https://webexapis.com/v1/partner/organizations/partnerAdmin/{personId}"
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 2. Partner Tags (`partner-tags`)
|
|
99
|
+
|
|
100
|
+
Tag customer organizations and subscriptions for categorization (region, tier, vertical, etc.). Tags are free-form strings managed at the partner level.
|
|
101
|
+
|
|
102
|
+
**Operational limits:** Maximum tag length is **25 characters**. Maximum tags per organization is **5**.
|
|
103
|
+
|
|
104
|
+
### API Endpoints
|
|
105
|
+
|
|
106
|
+
| Operation | Method | URL |
|
|
107
|
+
|-----------|--------|-----|
|
|
108
|
+
| List all customer tags | GET | `/v1/partner/tags` |
|
|
109
|
+
| Assign/replace org tags | POST | `/v1/partner/tags/organizations/{orgId}/assignTags` |
|
|
110
|
+
| Get org tags | GET | `/v1/partner/tags/organizations/{orgId}` |
|
|
111
|
+
| Find orgs by tags | GET | `/v1/partner/tags/organizations` |
|
|
112
|
+
| Assign/replace subscription tags | POST | `/v1/partner/tags/organizations/{orgId}/subscriptions/{subscriptionId}/assignTags` |
|
|
113
|
+
| Find subscriptions by tags | GET | `/v1/partner/tags/subscriptions` |
|
|
114
|
+
| Get a subscription | GET | `/v1/partner/tags/organizations/{orgId}/subscriptions/{subscriptionId}` |
|
|
115
|
+
|
|
116
|
+
### Command Reference
|
|
117
|
+
|
|
118
|
+
| Command | Description | Key Arguments |
|
|
119
|
+
|---------|-------------|---------------|
|
|
120
|
+
| `show` | Retrieve all customer tags | `--type TYPE` (required) |
|
|
121
|
+
| `create` | Create or replace org tags | `ORG_ID` (required), `--json-body` |
|
|
122
|
+
| `show-organizations-tags` | Get a customer org's tags | `ORG_ID` (required) |
|
|
123
|
+
| `show-organizations-tags-1` | Fetch all customers matching a set of tags | `--tags TAG1,TAG2` (required), `--max N` |
|
|
124
|
+
| `create-assign-tags` | Create or replace subscription tags | `ORG_ID SUBSCRIPTION_ID` (required), `--json-body` |
|
|
125
|
+
| `show-subscriptions-tags` | List subscriptions matching a set of tags | `--tags TAG1,TAG2` (required), `--max N` |
|
|
126
|
+
| `show-subscriptions-organizations` | Fetch a specific subscription | `ORG_ID SUBSCRIPTION_ID` (required) |
|
|
127
|
+
|
|
128
|
+
### CLI Examples
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# List all tags of a given type
|
|
132
|
+
wxcli partner-tags show --type organization
|
|
133
|
+
|
|
134
|
+
# Get tags assigned to a specific customer org
|
|
135
|
+
wxcli partner-tags show-organizations-tags Y2lzY29zcGFyazovL3VzL09SR...
|
|
136
|
+
|
|
137
|
+
# Assign tags to a customer org (replaces existing tags)
|
|
138
|
+
wxcli partner-tags create Y2lzY29zcGFyazovL3VzL09SR... \
|
|
139
|
+
--json-body '{"tags": ["region:west", "tier:gold", "vertical:healthcare"]}'
|
|
140
|
+
|
|
141
|
+
# Find all customer orgs with specific tags
|
|
142
|
+
wxcli partner-tags show-organizations-tags-1 --tags "region:west,tier:gold" --max 50
|
|
143
|
+
|
|
144
|
+
# Assign tags to a subscription
|
|
145
|
+
wxcli partner-tags create-assign-tags Y2lzY29zcGFyazovL3VzL09SR... SUB_ID_HERE \
|
|
146
|
+
--json-body '{"tags": ["billing:annual", "support:premium"]}'
|
|
147
|
+
|
|
148
|
+
# Find subscriptions by tags
|
|
149
|
+
wxcli partner-tags show-subscriptions-tags --tags "billing:annual"
|
|
150
|
+
|
|
151
|
+
# Get details of a specific subscription
|
|
152
|
+
wxcli partner-tags show-subscriptions-organizations Y2lzY29zcGFyazovL3VzL09SR... SUB_ID_HERE
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Raw HTTP Fallback
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
# List all customer tags of a type
|
|
159
|
+
curl -s -H "Authorization: Bearer $TOKEN" \
|
|
160
|
+
"https://webexapis.com/v1/partner/tags?type=organization"
|
|
161
|
+
|
|
162
|
+
# Assign tags to a customer org
|
|
163
|
+
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
|
|
164
|
+
-H "Content-Type: application/json" \
|
|
165
|
+
-d '{"tags": ["region:west", "tier:gold"]}' \
|
|
166
|
+
"https://webexapis.com/v1/partner/tags/organizations/{orgId}/assignTags"
|
|
167
|
+
|
|
168
|
+
# Find orgs by tags (comma-separated)
|
|
169
|
+
curl -s -H "Authorization: Bearer $TOKEN" \
|
|
170
|
+
"https://webexapis.com/v1/partner/tags/organizations?tags=region:west,tier:gold&max=50"
|
|
171
|
+
|
|
172
|
+
# Assign tags to a subscription
|
|
173
|
+
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
|
|
174
|
+
-H "Content-Type: application/json" \
|
|
175
|
+
-d '{"tags": ["billing:annual"]}' \
|
|
176
|
+
"https://webexapis.com/v1/partner/tags/organizations/{orgId}/subscriptions/{subscriptionId}/assignTags"
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## 3. Partner Reports (`partner-reports`)
|
|
182
|
+
|
|
183
|
+
Generate and manage reports across all customer organizations from the partner level. Uses a template-based system: list available templates, create a report from a template with a date range, then retrieve results.
|
|
184
|
+
|
|
185
|
+
### API Endpoints
|
|
186
|
+
|
|
187
|
+
| Operation | Method | URL |
|
|
188
|
+
|-----------|--------|-----|
|
|
189
|
+
| List reports | GET | `/v1/partner/reports` |
|
|
190
|
+
| Create a report | POST | `/v1/partner/reports` |
|
|
191
|
+
| Get report details | GET | `/v1/partner/reports/{reportId}` |
|
|
192
|
+
| Delete a report | DELETE | `/v1/partner/reports/{reportId}` |
|
|
193
|
+
| List report templates | GET | `/v1/partner/reports/templates` |
|
|
194
|
+
|
|
195
|
+
### Command Reference
|
|
196
|
+
|
|
197
|
+
| Command | Description | Key Arguments |
|
|
198
|
+
|---------|-------------|---------------|
|
|
199
|
+
| `list` | List reports | `--service`, `--template-id`, `--from DATE`, `--to DATE`, `--region-id`, `--on-behalf-of-sub-partner-org-id` |
|
|
200
|
+
| `create` | Create a report | `--template-id` (required), `--start-date` (required), `--end-date` (required), `--region-id` |
|
|
201
|
+
| `show` | Get report details | `REPORT_ID` (required) |
|
|
202
|
+
| `delete` | Delete a report | `REPORT_ID` (required), `--force` |
|
|
203
|
+
| `list-templates` | List available report templates | `--on-behalf-of-sub-partner-org-id` |
|
|
204
|
+
|
|
205
|
+
### CLI Examples
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
# List available partner report templates
|
|
209
|
+
wxcli partner-reports list-templates
|
|
210
|
+
|
|
211
|
+
# List templates on behalf of a sub-partner
|
|
212
|
+
wxcli partner-reports list-templates --on-behalf-of-sub-partner-org-id Y2lzY29zcGFyazovL3Vz...
|
|
213
|
+
|
|
214
|
+
# Create a report from a template
|
|
215
|
+
wxcli partner-reports create \
|
|
216
|
+
--template-id TEMPLATE_ID \
|
|
217
|
+
--start-date 2026-01-01 \
|
|
218
|
+
--end-date 2026-01-31
|
|
219
|
+
|
|
220
|
+
# Create a report scoped to a region
|
|
221
|
+
wxcli partner-reports create \
|
|
222
|
+
--template-id TEMPLATE_ID \
|
|
223
|
+
--start-date 2026-01-01 \
|
|
224
|
+
--end-date 2026-01-31 \
|
|
225
|
+
--region-id us-east
|
|
226
|
+
|
|
227
|
+
# List all reports
|
|
228
|
+
wxcli partner-reports list
|
|
229
|
+
|
|
230
|
+
# List reports filtered by service and date range
|
|
231
|
+
wxcli partner-reports list --service calling --from 2026-01-01 --to 2026-02-01
|
|
232
|
+
|
|
233
|
+
# Get report details (includes download URL when complete)
|
|
234
|
+
wxcli partner-reports show REPORT_ID
|
|
235
|
+
|
|
236
|
+
# Delete a report
|
|
237
|
+
wxcli partner-reports delete REPORT_ID --force
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### Raw HTTP Fallback
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
# List report templates
|
|
244
|
+
curl -s -H "Authorization: Bearer $TOKEN" \
|
|
245
|
+
"https://webexapis.com/v1/partner/reports/templates"
|
|
246
|
+
|
|
247
|
+
# Create a report
|
|
248
|
+
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
|
|
249
|
+
-H "Content-Type: application/json" \
|
|
250
|
+
-d '{"templateId": "TEMPLATE_ID", "startDate": "2026-01-01", "endDate": "2026-01-31"}' \
|
|
251
|
+
"https://webexapis.com/v1/partner/reports"
|
|
252
|
+
|
|
253
|
+
# Get report details
|
|
254
|
+
curl -s -H "Authorization: Bearer $TOKEN" \
|
|
255
|
+
"https://webexapis.com/v1/partner/reports/{reportId}"
|
|
256
|
+
|
|
257
|
+
# List reports with filters
|
|
258
|
+
curl -s -H "Authorization: Bearer $TOKEN" \
|
|
259
|
+
"https://webexapis.com/v1/partner/reports?service=calling&from=2026-01-01&to=2026-02-01"
|
|
260
|
+
|
|
261
|
+
# Delete a report
|
|
262
|
+
curl -s -X DELETE -H "Authorization: Bearer $TOKEN" \
|
|
263
|
+
"https://webexapis.com/v1/partner/reports/{reportId}"
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### Response Keys
|
|
267
|
+
|
|
268
|
+
The `list` command extracts items from the `Report Attributes` key in the API response. The `list-templates` command extracts from the `Template Collection` key. Use `-o json` to see the full raw response if the table output is empty.
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## Recipes
|
|
273
|
+
|
|
274
|
+
### List all customer orgs managed by this partner
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
# Get all customer orgs (paginated, default table output)
|
|
278
|
+
wxcli partner-admins list -o json
|
|
279
|
+
|
|
280
|
+
# Get orgs managed by a specific partner admin
|
|
281
|
+
wxcli partner-admins list --managed-by PARTNER_ADMIN_PERSON_ID -o json
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### Assign a partner admin to a new customer org
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
# 1. Get the partner admin's person ID (from partner org's people list)
|
|
288
|
+
wxcli people list --display-name "Jane Partner" -o json
|
|
289
|
+
|
|
290
|
+
# 2. Assign them to the customer org
|
|
291
|
+
wxcli partner-admins create CUSTOMER_ORG_ID PARTNER_ADMIN_PERSON_ID
|
|
292
|
+
|
|
293
|
+
# 3. Verify the assignment
|
|
294
|
+
wxcli partner-admins list-partner-admins CUSTOMER_ORG_ID
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### Tag customers by region and tier
|
|
298
|
+
|
|
299
|
+
```bash
|
|
300
|
+
# Tag customer orgs for portfolio management
|
|
301
|
+
wxcli partner-tags create ORG_ID_WEST_1 \
|
|
302
|
+
--json-body '{"tags": ["region:west", "tier:gold", "vertical:finance"]}'
|
|
303
|
+
|
|
304
|
+
wxcli partner-tags create ORG_ID_EAST_1 \
|
|
305
|
+
--json-body '{"tags": ["region:east", "tier:silver", "vertical:retail"]}'
|
|
306
|
+
|
|
307
|
+
# Find all gold-tier customers
|
|
308
|
+
wxcli partner-tags show-organizations-tags-1 --tags "tier:gold"
|
|
309
|
+
|
|
310
|
+
# Find all west-region finance customers
|
|
311
|
+
wxcli partner-tags show-organizations-tags-1 --tags "region:west,vertical:finance"
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### Generate a partner-level report
|
|
315
|
+
|
|
316
|
+
```bash
|
|
317
|
+
# 1. List available templates to find the right one
|
|
318
|
+
wxcli partner-reports list-templates -o json
|
|
319
|
+
|
|
320
|
+
# 2. Create a monthly report
|
|
321
|
+
wxcli partner-reports create \
|
|
322
|
+
--template-id TEMPLATE_ID \
|
|
323
|
+
--start-date 2026-02-01 \
|
|
324
|
+
--end-date 2026-03-01
|
|
325
|
+
|
|
326
|
+
# 3. Check report status (reports are generated asynchronously)
|
|
327
|
+
wxcli partner-reports show REPORT_ID
|
|
328
|
+
|
|
329
|
+
# 4. When status shows complete, the response includes a download URL
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
## Gotchas
|
|
335
|
+
|
|
336
|
+
1. **Partner-level token required.** All three command groups (`partner-admins`, `partner-tags`, `partner-reports`) require authentication as a partner administrator. A standard org admin token or a service app token scoped to a single org will return 403 or 401 errors.
|
|
337
|
+
|
|
338
|
+
2. **`show-organizations-tags-1` is a generator artifact.** The `-1` suffix exists because the OpenAPI spec has two endpoints on `/v1/partner/tags/organizations` -- one for getting a specific org's tags (by path parameter) and one for querying orgs by tags (by query parameter). The generator disambiguated them with the `-1` suffix. The command works correctly despite the awkward name.
|
|
339
|
+
|
|
340
|
+
3. **`show-subscriptions-organizations` name is misleading.** Despite the name, this command fetches a single subscription's details (given an org ID and subscription ID), not a list of organizations. The name comes from the URL path structure `/organizations/{orgId}/subscriptions/{subscriptionId}`.
|
|
341
|
+
|
|
342
|
+
4. **Tag create commands replace, not append.** Both `partner-tags create` and `partner-tags create-assign-tags` replace all existing tags with the provided list. To add a tag, you must first read the current tags, add the new one to the list, and write the full set back. Passing an empty array (`[]`) removes all tags from the org. Once a tag is unassigned from its last customer org, it is automatically removed from the API listing.
|
|
343
|
+
|
|
344
|
+
5. **`partner-reports` vs `reports`.** The `partner-reports` group (at `/v1/partner/reports`) is for partner-level cross-org reporting. The separate `reports` group (at `/v1/reports`) is for single-org reports. They use different API endpoints, different templates, and different scopes. Do not confuse them.
|
|
345
|
+
|
|
346
|
+
6. **Report generation is asynchronous.** After `partner-reports create`, the report is queued for generation. Poll with `partner-reports show REPORT_ID` until the status indicates completion. The completed response includes a download URL for the CSV/report file.
|
|
347
|
+
|
|
348
|
+
7. **Response key extraction.** The `partner-reports list` command looks for results under the `Report Attributes` key, and `list-templates` looks under `Template Collection`. If the API changes these keys, the table output will appear empty. Use `-o json` to see the raw response.
|
|
349
|
+
|
|
350
|
+
8. **`--type` parameter on `partner-tags show`.** This parameter is required but the valid values are not enumerated in the OpenAPI spec. The spec provides `ORGANIZATION` (uppercase) as the example value. The endpoint requires partner admin privileges — a standard org admin token gets 403 Forbidden for all values tested (`ORGANIZATION`, `SUBSCRIPTION`, `organization`). Both `ORGANIZATION` and `SUBSCRIPTION` are confirmed valid type values per the live API reference. <!-- Partially verified via live API 2026-03-19: all values return 403 with org admin token (partner admin required). No 400 "invalid type" error observed for ORGANIZATION or SUBSCRIPTION. -->
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
## See Also
|
|
355
|
+
|
|
356
|
+
- [reporting-analytics.md](reporting-analytics.md) -- For org-level report templates, CDR, call quality, and queue/AA statistics (single-org scope).
|
|
357
|
+
- [authentication.md](authentication.md) -- Auth methods, token types, and scopes.
|