scm-python 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1566) hide show
  1. scm/__init__.py +720 -0
  2. scm/config_operations/__init__.py +46 -0
  3. scm/config_operations/api/__init__.py +6 -0
  4. scm/config_operations/api/config_versions_api.py +1780 -0
  5. scm/config_operations/api/jobs_api.py +579 -0
  6. scm/config_operations/api_client.py +798 -0
  7. scm/config_operations/api_response.py +21 -0
  8. scm/config_operations/configuration.py +471 -0
  9. scm/config_operations/exceptions.py +200 -0
  10. scm/config_operations/models/__init__.py +28 -0
  11. scm/config_operations/models/config_version.py +115 -0
  12. scm/config_operations/models/config_versions_list_response.py +113 -0
  13. scm/config_operations/models/error_detail_cause_info.py +94 -0
  14. scm/config_operations/models/generic_error.py +98 -0
  15. scm/config_operations/models/jobs.py +139 -0
  16. scm/config_operations/models/jobs_list_response.py +113 -0
  17. scm/config_operations/models/jobs_response.py +96 -0
  18. scm/config_operations/models/load_config.py +88 -0
  19. scm/config_operations/models/push_candidate_config_versions_request.py +95 -0
  20. scm/config_operations/models/running_config_versions_response.py +102 -0
  21. scm/config_operations/models/running_versions.py +93 -0
  22. scm/config_operations/rest.py +264 -0
  23. scm/config_operations/tests/__init__.py +0 -0
  24. scm/config_operations/tests/api_config_versions_test.py +136 -0
  25. scm/config_operations/tests/api_jobs_test.py +108 -0
  26. scm/config_setup/__init__.py +98 -0
  27. scm/config_setup/api/__init__.py +18 -0
  28. scm/config_setup/api/devices_api.py +1006 -0
  29. scm/config_setup/api/folders_api.py +1556 -0
  30. scm/config_setup/api/labels_api.py +1556 -0
  31. scm/config_setup/api/shared_snippets_api.py +883 -0
  32. scm/config_setup/api/snippet_audit_logs_api.py +625 -0
  33. scm/config_setup/api/snippet_categories_api.py +960 -0
  34. scm/config_setup/api/snippet_snapshots_api.py +2077 -0
  35. scm/config_setup/api/snippets_api.py +1556 -0
  36. scm/config_setup/api/subscribed_tenants_api.py +1201 -0
  37. scm/config_setup/api/trust_information_api.py +320 -0
  38. scm/config_setup/api/trust_validations_api.py +332 -0
  39. scm/config_setup/api/trusted_tenants_overview_api.py +300 -0
  40. scm/config_setup/api/trusts_api.py +630 -0
  41. scm/config_setup/api/variables_api.py +1670 -0
  42. scm/config_setup/api_client.py +798 -0
  43. scm/config_setup/api_response.py +21 -0
  44. scm/config_setup/configuration.py +467 -0
  45. scm/config_setup/exceptions.py +200 -0
  46. scm/config_setup/models/__init__.py +68 -0
  47. scm/config_setup/models/add_subscriber_request_payload_inner.py +92 -0
  48. scm/config_setup/models/common_snippet_snapshot_payload.py +90 -0
  49. scm/config_setup/models/compare_snippet_snapshot_config_payload.py +92 -0
  50. scm/config_setup/models/compare_tlo_payload.py +94 -0
  51. scm/config_setup/models/deleted_subscriber.py +96 -0
  52. scm/config_setup/models/devices.py +254 -0
  53. scm/config_setup/models/devices_available_licensess_inner.py +103 -0
  54. scm/config_setup/models/devices_installed_licenses_inner.py +107 -0
  55. scm/config_setup/models/devices_list_response.py +113 -0
  56. scm/config_setup/models/devices_put.py +96 -0
  57. scm/config_setup/models/error_detail_cause_info.py +99 -0
  58. scm/config_setup/models/folders.py +100 -0
  59. scm/config_setup/models/folders_list_response.py +113 -0
  60. scm/config_setup/models/generic_error.py +98 -0
  61. scm/config_setup/models/labels.py +94 -0
  62. scm/config_setup/models/labels_list_response.py +113 -0
  63. scm/config_setup/models/property_item.py +92 -0
  64. scm/config_setup/models/save_snippet_snapshot_config_response.py +96 -0
  65. scm/config_setup/models/save_snippet_snapshot_config_response_result.py +88 -0
  66. scm/config_setup/models/save_snippet_snapshot_payload.py +90 -0
  67. scm/config_setup/models/snippet_audit_history.py +143 -0
  68. scm/config_setup/models/snippet_audit_payload.py +104 -0
  69. scm/config_setup/models/snippet_categories.py +203 -0
  70. scm/config_setup/models/snippet_categories_list_response.py +113 -0
  71. scm/config_setup/models/snippet_share_info.py +181 -0
  72. scm/config_setup/models/snippet_share_load_payload.py +95 -0
  73. scm/config_setup/models/snippet_share_property.py +151 -0
  74. scm/config_setup/models/snippet_share_upload_payload.py +92 -0
  75. scm/config_setup/models/snippet_snapshot_compare_entry.py +117 -0
  76. scm/config_setup/models/snippet_snapshot_diff_response.py +98 -0
  77. scm/config_setup/models/snippet_snapshot_diff_response_after.py +95 -0
  78. scm/config_setup/models/snippet_snapshot_diff_response_before.py +91 -0
  79. scm/config_setup/models/snippet_snapshot_load_snippet_payload.py +90 -0
  80. scm/config_setup/models/snippet_snapshot_load_snippet_response.py +88 -0
  81. scm/config_setup/models/snippet_snapshot_publish_request.py +96 -0
  82. scm/config_setup/models/snippet_snapshot_publish_response.py +116 -0
  83. scm/config_setup/models/snippet_snapshot_subscriber_compare_payload.py +90 -0
  84. scm/config_setup/models/snippet_snapshot_subscriber_compare_response.py +97 -0
  85. scm/config_setup/models/snippet_snapshot_subscriber_compare_response_publisher.py +88 -0
  86. scm/config_setup/models/snippets.py +110 -0
  87. scm/config_setup/models/snippets_list_response.py +113 -0
  88. scm/config_setup/models/subscriber_property_payload.py +102 -0
  89. scm/config_setup/models/tenant_trust_info.py +173 -0
  90. scm/config_setup/models/trust_info_with_shared_snippets.py +169 -0
  91. scm/config_setup/models/trusted_tenant_overview.py +97 -0
  92. scm/config_setup/models/trusted_tenant_overview_publisher.py +94 -0
  93. scm/config_setup/models/trusts.py +101 -0
  94. scm/config_setup/models/trusts_validation_payload.py +101 -0
  95. scm/config_setup/models/used_folders.py +90 -0
  96. scm/config_setup/models/variables.py +151 -0
  97. scm/config_setup/models/variables_list_response.py +113 -0
  98. scm/config_setup/rest.py +264 -0
  99. scm/config_setup/tests/__init__.py +0 -0
  100. scm/config_setup/tests/api_devices_test.py +169 -0
  101. scm/config_setup/tests/api_folders_test.py +36 -0
  102. scm/config_setup/tests/api_labels_test.py +188 -0
  103. scm/config_setup/tests/api_shared_snippets_test.py +27 -0
  104. scm/config_setup/tests/api_snippet_categories_test.py +45 -0
  105. scm/config_setup/tests/api_snippets_test.py +224 -0
  106. scm/config_setup/tests/api_subscribed_tenants_test.py +41 -0
  107. scm/config_setup/tests/api_trust_information_test.py +27 -0
  108. scm/config_setup/tests/api_variables_test.py +255 -0
  109. scm/decorators.py +110 -0
  110. scm/deployment_services/__init__.py +82 -0
  111. scm/deployment_services/api/__init__.py +15 -0
  112. scm/deployment_services/api/application_defaults_api.py +299 -0
  113. scm/deployment_services/api/bandwidth_allocations_api.py +1277 -0
  114. scm/deployment_services/api/bgp_routing_api.py +595 -0
  115. scm/deployment_services/api/internal_dns_servers_api.py +1556 -0
  116. scm/deployment_services/api/network_locations_api.py +304 -0
  117. scm/deployment_services/api/remote_networks_api.py +1585 -0
  118. scm/deployment_services/api/service_connection_groups_api.py +1585 -0
  119. scm/deployment_services/api/service_connections_api.py +1585 -0
  120. scm/deployment_services/api/shared_infrastructure_settings_api.py +596 -0
  121. scm/deployment_services/api/sites_api.py +1585 -0
  122. scm/deployment_services/api/traffic_steering_rules_api.py +1602 -0
  123. scm/deployment_services/api_client.py +798 -0
  124. scm/deployment_services/api_response.py +21 -0
  125. scm/deployment_services/configuration.py +471 -0
  126. scm/deployment_services/exceptions.py +200 -0
  127. scm/deployment_services/models/__init__.py +55 -0
  128. scm/deployment_services/models/bandwidth_allocations.py +98 -0
  129. scm/deployment_services/models/bandwidth_allocations_list_response.py +113 -0
  130. scm/deployment_services/models/bandwidth_allocations_qos.py +94 -0
  131. scm/deployment_services/models/bgp_routing.py +112 -0
  132. scm/deployment_services/models/bgp_routing_routing_preference.py +90 -0
  133. scm/deployment_services/models/edit_shared_infrastructure_settings.py +106 -0
  134. scm/deployment_services/models/edit_shared_infrastructure_settings_connector_application_blocks.py +89 -0
  135. scm/deployment_services/models/edit_shared_infrastructure_settings_connector_connector_blocks.py +89 -0
  136. scm/deployment_services/models/error_detail_cause_info.py +99 -0
  137. scm/deployment_services/models/generic_error.py +98 -0
  138. scm/deployment_services/models/internal_dns_servers.py +98 -0
  139. scm/deployment_services/models/internal_dns_servers_list_response.py +113 -0
  140. scm/deployment_services/models/locations.py +101 -0
  141. scm/deployment_services/models/remote_networks.py +135 -0
  142. scm/deployment_services/models/remote_networks_ecmp_tunnels_inner.py +96 -0
  143. scm/deployment_services/models/remote_networks_ecmp_tunnels_inner_protocol.py +92 -0
  144. scm/deployment_services/models/remote_networks_list_response.py +113 -0
  145. scm/deployment_services/models/remote_networks_protocol.py +98 -0
  146. scm/deployment_services/models/remote_networks_protocol_bgp.py +114 -0
  147. scm/deployment_services/models/remote_networks_protocol_bgp_peer.py +94 -0
  148. scm/deployment_services/models/service_connection_groups.py +98 -0
  149. scm/deployment_services/models/service_connection_groups_list_response.py +113 -0
  150. scm/deployment_services/models/service_connections.py +150 -0
  151. scm/deployment_services/models/service_connections_bgp_peer.py +98 -0
  152. scm/deployment_services/models/service_connections_list_response.py +113 -0
  153. scm/deployment_services/models/service_connections_protocol.py +92 -0
  154. scm/deployment_services/models/service_connections_protocol_bgp.py +104 -0
  155. scm/deployment_services/models/service_connections_qos.py +90 -0
  156. scm/deployment_services/models/shared_infrastructure_settings.py +120 -0
  157. scm/deployment_services/models/sites.py +149 -0
  158. scm/deployment_services/models/sites_list_response.py +113 -0
  159. scm/deployment_services/models/sites_members_inner.py +103 -0
  160. scm/deployment_services/models/sites_qos.py +92 -0
  161. scm/deployment_services/models/traffic_steering_rules.py +110 -0
  162. scm/deployment_services/models/traffic_steering_rules_action.py +92 -0
  163. scm/deployment_services/models/traffic_steering_rules_action_forward.py +94 -0
  164. scm/deployment_services/models/traffic_steering_rules_action_forward_forward.py +88 -0
  165. scm/deployment_services/models/traffic_steering_rules_list_response.py +113 -0
  166. scm/deployment_services/rest.py +264 -0
  167. scm/deployment_services/tests/__init__.py +0 -0
  168. scm/deployment_services/tests/api_application_defaults_test.py +31 -0
  169. scm/deployment_services/tests/api_bandwidth_allocations_test.py +96 -0
  170. scm/deployment_services/tests/api_bgp_routing_test.py +36 -0
  171. scm/deployment_services/tests/api_internal_dns_servers_test.py +218 -0
  172. scm/deployment_services/tests/api_network_locations_test.py +27 -0
  173. scm/deployment_services/tests/api_remote_networks_test.py +403 -0
  174. scm/deployment_services/tests/api_service_connection_groups_test.py +432 -0
  175. scm/deployment_services/tests/api_service_connections_test.py +396 -0
  176. scm/deployment_services/tests/api_sites_test.py +453 -0
  177. scm/deployment_services/tests/api_traffic_steering_rules_test.py +240 -0
  178. scm/device_settings/__init__.py +142 -0
  179. scm/device_settings/api/__init__.py +18 -0
  180. scm/device_settings/api/authentication_settings_api.py +1508 -0
  181. scm/device_settings/api/content_id_settings_api.py +1508 -0
  182. scm/device_settings/api/device_redistribution_collector_settings_api.py +1508 -0
  183. scm/device_settings/api/general_settings_api.py +1508 -0
  184. scm/device_settings/api/high_availability_devices_api.py +354 -0
  185. scm/device_settings/api/login_banner_settings_api.py +1508 -0
  186. scm/device_settings/api/management_interface_settings_api.py +1508 -0
  187. scm/device_settings/api/service_route_settings_api.py +1508 -0
  188. scm/device_settings/api/service_settings_api.py +1508 -0
  189. scm/device_settings/api/session_settings_api.py +1508 -0
  190. scm/device_settings/api/session_timeouts_settings_api.py +1508 -0
  191. scm/device_settings/api/tcp_settings_api.py +1508 -0
  192. scm/device_settings/api/update_schedule_settings_api.py +1508 -0
  193. scm/device_settings/api/vpn_settings_api.py +1508 -0
  194. scm/device_settings/api_client.py +798 -0
  195. scm/device_settings/api_response.py +21 -0
  196. scm/device_settings/configuration.py +467 -0
  197. scm/device_settings/exceptions.py +200 -0
  198. scm/device_settings/models/__init__.py +112 -0
  199. scm/device_settings/models/authentication_settings.py +133 -0
  200. scm/device_settings/models/authentication_settings_authentication.py +92 -0
  201. scm/device_settings/models/content_id_settings.py +133 -0
  202. scm/device_settings/models/content_id_settings_content_id.py +107 -0
  203. scm/device_settings/models/content_id_settings_content_id_application.py +88 -0
  204. scm/device_settings/models/device_redistribution_collector.py +133 -0
  205. scm/device_settings/models/device_redistribution_collector_redistribution_collector.py +88 -0
  206. scm/device_settings/models/error_detail_cause_info.py +94 -0
  207. scm/device_settings/models/general_settings.py +133 -0
  208. scm/device_settings/models/general_settings_general.py +120 -0
  209. scm/device_settings/models/general_settings_general_geo_location.py +90 -0
  210. scm/device_settings/models/general_settings_general_setting.py +98 -0
  211. scm/device_settings/models/general_settings_general_setting_management.py +90 -0
  212. scm/device_settings/models/generic_error.py +98 -0
  213. scm/device_settings/models/ha_configurations.py +137 -0
  214. scm/device_settings/models/ha_configurations_group.py +121 -0
  215. scm/device_settings/models/ha_configurations_group_election_option.py +105 -0
  216. scm/device_settings/models/ha_configurations_group_mode.py +92 -0
  217. scm/device_settings/models/ha_configurations_group_mode_active_passive.py +101 -0
  218. scm/device_settings/models/ha_configurations_group_monitoring.py +98 -0
  219. scm/device_settings/models/ha_configurations_group_monitoring_link_monitoring.py +110 -0
  220. scm/device_settings/models/ha_configurations_group_monitoring_link_monitoring_link_group_inner.py +104 -0
  221. scm/device_settings/models/ha_configurations_group_monitoring_path_monitoring.py +106 -0
  222. scm/device_settings/models/ha_configurations_group_monitoring_path_monitoring_path_group.py +96 -0
  223. scm/device_settings/models/ha_configurations_group_monitoring_path_monitoring_path_group_logical_router_inner.py +117 -0
  224. scm/device_settings/models/ha_configurations_group_monitoring_path_monitoring_path_group_logical_router_inner_destination_ip_group_inner.py +104 -0
  225. scm/device_settings/models/ha_configurations_group_state_synchronization.py +106 -0
  226. scm/device_settings/models/ha_configurations_group_state_synchronization_ha2_keep_alive.py +103 -0
  227. scm/device_settings/models/ha_configurations_interface.py +110 -0
  228. scm/device_settings/models/ha_configurations_interface_ha1.py +97 -0
  229. scm/device_settings/models/ha_configurations_interface_ha1_backup.py +94 -0
  230. scm/device_settings/models/ha_configurations_interface_ha2.py +94 -0
  231. scm/device_settings/models/ha_configurations_interface_ha2_backup.py +94 -0
  232. scm/device_settings/models/ha_devices.py +133 -0
  233. scm/device_settings/models/ha_devices_ha_devices_inner.py +94 -0
  234. scm/device_settings/models/list_ha_devices200_response.py +96 -0
  235. scm/device_settings/models/management_interface.py +133 -0
  236. scm/device_settings/models/management_interface_management_interface.py +128 -0
  237. scm/device_settings/models/management_interface_management_interface_mgmt_type.py +94 -0
  238. scm/device_settings/models/management_interface_management_interface_mgmt_type_dhcp_client.py +94 -0
  239. scm/device_settings/models/management_interface_management_interface_permitted_ip_inner.py +90 -0
  240. scm/device_settings/models/management_interface_management_interface_service.py +106 -0
  241. scm/device_settings/models/motd_banner_settings.py +133 -0
  242. scm/device_settings/models/motd_banner_settings_motd_and_banner.py +123 -0
  243. scm/device_settings/models/motd_color.py +53 -0
  244. scm/device_settings/models/service_route.py +133 -0
  245. scm/device_settings/models/service_route_route.py +106 -0
  246. scm/device_settings/models/service_route_route_destination_inner.py +94 -0
  247. scm/device_settings/models/service_route_route_destination_inner_source.py +90 -0
  248. scm/device_settings/models/service_route_route_service_inner.py +110 -0
  249. scm/device_settings/models/service_route_route_service_inner_source.py +90 -0
  250. scm/device_settings/models/service_route_route_service_inner_source_v6.py +90 -0
  251. scm/device_settings/models/service_settings.py +133 -0
  252. scm/device_settings/models/service_settings_services.py +118 -0
  253. scm/device_settings/models/service_settings_services_dns_setting.py +94 -0
  254. scm/device_settings/models/service_settings_services_dns_setting_servers.py +90 -0
  255. scm/device_settings/models/service_settings_services_ntp_servers.py +97 -0
  256. scm/device_settings/models/service_settings_services_ntp_servers_primary_ntp_server.py +94 -0
  257. scm/device_settings/models/service_settings_services_ntp_servers_primary_ntp_server_authentication_type.py +96 -0
  258. scm/device_settings/models/service_settings_services_ntp_servers_primary_ntp_server_authentication_type_symmetric_key.py +94 -0
  259. scm/device_settings/models/service_settings_services_ntp_servers_primary_ntp_server_authentication_type_symmetric_key_algorithm.py +97 -0
  260. scm/device_settings/models/service_settings_services_ntp_servers_primary_ntp_server_authentication_type_symmetric_key_algorithm_md5.py +88 -0
  261. scm/device_settings/models/session_settings.py +133 -0
  262. scm/device_settings/models/session_settings_session_settings.py +159 -0
  263. scm/device_settings/models/session_settings_session_settings_config.py +88 -0
  264. scm/device_settings/models/session_settings_session_settings_icmpv6_rate_limit.py +91 -0
  265. scm/device_settings/models/session_settings_session_settings_jumbo_frame.py +89 -0
  266. scm/device_settings/models/session_settings_session_settings_nat.py +98 -0
  267. scm/device_settings/models/session_settings_session_settings_nat64.py +89 -0
  268. scm/device_settings/models/session_timeouts.py +133 -0
  269. scm/device_settings/models/session_timeouts_session_timeouts.py +115 -0
  270. scm/device_settings/models/tcp_settings.py +133 -0
  271. scm/device_settings/models/tcp_settings_tcp.py +134 -0
  272. scm/device_settings/models/update_schedule.py +133 -0
  273. scm/device_settings/models/update_schedule_update_schedule.py +104 -0
  274. scm/device_settings/models/update_schedule_update_schedule_anti_virus.py +92 -0
  275. scm/device_settings/models/update_schedule_update_schedule_anti_virus_recurring.py +111 -0
  276. scm/device_settings/models/update_schedule_update_schedule_anti_virus_recurring_daily.py +108 -0
  277. scm/device_settings/models/update_schedule_update_schedule_anti_virus_recurring_hourly.py +101 -0
  278. scm/device_settings/models/update_schedule_update_schedule_anti_virus_recurring_weekly.py +123 -0
  279. scm/device_settings/models/update_schedule_update_schedule_threats.py +92 -0
  280. scm/device_settings/models/update_schedule_update_schedule_threats_recurring.py +119 -0
  281. scm/device_settings/models/update_schedule_update_schedule_threats_recurring_daily.py +110 -0
  282. scm/device_settings/models/update_schedule_update_schedule_threats_recurring_every30_mins.py +103 -0
  283. scm/device_settings/models/update_schedule_update_schedule_threats_recurring_hourly.py +103 -0
  284. scm/device_settings/models/update_schedule_update_schedule_threats_recurring_weekly.py +119 -0
  285. scm/device_settings/models/update_schedule_update_schedule_wildfire.py +92 -0
  286. scm/device_settings/models/update_schedule_update_schedule_wildfire_recurring.py +114 -0
  287. scm/device_settings/models/update_schedule_update_schedule_wildfire_recurring_every15_mins.py +103 -0
  288. scm/device_settings/models/update_schedule_update_schedule_wildfire_recurring_every30_mins.py +103 -0
  289. scm/device_settings/models/update_schedule_update_schedule_wildfire_recurring_every_hour.py +103 -0
  290. scm/device_settings/models/update_schedule_update_schedule_wildfire_recurring_every_min.py +100 -0
  291. scm/device_settings/models/vpn_settings.py +133 -0
  292. scm/device_settings/models/vpn_settings_vpn.py +92 -0
  293. scm/device_settings/models/vpn_settings_vpn_ikev2.py +93 -0
  294. scm/device_settings/rest.py +264 -0
  295. scm/device_settings/tests/__init__.py +0 -0
  296. scm/device_settings/tests/api_authentication_settings_test.py +56 -0
  297. scm/device_settings/tests/api_content_id_settings_test.py +56 -0
  298. scm/device_settings/tests/api_device_redistribution_collector_settings_test.py +56 -0
  299. scm/device_settings/tests/api_general_settings_test.py +56 -0
  300. scm/device_settings/tests/api_high_availability_devices_test.py +35 -0
  301. scm/device_settings/tests/api_login_banner_settings_test.py +56 -0
  302. scm/device_settings/tests/api_management_interface_settings_test.py +56 -0
  303. scm/device_settings/tests/api_service_route_settings_test.py +56 -0
  304. scm/device_settings/tests/api_service_settings_test.py +56 -0
  305. scm/device_settings/tests/api_session_settings_test.py +56 -0
  306. scm/device_settings/tests/api_session_timeouts_settings_test.py +56 -0
  307. scm/device_settings/tests/api_tcp_settings_test.py +56 -0
  308. scm/device_settings/tests/api_update_schedule_settings_test.py +56 -0
  309. scm/device_settings/tests/api_vpn_settings_test.py +56 -0
  310. scm/error_parser.py +457 -0
  311. scm/exceptions.py +659 -0
  312. scm/identity_services/__init__.py +125 -0
  313. scm/identity_services/api/__init__.py +22 -0
  314. scm/identity_services/api/authentication_portals_api.py +1619 -0
  315. scm/identity_services/api/authentication_profiles_api.py +1619 -0
  316. scm/identity_services/api/authentication_rules_api.py +1958 -0
  317. scm/identity_services/api/authentication_sequences_api.py +1619 -0
  318. scm/identity_services/api/certificate_profiles_api.py +1619 -0
  319. scm/identity_services/api/certificates_api.py +1633 -0
  320. scm/identity_services/api/kerberos_server_profiles_api.py +1619 -0
  321. scm/identity_services/api/ldap_server_profiles_api.py +1619 -0
  322. scm/identity_services/api/local_user_groups_api.py +1619 -0
  323. scm/identity_services/api/local_users_api.py +1619 -0
  324. scm/identity_services/api/mfa_servers_api.py +1636 -0
  325. scm/identity_services/api/ocsp_responders_api.py +1619 -0
  326. scm/identity_services/api/radius_server_profiles_api.py +1619 -0
  327. scm/identity_services/api/saml_server_profiles_api.py +1619 -0
  328. scm/identity_services/api/scep_profiles_api.py +1619 -0
  329. scm/identity_services/api/tacacs_server_profiles_api.py +1619 -0
  330. scm/identity_services/api/tls_service_profiles_api.py +1619 -0
  331. scm/identity_services/api/trusted_certificate_authorities_api.py +467 -0
  332. scm/identity_services/api_client.py +798 -0
  333. scm/identity_services/api_response.py +21 -0
  334. scm/identity_services/configuration.py +471 -0
  335. scm/identity_services/exceptions.py +200 -0
  336. scm/identity_services/models/__init__.py +91 -0
  337. scm/identity_services/models/authentication_portals.py +141 -0
  338. scm/identity_services/models/authentication_portals_list_response.py +113 -0
  339. scm/identity_services/models/authentication_profiles.py +169 -0
  340. scm/identity_services/models/authentication_profiles_list_response.py +113 -0
  341. scm/identity_services/models/authentication_profiles_lockout.py +91 -0
  342. scm/identity_services/models/authentication_profiles_method.py +124 -0
  343. scm/identity_services/models/authentication_profiles_method_cloud.py +88 -0
  344. scm/identity_services/models/authentication_profiles_method_kerberos.py +90 -0
  345. scm/identity_services/models/authentication_profiles_method_ldap.py +92 -0
  346. scm/identity_services/models/authentication_profiles_method_radius.py +90 -0
  347. scm/identity_services/models/authentication_profiles_method_saml_idp.py +99 -0
  348. scm/identity_services/models/authentication_profiles_method_tacplus.py +90 -0
  349. scm/identity_services/models/authentication_profiles_multi_factor_auth.py +90 -0
  350. scm/identity_services/models/authentication_profiles_single_sign_on.py +91 -0
  351. scm/identity_services/models/authentication_rules.py +139 -0
  352. scm/identity_services/models/authentication_rules_list_response.py +113 -0
  353. scm/identity_services/models/authentication_sequences.py +133 -0
  354. scm/identity_services/models/authentication_sequences_list_response.py +113 -0
  355. scm/identity_services/models/certificate_profiles.py +165 -0
  356. scm/identity_services/models/certificate_profiles_ca_certificates_inner.py +94 -0
  357. scm/identity_services/models/certificate_profiles_list_response.py +113 -0
  358. scm/identity_services/models/certificate_profiles_username_field.py +110 -0
  359. scm/identity_services/models/certificates_get.py +155 -0
  360. scm/identity_services/models/certificates_import.py +140 -0
  361. scm/identity_services/models/certificates_list_response.py +113 -0
  362. scm/identity_services/models/certificates_post.py +168 -0
  363. scm/identity_services/models/certificates_post_algorithm.py +110 -0
  364. scm/identity_services/models/error_detail_cause_info.py +99 -0
  365. scm/identity_services/models/export_certificate_payload.py +97 -0
  366. scm/identity_services/models/export_certificate_response.py +88 -0
  367. scm/identity_services/models/generic_error.py +98 -0
  368. scm/identity_services/models/kerberos_server_profiles.py +139 -0
  369. scm/identity_services/models/kerberos_server_profiles_list_response.py +113 -0
  370. scm/identity_services/models/kerberos_server_profiles_server_inner.py +93 -0
  371. scm/identity_services/models/ldap_server_profiles.py +167 -0
  372. scm/identity_services/models/ldap_server_profiles_list_response.py +113 -0
  373. scm/identity_services/models/ldap_server_profiles_server_inner.py +93 -0
  374. scm/identity_services/models/local_user_groups.py +138 -0
  375. scm/identity_services/models/local_user_groups_list_response.py +113 -0
  376. scm/identity_services/models/local_users.py +133 -0
  377. scm/identity_services/models/local_users_list_response.py +113 -0
  378. scm/identity_services/models/mfa_servers.py +137 -0
  379. scm/identity_services/models/mfa_servers_list_response.py +113 -0
  380. scm/identity_services/models/mfa_servers_mfa_vendor_type.py +110 -0
  381. scm/identity_services/models/mfa_servers_mfa_vendor_type_duo_security_v2.py +97 -0
  382. scm/identity_services/models/mfa_servers_mfa_vendor_type_okta_adaptive_v1.py +97 -0
  383. scm/identity_services/models/mfa_servers_mfa_vendor_type_ping_identity_v1.py +99 -0
  384. scm/identity_services/models/mfa_servers_mfa_vendor_type_rsa_securid_access_v1.py +99 -0
  385. scm/identity_services/models/ocsp_responders.py +138 -0
  386. scm/identity_services/models/ocsp_responders_list_response.py +113 -0
  387. scm/identity_services/models/radius_server_profiles.py +149 -0
  388. scm/identity_services/models/radius_server_profiles_list_response.py +113 -0
  389. scm/identity_services/models/radius_server_profiles_protocol.py +107 -0
  390. scm/identity_services/models/radius_server_profiles_protocol_eapttls_with_pap.py +90 -0
  391. scm/identity_services/models/radius_server_profiles_protocol_peapmschapv2.py +92 -0
  392. scm/identity_services/models/radius_server_profiles_server_inner.py +95 -0
  393. scm/identity_services/models/rule_based_move.py +106 -0
  394. scm/identity_services/models/saml_server_profiles.py +164 -0
  395. scm/identity_services/models/saml_server_profiles_list_response.py +113 -0
  396. scm/identity_services/models/scep_profiles.py +192 -0
  397. scm/identity_services/models/scep_profiles_algorithm.py +92 -0
  398. scm/identity_services/models/scep_profiles_algorithm_rsa.py +95 -0
  399. scm/identity_services/models/scep_profiles_certificate_attributes.py +92 -0
  400. scm/identity_services/models/scep_profiles_list_response.py +113 -0
  401. scm/identity_services/models/scep_profiles_scep_challenge.py +97 -0
  402. scm/identity_services/models/scep_profiles_scep_challenge_dynamic.py +93 -0
  403. scm/identity_services/models/tacacs_server_profiles.py +152 -0
  404. scm/identity_services/models/tacacs_server_profiles_list_response.py +113 -0
  405. scm/identity_services/models/tacacs_server_profiles_server_inner.py +95 -0
  406. scm/identity_services/models/tls_service_profiles.py +144 -0
  407. scm/identity_services/models/tls_service_profiles_list_response.py +113 -0
  408. scm/identity_services/models/tls_service_profiles_protocol_settings.py +130 -0
  409. scm/identity_services/models/trusted_certificate_authorities.py +109 -0
  410. scm/identity_services/models/trusted_certificate_authorities_list_response.py +113 -0
  411. scm/identity_services/rest.py +264 -0
  412. scm/identity_services/tests/__init__.py +0 -0
  413. scm/identity_services/tests/api_authentication_portals_test.py +253 -0
  414. scm/identity_services/tests/api_authentication_profiles_test.py +274 -0
  415. scm/identity_services/tests/api_authentication_rules_test.py +261 -0
  416. scm/identity_services/tests/api_authentication_sequences_test.py +255 -0
  417. scm/identity_services/tests/api_certificate_profiles_test.py +282 -0
  418. scm/identity_services/tests/api_certificates_test.py +355 -0
  419. scm/identity_services/tests/api_kerberos_server_profiles_test.py +266 -0
  420. scm/identity_services/tests/api_ldap_server_profiles_test.py +32 -0
  421. scm/identity_services/tests/api_local_user_groups_test.py +222 -0
  422. scm/identity_services/tests/api_local_users_test.py +32 -0
  423. scm/identity_services/tests/api_mfa_servers_test.py +40 -0
  424. scm/identity_services/tests/api_ocsp_responders_test.py +235 -0
  425. scm/identity_services/tests/api_radius_server_profiles_test.py +250 -0
  426. scm/identity_services/tests/api_saml_server_profiles_test.py +204 -0
  427. scm/identity_services/tests/api_scep_profiles_test.py +267 -0
  428. scm/identity_services/tests/api_tacacs_server_profiles_test.py +267 -0
  429. scm/identity_services/tests/api_tls_service_profiles_test.py +215 -0
  430. scm/identity_services/tests/api_trusted_certificate_authorities_test.py +28 -0
  431. scm/mobile_agent/__init__.py +70 -0
  432. scm/mobile_agent/api/__init__.py +9 -0
  433. scm/mobile_agent/api/destinations_api.py +1602 -0
  434. scm/mobile_agent/api/forwarding_profiles_api.py +1602 -0
  435. scm/mobile_agent/api/regional_and_custom_proxies_api.py +1602 -0
  436. scm/mobile_agent/api/source_applications_api.py +1602 -0
  437. scm/mobile_agent/api/user_locations_api.py +1602 -0
  438. scm/mobile_agent/api_client.py +798 -0
  439. scm/mobile_agent/api_response.py +21 -0
  440. scm/mobile_agent/configuration.py +471 -0
  441. scm/mobile_agent/exceptions.py +200 -0
  442. scm/mobile_agent/models/__init__.py +49 -0
  443. scm/mobile_agent/models/block_rule_basic.py +100 -0
  444. scm/mobile_agent/models/block_rule_basic_allow_tcp.py +91 -0
  445. scm/mobile_agent/models/block_rule_basic_allow_udp.py +95 -0
  446. scm/mobile_agent/models/block_rule_ztna.py +100 -0
  447. scm/mobile_agent/models/error_detail_cause_info.py +99 -0
  448. scm/mobile_agent/models/forwarding_profile_destination_fqdn_entry.py +98 -0
  449. scm/mobile_agent/models/forwarding_profile_destination_ip_entry.py +98 -0
  450. scm/mobile_agent/models/forwarding_profile_destinations.py +122 -0
  451. scm/mobile_agent/models/forwarding_profile_global_protect_proxy.py +92 -0
  452. scm/mobile_agent/models/forwarding_profile_global_protect_proxy_global_protect_proxy.py +104 -0
  453. scm/mobile_agent/models/forwarding_profile_pac_file.py +92 -0
  454. scm/mobile_agent/models/forwarding_profile_pac_file_pac_file.py +104 -0
  455. scm/mobile_agent/models/forwarding_profile_regional_and_custom_proxies.py +170 -0
  456. scm/mobile_agent/models/forwarding_profile_regional_and_custom_proxies_connectivity_preference_inner.py +97 -0
  457. scm/mobile_agent/models/forwarding_profile_regional_and_custom_proxies_prisma_access_locations_inner.py +98 -0
  458. scm/mobile_agent/models/forwarding_profile_regional_and_custom_proxies_proxy1.py +103 -0
  459. scm/mobile_agent/models/forwarding_profile_regional_and_custom_proxies_proxy2.py +103 -0
  460. scm/mobile_agent/models/forwarding_profile_source_applications.py +104 -0
  461. scm/mobile_agent/models/forwarding_profile_user_locations.py +113 -0
  462. scm/mobile_agent/models/forwarding_profile_user_locations_internal_host_detection.py +105 -0
  463. scm/mobile_agent/models/forwarding_profile_ztna_agent.py +92 -0
  464. scm/mobile_agent/models/forwarding_profile_ztna_agent_ztna_agent.py +104 -0
  465. scm/mobile_agent/models/forwarding_profiles.py +120 -0
  466. scm/mobile_agent/models/forwarding_profiles_type.py +104 -0
  467. scm/mobile_agent/models/forwarding_rule_basic.py +104 -0
  468. scm/mobile_agent/models/forwarding_rule_ztna.py +118 -0
  469. scm/mobile_agent/models/generic_error.py +98 -0
  470. scm/mobile_agent/models/global_protect_destinations_list_response.py +113 -0
  471. scm/mobile_agent/models/global_protect_forwarding_profiles_list_response.py +113 -0
  472. scm/mobile_agent/models/global_protect_regional_and_custom_proxies_list_response.py +113 -0
  473. scm/mobile_agent/models/global_protect_source_applications_list_response.py +113 -0
  474. scm/mobile_agent/models/global_protect_user_locations_list_response.py +113 -0
  475. scm/mobile_agent/rest.py +264 -0
  476. scm/mobile_agent/tests/__init__.py +0 -0
  477. scm/mobile_agent/tests/api_destinations_test.py +383 -0
  478. scm/mobile_agent/tests/api_forwarding_profiles_test.py +329 -0
  479. scm/mobile_agent/tests/api_regional_and_custom_proxies_test.py +527 -0
  480. scm/mobile_agent/tests/api_source_applications_test.py +383 -0
  481. scm/mobile_agent/tests/api_user_locations_test.py +514 -0
  482. scm/network_services/__init__.py +638 -0
  483. scm/network_services/api/__init__.py +54 -0
  484. scm/network_services/api/aggregate_interfaces_api.py +1619 -0
  485. scm/network_services/api/auto_vpn_clusters_api.py +1556 -0
  486. scm/network_services/api/auto_vpn_config_push_api.py +332 -0
  487. scm/network_services/api/auto_vpn_monitor_api.py +300 -0
  488. scm/network_services/api/auto_vpn_settings_api.py +595 -0
  489. scm/network_services/api/bgp_address_family_profiles_api.py +1619 -0
  490. scm/network_services/api/bgp_authentication_profiles_api.py +1619 -0
  491. scm/network_services/api/bgp_filtering_profiles_api.py +1619 -0
  492. scm/network_services/api/bgp_redistribution_profiles_api.py +1619 -0
  493. scm/network_services/api/bgp_route_map_redistributions_api.py +1619 -0
  494. scm/network_services/api/bgp_route_maps_api.py +1619 -0
  495. scm/network_services/api/config_match_list_api.py +1619 -0
  496. scm/network_services/api/dhcp_interfaces_api.py +1619 -0
  497. scm/network_services/api/dns_proxies_api.py +1619 -0
  498. scm/network_services/api/ethernet_interfaces_api.py +1619 -0
  499. scm/network_services/api/globalprotect_match_list_api.py +1619 -0
  500. scm/network_services/api/hipmatch_match_list_api.py +1619 -0
  501. scm/network_services/api/ike_crypto_profiles_api.py +1619 -0
  502. scm/network_services/api/ike_gateways_api.py +1619 -0
  503. scm/network_services/api/interface_management_profiles_api.py +1619 -0
  504. scm/network_services/api/ipsec_crypto_profiles_api.py +1619 -0
  505. scm/network_services/api/ipsec_tunnels_api.py +1619 -0
  506. scm/network_services/api/iptag_match_list_api.py +1619 -0
  507. scm/network_services/api/layer2_subinterfaces_api.py +1619 -0
  508. scm/network_services/api/layer3_subinterfaces_api.py +1619 -0
  509. scm/network_services/api/link_tags_api.py +1619 -0
  510. scm/network_services/api/lldp_profiles_api.py +1619 -0
  511. scm/network_services/api/logical_routers_api.py +1636 -0
  512. scm/network_services/api/loopback_interfaces_api.py +1619 -0
  513. scm/network_services/api/nat_rules_api.py +1670 -0
  514. scm/network_services/api/ospf_authentication_profiles_api.py +1619 -0
  515. scm/network_services/api/pbf_rules_api.py +1619 -0
  516. scm/network_services/api/qos_profiles_api.py +1619 -0
  517. scm/network_services/api/qos_rules_api.py +1958 -0
  518. scm/network_services/api/remote_networks_license_api.py +306 -0
  519. scm/network_services/api/route_access_lists_api.py +1619 -0
  520. scm/network_services/api/route_community_lists_api.py +1619 -0
  521. scm/network_services/api/route_path_access_lists_api.py +1619 -0
  522. scm/network_services/api/route_prefix_lists_api.py +1619 -0
  523. scm/network_services/api/sdwan_error_correction_profiles_api.py +1619 -0
  524. scm/network_services/api/sdwan_path_quality_profiles_api.py +1619 -0
  525. scm/network_services/api/sdwan_rules_api.py +1619 -0
  526. scm/network_services/api/sdwan_saas_quality_profiles_api.py +1619 -0
  527. scm/network_services/api/sdwan_traffic_distribution_profiles_api.py +1619 -0
  528. scm/network_services/api/security_zones_api.py +1619 -0
  529. scm/network_services/api/system_match_list_api.py +1619 -0
  530. scm/network_services/api/tunnel_interfaces_api.py +1619 -0
  531. scm/network_services/api/userid_match_list_api.py +1619 -0
  532. scm/network_services/api/vlan_interfaces_api.py +1619 -0
  533. scm/network_services/api/zone_protection_profiles_api.py +1619 -0
  534. scm/network_services/api_client.py +798 -0
  535. scm/network_services/api_response.py +21 -0
  536. scm/network_services/configuration.py +471 -0
  537. scm/network_services/exceptions.py +200 -0
  538. scm/network_services/models/__init__.py +572 -0
  539. scm/network_services/models/agg_ethernet_arp_inner.py +90 -0
  540. scm/network_services/models/agg_ethernet_dhcp_client.py +92 -0
  541. scm/network_services/models/agg_ethernet_dhcp_client_dhcp_client.py +99 -0
  542. scm/network_services/models/agg_ethernet_dhcp_client_dhcp_client_send_hostname.py +101 -0
  543. scm/network_services/models/aggregate_interfaces.py +145 -0
  544. scm/network_services/models/aggregate_interfaces_layer2.py +107 -0
  545. scm/network_services/models/aggregate_interfaces_layer3.py +131 -0
  546. scm/network_services/models/aggregate_interfaces_layer3_ddns_config.py +108 -0
  547. scm/network_services/models/aggregate_interfaces_layer3_ip_inner.py +88 -0
  548. scm/network_services/models/aggregate_interfaces_list_response.py +113 -0
  549. scm/network_services/models/auto_vpn_clusters.py +130 -0
  550. scm/network_services/models/auto_vpn_clusters_branches_inner.py +115 -0
  551. scm/network_services/models/auto_vpn_clusters_branches_inner_interfaces_inner.py +96 -0
  552. scm/network_services/models/auto_vpn_clusters_branches_inner_interfaces_inner_sdwan_link_settings.py +96 -0
  553. scm/network_services/models/auto_vpn_clusters_branches_inner_interfaces_inner_sdwan_link_settings_upstream_nat.py +94 -0
  554. scm/network_services/models/auto_vpn_clusters_branches_inner_interfaces_inner_sdwan_link_settings_upstream_nat_static_ip.py +90 -0
  555. scm/network_services/models/auto_vpn_clusters_branches_inner_private_interfaces_inner.py +94 -0
  556. scm/network_services/models/auto_vpn_clusters_gateways_inner.py +128 -0
  557. scm/network_services/models/auto_vpn_clusters_gateways_inner_interfaces_inner.py +96 -0
  558. scm/network_services/models/auto_vpn_clusters_gateways_inner_interfaces_inner_sdwan_link_settings.py +96 -0
  559. scm/network_services/models/auto_vpn_clusters_gateways_inner_interfaces_inner_sdwan_link_settings_upstream_nat.py +94 -0
  560. scm/network_services/models/auto_vpn_clusters_gateways_inner_private_interfaces_inner.py +94 -0
  561. scm/network_services/models/auto_vpn_clusters_list_response.py +113 -0
  562. scm/network_services/models/auto_vpn_monitor.py +118 -0
  563. scm/network_services/models/auto_vpn_push_config.py +96 -0
  564. scm/network_services/models/auto_vpn_push_config_auto_vpn_devices_inner.py +90 -0
  565. scm/network_services/models/auto_vpn_push_response.py +92 -0
  566. scm/network_services/models/auto_vpn_settings.py +96 -0
  567. scm/network_services/models/auto_vpn_settings_as_range.py +91 -0
  568. scm/network_services/models/bgp_address_family.py +140 -0
  569. scm/network_services/models/bgp_address_family_add_path.py +90 -0
  570. scm/network_services/models/bgp_address_family_allowas_in.py +91 -0
  571. scm/network_services/models/bgp_address_family_maximum_prefix.py +97 -0
  572. scm/network_services/models/bgp_address_family_maximum_prefix_action.py +94 -0
  573. scm/network_services/models/bgp_address_family_maximum_prefix_action_restart.py +89 -0
  574. scm/network_services/models/bgp_address_family_next_hop.py +90 -0
  575. scm/network_services/models/bgp_address_family_orf.py +98 -0
  576. scm/network_services/models/bgp_address_family_profiles.py +135 -0
  577. scm/network_services/models/bgp_address_family_profiles_ipv4.py +97 -0
  578. scm/network_services/models/bgp_address_family_profiles_list_response.py +113 -0
  579. scm/network_services/models/bgp_address_family_remove_private_as.py +90 -0
  580. scm/network_services/models/bgp_address_family_send_community.py +96 -0
  581. scm/network_services/models/bgp_auth_profiles.py +131 -0
  582. scm/network_services/models/bgp_authentication_profiles_list_response.py +113 -0
  583. scm/network_services/models/bgp_filter.py +116 -0
  584. scm/network_services/models/bgp_filter_conditional_advertisement.py +98 -0
  585. scm/network_services/models/bgp_filter_conditional_advertisement_exist.py +90 -0
  586. scm/network_services/models/bgp_filter_conditional_advertisement_non_exist.py +90 -0
  587. scm/network_services/models/bgp_filter_filter_list.py +90 -0
  588. scm/network_services/models/bgp_filter_inbound_network_filters.py +90 -0
  589. scm/network_services/models/bgp_filtering_profiles.py +137 -0
  590. scm/network_services/models/bgp_filtering_profiles_ipv4.py +98 -0
  591. scm/network_services/models/bgp_filtering_profiles_ipv4_multicast.py +118 -0
  592. scm/network_services/models/bgp_filtering_profiles_list_response.py +113 -0
  593. scm/network_services/models/bgp_redistribution_profiles.py +135 -0
  594. scm/network_services/models/bgp_redistribution_profiles_ipv4.py +92 -0
  595. scm/network_services/models/bgp_redistribution_profiles_ipv4_unicast.py +104 -0
  596. scm/network_services/models/bgp_redistribution_profiles_ipv4_unicast_connected.py +93 -0
  597. scm/network_services/models/bgp_redistribution_profiles_ipv4_unicast_ospf.py +93 -0
  598. scm/network_services/models/bgp_redistribution_profiles_ipv4_unicast_static.py +93 -0
  599. scm/network_services/models/bgp_redistribution_profiles_list_response.py +113 -0
  600. scm/network_services/models/bgp_route_map_redistributions.py +149 -0
  601. scm/network_services/models/bgp_route_map_redistributions_bgp.py +98 -0
  602. scm/network_services/models/bgp_route_map_redistributions_bgp_ospf.py +96 -0
  603. scm/network_services/models/bgp_route_map_redistributions_bgp_ospf_route_map_inner.py +115 -0
  604. scm/network_services/models/bgp_route_map_redistributions_bgp_ospf_route_map_inner_match.py +123 -0
  605. scm/network_services/models/bgp_route_map_redistributions_bgp_ospf_route_map_inner_match_ipv4.py +104 -0
  606. scm/network_services/models/bgp_route_map_redistributions_bgp_ospf_route_map_inner_match_ipv4_address.py +90 -0
  607. scm/network_services/models/bgp_route_map_redistributions_bgp_ospf_route_map_inner_match_ipv4_next_hop.py +90 -0
  608. scm/network_services/models/bgp_route_map_redistributions_bgp_ospf_route_map_inner_match_ipv4_route_source.py +90 -0
  609. scm/network_services/models/bgp_route_map_redistributions_bgp_ospf_route_map_inner_set.py +107 -0
  610. scm/network_services/models/bgp_route_map_redistributions_bgp_ospf_route_map_inner_set_metric.py +101 -0
  611. scm/network_services/models/bgp_route_map_redistributions_bgp_rib.py +96 -0
  612. scm/network_services/models/bgp_route_map_redistributions_bgp_rib_route_map_inner.py +115 -0
  613. scm/network_services/models/bgp_route_map_redistributions_bgp_rib_route_map_inner_match.py +123 -0
  614. scm/network_services/models/bgp_route_map_redistributions_bgp_rib_route_map_inner_match_ipv4.py +104 -0
  615. scm/network_services/models/bgp_route_map_redistributions_bgp_rib_route_map_inner_match_ipv4_address.py +90 -0
  616. scm/network_services/models/bgp_route_map_redistributions_bgp_rib_route_map_inner_match_ipv4_next_hop.py +90 -0
  617. scm/network_services/models/bgp_route_map_redistributions_bgp_rib_route_map_inner_match_ipv4_route_source.py +90 -0
  618. scm/network_services/models/bgp_route_map_redistributions_bgp_rib_route_map_inner_set.py +88 -0
  619. scm/network_services/models/bgp_route_map_redistributions_connected_static.py +104 -0
  620. scm/network_services/models/bgp_route_map_redistributions_connected_static_bgp.py +96 -0
  621. scm/network_services/models/bgp_route_map_redistributions_connected_static_bgp_route_map_inner.py +115 -0
  622. scm/network_services/models/bgp_route_map_redistributions_connected_static_bgp_route_map_inner_match.py +97 -0
  623. scm/network_services/models/bgp_route_map_redistributions_connected_static_bgp_route_map_inner_match_ipv4.py +98 -0
  624. scm/network_services/models/bgp_route_map_redistributions_connected_static_bgp_route_map_inner_match_ipv4_address.py +90 -0
  625. scm/network_services/models/bgp_route_map_redistributions_connected_static_bgp_route_map_inner_match_ipv4_next_hop.py +90 -0
  626. scm/network_services/models/bgp_route_map_redistributions_connected_static_bgp_route_map_inner_set.py +133 -0
  627. scm/network_services/models/bgp_route_map_redistributions_connected_static_bgp_route_map_inner_set_aggregator.py +91 -0
  628. scm/network_services/models/bgp_route_map_redistributions_connected_static_bgp_route_map_inner_set_ipv4.py +90 -0
  629. scm/network_services/models/bgp_route_map_redistributions_connected_static_bgp_route_map_inner_set_metric.py +101 -0
  630. scm/network_services/models/bgp_route_map_redistributions_connected_static_ospf.py +96 -0
  631. scm/network_services/models/bgp_route_map_redistributions_connected_static_ospf_route_map_inner.py +115 -0
  632. scm/network_services/models/bgp_route_map_redistributions_connected_static_ospf_route_map_inner_match.py +97 -0
  633. scm/network_services/models/bgp_route_map_redistributions_connected_static_ospf_route_map_inner_match_ipv4.py +98 -0
  634. scm/network_services/models/bgp_route_map_redistributions_connected_static_ospf_route_map_inner_match_ipv4_address.py +90 -0
  635. scm/network_services/models/bgp_route_map_redistributions_connected_static_ospf_route_map_inner_match_ipv4_next_hop.py +90 -0
  636. scm/network_services/models/bgp_route_map_redistributions_connected_static_ospf_route_map_inner_set.py +107 -0
  637. scm/network_services/models/bgp_route_map_redistributions_connected_static_ospf_route_map_inner_set_metric.py +101 -0
  638. scm/network_services/models/bgp_route_map_redistributions_connected_static_rib.py +96 -0
  639. scm/network_services/models/bgp_route_map_redistributions_connected_static_rib_route_map_inner.py +115 -0
  640. scm/network_services/models/bgp_route_map_redistributions_connected_static_rib_route_map_inner_match.py +97 -0
  641. scm/network_services/models/bgp_route_map_redistributions_connected_static_rib_route_map_inner_match_ipv4.py +98 -0
  642. scm/network_services/models/bgp_route_map_redistributions_connected_static_rib_route_map_inner_match_ipv4_address.py +90 -0
  643. scm/network_services/models/bgp_route_map_redistributions_connected_static_rib_route_map_inner_match_ipv4_next_hop.py +90 -0
  644. scm/network_services/models/bgp_route_map_redistributions_connected_static_rib_route_map_inner_set.py +88 -0
  645. scm/network_services/models/bgp_route_map_redistributions_list_response.py +113 -0
  646. scm/network_services/models/bgp_route_map_redistributions_ospf.py +98 -0
  647. scm/network_services/models/bgp_route_map_redistributions_ospf_bgp.py +96 -0
  648. scm/network_services/models/bgp_route_map_redistributions_ospf_bgp_route_map_inner.py +115 -0
  649. scm/network_services/models/bgp_route_map_redistributions_ospf_bgp_route_map_inner_match.py +105 -0
  650. scm/network_services/models/bgp_route_map_redistributions_ospf_bgp_route_map_inner_match_address.py +90 -0
  651. scm/network_services/models/bgp_route_map_redistributions_ospf_bgp_route_map_inner_match_next_hop.py +90 -0
  652. scm/network_services/models/bgp_route_map_redistributions_ospf_bgp_route_map_inner_set.py +133 -0
  653. scm/network_services/models/bgp_route_map_redistributions_ospf_bgp_route_map_inner_set_aggregator.py +91 -0
  654. scm/network_services/models/bgp_route_map_redistributions_ospf_bgp_route_map_inner_set_ipv4.py +90 -0
  655. scm/network_services/models/bgp_route_map_redistributions_ospf_bgp_route_map_inner_set_metric.py +101 -0
  656. scm/network_services/models/bgp_route_map_redistributions_ospf_rib.py +96 -0
  657. scm/network_services/models/bgp_route_map_redistributions_ospf_rib_route_map_inner.py +115 -0
  658. scm/network_services/models/bgp_route_map_redistributions_ospf_rib_route_map_inner_match.py +105 -0
  659. scm/network_services/models/bgp_route_map_redistributions_ospf_rib_route_map_inner_match_address.py +90 -0
  660. scm/network_services/models/bgp_route_map_redistributions_ospf_rib_route_map_inner_match_next_hop.py +90 -0
  661. scm/network_services/models/bgp_route_map_redistributions_ospf_rib_route_map_inner_set.py +88 -0
  662. scm/network_services/models/bgp_route_maps.py +141 -0
  663. scm/network_services/models/bgp_route_maps_list_response.py +113 -0
  664. scm/network_services/models/bgp_route_maps_route_map_inner.py +115 -0
  665. scm/network_services/models/bgp_route_maps_route_map_inner_match.py +123 -0
  666. scm/network_services/models/bgp_route_maps_route_map_inner_match_ipv4.py +102 -0
  667. scm/network_services/models/bgp_route_maps_route_map_inner_match_ipv4_address.py +90 -0
  668. scm/network_services/models/bgp_route_maps_route_map_inner_set.py +154 -0
  669. scm/network_services/models/bgp_route_maps_route_map_inner_set_aggregator.py +91 -0
  670. scm/network_services/models/bgp_route_maps_route_map_inner_set_ipv4.py +90 -0
  671. scm/network_services/models/bgp_route_maps_route_map_inner_set_metric.py +101 -0
  672. scm/network_services/models/config_match_list.py +143 -0
  673. scm/network_services/models/config_match_list_list_response.py +113 -0
  674. scm/network_services/models/ddns_config.py +108 -0
  675. scm/network_services/models/dhcp_interfaces.py +141 -0
  676. scm/network_services/models/dhcp_interfaces_list_response.py +113 -0
  677. scm/network_services/models/dhcp_interfaces_relay.py +92 -0
  678. scm/network_services/models/dhcp_interfaces_relay_ip.py +90 -0
  679. scm/network_services/models/dhcp_interfaces_server.py +118 -0
  680. scm/network_services/models/dhcp_interfaces_server_option.py +142 -0
  681. scm/network_services/models/dhcp_interfaces_server_option_dns.py +90 -0
  682. scm/network_services/models/dhcp_interfaces_server_option_inheritance.py +88 -0
  683. scm/network_services/models/dhcp_interfaces_server_option_lease.py +91 -0
  684. scm/network_services/models/dhcp_interfaces_server_option_nis.py +90 -0
  685. scm/network_services/models/dhcp_interfaces_server_option_ntp.py +90 -0
  686. scm/network_services/models/dhcp_interfaces_server_option_user_defined_inner.py +99 -0
  687. scm/network_services/models/dhcp_interfaces_server_option_wins.py +90 -0
  688. scm/network_services/models/dhcp_interfaces_server_reserved_inner.py +92 -0
  689. scm/network_services/models/dns_proxies.py +177 -0
  690. scm/network_services/models/dns_proxies_cache.py +96 -0
  691. scm/network_services/models/dns_proxies_cache_max_ttl.py +91 -0
  692. scm/network_services/models/dns_proxies_default.py +96 -0
  693. scm/network_services/models/dns_proxies_default_inheritance.py +88 -0
  694. scm/network_services/models/dns_proxies_domain_servers_inner.py +97 -0
  695. scm/network_services/models/dns_proxies_list_response.py +113 -0
  696. scm/network_services/models/dns_proxies_static_entries_inner.py +93 -0
  697. scm/network_services/models/dns_proxies_tcp_queries.py +91 -0
  698. scm/network_services/models/dns_proxies_udp_queries.py +92 -0
  699. scm/network_services/models/dns_proxies_udp_queries_retries.py +91 -0
  700. scm/network_services/models/error_detail_cause_info.py +99 -0
  701. scm/network_services/models/ethernet_interfaces.py +195 -0
  702. scm/network_services/models/ethernet_interfaces_arp_inner.py +90 -0
  703. scm/network_services/models/ethernet_interfaces_dhcp_client.py +92 -0
  704. scm/network_services/models/ethernet_interfaces_layer2.py +107 -0
  705. scm/network_services/models/ethernet_interfaces_layer2_lldp.py +88 -0
  706. scm/network_services/models/ethernet_interfaces_layer3.py +131 -0
  707. scm/network_services/models/ethernet_interfaces_layer3_ddns_config.py +108 -0
  708. scm/network_services/models/ethernet_interfaces_layer3_dhcp_client.py +99 -0
  709. scm/network_services/models/ethernet_interfaces_layer3_dhcp_client_send_hostname.py +101 -0
  710. scm/network_services/models/ethernet_interfaces_layer3_ip_inner.py +88 -0
  711. scm/network_services/models/ethernet_interfaces_layer3_pppoe.py +123 -0
  712. scm/network_services/models/ethernet_interfaces_layer3_pppoe_passive.py +88 -0
  713. scm/network_services/models/ethernet_interfaces_layer3_pppoe_static_address.py +89 -0
  714. scm/network_services/models/ethernet_interfaces_list_response.py +113 -0
  715. scm/network_services/models/ethernet_interfaces_tap.py +88 -0
  716. scm/network_services/models/generic_error.py +98 -0
  717. scm/network_services/models/get_auto_vpn_monitor200_response.py +93 -0
  718. scm/network_services/models/get_remote_networks_license_info500_response.py +88 -0
  719. scm/network_services/models/globalprotect_match_list.py +145 -0
  720. scm/network_services/models/globalprotect_match_list_list_response.py +113 -0
  721. scm/network_services/models/hipmatch_match_list.py +145 -0
  722. scm/network_services/models/hipmatch_match_list_list_response.py +113 -0
  723. scm/network_services/models/ike_crypto_profiles.py +167 -0
  724. scm/network_services/models/ike_crypto_profiles_lifetime.py +95 -0
  725. scm/network_services/models/ike_crypto_profiles_list_response.py +113 -0
  726. scm/network_services/models/ike_gateways.py +171 -0
  727. scm/network_services/models/ike_gateways_authentication.py +98 -0
  728. scm/network_services/models/ike_gateways_authentication_certificate.py +100 -0
  729. scm/network_services/models/ike_gateways_authentication_certificate_local_certificate.py +88 -0
  730. scm/network_services/models/ike_gateways_authentication_pre_shared_key.py +88 -0
  731. scm/network_services/models/ike_gateways_list_response.py +113 -0
  732. scm/network_services/models/ike_gateways_local_address.py +90 -0
  733. scm/network_services/models/ike_gateways_local_id.py +101 -0
  734. scm/network_services/models/ike_gateways_peer_address.py +93 -0
  735. scm/network_services/models/ike_gateways_peer_id.py +111 -0
  736. scm/network_services/models/ike_gateways_protocol.py +109 -0
  737. scm/network_services/models/ike_gateways_protocol_common.py +100 -0
  738. scm/network_services/models/ike_gateways_protocol_common_fragmentation.py +88 -0
  739. scm/network_services/models/ike_gateways_protocol_common_nat_traversal.py +88 -0
  740. scm/network_services/models/ike_gateways_protocol_ikev1.py +94 -0
  741. scm/network_services/models/ike_gateways_protocol_ikev1_dpd.py +88 -0
  742. scm/network_services/models/interface_management_profiles.py +159 -0
  743. scm/network_services/models/interface_management_profiles_list_response.py +113 -0
  744. scm/network_services/models/interface_management_profiles_permitted_ip_inner.py +88 -0
  745. scm/network_services/models/ipsec_crypto_profiles.py +165 -0
  746. scm/network_services/models/ipsec_crypto_profiles_ah.py +96 -0
  747. scm/network_services/models/ipsec_crypto_profiles_esp.py +98 -0
  748. scm/network_services/models/ipsec_crypto_profiles_lifesize.py +95 -0
  749. scm/network_services/models/ipsec_crypto_profiles_lifetime.py +95 -0
  750. scm/network_services/models/ipsec_crypto_profiles_list_response.py +113 -0
  751. scm/network_services/models/ipsec_tunnels.py +149 -0
  752. scm/network_services/models/ipsec_tunnels_auto_key.py +118 -0
  753. scm/network_services/models/ipsec_tunnels_auto_key_ike_gateway_inner.py +88 -0
  754. scm/network_services/models/ipsec_tunnels_auto_key_proxy_id_inner.py +98 -0
  755. scm/network_services/models/ipsec_tunnels_auto_key_proxy_id_inner_protocol.py +101 -0
  756. scm/network_services/models/ipsec_tunnels_auto_key_proxy_id_inner_protocol_tcp.py +91 -0
  757. scm/network_services/models/ipsec_tunnels_auto_key_proxy_id_inner_protocol_udp.py +91 -0
  758. scm/network_services/models/ipsec_tunnels_auto_key_proxy_id_v6_inner.py +98 -0
  759. scm/network_services/models/ipsec_tunnels_auto_key_proxy_id_v6_inner_protocol.py +101 -0
  760. scm/network_services/models/ipsec_tunnels_auto_key_proxy_id_v6_inner_protocol_tcp.py +91 -0
  761. scm/network_services/models/ipsec_tunnels_list_response.py +113 -0
  762. scm/network_services/models/ipsec_tunnels_tunnel_monitor.py +92 -0
  763. scm/network_services/models/iptag_match_list.py +145 -0
  764. scm/network_services/models/iptag_match_list_list_response.py +113 -0
  765. scm/network_services/models/lacp.py +125 -0
  766. scm/network_services/models/lacp_high_availability.py +88 -0
  767. scm/network_services/models/layer2_subinterfaces.py +142 -0
  768. scm/network_services/models/layer2_subinterfaces_list_response.py +113 -0
  769. scm/network_services/models/layer3_sub_interfaces_dhcp_client.py +92 -0
  770. scm/network_services/models/layer3_sub_interfaces_dhcp_client_dhcp_client.py +99 -0
  771. scm/network_services/models/layer3_sub_interfaces_dhcp_client_dhcp_client_send_hostname.py +101 -0
  772. scm/network_services/models/layer3_subinterfaces.py +173 -0
  773. scm/network_services/models/layer3_subinterfaces_arp_inner.py +90 -0
  774. scm/network_services/models/layer3_subinterfaces_ddns_config.py +108 -0
  775. scm/network_services/models/layer3_subinterfaces_ip_inner.py +88 -0
  776. scm/network_services/models/layer3_subinterfaces_list_response.py +113 -0
  777. scm/network_services/models/license_info.py +90 -0
  778. scm/network_services/models/license_result.py +109 -0
  779. scm/network_services/models/link_tags.py +143 -0
  780. scm/network_services/models/link_tags_list_response.py +113 -0
  781. scm/network_services/models/lldp_profiles.py +139 -0
  782. scm/network_services/models/lldp_profiles_list_response.py +113 -0
  783. scm/network_services/models/lldp_profiles_option_tlvs.py +100 -0
  784. scm/network_services/models/lldp_profiles_option_tlvs_management_address.py +98 -0
  785. scm/network_services/models/lldp_profiles_option_tlvs_management_address_iplist_inner.py +94 -0
  786. scm/network_services/models/logical_routers.py +151 -0
  787. scm/network_services/models/logical_routers_list_response.py +113 -0
  788. scm/network_services/models/logical_routers_vrf_inner.py +156 -0
  789. scm/network_services/models/logical_routers_vrf_inner_admin_dists.py +110 -0
  790. scm/network_services/models/logical_routers_vrf_inner_bgp.py +186 -0
  791. scm/network_services/models/logical_routers_vrf_inner_bgp_advertise_network.py +98 -0
  792. scm/network_services/models/logical_routers_vrf_inner_bgp_advertise_network_ipv4.py +96 -0
  793. scm/network_services/models/logical_routers_vrf_inner_bgp_advertise_network_ipv4_network_inner.py +94 -0
  794. scm/network_services/models/logical_routers_vrf_inner_bgp_advertise_network_ipv6.py +96 -0
  795. scm/network_services/models/logical_routers_vrf_inner_bgp_advertise_network_ipv6_network_inner.py +90 -0
  796. scm/network_services/models/logical_routers_vrf_inner_bgp_aggregate.py +88 -0
  797. scm/network_services/models/logical_routers_vrf_inner_bgp_aggregate_routes_inner.py +104 -0
  798. scm/network_services/models/logical_routers_vrf_inner_bgp_aggregate_routes_inner_type.py +97 -0
  799. scm/network_services/models/logical_routers_vrf_inner_bgp_aggregate_routes_inner_type_ipv4.py +92 -0
  800. scm/network_services/models/logical_routers_vrf_inner_bgp_global_bfd.py +88 -0
  801. scm/network_services/models/logical_routers_vrf_inner_bgp_graceful_restart.py +94 -0
  802. scm/network_services/models/logical_routers_vrf_inner_bgp_med.py +90 -0
  803. scm/network_services/models/logical_routers_vrf_inner_bgp_peer_group_inner.py +127 -0
  804. scm/network_services/models/logical_routers_vrf_inner_bgp_peer_group_inner_address_family.py +90 -0
  805. scm/network_services/models/logical_routers_vrf_inner_bgp_peer_group_inner_connection_options.py +94 -0
  806. scm/network_services/models/logical_routers_vrf_inner_bgp_peer_group_inner_peer_inner.py +138 -0
  807. scm/network_services/models/logical_routers_vrf_inner_bgp_peer_group_inner_peer_inner_bfd.py +94 -0
  808. scm/network_services/models/logical_routers_vrf_inner_bgp_peer_group_inner_peer_inner_bfd_multihop.py +88 -0
  809. scm/network_services/models/logical_routers_vrf_inner_bgp_peer_group_inner_peer_inner_connection_options.py +118 -0
  810. scm/network_services/models/logical_routers_vrf_inner_bgp_peer_group_inner_peer_inner_connection_options_incoming_bgp_connection.py +90 -0
  811. scm/network_services/models/logical_routers_vrf_inner_bgp_peer_group_inner_peer_inner_connection_options_outgoing_bgp_connection.py +90 -0
  812. scm/network_services/models/logical_routers_vrf_inner_bgp_peer_group_inner_peer_inner_inherit.py +94 -0
  813. scm/network_services/models/logical_routers_vrf_inner_bgp_peer_group_inner_peer_inner_inherit_no.py +97 -0
  814. scm/network_services/models/logical_routers_vrf_inner_bgp_peer_group_inner_peer_inner_local_address.py +90 -0
  815. scm/network_services/models/logical_routers_vrf_inner_bgp_peer_group_inner_peer_inner_peer_address.py +90 -0
  816. scm/network_services/models/logical_routers_vrf_inner_bgp_peer_group_inner_peer_inner_subsequent_address_family_identifier.py +90 -0
  817. scm/network_services/models/logical_routers_vrf_inner_bgp_peer_group_inner_type.py +108 -0
  818. scm/network_services/models/logical_routers_vrf_inner_bgp_peer_group_inner_type_ebgp.py +92 -0
  819. scm/network_services/models/logical_routers_vrf_inner_bgp_peer_group_inner_type_ebgp_confed.py +88 -0
  820. scm/network_services/models/logical_routers_vrf_inner_bgp_policy.py +110 -0
  821. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_aggregation.py +96 -0
  822. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_aggregation_address_inner.py +121 -0
  823. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_aggregation_address_inner_advertise_filters_inner.py +96 -0
  824. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_aggregation_address_inner_advertise_filters_inner_match.py +154 -0
  825. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_aggregation_address_inner_advertise_filters_inner_match_address_prefix_inner.py +90 -0
  826. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_aggregation_address_inner_advertise_filters_inner_match_as_path.py +88 -0
  827. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_aggregation_address_inner_aggregate_route_attributes.py +125 -0
  828. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_aggregation_address_inner_aggregate_route_attributes_as_path.py +94 -0
  829. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_aggregation_address_inner_aggregate_route_attributes_community.py +96 -0
  830. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_conditional_advertisement.py +96 -0
  831. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_conditional_advertisement_policy_inner.py +111 -0
  832. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_export.py +96 -0
  833. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_export_rules_inner.py +104 -0
  834. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_export_rules_inner_action.py +94 -0
  835. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_export_rules_inner_action_allow.py +92 -0
  836. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_export_rules_inner_action_allow_update.py +123 -0
  837. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_export_rules_inner_match.py +154 -0
  838. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_export_rules_inner_match_address_prefix_inner.py +90 -0
  839. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_import.py +96 -0
  840. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_import_rules_inner.py +104 -0
  841. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_import_rules_inner_action.py +94 -0
  842. scm/network_services/models/logical_routers_vrf_inner_bgp_policy_import_rules_inner_action_allow.py +94 -0
  843. scm/network_services/models/logical_routers_vrf_inner_bgp_redist_rules_inner.py +138 -0
  844. scm/network_services/models/logical_routers_vrf_inner_bgp_redistribution_profile.py +97 -0
  845. scm/network_services/models/logical_routers_vrf_inner_bgp_redistribution_profile_ipv4.py +88 -0
  846. scm/network_services/models/logical_routers_vrf_inner_ecmp.py +100 -0
  847. scm/network_services/models/logical_routers_vrf_inner_ecmp_algorithm.py +102 -0
  848. scm/network_services/models/logical_routers_vrf_inner_ecmp_algorithm_ip_hash.py +92 -0
  849. scm/network_services/models/logical_routers_vrf_inner_ecmp_algorithm_weighted_round_robin.py +96 -0
  850. scm/network_services/models/logical_routers_vrf_inner_ecmp_algorithm_weighted_round_robin_interface_inner.py +90 -0
  851. scm/network_services/models/logical_routers_vrf_inner_multicast.py +168 -0
  852. scm/network_services/models/logical_routers_vrf_inner_multicast_igmp.py +104 -0
  853. scm/network_services/models/logical_routers_vrf_inner_multicast_igmp_dynamic.py +96 -0
  854. scm/network_services/models/logical_routers_vrf_inner_multicast_igmp_dynamic_interface_inner.py +122 -0
  855. scm/network_services/models/logical_routers_vrf_inner_multicast_igmp_static_inner.py +94 -0
  856. scm/network_services/models/logical_routers_vrf_inner_multicast_interface_group_inner.py +110 -0
  857. scm/network_services/models/logical_routers_vrf_inner_multicast_interface_group_inner_group_permission.py +106 -0
  858. scm/network_services/models/logical_routers_vrf_inner_multicast_interface_group_inner_group_permission_any_source_multicast_inner.py +92 -0
  859. scm/network_services/models/logical_routers_vrf_inner_multicast_interface_group_inner_group_permission_source_specific_multicast_inner.py +94 -0
  860. scm/network_services/models/logical_routers_vrf_inner_multicast_interface_group_inner_igmp.py +138 -0
  861. scm/network_services/models/logical_routers_vrf_inner_multicast_interface_group_inner_pim.py +108 -0
  862. scm/network_services/models/logical_routers_vrf_inner_multicast_interface_group_inner_pim_allowed_neighbors_inner.py +88 -0
  863. scm/network_services/models/logical_routers_vrf_inner_multicast_msdp.py +108 -0
  864. scm/network_services/models/logical_routers_vrf_inner_multicast_msdp_peer_inner.py +112 -0
  865. scm/network_services/models/logical_routers_vrf_inner_multicast_pim.py +138 -0
  866. scm/network_services/models/logical_routers_vrf_inner_multicast_pim_interface_inner.py +98 -0
  867. scm/network_services/models/logical_routers_vrf_inner_multicast_pim_rp.py +102 -0
  868. scm/network_services/models/logical_routers_vrf_inner_multicast_pim_rp_external_rp_inner.py +92 -0
  869. scm/network_services/models/logical_routers_vrf_inner_multicast_pim_rp_local_rp.py +98 -0
  870. scm/network_services/models/logical_routers_vrf_inner_multicast_pim_rp_local_rp_candidate_rp.py +96 -0
  871. scm/network_services/models/logical_routers_vrf_inner_multicast_pim_rp_local_rp_static_rp.py +94 -0
  872. scm/network_services/models/logical_routers_vrf_inner_multicast_pim_spt_threshold_inner.py +90 -0
  873. scm/network_services/models/logical_routers_vrf_inner_multicast_pim_ssm_address_space.py +88 -0
  874. scm/network_services/models/logical_routers_vrf_inner_multicast_rp.py +102 -0
  875. scm/network_services/models/logical_routers_vrf_inner_multicast_rp_external_rp_inner.py +92 -0
  876. scm/network_services/models/logical_routers_vrf_inner_multicast_rp_local_rp.py +98 -0
  877. scm/network_services/models/logical_routers_vrf_inner_multicast_rp_local_rp_candidate_rp.py +96 -0
  878. scm/network_services/models/logical_routers_vrf_inner_multicast_rp_local_rp_static_rp.py +94 -0
  879. scm/network_services/models/logical_routers_vrf_inner_multicast_static_route_inner.py +100 -0
  880. scm/network_services/models/logical_routers_vrf_inner_multicast_static_route_inner_nexthop.py +88 -0
  881. scm/network_services/models/logical_routers_vrf_inner_ospf.py +156 -0
  882. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner.py +136 -0
  883. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_interface_inner.py +120 -0
  884. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_interface_inner_link_type.py +96 -0
  885. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_interface_inner_link_type_p2mp.py +96 -0
  886. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_interface_inner_link_type_p2mp_neighbor_inner.py +90 -0
  887. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_interface_inner_vr_timing.py +96 -0
  888. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_range_inner.py +92 -0
  889. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_type.py +104 -0
  890. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_type_normal.py +92 -0
  891. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_type_normal_abr.py +94 -0
  892. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_type_nssa.py +118 -0
  893. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_type_nssa_abr.py +104 -0
  894. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_type_nssa_abr_nssa_ext_range_inner.py +92 -0
  895. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_type_nssa_default_information_originate.py +100 -0
  896. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_type_nssa_default_route.py +94 -0
  897. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_type_nssa_default_route_advertise.py +100 -0
  898. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_type_nssa_nssa_ext_range_inner.py +92 -0
  899. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_type_stub.py +104 -0
  900. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_type_stub_default_route.py +94 -0
  901. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_type_stub_default_route_advertise.py +88 -0
  902. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_virtual_link_inner.py +116 -0
  903. scm/network_services/models/logical_routers_vrf_inner_ospf_area_inner_virtual_link_inner_vr_timing.py +94 -0
  904. scm/network_services/models/logical_routers_vrf_inner_ospf_auth_profile_inner.py +100 -0
  905. scm/network_services/models/logical_routers_vrf_inner_ospf_auth_profile_inner_md5_inner.py +92 -0
  906. scm/network_services/models/logical_routers_vrf_inner_ospf_export_rules_inner.py +104 -0
  907. scm/network_services/models/logical_routers_vrf_inner_ospf_flood_prevention.py +97 -0
  908. scm/network_services/models/logical_routers_vrf_inner_ospf_flood_prevention_hello.py +90 -0
  909. scm/network_services/models/logical_routers_vrf_inner_ospf_graceful_restart.py +96 -0
  910. scm/network_services/models/logical_routers_vrf_inner_ospf_vr_timers.py +90 -0
  911. scm/network_services/models/logical_routers_vrf_inner_ospfv3.py +150 -0
  912. scm/network_services/models/logical_routers_vrf_inner_ospfv3_area_inner.py +136 -0
  913. scm/network_services/models/logical_routers_vrf_inner_ospfv3_area_inner_interface_inner.py +132 -0
  914. scm/network_services/models/logical_routers_vrf_inner_ospfv3_area_inner_range_inner.py +90 -0
  915. scm/network_services/models/logical_routers_vrf_inner_ospfv3_area_inner_type.py +104 -0
  916. scm/network_services/models/logical_routers_vrf_inner_ospfv3_area_inner_type_nssa.py +118 -0
  917. scm/network_services/models/logical_routers_vrf_inner_ospfv3_area_inner_type_nssa_abr.py +104 -0
  918. scm/network_services/models/logical_routers_vrf_inner_ospfv3_area_inner_type_nssa_abr_nssa_ext_range_inner.py +94 -0
  919. scm/network_services/models/logical_routers_vrf_inner_ospfv3_auth_profile_inner.py +102 -0
  920. scm/network_services/models/logical_routers_vrf_inner_ospfv3_auth_profile_inner_ah.py +112 -0
  921. scm/network_services/models/logical_routers_vrf_inner_ospfv3_auth_profile_inner_ah_md5.py +88 -0
  922. scm/network_services/models/logical_routers_vrf_inner_ospfv3_auth_profile_inner_esp.py +98 -0
  923. scm/network_services/models/logical_routers_vrf_inner_ospfv3_auth_profile_inner_esp_authentication.py +114 -0
  924. scm/network_services/models/logical_routers_vrf_inner_ospfv3_auth_profile_inner_esp_encryption.py +100 -0
  925. scm/network_services/models/logical_routers_vrf_inner_rib_filter.py +98 -0
  926. scm/network_services/models/logical_routers_vrf_inner_rib_filter_ipv4.py +107 -0
  927. scm/network_services/models/logical_routers_vrf_inner_rib_filter_ipv4_bgp.py +88 -0
  928. scm/network_services/models/logical_routers_vrf_inner_rib_filter_ipv6.py +102 -0
  929. scm/network_services/models/logical_routers_vrf_inner_rip.py +123 -0
  930. scm/network_services/models/logical_routers_vrf_inner_rip_global_inbound_distribute_list.py +88 -0
  931. scm/network_services/models/logical_routers_vrf_inner_rip_interface_inner.py +133 -0
  932. scm/network_services/models/logical_routers_vrf_inner_rip_interface_inner_interface_inbound_distribute_list.py +90 -0
  933. scm/network_services/models/logical_routers_vrf_inner_routing_table.py +98 -0
  934. scm/network_services/models/logical_routers_vrf_inner_routing_table_ip.py +96 -0
  935. scm/network_services/models/logical_routers_vrf_inner_routing_table_ip_static_route_inner.py +120 -0
  936. scm/network_services/models/logical_routers_vrf_inner_routing_table_ip_static_route_inner_nexthop.py +102 -0
  937. scm/network_services/models/logical_routers_vrf_inner_routing_table_ip_static_route_inner_path_monitor.py +112 -0
  938. scm/network_services/models/logical_routers_vrf_inner_routing_table_ip_static_route_inner_path_monitor_monitor_destinations_inner.py +100 -0
  939. scm/network_services/models/logical_routers_vrf_inner_routing_table_ip_static_route_inner_route_table.py +94 -0
  940. scm/network_services/models/logical_routers_vrf_inner_routing_table_ipv6.py +96 -0
  941. scm/network_services/models/logical_routers_vrf_inner_routing_table_ipv6_static_route_inner.py +126 -0
  942. scm/network_services/models/logical_routers_vrf_inner_routing_table_ipv6_static_route_inner_nexthop.py +100 -0
  943. scm/network_services/models/logical_routers_vrf_inner_routing_table_ipv6_static_route_inner_option.py +88 -0
  944. scm/network_services/models/logical_routers_vrf_inner_vr_admin_dists.py +104 -0
  945. scm/network_services/models/loopback_interfaces.py +172 -0
  946. scm/network_services/models/loopback_interfaces_ip_inner.py +88 -0
  947. scm/network_services/models/loopback_interfaces_ipv6.py +100 -0
  948. scm/network_services/models/loopback_interfaces_ipv6_address_inner.py +94 -0
  949. scm/network_services/models/loopback_interfaces_list_response.py +113 -0
  950. scm/network_services/models/nat_rules.py +189 -0
  951. scm/network_services/models/nat_rules_destination_translation.py +97 -0
  952. scm/network_services/models/nat_rules_destination_translation_dns_rewrite.py +98 -0
  953. scm/network_services/models/nat_rules_dynamic_destination_translation.py +103 -0
  954. scm/network_services/models/nat_rules_list_response.py +113 -0
  955. scm/network_services/models/nat_rules_source_translation.py +104 -0
  956. scm/network_services/models/nat_rules_source_translation_dynamic_ip.py +94 -0
  957. scm/network_services/models/nat_rules_source_translation_dynamic_ip_and_port.py +94 -0
  958. scm/network_services/models/nat_rules_source_translation_dynamic_ip_and_port_interface_address.py +92 -0
  959. scm/network_services/models/nat_rules_source_translation_dynamic_ip_fallback.py +94 -0
  960. scm/network_services/models/nat_rules_source_translation_dynamic_ip_fallback_interface_address.py +92 -0
  961. scm/network_services/models/nat_rules_source_translation_static_ip.py +90 -0
  962. scm/network_services/models/ospf_auth_profiles.py +141 -0
  963. scm/network_services/models/ospf_auth_profiles_md5_inner.py +93 -0
  964. scm/network_services/models/ospf_authentication_profiles_list_response.py +113 -0
  965. scm/network_services/models/pbf_rules.py +163 -0
  966. scm/network_services/models/pbf_rules_action.py +96 -0
  967. scm/network_services/models/pbf_rules_action_forward.py +100 -0
  968. scm/network_services/models/pbf_rules_action_forward_monitor.py +92 -0
  969. scm/network_services/models/pbf_rules_action_forward_nexthop.py +90 -0
  970. scm/network_services/models/pbf_rules_enforce_symmetric_return.py +98 -0
  971. scm/network_services/models/pbf_rules_enforce_symmetric_return_nexthop_address_list_inner.py +88 -0
  972. scm/network_services/models/pbf_rules_from.py +90 -0
  973. scm/network_services/models/pbf_rules_list_response.py +113 -0
  974. scm/network_services/models/poe.py +91 -0
  975. scm/network_services/models/qos_policy_rules.py +145 -0
  976. scm/network_services/models/qos_policy_rules_action.py +88 -0
  977. scm/network_services/models/qos_policy_rules_dscp_tos.py +96 -0
  978. scm/network_services/models/qos_policy_rules_dscp_tos_codepoints_inner.py +94 -0
  979. scm/network_services/models/qos_policy_rules_dscp_tos_codepoints_inner_type.py +110 -0
  980. scm/network_services/models/qos_policy_rules_dscp_tos_codepoints_inner_type_af.py +88 -0
  981. scm/network_services/models/qos_policy_rules_dscp_tos_codepoints_inner_type_custom.py +92 -0
  982. scm/network_services/models/qos_policy_rules_dscp_tos_codepoints_inner_type_custom_codepoint.py +90 -0
  983. scm/network_services/models/qos_policy_rules_list_response.py +113 -0
  984. scm/network_services/models/qos_profiles.py +141 -0
  985. scm/network_services/models/qos_profiles_aggregate_bandwidth.py +91 -0
  986. scm/network_services/models/qos_profiles_class_bandwidth_type.py +98 -0
  987. scm/network_services/models/qos_profiles_class_bandwidth_type_mbps.py +96 -0
  988. scm/network_services/models/qos_profiles_class_bandwidth_type_mbps_class_inner.py +116 -0
  989. scm/network_services/models/qos_profiles_class_bandwidth_type_mbps_class_inner_class_bandwidth.py +91 -0
  990. scm/network_services/models/qos_profiles_class_bandwidth_type_percentage.py +96 -0
  991. scm/network_services/models/qos_profiles_class_bandwidth_type_percentage_class_inner.py +116 -0
  992. scm/network_services/models/qos_profiles_class_bandwidth_type_percentage_class_inner_class_bandwidth.py +91 -0
  993. scm/network_services/models/qos_profiles_list_response.py +113 -0
  994. scm/network_services/models/route_access_lists.py +137 -0
  995. scm/network_services/models/route_access_lists_list_response.py +113 -0
  996. scm/network_services/models/route_access_lists_type.py +92 -0
  997. scm/network_services/models/route_access_lists_type_ipv4.py +96 -0
  998. scm/network_services/models/route_access_lists_type_ipv4_ipv4_entry_inner.py +113 -0
  999. scm/network_services/models/route_access_lists_type_ipv4_ipv4_entry_inner_destination_address.py +94 -0
  1000. scm/network_services/models/route_access_lists_type_ipv4_ipv4_entry_inner_destination_address_entry.py +90 -0
  1001. scm/network_services/models/route_access_lists_type_ipv4_ipv4_entry_inner_source_address.py +94 -0
  1002. scm/network_services/models/route_access_lists_type_ipv4_ipv4_entry_inner_source_address_entry.py +90 -0
  1003. scm/network_services/models/route_community_lists.py +137 -0
  1004. scm/network_services/models/route_community_lists_list_response.py +113 -0
  1005. scm/network_services/models/route_community_lists_type.py +104 -0
  1006. scm/network_services/models/route_community_lists_type_extended.py +96 -0
  1007. scm/network_services/models/route_community_lists_type_extended_extended_entry_inner.py +103 -0
  1008. scm/network_services/models/route_community_lists_type_large.py +96 -0
  1009. scm/network_services/models/route_community_lists_type_large_large_entry_inner.py +103 -0
  1010. scm/network_services/models/route_community_lists_type_regular.py +96 -0
  1011. scm/network_services/models/route_community_lists_type_regular_regular_entry_inner.py +103 -0
  1012. scm/network_services/models/route_path_access_lists.py +141 -0
  1013. scm/network_services/models/route_path_access_lists_aspath_entry_inner.py +103 -0
  1014. scm/network_services/models/route_path_access_lists_list_response.py +113 -0
  1015. scm/network_services/models/route_prefix_lists.py +137 -0
  1016. scm/network_services/models/route_prefix_lists_list_response.py +113 -0
  1017. scm/network_services/models/route_prefix_lists_type.py +92 -0
  1018. scm/network_services/models/route_prefix_lists_type_ipv4.py +96 -0
  1019. scm/network_services/models/route_prefix_lists_type_ipv4_ipv4_entry_inner.py +107 -0
  1020. scm/network_services/models/route_prefix_lists_type_ipv4_ipv4_entry_inner_prefix.py +104 -0
  1021. scm/network_services/models/route_prefix_lists_type_ipv4_ipv4_entry_inner_prefix_entry.py +93 -0
  1022. scm/network_services/models/rule_based_move.py +106 -0
  1023. scm/network_services/models/sdwan_error_correction_profiles.py +137 -0
  1024. scm/network_services/models/sdwan_error_correction_profiles_list_response.py +113 -0
  1025. scm/network_services/models/sdwan_error_correction_profiles_mode.py +98 -0
  1026. scm/network_services/models/sdwan_error_correction_profiles_mode_forward_error_correction.py +90 -0
  1027. scm/network_services/models/sdwan_error_correction_profiles_mode_packet_duplication.py +88 -0
  1028. scm/network_services/models/sdwan_path_quality_profiles.py +135 -0
  1029. scm/network_services/models/sdwan_path_quality_profiles_list_response.py +113 -0
  1030. scm/network_services/models/sdwan_path_quality_profiles_metric.py +104 -0
  1031. scm/network_services/models/sdwan_path_quality_profiles_metric_jitter.py +98 -0
  1032. scm/network_services/models/sdwan_path_quality_profiles_metric_latency.py +98 -0
  1033. scm/network_services/models/sdwan_path_quality_profiles_metric_pkt_loss.py +98 -0
  1034. scm/network_services/models/sdwan_rules.py +174 -0
  1035. scm/network_services/models/sdwan_rules_action.py +88 -0
  1036. scm/network_services/models/sdwan_rules_list_response.py +113 -0
  1037. scm/network_services/models/sdwan_saas_quality_profiles.py +135 -0
  1038. scm/network_services/models/sdwan_saas_quality_profiles_list_response.py +113 -0
  1039. scm/network_services/models/sdwan_saas_quality_profiles_monitor_mode.py +100 -0
  1040. scm/network_services/models/sdwan_saas_quality_profiles_monitor_mode_http_https.py +91 -0
  1041. scm/network_services/models/sdwan_saas_quality_profiles_monitor_mode_static_ip.py +102 -0
  1042. scm/network_services/models/sdwan_saas_quality_profiles_monitor_mode_static_ip_fqdn.py +91 -0
  1043. scm/network_services/models/sdwan_saas_quality_profiles_monitor_mode_static_ip_ip_address_inner.py +91 -0
  1044. scm/network_services/models/sdwan_traffic_distribution_profiles.py +151 -0
  1045. scm/network_services/models/sdwan_traffic_distribution_profiles_link_tags_inner.py +91 -0
  1046. scm/network_services/models/sdwan_traffic_distribution_profiles_list_response.py +113 -0
  1047. scm/network_services/models/system_match_list.py +143 -0
  1048. scm/network_services/models/system_match_list_list_response.py +113 -0
  1049. scm/network_services/models/tunnel_interfaces.py +165 -0
  1050. scm/network_services/models/tunnel_interfaces_ip_inner.py +88 -0
  1051. scm/network_services/models/tunnel_interfaces_ipv6.py +100 -0
  1052. scm/network_services/models/tunnel_interfaces_ipv6_address_inner.py +94 -0
  1053. scm/network_services/models/tunnel_interfaces_list_response.py +113 -0
  1054. scm/network_services/models/userid_match_list.py +145 -0
  1055. scm/network_services/models/userid_match_list_list_response.py +113 -0
  1056. scm/network_services/models/vlan_interfaces.py +193 -0
  1057. scm/network_services/models/vlan_interfaces_arp_inner.py +92 -0
  1058. scm/network_services/models/vlan_interfaces_ddns_config.py +108 -0
  1059. scm/network_services/models/vlan_interfaces_dhcp_client.py +99 -0
  1060. scm/network_services/models/vlan_interfaces_dhcp_client_send_hostname.py +101 -0
  1061. scm/network_services/models/vlan_interfaces_ip_inner.py +88 -0
  1062. scm/network_services/models/vlan_interfaces_list_response.py +113 -0
  1063. scm/network_services/models/zone_protection_profiles.py +257 -0
  1064. scm/network_services/models/zone_protection_profiles_flood.py +122 -0
  1065. scm/network_services/models/zone_protection_profiles_flood_icmp.py +94 -0
  1066. scm/network_services/models/zone_protection_profiles_flood_icmp_red.py +93 -0
  1067. scm/network_services/models/zone_protection_profiles_flood_icmpv6.py +94 -0
  1068. scm/network_services/models/zone_protection_profiles_flood_icmpv6_red.py +93 -0
  1069. scm/network_services/models/zone_protection_profiles_flood_other_ip.py +94 -0
  1070. scm/network_services/models/zone_protection_profiles_flood_other_ip_red.py +93 -0
  1071. scm/network_services/models/zone_protection_profiles_flood_sctp_init.py +94 -0
  1072. scm/network_services/models/zone_protection_profiles_flood_sctp_init_red.py +93 -0
  1073. scm/network_services/models/zone_protection_profiles_flood_tcp_syn.py +100 -0
  1074. scm/network_services/models/zone_protection_profiles_flood_tcp_syn_red.py +93 -0
  1075. scm/network_services/models/zone_protection_profiles_flood_tcp_syn_syn_cookies.py +93 -0
  1076. scm/network_services/models/zone_protection_profiles_flood_udp.py +94 -0
  1077. scm/network_services/models/zone_protection_profiles_flood_udp_red.py +93 -0
  1078. scm/network_services/models/zone_protection_profiles_ipv6.py +124 -0
  1079. scm/network_services/models/zone_protection_profiles_ipv6_filter_ext_hdr.py +92 -0
  1080. scm/network_services/models/zone_protection_profiles_ipv6_ignore_inv_pkt.py +96 -0
  1081. scm/network_services/models/zone_protection_profiles_l2_sec_group_tag_protection.py +96 -0
  1082. scm/network_services/models/zone_protection_profiles_l2_sec_group_tag_protection_tags_inner.py +92 -0
  1083. scm/network_services/models/zone_protection_profiles_list_response.py +113 -0
  1084. scm/network_services/models/zone_protection_profiles_non_ip_protocol.py +108 -0
  1085. scm/network_services/models/zone_protection_profiles_non_ip_protocol_protocol_inner.py +92 -0
  1086. scm/network_services/models/zone_protection_profiles_scan_inner.py +106 -0
  1087. scm/network_services/models/zone_protection_profiles_scan_inner_action.py +98 -0
  1088. scm/network_services/models/zone_protection_profiles_scan_inner_action_block_ip.py +98 -0
  1089. scm/network_services/models/zone_protection_profiles_scan_white_list_inner.py +92 -0
  1090. scm/network_services/models/zones.py +144 -0
  1091. scm/network_services/models/zones_device_acl.py +90 -0
  1092. scm/network_services/models/zones_list_response.py +113 -0
  1093. scm/network_services/models/zones_network.py +104 -0
  1094. scm/network_services/rest.py +264 -0
  1095. scm/network_services/tests/__init__.py +0 -0
  1096. scm/network_services/tests/api_aggregate_interfaces_test.py +223 -0
  1097. scm/network_services/tests/api_auto_vpn_clusters_test.py +36 -0
  1098. scm/network_services/tests/api_auto_vpn_settings_test.py +50 -0
  1099. scm/network_services/tests/api_bgp_address_family_profiles_test.py +147 -0
  1100. scm/network_services/tests/api_bgp_authentication_profiles_test.py +145 -0
  1101. scm/network_services/tests/api_bgp_filtering_profiles_test.py +142 -0
  1102. scm/network_services/tests/api_bgp_redistribution_profiles_test.py +152 -0
  1103. scm/network_services/tests/api_bgp_route_map_redistributions_test.py +144 -0
  1104. scm/network_services/tests/api_bgp_route_maps_test.py +151 -0
  1105. scm/network_services/tests/api_config_match_lists_test.py +202 -0
  1106. scm/network_services/tests/api_dhcp_interfaces_test.py +39 -0
  1107. scm/network_services/tests/api_dns_proxies_test.py +167 -0
  1108. scm/network_services/tests/api_ethernet_interfaces_test.py +272 -0
  1109. scm/network_services/tests/api_globalprotect_match_lists_test.py +203 -0
  1110. scm/network_services/tests/api_hipmatch_match_lists_test.py +203 -0
  1111. scm/network_services/tests/api_ike_crypto_profiles_test.py +194 -0
  1112. scm/network_services/tests/api_ike_gateways_test.py +237 -0
  1113. scm/network_services/tests/api_interface_management_profiles_test.py +186 -0
  1114. scm/network_services/tests/api_ipsec_crypto_profiles_test.py +195 -0
  1115. scm/network_services/tests/api_ipsec_tunnels_test.py +252 -0
  1116. scm/network_services/tests/api_iptag_match_lists_test.py +203 -0
  1117. scm/network_services/tests/api_layer2_subinterfaces_test.py +225 -0
  1118. scm/network_services/tests/api_layer3_subinterfaces_test.py +233 -0
  1119. scm/network_services/tests/api_link_tags_test.py +151 -0
  1120. scm/network_services/tests/api_lldp_profiles_test.py +219 -0
  1121. scm/network_services/tests/api_logical_routers_test.py +208 -0
  1122. scm/network_services/tests/api_loopback_interfaces_test.py +208 -0
  1123. scm/network_services/tests/api_nat_rules_test.py +286 -0
  1124. scm/network_services/tests/api_ospf_authentication_profiles_test.py +145 -0
  1125. scm/network_services/tests/api_pbf_rules_test.py +241 -0
  1126. scm/network_services/tests/api_qos_profiles_test.py +187 -0
  1127. scm/network_services/tests/api_qos_rules_test.py +181 -0
  1128. scm/network_services/tests/api_route_community_lists_test.py +163 -0
  1129. scm/network_services/tests/api_route_path_access_lists_test.py +155 -0
  1130. scm/network_services/tests/api_sdwan_error_correction_profiles_test.py +160 -0
  1131. scm/network_services/tests/api_sdwan_path_quality_profiles_test.py +169 -0
  1132. scm/network_services/tests/api_sdwan_saas_quality_profiles_test.py +148 -0
  1133. scm/network_services/tests/api_sdwan_traffic_distribution_profiles_test.py +41 -0
  1134. scm/network_services/tests/api_system_match_lists_test.py +203 -0
  1135. scm/network_services/tests/api_tunnel_interfaces_test.py +161 -0
  1136. scm/network_services/tests/api_userid_match_lists_test.py +203 -0
  1137. scm/network_services/tests/api_vlan_interfaces_test.py +160 -0
  1138. scm/network_services/tests/api_zone_protection_profiles_test.py +156 -0
  1139. scm/network_services/tests/api_zones_test.py +147 -0
  1140. scm/objects/__init__.py +210 -0
  1141. scm/objects/api/__init__.py +23 -0
  1142. scm/objects/api/address_groups_api.py +1619 -0
  1143. scm/objects/api/addresses_api.py +1619 -0
  1144. scm/objects/api/application_filters_api.py +1619 -0
  1145. scm/objects/api/application_groups_api.py +1619 -0
  1146. scm/objects/api/applications_api.py +1619 -0
  1147. scm/objects/api/auto_tag_actions_api.py +1267 -0
  1148. scm/objects/api/dynamic_user_groups_api.py +1619 -0
  1149. scm/objects/api/external_dynamic_lists_api.py +1619 -0
  1150. scm/objects/api/hip_objects_api.py +1619 -0
  1151. scm/objects/api/hip_profiles_api.py +1619 -0
  1152. scm/objects/api/http_server_profiles_api.py +1619 -0
  1153. scm/objects/api/log_forwarding_profiles_api.py +1619 -0
  1154. scm/objects/api/quarantined_devices_api.py +907 -0
  1155. scm/objects/api/regions_api.py +1622 -0
  1156. scm/objects/api/schedules_api.py +1619 -0
  1157. scm/objects/api/service_groups_api.py +1619 -0
  1158. scm/objects/api/services_api.py +1619 -0
  1159. scm/objects/api/syslog_server_profiles_api.py +1619 -0
  1160. scm/objects/api/tags_api.py +1619 -0
  1161. scm/objects/api_client.py +798 -0
  1162. scm/objects/api_response.py +21 -0
  1163. scm/objects/configuration.py +471 -0
  1164. scm/objects/exceptions.py +200 -0
  1165. scm/objects/models/__init__.py +175 -0
  1166. scm/objects/models/address_groups.py +148 -0
  1167. scm/objects/models/address_groups_dynamic.py +89 -0
  1168. scm/objects/models/address_groups_list_response.py +113 -0
  1169. scm/objects/models/addresses.py +151 -0
  1170. scm/objects/models/addresses_list_response.py +113 -0
  1171. scm/objects/models/application_filters.py +169 -0
  1172. scm/objects/models/application_filters_list_response.py +113 -0
  1173. scm/objects/models/application_filters_tagging.py +91 -0
  1174. scm/objects/models/application_groups.py +131 -0
  1175. scm/objects/models/application_groups_list_response.py +113 -0
  1176. scm/objects/models/applications.py +200 -0
  1177. scm/objects/models/applications_default.py +102 -0
  1178. scm/objects/models/applications_default_ident_by_icmp6_type.py +90 -0
  1179. scm/objects/models/applications_list_response.py +113 -0
  1180. scm/objects/models/applications_signature_inner.py +115 -0
  1181. scm/objects/models/applications_signature_inner_and_condition_inner.py +99 -0
  1182. scm/objects/models/applications_signature_inner_and_condition_inner_or_condition_inner.py +95 -0
  1183. scm/objects/models/applications_signature_inner_and_condition_inner_or_condition_inner_operator.py +109 -0
  1184. scm/objects/models/applications_signature_inner_and_condition_inner_or_condition_inner_operator_equal_to.py +105 -0
  1185. scm/objects/models/applications_signature_inner_and_condition_inner_or_condition_inner_operator_greater_than.py +101 -0
  1186. scm/objects/models/applications_signature_inner_and_condition_inner_or_condition_inner_operator_greater_than_qualifier_inner.py +91 -0
  1187. scm/objects/models/applications_signature_inner_and_condition_inner_or_condition_inner_operator_pattern_match.py +101 -0
  1188. scm/objects/models/auto_tag_actions.py +147 -0
  1189. scm/objects/models/auto_tag_actions_actions_inner.py +94 -0
  1190. scm/objects/models/auto_tag_actions_actions_inner_type.py +92 -0
  1191. scm/objects/models/auto_tag_actions_actions_inner_type_tagging.py +102 -0
  1192. scm/objects/models/auto_tag_actions_list_response.py +113 -0
  1193. scm/objects/models/dynamic_user_groups.py +142 -0
  1194. scm/objects/models/dynamic_user_groups_list_response.py +113 -0
  1195. scm/objects/models/error_detail_cause_info.py +99 -0
  1196. scm/objects/models/external_dynamic_lists.py +142 -0
  1197. scm/objects/models/external_dynamic_lists_list_response.py +113 -0
  1198. scm/objects/models/external_dynamic_lists_type.py +128 -0
  1199. scm/objects/models/external_dynamic_lists_type_domain.py +109 -0
  1200. scm/objects/models/external_dynamic_lists_type_domain_auth.py +91 -0
  1201. scm/objects/models/external_dynamic_lists_type_domain_recurring.py +108 -0
  1202. scm/objects/models/external_dynamic_lists_type_domain_recurring_daily.py +96 -0
  1203. scm/objects/models/external_dynamic_lists_type_domain_recurring_monthly.py +98 -0
  1204. scm/objects/models/external_dynamic_lists_type_domain_recurring_weekly.py +105 -0
  1205. scm/objects/models/external_dynamic_lists_type_imei.py +107 -0
  1206. scm/objects/models/external_dynamic_lists_type_imei_auth.py +91 -0
  1207. scm/objects/models/external_dynamic_lists_type_imei_recurring.py +108 -0
  1208. scm/objects/models/external_dynamic_lists_type_imei_recurring_daily.py +96 -0
  1209. scm/objects/models/external_dynamic_lists_type_imei_recurring_monthly.py +98 -0
  1210. scm/objects/models/external_dynamic_lists_type_imei_recurring_weekly.py +105 -0
  1211. scm/objects/models/external_dynamic_lists_type_imsi.py +107 -0
  1212. scm/objects/models/external_dynamic_lists_type_imsi_auth.py +91 -0
  1213. scm/objects/models/external_dynamic_lists_type_imsi_recurring.py +108 -0
  1214. scm/objects/models/external_dynamic_lists_type_imsi_recurring_daily.py +96 -0
  1215. scm/objects/models/external_dynamic_lists_type_imsi_recurring_monthly.py +98 -0
  1216. scm/objects/models/external_dynamic_lists_type_imsi_recurring_weekly.py +105 -0
  1217. scm/objects/models/external_dynamic_lists_type_ip.py +107 -0
  1218. scm/objects/models/external_dynamic_lists_type_ip_auth.py +91 -0
  1219. scm/objects/models/external_dynamic_lists_type_ip_recurring.py +108 -0
  1220. scm/objects/models/external_dynamic_lists_type_ip_recurring_daily.py +96 -0
  1221. scm/objects/models/external_dynamic_lists_type_ip_recurring_monthly.py +98 -0
  1222. scm/objects/models/external_dynamic_lists_type_ip_recurring_weekly.py +105 -0
  1223. scm/objects/models/external_dynamic_lists_type_predefined_ip.py +93 -0
  1224. scm/objects/models/external_dynamic_lists_type_predefined_url.py +93 -0
  1225. scm/objects/models/external_dynamic_lists_type_url.py +107 -0
  1226. scm/objects/models/external_dynamic_lists_type_url_auth.py +91 -0
  1227. scm/objects/models/external_dynamic_lists_type_url_recurring.py +108 -0
  1228. scm/objects/models/external_dynamic_lists_type_url_recurring_daily.py +96 -0
  1229. scm/objects/models/external_dynamic_lists_type_url_recurring_monthly.py +98 -0
  1230. scm/objects/models/external_dynamic_lists_type_url_recurring_weekly.py +105 -0
  1231. scm/objects/models/generic_error.py +98 -0
  1232. scm/objects/models/hip_objects.py +204 -0
  1233. scm/objects/models/hip_objects_anti_malware.py +104 -0
  1234. scm/objects/models/hip_objects_anti_malware_criteria.py +118 -0
  1235. scm/objects/models/hip_objects_anti_malware_criteria_last_scan_time.py +99 -0
  1236. scm/objects/models/hip_objects_anti_malware_criteria_last_scan_time_not_within.py +91 -0
  1237. scm/objects/models/hip_objects_anti_malware_criteria_product_version.py +112 -0
  1238. scm/objects/models/hip_objects_anti_malware_criteria_product_version_not_within.py +89 -0
  1239. scm/objects/models/hip_objects_anti_malware_criteria_virdef_version.py +97 -0
  1240. scm/objects/models/hip_objects_anti_malware_criteria_virdef_version_not_within.py +91 -0
  1241. scm/objects/models/hip_objects_anti_malware_vendor_inner.py +91 -0
  1242. scm/objects/models/hip_objects_certificate.py +92 -0
  1243. scm/objects/models/hip_objects_certificate_criteria.py +98 -0
  1244. scm/objects/models/hip_objects_certificate_criteria_certificate_attributes_inner.py +101 -0
  1245. scm/objects/models/hip_objects_custom_checks.py +92 -0
  1246. scm/objects/models/hip_objects_custom_checks_criteria.py +116 -0
  1247. scm/objects/models/hip_objects_custom_checks_criteria_plist_inner.py +101 -0
  1248. scm/objects/models/hip_objects_custom_checks_criteria_plist_inner_key_inner.py +103 -0
  1249. scm/objects/models/hip_objects_custom_checks_criteria_process_list_inner.py +91 -0
  1250. scm/objects/models/hip_objects_custom_checks_criteria_registry_key_inner.py +113 -0
  1251. scm/objects/models/hip_objects_custom_checks_criteria_registry_key_inner_registry_value_inner.py +103 -0
  1252. scm/objects/models/hip_objects_data_loss_prevention.py +104 -0
  1253. scm/objects/models/hip_objects_data_loss_prevention_criteria.py +100 -0
  1254. scm/objects/models/hip_objects_data_loss_prevention_vendor_inner.py +91 -0
  1255. scm/objects/models/hip_objects_disk_backup.py +104 -0
  1256. scm/objects/models/hip_objects_disk_backup_criteria.py +94 -0
  1257. scm/objects/models/hip_objects_disk_encryption.py +104 -0
  1258. scm/objects/models/hip_objects_disk_encryption_criteria.py +98 -0
  1259. scm/objects/models/hip_objects_disk_encryption_criteria_encrypted_locations_inner.py +95 -0
  1260. scm/objects/models/hip_objects_disk_encryption_criteria_encrypted_locations_inner_encryption_state.py +110 -0
  1261. scm/objects/models/hip_objects_firewall.py +104 -0
  1262. scm/objects/models/hip_objects_host_info.py +92 -0
  1263. scm/objects/models/hip_objects_host_info_criteria.py +120 -0
  1264. scm/objects/models/hip_objects_host_info_criteria_client_version.py +93 -0
  1265. scm/objects/models/hip_objects_host_info_criteria_os.py +92 -0
  1266. scm/objects/models/hip_objects_host_info_criteria_os_contains.py +97 -0
  1267. scm/objects/models/hip_objects_list_response.py +113 -0
  1268. scm/objects/models/hip_objects_mobile_device.py +92 -0
  1269. scm/objects/models/hip_objects_mobile_device_criteria.py +125 -0
  1270. scm/objects/models/hip_objects_mobile_device_criteria_applications.py +104 -0
  1271. scm/objects/models/hip_objects_mobile_device_criteria_applications_has_malware.py +94 -0
  1272. scm/objects/models/hip_objects_mobile_device_criteria_applications_has_malware_yes.py +96 -0
  1273. scm/objects/models/hip_objects_mobile_device_criteria_applications_has_malware_yes_excludes_inner.py +113 -0
  1274. scm/objects/models/hip_objects_mobile_device_criteria_last_checkin_time.py +97 -0
  1275. scm/objects/models/hip_objects_mobile_device_criteria_last_checkin_time_not_within.py +89 -0
  1276. scm/objects/models/hip_objects_network_info.py +92 -0
  1277. scm/objects/models/hip_objects_network_info_criteria.py +92 -0
  1278. scm/objects/models/hip_objects_network_info_criteria_network.py +98 -0
  1279. scm/objects/models/hip_objects_network_info_criteria_network_is.py +100 -0
  1280. scm/objects/models/hip_objects_network_info_criteria_network_is_mobile.py +99 -0
  1281. scm/objects/models/hip_objects_network_info_criteria_network_is_not.py +102 -0
  1282. scm/objects/models/hip_objects_network_info_criteria_network_is_wifi.py +99 -0
  1283. scm/objects/models/hip_objects_patch_management.py +104 -0
  1284. scm/objects/models/hip_objects_patch_management_criteria.py +106 -0
  1285. scm/objects/models/hip_objects_patch_management_criteria_missing_patches.py +104 -0
  1286. scm/objects/models/hip_objects_patch_management_criteria_missing_patches_severity.py +99 -0
  1287. scm/objects/models/hip_profiles.py +140 -0
  1288. scm/objects/models/hip_profiles_list_response.py +113 -0
  1289. scm/objects/models/http_server_profiles.py +147 -0
  1290. scm/objects/models/http_server_profiles_format.py +172 -0
  1291. scm/objects/models/http_server_profiles_list_response.py +113 -0
  1292. scm/objects/models/http_server_profiles_server_inner.py +130 -0
  1293. scm/objects/models/log_forwarding_profiles.py +141 -0
  1294. scm/objects/models/log_forwarding_profiles_list_response.py +113 -0
  1295. scm/objects/models/log_forwarding_profiles_match_list_inner.py +110 -0
  1296. scm/objects/models/payload_format.py +112 -0
  1297. scm/objects/models/payload_format_headers_inner.py +90 -0
  1298. scm/objects/models/payload_format_params_inner.py +90 -0
  1299. scm/objects/models/quarantined_devices.py +90 -0
  1300. scm/objects/models/regions.py +144 -0
  1301. scm/objects/models/regions_geo_location.py +91 -0
  1302. scm/objects/models/regions_list_response.py +113 -0
  1303. scm/objects/models/schedules.py +142 -0
  1304. scm/objects/models/schedules_list_response.py +113 -0
  1305. scm/objects/models/schedules_schedule_type.py +95 -0
  1306. scm/objects/models/schedules_schedule_type_recurring.py +95 -0
  1307. scm/objects/models/schedules_schedule_type_recurring_weekly.py +101 -0
  1308. scm/objects/models/service_groups.py +140 -0
  1309. scm/objects/models/service_groups_list_response.py +113 -0
  1310. scm/objects/models/services.py +146 -0
  1311. scm/objects/models/services_list_response.py +113 -0
  1312. scm/objects/models/services_protocol.py +98 -0
  1313. scm/objects/models/services_protocol_tcp.py +97 -0
  1314. scm/objects/models/services_protocol_tcp_override.py +93 -0
  1315. scm/objects/models/services_protocol_udp.py +97 -0
  1316. scm/objects/models/services_protocol_udp_override.py +89 -0
  1317. scm/objects/models/syslog_server_profiles.py +145 -0
  1318. scm/objects/models/syslog_server_profiles_format.py +126 -0
  1319. scm/objects/models/syslog_server_profiles_format_escaping.py +91 -0
  1320. scm/objects/models/syslog_server_profiles_list_response.py +113 -0
  1321. scm/objects/models/syslog_server_profiles_server_inner.py +129 -0
  1322. scm/objects/models/tags.py +143 -0
  1323. scm/objects/models/tags_list_response.py +113 -0
  1324. scm/objects/rest.py +264 -0
  1325. scm/objects/tests/__init__.py +0 -0
  1326. scm/objects/tests/api_address_groups_test.py +279 -0
  1327. scm/objects/tests/api_addresses_test.py +250 -0
  1328. scm/objects/tests/api_application_filters_test.py +232 -0
  1329. scm/objects/tests/api_application_groups_test.py +309 -0
  1330. scm/objects/tests/api_applications_test.py +241 -0
  1331. scm/objects/tests/api_auto_tag_actions_test.py +54 -0
  1332. scm/objects/tests/api_dynamic_user_groups_test.py +279 -0
  1333. scm/objects/tests/api_exception_parsing_test.py +203 -0
  1334. scm/objects/tests/api_external_dynamic_lists_test.py +250 -0
  1335. scm/objects/tests/api_hip_objects_test.py +308 -0
  1336. scm/objects/tests/api_hip_profiles_test.py +217 -0
  1337. scm/objects/tests/api_http_server_profiles_test.py +288 -0
  1338. scm/objects/tests/api_log_forwarding_profiles_test.py +243 -0
  1339. scm/objects/tests/api_regions_test.py +265 -0
  1340. scm/objects/tests/api_schedules_test.py +269 -0
  1341. scm/objects/tests/api_service_groups_test.py +366 -0
  1342. scm/objects/tests/api_services_test.py +324 -0
  1343. scm/objects/tests/api_syslog_server_profiles_test.py +307 -0
  1344. scm/objects/tests/api_tags_test.py +217 -0
  1345. scm/security_services/__init__.py +219 -0
  1346. scm/security_services/api/__init__.py +27 -0
  1347. scm/security_services/api/anti_spyware_profiles_api.py +1619 -0
  1348. scm/security_services/api/anti_spyware_signatures_api.py +1540 -0
  1349. scm/security_services/api/application_override_rules_api.py +1958 -0
  1350. scm/security_services/api/data_filtering_api.py +1619 -0
  1351. scm/security_services/api/data_objects_api.py +1619 -0
  1352. scm/security_services/api/decryption_exclusions_api.py +1619 -0
  1353. scm/security_services/api/decryption_profiles_api.py +1619 -0
  1354. scm/security_services/api/decryption_rules_api.py +1958 -0
  1355. scm/security_services/api/dns_security_profiles_api.py +1619 -0
  1356. scm/security_services/api/dos_protection_profiles_api.py +1619 -0
  1357. scm/security_services/api/dos_protection_rules_api.py +1619 -0
  1358. scm/security_services/api/file_blocking_profiles_api.py +1619 -0
  1359. scm/security_services/api/http_header_profiles_api.py +1619 -0
  1360. scm/security_services/api/profile_groups_api.py +1619 -0
  1361. scm/security_services/api/saas_tenant_restrictions_api.py +718 -0
  1362. scm/security_services/api/security_rules_api.py +1958 -0
  1363. scm/security_services/api/ssl_decryption_settings_api.py +1235 -0
  1364. scm/security_services/api/url_access_profiles_api.py +1619 -0
  1365. scm/security_services/api/url_categories_api.py +1619 -0
  1366. scm/security_services/api/url_filtering_categories_api.py +467 -0
  1367. scm/security_services/api/vulnerability_protection_profiles_api.py +1619 -0
  1368. scm/security_services/api/vulnerability_protection_signatures_api.py +1540 -0
  1369. scm/security_services/api/wildfire_anti_virus_profiles_api.py +1619 -0
  1370. scm/security_services/api_client.py +798 -0
  1371. scm/security_services/api_response.py +21 -0
  1372. scm/security_services/configuration.py +471 -0
  1373. scm/security_services/exceptions.py +200 -0
  1374. scm/security_services/models/__init__.py +180 -0
  1375. scm/security_services/models/anti_spyware_profiles.py +167 -0
  1376. scm/security_services/models/anti_spyware_profiles_list_response.py +113 -0
  1377. scm/security_services/models/anti_spyware_profiles_mica_engine_spyware_enabled_inner.py +100 -0
  1378. scm/security_services/models/anti_spyware_profiles_rules_inner.py +123 -0
  1379. scm/security_services/models/anti_spyware_profiles_rules_inner_action.py +104 -0
  1380. scm/security_services/models/anti_spyware_profiles_rules_inner_action_block_ip.py +101 -0
  1381. scm/security_services/models/anti_spyware_profiles_threat_exception_inner.py +118 -0
  1382. scm/security_services/models/anti_spyware_profiles_threat_exception_inner_action.py +106 -0
  1383. scm/security_services/models/anti_spyware_profiles_threat_exception_inner_action_block_ip.py +101 -0
  1384. scm/security_services/models/anti_spyware_profiles_threat_exception_inner_exempt_ip_inner.py +88 -0
  1385. scm/security_services/models/anti_spyware_signatures.py +177 -0
  1386. scm/security_services/models/anti_spyware_signatures_default_action.py +104 -0
  1387. scm/security_services/models/anti_spyware_signatures_default_action_block_ip.py +101 -0
  1388. scm/security_services/models/anti_spyware_signatures_list_response.py +113 -0
  1389. scm/security_services/models/anti_spyware_signatures_signature.py +102 -0
  1390. scm/security_services/models/anti_spyware_signatures_signature_combination.py +104 -0
  1391. scm/security_services/models/anti_spyware_signatures_signature_combination_and_condition_inner.py +98 -0
  1392. scm/security_services/models/anti_spyware_signatures_signature_combination_and_condition_inner_or_condition_inner.py +90 -0
  1393. scm/security_services/models/anti_spyware_signatures_signature_combination_time_attribute.py +103 -0
  1394. scm/security_services/models/anti_spyware_signatures_signature_standard_inner.py +115 -0
  1395. scm/security_services/models/anti_spyware_signatures_signature_standard_inner_and_condition_inner.py +98 -0
  1396. scm/security_services/models/anti_spyware_signatures_signature_standard_inner_and_condition_inner_or_condition_inner.py +94 -0
  1397. scm/security_services/models/anti_spyware_signatures_signature_standard_inner_and_condition_inner_or_condition_inner_operator.py +109 -0
  1398. scm/security_services/models/anti_spyware_signatures_signature_standard_inner_and_condition_inner_or_condition_inner_operator_equal_to.py +103 -0
  1399. scm/security_services/models/anti_spyware_signatures_signature_standard_inner_and_condition_inner_or_condition_inner_operator_equal_to_qualifier_inner.py +90 -0
  1400. scm/security_services/models/anti_spyware_signatures_signature_standard_inner_and_condition_inner_or_condition_inner_operator_greater_than.py +101 -0
  1401. scm/security_services/models/anti_spyware_signatures_signature_standard_inner_and_condition_inner_or_condition_inner_operator_pattern_match.py +102 -0
  1402. scm/security_services/models/app_override_rules.py +172 -0
  1403. scm/security_services/models/application_override_rules_list_response.py +113 -0
  1404. scm/security_services/models/base_rule_properties.py +128 -0
  1405. scm/security_services/models/data_filtering_profiles.py +145 -0
  1406. scm/security_services/models/data_filtering_profiles_list_response.py +113 -0
  1407. scm/security_services/models/data_filtering_profiles_rules_inner.py +102 -0
  1408. scm/security_services/models/data_objects.py +139 -0
  1409. scm/security_services/models/data_objects_list_response.py +113 -0
  1410. scm/security_services/models/data_objects_pattern_type.py +104 -0
  1411. scm/security_services/models/data_objects_pattern_type_file_properties.py +96 -0
  1412. scm/security_services/models/data_objects_pattern_type_file_properties_pattern_inner.py +94 -0
  1413. scm/security_services/models/data_objects_pattern_type_predefined.py +96 -0
  1414. scm/security_services/models/data_objects_pattern_type_predefined_pattern_inner.py +90 -0
  1415. scm/security_services/models/data_objects_pattern_type_regex.py +96 -0
  1416. scm/security_services/models/data_objects_pattern_type_regex_pattern_inner.py +92 -0
  1417. scm/security_services/models/decryption_exclusions.py +131 -0
  1418. scm/security_services/models/decryption_exclusions_list_response.py +113 -0
  1419. scm/security_services/models/decryption_profiles.py +160 -0
  1420. scm/security_services/models/decryption_profiles_list_response.py +113 -0
  1421. scm/security_services/models/decryption_profiles_ssl_forward_proxy.py +108 -0
  1422. scm/security_services/models/decryption_profiles_ssl_inbound_proxy.py +94 -0
  1423. scm/security_services/models/decryption_profiles_ssl_no_proxy.py +90 -0
  1424. scm/security_services/models/decryption_profiles_ssl_protocol_settings.py +138 -0
  1425. scm/security_services/models/decryption_rules.py +180 -0
  1426. scm/security_services/models/decryption_rules_list_response.py +113 -0
  1427. scm/security_services/models/decryption_rules_type.py +94 -0
  1428. scm/security_services/models/decryption_rules_type_ssl_inbound_inspection.py +88 -0
  1429. scm/security_services/models/dns_security_profiles.py +137 -0
  1430. scm/security_services/models/dns_security_profiles_botnet_domains.py +122 -0
  1431. scm/security_services/models/dns_security_profiles_botnet_domains_dns_security_categories_inner.py +124 -0
  1432. scm/security_services/models/dns_security_profiles_botnet_domains_lists_inner.py +106 -0
  1433. scm/security_services/models/dns_security_profiles_botnet_domains_lists_inner_action.py +94 -0
  1434. scm/security_services/models/dns_security_profiles_botnet_domains_sinkhole.py +110 -0
  1435. scm/security_services/models/dns_security_profiles_botnet_domains_whitelist_inner.py +90 -0
  1436. scm/security_services/models/dns_security_profiles_list_response.py +113 -0
  1437. scm/security_services/models/dos_protection_profiles.py +152 -0
  1438. scm/security_services/models/dos_protection_profiles_flood.py +113 -0
  1439. scm/security_services/models/dos_protection_profiles_flood_icmp.py +94 -0
  1440. scm/security_services/models/dos_protection_profiles_flood_icmp_red.py +99 -0
  1441. scm/security_services/models/dos_protection_profiles_flood_icmp_red_block.py +89 -0
  1442. scm/security_services/models/dos_protection_profiles_flood_tcp_syn.py +100 -0
  1443. scm/security_services/models/dos_protection_profiles_flood_tcp_syn_syn_cookies.py +99 -0
  1444. scm/security_services/models/dos_protection_profiles_flood_tcp_syn_syn_cookies_block.py +89 -0
  1445. scm/security_services/models/dos_protection_profiles_list_response.py +113 -0
  1446. scm/security_services/models/dos_protection_profiles_resource.py +92 -0
  1447. scm/security_services/models/dos_protection_profiles_resource_sessions.py +91 -0
  1448. scm/security_services/models/dos_protection_rules.py +175 -0
  1449. scm/security_services/models/dos_protection_rules_action.py +92 -0
  1450. scm/security_services/models/dos_protection_rules_list_response.py +113 -0
  1451. scm/security_services/models/dos_protection_rules_protection.py +98 -0
  1452. scm/security_services/models/dos_protection_rules_protection_aggregate.py +88 -0
  1453. scm/security_services/models/dos_protection_rules_protection_classified.py +94 -0
  1454. scm/security_services/models/dos_protection_rules_protection_classified_classification_criteria.py +95 -0
  1455. scm/security_services/models/error_detail_cause_info.py +99 -0
  1456. scm/security_services/models/file_blocking_profiles.py +141 -0
  1457. scm/security_services/models/file_blocking_profiles_list_response.py +113 -0
  1458. scm/security_services/models/file_blocking_profiles_rules_inner.py +127 -0
  1459. scm/security_services/models/generic_error.py +98 -0
  1460. scm/security_services/models/get_saas_tenant_restrictions_list_response.py +113 -0
  1461. scm/security_services/models/get_ssl_decryption_settings_list_response.py +113 -0
  1462. scm/security_services/models/http_header_profiles.py +141 -0
  1463. scm/security_services/models/http_header_profiles_http_header_insertion_inner.py +98 -0
  1464. scm/security_services/models/http_header_profiles_http_header_insertion_inner_type_inner.py +107 -0
  1465. scm/security_services/models/http_header_profiles_http_header_insertion_inner_type_inner_headers_inner.py +94 -0
  1466. scm/security_services/models/http_header_profiles_list_response.py +113 -0
  1467. scm/security_services/models/internet_rule_type.py +174 -0
  1468. scm/security_services/models/internet_rule_type_allow_url_category_inner.py +134 -0
  1469. scm/security_services/models/internet_rule_type_allow_url_category_inner_file_control.py +110 -0
  1470. scm/security_services/models/internet_rule_type_allow_web_application_inner.py +118 -0
  1471. scm/security_services/models/internet_rule_type_allow_web_application_inner_saas_enterprise_control.py +98 -0
  1472. scm/security_services/models/internet_rule_type_allow_web_application_inner_saas_enterprise_control_consumer_access.py +98 -0
  1473. scm/security_services/models/internet_rule_type_allow_web_application_inner_saas_enterprise_control_enterprise_access.py +100 -0
  1474. scm/security_services/models/internet_rule_type_allow_web_application_inner_tenant_control.py +94 -0
  1475. scm/security_services/models/internet_rule_type_default_profile_settings.py +94 -0
  1476. scm/security_services/models/internet_rule_type_log_settings.py +88 -0
  1477. scm/security_services/models/internet_rule_type_security_settings.py +122 -0
  1478. scm/security_services/models/profile_groups.py +147 -0
  1479. scm/security_services/models/profile_groups_list_response.py +113 -0
  1480. scm/security_services/models/rule_based_move.py +106 -0
  1481. scm/security_services/models/rules_list_response.py +113 -0
  1482. scm/security_services/models/saas_tenant_restrictions.py +104 -0
  1483. scm/security_services/models/saas_tenant_restrictions_headers_inner.py +92 -0
  1484. scm/security_services/models/security_rule_list_response.py +113 -0
  1485. scm/security_services/models/security_rule_type.py +149 -0
  1486. scm/security_services/models/security_rule_type_profile_setting.py +88 -0
  1487. scm/security_services/models/security_rules.py +235 -0
  1488. scm/security_services/models/ssl_decryption_settings.py +150 -0
  1489. scm/security_services/models/ssl_decryption_settings_forward_trust_certificate.py +90 -0
  1490. scm/security_services/models/ssl_decryption_settings_get_put.py +129 -0
  1491. scm/security_services/models/ssl_decryption_settings_get_put_ssl_decrypt.py +113 -0
  1492. scm/security_services/models/ssl_decryption_settings_ssl_exclude_cert_inner.py +92 -0
  1493. scm/security_services/models/url_access_profiles.py +163 -0
  1494. scm/security_services/models/url_access_profiles_credential_enforcement.py +102 -0
  1495. scm/security_services/models/url_access_profiles_credential_enforcement_mode.py +94 -0
  1496. scm/security_services/models/url_access_profiles_list_response.py +113 -0
  1497. scm/security_services/models/url_categories.py +145 -0
  1498. scm/security_services/models/url_categories_list_response.py +113 -0
  1499. scm/security_services/models/url_filtering_categories.py +90 -0
  1500. scm/security_services/models/url_filtering_categories_list_response.py +113 -0
  1501. scm/security_services/models/vulnerability_protection_profiles.py +158 -0
  1502. scm/security_services/models/vulnerability_protection_profiles_list_response.py +113 -0
  1503. scm/security_services/models/vulnerability_protection_profiles_rules_inner.py +128 -0
  1504. scm/security_services/models/vulnerability_protection_profiles_rules_inner_action.py +106 -0
  1505. scm/security_services/models/vulnerability_protection_profiles_rules_inner_action_block_ip.py +101 -0
  1506. scm/security_services/models/vulnerability_protection_profiles_threat_exception_inner.py +124 -0
  1507. scm/security_services/models/vulnerability_protection_profiles_threat_exception_inner_action.py +106 -0
  1508. scm/security_services/models/vulnerability_protection_profiles_threat_exception_inner_action_block_ip.py +101 -0
  1509. scm/security_services/models/vulnerability_protection_profiles_threat_exception_inner_exempt_ip_inner.py +88 -0
  1510. scm/security_services/models/vulnerability_protection_profiles_threat_exception_inner_time_attribute.py +103 -0
  1511. scm/security_services/models/vulnerability_protection_signatures.py +177 -0
  1512. scm/security_services/models/vulnerability_protection_signatures_affected_host.py +90 -0
  1513. scm/security_services/models/vulnerability_protection_signatures_default_action.py +104 -0
  1514. scm/security_services/models/vulnerability_protection_signatures_default_action_block_ip.py +101 -0
  1515. scm/security_services/models/vulnerability_protection_signatures_list_response.py +113 -0
  1516. scm/security_services/models/vulnerability_protection_signatures_signature.py +102 -0
  1517. scm/security_services/models/vulnerability_protection_signatures_signature_combination.py +104 -0
  1518. scm/security_services/models/vulnerability_protection_signatures_signature_combination_and_condition_inner.py +98 -0
  1519. scm/security_services/models/vulnerability_protection_signatures_signature_combination_and_condition_inner_or_condition_inner.py +90 -0
  1520. scm/security_services/models/vulnerability_protection_signatures_signature_combination_time_attribute.py +103 -0
  1521. scm/security_services/models/vulnerability_protection_signatures_signature_standard_inner.py +115 -0
  1522. scm/security_services/models/vulnerability_protection_signatures_signature_standard_inner_and_condition_inner.py +98 -0
  1523. scm/security_services/models/vulnerability_protection_signatures_signature_standard_inner_and_condition_inner_or_condition_inner.py +94 -0
  1524. scm/security_services/models/vulnerability_protection_signatures_signature_standard_inner_and_condition_inner_or_condition_inner_operator.py +110 -0
  1525. scm/security_services/models/vulnerability_protection_signatures_signature_standard_inner_and_condition_inner_or_condition_inner_operator_equal_to.py +103 -0
  1526. scm/security_services/models/vulnerability_protection_signatures_signature_standard_inner_and_condition_inner_or_condition_inner_operator_equal_to_qualifier_inner.py +90 -0
  1527. scm/security_services/models/vulnerability_protection_signatures_signature_standard_inner_and_condition_inner_or_condition_inner_operator_greater_than.py +101 -0
  1528. scm/security_services/models/vulnerability_protection_signatures_signature_standard_inner_and_condition_inner_or_condition_inner_operator_greater_than_qualifier_inner.py +90 -0
  1529. scm/security_services/models/vulnerability_protection_signatures_signature_standard_inner_and_condition_inner_or_condition_inner_operator_less_than.py +101 -0
  1530. scm/security_services/models/vulnerability_protection_signatures_signature_standard_inner_and_condition_inner_or_condition_inner_operator_less_than_qualifier_inner.py +90 -0
  1531. scm/security_services/models/vulnerability_protection_signatures_signature_standard_inner_and_condition_inner_or_condition_inner_operator_pattern_match.py +102 -0
  1532. scm/security_services/models/vulnerability_protection_signatures_signature_standard_inner_and_condition_inner_or_condition_inner_operator_pattern_match_qualifier_inner.py +90 -0
  1533. scm/security_services/models/wildfire_anti_virus_profiles.py +170 -0
  1534. scm/security_services/models/wildfire_anti_virus_profiles_list_response.py +113 -0
  1535. scm/security_services/models/wildfire_anti_virus_profiles_mlav_exception_inner.py +92 -0
  1536. scm/security_services/models/wildfire_anti_virus_profiles_rules_inner.py +116 -0
  1537. scm/security_services/models/wildfire_anti_virus_profiles_threat_exception_inner.py +90 -0
  1538. scm/security_services/rest.py +264 -0
  1539. scm/security_services/tests/__init__.py +0 -0
  1540. scm/security_services/tests/api_anti_spyware_profiles_test.py +201 -0
  1541. scm/security_services/tests/api_anti_spyware_signatures_test.py +189 -0
  1542. scm/security_services/tests/api_application_override_rules_test.py +236 -0
  1543. scm/security_services/tests/api_data_filtering_profiles_test.py +194 -0
  1544. scm/security_services/tests/api_data_objects_test.py +221 -0
  1545. scm/security_services/tests/api_decryption_exclusions_test.py +187 -0
  1546. scm/security_services/tests/api_decryption_profiles_test.py +200 -0
  1547. scm/security_services/tests/api_decryption_rules_test.py +237 -0
  1548. scm/security_services/tests/api_dns_security_profiles_test.py +194 -0
  1549. scm/security_services/tests/api_dos_protection_profiles_test.py +200 -0
  1550. scm/security_services/tests/api_dos_protection_rules_test.py +60 -0
  1551. scm/security_services/tests/api_file_blocking_profiles_test.py +194 -0
  1552. scm/security_services/tests/api_http_header_profiles_test.py +194 -0
  1553. scm/security_services/tests/api_profile_groups_test.py +192 -0
  1554. scm/security_services/tests/api_saas_tenant_restrictions_test.py +66 -0
  1555. scm/security_services/tests/api_security_rules_test.py +259 -0
  1556. scm/security_services/tests/api_url_access_profiles_test.py +216 -0
  1557. scm/security_services/tests/api_url_categories_test.py +228 -0
  1558. scm/security_services/tests/api_vulnerability_protection_profiles_test.py +216 -0
  1559. scm/security_services/tests/api_vulnerability_protection_signatures_test.py +209 -0
  1560. scm/security_services/tests/api_wildfire_anti_virus_profiles_test.py +194 -0
  1561. scm/test_helpers.py +131 -0
  1562. scm_python-0.1.0.dist-info/METADATA +808 -0
  1563. scm_python-0.1.0.dist-info/RECORD +1566 -0
  1564. scm_python-0.1.0.dist-info/WHEEL +5 -0
  1565. scm_python-0.1.0.dist-info/licenses/LICENSE +202 -0
  1566. scm_python-0.1.0.dist-info/top_level.txt +1 -0
scm/__init__.py ADDED
@@ -0,0 +1,720 @@
1
+
2
+ import os
3
+ import json
4
+ import logging
5
+ import time
6
+ import threading
7
+ from typing import Optional, Dict, Any
8
+ from pathlib import Path
9
+ from datetime import datetime, timedelta
10
+ from oauthlib.oauth2 import BackendApplicationClient
11
+ from requests_oauthlib import OAuth2Session
12
+ from requests.adapters import HTTPAdapter
13
+ from urllib3.util.retry import Retry
14
+
15
+ # Import all sub-clients
16
+ from scm.config_operations import api as config_operations_api
17
+ from scm.config_operations.api_client import ApiClient as ConfigOperationsApiClient
18
+ from scm.config_operations.configuration import Configuration as ConfigOperationsConfiguration
19
+ from scm.config_setup import api as config_setup_api
20
+ from scm.config_setup.api_client import ApiClient as ConfigSetupApiClient
21
+ from scm.config_setup.configuration import Configuration as ConfigSetupConfiguration
22
+ from scm.deployment_services import api as deployment_services_api
23
+ from scm.deployment_services.api_client import ApiClient as DeploymentServicesApiClient
24
+ from scm.deployment_services.configuration import Configuration as DeploymentServicesConfiguration
25
+ from scm.device_settings import api as device_settings_api
26
+ from scm.device_settings.api_client import ApiClient as DeviceSettingsApiClient
27
+ from scm.device_settings.configuration import Configuration as DeviceSettingsConfiguration
28
+ from scm.identity_services import api as identity_services_api
29
+ from scm.identity_services.api_client import ApiClient as IdentityServicesApiClient
30
+ from scm.identity_services.configuration import Configuration as IdentityServicesConfiguration
31
+ from scm.mobile_agent import api as mobile_agent_api
32
+ from scm.mobile_agent.api_client import ApiClient as MobileAgentApiClient
33
+ from scm.mobile_agent.configuration import Configuration as MobileAgentConfiguration
34
+ from scm.network_services import api as network_services_api
35
+ from scm.network_services.api_client import ApiClient as NetworkServicesApiClient
36
+ from scm.network_services.configuration import Configuration as NetworkServicesConfiguration
37
+ from scm.objects import api as objects_api
38
+ from scm.objects.api_client import ApiClient as ObjectsApiClient
39
+ from scm.objects.configuration import Configuration as ObjectsConfiguration
40
+ from scm.security_services import api as security_services_api
41
+ from scm.security_services.api_client import ApiClient as SecurityServicesApiClient
42
+ from scm.security_services.configuration import Configuration as SecurityServicesConfiguration
43
+
44
+ # Set up logging
45
+ logging.basicConfig(level=logging.ERROR)
46
+ logger = logging.getLogger("scm")
47
+
48
+
49
+ def _create_auto_refresh_wrapper(scm_client, original_request_method):
50
+ """
51
+ Create a wrapper around the RESTClientObject.request() method that automatically
52
+ refreshes the token before each API call and retries on 401 errors.
53
+
54
+ This matches scm-go's behavior where the Do() method:
55
+ - Checks token expiry before every API request (line 490-497)
56
+ - Retries once on 401 errors (line 585-598)
57
+ - Prevents back-to-back 401 retries (line 586-591)
58
+
59
+ Args:
60
+ scm_client: Reference to the parent Scm instance
61
+ original_request_method: The original request() method to wrap
62
+
63
+ Returns:
64
+ Wrapped request method with automatic token refresh and 401 retry
65
+ """
66
+ # Track last error to prevent back-to-back 401 retries (like scm-go)
67
+ last_error = {'status': None}
68
+
69
+ def request_with_auto_refresh(method, url, headers=None, *args, **kwargs):
70
+ """
71
+ Wrapped request method that auto-refreshes token before each request
72
+ and retries once on 401 errors.
73
+ """
74
+ # Check if token needs refresh (like scm-go's Do() method line 490-497)
75
+ if scm_client.token_expires_soon:
76
+ logger.debug("Token expires soon, automatically refreshing before request")
77
+ scm_client.refresh_token()
78
+
79
+ # Update Authorization header with current token
80
+ if headers is None:
81
+ headers = {}
82
+ if scm_client._access_token:
83
+ headers['Authorization'] = f'Bearer {scm_client._access_token}'
84
+
85
+ # Call the original request method
86
+ try:
87
+ response = original_request_method(method, url, headers=headers, *args, **kwargs)
88
+ # Clear last error on success
89
+ last_error['status'] = None
90
+ return response
91
+ except Exception as e:
92
+ # Check if this is a 401 Unauthorized error
93
+ # OpenAPI rest client raises exceptions with status attribute
94
+ if hasattr(e, 'status') and e.status == 401:
95
+ # Check for back-to-back 401s (like scm-go line 586-591)
96
+ if last_error['status'] == 401:
97
+ logger.warning("Getting 401s back-to-back, not retrying to prevent infinite loop")
98
+ raise
99
+
100
+ # First 401, so refresh the token and retry (like scm-go line 594-598)
101
+ logger.info(f"Got 401 Unauthorized, refreshing token and retrying request to {url}")
102
+ last_error['status'] = 401
103
+
104
+ try:
105
+ scm_client.refresh_token()
106
+ except Exception as refresh_err:
107
+ logger.error(f"Failed to refresh token after 401: {refresh_err}")
108
+ raise e # Re-raise original 401 error
109
+
110
+ # Update headers with new token
111
+ if scm_client._access_token:
112
+ headers['Authorization'] = f'Bearer {scm_client._access_token}'
113
+
114
+ # Retry the request once
115
+ try:
116
+ response = original_request_method(method, url, headers=headers, *args, **kwargs)
117
+ last_error['status'] = None # Clear on success
118
+ return response
119
+ except Exception as retry_error:
120
+ # Track the retry error status
121
+ if hasattr(retry_error, 'status'):
122
+ last_error['status'] = retry_error.status
123
+ raise
124
+ else:
125
+ # Not a 401, just re-raise
126
+ raise
127
+
128
+ return request_with_auto_refresh
129
+
130
+
131
+ class Scm:
132
+ """
133
+ Unified SCM Client that provides access to all services.
134
+
135
+ Configuration Priority:
136
+ 1. Constructor arguments
137
+ 2. Environment variables
138
+ 3. JSON configuration file (config/scm-config.json or SCM_CONFIG_FILE)
139
+
140
+ JWT Token Handling (matching scm-go behavior):
141
+ - Can pass pre-existing JWT token to avoid auth API rate limits
142
+ - Priority: Constructor args > Config file > Fetch new token
143
+ - Example: Scm(jwt='...', jwt_expires_at='2026-01-01T12:00:00Z', jwt_lifetime=900)
144
+
145
+ Environment Variables (consistent with scm-go):
146
+ - SCM_CLIENT_ID: Client ID for authentication
147
+ - SCM_CLIENT_SECRET: Client secret for authentication
148
+ - SCM_SCOPE: Scope in format "tsg_id:XXXXX" (preferred over SCM_TSG_ID)
149
+ - SCM_TSG_ID: TSG ID (backward compatibility, internally converted to scope)
150
+ - SCM_HOST: API host (default: api.sase.paloaltonetworks.com)
151
+ - SCM_AUTH_URL: Auth URL (default: https://auth.apps.paloaltonetworks.com)
152
+ - SCM_LOGGING: Log level - quiet, basic, or detailed (preferred over SCM_LOG_LEVEL)
153
+ - SCM_LOG_LEVEL: Log level - ERROR, WARNING, INFO, DEBUG (backward compatibility)
154
+
155
+ Args:
156
+ client_id: Client ID for OAuth2 authentication
157
+ client_secret: Client secret for OAuth2 authentication
158
+ tsg_id: Tenant Service Group ID
159
+ host: API host (default: api.sase.paloaltonetworks.com)
160
+ auth_url: Auth URL (default: https://auth.apps.paloaltonetworks.com)
161
+ verify_ssl: Whether to verify SSL certificates (default: True)
162
+ log_level: Logging level (ERROR, WARNING, INFO, DEBUG)
163
+ jwt: Pre-existing JWT token (optional, for token caching)
164
+ jwt_expires_at: JWT expiration time as ISO format string or datetime object
165
+ jwt_lifetime: JWT lifetime in seconds (optional)
166
+ """
167
+
168
+ # Token expiration buffer - refresh 60 seconds before actual expiry
169
+ TOKEN_EXPIRY_BUFFER = 60
170
+
171
+ def __init__(
172
+ self,
173
+ client_id: Optional[str] = None,
174
+ client_secret: Optional[str] = None,
175
+ tsg_id: Optional[str] = None,
176
+ host: Optional[str] = None,
177
+ auth_url: Optional[str] = None,
178
+ verify_ssl: bool = True,
179
+ log_level: Optional[str] = None,
180
+ jwt: Optional[str] = None,
181
+ jwt_expires_at: Optional[str] = None,
182
+ jwt_lifetime: Optional[int] = None
183
+ ):
184
+ # 1. Load File Configuration
185
+ file_config = self._load_config_from_file()
186
+
187
+ # 2. Resolve Configuration (Args > Env > File > Default)
188
+ self.client_id = (
189
+ client_id
190
+ or os.environ.get("SCM_CLIENT_ID")
191
+ or file_config.get("client_id")
192
+ )
193
+ self.client_secret = (
194
+ client_secret
195
+ or os.environ.get("SCM_CLIENT_SECRET")
196
+ or file_config.get("client_secret")
197
+ )
198
+
199
+ # Support both SCM_SCOPE (preferred, consistent with Go) and SCM_TSG_ID (backward compat)
200
+ scope_env = os.environ.get("SCM_SCOPE", "")
201
+ tsg_id_env = os.environ.get("SCM_TSG_ID", "")
202
+
203
+ # Extract TSG ID from scope format or use direct TSG ID
204
+ if tsg_id:
205
+ self.tsg_id = tsg_id
206
+ elif scope_env:
207
+ # Extract from "tsg_id:XXXXX" format
208
+ self.tsg_id = scope_env.replace("tsg_id:", "")
209
+ elif tsg_id_env:
210
+ self.tsg_id = tsg_id_env
211
+ elif file_config.get("scope"):
212
+ # Extract from config file scope field
213
+ self.tsg_id = file_config.get("scope", "").replace("tsg_id:", "")
214
+ elif file_config.get("tsg_id"):
215
+ self.tsg_id = file_config.get("tsg_id")
216
+ else:
217
+ self.tsg_id = None
218
+
219
+ self.host = (
220
+ host
221
+ or os.environ.get("SCM_HOST")
222
+ or file_config.get("host")
223
+ or "api.sase.paloaltonetworks.com"
224
+ )
225
+ self.auth_url = (
226
+ auth_url
227
+ or os.environ.get("SCM_AUTH_URL")
228
+ or file_config.get("auth_url")
229
+ or "https://auth.apps.paloaltonetworks.com"
230
+ )
231
+
232
+ # Support both SCM_LOGGING (preferred) and SCM_LOG_LEVEL (backward compat)
233
+ _log_level_str = (
234
+ log_level
235
+ or os.environ.get("SCM_LOGGING")
236
+ or os.environ.get("SCM_LOG_LEVEL")
237
+ or file_config.get("logging")
238
+ or "ERROR"
239
+ ).upper()
240
+
241
+ self.verify_ssl = verify_ssl
242
+
243
+ # Configure logger
244
+ try:
245
+ logger.setLevel(_log_level_str)
246
+ except ValueError:
247
+ logger.setLevel(logging.ERROR)
248
+ logger.warning(f"Invalid log level '{_log_level_str}', defaulting to ERROR")
249
+
250
+ if not self.client_id or not self.client_secret:
251
+ raise ValueError(
252
+ "client_id and client_secret must be provided via args, environment variables, or config file."
253
+ )
254
+
255
+ # Remove /oauth2/access_token from auth_url if present
256
+ if "/oauth2/access_token" in self.auth_url:
257
+ self.auth_url = self.auth_url.split("/oauth2/access_token")[0]
258
+
259
+ # JWT token handling with priority (like scm-go client.go:238-246)
260
+ # Priority: 1. Constructor args, 2. Config file, 3. Fetch new token
261
+
262
+ # Load from config file first (for fallback)
263
+ # Support both "jwt" (preferred) and "access_token" (backward compat)
264
+ file_jwt = file_config.get("jwt") or file_config.get("access_token")
265
+ file_jwt_expires_at_str = file_config.get("jwt_expires_at") or file_config.get("token_expires_at")
266
+ file_jwt_lifetime = file_config.get("jwt_lifetime")
267
+
268
+ # Store token metadata
269
+ self._access_token: Optional[str] = None
270
+ self._token_expires_at: Optional[datetime] = None
271
+ self._jwt_lifetime: Optional[int] = None
272
+
273
+ # Thread lock for atomic token refresh (like scm-go's atomic counter)
274
+ self._refresh_lock = threading.Lock()
275
+
276
+ # Determine if we need to fetch a new token
277
+ needs_new_token = True
278
+ token_source = None
279
+
280
+ # Priority 1: JWT passed directly as constructor argument (like scm-go)
281
+ if jwt and jwt_expires_at:
282
+ try:
283
+ # Parse expiration time if string, otherwise use datetime object
284
+ if isinstance(jwt_expires_at, str):
285
+ expires_at = datetime.fromisoformat(jwt_expires_at.replace('Z', '+00:00'))
286
+ else:
287
+ expires_at = jwt_expires_at
288
+
289
+ # Check if token is still valid with expiration buffer (like scm-go)
290
+ buffer_time = timedelta(seconds=self.TOKEN_EXPIRY_BUFFER)
291
+ if datetime.now(expires_at.tzinfo) < (expires_at - buffer_time):
292
+ self._access_token = jwt
293
+ self._token_expires_at = expires_at
294
+ self._jwt_lifetime = jwt_lifetime
295
+ needs_new_token = False
296
+ token_source = "constructor argument"
297
+ logger.info(f"Using JWT from constructor argument (expires at {expires_at.isoformat()})")
298
+ else:
299
+ logger.info("JWT from constructor argument has expired or expiring soon, will fetch new token")
300
+ except (ValueError, TypeError) as e:
301
+ logger.warning(f"Failed to parse JWT from constructor argument: {e}, will fetch new token")
302
+
303
+ # Priority 2: JWT from config file (if not provided as constructor arg)
304
+ if needs_new_token and file_jwt and file_jwt_expires_at_str:
305
+ try:
306
+ # Parse expiration time (handle both with and without 'Z' suffix)
307
+ expires_at = datetime.fromisoformat(file_jwt_expires_at_str.replace('Z', '+00:00'))
308
+
309
+ # Check if token is still valid with expiration buffer (like scm-go)
310
+ buffer_time = timedelta(seconds=self.TOKEN_EXPIRY_BUFFER)
311
+ if datetime.now(expires_at.tzinfo) < (expires_at - buffer_time):
312
+ self._access_token = file_jwt
313
+ self._token_expires_at = expires_at
314
+ self._jwt_lifetime = file_jwt_lifetime
315
+ needs_new_token = False
316
+ token_source = "config file"
317
+ logger.info(f"Using cached JWT from config file (expires at {expires_at.isoformat()})")
318
+ else:
319
+ logger.info("Cached token from config file has expired or expiring soon, fetching new token")
320
+ except (ValueError, TypeError) as e:
321
+ logger.warning(f"Failed to parse token expiration time from config file: {e}, fetching new token")
322
+
323
+ # Priority 3: Fetch new token if none provided or all expired
324
+ if needs_new_token:
325
+ self._fetch_and_store_token()
326
+ token_source = "auth API"
327
+
328
+ # Initialize sub-clients
329
+ self.config_operations = self._init_config_operations_client()
330
+ self.config_setup = self._init_config_setup_client()
331
+ self.deployment_services = self._init_deployment_services_client()
332
+ self.device_settings = self._init_device_settings_client()
333
+ self.identity_services = self._init_identity_services_client()
334
+ self.mobile_agent = self._init_mobile_agent_client()
335
+ self.network_services = self._init_network_services_client()
336
+ self.objects = self._init_objects_client()
337
+ self.security_services = self._init_security_services_client()
338
+
339
+ def _load_config_from_file(self) -> Dict[str, Any]:
340
+ """
341
+ Loads configuration from a JSON file.
342
+
343
+ Search order:
344
+ 1. SCM_CONFIG_FILE environment variable
345
+ 2. config/scm-config.json (project-local, matches scm-go layout)
346
+ """
347
+ # Explicit env var takes priority
348
+ env_path = os.environ.get("SCM_CONFIG_FILE")
349
+ if env_path:
350
+ path = Path(env_path)
351
+ if path.exists():
352
+ try:
353
+ with open(path, "r") as f:
354
+ return json.load(f)
355
+ except Exception as e:
356
+ logger.warning(f"Failed to load config file at {env_path}: {e}")
357
+ return {}
358
+ return {}
359
+
360
+ # Check project-local config/scm-config.json (matches scm-go)
361
+ local_path = Path("config/scm-config.json")
362
+ if local_path.exists():
363
+ try:
364
+ with open(local_path, "r") as f:
365
+ return json.load(f)
366
+ except Exception as e:
367
+ logger.warning(f"Failed to load config file at {local_path}: {e}")
368
+
369
+ return {}
370
+
371
+ def _fetch_and_store_token(self) -> None:
372
+ """
373
+ Fetches a new OAuth2 access token and stores metadata.
374
+ """
375
+ token_url = f"{self.auth_url}/oauth2/access_token"
376
+
377
+ # SCM requires tsg_id in the scope
378
+ scope = [f"tsg_id:{self.tsg_id}"] if self.tsg_id else None
379
+
380
+ logger.debug(f"Attempting Authentication to: {token_url}")
381
+ logger.debug(f"Client ID: {self.client_id[:4]}...{self.client_id[-4:] if len(self.client_id) > 4 else ''}")
382
+ logger.debug(f"Scope: {scope}")
383
+
384
+ # FIX: Tell oauthlib to relax scope validation.
385
+ os.environ["OAUTHLIB_RELAX_TOKEN_SCOPE"] = "1"
386
+
387
+ # 1. Create the standard OAuth2 Client
388
+ client = BackendApplicationClient(client_id=self.client_id, scope=scope)
389
+
390
+ # 2. Create the session with retry logic
391
+ oauth = OAuth2Session(client=client)
392
+
393
+ # Configure retry strategy with exponential backoff (matching scm-go)
394
+ # scm-go uses: 5 retries, exponential backoff (1s, 2s, 4s, 8s, 10s capped)
395
+ # See client.go lines 321-324
396
+ retry_strategy = Retry(
397
+ total=5, # Match scm-go's 5 retries (vs previous 3)
398
+ backoff_factor=1, # Exponential: 1s, 2s, 4s, 8s, 16s... (vs previous linear 0.3)
399
+ backoff_max=10, # Cap at 10 seconds (like scm-go's WithCappedDuration)
400
+ status_forcelist=[408, 429, 500, 502, 503, 504],
401
+ allowed_methods=["POST"],
402
+ )
403
+ adapter = HTTPAdapter(max_retries=retry_strategy)
404
+ oauth.mount("https://", adapter)
405
+ oauth.mount("http://", adapter)
406
+
407
+ # 3. Fetch the token with timeout
408
+ try:
409
+ token_response = oauth.fetch_token(
410
+ token_url=token_url,
411
+ client_id=self.client_id,
412
+ client_secret=self.client_secret,
413
+ verify=self.verify_ssl,
414
+ timeout=30
415
+ )
416
+
417
+ self._access_token = token_response["access_token"]
418
+
419
+ # Store token lifetime if available
420
+ if "expires_in" in token_response:
421
+ self._jwt_lifetime = int(token_response["expires_in"])
422
+ # Calculate expiration time with buffer (like scm-go: 60 second buffer)
423
+ self._token_expires_at = datetime.now(datetime.now().astimezone().tzinfo) + timedelta(
424
+ seconds=self._jwt_lifetime - self.TOKEN_EXPIRY_BUFFER
425
+ )
426
+ logger.debug(f"Token expires in {self._jwt_lifetime}s, will refresh at {self._token_expires_at.isoformat()}")
427
+
428
+ logger.info("Authentication successful.")
429
+
430
+ except Exception as e:
431
+ logger.error(f"Authentication Failed: {str(e)}")
432
+ raise ValueError(f"Failed to authenticate with SCM via OAuth2: {str(e)}")
433
+
434
+ def refresh_token(self) -> str:
435
+ """
436
+ Refresh the OAuth2 access token.
437
+
438
+ This method is thread-safe using a lock to prevent concurrent refresh attempts.
439
+ If multiple threads/requests call this simultaneously, only one will refresh
440
+ and the others will wait then return the newly refreshed token.
441
+
442
+ Before calling the auth API, checks if a valid token exists in config.json
443
+ (e.g., from automatic refresh via cron job) to avoid unnecessary API calls.
444
+
445
+ Returns:
446
+ str: The new access token
447
+
448
+ Raises:
449
+ ValueError: If token refresh fails
450
+ """
451
+ # Atomic refresh using lock (like scm-go's atomic counter pattern)
452
+ with self._refresh_lock:
453
+ # Double-check: another thread might have just refreshed
454
+ # (avoids unnecessary refresh if token was just updated)
455
+ if not self.token_expires_soon:
456
+ logger.debug("Token already refreshed by another thread, skipping refresh")
457
+ return self._access_token
458
+
459
+ # OPTIMIZATION: Before calling auth API, check if config file has a newer valid token
460
+ # This avoids unnecessary auth API calls when cron jobs or other processes
461
+ # have already refreshed the token in config.json
462
+ config_path = os.environ.get("SCM_CONFIG_FILE", os.path.expanduser("~/.scm/config.json"))
463
+ if Path(config_path).exists():
464
+ try:
465
+ config = self._load_config_from_file()
466
+ if config.get("jwt") and config.get("jwt_expires_at"):
467
+ # Check if this is a different token than what we have
468
+ if config.get("jwt") != self._access_token:
469
+ # Parse expiration time
470
+ cached_expires_at = datetime.fromisoformat(
471
+ config["jwt_expires_at"].replace('Z', '+00:00')
472
+ )
473
+ now = datetime.now(cached_expires_at.tzinfo)
474
+ time_until_expiry = (cached_expires_at - now).total_seconds()
475
+
476
+ # If cached token is still valid (not expiring within buffer), use it
477
+ if time_until_expiry > self.TOKEN_EXPIRY_BUFFER:
478
+ logger.info(
479
+ f"Found valid cached token in config file (expires in {int(time_until_expiry)}s), "
480
+ f"using it instead of fetching new token"
481
+ )
482
+ self._access_token = config["jwt"]
483
+ self._token_expires_at = cached_expires_at
484
+ self._jwt_lifetime = config.get("jwt_lifetime", 900)
485
+
486
+ # Update all sub-clients with the cached token
487
+ self._update_all_sub_clients()
488
+
489
+ return self._access_token
490
+ else:
491
+ logger.debug(
492
+ f"Cached token in config file expires soon ({int(time_until_expiry)}s), "
493
+ f"will fetch new token"
494
+ )
495
+ except Exception as e:
496
+ logger.debug(f"Could not load token from config file: {e}, will fetch new token")
497
+
498
+ logger.info("Refreshing access token...")
499
+ self._fetch_and_store_token()
500
+
501
+ # Update all sub-clients with the new token
502
+ self._update_all_sub_clients()
503
+
504
+ return self._access_token
505
+
506
+ def _update_all_sub_clients(self) -> None:
507
+ """
508
+ Update all sub-client configurations with the current access token.
509
+
510
+ This is called after token refresh to ensure all API clients use the new token.
511
+ """
512
+ if hasattr(self, 'config_operations') and hasattr(self.config_operations, 'api_client'):
513
+ self.config_operations.api_client.configuration.access_token = self._access_token
514
+ if hasattr(self, 'config_setup') and hasattr(self.config_setup, 'api_client'):
515
+ self.config_setup.api_client.configuration.access_token = self._access_token
516
+ if hasattr(self, 'deployment_services') and hasattr(self.deployment_services, 'api_client'):
517
+ self.deployment_services.api_client.configuration.access_token = self._access_token
518
+ if hasattr(self, 'device_settings') and hasattr(self.device_settings, 'api_client'):
519
+ self.device_settings.api_client.configuration.access_token = self._access_token
520
+ if hasattr(self, 'identity_services') and hasattr(self.identity_services, 'api_client'):
521
+ self.identity_services.api_client.configuration.access_token = self._access_token
522
+ if hasattr(self, 'mobile_agent') and hasattr(self.mobile_agent, 'api_client'):
523
+ self.mobile_agent.api_client.configuration.access_token = self._access_token
524
+ if hasattr(self, 'network_services') and hasattr(self.network_services, 'api_client'):
525
+ self.network_services.api_client.configuration.access_token = self._access_token
526
+ if hasattr(self, 'objects') and hasattr(self.objects, 'api_client'):
527
+ self.objects.api_client.configuration.access_token = self._access_token
528
+ if hasattr(self, 'security_services') and hasattr(self.security_services, 'api_client'):
529
+ self.security_services.api_client.configuration.access_token = self._access_token
530
+
531
+ @property
532
+ def token_expires_soon(self) -> bool:
533
+ """
534
+ Check if the token will expire soon.
535
+
536
+ Returns:
537
+ bool: True if token is missing or expiring within TOKEN_EXPIRY_BUFFER seconds
538
+ """
539
+ if not self._access_token or not self._token_expires_at:
540
+ return True
541
+
542
+ # Check if current time is within TOKEN_EXPIRY_BUFFER seconds of expiry
543
+ buffer_time = timedelta(seconds=self.TOKEN_EXPIRY_BUFFER)
544
+ return datetime.now(self._token_expires_at.tzinfo) >= (self._token_expires_at - buffer_time)
545
+
546
+ @property
547
+ def access_token(self) -> Optional[str]:
548
+ """Get the current access token."""
549
+ return self._access_token
550
+ def _init_config_operations_client(self):
551
+ # Construct base URL by appending the service-specific path suffix
552
+ # Host: https://api.sase.paloaltonetworks.com
553
+ # Suffix: /config/operations/v1
554
+ config = ConfigOperationsConfiguration(
555
+ host=f"https://{self.host}/config/operations/v1"
556
+ )
557
+ config.verify_ssl = self.verify_ssl
558
+ config.access_token = self._access_token
559
+
560
+ client = ConfigOperationsApiClient(config)
561
+
562
+ # Wrap the rest client's request method to auto-refresh tokens
563
+ client.rest_client.request = _create_auto_refresh_wrapper(
564
+ self, client.rest_client.request
565
+ )
566
+
567
+ config_operations_api.api_client = client
568
+ return config_operations_api
569
+ def _init_config_setup_client(self):
570
+ # Construct base URL by appending the service-specific path suffix
571
+ # Host: https://api.sase.paloaltonetworks.com
572
+ # Suffix: /config/setup/v1
573
+ config = ConfigSetupConfiguration(
574
+ host=f"https://{self.host}/config/setup/v1"
575
+ )
576
+ config.verify_ssl = self.verify_ssl
577
+ config.access_token = self._access_token
578
+
579
+ client = ConfigSetupApiClient(config)
580
+
581
+ # Wrap the rest client's request method to auto-refresh tokens
582
+ client.rest_client.request = _create_auto_refresh_wrapper(
583
+ self, client.rest_client.request
584
+ )
585
+
586
+ config_setup_api.api_client = client
587
+ return config_setup_api
588
+ def _init_deployment_services_client(self):
589
+ # Construct base URL by appending the service-specific path suffix
590
+ # Host: https://api.sase.paloaltonetworks.com
591
+ # Suffix: /config/deployment/v1
592
+ config = DeploymentServicesConfiguration(
593
+ host=f"https://{self.host}/config/deployment/v1"
594
+ )
595
+ config.verify_ssl = self.verify_ssl
596
+ config.access_token = self._access_token
597
+
598
+ client = DeploymentServicesApiClient(config)
599
+
600
+ # Wrap the rest client's request method to auto-refresh tokens
601
+ client.rest_client.request = _create_auto_refresh_wrapper(
602
+ self, client.rest_client.request
603
+ )
604
+
605
+ deployment_services_api.api_client = client
606
+ return deployment_services_api
607
+ def _init_device_settings_client(self):
608
+ # Construct base URL by appending the service-specific path suffix
609
+ # Host: https://api.sase.paloaltonetworks.com
610
+ # Suffix: /config/device/v1
611
+ config = DeviceSettingsConfiguration(
612
+ host=f"https://{self.host}/config/device/v1"
613
+ )
614
+ config.verify_ssl = self.verify_ssl
615
+ config.access_token = self._access_token
616
+
617
+ client = DeviceSettingsApiClient(config)
618
+
619
+ # Wrap the rest client's request method to auto-refresh tokens
620
+ client.rest_client.request = _create_auto_refresh_wrapper(
621
+ self, client.rest_client.request
622
+ )
623
+
624
+ device_settings_api.api_client = client
625
+ return device_settings_api
626
+ def _init_identity_services_client(self):
627
+ # Construct base URL by appending the service-specific path suffix
628
+ # Host: https://api.sase.paloaltonetworks.com
629
+ # Suffix: /config/identity/v1
630
+ config = IdentityServicesConfiguration(
631
+ host=f"https://{self.host}/config/identity/v1"
632
+ )
633
+ config.verify_ssl = self.verify_ssl
634
+ config.access_token = self._access_token
635
+
636
+ client = IdentityServicesApiClient(config)
637
+
638
+ # Wrap the rest client's request method to auto-refresh tokens
639
+ client.rest_client.request = _create_auto_refresh_wrapper(
640
+ self, client.rest_client.request
641
+ )
642
+
643
+ identity_services_api.api_client = client
644
+ return identity_services_api
645
+ def _init_mobile_agent_client(self):
646
+ # Construct base URL by appending the service-specific path suffix
647
+ # Host: https://api.sase.paloaltonetworks.com
648
+ # Suffix: /config/mobile-agent/v1
649
+ config = MobileAgentConfiguration(
650
+ host=f"https://{self.host}/config/mobile-agent/v1"
651
+ )
652
+ config.verify_ssl = self.verify_ssl
653
+ config.access_token = self._access_token
654
+
655
+ client = MobileAgentApiClient(config)
656
+
657
+ # Wrap the rest client's request method to auto-refresh tokens
658
+ client.rest_client.request = _create_auto_refresh_wrapper(
659
+ self, client.rest_client.request
660
+ )
661
+
662
+ mobile_agent_api.api_client = client
663
+ return mobile_agent_api
664
+ def _init_network_services_client(self):
665
+ # Construct base URL by appending the service-specific path suffix
666
+ # Host: https://api.sase.paloaltonetworks.com
667
+ # Suffix: /config/network/v1
668
+ config = NetworkServicesConfiguration(
669
+ host=f"https://{self.host}/config/network/v1"
670
+ )
671
+ config.verify_ssl = self.verify_ssl
672
+ config.access_token = self._access_token
673
+
674
+ client = NetworkServicesApiClient(config)
675
+
676
+ # Wrap the rest client's request method to auto-refresh tokens
677
+ client.rest_client.request = _create_auto_refresh_wrapper(
678
+ self, client.rest_client.request
679
+ )
680
+
681
+ network_services_api.api_client = client
682
+ return network_services_api
683
+ def _init_objects_client(self):
684
+ # Construct base URL by appending the service-specific path suffix
685
+ # Host: https://api.sase.paloaltonetworks.com
686
+ # Suffix: /config/objects/v1
687
+ config = ObjectsConfiguration(
688
+ host=f"https://{self.host}/config/objects/v1"
689
+ )
690
+ config.verify_ssl = self.verify_ssl
691
+ config.access_token = self._access_token
692
+
693
+ client = ObjectsApiClient(config)
694
+
695
+ # Wrap the rest client's request method to auto-refresh tokens
696
+ client.rest_client.request = _create_auto_refresh_wrapper(
697
+ self, client.rest_client.request
698
+ )
699
+
700
+ objects_api.api_client = client
701
+ return objects_api
702
+ def _init_security_services_client(self):
703
+ # Construct base URL by appending the service-specific path suffix
704
+ # Host: https://api.sase.paloaltonetworks.com
705
+ # Suffix: /config/security/v1
706
+ config = SecurityServicesConfiguration(
707
+ host=f"https://{self.host}/config/security/v1"
708
+ )
709
+ config.verify_ssl = self.verify_ssl
710
+ config.access_token = self._access_token
711
+
712
+ client = SecurityServicesApiClient(config)
713
+
714
+ # Wrap the rest client's request method to auto-refresh tokens
715
+ client.rest_client.request = _create_auto_refresh_wrapper(
716
+ self, client.rest_client.request
717
+ )
718
+
719
+ security_services_api.api_client = client
720
+ return security_services_api