extremecloudiq-api 24.5.0.51__py3-none-any.whl → 25.1.0.147__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2614) hide show
  1. extremecloudiq/__init__.py +7 -727
  2. extremecloudiq/api_client.py +1319 -486
  3. extremecloudiq/apis/__init__.py +3 -0
  4. extremecloudiq/apis/path_to_api.py +1001 -0
  5. extremecloudiq/apis/paths/__init__.py +3 -0
  6. extremecloudiq/apis/paths/account_external.py +7 -0
  7. extremecloudiq/apis/paths/account_home.py +7 -0
  8. extremecloudiq/apis/paths/account_switch.py +7 -0
  9. extremecloudiq/apis/paths/account_viq.py +7 -0
  10. extremecloudiq/apis/paths/account_viq_backup.py +7 -0
  11. extremecloudiq/apis/paths/account_viq_default_device_password.py +9 -0
  12. extremecloudiq/apis/paths/account_viq_download.py +7 -0
  13. extremecloudiq/apis/paths/account_viq_export.py +7 -0
  14. extremecloudiq/apis/paths/account_viq_export_import_status.py +7 -0
  15. extremecloudiq/apis/paths/account_viq_import.py +7 -0
  16. extremecloudiq/apis/paths/ad_servers.py +7 -0
  17. extremecloudiq/apis/paths/afcserver.py +7 -0
  18. extremecloudiq/apis/paths/afcserver_server_id.py +7 -0
  19. extremecloudiq/apis/paths/afcserver_statistics_server_id.py +7 -0
  20. extremecloudiq/apis/paths/alert_policies.py +9 -0
  21. extremecloudiq/apis/paths/alert_policies_available_sites.py +7 -0
  22. extremecloudiq/apis/paths/alert_policies_id.py +11 -0
  23. extremecloudiq/apis/paths/alert_policies_policy_id_rules_rule_id.py +9 -0
  24. extremecloudiq/apis/paths/alert_policies_policy_id_rules_rule_id_disable.py +7 -0
  25. extremecloudiq/apis/paths/alert_policies_policy_id_rules_rule_id_enable.py +7 -0
  26. extremecloudiq/apis/paths/alert_subscriptions_emails.py +9 -0
  27. extremecloudiq/apis/paths/alert_subscriptions_emails_delete.py +7 -0
  28. extremecloudiq/apis/paths/alert_subscriptions_emails_id.py +11 -0
  29. extremecloudiq/apis/paths/alert_subscriptions_emails_id_verify.py +7 -0
  30. extremecloudiq/apis/paths/alert_subscriptions_webhooks.py +9 -0
  31. extremecloudiq/apis/paths/alert_subscriptions_webhooks_delete.py +7 -0
  32. extremecloudiq/apis/paths/alert_subscriptions_webhooks_id.py +11 -0
  33. extremecloudiq/apis/paths/alerts.py +7 -0
  34. extremecloudiq/apis/paths/alerts_acknowledge.py +7 -0
  35. extremecloudiq/apis/paths/alerts_count_by_group.py +7 -0
  36. extremecloudiq/apis/paths/alerts_reports.py +7 -0
  37. extremecloudiq/apis/paths/alerts_reports_id.py +7 -0
  38. extremecloudiq/apis/paths/ap_afc_diagnostics_id.py +7 -0
  39. extremecloudiq/apis/paths/ap_afc_interface_details_sn.py +7 -0
  40. extremecloudiq/apis/paths/ap_spectrum_.py +7 -0
  41. extremecloudiq/apis/paths/applications.py +7 -0
  42. extremecloudiq/apis/paths/applications_id_clients_topn.py +7 -0
  43. extremecloudiq/apis/paths/applications_topn.py +7 -0
  44. extremecloudiq/apis/paths/aps_afc_query_.py +7 -0
  45. extremecloudiq/apis/paths/aps_afc_update.py +7 -0
  46. extremecloudiq/apis/paths/auth_apitoken.py +7 -0
  47. extremecloudiq/apis/paths/auth_apitoken_info.py +7 -0
  48. extremecloudiq/apis/paths/auth_apitoken_validate.py +7 -0
  49. extremecloudiq/apis/paths/auth_permissions.py +7 -0
  50. extremecloudiq/apis/paths/auth_permissions_check.py +7 -0
  51. extremecloudiq/apis/paths/ccgs.py +9 -0
  52. extremecloudiq/apis/paths/ccgs_id.py +11 -0
  53. extremecloudiq/apis/paths/certificates.py +7 -0
  54. extremecloudiq/apis/paths/classification_rules.py +9 -0
  55. extremecloudiq/apis/paths/classification_rules_id.py +11 -0
  56. extremecloudiq/apis/paths/client_monitor_profiles.py +9 -0
  57. extremecloudiq/apis/paths/client_monitor_profiles_id.py +11 -0
  58. extremecloudiq/apis/paths/clients_active.py +7 -0
  59. extremecloudiq/apis/paths/clients_active_count.py +7 -0
  60. extremecloudiq/apis/paths/clients_alias.py +7 -0
  61. extremecloudiq/apis/paths/clients_by_mac_client_mac.py +9 -0
  62. extremecloudiq/apis/paths/clients_id.py +7 -0
  63. extremecloudiq/apis/paths/clients_summary.py +7 -0
  64. extremecloudiq/apis/paths/clients_usage.py +7 -0
  65. extremecloudiq/apis/paths/copilot_anomalies_adverse_traffic_device_stats.py +7 -0
  66. extremecloudiq/apis/paths/copilot_anomalies_adverse_traffic_packet_counts.py +7 -0
  67. extremecloudiq/apis/paths/copilot_anomalies_anomalies_by_category.py +7 -0
  68. extremecloudiq/apis/paths/copilot_anomalies_devices_by_location.py +7 -0
  69. extremecloudiq/apis/paths/copilot_anomalies_devices_feedback.py +7 -0
  70. extremecloudiq/apis/paths/copilot_anomalies_devices_update_action.py +7 -0
  71. extremecloudiq/apis/paths/copilot_anomalies_devices_with_locations.py +7 -0
  72. extremecloudiq/apis/paths/copilot_anomalies_dfs_recurrence_channel_stats.py +7 -0
  73. extremecloudiq/apis/paths/copilot_anomalies_dfs_recurrence_count_stats.py +7 -0
  74. extremecloudiq/apis/paths/copilot_anomalies_exclude_vlans.py +7 -0
  75. extremecloudiq/apis/paths/copilot_anomalies_exclude_vlans_csv.py +7 -0
  76. extremecloudiq/apis/paths/copilot_anomalies_excluded_vlans_list.py +7 -0
  77. extremecloudiq/apis/paths/copilot_anomalies_hardware_health_client_list.py +7 -0
  78. extremecloudiq/apis/paths/copilot_anomalies_hardware_health_cpu_mem_stats.py +7 -0
  79. extremecloudiq/apis/paths/copilot_anomalies_hardware_health_stats.py +7 -0
  80. extremecloudiq/apis/paths/copilot_anomalies_locations.py +7 -0
  81. extremecloudiq/apis/paths/copilot_anomalies_missing_vlan_count.py +7 -0
  82. extremecloudiq/apis/paths/copilot_anomalies_notifications.py +7 -0
  83. extremecloudiq/apis/paths/copilot_anomalies_poeflapping_lldp_cdp_info.py +7 -0
  84. extremecloudiq/apis/paths/copilot_anomalies_poeflapping_stats.py +7 -0
  85. extremecloudiq/apis/paths/copilot_anomalies_poeflapping_trends.py +7 -0
  86. extremecloudiq/apis/paths/copilot_anomalies_port_efficiency_speed_duplex_stats.py +7 -0
  87. extremecloudiq/apis/paths/copilot_anomalies_port_efficiency_stats.py +7 -0
  88. extremecloudiq/apis/paths/copilot_anomalies_report.py +7 -0
  89. extremecloudiq/apis/paths/copilot_anomalies_update_action.py +7 -0
  90. extremecloudiq/apis/paths/copilot_anomalies_update_device_action.py +7 -0
  91. extremecloudiq/apis/paths/copilot_anomalies_wifi_capacity_client_list.py +7 -0
  92. extremecloudiq/apis/paths/copilot_anomalies_wifi_capacity_stats.py +7 -0
  93. extremecloudiq/apis/paths/copilot_anomalies_wifi_efficiency_client_list.py +7 -0
  94. extremecloudiq/apis/paths/copilot_anomalies_wifi_efficiency_stats.py +7 -0
  95. extremecloudiq/apis/paths/copilot_assurance_scans_overview.py +7 -0
  96. extremecloudiq/apis/paths/copilot_connectivity_client_type.py +7 -0
  97. extremecloudiq/apis/paths/copilot_connectivity_locations.py +7 -0
  98. extremecloudiq/apis/paths/copilot_connectivity_wired_events.py +7 -0
  99. extremecloudiq/apis/paths/copilot_connectivity_wired_experience.py +7 -0
  100. extremecloudiq/apis/paths/copilot_connectivity_wired_hardware.py +7 -0
  101. extremecloudiq/apis/paths/copilot_connectivity_wired_locations_hardware.py +7 -0
  102. extremecloudiq/apis/paths/copilot_connectivity_wired_quality_index.py +7 -0
  103. extremecloudiq/apis/paths/copilot_connectivity_wireless_apps.py +7 -0
  104. extremecloudiq/apis/paths/copilot_connectivity_wireless_events.py +7 -0
  105. extremecloudiq/apis/paths/copilot_connectivity_wireless_experience.py +7 -0
  106. extremecloudiq/apis/paths/copilot_connectivity_wireless_locations_events.py +7 -0
  107. extremecloudiq/apis/paths/copilot_connectivity_wireless_locations_performance.py +7 -0
  108. extremecloudiq/apis/paths/copilot_connectivity_wireless_locations_quality_index.py +7 -0
  109. extremecloudiq/apis/paths/copilot_connectivity_wireless_locations_time_to_connect.py +7 -0
  110. extremecloudiq/apis/paths/copilot_connectivity_wireless_performance.py +7 -0
  111. extremecloudiq/apis/paths/copilot_connectivity_wireless_quality_index.py +7 -0
  112. extremecloudiq/apis/paths/copilot_connectivity_wireless_time_to_connect.py +7 -0
  113. extremecloudiq/apis/paths/copilot_connectivity_wireless_views.py +7 -0
  114. extremecloudiq/apis/paths/countries.py +7 -0
  115. extremecloudiq/apis/paths/countries_country_alpha2_code_states.py +7 -0
  116. extremecloudiq/apis/paths/countries_country_code_validate.py +7 -0
  117. extremecloudiq/apis/paths/cwps.py +7 -0
  118. extremecloudiq/apis/paths/deployments.py +9 -0
  119. extremecloudiq/apis/paths/deployments_deployment_id.py +11 -0
  120. extremecloudiq/apis/paths/deployments_deployment_id_status.py +7 -0
  121. extremecloudiq/apis/paths/deployments_firmware_metadatas.py +7 -0
  122. extremecloudiq/apis/paths/deployments_overview.py +7 -0
  123. extremecloudiq/apis/paths/deployments_status.py +7 -0
  124. extremecloudiq/apis/paths/devices.py +7 -0
  125. extremecloudiq/apis/paths/devices_advanced_onboard.py +7 -0
  126. extremecloudiq/apis/paths/devices_check_ownership.py +7 -0
  127. extremecloudiq/apis/paths/devices_cli.py +7 -0
  128. extremecloudiq/apis/paths/devices_client_monitor_assign.py +7 -0
  129. extremecloudiq/apis/paths/devices_client_monitor_query.py +7 -0
  130. extremecloudiq/apis/paths/devices_client_monitor_revoke.py +7 -0
  131. extremecloudiq/apis/paths/devices_country_code_assign.py +7 -0
  132. extremecloudiq/apis/paths/devices_delete.py +7 -0
  133. extremecloudiq/apis/paths/devices_digital_twin.py +7 -0
  134. extremecloudiq/apis/paths/devices_ibeacon.py +7 -0
  135. extremecloudiq/apis/paths/devices_id.py +9 -0
  136. extremecloudiq/apis/paths/devices_id_alarms.py +7 -0
  137. extremecloudiq/apis/paths/devices_id_bounce_port.py +7 -0
  138. extremecloudiq/apis/paths/devices_id_cli.py +7 -0
  139. extremecloudiq/apis/paths/devices_id_client_monitor.py +11 -0
  140. extremecloudiq/apis/paths/devices_id_description.py +7 -0
  141. extremecloudiq/apis/paths/devices_id_ftm_settings.py +11 -0
  142. extremecloudiq/apis/paths/devices_id_gallery_image.py +7 -0
  143. extremecloudiq/apis/paths/devices_id_geolocation.py +7 -0
  144. extremecloudiq/apis/paths/devices_id_history_cpu_mem.py +7 -0
  145. extremecloudiq/apis/paths/devices_id_hostname.py +7 -0
  146. extremecloudiq/apis/paths/devices_id_ibeacon.py +7 -0
  147. extremecloudiq/apis/paths/devices_id_installation_report.py +7 -0
  148. extremecloudiq/apis/paths/devices_id_interfaces_wifi.py +7 -0
  149. extremecloudiq/apis/paths/devices_id_iot.py +7 -0
  150. extremecloudiq/apis/paths/devices_id_iot_disable.py +7 -0
  151. extremecloudiq/apis/paths/devices_id_iot_enable.py +7 -0
  152. extremecloudiq/apis/paths/devices_id_location.py +11 -0
  153. extremecloudiq/apis/paths/devices_id_manage.py +7 -0
  154. extremecloudiq/apis/paths/devices_id_monitor_refresh.py +7 -0
  155. extremecloudiq/apis/paths/devices_id_monitor_refresh_status.py +7 -0
  156. extremecloudiq/apis/paths/devices_id_network_policy.py +11 -0
  157. extremecloudiq/apis/paths/devices_id_radio_operating_mode.py +9 -0
  158. extremecloudiq/apis/paths/devices_id_reboot.py +7 -0
  159. extremecloudiq/apis/paths/devices_id_reset.py +7 -0
  160. extremecloudiq/apis/paths/devices_id_ssid_override.py +7 -0
  161. extremecloudiq/apis/paths/devices_id_ssid_status.py +7 -0
  162. extremecloudiq/apis/paths/devices_id_ssid_status_change.py +7 -0
  163. extremecloudiq/apis/paths/devices_id_thread_commissioner_start.py +7 -0
  164. extremecloudiq/apis/paths/devices_id_thread_commissioner_stop.py +7 -0
  165. extremecloudiq/apis/paths/devices_id_unmanage.py +7 -0
  166. extremecloudiq/apis/paths/devices_location_assign.py +7 -0
  167. extremecloudiq/apis/paths/devices_location_query.py +7 -0
  168. extremecloudiq/apis/paths/devices_location_revoke.py +7 -0
  169. extremecloudiq/apis/paths/devices_manage.py +7 -0
  170. extremecloudiq/apis/paths/devices_network_policy_assign.py +7 -0
  171. extremecloudiq/apis/paths/devices_network_policy_policy_id.py +7 -0
  172. extremecloudiq/apis/paths/devices_network_policy_query.py +7 -0
  173. extremecloudiq/apis/paths/devices_network_policy_revoke.py +7 -0
  174. extremecloudiq/apis/paths/devices_onboard.py +7 -0
  175. extremecloudiq/apis/paths/devices_os_change.py +7 -0
  176. extremecloudiq/apis/paths/devices_radio_information.py +7 -0
  177. extremecloudiq/apis/paths/devices_radius_proxy_assign.py +7 -0
  178. extremecloudiq/apis/paths/devices_radius_proxy_revoke.py +7 -0
  179. extremecloudiq/apis/paths/devices_reboot.py +7 -0
  180. extremecloudiq/apis/paths/devices_stats.py +7 -0
  181. extremecloudiq/apis/paths/devices_unmanage.py +7 -0
  182. extremecloudiq/apis/paths/email_templates.py +7 -0
  183. extremecloudiq/apis/paths/endusers.py +9 -0
  184. extremecloudiq/apis/paths/endusers_id.py +9 -0
  185. extremecloudiq/apis/paths/endusers_id_regenerate_password.py +7 -0
  186. extremecloudiq/apis/paths/essentials_eloc_clients_client_mac_last_known_location.py +7 -0
  187. extremecloudiq/apis/paths/hiq_context.py +9 -0
  188. extremecloudiq/apis/paths/hiq_context_creating.py +9 -0
  189. extremecloudiq/apis/paths/hiq_context_reading.py +9 -0
  190. extremecloudiq/apis/paths/hiq_organizations.py +9 -0
  191. extremecloudiq/apis/paths/hiq_organizations_id.py +7 -0
  192. extremecloudiq/apis/paths/hiq_organizations_id_rename.py +7 -0
  193. extremecloudiq/apis/paths/hiq_status.py +7 -0
  194. extremecloudiq/apis/paths/hotspot_profiles.py +9 -0
  195. extremecloudiq/apis/paths/hotspot_profiles_id.py +11 -0
  196. extremecloudiq/apis/paths/hotspot_service_provider_profiles.py +9 -0
  197. extremecloudiq/apis/paths/hotspot_service_provider_profiles_id.py +11 -0
  198. extremecloudiq/apis/paths/iot_profiles.py +9 -0
  199. extremecloudiq/apis/paths/iot_profiles_id.py +11 -0
  200. extremecloudiq/apis/paths/ip_firewall_policies.py +9 -0
  201. extremecloudiq/apis/paths/ip_firewall_policies_id.py +11 -0
  202. extremecloudiq/apis/paths/ip_firewall_policies_id_ip_firewall_rule_attach.py +7 -0
  203. extremecloudiq/apis/paths/ip_firewall_policies_id_ip_firewall_rule_detach.py +7 -0
  204. extremecloudiq/apis/paths/l3_address_profiles.py +9 -0
  205. extremecloudiq/apis/paths/l3_address_profiles_id.py +11 -0
  206. extremecloudiq/apis/paths/ldap_servers.py +9 -0
  207. extremecloudiq/apis/paths/ldap_servers_id.py +11 -0
  208. extremecloudiq/apis/paths/locations.py +7 -0
  209. extremecloudiq/apis/paths/locations_building.py +9 -0
  210. extremecloudiq/apis/paths/locations_building_id.py +11 -0
  211. extremecloudiq/apis/paths/locations_floor.py +9 -0
  212. extremecloudiq/apis/paths/locations_floor_id.py +11 -0
  213. extremecloudiq/apis/paths/locations_floorplan.py +7 -0
  214. extremecloudiq/apis/paths/locations_id.py +9 -0
  215. extremecloudiq/apis/paths/locations_import_ekahau.py +7 -0
  216. extremecloudiq/apis/paths/locations_init.py +7 -0
  217. extremecloudiq/apis/paths/locations_site.py +9 -0
  218. extremecloudiq/apis/paths/locations_site_id.py +11 -0
  219. extremecloudiq/apis/paths/locations_tree.py +7 -0
  220. extremecloudiq/apis/paths/locations_tree_devices.py +7 -0
  221. extremecloudiq/apis/paths/locations_tree_maps.py +7 -0
  222. extremecloudiq/apis/paths/login.py +7 -0
  223. extremecloudiq/apis/paths/logout.py +7 -0
  224. extremecloudiq/apis/paths/logs_accounting.py +7 -0
  225. extremecloudiq/apis/paths/logs_audit.py +7 -0
  226. extremecloudiq/apis/paths/logs_audit_full_descriptions_id.py +7 -0
  227. extremecloudiq/apis/paths/logs_audit_reports.py +7 -0
  228. extremecloudiq/apis/paths/logs_audit_reports_id.py +7 -0
  229. extremecloudiq/apis/paths/logs_auth.py +7 -0
  230. extremecloudiq/apis/paths/logs_credential.py +7 -0
  231. extremecloudiq/apis/paths/logs_email.py +7 -0
  232. extremecloudiq/apis/paths/logs_sms.py +7 -0
  233. extremecloudiq/apis/paths/mac_firewall_policies.py +9 -0
  234. extremecloudiq/apis/paths/mac_firewall_policies_id.py +11 -0
  235. extremecloudiq/apis/paths/mac_firewall_policies_id_mac_firewall_rule_attach.py +7 -0
  236. extremecloudiq/apis/paths/mac_firewall_policies_id_mac_firewall_rule_detach.py +7 -0
  237. extremecloudiq/apis/paths/mac_object_profiles.py +9 -0
  238. extremecloudiq/apis/paths/mac_object_profiles_id.py +11 -0
  239. extremecloudiq/apis/paths/network_policies.py +9 -0
  240. extremecloudiq/apis/paths/network_policies_id.py +11 -0
  241. extremecloudiq/apis/paths/network_policies_id_ssids.py +7 -0
  242. extremecloudiq/apis/paths/network_policies_id_ssids_add.py +7 -0
  243. extremecloudiq/apis/paths/network_policies_id_ssids_remove.py +7 -0
  244. extremecloudiq/apis/paths/network_scorecard_client_health_location_id.py +7 -0
  245. extremecloudiq/apis/paths/network_scorecard_device_health_location_id.py +7 -0
  246. extremecloudiq/apis/paths/network_scorecard_network_health_location_id.py +7 -0
  247. extremecloudiq/apis/paths/network_scorecard_services_health_location_id.py +7 -0
  248. extremecloudiq/apis/paths/network_scorecard_wifi_health_location_id.py +7 -0
  249. extremecloudiq/apis/paths/network_services.py +9 -0
  250. extremecloudiq/apis/paths/network_services_id.py +7 -0
  251. extremecloudiq/apis/paths/nos_device_device_id_nos_api.py +7 -0
  252. extremecloudiq/apis/paths/operations_operation_id.py +9 -0
  253. extremecloudiq/apis/paths/operations_operation_id_cancel.py +7 -0
  254. extremecloudiq/apis/paths/packetcaptures.py +9 -0
  255. extremecloudiq/apis/paths/packetcaptures_files.py +7 -0
  256. extremecloudiq/apis/paths/packetcaptures_id.py +9 -0
  257. extremecloudiq/apis/paths/packetcaptures_id_stop.py +7 -0
  258. extremecloudiq/apis/paths/packetcaptures_id_upload.py +7 -0
  259. extremecloudiq/apis/paths/pcgs_key_based.py +9 -0
  260. extremecloudiq/apis/paths/pcgs_key_based_network_policy_policy_id.py +7 -0
  261. extremecloudiq/apis/paths/pcgs_key_based_network_policy_policy_id_keys_email.py +7 -0
  262. extremecloudiq/apis/paths/pcgs_key_based_network_policy_policy_id_keys_generate.py +7 -0
  263. extremecloudiq/apis/paths/pcgs_key_based_network_policy_policy_id_onboard.py +7 -0
  264. extremecloudiq/apis/paths/pcgs_key_based_network_policy_policy_id_port_assignments.py +9 -0
  265. extremecloudiq/apis/paths/pcgs_key_based_network_policy_policy_id_users.py +13 -0
  266. extremecloudiq/apis/paths/radio_operating_modes_product_type.py +7 -0
  267. extremecloudiq/apis/paths/radio_profiles.py +9 -0
  268. extremecloudiq/apis/paths/radio_profiles_channel_selection_id.py +9 -0
  269. extremecloudiq/apis/paths/radio_profiles_id.py +11 -0
  270. extremecloudiq/apis/paths/radio_profiles_mac_ouis.py +9 -0
  271. extremecloudiq/apis/paths/radio_profiles_mac_ouis_id.py +11 -0
  272. extremecloudiq/apis/paths/radio_profiles_miscellaneous_id.py +9 -0
  273. extremecloudiq/apis/paths/radio_profiles_neighborhood_analysis_id.py +9 -0
  274. extremecloudiq/apis/paths/radio_profiles_radio_usage_opt_id.py +9 -0
  275. extremecloudiq/apis/paths/radio_profiles_sensor_scan_id.py +9 -0
  276. extremecloudiq/apis/paths/radio_profiles_wmm_qos_id.py +9 -0
  277. extremecloudiq/apis/paths/radius_client_objects.py +9 -0
  278. extremecloudiq/apis/paths/radius_client_objects_id.py +11 -0
  279. extremecloudiq/apis/paths/radius_proxies.py +9 -0
  280. extremecloudiq/apis/paths/radius_proxies_devices.py +7 -0
  281. extremecloudiq/apis/paths/radius_proxies_id.py +11 -0
  282. extremecloudiq/apis/paths/radius_servers_external.py +9 -0
  283. extremecloudiq/apis/paths/radius_servers_external_id.py +11 -0
  284. extremecloudiq/apis/paths/radius_servers_internal.py +11 -0
  285. extremecloudiq/apis/paths/radius_servers_internal_devices.py +7 -0
  286. extremecloudiq/apis/paths/radius_servers_internal_id.py +11 -0
  287. extremecloudiq/apis/paths/rtts.py +7 -0
  288. extremecloudiq/apis/paths/rtts_id.py +7 -0
  289. extremecloudiq/apis/paths/site_afc_schedule.py +11 -0
  290. extremecloudiq/apis/paths/site_spectrum_.py +7 -0
  291. extremecloudiq/apis/paths/sms_templates.py +7 -0
  292. extremecloudiq/apis/paths/ssids.py +7 -0
  293. extremecloudiq/apis/paths/ssids_advanced_settings_id.py +9 -0
  294. extremecloudiq/apis/paths/ssids_id_client_monitor_profile_attach.py +7 -0
  295. extremecloudiq/apis/paths/ssids_id_cwp_attach.py +7 -0
  296. extremecloudiq/apis/paths/ssids_id_cwp_disable.py +7 -0
  297. extremecloudiq/apis/paths/ssids_id_cwp_enable.py +7 -0
  298. extremecloudiq/apis/paths/ssids_id_mode_dot1x.py +7 -0
  299. extremecloudiq/apis/paths/ssids_id_mode_open.py +7 -0
  300. extremecloudiq/apis/paths/ssids_id_mode_ppsk.py +7 -0
  301. extremecloudiq/apis/paths/ssids_id_mode_psk.py +7 -0
  302. extremecloudiq/apis/paths/ssids_id_mode_wep.py +7 -0
  303. extremecloudiq/apis/paths/ssids_id_psk_password.py +7 -0
  304. extremecloudiq/apis/paths/ssids_id_radius_client_profile_attach.py +7 -0
  305. extremecloudiq/apis/paths/ssids_id_radius_server_group_attach.py +7 -0
  306. extremecloudiq/apis/paths/ssids_id_rename.py +7 -0
  307. extremecloudiq/apis/paths/ssids_id_user_profile_assignment_attach.py +7 -0
  308. extremecloudiq/apis/paths/ssids_id_user_profile_attach.py +7 -0
  309. extremecloudiq/apis/paths/subscriptions_webhook.py +9 -0
  310. extremecloudiq/apis/paths/subscriptions_webhook_id.py +7 -0
  311. extremecloudiq/apis/paths/thread_networks.py +7 -0
  312. extremecloudiq/apis/paths/thread_routers.py +7 -0
  313. extremecloudiq/apis/paths/thread_topology.py +7 -0
  314. extremecloudiq/apis/paths/tunnel_concentrators.py +9 -0
  315. extremecloudiq/apis/paths/tunnel_concentrators_id.py +11 -0
  316. extremecloudiq/apis/paths/ucp_id_engines_installed.py +7 -0
  317. extremecloudiq/apis/paths/user_profile_assignments.py +9 -0
  318. extremecloudiq/apis/paths/user_profile_assignments_id.py +9 -0
  319. extremecloudiq/apis/paths/user_profiles.py +9 -0
  320. extremecloudiq/apis/paths/user_profiles_id.py +11 -0
  321. extremecloudiq/apis/paths/user_profiles_id_ip_firewall_policies_attach.py +7 -0
  322. extremecloudiq/apis/paths/user_profiles_id_ip_firewall_policies_detach.py +7 -0
  323. extremecloudiq/apis/paths/user_profiles_id_mac_firewall_policies_attach.py +7 -0
  324. extremecloudiq/apis/paths/user_profiles_id_mac_firewall_policies_detach.py +7 -0
  325. extremecloudiq/apis/paths/usergroups.py +9 -0
  326. extremecloudiq/apis/paths/usergroups_id.py +9 -0
  327. extremecloudiq/apis/paths/users.py +9 -0
  328. extremecloudiq/apis/paths/users_external.py +9 -0
  329. extremecloudiq/apis/paths/users_external_id.py +11 -0
  330. extremecloudiq/apis/paths/users_id.py +11 -0
  331. extremecloudiq/apis/paths/users_me.py +7 -0
  332. extremecloudiq/apis/paths/vlan_profiles.py +9 -0
  333. extremecloudiq/apis/paths/vlan_profiles_delete.py +7 -0
  334. extremecloudiq/apis/paths/vlan_profiles_id.py +11 -0
  335. extremecloudiq/apis/tag_to_api.py +110 -0
  336. extremecloudiq/apis/tags/__init__.py +40 -0
  337. extremecloudiq/apis/tags/account_api.py +44 -0
  338. extremecloudiq/apis/tags/afc_endpoint_api.py +46 -0
  339. extremecloudiq/apis/tags/alert_api.py +78 -0
  340. extremecloudiq/apis/tags/application_api.py +28 -0
  341. extremecloudiq/apis/tags/authentication_api.py +26 -0
  342. extremecloudiq/apis/tags/authorization_api.py +32 -0
  343. extremecloudiq/apis/tags/client_api.py +38 -0
  344. extremecloudiq/apis/tags/configuration_authentication_api.py +82 -0
  345. extremecloudiq/apis/tags/configuration_basic_api.py +34 -0
  346. extremecloudiq/apis/tags/configuration_certificate_api.py +24 -0
  347. extremecloudiq/apis/tags/configuration_deployment_api.py +40 -0
  348. extremecloudiq/apis/tags/configuration_network_api.py +38 -0
  349. extremecloudiq/apis/tags/configuration_policy_api.py +238 -0
  350. extremecloudiq/apis/tags/configuration_user_management_api.py +68 -0
  351. extremecloudiq/apis/tags/copilot_anomalies_api.py +84 -0
  352. extremecloudiq/apis/tags/copilot_connectivity_experience_api.py +58 -0
  353. extremecloudiq/apis/tags/device_api.py +158 -0
  354. extremecloudiq/apis/tags/essentials_extreme_location_api.py +24 -0
  355. extremecloudiq/apis/tags/hiq_api.py +44 -0
  356. extremecloudiq/apis/tags/location_api.py +70 -0
  357. extremecloudiq/apis/tags/log_api.py +40 -0
  358. extremecloudiq/apis/tags/misc_api.py +28 -0
  359. extremecloudiq/apis/tags/network_policy_api.py +38 -0
  360. extremecloudiq/apis/tags/network_scorecard_api.py +32 -0
  361. extremecloudiq/apis/tags/nos_api.py +24 -0
  362. extremecloudiq/apis/tags/notification_api.py +28 -0
  363. extremecloudiq/apis/tags/operation_api.py +28 -0
  364. extremecloudiq/apis/tags/packet_capture_api.py +36 -0
  365. extremecloudiq/apis/tags/rtts_endpoint_api.py +26 -0
  366. extremecloudiq/apis/tags/thread_api.py +28 -0
  367. extremecloudiq/apis/tags/universal_compute_platform_api.py +24 -0
  368. extremecloudiq/apis/tags/user_api.py +44 -0
  369. extremecloudiq/configuration.py +98 -47
  370. extremecloudiq/exceptions.py +43 -16
  371. extremecloudiq/model/__init__.py +5 -0
  372. extremecloudiq/model/client_health.py +109 -0
  373. extremecloudiq/model/device_health.py +111 -0
  374. extremecloudiq/model/essentials_eloc_last_known_location.py +101 -0
  375. extremecloudiq/model/network_health.py +109 -0
  376. extremecloudiq/model/paged_xiq_accounting_log.py +157 -0
  377. extremecloudiq/model/paged_xiq_active_directory_server.py +157 -0
  378. extremecloudiq/model/paged_xiq_alert.py +157 -0
  379. extremecloudiq/model/paged_xiq_application.py +157 -0
  380. extremecloudiq/model/paged_xiq_audit_log.py +157 -0
  381. extremecloudiq/model/paged_xiq_auth_log.py +157 -0
  382. extremecloudiq/model/paged_xiq_building.py +157 -0
  383. extremecloudiq/model/paged_xiq_certificate.py +157 -0
  384. extremecloudiq/model/paged_xiq_classification_rule.py +157 -0
  385. extremecloudiq/model/paged_xiq_client.py +157 -0
  386. extremecloudiq/model/paged_xiq_client_monitor_profile.py +157 -0
  387. extremecloudiq/model/paged_xiq_cloud_config_group.py +157 -0
  388. extremecloudiq/model/paged_xiq_connectivity_experience_data.py +157 -0
  389. extremecloudiq/model/paged_xiq_copilot_wireless_event.py +157 -0
  390. extremecloudiq/model/paged_xiq_credential_log.py +157 -0
  391. extremecloudiq/model/paged_xiq_cwp.py +157 -0
  392. extremecloudiq/model/paged_xiq_deployment_details_response.py +157 -0
  393. extremecloudiq/model/paged_xiq_device.py +157 -0
  394. extremecloudiq/model/paged_xiq_device_alarm.py +157 -0
  395. extremecloudiq/model/paged_xiq_digital_twin_products.py +157 -0
  396. extremecloudiq/model/paged_xiq_email_log.py +157 -0
  397. extremecloudiq/model/paged_xiq_end_user.py +157 -0
  398. extremecloudiq/model/paged_xiq_external_radius_server.py +157 -0
  399. extremecloudiq/model/paged_xiq_external_user.py +157 -0
  400. extremecloudiq/model/paged_xiq_floor.py +157 -0
  401. extremecloudiq/model/paged_xiq_hotspot_profile.py +157 -0
  402. extremecloudiq/model/paged_xiq_hotspot_service_provider_profile.py +157 -0
  403. extremecloudiq/model/paged_xiq_internal_radius_device.py +157 -0
  404. extremecloudiq/model/paged_xiq_internal_radius_server.py +157 -0
  405. extremecloudiq/model/paged_xiq_iot_profile.py +157 -0
  406. extremecloudiq/model/paged_xiq_ip_firewall.py +157 -0
  407. extremecloudiq/model/paged_xiq_ldap_server.py +157 -0
  408. extremecloudiq/model/paged_xiq_location_tree_device.py +157 -0
  409. extremecloudiq/model/paged_xiq_location_tree_map.py +157 -0
  410. extremecloudiq/model/paged_xiq_mac_firewall.py +157 -0
  411. extremecloudiq/model/paged_xiq_mac_object.py +157 -0
  412. extremecloudiq/model/paged_xiq_network_policy.py +157 -0
  413. extremecloudiq/model/paged_xiq_network_service.py +157 -0
  414. extremecloudiq/model/paged_xiq_packet_capture.py +157 -0
  415. extremecloudiq/model/paged_xiq_radio_entity.py +157 -0
  416. extremecloudiq/model/paged_xiq_radio_profile.py +157 -0
  417. extremecloudiq/model/paged_xiq_radius_client_object.py +157 -0
  418. extremecloudiq/model/paged_xiq_radius_proxy.py +157 -0
  419. extremecloudiq/model/paged_xiq_rp_mac_oui_profile.py +157 -0
  420. extremecloudiq/model/paged_xiq_site.py +157 -0
  421. extremecloudiq/model/paged_xiq_sms_log.py +157 -0
  422. extremecloudiq/model/paged_xiq_ssid.py +157 -0
  423. extremecloudiq/model/paged_xiq_thread_router.py +157 -0
  424. extremecloudiq/model/paged_xiq_tunnel_concentrator.py +157 -0
  425. extremecloudiq/model/paged_xiq_user.py +157 -0
  426. extremecloudiq/model/paged_xiq_user_group.py +157 -0
  427. extremecloudiq/model/paged_xiq_user_profile.py +157 -0
  428. extremecloudiq/model/paged_xiq_user_profile_assignment.py +157 -0
  429. extremecloudiq/model/paged_xiq_vlan_profile.py +157 -0
  430. extremecloudiq/model/paged_xiq_wired_event_entity.py +157 -0
  431. extremecloudiq/model/rtts_session_devices.py +173 -0
  432. extremecloudiq/model/services_health.py +109 -0
  433. extremecloudiq/model/wifi_health.py +109 -0
  434. extremecloudiq/model/xiq_account.py +237 -0
  435. extremecloudiq/model/xiq_account_mode.py +52 -0
  436. extremecloudiq/model/xiq_account_type.py +62 -0
  437. extremecloudiq/model/xiq_accounting_log.py +406 -0
  438. extremecloudiq/model/xiq_acknowledge_alerts_request.py +108 -0
  439. extremecloudiq/model/xiq_action_type.py +67 -0
  440. extremecloudiq/model/xiq_active_directory_server.py +285 -0
  441. extremecloudiq/model/xiq_active_directory_server_base_dn_fetch_mode.py +52 -0
  442. extremecloudiq/model/xiq_address.py +128 -0
  443. extremecloudiq/model/xiq_address_profile_classified_entry.py +131 -0
  444. extremecloudiq/model/xiq_advanced_onboard_device_request.py +298 -0
  445. extremecloudiq/model/xiq_advanced_onboard_device_response.py +144 -0
  446. extremecloudiq/model/xiq_afc_ap_detail.py +164 -0
  447. extremecloudiq/model/xiq_afc_ap_diagnostics.py +79 -0
  448. extremecloudiq/model/xiq_afc_ap_manual_spectrum.py +101 -0
  449. extremecloudiq/model/xiq_afc_aps_info_element.py +112 -0
  450. extremecloudiq/model/xiq_afc_available_spectrum.py +126 -0
  451. extremecloudiq/model/xiq_afc_geolocation_summary.py +89 -0
  452. extremecloudiq/model/xiq_afc_input_info.py +157 -0
  453. extremecloudiq/model/xiq_afc_server.py +114 -0
  454. extremecloudiq/model/xiq_afc_server_state.py +100 -0
  455. extremecloudiq/model/xiq_afc_server_statistics.py +128 -0
  456. extremecloudiq/model/xiq_afc_servers_statistics.py +106 -0
  457. extremecloudiq/model/xiq_afc_status_summary.py +99 -0
  458. extremecloudiq/model/xiq_affected_downlink_device.py +121 -0
  459. extremecloudiq/model/xiq_alert.py +361 -0
  460. extremecloudiq/model/xiq_alert_email_subscription.py +190 -0
  461. extremecloudiq/model/xiq_alert_event_rules_by_category.py +137 -0
  462. extremecloudiq/model/xiq_alert_group_count.py +108 -0
  463. extremecloudiq/model/xiq_alert_group_query.py +55 -0
  464. extremecloudiq/model/xiq_alert_metric_rules_by_metricset.py +137 -0
  465. extremecloudiq/model/xiq_alert_policy.py +225 -0
  466. extremecloudiq/model/xiq_alert_policy_filter.py +118 -0
  467. extremecloudiq/model/xiq_alert_policy_type.py +50 -0
  468. extremecloudiq/model/xiq_alert_report.py +86 -0
  469. extremecloudiq/model/xiq_alert_rule.py +234 -0
  470. extremecloudiq/model/xiq_alert_rule_overview.py +110 -0
  471. extremecloudiq/model/xiq_alert_site.py +96 -0
  472. extremecloudiq/model/xiq_alert_sort_field.py +52 -0
  473. extremecloudiq/model/xiq_alert_source.py +111 -0
  474. extremecloudiq/model/xiq_alert_tag.py +116 -0
  475. extremecloudiq/model/xiq_alert_webhook_subscription.py +190 -0
  476. extremecloudiq/model/xiq_anomalies_count_vo_entity.py +176 -0
  477. extremecloudiq/model/xiq_anomalies_device_update_action_request.py +120 -0
  478. extremecloudiq/model/xiq_anomalies_feedback_request.py +120 -0
  479. extremecloudiq/model/xiq_anomalies_notifications_response.py +118 -0
  480. extremecloudiq/model/xiq_anomalies_severity_entity.py +111 -0
  481. extremecloudiq/model/xiq_anomalies_site_entity.py +101 -0
  482. extremecloudiq/model/xiq_anomalies_type_entity.py +96 -0
  483. extremecloudiq/model/xiq_anomalies_update_action_request.py +110 -0
  484. extremecloudiq/model/xiq_anomaly_affected_count.py +110 -0
  485. extremecloudiq/model/xiq_anomaly_device_entity.py +226 -0
  486. extremecloudiq/model/xiq_anomaly_device_with_location.py +357 -0
  487. extremecloudiq/model/xiq_anomaly_devices_by_location_response.py +122 -0
  488. extremecloudiq/model/xiq_anomaly_health_type.py +62 -0
  489. extremecloudiq/model/xiq_anomaly_hh_stats_type.py +50 -0
  490. extremecloudiq/model/xiq_anomaly_location_entity.py +226 -0
  491. extremecloudiq/model/xiq_anomaly_severity.py +60 -0
  492. extremecloudiq/model/xiq_anomaly_sort_field.py +75 -0
  493. extremecloudiq/model/xiq_anomaly_type.py +82 -0
  494. extremecloudiq/model/xiq_ap_coordinates.py +99 -0
  495. extremecloudiq/model/xiq_api_token_info.py +198 -0
  496. extremecloudiq/model/xiq_application.py +207 -0
  497. extremecloudiq/model/xiq_application_detection_protocol.py +52 -0
  498. extremecloudiq/model/xiq_application_detection_rule.py +110 -0
  499. extremecloudiq/model/xiq_application_detection_type.py +57 -0
  500. extremecloudiq/model/xiq_application_service.py +116 -0
  501. extremecloudiq/model/xiq_application_sort_field.py +50 -0
  502. extremecloudiq/model/xiq_application_top_clients_usage.py +121 -0
  503. extremecloudiq/model/xiq_assign_devices_client_monitor_request.py +107 -0
  504. extremecloudiq/model/xiq_assign_devices_country_code_request.py +107 -0
  505. extremecloudiq/model/xiq_assign_devices_location_request.py +107 -0
  506. extremecloudiq/model/xiq_assign_devices_network_policy_request.py +103 -0
  507. extremecloudiq/model/xiq_assurance_scans_overview_response.py +118 -0
  508. extremecloudiq/model/xiq_atp_device_stats_entity.py +116 -0
  509. extremecloudiq/model/xiq_atp_device_stats_response.py +118 -0
  510. extremecloudiq/model/xiq_atp_packet_counts_entity.py +146 -0
  511. extremecloudiq/model/xiq_atp_packet_counts_response.py +118 -0
  512. extremecloudiq/model/xiq_attach_client_monitor_profile_request.py +79 -0
  513. extremecloudiq/model/xiq_attach_ip_firewall_policy_to_user_profile_request.py +101 -0
  514. extremecloudiq/model/xiq_attach_mac_firewall_policy_to_user_profile_request.py +101 -0
  515. extremecloudiq/model/xiq_attach_up_assignment_entry.py +91 -0
  516. extremecloudiq/model/xiq_attach_up_assignment_request.py +160 -0
  517. extremecloudiq/model/xiq_attribute_type.py +57 -0
  518. extremecloudiq/model/xiq_audit_log.py +191 -0
  519. extremecloudiq/model/xiq_audit_log_category.py +70 -0
  520. extremecloudiq/model/xiq_audit_log_full_descriptions.py +116 -0
  521. extremecloudiq/model/xiq_audit_log_report.py +86 -0
  522. extremecloudiq/model/xiq_audit_log_sort_field.py +47 -0
  523. extremecloudiq/model/xiq_auth_log.py +246 -0
  524. extremecloudiq/model/xiq_available_channel_info.py +143 -0
  525. extremecloudiq/model/xiq_bounce_device_port_data.py +128 -0
  526. extremecloudiq/model/xiq_bounce_device_port_operation_result.py +91 -0
  527. extremecloudiq/model/xiq_bounce_device_port_request.py +101 -0
  528. extremecloudiq/model/xiq_bounce_device_port_response.py +86 -0
  529. extremecloudiq/model/xiq_building.py +179 -0
  530. extremecloudiq/model/xiq_bulk_delete_email_subscription_result.py +91 -0
  531. extremecloudiq/model/xiq_bulk_delete_webhook_subscription_result.py +91 -0
  532. extremecloudiq/model/xiq_bulk_operation_result.py +50 -0
  533. extremecloudiq/model/xiq_capture_band_selection.py +62 -0
  534. extremecloudiq/model/xiq_capture_direction_selection.py +57 -0
  535. extremecloudiq/model/xiq_capture_filter.py +200 -0
  536. extremecloudiq/model/xiq_capture_identifier_type.py +57 -0
  537. extremecloudiq/model/xiq_capture_location.py +200 -0
  538. extremecloudiq/model/xiq_capture_radio_selection.py +62 -0
  539. extremecloudiq/model/xiq_capture_result.py +236 -0
  540. extremecloudiq/model/xiq_capture_stop_request.py +103 -0
  541. extremecloudiq/model/xiq_capture_wired_selection.py +67 -0
  542. extremecloudiq/model/xiq_certificate.py +171 -0
  543. extremecloudiq/model/xiq_certificate_type.py +50 -0
  544. extremecloudiq/model/xiq_change_devices_ibeacon_request.py +228 -0
  545. extremecloudiq/model/xiq_change_devices_os_mode_request.py +122 -0
  546. extremecloudiq/model/xiq_check_permission_request.py +96 -0
  547. extremecloudiq/model/xiq_check_permission_response.py +146 -0
  548. extremecloudiq/model/xiq_classification.py +163 -0
  549. extremecloudiq/model/xiq_classification_rule.py +179 -0
  550. extremecloudiq/model/xiq_classification_type.py +67 -0
  551. extremecloudiq/model/xiq_cli_output.py +113 -0
  552. extremecloudiq/model/xiq_cli_response_code.py +122 -0
  553. extremecloudiq/model/xiq_client.py +683 -0
  554. extremecloudiq/model/xiq_client_field.py +315 -0
  555. extremecloudiq/model/xiq_client_mac_address_alias.py +114 -0
  556. extremecloudiq/model/xiq_client_monitor_parameters.py +111 -0
  557. extremecloudiq/model/xiq_client_monitor_profile.py +195 -0
  558. extremecloudiq/model/xiq_client_monitor_profile_request.py +153 -0
  559. extremecloudiq/model/xiq_client_sort_field.py +145 -0
  560. extremecloudiq/model/xiq_client_stats_entity.py +166 -0
  561. extremecloudiq/model/xiq_client_summary.py +101 -0
  562. extremecloudiq/model/xiq_client_type.py +57 -0
  563. extremecloudiq/model/xiq_client_usage.py +91 -0
  564. extremecloudiq/model/xiq_client_view.py +82 -0
  565. extremecloudiq/model/xiq_cloud_config_group.py +226 -0
  566. extremecloudiq/model/xiq_cloud_config_group_sort_field.py +60 -0
  567. extremecloudiq/model/xiq_cloud_shark_storage.py +91 -0
  568. extremecloudiq/model/xiq_connectivity_details_by_client_type_response.py +100 -0
  569. extremecloudiq/model/xiq_connectivity_experience_data.py +205 -0
  570. extremecloudiq/model/xiq_connectivity_experience_view_type.py +55 -0
  571. extremecloudiq/model/xiq_copilot_anomalies_action_response.py +81 -0
  572. extremecloudiq/model/xiq_copilot_anomalies_by_category.py +158 -0
  573. extremecloudiq/model/xiq_copilot_events_wired_sort_field.py +45 -0
  574. extremecloudiq/model/xiq_copilot_events_wireless_sort_field.py +55 -0
  575. extremecloudiq/model/xiq_copilot_lldp_cdp_info.py +86 -0
  576. extremecloudiq/model/xiq_copilot_missing_vlan_paged_xiq_missing_vlan_excluded_vlan_list.py +157 -0
  577. extremecloudiq/model/xiq_copilot_missing_vlan_site_details.py +91 -0
  578. extremecloudiq/model/xiq_copilot_paged_xiq_anomaly_device_with_location.py +181 -0
  579. extremecloudiq/model/xiq_copilot_paged_xiq_anomaly_location_entity.py +181 -0
  580. extremecloudiq/model/xiq_copilot_wired_events_score_type.py +45 -0
  581. extremecloudiq/model/xiq_copilot_wireless_event.py +173 -0
  582. extremecloudiq/model/xiq_copilot_wireless_events_score_type.py +65 -0
  583. extremecloudiq/model/xiq_country.py +241 -0
  584. extremecloudiq/model/xiq_country_code.py +1127 -0
  585. extremecloudiq/model/xiq_country_state.py +99 -0
  586. extremecloudiq/model/xiq_create_alert_email_subscription_request.py +142 -0
  587. extremecloudiq/model/xiq_create_alert_webhook_subscription_request.py +152 -0
  588. extremecloudiq/model/xiq_create_building_request.py +133 -0
  589. extremecloudiq/model/xiq_create_classification_request.py +155 -0
  590. extremecloudiq/model/xiq_create_classification_rule_request.py +133 -0
  591. extremecloudiq/model/xiq_create_cloud_config_group_request.py +126 -0
  592. extremecloudiq/model/xiq_create_end_user_request.py +186 -0
  593. extremecloudiq/model/xiq_create_external_radius_server_request.py +179 -0
  594. extremecloudiq/model/xiq_create_floor_request.py +185 -0
  595. extremecloudiq/model/xiq_create_internal_radius_server_request.py +399 -0
  596. extremecloudiq/model/xiq_create_key_based_pcg_users_request.py +113 -0
  597. extremecloudiq/model/xiq_create_key_based_pcg_users_response.py +135 -0
  598. extremecloudiq/model/xiq_create_l3_address_profile_request.py +199 -0
  599. extremecloudiq/model/xiq_create_ldap_server_request.py +260 -0
  600. extremecloudiq/model/xiq_create_location_request.py +96 -0
  601. extremecloudiq/model/xiq_create_mac_object_request.py +133 -0
  602. extremecloudiq/model/xiq_create_network_policy_request.py +111 -0
  603. extremecloudiq/model/xiq_create_organization_request.py +94 -0
  604. extremecloudiq/model/xiq_create_radio_profile_request.py +249 -0
  605. extremecloudiq/model/xiq_create_radius_client.py +101 -0
  606. extremecloudiq/model/xiq_create_radius_client_object_request.py +215 -0
  607. extremecloudiq/model/xiq_create_radius_proxy_realm.py +101 -0
  608. extremecloudiq/model/xiq_create_radius_proxy_request.py +269 -0
  609. extremecloudiq/model/xiq_create_rp_mac_oui_profile_request.py +126 -0
  610. extremecloudiq/model/xiq_create_site_request.py +141 -0
  611. extremecloudiq/model/xiq_create_user_group_request.py +239 -0
  612. extremecloudiq/model/xiq_create_user_profile_assignment_request.py +136 -0
  613. extremecloudiq/model/xiq_create_user_profile_request.py +96 -0
  614. extremecloudiq/model/xiq_create_user_request.py +157 -0
  615. extremecloudiq/model/xiq_create_vlan_object_classified_entry_request.py +98 -0
  616. extremecloudiq/model/xiq_create_vlan_profile_request.py +145 -0
  617. extremecloudiq/model/xiq_create_webhook_subscription_request.py +125 -0
  618. extremecloudiq/model/xiq_credential_log.py +126 -0
  619. extremecloudiq/model/xiq_cwp.py +130 -0
  620. extremecloudiq/model/xiq_data_point.py +96 -0
  621. extremecloudiq/model/xiq_date_time_type.py +134 -0
  622. extremecloudiq/model/xiq_date_time_unit_type.py +62 -0
  623. extremecloudiq/model/xiq_default_device_password.py +86 -0
  624. extremecloudiq/model/xiq_delete_bulk_alert_subscription_email_response.py +132 -0
  625. extremecloudiq/model/xiq_delete_bulk_alert_subscription_request.py +108 -0
  626. extremecloudiq/model/xiq_delete_bulk_alert_subscription_webhook_response.py +132 -0
  627. extremecloudiq/model/xiq_delete_key_based_pcg_users_request.py +108 -0
  628. extremecloudiq/model/xiq_delivery_settings.py +91 -0
  629. extremecloudiq/model/xiq_dell_device.py +135 -0
  630. extremecloudiq/model/xiq_dell_devices.py +114 -0
  631. extremecloudiq/model/xiq_deploy_device_filter.py +135 -0
  632. extremecloudiq/model/xiq_deployment_by_id_status_response.py +208 -0
  633. extremecloudiq/model/xiq_deployment_details_response.py +152 -0
  634. extremecloudiq/model/xiq_deployment_overview.py +98 -0
  635. extremecloudiq/model/xiq_deployment_overview_details.py +101 -0
  636. extremecloudiq/model/xiq_deployment_policy.py +146 -0
  637. extremecloudiq/model/xiq_deployment_request.py +114 -0
  638. extremecloudiq/model/xiq_deployment_response.py +124 -0
  639. extremecloudiq/model/xiq_deployment_schedule_action_response.py +81 -0
  640. extremecloudiq/model/xiq_deployment_status.py +156 -0
  641. extremecloudiq/model/xiq_deployments_policy_response.py +146 -0
  642. extremecloudiq/model/xiq_destination_type.py +52 -0
  643. extremecloudiq/model/xiq_device.py +501 -0
  644. extremecloudiq/model/xiq_device_admin_state.py +65 -0
  645. extremecloudiq/model/xiq_device_alarm.py +141 -0
  646. extremecloudiq/model/xiq_device_category.py +52 -0
  647. extremecloudiq/model/xiq_device_client_monitor.py +91 -0
  648. extremecloudiq/model/xiq_device_cpu_memory_usage.py +101 -0
  649. extremecloudiq/model/xiq_device_field.py +220 -0
  650. extremecloudiq/model/xiq_device_filter.py +103 -0
  651. extremecloudiq/model/xiq_device_firmware_metadata.py +200 -0
  652. extremecloudiq/model/xiq_device_function.py +87 -0
  653. extremecloudiq/model/xiq_device_geolocation.py +152 -0
  654. extremecloudiq/model/xiq_device_ibeacon.py +206 -0
  655. extremecloudiq/model/xiq_device_installation_report.py +211 -0
  656. extremecloudiq/model/xiq_device_interface_radio_mode.py +160 -0
  657. extremecloudiq/model/xiq_device_iot_interface_settings_entry.py +96 -0
  658. extremecloudiq/model/xiq_device_level_ssid.py +106 -0
  659. extremecloudiq/model/xiq_device_level_ssid_status.py +98 -0
  660. extremecloudiq/model/xiq_device_lldp_cdp_info.py +131 -0
  661. extremecloudiq/model/xiq_device_location.py +214 -0
  662. extremecloudiq/model/xiq_device_location_assignment.py +126 -0
  663. extremecloudiq/model/xiq_device_monitor_refresh_response.py +86 -0
  664. extremecloudiq/model/xiq_device_monitor_refresh_status_response.py +150 -0
  665. extremecloudiq/model/xiq_device_null_field.py +50 -0
  666. extremecloudiq/model/xiq_device_radio_operating_mode.py +122 -0
  667. extremecloudiq/model/xiq_device_sort_field.py +52 -0
  668. extremecloudiq/model/xiq_device_stats.py +99 -0
  669. extremecloudiq/model/xiq_device_stats_entity.py +146 -0
  670. extremecloudiq/model/xiq_device_type.py +55 -0
  671. extremecloudiq/model/xiq_device_view.py +72 -0
  672. extremecloudiq/model/xiq_device_wifi_interface.py +361 -0
  673. extremecloudiq/model/xiq_device_wireless_interface_entry.py +101 -0
  674. extremecloudiq/model/xiq_devices.py +135 -0
  675. extremecloudiq/model/xiq_dfs_channel_changes_entity.py +96 -0
  676. extremecloudiq/model/xiq_dfs_channel_stats_entity.py +96 -0
  677. extremecloudiq/model/xiq_dfs_recurence_channel_stats_response.py +128 -0
  678. extremecloudiq/model/xiq_dfs_recurence_count_stats_response.py +118 -0
  679. extremecloudiq/model/xiq_digital_twin_device.py +201 -0
  680. extremecloudiq/model/xiq_digital_twin_devices.py +110 -0
  681. extremecloudiq/model/xiq_digital_twin_feat_license.py +72 -0
  682. extremecloudiq/model/xiq_digital_twin_make.py +52 -0
  683. extremecloudiq/model/xiq_digital_twin_model.py +237 -0
  684. extremecloudiq/model/xiq_digital_twin_onboard_device.py +127 -0
  685. extremecloudiq/model/xiq_digital_twin_products.py +142 -0
  686. extremecloudiq/model/xiq_digital_twin_vim_module.py +67 -0
  687. extremecloudiq/model/xiq_duplex_data_rate_entity.py +106 -0
  688. extremecloudiq/model/xiq_ekahau_floor_import_result.py +119 -0
  689. extremecloudiq/model/xiq_ekahau_floor_import_status.py +52 -0
  690. extremecloudiq/model/xiq_ekahau_floor_to_floor_association.py +98 -0
  691. extremecloudiq/model/xiq_ekahau_floor_to_outdoor_site_association.py +110 -0
  692. extremecloudiq/model/xiq_ekahau_import_details.py +113 -0
  693. extremecloudiq/model/xiq_ekahau_import_issue.py +136 -0
  694. extremecloudiq/model/xiq_ekahau_import_issues.py +244 -0
  695. extremecloudiq/model/xiq_elevation.py +119 -0
  696. extremecloudiq/model/xiq_ellipse.py +99 -0
  697. extremecloudiq/model/xiq_email_log.py +156 -0
  698. extremecloudiq/model/xiq_email_template.py +211 -0
  699. extremecloudiq/model/xiq_end_user.py +274 -0
  700. extremecloudiq/model/xiq_entitlement_type.py +62 -0
  701. extremecloudiq/model/xiq_error.py +108 -0
  702. extremecloudiq/model/xiq_excluded_vlan_action_type.py +57 -0
  703. extremecloudiq/model/xiq_exos_device.py +123 -0
  704. extremecloudiq/model/xiq_exos_devices.py +108 -0
  705. extremecloudiq/model/xiq_expiration_action_type.py +52 -0
  706. extremecloudiq/model/xiq_expiration_settings.py +156 -0
  707. extremecloudiq/model/xiq_expiration_type.py +62 -0
  708. extremecloudiq/model/xiq_external_account.py +156 -0
  709. extremecloudiq/model/xiq_external_radius_server.py +207 -0
  710. extremecloudiq/model/xiq_external_user.py +189 -0
  711. extremecloudiq/model/xiq_external_user_directory.py +241 -0
  712. extremecloudiq/model/xiq_external_user_directory_entry.py +103 -0
  713. extremecloudiq/model/xiq_external_user_directory_type.py +52 -0
  714. extremecloudiq/model/xiq_extreme_device.py +123 -0
  715. extremecloudiq/model/xiq_extreme_devices.py +108 -0
  716. extremecloudiq/model/xiq_failure_onboard_device.py +101 -0
  717. extremecloudiq/model/xiq_feedback_type.py +52 -0
  718. extremecloudiq/model/xiq_firmware_activate_option.py +101 -0
  719. extremecloudiq/model/xiq_firmware_metadatas_request.py +135 -0
  720. extremecloudiq/model/xiq_firmware_metadatas_response.py +136 -0
  721. extremecloudiq/model/xiq_firmware_upgrade_policy.py +91 -0
  722. extremecloudiq/model/xiq_firmware_upgrade_version.py +106 -0
  723. extremecloudiq/model/xiq_flap_count_entity.py +116 -0
  724. extremecloudiq/model/xiq_floor.py +243 -0
  725. extremecloudiq/model/xiq_forensic_bucket.py +75 -0
  726. extremecloudiq/model/xiq_ftm_settings.py +185 -0
  727. extremecloudiq/model/xiq_ftm_settings_request.py +147 -0
  728. extremecloudiq/model/xiq_generate_api_token_request.py +126 -0
  729. extremecloudiq/model/xiq_generate_api_token_response.py +174 -0
  730. extremecloudiq/model/xiq_get_afc_spectrum_for_ap_request.py +161 -0
  731. extremecloudiq/model/xiq_get_afc_spectrum_for_site_aps_request.py +161 -0
  732. extremecloudiq/model/xiq_get_device_info_by_nos.py +106 -0
  733. extremecloudiq/model/xiq_get_device_infoby_nos_request.py +133 -0
  734. extremecloudiq/model/xiq_get_port_assignment_details_response.py +135 -0
  735. extremecloudiq/model/xiq_grant_external_user_request.py +143 -0
  736. extremecloudiq/model/xiq_hardware_health_client_list_response.py +108 -0
  737. extremecloudiq/model/xiq_hardware_health_cpu_mem_stats_response.py +108 -0
  738. extremecloudiq/model/xiq_hardware_health_device_stats_entity.py +136 -0
  739. extremecloudiq/model/xiq_hardware_health_packet_counts_entity.py +156 -0
  740. extremecloudiq/model/xiq_hardware_health_reboot_stats_entity.py +96 -0
  741. extremecloudiq/model/xiq_hardware_health_stats_response.py +180 -0
  742. extremecloudiq/model/xiq_hh_client_stats_entity.py +136 -0
  743. extremecloudiq/model/xiq_hh_cpu_mem_stats_entity.py +116 -0
  744. extremecloudiq/model/xiq_hiq_context.py +118 -0
  745. extremecloudiq/model/xiq_hiq_status.py +84 -0
  746. extremecloudiq/model/xiq_host_name_address_profile.py +223 -0
  747. extremecloudiq/model/xiq_hotspot_access_network_type.py +82 -0
  748. extremecloudiq/model/xiq_hotspot_cellular_network.py +128 -0
  749. extremecloudiq/model/xiq_hotspot_connection_capability.py +129 -0
  750. extremecloudiq/model/xiq_hotspot_connection_capability_protocol.py +62 -0
  751. extremecloudiq/model/xiq_hotspot_connection_capability_status.py +57 -0
  752. extremecloudiq/model/xiq_hotspot_eap_method.py +72 -0
  753. extremecloudiq/model/xiq_hotspot_ipv4_availability_type.py +82 -0
  754. extremecloudiq/model/xiq_hotspot_ipv6_availability_type.py +57 -0
  755. extremecloudiq/model/xiq_hotspot_localized_name.py +117 -0
  756. extremecloudiq/model/xiq_hotspot_nai_encoding_type.py +52 -0
  757. extremecloudiq/model/xiq_hotspot_nai_realm.py +147 -0
  758. extremecloudiq/model/xiq_hotspot_online_signup.py +120 -0
  759. extremecloudiq/model/xiq_hotspot_osu_network_auth_type.py +57 -0
  760. extremecloudiq/model/xiq_hotspot_profile.py +528 -0
  761. extremecloudiq/model/xiq_hotspot_profile_request.py +484 -0
  762. extremecloudiq/model/xiq_hotspot_qos_ah_class_to_dscp_range.py +140 -0
  763. extremecloudiq/model/xiq_hotspot_qos_dscp_exception.py +118 -0
  764. extremecloudiq/model/xiq_hotspot_qos_map.py +144 -0
  765. extremecloudiq/model/xiq_hotspot_roaming_consortium.py +106 -0
  766. extremecloudiq/model/xiq_hotspot_service_provider_icon_file.py +135 -0
  767. extremecloudiq/model/xiq_hotspot_service_provider_osu_method.py +52 -0
  768. extremecloudiq/model/xiq_hotspot_service_provider_profile.py +394 -0
  769. extremecloudiq/model/xiq_hotspot_service_provider_profile_request.py +366 -0
  770. extremecloudiq/model/xiq_hotspot_venue.py +136 -0
  771. extremecloudiq/model/xiq_hotspot_venue_group.py +102 -0
  772. extremecloudiq/model/xiq_hotspot_venue_type.py +317 -0
  773. extremecloudiq/model/xiq_hotspot_wan_link_status.py +57 -0
  774. extremecloudiq/model/xiq_hotspot_wan_metrics.py +135 -0
  775. extremecloudiq/model/xiq_http_method.py +62 -0
  776. extremecloudiq/model/xiq_http_server.py +110 -0
  777. extremecloudiq/model/xiq_init_key_based_pcg_network_policy_request.py +137 -0
  778. extremecloudiq/model/xiq_initialize_location_request.py +101 -0
  779. extremecloudiq/model/xiq_internal_radius_device.py +156 -0
  780. extremecloudiq/model/xiq_internal_radius_server.py +449 -0
  781. extremecloudiq/model/xiq_internal_radius_server_authentication_method.py +67 -0
  782. extremecloudiq/model/xiq_internal_radius_server_authentication_method_group.py +72 -0
  783. extremecloudiq/model/xiq_iot_application_id.py +47 -0
  784. extremecloudiq/model/xiq_iot_application_supported.py +52 -0
  785. extremecloudiq/model/xiq_iot_profile.py +193 -0
  786. extremecloudiq/model/xiq_iot_profile_request.py +159 -0
  787. extremecloudiq/model/xiq_iot_profile_thread_gateway.py +297 -0
  788. extremecloudiq/model/xiq_iotp_ma_ble_beacon.py +108 -0
  789. extremecloudiq/model/xiq_iotp_ma_ble_beacon_app_type.py +52 -0
  790. extremecloudiq/model/xiq_iotp_ma_ble_beacon_application.py +230 -0
  791. extremecloudiq/model/xiq_iotp_ma_ble_scan.py +122 -0
  792. extremecloudiq/model/xiq_iotp_ma_ble_scan_app_type.py +57 -0
  793. extremecloudiq/model/xiq_iotp_ma_ble_scan_application.py +167 -0
  794. extremecloudiq/model/xiq_iotp_ma_ble_scan_destination.py +106 -0
  795. extremecloudiq/model/xiq_iotp_ma_ble_scan_vendor.py +116 -0
  796. extremecloudiq/model/xiq_iotp_ma_ble_scan_vendor_type.py +57 -0
  797. extremecloudiq/model/xiq_iotp_tg_white_list_entry.py +118 -0
  798. extremecloudiq/model/xiq_ip_address_profile.py +223 -0
  799. extremecloudiq/model/xiq_ip_firewall.py +187 -0
  800. extremecloudiq/model/xiq_ip_firewall_action.py +67 -0
  801. extremecloudiq/model/xiq_ip_firewall_policy_request.py +128 -0
  802. extremecloudiq/model/xiq_ip_firewall_rule.py +204 -0
  803. extremecloudiq/model/xiq_ip_firewall_rule_request.py +130 -0
  804. extremecloudiq/model/xiq_ip_range_address_profile.py +233 -0
  805. extremecloudiq/model/xiq_key_based_pcg.py +205 -0
  806. extremecloudiq/model/xiq_key_based_pcg_user.py +156 -0
  807. extremecloudiq/model/xiq_key_based_pcg_user_base_info.py +110 -0
  808. extremecloudiq/model/xiq_l3_address_profile.py +225 -0
  809. extremecloudiq/model/xiq_l3_address_profile_response.py +156 -0
  810. extremecloudiq/model/xiq_l3_address_type.py +72 -0
  811. extremecloudiq/model/xiq_ldap_protocol_type.py +52 -0
  812. extremecloudiq/model/xiq_ldap_server.py +271 -0
  813. extremecloudiq/model/xiq_ldap_server_verification_mode.py +57 -0
  814. extremecloudiq/model/xiq_license_mode.py +67 -0
  815. extremecloudiq/model/xiq_license_status.py +72 -0
  816. extremecloudiq/model/xiq_list_afc_servers.py +106 -0
  817. extremecloudiq/model/xiq_list_alert_policies.py +121 -0
  818. extremecloudiq/model/xiq_location.py +211 -0
  819. extremecloudiq/model/xiq_location_legend.py +91 -0
  820. extremecloudiq/model/xiq_location_tree_device.py +198 -0
  821. extremecloudiq/model/xiq_location_tree_map.py +118 -0
  822. extremecloudiq/model/xiq_location_type.py +57 -0
  823. extremecloudiq/model/xiq_logging_type.py +67 -0
  824. extremecloudiq/model/xiq_login_request.py +96 -0
  825. extremecloudiq/model/xiq_login_response.py +108 -0
  826. extremecloudiq/model/xiq_mac_firewall.py +187 -0
  827. extremecloudiq/model/xiq_mac_firewall_action.py +52 -0
  828. extremecloudiq/model/xiq_mac_firewall_policy_request.py +128 -0
  829. extremecloudiq/model/xiq_mac_firewall_rule.py +176 -0
  830. extremecloudiq/model/xiq_mac_firewall_rule_request.py +120 -0
  831. extremecloudiq/model/xiq_mac_object.py +195 -0
  832. extremecloudiq/model/xiq_mac_object_type.py +57 -0
  833. extremecloudiq/model/xiq_measurement_unit.py +52 -0
  834. extremecloudiq/model/xiq_missing_vlan_affected_device_entity.py +133 -0
  835. extremecloudiq/model/xiq_missing_vlan_anomalies_count_response.py +118 -0
  836. extremecloudiq/model/xiq_missing_vlan_excluded_vlan_details.py +135 -0
  837. extremecloudiq/model/xiq_missing_vlan_excluded_vlan_details_list_request.py +149 -0
  838. extremecloudiq/model/xiq_missing_vlan_excluded_vlan_list.py +118 -0
  839. extremecloudiq/model/xiq_missing_vlan_info.py +138 -0
  840. extremecloudiq/model/xiq_missing_vlan_site_anomaly_count_details.py +101 -0
  841. extremecloudiq/model/xiq_network_alg_type.py +72 -0
  842. extremecloudiq/model/xiq_network_ip_protocol.py +62 -0
  843. extremecloudiq/model/xiq_network_policy.py +164 -0
  844. extremecloudiq/model/xiq_network_policy_field.py +80 -0
  845. extremecloudiq/model/xiq_network_policy_type.py +77 -0
  846. extremecloudiq/model/xiq_network_policy_view.py +52 -0
  847. extremecloudiq/model/xiq_network_service.py +221 -0
  848. extremecloudiq/model/xiq_network_service_request.py +138 -0
  849. extremecloudiq/model/xiq_onboard_device_request.py +156 -0
  850. extremecloudiq/model/xiq_onboard_error.py +257 -0
  851. extremecloudiq/model/xiq_onboard_key_based_pcg_request.py +132 -0
  852. extremecloudiq/model/xiq_onboard_key_based_pcg_response.py +110 -0
  853. extremecloudiq/model/xiq_operation_metadata.py +189 -0
  854. extremecloudiq/model/xiq_operation_object.py +139 -0
  855. extremecloudiq/model/xiq_operation_status.py +72 -0
  856. extremecloudiq/model/xiq_organization.py +157 -0
  857. extremecloudiq/model/xiq_organization_type.py +52 -0
  858. extremecloudiq/model/xiq_os_object.py +120 -0
  859. extremecloudiq/model/xiq_packet_capture.py +310 -0
  860. extremecloudiq/model/xiq_packet_capture_field.py +120 -0
  861. extremecloudiq/model/xiq_packet_capture_sort_field.py +55 -0
  862. extremecloudiq/model/xiq_packet_capture_status.py +67 -0
  863. extremecloudiq/model/xiq_password_character_type.py +57 -0
  864. extremecloudiq/model/xiq_password_db_location.py +52 -0
  865. extremecloudiq/model/xiq_password_settings.py +159 -0
  866. extremecloudiq/model/xiq_password_type.py +52 -0
  867. extremecloudiq/model/xiq_pcg_assign_ports_request.py +113 -0
  868. extremecloudiq/model/xiq_pcg_assign_ports_response.py +137 -0
  869. extremecloudiq/model/xiq_pcg_port_assignment.py +116 -0
  870. extremecloudiq/model/xiq_pcg_port_assignment_entry.py +162 -0
  871. extremecloudiq/model/xiq_pcg_port_assignment_entry_detail.py +175 -0
  872. extremecloudiq/model/xiq_pcg_port_assignment_entry_device_meta.py +156 -0
  873. extremecloudiq/model/xiq_pcg_port_assignment_entry_eth_user_meta.py +202 -0
  874. extremecloudiq/model/xiq_pcg_type.py +52 -0
  875. extremecloudiq/model/xiq_permission.py +110 -0
  876. extremecloudiq/model/xiq_poe_flapping_stats_response.py +118 -0
  877. extremecloudiq/model/xiq_poe_trend_graphs_response.py +108 -0
  878. extremecloudiq/model/xiq_policy_rule_protocol_type.py +87 -0
  879. extremecloudiq/model/xiq_port_efficiency_speed_duplex_stats_response.py +108 -0
  880. extremecloudiq/model/xiq_port_efficiency_stats_response.py +108 -0
  881. extremecloudiq/model/xiq_post_expiration_action.py +116 -0
  882. extremecloudiq/model/xiq_power_source_equipment.py +204 -0
  883. extremecloudiq/model/xiq_psk_generation_method.py +52 -0
  884. extremecloudiq/model/xiq_quality_index.py +62 -0
  885. extremecloudiq/model/xiq_radio.py +213 -0
  886. extremecloudiq/model/xiq_radio_bands.py +77 -0
  887. extremecloudiq/model/xiq_radio_entity.py +123 -0
  888. extremecloudiq/model/xiq_radio_mode.py +97 -0
  889. extremecloudiq/model/xiq_radio_operating_modes.py +120 -0
  890. extremecloudiq/model/xiq_radio_profile.py +295 -0
  891. extremecloudiq/model/xiq_radius_client.py +111 -0
  892. extremecloudiq/model/xiq_radius_client_object.py +253 -0
  893. extremecloudiq/model/xiq_radius_client_object_entry.py +119 -0
  894. extremecloudiq/model/xiq_radius_client_object_type.py +57 -0
  895. extremecloudiq/model/xiq_radius_client_profile.py +128 -0
  896. extremecloudiq/model/xiq_radius_client_profile_entry.py +91 -0
  897. extremecloudiq/model/xiq_radius_proxy.py +267 -0
  898. extremecloudiq/model/xiq_radius_proxy_format_type.py +62 -0
  899. extremecloudiq/model/xiq_radius_proxy_realm.py +111 -0
  900. extremecloudiq/model/xiq_radius_server_type.py +57 -0
  901. extremecloudiq/model/xiq_recurrence_type.py +52 -0
  902. extremecloudiq/model/xiq_regenerate_end_user_password_response.py +86 -0
  903. extremecloudiq/model/xiq_rf_environment_type.py +77 -0
  904. extremecloudiq/model/xiq_rp_channel_selection.py +330 -0
  905. extremecloudiq/model/xiq_rp_mac_oui_profile.py +180 -0
  906. extremecloudiq/model/xiq_rp_miscellaneous_settings.py +167 -0
  907. extremecloudiq/model/xiq_rp_neighborhood_analysis.py +160 -0
  908. extremecloudiq/model/xiq_rp_radio_usage_optimization.py +487 -0
  909. extremecloudiq/model/xiq_rp_sensor_scan_settings.py +140 -0
  910. extremecloudiq/model/xiq_rp_wmm_qos_settings.py +170 -0
  911. extremecloudiq/model/xiq_rtts_session_response.py +79 -0
  912. extremecloudiq/model/xiq_schedule.py +197 -0
  913. extremecloudiq/model/xiq_schedule_details.py +86 -0
  914. extremecloudiq/model/xiq_schedule_status.py +72 -0
  915. extremecloudiq/model/xiq_schedule_type.py +52 -0
  916. extremecloudiq/model/xiq_send_cli_request.py +125 -0
  917. extremecloudiq/model/xiq_send_cli_response.py +136 -0
  918. extremecloudiq/model/xiq_server_role.py +62 -0
  919. extremecloudiq/model/xiq_sessions_data_entity.py +116 -0
  920. extremecloudiq/model/xiq_set_ssid_mode_dot1x_request.py +181 -0
  921. extremecloudiq/model/xiq_set_ssid_mode_ppsk_request.py +215 -0
  922. extremecloudiq/model/xiq_set_ssid_mode_psk_request.py +178 -0
  923. extremecloudiq/model/xiq_set_ssid_mode_wep_request.py +235 -0
  924. extremecloudiq/model/xiq_site.py +223 -0
  925. extremecloudiq/model/xiq_site_afc_schedule.py +109 -0
  926. extremecloudiq/model/xiq_site_info.py +128 -0
  927. extremecloudiq/model/xiq_sites_by_wired_entity.py +111 -0
  928. extremecloudiq/model/xiq_sites_by_wireless_entity.py +111 -0
  929. extremecloudiq/model/xiq_sms_log.py +191 -0
  930. extremecloudiq/model/xiq_sms_log_status.py +62 -0
  931. extremecloudiq/model/xiq_sms_template.py +181 -0
  932. extremecloudiq/model/xiq_sort_field.py +50 -0
  933. extremecloudiq/model/xiq_sort_order.py +50 -0
  934. extremecloudiq/model/xiq_spectrum_mismatch_summary.py +99 -0
  935. extremecloudiq/model/xiq_speed_duplex_entity.py +106 -0
  936. extremecloudiq/model/xiq_ssid.py +305 -0
  937. extremecloudiq/model/xiq_ssid_access_security.py +168 -0
  938. extremecloudiq/model/xiq_ssid_access_security_type.py +72 -0
  939. extremecloudiq/model/xiq_ssid_advanced_settings.py +120 -0
  940. extremecloudiq/model/xiq_ssid_dot1x_encryption_method.py +62 -0
  941. extremecloudiq/model/xiq_ssid_dot1x_key_management.py +62 -0
  942. extremecloudiq/model/xiq_ssid_encryption_method.py +72 -0
  943. extremecloudiq/model/xiq_ssid_key_management.py +92 -0
  944. extremecloudiq/model/xiq_ssid_key_type.py +52 -0
  945. extremecloudiq/model/xiq_ssid_ppsk_key_management.py +57 -0
  946. extremecloudiq/model/xiq_ssid_psk_encryption_method.py +57 -0
  947. extremecloudiq/model/xiq_ssid_psk_key_management.py +62 -0
  948. extremecloudiq/model/xiq_ssid_sae_group.py +57 -0
  949. extremecloudiq/model/xiq_ssid_status.py +52 -0
  950. extremecloudiq/model/xiq_ssid_wep_authentication_method.py +52 -0
  951. extremecloudiq/model/xiq_ssid_wep_default_key.py +62 -0
  952. extremecloudiq/model/xiq_ssid_wep_encryption_method.py +52 -0
  953. extremecloudiq/model/xiq_ssid_wep_key_management.py +52 -0
  954. extremecloudiq/model/xiq_storage.py +96 -0
  955. extremecloudiq/model/xiq_subnet_address_profile.py +233 -0
  956. extremecloudiq/model/xiq_subscription_data_type.py +82 -0
  957. extremecloudiq/model/xiq_subscription_message_type.py +87 -0
  958. extremecloudiq/model/xiq_subscription_status.py +52 -0
  959. extremecloudiq/model/xiq_success_onboard_device.py +98 -0
  960. extremecloudiq/model/xiq_thread_backbone_border_router_service.py +81 -0
  961. extremecloudiq/model/xiq_thread_border_agent_service.py +91 -0
  962. extremecloudiq/model/xiq_thread_border_router_service.py +171 -0
  963. extremecloudiq/model/xiq_thread_commissioner_service.py +81 -0
  964. extremecloudiq/model/xiq_thread_ipv6_setting.py +111 -0
  965. extremecloudiq/model/xiq_thread_leader_service.py +111 -0
  966. extremecloudiq/model/xiq_thread_mle_link_mode.py +101 -0
  967. extremecloudiq/model/xiq_thread_nat64_service.py +101 -0
  968. extremecloudiq/model/xiq_thread_net_data_prefix.py +199 -0
  969. extremecloudiq/model/xiq_thread_net_data_route.py +129 -0
  970. extremecloudiq/model/xiq_thread_net_data_service.py +129 -0
  971. extremecloudiq/model/xiq_thread_network_config.py +261 -0
  972. extremecloudiq/model/xiq_thread_network_data.py +200 -0
  973. extremecloudiq/model/xiq_thread_network_interface.py +268 -0
  974. extremecloudiq/model/xiq_thread_network_topology.py +180 -0
  975. extremecloudiq/model/xiq_thread_networks.py +108 -0
  976. extremecloudiq/model/xiq_thread_router.py +438 -0
  977. extremecloudiq/model/xiq_thread_router_neighbor.py +111 -0
  978. extremecloudiq/model/xiq_thread_start_commissioner_request.py +116 -0
  979. extremecloudiq/model/xiq_thread_stop_commissioner_request.py +96 -0
  980. extremecloudiq/model/xiq_thread_version.py +111 -0
  981. extremecloudiq/model/xiq_top_applications_usage.py +121 -0
  982. extremecloudiq/model/xiq_traffic.py +52 -0
  983. extremecloudiq/model/xiq_trend_graph_entity.py +96 -0
  984. extremecloudiq/model/xiq_trend_indicator.py +62 -0
  985. extremecloudiq/model/xiq_tunnel_concentrator.py +398 -0
  986. extremecloudiq/model/xiq_tunnel_concentrator_request.py +360 -0
  987. extremecloudiq/model/xiq_ucp_engine.py +193 -0
  988. extremecloudiq/model/xiq_ucp_engine_instance.py +98 -0
  989. extremecloudiq/model/xiq_ucp_engines.py +113 -0
  990. extremecloudiq/model/xiq_unaffected_downlink_device.py +111 -0
  991. extremecloudiq/model/xiq_update_action_anomaly_details.py +123 -0
  992. extremecloudiq/model/xiq_update_alert_email_subscription_request.py +138 -0
  993. extremecloudiq/model/xiq_update_alert_rule_request.py +149 -0
  994. extremecloudiq/model/xiq_update_alert_webhook_subscription_request.py +148 -0
  995. extremecloudiq/model/xiq_update_anomalies_and_devices_request.py +129 -0
  996. extremecloudiq/model/xiq_update_building_request.py +133 -0
  997. extremecloudiq/model/xiq_update_classification_request.py +155 -0
  998. extremecloudiq/model/xiq_update_classification_rule_request.py +133 -0
  999. extremecloudiq/model/xiq_update_client_monitor_profile_request.py +148 -0
  1000. extremecloudiq/model/xiq_update_cloud_config_group_request.py +121 -0
  1001. extremecloudiq/model/xiq_update_device_level_ssid_status.py +159 -0
  1002. extremecloudiq/model/xiq_update_end_user_request.py +159 -0
  1003. extremecloudiq/model/xiq_update_external_radius_server_request.py +167 -0
  1004. extremecloudiq/model/xiq_update_external_user_request.py +126 -0
  1005. extremecloudiq/model/xiq_update_firmware_upgrade_request.py +114 -0
  1006. extremecloudiq/model/xiq_update_floor_request.py +185 -0
  1007. extremecloudiq/model/xiq_update_internal_radius_server_request.py +349 -0
  1008. extremecloudiq/model/xiq_update_key_based_pcg_users_request.py +113 -0
  1009. extremecloudiq/model/xiq_update_l3_address_profile_request.py +171 -0
  1010. extremecloudiq/model/xiq_update_ldap_server_request.py +227 -0
  1011. extremecloudiq/model/xiq_update_location_request.py +96 -0
  1012. extremecloudiq/model/xiq_update_mac_object_request.py +109 -0
  1013. extremecloudiq/model/xiq_update_missing_vlan_excluded_vlan_response.py +81 -0
  1014. extremecloudiq/model/xiq_update_network_policy_request.py +104 -0
  1015. extremecloudiq/model/xiq_update_radio_profile_request.py +244 -0
  1016. extremecloudiq/model/xiq_update_radius_client.py +111 -0
  1017. extremecloudiq/model/xiq_update_radius_client_object_request.py +174 -0
  1018. extremecloudiq/model/xiq_update_radius_proxy_realm.py +111 -0
  1019. extremecloudiq/model/xiq_update_radius_proxy_request.py +220 -0
  1020. extremecloudiq/model/xiq_update_rp_channel_selection_request.py +329 -0
  1021. extremecloudiq/model/xiq_update_rp_mac_oui_profile_request.py +119 -0
  1022. extremecloudiq/model/xiq_update_rp_miscellaneous_settings_request.py +99 -0
  1023. extremecloudiq/model/xiq_update_rp_neighborhood_analysis_request.py +129 -0
  1024. extremecloudiq/model/xiq_update_rp_radio_usage_optimization_request.py +581 -0
  1025. extremecloudiq/model/xiq_update_rp_sensor_scan_settings_request.py +99 -0
  1026. extremecloudiq/model/xiq_update_rp_wmm_qos_settings_request.py +159 -0
  1027. extremecloudiq/model/xiq_update_site_request.py +141 -0
  1028. extremecloudiq/model/xiq_update_ssid_advanced_settings_request.py +79 -0
  1029. extremecloudiq/model/xiq_update_user_group_request.py +239 -0
  1030. extremecloudiq/model/xiq_update_user_profile_request.py +89 -0
  1031. extremecloudiq/model/xiq_update_user_request.py +146 -0
  1032. extremecloudiq/model/xiq_update_vlan_object_classified_entry_request.py +98 -0
  1033. extremecloudiq/model/xiq_update_vlan_profile_request.py +145 -0
  1034. extremecloudiq/model/xiq_user.py +257 -0
  1035. extremecloudiq/model/xiq_user_group.py +323 -0
  1036. extremecloudiq/model/xiq_user_profile.py +137 -0
  1037. extremecloudiq/model/xiq_user_profile_assignment.py +376 -0
  1038. extremecloudiq/model/xiq_user_profile_assignment_radius_attribute.py +96 -0
  1039. extremecloudiq/model/xiq_user_profile_assignment_rule.py +110 -0
  1040. extremecloudiq/model/xiq_user_role.py +82 -0
  1041. extremecloudiq/model/xiq_valid_daily_settings.py +122 -0
  1042. extremecloudiq/model/xiq_valid_during_date_settings.py +118 -0
  1043. extremecloudiq/model/xiq_valid_for_time_period_settings.py +119 -0
  1044. extremecloudiq/model/xiq_valid_time_period_after_first_login.py +130 -0
  1045. extremecloudiq/model/xiq_valid_time_period_after_id_creation.py +103 -0
  1046. extremecloudiq/model/xiq_valid_time_period_after_type.py +52 -0
  1047. extremecloudiq/model/xiq_viq.py +186 -0
  1048. extremecloudiq/model/xiq_viq_export_import_status_response.py +158 -0
  1049. extremecloudiq/model/xiq_viq_export_response.py +110 -0
  1050. extremecloudiq/model/xiq_viq_import_response.py +98 -0
  1051. extremecloudiq/model/xiq_viq_license.py +223 -0
  1052. extremecloudiq/model/xiq_viq_operation_type.py +50 -0
  1053. extremecloudiq/model/xiq_viq_task_progress.py +109 -0
  1054. extremecloudiq/model/xiq_vlan_object_classified_entry.py +157 -0
  1055. extremecloudiq/model/xiq_vlan_profile.py +203 -0
  1056. extremecloudiq/model/xiq_vlan_profile_filter.py +103 -0
  1057. extremecloudiq/model/xiq_voss_device.py +123 -0
  1058. extremecloudiq/model/xiq_voss_devices.py +108 -0
  1059. extremecloudiq/model/xiq_webhook_subscription.py +195 -0
  1060. extremecloudiq/model/xiq_weekday.py +77 -0
  1061. extremecloudiq/model/xiq_wgs84.py +110 -0
  1062. extremecloudiq/model/xiq_wifi_capacity_client_list_response.py +108 -0
  1063. extremecloudiq/model/xiq_wifi_capacity_stats_response.py +108 -0
  1064. extremecloudiq/model/xiq_wifi_efficiency_client_list_response.py +108 -0
  1065. extremecloudiq/model/xiq_wifi_efficiency_stats_response.py +128 -0
  1066. extremecloudiq/model/xiq_wildcard_address_profile.py +233 -0
  1067. extremecloudiq/model/xiq_wildcard_host_name_address_profile.py +223 -0
  1068. extremecloudiq/model/xiq_wing_device.py +135 -0
  1069. extremecloudiq/model/xiq_wing_devices.py +114 -0
  1070. extremecloudiq/model/xiq_wired_event_entity.py +141 -0
  1071. extremecloudiq/model/xiq_wired_filter_type.py +67 -0
  1072. extremecloudiq/model/xiq_wired_hardware_by_location_response.py +128 -0
  1073. extremecloudiq/model/xiq_wired_hardware_entity.py +126 -0
  1074. extremecloudiq/model/xiq_wired_hardware_response.py +108 -0
  1075. extremecloudiq/model/xiq_wired_quality_index_response.py +91 -0
  1076. extremecloudiq/model/xiq_wired_view_type.py +45 -0
  1077. extremecloudiq/model/xiq_wireless_apps_response.py +121 -0
  1078. extremecloudiq/model/xiq_wireless_client.py +120 -0
  1079. extremecloudiq/model/xiq_wireless_connectivity_performance_response.py +108 -0
  1080. extremecloudiq/model/xiq_wireless_event_retries_entity.py +131 -0
  1081. extremecloudiq/model/xiq_wireless_filter_type.py +72 -0
  1082. extremecloudiq/model/xiq_wireless_if_name.py +57 -0
  1083. extremecloudiq/model/xiq_wireless_performance_entity.py +151 -0
  1084. extremecloudiq/model/xiq_wireless_performance_retries_entity.py +101 -0
  1085. extremecloudiq/model/xiq_wireless_quality_index_by_location_response.py +111 -0
  1086. extremecloudiq/model/xiq_wireless_quality_index_response.py +101 -0
  1087. extremecloudiq/model/xiq_wireless_time_to_connect_entity.py +186 -0
  1088. extremecloudiq/model/xiq_wireless_time_to_connect_response.py +108 -0
  1089. extremecloudiq/model/xiq_wireless_views_list_type.py +50 -0
  1090. extremecloudiq/model/xiq_wireless_views_type_response.py +103 -0
  1091. extremecloudiq/model/xiq_wireless_wlan.py +130 -0
  1092. extremecloudiq/model/xiq_zsubelement.py +113 -0
  1093. extremecloudiq/model/xiq_zsubelement_above_floor.py +98 -0
  1094. extremecloudiq/models/__init__.py +730 -700
  1095. extremecloudiq/paths/__init__.py +337 -0
  1096. extremecloudiq/paths/account_external/__init__.py +7 -0
  1097. extremecloudiq/paths/account_external/get.py +329 -0
  1098. extremecloudiq/paths/account_home/__init__.py +7 -0
  1099. extremecloudiq/paths/account_home/get.py +304 -0
  1100. extremecloudiq/paths/account_switch/__init__.py +7 -0
  1101. extremecloudiq/paths/account_switch/post.py +358 -0
  1102. extremecloudiq/paths/account_viq/__init__.py +7 -0
  1103. extremecloudiq/paths/account_viq/get.py +304 -0
  1104. extremecloudiq/paths/account_viq_backup/__init__.py +7 -0
  1105. extremecloudiq/paths/account_viq_backup/post.py +296 -0
  1106. extremecloudiq/paths/account_viq_default_device_password/__init__.py +7 -0
  1107. extremecloudiq/paths/account_viq_default_device_password/get.py +304 -0
  1108. extremecloudiq/paths/account_viq_default_device_password/put.py +390 -0
  1109. extremecloudiq/paths/account_viq_download/__init__.py +7 -0
  1110. extremecloudiq/paths/account_viq_download/get.py +380 -0
  1111. extremecloudiq/paths/account_viq_export/__init__.py +7 -0
  1112. extremecloudiq/paths/account_viq_export/post.py +367 -0
  1113. extremecloudiq/paths/account_viq_export_import_status/__init__.py +7 -0
  1114. extremecloudiq/paths/account_viq_export_import_status/get.py +360 -0
  1115. extremecloudiq/paths/account_viq_import/__init__.py +7 -0
  1116. extremecloudiq/paths/account_viq_import/post.py +515 -0
  1117. extremecloudiq/paths/ad_servers/__init__.py +7 -0
  1118. extremecloudiq/paths/ad_servers/get.py +386 -0
  1119. extremecloudiq/paths/afcserver/__init__.py +7 -0
  1120. extremecloudiq/paths/afcserver/get.py +359 -0
  1121. extremecloudiq/paths/afcserver_server_id/__init__.py +7 -0
  1122. extremecloudiq/paths/afcserver_server_id/get.py +358 -0
  1123. extremecloudiq/paths/afcserver_statistics_server_id/__init__.py +7 -0
  1124. extremecloudiq/paths/afcserver_statistics_server_id/get.py +432 -0
  1125. extremecloudiq/paths/alert_policies/__init__.py +7 -0
  1126. extremecloudiq/paths/alert_policies/get.py +368 -0
  1127. extremecloudiq/paths/alert_policies/post.py +399 -0
  1128. extremecloudiq/paths/alert_policies_available_sites/__init__.py +7 -0
  1129. extremecloudiq/paths/alert_policies_available_sites/get.py +329 -0
  1130. extremecloudiq/paths/alert_policies_id/__init__.py +7 -0
  1131. extremecloudiq/paths/alert_policies_id/delete.py +350 -0
  1132. extremecloudiq/paths/alert_policies_id/get.py +358 -0
  1133. extremecloudiq/paths/alert_policies_id/put.py +456 -0
  1134. extremecloudiq/paths/alert_policies_policy_id_rules_rule_id/__init__.py +7 -0
  1135. extremecloudiq/paths/alert_policies_policy_id_rules_rule_id/get.py +367 -0
  1136. extremecloudiq/paths/alert_policies_policy_id_rules_rule_id/put.py +465 -0
  1137. extremecloudiq/paths/alert_policies_policy_id_rules_rule_id_disable/__init__.py +7 -0
  1138. extremecloudiq/paths/alert_policies_policy_id_rules_rule_id_disable/post.py +367 -0
  1139. extremecloudiq/paths/alert_policies_policy_id_rules_rule_id_enable/__init__.py +7 -0
  1140. extremecloudiq/paths/alert_policies_policy_id_rules_rule_id_enable/post.py +367 -0
  1141. extremecloudiq/paths/alert_subscriptions_emails/__init__.py +7 -0
  1142. extremecloudiq/paths/alert_subscriptions_emails/get.py +329 -0
  1143. extremecloudiq/paths/alert_subscriptions_emails/post.py +399 -0
  1144. extremecloudiq/paths/alert_subscriptions_emails_delete/__init__.py +7 -0
  1145. extremecloudiq/paths/alert_subscriptions_emails_delete/post.py +456 -0
  1146. extremecloudiq/paths/alert_subscriptions_emails_id/__init__.py +7 -0
  1147. extremecloudiq/paths/alert_subscriptions_emails_id/delete.py +350 -0
  1148. extremecloudiq/paths/alert_subscriptions_emails_id/get.py +358 -0
  1149. extremecloudiq/paths/alert_subscriptions_emails_id/put.py +456 -0
  1150. extremecloudiq/paths/alert_subscriptions_emails_id_verify/__init__.py +7 -0
  1151. extremecloudiq/paths/alert_subscriptions_emails_id_verify/post.py +350 -0
  1152. extremecloudiq/paths/alert_subscriptions_webhooks/__init__.py +7 -0
  1153. extremecloudiq/paths/alert_subscriptions_webhooks/get.py +329 -0
  1154. extremecloudiq/paths/alert_subscriptions_webhooks/post.py +399 -0
  1155. extremecloudiq/paths/alert_subscriptions_webhooks_delete/__init__.py +7 -0
  1156. extremecloudiq/paths/alert_subscriptions_webhooks_delete/post.py +456 -0
  1157. extremecloudiq/paths/alert_subscriptions_webhooks_id/__init__.py +7 -0
  1158. extremecloudiq/paths/alert_subscriptions_webhooks_id/delete.py +350 -0
  1159. extremecloudiq/paths/alert_subscriptions_webhooks_id/get.py +358 -0
  1160. extremecloudiq/paths/alert_subscriptions_webhooks_id/put.py +456 -0
  1161. extremecloudiq/paths/alerts/__init__.py +7 -0
  1162. extremecloudiq/paths/alerts/get.py +564 -0
  1163. extremecloudiq/paths/alerts_acknowledge/__init__.py +7 -0
  1164. extremecloudiq/paths/alerts_acknowledge/post.py +424 -0
  1165. extremecloudiq/paths/alerts_count_by_group/__init__.py +7 -0
  1166. extremecloudiq/paths/alerts_count_by_group/get.py +467 -0
  1167. extremecloudiq/paths/alerts_reports/__init__.py +7 -0
  1168. extremecloudiq/paths/alerts_reports/post.py +527 -0
  1169. extremecloudiq/paths/alerts_reports_id/__init__.py +7 -0
  1170. extremecloudiq/paths/alerts_reports_id/get.py +379 -0
  1171. extremecloudiq/paths/ap_afc_diagnostics_id/__init__.py +7 -0
  1172. extremecloudiq/paths/ap_afc_diagnostics_id/get.py +412 -0
  1173. extremecloudiq/paths/ap_afc_interface_details_sn/__init__.py +7 -0
  1174. extremecloudiq/paths/ap_afc_interface_details_sn/get.py +358 -0
  1175. extremecloudiq/paths/ap_spectrum_/__init__.py +7 -0
  1176. extremecloudiq/paths/ap_spectrum_/post.py +481 -0
  1177. extremecloudiq/paths/applications/__init__.py +7 -0
  1178. extremecloudiq/paths/applications/get.py +444 -0
  1179. extremecloudiq/paths/applications_id_clients_topn/__init__.py +7 -0
  1180. extremecloudiq/paths/applications_id_clients_topn/get.py +467 -0
  1181. extremecloudiq/paths/applications_topn/__init__.py +7 -0
  1182. extremecloudiq/paths/applications_topn/get.py +458 -0
  1183. extremecloudiq/paths/aps_afc_query_/__init__.py +7 -0
  1184. extremecloudiq/paths/aps_afc_query_/get.py +358 -0
  1185. extremecloudiq/paths/aps_afc_update/__init__.py +7 -0
  1186. extremecloudiq/paths/aps_afc_update/post.py +391 -0
  1187. extremecloudiq/paths/auth_apitoken/__init__.py +7 -0
  1188. extremecloudiq/paths/auth_apitoken/post.py +399 -0
  1189. extremecloudiq/paths/auth_apitoken_info/__init__.py +7 -0
  1190. extremecloudiq/paths/auth_apitoken_info/get.py +304 -0
  1191. extremecloudiq/paths/auth_apitoken_validate/__init__.py +7 -0
  1192. extremecloudiq/paths/auth_apitoken_validate/post.py +386 -0
  1193. extremecloudiq/paths/auth_permissions/__init__.py +7 -0
  1194. extremecloudiq/paths/auth_permissions/get.py +323 -0
  1195. extremecloudiq/paths/auth_permissions_check/__init__.py +7 -0
  1196. extremecloudiq/paths/auth_permissions_check/post.py +419 -0
  1197. extremecloudiq/paths/ccgs/__init__.py +7 -0
  1198. extremecloudiq/paths/ccgs/get.py +415 -0
  1199. extremecloudiq/paths/ccgs/post.py +399 -0
  1200. extremecloudiq/paths/ccgs_id/__init__.py +7 -0
  1201. extremecloudiq/paths/ccgs_id/delete.py +350 -0
  1202. extremecloudiq/paths/ccgs_id/get.py +358 -0
  1203. extremecloudiq/paths/ccgs_id/put.py +456 -0
  1204. extremecloudiq/paths/certificates/__init__.py +7 -0
  1205. extremecloudiq/paths/certificates/get.py +396 -0
  1206. extremecloudiq/paths/classification_rules/__init__.py +7 -0
  1207. extremecloudiq/paths/classification_rules/get.py +386 -0
  1208. extremecloudiq/paths/classification_rules/post.py +399 -0
  1209. extremecloudiq/paths/classification_rules_id/__init__.py +7 -0
  1210. extremecloudiq/paths/classification_rules_id/delete.py +350 -0
  1211. extremecloudiq/paths/classification_rules_id/get.py +358 -0
  1212. extremecloudiq/paths/classification_rules_id/put.py +456 -0
  1213. extremecloudiq/paths/client_monitor_profiles/__init__.py +7 -0
  1214. extremecloudiq/paths/client_monitor_profiles/get.py +386 -0
  1215. extremecloudiq/paths/client_monitor_profiles/post.py +399 -0
  1216. extremecloudiq/paths/client_monitor_profiles_id/__init__.py +7 -0
  1217. extremecloudiq/paths/client_monitor_profiles_id/delete.py +350 -0
  1218. extremecloudiq/paths/client_monitor_profiles_id/get.py +358 -0
  1219. extremecloudiq/paths/client_monitor_profiles_id/put.py +456 -0
  1220. extremecloudiq/paths/clients_active/__init__.py +7 -0
  1221. extremecloudiq/paths/clients_active/get.py +751 -0
  1222. extremecloudiq/paths/clients_active_count/__init__.py +7 -0
  1223. extremecloudiq/paths/clients_active_count/get.py +592 -0
  1224. extremecloudiq/paths/clients_alias/__init__.py +7 -0
  1225. extremecloudiq/paths/clients_alias/put.py +416 -0
  1226. extremecloudiq/paths/clients_by_mac_client_mac/__init__.py +7 -0
  1227. extremecloudiq/paths/clients_by_mac_client_mac/delete.py +350 -0
  1228. extremecloudiq/paths/clients_by_mac_client_mac/get.py +473 -0
  1229. extremecloudiq/paths/clients_id/__init__.py +7 -0
  1230. extremecloudiq/paths/clients_id/get.py +473 -0
  1231. extremecloudiq/paths/clients_summary/__init__.py +7 -0
  1232. extremecloudiq/paths/clients_summary/get.py +562 -0
  1233. extremecloudiq/paths/clients_usage/__init__.py +7 -0
  1234. extremecloudiq/paths/clients_usage/get.py +426 -0
  1235. extremecloudiq/paths/copilot_anomalies_adverse_traffic_device_stats/__init__.py +7 -0
  1236. extremecloudiq/paths/copilot_anomalies_adverse_traffic_device_stats/get.py +358 -0
  1237. extremecloudiq/paths/copilot_anomalies_adverse_traffic_packet_counts/__init__.py +7 -0
  1238. extremecloudiq/paths/copilot_anomalies_adverse_traffic_packet_counts/get.py +358 -0
  1239. extremecloudiq/paths/copilot_anomalies_anomalies_by_category/__init__.py +7 -0
  1240. extremecloudiq/paths/copilot_anomalies_anomalies_by_category/get.py +406 -0
  1241. extremecloudiq/paths/copilot_anomalies_devices_by_location/__init__.py +7 -0
  1242. extremecloudiq/paths/copilot_anomalies_devices_by_location/get.py +390 -0
  1243. extremecloudiq/paths/copilot_anomalies_devices_feedback/__init__.py +7 -0
  1244. extremecloudiq/paths/copilot_anomalies_devices_feedback/put.py +398 -0
  1245. extremecloudiq/paths/copilot_anomalies_devices_update_action/__init__.py +7 -0
  1246. extremecloudiq/paths/copilot_anomalies_devices_update_action/put.py +398 -0
  1247. extremecloudiq/paths/copilot_anomalies_devices_with_locations/__init__.py +7 -0
  1248. extremecloudiq/paths/copilot_anomalies_devices_with_locations/get.py +472 -0
  1249. extremecloudiq/paths/copilot_anomalies_dfs_recurrence_channel_stats/__init__.py +7 -0
  1250. extremecloudiq/paths/copilot_anomalies_dfs_recurrence_channel_stats/get.py +358 -0
  1251. extremecloudiq/paths/copilot_anomalies_dfs_recurrence_count_stats/__init__.py +7 -0
  1252. extremecloudiq/paths/copilot_anomalies_dfs_recurrence_count_stats/get.py +358 -0
  1253. extremecloudiq/paths/copilot_anomalies_exclude_vlans/__init__.py +7 -0
  1254. extremecloudiq/paths/copilot_anomalies_exclude_vlans/post.py +398 -0
  1255. extremecloudiq/paths/copilot_anomalies_exclude_vlans_csv/__init__.py +7 -0
  1256. extremecloudiq/paths/copilot_anomalies_exclude_vlans_csv/post.py +715 -0
  1257. extremecloudiq/paths/copilot_anomalies_excluded_vlans_list/__init__.py +7 -0
  1258. extremecloudiq/paths/copilot_anomalies_excluded_vlans_list/get.py +385 -0
  1259. extremecloudiq/paths/copilot_anomalies_hardware_health_client_list/__init__.py +7 -0
  1260. extremecloudiq/paths/copilot_anomalies_hardware_health_client_list/get.py +368 -0
  1261. extremecloudiq/paths/copilot_anomalies_hardware_health_cpu_mem_stats/__init__.py +7 -0
  1262. extremecloudiq/paths/copilot_anomalies_hardware_health_cpu_mem_stats/get.py +379 -0
  1263. extremecloudiq/paths/copilot_anomalies_hardware_health_stats/__init__.py +7 -0
  1264. extremecloudiq/paths/copilot_anomalies_hardware_health_stats/get.py +358 -0
  1265. extremecloudiq/paths/copilot_anomalies_locations/__init__.py +7 -0
  1266. extremecloudiq/paths/copilot_anomalies_locations/get.py +424 -0
  1267. extremecloudiq/paths/copilot_anomalies_missing_vlan_count/__init__.py +7 -0
  1268. extremecloudiq/paths/copilot_anomalies_missing_vlan_count/get.py +432 -0
  1269. extremecloudiq/paths/copilot_anomalies_notifications/__init__.py +7 -0
  1270. extremecloudiq/paths/copilot_anomalies_notifications/get.py +303 -0
  1271. extremecloudiq/paths/copilot_anomalies_poeflapping_lldp_cdp_info/__init__.py +7 -0
  1272. extremecloudiq/paths/copilot_anomalies_poeflapping_lldp_cdp_info/get.py +389 -0
  1273. extremecloudiq/paths/copilot_anomalies_poeflapping_stats/__init__.py +7 -0
  1274. extremecloudiq/paths/copilot_anomalies_poeflapping_stats/get.py +358 -0
  1275. extremecloudiq/paths/copilot_anomalies_poeflapping_trends/__init__.py +7 -0
  1276. extremecloudiq/paths/copilot_anomalies_poeflapping_trends/get.py +358 -0
  1277. extremecloudiq/paths/copilot_anomalies_port_efficiency_speed_duplex_stats/__init__.py +7 -0
  1278. extremecloudiq/paths/copilot_anomalies_port_efficiency_speed_duplex_stats/get.py +358 -0
  1279. extremecloudiq/paths/copilot_anomalies_port_efficiency_stats/__init__.py +7 -0
  1280. extremecloudiq/paths/copilot_anomalies_port_efficiency_stats/get.py +367 -0
  1281. extremecloudiq/paths/copilot_anomalies_report/__init__.py +7 -0
  1282. extremecloudiq/paths/copilot_anomalies_report/get.py +453 -0
  1283. extremecloudiq/paths/copilot_anomalies_update_action/__init__.py +7 -0
  1284. extremecloudiq/paths/copilot_anomalies_update_action/put.py +398 -0
  1285. extremecloudiq/paths/copilot_anomalies_update_device_action/__init__.py +7 -0
  1286. extremecloudiq/paths/copilot_anomalies_update_device_action/put.py +448 -0
  1287. extremecloudiq/paths/copilot_anomalies_wifi_capacity_client_list/__init__.py +7 -0
  1288. extremecloudiq/paths/copilot_anomalies_wifi_capacity_client_list/get.py +378 -0
  1289. extremecloudiq/paths/copilot_anomalies_wifi_capacity_stats/__init__.py +7 -0
  1290. extremecloudiq/paths/copilot_anomalies_wifi_capacity_stats/get.py +358 -0
  1291. extremecloudiq/paths/copilot_anomalies_wifi_efficiency_client_list/__init__.py +7 -0
  1292. extremecloudiq/paths/copilot_anomalies_wifi_efficiency_client_list/get.py +378 -0
  1293. extremecloudiq/paths/copilot_anomalies_wifi_efficiency_stats/__init__.py +7 -0
  1294. extremecloudiq/paths/copilot_anomalies_wifi_efficiency_stats/get.py +358 -0
  1295. extremecloudiq/paths/copilot_assurance_scans_overview/__init__.py +7 -0
  1296. extremecloudiq/paths/copilot_assurance_scans_overview/get.py +303 -0
  1297. extremecloudiq/paths/copilot_connectivity_client_type/__init__.py +7 -0
  1298. extremecloudiq/paths/copilot_connectivity_client_type/get.py +397 -0
  1299. extremecloudiq/paths/copilot_connectivity_locations/__init__.py +7 -0
  1300. extremecloudiq/paths/copilot_connectivity_locations/get.py +454 -0
  1301. extremecloudiq/paths/copilot_connectivity_wired_events/__init__.py +7 -0
  1302. extremecloudiq/paths/copilot_connectivity_wired_events/get.py +484 -0
  1303. extremecloudiq/paths/copilot_connectivity_wired_experience/__init__.py +7 -0
  1304. extremecloudiq/paths/copilot_connectivity_wired_experience/get.py +417 -0
  1305. extremecloudiq/paths/copilot_connectivity_wired_hardware/__init__.py +7 -0
  1306. extremecloudiq/paths/copilot_connectivity_wired_hardware/get.py +399 -0
  1307. extremecloudiq/paths/copilot_connectivity_wired_locations_hardware/__init__.py +7 -0
  1308. extremecloudiq/paths/copilot_connectivity_wired_locations_hardware/get.py +398 -0
  1309. extremecloudiq/paths/copilot_connectivity_wired_quality_index/__init__.py +7 -0
  1310. extremecloudiq/paths/copilot_connectivity_wired_quality_index/get.py +397 -0
  1311. extremecloudiq/paths/copilot_connectivity_wireless_apps/__init__.py +7 -0
  1312. extremecloudiq/paths/copilot_connectivity_wireless_apps/get.py +416 -0
  1313. extremecloudiq/paths/copilot_connectivity_wireless_events/__init__.py +7 -0
  1314. extremecloudiq/paths/copilot_connectivity_wireless_events/get.py +502 -0
  1315. extremecloudiq/paths/copilot_connectivity_wireless_experience/__init__.py +7 -0
  1316. extremecloudiq/paths/copilot_connectivity_wireless_experience/get.py +436 -0
  1317. extremecloudiq/paths/copilot_connectivity_wireless_locations_events/__init__.py +7 -0
  1318. extremecloudiq/paths/copilot_connectivity_wireless_locations_events/get.py +492 -0
  1319. extremecloudiq/paths/copilot_connectivity_wireless_locations_performance/__init__.py +7 -0
  1320. extremecloudiq/paths/copilot_connectivity_wireless_locations_performance/get.py +406 -0
  1321. extremecloudiq/paths/copilot_connectivity_wireless_locations_quality_index/__init__.py +7 -0
  1322. extremecloudiq/paths/copilot_connectivity_wireless_locations_quality_index/get.py +406 -0
  1323. extremecloudiq/paths/copilot_connectivity_wireless_locations_time_to_connect/__init__.py +7 -0
  1324. extremecloudiq/paths/copilot_connectivity_wireless_locations_time_to_connect/get.py +406 -0
  1325. extremecloudiq/paths/copilot_connectivity_wireless_performance/__init__.py +7 -0
  1326. extremecloudiq/paths/copilot_connectivity_wireless_performance/get.py +416 -0
  1327. extremecloudiq/paths/copilot_connectivity_wireless_quality_index/__init__.py +7 -0
  1328. extremecloudiq/paths/copilot_connectivity_wireless_quality_index/get.py +416 -0
  1329. extremecloudiq/paths/copilot_connectivity_wireless_time_to_connect/__init__.py +7 -0
  1330. extremecloudiq/paths/copilot_connectivity_wireless_time_to_connect/get.py +416 -0
  1331. extremecloudiq/paths/copilot_connectivity_wireless_views/__init__.py +7 -0
  1332. extremecloudiq/paths/copilot_connectivity_wireless_views/get.py +359 -0
  1333. extremecloudiq/paths/countries/__init__.py +7 -0
  1334. extremecloudiq/paths/countries/get.py +325 -0
  1335. extremecloudiq/paths/countries_country_alpha2_code_states/__init__.py +7 -0
  1336. extremecloudiq/paths/countries_country_alpha2_code_states/get.py +379 -0
  1337. extremecloudiq/paths/countries_country_code_validate/__init__.py +7 -0
  1338. extremecloudiq/paths/countries_country_code_validate/get.py +353 -0
  1339. extremecloudiq/paths/cwps/__init__.py +7 -0
  1340. extremecloudiq/paths/cwps/get.py +386 -0
  1341. extremecloudiq/paths/deployments/__init__.py +7 -0
  1342. extremecloudiq/paths/deployments/get.py +386 -0
  1343. extremecloudiq/paths/deployments/post.py +456 -0
  1344. extremecloudiq/paths/deployments_deployment_id/__init__.py +7 -0
  1345. extremecloudiq/paths/deployments_deployment_id/delete.py +358 -0
  1346. extremecloudiq/paths/deployments_deployment_id/get.py +358 -0
  1347. extremecloudiq/paths/deployments_deployment_id/put.py +456 -0
  1348. extremecloudiq/paths/deployments_deployment_id_status/__init__.py +7 -0
  1349. extremecloudiq/paths/deployments_deployment_id_status/get.py +412 -0
  1350. extremecloudiq/paths/deployments_firmware_metadatas/__init__.py +7 -0
  1351. extremecloudiq/paths/deployments_firmware_metadatas/post.py +399 -0
  1352. extremecloudiq/paths/deployments_overview/__init__.py +7 -0
  1353. extremecloudiq/paths/deployments_overview/get.py +304 -0
  1354. extremecloudiq/paths/deployments_status/__init__.py +7 -0
  1355. extremecloudiq/paths/deployments_status/get.py +413 -0
  1356. extremecloudiq/paths/devices/__init__.py +7 -0
  1357. extremecloudiq/paths/devices/get.py +716 -0
  1358. extremecloudiq/paths/devices_advanced_onboard/__init__.py +7 -0
  1359. extremecloudiq/paths/devices_advanced_onboard/post.py +456 -0
  1360. extremecloudiq/paths/devices_check_ownership/__init__.py +7 -0
  1361. extremecloudiq/paths/devices_check_ownership/post.py +397 -0
  1362. extremecloudiq/paths/devices_cli/__init__.py +7 -0
  1363. extremecloudiq/paths/devices_cli/post.py +456 -0
  1364. extremecloudiq/paths/devices_client_monitor_assign/__init__.py +7 -0
  1365. extremecloudiq/paths/devices_client_monitor_assign/post.py +391 -0
  1366. extremecloudiq/paths/devices_client_monitor_query/__init__.py +7 -0
  1367. extremecloudiq/paths/devices_client_monitor_query/post.py +430 -0
  1368. extremecloudiq/paths/devices_client_monitor_revoke/__init__.py +7 -0
  1369. extremecloudiq/paths/devices_client_monitor_revoke/post.py +391 -0
  1370. extremecloudiq/paths/devices_country_code_assign/__init__.py +7 -0
  1371. extremecloudiq/paths/devices_country_code_assign/post.py +391 -0
  1372. extremecloudiq/paths/devices_delete/__init__.py +7 -0
  1373. extremecloudiq/paths/devices_delete/post.py +448 -0
  1374. extremecloudiq/paths/devices_digital_twin/__init__.py +7 -0
  1375. extremecloudiq/paths/devices_digital_twin/get.py +456 -0
  1376. extremecloudiq/paths/devices_ibeacon/__init__.py +7 -0
  1377. extremecloudiq/paths/devices_ibeacon/put.py +391 -0
  1378. extremecloudiq/paths/devices_id/__init__.py +7 -0
  1379. extremecloudiq/paths/devices_id/delete.py +404 -0
  1380. extremecloudiq/paths/devices_id/get.py +473 -0
  1381. extremecloudiq/paths/devices_id_alarms/__init__.py +7 -0
  1382. extremecloudiq/paths/devices_id_alarms/get.py +460 -0
  1383. extremecloudiq/paths/devices_id_bounce_port/__init__.py +7 -0
  1384. extremecloudiq/paths/devices_id_bounce_port/post.py +456 -0
  1385. extremecloudiq/paths/devices_id_cli/__init__.py +7 -0
  1386. extremecloudiq/paths/devices_id_cli/post.py +477 -0
  1387. extremecloudiq/paths/devices_id_client_monitor/__init__.py +7 -0
  1388. extremecloudiq/paths/devices_id_client_monitor/delete.py +350 -0
  1389. extremecloudiq/paths/devices_id_client_monitor/get.py +358 -0
  1390. extremecloudiq/paths/devices_id_client_monitor/put.py +448 -0
  1391. extremecloudiq/paths/devices_id_description/__init__.py +7 -0
  1392. extremecloudiq/paths/devices_id_description/put.py +456 -0
  1393. extremecloudiq/paths/devices_id_ftm_settings/__init__.py +7 -0
  1394. extremecloudiq/paths/devices_id_ftm_settings/delete.py +350 -0
  1395. extremecloudiq/paths/devices_id_ftm_settings/get.py +358 -0
  1396. extremecloudiq/paths/devices_id_ftm_settings/put.py +456 -0
  1397. extremecloudiq/paths/devices_id_gallery_image/__init__.py +7 -0
  1398. extremecloudiq/paths/devices_id_gallery_image/get.py +413 -0
  1399. extremecloudiq/paths/devices_id_geolocation/__init__.py +7 -0
  1400. extremecloudiq/paths/devices_id_geolocation/get.py +358 -0
  1401. extremecloudiq/paths/devices_id_history_cpu_mem/__init__.py +7 -0
  1402. extremecloudiq/paths/devices_id_history_cpu_mem/get.py +466 -0
  1403. extremecloudiq/paths/devices_id_hostname/__init__.py +7 -0
  1404. extremecloudiq/paths/devices_id_hostname/put.py +405 -0
  1405. extremecloudiq/paths/devices_id_ibeacon/__init__.py +7 -0
  1406. extremecloudiq/paths/devices_id_ibeacon/get.py +358 -0
  1407. extremecloudiq/paths/devices_id_installation_report/__init__.py +7 -0
  1408. extremecloudiq/paths/devices_id_installation_report/get.py +358 -0
  1409. extremecloudiq/paths/devices_id_interfaces_wifi/__init__.py +7 -0
  1410. extremecloudiq/paths/devices_id_interfaces_wifi/get.py +448 -0
  1411. extremecloudiq/paths/devices_id_iot/__init__.py +7 -0
  1412. extremecloudiq/paths/devices_id_iot/get.py +358 -0
  1413. extremecloudiq/paths/devices_id_iot_disable/__init__.py +7 -0
  1414. extremecloudiq/paths/devices_id_iot_disable/post.py +350 -0
  1415. extremecloudiq/paths/devices_id_iot_enable/__init__.py +7 -0
  1416. extremecloudiq/paths/devices_id_iot_enable/post.py +447 -0
  1417. extremecloudiq/paths/devices_id_location/__init__.py +7 -0
  1418. extremecloudiq/paths/devices_id_location/delete.py +350 -0
  1419. extremecloudiq/paths/devices_id_location/get.py +358 -0
  1420. extremecloudiq/paths/devices_id_location/put.py +448 -0
  1421. extremecloudiq/paths/devices_id_manage/__init__.py +7 -0
  1422. extremecloudiq/paths/devices_id_manage/post.py +350 -0
  1423. extremecloudiq/paths/devices_id_monitor_refresh/__init__.py +7 -0
  1424. extremecloudiq/paths/devices_id_monitor_refresh/post.py +437 -0
  1425. extremecloudiq/paths/devices_id_monitor_refresh_status/__init__.py +7 -0
  1426. extremecloudiq/paths/devices_id_monitor_refresh_status/get.py +413 -0
  1427. extremecloudiq/paths/devices_id_network_policy/__init__.py +7 -0
  1428. extremecloudiq/paths/devices_id_network_policy/delete.py +350 -0
  1429. extremecloudiq/paths/devices_id_network_policy/get.py +358 -0
  1430. extremecloudiq/paths/devices_id_network_policy/put.py +405 -0
  1431. extremecloudiq/paths/devices_id_radio_operating_mode/__init__.py +7 -0
  1432. extremecloudiq/paths/devices_id_radio_operating_mode/get.py +358 -0
  1433. extremecloudiq/paths/devices_id_radio_operating_mode/put.py +448 -0
  1434. extremecloudiq/paths/devices_id_reboot/__init__.py +7 -0
  1435. extremecloudiq/paths/devices_id_reboot/post.py +350 -0
  1436. extremecloudiq/paths/devices_id_reset/__init__.py +7 -0
  1437. extremecloudiq/paths/devices_id_reset/post.py +404 -0
  1438. extremecloudiq/paths/devices_id_ssid_override/__init__.py +7 -0
  1439. extremecloudiq/paths/devices_id_ssid_override/post.py +448 -0
  1440. extremecloudiq/paths/devices_id_ssid_status/__init__.py +7 -0
  1441. extremecloudiq/paths/devices_id_ssid_status/get.py +389 -0
  1442. extremecloudiq/paths/devices_id_ssid_status_change/__init__.py +7 -0
  1443. extremecloudiq/paths/devices_id_ssid_status_change/post.py +448 -0
  1444. extremecloudiq/paths/devices_id_thread_commissioner_start/__init__.py +7 -0
  1445. extremecloudiq/paths/devices_id_thread_commissioner_start/post.py +448 -0
  1446. extremecloudiq/paths/devices_id_thread_commissioner_stop/__init__.py +7 -0
  1447. extremecloudiq/paths/devices_id_thread_commissioner_stop/post.py +448 -0
  1448. extremecloudiq/paths/devices_id_unmanage/__init__.py +7 -0
  1449. extremecloudiq/paths/devices_id_unmanage/post.py +350 -0
  1450. extremecloudiq/paths/devices_location_assign/__init__.py +7 -0
  1451. extremecloudiq/paths/devices_location_assign/post.py +391 -0
  1452. extremecloudiq/paths/devices_location_query/__init__.py +7 -0
  1453. extremecloudiq/paths/devices_location_query/post.py +430 -0
  1454. extremecloudiq/paths/devices_location_revoke/__init__.py +7 -0
  1455. extremecloudiq/paths/devices_location_revoke/post.py +391 -0
  1456. extremecloudiq/paths/devices_manage/__init__.py +7 -0
  1457. extremecloudiq/paths/devices_manage/post.py +391 -0
  1458. extremecloudiq/paths/devices_network_policy_assign/__init__.py +7 -0
  1459. extremecloudiq/paths/devices_network_policy_assign/post.py +391 -0
  1460. extremecloudiq/paths/devices_network_policy_policy_id/__init__.py +7 -0
  1461. extremecloudiq/paths/devices_network_policy_policy_id/get.py +440 -0
  1462. extremecloudiq/paths/devices_network_policy_query/__init__.py +7 -0
  1463. extremecloudiq/paths/devices_network_policy_query/post.py +430 -0
  1464. extremecloudiq/paths/devices_network_policy_revoke/__init__.py +7 -0
  1465. extremecloudiq/paths/devices_network_policy_revoke/post.py +391 -0
  1466. extremecloudiq/paths/devices_onboard/__init__.py +7 -0
  1467. extremecloudiq/paths/devices_onboard/post.py +391 -0
  1468. extremecloudiq/paths/devices_os_change/__init__.py +7 -0
  1469. extremecloudiq/paths/devices_os_change/post.py +391 -0
  1470. extremecloudiq/paths/devices_radio_information/__init__.py +7 -0
  1471. extremecloudiq/paths/devices_radio_information/get.py +427 -0
  1472. extremecloudiq/paths/devices_radius_proxy_assign/__init__.py +7 -0
  1473. extremecloudiq/paths/devices_radius_proxy_assign/put.py +383 -0
  1474. extremecloudiq/paths/devices_radius_proxy_revoke/__init__.py +7 -0
  1475. extremecloudiq/paths/devices_radius_proxy_revoke/delete.py +373 -0
  1476. extremecloudiq/paths/devices_reboot/__init__.py +7 -0
  1477. extremecloudiq/paths/devices_reboot/post.py +391 -0
  1478. extremecloudiq/paths/devices_stats/__init__.py +7 -0
  1479. extremecloudiq/paths/devices_stats/get.py +358 -0
  1480. extremecloudiq/paths/devices_unmanage/__init__.py +7 -0
  1481. extremecloudiq/paths/devices_unmanage/post.py +391 -0
  1482. extremecloudiq/paths/email_templates/__init__.py +7 -0
  1483. extremecloudiq/paths/email_templates/get.py +384 -0
  1484. extremecloudiq/paths/endusers/__init__.py +7 -0
  1485. extremecloudiq/paths/endusers/get.py +448 -0
  1486. extremecloudiq/paths/endusers/post.py +399 -0
  1487. extremecloudiq/paths/endusers_id/__init__.py +7 -0
  1488. extremecloudiq/paths/endusers_id/delete.py +350 -0
  1489. extremecloudiq/paths/endusers_id/put.py +456 -0
  1490. extremecloudiq/paths/endusers_id_regenerate_password/__init__.py +7 -0
  1491. extremecloudiq/paths/endusers_id_regenerate_password/post.py +358 -0
  1492. extremecloudiq/paths/essentials_eloc_clients_client_mac_last_known_location/__init__.py +7 -0
  1493. extremecloudiq/paths/essentials_eloc_clients_client_mac_last_known_location/get.py +423 -0
  1494. extremecloudiq/paths/hiq_context/__init__.py +7 -0
  1495. extremecloudiq/paths/hiq_context/get.py +304 -0
  1496. extremecloudiq/paths/hiq_context/put.py +391 -0
  1497. extremecloudiq/paths/hiq_context_creating/__init__.py +7 -0
  1498. extremecloudiq/paths/hiq_context_creating/get.py +303 -0
  1499. extremecloudiq/paths/hiq_context_creating/put.py +390 -0
  1500. extremecloudiq/paths/hiq_context_reading/__init__.py +7 -0
  1501. extremecloudiq/paths/hiq_context_reading/get.py +325 -0
  1502. extremecloudiq/paths/hiq_context_reading/put.py +412 -0
  1503. extremecloudiq/paths/hiq_organizations/__init__.py +7 -0
  1504. extremecloudiq/paths/hiq_organizations/get.py +329 -0
  1505. extremecloudiq/paths/hiq_organizations/post.py +399 -0
  1506. extremecloudiq/paths/hiq_organizations_id/__init__.py +7 -0
  1507. extremecloudiq/paths/hiq_organizations_id/delete.py +350 -0
  1508. extremecloudiq/paths/hiq_organizations_id_rename/__init__.py +7 -0
  1509. extremecloudiq/paths/hiq_organizations_id_rename/post.py +447 -0
  1510. extremecloudiq/paths/hiq_status/__init__.py +7 -0
  1511. extremecloudiq/paths/hiq_status/get.py +304 -0
  1512. extremecloudiq/paths/hotspot_profiles/__init__.py +7 -0
  1513. extremecloudiq/paths/hotspot_profiles/get.py +386 -0
  1514. extremecloudiq/paths/hotspot_profiles/post.py +399 -0
  1515. extremecloudiq/paths/hotspot_profiles_id/__init__.py +7 -0
  1516. extremecloudiq/paths/hotspot_profiles_id/delete.py +350 -0
  1517. extremecloudiq/paths/hotspot_profiles_id/get.py +358 -0
  1518. extremecloudiq/paths/hotspot_profiles_id/put.py +456 -0
  1519. extremecloudiq/paths/hotspot_service_provider_profiles/__init__.py +7 -0
  1520. extremecloudiq/paths/hotspot_service_provider_profiles/get.py +386 -0
  1521. extremecloudiq/paths/hotspot_service_provider_profiles/post.py +399 -0
  1522. extremecloudiq/paths/hotspot_service_provider_profiles_id/__init__.py +7 -0
  1523. extremecloudiq/paths/hotspot_service_provider_profiles_id/delete.py +350 -0
  1524. extremecloudiq/paths/hotspot_service_provider_profiles_id/get.py +358 -0
  1525. extremecloudiq/paths/hotspot_service_provider_profiles_id/put.py +456 -0
  1526. extremecloudiq/paths/iot_profiles/__init__.py +7 -0
  1527. extremecloudiq/paths/iot_profiles/get.py +406 -0
  1528. extremecloudiq/paths/iot_profiles/post.py +399 -0
  1529. extremecloudiq/paths/iot_profiles_id/__init__.py +7 -0
  1530. extremecloudiq/paths/iot_profiles_id/delete.py +350 -0
  1531. extremecloudiq/paths/iot_profiles_id/get.py +358 -0
  1532. extremecloudiq/paths/iot_profiles_id/put.py +456 -0
  1533. extremecloudiq/paths/ip_firewall_policies/__init__.py +7 -0
  1534. extremecloudiq/paths/ip_firewall_policies/get.py +386 -0
  1535. extremecloudiq/paths/ip_firewall_policies/post.py +399 -0
  1536. extremecloudiq/paths/ip_firewall_policies_id/__init__.py +7 -0
  1537. extremecloudiq/paths/ip_firewall_policies_id/delete.py +350 -0
  1538. extremecloudiq/paths/ip_firewall_policies_id/get.py +358 -0
  1539. extremecloudiq/paths/ip_firewall_policies_id/put.py +456 -0
  1540. extremecloudiq/paths/ip_firewall_policies_id_ip_firewall_rule_attach/__init__.py +7 -0
  1541. extremecloudiq/paths/ip_firewall_policies_id_ip_firewall_rule_attach/post.py +448 -0
  1542. extremecloudiq/paths/ip_firewall_policies_id_ip_firewall_rule_detach/__init__.py +7 -0
  1543. extremecloudiq/paths/ip_firewall_policies_id_ip_firewall_rule_detach/post.py +447 -0
  1544. extremecloudiq/paths/l3_address_profiles/__init__.py +7 -0
  1545. extremecloudiq/paths/l3_address_profiles/get.py +434 -0
  1546. extremecloudiq/paths/l3_address_profiles/post.py +399 -0
  1547. extremecloudiq/paths/l3_address_profiles_id/__init__.py +7 -0
  1548. extremecloudiq/paths/l3_address_profiles_id/delete.py +350 -0
  1549. extremecloudiq/paths/l3_address_profiles_id/get.py +358 -0
  1550. extremecloudiq/paths/l3_address_profiles_id/put.py +456 -0
  1551. extremecloudiq/paths/ldap_servers/__init__.py +7 -0
  1552. extremecloudiq/paths/ldap_servers/get.py +386 -0
  1553. extremecloudiq/paths/ldap_servers/post.py +399 -0
  1554. extremecloudiq/paths/ldap_servers_id/__init__.py +7 -0
  1555. extremecloudiq/paths/ldap_servers_id/delete.py +350 -0
  1556. extremecloudiq/paths/ldap_servers_id/get.py +358 -0
  1557. extremecloudiq/paths/ldap_servers_id/put.py +456 -0
  1558. extremecloudiq/paths/locations/__init__.py +7 -0
  1559. extremecloudiq/paths/locations/post.py +399 -0
  1560. extremecloudiq/paths/locations_building/__init__.py +7 -0
  1561. extremecloudiq/paths/locations_building/get.py +436 -0
  1562. extremecloudiq/paths/locations_building/post.py +399 -0
  1563. extremecloudiq/paths/locations_building_id/__init__.py +7 -0
  1564. extremecloudiq/paths/locations_building_id/delete.py +404 -0
  1565. extremecloudiq/paths/locations_building_id/get.py +358 -0
  1566. extremecloudiq/paths/locations_building_id/put.py +456 -0
  1567. extremecloudiq/paths/locations_floor/__init__.py +7 -0
  1568. extremecloudiq/paths/locations_floor/get.py +436 -0
  1569. extremecloudiq/paths/locations_floor/post.py +399 -0
  1570. extremecloudiq/paths/locations_floor_id/__init__.py +7 -0
  1571. extremecloudiq/paths/locations_floor_id/delete.py +350 -0
  1572. extremecloudiq/paths/locations_floor_id/get.py +358 -0
  1573. extremecloudiq/paths/locations_floor_id/put.py +456 -0
  1574. extremecloudiq/paths/locations_floorplan/__init__.py +7 -0
  1575. extremecloudiq/paths/locations_floorplan/post.py +441 -0
  1576. extremecloudiq/paths/locations_id/__init__.py +7 -0
  1577. extremecloudiq/paths/locations_id/delete.py +404 -0
  1578. extremecloudiq/paths/locations_id/put.py +456 -0
  1579. extremecloudiq/paths/locations_import_ekahau/__init__.py +7 -0
  1580. extremecloudiq/paths/locations_import_ekahau/post.py +587 -0
  1581. extremecloudiq/paths/locations_init/__init__.py +7 -0
  1582. extremecloudiq/paths/locations_init/post.py +399 -0
  1583. extremecloudiq/paths/locations_site/__init__.py +7 -0
  1584. extremecloudiq/paths/locations_site/get.py +436 -0
  1585. extremecloudiq/paths/locations_site/post.py +399 -0
  1586. extremecloudiq/paths/locations_site_id/__init__.py +7 -0
  1587. extremecloudiq/paths/locations_site_id/delete.py +404 -0
  1588. extremecloudiq/paths/locations_site_id/get.py +358 -0
  1589. extremecloudiq/paths/locations_site_id/put.py +456 -0
  1590. extremecloudiq/paths/locations_tree/__init__.py +7 -0
  1591. extremecloudiq/paths/locations_tree/get.py +392 -0
  1592. extremecloudiq/paths/locations_tree_devices/__init__.py +7 -0
  1593. extremecloudiq/paths/locations_tree_devices/get.py +404 -0
  1594. extremecloudiq/paths/locations_tree_maps/__init__.py +7 -0
  1595. extremecloudiq/paths/locations_tree_maps/get.py +404 -0
  1596. extremecloudiq/paths/login/__init__.py +7 -0
  1597. extremecloudiq/paths/login/post.py +395 -0
  1598. extremecloudiq/paths/logout/__init__.py +7 -0
  1599. extremecloudiq/paths/logout/post.py +296 -0
  1600. extremecloudiq/paths/logs_accounting/__init__.py +7 -0
  1601. extremecloudiq/paths/logs_accounting/get.py +422 -0
  1602. extremecloudiq/paths/logs_audit/__init__.py +7 -0
  1603. extremecloudiq/paths/logs_audit/get.py +479 -0
  1604. extremecloudiq/paths/logs_audit_full_descriptions_id/__init__.py +7 -0
  1605. extremecloudiq/paths/logs_audit_full_descriptions_id/get.py +358 -0
  1606. extremecloudiq/paths/logs_audit_reports/__init__.py +7 -0
  1607. extremecloudiq/paths/logs_audit_reports/post.py +458 -0
  1608. extremecloudiq/paths/logs_audit_reports_id/__init__.py +7 -0
  1609. extremecloudiq/paths/logs_audit_reports_id/get.py +379 -0
  1610. extremecloudiq/paths/logs_auth/__init__.py +7 -0
  1611. extremecloudiq/paths/logs_auth/get.py +422 -0
  1612. extremecloudiq/paths/logs_credential/__init__.py +7 -0
  1613. extremecloudiq/paths/logs_credential/get.py +413 -0
  1614. extremecloudiq/paths/logs_email/__init__.py +7 -0
  1615. extremecloudiq/paths/logs_email/get.py +413 -0
  1616. extremecloudiq/paths/logs_sms/__init__.py +7 -0
  1617. extremecloudiq/paths/logs_sms/get.py +413 -0
  1618. extremecloudiq/paths/mac_firewall_policies/__init__.py +7 -0
  1619. extremecloudiq/paths/mac_firewall_policies/get.py +386 -0
  1620. extremecloudiq/paths/mac_firewall_policies/post.py +399 -0
  1621. extremecloudiq/paths/mac_firewall_policies_id/__init__.py +7 -0
  1622. extremecloudiq/paths/mac_firewall_policies_id/delete.py +350 -0
  1623. extremecloudiq/paths/mac_firewall_policies_id/get.py +358 -0
  1624. extremecloudiq/paths/mac_firewall_policies_id/put.py +456 -0
  1625. extremecloudiq/paths/mac_firewall_policies_id_mac_firewall_rule_attach/__init__.py +7 -0
  1626. extremecloudiq/paths/mac_firewall_policies_id_mac_firewall_rule_attach/post.py +448 -0
  1627. extremecloudiq/paths/mac_firewall_policies_id_mac_firewall_rule_detach/__init__.py +7 -0
  1628. extremecloudiq/paths/mac_firewall_policies_id_mac_firewall_rule_detach/post.py +447 -0
  1629. extremecloudiq/paths/mac_object_profiles/__init__.py +7 -0
  1630. extremecloudiq/paths/mac_object_profiles/get.py +386 -0
  1631. extremecloudiq/paths/mac_object_profiles/post.py +399 -0
  1632. extremecloudiq/paths/mac_object_profiles_id/__init__.py +7 -0
  1633. extremecloudiq/paths/mac_object_profiles_id/delete.py +350 -0
  1634. extremecloudiq/paths/mac_object_profiles_id/get.py +358 -0
  1635. extremecloudiq/paths/mac_object_profiles_id/put.py +456 -0
  1636. extremecloudiq/paths/network_policies/__init__.py +7 -0
  1637. extremecloudiq/paths/network_policies/get.py +471 -0
  1638. extremecloudiq/paths/network_policies/post.py +399 -0
  1639. extremecloudiq/paths/network_policies_id/__init__.py +7 -0
  1640. extremecloudiq/paths/network_policies_id/delete.py +350 -0
  1641. extremecloudiq/paths/network_policies_id/get.py +358 -0
  1642. extremecloudiq/paths/network_policies_id/put.py +456 -0
  1643. extremecloudiq/paths/network_policies_id_ssids/__init__.py +7 -0
  1644. extremecloudiq/paths/network_policies_id_ssids/get.py +440 -0
  1645. extremecloudiq/paths/network_policies_id_ssids_add/__init__.py +7 -0
  1646. extremecloudiq/paths/network_policies_id_ssids_add/post.py +469 -0
  1647. extremecloudiq/paths/network_policies_id_ssids_remove/__init__.py +7 -0
  1648. extremecloudiq/paths/network_policies_id_ssids_remove/post.py +469 -0
  1649. extremecloudiq/paths/network_scorecard_client_health_location_id/__init__.py +7 -0
  1650. extremecloudiq/paths/network_scorecard_client_health_location_id/get.py +421 -0
  1651. extremecloudiq/paths/network_scorecard_device_health_location_id/__init__.py +7 -0
  1652. extremecloudiq/paths/network_scorecard_device_health_location_id/get.py +421 -0
  1653. extremecloudiq/paths/network_scorecard_network_health_location_id/__init__.py +7 -0
  1654. extremecloudiq/paths/network_scorecard_network_health_location_id/get.py +421 -0
  1655. extremecloudiq/paths/network_scorecard_services_health_location_id/__init__.py +7 -0
  1656. extremecloudiq/paths/network_scorecard_services_health_location_id/get.py +421 -0
  1657. extremecloudiq/paths/network_scorecard_wifi_health_location_id/__init__.py +7 -0
  1658. extremecloudiq/paths/network_scorecard_wifi_health_location_id/get.py +421 -0
  1659. extremecloudiq/paths/network_services/__init__.py +7 -0
  1660. extremecloudiq/paths/network_services/get.py +415 -0
  1661. extremecloudiq/paths/network_services/post.py +399 -0
  1662. extremecloudiq/paths/network_services_id/__init__.py +7 -0
  1663. extremecloudiq/paths/network_services_id/delete.py +350 -0
  1664. extremecloudiq/paths/nos_device_device_id_nos_api/__init__.py +7 -0
  1665. extremecloudiq/paths/nos_device_device_id_nos_api/post.py +456 -0
  1666. extremecloudiq/paths/operations_operation_id/__init__.py +7 -0
  1667. extremecloudiq/paths/operations_operation_id/delete.py +350 -0
  1668. extremecloudiq/paths/operations_operation_id/get.py +358 -0
  1669. extremecloudiq/paths/operations_operation_id_cancel/__init__.py +7 -0
  1670. extremecloudiq/paths/operations_operation_id_cancel/post.py +350 -0
  1671. extremecloudiq/paths/packetcaptures/__init__.py +7 -0
  1672. extremecloudiq/paths/packetcaptures/get.py +450 -0
  1673. extremecloudiq/paths/packetcaptures/post.py +398 -0
  1674. extremecloudiq/paths/packetcaptures_files/__init__.py +7 -0
  1675. extremecloudiq/paths/packetcaptures_files/get.py +381 -0
  1676. extremecloudiq/paths/packetcaptures_id/__init__.py +7 -0
  1677. extremecloudiq/paths/packetcaptures_id/delete.py +350 -0
  1678. extremecloudiq/paths/packetcaptures_id/get.py +438 -0
  1679. extremecloudiq/paths/packetcaptures_id_stop/__init__.py +7 -0
  1680. extremecloudiq/paths/packetcaptures_id_stop/post.py +448 -0
  1681. extremecloudiq/paths/packetcaptures_id_upload/__init__.py +7 -0
  1682. extremecloudiq/paths/packetcaptures_id_upload/post.py +350 -0
  1683. extremecloudiq/paths/pcgs_key_based/__init__.py +7 -0
  1684. extremecloudiq/paths/pcgs_key_based/get.py +329 -0
  1685. extremecloudiq/paths/pcgs_key_based/post.py +456 -0
  1686. extremecloudiq/paths/pcgs_key_based_network_policy_policy_id/__init__.py +7 -0
  1687. extremecloudiq/paths/pcgs_key_based_network_policy_policy_id/delete.py +427 -0
  1688. extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_keys_email/__init__.py +7 -0
  1689. extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_keys_email/post.py +427 -0
  1690. extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_keys_generate/__init__.py +7 -0
  1691. extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_keys_generate/post.py +427 -0
  1692. extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_onboard/__init__.py +7 -0
  1693. extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_onboard/post.py +513 -0
  1694. extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_port_assignments/__init__.py +7 -0
  1695. extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_port_assignments/get.py +358 -0
  1696. extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_port_assignments/post.py +456 -0
  1697. extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_users/__init__.py +7 -0
  1698. extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_users/delete.py +448 -0
  1699. extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_users/get.py +383 -0
  1700. extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_users/post.py +513 -0
  1701. extremecloudiq/paths/pcgs_key_based_network_policy_policy_id_users/put.py +448 -0
  1702. extremecloudiq/paths/radio_operating_modes_product_type/__init__.py +7 -0
  1703. extremecloudiq/paths/radio_operating_modes_product_type/get.py +383 -0
  1704. extremecloudiq/paths/radio_profiles/__init__.py +7 -0
  1705. extremecloudiq/paths/radio_profiles/get.py +386 -0
  1706. extremecloudiq/paths/radio_profiles/post.py +399 -0
  1707. extremecloudiq/paths/radio_profiles_channel_selection_id/__init__.py +7 -0
  1708. extremecloudiq/paths/radio_profiles_channel_selection_id/get.py +358 -0
  1709. extremecloudiq/paths/radio_profiles_channel_selection_id/put.py +456 -0
  1710. extremecloudiq/paths/radio_profiles_id/__init__.py +7 -0
  1711. extremecloudiq/paths/radio_profiles_id/delete.py +350 -0
  1712. extremecloudiq/paths/radio_profiles_id/get.py +358 -0
  1713. extremecloudiq/paths/radio_profiles_id/put.py +456 -0
  1714. extremecloudiq/paths/radio_profiles_mac_ouis/__init__.py +7 -0
  1715. extremecloudiq/paths/radio_profiles_mac_ouis/get.py +386 -0
  1716. extremecloudiq/paths/radio_profiles_mac_ouis/post.py +399 -0
  1717. extremecloudiq/paths/radio_profiles_mac_ouis_id/__init__.py +7 -0
  1718. extremecloudiq/paths/radio_profiles_mac_ouis_id/delete.py +350 -0
  1719. extremecloudiq/paths/radio_profiles_mac_ouis_id/get.py +358 -0
  1720. extremecloudiq/paths/radio_profiles_mac_ouis_id/put.py +456 -0
  1721. extremecloudiq/paths/radio_profiles_miscellaneous_id/__init__.py +7 -0
  1722. extremecloudiq/paths/radio_profiles_miscellaneous_id/get.py +358 -0
  1723. extremecloudiq/paths/radio_profiles_miscellaneous_id/put.py +456 -0
  1724. extremecloudiq/paths/radio_profiles_neighborhood_analysis_id/__init__.py +7 -0
  1725. extremecloudiq/paths/radio_profiles_neighborhood_analysis_id/get.py +358 -0
  1726. extremecloudiq/paths/radio_profiles_neighborhood_analysis_id/put.py +456 -0
  1727. extremecloudiq/paths/radio_profiles_radio_usage_opt_id/__init__.py +7 -0
  1728. extremecloudiq/paths/radio_profiles_radio_usage_opt_id/get.py +358 -0
  1729. extremecloudiq/paths/radio_profiles_radio_usage_opt_id/put.py +456 -0
  1730. extremecloudiq/paths/radio_profiles_sensor_scan_id/__init__.py +7 -0
  1731. extremecloudiq/paths/radio_profiles_sensor_scan_id/get.py +358 -0
  1732. extremecloudiq/paths/radio_profiles_sensor_scan_id/put.py +456 -0
  1733. extremecloudiq/paths/radio_profiles_wmm_qos_id/__init__.py +7 -0
  1734. extremecloudiq/paths/radio_profiles_wmm_qos_id/get.py +358 -0
  1735. extremecloudiq/paths/radio_profiles_wmm_qos_id/put.py +456 -0
  1736. extremecloudiq/paths/radius_client_objects/__init__.py +7 -0
  1737. extremecloudiq/paths/radius_client_objects/get.py +386 -0
  1738. extremecloudiq/paths/radius_client_objects/post.py +399 -0
  1739. extremecloudiq/paths/radius_client_objects_id/__init__.py +7 -0
  1740. extremecloudiq/paths/radius_client_objects_id/delete.py +350 -0
  1741. extremecloudiq/paths/radius_client_objects_id/get.py +358 -0
  1742. extremecloudiq/paths/radius_client_objects_id/put.py +448 -0
  1743. extremecloudiq/paths/radius_proxies/__init__.py +7 -0
  1744. extremecloudiq/paths/radius_proxies/get.py +386 -0
  1745. extremecloudiq/paths/radius_proxies/post.py +399 -0
  1746. extremecloudiq/paths/radius_proxies_devices/__init__.py +7 -0
  1747. extremecloudiq/paths/radius_proxies_devices/get.py +386 -0
  1748. extremecloudiq/paths/radius_proxies_id/__init__.py +7 -0
  1749. extremecloudiq/paths/radius_proxies_id/delete.py +350 -0
  1750. extremecloudiq/paths/radius_proxies_id/get.py +358 -0
  1751. extremecloudiq/paths/radius_proxies_id/put.py +456 -0
  1752. extremecloudiq/paths/radius_servers_external/__init__.py +7 -0
  1753. extremecloudiq/paths/radius_servers_external/get.py +386 -0
  1754. extremecloudiq/paths/radius_servers_external/post.py +399 -0
  1755. extremecloudiq/paths/radius_servers_external_id/__init__.py +7 -0
  1756. extremecloudiq/paths/radius_servers_external_id/delete.py +350 -0
  1757. extremecloudiq/paths/radius_servers_external_id/get.py +358 -0
  1758. extremecloudiq/paths/radius_servers_external_id/put.py +448 -0
  1759. extremecloudiq/paths/radius_servers_internal/__init__.py +7 -0
  1760. extremecloudiq/paths/radius_servers_internal/delete.py +382 -0
  1761. extremecloudiq/paths/radius_servers_internal/get.py +386 -0
  1762. extremecloudiq/paths/radius_servers_internal/post.py +399 -0
  1763. extremecloudiq/paths/radius_servers_internal_devices/__init__.py +7 -0
  1764. extremecloudiq/paths/radius_servers_internal_devices/get.py +386 -0
  1765. extremecloudiq/paths/radius_servers_internal_id/__init__.py +7 -0
  1766. extremecloudiq/paths/radius_servers_internal_id/delete.py +350 -0
  1767. extremecloudiq/paths/radius_servers_internal_id/get.py +358 -0
  1768. extremecloudiq/paths/radius_servers_internal_id/put.py +456 -0
  1769. extremecloudiq/paths/rtts/__init__.py +7 -0
  1770. extremecloudiq/paths/rtts/post.py +457 -0
  1771. extremecloudiq/paths/rtts_id/__init__.py +7 -0
  1772. extremecloudiq/paths/rtts_id/delete.py +404 -0
  1773. extremecloudiq/paths/site_afc_schedule/__init__.py +7 -0
  1774. extremecloudiq/paths/site_afc_schedule/get.py +368 -0
  1775. extremecloudiq/paths/site_afc_schedule/post.py +390 -0
  1776. extremecloudiq/paths/site_afc_schedule/put.py +390 -0
  1777. extremecloudiq/paths/site_spectrum_/__init__.py +7 -0
  1778. extremecloudiq/paths/site_spectrum_/post.py +481 -0
  1779. extremecloudiq/paths/sms_templates/__init__.py +7 -0
  1780. extremecloudiq/paths/sms_templates/get.py +384 -0
  1781. extremecloudiq/paths/ssids/__init__.py +7 -0
  1782. extremecloudiq/paths/ssids/get.py +386 -0
  1783. extremecloudiq/paths/ssids_advanced_settings_id/__init__.py +7 -0
  1784. extremecloudiq/paths/ssids_advanced_settings_id/get.py +358 -0
  1785. extremecloudiq/paths/ssids_advanced_settings_id/put.py +456 -0
  1786. extremecloudiq/paths/ssids_id_client_monitor_profile_attach/__init__.py +7 -0
  1787. extremecloudiq/paths/ssids_id_client_monitor_profile_attach/post.py +448 -0
  1788. extremecloudiq/paths/ssids_id_cwp_attach/__init__.py +7 -0
  1789. extremecloudiq/paths/ssids_id_cwp_attach/post.py +447 -0
  1790. extremecloudiq/paths/ssids_id_cwp_disable/__init__.py +7 -0
  1791. extremecloudiq/paths/ssids_id_cwp_disable/post.py +350 -0
  1792. extremecloudiq/paths/ssids_id_cwp_enable/__init__.py +7 -0
  1793. extremecloudiq/paths/ssids_id_cwp_enable/post.py +447 -0
  1794. extremecloudiq/paths/ssids_id_mode_dot1x/__init__.py +7 -0
  1795. extremecloudiq/paths/ssids_id_mode_dot1x/put.py +448 -0
  1796. extremecloudiq/paths/ssids_id_mode_open/__init__.py +7 -0
  1797. extremecloudiq/paths/ssids_id_mode_open/put.py +350 -0
  1798. extremecloudiq/paths/ssids_id_mode_ppsk/__init__.py +7 -0
  1799. extremecloudiq/paths/ssids_id_mode_ppsk/put.py +448 -0
  1800. extremecloudiq/paths/ssids_id_mode_psk/__init__.py +7 -0
  1801. extremecloudiq/paths/ssids_id_mode_psk/put.py +448 -0
  1802. extremecloudiq/paths/ssids_id_mode_wep/__init__.py +7 -0
  1803. extremecloudiq/paths/ssids_id_mode_wep/put.py +448 -0
  1804. extremecloudiq/paths/ssids_id_psk_password/__init__.py +7 -0
  1805. extremecloudiq/paths/ssids_id_psk_password/put.py +447 -0
  1806. extremecloudiq/paths/ssids_id_radius_client_profile_attach/__init__.py +7 -0
  1807. extremecloudiq/paths/ssids_id_radius_client_profile_attach/post.py +447 -0
  1808. extremecloudiq/paths/ssids_id_radius_server_group_attach/__init__.py +7 -0
  1809. extremecloudiq/paths/ssids_id_radius_server_group_attach/post.py +447 -0
  1810. extremecloudiq/paths/ssids_id_rename/__init__.py +7 -0
  1811. extremecloudiq/paths/ssids_id_rename/post.py +447 -0
  1812. extremecloudiq/paths/ssids_id_user_profile_assignment_attach/__init__.py +7 -0
  1813. extremecloudiq/paths/ssids_id_user_profile_assignment_attach/post.py +448 -0
  1814. extremecloudiq/paths/ssids_id_user_profile_attach/__init__.py +7 -0
  1815. extremecloudiq/paths/ssids_id_user_profile_attach/post.py +447 -0
  1816. extremecloudiq/paths/subscriptions_webhook/__init__.py +7 -0
  1817. extremecloudiq/paths/subscriptions_webhook/get.py +329 -0
  1818. extremecloudiq/paths/subscriptions_webhook/post.py +416 -0
  1819. extremecloudiq/paths/subscriptions_webhook_id/__init__.py +7 -0
  1820. extremecloudiq/paths/subscriptions_webhook_id/delete.py +350 -0
  1821. extremecloudiq/paths/thread_networks/__init__.py +7 -0
  1822. extremecloudiq/paths/thread_networks/get.py +583 -0
  1823. extremecloudiq/paths/thread_routers/__init__.py +7 -0
  1824. extremecloudiq/paths/thread_routers/get.py +1059 -0
  1825. extremecloudiq/paths/thread_topology/__init__.py +7 -0
  1826. extremecloudiq/paths/thread_topology/get.py +703 -0
  1827. extremecloudiq/paths/tunnel_concentrators/__init__.py +7 -0
  1828. extremecloudiq/paths/tunnel_concentrators/get.py +386 -0
  1829. extremecloudiq/paths/tunnel_concentrators/post.py +399 -0
  1830. extremecloudiq/paths/tunnel_concentrators_id/__init__.py +7 -0
  1831. extremecloudiq/paths/tunnel_concentrators_id/delete.py +350 -0
  1832. extremecloudiq/paths/tunnel_concentrators_id/get.py +358 -0
  1833. extremecloudiq/paths/tunnel_concentrators_id/put.py +456 -0
  1834. extremecloudiq/paths/ucp_id_engines_installed/__init__.py +7 -0
  1835. extremecloudiq/paths/ucp_id_engines_installed/get.py +358 -0
  1836. extremecloudiq/paths/user_profile_assignments/__init__.py +7 -0
  1837. extremecloudiq/paths/user_profile_assignments/get.py +386 -0
  1838. extremecloudiq/paths/user_profile_assignments/post.py +399 -0
  1839. extremecloudiq/paths/user_profile_assignments_id/__init__.py +7 -0
  1840. extremecloudiq/paths/user_profile_assignments_id/delete.py +350 -0
  1841. extremecloudiq/paths/user_profile_assignments_id/get.py +358 -0
  1842. extremecloudiq/paths/user_profiles/__init__.py +7 -0
  1843. extremecloudiq/paths/user_profiles/get.py +386 -0
  1844. extremecloudiq/paths/user_profiles/post.py +399 -0
  1845. extremecloudiq/paths/user_profiles_id/__init__.py +7 -0
  1846. extremecloudiq/paths/user_profiles_id/delete.py +350 -0
  1847. extremecloudiq/paths/user_profiles_id/get.py +358 -0
  1848. extremecloudiq/paths/user_profiles_id/put.py +456 -0
  1849. extremecloudiq/paths/user_profiles_id_ip_firewall_policies_attach/__init__.py +7 -0
  1850. extremecloudiq/paths/user_profiles_id_ip_firewall_policies_attach/post.py +448 -0
  1851. extremecloudiq/paths/user_profiles_id_ip_firewall_policies_detach/__init__.py +7 -0
  1852. extremecloudiq/paths/user_profiles_id_ip_firewall_policies_detach/post.py +448 -0
  1853. extremecloudiq/paths/user_profiles_id_mac_firewall_policies_attach/__init__.py +7 -0
  1854. extremecloudiq/paths/user_profiles_id_mac_firewall_policies_attach/post.py +448 -0
  1855. extremecloudiq/paths/user_profiles_id_mac_firewall_policies_detach/__init__.py +7 -0
  1856. extremecloudiq/paths/user_profiles_id_mac_firewall_policies_detach/post.py +448 -0
  1857. extremecloudiq/paths/usergroups/__init__.py +7 -0
  1858. extremecloudiq/paths/usergroups/get.py +406 -0
  1859. extremecloudiq/paths/usergroups/post.py +399 -0
  1860. extremecloudiq/paths/usergroups_id/__init__.py +7 -0
  1861. extremecloudiq/paths/usergroups_id/delete.py +350 -0
  1862. extremecloudiq/paths/usergroups_id/put.py +456 -0
  1863. extremecloudiq/paths/users/__init__.py +7 -0
  1864. extremecloudiq/paths/users/get.py +386 -0
  1865. extremecloudiq/paths/users/post.py +399 -0
  1866. extremecloudiq/paths/users_external/__init__.py +7 -0
  1867. extremecloudiq/paths/users_external/get.py +386 -0
  1868. extremecloudiq/paths/users_external/post.py +399 -0
  1869. extremecloudiq/paths/users_external_id/__init__.py +7 -0
  1870. extremecloudiq/paths/users_external_id/delete.py +350 -0
  1871. extremecloudiq/paths/users_external_id/get.py +358 -0
  1872. extremecloudiq/paths/users_external_id/patch.py +448 -0
  1873. extremecloudiq/paths/users_id/__init__.py +7 -0
  1874. extremecloudiq/paths/users_id/delete.py +350 -0
  1875. extremecloudiq/paths/users_id/get.py +358 -0
  1876. extremecloudiq/paths/users_id/patch.py +456 -0
  1877. extremecloudiq/paths/users_me/__init__.py +7 -0
  1878. extremecloudiq/paths/users_me/get.py +304 -0
  1879. extremecloudiq/paths/vlan_profiles/__init__.py +7 -0
  1880. extremecloudiq/paths/vlan_profiles/get.py +386 -0
  1881. extremecloudiq/paths/vlan_profiles/post.py +399 -0
  1882. extremecloudiq/paths/vlan_profiles_delete/__init__.py +7 -0
  1883. extremecloudiq/paths/vlan_profiles_delete/post.py +448 -0
  1884. extremecloudiq/paths/vlan_profiles_id/__init__.py +7 -0
  1885. extremecloudiq/paths/vlan_profiles_id/delete.py +350 -0
  1886. extremecloudiq/paths/vlan_profiles_id/get.py +358 -0
  1887. extremecloudiq/paths/vlan_profiles_id/patch.py +456 -0
  1888. extremecloudiq/rest.py +92 -126
  1889. extremecloudiq/schemas.py +2476 -0
  1890. extremecloudiq_api-25.1.0.147.dist-info/METADATA +21 -0
  1891. extremecloudiq_api-25.1.0.147.dist-info/RECORD +1893 -0
  1892. extremecloudiq/api/__init__.py +0 -35
  1893. extremecloudiq/api/account_api.py +0 -1262
  1894. extremecloudiq/api/afc_endpoint_api.py +0 -1301
  1895. extremecloudiq/api/alert_api.py +0 -3494
  1896. extremecloudiq/api/application_api.py +0 -470
  1897. extremecloudiq/api/authentication_api.py +0 -261
  1898. extremecloudiq/api/authorization_api.py +0 -602
  1899. extremecloudiq/api/client_api.py +0 -1179
  1900. extremecloudiq/api/configuration___authentication_api.py +0 -3612
  1901. extremecloudiq/api/configuration___basic_api.py +0 -755
  1902. extremecloudiq/api/configuration___certificate_api.py +0 -164
  1903. extremecloudiq/api/configuration___deployment_api.py +0 -499
  1904. extremecloudiq/api/configuration___network_api.py +0 -1000
  1905. extremecloudiq/api/configuration___policy_api.py +0 -11859
  1906. extremecloudiq/api/configuration___user_management_api.py +0 -2827
  1907. extremecloudiq/api/copilot___anomalies_api.py +0 -2970
  1908. extremecloudiq/api/copilot___connectivity_experience_api.py +0 -2791
  1909. extremecloudiq/api/device_api.py +0 -10341
  1910. extremecloudiq/api/essentials___extreme_location_api.py +0 -170
  1911. extremecloudiq/api/hiq_api.py +0 -1276
  1912. extremecloudiq/api/location_api.py +0 -3003
  1913. extremecloudiq/api/log_api.py +0 -1272
  1914. extremecloudiq/api/misc_api.py +0 -371
  1915. extremecloudiq/api/network_policy_api.py +0 -1038
  1916. extremecloudiq/api/network_scorecard_api.py +0 -658
  1917. extremecloudiq/api/nos_api.py +0 -165
  1918. extremecloudiq/api/notification_api.py +0 -375
  1919. extremecloudiq/api/operation_api.py +0 -380
  1920. extremecloudiq/api/packet_capture_api.py +0 -887
  1921. extremecloudiq/api/thread_api.py +0 -472
  1922. extremecloudiq/api/user_api.py +0 -1331
  1923. extremecloudiq/models/client_health.py +0 -207
  1924. extremecloudiq/models/device_health.py +0 -207
  1925. extremecloudiq/models/essentials_eloc_last_known_location.py +0 -179
  1926. extremecloudiq/models/inline_object.py +0 -124
  1927. extremecloudiq/models/inline_object1.py +0 -124
  1928. extremecloudiq/models/inline_object2.py +0 -124
  1929. extremecloudiq/models/network_health.py +0 -207
  1930. extremecloudiq/models/paged_xiq_accounting_log.py +0 -239
  1931. extremecloudiq/models/paged_xiq_active_directory_server.py +0 -239
  1932. extremecloudiq/models/paged_xiq_alert.py +0 -239
  1933. extremecloudiq/models/paged_xiq_application.py +0 -239
  1934. extremecloudiq/models/paged_xiq_audit_log.py +0 -239
  1935. extremecloudiq/models/paged_xiq_auth_log.py +0 -239
  1936. extremecloudiq/models/paged_xiq_building.py +0 -239
  1937. extremecloudiq/models/paged_xiq_certificate.py +0 -239
  1938. extremecloudiq/models/paged_xiq_classification_rule.py +0 -239
  1939. extremecloudiq/models/paged_xiq_client.py +0 -239
  1940. extremecloudiq/models/paged_xiq_client_monitor_profile.py +0 -239
  1941. extremecloudiq/models/paged_xiq_cloud_config_group.py +0 -239
  1942. extremecloudiq/models/paged_xiq_connectivity_experience_data.py +0 -239
  1943. extremecloudiq/models/paged_xiq_copilot_wireless_event.py +0 -239
  1944. extremecloudiq/models/paged_xiq_credential_log.py +0 -239
  1945. extremecloudiq/models/paged_xiq_cwp.py +0 -239
  1946. extremecloudiq/models/paged_xiq_device.py +0 -239
  1947. extremecloudiq/models/paged_xiq_device_alarm.py +0 -239
  1948. extremecloudiq/models/paged_xiq_device_configure_ipv4_interface.py +0 -239
  1949. extremecloudiq/models/paged_xiq_device_configure_ipv4_static_route.py +0 -239
  1950. extremecloudiq/models/paged_xiq_device_monitor_ipv4_routing.py +0 -239
  1951. extremecloudiq/models/paged_xiq_device_monitor_vlan_attributes.py +0 -239
  1952. extremecloudiq/models/paged_xiq_device_monitor_vlan_ipv4_interfaces.py +0 -239
  1953. extremecloudiq/models/paged_xiq_device_vlan_attributes.py +0 -239
  1954. extremecloudiq/models/paged_xiq_digital_twin_products.py +0 -239
  1955. extremecloudiq/models/paged_xiq_email_log.py +0 -239
  1956. extremecloudiq/models/paged_xiq_end_user.py +0 -239
  1957. extremecloudiq/models/paged_xiq_external_radius_server.py +0 -239
  1958. extremecloudiq/models/paged_xiq_external_user.py +0 -239
  1959. extremecloudiq/models/paged_xiq_floor.py +0 -239
  1960. extremecloudiq/models/paged_xiq_internal_radius_device.py +0 -239
  1961. extremecloudiq/models/paged_xiq_internal_radius_server.py +0 -239
  1962. extremecloudiq/models/paged_xiq_iot_profile.py +0 -239
  1963. extremecloudiq/models/paged_xiq_ip_firewall.py +0 -239
  1964. extremecloudiq/models/paged_xiq_ldap_server.py +0 -239
  1965. extremecloudiq/models/paged_xiq_location_tree_device.py +0 -239
  1966. extremecloudiq/models/paged_xiq_location_tree_map.py +0 -239
  1967. extremecloudiq/models/paged_xiq_mac_firewall.py +0 -239
  1968. extremecloudiq/models/paged_xiq_mac_object.py +0 -239
  1969. extremecloudiq/models/paged_xiq_network_policy.py +0 -239
  1970. extremecloudiq/models/paged_xiq_network_service.py +0 -239
  1971. extremecloudiq/models/paged_xiq_packet_capture.py +0 -239
  1972. extremecloudiq/models/paged_xiq_radio_entity.py +0 -239
  1973. extremecloudiq/models/paged_xiq_radio_profile.py +0 -239
  1974. extremecloudiq/models/paged_xiq_radius_client_object.py +0 -239
  1975. extremecloudiq/models/paged_xiq_radius_proxy.py +0 -239
  1976. extremecloudiq/models/paged_xiq_rp_mac_oui_profile.py +0 -239
  1977. extremecloudiq/models/paged_xiq_site.py +0 -239
  1978. extremecloudiq/models/paged_xiq_sms_log.py +0 -239
  1979. extremecloudiq/models/paged_xiq_ssid.py +0 -239
  1980. extremecloudiq/models/paged_xiq_thread_router.py +0 -239
  1981. extremecloudiq/models/paged_xiq_tunnel_concentrator.py +0 -239
  1982. extremecloudiq/models/paged_xiq_user.py +0 -239
  1983. extremecloudiq/models/paged_xiq_user_group.py +0 -239
  1984. extremecloudiq/models/paged_xiq_user_profile.py +0 -239
  1985. extremecloudiq/models/paged_xiq_user_profile_assignment.py +0 -239
  1986. extremecloudiq/models/paged_xiq_vlan_profile.py +0 -239
  1987. extremecloudiq/models/paged_xiq_wired_event_entity.py +0 -239
  1988. extremecloudiq/models/services_health.py +0 -207
  1989. extremecloudiq/models/wifi_health.py +0 -207
  1990. extremecloudiq/models/xiq_account.py +0 -491
  1991. extremecloudiq/models/xiq_account_mode.py +0 -101
  1992. extremecloudiq/models/xiq_account_type.py +0 -103
  1993. extremecloudiq/models/xiq_accounting_log.py +0 -1020
  1994. extremecloudiq/models/xiq_acknowledge_alerts_request.py +0 -124
  1995. extremecloudiq/models/xiq_action_type.py +0 -104
  1996. extremecloudiq/models/xiq_active_directory_server.py +0 -656
  1997. extremecloudiq/models/xiq_active_directory_server_base_dn_fetch_mode.py +0 -101
  1998. extremecloudiq/models/xiq_address.py +0 -238
  1999. extremecloudiq/models/xiq_address_profile_classified_entry.py +0 -263
  2000. extremecloudiq/models/xiq_advanced_onboard_device_request.py +0 -291
  2001. extremecloudiq/models/xiq_advanced_onboard_device_response.py +0 -151
  2002. extremecloudiq/models/xiq_afc_ap_detail.py +0 -231
  2003. extremecloudiq/models/xiq_afc_aps_info_element.py +0 -173
  2004. extremecloudiq/models/xiq_afc_available_spectrum.py +0 -173
  2005. extremecloudiq/models/xiq_afc_geolocation_summary.py +0 -147
  2006. extremecloudiq/models/xiq_afc_input_info.py +0 -231
  2007. extremecloudiq/models/xiq_afc_server.py +0 -173
  2008. extremecloudiq/models/xiq_afc_server_state.py +0 -111
  2009. extremecloudiq/models/xiq_afc_status_summary.py +0 -173
  2010. extremecloudiq/models/xiq_affected_downlink_device.py +0 -235
  2011. extremecloudiq/models/xiq_alert.py +0 -768
  2012. extremecloudiq/models/xiq_alert_email_subscription.py +0 -326
  2013. extremecloudiq/models/xiq_alert_event_rules_by_category.py +0 -182
  2014. extremecloudiq/models/xiq_alert_group_count.py +0 -181
  2015. extremecloudiq/models/xiq_alert_group_query.py +0 -102
  2016. extremecloudiq/models/xiq_alert_metric_rules_by_metricset.py +0 -182
  2017. extremecloudiq/models/xiq_alert_policy.py +0 -292
  2018. extremecloudiq/models/xiq_alert_policy_filter.py +0 -152
  2019. extremecloudiq/models/xiq_alert_policy_type.py +0 -101
  2020. extremecloudiq/models/xiq_alert_report.py +0 -124
  2021. extremecloudiq/models/xiq_alert_rule.py +0 -520
  2022. extremecloudiq/models/xiq_alert_rule_overview.py +0 -182
  2023. extremecloudiq/models/xiq_alert_site.py +0 -152
  2024. extremecloudiq/models/xiq_alert_sort_field.py +0 -101
  2025. extremecloudiq/models/xiq_alert_source.py +0 -207
  2026. extremecloudiq/models/xiq_alert_tag.py +0 -208
  2027. extremecloudiq/models/xiq_alert_webhook_subscription.py +0 -326
  2028. extremecloudiq/models/xiq_anomalies_count_vo_entity.py +0 -320
  2029. extremecloudiq/models/xiq_anomalies_device_update_action_request.py +0 -203
  2030. extremecloudiq/models/xiq_anomalies_feedback_request.py +0 -203
  2031. extremecloudiq/models/xiq_anomalies_notifications_response.py +0 -151
  2032. extremecloudiq/models/xiq_anomalies_severity_entity.py +0 -207
  2033. extremecloudiq/models/xiq_anomalies_site_entity.py +0 -179
  2034. extremecloudiq/models/xiq_anomalies_type_entity.py +0 -149
  2035. extremecloudiq/models/xiq_anomalies_update_action_request.py +0 -175
  2036. extremecloudiq/models/xiq_anomaly_affected_count.py +0 -182
  2037. extremecloudiq/models/xiq_anomaly_device_entity.py +0 -513
  2038. extremecloudiq/models/xiq_anomaly_device_with_location.py +0 -718
  2039. extremecloudiq/models/xiq_anomaly_devices_by_location_response.py +0 -149
  2040. extremecloudiq/models/xiq_anomaly_health_type.py +0 -103
  2041. extremecloudiq/models/xiq_anomaly_location_entity.py +0 -425
  2042. extremecloudiq/models/xiq_anomaly_severity.py +0 -103
  2043. extremecloudiq/models/xiq_anomaly_sort_field.py +0 -106
  2044. extremecloudiq/models/xiq_anomaly_type.py +0 -105
  2045. extremecloudiq/models/xiq_ap_coordinates.py +0 -173
  2046. extremecloudiq/models/xiq_api_token_info.py +0 -354
  2047. extremecloudiq/models/xiq_application.py +0 -378
  2048. extremecloudiq/models/xiq_application_detection_protocol.py +0 -101
  2049. extremecloudiq/models/xiq_application_detection_rule.py +0 -175
  2050. extremecloudiq/models/xiq_application_detection_type.py +0 -102
  2051. extremecloudiq/models/xiq_application_service.py +0 -155
  2052. extremecloudiq/models/xiq_application_sort_field.py +0 -101
  2053. extremecloudiq/models/xiq_application_top_clients_usage.py +0 -235
  2054. extremecloudiq/models/xiq_assign_devices_client_monitor_request.py +0 -149
  2055. extremecloudiq/models/xiq_assign_devices_country_code_request.py +0 -149
  2056. extremecloudiq/models/xiq_assign_devices_location_request.py +0 -149
  2057. extremecloudiq/models/xiq_assign_devices_network_policy_request.py +0 -151
  2058. extremecloudiq/models/xiq_assurance_scans_overview_response.py +0 -151
  2059. extremecloudiq/models/xiq_atp_device_stats_entity.py +0 -208
  2060. extremecloudiq/models/xiq_atp_device_stats_response.py +0 -151
  2061. extremecloudiq/models/xiq_atp_packet_counts_entity.py +0 -292
  2062. extremecloudiq/models/xiq_atp_packet_counts_response.py +0 -151
  2063. extremecloudiq/models/xiq_attach_client_monitor_profile_request.py +0 -123
  2064. extremecloudiq/models/xiq_attach_ip_firewall_policy_to_user_profile_request.py +0 -151
  2065. extremecloudiq/models/xiq_attach_mac_firewall_policy_to_user_profile_request.py +0 -151
  2066. extremecloudiq/models/xiq_attach_up_assignment_entry.py +0 -151
  2067. extremecloudiq/models/xiq_attach_up_assignment_request.py +0 -261
  2068. extremecloudiq/models/xiq_attribute_type.py +0 -102
  2069. extremecloudiq/models/xiq_audit_log.py +0 -402
  2070. extremecloudiq/models/xiq_audit_log_category.py +0 -105
  2071. extremecloudiq/models/xiq_audit_log_full_descriptions.py +0 -208
  2072. extremecloudiq/models/xiq_audit_log_report.py +0 -124
  2073. extremecloudiq/models/xiq_audit_log_sort_field.py +0 -100
  2074. extremecloudiq/models/xiq_auth_log.py +0 -572
  2075. extremecloudiq/models/xiq_available_channel_info.py +0 -173
  2076. extremecloudiq/models/xiq_bounce_device_port_data.py +0 -179
  2077. extremecloudiq/models/xiq_bounce_device_port_operation_result.py +0 -151
  2078. extremecloudiq/models/xiq_bounce_device_port_request.py +0 -179
  2079. extremecloudiq/models/xiq_bounce_device_port_response.py +0 -121
  2080. extremecloudiq/models/xiq_building.py +0 -350
  2081. extremecloudiq/models/xiq_bulk_delete_email_subscription_result.py +0 -147
  2082. extremecloudiq/models/xiq_bulk_delete_webhook_subscription_result.py +0 -147
  2083. extremecloudiq/models/xiq_bulk_operation_result.py +0 -101
  2084. extremecloudiq/models/xiq_capture_band_selection.py +0 -103
  2085. extremecloudiq/models/xiq_capture_direction_selection.py +0 -102
  2086. extremecloudiq/models/xiq_capture_filter.py +0 -295
  2087. extremecloudiq/models/xiq_capture_identifier_type.py +0 -102
  2088. extremecloudiq/models/xiq_capture_location.py +0 -255
  2089. extremecloudiq/models/xiq_capture_radio_selection.py +0 -103
  2090. extremecloudiq/models/xiq_capture_result.py +0 -455
  2091. extremecloudiq/models/xiq_capture_stop_request.py +0 -123
  2092. extremecloudiq/models/xiq_capture_wired_selection.py +0 -104
  2093. extremecloudiq/models/xiq_certificate.py +0 -323
  2094. extremecloudiq/models/xiq_certificate_type.py +0 -101
  2095. extremecloudiq/models/xiq_change_devices_ibeacon_request.py +0 -338
  2096. extremecloudiq/models/xiq_change_devices_os_mode_request.py +0 -153
  2097. extremecloudiq/models/xiq_check_permission_request.py +0 -153
  2098. extremecloudiq/models/xiq_check_permission_response.py +0 -153
  2099. extremecloudiq/models/xiq_classification.py +0 -296
  2100. extremecloudiq/models/xiq_classification_rule.py +0 -295
  2101. extremecloudiq/models/xiq_classification_type.py +0 -104
  2102. extremecloudiq/models/xiq_cli_output.py +0 -179
  2103. extremecloudiq/models/xiq_cli_response_code.py +0 -115
  2104. extremecloudiq/models/xiq_client.py +0 -1610
  2105. extremecloudiq/models/xiq_client_field.py +0 -153
  2106. extremecloudiq/models/xiq_client_mac_address_alias.py +0 -164
  2107. extremecloudiq/models/xiq_client_monitor_parameters.py +0 -163
  2108. extremecloudiq/models/xiq_client_monitor_profile.py +0 -374
  2109. extremecloudiq/models/xiq_client_monitor_profile_request.py +0 -242
  2110. extremecloudiq/models/xiq_client_sort_field.py +0 -120
  2111. extremecloudiq/models/xiq_client_stats_entity.py +0 -345
  2112. extremecloudiq/models/xiq_client_summary.py +0 -179
  2113. extremecloudiq/models/xiq_client_type.py +0 -102
  2114. extremecloudiq/models/xiq_client_usage.py +0 -151
  2115. extremecloudiq/models/xiq_client_view.py +0 -107
  2116. extremecloudiq/models/xiq_cloud_config_group.py +0 -436
  2117. extremecloudiq/models/xiq_cloud_shark_storage.py +0 -151
  2118. extremecloudiq/models/xiq_connectivity_details_by_client_type_response.py +0 -147
  2119. extremecloudiq/models/xiq_connectivity_experience_data.py +0 -319
  2120. extremecloudiq/models/xiq_connectivity_experience_view_type.py +0 -102
  2121. extremecloudiq/models/xiq_copilot_anomalies_action_response.py +0 -123
  2122. extremecloudiq/models/xiq_copilot_anomalies_by_category.py +0 -177
  2123. extremecloudiq/models/xiq_copilot_events_wired_sort_field.py +0 -100
  2124. extremecloudiq/models/xiq_copilot_events_wireless_sort_field.py +0 -102
  2125. extremecloudiq/models/xiq_copilot_lldp_cdp_info.py +0 -121
  2126. extremecloudiq/models/xiq_copilot_paged_xiq_anomaly_device_with_location.py +0 -293
  2127. extremecloudiq/models/xiq_copilot_paged_xiq_anomaly_location_entity.py +0 -293
  2128. extremecloudiq/models/xiq_copilot_wired_events_score_type.py +0 -100
  2129. extremecloudiq/models/xiq_copilot_wireless_event.py +0 -347
  2130. extremecloudiq/models/xiq_copilot_wireless_events_score_type.py +0 -104
  2131. extremecloudiq/models/xiq_country.py +0 -493
  2132. extremecloudiq/models/xiq_country_code.py +0 -226
  2133. extremecloudiq/models/xiq_country_state.py +0 -179
  2134. extremecloudiq/models/xiq_create_alert_email_subscription_request.py +0 -210
  2135. extremecloudiq/models/xiq_create_alert_webhook_subscription_request.py +0 -238
  2136. extremecloudiq/models/xiq_create_building_request.py +0 -236
  2137. extremecloudiq/models/xiq_create_classification_request.py +0 -188
  2138. extremecloudiq/models/xiq_create_classification_rule_request.py +0 -181
  2139. extremecloudiq/models/xiq_create_cloud_config_group_request.py +0 -180
  2140. extremecloudiq/models/xiq_create_end_user_request.py +0 -405
  2141. extremecloudiq/models/xiq_create_external_radius_server_request.py +0 -307
  2142. extremecloudiq/models/xiq_create_floor_request.py +0 -350
  2143. extremecloudiq/models/xiq_create_internal_radius_server_request.py +0 -708
  2144. extremecloudiq/models/xiq_create_key_based_pcg_users_request.py +0 -124
  2145. extremecloudiq/models/xiq_create_key_based_pcg_users_response.py +0 -181
  2146. extremecloudiq/models/xiq_create_l3_address_profile_request.py +0 -348
  2147. extremecloudiq/models/xiq_create_ldap_server_request.py +0 -524
  2148. extremecloudiq/models/xiq_create_location_request.py +0 -153
  2149. extremecloudiq/models/xiq_create_mac_object_request.py +0 -236
  2150. extremecloudiq/models/xiq_create_network_policy_request.py +0 -179
  2151. extremecloudiq/models/xiq_create_organization_request.py +0 -152
  2152. extremecloudiq/models/xiq_create_radio_profile_request.py +0 -438
  2153. extremecloudiq/models/xiq_create_radius_client.py +0 -179
  2154. extremecloudiq/models/xiq_create_radius_client_object_request.py +0 -338
  2155. extremecloudiq/models/xiq_create_radius_proxy_realm.py +0 -179
  2156. extremecloudiq/models/xiq_create_radius_proxy_request.py +0 -380
  2157. extremecloudiq/models/xiq_create_rp_mac_oui_profile_request.py +0 -237
  2158. extremecloudiq/models/xiq_create_site_request.py +0 -263
  2159. extremecloudiq/models/xiq_create_user_group_request.py +0 -453
  2160. extremecloudiq/models/xiq_create_user_profile_assignment_request.py +0 -205
  2161. extremecloudiq/models/xiq_create_user_profile_request.py +0 -153
  2162. extremecloudiq/models/xiq_create_user_request.py +0 -237
  2163. extremecloudiq/models/xiq_create_vlan_object_classified_entry_request.py +0 -153
  2164. extremecloudiq/models/xiq_create_vlan_profile_request.py +0 -210
  2165. extremecloudiq/models/xiq_create_webhook_subscription_request.py +0 -208
  2166. extremecloudiq/models/xiq_credential_log.py +0 -236
  2167. extremecloudiq/models/xiq_cwp.py +0 -238
  2168. extremecloudiq/models/xiq_data_point.py +0 -152
  2169. extremecloudiq/models/xiq_date_time_type.py +0 -240
  2170. extremecloudiq/models/xiq_date_time_unit_type.py +0 -103
  2171. extremecloudiq/models/xiq_default_device_password.py +0 -124
  2172. extremecloudiq/models/xiq_delete_bulk_alert_subscription_email_response.py +0 -173
  2173. extremecloudiq/models/xiq_delete_bulk_alert_subscription_request.py +0 -124
  2174. extremecloudiq/models/xiq_delete_bulk_alert_subscription_webhook_response.py +0 -173
  2175. extremecloudiq/models/xiq_delete_key_based_pcg_users_request.py +0 -124
  2176. extremecloudiq/models/xiq_delivery_settings.py +0 -151
  2177. extremecloudiq/models/xiq_dell_device.py +0 -236
  2178. extremecloudiq/models/xiq_dell_devices.py +0 -124
  2179. extremecloudiq/models/xiq_deployment_overview.py +0 -153
  2180. extremecloudiq/models/xiq_deployment_policy.py +0 -202
  2181. extremecloudiq/models/xiq_deployment_request.py +0 -149
  2182. extremecloudiq/models/xiq_deployment_response.py +0 -123
  2183. extremecloudiq/models/xiq_deployment_status.py +0 -261
  2184. extremecloudiq/models/xiq_destination_type.py +0 -101
  2185. extremecloudiq/models/xiq_device.py +0 -1102
  2186. extremecloudiq/models/xiq_device_admin_state.py +0 -104
  2187. extremecloudiq/models/xiq_device_alarm.py +0 -291
  2188. extremecloudiq/models/xiq_device_category.py +0 -101
  2189. extremecloudiq/models/xiq_device_client_monitor.py +0 -151
  2190. extremecloudiq/models/xiq_device_configure_ipv4_interface.py +0 -494
  2191. extremecloudiq/models/xiq_device_configure_ipv4_interface_response.py +0 -467
  2192. extremecloudiq/models/xiq_device_configure_ipv4_static_route.py +0 -382
  2193. extremecloudiq/models/xiq_device_cpu_memory_usage.py +0 -179
  2194. extremecloudiq/models/xiq_device_create_configure_ipv4_interface.py +0 -413
  2195. extremecloudiq/models/xiq_device_create_configure_ipv4_static_route.py +0 -354
  2196. extremecloudiq/models/xiq_device_create_vlan_attributes.py +0 -289
  2197. extremecloudiq/models/xiq_device_dhcp_relay.py +0 -292
  2198. extremecloudiq/models/xiq_device_field.py +0 -135
  2199. extremecloudiq/models/xiq_device_filter.py +0 -123
  2200. extremecloudiq/models/xiq_device_firmware_metadata.py +0 -434
  2201. extremecloudiq/models/xiq_device_function.py +0 -108
  2202. extremecloudiq/models/xiq_device_geolocation.py +0 -295
  2203. extremecloudiq/models/xiq_device_ibeacon.py +0 -338
  2204. extremecloudiq/models/xiq_device_installation_report.py +0 -407
  2205. extremecloudiq/models/xiq_device_interface_radio_mode.py +0 -181
  2206. extremecloudiq/models/xiq_device_iot_interface_settings_entry.py +0 -149
  2207. extremecloudiq/models/xiq_device_ipv4_routing_route_origin_field.py +0 -103
  2208. extremecloudiq/models/xiq_device_ipv4_routing_sort_field.py +0 -109
  2209. extremecloudiq/models/xiq_device_ipv4_routing_status_field.py +0 -102
  2210. extremecloudiq/models/xiq_device_level_ssid.py +0 -180
  2211. extremecloudiq/models/xiq_device_level_ssid_status.py +0 -153
  2212. extremecloudiq/models/xiq_device_lldp_cdp_info.py +0 -207
  2213. extremecloudiq/models/xiq_device_location.py +0 -464
  2214. extremecloudiq/models/xiq_device_location_assignment.py +0 -236
  2215. extremecloudiq/models/xiq_device_monitor_ipv4_route_nexthop.py +0 -319
  2216. extremecloudiq/models/xiq_device_monitor_ipv4_routing.py +0 -211
  2217. extremecloudiq/models/xiq_device_monitor_ipv4_routing_detail.py +0 -375
  2218. extremecloudiq/models/xiq_device_monitor_ipv4_routing_timeline.py +0 -269
  2219. extremecloudiq/models/xiq_device_monitor_ipv4_routing_timeline_info.py +0 -235
  2220. extremecloudiq/models/xiq_device_monitor_refresh_response.py +0 -124
  2221. extremecloudiq/models/xiq_device_monitor_refresh_status_response.py +0 -188
  2222. extremecloudiq/models/xiq_device_monitor_vlan_attributes.py +0 -211
  2223. extremecloudiq/models/xiq_device_monitor_vlan_attributes_info.py +0 -488
  2224. extremecloudiq/models/xiq_device_monitor_vlan_ipv4_interfaces.py +0 -211
  2225. extremecloudiq/models/xiq_device_monitor_vlan_ipv4_interfaces_details.py +0 -376
  2226. extremecloudiq/models/xiq_device_null_field.py +0 -101
  2227. extremecloudiq/models/xiq_device_radio_operating_mode.py +0 -149
  2228. extremecloudiq/models/xiq_device_sort_field.py +0 -101
  2229. extremecloudiq/models/xiq_device_stats.py +0 -173
  2230. extremecloudiq/models/xiq_device_stats_entity.py +0 -292
  2231. extremecloudiq/models/xiq_device_subnetwork_ipv4.py +0 -350
  2232. extremecloudiq/models/xiq_device_type.py +0 -102
  2233. extremecloudiq/models/xiq_device_update_configure_ipv4_interface.py +0 -441
  2234. extremecloudiq/models/xiq_device_update_configure_ipv4_static_route.py +0 -382
  2235. extremecloudiq/models/xiq_device_update_vlan_attributes.py +0 -261
  2236. extremecloudiq/models/xiq_device_view.py +0 -105
  2237. extremecloudiq/models/xiq_device_vlan_attributes.py +0 -289
  2238. extremecloudiq/models/xiq_device_vlan_attributes_dhcp_snooping_action.py +0 -101
  2239. extremecloudiq/models/xiq_device_vlan_ipv4_interfaces_sort_field.py +0 -104
  2240. extremecloudiq/models/xiq_device_vlan_sort_field.py +0 -104
  2241. extremecloudiq/models/xiq_device_wifi_interface.py +0 -907
  2242. extremecloudiq/models/xiq_device_wireless_interface_entry.py +0 -150
  2243. extremecloudiq/models/xiq_dfs_channel_changes_entity.py +0 -152
  2244. extremecloudiq/models/xiq_dfs_channel_stats_entity.py +0 -152
  2245. extremecloudiq/models/xiq_dfs_recurence_channel_stats_response.py +0 -179
  2246. extremecloudiq/models/xiq_dfs_recurence_count_stats_response.py +0 -151
  2247. extremecloudiq/models/xiq_dhcp_platform.py +0 -101
  2248. extremecloudiq/models/xiq_dhcp_service_type.py +0 -101
  2249. extremecloudiq/models/xiq_digital_twin_device.py +0 -262
  2250. extremecloudiq/models/xiq_digital_twin_devices.py +0 -123
  2251. extremecloudiq/models/xiq_digital_twin_feat_license.py +0 -105
  2252. extremecloudiq/models/xiq_digital_twin_make.py +0 -101
  2253. extremecloudiq/models/xiq_digital_twin_model.py +0 -138
  2254. extremecloudiq/models/xiq_digital_twin_onboard_device.py +0 -205
  2255. extremecloudiq/models/xiq_digital_twin_products.py +0 -210
  2256. extremecloudiq/models/xiq_digital_twin_vim_module.py +0 -104
  2257. extremecloudiq/models/xiq_duplex_data_rate_entity.py +0 -180
  2258. extremecloudiq/models/xiq_ekahau_floor_import_result.py +0 -178
  2259. extremecloudiq/models/xiq_ekahau_floor_import_status.py +0 -101
  2260. extremecloudiq/models/xiq_ekahau_floor_to_floor_association.py +0 -153
  2261. extremecloudiq/models/xiq_ekahau_floor_to_outdoor_site_association.py +0 -182
  2262. extremecloudiq/models/xiq_ekahau_import_details.py +0 -124
  2263. extremecloudiq/models/xiq_ekahau_import_issue.py +0 -181
  2264. extremecloudiq/models/xiq_ekahau_import_issues.py +0 -231
  2265. extremecloudiq/models/xiq_elevation.py +0 -179
  2266. extremecloudiq/models/xiq_ellipse.py +0 -173
  2267. extremecloudiq/models/xiq_email_log.py +0 -320
  2268. extremecloudiq/models/xiq_email_template.py +0 -435
  2269. extremecloudiq/models/xiq_end_user.py +0 -610
  2270. extremecloudiq/models/xiq_entitlement_type.py +0 -103
  2271. extremecloudiq/models/xiq_error.py +0 -182
  2272. extremecloudiq/models/xiq_exos_device.py +0 -207
  2273. extremecloudiq/models/xiq_exos_devices.py +0 -124
  2274. extremecloudiq/models/xiq_expiration_action_type.py +0 -101
  2275. extremecloudiq/models/xiq_expiration_settings.py +0 -251
  2276. extremecloudiq/models/xiq_expiration_type.py +0 -103
  2277. extremecloudiq/models/xiq_external_account.py +0 -298
  2278. extremecloudiq/models/xiq_external_radius_server.py +0 -410
  2279. extremecloudiq/models/xiq_external_user.py +0 -322
  2280. extremecloudiq/models/xiq_external_user_directory.py +0 -349
  2281. extremecloudiq/models/xiq_external_user_directory_entry.py +0 -151
  2282. extremecloudiq/models/xiq_external_user_directory_type.py +0 -101
  2283. extremecloudiq/models/xiq_extreme_device.py +0 -207
  2284. extremecloudiq/models/xiq_extreme_devices.py +0 -124
  2285. extremecloudiq/models/xiq_failure_onboard_device.py +0 -150
  2286. extremecloudiq/models/xiq_feedback_type.py +0 -101
  2287. extremecloudiq/models/xiq_firmware_activate_option.py +0 -179
  2288. extremecloudiq/models/xiq_firmware_metadatas_request.py +0 -123
  2289. extremecloudiq/models/xiq_firmware_metadatas_response.py +0 -121
  2290. extremecloudiq/models/xiq_firmware_upgrade_policy.py +0 -153
  2291. extremecloudiq/models/xiq_firmware_upgrade_version.py +0 -153
  2292. extremecloudiq/models/xiq_flap_count_entity.py +0 -208
  2293. extremecloudiq/models/xiq_floor.py +0 -493
  2294. extremecloudiq/models/xiq_forensic_bucket.py +0 -106
  2295. extremecloudiq/models/xiq_ftm_settings.py +0 -349
  2296. extremecloudiq/models/xiq_ftm_settings_request.py +0 -262
  2297. extremecloudiq/models/xiq_gateway_ip_type.py +0 -101
  2298. extremecloudiq/models/xiq_generate_api_token_request.py +0 -180
  2299. extremecloudiq/models/xiq_generate_api_token_response.py +0 -296
  2300. extremecloudiq/models/xiq_get_afc_spectrum_for_ap_request.py +0 -205
  2301. extremecloudiq/models/xiq_get_afc_spectrum_for_site_aps_request.py +0 -205
  2302. extremecloudiq/models/xiq_get_device_info_by_nos.py +0 -181
  2303. extremecloudiq/models/xiq_get_device_infoby_nos_request.py +0 -179
  2304. extremecloudiq/models/xiq_get_port_assignment_details_response.py +0 -181
  2305. extremecloudiq/models/xiq_grant_external_user_request.py +0 -207
  2306. extremecloudiq/models/xiq_hiq_context.py +0 -153
  2307. extremecloudiq/models/xiq_hiq_status.py +0 -124
  2308. extremecloudiq/models/xiq_host_name_address_profile.py +0 -406
  2309. extremecloudiq/models/xiq_http_method.py +0 -103
  2310. extremecloudiq/models/xiq_http_server.py +0 -163
  2311. extremecloudiq/models/xiq_init_key_based_pcg_network_policy_request.py +0 -182
  2312. extremecloudiq/models/xiq_initialize_location_request.py +0 -151
  2313. extremecloudiq/models/xiq_internal_radius_device.py +0 -297
  2314. extremecloudiq/models/xiq_internal_radius_server.py +0 -824
  2315. extremecloudiq/models/xiq_internal_radius_server_authentication_method.py +0 -104
  2316. extremecloudiq/models/xiq_internal_radius_server_authentication_method_group.py +0 -105
  2317. extremecloudiq/models/xiq_iot_application_id.py +0 -100
  2318. extremecloudiq/models/xiq_iot_application_supported.py +0 -101
  2319. extremecloudiq/models/xiq_iot_profile.py +0 -341
  2320. extremecloudiq/models/xiq_iot_profile_request.py +0 -256
  2321. extremecloudiq/models/xiq_iot_profile_thread_gateway.py +0 -429
  2322. extremecloudiq/models/xiq_iotp_ma_ble_beacon.py +0 -123
  2323. extremecloudiq/models/xiq_iotp_ma_ble_beacon_app_type.py +0 -101
  2324. extremecloudiq/models/xiq_iotp_ma_ble_beacon_application.py +0 -357
  2325. extremecloudiq/models/xiq_iotp_ma_ble_scan.py +0 -149
  2326. extremecloudiq/models/xiq_iotp_ma_ble_scan_app_type.py +0 -102
  2327. extremecloudiq/models/xiq_iotp_ma_ble_scan_application.py +0 -215
  2328. extremecloudiq/models/xiq_iotp_ma_ble_scan_destination.py +0 -155
  2329. extremecloudiq/models/xiq_iotp_ma_ble_scan_vendor.py +0 -183
  2330. extremecloudiq/models/xiq_iotp_ma_ble_scan_vendor_type.py +0 -102
  2331. extremecloudiq/models/xiq_iotp_tg_white_list_entry.py +0 -165
  2332. extremecloudiq/models/xiq_ip_address_profile.py +0 -406
  2333. extremecloudiq/models/xiq_ip_firewall.py +0 -322
  2334. extremecloudiq/models/xiq_ip_firewall_action.py +0 -104
  2335. extremecloudiq/models/xiq_ip_firewall_policy_request.py +0 -179
  2336. extremecloudiq/models/xiq_ip_firewall_rule.py +0 -366
  2337. extremecloudiq/models/xiq_ip_firewall_rule_request.py +0 -231
  2338. extremecloudiq/models/xiq_ip_range_address_profile.py +0 -434
  2339. extremecloudiq/models/xiq_key_based_pcg.py +0 -354
  2340. extremecloudiq/models/xiq_key_based_pcg_user.py +0 -297
  2341. extremecloudiq/models/xiq_key_based_pcg_user_base_info.py +0 -182
  2342. extremecloudiq/models/xiq_l3_address_profile.py +0 -406
  2343. extremecloudiq/models/xiq_l3_address_profile_response.py +0 -251
  2344. extremecloudiq/models/xiq_l3_address_type.py +0 -105
  2345. extremecloudiq/models/xiq_ldap_protocol_type.py +0 -101
  2346. extremecloudiq/models/xiq_ldap_server.py +0 -599
  2347. extremecloudiq/models/xiq_ldap_server_verification_mode.py +0 -102
  2348. extremecloudiq/models/xiq_license_mode.py +0 -104
  2349. extremecloudiq/models/xiq_license_status.py +0 -105
  2350. extremecloudiq/models/xiq_list_afc_servers.py +0 -121
  2351. extremecloudiq/models/xiq_list_alert_policies.py +0 -149
  2352. extremecloudiq/models/xiq_location.py +0 -381
  2353. extremecloudiq/models/xiq_location_legend.py +0 -151
  2354. extremecloudiq/models/xiq_location_tree_device.py +0 -433
  2355. extremecloudiq/models/xiq_location_tree_map.py +0 -209
  2356. extremecloudiq/models/xiq_location_type.py +0 -102
  2357. extremecloudiq/models/xiq_logging_type.py +0 -104
  2358. extremecloudiq/models/xiq_login_request.py +0 -153
  2359. extremecloudiq/models/xiq_login_response.py +0 -182
  2360. extremecloudiq/models/xiq_mac_firewall.py +0 -322
  2361. extremecloudiq/models/xiq_mac_firewall_action.py +0 -101
  2362. extremecloudiq/models/xiq_mac_firewall_policy_request.py +0 -179
  2363. extremecloudiq/models/xiq_mac_firewall_rule.py +0 -314
  2364. extremecloudiq/models/xiq_mac_firewall_rule_request.py +0 -203
  2365. extremecloudiq/models/xiq_mac_object.py +0 -404
  2366. extremecloudiq/models/xiq_mac_object_type.py +0 -102
  2367. extremecloudiq/models/xiq_measurement_unit.py +0 -101
  2368. extremecloudiq/models/xiq_network_alg_type.py +0 -105
  2369. extremecloudiq/models/xiq_network_ip_protocol.py +0 -103
  2370. extremecloudiq/models/xiq_network_policy.py +0 -325
  2371. extremecloudiq/models/xiq_network_policy_field.py +0 -107
  2372. extremecloudiq/models/xiq_network_policy_type.py +0 -106
  2373. extremecloudiq/models/xiq_network_policy_view.py +0 -101
  2374. extremecloudiq/models/xiq_network_service.py +0 -409
  2375. extremecloudiq/models/xiq_network_service_request.py +0 -259
  2376. extremecloudiq/models/xiq_onboard_device_request.py +0 -251
  2377. extremecloudiq/models/xiq_onboard_error.py +0 -142
  2378. extremecloudiq/models/xiq_onboard_key_based_pcg_request.py +0 -180
  2379. extremecloudiq/models/xiq_onboard_key_based_pcg_response.py +0 -182
  2380. extremecloudiq/models/xiq_operation_metadata.py +0 -356
  2381. extremecloudiq/models/xiq_operation_object.py +0 -234
  2382. extremecloudiq/models/xiq_operation_status.py +0 -105
  2383. extremecloudiq/models/xiq_organization.py +0 -294
  2384. extremecloudiq/models/xiq_organization_type.py +0 -101
  2385. extremecloudiq/models/xiq_os_object.py +0 -210
  2386. extremecloudiq/models/xiq_packet_capture.py +0 -539
  2387. extremecloudiq/models/xiq_packet_capture_field.py +0 -115
  2388. extremecloudiq/models/xiq_packet_capture_sort_field.py +0 -102
  2389. extremecloudiq/models/xiq_packet_capture_status.py +0 -104
  2390. extremecloudiq/models/xiq_password_character_type.py +0 -102
  2391. extremecloudiq/models/xiq_password_db_location.py +0 -101
  2392. extremecloudiq/models/xiq_password_settings.py +0 -290
  2393. extremecloudiq/models/xiq_password_type.py +0 -101
  2394. extremecloudiq/models/xiq_pcg_assign_ports_request.py +0 -124
  2395. extremecloudiq/models/xiq_pcg_assign_ports_response.py +0 -182
  2396. extremecloudiq/models/xiq_pcg_port_assignment.py +0 -208
  2397. extremecloudiq/models/xiq_pcg_port_assignment_entry.py +0 -323
  2398. extremecloudiq/models/xiq_pcg_port_assignment_entry_detail.py +0 -314
  2399. extremecloudiq/models/xiq_pcg_port_assignment_entry_device_meta.py +0 -297
  2400. extremecloudiq/models/xiq_pcg_port_assignment_entry_eth_user_meta.py +0 -355
  2401. extremecloudiq/models/xiq_pcg_type.py +0 -101
  2402. extremecloudiq/models/xiq_permission.py +0 -182
  2403. extremecloudiq/models/xiq_poe_flapping_stats_response.py +0 -151
  2404. extremecloudiq/models/xiq_poe_trend_graphs_response.py +0 -123
  2405. extremecloudiq/models/xiq_policy_rule_protocol_type.py +0 -108
  2406. extremecloudiq/models/xiq_port_efficiency_speed_duplex_stats_response.py +0 -123
  2407. extremecloudiq/models/xiq_port_efficiency_stats_response.py +0 -123
  2408. extremecloudiq/models/xiq_post_expiration_action.py +0 -205
  2409. extremecloudiq/models/xiq_power_source_equipment.py +0 -319
  2410. extremecloudiq/models/xiq_psk_generation_method.py +0 -101
  2411. extremecloudiq/models/xiq_quality_index.py +0 -103
  2412. extremecloudiq/models/xiq_radio.py +0 -294
  2413. extremecloudiq/models/xiq_radio_bands.py +0 -106
  2414. extremecloudiq/models/xiq_radio_entity.py +0 -152
  2415. extremecloudiq/models/xiq_radio_mode.py +0 -110
  2416. extremecloudiq/models/xiq_radio_operating_modes.py +0 -149
  2417. extremecloudiq/models/xiq_radio_profile.py +0 -684
  2418. extremecloudiq/models/xiq_radius_client.py +0 -207
  2419. extremecloudiq/models/xiq_radius_client_object.py +0 -425
  2420. extremecloudiq/models/xiq_radius_client_object_entry.py +0 -178
  2421. extremecloudiq/models/xiq_radius_client_object_type.py +0 -102
  2422. extremecloudiq/models/xiq_radius_client_profile.py +0 -179
  2423. extremecloudiq/models/xiq_radius_client_profile_entry.py +0 -151
  2424. extremecloudiq/models/xiq_radius_proxy.py +0 -460
  2425. extremecloudiq/models/xiq_radius_proxy_format_type.py +0 -103
  2426. extremecloudiq/models/xiq_radius_proxy_realm.py +0 -207
  2427. extremecloudiq/models/xiq_radius_server_type.py +0 -102
  2428. extremecloudiq/models/xiq_recurrence_type.py +0 -101
  2429. extremecloudiq/models/xiq_regenerate_end_user_password_response.py +0 -124
  2430. extremecloudiq/models/xiq_rf_environment_type.py +0 -106
  2431. extremecloudiq/models/xiq_rp_channel_selection.py +0 -776
  2432. extremecloudiq/models/xiq_rp_mac_oui_profile.py +0 -378
  2433. extremecloudiq/models/xiq_rp_miscellaneous_settings.py +0 -266
  2434. extremecloudiq/models/xiq_rp_neighborhood_analysis.py +0 -322
  2435. extremecloudiq/models/xiq_rp_radio_usage_optimization.py +0 -1162
  2436. extremecloudiq/models/xiq_rp_sensor_scan_settings.py +0 -266
  2437. extremecloudiq/models/xiq_rp_wmm_qos_settings.py +0 -350
  2438. extremecloudiq/models/xiq_schedule.py +0 -395
  2439. extremecloudiq/models/xiq_schedule_type.py +0 -101
  2440. extremecloudiq/models/xiq_send_cli_request.py +0 -151
  2441. extremecloudiq/models/xiq_send_cli_response.py +0 -123
  2442. extremecloudiq/models/xiq_server_role.py +0 -103
  2443. extremecloudiq/models/xiq_sessions_data_entity.py +0 -208
  2444. extremecloudiq/models/xiq_set_ssid_mode_dot1x_request.py +0 -290
  2445. extremecloudiq/models/xiq_set_ssid_mode_ppsk_request.py +0 -332
  2446. extremecloudiq/models/xiq_set_ssid_mode_psk_request.py +0 -293
  2447. extremecloudiq/models/xiq_set_ssid_mode_wep_request.py +0 -391
  2448. extremecloudiq/models/xiq_site.py +0 -464
  2449. extremecloudiq/models/xiq_site_afc_schedule.py +0 -199
  2450. extremecloudiq/models/xiq_sites_by_wired_entity.py +0 -207
  2451. extremecloudiq/models/xiq_sites_by_wireless_entity.py +0 -207
  2452. extremecloudiq/models/xiq_sms_log.py +0 -402
  2453. extremecloudiq/models/xiq_sms_log_status.py +0 -103
  2454. extremecloudiq/models/xiq_sms_template.py +0 -351
  2455. extremecloudiq/models/xiq_sort_field.py +0 -101
  2456. extremecloudiq/models/xiq_sort_order.py +0 -101
  2457. extremecloudiq/models/xiq_spectrum_mismatch_summary.py +0 -173
  2458. extremecloudiq/models/xiq_speed_duplex_entity.py +0 -180
  2459. extremecloudiq/models/xiq_ssid.py +0 -599
  2460. extremecloudiq/models/xiq_ssid_access_security.py +0 -311
  2461. extremecloudiq/models/xiq_ssid_access_security_type.py +0 -105
  2462. extremecloudiq/models/xiq_ssid_advanced_settings.py +0 -208
  2463. extremecloudiq/models/xiq_ssid_dot1x_encryption_method.py +0 -103
  2464. extremecloudiq/models/xiq_ssid_dot1x_key_management.py +0 -103
  2465. extremecloudiq/models/xiq_ssid_encryption_method.py +0 -105
  2466. extremecloudiq/models/xiq_ssid_key_management.py +0 -109
  2467. extremecloudiq/models/xiq_ssid_key_type.py +0 -101
  2468. extremecloudiq/models/xiq_ssid_ppsk_key_management.py +0 -102
  2469. extremecloudiq/models/xiq_ssid_psk_encryption_method.py +0 -102
  2470. extremecloudiq/models/xiq_ssid_psk_key_management.py +0 -103
  2471. extremecloudiq/models/xiq_ssid_sae_group.py +0 -102
  2472. extremecloudiq/models/xiq_ssid_status.py +0 -101
  2473. extremecloudiq/models/xiq_ssid_wep_authentication_method.py +0 -101
  2474. extremecloudiq/models/xiq_ssid_wep_default_key.py +0 -103
  2475. extremecloudiq/models/xiq_ssid_wep_encryption_method.py +0 -101
  2476. extremecloudiq/models/xiq_ssid_wep_key_management.py +0 -101
  2477. extremecloudiq/models/xiq_storage.py +0 -149
  2478. extremecloudiq/models/xiq_subnet_address_profile.py +0 -434
  2479. extremecloudiq/models/xiq_subscription_data_type.py +0 -107
  2480. extremecloudiq/models/xiq_subscription_message_type.py +0 -108
  2481. extremecloudiq/models/xiq_subscription_status.py +0 -101
  2482. extremecloudiq/models/xiq_success_onboard_device.py +0 -153
  2483. extremecloudiq/models/xiq_thread_backbone_border_router_service.py +0 -121
  2484. extremecloudiq/models/xiq_thread_border_agent_service.py +0 -147
  2485. extremecloudiq/models/xiq_thread_border_router_service.py +0 -355
  2486. extremecloudiq/models/xiq_thread_commissioner_service.py +0 -121
  2487. extremecloudiq/models/xiq_thread_ipv6_setting.py +0 -199
  2488. extremecloudiq/models/xiq_thread_leader_service.py +0 -199
  2489. extremecloudiq/models/xiq_thread_mle_link_mode.py +0 -173
  2490. extremecloudiq/models/xiq_thread_nat64_service.py +0 -173
  2491. extremecloudiq/models/xiq_thread_net_data_prefix.py +0 -433
  2492. extremecloudiq/models/xiq_thread_net_data_route.py +0 -251
  2493. extremecloudiq/models/xiq_thread_net_data_service.py +0 -251
  2494. extremecloudiq/models/xiq_thread_network_config.py +0 -607
  2495. extremecloudiq/models/xiq_thread_network_data.py +0 -225
  2496. extremecloudiq/models/xiq_thread_network_interface.py +0 -537
  2497. extremecloudiq/models/xiq_thread_network_topology.py +0 -173
  2498. extremecloudiq/models/xiq_thread_networks.py +0 -121
  2499. extremecloudiq/models/xiq_thread_router.py +0 -942
  2500. extremecloudiq/models/xiq_thread_router_neighbor.py +0 -199
  2501. extremecloudiq/models/xiq_thread_start_commissioner_request.py +0 -186
  2502. extremecloudiq/models/xiq_thread_stop_commissioner_request.py +0 -152
  2503. extremecloudiq/models/xiq_thread_version.py +0 -199
  2504. extremecloudiq/models/xiq_top_applications_usage.py +0 -235
  2505. extremecloudiq/models/xiq_traffic.py +0 -101
  2506. extremecloudiq/models/xiq_trend_graph_entity.py +0 -152
  2507. extremecloudiq/models/xiq_trend_indicator.py +0 -103
  2508. extremecloudiq/models/xiq_tunnel_concentrator.py +0 -768
  2509. extremecloudiq/models/xiq_tunnel_concentrator_request.py +0 -681
  2510. extremecloudiq/models/xiq_unaffected_downlink_device.py +0 -207
  2511. extremecloudiq/models/xiq_update_action_anomaly_details.py +0 -209
  2512. extremecloudiq/models/xiq_update_alert_email_subscription_request.py +0 -208
  2513. extremecloudiq/models/xiq_update_alert_rule_request.py +0 -319
  2514. extremecloudiq/models/xiq_update_alert_webhook_subscription_request.py +0 -236
  2515. extremecloudiq/models/xiq_update_anomalies_and_devices_request.py +0 -151
  2516. extremecloudiq/models/xiq_update_building_request.py +0 -236
  2517. extremecloudiq/models/xiq_update_classification_request.py +0 -188
  2518. extremecloudiq/models/xiq_update_classification_rule_request.py +0 -181
  2519. extremecloudiq/models/xiq_update_client_monitor_profile_request.py +0 -241
  2520. extremecloudiq/models/xiq_update_cloud_config_group_request.py +0 -179
  2521. extremecloudiq/models/xiq_update_device_level_ssid_status.py +0 -182
  2522. extremecloudiq/models/xiq_update_end_user_request.py +0 -347
  2523. extremecloudiq/models/xiq_update_external_radius_server_request.py +0 -278
  2524. extremecloudiq/models/xiq_update_external_user_request.py +0 -177
  2525. extremecloudiq/models/xiq_update_floor_request.py +0 -350
  2526. extremecloudiq/models/xiq_update_internal_radius_server_request.py +0 -652
  2527. extremecloudiq/models/xiq_update_key_based_pcg_users_request.py +0 -124
  2528. extremecloudiq/models/xiq_update_l3_address_profile_request.py +0 -292
  2529. extremecloudiq/models/xiq_update_ldap_server_request.py +0 -486
  2530. extremecloudiq/models/xiq_update_location_request.py +0 -153
  2531. extremecloudiq/models/xiq_update_mac_object_request.py +0 -207
  2532. extremecloudiq/models/xiq_update_network_policy_request.py +0 -177
  2533. extremecloudiq/models/xiq_update_radio_profile_request.py +0 -437
  2534. extremecloudiq/models/xiq_update_radius_client.py +0 -207
  2535. extremecloudiq/models/xiq_update_radius_client_object_request.py +0 -309
  2536. extremecloudiq/models/xiq_update_radius_proxy_realm.py +0 -207
  2537. extremecloudiq/models/xiq_update_radius_proxy_request.py +0 -345
  2538. extremecloudiq/models/xiq_update_rp_channel_selection_request.py +0 -713
  2539. extremecloudiq/models/xiq_update_rp_mac_oui_profile_request.py +0 -235
  2540. extremecloudiq/models/xiq_update_rp_miscellaneous_settings_request.py +0 -157
  2541. extremecloudiq/models/xiq_update_rp_neighborhood_analysis_request.py +0 -241
  2542. extremecloudiq/models/xiq_update_rp_radio_usage_optimization_request.py +0 -1159
  2543. extremecloudiq/models/xiq_update_rp_sensor_scan_settings_request.py +0 -179
  2544. extremecloudiq/models/xiq_update_rp_wmm_qos_settings_request.py +0 -259
  2545. extremecloudiq/models/xiq_update_site_request.py +0 -263
  2546. extremecloudiq/models/xiq_update_ssid_advanced_settings_request.py +0 -123
  2547. extremecloudiq/models/xiq_update_user_group_request.py +0 -453
  2548. extremecloudiq/models/xiq_update_user_profile_request.py +0 -151
  2549. extremecloudiq/models/xiq_update_user_request.py +0 -233
  2550. extremecloudiq/models/xiq_update_vlan_object_classified_entry_request.py +0 -153
  2551. extremecloudiq/models/xiq_update_vlan_profile_request.py +0 -210
  2552. extremecloudiq/models/xiq_user.py +0 -517
  2553. extremecloudiq/models/xiq_user_group.py +0 -599
  2554. extremecloudiq/models/xiq_user_profile.py +0 -237
  2555. extremecloudiq/models/xiq_user_profile_assignment.py +0 -488
  2556. extremecloudiq/models/xiq_user_profile_assignment_radius_attribute.py +0 -149
  2557. extremecloudiq/models/xiq_user_profile_assignment_rule.py +0 -175
  2558. extremecloudiq/models/xiq_user_role.py +0 -107
  2559. extremecloudiq/models/xiq_valid_daily_settings.py +0 -211
  2560. extremecloudiq/models/xiq_valid_during_date_settings.py +0 -178
  2561. extremecloudiq/models/xiq_valid_for_time_period_settings.py +0 -174
  2562. extremecloudiq/models/xiq_valid_time_period_after_first_login.py +0 -207
  2563. extremecloudiq/models/xiq_valid_time_period_after_id_creation.py +0 -151
  2564. extremecloudiq/models/xiq_valid_time_period_after_type.py +0 -101
  2565. extremecloudiq/models/xiq_viq.py +0 -347
  2566. extremecloudiq/models/xiq_viq_export_import_status_response.py +0 -261
  2567. extremecloudiq/models/xiq_viq_export_response.py +0 -182
  2568. extremecloudiq/models/xiq_viq_import_response.py +0 -153
  2569. extremecloudiq/models/xiq_viq_license.py +0 -456
  2570. extremecloudiq/models/xiq_viq_operation_type.py +0 -101
  2571. extremecloudiq/models/xiq_viq_task_progress.py +0 -207
  2572. extremecloudiq/models/xiq_vlan_object_classified_entry.py +0 -271
  2573. extremecloudiq/models/xiq_vlan_profile.py +0 -331
  2574. extremecloudiq/models/xiq_vlan_profile_filter.py +0 -123
  2575. extremecloudiq/models/xiq_voss_device.py +0 -207
  2576. extremecloudiq/models/xiq_voss_devices.py +0 -124
  2577. extremecloudiq/models/xiq_webhook_subscription.py +0 -350
  2578. extremecloudiq/models/xiq_weekday.py +0 -106
  2579. extremecloudiq/models/xiq_wgs84.py +0 -182
  2580. extremecloudiq/models/xiq_wifi_capacity_client_list_response.py +0 -123
  2581. extremecloudiq/models/xiq_wifi_capacity_stats_response.py +0 -123
  2582. extremecloudiq/models/xiq_wifi_efficiency_client_list_response.py +0 -123
  2583. extremecloudiq/models/xiq_wifi_efficiency_stats_response.py +0 -179
  2584. extremecloudiq/models/xiq_wildcard_address_profile.py +0 -434
  2585. extremecloudiq/models/xiq_wildcard_host_name_address_profile.py +0 -406
  2586. extremecloudiq/models/xiq_wing_device.py +0 -236
  2587. extremecloudiq/models/xiq_wing_devices.py +0 -124
  2588. extremecloudiq/models/xiq_wired_event_entity.py +0 -291
  2589. extremecloudiq/models/xiq_wired_filter_type.py +0 -104
  2590. extremecloudiq/models/xiq_wired_hardware_by_location_response.py +0 -179
  2591. extremecloudiq/models/xiq_wired_hardware_entity.py +0 -236
  2592. extremecloudiq/models/xiq_wired_hardware_response.py +0 -123
  2593. extremecloudiq/models/xiq_wired_quality_index_response.py +0 -151
  2594. extremecloudiq/models/xiq_wired_view_type.py +0 -100
  2595. extremecloudiq/models/xiq_wireless_apps_response.py +0 -235
  2596. extremecloudiq/models/xiq_wireless_client.py +0 -203
  2597. extremecloudiq/models/xiq_wireless_connectivity_performance_response.py +0 -123
  2598. extremecloudiq/models/xiq_wireless_event_retries_entity.py +0 -263
  2599. extremecloudiq/models/xiq_wireless_filter_type.py +0 -105
  2600. extremecloudiq/models/xiq_wireless_if_name.py +0 -102
  2601. extremecloudiq/models/xiq_wireless_performance_entity.py +0 -290
  2602. extremecloudiq/models/xiq_wireless_performance_retries_entity.py +0 -179
  2603. extremecloudiq/models/xiq_wireless_quality_index_by_location_response.py +0 -207
  2604. extremecloudiq/models/xiq_wireless_quality_index_response.py +0 -179
  2605. extremecloudiq/models/xiq_wireless_time_to_connect_entity.py +0 -404
  2606. extremecloudiq/models/xiq_wireless_time_to_connect_response.py +0 -123
  2607. extremecloudiq/models/xiq_wireless_views_list_type.py +0 -101
  2608. extremecloudiq/models/xiq_wireless_views_type_response.py +0 -123
  2609. extremecloudiq/models/xiq_zsubelement.py +0 -179
  2610. extremecloudiq/models/xiq_zsubelement_above_floor.py +0 -153
  2611. extremecloudiq_api-24.5.0.51.dist-info/METADATA +0 -18
  2612. extremecloudiq_api-24.5.0.51.dist-info/RECORD +0 -729
  2613. {extremecloudiq_api-24.5.0.51.dist-info → extremecloudiq_api-25.1.0.147.dist-info}/WHEEL +0 -0
  2614. {extremecloudiq_api-24.5.0.51.dist-info → extremecloudiq_api-25.1.0.147.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.1.0.147
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())