extremecloudiq-api 24.6.0.74__py3-none-any.whl → 25.2.0.123__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.
- extremecloudiq/__init__.py +7 -749
- extremecloudiq/api_client.py +1319 -486
- extremecloudiq/apis/__init__.py +3 -0
- extremecloudiq/apis/path_to_api.py +1226 -0
- extremecloudiq/apis/paths/__init__.py +3 -0
- extremecloudiq/apis/paths/account_external.py +7 -0
- extremecloudiq/apis/paths/account_home.py +7 -0
- extremecloudiq/apis/paths/account_switch.py +7 -0
- extremecloudiq/apis/paths/account_third_party_applications.py +7 -0
- extremecloudiq/apis/paths/account_vhm_setting.py +7 -0
- extremecloudiq/apis/paths/account_vhm_setting_id.py +7 -0
- extremecloudiq/apis/paths/account_vhm_status.py +7 -0
- extremecloudiq/apis/paths/account_viq.py +7 -0
- extremecloudiq/apis/paths/account_viq_backup.py +7 -0
- extremecloudiq/apis/paths/account_viq_default_device_password.py +9 -0
- extremecloudiq/apis/paths/account_viq_download.py +7 -0
- extremecloudiq/apis/paths/account_viq_export.py +7 -0
- extremecloudiq/apis/paths/account_viq_export_import_status.py +7 -0
- extremecloudiq/apis/paths/account_viq_import.py +7 -0
- extremecloudiq/apis/paths/account_viq_reset.py +7 -0
- extremecloudiq/apis/paths/acct_api_token.py +9 -0
- extremecloudiq/apis/paths/acct_api_token_delete.py +7 -0
- extremecloudiq/apis/paths/acct_api_token_export.py +7 -0
- extremecloudiq/apis/paths/acct_api_token_id.py +9 -0
- extremecloudiq/apis/paths/ad_servers.py +7 -0
- extremecloudiq/apis/paths/afcserver.py +7 -0
- extremecloudiq/apis/paths/afcserver_server_id.py +7 -0
- extremecloudiq/apis/paths/afcserver_statistics_server_id.py +7 -0
- extremecloudiq/apis/paths/alert_policies.py +9 -0
- extremecloudiq/apis/paths/alert_policies_available_sites.py +7 -0
- extremecloudiq/apis/paths/alert_policies_id.py +11 -0
- extremecloudiq/apis/paths/alert_policies_policy_id_rules_rule_id.py +9 -0
- extremecloudiq/apis/paths/alert_policies_policy_id_rules_rule_id_disable.py +7 -0
- extremecloudiq/apis/paths/alert_policies_policy_id_rules_rule_id_enable.py +7 -0
- extremecloudiq/apis/paths/alert_subscriptions_emails.py +9 -0
- extremecloudiq/apis/paths/alert_subscriptions_emails_delete.py +7 -0
- extremecloudiq/apis/paths/alert_subscriptions_emails_id.py +11 -0
- extremecloudiq/apis/paths/alert_subscriptions_emails_id_verify.py +7 -0
- extremecloudiq/apis/paths/alert_subscriptions_servicenow.py +9 -0
- extremecloudiq/apis/paths/alert_subscriptions_servicenow_delete.py +7 -0
- extremecloudiq/apis/paths/alert_subscriptions_servicenow_id.py +11 -0
- extremecloudiq/apis/paths/alert_subscriptions_webhooks.py +9 -0
- extremecloudiq/apis/paths/alert_subscriptions_webhooks_delete.py +7 -0
- extremecloudiq/apis/paths/alert_subscriptions_webhooks_id.py +11 -0
- extremecloudiq/apis/paths/alerts.py +7 -0
- extremecloudiq/apis/paths/alerts_acknowledge.py +7 -0
- extremecloudiq/apis/paths/alerts_count_by_group.py +7 -0
- extremecloudiq/apis/paths/alerts_reports.py +7 -0
- extremecloudiq/apis/paths/alerts_reports_id.py +7 -0
- extremecloudiq/apis/paths/ap_afc_diagnostics_id.py +7 -0
- extremecloudiq/apis/paths/ap_afc_interface_details_sn.py +7 -0
- extremecloudiq/apis/paths/ap_spectrum_.py +7 -0
- extremecloudiq/apis/paths/applications.py +7 -0
- extremecloudiq/apis/paths/applications_id_clients_topn.py +7 -0
- extremecloudiq/apis/paths/applications_topn.py +7 -0
- extremecloudiq/apis/paths/aps_afc_query_.py +7 -0
- extremecloudiq/apis/paths/aps_afc_update.py +7 -0
- extremecloudiq/apis/paths/auth_apitoken.py +7 -0
- extremecloudiq/apis/paths/auth_apitoken_info.py +7 -0
- extremecloudiq/apis/paths/auth_apitoken_validate.py +7 -0
- extremecloudiq/apis/paths/auth_permissions.py +7 -0
- extremecloudiq/apis/paths/auth_permissions_check.py +7 -0
- extremecloudiq/apis/paths/backup_history_delete.py +7 -0
- extremecloudiq/apis/paths/backup_history_grid.py +7 -0
- extremecloudiq/apis/paths/backup_history_restore.py +7 -0
- extremecloudiq/apis/paths/ccgs.py +9 -0
- extremecloudiq/apis/paths/ccgs_id.py +11 -0
- extremecloudiq/apis/paths/certificates.py +7 -0
- extremecloudiq/apis/paths/classification_rules.py +9 -0
- extremecloudiq/apis/paths/classification_rules_id.py +11 -0
- extremecloudiq/apis/paths/client_details_overview_chart_data_client_id.py +7 -0
- extremecloudiq/apis/paths/client_details_overview_info_client_id.py +7 -0
- extremecloudiq/apis/paths/client_monitor_profiles.py +9 -0
- extremecloudiq/apis/paths/client_monitor_profiles_id.py +11 -0
- extremecloudiq/apis/paths/clients_active.py +7 -0
- extremecloudiq/apis/paths/clients_active_count.py +7 -0
- extremecloudiq/apis/paths/clients_alias.py +7 -0
- extremecloudiq/apis/paths/clients_by_mac_client_mac.py +9 -0
- extremecloudiq/apis/paths/clients_id.py +7 -0
- extremecloudiq/apis/paths/clients_summary.py +7 -0
- extremecloudiq/apis/paths/clients_usage.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_adverse_traffic_device_stats.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_adverse_traffic_packet_counts.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_anomalies_by_category.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_devices_by_location.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_devices_feedback.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_devices_update_action.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_devices_with_locations.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_dfs_recurrence_channel_stats.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_dfs_recurrence_count_stats.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_exclude_vlans.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_exclude_vlans_csv.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_excluded_vlans_list.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_hardware_health_client_list.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_hardware_health_cpu_mem_stats.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_hardware_health_stats.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_locations.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_missing_vlan_count.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_notifications.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_poeflapping_lldp_cdp_info.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_poeflapping_stats.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_poeflapping_trends.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_port_efficiency_speed_duplex_stats.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_port_efficiency_stats.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_report.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_update_action.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_update_device_action.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_wifi_capacity_client_list.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_wifi_capacity_stats.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_wifi_efficiency_client_list.py +7 -0
- extremecloudiq/apis/paths/copilot_anomalies_wifi_efficiency_stats.py +7 -0
- extremecloudiq/apis/paths/copilot_assurance_scans_overview.py +7 -0
- extremecloudiq/apis/paths/copilot_connectivity_client_type.py +7 -0
- extremecloudiq/apis/paths/copilot_connectivity_locations.py +7 -0
- extremecloudiq/apis/paths/copilot_connectivity_wired_events.py +7 -0
- extremecloudiq/apis/paths/copilot_connectivity_wired_experience.py +7 -0
- extremecloudiq/apis/paths/copilot_connectivity_wired_hardware.py +7 -0
- extremecloudiq/apis/paths/copilot_connectivity_wired_locations_hardware.py +7 -0
- extremecloudiq/apis/paths/copilot_connectivity_wired_quality_index.py +7 -0
- extremecloudiq/apis/paths/copilot_connectivity_wireless_apps.py +7 -0
- extremecloudiq/apis/paths/copilot_connectivity_wireless_events.py +7 -0
- extremecloudiq/apis/paths/copilot_connectivity_wireless_experience.py +7 -0
- extremecloudiq/apis/paths/copilot_connectivity_wireless_locations_events.py +7 -0
- extremecloudiq/apis/paths/copilot_connectivity_wireless_locations_performance.py +7 -0
- extremecloudiq/apis/paths/copilot_connectivity_wireless_locations_quality_index.py +7 -0
- extremecloudiq/apis/paths/copilot_connectivity_wireless_locations_time_to_connect.py +7 -0
- extremecloudiq/apis/paths/copilot_connectivity_wireless_performance.py +7 -0
- extremecloudiq/apis/paths/copilot_connectivity_wireless_quality_index.py +7 -0
- extremecloudiq/apis/paths/copilot_connectivity_wireless_time_to_connect.py +7 -0
- extremecloudiq/apis/paths/copilot_connectivity_wireless_views.py +7 -0
- extremecloudiq/apis/paths/countries.py +7 -0
- extremecloudiq/apis/paths/countries_country_alpha2_code_states.py +7 -0
- extremecloudiq/apis/paths/countries_country_code_validate.py +7 -0
- extremecloudiq/apis/paths/credential_distribution_groups.py +11 -0
- extremecloudiq/apis/paths/credential_distribution_groups_id.py +7 -0
- extremecloudiq/apis/paths/cwps.py +7 -0
- extremecloudiq/apis/paths/d360_client_graph.py +7 -0
- extremecloudiq/apis/paths/d360_client_grid.py +7 -0
- extremecloudiq/apis/paths/d360_client_grid_metadata.py +7 -0
- extremecloudiq/apis/paths/d360_client_stats.py +7 -0
- extremecloudiq/apis/paths/d360_device_interfaces.py +7 -0
- extremecloudiq/apis/paths/d360_device_issues.py +7 -0
- extremecloudiq/apis/paths/d360_device_metadata.py +7 -0
- extremecloudiq/apis/paths/d360_device_stats.py +7 -0
- extremecloudiq/apis/paths/d360_overview_devices_summary.py +7 -0
- extremecloudiq/apis/paths/d360_ssid_metadata.py +7 -0
- extremecloudiq/apis/paths/d360_wireless_interfaces_graph.py +7 -0
- extremecloudiq/apis/paths/d360_wireless_interfaces_stats.py +7 -0
- extremecloudiq/apis/paths/d360_wireless_surrounding_aps.py +7 -0
- extremecloudiq/apis/paths/dashboard_alerts.py +7 -0
- extremecloudiq/apis/paths/dashboard_assets.py +7 -0
- extremecloudiq/apis/paths/dashboard_clients.py +7 -0
- extremecloudiq/apis/paths/dashboard_device_types.py +7 -0
- extremecloudiq/apis/paths/dashboard_devices.py +7 -0
- extremecloudiq/apis/paths/dashboard_export.py +7 -0
- extremecloudiq/apis/paths/dashboard_sites_with_issues.py +7 -0
- extremecloudiq/apis/paths/dashboard_usage_capacity.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_client_health_connectivity_issues.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_client_health_export.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_client_health_filter_metadata.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_client_health_frequency_distribution.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_client_health_grid.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_client_health_issue_association.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_client_health_issue_authentication.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_client_health_issue_ipaddress.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_client_health_issue_roaming.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_client_health_roaming_issues.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_dashboard_criteria.py +9 -0
- extremecloudiq/apis/paths/dashboard_wireless_device_health_export.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_device_health_grid.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_device_health_issues_cpu_usage_issues.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_device_health_issues_memory_usage_issues.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_device_health_issues_poe_usage_issues.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_device_health_reboot_summary.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_device_health_summary.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_usage_capacity_excessive_packet_loss.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_usage_capacity_excessive_retries.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_usage_capacity_excessive_utilization.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_usage_capacity_export.py +7 -0
- extremecloudiq/apis/paths/dashboard_wireless_usage_capacity_grid.py +7 -0
- extremecloudiq/apis/paths/deployments.py +9 -0
- extremecloudiq/apis/paths/deployments_deployment_id.py +11 -0
- extremecloudiq/apis/paths/deployments_deployment_id_status.py +7 -0
- extremecloudiq/apis/paths/deployments_firmware_metadatas.py +7 -0
- extremecloudiq/apis/paths/deployments_overview.py +7 -0
- extremecloudiq/apis/paths/deployments_status.py +7 -0
- extremecloudiq/apis/paths/devices.py +7 -0
- extremecloudiq/apis/paths/devices_advanced_onboard.py +7 -0
- extremecloudiq/apis/paths/devices_check_ownership.py +7 -0
- extremecloudiq/apis/paths/devices_cli.py +7 -0
- extremecloudiq/apis/paths/devices_client_monitor_assign.py +7 -0
- extremecloudiq/apis/paths/devices_client_monitor_query.py +7 -0
- extremecloudiq/apis/paths/devices_client_monitor_revoke.py +7 -0
- extremecloudiq/apis/paths/devices_country_code_assign.py +7 -0
- extremecloudiq/apis/paths/devices_delete.py +7 -0
- extremecloudiq/apis/paths/devices_digital_twin.py +7 -0
- extremecloudiq/apis/paths/devices_ibeacon.py +7 -0
- extremecloudiq/apis/paths/devices_id.py +9 -0
- extremecloudiq/apis/paths/devices_id_alarms.py +7 -0
- extremecloudiq/apis/paths/devices_id_bounce_port.py +7 -0
- extremecloudiq/apis/paths/devices_id_cli.py +7 -0
- extremecloudiq/apis/paths/devices_id_client_monitor.py +11 -0
- extremecloudiq/apis/paths/devices_id_description.py +7 -0
- extremecloudiq/apis/paths/devices_id_ftm_settings.py +11 -0
- extremecloudiq/apis/paths/devices_id_gallery_image.py +7 -0
- extremecloudiq/apis/paths/devices_id_geolocation.py +7 -0
- extremecloudiq/apis/paths/devices_id_history_cpu_mem.py +7 -0
- extremecloudiq/apis/paths/devices_id_hostname.py +7 -0
- extremecloudiq/apis/paths/devices_id_ibeacon.py +7 -0
- extremecloudiq/apis/paths/devices_id_installation_report.py +7 -0
- extremecloudiq/apis/paths/devices_id_interfaces_wifi.py +7 -0
- extremecloudiq/apis/paths/devices_id_iot.py +7 -0
- extremecloudiq/apis/paths/devices_id_iot_disable.py +7 -0
- extremecloudiq/apis/paths/devices_id_iot_enable.py +7 -0
- extremecloudiq/apis/paths/devices_id_location.py +11 -0
- extremecloudiq/apis/paths/devices_id_manage.py +7 -0
- extremecloudiq/apis/paths/devices_id_monitor_refresh.py +7 -0
- extremecloudiq/apis/paths/devices_id_monitor_refresh_status.py +7 -0
- extremecloudiq/apis/paths/devices_id_network_policy.py +11 -0
- extremecloudiq/apis/paths/devices_id_radio_operating_mode.py +9 -0
- extremecloudiq/apis/paths/devices_id_reboot.py +7 -0
- extremecloudiq/apis/paths/devices_id_reset.py +7 -0
- extremecloudiq/apis/paths/devices_id_ssid_override.py +7 -0
- extremecloudiq/apis/paths/devices_id_ssid_status.py +7 -0
- extremecloudiq/apis/paths/devices_id_ssid_status_change.py +7 -0
- extremecloudiq/apis/paths/devices_id_thread_commissioner_start.py +7 -0
- extremecloudiq/apis/paths/devices_id_thread_commissioner_stop.py +7 -0
- extremecloudiq/apis/paths/devices_id_unmanage.py +7 -0
- extremecloudiq/apis/paths/devices_id_visible.py +7 -0
- extremecloudiq/apis/paths/devices_location_assign.py +7 -0
- extremecloudiq/apis/paths/devices_location_query.py +7 -0
- extremecloudiq/apis/paths/devices_location_revoke.py +7 -0
- extremecloudiq/apis/paths/devices_manage.py +7 -0
- extremecloudiq/apis/paths/devices_network_policy_assign.py +7 -0
- extremecloudiq/apis/paths/devices_network_policy_policy_id.py +7 -0
- extremecloudiq/apis/paths/devices_network_policy_query.py +7 -0
- extremecloudiq/apis/paths/devices_network_policy_revoke.py +7 -0
- extremecloudiq/apis/paths/devices_onboard.py +7 -0
- extremecloudiq/apis/paths/devices_os_change.py +7 -0
- extremecloudiq/apis/paths/devices_radio_information.py +7 -0
- extremecloudiq/apis/paths/devices_radius_proxy_assign.py +7 -0
- extremecloudiq/apis/paths/devices_radius_proxy_revoke.py +7 -0
- extremecloudiq/apis/paths/devices_reboot.py +7 -0
- extremecloudiq/apis/paths/devices_rm_devices_connection_status.py +7 -0
- extremecloudiq/apis/paths/devices_rm_devices_metadata.py +7 -0
- extremecloudiq/apis/paths/devices_rm_devices_page.py +7 -0
- extremecloudiq/apis/paths/devices_rm_devices_page_export.py +7 -0
- extremecloudiq/apis/paths/devices_rm_devices_stack_stack_id.py +7 -0
- extremecloudiq/apis/paths/devices_stats.py +7 -0
- extremecloudiq/apis/paths/devices_unmanage.py +7 -0
- extremecloudiq/apis/paths/email_templates.py +7 -0
- extremecloudiq/apis/paths/endusers.py +9 -0
- extremecloudiq/apis/paths/endusers_id.py +9 -0
- extremecloudiq/apis/paths/endusers_id_regenerate_password.py +7 -0
- extremecloudiq/apis/paths/essentials_eloc_clients_client_mac_last_known_location.py +7 -0
- extremecloudiq/apis/paths/geo_view.py +7 -0
- extremecloudiq/apis/paths/hiq_context.py +9 -0
- extremecloudiq/apis/paths/hiq_context_creating.py +9 -0
- extremecloudiq/apis/paths/hiq_context_reading.py +9 -0
- extremecloudiq/apis/paths/hiq_organizations.py +9 -0
- extremecloudiq/apis/paths/hiq_organizations_id.py +7 -0
- extremecloudiq/apis/paths/hiq_organizations_id_rename.py +7 -0
- extremecloudiq/apis/paths/hiq_status.py +7 -0
- extremecloudiq/apis/paths/hotspot_profiles.py +9 -0
- extremecloudiq/apis/paths/hotspot_profiles_id.py +11 -0
- extremecloudiq/apis/paths/hotspot_service_provider_profiles.py +9 -0
- extremecloudiq/apis/paths/hotspot_service_provider_profiles_id.py +11 -0
- extremecloudiq/apis/paths/iot_profiles.py +9 -0
- extremecloudiq/apis/paths/iot_profiles_id.py +11 -0
- extremecloudiq/apis/paths/ip_firewall_policies.py +9 -0
- extremecloudiq/apis/paths/ip_firewall_policies_id.py +11 -0
- extremecloudiq/apis/paths/ip_firewall_policies_id_ip_firewall_rule_attach.py +7 -0
- extremecloudiq/apis/paths/ip_firewall_policies_id_ip_firewall_rule_detach.py +7 -0
- extremecloudiq/apis/paths/l3_address_profiles.py +9 -0
- extremecloudiq/apis/paths/l3_address_profiles_id.py +11 -0
- extremecloudiq/apis/paths/ldap_servers.py +9 -0
- extremecloudiq/apis/paths/ldap_servers_id.py +11 -0
- extremecloudiq/apis/paths/locations.py +7 -0
- extremecloudiq/apis/paths/locations_building.py +9 -0
- extremecloudiq/apis/paths/locations_building_id.py +11 -0
- extremecloudiq/apis/paths/locations_floor.py +9 -0
- extremecloudiq/apis/paths/locations_floor_id.py +11 -0
- extremecloudiq/apis/paths/locations_floorplan.py +7 -0
- extremecloudiq/apis/paths/locations_id.py +9 -0
- extremecloudiq/apis/paths/locations_import_ekahau.py +7 -0
- extremecloudiq/apis/paths/locations_init.py +7 -0
- extremecloudiq/apis/paths/locations_site.py +9 -0
- extremecloudiq/apis/paths/locations_site_id.py +11 -0
- extremecloudiq/apis/paths/locations_tree.py +7 -0
- extremecloudiq/apis/paths/locations_tree_devices.py +7 -0
- extremecloudiq/apis/paths/locations_tree_maps.py +7 -0
- extremecloudiq/apis/paths/login.py +7 -0
- extremecloudiq/apis/paths/logout.py +7 -0
- extremecloudiq/apis/paths/logs_accounting.py +7 -0
- extremecloudiq/apis/paths/logs_audit.py +7 -0
- extremecloudiq/apis/paths/logs_audit_full_descriptions_id.py +7 -0
- extremecloudiq/apis/paths/logs_audit_reports.py +7 -0
- extremecloudiq/apis/paths/logs_audit_reports_id.py +7 -0
- extremecloudiq/apis/paths/logs_auth.py +7 -0
- extremecloudiq/apis/paths/logs_credential.py +7 -0
- extremecloudiq/apis/paths/logs_email.py +7 -0
- extremecloudiq/apis/paths/logs_sms.py +7 -0
- extremecloudiq/apis/paths/mac_firewall_policies.py +9 -0
- extremecloudiq/apis/paths/mac_firewall_policies_id.py +11 -0
- extremecloudiq/apis/paths/mac_firewall_policies_id_mac_firewall_rule_attach.py +7 -0
- extremecloudiq/apis/paths/mac_firewall_policies_id_mac_firewall_rule_detach.py +7 -0
- extremecloudiq/apis/paths/mac_object_profiles.py +9 -0
- extremecloudiq/apis/paths/mac_object_profiles_id.py +11 -0
- extremecloudiq/apis/paths/network_policies.py +9 -0
- extremecloudiq/apis/paths/network_policies_id.py +11 -0
- extremecloudiq/apis/paths/network_policies_id_ssids.py +7 -0
- extremecloudiq/apis/paths/network_policies_id_ssids_add.py +7 -0
- extremecloudiq/apis/paths/network_policies_id_ssids_remove.py +7 -0
- extremecloudiq/apis/paths/network_scorecard_client_health_location_id.py +7 -0
- extremecloudiq/apis/paths/network_scorecard_device_health_location_id.py +7 -0
- extremecloudiq/apis/paths/network_scorecard_network_health_location_id.py +7 -0
- extremecloudiq/apis/paths/network_scorecard_services_health_location_id.py +7 -0
- extremecloudiq/apis/paths/network_scorecard_wifi_health_location_id.py +7 -0
- extremecloudiq/apis/paths/network_services.py +9 -0
- extremecloudiq/apis/paths/network_services_id.py +7 -0
- extremecloudiq/apis/paths/nos_device_device_id_nos_api.py +7 -0
- extremecloudiq/apis/paths/operations_operation_id.py +9 -0
- extremecloudiq/apis/paths/operations_operation_id_cancel.py +7 -0
- extremecloudiq/apis/paths/packetcaptures.py +9 -0
- extremecloudiq/apis/paths/packetcaptures_files.py +7 -0
- extremecloudiq/apis/paths/packetcaptures_id.py +9 -0
- extremecloudiq/apis/paths/packetcaptures_id_stop.py +7 -0
- extremecloudiq/apis/paths/packetcaptures_id_upload.py +7 -0
- extremecloudiq/apis/paths/pcgs_key_based.py +9 -0
- extremecloudiq/apis/paths/pcgs_key_based_network_policy_policy_id.py +7 -0
- extremecloudiq/apis/paths/pcgs_key_based_network_policy_policy_id_keys_email.py +7 -0
- extremecloudiq/apis/paths/pcgs_key_based_network_policy_policy_id_keys_generate.py +7 -0
- extremecloudiq/apis/paths/pcgs_key_based_network_policy_policy_id_onboard.py +7 -0
- extremecloudiq/apis/paths/pcgs_key_based_network_policy_policy_id_port_assignments.py +9 -0
- extremecloudiq/apis/paths/pcgs_key_based_network_policy_policy_id_users.py +13 -0
- extremecloudiq/apis/paths/radio_operating_modes_product_type.py +7 -0
- extremecloudiq/apis/paths/radio_profiles.py +9 -0
- extremecloudiq/apis/paths/radio_profiles_channel_selection_id.py +9 -0
- extremecloudiq/apis/paths/radio_profiles_id.py +11 -0
- extremecloudiq/apis/paths/radio_profiles_mac_ouis.py +9 -0
- extremecloudiq/apis/paths/radio_profiles_mac_ouis_id.py +11 -0
- extremecloudiq/apis/paths/radio_profiles_miscellaneous_id.py +9 -0
- extremecloudiq/apis/paths/radio_profiles_neighborhood_analysis_id.py +9 -0
- extremecloudiq/apis/paths/radio_profiles_radio_usage_opt_id.py +9 -0
- extremecloudiq/apis/paths/radio_profiles_sensor_scan_id.py +9 -0
- extremecloudiq/apis/paths/radio_profiles_wmm_qos_id.py +9 -0
- extremecloudiq/apis/paths/radius_client_objects.py +9 -0
- extremecloudiq/apis/paths/radius_client_objects_id.py +11 -0
- extremecloudiq/apis/paths/radius_proxies.py +9 -0
- extremecloudiq/apis/paths/radius_proxies_devices.py +7 -0
- extremecloudiq/apis/paths/radius_proxies_id.py +11 -0
- extremecloudiq/apis/paths/radius_servers_external.py +9 -0
- extremecloudiq/apis/paths/radius_servers_external_id.py +11 -0
- extremecloudiq/apis/paths/radius_servers_internal.py +11 -0
- extremecloudiq/apis/paths/radius_servers_internal_devices.py +7 -0
- extremecloudiq/apis/paths/radius_servers_internal_id.py +11 -0
- extremecloudiq/apis/paths/rtts.py +7 -0
- extremecloudiq/apis/paths/rtts_id.py +7 -0
- extremecloudiq/apis/paths/site_afc_schedule.py +11 -0
- extremecloudiq/apis/paths/site_spectrum_.py +7 -0
- extremecloudiq/apis/paths/sms_templates.py +7 -0
- extremecloudiq/apis/paths/ssids.py +7 -0
- extremecloudiq/apis/paths/ssids_advanced_settings_id.py +9 -0
- extremecloudiq/apis/paths/ssids_id_client_monitor_profile_attach.py +7 -0
- extremecloudiq/apis/paths/ssids_id_cwp_attach.py +7 -0
- extremecloudiq/apis/paths/ssids_id_cwp_disable.py +7 -0
- extremecloudiq/apis/paths/ssids_id_cwp_enable.py +7 -0
- extremecloudiq/apis/paths/ssids_id_mode_dot1x.py +7 -0
- extremecloudiq/apis/paths/ssids_id_mode_open.py +7 -0
- extremecloudiq/apis/paths/ssids_id_mode_ppsk.py +7 -0
- extremecloudiq/apis/paths/ssids_id_mode_psk.py +7 -0
- extremecloudiq/apis/paths/ssids_id_mode_wep.py +7 -0
- extremecloudiq/apis/paths/ssids_id_psk_password.py +7 -0
- extremecloudiq/apis/paths/ssids_id_radius_client_profile_attach.py +7 -0
- extremecloudiq/apis/paths/ssids_id_radius_server_group_attach.py +7 -0
- extremecloudiq/apis/paths/ssids_id_rename.py +7 -0
- extremecloudiq/apis/paths/ssids_id_user_profile_assignment_attach.py +7 -0
- extremecloudiq/apis/paths/ssids_id_user_profile_attach.py +7 -0
- extremecloudiq/apis/paths/subscriptions_webhook.py +9 -0
- extremecloudiq/apis/paths/subscriptions_webhook_delete.py +7 -0
- extremecloudiq/apis/paths/subscriptions_webhook_export.py +7 -0
- extremecloudiq/apis/paths/subscriptions_webhook_id.py +7 -0
- extremecloudiq/apis/paths/third_party_api_connection.py +11 -0
- extremecloudiq/apis/paths/thread_networks.py +7 -0
- extremecloudiq/apis/paths/thread_routers.py +7 -0
- extremecloudiq/apis/paths/thread_topology.py +7 -0
- extremecloudiq/apis/paths/tunnel_concentrators.py +9 -0
- extremecloudiq/apis/paths/tunnel_concentrators_id.py +11 -0
- extremecloudiq/apis/paths/ucp_id_engines_installed.py +7 -0
- extremecloudiq/apis/paths/user_profile_assignments.py +9 -0
- extremecloudiq/apis/paths/user_profile_assignments_id.py +9 -0
- extremecloudiq/apis/paths/user_profiles.py +9 -0
- extremecloudiq/apis/paths/user_profiles_id.py +11 -0
- extremecloudiq/apis/paths/user_profiles_id_ip_firewall_policies_attach.py +7 -0
- extremecloudiq/apis/paths/user_profiles_id_ip_firewall_policies_detach.py +7 -0
- extremecloudiq/apis/paths/user_profiles_id_mac_firewall_policies_attach.py +7 -0
- extremecloudiq/apis/paths/user_profiles_id_mac_firewall_policies_detach.py +7 -0
- extremecloudiq/apis/paths/usergroups.py +9 -0
- extremecloudiq/apis/paths/usergroups_id.py +9 -0
- extremecloudiq/apis/paths/usergroups_unique.py +7 -0
- extremecloudiq/apis/paths/users.py +9 -0
- extremecloudiq/apis/paths/users_external.py +9 -0
- extremecloudiq/apis/paths/users_external_id.py +11 -0
- extremecloudiq/apis/paths/users_id.py +11 -0
- extremecloudiq/apis/paths/users_me.py +7 -0
- extremecloudiq/apis/paths/v1_account_viq_default_device_password.py +7 -0
- extremecloudiq/apis/paths/vlan_profiles.py +9 -0
- extremecloudiq/apis/paths/vlan_profiles_delete.py +7 -0
- extremecloudiq/apis/paths/vlan_profiles_id.py +11 -0
- extremecloudiq/apis/tag_to_api.py +134 -0
- extremecloudiq/apis/tags/__init__.py +48 -0
- extremecloudiq/apis/tags/account_api.py +62 -0
- extremecloudiq/apis/tags/administration_api.py +48 -0
- extremecloudiq/apis/tags/afc_endpoint_api.py +46 -0
- extremecloudiq/apis/tags/alert_api.py +90 -0
- extremecloudiq/apis/tags/application_api.py +28 -0
- extremecloudiq/apis/tags/authentication_api.py +26 -0
- extremecloudiq/apis/tags/authorization_api.py +32 -0
- extremecloudiq/apis/tags/client_api.py +38 -0
- extremecloudiq/apis/tags/client_details_api.py +26 -0
- extremecloudiq/apis/tags/configuration_authentication_api.py +82 -0
- extremecloudiq/apis/tags/configuration_basic_api.py +34 -0
- extremecloudiq/apis/tags/configuration_certificate_api.py +24 -0
- extremecloudiq/apis/tags/configuration_deployment_api.py +40 -0
- extremecloudiq/apis/tags/configuration_network_api.py +38 -0
- extremecloudiq/apis/tags/configuration_policy_api.py +238 -0
- extremecloudiq/apis/tags/configuration_user_management_api.py +70 -0
- extremecloudiq/apis/tags/copilot_anomalies_api.py +84 -0
- extremecloudiq/apis/tags/copilot_connectivity_experience_api.py +58 -0
- extremecloudiq/apis/tags/d360_api.py +48 -0
- extremecloudiq/apis/tags/dashboard_api.py +42 -0
- extremecloudiq/apis/tags/dashboard_wireless_client_health_api.py +42 -0
- extremecloudiq/apis/tags/dashboard_wireless_device_health_api.py +36 -0
- extremecloudiq/apis/tags/dashboard_wireless_usage_and_capacity_api.py +32 -0
- extremecloudiq/apis/tags/device_api.py +170 -0
- extremecloudiq/apis/tags/essentials_extreme_location_api.py +24 -0
- extremecloudiq/apis/tags/geo_view_api.py +24 -0
- extremecloudiq/apis/tags/hiq_api.py +44 -0
- extremecloudiq/apis/tags/location_api.py +70 -0
- extremecloudiq/apis/tags/log_api.py +40 -0
- extremecloudiq/apis/tags/misc_api.py +28 -0
- extremecloudiq/apis/tags/network_policy_api.py +38 -0
- extremecloudiq/apis/tags/network_scorecard_api.py +32 -0
- extremecloudiq/apis/tags/nos_api.py +24 -0
- extremecloudiq/apis/tags/notification_api.py +32 -0
- extremecloudiq/apis/tags/operation_api.py +28 -0
- extremecloudiq/apis/tags/packet_capture_api.py +36 -0
- extremecloudiq/apis/tags/rtts_endpoint_api.py +26 -0
- extremecloudiq/apis/tags/thread_api.py +28 -0
- extremecloudiq/apis/tags/universal_compute_platform_api.py +24 -0
- extremecloudiq/apis/tags/user_api.py +44 -0
- extremecloudiq/configuration.py +98 -47
- extremecloudiq/exceptions.py +43 -16
- extremecloudiq/model/__init__.py +5 -0
- extremecloudiq/model/client_health.py +109 -0
- extremecloudiq/model/device_health.py +111 -0
- extremecloudiq/model/essentials_eloc_last_known_location.py +101 -0
- extremecloudiq/model/geo_view_node.py +156 -0
- extremecloudiq/model/network_health.py +109 -0
- extremecloudiq/model/paged_xiq_accounting_log.py +157 -0
- extremecloudiq/model/paged_xiq_active_directory_server.py +157 -0
- extremecloudiq/model/paged_xiq_alert.py +157 -0
- extremecloudiq/model/paged_xiq_api_access_token.py +157 -0
- extremecloudiq/model/paged_xiq_application.py +157 -0
- extremecloudiq/model/paged_xiq_audit_log.py +157 -0
- extremecloudiq/model/paged_xiq_auth_log.py +157 -0
- extremecloudiq/model/paged_xiq_backup_history.py +157 -0
- extremecloudiq/model/paged_xiq_building.py +157 -0
- extremecloudiq/model/paged_xiq_certificate.py +157 -0
- extremecloudiq/model/paged_xiq_classification_rule.py +157 -0
- extremecloudiq/model/paged_xiq_client.py +157 -0
- extremecloudiq/model/paged_xiq_client_health_grid_response.py +157 -0
- extremecloudiq/model/paged_xiq_client_monitor_profile.py +157 -0
- extremecloudiq/model/paged_xiq_client_stats_grid_row.py +157 -0
- extremecloudiq/model/paged_xiq_cloud_config_group.py +157 -0
- extremecloudiq/model/paged_xiq_connectivity_experience_data.py +157 -0
- extremecloudiq/model/paged_xiq_copilot_wireless_event.py +157 -0
- extremecloudiq/model/paged_xiq_credential_distribution_group_update.py +157 -0
- extremecloudiq/model/paged_xiq_credential_log.py +157 -0
- extremecloudiq/model/paged_xiq_cwp.py +157 -0
- extremecloudiq/model/paged_xiq_deployment_details_response.py +157 -0
- extremecloudiq/model/paged_xiq_device.py +157 -0
- extremecloudiq/model/paged_xiq_device_alarm.py +157 -0
- extremecloudiq/model/paged_xiq_device_health_grid_response.py +157 -0
- extremecloudiq/model/paged_xiq_device_reboot_summary.py +157 -0
- extremecloudiq/model/paged_xiq_digital_twin_products.py +157 -0
- extremecloudiq/model/paged_xiq_email_log.py +157 -0
- extremecloudiq/model/paged_xiq_end_user.py +157 -0
- extremecloudiq/model/paged_xiq_external_radius_server.py +157 -0
- extremecloudiq/model/paged_xiq_external_user.py +157 -0
- extremecloudiq/model/paged_xiq_floor.py +157 -0
- extremecloudiq/model/paged_xiq_hotspot_profile.py +157 -0
- extremecloudiq/model/paged_xiq_hotspot_service_provider_profile.py +157 -0
- extremecloudiq/model/paged_xiq_internal_radius_device.py +157 -0
- extremecloudiq/model/paged_xiq_internal_radius_server.py +157 -0
- extremecloudiq/model/paged_xiq_iot_profile.py +157 -0
- extremecloudiq/model/paged_xiq_ip_firewall.py +157 -0
- extremecloudiq/model/paged_xiq_ldap_server.py +157 -0
- extremecloudiq/model/paged_xiq_location_tree_device.py +157 -0
- extremecloudiq/model/paged_xiq_location_tree_map.py +157 -0
- extremecloudiq/model/paged_xiq_mac_firewall.py +157 -0
- extremecloudiq/model/paged_xiq_mac_object.py +157 -0
- extremecloudiq/model/paged_xiq_network_policy.py +157 -0
- extremecloudiq/model/paged_xiq_network_service.py +157 -0
- extremecloudiq/model/paged_xiq_packet_capture.py +157 -0
- extremecloudiq/model/paged_xiq_radio_entity.py +157 -0
- extremecloudiq/model/paged_xiq_radio_profile.py +157 -0
- extremecloudiq/model/paged_xiq_radius_client_object.py +157 -0
- extremecloudiq/model/paged_xiq_radius_proxy.py +157 -0
- extremecloudiq/model/paged_xiq_rm_device.py +157 -0
- extremecloudiq/model/paged_xiq_rp_mac_oui_profile.py +157 -0
- extremecloudiq/model/paged_xiq_site.py +157 -0
- extremecloudiq/model/paged_xiq_site_dashboard_response.py +157 -0
- extremecloudiq/model/paged_xiq_sms_log.py +157 -0
- extremecloudiq/model/paged_xiq_ssid.py +157 -0
- extremecloudiq/model/paged_xiq_surrounding_aps.py +157 -0
- extremecloudiq/model/paged_xiq_thread_router.py +157 -0
- extremecloudiq/model/paged_xiq_tunnel_concentrator.py +157 -0
- extremecloudiq/model/paged_xiq_usage_capacity_grid_response.py +157 -0
- extremecloudiq/model/paged_xiq_user.py +157 -0
- extremecloudiq/model/paged_xiq_user_group.py +157 -0
- extremecloudiq/model/paged_xiq_user_profile.py +157 -0
- extremecloudiq/model/paged_xiq_user_profile_assignment.py +157 -0
- extremecloudiq/model/paged_xiq_vlan_profile.py +157 -0
- extremecloudiq/model/paged_xiq_webhook_subscription.py +157 -0
- extremecloudiq/model/paged_xiq_wired_event_entity.py +157 -0
- extremecloudiq/model/rtts_session_devices.py +173 -0
- extremecloudiq/model/services_health.py +109 -0
- extremecloudiq/model/wifi_health.py +109 -0
- extremecloudiq/model/xiq_account.py +237 -0
- extremecloudiq/model/xiq_account_mode.py +52 -0
- extremecloudiq/model/xiq_account_type.py +62 -0
- extremecloudiq/model/xiq_accounting_log.py +406 -0
- extremecloudiq/model/xiq_acknowledge_alerts_request.py +108 -0
- extremecloudiq/model/xiq_action_type.py +67 -0
- extremecloudiq/model/xiq_active_directory_server.py +285 -0
- extremecloudiq/model/xiq_active_directory_server_base_dn_fetch_mode.py +52 -0
- extremecloudiq/model/xiq_address.py +128 -0
- extremecloudiq/model/xiq_address_profile_classified_entry.py +131 -0
- extremecloudiq/model/xiq_advanced_onboard_device_request.py +298 -0
- extremecloudiq/model/xiq_advanced_onboard_device_response.py +144 -0
- extremecloudiq/model/xiq_afc_ap_detail.py +164 -0
- extremecloudiq/model/xiq_afc_ap_diagnostics.py +79 -0
- extremecloudiq/model/xiq_afc_ap_manual_spectrum.py +101 -0
- extremecloudiq/model/xiq_afc_aps_info_element.py +112 -0
- extremecloudiq/model/xiq_afc_available_spectrum.py +126 -0
- extremecloudiq/model/xiq_afc_geolocation_summary.py +89 -0
- extremecloudiq/model/xiq_afc_input_info.py +157 -0
- extremecloudiq/model/xiq_afc_server.py +114 -0
- extremecloudiq/model/xiq_afc_server_state.py +100 -0
- extremecloudiq/model/xiq_afc_server_statistics.py +128 -0
- extremecloudiq/model/xiq_afc_servers_statistics.py +106 -0
- extremecloudiq/model/xiq_afc_status_summary.py +99 -0
- extremecloudiq/model/xiq_affected_downlink_device.py +121 -0
- extremecloudiq/model/xiq_alert.py +361 -0
- extremecloudiq/model/xiq_alert_dashboard.py +111 -0
- extremecloudiq/model/xiq_alert_email_subscription.py +190 -0
- extremecloudiq/model/xiq_alert_event_rules_by_category.py +137 -0
- extremecloudiq/model/xiq_alert_group_count.py +108 -0
- extremecloudiq/model/xiq_alert_group_query.py +55 -0
- extremecloudiq/model/xiq_alert_metric_rules_by_metricset.py +137 -0
- extremecloudiq/model/xiq_alert_policy.py +225 -0
- extremecloudiq/model/xiq_alert_policy_filter.py +118 -0
- extremecloudiq/model/xiq_alert_policy_type.py +50 -0
- extremecloudiq/model/xiq_alert_report.py +86 -0
- extremecloudiq/model/xiq_alert_rule.py +234 -0
- extremecloudiq/model/xiq_alert_rule_overview.py +110 -0
- extremecloudiq/model/xiq_alert_service_now_subscription.py +174 -0
- extremecloudiq/model/xiq_alert_site.py +96 -0
- extremecloudiq/model/xiq_alert_sort_field.py +52 -0
- extremecloudiq/model/xiq_alert_source.py +111 -0
- extremecloudiq/model/xiq_alert_tag.py +116 -0
- extremecloudiq/model/xiq_alert_webhook_subscription.py +190 -0
- extremecloudiq/model/xiq_anomalies_count_vo_entity.py +176 -0
- extremecloudiq/model/xiq_anomalies_device_update_action_request.py +120 -0
- extremecloudiq/model/xiq_anomalies_feedback_request.py +120 -0
- extremecloudiq/model/xiq_anomalies_notifications_response.py +118 -0
- extremecloudiq/model/xiq_anomalies_severity_entity.py +111 -0
- extremecloudiq/model/xiq_anomalies_site_entity.py +101 -0
- extremecloudiq/model/xiq_anomalies_type_entity.py +96 -0
- extremecloudiq/model/xiq_anomalies_update_action_request.py +110 -0
- extremecloudiq/model/xiq_anomaly_affected_count.py +110 -0
- extremecloudiq/model/xiq_anomaly_device_entity.py +226 -0
- extremecloudiq/model/xiq_anomaly_device_with_location.py +357 -0
- extremecloudiq/model/xiq_anomaly_devices_by_location_response.py +122 -0
- extremecloudiq/model/xiq_anomaly_health_type.py +62 -0
- extremecloudiq/model/xiq_anomaly_hh_stats_type.py +50 -0
- extremecloudiq/model/xiq_anomaly_location_entity.py +226 -0
- extremecloudiq/model/xiq_anomaly_severity.py +60 -0
- extremecloudiq/model/xiq_anomaly_sort_field.py +75 -0
- extremecloudiq/model/xiq_anomaly_type.py +82 -0
- extremecloudiq/model/xiq_ap_coordinates.py +99 -0
- extremecloudiq/model/xiq_api_access_token.py +180 -0
- extremecloudiq/model/xiq_api_access_token_sort_field.py +55 -0
- extremecloudiq/model/xiq_api_token_info.py +198 -0
- extremecloudiq/model/xiq_application.py +207 -0
- extremecloudiq/model/xiq_application_detection_protocol.py +52 -0
- extremecloudiq/model/xiq_application_detection_rule.py +110 -0
- extremecloudiq/model/xiq_application_detection_type.py +57 -0
- extremecloudiq/model/xiq_application_service.py +116 -0
- extremecloudiq/model/xiq_application_sort_field.py +50 -0
- extremecloudiq/model/xiq_application_top_clients_usage.py +121 -0
- extremecloudiq/model/xiq_asset_dashboard.py +111 -0
- extremecloudiq/model/xiq_assign_devices_client_monitor_request.py +107 -0
- extremecloudiq/model/xiq_assign_devices_country_code_request.py +107 -0
- extremecloudiq/model/xiq_assign_devices_location_request.py +107 -0
- extremecloudiq/model/xiq_assign_devices_network_policy_request.py +103 -0
- extremecloudiq/model/xiq_assurance_scans_overview_response.py +118 -0
- extremecloudiq/model/xiq_atp_device_stats_entity.py +116 -0
- extremecloudiq/model/xiq_atp_device_stats_response.py +118 -0
- extremecloudiq/model/xiq_atp_packet_counts_entity.py +146 -0
- extremecloudiq/model/xiq_atp_packet_counts_response.py +118 -0
- extremecloudiq/model/xiq_attach_client_monitor_profile_request.py +79 -0
- extremecloudiq/model/xiq_attach_ip_firewall_policy_to_user_profile_request.py +101 -0
- extremecloudiq/model/xiq_attach_mac_firewall_policy_to_user_profile_request.py +101 -0
- extremecloudiq/model/xiq_attach_up_assignment_entry.py +91 -0
- extremecloudiq/model/xiq_attach_up_assignment_request.py +160 -0
- extremecloudiq/model/xiq_attribute_type.py +57 -0
- extremecloudiq/model/xiq_audit_log.py +191 -0
- extremecloudiq/model/xiq_audit_log_category.py +70 -0
- extremecloudiq/model/xiq_audit_log_full_descriptions.py +116 -0
- extremecloudiq/model/xiq_audit_log_report.py +86 -0
- extremecloudiq/model/xiq_audit_log_sort_field.py +47 -0
- extremecloudiq/model/xiq_auth_log.py +246 -0
- extremecloudiq/model/xiq_available_channel_info.py +143 -0
- extremecloudiq/model/xiq_backup_history.py +141 -0
- extremecloudiq/model/xiq_bounce_device_port_data.py +128 -0
- extremecloudiq/model/xiq_bounce_device_port_operation_result.py +91 -0
- extremecloudiq/model/xiq_bounce_device_port_request.py +101 -0
- extremecloudiq/model/xiq_bounce_device_port_response.py +86 -0
- extremecloudiq/model/xiq_building.py +179 -0
- extremecloudiq/model/xiq_bulk_delete_email_subscription_result.py +91 -0
- extremecloudiq/model/xiq_bulk_delete_service_now_subscription_result.py +91 -0
- extremecloudiq/model/xiq_bulk_delete_webhook_subscription_result.py +91 -0
- extremecloudiq/model/xiq_bulk_operation_result.py +50 -0
- extremecloudiq/model/xiq_capture_band_selection.py +62 -0
- extremecloudiq/model/xiq_capture_direction_selection.py +57 -0
- extremecloudiq/model/xiq_capture_filter.py +200 -0
- extremecloudiq/model/xiq_capture_identifier_type.py +57 -0
- extremecloudiq/model/xiq_capture_location.py +200 -0
- extremecloudiq/model/xiq_capture_radio_selection.py +62 -0
- extremecloudiq/model/xiq_capture_result.py +236 -0
- extremecloudiq/model/xiq_capture_stop_request.py +103 -0
- extremecloudiq/model/xiq_capture_wired_selection.py +67 -0
- extremecloudiq/model/xiq_cdg_user_groups.py +292 -0
- extremecloudiq/model/xiq_certificate.py +171 -0
- extremecloudiq/model/xiq_certificate_type.py +50 -0
- extremecloudiq/model/xiq_change_devices_ibeacon_request.py +228 -0
- extremecloudiq/model/xiq_change_devices_os_mode_request.py +122 -0
- extremecloudiq/model/xiq_channel_utilization_details.py +101 -0
- extremecloudiq/model/xiq_check_permission_request.py +96 -0
- extremecloudiq/model/xiq_check_permission_response.py +146 -0
- extremecloudiq/model/xiq_classification.py +163 -0
- extremecloudiq/model/xiq_classification_rule.py +179 -0
- extremecloudiq/model/xiq_classification_type.py +67 -0
- extremecloudiq/model/xiq_cli_output.py +113 -0
- extremecloudiq/model/xiq_cli_response_code.py +122 -0
- extremecloudiq/model/xiq_client.py +733 -0
- extremecloudiq/model/xiq_client_chart_data.py +111 -0
- extremecloudiq/model/xiq_client_chart_data_list.py +108 -0
- extremecloudiq/model/xiq_client_connection_status.py +55 -0
- extremecloudiq/model/xiq_client_detail.py +261 -0
- extremecloudiq/model/xiq_client_field.py +340 -0
- extremecloudiq/model/xiq_client_graph_data.py +109 -0
- extremecloudiq/model/xiq_client_grid_filter.py +478 -0
- extremecloudiq/model/xiq_client_health_connectivity_issues.py +111 -0
- extremecloudiq/model/xiq_client_health_dashboard.py +111 -0
- extremecloudiq/model/xiq_client_health_frequency_distribution.py +131 -0
- extremecloudiq/model/xiq_client_health_grid_response.py +506 -0
- extremecloudiq/model/xiq_client_health_roaming_issues.py +91 -0
- extremecloudiq/model/xiq_client_health_sort_field.py +145 -0
- extremecloudiq/model/xiq_client_mac_address_alias.py +114 -0
- extremecloudiq/model/xiq_client_monitor_parameters.py +111 -0
- extremecloudiq/model/xiq_client_monitor_profile.py +195 -0
- extremecloudiq/model/xiq_client_monitor_profile_request.py +153 -0
- extremecloudiq/model/xiq_client_sort_field.py +145 -0
- extremecloudiq/model/xiq_client_stats.py +99 -0
- extremecloudiq/model/xiq_client_stats_entity.py +166 -0
- extremecloudiq/model/xiq_client_stats_grid_row.py +371 -0
- extremecloudiq/model/xiq_client_summary.py +101 -0
- extremecloudiq/model/xiq_client_type.py +57 -0
- extremecloudiq/model/xiq_client_usage.py +91 -0
- extremecloudiq/model/xiq_client_view.py +82 -0
- extremecloudiq/model/xiq_cloud_config_group.py +226 -0
- extremecloudiq/model/xiq_cloud_config_group_sort_field.py +60 -0
- extremecloudiq/model/xiq_cloud_shark_storage.py +91 -0
- extremecloudiq/model/xiq_connectivity_details_by_client_type_response.py +100 -0
- extremecloudiq/model/xiq_connectivity_experience_data.py +205 -0
- extremecloudiq/model/xiq_connectivity_experience_view_type.py +55 -0
- extremecloudiq/model/xiq_copilot_anomalies_action_response.py +81 -0
- extremecloudiq/model/xiq_copilot_anomalies_by_category.py +158 -0
- extremecloudiq/model/xiq_copilot_events_wired_sort_field.py +45 -0
- extremecloudiq/model/xiq_copilot_events_wireless_sort_field.py +55 -0
- extremecloudiq/model/xiq_copilot_lldp_cdp_info.py +86 -0
- extremecloudiq/model/xiq_copilot_missing_vlan_paged_xiq_missing_vlan_excluded_vlan_list.py +157 -0
- extremecloudiq/model/xiq_copilot_missing_vlan_site_details.py +91 -0
- extremecloudiq/model/xiq_copilot_paged_xiq_anomaly_device_with_location.py +181 -0
- extremecloudiq/model/xiq_copilot_paged_xiq_anomaly_location_entity.py +181 -0
- extremecloudiq/model/xiq_copilot_wired_events_score_type.py +45 -0
- extremecloudiq/model/xiq_copilot_wireless_event.py +173 -0
- extremecloudiq/model/xiq_copilot_wireless_events_score_type.py +65 -0
- extremecloudiq/model/xiq_count_ap_with_excessive_retries_response.py +81 -0
- extremecloudiq/model/xiq_count_ap_with_packet_loss_excessive_response.py +81 -0
- extremecloudiq/model/xiq_country.py +241 -0
- extremecloudiq/model/xiq_country_code.py +1127 -0
- extremecloudiq/model/xiq_country_state.py +99 -0
- extremecloudiq/model/xiq_create_alert_email_subscription_request.py +142 -0
- extremecloudiq/model/xiq_create_alert_service_now_subscription_request.py +140 -0
- extremecloudiq/model/xiq_create_alert_webhook_subscription_request.py +152 -0
- extremecloudiq/model/xiq_create_api_access_token_response.py +129 -0
- extremecloudiq/model/xiq_create_building_request.py +133 -0
- extremecloudiq/model/xiq_create_classification_request.py +155 -0
- extremecloudiq/model/xiq_create_classification_rule_request.py +133 -0
- extremecloudiq/model/xiq_create_cloud_config_group_request.py +126 -0
- extremecloudiq/model/xiq_create_end_user_request.py +186 -0
- extremecloudiq/model/xiq_create_external_radius_server_request.py +179 -0
- extremecloudiq/model/xiq_create_floor_request.py +185 -0
- extremecloudiq/model/xiq_create_internal_radius_server_request.py +399 -0
- extremecloudiq/model/xiq_create_key_based_pcg_users_request.py +113 -0
- extremecloudiq/model/xiq_create_key_based_pcg_users_response.py +135 -0
- extremecloudiq/model/xiq_create_l3_address_profile_request.py +199 -0
- extremecloudiq/model/xiq_create_ldap_server_request.py +260 -0
- extremecloudiq/model/xiq_create_location_request.py +96 -0
- extremecloudiq/model/xiq_create_mac_object_request.py +133 -0
- extremecloudiq/model/xiq_create_network_policy_request.py +111 -0
- extremecloudiq/model/xiq_create_organization_request.py +94 -0
- extremecloudiq/model/xiq_create_radio_profile_request.py +249 -0
- extremecloudiq/model/xiq_create_radius_client.py +101 -0
- extremecloudiq/model/xiq_create_radius_client_object_request.py +215 -0
- extremecloudiq/model/xiq_create_radius_proxy_realm.py +101 -0
- extremecloudiq/model/xiq_create_radius_proxy_request.py +269 -0
- extremecloudiq/model/xiq_create_rp_mac_oui_profile_request.py +126 -0
- extremecloudiq/model/xiq_create_site_request.py +141 -0
- extremecloudiq/model/xiq_create_user_group_request.py +239 -0
- extremecloudiq/model/xiq_create_user_profile_assignment_request.py +136 -0
- extremecloudiq/model/xiq_create_user_profile_request.py +96 -0
- extremecloudiq/model/xiq_create_user_request.py +157 -0
- extremecloudiq/model/xiq_create_vlan_object_classified_entry_request.py +98 -0
- extremecloudiq/model/xiq_create_vlan_profile_request.py +145 -0
- extremecloudiq/model/xiq_create_webhook_subscription_request.py +141 -0
- extremecloudiq/model/xiq_create_wireless_client_health_criteria.py +209 -0
- extremecloudiq/model/xiq_create_wireless_dashboard_criteria_param_request.py +114 -0
- extremecloudiq/model/xiq_create_wireless_dashboard_criteria_param_response.py +114 -0
- extremecloudiq/model/xiq_create_wireless_device_health_criteria.py +119 -0
- extremecloudiq/model/xiq_create_wireless_usage_capacity_criteria.py +139 -0
- extremecloudiq/model/xiq_credential_distribution_group.py +267 -0
- extremecloudiq/model/xiq_credential_distribution_group_create_request.py +203 -0
- extremecloudiq/model/xiq_credential_distribution_group_update.py +267 -0
- extremecloudiq/model/xiq_credential_distribution_group_update_request.py +203 -0
- extremecloudiq/model/xiq_credential_log.py +126 -0
- extremecloudiq/model/xiq_cwp.py +130 -0
- extremecloudiq/model/xiq_d360_client_grid_filter_request.py +364 -0
- extremecloudiq/model/xiq_d360_client_grid_metadata.py +325 -0
- extremecloudiq/model/xiq_d360_device_stats.py +229 -0
- extremecloudiq/model/xiq_d360_device_summary.py +148 -0
- extremecloudiq/model/xiq_d360_filter.py +140 -0
- extremecloudiq/model/xiq_d360_filter_type.py +87 -0
- extremecloudiq/model/xiq_d360_number_filter.py +126 -0
- extremecloudiq/model/xiq_dashboard_filter.py +103 -0
- extremecloudiq/model/xiq_data_point.py +96 -0
- extremecloudiq/model/xiq_date_time_type.py +134 -0
- extremecloudiq/model/xiq_date_time_unit_type.py +62 -0
- extremecloudiq/model/xiq_default_device_password.py +86 -0
- extremecloudiq/model/xiq_delete_bulk_alert_subscription_email_response.py +132 -0
- extremecloudiq/model/xiq_delete_bulk_alert_subscription_request.py +108 -0
- extremecloudiq/model/xiq_delete_bulk_alert_subscription_service_now_response.py +132 -0
- extremecloudiq/model/xiq_delete_bulk_alert_subscription_webhook_response.py +132 -0
- extremecloudiq/model/xiq_delete_key_based_pcg_users_request.py +108 -0
- extremecloudiq/model/xiq_delivery_settings.py +91 -0
- extremecloudiq/model/xiq_dell_device.py +135 -0
- extremecloudiq/model/xiq_dell_devices.py +114 -0
- extremecloudiq/model/xiq_deploy_device_filter.py +135 -0
- extremecloudiq/model/xiq_deployment_by_id_status_response.py +208 -0
- extremecloudiq/model/xiq_deployment_details_response.py +152 -0
- extremecloudiq/model/xiq_deployment_overview.py +98 -0
- extremecloudiq/model/xiq_deployment_overview_details.py +101 -0
- extremecloudiq/model/xiq_deployment_policy.py +146 -0
- extremecloudiq/model/xiq_deployment_request.py +114 -0
- extremecloudiq/model/xiq_deployment_response.py +124 -0
- extremecloudiq/model/xiq_deployment_schedule_action_response.py +81 -0
- extremecloudiq/model/xiq_deployment_status.py +156 -0
- extremecloudiq/model/xiq_deployments_policy_response.py +146 -0
- extremecloudiq/model/xiq_destination_type.py +52 -0
- extremecloudiq/model/xiq_device.py +553 -0
- extremecloudiq/model/xiq_device_admin_state.py +65 -0
- extremecloudiq/model/xiq_device_alarm.py +141 -0
- extremecloudiq/model/xiq_device_category.py +50 -0
- extremecloudiq/model/xiq_device_client_monitor.py +91 -0
- extremecloudiq/model/xiq_device_cpu_memory_usage.py +101 -0
- extremecloudiq/model/xiq_device_cpu_usage_issue_count.py +81 -0
- extremecloudiq/model/xiq_device_data.py +238 -0
- extremecloudiq/model/xiq_device_details.py +171 -0
- extremecloudiq/model/xiq_device_field.py +235 -0
- extremecloudiq/model/xiq_device_filter.py +103 -0
- extremecloudiq/model/xiq_device_firmware_metadata.py +200 -0
- extremecloudiq/model/xiq_device_function.py +87 -0
- extremecloudiq/model/xiq_device_geolocation.py +152 -0
- extremecloudiq/model/xiq_device_health_dashboard.py +111 -0
- extremecloudiq/model/xiq_device_health_grid_response.py +251 -0
- extremecloudiq/model/xiq_device_ibeacon.py +206 -0
- extremecloudiq/model/xiq_device_installation_report.py +231 -0
- extremecloudiq/model/xiq_device_interface_radio_mode.py +160 -0
- extremecloudiq/model/xiq_device_iot_interface_settings_entry.py +96 -0
- extremecloudiq/model/xiq_device_issues.py +151 -0
- extremecloudiq/model/xiq_device_level_ssid.py +106 -0
- extremecloudiq/model/xiq_device_level_ssid_status.py +98 -0
- extremecloudiq/model/xiq_device_lldp_cdp_info.py +131 -0
- extremecloudiq/model/xiq_device_location.py +214 -0
- extremecloudiq/model/xiq_device_location_assignment.py +126 -0
- extremecloudiq/model/xiq_device_memory_usage_issue_count.py +81 -0
- extremecloudiq/model/xiq_device_meta_data.py +112 -0
- extremecloudiq/model/xiq_device_monitor_refresh_response.py +86 -0
- extremecloudiq/model/xiq_device_monitor_refresh_status_response.py +150 -0
- extremecloudiq/model/xiq_device_null_field.py +50 -0
- extremecloudiq/model/xiq_device_path.py +113 -0
- extremecloudiq/model/xiq_device_poe_usage_issues_count.py +81 -0
- extremecloudiq/model/xiq_device_radio_operating_mode.py +122 -0
- extremecloudiq/model/xiq_device_reboot_summary.py +91 -0
- extremecloudiq/model/xiq_device_sort_field.py +52 -0
- extremecloudiq/model/xiq_device_stats.py +99 -0
- extremecloudiq/model/xiq_device_stats_entity.py +146 -0
- extremecloudiq/model/xiq_device_summary.py +91 -0
- extremecloudiq/model/xiq_device_system_information.py +290 -0
- extremecloudiq/model/xiq_device_type.py +55 -0
- extremecloudiq/model/xiq_device_view.py +72 -0
- extremecloudiq/model/xiq_device_wifi_interface.py +361 -0
- extremecloudiq/model/xiq_device_wireless_interface_entry.py +101 -0
- extremecloudiq/model/xiq_devices.py +135 -0
- extremecloudiq/model/xiq_dfs_channel_changes_entity.py +96 -0
- extremecloudiq/model/xiq_dfs_channel_stats_entity.py +96 -0
- extremecloudiq/model/xiq_dfs_recurence_channel_stats_response.py +128 -0
- extremecloudiq/model/xiq_dfs_recurence_count_stats_response.py +118 -0
- extremecloudiq/model/xiq_digital_twin_device.py +201 -0
- extremecloudiq/model/xiq_digital_twin_devices.py +110 -0
- extremecloudiq/model/xiq_digital_twin_feat_license.py +72 -0
- extremecloudiq/model/xiq_digital_twin_make.py +52 -0
- extremecloudiq/model/xiq_digital_twin_model.py +237 -0
- extremecloudiq/model/xiq_digital_twin_onboard_device.py +127 -0
- extremecloudiq/model/xiq_digital_twin_products.py +142 -0
- extremecloudiq/model/xiq_digital_twin_vim_module.py +67 -0
- extremecloudiq/model/xiq_duplex_data_rate_entity.py +106 -0
- extremecloudiq/model/xiq_ekahau_floor_import_result.py +119 -0
- extremecloudiq/model/xiq_ekahau_floor_import_status.py +52 -0
- extremecloudiq/model/xiq_ekahau_floor_to_floor_association.py +98 -0
- extremecloudiq/model/xiq_ekahau_floor_to_outdoor_site_association.py +110 -0
- extremecloudiq/model/xiq_ekahau_import_details.py +113 -0
- extremecloudiq/model/xiq_ekahau_import_issue.py +136 -0
- extremecloudiq/model/xiq_ekahau_import_issues.py +244 -0
- extremecloudiq/model/xiq_elevation.py +119 -0
- extremecloudiq/model/xiq_ellipse.py +99 -0
- extremecloudiq/model/xiq_email_log.py +156 -0
- extremecloudiq/model/xiq_email_template.py +211 -0
- extremecloudiq/model/xiq_employee_group.py +81 -0
- extremecloudiq/model/xiq_employee_group_type.py +57 -0
- extremecloudiq/model/xiq_employee_group_update.py +91 -0
- extremecloudiq/model/xiq_end_user.py +274 -0
- extremecloudiq/model/xiq_entitlement_type.py +62 -0
- extremecloudiq/model/xiq_error.py +168 -0
- extremecloudiq/model/xiq_excluded_vlan_action_type.py +57 -0
- extremecloudiq/model/xiq_exos_device.py +123 -0
- extremecloudiq/model/xiq_exos_devices.py +108 -0
- extremecloudiq/model/xiq_expiration_action_type.py +52 -0
- extremecloudiq/model/xiq_expiration_settings.py +156 -0
- extremecloudiq/model/xiq_expiration_type.py +62 -0
- extremecloudiq/model/xiq_external_account.py +156 -0
- extremecloudiq/model/xiq_external_radius_server.py +207 -0
- extremecloudiq/model/xiq_external_user.py +189 -0
- extremecloudiq/model/xiq_external_user_directory.py +241 -0
- extremecloudiq/model/xiq_external_user_directory_entry.py +103 -0
- extremecloudiq/model/xiq_external_user_directory_type.py +52 -0
- extremecloudiq/model/xiq_extreme_device.py +123 -0
- extremecloudiq/model/xiq_extreme_devices.py +108 -0
- extremecloudiq/model/xiq_failure_onboard_device.py +101 -0
- extremecloudiq/model/xiq_feedback_type.py +52 -0
- extremecloudiq/model/xiq_filter_type.py +87 -0
- extremecloudiq/model/xiq_firmware_activate_option.py +101 -0
- extremecloudiq/model/xiq_firmware_metadatas_request.py +135 -0
- extremecloudiq/model/xiq_firmware_metadatas_response.py +136 -0
- extremecloudiq/model/xiq_firmware_upgrade_policy.py +91 -0
- extremecloudiq/model/xiq_firmware_upgrade_version.py +106 -0
- extremecloudiq/model/xiq_flap_count_entity.py +116 -0
- extremecloudiq/model/xiq_floor.py +243 -0
- extremecloudiq/model/xiq_folder_path_info.py +122 -0
- extremecloudiq/model/xiq_forensic_bucket.py +75 -0
- extremecloudiq/model/xiq_ftm_settings.py +185 -0
- extremecloudiq/model/xiq_ftm_settings_request.py +147 -0
- extremecloudiq/model/xiq_generate_api_token_request.py +126 -0
- extremecloudiq/model/xiq_generate_api_token_response.py +174 -0
- extremecloudiq/model/xiq_get_afc_spectrum_for_ap_request.py +161 -0
- extremecloudiq/model/xiq_get_afc_spectrum_for_site_aps_request.py +161 -0
- extremecloudiq/model/xiq_get_device_info_by_nos.py +106 -0
- extremecloudiq/model/xiq_get_device_infoby_nos_request.py +133 -0
- extremecloudiq/model/xiq_get_port_assignment_details_response.py +135 -0
- extremecloudiq/model/xiq_grant_external_user_request.py +143 -0
- extremecloudiq/model/xiq_hardware_health_client_list_response.py +108 -0
- extremecloudiq/model/xiq_hardware_health_cpu_mem_stats_response.py +108 -0
- extremecloudiq/model/xiq_hardware_health_device_stats_entity.py +136 -0
- extremecloudiq/model/xiq_hardware_health_packet_counts_entity.py +156 -0
- extremecloudiq/model/xiq_hardware_health_reboot_stats_entity.py +96 -0
- extremecloudiq/model/xiq_hardware_health_stats_response.py +180 -0
- extremecloudiq/model/xiq_hh_client_stats_entity.py +136 -0
- extremecloudiq/model/xiq_hh_cpu_mem_stats_entity.py +116 -0
- extremecloudiq/model/xiq_hiq_context.py +118 -0
- extremecloudiq/model/xiq_hiq_status.py +84 -0
- extremecloudiq/model/xiq_host_name_address_profile.py +223 -0
- extremecloudiq/model/xiq_hotspot_access_network_type.py +82 -0
- extremecloudiq/model/xiq_hotspot_cellular_network.py +128 -0
- extremecloudiq/model/xiq_hotspot_connection_capability.py +129 -0
- extremecloudiq/model/xiq_hotspot_connection_capability_protocol.py +62 -0
- extremecloudiq/model/xiq_hotspot_connection_capability_status.py +57 -0
- extremecloudiq/model/xiq_hotspot_eap_method.py +72 -0
- extremecloudiq/model/xiq_hotspot_ipv4_availability_type.py +82 -0
- extremecloudiq/model/xiq_hotspot_ipv6_availability_type.py +57 -0
- extremecloudiq/model/xiq_hotspot_localized_name.py +117 -0
- extremecloudiq/model/xiq_hotspot_nai_encoding_type.py +52 -0
- extremecloudiq/model/xiq_hotspot_nai_realm.py +147 -0
- extremecloudiq/model/xiq_hotspot_online_signup.py +120 -0
- extremecloudiq/model/xiq_hotspot_osu_network_auth_type.py +57 -0
- extremecloudiq/model/xiq_hotspot_profile.py +528 -0
- extremecloudiq/model/xiq_hotspot_profile_request.py +484 -0
- extremecloudiq/model/xiq_hotspot_qos_ah_class_to_dscp_range.py +140 -0
- extremecloudiq/model/xiq_hotspot_qos_dscp_exception.py +118 -0
- extremecloudiq/model/xiq_hotspot_qos_map.py +144 -0
- extremecloudiq/model/xiq_hotspot_roaming_consortium.py +106 -0
- extremecloudiq/model/xiq_hotspot_service_provider_icon_file.py +135 -0
- extremecloudiq/model/xiq_hotspot_service_provider_osu_method.py +52 -0
- extremecloudiq/model/xiq_hotspot_service_provider_profile.py +394 -0
- extremecloudiq/model/xiq_hotspot_service_provider_profile_request.py +366 -0
- extremecloudiq/model/xiq_hotspot_venue.py +136 -0
- extremecloudiq/model/xiq_hotspot_venue_group.py +102 -0
- extremecloudiq/model/xiq_hotspot_venue_type.py +317 -0
- extremecloudiq/model/xiq_hotspot_wan_link_status.py +57 -0
- extremecloudiq/model/xiq_hotspot_wan_metrics.py +135 -0
- extremecloudiq/model/xiq_http_method.py +62 -0
- extremecloudiq/model/xiq_http_server.py +120 -0
- extremecloudiq/model/xiq_init_key_based_pcg_network_policy_request.py +137 -0
- extremecloudiq/model/xiq_initialize_location_request.py +101 -0
- extremecloudiq/model/xiq_internal_radius_device.py +156 -0
- extremecloudiq/model/xiq_internal_radius_server.py +449 -0
- extremecloudiq/model/xiq_internal_radius_server_authentication_method.py +67 -0
- extremecloudiq/model/xiq_internal_radius_server_authentication_method_group.py +72 -0
- extremecloudiq/model/xiq_iot_application_id.py +47 -0
- extremecloudiq/model/xiq_iot_application_supported.py +52 -0
- extremecloudiq/model/xiq_iot_profile.py +193 -0
- extremecloudiq/model/xiq_iot_profile_request.py +159 -0
- extremecloudiq/model/xiq_iot_profile_thread_gateway.py +297 -0
- extremecloudiq/model/xiq_iotp_ma_ble_beacon.py +108 -0
- extremecloudiq/model/xiq_iotp_ma_ble_beacon_app_type.py +52 -0
- extremecloudiq/model/xiq_iotp_ma_ble_beacon_application.py +230 -0
- extremecloudiq/model/xiq_iotp_ma_ble_scan.py +122 -0
- extremecloudiq/model/xiq_iotp_ma_ble_scan_app_type.py +57 -0
- extremecloudiq/model/xiq_iotp_ma_ble_scan_application.py +167 -0
- extremecloudiq/model/xiq_iotp_ma_ble_scan_destination.py +106 -0
- extremecloudiq/model/xiq_iotp_ma_ble_scan_vendor.py +116 -0
- extremecloudiq/model/xiq_iotp_ma_ble_scan_vendor_type.py +57 -0
- extremecloudiq/model/xiq_iotp_tg_white_list_entry.py +118 -0
- extremecloudiq/model/xiq_ip_address_profile.py +223 -0
- extremecloudiq/model/xiq_ip_firewall.py +187 -0
- extremecloudiq/model/xiq_ip_firewall_action.py +67 -0
- extremecloudiq/model/xiq_ip_firewall_policy_request.py +128 -0
- extremecloudiq/model/xiq_ip_firewall_rule.py +204 -0
- extremecloudiq/model/xiq_ip_firewall_rule_request.py +130 -0
- extremecloudiq/model/xiq_ip_range_address_profile.py +233 -0
- extremecloudiq/model/xiq_issue_client_association.py +101 -0
- extremecloudiq/model/xiq_issue_client_auth.py +101 -0
- extremecloudiq/model/xiq_issue_client_ip_address.py +101 -0
- extremecloudiq/model/xiq_issue_client_roaming.py +111 -0
- extremecloudiq/model/xiq_key_based_pcg.py +205 -0
- extremecloudiq/model/xiq_key_based_pcg_user.py +156 -0
- extremecloudiq/model/xiq_key_based_pcg_user_base_info.py +110 -0
- extremecloudiq/model/xiq_l3_address_profile.py +225 -0
- extremecloudiq/model/xiq_l3_address_profile_response.py +156 -0
- extremecloudiq/model/xiq_l3_address_type.py +72 -0
- extremecloudiq/model/xiq_ldap_protocol_type.py +52 -0
- extremecloudiq/model/xiq_ldap_server.py +271 -0
- extremecloudiq/model/xiq_ldap_server_verification_mode.py +57 -0
- extremecloudiq/model/xiq_license_mode.py +67 -0
- extremecloudiq/model/xiq_license_status.py +72 -0
- extremecloudiq/model/xiq_list_afc_servers.py +106 -0
- extremecloudiq/model/xiq_list_alert_policies.py +121 -0
- extremecloudiq/model/xiq_location.py +211 -0
- extremecloudiq/model/xiq_location_legend.py +91 -0
- extremecloudiq/model/xiq_location_tree_device.py +198 -0
- extremecloudiq/model/xiq_location_tree_map.py +118 -0
- extremecloudiq/model/xiq_location_type.py +57 -0
- extremecloudiq/model/xiq_logging_type.py +67 -0
- extremecloudiq/model/xiq_login_request.py +96 -0
- extremecloudiq/model/xiq_login_response.py +108 -0
- extremecloudiq/model/xiq_mac_firewall.py +187 -0
- extremecloudiq/model/xiq_mac_firewall_action.py +52 -0
- extremecloudiq/model/xiq_mac_firewall_policy_request.py +128 -0
- extremecloudiq/model/xiq_mac_firewall_rule.py +176 -0
- extremecloudiq/model/xiq_mac_firewall_rule_request.py +120 -0
- extremecloudiq/model/xiq_mac_object.py +195 -0
- extremecloudiq/model/xiq_mac_object_type.py +57 -0
- extremecloudiq/model/xiq_measurement_unit.py +52 -0
- extremecloudiq/model/xiq_missing_vlan_affected_device_entity.py +133 -0
- extremecloudiq/model/xiq_missing_vlan_anomalies_count_response.py +118 -0
- extremecloudiq/model/xiq_missing_vlan_excluded_vlan_details.py +135 -0
- extremecloudiq/model/xiq_missing_vlan_excluded_vlan_details_list_request.py +149 -0
- extremecloudiq/model/xiq_missing_vlan_excluded_vlan_list.py +118 -0
- extremecloudiq/model/xiq_missing_vlan_info.py +138 -0
- extremecloudiq/model/xiq_missing_vlan_site_anomaly_count_details.py +101 -0
- extremecloudiq/model/xiq_network_alg_type.py +72 -0
- extremecloudiq/model/xiq_network_ip_protocol.py +62 -0
- extremecloudiq/model/xiq_network_policy.py +164 -0
- extremecloudiq/model/xiq_network_policy_field.py +80 -0
- extremecloudiq/model/xiq_network_policy_info.py +98 -0
- extremecloudiq/model/xiq_network_policy_type.py +77 -0
- extremecloudiq/model/xiq_network_policy_view.py +52 -0
- extremecloudiq/model/xiq_network_service.py +221 -0
- extremecloudiq/model/xiq_network_service_request.py +138 -0
- extremecloudiq/model/xiq_number_filter.py +126 -0
- extremecloudiq/model/xiq_onboard_device_request.py +156 -0
- extremecloudiq/model/xiq_onboard_error.py +257 -0
- extremecloudiq/model/xiq_onboard_key_based_pcg_request.py +132 -0
- extremecloudiq/model/xiq_onboard_key_based_pcg_response.py +110 -0
- extremecloudiq/model/xiq_operation_metadata.py +189 -0
- extremecloudiq/model/xiq_operation_object.py +139 -0
- extremecloudiq/model/xiq_operation_status.py +72 -0
- extremecloudiq/model/xiq_organization.py +157 -0
- extremecloudiq/model/xiq_organization_type.py +52 -0
- extremecloudiq/model/xiq_os_object.py +120 -0
- extremecloudiq/model/xiq_packet_capture.py +310 -0
- extremecloudiq/model/xiq_packet_capture_field.py +120 -0
- extremecloudiq/model/xiq_packet_capture_sort_field.py +55 -0
- extremecloudiq/model/xiq_packet_capture_status.py +67 -0
- extremecloudiq/model/xiq_password_character_type.py +57 -0
- extremecloudiq/model/xiq_password_db_location.py +52 -0
- extremecloudiq/model/xiq_password_settings.py +159 -0
- extremecloudiq/model/xiq_password_type.py +52 -0
- extremecloudiq/model/xiq_patch_alert_service_now_subscription_request.py +138 -0
- extremecloudiq/model/xiq_pcg_assign_ports_request.py +113 -0
- extremecloudiq/model/xiq_pcg_assign_ports_response.py +137 -0
- extremecloudiq/model/xiq_pcg_port_assignment.py +116 -0
- extremecloudiq/model/xiq_pcg_port_assignment_entry.py +162 -0
- extremecloudiq/model/xiq_pcg_port_assignment_entry_detail.py +175 -0
- extremecloudiq/model/xiq_pcg_port_assignment_entry_device_meta.py +156 -0
- extremecloudiq/model/xiq_pcg_port_assignment_entry_eth_user_meta.py +202 -0
- extremecloudiq/model/xiq_pcg_type.py +52 -0
- extremecloudiq/model/xiq_permission.py +110 -0
- extremecloudiq/model/xiq_poe_flapping_stats_response.py +118 -0
- extremecloudiq/model/xiq_poe_trend_graphs_response.py +108 -0
- extremecloudiq/model/xiq_policy_rule_protocol_type.py +87 -0
- extremecloudiq/model/xiq_port_efficiency_speed_duplex_stats_response.py +108 -0
- extremecloudiq/model/xiq_port_efficiency_stats_response.py +108 -0
- extremecloudiq/model/xiq_post_expiration_action.py +116 -0
- extremecloudiq/model/xiq_power_source_equipment.py +204 -0
- extremecloudiq/model/xiq_psk_generation_method.py +52 -0
- extremecloudiq/model/xiq_quality_index.py +62 -0
- extremecloudiq/model/xiq_radio.py +223 -0
- extremecloudiq/model/xiq_radio_bands.py +82 -0
- extremecloudiq/model/xiq_radio_entity.py +123 -0
- extremecloudiq/model/xiq_radio_mode.py +97 -0
- extremecloudiq/model/xiq_radio_operating_modes.py +120 -0
- extremecloudiq/model/xiq_radio_profile.py +295 -0
- extremecloudiq/model/xiq_radius_client.py +111 -0
- extremecloudiq/model/xiq_radius_client_object.py +253 -0
- extremecloudiq/model/xiq_radius_client_object_entry.py +119 -0
- extremecloudiq/model/xiq_radius_client_object_type.py +57 -0
- extremecloudiq/model/xiq_radius_client_profile.py +128 -0
- extremecloudiq/model/xiq_radius_client_profile_entry.py +91 -0
- extremecloudiq/model/xiq_radius_proxy.py +267 -0
- extremecloudiq/model/xiq_radius_proxy_format_type.py +62 -0
- extremecloudiq/model/xiq_radius_proxy_realm.py +111 -0
- extremecloudiq/model/xiq_radius_server_type.py +57 -0
- extremecloudiq/model/xiq_recurrence_type.py +52 -0
- extremecloudiq/model/xiq_regenerate_end_user_password_response.py +86 -0
- extremecloudiq/model/xiq_rf_environment_type.py +77 -0
- extremecloudiq/model/xiq_rm_channel_filter_type.py +55 -0
- extremecloudiq/model/xiq_rm_device.py +457 -0
- extremecloudiq/model/xiq_rm_device_category.py +57 -0
- extremecloudiq/model/xiq_rm_device_connection_status.py +159 -0
- extremecloudiq/model/xiq_rm_device_list_request.py +359 -0
- extremecloudiq/model/xiq_rm_device_location_details.py +131 -0
- extremecloudiq/model/xiq_rm_device_metdata_response.py +304 -0
- extremecloudiq/model/xiq_rm_device_sort_field.py +62 -0
- extremecloudiq/model/xiq_rm_site_ids_request.py +103 -0
- extremecloudiq/model/xiq_rm_source_filter_type.py +50 -0
- extremecloudiq/model/xiq_rm_stack_member_info.py +119 -0
- extremecloudiq/model/xiq_rp_channel_selection.py +330 -0
- extremecloudiq/model/xiq_rp_mac_oui_profile.py +180 -0
- extremecloudiq/model/xiq_rp_miscellaneous_settings.py +167 -0
- extremecloudiq/model/xiq_rp_neighborhood_analysis.py +160 -0
- extremecloudiq/model/xiq_rp_radio_usage_optimization.py +487 -0
- extremecloudiq/model/xiq_rp_sensor_scan_settings.py +140 -0
- extremecloudiq/model/xiq_rp_wmm_qos_settings.py +170 -0
- extremecloudiq/model/xiq_rtts_session_response.py +79 -0
- extremecloudiq/model/xiq_schedule.py +197 -0
- extremecloudiq/model/xiq_schedule_details.py +86 -0
- extremecloudiq/model/xiq_schedule_status.py +72 -0
- extremecloudiq/model/xiq_schedule_type.py +52 -0
- extremecloudiq/model/xiq_send_cli_request.py +125 -0
- extremecloudiq/model/xiq_send_cli_response.py +136 -0
- extremecloudiq/model/xiq_server_role.py +62 -0
- extremecloudiq/model/xiq_sessions_data_entity.py +116 -0
- extremecloudiq/model/xiq_set_ssid_mode_dot1x_request.py +181 -0
- extremecloudiq/model/xiq_set_ssid_mode_ppsk_request.py +215 -0
- extremecloudiq/model/xiq_set_ssid_mode_psk_request.py +178 -0
- extremecloudiq/model/xiq_set_ssid_mode_wep_request.py +235 -0
- extremecloudiq/model/xiq_site.py +223 -0
- extremecloudiq/model/xiq_site_afc_schedule.py +109 -0
- extremecloudiq/model/xiq_site_dashboard_response.py +172 -0
- extremecloudiq/model/xiq_site_info.py +128 -0
- extremecloudiq/model/xiq_sites_by_wired_entity.py +111 -0
- extremecloudiq/model/xiq_sites_by_wireless_entity.py +111 -0
- extremecloudiq/model/xiq_sms_log.py +191 -0
- extremecloudiq/model/xiq_sms_log_status.py +62 -0
- extremecloudiq/model/xiq_sms_template.py +181 -0
- extremecloudiq/model/xiq_sort_field.py +50 -0
- extremecloudiq/model/xiq_sort_order.py +50 -0
- extremecloudiq/model/xiq_spectrum_mismatch_summary.py +99 -0
- extremecloudiq/model/xiq_speed_duplex_entity.py +106 -0
- extremecloudiq/model/xiq_ssid.py +305 -0
- extremecloudiq/model/xiq_ssid_access_security.py +168 -0
- extremecloudiq/model/xiq_ssid_access_security_type.py +72 -0
- extremecloudiq/model/xiq_ssid_advanced_settings.py +120 -0
- extremecloudiq/model/xiq_ssid_dot1x_encryption_method.py +62 -0
- extremecloudiq/model/xiq_ssid_dot1x_key_management.py +62 -0
- extremecloudiq/model/xiq_ssid_encryption_method.py +72 -0
- extremecloudiq/model/xiq_ssid_key_management.py +92 -0
- extremecloudiq/model/xiq_ssid_key_type.py +52 -0
- extremecloudiq/model/xiq_ssid_metadata.py +101 -0
- extremecloudiq/model/xiq_ssid_ppsk_key_management.py +57 -0
- extremecloudiq/model/xiq_ssid_psk_encryption_method.py +57 -0
- extremecloudiq/model/xiq_ssid_psk_key_management.py +62 -0
- extremecloudiq/model/xiq_ssid_sae_group.py +57 -0
- extremecloudiq/model/xiq_ssid_status.py +52 -0
- extremecloudiq/model/xiq_ssid_wep_authentication_method.py +52 -0
- extremecloudiq/model/xiq_ssid_wep_default_key.py +62 -0
- extremecloudiq/model/xiq_ssid_wep_encryption_method.py +52 -0
- extremecloudiq/model/xiq_ssid_wep_key_management.py +52 -0
- extremecloudiq/model/xiq_storage.py +96 -0
- extremecloudiq/model/xiq_subnet_address_profile.py +233 -0
- extremecloudiq/model/xiq_subscription_data_type.py +82 -0
- extremecloudiq/model/xiq_subscription_message_type.py +87 -0
- extremecloudiq/model/xiq_subscription_status.py +52 -0
- extremecloudiq/model/xiq_success_onboard_device.py +98 -0
- extremecloudiq/model/xiq_surrounding_aps.py +171 -0
- extremecloudiq/model/xiq_third_party_api_connection.py +91 -0
- extremecloudiq/model/xiq_third_party_application.py +121 -0
- extremecloudiq/model/xiq_thread_backbone_border_router_service.py +81 -0
- extremecloudiq/model/xiq_thread_border_agent_service.py +91 -0
- extremecloudiq/model/xiq_thread_border_router_service.py +171 -0
- extremecloudiq/model/xiq_thread_commissioner_service.py +81 -0
- extremecloudiq/model/xiq_thread_ipv6_setting.py +111 -0
- extremecloudiq/model/xiq_thread_leader_service.py +111 -0
- extremecloudiq/model/xiq_thread_mle_link_mode.py +101 -0
- extremecloudiq/model/xiq_thread_nat64_service.py +101 -0
- extremecloudiq/model/xiq_thread_net_data_prefix.py +199 -0
- extremecloudiq/model/xiq_thread_net_data_route.py +129 -0
- extremecloudiq/model/xiq_thread_net_data_service.py +129 -0
- extremecloudiq/model/xiq_thread_network_config.py +261 -0
- extremecloudiq/model/xiq_thread_network_data.py +200 -0
- extremecloudiq/model/xiq_thread_network_interface.py +268 -0
- extremecloudiq/model/xiq_thread_network_topology.py +180 -0
- extremecloudiq/model/xiq_thread_networks.py +108 -0
- extremecloudiq/model/xiq_thread_router.py +438 -0
- extremecloudiq/model/xiq_thread_router_neighbor.py +111 -0
- extremecloudiq/model/xiq_thread_start_commissioner_request.py +116 -0
- extremecloudiq/model/xiq_thread_stop_commissioner_request.py +96 -0
- extremecloudiq/model/xiq_thread_version.py +111 -0
- extremecloudiq/model/xiq_top_applications_usage.py +121 -0
- extremecloudiq/model/xiq_traffic.py +52 -0
- extremecloudiq/model/xiq_trend_graph_entity.py +96 -0
- extremecloudiq/model/xiq_trend_indicator.py +62 -0
- extremecloudiq/model/xiq_tunnel_concentrator.py +398 -0
- extremecloudiq/model/xiq_tunnel_concentrator_request.py +360 -0
- extremecloudiq/model/xiq_ucp_engine.py +193 -0
- extremecloudiq/model/xiq_ucp_engine_instance.py +98 -0
- extremecloudiq/model/xiq_ucp_engines.py +113 -0
- extremecloudiq/model/xiq_unaffected_downlink_device.py +111 -0
- extremecloudiq/model/xiq_update_action_anomaly_details.py +123 -0
- extremecloudiq/model/xiq_update_alert_email_subscription_request.py +138 -0
- extremecloudiq/model/xiq_update_alert_rule_request.py +149 -0
- extremecloudiq/model/xiq_update_alert_service_now_subscription_request.py +138 -0
- extremecloudiq/model/xiq_update_alert_webhook_subscription_request.py +148 -0
- extremecloudiq/model/xiq_update_anomalies_and_devices_request.py +129 -0
- extremecloudiq/model/xiq_update_api_access_token_request.py +84 -0
- extremecloudiq/model/xiq_update_building_request.py +133 -0
- extremecloudiq/model/xiq_update_classification_request.py +155 -0
- extremecloudiq/model/xiq_update_classification_rule_request.py +133 -0
- extremecloudiq/model/xiq_update_client_monitor_profile_request.py +148 -0
- extremecloudiq/model/xiq_update_cloud_config_group_request.py +121 -0
- extremecloudiq/model/xiq_update_device_level_ssid_status.py +159 -0
- extremecloudiq/model/xiq_update_end_user_request.py +159 -0
- extremecloudiq/model/xiq_update_external_radius_server_request.py +167 -0
- extremecloudiq/model/xiq_update_external_user_request.py +126 -0
- extremecloudiq/model/xiq_update_firmware_upgrade_request.py +114 -0
- extremecloudiq/model/xiq_update_floor_request.py +185 -0
- extremecloudiq/model/xiq_update_internal_radius_server_request.py +349 -0
- extremecloudiq/model/xiq_update_key_based_pcg_users_request.py +113 -0
- extremecloudiq/model/xiq_update_l3_address_profile_request.py +171 -0
- extremecloudiq/model/xiq_update_ldap_server_request.py +227 -0
- extremecloudiq/model/xiq_update_location_request.py +96 -0
- extremecloudiq/model/xiq_update_mac_object_request.py +109 -0
- extremecloudiq/model/xiq_update_missing_vlan_excluded_vlan_response.py +81 -0
- extremecloudiq/model/xiq_update_network_policy_request.py +104 -0
- extremecloudiq/model/xiq_update_radio_profile_request.py +244 -0
- extremecloudiq/model/xiq_update_radius_client.py +111 -0
- extremecloudiq/model/xiq_update_radius_client_object_request.py +174 -0
- extremecloudiq/model/xiq_update_radius_proxy_realm.py +111 -0
- extremecloudiq/model/xiq_update_radius_proxy_request.py +220 -0
- extremecloudiq/model/xiq_update_rp_channel_selection_request.py +329 -0
- extremecloudiq/model/xiq_update_rp_mac_oui_profile_request.py +119 -0
- extremecloudiq/model/xiq_update_rp_miscellaneous_settings_request.py +99 -0
- extremecloudiq/model/xiq_update_rp_neighborhood_analysis_request.py +129 -0
- extremecloudiq/model/xiq_update_rp_radio_usage_optimization_request.py +581 -0
- extremecloudiq/model/xiq_update_rp_sensor_scan_settings_request.py +99 -0
- extremecloudiq/model/xiq_update_rp_wmm_qos_settings_request.py +159 -0
- extremecloudiq/model/xiq_update_site_request.py +141 -0
- extremecloudiq/model/xiq_update_ssid_advanced_settings_request.py +79 -0
- extremecloudiq/model/xiq_update_third_party_api_connection_request.py +79 -0
- extremecloudiq/model/xiq_update_user_group_request.py +239 -0
- extremecloudiq/model/xiq_update_user_profile_request.py +89 -0
- extremecloudiq/model/xiq_update_user_request.py +146 -0
- extremecloudiq/model/xiq_update_vhm_setting_request.py +119 -0
- extremecloudiq/model/xiq_update_vlan_object_classified_entry_request.py +98 -0
- extremecloudiq/model/xiq_update_vlan_profile_request.py +145 -0
- extremecloudiq/model/xiq_update_webhook_subscription_request.py +141 -0
- extremecloudiq/model/xiq_usage_and_capacity_dashboard.py +101 -0
- extremecloudiq/model/xiq_usage_and_capacity_grid_filter.py +298 -0
- extremecloudiq/model/xiq_usage_capacity_grid_response.py +421 -0
- extremecloudiq/model/xiq_user.py +257 -0
- extremecloudiq/model/xiq_user_group.py +323 -0
- extremecloudiq/model/xiq_user_group_name.py +96 -0
- extremecloudiq/model/xiq_user_profile.py +137 -0
- extremecloudiq/model/xiq_user_profile_assignment.py +376 -0
- extremecloudiq/model/xiq_user_profile_assignment_radius_attribute.py +96 -0
- extremecloudiq/model/xiq_user_profile_assignment_rule.py +110 -0
- extremecloudiq/model/xiq_user_role.py +82 -0
- extremecloudiq/model/xiq_valid_daily_settings.py +122 -0
- extremecloudiq/model/xiq_valid_during_date_settings.py +118 -0
- extremecloudiq/model/xiq_valid_for_time_period_settings.py +119 -0
- extremecloudiq/model/xiq_valid_time_period_after_first_login.py +130 -0
- extremecloudiq/model/xiq_valid_time_period_after_id_creation.py +103 -0
- extremecloudiq/model/xiq_valid_time_period_after_type.py +52 -0
- extremecloudiq/model/xiq_vhm_setting.py +170 -0
- extremecloudiq/model/xiq_vhm_setting_info.py +200 -0
- extremecloudiq/model/xiq_vhm_status.py +91 -0
- extremecloudiq/model/xiq_viq.py +186 -0
- extremecloudiq/model/xiq_viq_export_import_status_response.py +225 -0
- extremecloudiq/model/xiq_viq_export_response.py +110 -0
- extremecloudiq/model/xiq_viq_import_response.py +98 -0
- extremecloudiq/model/xiq_viq_license.py +223 -0
- extremecloudiq/model/xiq_viq_operation_type.py +50 -0
- extremecloudiq/model/xiq_viq_task_progress.py +109 -0
- extremecloudiq/model/xiq_vlan_object_classified_entry.py +157 -0
- extremecloudiq/model/xiq_vlan_profile.py +203 -0
- extremecloudiq/model/xiq_vlan_profile_filter.py +103 -0
- extremecloudiq/model/xiq_voss_device.py +123 -0
- extremecloudiq/model/xiq_voss_devices.py +108 -0
- extremecloudiq/model/xiq_webhook_subscription.py +195 -0
- extremecloudiq/model/xiq_weekday.py +77 -0
- extremecloudiq/model/xiq_wgs84.py +110 -0
- extremecloudiq/model/xiq_wifi_capacity_client_list_response.py +108 -0
- extremecloudiq/model/xiq_wifi_capacity_stats_response.py +108 -0
- extremecloudiq/model/xiq_wifi_efficiency_client_list_response.py +108 -0
- extremecloudiq/model/xiq_wifi_efficiency_stats_response.py +128 -0
- extremecloudiq/model/xiq_wifi_interface_type.py +57 -0
- extremecloudiq/model/xiq_wildcard_address_profile.py +233 -0
- extremecloudiq/model/xiq_wildcard_host_name_address_profile.py +223 -0
- extremecloudiq/model/xiq_wing_device.py +135 -0
- extremecloudiq/model/xiq_wing_devices.py +114 -0
- extremecloudiq/model/xiq_wired_event_entity.py +141 -0
- extremecloudiq/model/xiq_wired_filter_type.py +67 -0
- extremecloudiq/model/xiq_wired_hardware_by_location_response.py +128 -0
- extremecloudiq/model/xiq_wired_hardware_entity.py +126 -0
- extremecloudiq/model/xiq_wired_hardware_response.py +108 -0
- extremecloudiq/model/xiq_wired_quality_index_response.py +91 -0
- extremecloudiq/model/xiq_wired_view_type.py +45 -0
- extremecloudiq/model/xiq_wireless_apps_response.py +121 -0
- extremecloudiq/model/xiq_wireless_client.py +120 -0
- extremecloudiq/model/xiq_wireless_client_health_criteria_param.py +311 -0
- extremecloudiq/model/xiq_wireless_client_health_grid_filter_metadata.py +325 -0
- extremecloudiq/model/xiq_wireless_connectivity_performance_response.py +108 -0
- extremecloudiq/model/xiq_wireless_dashboard_criteria_param_response.py +114 -0
- extremecloudiq/model/xiq_wireless_device_health_criteria_param.py +196 -0
- extremecloudiq/model/xiq_wireless_device_health_grid_filter.py +182 -0
- extremecloudiq/model/xiq_wireless_device_health_sort_field.py +70 -0
- extremecloudiq/model/xiq_wireless_event_retries_entity.py +131 -0
- extremecloudiq/model/xiq_wireless_filter_type.py +72 -0
- extremecloudiq/model/xiq_wireless_if_name.py +57 -0
- extremecloudiq/model/xiq_wireless_int_per_device.py +106 -0
- extremecloudiq/model/xiq_wireless_interface_graph.py +99 -0
- extremecloudiq/model/xiq_wireless_interfaces_stats.py +111 -0
- extremecloudiq/model/xiq_wireless_performance_entity.py +151 -0
- extremecloudiq/model/xiq_wireless_performance_retries_entity.py +101 -0
- extremecloudiq/model/xiq_wireless_quality_index_by_location_response.py +111 -0
- extremecloudiq/model/xiq_wireless_quality_index_response.py +101 -0
- extremecloudiq/model/xiq_wireless_time_to_connect_entity.py +186 -0
- extremecloudiq/model/xiq_wireless_time_to_connect_response.py +108 -0
- extremecloudiq/model/xiq_wireless_usage_capacity_criteria_param.py +491 -0
- extremecloudiq/model/xiq_wireless_usage_capacity_excessive_utilization.py +111 -0
- extremecloudiq/model/xiq_wireless_views_list_type.py +50 -0
- extremecloudiq/model/xiq_wireless_views_type_response.py +103 -0
- extremecloudiq/model/xiq_wireless_wifi.py +188 -0
- extremecloudiq/model/xiq_wireless_wifi2.py +228 -0
- extremecloudiq/model/xiq_wireless_wlan.py +130 -0
- extremecloudiq/model/xiq_zsubelement.py +113 -0
- extremecloudiq/model/xiq_zsubelement_above_floor.py +98 -0
- extremecloudiq/models/__init__.py +855 -722
- extremecloudiq/paths/__init__.py +412 -0
- extremecloudiq/paths/account_external/__init__.py +7 -0
- extremecloudiq/paths/account_external/get.py +349 -0
- extremecloudiq/paths/account_home/__init__.py +7 -0
- extremecloudiq/paths/account_home/get.py +324 -0
- extremecloudiq/paths/account_switch/__init__.py +7 -0
- extremecloudiq/paths/account_switch/post.py +378 -0
- extremecloudiq/paths/account_third_party_applications/__init__.py +7 -0
- extremecloudiq/paths/account_third_party_applications/get.py +349 -0
- extremecloudiq/paths/account_vhm_setting/__init__.py +7 -0
- extremecloudiq/paths/account_vhm_setting/get.py +324 -0
- extremecloudiq/paths/account_vhm_setting_id/__init__.py +7 -0
- extremecloudiq/paths/account_vhm_setting_id/put.py +476 -0
- extremecloudiq/paths/account_vhm_status/__init__.py +7 -0
- extremecloudiq/paths/account_vhm_status/get.py +324 -0
- extremecloudiq/paths/account_viq/__init__.py +7 -0
- extremecloudiq/paths/account_viq/get.py +324 -0
- extremecloudiq/paths/account_viq_backup/__init__.py +7 -0
- extremecloudiq/paths/account_viq_backup/post.py +316 -0
- extremecloudiq/paths/account_viq_default_device_password/__init__.py +7 -0
- extremecloudiq/paths/account_viq_default_device_password/get.py +324 -0
- extremecloudiq/paths/account_viq_default_device_password/put.py +410 -0
- extremecloudiq/paths/account_viq_download/__init__.py +7 -0
- extremecloudiq/paths/account_viq_download/get.py +400 -0
- extremecloudiq/paths/account_viq_export/__init__.py +7 -0
- extremecloudiq/paths/account_viq_export/post.py +387 -0
- extremecloudiq/paths/account_viq_export_import_status/__init__.py +7 -0
- extremecloudiq/paths/account_viq_export_import_status/get.py +380 -0
- extremecloudiq/paths/account_viq_import/__init__.py +7 -0
- extremecloudiq/paths/account_viq_import/post.py +535 -0
- extremecloudiq/paths/account_viq_reset/__init__.py +7 -0
- extremecloudiq/paths/account_viq_reset/post.py +316 -0
- extremecloudiq/paths/acct_api_token/__init__.py +7 -0
- extremecloudiq/paths/acct_api_token/get.py +435 -0
- extremecloudiq/paths/acct_api_token/post.py +389 -0
- extremecloudiq/paths/acct_api_token_delete/__init__.py +7 -0
- extremecloudiq/paths/acct_api_token_delete/delete.py +393 -0
- extremecloudiq/paths/acct_api_token_export/__init__.py +7 -0
- extremecloudiq/paths/acct_api_token_export/get.py +419 -0
- extremecloudiq/paths/acct_api_token_id/__init__.py +7 -0
- extremecloudiq/paths/acct_api_token_id/delete.py +370 -0
- extremecloudiq/paths/acct_api_token_id/patch.py +476 -0
- extremecloudiq/paths/ad_servers/__init__.py +7 -0
- extremecloudiq/paths/ad_servers/get.py +406 -0
- extremecloudiq/paths/afcserver/__init__.py +7 -0
- extremecloudiq/paths/afcserver/get.py +379 -0
- extremecloudiq/paths/afcserver_server_id/__init__.py +7 -0
- extremecloudiq/paths/afcserver_server_id/get.py +378 -0
- extremecloudiq/paths/afcserver_statistics_server_id/__init__.py +7 -0
- extremecloudiq/paths/afcserver_statistics_server_id/get.py +452 -0
- extremecloudiq/paths/alert_policies/__init__.py +7 -0
- extremecloudiq/paths/alert_policies/get.py +388 -0
- extremecloudiq/paths/alert_policies/post.py +419 -0
- extremecloudiq/paths/alert_policies_available_sites/__init__.py +7 -0
- extremecloudiq/paths/alert_policies_available_sites/get.py +349 -0
- extremecloudiq/paths/alert_policies_id/__init__.py +7 -0
- extremecloudiq/paths/alert_policies_id/delete.py +370 -0
- extremecloudiq/paths/alert_policies_id/get.py +378 -0
- extremecloudiq/paths/alert_policies_id/put.py +476 -0
- extremecloudiq/paths/alert_policies_policy_id_rules_rule_id/__init__.py +7 -0
- extremecloudiq/paths/alert_policies_policy_id_rules_rule_id/get.py +387 -0
- extremecloudiq/paths/alert_policies_policy_id_rules_rule_id/put.py +485 -0
- extremecloudiq/paths/alert_policies_policy_id_rules_rule_id_disable/__init__.py +7 -0
- extremecloudiq/paths/alert_policies_policy_id_rules_rule_id_disable/post.py +387 -0
- extremecloudiq/paths/alert_policies_policy_id_rules_rule_id_enable/__init__.py +7 -0
- extremecloudiq/paths/alert_policies_policy_id_rules_rule_id_enable/post.py +387 -0
- extremecloudiq/paths/alert_subscriptions_emails/__init__.py +7 -0
- extremecloudiq/paths/alert_subscriptions_emails/get.py +349 -0
- extremecloudiq/paths/alert_subscriptions_emails/post.py +419 -0
- extremecloudiq/paths/alert_subscriptions_emails_delete/__init__.py +7 -0
- extremecloudiq/paths/alert_subscriptions_emails_delete/post.py +476 -0
- extremecloudiq/paths/alert_subscriptions_emails_id/__init__.py +7 -0
- extremecloudiq/paths/alert_subscriptions_emails_id/delete.py +370 -0
- extremecloudiq/paths/alert_subscriptions_emails_id/get.py +378 -0
- extremecloudiq/paths/alert_subscriptions_emails_id/put.py +476 -0
- extremecloudiq/paths/alert_subscriptions_emails_id_verify/__init__.py +7 -0
- extremecloudiq/paths/alert_subscriptions_emails_id_verify/post.py +370 -0
- extremecloudiq/paths/alert_subscriptions_servicenow/__init__.py +7 -0
- extremecloudiq/paths/alert_subscriptions_servicenow/get.py +349 -0
- extremecloudiq/paths/alert_subscriptions_servicenow/post.py +419 -0
- extremecloudiq/paths/alert_subscriptions_servicenow_delete/__init__.py +7 -0
- extremecloudiq/paths/alert_subscriptions_servicenow_delete/post.py +473 -0
- extremecloudiq/paths/alert_subscriptions_servicenow_id/__init__.py +7 -0
- extremecloudiq/paths/alert_subscriptions_servicenow_id/get.py +378 -0
- extremecloudiq/paths/alert_subscriptions_servicenow_id/patch.py +473 -0
- extremecloudiq/paths/alert_subscriptions_servicenow_id/put.py +473 -0
- extremecloudiq/paths/alert_subscriptions_webhooks/__init__.py +7 -0
- extremecloudiq/paths/alert_subscriptions_webhooks/get.py +349 -0
- extremecloudiq/paths/alert_subscriptions_webhooks/post.py +419 -0
- extremecloudiq/paths/alert_subscriptions_webhooks_delete/__init__.py +7 -0
- extremecloudiq/paths/alert_subscriptions_webhooks_delete/post.py +476 -0
- extremecloudiq/paths/alert_subscriptions_webhooks_id/__init__.py +7 -0
- extremecloudiq/paths/alert_subscriptions_webhooks_id/delete.py +370 -0
- extremecloudiq/paths/alert_subscriptions_webhooks_id/get.py +378 -0
- extremecloudiq/paths/alert_subscriptions_webhooks_id/put.py +476 -0
- extremecloudiq/paths/alerts/__init__.py +7 -0
- extremecloudiq/paths/alerts/get.py +584 -0
- extremecloudiq/paths/alerts_acknowledge/__init__.py +7 -0
- extremecloudiq/paths/alerts_acknowledge/post.py +444 -0
- extremecloudiq/paths/alerts_count_by_group/__init__.py +7 -0
- extremecloudiq/paths/alerts_count_by_group/get.py +487 -0
- extremecloudiq/paths/alerts_reports/__init__.py +7 -0
- extremecloudiq/paths/alerts_reports/post.py +547 -0
- extremecloudiq/paths/alerts_reports_id/__init__.py +7 -0
- extremecloudiq/paths/alerts_reports_id/get.py +399 -0
- extremecloudiq/paths/ap_afc_diagnostics_id/__init__.py +7 -0
- extremecloudiq/paths/ap_afc_diagnostics_id/get.py +432 -0
- extremecloudiq/paths/ap_afc_interface_details_sn/__init__.py +7 -0
- extremecloudiq/paths/ap_afc_interface_details_sn/get.py +378 -0
- extremecloudiq/paths/ap_spectrum_/__init__.py +7 -0
- extremecloudiq/paths/ap_spectrum_/post.py +501 -0
- extremecloudiq/paths/applications/__init__.py +7 -0
- extremecloudiq/paths/applications/get.py +464 -0
- extremecloudiq/paths/applications_id_clients_topn/__init__.py +7 -0
- extremecloudiq/paths/applications_id_clients_topn/get.py +487 -0
- extremecloudiq/paths/applications_topn/__init__.py +7 -0
- extremecloudiq/paths/applications_topn/get.py +478 -0
- extremecloudiq/paths/aps_afc_query_/__init__.py +7 -0
- extremecloudiq/paths/aps_afc_query_/get.py +378 -0
- extremecloudiq/paths/aps_afc_update/__init__.py +7 -0
- extremecloudiq/paths/aps_afc_update/post.py +411 -0
- extremecloudiq/paths/auth_apitoken/__init__.py +7 -0
- extremecloudiq/paths/auth_apitoken/post.py +419 -0
- extremecloudiq/paths/auth_apitoken_info/__init__.py +7 -0
- extremecloudiq/paths/auth_apitoken_info/get.py +324 -0
- extremecloudiq/paths/auth_apitoken_validate/__init__.py +7 -0
- extremecloudiq/paths/auth_apitoken_validate/post.py +406 -0
- extremecloudiq/paths/auth_permissions/__init__.py +7 -0
- extremecloudiq/paths/auth_permissions/get.py +343 -0
- extremecloudiq/paths/auth_permissions_check/__init__.py +7 -0
- extremecloudiq/paths/auth_permissions_check/post.py +439 -0
- extremecloudiq/paths/backup_history_delete/__init__.py +7 -0
- extremecloudiq/paths/backup_history_delete/delete.py +371 -0
- extremecloudiq/paths/backup_history_grid/__init__.py +7 -0
- extremecloudiq/paths/backup_history_grid/get.py +425 -0
- extremecloudiq/paths/backup_history_restore/__init__.py +7 -0
- extremecloudiq/paths/backup_history_restore/post.py +371 -0
- extremecloudiq/paths/ccgs/__init__.py +7 -0
- extremecloudiq/paths/ccgs/get.py +435 -0
- extremecloudiq/paths/ccgs/post.py +419 -0
- extremecloudiq/paths/ccgs_id/__init__.py +7 -0
- extremecloudiq/paths/ccgs_id/delete.py +370 -0
- extremecloudiq/paths/ccgs_id/get.py +378 -0
- extremecloudiq/paths/ccgs_id/put.py +476 -0
- extremecloudiq/paths/certificates/__init__.py +7 -0
- extremecloudiq/paths/certificates/get.py +416 -0
- extremecloudiq/paths/classification_rules/__init__.py +7 -0
- extremecloudiq/paths/classification_rules/get.py +406 -0
- extremecloudiq/paths/classification_rules/post.py +419 -0
- extremecloudiq/paths/classification_rules_id/__init__.py +7 -0
- extremecloudiq/paths/classification_rules_id/delete.py +370 -0
- extremecloudiq/paths/classification_rules_id/get.py +378 -0
- extremecloudiq/paths/classification_rules_id/put.py +476 -0
- extremecloudiq/paths/client_details_overview_chart_data_client_id/__init__.py +7 -0
- extremecloudiq/paths/client_details_overview_chart_data_client_id/get.py +452 -0
- extremecloudiq/paths/client_details_overview_info_client_id/__init__.py +7 -0
- extremecloudiq/paths/client_details_overview_info_client_id/get.py +443 -0
- extremecloudiq/paths/client_monitor_profiles/__init__.py +7 -0
- extremecloudiq/paths/client_monitor_profiles/get.py +406 -0
- extremecloudiq/paths/client_monitor_profiles/post.py +419 -0
- extremecloudiq/paths/client_monitor_profiles_id/__init__.py +7 -0
- extremecloudiq/paths/client_monitor_profiles_id/delete.py +370 -0
- extremecloudiq/paths/client_monitor_profiles_id/get.py +378 -0
- extremecloudiq/paths/client_monitor_profiles_id/put.py +476 -0
- extremecloudiq/paths/clients_active/__init__.py +7 -0
- extremecloudiq/paths/clients_active/get.py +771 -0
- extremecloudiq/paths/clients_active_count/__init__.py +7 -0
- extremecloudiq/paths/clients_active_count/get.py +612 -0
- extremecloudiq/paths/clients_alias/__init__.py +7 -0
- extremecloudiq/paths/clients_alias/put.py +436 -0
- extremecloudiq/paths/clients_by_mac_client_mac/__init__.py +7 -0
- extremecloudiq/paths/clients_by_mac_client_mac/delete.py +370 -0
- extremecloudiq/paths/clients_by_mac_client_mac/get.py +493 -0
- extremecloudiq/paths/clients_id/__init__.py +7 -0
- extremecloudiq/paths/clients_id/get.py +493 -0
- extremecloudiq/paths/clients_summary/__init__.py +7 -0
- extremecloudiq/paths/clients_summary/get.py +582 -0
- extremecloudiq/paths/clients_usage/__init__.py +7 -0
- extremecloudiq/paths/clients_usage/get.py +446 -0
- extremecloudiq/paths/copilot_anomalies_adverse_traffic_device_stats/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_adverse_traffic_device_stats/get.py +378 -0
- extremecloudiq/paths/copilot_anomalies_adverse_traffic_packet_counts/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_adverse_traffic_packet_counts/get.py +378 -0
- extremecloudiq/paths/copilot_anomalies_anomalies_by_category/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_anomalies_by_category/get.py +426 -0
- extremecloudiq/paths/copilot_anomalies_devices_by_location/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_devices_by_location/get.py +410 -0
- extremecloudiq/paths/copilot_anomalies_devices_feedback/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_devices_feedback/put.py +418 -0
- extremecloudiq/paths/copilot_anomalies_devices_update_action/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_devices_update_action/put.py +418 -0
- extremecloudiq/paths/copilot_anomalies_devices_with_locations/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_devices_with_locations/get.py +492 -0
- extremecloudiq/paths/copilot_anomalies_dfs_recurrence_channel_stats/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_dfs_recurrence_channel_stats/get.py +378 -0
- extremecloudiq/paths/copilot_anomalies_dfs_recurrence_count_stats/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_dfs_recurrence_count_stats/get.py +378 -0
- extremecloudiq/paths/copilot_anomalies_exclude_vlans/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_exclude_vlans/post.py +418 -0
- extremecloudiq/paths/copilot_anomalies_exclude_vlans_csv/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_exclude_vlans_csv/post.py +735 -0
- extremecloudiq/paths/copilot_anomalies_excluded_vlans_list/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_excluded_vlans_list/get.py +405 -0
- extremecloudiq/paths/copilot_anomalies_hardware_health_client_list/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_hardware_health_client_list/get.py +388 -0
- extremecloudiq/paths/copilot_anomalies_hardware_health_cpu_mem_stats/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_hardware_health_cpu_mem_stats/get.py +399 -0
- extremecloudiq/paths/copilot_anomalies_hardware_health_stats/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_hardware_health_stats/get.py +378 -0
- extremecloudiq/paths/copilot_anomalies_locations/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_locations/get.py +444 -0
- extremecloudiq/paths/copilot_anomalies_missing_vlan_count/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_missing_vlan_count/get.py +452 -0
- extremecloudiq/paths/copilot_anomalies_notifications/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_notifications/get.py +323 -0
- extremecloudiq/paths/copilot_anomalies_poeflapping_lldp_cdp_info/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_poeflapping_lldp_cdp_info/get.py +409 -0
- extremecloudiq/paths/copilot_anomalies_poeflapping_stats/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_poeflapping_stats/get.py +378 -0
- extremecloudiq/paths/copilot_anomalies_poeflapping_trends/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_poeflapping_trends/get.py +378 -0
- extremecloudiq/paths/copilot_anomalies_port_efficiency_speed_duplex_stats/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_port_efficiency_speed_duplex_stats/get.py +378 -0
- extremecloudiq/paths/copilot_anomalies_port_efficiency_stats/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_port_efficiency_stats/get.py +387 -0
- extremecloudiq/paths/copilot_anomalies_report/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_report/get.py +473 -0
- extremecloudiq/paths/copilot_anomalies_update_action/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_update_action/put.py +418 -0
- extremecloudiq/paths/copilot_anomalies_update_device_action/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_update_device_action/put.py +468 -0
- extremecloudiq/paths/copilot_anomalies_wifi_capacity_client_list/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_wifi_capacity_client_list/get.py +398 -0
- extremecloudiq/paths/copilot_anomalies_wifi_capacity_stats/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_wifi_capacity_stats/get.py +378 -0
- extremecloudiq/paths/copilot_anomalies_wifi_efficiency_client_list/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_wifi_efficiency_client_list/get.py +398 -0
- extremecloudiq/paths/copilot_anomalies_wifi_efficiency_stats/__init__.py +7 -0
- extremecloudiq/paths/copilot_anomalies_wifi_efficiency_stats/get.py +378 -0
- extremecloudiq/paths/copilot_assurance_scans_overview/__init__.py +7 -0
- extremecloudiq/paths/copilot_assurance_scans_overview/get.py +323 -0
- extremecloudiq/paths/copilot_connectivity_client_type/__init__.py +7 -0
- extremecloudiq/paths/copilot_connectivity_client_type/get.py +417 -0
- extremecloudiq/paths/copilot_connectivity_locations/__init__.py +7 -0
- extremecloudiq/paths/copilot_connectivity_locations/get.py +474 -0
- extremecloudiq/paths/copilot_connectivity_wired_events/__init__.py +7 -0
- extremecloudiq/paths/copilot_connectivity_wired_events/get.py +504 -0
- extremecloudiq/paths/copilot_connectivity_wired_experience/__init__.py +7 -0
- extremecloudiq/paths/copilot_connectivity_wired_experience/get.py +437 -0
- extremecloudiq/paths/copilot_connectivity_wired_hardware/__init__.py +7 -0
- extremecloudiq/paths/copilot_connectivity_wired_hardware/get.py +419 -0
- extremecloudiq/paths/copilot_connectivity_wired_locations_hardware/__init__.py +7 -0
- extremecloudiq/paths/copilot_connectivity_wired_locations_hardware/get.py +418 -0
- extremecloudiq/paths/copilot_connectivity_wired_quality_index/__init__.py +7 -0
- extremecloudiq/paths/copilot_connectivity_wired_quality_index/get.py +417 -0
- extremecloudiq/paths/copilot_connectivity_wireless_apps/__init__.py +7 -0
- extremecloudiq/paths/copilot_connectivity_wireless_apps/get.py +436 -0
- extremecloudiq/paths/copilot_connectivity_wireless_events/__init__.py +7 -0
- extremecloudiq/paths/copilot_connectivity_wireless_events/get.py +522 -0
- extremecloudiq/paths/copilot_connectivity_wireless_experience/__init__.py +7 -0
- extremecloudiq/paths/copilot_connectivity_wireless_experience/get.py +456 -0
- extremecloudiq/paths/copilot_connectivity_wireless_locations_events/__init__.py +7 -0
- extremecloudiq/paths/copilot_connectivity_wireless_locations_events/get.py +512 -0
- extremecloudiq/paths/copilot_connectivity_wireless_locations_performance/__init__.py +7 -0
- extremecloudiq/paths/copilot_connectivity_wireless_locations_performance/get.py +426 -0
- extremecloudiq/paths/copilot_connectivity_wireless_locations_quality_index/__init__.py +7 -0
- extremecloudiq/paths/copilot_connectivity_wireless_locations_quality_index/get.py +426 -0
- extremecloudiq/paths/copilot_connectivity_wireless_locations_time_to_connect/__init__.py +7 -0
- extremecloudiq/paths/copilot_connectivity_wireless_locations_time_to_connect/get.py +426 -0
- extremecloudiq/paths/copilot_connectivity_wireless_performance/__init__.py +7 -0
- extremecloudiq/paths/copilot_connectivity_wireless_performance/get.py +436 -0
- extremecloudiq/paths/copilot_connectivity_wireless_quality_index/__init__.py +7 -0
- extremecloudiq/paths/copilot_connectivity_wireless_quality_index/get.py +436 -0
- extremecloudiq/paths/copilot_connectivity_wireless_time_to_connect/__init__.py +7 -0
- extremecloudiq/paths/copilot_connectivity_wireless_time_to_connect/get.py +436 -0
- extremecloudiq/paths/copilot_connectivity_wireless_views/__init__.py +7 -0
- extremecloudiq/paths/copilot_connectivity_wireless_views/get.py +379 -0
- extremecloudiq/paths/countries/__init__.py +7 -0
- extremecloudiq/paths/countries/get.py +345 -0
- extremecloudiq/paths/countries_country_alpha2_code_states/__init__.py +7 -0
- extremecloudiq/paths/countries_country_alpha2_code_states/get.py +399 -0
- extremecloudiq/paths/countries_country_code_validate/__init__.py +7 -0
- extremecloudiq/paths/countries_country_code_validate/get.py +373 -0
- extremecloudiq/paths/credential_distribution_groups/__init__.py +7 -0
- extremecloudiq/paths/credential_distribution_groups/delete.py +393 -0
- extremecloudiq/paths/credential_distribution_groups/get.py +485 -0
- extremecloudiq/paths/credential_distribution_groups/post.py +419 -0
- extremecloudiq/paths/credential_distribution_groups_id/__init__.py +7 -0
- extremecloudiq/paths/credential_distribution_groups_id/put.py +476 -0
- extremecloudiq/paths/cwps/__init__.py +7 -0
- extremecloudiq/paths/cwps/get.py +406 -0
- extremecloudiq/paths/d360_client_graph/__init__.py +7 -0
- extremecloudiq/paths/d360_client_graph/post.py +486 -0
- extremecloudiq/paths/d360_client_grid/__init__.py +7 -0
- extremecloudiq/paths/d360_client_grid/post.py +762 -0
- extremecloudiq/paths/d360_client_grid_metadata/__init__.py +7 -0
- extremecloudiq/paths/d360_client_grid_metadata/get.py +399 -0
- extremecloudiq/paths/d360_client_stats/__init__.py +7 -0
- extremecloudiq/paths/d360_client_stats/get.py +408 -0
- extremecloudiq/paths/d360_device_interfaces/__init__.py +7 -0
- extremecloudiq/paths/d360_device_interfaces/get.py +489 -0
- extremecloudiq/paths/d360_device_issues/__init__.py +7 -0
- extremecloudiq/paths/d360_device_issues/get.py +399 -0
- extremecloudiq/paths/d360_device_metadata/__init__.py +7 -0
- extremecloudiq/paths/d360_device_metadata/get.py +379 -0
- extremecloudiq/paths/d360_device_stats/__init__.py +7 -0
- extremecloudiq/paths/d360_device_stats/get.py +424 -0
- extremecloudiq/paths/d360_overview_devices_summary/__init__.py +7 -0
- extremecloudiq/paths/d360_overview_devices_summary/get.py +379 -0
- extremecloudiq/paths/d360_ssid_metadata/__init__.py +7 -0
- extremecloudiq/paths/d360_ssid_metadata/get.py +399 -0
- extremecloudiq/paths/d360_wireless_interfaces_graph/__init__.py +7 -0
- extremecloudiq/paths/d360_wireless_interfaces_graph/get.py +470 -0
- extremecloudiq/paths/d360_wireless_interfaces_stats/__init__.py +7 -0
- extremecloudiq/paths/d360_wireless_interfaces_stats/get.py +408 -0
- extremecloudiq/paths/d360_wireless_surrounding_aps/__init__.py +7 -0
- extremecloudiq/paths/d360_wireless_surrounding_aps/post.py +543 -0
- extremecloudiq/paths/dashboard_alerts/__init__.py +7 -0
- extremecloudiq/paths/dashboard_alerts/post.py +416 -0
- extremecloudiq/paths/dashboard_assets/__init__.py +7 -0
- extremecloudiq/paths/dashboard_assets/post.py +416 -0
- extremecloudiq/paths/dashboard_clients/__init__.py +7 -0
- extremecloudiq/paths/dashboard_clients/post.py +416 -0
- extremecloudiq/paths/dashboard_device_types/__init__.py +7 -0
- extremecloudiq/paths/dashboard_device_types/get.py +345 -0
- extremecloudiq/paths/dashboard_devices/__init__.py +7 -0
- extremecloudiq/paths/dashboard_devices/post.py +416 -0
- extremecloudiq/paths/dashboard_export/__init__.py +7 -0
- extremecloudiq/paths/dashboard_export/post.py +553 -0
- extremecloudiq/paths/dashboard_sites_with_issues/__init__.py +7 -0
- extremecloudiq/paths/dashboard_sites_with_issues/post.py +569 -0
- extremecloudiq/paths/dashboard_usage_capacity/__init__.py +7 -0
- extremecloudiq/paths/dashboard_usage_capacity/post.py +419 -0
- extremecloudiq/paths/dashboard_wireless_client_health_connectivity_issues/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_client_health_connectivity_issues/post.py +419 -0
- extremecloudiq/paths/dashboard_wireless_client_health_export/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_client_health_export/post.py +527 -0
- extremecloudiq/paths/dashboard_wireless_client_health_filter_metadata/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_client_health_filter_metadata/post.py +418 -0
- extremecloudiq/paths/dashboard_wireless_client_health_frequency_distribution/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_client_health_frequency_distribution/post.py +419 -0
- extremecloudiq/paths/dashboard_wireless_client_health_grid/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_client_health_grid/post.py +543 -0
- extremecloudiq/paths/dashboard_wireless_client_health_issue_association/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_client_health_issue_association/post.py +538 -0
- extremecloudiq/paths/dashboard_wireless_client_health_issue_authentication/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_client_health_issue_authentication/post.py +501 -0
- extremecloudiq/paths/dashboard_wireless_client_health_issue_ipaddress/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_client_health_issue_ipaddress/post.py +538 -0
- extremecloudiq/paths/dashboard_wireless_client_health_issue_roaming/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_client_health_issue_roaming/post.py +538 -0
- extremecloudiq/paths/dashboard_wireless_client_health_roaming_issues/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_client_health_roaming_issues/post.py +419 -0
- extremecloudiq/paths/dashboard_wireless_dashboard_criteria/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_dashboard_criteria/get.py +324 -0
- extremecloudiq/paths/dashboard_wireless_dashboard_criteria/post.py +419 -0
- extremecloudiq/paths/dashboard_wireless_device_health_export/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_device_health_export/post.py +517 -0
- extremecloudiq/paths/dashboard_wireless_device_health_grid/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_device_health_grid/post.py +533 -0
- extremecloudiq/paths/dashboard_wireless_device_health_issues_cpu_usage_issues/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_device_health_issues_cpu_usage_issues/post.py +419 -0
- extremecloudiq/paths/dashboard_wireless_device_health_issues_memory_usage_issues/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_device_health_issues_memory_usage_issues/post.py +419 -0
- extremecloudiq/paths/dashboard_wireless_device_health_issues_poe_usage_issues/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_device_health_issues_poe_usage_issues/post.py +419 -0
- extremecloudiq/paths/dashboard_wireless_device_health_reboot_summary/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_device_health_reboot_summary/get.py +414 -0
- extremecloudiq/paths/dashboard_wireless_device_health_summary/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_device_health_summary/post.py +419 -0
- extremecloudiq/paths/dashboard_wireless_usage_capacity_excessive_packet_loss/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_usage_capacity_excessive_packet_loss/post.py +419 -0
- extremecloudiq/paths/dashboard_wireless_usage_capacity_excessive_retries/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_usage_capacity_excessive_retries/post.py +419 -0
- extremecloudiq/paths/dashboard_wireless_usage_capacity_excessive_utilization/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_usage_capacity_excessive_utilization/post.py +419 -0
- extremecloudiq/paths/dashboard_wireless_usage_capacity_export/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_usage_capacity_export/post.py +651 -0
- extremecloudiq/paths/dashboard_wireless_usage_capacity_grid/__init__.py +7 -0
- extremecloudiq/paths/dashboard_wireless_usage_capacity_grid/post.py +667 -0
- extremecloudiq/paths/deployments/__init__.py +7 -0
- extremecloudiq/paths/deployments/get.py +406 -0
- extremecloudiq/paths/deployments/post.py +476 -0
- extremecloudiq/paths/deployments_deployment_id/__init__.py +7 -0
- extremecloudiq/paths/deployments_deployment_id/delete.py +378 -0
- extremecloudiq/paths/deployments_deployment_id/get.py +378 -0
- extremecloudiq/paths/deployments_deployment_id/put.py +476 -0
- extremecloudiq/paths/deployments_deployment_id_status/__init__.py +7 -0
- extremecloudiq/paths/deployments_deployment_id_status/get.py +432 -0
- extremecloudiq/paths/deployments_firmware_metadatas/__init__.py +7 -0
- extremecloudiq/paths/deployments_firmware_metadatas/post.py +419 -0
- extremecloudiq/paths/deployments_overview/__init__.py +7 -0
- extremecloudiq/paths/deployments_overview/get.py +324 -0
- extremecloudiq/paths/deployments_status/__init__.py +7 -0
- extremecloudiq/paths/deployments_status/get.py +433 -0
- extremecloudiq/paths/devices/__init__.py +7 -0
- extremecloudiq/paths/devices/get.py +736 -0
- extremecloudiq/paths/devices_advanced_onboard/__init__.py +7 -0
- extremecloudiq/paths/devices_advanced_onboard/post.py +476 -0
- extremecloudiq/paths/devices_check_ownership/__init__.py +7 -0
- extremecloudiq/paths/devices_check_ownership/post.py +417 -0
- extremecloudiq/paths/devices_cli/__init__.py +7 -0
- extremecloudiq/paths/devices_cli/post.py +476 -0
- extremecloudiq/paths/devices_client_monitor_assign/__init__.py +7 -0
- extremecloudiq/paths/devices_client_monitor_assign/post.py +411 -0
- extremecloudiq/paths/devices_client_monitor_query/__init__.py +7 -0
- extremecloudiq/paths/devices_client_monitor_query/post.py +450 -0
- extremecloudiq/paths/devices_client_monitor_revoke/__init__.py +7 -0
- extremecloudiq/paths/devices_client_monitor_revoke/post.py +411 -0
- extremecloudiq/paths/devices_country_code_assign/__init__.py +7 -0
- extremecloudiq/paths/devices_country_code_assign/post.py +411 -0
- extremecloudiq/paths/devices_delete/__init__.py +7 -0
- extremecloudiq/paths/devices_delete/post.py +468 -0
- extremecloudiq/paths/devices_digital_twin/__init__.py +7 -0
- extremecloudiq/paths/devices_digital_twin/get.py +476 -0
- extremecloudiq/paths/devices_ibeacon/__init__.py +7 -0
- extremecloudiq/paths/devices_ibeacon/put.py +411 -0
- extremecloudiq/paths/devices_id/__init__.py +7 -0
- extremecloudiq/paths/devices_id/delete.py +424 -0
- extremecloudiq/paths/devices_id/get.py +493 -0
- extremecloudiq/paths/devices_id_alarms/__init__.py +7 -0
- extremecloudiq/paths/devices_id_alarms/get.py +480 -0
- extremecloudiq/paths/devices_id_bounce_port/__init__.py +7 -0
- extremecloudiq/paths/devices_id_bounce_port/post.py +476 -0
- extremecloudiq/paths/devices_id_cli/__init__.py +7 -0
- extremecloudiq/paths/devices_id_cli/post.py +497 -0
- extremecloudiq/paths/devices_id_client_monitor/__init__.py +7 -0
- extremecloudiq/paths/devices_id_client_monitor/delete.py +370 -0
- extremecloudiq/paths/devices_id_client_monitor/get.py +378 -0
- extremecloudiq/paths/devices_id_client_monitor/put.py +468 -0
- extremecloudiq/paths/devices_id_description/__init__.py +7 -0
- extremecloudiq/paths/devices_id_description/put.py +476 -0
- extremecloudiq/paths/devices_id_ftm_settings/__init__.py +7 -0
- extremecloudiq/paths/devices_id_ftm_settings/delete.py +370 -0
- extremecloudiq/paths/devices_id_ftm_settings/get.py +378 -0
- extremecloudiq/paths/devices_id_ftm_settings/put.py +476 -0
- extremecloudiq/paths/devices_id_gallery_image/__init__.py +7 -0
- extremecloudiq/paths/devices_id_gallery_image/get.py +433 -0
- extremecloudiq/paths/devices_id_geolocation/__init__.py +7 -0
- extremecloudiq/paths/devices_id_geolocation/get.py +378 -0
- extremecloudiq/paths/devices_id_history_cpu_mem/__init__.py +7 -0
- extremecloudiq/paths/devices_id_history_cpu_mem/get.py +486 -0
- extremecloudiq/paths/devices_id_hostname/__init__.py +7 -0
- extremecloudiq/paths/devices_id_hostname/put.py +425 -0
- extremecloudiq/paths/devices_id_ibeacon/__init__.py +7 -0
- extremecloudiq/paths/devices_id_ibeacon/get.py +378 -0
- extremecloudiq/paths/devices_id_installation_report/__init__.py +7 -0
- extremecloudiq/paths/devices_id_installation_report/get.py +378 -0
- extremecloudiq/paths/devices_id_interfaces_wifi/__init__.py +7 -0
- extremecloudiq/paths/devices_id_interfaces_wifi/get.py +468 -0
- extremecloudiq/paths/devices_id_iot/__init__.py +7 -0
- extremecloudiq/paths/devices_id_iot/get.py +378 -0
- extremecloudiq/paths/devices_id_iot_disable/__init__.py +7 -0
- extremecloudiq/paths/devices_id_iot_disable/post.py +370 -0
- extremecloudiq/paths/devices_id_iot_enable/__init__.py +7 -0
- extremecloudiq/paths/devices_id_iot_enable/post.py +467 -0
- extremecloudiq/paths/devices_id_location/__init__.py +7 -0
- extremecloudiq/paths/devices_id_location/delete.py +370 -0
- extremecloudiq/paths/devices_id_location/get.py +378 -0
- extremecloudiq/paths/devices_id_location/put.py +468 -0
- extremecloudiq/paths/devices_id_manage/__init__.py +7 -0
- extremecloudiq/paths/devices_id_manage/post.py +370 -0
- extremecloudiq/paths/devices_id_monitor_refresh/__init__.py +7 -0
- extremecloudiq/paths/devices_id_monitor_refresh/post.py +457 -0
- extremecloudiq/paths/devices_id_monitor_refresh_status/__init__.py +7 -0
- extremecloudiq/paths/devices_id_monitor_refresh_status/get.py +433 -0
- extremecloudiq/paths/devices_id_network_policy/__init__.py +7 -0
- extremecloudiq/paths/devices_id_network_policy/delete.py +370 -0
- extremecloudiq/paths/devices_id_network_policy/get.py +378 -0
- extremecloudiq/paths/devices_id_network_policy/put.py +425 -0
- extremecloudiq/paths/devices_id_radio_operating_mode/__init__.py +7 -0
- extremecloudiq/paths/devices_id_radio_operating_mode/get.py +378 -0
- extremecloudiq/paths/devices_id_radio_operating_mode/put.py +468 -0
- extremecloudiq/paths/devices_id_reboot/__init__.py +7 -0
- extremecloudiq/paths/devices_id_reboot/post.py +370 -0
- extremecloudiq/paths/devices_id_reset/__init__.py +7 -0
- extremecloudiq/paths/devices_id_reset/post.py +424 -0
- extremecloudiq/paths/devices_id_ssid_override/__init__.py +7 -0
- extremecloudiq/paths/devices_id_ssid_override/post.py +468 -0
- extremecloudiq/paths/devices_id_ssid_status/__init__.py +7 -0
- extremecloudiq/paths/devices_id_ssid_status/get.py +409 -0
- extremecloudiq/paths/devices_id_ssid_status_change/__init__.py +7 -0
- extremecloudiq/paths/devices_id_ssid_status_change/post.py +468 -0
- extremecloudiq/paths/devices_id_thread_commissioner_start/__init__.py +7 -0
- extremecloudiq/paths/devices_id_thread_commissioner_start/post.py +468 -0
- extremecloudiq/paths/devices_id_thread_commissioner_stop/__init__.py +7 -0
- extremecloudiq/paths/devices_id_thread_commissioner_stop/post.py +468 -0
- extremecloudiq/paths/devices_id_unmanage/__init__.py +7 -0
- extremecloudiq/paths/devices_id_unmanage/post.py +370 -0
- extremecloudiq/paths/devices_id_visible/__init__.py +7 -0
- extremecloudiq/paths/devices_id_visible/put.py +425 -0
- extremecloudiq/paths/devices_location_assign/__init__.py +7 -0
- extremecloudiq/paths/devices_location_assign/post.py +411 -0
- extremecloudiq/paths/devices_location_query/__init__.py +7 -0
- extremecloudiq/paths/devices_location_query/post.py +450 -0
- extremecloudiq/paths/devices_location_revoke/__init__.py +7 -0
- extremecloudiq/paths/devices_location_revoke/post.py +411 -0
- extremecloudiq/paths/devices_manage/__init__.py +7 -0
- extremecloudiq/paths/devices_manage/post.py +411 -0
- extremecloudiq/paths/devices_network_policy_assign/__init__.py +7 -0
- extremecloudiq/paths/devices_network_policy_assign/post.py +411 -0
- extremecloudiq/paths/devices_network_policy_policy_id/__init__.py +7 -0
- extremecloudiq/paths/devices_network_policy_policy_id/get.py +460 -0
- extremecloudiq/paths/devices_network_policy_query/__init__.py +7 -0
- extremecloudiq/paths/devices_network_policy_query/post.py +450 -0
- extremecloudiq/paths/devices_network_policy_revoke/__init__.py +7 -0
- extremecloudiq/paths/devices_network_policy_revoke/post.py +411 -0
- extremecloudiq/paths/devices_onboard/__init__.py +7 -0
- extremecloudiq/paths/devices_onboard/post.py +411 -0
- extremecloudiq/paths/devices_os_change/__init__.py +7 -0
- extremecloudiq/paths/devices_os_change/post.py +411 -0
- extremecloudiq/paths/devices_radio_information/__init__.py +7 -0
- extremecloudiq/paths/devices_radio_information/get.py +447 -0
- extremecloudiq/paths/devices_radius_proxy_assign/__init__.py +7 -0
- extremecloudiq/paths/devices_radius_proxy_assign/put.py +403 -0
- extremecloudiq/paths/devices_radius_proxy_revoke/__init__.py +7 -0
- extremecloudiq/paths/devices_radius_proxy_revoke/delete.py +393 -0
- extremecloudiq/paths/devices_reboot/__init__.py +7 -0
- extremecloudiq/paths/devices_reboot/post.py +411 -0
- extremecloudiq/paths/devices_rm_devices_connection_status/__init__.py +7 -0
- extremecloudiq/paths/devices_rm_devices_connection_status/post.py +509 -0
- extremecloudiq/paths/devices_rm_devices_metadata/__init__.py +7 -0
- extremecloudiq/paths/devices_rm_devices_metadata/post.py +544 -0
- extremecloudiq/paths/devices_rm_devices_page/__init__.py +7 -0
- extremecloudiq/paths/devices_rm_devices_page/post.py +637 -0
- extremecloudiq/paths/devices_rm_devices_page_export/__init__.py +7 -0
- extremecloudiq/paths/devices_rm_devices_page_export/post.py +621 -0
- extremecloudiq/paths/devices_rm_devices_stack_stack_id/__init__.py +7 -0
- extremecloudiq/paths/devices_rm_devices_stack_stack_id/get.py +403 -0
- extremecloudiq/paths/devices_stats/__init__.py +7 -0
- extremecloudiq/paths/devices_stats/get.py +378 -0
- extremecloudiq/paths/devices_unmanage/__init__.py +7 -0
- extremecloudiq/paths/devices_unmanage/post.py +411 -0
- extremecloudiq/paths/email_templates/__init__.py +7 -0
- extremecloudiq/paths/email_templates/get.py +404 -0
- extremecloudiq/paths/endusers/__init__.py +7 -0
- extremecloudiq/paths/endusers/get.py +468 -0
- extremecloudiq/paths/endusers/post.py +419 -0
- extremecloudiq/paths/endusers_id/__init__.py +7 -0
- extremecloudiq/paths/endusers_id/delete.py +370 -0
- extremecloudiq/paths/endusers_id/put.py +476 -0
- extremecloudiq/paths/endusers_id_regenerate_password/__init__.py +7 -0
- extremecloudiq/paths/endusers_id_regenerate_password/post.py +378 -0
- extremecloudiq/paths/essentials_eloc_clients_client_mac_last_known_location/__init__.py +7 -0
- extremecloudiq/paths/essentials_eloc_clients_client_mac_last_known_location/get.py +443 -0
- extremecloudiq/paths/geo_view/__init__.py +7 -0
- extremecloudiq/paths/geo_view/get.py +345 -0
- extremecloudiq/paths/hiq_context/__init__.py +7 -0
- extremecloudiq/paths/hiq_context/get.py +324 -0
- extremecloudiq/paths/hiq_context/put.py +411 -0
- extremecloudiq/paths/hiq_context_creating/__init__.py +7 -0
- extremecloudiq/paths/hiq_context_creating/get.py +323 -0
- extremecloudiq/paths/hiq_context_creating/put.py +410 -0
- extremecloudiq/paths/hiq_context_reading/__init__.py +7 -0
- extremecloudiq/paths/hiq_context_reading/get.py +345 -0
- extremecloudiq/paths/hiq_context_reading/put.py +432 -0
- extremecloudiq/paths/hiq_organizations/__init__.py +7 -0
- extremecloudiq/paths/hiq_organizations/get.py +349 -0
- extremecloudiq/paths/hiq_organizations/post.py +419 -0
- extremecloudiq/paths/hiq_organizations_id/__init__.py +7 -0
- extremecloudiq/paths/hiq_organizations_id/delete.py +370 -0
- extremecloudiq/paths/hiq_organizations_id_rename/__init__.py +7 -0
- extremecloudiq/paths/hiq_organizations_id_rename/post.py +467 -0
- extremecloudiq/paths/hiq_status/__init__.py +7 -0
- extremecloudiq/paths/hiq_status/get.py +324 -0
- extremecloudiq/paths/hotspot_profiles/__init__.py +7 -0
- extremecloudiq/paths/hotspot_profiles/get.py +406 -0
- extremecloudiq/paths/hotspot_profiles/post.py +419 -0
- extremecloudiq/paths/hotspot_profiles_id/__init__.py +7 -0
- extremecloudiq/paths/hotspot_profiles_id/delete.py +370 -0
- extremecloudiq/paths/hotspot_profiles_id/get.py +378 -0
- extremecloudiq/paths/hotspot_profiles_id/put.py +476 -0
- extremecloudiq/paths/hotspot_service_provider_profiles/__init__.py +7 -0
- extremecloudiq/paths/hotspot_service_provider_profiles/get.py +406 -0
- extremecloudiq/paths/hotspot_service_provider_profiles/post.py +419 -0
- extremecloudiq/paths/hotspot_service_provider_profiles_id/__init__.py +7 -0
- extremecloudiq/paths/hotspot_service_provider_profiles_id/delete.py +370 -0
- extremecloudiq/paths/hotspot_service_provider_profiles_id/get.py +378 -0
- extremecloudiq/paths/hotspot_service_provider_profiles_id/put.py +476 -0
- extremecloudiq/paths/iot_profiles/__init__.py +7 -0
- extremecloudiq/paths/iot_profiles/get.py +426 -0
- extremecloudiq/paths/iot_profiles/post.py +419 -0
- extremecloudiq/paths/iot_profiles_id/__init__.py +7 -0
- extremecloudiq/paths/iot_profiles_id/delete.py +370 -0
- extremecloudiq/paths/iot_profiles_id/get.py +378 -0
- extremecloudiq/paths/iot_profiles_id/put.py +476 -0
- extremecloudiq/paths/ip_firewall_policies/__init__.py +7 -0
- extremecloudiq/paths/ip_firewall_policies/get.py +406 -0
- extremecloudiq/paths/ip_firewall_policies/post.py +419 -0
- extremecloudiq/paths/ip_firewall_policies_id/__init__.py +7 -0
- extremecloudiq/paths/ip_firewall_policies_id/delete.py +370 -0
- extremecloudiq/paths/ip_firewall_policies_id/get.py +378 -0
- extremecloudiq/paths/ip_firewall_policies_id/put.py +476 -0
- extremecloudiq/paths/ip_firewall_policies_id_ip_firewall_rule_attach/__init__.py +7 -0
- extremecloudiq/paths/ip_firewall_policies_id_ip_firewall_rule_attach/post.py +468 -0
- extremecloudiq/paths/ip_firewall_policies_id_ip_firewall_rule_detach/__init__.py +7 -0
- extremecloudiq/paths/ip_firewall_policies_id_ip_firewall_rule_detach/post.py +467 -0
- extremecloudiq/paths/l3_address_profiles/__init__.py +7 -0
- extremecloudiq/paths/l3_address_profiles/get.py +454 -0
- extremecloudiq/paths/l3_address_profiles/post.py +419 -0
- extremecloudiq/paths/l3_address_profiles_id/__init__.py +7 -0
- extremecloudiq/paths/l3_address_profiles_id/delete.py +370 -0
- extremecloudiq/paths/l3_address_profiles_id/get.py +378 -0
- extremecloudiq/paths/l3_address_profiles_id/put.py +476 -0
- extremecloudiq/paths/ldap_servers/__init__.py +7 -0
- extremecloudiq/paths/ldap_servers/get.py +406 -0
- extremecloudiq/paths/ldap_servers/post.py +419 -0
- extremecloudiq/paths/ldap_servers_id/__init__.py +7 -0
- extremecloudiq/paths/ldap_servers_id/delete.py +370 -0
- extremecloudiq/paths/ldap_servers_id/get.py +378 -0
- extremecloudiq/paths/ldap_servers_id/put.py +476 -0
- extremecloudiq/paths/locations/__init__.py +7 -0
- extremecloudiq/paths/locations/post.py +419 -0
- extremecloudiq/paths/locations_building/__init__.py +7 -0
- extremecloudiq/paths/locations_building/get.py +456 -0
- extremecloudiq/paths/locations_building/post.py +419 -0
- extremecloudiq/paths/locations_building_id/__init__.py +7 -0
- extremecloudiq/paths/locations_building_id/delete.py +424 -0
- extremecloudiq/paths/locations_building_id/get.py +378 -0
- extremecloudiq/paths/locations_building_id/put.py +476 -0
- extremecloudiq/paths/locations_floor/__init__.py +7 -0
- extremecloudiq/paths/locations_floor/get.py +456 -0
- extremecloudiq/paths/locations_floor/post.py +419 -0
- extremecloudiq/paths/locations_floor_id/__init__.py +7 -0
- extremecloudiq/paths/locations_floor_id/delete.py +370 -0
- extremecloudiq/paths/locations_floor_id/get.py +378 -0
- extremecloudiq/paths/locations_floor_id/put.py +476 -0
- extremecloudiq/paths/locations_floorplan/__init__.py +7 -0
- extremecloudiq/paths/locations_floorplan/post.py +461 -0
- extremecloudiq/paths/locations_id/__init__.py +7 -0
- extremecloudiq/paths/locations_id/delete.py +424 -0
- extremecloudiq/paths/locations_id/put.py +476 -0
- extremecloudiq/paths/locations_import_ekahau/__init__.py +7 -0
- extremecloudiq/paths/locations_import_ekahau/post.py +607 -0
- extremecloudiq/paths/locations_init/__init__.py +7 -0
- extremecloudiq/paths/locations_init/post.py +419 -0
- extremecloudiq/paths/locations_site/__init__.py +7 -0
- extremecloudiq/paths/locations_site/get.py +456 -0
- extremecloudiq/paths/locations_site/post.py +419 -0
- extremecloudiq/paths/locations_site_id/__init__.py +7 -0
- extremecloudiq/paths/locations_site_id/delete.py +424 -0
- extremecloudiq/paths/locations_site_id/get.py +378 -0
- extremecloudiq/paths/locations_site_id/put.py +476 -0
- extremecloudiq/paths/locations_tree/__init__.py +7 -0
- extremecloudiq/paths/locations_tree/get.py +412 -0
- extremecloudiq/paths/locations_tree_devices/__init__.py +7 -0
- extremecloudiq/paths/locations_tree_devices/get.py +424 -0
- extremecloudiq/paths/locations_tree_maps/__init__.py +7 -0
- extremecloudiq/paths/locations_tree_maps/get.py +424 -0
- extremecloudiq/paths/login/__init__.py +7 -0
- extremecloudiq/paths/login/post.py +415 -0
- extremecloudiq/paths/logout/__init__.py +7 -0
- extremecloudiq/paths/logout/post.py +316 -0
- extremecloudiq/paths/logs_accounting/__init__.py +7 -0
- extremecloudiq/paths/logs_accounting/get.py +442 -0
- extremecloudiq/paths/logs_audit/__init__.py +7 -0
- extremecloudiq/paths/logs_audit/get.py +499 -0
- extremecloudiq/paths/logs_audit_full_descriptions_id/__init__.py +7 -0
- extremecloudiq/paths/logs_audit_full_descriptions_id/get.py +378 -0
- extremecloudiq/paths/logs_audit_reports/__init__.py +7 -0
- extremecloudiq/paths/logs_audit_reports/post.py +478 -0
- extremecloudiq/paths/logs_audit_reports_id/__init__.py +7 -0
- extremecloudiq/paths/logs_audit_reports_id/get.py +399 -0
- extremecloudiq/paths/logs_auth/__init__.py +7 -0
- extremecloudiq/paths/logs_auth/get.py +442 -0
- extremecloudiq/paths/logs_credential/__init__.py +7 -0
- extremecloudiq/paths/logs_credential/get.py +433 -0
- extremecloudiq/paths/logs_email/__init__.py +7 -0
- extremecloudiq/paths/logs_email/get.py +433 -0
- extremecloudiq/paths/logs_sms/__init__.py +7 -0
- extremecloudiq/paths/logs_sms/get.py +433 -0
- extremecloudiq/paths/mac_firewall_policies/__init__.py +7 -0
- extremecloudiq/paths/mac_firewall_policies/get.py +406 -0
- extremecloudiq/paths/mac_firewall_policies/post.py +419 -0
- extremecloudiq/paths/mac_firewall_policies_id/__init__.py +7 -0
- extremecloudiq/paths/mac_firewall_policies_id/delete.py +370 -0
- extremecloudiq/paths/mac_firewall_policies_id/get.py +378 -0
- extremecloudiq/paths/mac_firewall_policies_id/put.py +476 -0
- extremecloudiq/paths/mac_firewall_policies_id_mac_firewall_rule_attach/__init__.py +7 -0
- extremecloudiq/paths/mac_firewall_policies_id_mac_firewall_rule_attach/post.py +468 -0
- extremecloudiq/paths/mac_firewall_policies_id_mac_firewall_rule_detach/__init__.py +7 -0
- extremecloudiq/paths/mac_firewall_policies_id_mac_firewall_rule_detach/post.py +467 -0
- extremecloudiq/paths/mac_object_profiles/__init__.py +7 -0
- extremecloudiq/paths/mac_object_profiles/get.py +406 -0
- extremecloudiq/paths/mac_object_profiles/post.py +419 -0
- extremecloudiq/paths/mac_object_profiles_id/__init__.py +7 -0
- extremecloudiq/paths/mac_object_profiles_id/delete.py +370 -0
- extremecloudiq/paths/mac_object_profiles_id/get.py +378 -0
- extremecloudiq/paths/mac_object_profiles_id/put.py +476 -0
- extremecloudiq/paths/network_policies/__init__.py +7 -0
- extremecloudiq/paths/network_policies/get.py +491 -0
- extremecloudiq/paths/network_policies/post.py +419 -0
- extremecloudiq/paths/network_policies_id/__init__.py +7 -0
- extremecloudiq/paths/network_policies_id/delete.py +370 -0
- extremecloudiq/paths/network_policies_id/get.py +378 -0
- extremecloudiq/paths/network_policies_id/put.py +476 -0
- extremecloudiq/paths/network_policies_id_ssids/__init__.py +7 -0
- extremecloudiq/paths/network_policies_id_ssids/get.py +460 -0
- extremecloudiq/paths/network_policies_id_ssids_add/__init__.py +7 -0
- extremecloudiq/paths/network_policies_id_ssids_add/post.py +489 -0
- extremecloudiq/paths/network_policies_id_ssids_remove/__init__.py +7 -0
- extremecloudiq/paths/network_policies_id_ssids_remove/post.py +489 -0
- extremecloudiq/paths/network_scorecard_client_health_location_id/__init__.py +7 -0
- extremecloudiq/paths/network_scorecard_client_health_location_id/get.py +441 -0
- extremecloudiq/paths/network_scorecard_device_health_location_id/__init__.py +7 -0
- extremecloudiq/paths/network_scorecard_device_health_location_id/get.py +441 -0
- extremecloudiq/paths/network_scorecard_network_health_location_id/__init__.py +7 -0
- extremecloudiq/paths/network_scorecard_network_health_location_id/get.py +441 -0
- extremecloudiq/paths/network_scorecard_services_health_location_id/__init__.py +7 -0
- extremecloudiq/paths/network_scorecard_services_health_location_id/get.py +441 -0
- extremecloudiq/paths/network_scorecard_wifi_health_location_id/__init__.py +7 -0
- extremecloudiq/paths/network_scorecard_wifi_health_location_id/get.py +441 -0
- extremecloudiq/paths/network_services/__init__.py +7 -0
- extremecloudiq/paths/network_services/get.py +435 -0
- extremecloudiq/paths/network_services/post.py +419 -0
- extremecloudiq/paths/network_services_id/__init__.py +7 -0
- extremecloudiq/paths/network_services_id/delete.py +370 -0
- extremecloudiq/paths/nos_device_device_id_nos_api/__init__.py +7 -0
- extremecloudiq/paths/nos_device_device_id_nos_api/post.py +476 -0
- extremecloudiq/paths/operations_operation_id/__init__.py +7 -0
- extremecloudiq/paths/operations_operation_id/delete.py +370 -0
- extremecloudiq/paths/operations_operation_id/get.py +378 -0
- extremecloudiq/paths/operations_operation_id_cancel/__init__.py +7 -0
- extremecloudiq/paths/operations_operation_id_cancel/post.py +370 -0
- extremecloudiq/paths/packetcaptures/__init__.py +7 -0
- extremecloudiq/paths/packetcaptures/get.py +470 -0
- extremecloudiq/paths/packetcaptures/post.py +418 -0
- extremecloudiq/paths/packetcaptures_files/__init__.py +7 -0
- extremecloudiq/paths/packetcaptures_files/get.py +401 -0
- extremecloudiq/paths/packetcaptures_id/__init__.py +7 -0
- extremecloudiq/paths/packetcaptures_id/delete.py +370 -0
- extremecloudiq/paths/packetcaptures_id/get.py +458 -0
- extremecloudiq/paths/packetcaptures_id_stop/__init__.py +7 -0
- extremecloudiq/paths/packetcaptures_id_stop/post.py +468 -0
- extremecloudiq/paths/packetcaptures_id_upload/__init__.py +7 -0
- extremecloudiq/paths/packetcaptures_id_upload/post.py +370 -0
- extremecloudiq/paths/pcgs_key_based/__init__.py +7 -0
- extremecloudiq/paths/pcgs_key_based/get.py +349 -0
- extremecloudiq/paths/pcgs_key_based/post.py +476 -0
- extremecloudiq/paths/pcgs_key_based_network_policy_policy_id/__init__.py +7 -0
- extremecloudiq/paths/pcgs_key_based_network_policy_policy_id/delete.py +447 -0
- extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_keys_email/__init__.py +7 -0
- extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_keys_email/post.py +447 -0
- extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_keys_generate/__init__.py +7 -0
- extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_keys_generate/post.py +447 -0
- extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_onboard/__init__.py +7 -0
- extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_onboard/post.py +533 -0
- extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_port_assignments/__init__.py +7 -0
- extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_port_assignments/get.py +378 -0
- extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_port_assignments/post.py +476 -0
- extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_users/__init__.py +7 -0
- extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_users/delete.py +468 -0
- extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_users/get.py +403 -0
- extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_users/post.py +533 -0
- extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_users/put.py +468 -0
- extremecloudiq/paths/radio_operating_modes_product_type/__init__.py +7 -0
- extremecloudiq/paths/radio_operating_modes_product_type/get.py +403 -0
- extremecloudiq/paths/radio_profiles/__init__.py +7 -0
- extremecloudiq/paths/radio_profiles/get.py +406 -0
- extremecloudiq/paths/radio_profiles/post.py +419 -0
- extremecloudiq/paths/radio_profiles_channel_selection_id/__init__.py +7 -0
- extremecloudiq/paths/radio_profiles_channel_selection_id/get.py +378 -0
- extremecloudiq/paths/radio_profiles_channel_selection_id/put.py +476 -0
- extremecloudiq/paths/radio_profiles_id/__init__.py +7 -0
- extremecloudiq/paths/radio_profiles_id/delete.py +370 -0
- extremecloudiq/paths/radio_profiles_id/get.py +378 -0
- extremecloudiq/paths/radio_profiles_id/put.py +476 -0
- extremecloudiq/paths/radio_profiles_mac_ouis/__init__.py +7 -0
- extremecloudiq/paths/radio_profiles_mac_ouis/get.py +406 -0
- extremecloudiq/paths/radio_profiles_mac_ouis/post.py +419 -0
- extremecloudiq/paths/radio_profiles_mac_ouis_id/__init__.py +7 -0
- extremecloudiq/paths/radio_profiles_mac_ouis_id/delete.py +370 -0
- extremecloudiq/paths/radio_profiles_mac_ouis_id/get.py +378 -0
- extremecloudiq/paths/radio_profiles_mac_ouis_id/put.py +476 -0
- extremecloudiq/paths/radio_profiles_miscellaneous_id/__init__.py +7 -0
- extremecloudiq/paths/radio_profiles_miscellaneous_id/get.py +378 -0
- extremecloudiq/paths/radio_profiles_miscellaneous_id/put.py +476 -0
- extremecloudiq/paths/radio_profiles_neighborhood_analysis_id/__init__.py +7 -0
- extremecloudiq/paths/radio_profiles_neighborhood_analysis_id/get.py +378 -0
- extremecloudiq/paths/radio_profiles_neighborhood_analysis_id/put.py +476 -0
- extremecloudiq/paths/radio_profiles_radio_usage_opt_id/__init__.py +7 -0
- extremecloudiq/paths/radio_profiles_radio_usage_opt_id/get.py +378 -0
- extremecloudiq/paths/radio_profiles_radio_usage_opt_id/put.py +476 -0
- extremecloudiq/paths/radio_profiles_sensor_scan_id/__init__.py +7 -0
- extremecloudiq/paths/radio_profiles_sensor_scan_id/get.py +378 -0
- extremecloudiq/paths/radio_profiles_sensor_scan_id/put.py +476 -0
- extremecloudiq/paths/radio_profiles_wmm_qos_id/__init__.py +7 -0
- extremecloudiq/paths/radio_profiles_wmm_qos_id/get.py +378 -0
- extremecloudiq/paths/radio_profiles_wmm_qos_id/put.py +476 -0
- extremecloudiq/paths/radius_client_objects/__init__.py +7 -0
- extremecloudiq/paths/radius_client_objects/get.py +406 -0
- extremecloudiq/paths/radius_client_objects/post.py +419 -0
- extremecloudiq/paths/radius_client_objects_id/__init__.py +7 -0
- extremecloudiq/paths/radius_client_objects_id/delete.py +370 -0
- extremecloudiq/paths/radius_client_objects_id/get.py +378 -0
- extremecloudiq/paths/radius_client_objects_id/put.py +468 -0
- extremecloudiq/paths/radius_proxies/__init__.py +7 -0
- extremecloudiq/paths/radius_proxies/get.py +406 -0
- extremecloudiq/paths/radius_proxies/post.py +419 -0
- extremecloudiq/paths/radius_proxies_devices/__init__.py +7 -0
- extremecloudiq/paths/radius_proxies_devices/get.py +406 -0
- extremecloudiq/paths/radius_proxies_id/__init__.py +7 -0
- extremecloudiq/paths/radius_proxies_id/delete.py +370 -0
- extremecloudiq/paths/radius_proxies_id/get.py +378 -0
- extremecloudiq/paths/radius_proxies_id/put.py +476 -0
- extremecloudiq/paths/radius_servers_external/__init__.py +7 -0
- extremecloudiq/paths/radius_servers_external/get.py +406 -0
- extremecloudiq/paths/radius_servers_external/post.py +419 -0
- extremecloudiq/paths/radius_servers_external_id/__init__.py +7 -0
- extremecloudiq/paths/radius_servers_external_id/delete.py +370 -0
- extremecloudiq/paths/radius_servers_external_id/get.py +378 -0
- extremecloudiq/paths/radius_servers_external_id/put.py +468 -0
- extremecloudiq/paths/radius_servers_internal/__init__.py +7 -0
- extremecloudiq/paths/radius_servers_internal/delete.py +402 -0
- extremecloudiq/paths/radius_servers_internal/get.py +406 -0
- extremecloudiq/paths/radius_servers_internal/post.py +419 -0
- extremecloudiq/paths/radius_servers_internal_devices/__init__.py +7 -0
- extremecloudiq/paths/radius_servers_internal_devices/get.py +406 -0
- extremecloudiq/paths/radius_servers_internal_id/__init__.py +7 -0
- extremecloudiq/paths/radius_servers_internal_id/delete.py +370 -0
- extremecloudiq/paths/radius_servers_internal_id/get.py +378 -0
- extremecloudiq/paths/radius_servers_internal_id/put.py +476 -0
- extremecloudiq/paths/rtts/__init__.py +7 -0
- extremecloudiq/paths/rtts/post.py +477 -0
- extremecloudiq/paths/rtts_id/__init__.py +7 -0
- extremecloudiq/paths/rtts_id/delete.py +424 -0
- extremecloudiq/paths/site_afc_schedule/__init__.py +7 -0
- extremecloudiq/paths/site_afc_schedule/get.py +388 -0
- extremecloudiq/paths/site_afc_schedule/post.py +410 -0
- extremecloudiq/paths/site_afc_schedule/put.py +410 -0
- extremecloudiq/paths/site_spectrum_/__init__.py +7 -0
- extremecloudiq/paths/site_spectrum_/post.py +501 -0
- extremecloudiq/paths/sms_templates/__init__.py +7 -0
- extremecloudiq/paths/sms_templates/get.py +404 -0
- extremecloudiq/paths/ssids/__init__.py +7 -0
- extremecloudiq/paths/ssids/get.py +406 -0
- extremecloudiq/paths/ssids_advanced_settings_id/__init__.py +7 -0
- extremecloudiq/paths/ssids_advanced_settings_id/get.py +378 -0
- extremecloudiq/paths/ssids_advanced_settings_id/put.py +476 -0
- extremecloudiq/paths/ssids_id_client_monitor_profile_attach/__init__.py +7 -0
- extremecloudiq/paths/ssids_id_client_monitor_profile_attach/post.py +468 -0
- extremecloudiq/paths/ssids_id_cwp_attach/__init__.py +7 -0
- extremecloudiq/paths/ssids_id_cwp_attach/post.py +467 -0
- extremecloudiq/paths/ssids_id_cwp_disable/__init__.py +7 -0
- extremecloudiq/paths/ssids_id_cwp_disable/post.py +370 -0
- extremecloudiq/paths/ssids_id_cwp_enable/__init__.py +7 -0
- extremecloudiq/paths/ssids_id_cwp_enable/post.py +467 -0
- extremecloudiq/paths/ssids_id_mode_dot1x/__init__.py +7 -0
- extremecloudiq/paths/ssids_id_mode_dot1x/put.py +468 -0
- extremecloudiq/paths/ssids_id_mode_open/__init__.py +7 -0
- extremecloudiq/paths/ssids_id_mode_open/put.py +370 -0
- extremecloudiq/paths/ssids_id_mode_ppsk/__init__.py +7 -0
- extremecloudiq/paths/ssids_id_mode_ppsk/put.py +468 -0
- extremecloudiq/paths/ssids_id_mode_psk/__init__.py +7 -0
- extremecloudiq/paths/ssids_id_mode_psk/put.py +468 -0
- extremecloudiq/paths/ssids_id_mode_wep/__init__.py +7 -0
- extremecloudiq/paths/ssids_id_mode_wep/put.py +468 -0
- extremecloudiq/paths/ssids_id_psk_password/__init__.py +7 -0
- extremecloudiq/paths/ssids_id_psk_password/put.py +467 -0
- extremecloudiq/paths/ssids_id_radius_client_profile_attach/__init__.py +7 -0
- extremecloudiq/paths/ssids_id_radius_client_profile_attach/post.py +467 -0
- extremecloudiq/paths/ssids_id_radius_server_group_attach/__init__.py +7 -0
- extremecloudiq/paths/ssids_id_radius_server_group_attach/post.py +467 -0
- extremecloudiq/paths/ssids_id_rename/__init__.py +7 -0
- extremecloudiq/paths/ssids_id_rename/post.py +467 -0
- extremecloudiq/paths/ssids_id_user_profile_assignment_attach/__init__.py +7 -0
- extremecloudiq/paths/ssids_id_user_profile_assignment_attach/post.py +468 -0
- extremecloudiq/paths/ssids_id_user_profile_attach/__init__.py +7 -0
- extremecloudiq/paths/ssids_id_user_profile_attach/post.py +467 -0
- extremecloudiq/paths/subscriptions_webhook/__init__.py +7 -0
- extremecloudiq/paths/subscriptions_webhook/get.py +425 -0
- extremecloudiq/paths/subscriptions_webhook/post.py +436 -0
- extremecloudiq/paths/subscriptions_webhook_delete/__init__.py +7 -0
- extremecloudiq/paths/subscriptions_webhook_delete/delete.py +393 -0
- extremecloudiq/paths/subscriptions_webhook_export/__init__.py +7 -0
- extremecloudiq/paths/subscriptions_webhook_export/get.py +409 -0
- extremecloudiq/paths/subscriptions_webhook_id/__init__.py +7 -0
- extremecloudiq/paths/subscriptions_webhook_id/put.py +476 -0
- extremecloudiq/paths/third_party_api_connection/__init__.py +7 -0
- extremecloudiq/paths/third_party_api_connection/delete.py +316 -0
- extremecloudiq/paths/third_party_api_connection/get.py +349 -0
- extremecloudiq/paths/third_party_api_connection/put.py +419 -0
- extremecloudiq/paths/thread_networks/__init__.py +7 -0
- extremecloudiq/paths/thread_networks/get.py +603 -0
- extremecloudiq/paths/thread_routers/__init__.py +7 -0
- extremecloudiq/paths/thread_routers/get.py +1079 -0
- extremecloudiq/paths/thread_topology/__init__.py +7 -0
- extremecloudiq/paths/thread_topology/get.py +723 -0
- extremecloudiq/paths/tunnel_concentrators/__init__.py +7 -0
- extremecloudiq/paths/tunnel_concentrators/get.py +406 -0
- extremecloudiq/paths/tunnel_concentrators/post.py +419 -0
- extremecloudiq/paths/tunnel_concentrators_id/__init__.py +7 -0
- extremecloudiq/paths/tunnel_concentrators_id/delete.py +370 -0
- extremecloudiq/paths/tunnel_concentrators_id/get.py +378 -0
- extremecloudiq/paths/tunnel_concentrators_id/put.py +476 -0
- extremecloudiq/paths/ucp_id_engines_installed/__init__.py +7 -0
- extremecloudiq/paths/ucp_id_engines_installed/get.py +378 -0
- extremecloudiq/paths/user_profile_assignments/__init__.py +7 -0
- extremecloudiq/paths/user_profile_assignments/get.py +406 -0
- extremecloudiq/paths/user_profile_assignments/post.py +419 -0
- extremecloudiq/paths/user_profile_assignments_id/__init__.py +7 -0
- extremecloudiq/paths/user_profile_assignments_id/delete.py +370 -0
- extremecloudiq/paths/user_profile_assignments_id/get.py +378 -0
- extremecloudiq/paths/user_profiles/__init__.py +7 -0
- extremecloudiq/paths/user_profiles/get.py +406 -0
- extremecloudiq/paths/user_profiles/post.py +419 -0
- extremecloudiq/paths/user_profiles_id/__init__.py +7 -0
- extremecloudiq/paths/user_profiles_id/delete.py +370 -0
- extremecloudiq/paths/user_profiles_id/get.py +378 -0
- extremecloudiq/paths/user_profiles_id/put.py +476 -0
- extremecloudiq/paths/user_profiles_id_ip_firewall_policies_attach/__init__.py +7 -0
- extremecloudiq/paths/user_profiles_id_ip_firewall_policies_attach/post.py +468 -0
- extremecloudiq/paths/user_profiles_id_ip_firewall_policies_detach/__init__.py +7 -0
- extremecloudiq/paths/user_profiles_id_ip_firewall_policies_detach/post.py +468 -0
- extremecloudiq/paths/user_profiles_id_mac_firewall_policies_attach/__init__.py +7 -0
- extremecloudiq/paths/user_profiles_id_mac_firewall_policies_attach/post.py +468 -0
- extremecloudiq/paths/user_profiles_id_mac_firewall_policies_detach/__init__.py +7 -0
- extremecloudiq/paths/user_profiles_id_mac_firewall_policies_detach/post.py +468 -0
- extremecloudiq/paths/usergroups/__init__.py +7 -0
- extremecloudiq/paths/usergroups/get.py +426 -0
- extremecloudiq/paths/usergroups/post.py +419 -0
- extremecloudiq/paths/usergroups_id/__init__.py +7 -0
- extremecloudiq/paths/usergroups_id/delete.py +370 -0
- extremecloudiq/paths/usergroups_id/put.py +476 -0
- extremecloudiq/paths/usergroups_unique/__init__.py +7 -0
- extremecloudiq/paths/usergroups_unique/get.py +349 -0
- extremecloudiq/paths/users/__init__.py +7 -0
- extremecloudiq/paths/users/get.py +406 -0
- extremecloudiq/paths/users/post.py +419 -0
- extremecloudiq/paths/users_external/__init__.py +7 -0
- extremecloudiq/paths/users_external/get.py +406 -0
- extremecloudiq/paths/users_external/post.py +419 -0
- extremecloudiq/paths/users_external_id/__init__.py +7 -0
- extremecloudiq/paths/users_external_id/delete.py +370 -0
- extremecloudiq/paths/users_external_id/get.py +378 -0
- extremecloudiq/paths/users_external_id/patch.py +468 -0
- extremecloudiq/paths/users_id/__init__.py +7 -0
- extremecloudiq/paths/users_id/delete.py +370 -0
- extremecloudiq/paths/users_id/get.py +378 -0
- extremecloudiq/paths/users_id/patch.py +476 -0
- extremecloudiq/paths/users_me/__init__.py +7 -0
- extremecloudiq/paths/users_me/get.py +324 -0
- extremecloudiq/paths/v1_account_viq_default_device_password/__init__.py +7 -0
- extremecloudiq/paths/v1_account_viq_default_device_password/put.py +410 -0
- extremecloudiq/paths/vlan_profiles/__init__.py +7 -0
- extremecloudiq/paths/vlan_profiles/get.py +406 -0
- extremecloudiq/paths/vlan_profiles/post.py +419 -0
- extremecloudiq/paths/vlan_profiles_delete/__init__.py +7 -0
- extremecloudiq/paths/vlan_profiles_delete/post.py +468 -0
- extremecloudiq/paths/vlan_profiles_id/__init__.py +7 -0
- extremecloudiq/paths/vlan_profiles_id/delete.py +370 -0
- extremecloudiq/paths/vlan_profiles_id/get.py +378 -0
- extremecloudiq/paths/vlan_profiles_id/patch.py +476 -0
- extremecloudiq/rest.py +92 -126
- extremecloudiq/schemas.py +2476 -0
- extremecloudiq_api-25.2.0.123.dist-info/METADATA +21 -0
- extremecloudiq_api-25.2.0.123.dist-info/RECORD +2261 -0
- extremecloudiq/api/__init__.py +0 -35
- extremecloudiq/api/account_api.py +0 -1262
- extremecloudiq/api/afc_endpoint_api.py +0 -1316
- extremecloudiq/api/alert_api.py +0 -3494
- extremecloudiq/api/application_api.py +0 -470
- extremecloudiq/api/authentication_api.py +0 -261
- extremecloudiq/api/authorization_api.py +0 -602
- extremecloudiq/api/client_api.py +0 -1179
- extremecloudiq/api/configuration___authentication_api.py +0 -3612
- extremecloudiq/api/configuration___basic_api.py +0 -755
- extremecloudiq/api/configuration___certificate_api.py +0 -164
- extremecloudiq/api/configuration___deployment_api.py +0 -1089
- extremecloudiq/api/configuration___network_api.py +0 -1000
- extremecloudiq/api/configuration___policy_api.py +0 -11869
- extremecloudiq/api/configuration___user_management_api.py +0 -2827
- extremecloudiq/api/copilot___anomalies_api.py +0 -3212
- extremecloudiq/api/copilot___connectivity_experience_api.py +0 -2791
- extremecloudiq/api/device_api.py +0 -10457
- extremecloudiq/api/essentials___extreme_location_api.py +0 -170
- extremecloudiq/api/hiq_api.py +0 -1276
- extremecloudiq/api/location_api.py +0 -3003
- extremecloudiq/api/log_api.py +0 -1272
- extremecloudiq/api/misc_api.py +0 -371
- extremecloudiq/api/network_policy_api.py +0 -1038
- extremecloudiq/api/network_scorecard_api.py +0 -658
- extremecloudiq/api/nos_api.py +0 -165
- extremecloudiq/api/notification_api.py +0 -375
- extremecloudiq/api/operation_api.py +0 -380
- extremecloudiq/api/packet_capture_api.py +0 -887
- extremecloudiq/api/thread_api.py +0 -472
- extremecloudiq/api/user_api.py +0 -1331
- extremecloudiq/models/client_health.py +0 -207
- extremecloudiq/models/device_health.py +0 -207
- extremecloudiq/models/essentials_eloc_last_known_location.py +0 -179
- extremecloudiq/models/inline_object.py +0 -124
- extremecloudiq/models/inline_object1.py +0 -124
- extremecloudiq/models/inline_object2.py +0 -124
- extremecloudiq/models/network_health.py +0 -207
- extremecloudiq/models/paged_xiq_accounting_log.py +0 -239
- extremecloudiq/models/paged_xiq_active_directory_server.py +0 -239
- extremecloudiq/models/paged_xiq_alert.py +0 -239
- extremecloudiq/models/paged_xiq_application.py +0 -239
- extremecloudiq/models/paged_xiq_audit_log.py +0 -239
- extremecloudiq/models/paged_xiq_auth_log.py +0 -239
- extremecloudiq/models/paged_xiq_building.py +0 -239
- extremecloudiq/models/paged_xiq_certificate.py +0 -239
- extremecloudiq/models/paged_xiq_classification_rule.py +0 -239
- extremecloudiq/models/paged_xiq_client.py +0 -239
- extremecloudiq/models/paged_xiq_client_monitor_profile.py +0 -239
- extremecloudiq/models/paged_xiq_cloud_config_group.py +0 -239
- extremecloudiq/models/paged_xiq_connectivity_experience_data.py +0 -239
- extremecloudiq/models/paged_xiq_copilot_wireless_event.py +0 -239
- extremecloudiq/models/paged_xiq_credential_log.py +0 -239
- extremecloudiq/models/paged_xiq_cwp.py +0 -239
- extremecloudiq/models/paged_xiq_deployment_details_response.py +0 -239
- extremecloudiq/models/paged_xiq_device.py +0 -239
- extremecloudiq/models/paged_xiq_device_alarm.py +0 -239
- extremecloudiq/models/paged_xiq_device_configure_ipv4_interface.py +0 -239
- extremecloudiq/models/paged_xiq_device_configure_ipv4_static_route.py +0 -239
- extremecloudiq/models/paged_xiq_device_monitor_ipv4_routing.py +0 -239
- extremecloudiq/models/paged_xiq_device_monitor_vlan_attributes.py +0 -239
- extremecloudiq/models/paged_xiq_device_monitor_vlan_ipv4_interfaces.py +0 -239
- extremecloudiq/models/paged_xiq_device_vlan_attributes.py +0 -239
- extremecloudiq/models/paged_xiq_digital_twin_products.py +0 -239
- extremecloudiq/models/paged_xiq_email_log.py +0 -239
- extremecloudiq/models/paged_xiq_end_user.py +0 -239
- extremecloudiq/models/paged_xiq_external_radius_server.py +0 -239
- extremecloudiq/models/paged_xiq_external_user.py +0 -239
- extremecloudiq/models/paged_xiq_floor.py +0 -239
- extremecloudiq/models/paged_xiq_internal_radius_device.py +0 -239
- extremecloudiq/models/paged_xiq_internal_radius_server.py +0 -239
- extremecloudiq/models/paged_xiq_iot_profile.py +0 -239
- extremecloudiq/models/paged_xiq_ip_firewall.py +0 -239
- extremecloudiq/models/paged_xiq_ldap_server.py +0 -239
- extremecloudiq/models/paged_xiq_location_tree_device.py +0 -239
- extremecloudiq/models/paged_xiq_location_tree_map.py +0 -239
- extremecloudiq/models/paged_xiq_mac_firewall.py +0 -239
- extremecloudiq/models/paged_xiq_mac_object.py +0 -239
- extremecloudiq/models/paged_xiq_network_policy.py +0 -239
- extremecloudiq/models/paged_xiq_network_service.py +0 -239
- extremecloudiq/models/paged_xiq_packet_capture.py +0 -239
- extremecloudiq/models/paged_xiq_radio_entity.py +0 -239
- extremecloudiq/models/paged_xiq_radio_profile.py +0 -239
- extremecloudiq/models/paged_xiq_radius_client_object.py +0 -239
- extremecloudiq/models/paged_xiq_radius_proxy.py +0 -239
- extremecloudiq/models/paged_xiq_rp_mac_oui_profile.py +0 -239
- extremecloudiq/models/paged_xiq_site.py +0 -239
- extremecloudiq/models/paged_xiq_sms_log.py +0 -239
- extremecloudiq/models/paged_xiq_ssid.py +0 -239
- extremecloudiq/models/paged_xiq_thread_router.py +0 -239
- extremecloudiq/models/paged_xiq_tunnel_concentrator.py +0 -239
- extremecloudiq/models/paged_xiq_user.py +0 -239
- extremecloudiq/models/paged_xiq_user_group.py +0 -239
- extremecloudiq/models/paged_xiq_user_profile.py +0 -239
- extremecloudiq/models/paged_xiq_user_profile_assignment.py +0 -239
- extremecloudiq/models/paged_xiq_vlan_profile.py +0 -239
- extremecloudiq/models/paged_xiq_wired_event_entity.py +0 -239
- extremecloudiq/models/services_health.py +0 -207
- extremecloudiq/models/wifi_health.py +0 -207
- extremecloudiq/models/xiq_account.py +0 -491
- extremecloudiq/models/xiq_account_mode.py +0 -101
- extremecloudiq/models/xiq_account_type.py +0 -103
- extremecloudiq/models/xiq_accounting_log.py +0 -1020
- extremecloudiq/models/xiq_acknowledge_alerts_request.py +0 -124
- extremecloudiq/models/xiq_action_type.py +0 -104
- extremecloudiq/models/xiq_active_directory_server.py +0 -656
- extremecloudiq/models/xiq_active_directory_server_base_dn_fetch_mode.py +0 -101
- extremecloudiq/models/xiq_address.py +0 -237
- extremecloudiq/models/xiq_address_profile_classified_entry.py +0 -263
- extremecloudiq/models/xiq_advanced_onboard_device_request.py +0 -291
- extremecloudiq/models/xiq_advanced_onboard_device_response.py +0 -151
- extremecloudiq/models/xiq_afc_ap_detail.py +0 -257
- extremecloudiq/models/xiq_afc_ap_diagnostics.py +0 -121
- extremecloudiq/models/xiq_afc_ap_manual_spectrum.py +0 -121
- extremecloudiq/models/xiq_afc_aps_info_element.py +0 -173
- extremecloudiq/models/xiq_afc_available_spectrum.py +0 -173
- extremecloudiq/models/xiq_afc_geolocation_summary.py +0 -147
- extremecloudiq/models/xiq_afc_input_info.py +0 -231
- extremecloudiq/models/xiq_afc_server.py +0 -173
- extremecloudiq/models/xiq_afc_server_state.py +0 -111
- extremecloudiq/models/xiq_afc_status_summary.py +0 -173
- extremecloudiq/models/xiq_affected_downlink_device.py +0 -235
- extremecloudiq/models/xiq_alert.py +0 -796
- extremecloudiq/models/xiq_alert_email_subscription.py +0 -326
- extremecloudiq/models/xiq_alert_event_rules_by_category.py +0 -182
- extremecloudiq/models/xiq_alert_group_count.py +0 -181
- extremecloudiq/models/xiq_alert_group_query.py +0 -102
- extremecloudiq/models/xiq_alert_metric_rules_by_metricset.py +0 -182
- extremecloudiq/models/xiq_alert_policy.py +0 -292
- extremecloudiq/models/xiq_alert_policy_filter.py +0 -152
- extremecloudiq/models/xiq_alert_policy_type.py +0 -101
- extremecloudiq/models/xiq_alert_report.py +0 -124
- extremecloudiq/models/xiq_alert_rule.py +0 -520
- extremecloudiq/models/xiq_alert_rule_overview.py +0 -182
- extremecloudiq/models/xiq_alert_site.py +0 -152
- extremecloudiq/models/xiq_alert_sort_field.py +0 -101
- extremecloudiq/models/xiq_alert_source.py +0 -207
- extremecloudiq/models/xiq_alert_tag.py +0 -208
- extremecloudiq/models/xiq_alert_webhook_subscription.py +0 -326
- extremecloudiq/models/xiq_anomalies_count_vo_entity.py +0 -348
- extremecloudiq/models/xiq_anomalies_device_update_action_request.py +0 -203
- extremecloudiq/models/xiq_anomalies_feedback_request.py +0 -203
- extremecloudiq/models/xiq_anomalies_notifications_response.py +0 -151
- extremecloudiq/models/xiq_anomalies_severity_entity.py +0 -207
- extremecloudiq/models/xiq_anomalies_site_entity.py +0 -179
- extremecloudiq/models/xiq_anomalies_type_entity.py +0 -149
- extremecloudiq/models/xiq_anomalies_update_action_request.py +0 -175
- extremecloudiq/models/xiq_anomaly_affected_count.py +0 -182
- extremecloudiq/models/xiq_anomaly_device_entity.py +0 -513
- extremecloudiq/models/xiq_anomaly_device_with_location.py +0 -746
- extremecloudiq/models/xiq_anomaly_devices_by_location_response.py +0 -149
- extremecloudiq/models/xiq_anomaly_health_type.py +0 -103
- extremecloudiq/models/xiq_anomaly_location_entity.py +0 -425
- extremecloudiq/models/xiq_anomaly_severity.py +0 -103
- extremecloudiq/models/xiq_anomaly_sort_field.py +0 -106
- extremecloudiq/models/xiq_anomaly_type.py +0 -106
- extremecloudiq/models/xiq_ap_coordinates.py +0 -173
- extremecloudiq/models/xiq_api_token_info.py +0 -354
- extremecloudiq/models/xiq_application.py +0 -378
- extremecloudiq/models/xiq_application_detection_protocol.py +0 -101
- extremecloudiq/models/xiq_application_detection_rule.py +0 -175
- extremecloudiq/models/xiq_application_detection_type.py +0 -102
- extremecloudiq/models/xiq_application_service.py +0 -155
- extremecloudiq/models/xiq_application_sort_field.py +0 -101
- extremecloudiq/models/xiq_application_top_clients_usage.py +0 -235
- extremecloudiq/models/xiq_assign_devices_client_monitor_request.py +0 -149
- extremecloudiq/models/xiq_assign_devices_country_code_request.py +0 -149
- extremecloudiq/models/xiq_assign_devices_location_request.py +0 -149
- extremecloudiq/models/xiq_assign_devices_network_policy_request.py +0 -151
- extremecloudiq/models/xiq_assurance_scans_overview_response.py +0 -151
- extremecloudiq/models/xiq_atp_device_stats_entity.py +0 -208
- extremecloudiq/models/xiq_atp_device_stats_response.py +0 -151
- extremecloudiq/models/xiq_atp_packet_counts_entity.py +0 -292
- extremecloudiq/models/xiq_atp_packet_counts_response.py +0 -151
- extremecloudiq/models/xiq_attach_client_monitor_profile_request.py +0 -123
- extremecloudiq/models/xiq_attach_ip_firewall_policy_to_user_profile_request.py +0 -151
- extremecloudiq/models/xiq_attach_mac_firewall_policy_to_user_profile_request.py +0 -151
- extremecloudiq/models/xiq_attach_up_assignment_entry.py +0 -151
- extremecloudiq/models/xiq_attach_up_assignment_request.py +0 -261
- extremecloudiq/models/xiq_attribute_type.py +0 -102
- extremecloudiq/models/xiq_audit_log.py +0 -402
- extremecloudiq/models/xiq_audit_log_category.py +0 -105
- extremecloudiq/models/xiq_audit_log_full_descriptions.py +0 -208
- extremecloudiq/models/xiq_audit_log_report.py +0 -124
- extremecloudiq/models/xiq_audit_log_sort_field.py +0 -100
- extremecloudiq/models/xiq_auth_log.py +0 -572
- extremecloudiq/models/xiq_available_channel_info.py +0 -173
- extremecloudiq/models/xiq_bounce_device_port_data.py +0 -179
- extremecloudiq/models/xiq_bounce_device_port_operation_result.py +0 -151
- extremecloudiq/models/xiq_bounce_device_port_request.py +0 -179
- extremecloudiq/models/xiq_bounce_device_port_response.py +0 -121
- extremecloudiq/models/xiq_building.py +0 -350
- extremecloudiq/models/xiq_bulk_delete_email_subscription_result.py +0 -147
- extremecloudiq/models/xiq_bulk_delete_webhook_subscription_result.py +0 -147
- extremecloudiq/models/xiq_bulk_operation_result.py +0 -101
- extremecloudiq/models/xiq_capture_band_selection.py +0 -103
- extremecloudiq/models/xiq_capture_direction_selection.py +0 -102
- extremecloudiq/models/xiq_capture_filter.py +0 -295
- extremecloudiq/models/xiq_capture_identifier_type.py +0 -102
- extremecloudiq/models/xiq_capture_location.py +0 -255
- extremecloudiq/models/xiq_capture_radio_selection.py +0 -103
- extremecloudiq/models/xiq_capture_result.py +0 -455
- extremecloudiq/models/xiq_capture_stop_request.py +0 -123
- extremecloudiq/models/xiq_capture_wired_selection.py +0 -104
- extremecloudiq/models/xiq_certificate.py +0 -323
- extremecloudiq/models/xiq_certificate_type.py +0 -101
- extremecloudiq/models/xiq_change_devices_ibeacon_request.py +0 -338
- extremecloudiq/models/xiq_change_devices_os_mode_request.py +0 -153
- extremecloudiq/models/xiq_check_permission_request.py +0 -153
- extremecloudiq/models/xiq_check_permission_response.py +0 -153
- extremecloudiq/models/xiq_classification.py +0 -296
- extremecloudiq/models/xiq_classification_rule.py +0 -295
- extremecloudiq/models/xiq_classification_type.py +0 -104
- extremecloudiq/models/xiq_cli_output.py +0 -179
- extremecloudiq/models/xiq_cli_response_code.py +0 -115
- extremecloudiq/models/xiq_client.py +0 -1610
- extremecloudiq/models/xiq_client_field.py +0 -153
- extremecloudiq/models/xiq_client_mac_address_alias.py +0 -164
- extremecloudiq/models/xiq_client_monitor_parameters.py +0 -163
- extremecloudiq/models/xiq_client_monitor_profile.py +0 -374
- extremecloudiq/models/xiq_client_monitor_profile_request.py +0 -242
- extremecloudiq/models/xiq_client_sort_field.py +0 -120
- extremecloudiq/models/xiq_client_stats_entity.py +0 -345
- extremecloudiq/models/xiq_client_summary.py +0 -179
- extremecloudiq/models/xiq_client_type.py +0 -102
- extremecloudiq/models/xiq_client_usage.py +0 -151
- extremecloudiq/models/xiq_client_view.py +0 -107
- extremecloudiq/models/xiq_cloud_config_group.py +0 -436
- extremecloudiq/models/xiq_cloud_config_group_sort_field.py +0 -103
- extremecloudiq/models/xiq_cloud_shark_storage.py +0 -151
- extremecloudiq/models/xiq_connectivity_details_by_client_type_response.py +0 -147
- extremecloudiq/models/xiq_connectivity_experience_data.py +0 -319
- extremecloudiq/models/xiq_connectivity_experience_view_type.py +0 -102
- extremecloudiq/models/xiq_copilot_anomalies_action_response.py +0 -123
- extremecloudiq/models/xiq_copilot_anomalies_by_category.py +0 -177
- extremecloudiq/models/xiq_copilot_events_wired_sort_field.py +0 -100
- extremecloudiq/models/xiq_copilot_events_wireless_sort_field.py +0 -102
- extremecloudiq/models/xiq_copilot_lldp_cdp_info.py +0 -121
- extremecloudiq/models/xiq_copilot_paged_xiq_anomaly_device_with_location.py +0 -293
- extremecloudiq/models/xiq_copilot_paged_xiq_anomaly_location_entity.py +0 -293
- extremecloudiq/models/xiq_copilot_wired_events_score_type.py +0 -100
- extremecloudiq/models/xiq_copilot_wireless_event.py +0 -347
- extremecloudiq/models/xiq_copilot_wireless_events_score_type.py +0 -104
- extremecloudiq/models/xiq_country.py +0 -493
- extremecloudiq/models/xiq_country_code.py +0 -316
- extremecloudiq/models/xiq_country_state.py +0 -179
- extremecloudiq/models/xiq_create_alert_email_subscription_request.py +0 -210
- extremecloudiq/models/xiq_create_alert_webhook_subscription_request.py +0 -238
- extremecloudiq/models/xiq_create_building_request.py +0 -236
- extremecloudiq/models/xiq_create_classification_request.py +0 -188
- extremecloudiq/models/xiq_create_classification_rule_request.py +0 -181
- extremecloudiq/models/xiq_create_cloud_config_group_request.py +0 -180
- extremecloudiq/models/xiq_create_end_user_request.py +0 -405
- extremecloudiq/models/xiq_create_external_radius_server_request.py +0 -307
- extremecloudiq/models/xiq_create_floor_request.py +0 -350
- extremecloudiq/models/xiq_create_internal_radius_server_request.py +0 -708
- extremecloudiq/models/xiq_create_key_based_pcg_users_request.py +0 -124
- extremecloudiq/models/xiq_create_key_based_pcg_users_response.py +0 -181
- extremecloudiq/models/xiq_create_l3_address_profile_request.py +0 -348
- extremecloudiq/models/xiq_create_ldap_server_request.py +0 -524
- extremecloudiq/models/xiq_create_location_request.py +0 -153
- extremecloudiq/models/xiq_create_mac_object_request.py +0 -236
- extremecloudiq/models/xiq_create_network_policy_request.py +0 -179
- extremecloudiq/models/xiq_create_organization_request.py +0 -152
- extremecloudiq/models/xiq_create_radio_profile_request.py +0 -438
- extremecloudiq/models/xiq_create_radius_client.py +0 -179
- extremecloudiq/models/xiq_create_radius_client_object_request.py +0 -338
- extremecloudiq/models/xiq_create_radius_proxy_realm.py +0 -179
- extremecloudiq/models/xiq_create_radius_proxy_request.py +0 -380
- extremecloudiq/models/xiq_create_rp_mac_oui_profile_request.py +0 -237
- extremecloudiq/models/xiq_create_site_request.py +0 -263
- extremecloudiq/models/xiq_create_user_group_request.py +0 -453
- extremecloudiq/models/xiq_create_user_profile_assignment_request.py +0 -205
- extremecloudiq/models/xiq_create_user_profile_request.py +0 -153
- extremecloudiq/models/xiq_create_user_request.py +0 -237
- extremecloudiq/models/xiq_create_vlan_object_classified_entry_request.py +0 -153
- extremecloudiq/models/xiq_create_vlan_profile_request.py +0 -210
- extremecloudiq/models/xiq_create_webhook_subscription_request.py +0 -208
- extremecloudiq/models/xiq_credential_log.py +0 -236
- extremecloudiq/models/xiq_cwp.py +0 -238
- extremecloudiq/models/xiq_data_point.py +0 -152
- extremecloudiq/models/xiq_date_time_type.py +0 -240
- extremecloudiq/models/xiq_date_time_unit_type.py +0 -103
- extremecloudiq/models/xiq_default_device_password.py +0 -124
- extremecloudiq/models/xiq_delete_bulk_alert_subscription_email_response.py +0 -173
- extremecloudiq/models/xiq_delete_bulk_alert_subscription_request.py +0 -124
- extremecloudiq/models/xiq_delete_bulk_alert_subscription_webhook_response.py +0 -173
- extremecloudiq/models/xiq_delete_key_based_pcg_users_request.py +0 -124
- extremecloudiq/models/xiq_delivery_settings.py +0 -151
- extremecloudiq/models/xiq_dell_device.py +0 -236
- extremecloudiq/models/xiq_dell_devices.py +0 -124
- extremecloudiq/models/xiq_deploy_device_filter.py +0 -151
- extremecloudiq/models/xiq_deployment_by_id_status_response.py +0 -287
- extremecloudiq/models/xiq_deployment_details_response.py +0 -253
- extremecloudiq/models/xiq_deployment_overview.py +0 -153
- extremecloudiq/models/xiq_deployment_overview_details.py +0 -179
- extremecloudiq/models/xiq_deployment_policy.py +0 -201
- extremecloudiq/models/xiq_deployment_request.py +0 -173
- extremecloudiq/models/xiq_deployment_response.py +0 -151
- extremecloudiq/models/xiq_deployment_schedule_action_response.py +0 -123
- extremecloudiq/models/xiq_deployment_status.py +0 -292
- extremecloudiq/models/xiq_deployments_policy_response.py +0 -203
- extremecloudiq/models/xiq_destination_type.py +0 -101
- extremecloudiq/models/xiq_device.py +0 -1102
- extremecloudiq/models/xiq_device_admin_state.py +0 -104
- extremecloudiq/models/xiq_device_alarm.py +0 -291
- extremecloudiq/models/xiq_device_category.py +0 -101
- extremecloudiq/models/xiq_device_client_monitor.py +0 -151
- extremecloudiq/models/xiq_device_configure_ipv4_interface.py +0 -494
- extremecloudiq/models/xiq_device_configure_ipv4_interface_response.py +0 -467
- extremecloudiq/models/xiq_device_configure_ipv4_static_route.py +0 -382
- extremecloudiq/models/xiq_device_cpu_memory_usage.py +0 -179
- extremecloudiq/models/xiq_device_create_configure_ipv4_interface.py +0 -413
- extremecloudiq/models/xiq_device_create_configure_ipv4_static_route.py +0 -354
- extremecloudiq/models/xiq_device_create_vlan_attributes.py +0 -315
- extremecloudiq/models/xiq_device_dhcp_relay.py +0 -292
- extremecloudiq/models/xiq_device_field.py +0 -135
- extremecloudiq/models/xiq_device_filter.py +0 -123
- extremecloudiq/models/xiq_device_firmware_metadata.py +0 -434
- extremecloudiq/models/xiq_device_function.py +0 -108
- extremecloudiq/models/xiq_device_geolocation.py +0 -295
- extremecloudiq/models/xiq_device_ibeacon.py +0 -338
- extremecloudiq/models/xiq_device_installation_report.py +0 -407
- extremecloudiq/models/xiq_device_interface_radio_mode.py +0 -181
- extremecloudiq/models/xiq_device_iot_interface_settings_entry.py +0 -149
- extremecloudiq/models/xiq_device_ipv4_routing_route_origin_field.py +0 -103
- extremecloudiq/models/xiq_device_ipv4_routing_sort_field.py +0 -109
- extremecloudiq/models/xiq_device_ipv4_routing_status_field.py +0 -102
- extremecloudiq/models/xiq_device_level_ssid.py +0 -180
- extremecloudiq/models/xiq_device_level_ssid_status.py +0 -153
- extremecloudiq/models/xiq_device_lldp_cdp_info.py +0 -207
- extremecloudiq/models/xiq_device_location.py +0 -464
- extremecloudiq/models/xiq_device_location_assignment.py +0 -236
- extremecloudiq/models/xiq_device_monitor_ipv4_route_nexthop.py +0 -319
- extremecloudiq/models/xiq_device_monitor_ipv4_routing.py +0 -211
- extremecloudiq/models/xiq_device_monitor_ipv4_routing_detail.py +0 -375
- extremecloudiq/models/xiq_device_monitor_ipv4_routing_timeline.py +0 -269
- extremecloudiq/models/xiq_device_monitor_ipv4_routing_timeline_info.py +0 -235
- extremecloudiq/models/xiq_device_monitor_refresh_response.py +0 -124
- extremecloudiq/models/xiq_device_monitor_refresh_status_response.py +0 -188
- extremecloudiq/models/xiq_device_monitor_vlan_attributes.py +0 -211
- extremecloudiq/models/xiq_device_monitor_vlan_attributes_info.py +0 -488
- extremecloudiq/models/xiq_device_monitor_vlan_ipv4_interfaces.py +0 -211
- extremecloudiq/models/xiq_device_monitor_vlan_ipv4_interfaces_details.py +0 -376
- extremecloudiq/models/xiq_device_null_field.py +0 -101
- extremecloudiq/models/xiq_device_radio_operating_mode.py +0 -149
- extremecloudiq/models/xiq_device_sort_field.py +0 -101
- extremecloudiq/models/xiq_device_stats.py +0 -173
- extremecloudiq/models/xiq_device_stats_entity.py +0 -292
- extremecloudiq/models/xiq_device_subnetwork_ipv4.py +0 -350
- extremecloudiq/models/xiq_device_type.py +0 -102
- extremecloudiq/models/xiq_device_update_configure_ipv4_interface.py +0 -441
- extremecloudiq/models/xiq_device_update_configure_ipv4_static_route.py +0 -382
- extremecloudiq/models/xiq_device_update_vlan_attributes.py +0 -287
- extremecloudiq/models/xiq_device_view.py +0 -105
- extremecloudiq/models/xiq_device_vlan_attributes.py +0 -315
- extremecloudiq/models/xiq_device_vlan_attributes_dhcp_snooping_action.py +0 -101
- extremecloudiq/models/xiq_device_vlan_ipv4_interfaces_sort_field.py +0 -104
- extremecloudiq/models/xiq_device_vlan_sort_field.py +0 -104
- extremecloudiq/models/xiq_device_wifi_interface.py +0 -907
- extremecloudiq/models/xiq_device_wireless_interface_entry.py +0 -150
- extremecloudiq/models/xiq_devices.py +0 -151
- extremecloudiq/models/xiq_dfs_channel_changes_entity.py +0 -152
- extremecloudiq/models/xiq_dfs_channel_stats_entity.py +0 -152
- extremecloudiq/models/xiq_dfs_recurence_channel_stats_response.py +0 -179
- extremecloudiq/models/xiq_dfs_recurence_count_stats_response.py +0 -151
- extremecloudiq/models/xiq_dhcp_platform.py +0 -101
- extremecloudiq/models/xiq_dhcp_service_type.py +0 -101
- extremecloudiq/models/xiq_digital_twin_device.py +0 -262
- extremecloudiq/models/xiq_digital_twin_devices.py +0 -123
- extremecloudiq/models/xiq_digital_twin_feat_license.py +0 -105
- extremecloudiq/models/xiq_digital_twin_make.py +0 -101
- extremecloudiq/models/xiq_digital_twin_model.py +0 -138
- extremecloudiq/models/xiq_digital_twin_onboard_device.py +0 -205
- extremecloudiq/models/xiq_digital_twin_products.py +0 -210
- extremecloudiq/models/xiq_digital_twin_vim_module.py +0 -104
- extremecloudiq/models/xiq_duplex_data_rate_entity.py +0 -180
- extremecloudiq/models/xiq_ekahau_floor_import_result.py +0 -178
- extremecloudiq/models/xiq_ekahau_floor_import_status.py +0 -101
- extremecloudiq/models/xiq_ekahau_floor_to_floor_association.py +0 -153
- extremecloudiq/models/xiq_ekahau_floor_to_outdoor_site_association.py +0 -182
- extremecloudiq/models/xiq_ekahau_import_details.py +0 -124
- extremecloudiq/models/xiq_ekahau_import_issue.py +0 -181
- extremecloudiq/models/xiq_ekahau_import_issues.py +0 -231
- extremecloudiq/models/xiq_elevation.py +0 -179
- extremecloudiq/models/xiq_ellipse.py +0 -173
- extremecloudiq/models/xiq_email_log.py +0 -320
- extremecloudiq/models/xiq_email_template.py +0 -435
- extremecloudiq/models/xiq_end_user.py +0 -610
- extremecloudiq/models/xiq_entitlement_type.py +0 -103
- extremecloudiq/models/xiq_error.py +0 -182
- extremecloudiq/models/xiq_exos_device.py +0 -207
- extremecloudiq/models/xiq_exos_devices.py +0 -124
- extremecloudiq/models/xiq_expiration_action_type.py +0 -101
- extremecloudiq/models/xiq_expiration_settings.py +0 -251
- extremecloudiq/models/xiq_expiration_type.py +0 -103
- extremecloudiq/models/xiq_external_account.py +0 -298
- extremecloudiq/models/xiq_external_radius_server.py +0 -410
- extremecloudiq/models/xiq_external_user.py +0 -322
- extremecloudiq/models/xiq_external_user_directory.py +0 -349
- extremecloudiq/models/xiq_external_user_directory_entry.py +0 -151
- extremecloudiq/models/xiq_external_user_directory_type.py +0 -101
- extremecloudiq/models/xiq_extreme_device.py +0 -207
- extremecloudiq/models/xiq_extreme_devices.py +0 -124
- extremecloudiq/models/xiq_failure_onboard_device.py +0 -150
- extremecloudiq/models/xiq_feedback_type.py +0 -101
- extremecloudiq/models/xiq_firmware_activate_option.py +0 -179
- extremecloudiq/models/xiq_firmware_metadatas_request.py +0 -151
- extremecloudiq/models/xiq_firmware_metadatas_response.py +0 -121
- extremecloudiq/models/xiq_firmware_upgrade_policy.py +0 -151
- extremecloudiq/models/xiq_firmware_upgrade_version.py +0 -180
- extremecloudiq/models/xiq_flap_count_entity.py +0 -208
- extremecloudiq/models/xiq_floor.py +0 -493
- extremecloudiq/models/xiq_forensic_bucket.py +0 -106
- extremecloudiq/models/xiq_ftm_settings.py +0 -349
- extremecloudiq/models/xiq_ftm_settings_request.py +0 -262
- extremecloudiq/models/xiq_gateway_ip_type.py +0 -101
- extremecloudiq/models/xiq_generate_api_token_request.py +0 -180
- extremecloudiq/models/xiq_generate_api_token_response.py +0 -296
- extremecloudiq/models/xiq_get_afc_spectrum_for_ap_request.py +0 -205
- extremecloudiq/models/xiq_get_afc_spectrum_for_site_aps_request.py +0 -205
- extremecloudiq/models/xiq_get_device_info_by_nos.py +0 -181
- extremecloudiq/models/xiq_get_device_infoby_nos_request.py +0 -179
- extremecloudiq/models/xiq_get_port_assignment_details_response.py +0 -181
- extremecloudiq/models/xiq_grant_external_user_request.py +0 -207
- extremecloudiq/models/xiq_hardware_health_client_list_response.py +0 -121
- extremecloudiq/models/xiq_hardware_health_device_stats_entity.py +0 -264
- extremecloudiq/models/xiq_hardware_health_packet_counts_entity.py +0 -320
- extremecloudiq/models/xiq_hardware_health_reboot_stats_entity.py +0 -152
- extremecloudiq/models/xiq_hardware_health_stats_response.py +0 -179
- extremecloudiq/models/xiq_hh_client_stats_entity.py +0 -261
- extremecloudiq/models/xiq_hiq_context.py +0 -153
- extremecloudiq/models/xiq_hiq_status.py +0 -124
- extremecloudiq/models/xiq_host_name_address_profile.py +0 -406
- extremecloudiq/models/xiq_http_method.py +0 -103
- extremecloudiq/models/xiq_http_server.py +0 -163
- extremecloudiq/models/xiq_init_key_based_pcg_network_policy_request.py +0 -182
- extremecloudiq/models/xiq_initialize_location_request.py +0 -151
- extremecloudiq/models/xiq_internal_radius_device.py +0 -297
- extremecloudiq/models/xiq_internal_radius_server.py +0 -824
- extremecloudiq/models/xiq_internal_radius_server_authentication_method.py +0 -104
- extremecloudiq/models/xiq_internal_radius_server_authentication_method_group.py +0 -105
- extremecloudiq/models/xiq_iot_application_id.py +0 -100
- extremecloudiq/models/xiq_iot_application_supported.py +0 -101
- extremecloudiq/models/xiq_iot_profile.py +0 -341
- extremecloudiq/models/xiq_iot_profile_request.py +0 -256
- extremecloudiq/models/xiq_iot_profile_thread_gateway.py +0 -457
- extremecloudiq/models/xiq_iotp_ma_ble_beacon.py +0 -123
- extremecloudiq/models/xiq_iotp_ma_ble_beacon_app_type.py +0 -101
- extremecloudiq/models/xiq_iotp_ma_ble_beacon_application.py +0 -357
- extremecloudiq/models/xiq_iotp_ma_ble_scan.py +0 -149
- extremecloudiq/models/xiq_iotp_ma_ble_scan_app_type.py +0 -102
- extremecloudiq/models/xiq_iotp_ma_ble_scan_application.py +0 -215
- extremecloudiq/models/xiq_iotp_ma_ble_scan_destination.py +0 -155
- extremecloudiq/models/xiq_iotp_ma_ble_scan_vendor.py +0 -183
- extremecloudiq/models/xiq_iotp_ma_ble_scan_vendor_type.py +0 -102
- extremecloudiq/models/xiq_iotp_tg_white_list_entry.py +0 -165
- extremecloudiq/models/xiq_ip_address_profile.py +0 -406
- extremecloudiq/models/xiq_ip_firewall.py +0 -322
- extremecloudiq/models/xiq_ip_firewall_action.py +0 -104
- extremecloudiq/models/xiq_ip_firewall_policy_request.py +0 -179
- extremecloudiq/models/xiq_ip_firewall_rule.py +0 -366
- extremecloudiq/models/xiq_ip_firewall_rule_request.py +0 -231
- extremecloudiq/models/xiq_ip_range_address_profile.py +0 -434
- extremecloudiq/models/xiq_key_based_pcg.py +0 -354
- extremecloudiq/models/xiq_key_based_pcg_user.py +0 -297
- extremecloudiq/models/xiq_key_based_pcg_user_base_info.py +0 -182
- extremecloudiq/models/xiq_l3_address_profile.py +0 -406
- extremecloudiq/models/xiq_l3_address_profile_response.py +0 -251
- extremecloudiq/models/xiq_l3_address_type.py +0 -105
- extremecloudiq/models/xiq_ldap_protocol_type.py +0 -101
- extremecloudiq/models/xiq_ldap_server.py +0 -599
- extremecloudiq/models/xiq_ldap_server_verification_mode.py +0 -102
- extremecloudiq/models/xiq_license_mode.py +0 -104
- extremecloudiq/models/xiq_license_status.py +0 -105
- extremecloudiq/models/xiq_list_afc_servers.py +0 -121
- extremecloudiq/models/xiq_list_alert_policies.py +0 -149
- extremecloudiq/models/xiq_location.py +0 -381
- extremecloudiq/models/xiq_location_legend.py +0 -151
- extremecloudiq/models/xiq_location_tree_device.py +0 -433
- extremecloudiq/models/xiq_location_tree_map.py +0 -209
- extremecloudiq/models/xiq_location_type.py +0 -102
- extremecloudiq/models/xiq_logging_type.py +0 -104
- extremecloudiq/models/xiq_login_request.py +0 -153
- extremecloudiq/models/xiq_login_response.py +0 -182
- extremecloudiq/models/xiq_mac_firewall.py +0 -322
- extremecloudiq/models/xiq_mac_firewall_action.py +0 -101
- extremecloudiq/models/xiq_mac_firewall_policy_request.py +0 -179
- extremecloudiq/models/xiq_mac_firewall_rule.py +0 -314
- extremecloudiq/models/xiq_mac_firewall_rule_request.py +0 -203
- extremecloudiq/models/xiq_mac_object.py +0 -404
- extremecloudiq/models/xiq_mac_object_type.py +0 -102
- extremecloudiq/models/xiq_measurement_unit.py +0 -101
- extremecloudiq/models/xiq_network_alg_type.py +0 -105
- extremecloudiq/models/xiq_network_ip_protocol.py +0 -103
- extremecloudiq/models/xiq_network_policy.py +0 -325
- extremecloudiq/models/xiq_network_policy_field.py +0 -107
- extremecloudiq/models/xiq_network_policy_type.py +0 -106
- extremecloudiq/models/xiq_network_policy_view.py +0 -101
- extremecloudiq/models/xiq_network_service.py +0 -409
- extremecloudiq/models/xiq_network_service_request.py +0 -259
- extremecloudiq/models/xiq_onboard_device_request.py +0 -251
- extremecloudiq/models/xiq_onboard_error.py +0 -142
- extremecloudiq/models/xiq_onboard_key_based_pcg_request.py +0 -180
- extremecloudiq/models/xiq_onboard_key_based_pcg_response.py +0 -182
- extremecloudiq/models/xiq_operation_metadata.py +0 -356
- extremecloudiq/models/xiq_operation_object.py +0 -234
- extremecloudiq/models/xiq_operation_status.py +0 -105
- extremecloudiq/models/xiq_organization.py +0 -294
- extremecloudiq/models/xiq_organization_type.py +0 -101
- extremecloudiq/models/xiq_os_object.py +0 -210
- extremecloudiq/models/xiq_packet_capture.py +0 -539
- extremecloudiq/models/xiq_packet_capture_field.py +0 -115
- extremecloudiq/models/xiq_packet_capture_sort_field.py +0 -102
- extremecloudiq/models/xiq_packet_capture_status.py +0 -104
- extremecloudiq/models/xiq_password_character_type.py +0 -102
- extremecloudiq/models/xiq_password_db_location.py +0 -101
- extremecloudiq/models/xiq_password_settings.py +0 -290
- extremecloudiq/models/xiq_password_type.py +0 -101
- extremecloudiq/models/xiq_pcg_assign_ports_request.py +0 -124
- extremecloudiq/models/xiq_pcg_assign_ports_response.py +0 -182
- extremecloudiq/models/xiq_pcg_port_assignment.py +0 -208
- extremecloudiq/models/xiq_pcg_port_assignment_entry.py +0 -323
- extremecloudiq/models/xiq_pcg_port_assignment_entry_detail.py +0 -314
- extremecloudiq/models/xiq_pcg_port_assignment_entry_device_meta.py +0 -297
- extremecloudiq/models/xiq_pcg_port_assignment_entry_eth_user_meta.py +0 -355
- extremecloudiq/models/xiq_pcg_type.py +0 -101
- extremecloudiq/models/xiq_permission.py +0 -182
- extremecloudiq/models/xiq_poe_flapping_stats_response.py +0 -151
- extremecloudiq/models/xiq_poe_trend_graphs_response.py +0 -123
- extremecloudiq/models/xiq_policy_rule_protocol_type.py +0 -108
- extremecloudiq/models/xiq_port_efficiency_speed_duplex_stats_response.py +0 -123
- extremecloudiq/models/xiq_port_efficiency_stats_response.py +0 -123
- extremecloudiq/models/xiq_post_expiration_action.py +0 -205
- extremecloudiq/models/xiq_power_source_equipment.py +0 -319
- extremecloudiq/models/xiq_psk_generation_method.py +0 -101
- extremecloudiq/models/xiq_quality_index.py +0 -103
- extremecloudiq/models/xiq_radio.py +0 -294
- extremecloudiq/models/xiq_radio_bands.py +0 -106
- extremecloudiq/models/xiq_radio_entity.py +0 -152
- extremecloudiq/models/xiq_radio_mode.py +0 -110
- extremecloudiq/models/xiq_radio_operating_modes.py +0 -149
- extremecloudiq/models/xiq_radio_profile.py +0 -684
- extremecloudiq/models/xiq_radius_client.py +0 -207
- extremecloudiq/models/xiq_radius_client_object.py +0 -425
- extremecloudiq/models/xiq_radius_client_object_entry.py +0 -178
- extremecloudiq/models/xiq_radius_client_object_type.py +0 -102
- extremecloudiq/models/xiq_radius_client_profile.py +0 -179
- extremecloudiq/models/xiq_radius_client_profile_entry.py +0 -151
- extremecloudiq/models/xiq_radius_proxy.py +0 -460
- extremecloudiq/models/xiq_radius_proxy_format_type.py +0 -103
- extremecloudiq/models/xiq_radius_proxy_realm.py +0 -207
- extremecloudiq/models/xiq_radius_server_type.py +0 -102
- extremecloudiq/models/xiq_recurrence_type.py +0 -101
- extremecloudiq/models/xiq_regenerate_end_user_password_response.py +0 -124
- extremecloudiq/models/xiq_rf_environment_type.py +0 -106
- extremecloudiq/models/xiq_rp_channel_selection.py +0 -776
- extremecloudiq/models/xiq_rp_mac_oui_profile.py +0 -378
- extremecloudiq/models/xiq_rp_miscellaneous_settings.py +0 -266
- extremecloudiq/models/xiq_rp_neighborhood_analysis.py +0 -322
- extremecloudiq/models/xiq_rp_radio_usage_optimization.py +0 -1162
- extremecloudiq/models/xiq_rp_sensor_scan_settings.py +0 -266
- extremecloudiq/models/xiq_rp_wmm_qos_settings.py +0 -350
- extremecloudiq/models/xiq_schedule.py +0 -395
- extremecloudiq/models/xiq_schedule_details.py +0 -124
- extremecloudiq/models/xiq_schedule_status.py +0 -105
- extremecloudiq/models/xiq_schedule_type.py +0 -101
- extremecloudiq/models/xiq_send_cli_request.py +0 -151
- extremecloudiq/models/xiq_send_cli_response.py +0 -123
- extremecloudiq/models/xiq_server_role.py +0 -103
- extremecloudiq/models/xiq_sessions_data_entity.py +0 -208
- extremecloudiq/models/xiq_set_ssid_mode_dot1x_request.py +0 -290
- extremecloudiq/models/xiq_set_ssid_mode_ppsk_request.py +0 -332
- extremecloudiq/models/xiq_set_ssid_mode_psk_request.py +0 -293
- extremecloudiq/models/xiq_set_ssid_mode_wep_request.py +0 -391
- extremecloudiq/models/xiq_site.py +0 -464
- extremecloudiq/models/xiq_site_afc_schedule.py +0 -199
- extremecloudiq/models/xiq_site_info.py +0 -177
- extremecloudiq/models/xiq_sites_by_wired_entity.py +0 -207
- extremecloudiq/models/xiq_sites_by_wireless_entity.py +0 -207
- extremecloudiq/models/xiq_sms_log.py +0 -402
- extremecloudiq/models/xiq_sms_log_status.py +0 -103
- extremecloudiq/models/xiq_sms_template.py +0 -351
- extremecloudiq/models/xiq_sort_field.py +0 -101
- extremecloudiq/models/xiq_sort_order.py +0 -101
- extremecloudiq/models/xiq_spectrum_mismatch_summary.py +0 -173
- extremecloudiq/models/xiq_speed_duplex_entity.py +0 -180
- extremecloudiq/models/xiq_ssid.py +0 -599
- extremecloudiq/models/xiq_ssid_access_security.py +0 -311
- extremecloudiq/models/xiq_ssid_access_security_type.py +0 -105
- extremecloudiq/models/xiq_ssid_advanced_settings.py +0 -208
- extremecloudiq/models/xiq_ssid_dot1x_encryption_method.py +0 -103
- extremecloudiq/models/xiq_ssid_dot1x_key_management.py +0 -103
- extremecloudiq/models/xiq_ssid_encryption_method.py +0 -105
- extremecloudiq/models/xiq_ssid_key_management.py +0 -109
- extremecloudiq/models/xiq_ssid_key_type.py +0 -101
- extremecloudiq/models/xiq_ssid_ppsk_key_management.py +0 -102
- extremecloudiq/models/xiq_ssid_psk_encryption_method.py +0 -102
- extremecloudiq/models/xiq_ssid_psk_key_management.py +0 -103
- extremecloudiq/models/xiq_ssid_sae_group.py +0 -102
- extremecloudiq/models/xiq_ssid_status.py +0 -101
- extremecloudiq/models/xiq_ssid_wep_authentication_method.py +0 -101
- extremecloudiq/models/xiq_ssid_wep_default_key.py +0 -103
- extremecloudiq/models/xiq_ssid_wep_encryption_method.py +0 -101
- extremecloudiq/models/xiq_ssid_wep_key_management.py +0 -101
- extremecloudiq/models/xiq_storage.py +0 -149
- extremecloudiq/models/xiq_subnet_address_profile.py +0 -434
- extremecloudiq/models/xiq_subscription_data_type.py +0 -107
- extremecloudiq/models/xiq_subscription_message_type.py +0 -108
- extremecloudiq/models/xiq_subscription_status.py +0 -101
- extremecloudiq/models/xiq_success_onboard_device.py +0 -153
- extremecloudiq/models/xiq_thread_backbone_border_router_service.py +0 -121
- extremecloudiq/models/xiq_thread_border_agent_service.py +0 -147
- extremecloudiq/models/xiq_thread_border_router_service.py +0 -355
- extremecloudiq/models/xiq_thread_commissioner_service.py +0 -121
- extremecloudiq/models/xiq_thread_ipv6_setting.py +0 -199
- extremecloudiq/models/xiq_thread_leader_service.py +0 -199
- extremecloudiq/models/xiq_thread_mle_link_mode.py +0 -173
- extremecloudiq/models/xiq_thread_nat64_service.py +0 -173
- extremecloudiq/models/xiq_thread_net_data_prefix.py +0 -433
- extremecloudiq/models/xiq_thread_net_data_route.py +0 -251
- extremecloudiq/models/xiq_thread_net_data_service.py +0 -251
- extremecloudiq/models/xiq_thread_network_config.py +0 -607
- extremecloudiq/models/xiq_thread_network_data.py +0 -225
- extremecloudiq/models/xiq_thread_network_interface.py +0 -537
- extremecloudiq/models/xiq_thread_network_topology.py +0 -173
- extremecloudiq/models/xiq_thread_networks.py +0 -121
- extremecloudiq/models/xiq_thread_router.py +0 -942
- extremecloudiq/models/xiq_thread_router_neighbor.py +0 -199
- extremecloudiq/models/xiq_thread_start_commissioner_request.py +0 -186
- extremecloudiq/models/xiq_thread_stop_commissioner_request.py +0 -152
- extremecloudiq/models/xiq_thread_version.py +0 -199
- extremecloudiq/models/xiq_top_applications_usage.py +0 -235
- extremecloudiq/models/xiq_traffic.py +0 -101
- extremecloudiq/models/xiq_trend_graph_entity.py +0 -152
- extremecloudiq/models/xiq_trend_indicator.py +0 -103
- extremecloudiq/models/xiq_tunnel_concentrator.py +0 -768
- extremecloudiq/models/xiq_tunnel_concentrator_request.py +0 -681
- extremecloudiq/models/xiq_unaffected_downlink_device.py +0 -207
- extremecloudiq/models/xiq_update_action_anomaly_details.py +0 -209
- extremecloudiq/models/xiq_update_alert_email_subscription_request.py +0 -208
- extremecloudiq/models/xiq_update_alert_rule_request.py +0 -319
- extremecloudiq/models/xiq_update_alert_webhook_subscription_request.py +0 -236
- extremecloudiq/models/xiq_update_anomalies_and_devices_request.py +0 -151
- extremecloudiq/models/xiq_update_building_request.py +0 -236
- extremecloudiq/models/xiq_update_classification_request.py +0 -188
- extremecloudiq/models/xiq_update_classification_rule_request.py +0 -181
- extremecloudiq/models/xiq_update_client_monitor_profile_request.py +0 -241
- extremecloudiq/models/xiq_update_cloud_config_group_request.py +0 -179
- extremecloudiq/models/xiq_update_device_level_ssid_status.py +0 -182
- extremecloudiq/models/xiq_update_end_user_request.py +0 -347
- extremecloudiq/models/xiq_update_external_radius_server_request.py +0 -278
- extremecloudiq/models/xiq_update_external_user_request.py +0 -177
- extremecloudiq/models/xiq_update_firmware_upgrade_request.py +0 -173
- extremecloudiq/models/xiq_update_floor_request.py +0 -350
- extremecloudiq/models/xiq_update_internal_radius_server_request.py +0 -652
- extremecloudiq/models/xiq_update_key_based_pcg_users_request.py +0 -124
- extremecloudiq/models/xiq_update_l3_address_profile_request.py +0 -292
- extremecloudiq/models/xiq_update_ldap_server_request.py +0 -486
- extremecloudiq/models/xiq_update_location_request.py +0 -153
- extremecloudiq/models/xiq_update_mac_object_request.py +0 -207
- extremecloudiq/models/xiq_update_network_policy_request.py +0 -177
- extremecloudiq/models/xiq_update_radio_profile_request.py +0 -437
- extremecloudiq/models/xiq_update_radius_client.py +0 -207
- extremecloudiq/models/xiq_update_radius_client_object_request.py +0 -309
- extremecloudiq/models/xiq_update_radius_proxy_realm.py +0 -207
- extremecloudiq/models/xiq_update_radius_proxy_request.py +0 -345
- extremecloudiq/models/xiq_update_rp_channel_selection_request.py +0 -713
- extremecloudiq/models/xiq_update_rp_mac_oui_profile_request.py +0 -235
- extremecloudiq/models/xiq_update_rp_miscellaneous_settings_request.py +0 -157
- extremecloudiq/models/xiq_update_rp_neighborhood_analysis_request.py +0 -241
- extremecloudiq/models/xiq_update_rp_radio_usage_optimization_request.py +0 -1159
- extremecloudiq/models/xiq_update_rp_sensor_scan_settings_request.py +0 -179
- extremecloudiq/models/xiq_update_rp_wmm_qos_settings_request.py +0 -259
- extremecloudiq/models/xiq_update_site_request.py +0 -263
- extremecloudiq/models/xiq_update_ssid_advanced_settings_request.py +0 -123
- extremecloudiq/models/xiq_update_user_group_request.py +0 -453
- extremecloudiq/models/xiq_update_user_profile_request.py +0 -151
- extremecloudiq/models/xiq_update_user_request.py +0 -233
- extremecloudiq/models/xiq_update_vlan_object_classified_entry_request.py +0 -153
- extremecloudiq/models/xiq_update_vlan_profile_request.py +0 -210
- extremecloudiq/models/xiq_user.py +0 -517
- extremecloudiq/models/xiq_user_group.py +0 -599
- extremecloudiq/models/xiq_user_profile.py +0 -237
- extremecloudiq/models/xiq_user_profile_assignment.py +0 -488
- extremecloudiq/models/xiq_user_profile_assignment_radius_attribute.py +0 -149
- extremecloudiq/models/xiq_user_profile_assignment_rule.py +0 -175
- extremecloudiq/models/xiq_user_role.py +0 -107
- extremecloudiq/models/xiq_valid_daily_settings.py +0 -211
- extremecloudiq/models/xiq_valid_during_date_settings.py +0 -178
- extremecloudiq/models/xiq_valid_for_time_period_settings.py +0 -174
- extremecloudiq/models/xiq_valid_time_period_after_first_login.py +0 -207
- extremecloudiq/models/xiq_valid_time_period_after_id_creation.py +0 -151
- extremecloudiq/models/xiq_valid_time_period_after_type.py +0 -101
- extremecloudiq/models/xiq_viq.py +0 -347
- extremecloudiq/models/xiq_viq_export_import_status_response.py +0 -261
- extremecloudiq/models/xiq_viq_export_response.py +0 -182
- extremecloudiq/models/xiq_viq_import_response.py +0 -153
- extremecloudiq/models/xiq_viq_license.py +0 -456
- extremecloudiq/models/xiq_viq_operation_type.py +0 -101
- extremecloudiq/models/xiq_viq_task_progress.py +0 -207
- extremecloudiq/models/xiq_vlan_object.py +0 -359
- extremecloudiq/models/xiq_vlan_object_classified_entry.py +0 -271
- extremecloudiq/models/xiq_vlan_profile.py +0 -331
- extremecloudiq/models/xiq_vlan_profile_filter.py +0 -123
- extremecloudiq/models/xiq_voss_device.py +0 -207
- extremecloudiq/models/xiq_voss_devices.py +0 -124
- extremecloudiq/models/xiq_webhook_subscription.py +0 -350
- extremecloudiq/models/xiq_weekday.py +0 -106
- extremecloudiq/models/xiq_wgs84.py +0 -182
- extremecloudiq/models/xiq_wifi_capacity_client_list_response.py +0 -123
- extremecloudiq/models/xiq_wifi_capacity_stats_response.py +0 -123
- extremecloudiq/models/xiq_wifi_efficiency_client_list_response.py +0 -123
- extremecloudiq/models/xiq_wifi_efficiency_stats_response.py +0 -179
- extremecloudiq/models/xiq_wildcard_address_profile.py +0 -434
- extremecloudiq/models/xiq_wildcard_host_name_address_profile.py +0 -406
- extremecloudiq/models/xiq_wing_device.py +0 -236
- extremecloudiq/models/xiq_wing_devices.py +0 -124
- extremecloudiq/models/xiq_wired_event_entity.py +0 -291
- extremecloudiq/models/xiq_wired_filter_type.py +0 -104
- extremecloudiq/models/xiq_wired_hardware_by_location_response.py +0 -179
- extremecloudiq/models/xiq_wired_hardware_entity.py +0 -236
- extremecloudiq/models/xiq_wired_hardware_response.py +0 -123
- extremecloudiq/models/xiq_wired_quality_index_response.py +0 -151
- extremecloudiq/models/xiq_wired_view_type.py +0 -100
- extremecloudiq/models/xiq_wireless_apps_response.py +0 -235
- extremecloudiq/models/xiq_wireless_client.py +0 -203
- extremecloudiq/models/xiq_wireless_connectivity_performance_response.py +0 -123
- extremecloudiq/models/xiq_wireless_event_retries_entity.py +0 -263
- extremecloudiq/models/xiq_wireless_filter_type.py +0 -105
- extremecloudiq/models/xiq_wireless_if_name.py +0 -102
- extremecloudiq/models/xiq_wireless_performance_entity.py +0 -290
- extremecloudiq/models/xiq_wireless_performance_retries_entity.py +0 -179
- extremecloudiq/models/xiq_wireless_quality_index_by_location_response.py +0 -207
- extremecloudiq/models/xiq_wireless_quality_index_response.py +0 -179
- extremecloudiq/models/xiq_wireless_time_to_connect_entity.py +0 -404
- extremecloudiq/models/xiq_wireless_time_to_connect_response.py +0 -123
- extremecloudiq/models/xiq_wireless_views_list_type.py +0 -101
- extremecloudiq/models/xiq_wireless_views_type_response.py +0 -123
- extremecloudiq/models/xiq_zsubelement.py +0 -179
- extremecloudiq/models/xiq_zsubelement_above_floor.py +0 -153
- extremecloudiq_api-24.6.0.74.dist-info/METADATA +0 -18
- extremecloudiq_api-24.6.0.74.dist-info/RECORD +0 -751
- {extremecloudiq_api-24.6.0.74.dist-info → extremecloudiq_api-25.2.0.123.dist-info}/WHEEL +0 -0
- {extremecloudiq_api-24.6.0.74.dist-info → extremecloudiq_api-25.2.0.123.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,2476 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
"""
|
4
|
+
ExtremeCloud IQ API
|
5
|
+
|
6
|
+
ExtremeCloud IQ RESTful API for external and internal applications. # noqa: E501
|
7
|
+
|
8
|
+
The version of the OpenAPI document: 25.2.0.123
|
9
|
+
Contact: support@extremenetworks.com
|
10
|
+
Generated by: https://openapi-generator.tech
|
11
|
+
"""
|
12
|
+
|
13
|
+
from collections import defaultdict
|
14
|
+
from datetime import date, datetime, timedelta # noqa: F401
|
15
|
+
import functools
|
16
|
+
import decimal
|
17
|
+
import io
|
18
|
+
import re
|
19
|
+
import types
|
20
|
+
import typing
|
21
|
+
import uuid
|
22
|
+
|
23
|
+
from dateutil.parser.isoparser import isoparser, _takes_ascii
|
24
|
+
import frozendict
|
25
|
+
|
26
|
+
from extremecloudiq.exceptions import (
|
27
|
+
ApiTypeError,
|
28
|
+
ApiValueError,
|
29
|
+
)
|
30
|
+
from extremecloudiq.configuration import (
|
31
|
+
Configuration,
|
32
|
+
)
|
33
|
+
|
34
|
+
|
35
|
+
class Unset(object):
|
36
|
+
"""
|
37
|
+
An instance of this class is set as the default value for object type(dict) properties that are optional
|
38
|
+
When a property has an unset value, that property will not be assigned in the dict
|
39
|
+
"""
|
40
|
+
pass
|
41
|
+
|
42
|
+
unset = Unset()
|
43
|
+
|
44
|
+
none_type = type(None)
|
45
|
+
file_type = io.IOBase
|
46
|
+
|
47
|
+
|
48
|
+
class FileIO(io.FileIO):
|
49
|
+
"""
|
50
|
+
A class for storing files
|
51
|
+
Note: this class is not immutable
|
52
|
+
"""
|
53
|
+
|
54
|
+
def __new__(cls, _arg: typing.Union[io.FileIO, io.BufferedReader]):
|
55
|
+
if isinstance(_arg, (io.FileIO, io.BufferedReader)):
|
56
|
+
if _arg.closed:
|
57
|
+
raise ApiValueError('Invalid file state; file is closed and must be open')
|
58
|
+
_arg.close()
|
59
|
+
inst = super(FileIO, cls).__new__(cls, _arg.name)
|
60
|
+
super(FileIO, inst).__init__(_arg.name)
|
61
|
+
return inst
|
62
|
+
raise ApiValueError('FileIO must be passed _arg which contains the open file')
|
63
|
+
|
64
|
+
def __init__(self, _arg: typing.Union[io.FileIO, io.BufferedReader]):
|
65
|
+
pass
|
66
|
+
|
67
|
+
|
68
|
+
def update(d: dict, u: dict):
|
69
|
+
"""
|
70
|
+
Adds u to d
|
71
|
+
Where each dict is defaultdict(set)
|
72
|
+
"""
|
73
|
+
if not u:
|
74
|
+
return d
|
75
|
+
for k, v in u.items():
|
76
|
+
if k not in d:
|
77
|
+
d[k] = v
|
78
|
+
else:
|
79
|
+
d[k] = d[k] | v
|
80
|
+
|
81
|
+
|
82
|
+
class ValidationMetadata(frozendict.frozendict):
|
83
|
+
"""
|
84
|
+
A class storing metadata that is needed to validate OpenApi Schema payloads
|
85
|
+
"""
|
86
|
+
def __new__(
|
87
|
+
cls,
|
88
|
+
path_to_item: typing.Tuple[typing.Union[str, int], ...] = tuple(['args[0]']),
|
89
|
+
from_server: bool = False,
|
90
|
+
configuration: typing.Optional[Configuration] = None,
|
91
|
+
seen_classes: typing.FrozenSet[typing.Type] = frozenset(),
|
92
|
+
validated_path_to_schemas: typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Set[typing.Type]] = frozendict.frozendict()
|
93
|
+
):
|
94
|
+
"""
|
95
|
+
Args:
|
96
|
+
path_to_item: the path to the current data being instantiated.
|
97
|
+
For {'a': [1]} if the code is handling, 1, then the path is ('args[0]', 'a', 0)
|
98
|
+
This changes from location to location
|
99
|
+
from_server: whether or not this data came form the server
|
100
|
+
True when receiving server data
|
101
|
+
False when instantiating model with client side data not form the server
|
102
|
+
This does not change from location to location
|
103
|
+
configuration: the Configuration instance to use
|
104
|
+
This is needed because in Configuration:
|
105
|
+
- one can disable validation checking
|
106
|
+
This does not change from location to location
|
107
|
+
seen_classes: when deserializing data that matches multiple schemas, this is used to store
|
108
|
+
the schemas that have been traversed. This is used to stop processing when a cycle is seen.
|
109
|
+
This changes from location to location
|
110
|
+
validated_path_to_schemas: stores the already validated schema classes for a given path location
|
111
|
+
This does not change from location to location
|
112
|
+
"""
|
113
|
+
return super().__new__(
|
114
|
+
cls,
|
115
|
+
path_to_item=path_to_item,
|
116
|
+
from_server=from_server,
|
117
|
+
configuration=configuration,
|
118
|
+
seen_classes=seen_classes,
|
119
|
+
validated_path_to_schemas=validated_path_to_schemas
|
120
|
+
)
|
121
|
+
|
122
|
+
def validation_ran_earlier(self, cls: type) -> bool:
|
123
|
+
validated_schemas = self.validated_path_to_schemas.get(self.path_to_item, set())
|
124
|
+
validation_ran_earlier = validated_schemas and cls in validated_schemas
|
125
|
+
if validation_ran_earlier:
|
126
|
+
return True
|
127
|
+
if cls in self.seen_classes:
|
128
|
+
return True
|
129
|
+
return False
|
130
|
+
|
131
|
+
@property
|
132
|
+
def path_to_item(self) -> typing.Tuple[typing.Union[str, int], ...]:
|
133
|
+
return self.get('path_to_item')
|
134
|
+
|
135
|
+
@property
|
136
|
+
def from_server(self) -> bool:
|
137
|
+
return self.get('from_server')
|
138
|
+
|
139
|
+
@property
|
140
|
+
def configuration(self) -> typing.Optional[Configuration]:
|
141
|
+
return self.get('configuration')
|
142
|
+
|
143
|
+
@property
|
144
|
+
def seen_classes(self) -> typing.FrozenSet[typing.Type]:
|
145
|
+
return self.get('seen_classes')
|
146
|
+
|
147
|
+
@property
|
148
|
+
def validated_path_to_schemas(self) -> typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Set[typing.Type]]:
|
149
|
+
return self.get('validated_path_to_schemas')
|
150
|
+
|
151
|
+
|
152
|
+
def add_deeper_validated_schemas(validation_metadata: ValidationMetadata, path_to_schemas: dict):
|
153
|
+
# this is called if validation_ran_earlier and current and deeper locations need to be added
|
154
|
+
current_path_to_item = validation_metadata.path_to_item
|
155
|
+
other_path_to_schemas = {}
|
156
|
+
for path_to_item, schemas in validation_metadata.validated_path_to_schemas.items():
|
157
|
+
if len(path_to_item) < len(current_path_to_item):
|
158
|
+
continue
|
159
|
+
path_begins_with_current_path = path_to_item[:len(current_path_to_item)] == current_path_to_item
|
160
|
+
if path_begins_with_current_path:
|
161
|
+
other_path_to_schemas[path_to_item] = schemas
|
162
|
+
update(path_to_schemas, other_path_to_schemas)
|
163
|
+
|
164
|
+
|
165
|
+
class Singleton:
|
166
|
+
"""
|
167
|
+
Enums and singletons are the same
|
168
|
+
The same instance is returned for a given key of (cls, _arg)
|
169
|
+
"""
|
170
|
+
_instances = {}
|
171
|
+
|
172
|
+
def __new__(cls, _arg: typing.Any, **kwargs):
|
173
|
+
"""
|
174
|
+
cls base classes: BoolClass, NoneClass, str, decimal.Decimal
|
175
|
+
The 3rd key is used in the tuple below for a corner case where an enum contains integer 1
|
176
|
+
However 1.0 can also be ingested into that enum schema because 1.0 == 1 and
|
177
|
+
Decimal('1.0') == Decimal('1')
|
178
|
+
But if we omitted the 3rd value in the key, then Decimal('1.0') would be stored as Decimal('1')
|
179
|
+
and json serializing that instance would be '1' rather than the expected '1.0'
|
180
|
+
Adding the 3rd value, the str of _arg ensures that 1.0 -> Decimal('1.0') which is serialized as 1.0
|
181
|
+
"""
|
182
|
+
key = (cls, _arg, str(_arg))
|
183
|
+
if key not in cls._instances:
|
184
|
+
if isinstance(_arg, (none_type, bool, BoolClass, NoneClass)):
|
185
|
+
inst = super().__new__(cls)
|
186
|
+
cls._instances[key] = inst
|
187
|
+
else:
|
188
|
+
cls._instances[key] = super().__new__(cls, _arg)
|
189
|
+
return cls._instances[key]
|
190
|
+
|
191
|
+
def __repr__(self):
|
192
|
+
if isinstance(self, NoneClass):
|
193
|
+
return f'<{self.__class__.__name__}: None>'
|
194
|
+
elif isinstance(self, BoolClass):
|
195
|
+
if bool(self):
|
196
|
+
return f'<{self.__class__.__name__}: True>'
|
197
|
+
return f'<{self.__class__.__name__}: False>'
|
198
|
+
return f'<{self.__class__.__name__}: {super().__repr__()}>'
|
199
|
+
|
200
|
+
|
201
|
+
class classproperty:
|
202
|
+
|
203
|
+
def __init__(self, fget):
|
204
|
+
self.fget = fget
|
205
|
+
|
206
|
+
def __get__(self, owner_self, owner_cls):
|
207
|
+
return self.fget(owner_cls)
|
208
|
+
|
209
|
+
|
210
|
+
class NoneClass(Singleton):
|
211
|
+
@classproperty
|
212
|
+
def NONE(cls):
|
213
|
+
return cls(None)
|
214
|
+
|
215
|
+
def __bool__(self) -> bool:
|
216
|
+
return False
|
217
|
+
|
218
|
+
|
219
|
+
class BoolClass(Singleton):
|
220
|
+
@classproperty
|
221
|
+
def TRUE(cls):
|
222
|
+
return cls(True)
|
223
|
+
|
224
|
+
@classproperty
|
225
|
+
def FALSE(cls):
|
226
|
+
return cls(False)
|
227
|
+
|
228
|
+
@functools.lru_cache()
|
229
|
+
def __bool__(self) -> bool:
|
230
|
+
for key, instance in self._instances.items():
|
231
|
+
if self is instance:
|
232
|
+
return bool(key[1])
|
233
|
+
raise ValueError('Unable to find the boolean value of this instance')
|
234
|
+
|
235
|
+
|
236
|
+
class MetaOapgTyped:
|
237
|
+
exclusive_maximum: typing.Union[int, float]
|
238
|
+
inclusive_maximum: typing.Union[int, float]
|
239
|
+
exclusive_minimum: typing.Union[int, float]
|
240
|
+
inclusive_minimum: typing.Union[int, float]
|
241
|
+
max_items: int
|
242
|
+
min_items: int
|
243
|
+
discriminator: typing.Dict[str, typing.Dict[str, typing.Type['Schema']]]
|
244
|
+
|
245
|
+
|
246
|
+
class properties:
|
247
|
+
# to hold object properties
|
248
|
+
pass
|
249
|
+
|
250
|
+
additional_properties: typing.Optional[typing.Type['Schema']]
|
251
|
+
max_properties: int
|
252
|
+
min_properties: int
|
253
|
+
all_of: typing.List[typing.Type['Schema']]
|
254
|
+
one_of: typing.List[typing.Type['Schema']]
|
255
|
+
any_of: typing.List[typing.Type['Schema']]
|
256
|
+
not_schema: typing.Type['Schema']
|
257
|
+
max_length: int
|
258
|
+
min_length: int
|
259
|
+
items: typing.Type['Schema']
|
260
|
+
|
261
|
+
|
262
|
+
class Schema:
|
263
|
+
"""
|
264
|
+
the base class of all swagger/openapi schemas/models
|
265
|
+
"""
|
266
|
+
__inheritable_primitive_types_set = {decimal.Decimal, str, tuple, frozendict.frozendict, FileIO, bytes, BoolClass, NoneClass}
|
267
|
+
_types: typing.Set[typing.Type]
|
268
|
+
MetaOapg = MetaOapgTyped
|
269
|
+
|
270
|
+
@staticmethod
|
271
|
+
def __get_valid_classes_phrase(input_classes):
|
272
|
+
"""Returns a string phrase describing what types are allowed"""
|
273
|
+
all_classes = list(input_classes)
|
274
|
+
all_classes = sorted(all_classes, key=lambda cls: cls.__name__)
|
275
|
+
all_class_names = [cls.__name__ for cls in all_classes]
|
276
|
+
if len(all_class_names) == 1:
|
277
|
+
return "is {0}".format(all_class_names[0])
|
278
|
+
return "is one of [{0}]".format(", ".join(all_class_names))
|
279
|
+
|
280
|
+
@staticmethod
|
281
|
+
def _get_class_oapg(item_cls: typing.Union[types.FunctionType, staticmethod, typing.Type['Schema']]) -> typing.Type['Schema']:
|
282
|
+
if isinstance(item_cls, types.FunctionType):
|
283
|
+
# referenced schema
|
284
|
+
return item_cls()
|
285
|
+
elif isinstance(item_cls, staticmethod):
|
286
|
+
# referenced schema
|
287
|
+
return item_cls.__func__()
|
288
|
+
return item_cls
|
289
|
+
|
290
|
+
@classmethod
|
291
|
+
def __type_error_message(
|
292
|
+
cls, var_value=None, var_name=None, valid_classes=None, key_type=None
|
293
|
+
):
|
294
|
+
"""
|
295
|
+
Keyword Args:
|
296
|
+
var_value (any): the variable which has the type_error
|
297
|
+
var_name (str): the name of the variable which has the typ error
|
298
|
+
valid_classes (tuple): the accepted classes for current_item's
|
299
|
+
value
|
300
|
+
key_type (bool): False if our value is a value in a dict
|
301
|
+
True if it is a key in a dict
|
302
|
+
False if our item is an item in a tuple
|
303
|
+
"""
|
304
|
+
key_or_value = "value"
|
305
|
+
if key_type:
|
306
|
+
key_or_value = "key"
|
307
|
+
valid_classes_phrase = cls.__get_valid_classes_phrase(valid_classes)
|
308
|
+
msg = "Invalid type. Required {1} type {2} and " "passed type was {3}".format(
|
309
|
+
var_name,
|
310
|
+
key_or_value,
|
311
|
+
valid_classes_phrase,
|
312
|
+
type(var_value).__name__,
|
313
|
+
)
|
314
|
+
return msg
|
315
|
+
|
316
|
+
@classmethod
|
317
|
+
def __get_type_error(cls, var_value, path_to_item, valid_classes, key_type=False):
|
318
|
+
error_msg = cls.__type_error_message(
|
319
|
+
var_name=path_to_item[-1],
|
320
|
+
var_value=var_value,
|
321
|
+
valid_classes=valid_classes,
|
322
|
+
key_type=key_type,
|
323
|
+
)
|
324
|
+
return ApiTypeError(
|
325
|
+
error_msg,
|
326
|
+
path_to_item=path_to_item,
|
327
|
+
valid_classes=valid_classes,
|
328
|
+
key_type=key_type,
|
329
|
+
)
|
330
|
+
|
331
|
+
@classmethod
|
332
|
+
def _validate_oapg(
|
333
|
+
cls,
|
334
|
+
arg,
|
335
|
+
validation_metadata: ValidationMetadata,
|
336
|
+
) -> typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Set[typing.Union['Schema', str, decimal.Decimal, BoolClass, NoneClass, frozendict.frozendict, tuple]]]:
|
337
|
+
"""
|
338
|
+
Schema _validate_oapg
|
339
|
+
All keyword validation except for type checking was done in calling stack frames
|
340
|
+
If those validations passed, the validated classes are collected in path_to_schemas
|
341
|
+
|
342
|
+
Returns:
|
343
|
+
path_to_schemas: a map of path to schemas
|
344
|
+
|
345
|
+
Raises:
|
346
|
+
ApiValueError: when a string can't be converted into a date or datetime and it must be one of those classes
|
347
|
+
ApiTypeError: when the input type is not in the list of allowed spec types
|
348
|
+
"""
|
349
|
+
base_class = type(arg)
|
350
|
+
if base_class not in cls._types:
|
351
|
+
raise cls.__get_type_error(
|
352
|
+
arg,
|
353
|
+
validation_metadata.path_to_item,
|
354
|
+
cls._types,
|
355
|
+
key_type=False,
|
356
|
+
)
|
357
|
+
|
358
|
+
path_to_schemas = {validation_metadata.path_to_item: set()}
|
359
|
+
path_to_schemas[validation_metadata.path_to_item].add(cls)
|
360
|
+
path_to_schemas[validation_metadata.path_to_item].add(base_class)
|
361
|
+
return path_to_schemas
|
362
|
+
|
363
|
+
@staticmethod
|
364
|
+
def _process_schema_classes_oapg(
|
365
|
+
schema_classes: typing.Set[typing.Union['Schema', str, decimal.Decimal, BoolClass, NoneClass, frozendict.frozendict, tuple]]
|
366
|
+
):
|
367
|
+
"""
|
368
|
+
Processes and mutates schema_classes
|
369
|
+
If a SomeSchema is a subclass of DictSchema then remove DictSchema because it is already included
|
370
|
+
"""
|
371
|
+
if len(schema_classes) < 2:
|
372
|
+
return
|
373
|
+
if len(schema_classes) > 2 and UnsetAnyTypeSchema in schema_classes:
|
374
|
+
schema_classes.remove(UnsetAnyTypeSchema)
|
375
|
+
x_schema = schema_type_classes & schema_classes
|
376
|
+
if not x_schema:
|
377
|
+
return
|
378
|
+
x_schema = x_schema.pop()
|
379
|
+
if any(c is not x_schema and issubclass(c, x_schema) for c in schema_classes):
|
380
|
+
# needed to not have a mro error in get_new_class
|
381
|
+
schema_classes.remove(x_schema)
|
382
|
+
|
383
|
+
@classmethod
|
384
|
+
def __get_new_cls(
|
385
|
+
cls,
|
386
|
+
arg,
|
387
|
+
validation_metadata: ValidationMetadata
|
388
|
+
) -> typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Type['Schema']]:
|
389
|
+
"""
|
390
|
+
Make a new dynamic class and return an instance of that class
|
391
|
+
We are making an instance of cls, but instead of making cls
|
392
|
+
make a new class, new_cls
|
393
|
+
which includes dynamic bases including cls
|
394
|
+
return an instance of that new class
|
395
|
+
|
396
|
+
Dict property + List Item Assignment Use cases:
|
397
|
+
1. value is NOT an instance of the required schema class
|
398
|
+
the value is validated by _validate_oapg
|
399
|
+
_validate_oapg returns a key value pair
|
400
|
+
where the key is the path to the item, and the value will be the required manufactured class
|
401
|
+
made out of the matching schemas
|
402
|
+
2. value is an instance of the correct schema type
|
403
|
+
the value is NOT validated by _validate_oapg, _validate_oapg only checks that the instance is of the correct schema type
|
404
|
+
for this value, _validate_oapg does NOT return an entry for it in _path_to_schemas
|
405
|
+
and in list/dict _get_items_oapg,_get_properties_oapg the value will be directly assigned
|
406
|
+
because value is of the correct type, and validation was run earlier when the instance was created
|
407
|
+
"""
|
408
|
+
_path_to_schemas = {}
|
409
|
+
if validation_metadata.validation_ran_earlier(cls):
|
410
|
+
add_deeper_validated_schemas(validation_metadata, _path_to_schemas)
|
411
|
+
else:
|
412
|
+
other_path_to_schemas = cls._validate_oapg(arg, validation_metadata=validation_metadata)
|
413
|
+
update(_path_to_schemas, other_path_to_schemas)
|
414
|
+
# loop through it make a new class for each entry
|
415
|
+
# do not modify the returned result because it is cached and we would be modifying the cached value
|
416
|
+
path_to_schemas = {}
|
417
|
+
for path, schema_classes in _path_to_schemas.items():
|
418
|
+
"""
|
419
|
+
Use cases
|
420
|
+
1. N number of schema classes + enum + type != bool/None, classes in path_to_schemas: tuple/frozendict.frozendict/str/Decimal/bytes/FileIo
|
421
|
+
needs Singleton added
|
422
|
+
2. N number of schema classes + enum + type == bool/None, classes in path_to_schemas: BoolClass/NoneClass
|
423
|
+
Singleton already added
|
424
|
+
3. N number of schema classes, classes in path_to_schemas: BoolClass/NoneClass/tuple/frozendict.frozendict/str/Decimal/bytes/FileIo
|
425
|
+
"""
|
426
|
+
cls._process_schema_classes_oapg(schema_classes)
|
427
|
+
enum_schema = any(
|
428
|
+
issubclass(this_cls, EnumBase) for this_cls in schema_classes)
|
429
|
+
inheritable_primitive_type = schema_classes.intersection(cls.__inheritable_primitive_types_set)
|
430
|
+
chosen_schema_classes = schema_classes - inheritable_primitive_type
|
431
|
+
suffix = tuple(inheritable_primitive_type)
|
432
|
+
if enum_schema and suffix[0] not in {NoneClass, BoolClass}:
|
433
|
+
suffix = (Singleton,) + suffix
|
434
|
+
|
435
|
+
used_classes = tuple(sorted(chosen_schema_classes, key=lambda a_cls: a_cls.__name__)) + suffix
|
436
|
+
mfg_cls = get_new_class(class_name='DynamicSchema', bases=used_classes)
|
437
|
+
path_to_schemas[path] = mfg_cls
|
438
|
+
|
439
|
+
return path_to_schemas
|
440
|
+
|
441
|
+
@classmethod
|
442
|
+
def _get_new_instance_without_conversion_oapg(
|
443
|
+
cls,
|
444
|
+
arg: typing.Any,
|
445
|
+
path_to_item: typing.Tuple[typing.Union[str, int], ...],
|
446
|
+
path_to_schemas: typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Type['Schema']]
|
447
|
+
):
|
448
|
+
# We have a Dynamic class and we are making an instance of it
|
449
|
+
if issubclass(cls, frozendict.frozendict) and issubclass(cls, DictBase):
|
450
|
+
properties = cls._get_properties_oapg(arg, path_to_item, path_to_schemas)
|
451
|
+
return super(Schema, cls).__new__(cls, properties)
|
452
|
+
elif issubclass(cls, tuple) and issubclass(cls, ListBase):
|
453
|
+
items = cls._get_items_oapg(arg, path_to_item, path_to_schemas)
|
454
|
+
return super(Schema, cls).__new__(cls, items)
|
455
|
+
"""
|
456
|
+
str = openapi str, date, and datetime
|
457
|
+
decimal.Decimal = openapi int and float
|
458
|
+
FileIO = openapi binary type and the user inputs a file
|
459
|
+
bytes = openapi binary type and the user inputs bytes
|
460
|
+
"""
|
461
|
+
return super(Schema, cls).__new__(cls, arg)
|
462
|
+
|
463
|
+
@classmethod
|
464
|
+
def from_openapi_data_oapg(
|
465
|
+
cls,
|
466
|
+
arg: typing.Union[
|
467
|
+
str,
|
468
|
+
date,
|
469
|
+
datetime,
|
470
|
+
int,
|
471
|
+
float,
|
472
|
+
decimal.Decimal,
|
473
|
+
bool,
|
474
|
+
None,
|
475
|
+
'Schema',
|
476
|
+
dict,
|
477
|
+
frozendict.frozendict,
|
478
|
+
tuple,
|
479
|
+
list,
|
480
|
+
io.FileIO,
|
481
|
+
io.BufferedReader,
|
482
|
+
bytes
|
483
|
+
],
|
484
|
+
_configuration: typing.Optional[Configuration]
|
485
|
+
):
|
486
|
+
"""
|
487
|
+
Schema from_openapi_data_oapg
|
488
|
+
"""
|
489
|
+
from_server = True
|
490
|
+
validated_path_to_schemas = {}
|
491
|
+
arg = cast_to_allowed_types(arg, from_server, validated_path_to_schemas)
|
492
|
+
validation_metadata = ValidationMetadata(
|
493
|
+
from_server=from_server, configuration=_configuration, validated_path_to_schemas=validated_path_to_schemas)
|
494
|
+
path_to_schemas = cls.__get_new_cls(arg, validation_metadata)
|
495
|
+
new_cls = path_to_schemas[validation_metadata.path_to_item]
|
496
|
+
new_inst = new_cls._get_new_instance_without_conversion_oapg(
|
497
|
+
arg,
|
498
|
+
validation_metadata.path_to_item,
|
499
|
+
path_to_schemas
|
500
|
+
)
|
501
|
+
return new_inst
|
502
|
+
|
503
|
+
@staticmethod
|
504
|
+
def __get_input_dict(*args, **kwargs) -> frozendict.frozendict:
|
505
|
+
input_dict = {}
|
506
|
+
if args and isinstance(args[0], (dict, frozendict.frozendict)):
|
507
|
+
input_dict.update(args[0])
|
508
|
+
if kwargs:
|
509
|
+
input_dict.update(kwargs)
|
510
|
+
return frozendict.frozendict(input_dict)
|
511
|
+
|
512
|
+
@staticmethod
|
513
|
+
def __remove_unsets(kwargs):
|
514
|
+
return {key: val for key, val in kwargs.items() if val is not unset}
|
515
|
+
|
516
|
+
def __new__(cls, *_args: typing.Union[dict, frozendict.frozendict, list, tuple, decimal.Decimal, float, int, str, date, datetime, bool, None, 'Schema'], _configuration: typing.Optional[Configuration] = None, **kwargs: typing.Union[dict, frozendict.frozendict, list, tuple, decimal.Decimal, float, int, str, date, datetime, bool, None, 'Schema', Unset]):
|
517
|
+
"""
|
518
|
+
Schema __new__
|
519
|
+
|
520
|
+
Args:
|
521
|
+
_args (int/float/decimal.Decimal/str/list/tuple/dict/frozendict.frozendict/bool/None): the value
|
522
|
+
kwargs (str, int/float/decimal.Decimal/str/list/tuple/dict/frozendict.frozendict/bool/None): dict values
|
523
|
+
_configuration: contains the Configuration that enables json schema validation keywords
|
524
|
+
like minItems, minLength etc
|
525
|
+
|
526
|
+
Note: double underscores are used here because pycharm thinks that these variables
|
527
|
+
are instance properties if they are named normally :(
|
528
|
+
"""
|
529
|
+
__kwargs = cls.__remove_unsets(kwargs)
|
530
|
+
if not _args and not __kwargs:
|
531
|
+
raise TypeError(
|
532
|
+
'No input given. args or kwargs must be given.'
|
533
|
+
)
|
534
|
+
if not __kwargs and _args and not isinstance(_args[0], dict):
|
535
|
+
__arg = _args[0]
|
536
|
+
else:
|
537
|
+
__arg = cls.__get_input_dict(*_args, **__kwargs)
|
538
|
+
__from_server = False
|
539
|
+
__validated_path_to_schemas = {}
|
540
|
+
__arg = cast_to_allowed_types(
|
541
|
+
__arg, __from_server, __validated_path_to_schemas)
|
542
|
+
__validation_metadata = ValidationMetadata(
|
543
|
+
configuration=_configuration, from_server=__from_server, validated_path_to_schemas=__validated_path_to_schemas)
|
544
|
+
__path_to_schemas = cls.__get_new_cls(__arg, __validation_metadata)
|
545
|
+
__new_cls = __path_to_schemas[__validation_metadata.path_to_item]
|
546
|
+
return __new_cls._get_new_instance_without_conversion_oapg(
|
547
|
+
__arg,
|
548
|
+
__validation_metadata.path_to_item,
|
549
|
+
__path_to_schemas
|
550
|
+
)
|
551
|
+
|
552
|
+
def __init__(
|
553
|
+
self,
|
554
|
+
*_args: typing.Union[
|
555
|
+
dict, frozendict.frozendict, list, tuple, decimal.Decimal, float, int, str, date, datetime, bool, None, 'Schema'],
|
556
|
+
_configuration: typing.Optional[Configuration] = None,
|
557
|
+
**kwargs: typing.Union[
|
558
|
+
dict, frozendict.frozendict, list, tuple, decimal.Decimal, float, int, str, date, datetime, bool, None, 'Schema', Unset
|
559
|
+
]
|
560
|
+
):
|
561
|
+
"""
|
562
|
+
this is needed to fix 'Unexpected argument' warning in pycharm
|
563
|
+
this code does nothing because all Schema instances are immutable
|
564
|
+
this means that all input data is passed into and used in new, and after the new instance is made
|
565
|
+
no new attributes are assigned and init is not used
|
566
|
+
"""
|
567
|
+
pass
|
568
|
+
|
569
|
+
"""
|
570
|
+
import itertools
|
571
|
+
data_types = ('None', 'FrozenDict', 'Tuple', 'Str', 'Decimal', 'Bool')
|
572
|
+
type_to_cls = {
|
573
|
+
'None': 'NoneClass',
|
574
|
+
'FrozenDict': 'frozendict.frozendict',
|
575
|
+
'Tuple': 'tuple',
|
576
|
+
'Str': 'str',
|
577
|
+
'Decimal': 'decimal.Decimal',
|
578
|
+
'Bool': 'BoolClass'
|
579
|
+
}
|
580
|
+
cls_tuples = [v for v in itertools.combinations(data_types, 5)]
|
581
|
+
typed_classes = [f"class {''.join(cls_tuple)}Mixin({', '.join(type_to_cls[typ] for typ in cls_tuple)}):\n pass" for cls_tuple in cls_tuples]
|
582
|
+
for cls in typed_classes:
|
583
|
+
print(cls)
|
584
|
+
object_classes = [f"{''.join(cls_tuple)}Mixin = object" for cls_tuple in cls_tuples]
|
585
|
+
for cls in object_classes:
|
586
|
+
print(cls)
|
587
|
+
"""
|
588
|
+
if typing.TYPE_CHECKING:
|
589
|
+
# qty 1
|
590
|
+
NoneMixin = NoneClass
|
591
|
+
FrozenDictMixin = frozendict.frozendict
|
592
|
+
TupleMixin = tuple
|
593
|
+
StrMixin = str
|
594
|
+
DecimalMixin = decimal.Decimal
|
595
|
+
BoolMixin = BoolClass
|
596
|
+
BytesMixin = bytes
|
597
|
+
FileMixin = FileIO
|
598
|
+
# qty 2
|
599
|
+
class BinaryMixin(bytes, FileIO):
|
600
|
+
pass
|
601
|
+
class NoneFrozenDictMixin(NoneClass, frozendict.frozendict):
|
602
|
+
pass
|
603
|
+
class NoneTupleMixin(NoneClass, tuple):
|
604
|
+
pass
|
605
|
+
class NoneStrMixin(NoneClass, str):
|
606
|
+
pass
|
607
|
+
class NoneDecimalMixin(NoneClass, decimal.Decimal):
|
608
|
+
pass
|
609
|
+
class NoneBoolMixin(NoneClass, BoolClass):
|
610
|
+
pass
|
611
|
+
class FrozenDictTupleMixin(frozendict.frozendict, tuple):
|
612
|
+
pass
|
613
|
+
class FrozenDictStrMixin(frozendict.frozendict, str):
|
614
|
+
pass
|
615
|
+
class FrozenDictDecimalMixin(frozendict.frozendict, decimal.Decimal):
|
616
|
+
pass
|
617
|
+
class FrozenDictBoolMixin(frozendict.frozendict, BoolClass):
|
618
|
+
pass
|
619
|
+
class TupleStrMixin(tuple, str):
|
620
|
+
pass
|
621
|
+
class TupleDecimalMixin(tuple, decimal.Decimal):
|
622
|
+
pass
|
623
|
+
class TupleBoolMixin(tuple, BoolClass):
|
624
|
+
pass
|
625
|
+
class StrDecimalMixin(str, decimal.Decimal):
|
626
|
+
pass
|
627
|
+
class StrBoolMixin(str, BoolClass):
|
628
|
+
pass
|
629
|
+
class DecimalBoolMixin(decimal.Decimal, BoolClass):
|
630
|
+
pass
|
631
|
+
# qty 3
|
632
|
+
class NoneFrozenDictTupleMixin(NoneClass, frozendict.frozendict, tuple):
|
633
|
+
pass
|
634
|
+
class NoneFrozenDictStrMixin(NoneClass, frozendict.frozendict, str):
|
635
|
+
pass
|
636
|
+
class NoneFrozenDictDecimalMixin(NoneClass, frozendict.frozendict, decimal.Decimal):
|
637
|
+
pass
|
638
|
+
class NoneFrozenDictBoolMixin(NoneClass, frozendict.frozendict, BoolClass):
|
639
|
+
pass
|
640
|
+
class NoneTupleStrMixin(NoneClass, tuple, str):
|
641
|
+
pass
|
642
|
+
class NoneTupleDecimalMixin(NoneClass, tuple, decimal.Decimal):
|
643
|
+
pass
|
644
|
+
class NoneTupleBoolMixin(NoneClass, tuple, BoolClass):
|
645
|
+
pass
|
646
|
+
class NoneStrDecimalMixin(NoneClass, str, decimal.Decimal):
|
647
|
+
pass
|
648
|
+
class NoneStrBoolMixin(NoneClass, str, BoolClass):
|
649
|
+
pass
|
650
|
+
class NoneDecimalBoolMixin(NoneClass, decimal.Decimal, BoolClass):
|
651
|
+
pass
|
652
|
+
class FrozenDictTupleStrMixin(frozendict.frozendict, tuple, str):
|
653
|
+
pass
|
654
|
+
class FrozenDictTupleDecimalMixin(frozendict.frozendict, tuple, decimal.Decimal):
|
655
|
+
pass
|
656
|
+
class FrozenDictTupleBoolMixin(frozendict.frozendict, tuple, BoolClass):
|
657
|
+
pass
|
658
|
+
class FrozenDictStrDecimalMixin(frozendict.frozendict, str, decimal.Decimal):
|
659
|
+
pass
|
660
|
+
class FrozenDictStrBoolMixin(frozendict.frozendict, str, BoolClass):
|
661
|
+
pass
|
662
|
+
class FrozenDictDecimalBoolMixin(frozendict.frozendict, decimal.Decimal, BoolClass):
|
663
|
+
pass
|
664
|
+
class TupleStrDecimalMixin(tuple, str, decimal.Decimal):
|
665
|
+
pass
|
666
|
+
class TupleStrBoolMixin(tuple, str, BoolClass):
|
667
|
+
pass
|
668
|
+
class TupleDecimalBoolMixin(tuple, decimal.Decimal, BoolClass):
|
669
|
+
pass
|
670
|
+
class StrDecimalBoolMixin(str, decimal.Decimal, BoolClass):
|
671
|
+
pass
|
672
|
+
# qty 4
|
673
|
+
class NoneFrozenDictTupleStrMixin(NoneClass, frozendict.frozendict, tuple, str):
|
674
|
+
pass
|
675
|
+
class NoneFrozenDictTupleDecimalMixin(NoneClass, frozendict.frozendict, tuple, decimal.Decimal):
|
676
|
+
pass
|
677
|
+
class NoneFrozenDictTupleBoolMixin(NoneClass, frozendict.frozendict, tuple, BoolClass):
|
678
|
+
pass
|
679
|
+
class NoneFrozenDictStrDecimalMixin(NoneClass, frozendict.frozendict, str, decimal.Decimal):
|
680
|
+
pass
|
681
|
+
class NoneFrozenDictStrBoolMixin(NoneClass, frozendict.frozendict, str, BoolClass):
|
682
|
+
pass
|
683
|
+
class NoneFrozenDictDecimalBoolMixin(NoneClass, frozendict.frozendict, decimal.Decimal, BoolClass):
|
684
|
+
pass
|
685
|
+
class NoneTupleStrDecimalMixin(NoneClass, tuple, str, decimal.Decimal):
|
686
|
+
pass
|
687
|
+
class NoneTupleStrBoolMixin(NoneClass, tuple, str, BoolClass):
|
688
|
+
pass
|
689
|
+
class NoneTupleDecimalBoolMixin(NoneClass, tuple, decimal.Decimal, BoolClass):
|
690
|
+
pass
|
691
|
+
class NoneStrDecimalBoolMixin(NoneClass, str, decimal.Decimal, BoolClass):
|
692
|
+
pass
|
693
|
+
class FrozenDictTupleStrDecimalMixin(frozendict.frozendict, tuple, str, decimal.Decimal):
|
694
|
+
pass
|
695
|
+
class FrozenDictTupleStrBoolMixin(frozendict.frozendict, tuple, str, BoolClass):
|
696
|
+
pass
|
697
|
+
class FrozenDictTupleDecimalBoolMixin(frozendict.frozendict, tuple, decimal.Decimal, BoolClass):
|
698
|
+
pass
|
699
|
+
class FrozenDictStrDecimalBoolMixin(frozendict.frozendict, str, decimal.Decimal, BoolClass):
|
700
|
+
pass
|
701
|
+
class TupleStrDecimalBoolMixin(tuple, str, decimal.Decimal, BoolClass):
|
702
|
+
pass
|
703
|
+
# qty 5
|
704
|
+
class NoneFrozenDictTupleStrDecimalMixin(NoneClass, frozendict.frozendict, tuple, str, decimal.Decimal):
|
705
|
+
pass
|
706
|
+
class NoneFrozenDictTupleStrBoolMixin(NoneClass, frozendict.frozendict, tuple, str, BoolClass):
|
707
|
+
pass
|
708
|
+
class NoneFrozenDictTupleDecimalBoolMixin(NoneClass, frozendict.frozendict, tuple, decimal.Decimal, BoolClass):
|
709
|
+
pass
|
710
|
+
class NoneFrozenDictStrDecimalBoolMixin(NoneClass, frozendict.frozendict, str, decimal.Decimal, BoolClass):
|
711
|
+
pass
|
712
|
+
class NoneTupleStrDecimalBoolMixin(NoneClass, tuple, str, decimal.Decimal, BoolClass):
|
713
|
+
pass
|
714
|
+
class FrozenDictTupleStrDecimalBoolMixin(frozendict.frozendict, tuple, str, decimal.Decimal, BoolClass):
|
715
|
+
pass
|
716
|
+
# qty 6
|
717
|
+
class NoneFrozenDictTupleStrDecimalBoolMixin(NoneClass, frozendict.frozendict, tuple, str, decimal.Decimal, BoolClass):
|
718
|
+
pass
|
719
|
+
# qty 8
|
720
|
+
class NoneFrozenDictTupleStrDecimalBoolFileBytesMixin(NoneClass, frozendict.frozendict, tuple, str, decimal.Decimal, BoolClass, FileIO, bytes):
|
721
|
+
pass
|
722
|
+
else:
|
723
|
+
# qty 1
|
724
|
+
class NoneMixin:
|
725
|
+
_types = {NoneClass}
|
726
|
+
class FrozenDictMixin:
|
727
|
+
_types = {frozendict.frozendict}
|
728
|
+
class TupleMixin:
|
729
|
+
_types = {tuple}
|
730
|
+
class StrMixin:
|
731
|
+
_types = {str}
|
732
|
+
class DecimalMixin:
|
733
|
+
_types = {decimal.Decimal}
|
734
|
+
class BoolMixin:
|
735
|
+
_types = {BoolClass}
|
736
|
+
class BytesMixin:
|
737
|
+
_types = {bytes}
|
738
|
+
class FileMixin:
|
739
|
+
_types = {FileIO}
|
740
|
+
# qty 2
|
741
|
+
class BinaryMixin:
|
742
|
+
_types = {bytes, FileIO}
|
743
|
+
class NoneFrozenDictMixin:
|
744
|
+
_types = {NoneClass, frozendict.frozendict}
|
745
|
+
class NoneTupleMixin:
|
746
|
+
_types = {NoneClass, tuple}
|
747
|
+
class NoneStrMixin:
|
748
|
+
_types = {NoneClass, str}
|
749
|
+
class NoneDecimalMixin:
|
750
|
+
_types = {NoneClass, decimal.Decimal}
|
751
|
+
class NoneBoolMixin:
|
752
|
+
_types = {NoneClass, BoolClass}
|
753
|
+
class FrozenDictTupleMixin:
|
754
|
+
_types = {frozendict.frozendict, tuple}
|
755
|
+
class FrozenDictStrMixin:
|
756
|
+
_types = {frozendict.frozendict, str}
|
757
|
+
class FrozenDictDecimalMixin:
|
758
|
+
_types = {frozendict.frozendict, decimal.Decimal}
|
759
|
+
class FrozenDictBoolMixin:
|
760
|
+
_types = {frozendict.frozendict, BoolClass}
|
761
|
+
class TupleStrMixin:
|
762
|
+
_types = {tuple, str}
|
763
|
+
class TupleDecimalMixin:
|
764
|
+
_types = {tuple, decimal.Decimal}
|
765
|
+
class TupleBoolMixin:
|
766
|
+
_types = {tuple, BoolClass}
|
767
|
+
class StrDecimalMixin:
|
768
|
+
_types = {str, decimal.Decimal}
|
769
|
+
class StrBoolMixin:
|
770
|
+
_types = {str, BoolClass}
|
771
|
+
class DecimalBoolMixin:
|
772
|
+
_types = {decimal.Decimal, BoolClass}
|
773
|
+
# qty 3
|
774
|
+
class NoneFrozenDictTupleMixin:
|
775
|
+
_types = {NoneClass, frozendict.frozendict, tuple}
|
776
|
+
class NoneFrozenDictStrMixin:
|
777
|
+
_types = {NoneClass, frozendict.frozendict, str}
|
778
|
+
class NoneFrozenDictDecimalMixin:
|
779
|
+
_types = {NoneClass, frozendict.frozendict, decimal.Decimal}
|
780
|
+
class NoneFrozenDictBoolMixin:
|
781
|
+
_types = {NoneClass, frozendict.frozendict, BoolClass}
|
782
|
+
class NoneTupleStrMixin:
|
783
|
+
_types = {NoneClass, tuple, str}
|
784
|
+
class NoneTupleDecimalMixin:
|
785
|
+
_types = {NoneClass, tuple, decimal.Decimal}
|
786
|
+
class NoneTupleBoolMixin:
|
787
|
+
_types = {NoneClass, tuple, BoolClass}
|
788
|
+
class NoneStrDecimalMixin:
|
789
|
+
_types = {NoneClass, str, decimal.Decimal}
|
790
|
+
class NoneStrBoolMixin:
|
791
|
+
_types = {NoneClass, str, BoolClass}
|
792
|
+
class NoneDecimalBoolMixin:
|
793
|
+
_types = {NoneClass, decimal.Decimal, BoolClass}
|
794
|
+
class FrozenDictTupleStrMixin:
|
795
|
+
_types = {frozendict.frozendict, tuple, str}
|
796
|
+
class FrozenDictTupleDecimalMixin:
|
797
|
+
_types = {frozendict.frozendict, tuple, decimal.Decimal}
|
798
|
+
class FrozenDictTupleBoolMixin:
|
799
|
+
_types = {frozendict.frozendict, tuple, BoolClass}
|
800
|
+
class FrozenDictStrDecimalMixin:
|
801
|
+
_types = {frozendict.frozendict, str, decimal.Decimal}
|
802
|
+
class FrozenDictStrBoolMixin:
|
803
|
+
_types = {frozendict.frozendict, str, BoolClass}
|
804
|
+
class FrozenDictDecimalBoolMixin:
|
805
|
+
_types = {frozendict.frozendict, decimal.Decimal, BoolClass}
|
806
|
+
class TupleStrDecimalMixin:
|
807
|
+
_types = {tuple, str, decimal.Decimal}
|
808
|
+
class TupleStrBoolMixin:
|
809
|
+
_types = {tuple, str, BoolClass}
|
810
|
+
class TupleDecimalBoolMixin:
|
811
|
+
_types = {tuple, decimal.Decimal, BoolClass}
|
812
|
+
class StrDecimalBoolMixin:
|
813
|
+
_types = {str, decimal.Decimal, BoolClass}
|
814
|
+
# qty 4
|
815
|
+
class NoneFrozenDictTupleStrMixin:
|
816
|
+
_types = {NoneClass, frozendict.frozendict, tuple, str}
|
817
|
+
class NoneFrozenDictTupleDecimalMixin:
|
818
|
+
_types = {NoneClass, frozendict.frozendict, tuple, decimal.Decimal}
|
819
|
+
class NoneFrozenDictTupleBoolMixin:
|
820
|
+
_types = {NoneClass, frozendict.frozendict, tuple, BoolClass}
|
821
|
+
class NoneFrozenDictStrDecimalMixin:
|
822
|
+
_types = {NoneClass, frozendict.frozendict, str, decimal.Decimal}
|
823
|
+
class NoneFrozenDictStrBoolMixin:
|
824
|
+
_types = {NoneClass, frozendict.frozendict, str, BoolClass}
|
825
|
+
class NoneFrozenDictDecimalBoolMixin:
|
826
|
+
_types = {NoneClass, frozendict.frozendict, decimal.Decimal, BoolClass}
|
827
|
+
class NoneTupleStrDecimalMixin:
|
828
|
+
_types = {NoneClass, tuple, str, decimal.Decimal}
|
829
|
+
class NoneTupleStrBoolMixin:
|
830
|
+
_types = {NoneClass, tuple, str, BoolClass}
|
831
|
+
class NoneTupleDecimalBoolMixin:
|
832
|
+
_types = {NoneClass, tuple, decimal.Decimal, BoolClass}
|
833
|
+
class NoneStrDecimalBoolMixin:
|
834
|
+
_types = {NoneClass, str, decimal.Decimal, BoolClass}
|
835
|
+
class FrozenDictTupleStrDecimalMixin:
|
836
|
+
_types = {frozendict.frozendict, tuple, str, decimal.Decimal}
|
837
|
+
class FrozenDictTupleStrBoolMixin:
|
838
|
+
_types = {frozendict.frozendict, tuple, str, BoolClass}
|
839
|
+
class FrozenDictTupleDecimalBoolMixin:
|
840
|
+
_types = {frozendict.frozendict, tuple, decimal.Decimal, BoolClass}
|
841
|
+
class FrozenDictStrDecimalBoolMixin:
|
842
|
+
_types = {frozendict.frozendict, str, decimal.Decimal, BoolClass}
|
843
|
+
class TupleStrDecimalBoolMixin:
|
844
|
+
_types = {tuple, str, decimal.Decimal, BoolClass}
|
845
|
+
# qty 5
|
846
|
+
class NoneFrozenDictTupleStrDecimalMixin:
|
847
|
+
_types = {NoneClass, frozendict.frozendict, tuple, str, decimal.Decimal}
|
848
|
+
class NoneFrozenDictTupleStrBoolMixin:
|
849
|
+
_types = {NoneClass, frozendict.frozendict, tuple, str, BoolClass}
|
850
|
+
class NoneFrozenDictTupleDecimalBoolMixin:
|
851
|
+
_types = {NoneClass, frozendict.frozendict, tuple, decimal.Decimal, BoolClass}
|
852
|
+
class NoneFrozenDictStrDecimalBoolMixin:
|
853
|
+
_types = {NoneClass, frozendict.frozendict, str, decimal.Decimal, BoolClass}
|
854
|
+
class NoneTupleStrDecimalBoolMixin:
|
855
|
+
_types = {NoneClass, tuple, str, decimal.Decimal, BoolClass}
|
856
|
+
class FrozenDictTupleStrDecimalBoolMixin:
|
857
|
+
_types = {frozendict.frozendict, tuple, str, decimal.Decimal, BoolClass}
|
858
|
+
# qty 6
|
859
|
+
class NoneFrozenDictTupleStrDecimalBoolMixin:
|
860
|
+
_types = {NoneClass, frozendict.frozendict, tuple, str, decimal.Decimal, BoolClass}
|
861
|
+
# qty 8
|
862
|
+
class NoneFrozenDictTupleStrDecimalBoolFileBytesMixin:
|
863
|
+
_types = {NoneClass, frozendict.frozendict, tuple, str, decimal.Decimal, BoolClass, FileIO, bytes}
|
864
|
+
|
865
|
+
|
866
|
+
class ValidatorBase:
|
867
|
+
@staticmethod
|
868
|
+
def _is_json_validation_enabled_oapg(schema_keyword, configuration=None):
|
869
|
+
"""Returns true if JSON schema validation is enabled for the specified
|
870
|
+
validation keyword. This can be used to skip JSON schema structural validation
|
871
|
+
as requested in the configuration.
|
872
|
+
Note: the suffix _oapg stands for openapi python (experimental) generator and
|
873
|
+
it has been added to prevent collisions with other methods and properties
|
874
|
+
|
875
|
+
Args:
|
876
|
+
schema_keyword (string): the name of a JSON schema validation keyword.
|
877
|
+
configuration (Configuration): the configuration class.
|
878
|
+
"""
|
879
|
+
|
880
|
+
return (configuration is None or
|
881
|
+
not hasattr(configuration, '_disabled_client_side_validations') or
|
882
|
+
schema_keyword not in configuration._disabled_client_side_validations)
|
883
|
+
|
884
|
+
@staticmethod
|
885
|
+
def _raise_validation_error_message_oapg(value, constraint_msg, constraint_value, path_to_item, additional_txt=""):
|
886
|
+
raise ApiValueError(
|
887
|
+
"Invalid value `{value}`, {constraint_msg} `{constraint_value}`{additional_txt} at {path_to_item}".format(
|
888
|
+
value=value,
|
889
|
+
constraint_msg=constraint_msg,
|
890
|
+
constraint_value=constraint_value,
|
891
|
+
additional_txt=additional_txt,
|
892
|
+
path_to_item=path_to_item,
|
893
|
+
)
|
894
|
+
)
|
895
|
+
|
896
|
+
|
897
|
+
class EnumBase:
|
898
|
+
@classmethod
|
899
|
+
def _validate_oapg(
|
900
|
+
cls,
|
901
|
+
arg,
|
902
|
+
validation_metadata: ValidationMetadata,
|
903
|
+
) -> typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Set[typing.Union['Schema', str, decimal.Decimal, BoolClass, NoneClass, frozendict.frozendict, tuple]]]:
|
904
|
+
"""
|
905
|
+
EnumBase _validate_oapg
|
906
|
+
Validates that arg is in the enum's allowed values
|
907
|
+
"""
|
908
|
+
try:
|
909
|
+
cls.MetaOapg.enum_value_to_name[arg]
|
910
|
+
except KeyError:
|
911
|
+
raise ApiValueError("Invalid value {} passed in to {}, allowed_values={}".format(arg, cls, cls.MetaOapg.enum_value_to_name.keys()))
|
912
|
+
return super()._validate_oapg(arg, validation_metadata=validation_metadata)
|
913
|
+
|
914
|
+
|
915
|
+
class BoolBase:
|
916
|
+
def is_true_oapg(self) -> bool:
|
917
|
+
"""
|
918
|
+
A replacement for x is True
|
919
|
+
True if the instance is a BoolClass True Singleton
|
920
|
+
"""
|
921
|
+
if not issubclass(self.__class__, BoolClass):
|
922
|
+
return False
|
923
|
+
return bool(self)
|
924
|
+
|
925
|
+
def is_false_oapg(self) -> bool:
|
926
|
+
"""
|
927
|
+
A replacement for x is False
|
928
|
+
True if the instance is a BoolClass False Singleton
|
929
|
+
"""
|
930
|
+
if not issubclass(self.__class__, BoolClass):
|
931
|
+
return False
|
932
|
+
return bool(self) is False
|
933
|
+
|
934
|
+
|
935
|
+
class NoneBase:
|
936
|
+
def is_none_oapg(self) -> bool:
|
937
|
+
"""
|
938
|
+
A replacement for x is None
|
939
|
+
True if the instance is a NoneClass None Singleton
|
940
|
+
"""
|
941
|
+
if issubclass(self.__class__, NoneClass):
|
942
|
+
return True
|
943
|
+
return False
|
944
|
+
|
945
|
+
|
946
|
+
class StrBase(ValidatorBase):
|
947
|
+
MetaOapg: MetaOapgTyped
|
948
|
+
|
949
|
+
@property
|
950
|
+
def as_str_oapg(self) -> str:
|
951
|
+
return self
|
952
|
+
|
953
|
+
@property
|
954
|
+
def as_date_oapg(self) -> date:
|
955
|
+
raise Exception('not implemented')
|
956
|
+
|
957
|
+
@property
|
958
|
+
def as_datetime_oapg(self) -> datetime:
|
959
|
+
raise Exception('not implemented')
|
960
|
+
|
961
|
+
@property
|
962
|
+
def as_decimal_oapg(self) -> decimal.Decimal:
|
963
|
+
raise Exception('not implemented')
|
964
|
+
|
965
|
+
@property
|
966
|
+
def as_uuid_oapg(self) -> uuid.UUID:
|
967
|
+
raise Exception('not implemented')
|
968
|
+
|
969
|
+
@classmethod
|
970
|
+
def __check_str_validations(
|
971
|
+
cls,
|
972
|
+
arg: str,
|
973
|
+
validation_metadata: ValidationMetadata
|
974
|
+
):
|
975
|
+
if not hasattr(cls, 'MetaOapg'):
|
976
|
+
return
|
977
|
+
if (cls._is_json_validation_enabled_oapg('maxLength', validation_metadata.configuration) and
|
978
|
+
hasattr(cls.MetaOapg, 'max_length') and
|
979
|
+
len(arg) > cls.MetaOapg.max_length):
|
980
|
+
cls._raise_validation_error_message_oapg(
|
981
|
+
value=arg,
|
982
|
+
constraint_msg="length must be less than or equal to",
|
983
|
+
constraint_value=cls.MetaOapg.max_length,
|
984
|
+
path_to_item=validation_metadata.path_to_item
|
985
|
+
)
|
986
|
+
|
987
|
+
if (cls._is_json_validation_enabled_oapg('minLength', validation_metadata.configuration) and
|
988
|
+
hasattr(cls.MetaOapg, 'min_length') and
|
989
|
+
len(arg) < cls.MetaOapg.min_length):
|
990
|
+
cls._raise_validation_error_message_oapg(
|
991
|
+
value=arg,
|
992
|
+
constraint_msg="length must be greater than or equal to",
|
993
|
+
constraint_value=cls.MetaOapg.min_length,
|
994
|
+
path_to_item=validation_metadata.path_to_item
|
995
|
+
)
|
996
|
+
|
997
|
+
if (cls._is_json_validation_enabled_oapg('pattern', validation_metadata.configuration) and
|
998
|
+
hasattr(cls.MetaOapg, 'regex')):
|
999
|
+
for regex_dict in cls.MetaOapg.regex:
|
1000
|
+
flags = regex_dict.get('flags', 0)
|
1001
|
+
if not re.search(regex_dict['pattern'], arg, flags=flags):
|
1002
|
+
if flags != 0:
|
1003
|
+
# Don't print the regex flags if the flags are not
|
1004
|
+
# specified in the OAS document.
|
1005
|
+
cls._raise_validation_error_message_oapg(
|
1006
|
+
value=arg,
|
1007
|
+
constraint_msg="must match regular expression",
|
1008
|
+
constraint_value=regex_dict['pattern'],
|
1009
|
+
path_to_item=validation_metadata.path_to_item,
|
1010
|
+
additional_txt=" with flags=`{}`".format(flags)
|
1011
|
+
)
|
1012
|
+
cls._raise_validation_error_message_oapg(
|
1013
|
+
value=arg,
|
1014
|
+
constraint_msg="must match regular expression",
|
1015
|
+
constraint_value=regex_dict['pattern'],
|
1016
|
+
path_to_item=validation_metadata.path_to_item
|
1017
|
+
)
|
1018
|
+
|
1019
|
+
@classmethod
|
1020
|
+
def _validate_oapg(
|
1021
|
+
cls,
|
1022
|
+
arg,
|
1023
|
+
validation_metadata: ValidationMetadata,
|
1024
|
+
) -> typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Set[typing.Union['Schema', str, decimal.Decimal, BoolClass, NoneClass, frozendict.frozendict, tuple]]]:
|
1025
|
+
"""
|
1026
|
+
StrBase _validate_oapg
|
1027
|
+
Validates that validations pass
|
1028
|
+
"""
|
1029
|
+
if isinstance(arg, str):
|
1030
|
+
cls.__check_str_validations(arg, validation_metadata)
|
1031
|
+
return super()._validate_oapg(arg, validation_metadata=validation_metadata)
|
1032
|
+
|
1033
|
+
|
1034
|
+
class UUIDBase:
|
1035
|
+
@property
|
1036
|
+
@functools.lru_cache()
|
1037
|
+
def as_uuid_oapg(self) -> uuid.UUID:
|
1038
|
+
return uuid.UUID(self)
|
1039
|
+
|
1040
|
+
@classmethod
|
1041
|
+
def __validate_format(cls, arg: typing.Optional[str], validation_metadata: ValidationMetadata):
|
1042
|
+
if isinstance(arg, str):
|
1043
|
+
try:
|
1044
|
+
uuid.UUID(arg)
|
1045
|
+
return True
|
1046
|
+
except ValueError:
|
1047
|
+
raise ApiValueError(
|
1048
|
+
"Invalid value '{}' for type UUID at {}".format(arg, validation_metadata.path_to_item)
|
1049
|
+
)
|
1050
|
+
|
1051
|
+
@classmethod
|
1052
|
+
def _validate_oapg(
|
1053
|
+
cls,
|
1054
|
+
arg,
|
1055
|
+
validation_metadata: typing.Optional[ValidationMetadata] = None,
|
1056
|
+
):
|
1057
|
+
"""
|
1058
|
+
UUIDBase _validate_oapg
|
1059
|
+
"""
|
1060
|
+
cls.__validate_format(arg, validation_metadata=validation_metadata)
|
1061
|
+
return super()._validate_oapg(arg, validation_metadata=validation_metadata)
|
1062
|
+
|
1063
|
+
|
1064
|
+
class CustomIsoparser(isoparser):
|
1065
|
+
|
1066
|
+
@_takes_ascii
|
1067
|
+
def parse_isodatetime(self, dt_str):
|
1068
|
+
components, pos = self._parse_isodate(dt_str)
|
1069
|
+
if len(dt_str) > pos:
|
1070
|
+
if self._sep is None or dt_str[pos:pos + 1] == self._sep:
|
1071
|
+
components += self._parse_isotime(dt_str[pos + 1:])
|
1072
|
+
else:
|
1073
|
+
raise ValueError('String contains unknown ISO components')
|
1074
|
+
|
1075
|
+
if len(components) > 3 and components[3] == 24:
|
1076
|
+
components[3] = 0
|
1077
|
+
return datetime(*components) + timedelta(days=1)
|
1078
|
+
|
1079
|
+
if len(components) <= 3:
|
1080
|
+
raise ValueError('Value is not a datetime')
|
1081
|
+
|
1082
|
+
return datetime(*components)
|
1083
|
+
|
1084
|
+
@_takes_ascii
|
1085
|
+
def parse_isodate(self, datestr):
|
1086
|
+
components, pos = self._parse_isodate(datestr)
|
1087
|
+
|
1088
|
+
if len(datestr) > pos:
|
1089
|
+
raise ValueError('String contains invalid time components')
|
1090
|
+
|
1091
|
+
if len(components) > 3:
|
1092
|
+
raise ValueError('String contains invalid time components')
|
1093
|
+
|
1094
|
+
return date(*components)
|
1095
|
+
|
1096
|
+
|
1097
|
+
DEFAULT_ISOPARSER = CustomIsoparser()
|
1098
|
+
|
1099
|
+
|
1100
|
+
class DateBase:
|
1101
|
+
@property
|
1102
|
+
@functools.lru_cache()
|
1103
|
+
def as_date_oapg(self) -> date:
|
1104
|
+
return DEFAULT_ISOPARSER.parse_isodate(self)
|
1105
|
+
|
1106
|
+
@classmethod
|
1107
|
+
def __validate_format(cls, arg: typing.Optional[str], validation_metadata: ValidationMetadata):
|
1108
|
+
if isinstance(arg, str):
|
1109
|
+
try:
|
1110
|
+
DEFAULT_ISOPARSER.parse_isodate(arg)
|
1111
|
+
return True
|
1112
|
+
except ValueError:
|
1113
|
+
raise ApiValueError(
|
1114
|
+
"Value does not conform to the required ISO-8601 date format. "
|
1115
|
+
"Invalid value '{}' for type date at {}".format(arg, validation_metadata.path_to_item)
|
1116
|
+
)
|
1117
|
+
|
1118
|
+
@classmethod
|
1119
|
+
def _validate_oapg(
|
1120
|
+
cls,
|
1121
|
+
arg,
|
1122
|
+
validation_metadata: typing.Optional[ValidationMetadata] = None,
|
1123
|
+
):
|
1124
|
+
"""
|
1125
|
+
DateBase _validate_oapg
|
1126
|
+
"""
|
1127
|
+
cls.__validate_format(arg, validation_metadata=validation_metadata)
|
1128
|
+
return super()._validate_oapg(arg, validation_metadata=validation_metadata)
|
1129
|
+
|
1130
|
+
|
1131
|
+
class DateTimeBase:
|
1132
|
+
@property
|
1133
|
+
@functools.lru_cache()
|
1134
|
+
def as_datetime_oapg(self) -> datetime:
|
1135
|
+
return DEFAULT_ISOPARSER.parse_isodatetime(self)
|
1136
|
+
|
1137
|
+
@classmethod
|
1138
|
+
def __validate_format(cls, arg: typing.Optional[str], validation_metadata: ValidationMetadata):
|
1139
|
+
if isinstance(arg, str):
|
1140
|
+
try:
|
1141
|
+
DEFAULT_ISOPARSER.parse_isodatetime(arg)
|
1142
|
+
return True
|
1143
|
+
except ValueError:
|
1144
|
+
raise ApiValueError(
|
1145
|
+
"Value does not conform to the required ISO-8601 datetime format. "
|
1146
|
+
"Invalid value '{}' for type datetime at {}".format(arg, validation_metadata.path_to_item)
|
1147
|
+
)
|
1148
|
+
|
1149
|
+
@classmethod
|
1150
|
+
def _validate_oapg(
|
1151
|
+
cls,
|
1152
|
+
arg,
|
1153
|
+
validation_metadata: ValidationMetadata,
|
1154
|
+
):
|
1155
|
+
"""
|
1156
|
+
DateTimeBase _validate_oapg
|
1157
|
+
"""
|
1158
|
+
cls.__validate_format(arg, validation_metadata=validation_metadata)
|
1159
|
+
return super()._validate_oapg(arg, validation_metadata=validation_metadata)
|
1160
|
+
|
1161
|
+
|
1162
|
+
class DecimalBase:
|
1163
|
+
"""
|
1164
|
+
A class for storing decimals that are sent over the wire as strings
|
1165
|
+
These schemas must remain based on StrBase rather than NumberBase
|
1166
|
+
because picking base classes must be deterministic
|
1167
|
+
"""
|
1168
|
+
|
1169
|
+
@property
|
1170
|
+
@functools.lru_cache()
|
1171
|
+
def as_decimal_oapg(self) -> decimal.Decimal:
|
1172
|
+
return decimal.Decimal(self)
|
1173
|
+
|
1174
|
+
@classmethod
|
1175
|
+
def __validate_format(cls, arg: typing.Optional[str], validation_metadata: ValidationMetadata):
|
1176
|
+
if isinstance(arg, str):
|
1177
|
+
try:
|
1178
|
+
decimal.Decimal(arg)
|
1179
|
+
return True
|
1180
|
+
except decimal.InvalidOperation:
|
1181
|
+
raise ApiValueError(
|
1182
|
+
"Value cannot be converted to a decimal. "
|
1183
|
+
"Invalid value '{}' for type decimal at {}".format(arg, validation_metadata.path_to_item)
|
1184
|
+
)
|
1185
|
+
|
1186
|
+
@classmethod
|
1187
|
+
def _validate_oapg(
|
1188
|
+
cls,
|
1189
|
+
arg,
|
1190
|
+
validation_metadata: ValidationMetadata,
|
1191
|
+
):
|
1192
|
+
"""
|
1193
|
+
DecimalBase _validate_oapg
|
1194
|
+
"""
|
1195
|
+
cls.__validate_format(arg, validation_metadata=validation_metadata)
|
1196
|
+
return super()._validate_oapg(arg, validation_metadata=validation_metadata)
|
1197
|
+
|
1198
|
+
|
1199
|
+
class NumberBase(ValidatorBase):
|
1200
|
+
MetaOapg: MetaOapgTyped
|
1201
|
+
|
1202
|
+
@property
|
1203
|
+
def as_int_oapg(self) -> int:
|
1204
|
+
try:
|
1205
|
+
return self._as_int
|
1206
|
+
except AttributeError:
|
1207
|
+
"""
|
1208
|
+
Note: for some numbers like 9.0 they could be represented as an
|
1209
|
+
integer but our code chooses to store them as
|
1210
|
+
>>> Decimal('9.0').as_tuple()
|
1211
|
+
DecimalTuple(sign=0, digits=(9, 0), exponent=-1)
|
1212
|
+
so we can tell that the value came from a float and convert it back to a float
|
1213
|
+
during later serialization
|
1214
|
+
"""
|
1215
|
+
if self.as_tuple().exponent < 0:
|
1216
|
+
# this could be represented as an integer but should be represented as a float
|
1217
|
+
# because that's what it was serialized from
|
1218
|
+
raise ApiValueError(f'{self} is not an integer')
|
1219
|
+
self._as_int = int(self)
|
1220
|
+
return self._as_int
|
1221
|
+
|
1222
|
+
@property
|
1223
|
+
def as_float_oapg(self) -> float:
|
1224
|
+
try:
|
1225
|
+
return self._as_float
|
1226
|
+
except AttributeError:
|
1227
|
+
if self.as_tuple().exponent >= 0:
|
1228
|
+
raise ApiValueError(f'{self} is not a float')
|
1229
|
+
self._as_float = float(self)
|
1230
|
+
return self._as_float
|
1231
|
+
|
1232
|
+
@classmethod
|
1233
|
+
def __check_numeric_validations(
|
1234
|
+
cls,
|
1235
|
+
arg,
|
1236
|
+
validation_metadata: ValidationMetadata
|
1237
|
+
):
|
1238
|
+
if not hasattr(cls, 'MetaOapg'):
|
1239
|
+
return
|
1240
|
+
if cls._is_json_validation_enabled_oapg('multipleOf',
|
1241
|
+
validation_metadata.configuration) and hasattr(cls.MetaOapg, 'multiple_of'):
|
1242
|
+
multiple_of_value = cls.MetaOapg.multiple_of
|
1243
|
+
if (not (float(arg) / multiple_of_value).is_integer()):
|
1244
|
+
# Note 'multipleOf' will be as good as the floating point arithmetic.
|
1245
|
+
cls._raise_validation_error_message_oapg(
|
1246
|
+
value=arg,
|
1247
|
+
constraint_msg="value must be a multiple of",
|
1248
|
+
constraint_value=multiple_of_value,
|
1249
|
+
path_to_item=validation_metadata.path_to_item
|
1250
|
+
)
|
1251
|
+
|
1252
|
+
checking_max_or_min_values = any(
|
1253
|
+
hasattr(cls.MetaOapg, validation_key) for validation_key in {
|
1254
|
+
'exclusive_maximum',
|
1255
|
+
'inclusive_maximum',
|
1256
|
+
'exclusive_minimum',
|
1257
|
+
'inclusive_minimum',
|
1258
|
+
}
|
1259
|
+
)
|
1260
|
+
if not checking_max_or_min_values:
|
1261
|
+
return
|
1262
|
+
|
1263
|
+
if (cls._is_json_validation_enabled_oapg('exclusiveMaximum', validation_metadata.configuration) and
|
1264
|
+
hasattr(cls.MetaOapg, 'exclusive_maximum') and
|
1265
|
+
arg >= cls.MetaOapg.exclusive_maximum):
|
1266
|
+
cls._raise_validation_error_message_oapg(
|
1267
|
+
value=arg,
|
1268
|
+
constraint_msg="must be a value less than",
|
1269
|
+
constraint_value=cls.MetaOapg.exclusive_maximum,
|
1270
|
+
path_to_item=validation_metadata.path_to_item
|
1271
|
+
)
|
1272
|
+
|
1273
|
+
if (cls._is_json_validation_enabled_oapg('maximum', validation_metadata.configuration) and
|
1274
|
+
hasattr(cls.MetaOapg, 'inclusive_maximum') and
|
1275
|
+
arg > cls.MetaOapg.inclusive_maximum):
|
1276
|
+
cls._raise_validation_error_message_oapg(
|
1277
|
+
value=arg,
|
1278
|
+
constraint_msg="must be a value less than or equal to",
|
1279
|
+
constraint_value=cls.MetaOapg.inclusive_maximum,
|
1280
|
+
path_to_item=validation_metadata.path_to_item
|
1281
|
+
)
|
1282
|
+
|
1283
|
+
if (cls._is_json_validation_enabled_oapg('exclusiveMinimum', validation_metadata.configuration) and
|
1284
|
+
hasattr(cls.MetaOapg, 'exclusive_minimum') and
|
1285
|
+
arg <= cls.MetaOapg.exclusive_minimum):
|
1286
|
+
cls._raise_validation_error_message_oapg(
|
1287
|
+
value=arg,
|
1288
|
+
constraint_msg="must be a value greater than",
|
1289
|
+
constraint_value=cls.MetaOapg.exclusive_maximum,
|
1290
|
+
path_to_item=validation_metadata.path_to_item
|
1291
|
+
)
|
1292
|
+
|
1293
|
+
if (cls._is_json_validation_enabled_oapg('minimum', validation_metadata.configuration) and
|
1294
|
+
hasattr(cls.MetaOapg, 'inclusive_minimum') and
|
1295
|
+
arg < cls.MetaOapg.inclusive_minimum):
|
1296
|
+
cls._raise_validation_error_message_oapg(
|
1297
|
+
value=arg,
|
1298
|
+
constraint_msg="must be a value greater than or equal to",
|
1299
|
+
constraint_value=cls.MetaOapg.inclusive_minimum,
|
1300
|
+
path_to_item=validation_metadata.path_to_item
|
1301
|
+
)
|
1302
|
+
|
1303
|
+
@classmethod
|
1304
|
+
def _validate_oapg(
|
1305
|
+
cls,
|
1306
|
+
arg,
|
1307
|
+
validation_metadata: ValidationMetadata,
|
1308
|
+
) -> typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Set[typing.Union['Schema', str, decimal.Decimal, BoolClass, NoneClass, frozendict.frozendict, tuple]]]:
|
1309
|
+
"""
|
1310
|
+
NumberBase _validate_oapg
|
1311
|
+
Validates that validations pass
|
1312
|
+
"""
|
1313
|
+
if isinstance(arg, decimal.Decimal):
|
1314
|
+
cls.__check_numeric_validations(arg, validation_metadata)
|
1315
|
+
return super()._validate_oapg(arg, validation_metadata=validation_metadata)
|
1316
|
+
|
1317
|
+
|
1318
|
+
class ListBase(ValidatorBase):
|
1319
|
+
MetaOapg: MetaOapgTyped
|
1320
|
+
|
1321
|
+
@classmethod
|
1322
|
+
def __validate_items(cls, list_items, validation_metadata: ValidationMetadata):
|
1323
|
+
"""
|
1324
|
+
Ensures that:
|
1325
|
+
- values passed in for items are valid
|
1326
|
+
Exceptions will be raised if:
|
1327
|
+
- invalid arguments were passed in
|
1328
|
+
|
1329
|
+
Args:
|
1330
|
+
list_items: the input list of items
|
1331
|
+
|
1332
|
+
Raises:
|
1333
|
+
ApiTypeError - for missing required arguments, or for invalid properties
|
1334
|
+
"""
|
1335
|
+
|
1336
|
+
# if we have definitions for an items schema, use it
|
1337
|
+
# otherwise accept anything
|
1338
|
+
item_cls = getattr(cls.MetaOapg, 'items', UnsetAnyTypeSchema)
|
1339
|
+
item_cls = cls._get_class_oapg(item_cls)
|
1340
|
+
path_to_schemas = {}
|
1341
|
+
for i, value in enumerate(list_items):
|
1342
|
+
item_validation_metadata = ValidationMetadata(
|
1343
|
+
from_server=validation_metadata.from_server,
|
1344
|
+
configuration=validation_metadata.configuration,
|
1345
|
+
path_to_item=validation_metadata.path_to_item+(i,),
|
1346
|
+
validated_path_to_schemas=validation_metadata.validated_path_to_schemas
|
1347
|
+
)
|
1348
|
+
if item_validation_metadata.validation_ran_earlier(item_cls):
|
1349
|
+
add_deeper_validated_schemas(item_validation_metadata, path_to_schemas)
|
1350
|
+
continue
|
1351
|
+
other_path_to_schemas = item_cls._validate_oapg(
|
1352
|
+
value, validation_metadata=item_validation_metadata)
|
1353
|
+
update(path_to_schemas, other_path_to_schemas)
|
1354
|
+
return path_to_schemas
|
1355
|
+
|
1356
|
+
@classmethod
|
1357
|
+
def __check_tuple_validations(
|
1358
|
+
cls, arg,
|
1359
|
+
validation_metadata: ValidationMetadata):
|
1360
|
+
if not hasattr(cls, 'MetaOapg'):
|
1361
|
+
return
|
1362
|
+
if (cls._is_json_validation_enabled_oapg('maxItems', validation_metadata.configuration) and
|
1363
|
+
hasattr(cls.MetaOapg, 'max_items') and
|
1364
|
+
len(arg) > cls.MetaOapg.max_items):
|
1365
|
+
cls._raise_validation_error_message_oapg(
|
1366
|
+
value=arg,
|
1367
|
+
constraint_msg="number of items must be less than or equal to",
|
1368
|
+
constraint_value=cls.MetaOapg.max_items,
|
1369
|
+
path_to_item=validation_metadata.path_to_item
|
1370
|
+
)
|
1371
|
+
|
1372
|
+
if (cls._is_json_validation_enabled_oapg('minItems', validation_metadata.configuration) and
|
1373
|
+
hasattr(cls.MetaOapg, 'min_items') and
|
1374
|
+
len(arg) < cls.MetaOapg.min_items):
|
1375
|
+
cls._raise_validation_error_message_oapg(
|
1376
|
+
value=arg,
|
1377
|
+
constraint_msg="number of items must be greater than or equal to",
|
1378
|
+
constraint_value=cls.MetaOapg.min_items,
|
1379
|
+
path_to_item=validation_metadata.path_to_item
|
1380
|
+
)
|
1381
|
+
|
1382
|
+
if (cls._is_json_validation_enabled_oapg('uniqueItems', validation_metadata.configuration) and
|
1383
|
+
hasattr(cls.MetaOapg, 'unique_items') and cls.MetaOapg.unique_items and arg):
|
1384
|
+
unique_items = set(arg)
|
1385
|
+
if len(arg) > len(unique_items):
|
1386
|
+
cls._raise_validation_error_message_oapg(
|
1387
|
+
value=arg,
|
1388
|
+
constraint_msg="duplicate items were found, and the tuple must not contain duplicates because",
|
1389
|
+
constraint_value='unique_items==True',
|
1390
|
+
path_to_item=validation_metadata.path_to_item
|
1391
|
+
)
|
1392
|
+
|
1393
|
+
@classmethod
|
1394
|
+
def _validate_oapg(
|
1395
|
+
cls,
|
1396
|
+
arg,
|
1397
|
+
validation_metadata: ValidationMetadata,
|
1398
|
+
):
|
1399
|
+
"""
|
1400
|
+
ListBase _validate_oapg
|
1401
|
+
We return dynamic classes of different bases depending upon the inputs
|
1402
|
+
This makes it so:
|
1403
|
+
- the returned instance is always a subclass of our defining schema
|
1404
|
+
- this allows us to check type based on whether an instance is a subclass of a schema
|
1405
|
+
- the returned instance is a serializable type (except for None, True, and False) which are enums
|
1406
|
+
|
1407
|
+
Returns:
|
1408
|
+
new_cls (type): the new class
|
1409
|
+
|
1410
|
+
Raises:
|
1411
|
+
ApiValueError: when a string can't be converted into a date or datetime and it must be one of those classes
|
1412
|
+
ApiTypeError: when the input type is not in the list of allowed spec types
|
1413
|
+
"""
|
1414
|
+
if isinstance(arg, tuple):
|
1415
|
+
cls.__check_tuple_validations(arg, validation_metadata)
|
1416
|
+
_path_to_schemas = super()._validate_oapg(arg, validation_metadata=validation_metadata)
|
1417
|
+
if not isinstance(arg, tuple):
|
1418
|
+
return _path_to_schemas
|
1419
|
+
updated_vm = ValidationMetadata(
|
1420
|
+
configuration=validation_metadata.configuration,
|
1421
|
+
from_server=validation_metadata.from_server,
|
1422
|
+
path_to_item=validation_metadata.path_to_item,
|
1423
|
+
seen_classes=validation_metadata.seen_classes | frozenset({cls}),
|
1424
|
+
validated_path_to_schemas=validation_metadata.validated_path_to_schemas
|
1425
|
+
)
|
1426
|
+
other_path_to_schemas = cls.__validate_items(arg, validation_metadata=updated_vm)
|
1427
|
+
update(_path_to_schemas, other_path_to_schemas)
|
1428
|
+
return _path_to_schemas
|
1429
|
+
|
1430
|
+
@classmethod
|
1431
|
+
def _get_items_oapg(
|
1432
|
+
cls: 'Schema',
|
1433
|
+
arg: typing.List[typing.Any],
|
1434
|
+
path_to_item: typing.Tuple[typing.Union[str, int], ...],
|
1435
|
+
path_to_schemas: typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Type['Schema']]
|
1436
|
+
):
|
1437
|
+
'''
|
1438
|
+
ListBase _get_items_oapg
|
1439
|
+
'''
|
1440
|
+
cast_items = []
|
1441
|
+
|
1442
|
+
for i, value in enumerate(arg):
|
1443
|
+
item_path_to_item = path_to_item + (i,)
|
1444
|
+
item_cls = path_to_schemas[item_path_to_item]
|
1445
|
+
new_value = item_cls._get_new_instance_without_conversion_oapg(
|
1446
|
+
value,
|
1447
|
+
item_path_to_item,
|
1448
|
+
path_to_schemas
|
1449
|
+
)
|
1450
|
+
cast_items.append(new_value)
|
1451
|
+
|
1452
|
+
return cast_items
|
1453
|
+
|
1454
|
+
|
1455
|
+
class Discriminable:
|
1456
|
+
MetaOapg: MetaOapgTyped
|
1457
|
+
|
1458
|
+
@classmethod
|
1459
|
+
def _ensure_discriminator_value_present_oapg(cls, disc_property_name: str, validation_metadata: ValidationMetadata, *args):
|
1460
|
+
if not args or args and disc_property_name not in args[0]:
|
1461
|
+
# The input data does not contain the discriminator property
|
1462
|
+
raise ApiValueError(
|
1463
|
+
"Cannot deserialize input data due to missing discriminator. "
|
1464
|
+
"The discriminator property '{}' is missing at path: {}".format(disc_property_name, validation_metadata.path_to_item)
|
1465
|
+
)
|
1466
|
+
|
1467
|
+
@classmethod
|
1468
|
+
def get_discriminated_class_oapg(cls, disc_property_name: str, disc_payload_value: str):
|
1469
|
+
"""
|
1470
|
+
Used in schemas with discriminators
|
1471
|
+
"""
|
1472
|
+
if not hasattr(cls.MetaOapg, 'discriminator'):
|
1473
|
+
return None
|
1474
|
+
disc = cls.MetaOapg.discriminator()
|
1475
|
+
if disc_property_name not in disc:
|
1476
|
+
return None
|
1477
|
+
discriminated_cls = disc[disc_property_name].get(disc_payload_value)
|
1478
|
+
if discriminated_cls is not None:
|
1479
|
+
return discriminated_cls
|
1480
|
+
if not hasattr(cls, 'MetaOapg'):
|
1481
|
+
return None
|
1482
|
+
elif not (
|
1483
|
+
hasattr(cls.MetaOapg, 'all_of') or
|
1484
|
+
hasattr(cls.MetaOapg, 'one_of') or
|
1485
|
+
hasattr(cls.MetaOapg, 'any_of')
|
1486
|
+
):
|
1487
|
+
return None
|
1488
|
+
# TODO stop traveling if a cycle is hit
|
1489
|
+
if hasattr(cls.MetaOapg, 'all_of'):
|
1490
|
+
for allof_cls in cls.MetaOapg.all_of():
|
1491
|
+
discriminated_cls = allof_cls.get_discriminated_class_oapg(
|
1492
|
+
disc_property_name=disc_property_name, disc_payload_value=disc_payload_value)
|
1493
|
+
if discriminated_cls is not None:
|
1494
|
+
return discriminated_cls
|
1495
|
+
if hasattr(cls.MetaOapg, 'one_of'):
|
1496
|
+
for oneof_cls in cls.MetaOapg.one_of():
|
1497
|
+
discriminated_cls = oneof_cls.get_discriminated_class_oapg(
|
1498
|
+
disc_property_name=disc_property_name, disc_payload_value=disc_payload_value)
|
1499
|
+
if discriminated_cls is not None:
|
1500
|
+
return discriminated_cls
|
1501
|
+
if hasattr(cls.MetaOapg, 'any_of'):
|
1502
|
+
for anyof_cls in cls.MetaOapg.any_of():
|
1503
|
+
discriminated_cls = anyof_cls.get_discriminated_class_oapg(
|
1504
|
+
disc_property_name=disc_property_name, disc_payload_value=disc_payload_value)
|
1505
|
+
if discriminated_cls is not None:
|
1506
|
+
return discriminated_cls
|
1507
|
+
return None
|
1508
|
+
|
1509
|
+
|
1510
|
+
class DictBase(Discriminable, ValidatorBase):
|
1511
|
+
|
1512
|
+
@classmethod
|
1513
|
+
def __validate_arg_presence(cls, arg):
|
1514
|
+
"""
|
1515
|
+
Ensures that:
|
1516
|
+
- all required arguments are passed in
|
1517
|
+
- the input variable names are valid
|
1518
|
+
- present in properties or
|
1519
|
+
- accepted because additionalProperties exists
|
1520
|
+
Exceptions will be raised if:
|
1521
|
+
- invalid arguments were passed in
|
1522
|
+
- a var_name is invalid if additional_properties == NotAnyTypeSchema
|
1523
|
+
and var_name not in properties.__annotations__
|
1524
|
+
- required properties were not passed in
|
1525
|
+
|
1526
|
+
Args:
|
1527
|
+
arg: the input dict
|
1528
|
+
|
1529
|
+
Raises:
|
1530
|
+
ApiTypeError - for missing required arguments, or for invalid properties
|
1531
|
+
"""
|
1532
|
+
seen_required_properties = set()
|
1533
|
+
invalid_arguments = []
|
1534
|
+
required_property_names = getattr(cls.MetaOapg, 'required', set())
|
1535
|
+
additional_properties = getattr(cls.MetaOapg, 'additional_properties', UnsetAnyTypeSchema)
|
1536
|
+
properties = getattr(cls.MetaOapg, 'properties', {})
|
1537
|
+
property_annotations = getattr(properties, '__annotations__', {})
|
1538
|
+
for property_name in arg:
|
1539
|
+
if property_name in required_property_names:
|
1540
|
+
seen_required_properties.add(property_name)
|
1541
|
+
elif property_name in property_annotations:
|
1542
|
+
continue
|
1543
|
+
elif additional_properties is not NotAnyTypeSchema:
|
1544
|
+
continue
|
1545
|
+
else:
|
1546
|
+
invalid_arguments.append(property_name)
|
1547
|
+
missing_required_arguments = list(required_property_names - seen_required_properties)
|
1548
|
+
if missing_required_arguments:
|
1549
|
+
missing_required_arguments.sort()
|
1550
|
+
raise ApiTypeError(
|
1551
|
+
"{} is missing {} required argument{}: {}".format(
|
1552
|
+
cls.__name__,
|
1553
|
+
len(missing_required_arguments),
|
1554
|
+
"s" if len(missing_required_arguments) > 1 else "",
|
1555
|
+
missing_required_arguments
|
1556
|
+
)
|
1557
|
+
)
|
1558
|
+
if invalid_arguments:
|
1559
|
+
invalid_arguments.sort()
|
1560
|
+
raise ApiTypeError(
|
1561
|
+
"{} was passed {} invalid argument{}: {}".format(
|
1562
|
+
cls.__name__,
|
1563
|
+
len(invalid_arguments),
|
1564
|
+
"s" if len(invalid_arguments) > 1 else "",
|
1565
|
+
invalid_arguments
|
1566
|
+
)
|
1567
|
+
)
|
1568
|
+
|
1569
|
+
@classmethod
|
1570
|
+
def __validate_args(cls, arg, validation_metadata: ValidationMetadata):
|
1571
|
+
"""
|
1572
|
+
Ensures that:
|
1573
|
+
- values passed in for properties are valid
|
1574
|
+
Exceptions will be raised if:
|
1575
|
+
- invalid arguments were passed in
|
1576
|
+
|
1577
|
+
Args:
|
1578
|
+
arg: the input dict
|
1579
|
+
|
1580
|
+
Raises:
|
1581
|
+
ApiTypeError - for missing required arguments, or for invalid properties
|
1582
|
+
"""
|
1583
|
+
path_to_schemas = {}
|
1584
|
+
additional_properties = getattr(cls.MetaOapg, 'additional_properties', UnsetAnyTypeSchema)
|
1585
|
+
properties = getattr(cls.MetaOapg, 'properties', {})
|
1586
|
+
property_annotations = getattr(properties, '__annotations__', {})
|
1587
|
+
for property_name, value in arg.items():
|
1588
|
+
path_to_item = validation_metadata.path_to_item+(property_name,)
|
1589
|
+
if property_name in property_annotations:
|
1590
|
+
schema = property_annotations[property_name]
|
1591
|
+
elif additional_properties is not NotAnyTypeSchema:
|
1592
|
+
if additional_properties is UnsetAnyTypeSchema:
|
1593
|
+
"""
|
1594
|
+
If additionalProperties is unset and this path_to_item does not yet have
|
1595
|
+
any validations on it, validate it.
|
1596
|
+
If it already has validations on it, skip this validation.
|
1597
|
+
"""
|
1598
|
+
if path_to_item in path_to_schemas:
|
1599
|
+
continue
|
1600
|
+
schema = additional_properties
|
1601
|
+
else:
|
1602
|
+
raise ApiTypeError('Unable to find schema for value={} in class={} at path_to_item={}'.format(
|
1603
|
+
value, cls, validation_metadata.path_to_item+(property_name,)
|
1604
|
+
))
|
1605
|
+
schema = cls._get_class_oapg(schema)
|
1606
|
+
arg_validation_metadata = ValidationMetadata(
|
1607
|
+
from_server=validation_metadata.from_server,
|
1608
|
+
configuration=validation_metadata.configuration,
|
1609
|
+
path_to_item=path_to_item,
|
1610
|
+
validated_path_to_schemas=validation_metadata.validated_path_to_schemas
|
1611
|
+
)
|
1612
|
+
if arg_validation_metadata.validation_ran_earlier(schema):
|
1613
|
+
add_deeper_validated_schemas(arg_validation_metadata, path_to_schemas)
|
1614
|
+
continue
|
1615
|
+
other_path_to_schemas = schema._validate_oapg(value, validation_metadata=arg_validation_metadata)
|
1616
|
+
update(path_to_schemas, other_path_to_schemas)
|
1617
|
+
return path_to_schemas
|
1618
|
+
|
1619
|
+
@classmethod
|
1620
|
+
def __check_dict_validations(
|
1621
|
+
cls,
|
1622
|
+
arg,
|
1623
|
+
validation_metadata: ValidationMetadata
|
1624
|
+
):
|
1625
|
+
if not hasattr(cls, 'MetaOapg'):
|
1626
|
+
return
|
1627
|
+
if (cls._is_json_validation_enabled_oapg('maxProperties', validation_metadata.configuration) and
|
1628
|
+
hasattr(cls.MetaOapg, 'max_properties') and
|
1629
|
+
len(arg) > cls.MetaOapg.max_properties):
|
1630
|
+
cls._raise_validation_error_message_oapg(
|
1631
|
+
value=arg,
|
1632
|
+
constraint_msg="number of properties must be less than or equal to",
|
1633
|
+
constraint_value=cls.MetaOapg.max_properties,
|
1634
|
+
path_to_item=validation_metadata.path_to_item
|
1635
|
+
)
|
1636
|
+
|
1637
|
+
if (cls._is_json_validation_enabled_oapg('minProperties', validation_metadata.configuration) and
|
1638
|
+
hasattr(cls.MetaOapg, 'min_properties') and
|
1639
|
+
len(arg) < cls.MetaOapg.min_properties):
|
1640
|
+
cls._raise_validation_error_message_oapg(
|
1641
|
+
value=arg,
|
1642
|
+
constraint_msg="number of properties must be greater than or equal to",
|
1643
|
+
constraint_value=cls.MetaOapg.min_properties,
|
1644
|
+
path_to_item=validation_metadata.path_to_item
|
1645
|
+
)
|
1646
|
+
|
1647
|
+
@classmethod
|
1648
|
+
def _validate_oapg(
|
1649
|
+
cls,
|
1650
|
+
arg,
|
1651
|
+
validation_metadata: ValidationMetadata,
|
1652
|
+
):
|
1653
|
+
"""
|
1654
|
+
DictBase _validate_oapg
|
1655
|
+
We return dynamic classes of different bases depending upon the inputs
|
1656
|
+
This makes it so:
|
1657
|
+
- the returned instance is always a subclass of our defining schema
|
1658
|
+
- this allows us to check type based on whether an instance is a subclass of a schema
|
1659
|
+
- the returned instance is a serializable type (except for None, True, and False) which are enums
|
1660
|
+
|
1661
|
+
Returns:
|
1662
|
+
new_cls (type): the new class
|
1663
|
+
|
1664
|
+
Raises:
|
1665
|
+
ApiValueError: when a string can't be converted into a date or datetime and it must be one of those classes
|
1666
|
+
ApiTypeError: when the input type is not in the list of allowed spec types
|
1667
|
+
"""
|
1668
|
+
if isinstance(arg, frozendict.frozendict):
|
1669
|
+
cls.__check_dict_validations(arg, validation_metadata)
|
1670
|
+
_path_to_schemas = super()._validate_oapg(arg, validation_metadata=validation_metadata)
|
1671
|
+
if not isinstance(arg, frozendict.frozendict):
|
1672
|
+
return _path_to_schemas
|
1673
|
+
cls.__validate_arg_presence(arg)
|
1674
|
+
other_path_to_schemas = cls.__validate_args(arg, validation_metadata=validation_metadata)
|
1675
|
+
update(_path_to_schemas, other_path_to_schemas)
|
1676
|
+
try:
|
1677
|
+
discriminator = cls.MetaOapg.discriminator()
|
1678
|
+
except AttributeError:
|
1679
|
+
return _path_to_schemas
|
1680
|
+
# discriminator exists
|
1681
|
+
disc_prop_name = list(discriminator.keys())[0]
|
1682
|
+
cls._ensure_discriminator_value_present_oapg(disc_prop_name, validation_metadata, arg)
|
1683
|
+
discriminated_cls = cls.get_discriminated_class_oapg(
|
1684
|
+
disc_property_name=disc_prop_name, disc_payload_value=arg[disc_prop_name])
|
1685
|
+
if discriminated_cls is None:
|
1686
|
+
raise ApiValueError(
|
1687
|
+
"Invalid discriminator value was passed in to {}.{} Only the values {} are allowed at {}".format(
|
1688
|
+
cls.__name__,
|
1689
|
+
disc_prop_name,
|
1690
|
+
list(discriminator[disc_prop_name].keys()),
|
1691
|
+
validation_metadata.path_to_item + (disc_prop_name,)
|
1692
|
+
)
|
1693
|
+
)
|
1694
|
+
updated_vm = ValidationMetadata(
|
1695
|
+
configuration=validation_metadata.configuration,
|
1696
|
+
from_server=validation_metadata.from_server,
|
1697
|
+
path_to_item=validation_metadata.path_to_item,
|
1698
|
+
seen_classes=validation_metadata.seen_classes | frozenset({cls}),
|
1699
|
+
validated_path_to_schemas=validation_metadata.validated_path_to_schemas
|
1700
|
+
)
|
1701
|
+
if updated_vm.validation_ran_earlier(discriminated_cls):
|
1702
|
+
add_deeper_validated_schemas(updated_vm, _path_to_schemas)
|
1703
|
+
return _path_to_schemas
|
1704
|
+
other_path_to_schemas = discriminated_cls._validate_oapg(arg, validation_metadata=updated_vm)
|
1705
|
+
update(_path_to_schemas, other_path_to_schemas)
|
1706
|
+
return _path_to_schemas
|
1707
|
+
|
1708
|
+
@classmethod
|
1709
|
+
def _get_properties_oapg(
|
1710
|
+
cls,
|
1711
|
+
arg: typing.Dict[str, typing.Any],
|
1712
|
+
path_to_item: typing.Tuple[typing.Union[str, int], ...],
|
1713
|
+
path_to_schemas: typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Type['Schema']]
|
1714
|
+
):
|
1715
|
+
"""
|
1716
|
+
DictBase _get_properties_oapg, this is how properties are set
|
1717
|
+
These values already passed validation
|
1718
|
+
"""
|
1719
|
+
dict_items = {}
|
1720
|
+
|
1721
|
+
for property_name_js, value in arg.items():
|
1722
|
+
property_path_to_item = path_to_item + (property_name_js,)
|
1723
|
+
property_cls = path_to_schemas[property_path_to_item]
|
1724
|
+
new_value = property_cls._get_new_instance_without_conversion_oapg(
|
1725
|
+
value,
|
1726
|
+
property_path_to_item,
|
1727
|
+
path_to_schemas
|
1728
|
+
)
|
1729
|
+
dict_items[property_name_js] = new_value
|
1730
|
+
|
1731
|
+
return dict_items
|
1732
|
+
|
1733
|
+
def __setattr__(self, name: str, value: typing.Any):
|
1734
|
+
if not isinstance(self, FileIO):
|
1735
|
+
raise AttributeError('property setting not supported on immutable instances')
|
1736
|
+
|
1737
|
+
def __getattr__(self, name: str):
|
1738
|
+
"""
|
1739
|
+
for instance.name access
|
1740
|
+
Properties are only type hinted for required properties
|
1741
|
+
so that hasattr(instance, 'optionalProp') is False when that key is not present
|
1742
|
+
"""
|
1743
|
+
if not isinstance(self, frozendict.frozendict):
|
1744
|
+
return super().__getattr__(name)
|
1745
|
+
if name not in self.__class__.__annotations__:
|
1746
|
+
raise AttributeError(f"{self} has no attribute '{name}'")
|
1747
|
+
try:
|
1748
|
+
value = self[name]
|
1749
|
+
return value
|
1750
|
+
except KeyError as ex:
|
1751
|
+
raise AttributeError(str(ex))
|
1752
|
+
|
1753
|
+
def __getitem__(self, name: str):
|
1754
|
+
"""
|
1755
|
+
dict_instance[name] accessor
|
1756
|
+
key errors thrown
|
1757
|
+
"""
|
1758
|
+
if not isinstance(self, frozendict.frozendict):
|
1759
|
+
return super().__getattr__(name)
|
1760
|
+
return super().__getitem__(name)
|
1761
|
+
|
1762
|
+
def get_item_oapg(self, name: str) -> typing.Union['AnyTypeSchema', Unset]:
|
1763
|
+
# dict_instance[name] accessor
|
1764
|
+
if not isinstance(self, frozendict.frozendict):
|
1765
|
+
raise NotImplementedError()
|
1766
|
+
try:
|
1767
|
+
return super().__getitem__(name)
|
1768
|
+
except KeyError:
|
1769
|
+
return unset
|
1770
|
+
|
1771
|
+
|
1772
|
+
def cast_to_allowed_types(
|
1773
|
+
arg: typing.Union[str, date, datetime, uuid.UUID, decimal.Decimal, int, float, None, dict, frozendict.frozendict, list, tuple, bytes, Schema, io.FileIO, io.BufferedReader],
|
1774
|
+
from_server: bool,
|
1775
|
+
validated_path_to_schemas: typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Set[typing.Union['Schema', str, decimal.Decimal, BoolClass, NoneClass, frozendict.frozendict, tuple]]],
|
1776
|
+
path_to_item: typing.Tuple[typing.Union[str, int], ...] = tuple(['args[0]']),
|
1777
|
+
) -> typing.Union[frozendict.frozendict, tuple, decimal.Decimal, str, bytes, BoolClass, NoneClass, FileIO]:
|
1778
|
+
"""
|
1779
|
+
Casts the input payload arg into the allowed types
|
1780
|
+
The input validated_path_to_schemas is mutated by running this function
|
1781
|
+
|
1782
|
+
When from_server is False then
|
1783
|
+
- date/datetime is cast to str
|
1784
|
+
- int/float is cast to Decimal
|
1785
|
+
|
1786
|
+
If a Schema instance is passed in it is converted back to a primitive instance because
|
1787
|
+
One may need to validate that data to the original Schema class AND additional different classes
|
1788
|
+
those additional classes will need to be added to the new manufactured class for that payload
|
1789
|
+
If the code didn't do this and kept the payload as a Schema instance it would fail to validate to other
|
1790
|
+
Schema classes and the code wouldn't be able to mfg a new class that includes all valid schemas
|
1791
|
+
TODO: store the validated schema classes in validation_metadata
|
1792
|
+
|
1793
|
+
Args:
|
1794
|
+
arg: the payload
|
1795
|
+
from_server: whether this payload came from the server or not
|
1796
|
+
validated_path_to_schemas: a dict that stores the validated classes at any path location in the payload
|
1797
|
+
"""
|
1798
|
+
if isinstance(arg, Schema):
|
1799
|
+
# store the already run validations
|
1800
|
+
schema_classes = set()
|
1801
|
+
for cls in arg.__class__.__bases__:
|
1802
|
+
if cls is Singleton:
|
1803
|
+
# Skip Singleton
|
1804
|
+
continue
|
1805
|
+
schema_classes.add(cls)
|
1806
|
+
validated_path_to_schemas[path_to_item] = schema_classes
|
1807
|
+
|
1808
|
+
type_error = ApiTypeError(f"Invalid type. Required value type is str and passed type was {type(arg)} at {path_to_item}")
|
1809
|
+
if isinstance(arg, str):
|
1810
|
+
return str(arg)
|
1811
|
+
elif isinstance(arg, (dict, frozendict.frozendict)):
|
1812
|
+
return frozendict.frozendict({key: cast_to_allowed_types(val, from_server, validated_path_to_schemas, path_to_item + (key,)) for key, val in arg.items()})
|
1813
|
+
elif isinstance(arg, (bool, BoolClass)):
|
1814
|
+
"""
|
1815
|
+
this check must come before isinstance(arg, (int, float))
|
1816
|
+
because isinstance(True, int) is True
|
1817
|
+
"""
|
1818
|
+
if arg:
|
1819
|
+
return BoolClass.TRUE
|
1820
|
+
return BoolClass.FALSE
|
1821
|
+
elif isinstance(arg, int):
|
1822
|
+
return decimal.Decimal(arg)
|
1823
|
+
elif isinstance(arg, float):
|
1824
|
+
decimal_from_float = decimal.Decimal(arg)
|
1825
|
+
if decimal_from_float.as_integer_ratio()[1] == 1:
|
1826
|
+
# 9.0 -> Decimal('9.0')
|
1827
|
+
# 3.4028234663852886e+38 -> Decimal('340282346638528859811704183484516925440.0')
|
1828
|
+
return decimal.Decimal(str(decimal_from_float)+'.0')
|
1829
|
+
return decimal_from_float
|
1830
|
+
elif isinstance(arg, (tuple, list)):
|
1831
|
+
return tuple([cast_to_allowed_types(item, from_server, validated_path_to_schemas, path_to_item + (i,)) for i, item in enumerate(arg)])
|
1832
|
+
elif isinstance(arg, (none_type, NoneClass)):
|
1833
|
+
return NoneClass.NONE
|
1834
|
+
elif isinstance(arg, (date, datetime)):
|
1835
|
+
if not from_server:
|
1836
|
+
return arg.isoformat()
|
1837
|
+
raise type_error
|
1838
|
+
elif isinstance(arg, uuid.UUID):
|
1839
|
+
if not from_server:
|
1840
|
+
return str(arg)
|
1841
|
+
raise type_error
|
1842
|
+
elif isinstance(arg, decimal.Decimal):
|
1843
|
+
return decimal.Decimal(arg)
|
1844
|
+
elif isinstance(arg, bytes):
|
1845
|
+
return bytes(arg)
|
1846
|
+
elif isinstance(arg, (io.FileIO, io.BufferedReader)):
|
1847
|
+
return FileIO(arg)
|
1848
|
+
raise ValueError('Invalid type passed in got input={} type={}'.format(arg, type(arg)))
|
1849
|
+
|
1850
|
+
|
1851
|
+
class ComposedBase(Discriminable):
|
1852
|
+
|
1853
|
+
@classmethod
|
1854
|
+
def __get_allof_classes(cls, arg, validation_metadata: ValidationMetadata):
|
1855
|
+
path_to_schemas = defaultdict(set)
|
1856
|
+
for allof_cls in cls.MetaOapg.all_of():
|
1857
|
+
if validation_metadata.validation_ran_earlier(allof_cls):
|
1858
|
+
add_deeper_validated_schemas(validation_metadata, path_to_schemas)
|
1859
|
+
continue
|
1860
|
+
other_path_to_schemas = allof_cls._validate_oapg(arg, validation_metadata=validation_metadata)
|
1861
|
+
update(path_to_schemas, other_path_to_schemas)
|
1862
|
+
return path_to_schemas
|
1863
|
+
|
1864
|
+
@classmethod
|
1865
|
+
def __get_oneof_class(
|
1866
|
+
cls,
|
1867
|
+
arg,
|
1868
|
+
discriminated_cls,
|
1869
|
+
validation_metadata: ValidationMetadata,
|
1870
|
+
):
|
1871
|
+
oneof_classes = []
|
1872
|
+
path_to_schemas = defaultdict(set)
|
1873
|
+
for oneof_cls in cls.MetaOapg.one_of():
|
1874
|
+
if oneof_cls in path_to_schemas[validation_metadata.path_to_item]:
|
1875
|
+
oneof_classes.append(oneof_cls)
|
1876
|
+
continue
|
1877
|
+
if validation_metadata.validation_ran_earlier(oneof_cls):
|
1878
|
+
oneof_classes.append(oneof_cls)
|
1879
|
+
add_deeper_validated_schemas(validation_metadata, path_to_schemas)
|
1880
|
+
continue
|
1881
|
+
try:
|
1882
|
+
path_to_schemas = oneof_cls._validate_oapg(arg, validation_metadata=validation_metadata)
|
1883
|
+
except (ApiValueError, ApiTypeError) as ex:
|
1884
|
+
if discriminated_cls is not None and oneof_cls is discriminated_cls:
|
1885
|
+
raise ex
|
1886
|
+
continue
|
1887
|
+
oneof_classes.append(oneof_cls)
|
1888
|
+
if not oneof_classes:
|
1889
|
+
raise ApiValueError(
|
1890
|
+
"Invalid inputs given to generate an instance of {}. None "
|
1891
|
+
"of the oneOf schemas matched the input data.".format(cls)
|
1892
|
+
)
|
1893
|
+
elif len(oneof_classes) > 1:
|
1894
|
+
raise ApiValueError(
|
1895
|
+
"Invalid inputs given to generate an instance of {}. Multiple "
|
1896
|
+
"oneOf schemas {} matched the inputs, but a max of one is allowed.".format(cls, oneof_classes)
|
1897
|
+
)
|
1898
|
+
# exactly one class matches
|
1899
|
+
return path_to_schemas
|
1900
|
+
|
1901
|
+
@classmethod
|
1902
|
+
def __get_anyof_classes(
|
1903
|
+
cls,
|
1904
|
+
arg,
|
1905
|
+
discriminated_cls,
|
1906
|
+
validation_metadata: ValidationMetadata
|
1907
|
+
):
|
1908
|
+
anyof_classes = []
|
1909
|
+
path_to_schemas = defaultdict(set)
|
1910
|
+
for anyof_cls in cls.MetaOapg.any_of():
|
1911
|
+
if validation_metadata.validation_ran_earlier(anyof_cls):
|
1912
|
+
anyof_classes.append(anyof_cls)
|
1913
|
+
add_deeper_validated_schemas(validation_metadata, path_to_schemas)
|
1914
|
+
continue
|
1915
|
+
|
1916
|
+
try:
|
1917
|
+
other_path_to_schemas = anyof_cls._validate_oapg(arg, validation_metadata=validation_metadata)
|
1918
|
+
except (ApiValueError, ApiTypeError) as ex:
|
1919
|
+
if discriminated_cls is not None and anyof_cls is discriminated_cls:
|
1920
|
+
raise ex
|
1921
|
+
continue
|
1922
|
+
anyof_classes.append(anyof_cls)
|
1923
|
+
update(path_to_schemas, other_path_to_schemas)
|
1924
|
+
if not anyof_classes:
|
1925
|
+
raise ApiValueError(
|
1926
|
+
"Invalid inputs given to generate an instance of {}. None "
|
1927
|
+
"of the anyOf schemas matched the input data.".format(cls)
|
1928
|
+
)
|
1929
|
+
return path_to_schemas
|
1930
|
+
|
1931
|
+
@classmethod
|
1932
|
+
def _validate_oapg(
|
1933
|
+
cls,
|
1934
|
+
arg,
|
1935
|
+
validation_metadata: ValidationMetadata,
|
1936
|
+
) -> typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Set[typing.Union['Schema', str, decimal.Decimal, BoolClass, NoneClass, frozendict.frozendict, tuple]]]:
|
1937
|
+
"""
|
1938
|
+
ComposedBase _validate_oapg
|
1939
|
+
We return dynamic classes of different bases depending upon the inputs
|
1940
|
+
This makes it so:
|
1941
|
+
- the returned instance is always a subclass of our defining schema
|
1942
|
+
- this allows us to check type based on whether an instance is a subclass of a schema
|
1943
|
+
- the returned instance is a serializable type (except for None, True, and False) which are enums
|
1944
|
+
|
1945
|
+
Returns:
|
1946
|
+
new_cls (type): the new class
|
1947
|
+
|
1948
|
+
Raises:
|
1949
|
+
ApiValueError: when a string can't be converted into a date or datetime and it must be one of those classes
|
1950
|
+
ApiTypeError: when the input type is not in the list of allowed spec types
|
1951
|
+
"""
|
1952
|
+
# validation checking on types, validations, and enums
|
1953
|
+
path_to_schemas = super()._validate_oapg(arg, validation_metadata=validation_metadata)
|
1954
|
+
|
1955
|
+
updated_vm = ValidationMetadata(
|
1956
|
+
configuration=validation_metadata.configuration,
|
1957
|
+
from_server=validation_metadata.from_server,
|
1958
|
+
path_to_item=validation_metadata.path_to_item,
|
1959
|
+
seen_classes=validation_metadata.seen_classes | frozenset({cls}),
|
1960
|
+
validated_path_to_schemas=validation_metadata.validated_path_to_schemas
|
1961
|
+
)
|
1962
|
+
|
1963
|
+
# process composed schema
|
1964
|
+
discriminator = None
|
1965
|
+
if hasattr(cls, 'MetaOapg') and hasattr(cls.MetaOapg, 'discriminator'):
|
1966
|
+
discriminator = cls.MetaOapg.discriminator()
|
1967
|
+
discriminated_cls = None
|
1968
|
+
if discriminator and arg and isinstance(arg, frozendict.frozendict):
|
1969
|
+
disc_property_name = list(discriminator.keys())[0]
|
1970
|
+
cls._ensure_discriminator_value_present_oapg(disc_property_name, updated_vm, arg)
|
1971
|
+
# get discriminated_cls by looking at the dict in the current class
|
1972
|
+
discriminated_cls = cls.get_discriminated_class_oapg(
|
1973
|
+
disc_property_name=disc_property_name, disc_payload_value=arg[disc_property_name])
|
1974
|
+
if discriminated_cls is None:
|
1975
|
+
raise ApiValueError(
|
1976
|
+
"Invalid discriminator value '{}' was passed in to {}.{} Only the values {} are allowed at {}".format(
|
1977
|
+
arg[disc_property_name],
|
1978
|
+
cls.__name__,
|
1979
|
+
disc_property_name,
|
1980
|
+
list(discriminator[disc_property_name].keys()),
|
1981
|
+
updated_vm.path_to_item + (disc_property_name,)
|
1982
|
+
)
|
1983
|
+
)
|
1984
|
+
|
1985
|
+
if hasattr(cls, 'MetaOapg') and hasattr(cls.MetaOapg, 'all_of'):
|
1986
|
+
other_path_to_schemas = cls.__get_allof_classes(arg, validation_metadata=updated_vm)
|
1987
|
+
update(path_to_schemas, other_path_to_schemas)
|
1988
|
+
if hasattr(cls, 'MetaOapg') and hasattr(cls.MetaOapg, 'one_of'):
|
1989
|
+
other_path_to_schemas = cls.__get_oneof_class(
|
1990
|
+
arg,
|
1991
|
+
discriminated_cls=discriminated_cls,
|
1992
|
+
validation_metadata=updated_vm
|
1993
|
+
)
|
1994
|
+
update(path_to_schemas, other_path_to_schemas)
|
1995
|
+
if hasattr(cls, 'MetaOapg') and hasattr(cls.MetaOapg, 'any_of'):
|
1996
|
+
other_path_to_schemas = cls.__get_anyof_classes(
|
1997
|
+
arg,
|
1998
|
+
discriminated_cls=discriminated_cls,
|
1999
|
+
validation_metadata=updated_vm
|
2000
|
+
)
|
2001
|
+
update(path_to_schemas, other_path_to_schemas)
|
2002
|
+
not_cls = None
|
2003
|
+
if hasattr(cls, 'MetaOapg') and hasattr(cls.MetaOapg, 'not_schema'):
|
2004
|
+
not_cls = cls.MetaOapg.not_schema
|
2005
|
+
not_cls = cls._get_class_oapg(not_cls)
|
2006
|
+
if not_cls:
|
2007
|
+
other_path_to_schemas = None
|
2008
|
+
not_exception = ApiValueError(
|
2009
|
+
"Invalid value '{}' was passed in to {}. Value is invalid because it is disallowed by {}".format(
|
2010
|
+
arg,
|
2011
|
+
cls.__name__,
|
2012
|
+
not_cls.__name__,
|
2013
|
+
)
|
2014
|
+
)
|
2015
|
+
if updated_vm.validation_ran_earlier(not_cls):
|
2016
|
+
raise not_exception
|
2017
|
+
|
2018
|
+
try:
|
2019
|
+
other_path_to_schemas = not_cls._validate_oapg(arg, validation_metadata=updated_vm)
|
2020
|
+
except (ApiValueError, ApiTypeError):
|
2021
|
+
pass
|
2022
|
+
if other_path_to_schemas:
|
2023
|
+
raise not_exception
|
2024
|
+
|
2025
|
+
if discriminated_cls is not None and not updated_vm.validation_ran_earlier(discriminated_cls):
|
2026
|
+
# TODO use an exception from this package here
|
2027
|
+
add_deeper_validated_schemas(updated_vm, path_to_schemas)
|
2028
|
+
assert discriminated_cls in path_to_schemas[updated_vm.path_to_item]
|
2029
|
+
return path_to_schemas
|
2030
|
+
|
2031
|
+
|
2032
|
+
# DictBase, ListBase, NumberBase, StrBase, BoolBase, NoneBase
|
2033
|
+
class ComposedSchema(
|
2034
|
+
ComposedBase,
|
2035
|
+
DictBase,
|
2036
|
+
ListBase,
|
2037
|
+
NumberBase,
|
2038
|
+
StrBase,
|
2039
|
+
BoolBase,
|
2040
|
+
NoneBase,
|
2041
|
+
Schema,
|
2042
|
+
NoneFrozenDictTupleStrDecimalBoolMixin
|
2043
|
+
):
|
2044
|
+
@classmethod
|
2045
|
+
def from_openapi_data_oapg(cls, *args: typing.Any, _configuration: typing.Optional[Configuration] = None, **kwargs):
|
2046
|
+
if not args:
|
2047
|
+
if not kwargs:
|
2048
|
+
raise ApiTypeError('{} is missing required input data in args or kwargs'.format(cls.__name__))
|
2049
|
+
args = (kwargs, )
|
2050
|
+
return super().from_openapi_data_oapg(args[0], _configuration=_configuration)
|
2051
|
+
|
2052
|
+
|
2053
|
+
class ListSchema(
|
2054
|
+
ListBase,
|
2055
|
+
Schema,
|
2056
|
+
TupleMixin
|
2057
|
+
):
|
2058
|
+
|
2059
|
+
@classmethod
|
2060
|
+
def from_openapi_data_oapg(cls, arg: typing.List[typing.Any], _configuration: typing.Optional[Configuration] = None):
|
2061
|
+
return super().from_openapi_data_oapg(arg, _configuration=_configuration)
|
2062
|
+
|
2063
|
+
def __new__(cls, _arg: typing.Union[typing.List[typing.Any], typing.Tuple[typing.Any]], **kwargs: Configuration):
|
2064
|
+
return super().__new__(cls, _arg, **kwargs)
|
2065
|
+
|
2066
|
+
|
2067
|
+
class NoneSchema(
|
2068
|
+
NoneBase,
|
2069
|
+
Schema,
|
2070
|
+
NoneMixin
|
2071
|
+
):
|
2072
|
+
|
2073
|
+
@classmethod
|
2074
|
+
def from_openapi_data_oapg(cls, arg: None, _configuration: typing.Optional[Configuration] = None):
|
2075
|
+
return super().from_openapi_data_oapg(arg, _configuration=_configuration)
|
2076
|
+
|
2077
|
+
def __new__(cls, _arg: None, **kwargs: Configuration):
|
2078
|
+
return super().__new__(cls, _arg, **kwargs)
|
2079
|
+
|
2080
|
+
|
2081
|
+
class NumberSchema(
|
2082
|
+
NumberBase,
|
2083
|
+
Schema,
|
2084
|
+
DecimalMixin
|
2085
|
+
):
|
2086
|
+
"""
|
2087
|
+
This is used for type: number with no format
|
2088
|
+
Both integers AND floats are accepted
|
2089
|
+
"""
|
2090
|
+
|
2091
|
+
@classmethod
|
2092
|
+
def from_openapi_data_oapg(cls, arg: typing.Union[int, float], _configuration: typing.Optional[Configuration] = None):
|
2093
|
+
return super().from_openapi_data_oapg(arg, _configuration=_configuration)
|
2094
|
+
|
2095
|
+
def __new__(cls, _arg: typing.Union[decimal.Decimal, int, float], **kwargs: Configuration):
|
2096
|
+
return super().__new__(cls, _arg, **kwargs)
|
2097
|
+
|
2098
|
+
|
2099
|
+
class IntBase:
|
2100
|
+
@property
|
2101
|
+
def as_int_oapg(self) -> int:
|
2102
|
+
try:
|
2103
|
+
return self._as_int
|
2104
|
+
except AttributeError:
|
2105
|
+
self._as_int = int(self)
|
2106
|
+
return self._as_int
|
2107
|
+
|
2108
|
+
@classmethod
|
2109
|
+
def __validate_format(cls, arg: typing.Optional[decimal.Decimal], validation_metadata: ValidationMetadata):
|
2110
|
+
if isinstance(arg, decimal.Decimal):
|
2111
|
+
|
2112
|
+
denominator = arg.as_integer_ratio()[-1]
|
2113
|
+
if denominator != 1:
|
2114
|
+
raise ApiValueError(
|
2115
|
+
"Invalid value '{}' for type integer at {}".format(arg, validation_metadata.path_to_item)
|
2116
|
+
)
|
2117
|
+
|
2118
|
+
@classmethod
|
2119
|
+
def _validate_oapg(
|
2120
|
+
cls,
|
2121
|
+
arg,
|
2122
|
+
validation_metadata: ValidationMetadata,
|
2123
|
+
):
|
2124
|
+
"""
|
2125
|
+
IntBase _validate_oapg
|
2126
|
+
TODO what about types = (int, number) -> IntBase, NumberBase? We could drop int and keep number only
|
2127
|
+
"""
|
2128
|
+
cls.__validate_format(arg, validation_metadata=validation_metadata)
|
2129
|
+
return super()._validate_oapg(arg, validation_metadata=validation_metadata)
|
2130
|
+
|
2131
|
+
|
2132
|
+
class IntSchema(IntBase, NumberSchema):
|
2133
|
+
|
2134
|
+
@classmethod
|
2135
|
+
def from_openapi_data_oapg(cls, arg: int, _configuration: typing.Optional[Configuration] = None):
|
2136
|
+
return super().from_openapi_data_oapg(arg, _configuration=_configuration)
|
2137
|
+
|
2138
|
+
def __new__(cls, _arg: typing.Union[decimal.Decimal, int], **kwargs: Configuration):
|
2139
|
+
return super().__new__(cls, _arg, **kwargs)
|
2140
|
+
|
2141
|
+
|
2142
|
+
class Int32Base:
|
2143
|
+
__inclusive_minimum = decimal.Decimal(-2147483648)
|
2144
|
+
__inclusive_maximum = decimal.Decimal(2147483647)
|
2145
|
+
|
2146
|
+
@classmethod
|
2147
|
+
def __validate_format(cls, arg: typing.Optional[decimal.Decimal], validation_metadata: ValidationMetadata):
|
2148
|
+
if isinstance(arg, decimal.Decimal) and arg.as_tuple().exponent == 0:
|
2149
|
+
if not cls.__inclusive_minimum <= arg <= cls.__inclusive_maximum:
|
2150
|
+
raise ApiValueError(
|
2151
|
+
"Invalid value '{}' for type int32 at {}".format(arg, validation_metadata.path_to_item)
|
2152
|
+
)
|
2153
|
+
|
2154
|
+
@classmethod
|
2155
|
+
def _validate_oapg(
|
2156
|
+
cls,
|
2157
|
+
arg,
|
2158
|
+
validation_metadata: ValidationMetadata,
|
2159
|
+
):
|
2160
|
+
"""
|
2161
|
+
Int32Base _validate_oapg
|
2162
|
+
"""
|
2163
|
+
cls.__validate_format(arg, validation_metadata=validation_metadata)
|
2164
|
+
return super()._validate_oapg(arg, validation_metadata=validation_metadata)
|
2165
|
+
|
2166
|
+
|
2167
|
+
class Int32Schema(
|
2168
|
+
Int32Base,
|
2169
|
+
IntSchema
|
2170
|
+
):
|
2171
|
+
pass
|
2172
|
+
|
2173
|
+
|
2174
|
+
class Int64Base:
|
2175
|
+
__inclusive_minimum = decimal.Decimal(-9223372036854775808)
|
2176
|
+
__inclusive_maximum = decimal.Decimal(9223372036854775807)
|
2177
|
+
|
2178
|
+
@classmethod
|
2179
|
+
def __validate_format(cls, arg: typing.Optional[decimal.Decimal], validation_metadata: ValidationMetadata):
|
2180
|
+
if isinstance(arg, decimal.Decimal) and arg.as_tuple().exponent == 0:
|
2181
|
+
if not cls.__inclusive_minimum <= arg <= cls.__inclusive_maximum:
|
2182
|
+
raise ApiValueError(
|
2183
|
+
"Invalid value '{}' for type int64 at {}".format(arg, validation_metadata.path_to_item)
|
2184
|
+
)
|
2185
|
+
|
2186
|
+
@classmethod
|
2187
|
+
def _validate_oapg(
|
2188
|
+
cls,
|
2189
|
+
arg,
|
2190
|
+
validation_metadata: ValidationMetadata,
|
2191
|
+
):
|
2192
|
+
"""
|
2193
|
+
Int64Base _validate_oapg
|
2194
|
+
"""
|
2195
|
+
cls.__validate_format(arg, validation_metadata=validation_metadata)
|
2196
|
+
return super()._validate_oapg(arg, validation_metadata=validation_metadata)
|
2197
|
+
|
2198
|
+
|
2199
|
+
class Int64Schema(
|
2200
|
+
Int64Base,
|
2201
|
+
IntSchema
|
2202
|
+
):
|
2203
|
+
pass
|
2204
|
+
|
2205
|
+
|
2206
|
+
class Float32Base:
|
2207
|
+
__inclusive_minimum = decimal.Decimal(-3.4028234663852886e+38)
|
2208
|
+
__inclusive_maximum = decimal.Decimal(3.4028234663852886e+38)
|
2209
|
+
|
2210
|
+
@classmethod
|
2211
|
+
def __validate_format(cls, arg: typing.Optional[decimal.Decimal], validation_metadata: ValidationMetadata):
|
2212
|
+
if isinstance(arg, decimal.Decimal):
|
2213
|
+
if not cls.__inclusive_minimum <= arg <= cls.__inclusive_maximum:
|
2214
|
+
raise ApiValueError(
|
2215
|
+
"Invalid value '{}' for type float at {}".format(arg, validation_metadata.path_to_item)
|
2216
|
+
)
|
2217
|
+
|
2218
|
+
@classmethod
|
2219
|
+
def _validate_oapg(
|
2220
|
+
cls,
|
2221
|
+
arg,
|
2222
|
+
validation_metadata: ValidationMetadata,
|
2223
|
+
):
|
2224
|
+
"""
|
2225
|
+
Float32Base _validate_oapg
|
2226
|
+
"""
|
2227
|
+
cls.__validate_format(arg, validation_metadata=validation_metadata)
|
2228
|
+
return super()._validate_oapg(arg, validation_metadata=validation_metadata)
|
2229
|
+
|
2230
|
+
|
2231
|
+
class Float32Schema(
|
2232
|
+
Float32Base,
|
2233
|
+
NumberSchema
|
2234
|
+
):
|
2235
|
+
|
2236
|
+
@classmethod
|
2237
|
+
def from_openapi_data_oapg(cls, arg: float, _configuration: typing.Optional[Configuration] = None):
|
2238
|
+
return super().from_openapi_data_oapg(arg, _configuration=_configuration)
|
2239
|
+
|
2240
|
+
|
2241
|
+
class Float64Base:
|
2242
|
+
__inclusive_minimum = decimal.Decimal(-1.7976931348623157E+308)
|
2243
|
+
__inclusive_maximum = decimal.Decimal(1.7976931348623157E+308)
|
2244
|
+
|
2245
|
+
@classmethod
|
2246
|
+
def __validate_format(cls, arg: typing.Optional[decimal.Decimal], validation_metadata: ValidationMetadata):
|
2247
|
+
if isinstance(arg, decimal.Decimal):
|
2248
|
+
if not cls.__inclusive_minimum <= arg <= cls.__inclusive_maximum:
|
2249
|
+
raise ApiValueError(
|
2250
|
+
"Invalid value '{}' for type double at {}".format(arg, validation_metadata.path_to_item)
|
2251
|
+
)
|
2252
|
+
|
2253
|
+
@classmethod
|
2254
|
+
def _validate_oapg(
|
2255
|
+
cls,
|
2256
|
+
arg,
|
2257
|
+
validation_metadata: ValidationMetadata,
|
2258
|
+
):
|
2259
|
+
"""
|
2260
|
+
Float64Base _validate_oapg
|
2261
|
+
"""
|
2262
|
+
cls.__validate_format(arg, validation_metadata=validation_metadata)
|
2263
|
+
return super()._validate_oapg(arg, validation_metadata=validation_metadata)
|
2264
|
+
|
2265
|
+
class Float64Schema(
|
2266
|
+
Float64Base,
|
2267
|
+
NumberSchema
|
2268
|
+
):
|
2269
|
+
|
2270
|
+
@classmethod
|
2271
|
+
def from_openapi_data_oapg(cls, arg: float, _configuration: typing.Optional[Configuration] = None):
|
2272
|
+
# todo check format
|
2273
|
+
return super().from_openapi_data_oapg(arg, _configuration=_configuration)
|
2274
|
+
|
2275
|
+
|
2276
|
+
class StrSchema(
|
2277
|
+
StrBase,
|
2278
|
+
Schema,
|
2279
|
+
StrMixin
|
2280
|
+
):
|
2281
|
+
"""
|
2282
|
+
date + datetime string types must inherit from this class
|
2283
|
+
That is because one can validate a str payload as both:
|
2284
|
+
- type: string (format unset)
|
2285
|
+
- type: string, format: date
|
2286
|
+
"""
|
2287
|
+
|
2288
|
+
@classmethod
|
2289
|
+
def from_openapi_data_oapg(cls, arg: str, _configuration: typing.Optional[Configuration] = None) -> 'StrSchema':
|
2290
|
+
return super().from_openapi_data_oapg(arg, _configuration=_configuration)
|
2291
|
+
|
2292
|
+
def __new__(cls, _arg: typing.Union[str, date, datetime, uuid.UUID], **kwargs: Configuration):
|
2293
|
+
return super().__new__(cls, _arg, **kwargs)
|
2294
|
+
|
2295
|
+
|
2296
|
+
class UUIDSchema(UUIDBase, StrSchema):
|
2297
|
+
|
2298
|
+
def __new__(cls, _arg: typing.Union[str, uuid.UUID], **kwargs: Configuration):
|
2299
|
+
return super().__new__(cls, _arg, **kwargs)
|
2300
|
+
|
2301
|
+
|
2302
|
+
class DateSchema(DateBase, StrSchema):
|
2303
|
+
|
2304
|
+
def __new__(cls, _arg: typing.Union[str, date], **kwargs: Configuration):
|
2305
|
+
return super().__new__(cls, _arg, **kwargs)
|
2306
|
+
|
2307
|
+
|
2308
|
+
class DateTimeSchema(DateTimeBase, StrSchema):
|
2309
|
+
|
2310
|
+
def __new__(cls, _arg: typing.Union[str, datetime], **kwargs: Configuration):
|
2311
|
+
return super().__new__(cls, _arg, **kwargs)
|
2312
|
+
|
2313
|
+
|
2314
|
+
class DecimalSchema(DecimalBase, StrSchema):
|
2315
|
+
|
2316
|
+
def __new__(cls, _arg: str, **kwargs: Configuration):
|
2317
|
+
"""
|
2318
|
+
Note: Decimals may not be passed in because cast_to_allowed_types is only invoked once for payloads
|
2319
|
+
which can be simple (str) or complex (dicts or lists with nested values)
|
2320
|
+
Because casting is only done once and recursively casts all values prior to validation then for a potential
|
2321
|
+
client side Decimal input if Decimal was accepted as an input in DecimalSchema then one would not know
|
2322
|
+
if one was using it for a StrSchema (where it should be cast to str) or one is using it for NumberSchema
|
2323
|
+
where it should stay as Decimal.
|
2324
|
+
"""
|
2325
|
+
return super().__new__(cls, _arg, **kwargs)
|
2326
|
+
|
2327
|
+
|
2328
|
+
class BytesSchema(
|
2329
|
+
Schema,
|
2330
|
+
BytesMixin
|
2331
|
+
):
|
2332
|
+
"""
|
2333
|
+
this class will subclass bytes and is immutable
|
2334
|
+
"""
|
2335
|
+
def __new__(cls, _arg: bytes, **kwargs: Configuration):
|
2336
|
+
return super(Schema, cls).__new__(cls, _arg)
|
2337
|
+
|
2338
|
+
|
2339
|
+
class FileSchema(
|
2340
|
+
Schema,
|
2341
|
+
FileMixin
|
2342
|
+
):
|
2343
|
+
"""
|
2344
|
+
This class is NOT immutable
|
2345
|
+
Dynamic classes are built using it for example when AnyType allows in binary data
|
2346
|
+
Al other schema classes ARE immutable
|
2347
|
+
If one wanted to make this immutable one could make this a DictSchema with required properties:
|
2348
|
+
- data = BytesSchema (which would be an immutable bytes based schema)
|
2349
|
+
- file_name = StrSchema
|
2350
|
+
and cast_to_allowed_types would convert bytes and file instances into dicts containing data + file_name
|
2351
|
+
The downside would be that data would be stored in memory which one may not want to do for very large files
|
2352
|
+
|
2353
|
+
The developer is responsible for closing this file and deleting it
|
2354
|
+
|
2355
|
+
This class was kept as mutable:
|
2356
|
+
- to allow file reading and writing to disk
|
2357
|
+
- to be able to preserve file name info
|
2358
|
+
"""
|
2359
|
+
|
2360
|
+
def __new__(cls, _arg: typing.Union[io.FileIO, io.BufferedReader], **kwargs: Configuration):
|
2361
|
+
return super(Schema, cls).__new__(cls, _arg)
|
2362
|
+
|
2363
|
+
|
2364
|
+
class BinaryBase:
|
2365
|
+
pass
|
2366
|
+
|
2367
|
+
|
2368
|
+
class BinarySchema(
|
2369
|
+
ComposedBase,
|
2370
|
+
BinaryBase,
|
2371
|
+
Schema,
|
2372
|
+
BinaryMixin
|
2373
|
+
):
|
2374
|
+
class MetaOapg:
|
2375
|
+
@staticmethod
|
2376
|
+
def one_of():
|
2377
|
+
return [
|
2378
|
+
BytesSchema,
|
2379
|
+
FileSchema,
|
2380
|
+
]
|
2381
|
+
|
2382
|
+
def __new__(cls, _arg: typing.Union[io.FileIO, io.BufferedReader, bytes], **kwargs: Configuration):
|
2383
|
+
return super().__new__(cls, _arg)
|
2384
|
+
|
2385
|
+
|
2386
|
+
class BoolSchema(
|
2387
|
+
BoolBase,
|
2388
|
+
Schema,
|
2389
|
+
BoolMixin
|
2390
|
+
):
|
2391
|
+
|
2392
|
+
@classmethod
|
2393
|
+
def from_openapi_data_oapg(cls, arg: bool, _configuration: typing.Optional[Configuration] = None):
|
2394
|
+
return super().from_openapi_data_oapg(arg, _configuration=_configuration)
|
2395
|
+
|
2396
|
+
def __new__(cls, _arg: bool, **kwargs: ValidationMetadata):
|
2397
|
+
return super().__new__(cls, _arg, **kwargs)
|
2398
|
+
|
2399
|
+
|
2400
|
+
class AnyTypeSchema(
|
2401
|
+
DictBase,
|
2402
|
+
ListBase,
|
2403
|
+
NumberBase,
|
2404
|
+
StrBase,
|
2405
|
+
BoolBase,
|
2406
|
+
NoneBase,
|
2407
|
+
Schema,
|
2408
|
+
NoneFrozenDictTupleStrDecimalBoolFileBytesMixin
|
2409
|
+
):
|
2410
|
+
# Python representation of a schema defined as true or {}
|
2411
|
+
pass
|
2412
|
+
|
2413
|
+
|
2414
|
+
class UnsetAnyTypeSchema(AnyTypeSchema):
|
2415
|
+
# Used when additionalProperties/items was not explicitly defined and a defining schema is needed
|
2416
|
+
pass
|
2417
|
+
|
2418
|
+
|
2419
|
+
class NotAnyTypeSchema(
|
2420
|
+
ComposedSchema,
|
2421
|
+
):
|
2422
|
+
"""
|
2423
|
+
Python representation of a schema defined as false or {'not': {}}
|
2424
|
+
Does not allow inputs in of AnyType
|
2425
|
+
Note: validations on this class are never run because the code knows that no inputs will ever validate
|
2426
|
+
"""
|
2427
|
+
|
2428
|
+
class MetaOapg:
|
2429
|
+
not_schema = AnyTypeSchema
|
2430
|
+
|
2431
|
+
def __new__(
|
2432
|
+
cls,
|
2433
|
+
*_args,
|
2434
|
+
_configuration: typing.Optional[Configuration] = None,
|
2435
|
+
) -> 'NotAnyTypeSchema':
|
2436
|
+
return super().__new__(
|
2437
|
+
cls,
|
2438
|
+
*_args,
|
2439
|
+
_configuration=_configuration,
|
2440
|
+
)
|
2441
|
+
|
2442
|
+
|
2443
|
+
class DictSchema(
|
2444
|
+
DictBase,
|
2445
|
+
Schema,
|
2446
|
+
FrozenDictMixin
|
2447
|
+
):
|
2448
|
+
@classmethod
|
2449
|
+
def from_openapi_data_oapg(cls, arg: typing.Dict[str, typing.Any], _configuration: typing.Optional[Configuration] = None):
|
2450
|
+
return super().from_openapi_data_oapg(arg, _configuration=_configuration)
|
2451
|
+
|
2452
|
+
def __new__(cls, *_args: typing.Union[dict, frozendict.frozendict], **kwargs: typing.Union[dict, frozendict.frozendict, list, tuple, decimal.Decimal, float, int, str, date, datetime, bool, None, bytes, Schema, Unset, ValidationMetadata]):
|
2453
|
+
return super().__new__(cls, *_args, **kwargs)
|
2454
|
+
|
2455
|
+
|
2456
|
+
schema_type_classes = {NoneSchema, DictSchema, ListSchema, NumberSchema, StrSchema, BoolSchema, AnyTypeSchema}
|
2457
|
+
|
2458
|
+
|
2459
|
+
@functools.lru_cache()
|
2460
|
+
def get_new_class(
|
2461
|
+
class_name: str,
|
2462
|
+
bases: typing.Tuple[typing.Type[typing.Union[Schema, typing.Any]], ...]
|
2463
|
+
) -> typing.Type[Schema]:
|
2464
|
+
"""
|
2465
|
+
Returns a new class that is made with the subclass bases
|
2466
|
+
"""
|
2467
|
+
new_cls: typing.Type[Schema] = type(class_name, bases, {})
|
2468
|
+
return new_cls
|
2469
|
+
|
2470
|
+
|
2471
|
+
LOG_CACHE_USAGE = False
|
2472
|
+
|
2473
|
+
|
2474
|
+
def log_cache_usage(cache_fn):
|
2475
|
+
if LOG_CACHE_USAGE:
|
2476
|
+
print(cache_fn.__name__, cache_fn.cache_info())
|