oci 2.136.0__py3-none-any.whl → 2.137.1__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 (632) hide show
  1. oci/_vendor/jwt/__init__.py +65 -26
  2. oci/_vendor/jwt/algorithms.py +404 -130
  3. oci/_vendor/jwt/api_jwk.py +108 -0
  4. oci/_vendor/jwt/api_jws.py +153 -106
  5. oci/_vendor/jwt/api_jwt.py +146 -137
  6. oci/_vendor/jwt/exceptions.py +13 -6
  7. oci/_vendor/jwt/help.py +16 -15
  8. oci/_vendor/jwt/jwks_client.py +64 -0
  9. oci/_vendor/jwt/utils.py +101 -54
  10. oci/access_governance_cp/access_governance_cp_client.py +8 -8
  11. oci/adm/application_dependency_management_client.py +36 -36
  12. oci/ai_anomaly_detection/anomaly_detection_client.py +36 -36
  13. oci/ai_document/ai_service_document_client.py +26 -26
  14. oci/ai_language/ai_service_language_client.py +44 -44
  15. oci/ai_speech/ai_service_speech_client.py +19 -19
  16. oci/ai_vision/ai_service_vision_client.py +25 -25
  17. oci/analytics/analytics_client.py +24 -24
  18. oci/announcements_service/announcement_client.py +5 -5
  19. oci/announcements_service/announcement_subscription_client.py +9 -9
  20. oci/announcements_service/announcements_preferences_client.py +4 -4
  21. oci/announcements_service/service_client.py +1 -1
  22. oci/apigateway/api_gateway_client.py +21 -21
  23. oci/apigateway/deployment_client.py +6 -6
  24. oci/apigateway/gateway_client.py +6 -6
  25. oci/apigateway/subscribers_client.py +6 -6
  26. oci/apigateway/usage_plans_client.py +6 -6
  27. oci/apigateway/work_requests_client.py +5 -5
  28. oci/apm_config/config_client.py +9 -9
  29. oci/apm_control_plane/apm_domain_client.py +14 -14
  30. oci/apm_synthetics/apm_synthetic_client.py +28 -28
  31. oci/apm_traces/attributes_client.py +8 -8
  32. oci/apm_traces/query_client.py +2 -2
  33. oci/apm_traces/trace_client.py +4 -4
  34. oci/appmgmt_control/appmgmt_control_client.py +8 -8
  35. oci/artifacts/artifacts_client.py +32 -32
  36. oci/audit/audit_client.py +3 -3
  37. oci/auth/security_token_container.py +1 -1
  38. oci/autoscaling/auto_scaling_client.py +11 -11
  39. oci/bastion/bastion_client.py +15 -15
  40. oci/bds/bds_client.py +72 -72
  41. oci/blockchain/blockchain_platform_client.py +27 -27
  42. oci/budget/budget_client.py +10 -10
  43. oci/capacity_management/capacity_management_client.py +32 -32
  44. oci/certificates/certificates_client.py +5 -5
  45. oci/certificates_management/certificates_management_client.py +32 -32
  46. oci/cims/incident_client.py +8 -8
  47. oci/cloud_bridge/common_client.py +5 -5
  48. oci/cloud_bridge/discovery_client.py +160 -14
  49. oci/cloud_bridge/inventory_client.py +20 -20
  50. oci/cloud_bridge/models/__init__.py +48 -2
  51. oci/cloud_bridge/models/asset.py +19 -3
  52. oci/cloud_bridge/models/asset_source.py +11 -3
  53. oci/cloud_bridge/models/asset_source_credentials.py +17 -7
  54. oci/cloud_bridge/models/asset_source_summary.py +11 -3
  55. oci/cloud_bridge/models/asset_summary.py +11 -3
  56. oci/cloud_bridge/models/aws_asset_source.py +359 -0
  57. oci/cloud_bridge/models/aws_asset_source_summary.py +205 -0
  58. oci/cloud_bridge/models/aws_ebs_asset.py +170 -0
  59. oci/cloud_bridge/models/aws_ebs_properties.py +382 -0
  60. oci/cloud_bridge/models/aws_ec2_asset.py +278 -0
  61. oci/cloud_bridge/models/aws_ec2_properties.py +1056 -0
  62. oci/cloud_bridge/models/create_asset_details.py +19 -3
  63. oci/cloud_bridge/models/create_asset_source_details.py +11 -3
  64. oci/cloud_bridge/models/create_aws_asset_source_details.py +323 -0
  65. oci/cloud_bridge/models/create_aws_ebs_asset_details.py +134 -0
  66. oci/cloud_bridge/models/create_aws_ec2_asset_details.py +242 -0
  67. oci/cloud_bridge/models/create_vm_ware_asset_source_details.py +2 -2
  68. oci/cloud_bridge/models/create_vmware_vm_asset_details.py +5 -5
  69. oci/cloud_bridge/models/group_identifier.py +103 -0
  70. oci/cloud_bridge/models/import_inventory_via_assets_details.py +13 -5
  71. oci/cloud_bridge/models/instance_network_interface.py +498 -0
  72. oci/cloud_bridge/models/instance_network_interface_association.py +196 -0
  73. oci/cloud_bridge/models/instance_network_interface_attachment.py +227 -0
  74. oci/cloud_bridge/models/instance_private_ip_address.py +161 -0
  75. oci/cloud_bridge/models/instance_state.py +103 -0
  76. oci/cloud_bridge/models/monthly_cost_summary.py +103 -0
  77. oci/cloud_bridge/models/placement.py +289 -0
  78. oci/cloud_bridge/models/supported_cloud_region_collection.py +72 -0
  79. oci/cloud_bridge/models/supported_cloud_region_summary.py +244 -0
  80. oci/cloud_bridge/models/tag.py +103 -0
  81. oci/cloud_bridge/models/update_asset_details.py +19 -3
  82. oci/cloud_bridge/models/update_asset_source_details.py +47 -4
  83. oci/cloud_bridge/models/update_aws_asset_source_details.py +240 -0
  84. oci/cloud_bridge/models/update_aws_ebs_asset_details.py +106 -0
  85. oci/cloud_bridge/models/update_aws_ec2_asset_details.py +214 -0
  86. oci/cloud_bridge/models/update_vm_asset_details.py +1 -1
  87. oci/cloud_bridge/models/update_vm_ware_asset_source_details.py +11 -39
  88. oci/cloud_bridge/models/update_vmware_vm_asset_details.py +1 -1
  89. oci/cloud_bridge/models/vm_asset.py +3 -3
  90. oci/cloud_bridge/models/vm_ware_asset_source.py +2 -2
  91. oci/cloud_bridge/models/vm_ware_asset_source_summary.py +2 -2
  92. oci/cloud_bridge/models/vmware_vm_asset.py +5 -5
  93. oci/cloud_bridge/models/volume_attachment.py +196 -0
  94. oci/cloud_bridge/models/work_request.py +15 -3
  95. oci/cloud_bridge/models/work_request_summary.py +15 -3
  96. oci/cloud_bridge/ocb_agent_svc_client.py +22 -138
  97. oci/cloud_bridge/ocb_agent_svc_client_composite_operations.py +0 -48
  98. oci/cloud_guard/cloud_guard_client.py +155 -155
  99. oci/cloud_migrations/migration_client.py +43 -43
  100. oci/cluster_placement_groups/cluster_placement_groups_cp_client.py +13 -13
  101. oci/compute_cloud_at_customer/compute_cloud_at_customer_client.py +12 -12
  102. oci/compute_instance_agent/compute_instance_agent_client.py +6 -6
  103. oci/compute_instance_agent/plugin_client.py +2 -2
  104. oci/compute_instance_agent/pluginconfig_client.py +1 -1
  105. oci/container_engine/container_engine_client.py +88 -88
  106. oci/container_engine/models/install_addon_details.py +33 -2
  107. oci/container_instances/container_instance_client.py +18 -18
  108. oci/core/blockstorage_client.py +60 -60
  109. oci/core/compute_client.py +102 -102
  110. oci/core/compute_management_client.py +32 -32
  111. oci/core/models/__init__.py +2 -0
  112. oci/core/models/virtual_circuit.py +29 -2
  113. oci/core/models/virtual_circuit_redundancy_metadata.py +202 -0
  114. oci/core/virtual_network_client.py +247 -247
  115. oci/dashboard_service/dashboard_client.py +6 -6
  116. oci/dashboard_service/dashboard_group_client.py +6 -6
  117. oci/data_catalog/data_catalog_client.py +149 -149
  118. oci/data_flow/data_flow_client.py +42 -42
  119. oci/data_integration/data_integration_client.py +163 -163
  120. oci/data_labeling_service/data_labeling_management_client.py +17 -17
  121. oci/data_labeling_service_dataplane/data_labeling_client.py +15 -15
  122. oci/data_safe/data_safe_client.py +292 -292
  123. oci/data_science/data_science_client.py +217 -93
  124. oci/data_science/data_science_client_composite_operations.py +41 -0
  125. oci/data_science/models/__init__.py +8 -0
  126. oci/data_science/models/backup_operation_details.py +154 -0
  127. oci/data_science/models/backup_setting.py +158 -0
  128. oci/data_science/models/create_model_details.py +56 -2
  129. oci/data_science/models/model.py +141 -2
  130. oci/data_science/models/model_summary.py +31 -0
  131. oci/data_science/models/retention_operation_details.py +267 -0
  132. oci/data_science/models/retention_setting.py +158 -0
  133. oci/data_science/models/update_model_details.py +56 -2
  134. oci/data_science/models/work_request.py +7 -3
  135. oci/data_science/models/work_request_summary.py +7 -3
  136. oci/database/database_client.py +396 -396
  137. oci/database/models/__init__.py +14 -0
  138. oci/database/models/autonomous_database.py +58 -0
  139. oci/database/models/autonomous_database_encryption_key_details.py +133 -0
  140. oci/database/models/autonomous_database_encryption_key_history_entry.py +99 -0
  141. oci/database/models/autonomous_database_summary.py +58 -0
  142. oci/database/models/aws_key_details.py +175 -0
  143. oci/database/models/azure_key_details.py +113 -0
  144. oci/database/models/create_autonomous_database_base.py +27 -0
  145. oci/database/models/create_autonomous_database_clone_details.py +7 -0
  146. oci/database/models/create_autonomous_database_details.py +7 -0
  147. oci/database/models/create_autonomous_database_from_backup_details.py +7 -0
  148. oci/database/models/create_autonomous_database_from_backup_timestamp_details.py +7 -0
  149. oci/database/models/create_cross_region_autonomous_database_data_guard_details.py +7 -0
  150. oci/database/models/create_cross_region_disaster_recovery_details.py +7 -0
  151. oci/database/models/create_cross_tenancy_disaster_recovery_details.py +7 -0
  152. oci/database/models/create_refreshable_autonomous_database_clone_details.py +7 -0
  153. oci/database/models/oci_key_details.py +119 -0
  154. oci/database/models/okv_key_details.py +206 -0
  155. oci/database/models/oracle_managed_key_details.py +51 -0
  156. oci/database/models/undelete_autonomous_database_details.py +7 -0
  157. oci/database/models/update_autonomous_database_details.py +29 -2
  158. oci/database_management/db_management_client.py +211 -211
  159. oci/database_management/diagnosability_client.py +4 -4
  160. oci/database_management/managed_my_sql_databases_client.py +7 -7
  161. oci/database_management/perfhub_client.py +1 -1
  162. oci/database_management/sql_tuning_client.py +17 -17
  163. oci/database_migration/database_migration_client.py +42 -42
  164. oci/database_tools/database_tools_client.py +23 -23
  165. oci/delegate_access_control/delegate_access_control_client.py +26 -26
  166. oci/delegate_access_control/work_request_client.py +4 -4
  167. oci/demand_signal/occ_demand_signal_client.py +7 -7
  168. oci/desktops/desktop_service_client.py +21 -21
  169. oci/devops/devops_client.py +141 -141
  170. oci/disaster_recovery/disaster_recovery_client.py +29 -29
  171. oci/dns/dns_client.py +54 -54
  172. oci/dts/appliance_export_job_client.py +6 -6
  173. oci/dts/shipping_vendors_client.py +1 -1
  174. oci/dts/transfer_appliance_client.py +8 -8
  175. oci/dts/transfer_appliance_entitlement_client.py +3 -3
  176. oci/dts/transfer_device_client.py +5 -5
  177. oci/dts/transfer_job_client.py +6 -6
  178. oci/dts/transfer_package_client.py +7 -7
  179. oci/em_warehouse/em_warehouse_client.py +13 -13
  180. oci/email/email_client.py +31 -31
  181. oci/email_data_plane/email_dp_client.py +1 -1
  182. oci/events/events_client.py +6 -6
  183. oci/file_storage/file_storage_client.py +3599 -1776
  184. oci/file_storage/file_storage_client_composite_operations.py +881 -223
  185. oci/file_storage/models/__init__.py +2 -0
  186. oci/file_storage/models/create_export_details.py +31 -0
  187. oci/file_storage/models/create_file_system_details.py +31 -0
  188. oci/file_storage/models/create_filesystem_snapshot_policy_details.py +33 -2
  189. oci/file_storage/models/create_ldap_bind_account_details.py +7 -0
  190. oci/file_storage/models/create_mount_target_details.py +31 -0
  191. oci/file_storage/models/create_outbound_connector_details.py +33 -2
  192. oci/file_storage/models/create_replication_details.py +33 -2
  193. oci/file_storage/models/create_snapshot_details.py +33 -2
  194. oci/file_storage/models/export.py +33 -2
  195. oci/file_storage/models/export_summary.py +33 -2
  196. oci/file_storage/models/file_system.py +31 -0
  197. oci/file_storage/models/file_system_summary.py +31 -0
  198. oci/file_storage/models/filesystem_snapshot_policy.py +31 -0
  199. oci/file_storage/models/filesystem_snapshot_policy_summary.py +31 -0
  200. oci/file_storage/models/ldap_bind_account.py +7 -0
  201. oci/file_storage/models/ldap_bind_account_summary.py +7 -0
  202. oci/file_storage/models/mount_target.py +31 -0
  203. oci/file_storage/models/mount_target_summary.py +31 -0
  204. oci/file_storage/models/outbound_connector.py +31 -0
  205. oci/file_storage/models/outbound_connector_summary.py +31 -0
  206. oci/file_storage/models/replication.py +31 -0
  207. oci/file_storage/models/replication_summary.py +31 -0
  208. oci/file_storage/models/resource_lock.py +185 -0
  209. oci/file_storage/models/snapshot.py +31 -0
  210. oci/file_storage/models/snapshot_summary.py +31 -0
  211. oci/fleet_apps_management/fleet_apps_management_admin_client.py +2261 -294
  212. oci/fleet_apps_management/fleet_apps_management_admin_client_composite_operations.py +349 -1
  213. oci/fleet_apps_management/fleet_apps_management_client.py +141 -127
  214. oci/fleet_apps_management/fleet_apps_management_client_composite_operations.py +19 -19
  215. oci/fleet_apps_management/fleet_apps_management_maintenance_window_client.py +19 -15
  216. oci/fleet_apps_management/fleet_apps_management_maintenance_window_client_composite_operations.py +1 -1
  217. oci/fleet_apps_management/fleet_apps_management_operations_client.py +2058 -363
  218. oci/fleet_apps_management/fleet_apps_management_operations_client_composite_operations.py +173 -0
  219. oci/fleet_apps_management/fleet_apps_management_runbooks_client.py +1097 -260
  220. oci/fleet_apps_management/fleet_apps_management_runbooks_client_composite_operations.py +298 -0
  221. oci/fleet_apps_management/models/__init__.py +168 -0
  222. oci/fleet_apps_management/models/action_group.py +2 -2
  223. oci/fleet_apps_management/models/action_group_based_user_action_details.py +90 -0
  224. oci/fleet_apps_management/models/action_group_details.py +20 -16
  225. oci/fleet_apps_management/models/activity_resource_target.py +44 -7
  226. oci/fleet_apps_management/models/announcement_collection.py +1 -1
  227. oci/fleet_apps_management/models/announcement_summary.py +13 -13
  228. oci/fleet_apps_management/models/api_based_execution_details.py +1 -1
  229. oci/fleet_apps_management/models/artifact_details.py +109 -0
  230. oci/fleet_apps_management/models/associated_fleet_credential_details.py +1 -1
  231. oci/fleet_apps_management/models/associated_fleet_property_details.py +5 -5
  232. oci/fleet_apps_management/models/associated_fleet_resource_details.py +6 -6
  233. oci/fleet_apps_management/models/associated_local_task_details.py +64 -1
  234. oci/fleet_apps_management/models/associated_scheduler_definition.py +3 -3
  235. oci/fleet_apps_management/models/associated_shared_task_details.py +2 -1
  236. oci/fleet_apps_management/models/associations.py +32 -5
  237. oci/fleet_apps_management/models/check_resource_tagging_details.py +5 -5
  238. oci/fleet_apps_management/models/compliance_detail_policy.py +223 -0
  239. oci/fleet_apps_management/models/compliance_detail_product.py +134 -0
  240. oci/fleet_apps_management/models/compliance_detail_resource.py +196 -0
  241. oci/fleet_apps_management/models/compliance_detail_target.py +134 -0
  242. oci/fleet_apps_management/models/compliance_patch_detail.py +278 -0
  243. oci/fleet_apps_management/models/compliance_policy.py +439 -0
  244. oci/fleet_apps_management/models/compliance_policy_collection.py +72 -0
  245. oci/fleet_apps_management/models/compliance_policy_rule.py +618 -0
  246. oci/fleet_apps_management/models/compliance_policy_rule_collection.py +72 -0
  247. oci/fleet_apps_management/models/compliance_policy_rule_summary.py +585 -0
  248. oci/fleet_apps_management/models/compliance_policy_summary.py +406 -0
  249. oci/fleet_apps_management/models/compliance_record.py +457 -0
  250. oci/fleet_apps_management/models/compliance_record_aggregation.py +99 -0
  251. oci/fleet_apps_management/models/compliance_record_aggregation_collection.py +72 -0
  252. oci/fleet_apps_management/models/compliance_record_collection.py +72 -0
  253. oci/fleet_apps_management/models/compliance_record_dimension.py +143 -0
  254. oci/fleet_apps_management/models/compliance_record_summary.py +437 -0
  255. oci/fleet_apps_management/models/compliance_report.py +5 -5
  256. oci/fleet_apps_management/models/compliance_report_patch_detail.py +9 -9
  257. oci/fleet_apps_management/models/compliance_report_product.py +3 -3
  258. oci/fleet_apps_management/models/compliance_report_resource.py +8 -6
  259. oci/fleet_apps_management/models/compliance_report_target.py +7 -7
  260. oci/fleet_apps_management/models/component_properties.py +69 -9
  261. oci/fleet_apps_management/models/condition.py +12 -6
  262. oci/fleet_apps_management/models/config_association_details.py +109 -0
  263. oci/fleet_apps_management/models/config_category_details.py +133 -0
  264. oci/fleet_apps_management/models/confirm_targets_details.py +1 -1
  265. oci/fleet_apps_management/models/content_details.py +3 -3
  266. oci/fleet_apps_management/models/create_compliance_policy_rule_details.py +382 -0
  267. oci/fleet_apps_management/models/create_fleet_details.py +63 -16
  268. oci/fleet_apps_management/models/create_fleet_property_details.py +5 -5
  269. oci/fleet_apps_management/models/create_fleet_resource_details.py +1 -1
  270. oci/fleet_apps_management/models/create_maintenance_window_details.py +19 -11
  271. oci/fleet_apps_management/models/create_onboarding_details.py +8 -4
  272. oci/fleet_apps_management/models/create_patch_details.py +402 -0
  273. oci/fleet_apps_management/models/create_platform_configuration_details.py +169 -0
  274. oci/fleet_apps_management/models/create_property_details.py +6 -6
  275. oci/fleet_apps_management/models/create_runbook_details.py +441 -0
  276. oci/fleet_apps_management/models/create_task_record_details.py +235 -0
  277. oci/fleet_apps_management/models/credential_config_category_details.py +52 -0
  278. oci/fleet_apps_management/models/credential_details.py +3 -3
  279. oci/fleet_apps_management/models/credential_entity_specific_details.py +22 -6
  280. oci/{cloud_bridge/models/update_plugin_details.py → fleet_apps_management/models/dependent_patch_details.py} +21 -21
  281. oci/fleet_apps_management/models/details.py +67 -3
  282. oci/fleet_apps_management/models/discovered_target.py +6 -6
  283. oci/fleet_apps_management/models/enable_latest_policy_details.py +72 -0
  284. oci/fleet_apps_management/models/entity_execution_details.py +22 -16
  285. oci/fleet_apps_management/models/environment_config_category_details.py +53 -0
  286. oci/fleet_apps_management/models/execution.py +122 -21
  287. oci/fleet_apps_management/models/execution_collection.py +1 -1
  288. oci/fleet_apps_management/models/execution_details.py +1 -1
  289. oci/fleet_apps_management/models/execution_summary.py +123 -22
  290. oci/fleet_apps_management/models/execution_workflow_details.py +1 -1
  291. oci/fleet_apps_management/models/export_compliance_report_details.py +251 -0
  292. oci/fleet_apps_management/models/fleet.py +37 -19
  293. oci/fleet_apps_management/models/fleet_credential.py +1 -1
  294. oci/fleet_apps_management/models/fleet_credential_entity_specific_details.py +82 -0
  295. oci/fleet_apps_management/models/fleet_product_summary.py +3 -3
  296. oci/fleet_apps_management/models/fleet_property.py +11 -11
  297. oci/fleet_apps_management/models/fleet_property_collection.py +3 -3
  298. oci/fleet_apps_management/models/fleet_property_summary.py +6 -6
  299. oci/fleet_apps_management/models/fleet_resource.py +21 -15
  300. oci/fleet_apps_management/models/fleet_resource_collection.py +1 -1
  301. oci/fleet_apps_management/models/fleet_resource_summary.py +20 -14
  302. oci/fleet_apps_management/models/fleet_summary.py +15 -5
  303. oci/fleet_apps_management/models/fleet_target.py +98 -5
  304. oci/fleet_apps_management/models/fleet_target_summary.py +98 -5
  305. oci/fleet_apps_management/models/generate_compliance_report_details.py +5 -3
  306. oci/fleet_apps_management/models/generic_artifact.py +68 -0
  307. oci/fleet_apps_management/models/generic_artifact_details.py +78 -0
  308. oci/fleet_apps_management/models/group.py +11 -5
  309. oci/fleet_apps_management/models/input_argument.py +2 -2
  310. oci/fleet_apps_management/models/inventory_resource_summary.py +6 -6
  311. oci/fleet_apps_management/models/job_activity.py +57 -18
  312. oci/fleet_apps_management/models/key_encryption_credential_details.py +5 -5
  313. oci/fleet_apps_management/models/maintenance_window.py +19 -11
  314. oci/fleet_apps_management/models/maintenance_window_collection.py +1 -1
  315. oci/fleet_apps_management/models/maintenance_window_summary.py +18 -10
  316. oci/fleet_apps_management/models/manage_job_execution_details.py +68 -0
  317. oci/fleet_apps_management/models/manage_settings_details.py +72 -0
  318. oci/fleet_apps_management/models/managed_entity_aggregation.py +99 -0
  319. oci/fleet_apps_management/models/managed_entity_aggregation_collection.py +72 -0
  320. oci/fleet_apps_management/models/managed_entity_dimension.py +88 -0
  321. oci/fleet_apps_management/models/model_property.py +9 -9
  322. oci/fleet_apps_management/models/notification_preferences.py +7 -5
  323. oci/fleet_apps_management/models/object_storage_bucket_content_details.py +3 -3
  324. oci/fleet_apps_management/models/onboarding.py +70 -7
  325. oci/fleet_apps_management/models/onboarding_collection.py +3 -3
  326. oci/fleet_apps_management/models/onboarding_policy_collection.py +3 -3
  327. oci/fleet_apps_management/models/onboarding_policy_summary.py +1 -1
  328. oci/fleet_apps_management/models/onboarding_summary.py +69 -7
  329. oci/fleet_apps_management/models/outcome.py +7 -7
  330. oci/fleet_apps_management/models/output_variable_details.py +2 -2
  331. oci/fleet_apps_management/models/output_variable_input_argument.py +1 -1
  332. oci/fleet_apps_management/models/output_variable_mapping.py +4 -3
  333. oci/fleet_apps_management/models/patch.py +704 -0
  334. oci/fleet_apps_management/models/patch_collection.py +72 -0
  335. oci/fleet_apps_management/models/patch_level_selection_details.py +106 -0
  336. oci/fleet_apps_management/models/patch_name_selection_details.py +83 -0
  337. oci/fleet_apps_management/models/patch_product.py +103 -0
  338. oci/fleet_apps_management/models/patch_release_date_selection_details.py +83 -0
  339. oci/fleet_apps_management/models/patch_selection_details.py +117 -0
  340. oci/fleet_apps_management/models/patch_summary.py +625 -0
  341. oci/fleet_apps_management/models/patch_type.py +72 -0
  342. oci/fleet_apps_management/models/patch_type_config_category_details.py +52 -0
  343. oci/fleet_apps_management/models/pause_details.py +109 -0
  344. oci/fleet_apps_management/models/plain_text_credential_details.py +2 -2
  345. oci/fleet_apps_management/models/platform_configuration.py +529 -0
  346. oci/fleet_apps_management/models/platform_configuration_collection.py +72 -0
  347. oci/fleet_apps_management/models/platform_configuration_summary.py +485 -0
  348. oci/fleet_apps_management/models/platform_specific_artifact.py +162 -0
  349. oci/fleet_apps_management/models/platform_specific_artifact_details.py +82 -0
  350. oci/fleet_apps_management/models/preferences.py +3 -3
  351. oci/fleet_apps_management/models/product_config_category_details.py +215 -0
  352. oci/fleet_apps_management/models/product_stack_as_product_sub_category_details.py +182 -0
  353. oci/fleet_apps_management/models/product_stack_config_category_details.py +112 -0
  354. oci/fleet_apps_management/models/product_stack_generic_sub_category_details.py +51 -0
  355. oci/fleet_apps_management/models/product_stack_sub_category_details.py +109 -0
  356. oci/fleet_apps_management/models/product_version_details.py +105 -0
  357. oci/fleet_apps_management/models/property_collection.py +3 -3
  358. oci/fleet_apps_management/models/property_summary.py +8 -8
  359. oci/fleet_apps_management/models/publish_runbook_details.py +72 -0
  360. oci/fleet_apps_management/models/request_resource_validation_details.py +5 -5
  361. oci/fleet_apps_management/models/request_target_discovery_details.py +5 -5
  362. oci/fleet_apps_management/models/resource_collection.py +72 -0
  363. oci/fleet_apps_management/models/resource_credential_entity_specific_details.py +82 -0
  364. oci/fleet_apps_management/models/resource_summary.py +347 -0
  365. oci/fleet_apps_management/models/resource_tag_check_details.py +3 -3
  366. oci/fleet_apps_management/models/resource_tag_enablement_info.py +3 -3
  367. oci/fleet_apps_management/models/rollback_workflow_details.py +119 -0
  368. oci/fleet_apps_management/models/rule.py +15 -7
  369. oci/fleet_apps_management/models/runbook.py +28 -9
  370. oci/fleet_apps_management/models/runbook_collection.py +1 -1
  371. oci/fleet_apps_management/models/runbook_summary.py +6 -4
  372. oci/fleet_apps_management/models/scheduler_definition.py +16 -16
  373. oci/fleet_apps_management/models/scheduler_job.py +24 -20
  374. oci/fleet_apps_management/models/scheduler_job_aggregation.py +99 -0
  375. oci/fleet_apps_management/models/scheduler_job_aggregation_collection.py +72 -0
  376. oci/fleet_apps_management/models/scheduler_job_collection.py +1 -1
  377. oci/fleet_apps_management/models/scheduler_job_dimension.py +72 -0
  378. oci/fleet_apps_management/models/scheduler_job_summary.py +20 -16
  379. oci/fleet_apps_management/models/script_based_execution_details.py +38 -5
  380. oci/fleet_apps_management/models/selection_criteria.py +6 -3
  381. oci/fleet_apps_management/models/set_default_runbook_details.py +72 -0
  382. oci/fleet_apps_management/models/step_based_user_action_details.py +183 -0
  383. oci/fleet_apps_management/models/step_collection.py +72 -0
  384. oci/fleet_apps_management/models/step_summary.py +378 -0
  385. oci/fleet_apps_management/models/target_credential_entity_specific_details.py +6 -6
  386. oci/fleet_apps_management/models/target_resource.py +1 -1
  387. oci/fleet_apps_management/models/task_notification_preferences.py +134 -0
  388. oci/fleet_apps_management/models/task_record.py +1 -1
  389. oci/fleet_apps_management/models/task_variable.py +2 -1
  390. oci/fleet_apps_management/models/time_based_pause_details.py +82 -0
  391. oci/fleet_apps_management/models/update_compliance_policy_rule_details.py +283 -0
  392. oci/fleet_apps_management/models/update_fleet_details.py +4 -2
  393. oci/fleet_apps_management/models/update_fleet_property_details.py +3 -3
  394. oci/fleet_apps_management/models/update_fleet_resource_details.py +1 -1
  395. oci/fleet_apps_management/models/update_maintenance_window_details.py +18 -10
  396. oci/fleet_apps_management/models/update_onboarding_details.py +103 -0
  397. oci/fleet_apps_management/models/update_patch_details.py +369 -0
  398. oci/fleet_apps_management/models/update_platform_configuration_details.py +138 -0
  399. oci/fleet_apps_management/models/update_property_details.py +6 -6
  400. oci/fleet_apps_management/models/update_runbook_details.py +410 -0
  401. oci/fleet_apps_management/models/update_scheduler_job_details.py +3 -3
  402. oci/fleet_apps_management/models/update_task_record_details.py +204 -0
  403. oci/fleet_apps_management/models/user_action_based_pause_details.py +51 -0
  404. oci/fleet_apps_management/models/user_action_details.py +157 -0
  405. oci/fleet_apps_management/models/variable.py +103 -0
  406. oci/fleet_apps_management/models/work_request.py +67 -3
  407. oci/fleet_apps_management/models/work_request_summary.py +67 -3
  408. oci/fleet_apps_management/models/workflow_group.py +2 -2
  409. oci/fleet_apps_management/models/workflow_group_component.py +4 -4
  410. oci/fleet_software_update/fleet_software_update_client.py +46 -46
  411. oci/functions/functions_invoke_client.py +1 -1
  412. oci/functions/functions_management_client.py +16 -16
  413. oci/fusion_apps/fusion_applications_client.py +41 -41
  414. oci/generative_ai/generative_ai_client.py +22 -22
  415. oci/generative_ai_agent/generative_ai_agent_client.py +33 -33
  416. oci/generative_ai_agent_runtime/generative_ai_agent_runtime_client.py +5 -5
  417. oci/generative_ai_inference/generative_ai_inference_client.py +4 -4
  418. oci/generic_artifacts_content/generic_artifacts_content_client.py +3 -3
  419. oci/globally_distributed_database/sharded_database_service_client.py +30 -30
  420. oci/golden_gate/golden_gate_client.py +69 -69
  421. oci/governance_rules_control_plane/governance_rule_client.py +15 -15
  422. oci/governance_rules_control_plane/work_request_client.py +5 -5
  423. oci/healthchecks/health_checks_client.py +17 -17
  424. oci/identity/identity_client.py +145 -145
  425. oci/identity_data_plane/dataplane_client.py +2 -2
  426. oci/identity_domains/identity_domains_client.py +307 -307
  427. oci/identity_domains/models/auth_token.py +51 -0
  428. oci/identity_domains/models/customer_secret_key.py +45 -0
  429. oci/identity_domains/models/o_auth2_client_credential.py +49 -0
  430. oci/identity_domains/models/smtp_credential.py +47 -0
  431. oci/integration/integration_instance_client.py +19 -19
  432. oci/jms/java_management_service_client.py +75 -75
  433. oci/jms_java_downloads/java_download_client.py +25 -25
  434. oci/key_management/ekm_client.py +5 -5
  435. oci/key_management/kms_crypto_client.py +6 -6
  436. oci/key_management/kms_hsm_cluster_client.py +12 -12
  437. oci/key_management/kms_management_client.py +21 -21
  438. oci/key_management/kms_vault_client.py +14 -14
  439. oci/license_manager/license_manager_client.py +18 -18
  440. oci/limits/limits_client.py +4 -4
  441. oci/limits/quotas_client.py +7 -7
  442. oci/load_balancer/load_balancer_client.py +61 -61
  443. oci/load_balancer/models/create_listener_details.py +4 -6
  444. oci/load_balancer/models/listener.py +4 -6
  445. oci/load_balancer/models/listener_details.py +4 -6
  446. oci/load_balancer/models/update_listener_details.py +4 -6
  447. oci/lockbox/lockbox_client.py +24 -24
  448. oci/log_analytics/log_analytics_client.py +193 -193
  449. oci/logging/logging_management_client.py +30 -30
  450. oci/loggingingestion/logging_client.py +1 -1
  451. oci/loggingsearch/log_search_client.py +1 -1
  452. oci/management_agent/management_agent_client.py +28 -28
  453. oci/management_dashboard/dashx_apis_client.py +14 -14
  454. oci/marketplace/account_client.py +2 -2
  455. oci/marketplace/marketplace_client.py +30 -30
  456. oci/marketplace_private_offer/attachment_client.py +5 -5
  457. oci/marketplace_private_offer/offer_client.py +6 -6
  458. oci/marketplace_publisher/attachment_client.py +5 -5
  459. oci/marketplace_publisher/marketplace_publisher_client.py +71 -71
  460. oci/marketplace_publisher/offer_client.py +6 -6
  461. oci/media_services/media_services_client.py +60 -60
  462. oci/media_services/media_stream_client.py +2 -2
  463. oci/monitoring/monitoring_client.py +18 -18
  464. oci/mysql/channels_client.py +7 -7
  465. oci/mysql/db_backups_client.py +7 -7
  466. oci/mysql/db_system_client.py +17 -17
  467. oci/mysql/mysqlaas_client.py +7 -7
  468. oci/mysql/replicas_client.py +5 -5
  469. oci/mysql/work_requests_client.py +4 -4
  470. oci/network_firewall/network_firewall_client.py +86 -86
  471. oci/network_load_balancer/models/backend_set.py +0 -4
  472. oci/network_load_balancer/models/backend_set_details.py +0 -4
  473. oci/network_load_balancer/models/backend_set_summary.py +7 -5
  474. oci/network_load_balancer/models/create_listener_details.py +42 -5
  475. oci/network_load_balancer/models/listener.py +42 -5
  476. oci/network_load_balancer/models/listener_details.py +42 -5
  477. oci/network_load_balancer/models/listener_summary.py +42 -5
  478. oci/network_load_balancer/models/update_listener_details.py +42 -5
  479. oci/network_load_balancer/network_load_balancer_client.py +34 -34
  480. oci/nosql/nosql_client.py +24 -24
  481. oci/object_storage/object_storage_client.py +55 -55
  482. oci/oce/oce_instance_client.py +10 -10
  483. oci/oci_control_center/occ_metrics_client.py +3 -3
  484. oci/ocvp/cluster_client.py +5 -5
  485. oci/ocvp/esxi_host_client.py +8 -8
  486. oci/ocvp/sddc_client.py +14 -14
  487. oci/ocvp/work_request_client.py +4 -4
  488. oci/oda/management_client.py +59 -59
  489. oci/oda/oda_client.py +17 -17
  490. oci/oda/odapackage_client.py +7 -7
  491. oci/onesubscription/billing_schedule_client.py +1 -1
  492. oci/onesubscription/commitment_client.py +2 -2
  493. oci/onesubscription/computed_usage_client.py +3 -3
  494. oci/onesubscription/invoice_summary_client.py +2 -2
  495. oci/onesubscription/organization_subscription_client.py +1 -1
  496. oci/onesubscription/ratecard_client.py +1 -1
  497. oci/onesubscription/subscribed_service_client.py +2 -2
  498. oci/onesubscription/subscription_client.py +1 -1
  499. oci/ons/notification_control_plane_client.py +6 -6
  500. oci/ons/notification_data_plane_client.py +10 -10
  501. oci/opa/opa_instance_client.py +13 -13
  502. oci/opensearch/opensearch_cluster_backup_client.py +4 -4
  503. oci/opensearch/opensearch_cluster_client.py +14 -14
  504. oci/operator_access_control/access_requests_client.py +20 -20
  505. oci/operator_access_control/operator_actions_client.py +4 -4
  506. oci/operator_access_control/operator_control_assignment_client.py +16 -16
  507. oci/operator_access_control/operator_control_client.py +12 -12
  508. oci/opsi/models/__init__.py +8 -0
  509. oci/opsi/models/host_configuration_metric_group.py +11 -3
  510. oci/opsi/models/host_containers.py +65 -3
  511. oci/opsi/models/host_cpu_hardware_configuration.py +1 -1
  512. oci/opsi/models/host_cpu_statistics.py +1 -1
  513. oci/opsi/models/host_cpu_usage.py +1 -1
  514. oci/opsi/models/host_entities.py +1 -1
  515. oci/opsi/models/host_filesystem_configuration.py +1 -1
  516. oci/opsi/models/host_filesystem_usage.py +1 -1
  517. oci/opsi/models/host_gpu_configuration.py +1 -1
  518. oci/opsi/models/host_gpu_processes.py +1 -1
  519. oci/opsi/models/host_gpu_usage.py +1 -1
  520. oci/opsi/models/host_hardware_configuration.py +1 -1
  521. oci/opsi/models/host_io_statistics.py +160 -0
  522. oci/opsi/models/host_io_usage.py +1 -1
  523. oci/opsi/models/host_memory_configuration.py +1 -1
  524. oci/opsi/models/host_memory_statistics.py +1 -1
  525. oci/opsi/models/host_memory_usage.py +1 -1
  526. oci/opsi/models/host_network_activity_summary.py +1 -1
  527. oci/opsi/models/host_network_configuration.py +1 -1
  528. oci/opsi/models/host_network_statistics.py +1 -1
  529. oci/opsi/models/host_performance_metric_group.py +3 -11
  530. oci/opsi/models/host_product.py +1 -1
  531. oci/opsi/models/host_resource_allocation.py +1 -1
  532. oci/opsi/models/host_resource_statistics.py +11 -3
  533. oci/opsi/models/host_storage_statistics.py +1 -1
  534. oci/opsi/models/host_top_processes.py +1 -1
  535. oci/opsi/models/io_usage_trend.py +227 -0
  536. oci/opsi/models/io_usage_trend_aggregation.py +103 -0
  537. oci/opsi/models/summarize_host_insight_host_recommendation_aggregation.py +7 -3
  538. oci/opsi/models/summarize_host_insight_io_usage_trend_aggregation_collection.py +165 -0
  539. oci/opsi/models/summarize_host_insight_resource_capacity_trend_aggregation_collection.py +7 -3
  540. oci/opsi/models/summarize_host_insight_resource_forecast_trend_aggregation.py +7 -3
  541. oci/opsi/models/summarize_host_insight_resource_statistics_aggregation_collection.py +7 -3
  542. oci/opsi/models/summarize_host_insight_resource_usage_aggregation.py +7 -3
  543. oci/opsi/models/summarize_host_insight_resource_usage_trend_aggregation_collection.py +7 -3
  544. oci/opsi/models/summarize_host_insight_resource_utilization_insight_aggregation.py +7 -3
  545. oci/opsi/operations_insights_client.py +362 -179
  546. oci/optimizer/optimizer_client.py +26 -26
  547. oci/os_management/event_client.py +8 -8
  548. oci/os_management/os_management_client.py +69 -69
  549. oci/os_management_hub/event_client.py +8 -8
  550. oci/os_management_hub/lifecycle_environment_client.py +12 -12
  551. oci/os_management_hub/managed_instance_client.py +31 -31
  552. oci/os_management_hub/managed_instance_group_client.py +25 -25
  553. oci/os_management_hub/management_station_client.py +10 -10
  554. oci/os_management_hub/onboarding_client.py +6 -6
  555. oci/os_management_hub/reporting_managed_instance_client.py +3 -3
  556. oci/os_management_hub/scheduled_job_client.py +7 -7
  557. oci/os_management_hub/software_source_client.py +27 -27
  558. oci/os_management_hub/work_request_client.py +4 -4
  559. oci/osp_gateway/address_rule_service_client.py +1 -1
  560. oci/osp_gateway/address_service_client.py +2 -2
  561. oci/osp_gateway/invoice_service_client.py +5 -5
  562. oci/osp_gateway/subscription_service_client.py +5 -5
  563. oci/osub_billing_schedule/billing_schedule_client.py +1 -1
  564. oci/osub_organization_subscription/organization_subscription_client.py +1 -1
  565. oci/osub_subscription/commitment_client.py +2 -2
  566. oci/osub_subscription/ratecard_client.py +1 -1
  567. oci/osub_subscription/subscription_client.py +1 -1
  568. oci/osub_usage/computed_usage_client.py +3 -3
  569. oci/psql/postgresql_client.py +33 -33
  570. oci/queue/queue_admin_client.py +11 -11
  571. oci/queue/queue_client.py +8 -8
  572. oci/recovery/database_recovery_client.py +26 -26
  573. oci/redis/redis_cluster_client.py +12 -12
  574. oci/resource_manager/resource_manager_client.py +52 -52
  575. oci/resource_scheduler/schedule_client.py +13 -13
  576. oci/resource_search/resource_search_client.py +3 -3
  577. oci/rover/rover_bundle_client.py +8 -8
  578. oci/rover/rover_cluster_client.py +8 -8
  579. oci/rover/rover_entitlement_client.py +6 -6
  580. oci/rover/rover_node_client.py +15 -15
  581. oci/rover/shape_client.py +1 -1
  582. oci/rover/work_requests_client.py +5 -5
  583. oci/sch/connector_plugins_client.py +2 -2
  584. oci/sch/service_connector_client.py +12 -12
  585. oci/secrets/secrets_client.py +3 -3
  586. oci/security_attribute/security_attribute_client.py +18 -18
  587. oci/service_catalog/service_catalog_client.py +26 -26
  588. oci/service_manager_proxy/service_manager_proxy_client.py +2 -2
  589. oci/service_mesh/service_mesh_client.py +48 -48
  590. oci/stack_monitoring/stack_monitoring_client.py +71 -71
  591. oci/streaming/stream_admin_client.py +18 -18
  592. oci/streaming/stream_client.py +8 -8
  593. oci/tenant_manager_control_plane/domain_client.py +5 -5
  594. oci/tenant_manager_control_plane/domain_governance_client.py +5 -5
  595. oci/tenant_manager_control_plane/governance_client.py +2 -2
  596. oci/tenant_manager_control_plane/link_client.py +3 -3
  597. oci/tenant_manager_control_plane/orders_client.py +2 -2
  598. oci/tenant_manager_control_plane/organization_client.py +10 -10
  599. oci/tenant_manager_control_plane/recipient_invitation_client.py +5 -5
  600. oci/tenant_manager_control_plane/sender_invitation_client.py +5 -5
  601. oci/tenant_manager_control_plane/subscription_client.py +11 -11
  602. oci/tenant_manager_control_plane/work_request_client.py +4 -4
  603. oci/threat_intelligence/threatintel_client.py +5 -5
  604. oci/usage/resources_client.py +2 -2
  605. oci/usage/rewards_client.py +6 -6
  606. oci/usage/usagelimits_client.py +1 -1
  607. oci/usage_api/usageapi_client.py +33 -33
  608. oci/vault/vaults_client.py +13 -13
  609. oci/vbs_inst/vbs_instance_client.py +10 -10
  610. oci/version.py +1 -1
  611. oci/visual_builder/vb_instance_client.py +13 -13
  612. oci/vn_monitoring/vn_monitoring_client.py +12 -12
  613. oci/vulnerability_scanning/vulnerability_scanning_client.py +58 -58
  614. oci/waa/waa_client.py +13 -13
  615. oci/waa/work_request_client.py +4 -4
  616. oci/waas/redirect_client.py +6 -6
  617. oci/waas/waas_client.py +66 -66
  618. oci/waf/waf_client.py +24 -24
  619. oci/work_requests/work_request_client.py +4 -4
  620. oci/zpr/zpr_client.py +15 -15
  621. {oci-2.136.0.dist-info → oci-2.137.1.dist-info}/METADATA +1 -1
  622. {oci-2.136.0.dist-info → oci-2.137.1.dist-info}/RECORD +626 -506
  623. oci/_vendor/jwt/__main__.py +0 -173
  624. oci/_vendor/jwt/compat.py +0 -73
  625. oci/_vendor/jwt/contrib/__init__.py +0 -0
  626. oci/_vendor/jwt/contrib/algorithms/__init__.py +0 -0
  627. oci/_vendor/jwt/contrib/algorithms/py_ecdsa.py +0 -60
  628. oci/_vendor/jwt/contrib/algorithms/pycrypto.py +0 -46
  629. {oci-2.136.0.dist-info → oci-2.137.1.dist-info}/LICENSE.txt +0 -0
  630. {oci-2.136.0.dist-info → oci-2.137.1.dist-info}/THIRD_PARTY_LICENSES.txt +0 -0
  631. {oci-2.136.0.dist-info → oci-2.137.1.dist-info}/WHEEL +0 -0
  632. {oci-2.136.0.dist-info → oci-2.137.1.dist-info}/top_level.txt +0 -0
@@ -1,227 +1,236 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved.
3
3
  # This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
4
- # Original Work: Copyright (c) 2015 José Padilla
4
+ # Original Work: Copyright (c) 2015-2022 José Padilla
5
5
 
6
6
  import json
7
7
  import warnings
8
8
  from calendar import timegm
9
- from datetime import datetime, timedelta
10
- try:
11
- # import required by mypy to perform type checking, not used for normal execution
12
- from typing import Callable, Dict, List, Optional, Union # NOQA
13
- except ImportError:
14
- pass
15
-
16
- from .api_jws import PyJWS
17
- from .algorithms import Algorithm, get_default_algorithms # NOQA
18
- from .compat import Iterable, Mapping, string_types
9
+ from collections.abc import Iterable, Mapping
10
+ from datetime import datetime, timedelta, timezone
11
+ from typing import Any, Dict, List, Optional, Type, Union
12
+
13
+ from . import api_jws
19
14
  from .exceptions import (
20
- DecodeError, ExpiredSignatureError, ImmatureSignatureError,
21
- InvalidAudienceError, InvalidIssuedAtError,
22
- InvalidIssuerError, MissingRequiredClaimError
15
+ DecodeError,
16
+ ExpiredSignatureError,
17
+ ImmatureSignatureError,
18
+ InvalidAudienceError,
19
+ InvalidIssuedAtError,
20
+ InvalidIssuerError,
21
+ MissingRequiredClaimError,
23
22
  )
24
- from .utils import merge_dict
25
23
 
26
24
 
27
- class PyJWT(PyJWS):
28
- header_type = 'JWT'
25
+ class PyJWT:
26
+ def __init__(self, options=None):
27
+ if options is None:
28
+ options = {}
29
+ self.options = {**self._get_default_options(), **options}
29
30
 
30
31
  @staticmethod
31
- def _get_default_options():
32
- # type: () -> Dict[str, bool]
32
+ def _get_default_options() -> Dict[str, Union[bool, List[str]]]:
33
33
  return {
34
- 'verify_signature': True,
35
- 'verify_exp': True,
36
- 'verify_nbf': True,
37
- 'verify_iat': True,
38
- 'verify_aud': True,
39
- 'verify_iss': True,
40
- 'require_exp': False,
41
- 'require_iat': False,
42
- 'require_nbf': False
34
+ "verify_signature": True,
35
+ "verify_exp": True,
36
+ "verify_nbf": True,
37
+ "verify_iat": True,
38
+ "verify_aud": True,
39
+ "verify_iss": True,
40
+ "require": [],
43
41
  }
44
42
 
45
- def encode(self,
46
- payload, # type: Union[Dict, bytes]
47
- key, # type: str
48
- algorithm='HS256', # type: str
49
- headers=None, # type: Optional[Dict]
50
- json_encoder=None # type: Optional[Callable]
51
- ):
43
+ def encode(
44
+ self,
45
+ payload: Dict[str, Any],
46
+ key: str,
47
+ algorithm: Optional[str] = "HS256",
48
+ headers: Optional[Dict] = None,
49
+ json_encoder: Optional[Type[json.JSONEncoder]] = None,
50
+ ) -> str:
52
51
  # Check that we get a mapping
53
52
  if not isinstance(payload, Mapping):
54
- raise TypeError('Expecting a mapping object, as JWT only supports '
55
- 'JSON objects as payloads.')
53
+ raise TypeError(
54
+ "Expecting a mapping object, as JWT only supports "
55
+ "JSON objects as payloads."
56
+ )
56
57
 
57
58
  # Payload
58
- for time_claim in ['exp', 'iat', 'nbf']:
59
+ payload = payload.copy()
60
+ for time_claim in ["exp", "iat", "nbf"]:
59
61
  # Convert datetime to a intDate value in known time-format claims
60
62
  if isinstance(payload.get(time_claim), datetime):
61
- payload[time_claim] = timegm(payload[time_claim].utctimetuple()) # type: ignore
63
+ payload[time_claim] = timegm(payload[time_claim].utctimetuple())
62
64
 
63
65
  json_payload = json.dumps(
64
- payload,
65
- separators=(',', ':'),
66
- cls=json_encoder
67
- ).encode('utf-8')
68
-
69
- return super(PyJWT, self).encode(
70
- json_payload, key, algorithm, headers, json_encoder
71
- )
72
-
73
- def decode(self,
74
- jwt, # type: str
75
- key='', # type: str
76
- verify=True, # type: bool
77
- algorithms=None, # type: List[str]
78
- options=None, # type: Dict
79
- **kwargs):
80
-
81
- if verify and not algorithms:
66
+ payload, separators=(",", ":"), cls=json_encoder
67
+ ).encode("utf-8")
68
+
69
+ return api_jws.encode(json_payload, key, algorithm, headers, json_encoder)
70
+
71
+ def decode_complete(
72
+ self,
73
+ jwt: str,
74
+ key: str = "",
75
+ algorithms: Optional[List[str]] = None,
76
+ options: Optional[Dict] = None,
77
+ **kwargs,
78
+ ) -> Dict[str, Any]:
79
+ options = dict(options or {}) # shallow-copy or initialize an empty dict
80
+ options.setdefault("verify_signature", True)
81
+
82
+ # If the user has set the legacy `verify` argument, and it doesn't match
83
+ # what the relevant `options` entry for the argument is, inform the user
84
+ # that they're likely making a mistake.
85
+ if "verify" in kwargs and kwargs["verify"] != options["verify_signature"]:
82
86
  warnings.warn(
83
- 'It is strongly recommended that you pass in a ' +
84
- 'value for the "algorithms" argument when calling decode(). ' +
85
- 'This argument will be mandatory in a future version.',
86
- DeprecationWarning
87
+ "The `verify` argument to `decode` does nothing in PyJWT 2.0 and newer. "
88
+ "The equivalent is setting `verify_signature` to False in the `options` dictionary. "
89
+ "This invocation has a mismatch between the kwarg and the option entry.",
90
+ category=DeprecationWarning,
87
91
  )
88
92
 
89
- payload, _, _, _ = self._load(jwt)
93
+ if not options["verify_signature"]:
94
+ options.setdefault("verify_exp", False)
95
+ options.setdefault("verify_nbf", False)
96
+ options.setdefault("verify_iat", False)
97
+ options.setdefault("verify_aud", False)
98
+ options.setdefault("verify_iss", False)
90
99
 
91
- if options is None:
92
- options = {'verify_signature': verify}
93
- else:
94
- options.setdefault('verify_signature', verify)
100
+ if options["verify_signature"] and not algorithms:
101
+ raise DecodeError(
102
+ 'It is required that you pass in a value for the "algorithms" argument when calling decode().'
103
+ )
95
104
 
96
- decoded = super(PyJWT, self).decode(
97
- jwt, key=key, algorithms=algorithms, options=options, **kwargs
105
+ decoded = api_jws.decode_complete(
106
+ jwt,
107
+ key=key,
108
+ algorithms=algorithms,
109
+ options=options,
110
+ **kwargs,
98
111
  )
99
112
 
100
113
  try:
101
- payload = json.loads(decoded.decode('utf-8'))
114
+ payload = json.loads(decoded["payload"])
102
115
  except ValueError as e:
103
- raise DecodeError('Invalid payload string: %s' % e)
104
- if not isinstance(payload, Mapping):
105
- raise DecodeError('Invalid payload string: must be a json object')
106
-
107
- if verify:
108
- merged_options = merge_dict(self.options, options)
109
- self._validate_claims(payload, merged_options, **kwargs)
110
-
111
- return payload
112
-
113
- def _validate_claims(self, payload, options, audience=None, issuer=None,
114
- leeway=0, **kwargs):
115
-
116
- if 'verify_expiration' in kwargs:
117
- options['verify_exp'] = kwargs.get('verify_expiration', True)
118
- warnings.warn('The verify_expiration parameter is deprecated. '
119
- 'Please use verify_exp in options instead.',
120
- DeprecationWarning)
121
-
116
+ raise DecodeError(f"Invalid payload string: {e}")
117
+ if not isinstance(payload, dict):
118
+ raise DecodeError("Invalid payload string: must be a json object")
119
+
120
+ merged_options = {**self.options, **options}
121
+ self._validate_claims(payload, merged_options, **kwargs)
122
+
123
+ decoded["payload"] = payload
124
+ return decoded
125
+
126
+ def decode(
127
+ self,
128
+ jwt: str,
129
+ key: str = "",
130
+ algorithms: Optional[List[str]] = None,
131
+ options: Optional[Dict] = None,
132
+ **kwargs,
133
+ ) -> Dict[str, Any]:
134
+ decoded = self.decode_complete(jwt, key, algorithms, options, **kwargs)
135
+ return decoded["payload"]
136
+
137
+ def _validate_claims(
138
+ self, payload, options, audience=None, issuer=None, leeway=0, **kwargs
139
+ ):
122
140
  if isinstance(leeway, timedelta):
123
141
  leeway = leeway.total_seconds()
124
142
 
125
- if not isinstance(audience, (string_types, type(None), Iterable)):
126
- raise TypeError('audience must be a string, iterable, or None')
143
+ if not isinstance(audience, (bytes, str, type(None), Iterable)):
144
+ raise TypeError("audience must be a string, iterable, or None")
127
145
 
128
146
  self._validate_required_claims(payload, options)
129
147
 
130
- now = timegm(datetime.utcnow().utctimetuple())
148
+ now = timegm(datetime.now(tz=timezone.utc).utctimetuple())
131
149
 
132
- if 'iat' in payload and options.get('verify_iat'):
150
+ if "iat" in payload and options["verify_iat"]:
133
151
  self._validate_iat(payload, now, leeway)
134
152
 
135
- if 'nbf' in payload and options.get('verify_nbf'):
153
+ if "nbf" in payload and options["verify_nbf"]:
136
154
  self._validate_nbf(payload, now, leeway)
137
155
 
138
- if 'exp' in payload and options.get('verify_exp'):
156
+ if "exp" in payload and options["verify_exp"]:
139
157
  self._validate_exp(payload, now, leeway)
140
158
 
141
- if options.get('verify_iss'):
159
+ if options["verify_iss"]:
142
160
  self._validate_iss(payload, issuer)
143
161
 
144
- if options.get('verify_aud'):
162
+ if options["verify_aud"]:
145
163
  self._validate_aud(payload, audience)
146
164
 
147
165
  def _validate_required_claims(self, payload, options):
148
- if options.get('require_exp') and payload.get('exp') is None:
149
- raise MissingRequiredClaimError('exp')
150
-
151
- if options.get('require_iat') and payload.get('iat') is None:
152
- raise MissingRequiredClaimError('iat')
153
-
154
- if options.get('require_nbf') and payload.get('nbf') is None:
155
- raise MissingRequiredClaimError('nbf')
166
+ for claim in options["require"]:
167
+ if payload.get(claim) is None:
168
+ raise MissingRequiredClaimError(claim)
156
169
 
157
170
  def _validate_iat(self, payload, now, leeway):
158
171
  try:
159
- int(payload['iat'])
172
+ int(payload["iat"])
160
173
  except ValueError:
161
- raise InvalidIssuedAtError('Issued At claim (iat) must be an integer.')
174
+ raise InvalidIssuedAtError("Issued At claim (iat) must be an integer.")
162
175
 
163
176
  def _validate_nbf(self, payload, now, leeway):
164
177
  try:
165
- nbf = int(payload['nbf'])
178
+ nbf = int(payload["nbf"])
166
179
  except ValueError:
167
- raise DecodeError('Not Before claim (nbf) must be an integer.')
180
+ raise DecodeError("Not Before claim (nbf) must be an integer.")
168
181
 
169
182
  if nbf > (now + leeway):
170
- raise ImmatureSignatureError('The token is not yet valid (nbf)')
183
+ raise ImmatureSignatureError("The token is not yet valid (nbf)")
171
184
 
172
185
  def _validate_exp(self, payload, now, leeway):
173
186
  try:
174
- exp = int(payload['exp'])
187
+ exp = int(payload["exp"])
175
188
  except ValueError:
176
- raise DecodeError('Expiration Time claim (exp) must be an'
177
- ' integer.')
189
+ raise DecodeError("Expiration Time claim (exp) must be an" " integer.")
178
190
 
179
191
  if exp < (now - leeway):
180
- raise ExpiredSignatureError('Signature has expired')
192
+ raise ExpiredSignatureError("Signature has expired")
181
193
 
182
194
  def _validate_aud(self, payload, audience):
183
- if audience is None and 'aud' not in payload:
184
- return
195
+ if audience is None:
196
+ if "aud" not in payload or not payload["aud"]:
197
+ return
198
+ # Application did not specify an audience, but
199
+ # the token has the 'aud' claim
200
+ raise InvalidAudienceError("Invalid audience")
185
201
 
186
- if audience is not None and 'aud' not in payload:
202
+ if "aud" not in payload or not payload["aud"]:
187
203
  # Application specified an audience, but it could not be
188
204
  # verified since the token does not contain a claim.
189
- raise MissingRequiredClaimError('aud')
190
-
191
- if audience is None and 'aud' in payload:
192
- # Application did not specify an audience, but
193
- # the token has the 'aud' claim
194
- raise InvalidAudienceError('Invalid audience')
205
+ raise MissingRequiredClaimError("aud")
195
206
 
196
- audience_claims = payload['aud']
207
+ audience_claims = payload["aud"]
197
208
 
198
- if isinstance(audience_claims, string_types):
209
+ if isinstance(audience_claims, str):
199
210
  audience_claims = [audience_claims]
200
211
  if not isinstance(audience_claims, list):
201
- raise InvalidAudienceError('Invalid claim format in token')
202
- if any(not isinstance(c, string_types) for c in audience_claims):
203
- raise InvalidAudienceError('Invalid claim format in token')
212
+ raise InvalidAudienceError("Invalid claim format in token")
213
+ if any(not isinstance(c, str) for c in audience_claims):
214
+ raise InvalidAudienceError("Invalid claim format in token")
204
215
 
205
- if isinstance(audience, string_types):
216
+ if isinstance(audience, str):
206
217
  audience = [audience]
207
218
 
208
- if not any(aud in audience_claims for aud in audience):
209
- raise InvalidAudienceError('Invalid audience')
219
+ if all(aud not in audience_claims for aud in audience):
220
+ raise InvalidAudienceError("Invalid audience")
210
221
 
211
222
  def _validate_iss(self, payload, issuer):
212
223
  if issuer is None:
213
224
  return
214
225
 
215
- if 'iss' not in payload:
216
- raise MissingRequiredClaimError('iss')
226
+ if "iss" not in payload:
227
+ raise MissingRequiredClaimError("iss")
217
228
 
218
- if payload['iss'] != issuer:
219
- raise InvalidIssuerError('Invalid issuer')
229
+ if payload["iss"] != issuer:
230
+ raise InvalidIssuerError("Invalid issuer")
220
231
 
221
232
 
222
233
  _jwt_global_obj = PyJWT()
223
234
  encode = _jwt_global_obj.encode
235
+ decode_complete = _jwt_global_obj.decode_complete
224
236
  decode = _jwt_global_obj.decode
225
- register_algorithm = _jwt_global_obj.register_algorithm
226
- unregister_algorithm = _jwt_global_obj.unregister_algorithm
227
- get_unverified_header = _jwt_global_obj.get_unverified_header
@@ -1,12 +1,13 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved.
3
3
  # This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
4
- # Original Work: Copyright (c) 2015 José Padilla
4
+ # Original Work: Copyright (c) 2015-2022 José Padilla
5
5
 
6
6
  class PyJWTError(Exception):
7
7
  """
8
8
  Base class for all exceptions
9
9
  """
10
+
10
11
  pass
11
12
 
12
13
 
@@ -55,10 +56,16 @@ class MissingRequiredClaimError(InvalidTokenError):
55
56
  self.claim = claim
56
57
 
57
58
  def __str__(self):
58
- return 'Token is missing the "%s" claim' % self.claim
59
+ return f'Token is missing the "{self.claim}" claim'
60
+
61
+
62
+ class PyJWKError(PyJWTError):
63
+ pass
59
64
 
60
65
 
61
- # Compatibility aliases (deprecated)
62
- ExpiredSignature = ExpiredSignatureError
63
- InvalidAudience = InvalidAudienceError
64
- InvalidIssuer = InvalidIssuerError
66
+ class PyJWKSetError(PyJWTError):
67
+ pass
68
+
69
+
70
+ class PyJWKClientError(PyJWTError):
71
+ pass
oci/_vendor/jwt/help.py CHANGED
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved.
3
3
  # This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
4
- # Original Work: Copyright (c) 2015 José Padilla
4
+ # Original Work: Copyright (c) 2015-2022 José Padilla
5
5
 
6
6
  from __future__ import print_function
7
7
 
@@ -13,13 +13,8 @@ from . import __version__ as pyjwt_version
13
13
 
14
14
  try:
15
15
  import cryptography
16
- except ImportError:
17
- cryptography = None
18
-
19
- try:
20
- import ecdsa
21
- except ImportError:
22
- ecdsa = None
16
+ except ModuleNotFoundError:
17
+ cryptography = None # type: ignore
23
18
 
24
19
 
25
20
  def info():
@@ -28,8 +23,11 @@ def info():
28
23
  Based on the requests package help utility module.
29
24
  """
30
25
  try:
31
- platform_info = {"system": platform.system(), "release": platform.release()}
32
- except IOError:
26
+ platform_info = {
27
+ "system": platform.system(),
28
+ "release": platform.release(),
29
+ }
30
+ except OSError:
33
31
  platform_info = {"system": "Unknown", "release": "Unknown"}
34
32
 
35
33
  implementation = platform.python_implementation()
@@ -37,10 +35,10 @@ def info():
37
35
  if implementation == "CPython":
38
36
  implementation_version = platform.python_version()
39
37
  elif implementation == "PyPy":
40
- implementation_version = "%s.%s.%s" % (
41
- sys.pypy_version_info.major,
42
- sys.pypy_version_info.minor,
43
- sys.pypy_version_info.micro,
38
+ implementation_version = (
39
+ f"{sys.pypy_version_info.major}."
40
+ f"{sys.pypy_version_info.minor}."
41
+ f"{sys.pypy_version_info.micro}"
44
42
  )
45
43
  if sys.pypy_version_info.releaselevel != "final":
46
44
  implementation_version = "".join(
@@ -51,7 +49,10 @@ def info():
51
49
 
52
50
  return {
53
51
  "platform": platform_info,
54
- "implementation": {"name": implementation, "version": implementation_version},
52
+ "implementation": {
53
+ "name": implementation,
54
+ "version": implementation_version,
55
+ },
55
56
  "cryptography": {"version": getattr(cryptography, "__version__", "")},
56
57
  "pyjwt": {"version": pyjwt_version},
57
58
  }
@@ -0,0 +1,64 @@
1
+ # coding: utf-8
2
+ # Modified Work: Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved.
3
+ # This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
4
+ # Original Work: Copyright (c) 2015-2022 José Padilla
5
+
6
+ import json
7
+ import urllib.request
8
+ from functools import lru_cache
9
+ from typing import Any, List
10
+
11
+ from .api_jwk import PyJWK, PyJWKSet
12
+ from .api_jwt import decode_complete as decode_token
13
+ from .exceptions import PyJWKClientError
14
+
15
+
16
+ class PyJWKClient:
17
+ def __init__(self, uri: str, cache_keys: bool = True, max_cached_keys: int = 16):
18
+ self.uri = uri
19
+ if cache_keys:
20
+ # Cache signing keys
21
+ # Ignore mypy (https://github.com/python/mypy/issues/2427)
22
+ self.get_signing_key = lru_cache(maxsize=max_cached_keys)(self.get_signing_key) # type: ignore
23
+
24
+ def fetch_data(self) -> Any:
25
+ with urllib.request.urlopen(self.uri) as response:
26
+ return json.load(response)
27
+
28
+ def get_jwk_set(self) -> PyJWKSet:
29
+ data = self.fetch_data()
30
+ return PyJWKSet.from_dict(data)
31
+
32
+ def get_signing_keys(self) -> List[PyJWK]:
33
+ jwk_set = self.get_jwk_set()
34
+ signing_keys = [
35
+ jwk_set_key
36
+ for jwk_set_key in jwk_set.keys
37
+ if jwk_set_key.public_key_use in ["sig", None] and jwk_set_key.key_id
38
+ ]
39
+
40
+ if not signing_keys:
41
+ raise PyJWKClientError("The JWKS endpoint did not contain any signing keys")
42
+
43
+ return signing_keys
44
+
45
+ def get_signing_key(self, kid: str) -> PyJWK:
46
+ signing_keys = self.get_signing_keys()
47
+ signing_key = None
48
+
49
+ for key in signing_keys:
50
+ if key.key_id == kid:
51
+ signing_key = key
52
+ break
53
+
54
+ if not signing_key:
55
+ raise PyJWKClientError(
56
+ f'Unable to find a signing key that matches: "{kid}"'
57
+ )
58
+
59
+ return signing_key
60
+
61
+ def get_signing_key_from_jwt(self, token: str) -> PyJWK:
62
+ unverified = decode_token(token, options={"verify_signature": False})
63
+ header = unverified["header"]
64
+ return self.get_signing_key(header.get("kid"))