fp-NGFW-SMC-python 1.0.33__tar.gz → 1.0.35__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. fp_ngfw_smc_python-1.0.35/.gitignore +29 -0
  2. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/MANIFEST.in +1 -0
  3. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/PKG-INFO +4 -4
  4. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/README.rst +2 -2
  5. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/fp_NGFW_SMC_python.egg-info/PKG-INFO +4 -4
  6. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/fp_NGFW_SMC_python.egg-info/SOURCES.txt +14 -3
  7. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/pyproject.toml +14 -1
  8. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/__init__.py +10 -7
  9. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/__version__.py +1 -1
  10. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/access_rights.py +41 -23
  11. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/certificates/certificate_authority.py +12 -9
  12. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/certificates/tls.py +73 -46
  13. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/certificates/tls_common.py +34 -17
  14. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/certificates/vpn.py +35 -33
  15. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/eca_client_config.py +63 -31
  16. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/filter.py +5 -1
  17. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/license.py +11 -8
  18. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/monitoring_status.py +159 -107
  19. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/reports.py +43 -25
  20. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/role.py +8 -4
  21. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/scheduled_tasks.py +136 -109
  22. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/system.py +289 -121
  23. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/system_properties.py +38 -7
  24. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/tasks.py +48 -46
  25. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/upcoming_event.py +33 -30
  26. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/updates.py +18 -10
  27. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/user_auth/servers.py +146 -144
  28. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/user_auth/users.py +53 -32
  29. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/api/common.py +31 -22
  30. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/api/configloader.py +13 -9
  31. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/api/entry_point.py +10 -7
  32. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/api/exceptions.py +10 -6
  33. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/api/session.py +155 -96
  34. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/api/web.py +70 -11
  35. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/base/collection.py +82 -54
  36. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/base/decorators.py +26 -21
  37. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/base/mixins.py +9 -3
  38. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/base/model.py +98 -82
  39. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/base/structs.py +20 -18
  40. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/base/util.py +18 -14
  41. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/compat.py +30 -20
  42. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/addon.py +80 -77
  43. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/advanced_settings.py +13 -9
  44. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/collection.py +265 -181
  45. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/contact_address.py +32 -16
  46. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/engine.py +575 -504
  47. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/engine_vss.py +33 -23
  48. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/engines.py +366 -350
  49. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/external_pki.py +24 -20
  50. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/general.py +59 -55
  51. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/ha_management.py +105 -68
  52. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/interfaces.py +391 -156
  53. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/lldp.py +27 -25
  54. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/node.py +101 -95
  55. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/policy.py +18 -16
  56. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/resource.py +16 -14
  57. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/route.py +96 -94
  58. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/session_monitoring.py +4 -1
  59. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/sub_interfaces.py +75 -53
  60. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/waiters.py +21 -17
  61. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/docs/conf.py +2 -2
  62. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/docs/pages/reference.rst +8 -0
  63. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/elements/alerts.py +73 -39
  64. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/elements/common.py +41 -28
  65. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/elements/group.py +143 -50
  66. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/elements/helpers.py +13 -9
  67. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/elements/netlink.py +110 -70
  68. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/elements/network.py +84 -69
  69. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/elements/other.py +125 -82
  70. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/elements/profiles.py +97 -82
  71. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/elements/protocols.py +36 -23
  72. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/elements/servers.py +643 -449
  73. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/elements/service.py +93 -43
  74. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/elements/situations.py +46 -42
  75. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/elements/ssm.py +27 -23
  76. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/elements/tags.py +8 -4
  77. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/elements/user.py +115 -84
  78. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/custom_script.zip +0 -0
  79. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/gateway_certificates.py +1 -1
  80. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/group.py +21 -0
  81. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/layer3_cluster.py +1 -1
  82. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/layer3_cluster_ldap_replication.py +1 -1
  83. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/layer3_firewall.py +111 -9
  84. fp_ngfw_smc_python-1.0.35/smc/examples/modem_interface.py +159 -0
  85. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/monitoring/black_list.py +1 -1
  86. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/monitoring/block_list.py +1 -1
  87. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/monitoring/ws_async.py +5 -6
  88. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/scheduled_tasks.py +1 -1
  89. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/type_of_servers.py +42 -12
  90. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/update_package.py +1 -1
  91. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/web_access_server.py +56 -2
  92. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/policy/file_filtering.py +26 -21
  93. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/policy/interface.py +15 -9
  94. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/policy/ips.py +15 -7
  95. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/policy/layer2.py +13 -5
  96. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/policy/layer3.py +16 -10
  97. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/policy/policy.py +17 -15
  98. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/policy/qos.py +8 -21
  99. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/policy/rule.py +159 -115
  100. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/policy/rule_elements.py +200 -182
  101. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/policy/rule_nat.py +91 -83
  102. fp_ngfw_smc_python-1.0.35/smc/py.typed +0 -0
  103. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/routing/access_list.py +24 -12
  104. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/routing/bgp.py +130 -126
  105. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/routing/bgp_access_list.py +3 -3
  106. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/routing/ospf.py +67 -54
  107. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/routing/pim.py +79 -36
  108. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/routing/prefix_list.py +2 -2
  109. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/routing/route_map.py +40 -36
  110. fp_ngfw_smc_python-1.0.35/smc/tests/api_base_administration_bugs_test.py +91 -0
  111. fp_ngfw_smc_python-1.0.35/smc/tests/api_web_debug_test.py +79 -0
  112. fp_ngfw_smc_python-1.0.35/smc/tests/core_bugs_test.py +133 -0
  113. fp_ngfw_smc_python-1.0.35/smc/tests/elements_bugs_test.py +97 -0
  114. fp_ngfw_smc_python-1.0.35/smc/tests/engine_bugs_test.py +182 -0
  115. fp_ngfw_smc_python-1.0.35/smc/tests/internal_gateway_test.py +75 -0
  116. fp_ngfw_smc_python-1.0.35/smc/tests/monitoring_status_test.py +79 -0
  117. fp_ngfw_smc_python-1.0.35/smc/tests/policy_vpn_bugs_test.py +99 -0
  118. fp_ngfw_smc_python-1.0.35/smc/tests/smc_monitoring_entries_test.py +74 -0
  119. fp_ngfw_smc_python-1.0.35/smc/tests/smc_request_headers_test.py +34 -0
  120. fp_ngfw_smc_python-1.0.35/smc/tests/system_import_interactive_test.py +98 -0
  121. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/vpn/application_access_portal.py +177 -147
  122. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/vpn/elements.py +169 -130
  123. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/vpn/policy.py +52 -48
  124. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/vpn/route.py +129 -125
  125. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/vpn/ssl_vpn_portal.py +173 -147
  126. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/HISTORY.rst +7 -1
  127. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/MANIFEST.in +1 -0
  128. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/pyproject.toml +6 -2
  129. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/requirements.txt +1 -1
  130. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/__version__.py +1 -1
  131. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/models/calendar.py +20 -19
  132. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/models/filters.py +27 -22
  133. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/models/formats.py +13 -10
  134. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/models/formatters.py +17 -11
  135. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/models/query.py +39 -24
  136. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/models/values.py +14 -10
  137. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/monitors/alerts.py +21 -19
  138. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/monitors/blacklist.py +24 -21
  139. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/monitors/block_list.py +24 -21
  140. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/monitors/connections.py +18 -16
  141. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/monitors/logs.py +18 -13
  142. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/monitors/neighbors.py +19 -17
  143. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/monitors/routes.py +18 -16
  144. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/monitors/sslvpn.py +13 -11
  145. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/monitors/users.py +14 -12
  146. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/monitors/vpns.py +25 -23
  147. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/pubsub/subscribers.py +11 -9
  148. fp_ngfw_smc_python-1.0.35/smc-monitoring/smc_monitoring/py.typed +0 -0
  149. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/wsocket.py +42 -33
  150. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/tox.ini +2 -3
  151. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/tox.ini +2 -8
  152. fp_ngfw_smc_python-1.0.33/.gitignore +0 -15
  153. fp_ngfw_smc_python-1.0.33/smc/tests/docker_smc_bootstrap.py +0 -349
  154. fp_ngfw_smc_python-1.0.33/smc-monitoring/test.py +0 -403
  155. fp_ngfw_smc_python-1.0.33/smc-monitoring/tests/docker_smc_bootstrap.py +0 -324
  156. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/.coveragerc +0 -0
  157. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/.readthedocs.yaml +0 -0
  158. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/HISTORY.rst +0 -0
  159. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/LICENSE +0 -0
  160. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/fp_NGFW_SMC_python.egg-info/dependency_links.txt +0 -0
  161. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/fp_NGFW_SMC_python.egg-info/requires.txt +0 -0
  162. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/fp_NGFW_SMC_python.egg-info/top_level.txt +0 -0
  163. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/setup.cfg +0 -0
  164. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/.gitignore +0 -0
  165. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/actions/__init__.py +0 -0
  166. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/__init__.py +0 -0
  167. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/certificates/__init__.py +0 -0
  168. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/administration/user_auth/__init__.py +0 -0
  169. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/api/__init__.py +0 -0
  170. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/base/__init__.py +0 -0
  171. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/__init__.py +0 -0
  172. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/core/hardware.py +0 -0
  173. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/docs/.gitignore +0 -0
  174. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/docs/Makefile +0 -0
  175. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/docs/index.rst +0 -0
  176. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/docs/pages/administration.rst +0 -0
  177. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/docs/pages/collections.rst +0 -0
  178. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/docs/pages/elements.rst +0 -0
  179. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/docs/pages/engine.rst +0 -0
  180. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/docs/pages/extensions.rst +0 -0
  181. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/docs/pages/installation.rst +0 -0
  182. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/docs/pages/intro.rst +0 -0
  183. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/docs/pages/logging.rst +0 -0
  184. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/docs/pages/policy.rst +0 -0
  185. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/docs/pages/resources.rst +0 -0
  186. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/docs/pages/session.rst +0 -0
  187. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/docs/pages/vpn.rst +0 -0
  188. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/docs/requirements.txt +0 -0
  189. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/elements/__init__.py +0 -0
  190. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/README.md +0 -0
  191. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/__init__.py +0 -0
  192. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/add_sidewinder_routes.py +0 -0
  193. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/aggregated_interface.py +0 -0
  194. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/alert_chain_and_alert_chain_rule.py +0 -0
  195. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/alert_policy_and_alert_rule.py +0 -0
  196. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/alias.py +0 -0
  197. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/application_access_portal.py +0 -0
  198. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/basic_requests.py +0 -0
  199. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/bgp.py +0 -0
  200. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/certify_component_ext_pki.py +0 -0
  201. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/cloud_engine.py +0 -0
  202. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/configure_ztna_addon.py +0 -0
  203. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/connection_type.py +0 -0
  204. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/domain_name.py +0 -0
  205. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/eca_configuration.py +0 -0
  206. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/elasticsearch_cluster.py +0 -0
  207. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/engine-node-health.py +0 -0
  208. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/engine_query_route.py +0 -0
  209. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/export_all.py +0 -0
  210. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/file_filtering_policy.py +0 -0
  211. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/firewall_policy_nat.py +0 -0
  212. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/gateway_profile.py +0 -0
  213. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/ha_management.py +0 -0
  214. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/images/256.png +0 -0
  215. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/import_engine_upgrade.py +0 -0
  216. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/internal_gateway.py +0 -0
  217. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/internal_user_and_user_group.py +0 -0
  218. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/ip_lists.py +0 -0
  219. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/lldp.py +0 -0
  220. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/login_domain_username_password.py +0 -0
  221. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/match_expression.py +0 -0
  222. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/mini_reports.py +0 -0
  223. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/monitoring/logs.py +0 -0
  224. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/monitoring/neighbor.py +0 -0
  225. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/monitoring/routing_monitoring.py +0 -0
  226. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/monitoring/vpn_sa.py +0 -0
  227. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/monitoring_status.py +0 -0
  228. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/netlink.py +0 -0
  229. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/network.py +0 -0
  230. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/policy_rule_source_vpn.py +0 -0
  231. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/profiles.py +0 -0
  232. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/protocol_agent.py +0 -0
  233. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/rule_cleanup.py +0 -0
  234. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/run_example.sh +0 -0
  235. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/servers.py +0 -0
  236. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/service.py +0 -0
  237. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/situations.py +0 -0
  238. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/ssl_vpn_portal.py +0 -0
  239. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/ssm_elements.py +0 -0
  240. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/sub_policies.py +0 -0
  241. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/switch_interface.py +0 -0
  242. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/sync_admins.py +0 -0
  243. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/sync_admins_config.json +0 -0
  244. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/system_properties.py +0 -0
  245. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/tasks.py +0 -0
  246. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/template_policies.py +0 -0
  247. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/test-parallel-multiprocessing.py +0 -0
  248. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/upcoming_event.py +0 -0
  249. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/update_server_profile.py +0 -0
  250. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/url_list_application.py +0 -0
  251. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/user_id_service.py +0 -0
  252. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/virtual_engines.py +0 -0
  253. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/vpn_profile.py +0 -0
  254. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/vpn_site.py +0 -0
  255. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/examples/vpn_to_external_peer.py +0 -0
  256. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/known_issues +0 -0
  257. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/policy/__init__.py +0 -0
  258. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/routing/__init__.py +0 -0
  259. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/tests/.gitignore +0 -0
  260. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/tests/__init__.py +0 -0
  261. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc/vpn/__init__.py +0 -0
  262. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/.coveragerc +0 -0
  263. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/LICENSE +0 -0
  264. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/README.rst +0 -0
  265. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/__init__.py +0 -0
  266. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/models/__init__.py +0 -0
  267. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/models/constants.py +0 -0
  268. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/monitors/__init__.py +0 -0
  269. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/smc_monitoring/pubsub/__init__.py +0 -0
  270. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/tests/__init__.py +0 -0
  271. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/tests/test_filters.py +0 -0
  272. {fp_ngfw_smc_python-1.0.33 → fp_ngfw_smc_python-1.0.35}/smc-monitoring/tests/test_queries.py +0 -0
@@ -0,0 +1,29 @@
1
+ # remove all intellij conf giles
2
+ .DS_store
3
+ .idea*/*
4
+ *.pyc
5
+ build/*
6
+ dist/*
7
+ /.env
8
+ fp_NGFW_SMC_python.egg-info/*
9
+ smc-monitoring/build/*
10
+ smc-monitoring/dist/*
11
+ smc-monitoring/fp_NGFW_SMC_python_monitoring.egg-info/*
12
+ venv*
13
+ **/**/smc_info.py
14
+ .terraform*
15
+ *.tfstate*
16
+ *tf.log
17
+ terraform/**/*.pem
18
+ *.tfvars*
19
+ qa/results/*
20
+ qa/smc-test-module/terraform/**/**/*.backup
21
+ qa/smc-test-module/terraform/**/**/*.tfstate*
22
+ qa/smc-test-module/terraform/**/**/*.hcl
23
+ qa/smc-test-module/terraform/**/*.output
24
+ qa/smc-test-module/terraform/**/smc_build
25
+ qa/smc-test-module/terraform/**/*input
26
+ qa/smc-test-module/docker/**/smc-python
27
+ **/**/progress_report_*_result
28
+ *.lock
29
+ LAST_SKILL_UPDATE
@@ -1 +1,2 @@
1
1
  include README.rst HISTORY.rst
2
+ include smc/py.typed
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fp-NGFW-SMC-python
3
- Version: 1.0.33
3
+ Version: 1.0.35
4
4
  Summary: Python based API to Forcepoint NGFW Management Center
5
5
  Author-email: Forcepoint <PSIRT@forcepoint.com>
6
6
  License: Apache License (2.0)
7
7
  Classifier: Development Status :: 5 - Production/Stable
8
8
  Classifier: Programming Language :: Python
9
9
  Classifier: Programming Language :: Python :: 3
10
- Requires-Python: >=3.5
10
+ Requires-Python: >=3.9
11
11
  Description-Content-Type: text/x-rst
12
12
  License-File: LICENSE
13
13
  Requires-Dist: requests>=2.31.0
@@ -52,7 +52,7 @@ Some of the functionality you get with the SMC Python API:
52
52
  Requirements
53
53
  ------------
54
54
 
55
- Python >= 3.5
55
+ Python >= 3.9
56
56
 
57
57
  Requests >= 2.32.0
58
58
  websocket-client >= 1.8.0
@@ -134,7 +134,7 @@ Documentation
134
134
 
135
135
  `View Documentation on Read The Docs <http://fp-ngfw-smc-python.readthedocs.io/en/latest/?badge=latest>`__
136
136
 
137
- .. |Python version| image:: https://img.shields.io/badge/python-2.7%20%7C%203.5%20%7C%203.6-blue
137
+ .. |Python version| image:: https://img.shields.io/badge/python-3.9%2B-blue
138
138
  :target: https://pypi.python.org/pypi/fp-NGFW-SMC-python/
139
139
 
140
140
  Release History
@@ -35,7 +35,7 @@ Some of the functionality you get with the SMC Python API:
35
35
  Requirements
36
36
  ------------
37
37
 
38
- Python >= 3.5
38
+ Python >= 3.9
39
39
 
40
40
  Requests >= 2.32.0
41
41
  websocket-client >= 1.8.0
@@ -117,5 +117,5 @@ Documentation
117
117
 
118
118
  `View Documentation on Read The Docs <http://fp-ngfw-smc-python.readthedocs.io/en/latest/?badge=latest>`__
119
119
 
120
- .. |Python version| image:: https://img.shields.io/badge/python-2.7%20%7C%203.5%20%7C%203.6-blue
120
+ .. |Python version| image:: https://img.shields.io/badge/python-3.9%2B-blue
121
121
  :target: https://pypi.python.org/pypi/fp-NGFW-SMC-python/
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fp-NGFW-SMC-python
3
- Version: 1.0.33
3
+ Version: 1.0.35
4
4
  Summary: Python based API to Forcepoint NGFW Management Center
5
5
  Author-email: Forcepoint <PSIRT@forcepoint.com>
6
6
  License: Apache License (2.0)
7
7
  Classifier: Development Status :: 5 - Production/Stable
8
8
  Classifier: Programming Language :: Python
9
9
  Classifier: Programming Language :: Python :: 3
10
- Requires-Python: >=3.5
10
+ Requires-Python: >=3.9
11
11
  Description-Content-Type: text/x-rst
12
12
  License-File: LICENSE
13
13
  Requires-Dist: requests>=2.31.0
@@ -52,7 +52,7 @@ Some of the functionality you get with the SMC Python API:
52
52
  Requirements
53
53
  ------------
54
54
 
55
- Python >= 3.5
55
+ Python >= 3.9
56
56
 
57
57
  Requests >= 2.32.0
58
58
  websocket-client >= 1.8.0
@@ -134,7 +134,7 @@ Documentation
134
134
 
135
135
  `View Documentation on Read The Docs <http://fp-ngfw-smc-python.readthedocs.io/en/latest/?badge=latest>`__
136
136
 
137
- .. |Python version| image:: https://img.shields.io/badge/python-2.7%20%7C%203.5%20%7C%203.6-blue
137
+ .. |Python version| image:: https://img.shields.io/badge/python-3.9%2B-blue
138
138
  :target: https://pypi.python.org/pypi/fp-NGFW-SMC-python/
139
139
 
140
140
  Release History
@@ -17,6 +17,7 @@ smc/__init__.py
17
17
  smc/__version__.py
18
18
  smc/compat.py
19
19
  smc/known_issues
20
+ smc/py.typed
20
21
  smc-monitoring/.coveragerc
21
22
  smc-monitoring/HISTORY.rst
22
23
  smc-monitoring/LICENSE
@@ -24,10 +25,10 @@ smc-monitoring/MANIFEST.in
24
25
  smc-monitoring/README.rst
25
26
  smc-monitoring/pyproject.toml
26
27
  smc-monitoring/requirements.txt
27
- smc-monitoring/test.py
28
28
  smc-monitoring/tox.ini
29
29
  smc-monitoring/smc_monitoring/__init__.py
30
30
  smc-monitoring/smc_monitoring/__version__.py
31
+ smc-monitoring/smc_monitoring/py.typed
31
32
  smc-monitoring/smc_monitoring/wsocket.py
32
33
  smc-monitoring/smc_monitoring/models/__init__.py
33
34
  smc-monitoring/smc_monitoring/models/calendar.py
@@ -51,7 +52,6 @@ smc-monitoring/smc_monitoring/monitors/vpns.py
51
52
  smc-monitoring/smc_monitoring/pubsub/__init__.py
52
53
  smc-monitoring/smc_monitoring/pubsub/subscribers.py
53
54
  smc-monitoring/tests/__init__.py
54
- smc-monitoring/tests/docker_smc_bootstrap.py
55
55
  smc-monitoring/tests/test_filters.py
56
56
  smc-monitoring/tests/test_queries.py
57
57
  smc/actions/__init__.py
@@ -184,6 +184,7 @@ smc/examples/lldp.py
184
184
  smc/examples/login_domain_username_password.py
185
185
  smc/examples/match_expression.py
186
186
  smc/examples/mini_reports.py
187
+ smc/examples/modem_interface.py
187
188
  smc/examples/monitoring_status.py
188
189
  smc/examples/netlink.py
189
190
  smc/examples/network.py
@@ -246,7 +247,17 @@ smc/routing/prefix_list.py
246
247
  smc/routing/route_map.py
247
248
  smc/tests/.gitignore
248
249
  smc/tests/__init__.py
249
- smc/tests/docker_smc_bootstrap.py
250
+ smc/tests/api_base_administration_bugs_test.py
251
+ smc/tests/api_web_debug_test.py
252
+ smc/tests/core_bugs_test.py
253
+ smc/tests/elements_bugs_test.py
254
+ smc/tests/engine_bugs_test.py
255
+ smc/tests/internal_gateway_test.py
256
+ smc/tests/monitoring_status_test.py
257
+ smc/tests/policy_vpn_bugs_test.py
258
+ smc/tests/smc_monitoring_entries_test.py
259
+ smc/tests/smc_request_headers_test.py
260
+ smc/tests/system_import_interactive_test.py
250
261
  smc/vpn/__init__.py
251
262
  smc/vpn/application_access_portal.py
252
263
  smc/vpn/elements.py
@@ -16,7 +16,7 @@ authors = [
16
16
  {name = "Forcepoint", email = "PSIRT@forcepoint.com"},
17
17
  ]
18
18
  description = "Python based API to Forcepoint NGFW Management Center"
19
- requires-python = ">=3.5"
19
+ requires-python = ">=3.9"
20
20
  license = {text = "Apache License (2.0)"}
21
21
  dynamic = ["version", "readme"]
22
22
  dependencies = [
@@ -47,3 +47,16 @@ namespaces = true # true by default
47
47
  [tool.setuptools]
48
48
  include-package-data = true
49
49
  license-files = ["LICENSE"]
50
+
51
+ [tool.setuptools.package-data]
52
+ smc = ["py.typed"]
53
+
54
+ [tool.mypy]
55
+ # Run from this directory: `mypy` (no argument). Enforced by `make check-tests`.
56
+ python_version = "3.9"
57
+ ignore_missing_imports = true
58
+ files = ["smc", "smc-monitoring/smc_monitoring"]
59
+ exclude = '^smc/(tests|examples|docs)/'
60
+ check_untyped_defs = true
61
+ disallow_untyped_defs = true
62
+ disallow_incomplete_defs = true
@@ -9,6 +9,9 @@
9
9
  # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
10
10
  # License for the specific language governing permissions and limitations
11
11
  # under the License.
12
+ from __future__ import annotations
13
+
14
+ from typing import Any, Optional, Union, Iterator
12
15
 
13
16
  import logging
14
17
 
@@ -17,11 +20,11 @@ from smc.base.util import import_submodules
17
20
 
18
21
  from .__version__ import __version__
19
22
 
20
- session_name = None
23
+ session_name: Optional[str] = None
21
24
  manager = SessionManager.create()
22
25
  session = manager.get_default_session()
23
26
 
24
- def get_session_by_user(user):
27
+ def get_session_by_user(user: Optional[str]) -> Any:
25
28
  """
26
29
  Get a session specifically by it's name
27
30
  or new Session if not found in manager
@@ -39,8 +42,8 @@ try: # Python 2.7+
39
42
  from logging import NullHandler
40
43
  except ImportError:
41
44
 
42
- class NullHandler(logging.Handler):
43
- def emit(self, record):
45
+ class NullHandler(logging.Handler): # type: ignore[no-redef] # py2 fallback
46
+ def emit(self, record: Any) -> None:
44
47
  pass
45
48
 
46
49
 
@@ -50,7 +53,7 @@ logging.getLogger(__name__).addHandler(NullHandler())
50
53
  LOG_FORMAT = "%(asctime)s - %(name)s - [%(levelname)s] - %(message)s"
51
54
 
52
55
 
53
- def set_stream_logger(log_level=logging.DEBUG, format_string=None, logger_name="smc"):
56
+ def set_stream_logger(log_level: int = logging.DEBUG, format_string: Optional[str] = None, logger_name: str = "smc") -> None:
54
57
  """
55
58
  Stream logger convenience function to log to console
56
59
 
@@ -75,7 +78,7 @@ def set_stream_logger(log_level=logging.DEBUG, format_string=None, logger_name="
75
78
  logger.addHandler(ch)
76
79
 
77
80
 
78
- def set_file_logger(path, log_level=logging.DEBUG, format_string=None, logger_name="smc"):
81
+ def set_file_logger(path: str, log_level: int = logging.DEBUG, format_string: Optional[str] = None, logger_name: str = "smc") -> None:
79
82
  """
80
83
  Convenience function to quickly configure any level of logging
81
84
  to a file.
@@ -103,7 +106,7 @@ def set_file_logger(path, log_level=logging.DEBUG, format_string=None, logger_na
103
106
  log.addHandler(ch)
104
107
 
105
108
 
106
- def _import_registry():
109
+ def _import_registry() -> None:
107
110
  # Load the modules to register needed classes
108
111
  # This should be extracted and made dynamic
109
112
  for pkg in (
@@ -10,4 +10,4 @@
10
10
  # License for the specific language governing permissions and limitations
11
11
  # under the License.
12
12
 
13
- __version__ = '1.0.33'
13
+ __version__ = '1.0.35'
@@ -13,6 +13,9 @@
13
13
  Access Control Lists are assigned to SMC admin accounts to grant limited
14
14
  access permissions to either Engines, Policies or Domains.
15
15
  """
16
+ from __future__ import annotations
17
+
18
+ from typing import Any, Iterator, Optional, Union, cast
16
19
 
17
20
  from smc.base.model import Element, ElementCreator
18
21
  from smc.base.structs import NestedDict
@@ -36,7 +39,7 @@ class AccessControlList(Element):
36
39
  typeof = "access_control_list"
37
40
 
38
41
  @classmethod
39
- def create(cls, name, granted_element=None):
42
+ def create(cls, name: str, granted_element: Optional[Any] = None) -> "AccessControlList":
40
43
  """
41
44
  Create a new ACL
42
45
 
@@ -54,7 +57,7 @@ class AccessControlList(Element):
54
57
  return ElementCreator(cls, json)
55
58
 
56
59
  @property
57
- def permissions(self):
60
+ def permissions(self) -> list[Any]:
58
61
  """
59
62
  Elements associated to this permission. Granted elements can be
60
63
  Engines, Policies or other Access Control Lists.
@@ -63,7 +66,7 @@ class AccessControlList(Element):
63
66
  """
64
67
  return [Element.from_href(e) for e in self.granted_element]
65
68
 
66
- def add_permission(self, elements):
69
+ def add_permission(self, elements: Any) -> None:
67
70
  """
68
71
  Add permission/s to this ACL. By default this change is committed
69
72
  after the method is called.
@@ -78,7 +81,7 @@ class AccessControlList(Element):
78
81
  self.data["granted_element"].extend(elements)
79
82
  self.update()
80
83
 
81
- def remove_permission(self, elements):
84
+ def remove_permission(self, elements: Any) -> None:
82
85
  """
83
86
  Remove permission/s to this ACL. Change is committed at end of
84
87
  method call.
@@ -112,7 +115,12 @@ class Permission(NestedDict):
112
115
  .. seealso:: :py:mod:`smc.elements.user`
113
116
  """
114
117
 
115
- def __init__(self, granted_elements=None, role_ref=None, granted_domain_ref=None):
118
+ def __init__(
119
+ self,
120
+ granted_elements: Optional[Any] = None,
121
+ role_ref: Optional[Any] = None,
122
+ granted_domain_ref: Optional[Any] = None,
123
+ ) -> None:
116
124
  if granted_elements is None:
117
125
  granted_elements = []
118
126
  data = dict(
@@ -124,7 +132,7 @@ class Permission(NestedDict):
124
132
  super(Permission, self).__init__(data=data)
125
133
 
126
134
  @classmethod
127
- def create(cls, elements, role, domain=None):
135
+ def create(cls, elements: Any, role: Any, domain: Optional[Any] = None) -> "Permission":
128
136
  """
129
137
  Create a permission.
130
138
 
@@ -141,27 +149,27 @@ class Permission(NestedDict):
141
149
  return Permission(granted_elements=elements, role_ref=role, granted_domain_ref=domain)
142
150
 
143
151
  @property
144
- def granted_elements(self):
152
+ def granted_elements(self) -> list[Any]:
145
153
  """
146
154
  List of elements this permission has rights to. Elements will be of type
147
155
  Engine, Policy or ACLs
148
156
 
149
157
  :rtype: list(Element)
150
158
  """
151
- return [Element.from_href(element) for element in self.get("granted_elements")]
159
+ return [Element.from_href(element) for element in cast(list, self.get("granted_elements"))]
152
160
 
153
161
  @property
154
- def role(self):
162
+ def role(self) -> Any:
155
163
  """
156
164
  Specific Role assigned to this permission. A role is what allows read/write
157
165
  access to specific operations on the granted elements
158
166
 
159
167
  :rtype: Role
160
168
  """
161
- return Element.from_href(self.get("role_ref"))
169
+ return Element.from_href(cast(str, self.get("role_ref")))
162
170
 
163
171
  @property
164
- def domain(self):
172
+ def domain(self) -> Any:
165
173
  """
166
174
  Domain this permission applies to. Shared Domain if unspecified.
167
175
 
@@ -169,7 +177,7 @@ class Permission(NestedDict):
169
177
  """
170
178
  return Element.from_href(self.get("granted_domain_ref", "Shared Domain"))
171
179
 
172
- def __repr__(self):
180
+ def __repr__(self) -> str:
173
181
  return "Permission(elements={}, role={}, domain={})".format(
174
182
  self.granted_elements, self.role, self.domain
175
183
  )
@@ -180,11 +188,16 @@ class GrantedElementPermissions(NestedDict):
180
188
  The Granted Element permissions container.
181
189
  """
182
190
 
183
- def __init__(self, data):
191
+ def __init__(self, data: Any) -> None:
184
192
  super(GrantedElementPermissions, self).__init__(data=data)
185
193
 
186
194
  @classmethod
187
- def create(cls, cluster_ref=None, granted_access_control_list=[], role_containers=[]):
195
+ def create(
196
+ cls,
197
+ cluster_ref: Optional[Any] = None,
198
+ granted_access_control_list: list[Any] = [],
199
+ role_containers: list[Any] = [],
200
+ ) -> "GrantedElementPermissions":
188
201
  """
189
202
  :param str cluster_ref: The associated cluster with granted permission.
190
203
  :param list(str) granted_access_control_list: Granted Access Control Lists.
@@ -200,24 +213,24 @@ class GrantedElementPermissions(NestedDict):
200
213
  return cls(json)
201
214
 
202
215
  @property
203
- def cluster_ref(self):
216
+ def cluster_ref(self) -> Optional[str]:
204
217
  """
205
218
  The associated cluster with granted permission.
206
219
  """
207
220
  return self.data.get("cluster_ref")
208
221
 
209
- def granted_access_control_list(self):
222
+ def granted_access_control_list(self) -> Any:
210
223
  """
211
224
  Granted Access Control Lists.
212
225
  """
213
226
  return self.data.get("granted_access_control_list")
214
227
 
215
228
  @property
216
- def role_containers(self):
229
+ def role_containers(self) -> list[Any]:
217
230
  """
218
231
  Granted Role containers.
219
232
  """
220
- return [AdminRoleContainer(container) for container in self.data.get("role_containers")]
233
+ return [AdminRoleContainer(container) for container in cast(list, self.data.get("role_containers"))]
221
234
 
222
235
 
223
236
  class AdminRoleContainer(NestedDict):
@@ -225,11 +238,16 @@ class AdminRoleContainer(NestedDict):
225
238
  Represents a permission for a Granted Element: Role <-> Administrator <-> Granted Domain
226
239
  """
227
240
 
228
- def __init__(self, data):
241
+ def __init__(self, data: Any) -> None:
229
242
  super(AdminRoleContainer, self).__init__(data=data)
230
243
 
231
244
  @classmethod
232
- def create(cls, roles=[], admin=None, granted_domain=None):
245
+ def create(
246
+ cls,
247
+ roles: list[Any] = [],
248
+ admin: Optional[Any] = None,
249
+ granted_domain: Optional[Any] = None,
250
+ ) -> "AdminRoleContainer":
233
251
  """
234
252
  Represents a permission for a Granted Element: Role <-> Administrator <-> Granted Domain.
235
253
  :param Role roles: The dedicated Administrative Roles for access rights.
@@ -243,21 +261,21 @@ class AdminRoleContainer(NestedDict):
243
261
  return cls(json)
244
262
 
245
263
  @property
246
- def roles(self):
264
+ def roles(self) -> Any:
247
265
  """
248
266
  The dedicated Administrative Roles for access rights.
249
267
  """
250
268
  return self.data.get("roles")
251
269
 
252
270
  @property
253
- def admin_ref(self):
271
+ def admin_ref(self) -> Optional[str]:
254
272
  """
255
273
  The dedicated Administrator.
256
274
  """
257
275
  return self.data.get("admin_ref")
258
276
 
259
277
  @property
260
- def granted_domain_ref(self):
278
+ def granted_domain_ref(self) -> Optional[str]:
261
279
  """
262
280
  The dedicated Administrative Domain.
263
281
  """
@@ -12,6 +12,9 @@
12
12
  """
13
13
  Module representing certificate authority in SMC
14
14
  """
15
+ from __future__ import annotations
16
+
17
+ from typing import Any, Optional, Union, Iterator
15
18
 
16
19
  from smc.administration.tasks import TaskOperationPoller
17
20
  from smc.api.exceptions import TaskRunFailed
@@ -28,14 +31,14 @@ class CertificateAuthority(Element):
28
31
  typeof = 'certificate_authority'
29
32
 
30
33
  @property
31
- def certificate_state(self):
34
+ def certificate_state(self) -> Optional[str]:
32
35
  """
33
36
  represents the state of the certificate authority.
34
37
  :rtype: str
35
38
  """
36
39
  return self.data.get("certificate_state")
37
40
 
38
- def un_trust(self):
41
+ def un_trust(self) -> Any:
39
42
  task = self.make_request(
40
43
  TaskRunFailed, method="update", resource="untrust"
41
44
  )
@@ -43,7 +46,7 @@ class CertificateAuthority(Element):
43
46
  task=task, wait_for_finish=True
44
47
  )
45
48
 
46
- def export_certificate(self, filename=None):
49
+ def export_certificate(self, filename: Optional[str] = None) -> Optional[str]:
47
50
  """
48
51
  Export the certificate for the given Certificate Authority.
49
52
  :raises CertificateExportError: error exporting certificate
@@ -55,21 +58,21 @@ class CertificateAuthority(Element):
55
58
 
56
59
  if filename is not None:
57
60
  save_to_file(filename, result.content)
58
- return
61
+ return # type: ignore[return-value] # implicit None
59
62
 
60
63
  return result.content
61
64
 
62
- def duplicate(self, name):
65
+ def duplicate(self, name: Any) -> Any:
63
66
  raise NotImplementedError(f"This method is not supported for {self.__class__.__name__}")
64
67
 
65
- def export(self, name):
68
+ def export(self, name: Any) -> Any: # type: ignore[override] # unsupported, signature differs
66
69
  raise NotImplementedError(f"This method is not supported for {self.__class__.__name__}")
67
70
 
68
- def add_category(self, name):
71
+ def add_category(self, name: Any) -> Any:
69
72
  raise NotImplementedError(f"This method is not supported for {self.__class__.__name__}")
70
73
 
71
- def categories(self, name):
74
+ def categories(self, name: Any) -> Any: # type: ignore[override] # unsupported, overrides a property
72
75
  raise NotImplementedError(f"This method is not supported for {self.__class__.__name__}")
73
76
 
74
- def rename(self, name):
77
+ def rename(self, name: Any) -> Any:
75
78
  raise NotImplementedError(f"This method is not supported for {self.__class__.__name__}")