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.
- oci/_vendor/jwt/__init__.py +65 -26
- oci/_vendor/jwt/algorithms.py +404 -130
- oci/_vendor/jwt/api_jwk.py +108 -0
- oci/_vendor/jwt/api_jws.py +153 -106
- oci/_vendor/jwt/api_jwt.py +146 -137
- oci/_vendor/jwt/exceptions.py +13 -6
- oci/_vendor/jwt/help.py +16 -15
- oci/_vendor/jwt/jwks_client.py +64 -0
- oci/_vendor/jwt/utils.py +101 -54
- oci/access_governance_cp/access_governance_cp_client.py +8 -8
- oci/adm/application_dependency_management_client.py +36 -36
- oci/ai_anomaly_detection/anomaly_detection_client.py +36 -36
- oci/ai_document/ai_service_document_client.py +26 -26
- oci/ai_language/ai_service_language_client.py +44 -44
- oci/ai_speech/ai_service_speech_client.py +19 -19
- oci/ai_vision/ai_service_vision_client.py +25 -25
- oci/analytics/analytics_client.py +24 -24
- oci/announcements_service/announcement_client.py +5 -5
- oci/announcements_service/announcement_subscription_client.py +9 -9
- oci/announcements_service/announcements_preferences_client.py +4 -4
- oci/announcements_service/service_client.py +1 -1
- oci/apigateway/api_gateway_client.py +21 -21
- oci/apigateway/deployment_client.py +6 -6
- oci/apigateway/gateway_client.py +6 -6
- oci/apigateway/subscribers_client.py +6 -6
- oci/apigateway/usage_plans_client.py +6 -6
- oci/apigateway/work_requests_client.py +5 -5
- oci/apm_config/config_client.py +9 -9
- oci/apm_control_plane/apm_domain_client.py +14 -14
- oci/apm_synthetics/apm_synthetic_client.py +28 -28
- oci/apm_traces/attributes_client.py +8 -8
- oci/apm_traces/query_client.py +2 -2
- oci/apm_traces/trace_client.py +4 -4
- oci/appmgmt_control/appmgmt_control_client.py +8 -8
- oci/artifacts/artifacts_client.py +32 -32
- oci/audit/audit_client.py +3 -3
- oci/auth/security_token_container.py +1 -1
- oci/autoscaling/auto_scaling_client.py +11 -11
- oci/bastion/bastion_client.py +15 -15
- oci/bds/bds_client.py +72 -72
- oci/blockchain/blockchain_platform_client.py +27 -27
- oci/budget/budget_client.py +10 -10
- oci/capacity_management/capacity_management_client.py +32 -32
- oci/certificates/certificates_client.py +5 -5
- oci/certificates_management/certificates_management_client.py +32 -32
- oci/cims/incident_client.py +8 -8
- oci/cloud_bridge/common_client.py +5 -5
- oci/cloud_bridge/discovery_client.py +160 -14
- oci/cloud_bridge/inventory_client.py +20 -20
- oci/cloud_bridge/models/__init__.py +48 -2
- oci/cloud_bridge/models/asset.py +19 -3
- oci/cloud_bridge/models/asset_source.py +11 -3
- oci/cloud_bridge/models/asset_source_credentials.py +17 -7
- oci/cloud_bridge/models/asset_source_summary.py +11 -3
- oci/cloud_bridge/models/asset_summary.py +11 -3
- oci/cloud_bridge/models/aws_asset_source.py +359 -0
- oci/cloud_bridge/models/aws_asset_source_summary.py +205 -0
- oci/cloud_bridge/models/aws_ebs_asset.py +170 -0
- oci/cloud_bridge/models/aws_ebs_properties.py +382 -0
- oci/cloud_bridge/models/aws_ec2_asset.py +278 -0
- oci/cloud_bridge/models/aws_ec2_properties.py +1056 -0
- oci/cloud_bridge/models/create_asset_details.py +19 -3
- oci/cloud_bridge/models/create_asset_source_details.py +11 -3
- oci/cloud_bridge/models/create_aws_asset_source_details.py +323 -0
- oci/cloud_bridge/models/create_aws_ebs_asset_details.py +134 -0
- oci/cloud_bridge/models/create_aws_ec2_asset_details.py +242 -0
- oci/cloud_bridge/models/create_vm_ware_asset_source_details.py +2 -2
- oci/cloud_bridge/models/create_vmware_vm_asset_details.py +5 -5
- oci/cloud_bridge/models/group_identifier.py +103 -0
- oci/cloud_bridge/models/import_inventory_via_assets_details.py +13 -5
- oci/cloud_bridge/models/instance_network_interface.py +498 -0
- oci/cloud_bridge/models/instance_network_interface_association.py +196 -0
- oci/cloud_bridge/models/instance_network_interface_attachment.py +227 -0
- oci/cloud_bridge/models/instance_private_ip_address.py +161 -0
- oci/cloud_bridge/models/instance_state.py +103 -0
- oci/cloud_bridge/models/monthly_cost_summary.py +103 -0
- oci/cloud_bridge/models/placement.py +289 -0
- oci/cloud_bridge/models/supported_cloud_region_collection.py +72 -0
- oci/cloud_bridge/models/supported_cloud_region_summary.py +244 -0
- oci/cloud_bridge/models/tag.py +103 -0
- oci/cloud_bridge/models/update_asset_details.py +19 -3
- oci/cloud_bridge/models/update_asset_source_details.py +47 -4
- oci/cloud_bridge/models/update_aws_asset_source_details.py +240 -0
- oci/cloud_bridge/models/update_aws_ebs_asset_details.py +106 -0
- oci/cloud_bridge/models/update_aws_ec2_asset_details.py +214 -0
- oci/cloud_bridge/models/update_vm_asset_details.py +1 -1
- oci/cloud_bridge/models/update_vm_ware_asset_source_details.py +11 -39
- oci/cloud_bridge/models/update_vmware_vm_asset_details.py +1 -1
- oci/cloud_bridge/models/vm_asset.py +3 -3
- oci/cloud_bridge/models/vm_ware_asset_source.py +2 -2
- oci/cloud_bridge/models/vm_ware_asset_source_summary.py +2 -2
- oci/cloud_bridge/models/vmware_vm_asset.py +5 -5
- oci/cloud_bridge/models/volume_attachment.py +196 -0
- oci/cloud_bridge/models/work_request.py +15 -3
- oci/cloud_bridge/models/work_request_summary.py +15 -3
- oci/cloud_bridge/ocb_agent_svc_client.py +22 -138
- oci/cloud_bridge/ocb_agent_svc_client_composite_operations.py +0 -48
- oci/cloud_guard/cloud_guard_client.py +155 -155
- oci/cloud_migrations/migration_client.py +43 -43
- oci/cluster_placement_groups/cluster_placement_groups_cp_client.py +13 -13
- oci/compute_cloud_at_customer/compute_cloud_at_customer_client.py +12 -12
- oci/compute_instance_agent/compute_instance_agent_client.py +6 -6
- oci/compute_instance_agent/plugin_client.py +2 -2
- oci/compute_instance_agent/pluginconfig_client.py +1 -1
- oci/container_engine/container_engine_client.py +88 -88
- oci/container_engine/models/install_addon_details.py +33 -2
- oci/container_instances/container_instance_client.py +18 -18
- oci/core/blockstorage_client.py +60 -60
- oci/core/compute_client.py +102 -102
- oci/core/compute_management_client.py +32 -32
- oci/core/models/__init__.py +2 -0
- oci/core/models/virtual_circuit.py +29 -2
- oci/core/models/virtual_circuit_redundancy_metadata.py +202 -0
- oci/core/virtual_network_client.py +247 -247
- oci/dashboard_service/dashboard_client.py +6 -6
- oci/dashboard_service/dashboard_group_client.py +6 -6
- oci/data_catalog/data_catalog_client.py +149 -149
- oci/data_flow/data_flow_client.py +42 -42
- oci/data_integration/data_integration_client.py +163 -163
- oci/data_labeling_service/data_labeling_management_client.py +17 -17
- oci/data_labeling_service_dataplane/data_labeling_client.py +15 -15
- oci/data_safe/data_safe_client.py +292 -292
- oci/data_science/data_science_client.py +217 -93
- oci/data_science/data_science_client_composite_operations.py +41 -0
- oci/data_science/models/__init__.py +8 -0
- oci/data_science/models/backup_operation_details.py +154 -0
- oci/data_science/models/backup_setting.py +158 -0
- oci/data_science/models/create_model_details.py +56 -2
- oci/data_science/models/model.py +141 -2
- oci/data_science/models/model_summary.py +31 -0
- oci/data_science/models/retention_operation_details.py +267 -0
- oci/data_science/models/retention_setting.py +158 -0
- oci/data_science/models/update_model_details.py +56 -2
- oci/data_science/models/work_request.py +7 -3
- oci/data_science/models/work_request_summary.py +7 -3
- oci/database/database_client.py +396 -396
- oci/database/models/__init__.py +14 -0
- oci/database/models/autonomous_database.py +58 -0
- oci/database/models/autonomous_database_encryption_key_details.py +133 -0
- oci/database/models/autonomous_database_encryption_key_history_entry.py +99 -0
- oci/database/models/autonomous_database_summary.py +58 -0
- oci/database/models/aws_key_details.py +175 -0
- oci/database/models/azure_key_details.py +113 -0
- oci/database/models/create_autonomous_database_base.py +27 -0
- oci/database/models/create_autonomous_database_clone_details.py +7 -0
- oci/database/models/create_autonomous_database_details.py +7 -0
- oci/database/models/create_autonomous_database_from_backup_details.py +7 -0
- oci/database/models/create_autonomous_database_from_backup_timestamp_details.py +7 -0
- oci/database/models/create_cross_region_autonomous_database_data_guard_details.py +7 -0
- oci/database/models/create_cross_region_disaster_recovery_details.py +7 -0
- oci/database/models/create_cross_tenancy_disaster_recovery_details.py +7 -0
- oci/database/models/create_refreshable_autonomous_database_clone_details.py +7 -0
- oci/database/models/oci_key_details.py +119 -0
- oci/database/models/okv_key_details.py +206 -0
- oci/database/models/oracle_managed_key_details.py +51 -0
- oci/database/models/undelete_autonomous_database_details.py +7 -0
- oci/database/models/update_autonomous_database_details.py +29 -2
- oci/database_management/db_management_client.py +211 -211
- oci/database_management/diagnosability_client.py +4 -4
- oci/database_management/managed_my_sql_databases_client.py +7 -7
- oci/database_management/perfhub_client.py +1 -1
- oci/database_management/sql_tuning_client.py +17 -17
- oci/database_migration/database_migration_client.py +42 -42
- oci/database_tools/database_tools_client.py +23 -23
- oci/delegate_access_control/delegate_access_control_client.py +26 -26
- oci/delegate_access_control/work_request_client.py +4 -4
- oci/demand_signal/occ_demand_signal_client.py +7 -7
- oci/desktops/desktop_service_client.py +21 -21
- oci/devops/devops_client.py +141 -141
- oci/disaster_recovery/disaster_recovery_client.py +29 -29
- oci/dns/dns_client.py +54 -54
- oci/dts/appliance_export_job_client.py +6 -6
- oci/dts/shipping_vendors_client.py +1 -1
- oci/dts/transfer_appliance_client.py +8 -8
- oci/dts/transfer_appliance_entitlement_client.py +3 -3
- oci/dts/transfer_device_client.py +5 -5
- oci/dts/transfer_job_client.py +6 -6
- oci/dts/transfer_package_client.py +7 -7
- oci/em_warehouse/em_warehouse_client.py +13 -13
- oci/email/email_client.py +31 -31
- oci/email_data_plane/email_dp_client.py +1 -1
- oci/events/events_client.py +6 -6
- oci/file_storage/file_storage_client.py +3599 -1776
- oci/file_storage/file_storage_client_composite_operations.py +881 -223
- oci/file_storage/models/__init__.py +2 -0
- oci/file_storage/models/create_export_details.py +31 -0
- oci/file_storage/models/create_file_system_details.py +31 -0
- oci/file_storage/models/create_filesystem_snapshot_policy_details.py +33 -2
- oci/file_storage/models/create_ldap_bind_account_details.py +7 -0
- oci/file_storage/models/create_mount_target_details.py +31 -0
- oci/file_storage/models/create_outbound_connector_details.py +33 -2
- oci/file_storage/models/create_replication_details.py +33 -2
- oci/file_storage/models/create_snapshot_details.py +33 -2
- oci/file_storage/models/export.py +33 -2
- oci/file_storage/models/export_summary.py +33 -2
- oci/file_storage/models/file_system.py +31 -0
- oci/file_storage/models/file_system_summary.py +31 -0
- oci/file_storage/models/filesystem_snapshot_policy.py +31 -0
- oci/file_storage/models/filesystem_snapshot_policy_summary.py +31 -0
- oci/file_storage/models/ldap_bind_account.py +7 -0
- oci/file_storage/models/ldap_bind_account_summary.py +7 -0
- oci/file_storage/models/mount_target.py +31 -0
- oci/file_storage/models/mount_target_summary.py +31 -0
- oci/file_storage/models/outbound_connector.py +31 -0
- oci/file_storage/models/outbound_connector_summary.py +31 -0
- oci/file_storage/models/replication.py +31 -0
- oci/file_storage/models/replication_summary.py +31 -0
- oci/file_storage/models/resource_lock.py +185 -0
- oci/file_storage/models/snapshot.py +31 -0
- oci/file_storage/models/snapshot_summary.py +31 -0
- oci/fleet_apps_management/fleet_apps_management_admin_client.py +2261 -294
- oci/fleet_apps_management/fleet_apps_management_admin_client_composite_operations.py +349 -1
- oci/fleet_apps_management/fleet_apps_management_client.py +141 -127
- oci/fleet_apps_management/fleet_apps_management_client_composite_operations.py +19 -19
- oci/fleet_apps_management/fleet_apps_management_maintenance_window_client.py +19 -15
- oci/fleet_apps_management/fleet_apps_management_maintenance_window_client_composite_operations.py +1 -1
- oci/fleet_apps_management/fleet_apps_management_operations_client.py +2058 -363
- oci/fleet_apps_management/fleet_apps_management_operations_client_composite_operations.py +173 -0
- oci/fleet_apps_management/fleet_apps_management_runbooks_client.py +1097 -260
- oci/fleet_apps_management/fleet_apps_management_runbooks_client_composite_operations.py +298 -0
- oci/fleet_apps_management/models/__init__.py +168 -0
- oci/fleet_apps_management/models/action_group.py +2 -2
- oci/fleet_apps_management/models/action_group_based_user_action_details.py +90 -0
- oci/fleet_apps_management/models/action_group_details.py +20 -16
- oci/fleet_apps_management/models/activity_resource_target.py +44 -7
- oci/fleet_apps_management/models/announcement_collection.py +1 -1
- oci/fleet_apps_management/models/announcement_summary.py +13 -13
- oci/fleet_apps_management/models/api_based_execution_details.py +1 -1
- oci/fleet_apps_management/models/artifact_details.py +109 -0
- oci/fleet_apps_management/models/associated_fleet_credential_details.py +1 -1
- oci/fleet_apps_management/models/associated_fleet_property_details.py +5 -5
- oci/fleet_apps_management/models/associated_fleet_resource_details.py +6 -6
- oci/fleet_apps_management/models/associated_local_task_details.py +64 -1
- oci/fleet_apps_management/models/associated_scheduler_definition.py +3 -3
- oci/fleet_apps_management/models/associated_shared_task_details.py +2 -1
- oci/fleet_apps_management/models/associations.py +32 -5
- oci/fleet_apps_management/models/check_resource_tagging_details.py +5 -5
- oci/fleet_apps_management/models/compliance_detail_policy.py +223 -0
- oci/fleet_apps_management/models/compliance_detail_product.py +134 -0
- oci/fleet_apps_management/models/compliance_detail_resource.py +196 -0
- oci/fleet_apps_management/models/compliance_detail_target.py +134 -0
- oci/fleet_apps_management/models/compliance_patch_detail.py +278 -0
- oci/fleet_apps_management/models/compliance_policy.py +439 -0
- oci/fleet_apps_management/models/compliance_policy_collection.py +72 -0
- oci/fleet_apps_management/models/compliance_policy_rule.py +618 -0
- oci/fleet_apps_management/models/compliance_policy_rule_collection.py +72 -0
- oci/fleet_apps_management/models/compliance_policy_rule_summary.py +585 -0
- oci/fleet_apps_management/models/compliance_policy_summary.py +406 -0
- oci/fleet_apps_management/models/compliance_record.py +457 -0
- oci/fleet_apps_management/models/compliance_record_aggregation.py +99 -0
- oci/fleet_apps_management/models/compliance_record_aggregation_collection.py +72 -0
- oci/fleet_apps_management/models/compliance_record_collection.py +72 -0
- oci/fleet_apps_management/models/compliance_record_dimension.py +143 -0
- oci/fleet_apps_management/models/compliance_record_summary.py +437 -0
- oci/fleet_apps_management/models/compliance_report.py +5 -5
- oci/fleet_apps_management/models/compliance_report_patch_detail.py +9 -9
- oci/fleet_apps_management/models/compliance_report_product.py +3 -3
- oci/fleet_apps_management/models/compliance_report_resource.py +8 -6
- oci/fleet_apps_management/models/compliance_report_target.py +7 -7
- oci/fleet_apps_management/models/component_properties.py +69 -9
- oci/fleet_apps_management/models/condition.py +12 -6
- oci/fleet_apps_management/models/config_association_details.py +109 -0
- oci/fleet_apps_management/models/config_category_details.py +133 -0
- oci/fleet_apps_management/models/confirm_targets_details.py +1 -1
- oci/fleet_apps_management/models/content_details.py +3 -3
- oci/fleet_apps_management/models/create_compliance_policy_rule_details.py +382 -0
- oci/fleet_apps_management/models/create_fleet_details.py +63 -16
- oci/fleet_apps_management/models/create_fleet_property_details.py +5 -5
- oci/fleet_apps_management/models/create_fleet_resource_details.py +1 -1
- oci/fleet_apps_management/models/create_maintenance_window_details.py +19 -11
- oci/fleet_apps_management/models/create_onboarding_details.py +8 -4
- oci/fleet_apps_management/models/create_patch_details.py +402 -0
- oci/fleet_apps_management/models/create_platform_configuration_details.py +169 -0
- oci/fleet_apps_management/models/create_property_details.py +6 -6
- oci/fleet_apps_management/models/create_runbook_details.py +441 -0
- oci/fleet_apps_management/models/create_task_record_details.py +235 -0
- oci/fleet_apps_management/models/credential_config_category_details.py +52 -0
- oci/fleet_apps_management/models/credential_details.py +3 -3
- oci/fleet_apps_management/models/credential_entity_specific_details.py +22 -6
- oci/{cloud_bridge/models/update_plugin_details.py → fleet_apps_management/models/dependent_patch_details.py} +21 -21
- oci/fleet_apps_management/models/details.py +67 -3
- oci/fleet_apps_management/models/discovered_target.py +6 -6
- oci/fleet_apps_management/models/enable_latest_policy_details.py +72 -0
- oci/fleet_apps_management/models/entity_execution_details.py +22 -16
- oci/fleet_apps_management/models/environment_config_category_details.py +53 -0
- oci/fleet_apps_management/models/execution.py +122 -21
- oci/fleet_apps_management/models/execution_collection.py +1 -1
- oci/fleet_apps_management/models/execution_details.py +1 -1
- oci/fleet_apps_management/models/execution_summary.py +123 -22
- oci/fleet_apps_management/models/execution_workflow_details.py +1 -1
- oci/fleet_apps_management/models/export_compliance_report_details.py +251 -0
- oci/fleet_apps_management/models/fleet.py +37 -19
- oci/fleet_apps_management/models/fleet_credential.py +1 -1
- oci/fleet_apps_management/models/fleet_credential_entity_specific_details.py +82 -0
- oci/fleet_apps_management/models/fleet_product_summary.py +3 -3
- oci/fleet_apps_management/models/fleet_property.py +11 -11
- oci/fleet_apps_management/models/fleet_property_collection.py +3 -3
- oci/fleet_apps_management/models/fleet_property_summary.py +6 -6
- oci/fleet_apps_management/models/fleet_resource.py +21 -15
- oci/fleet_apps_management/models/fleet_resource_collection.py +1 -1
- oci/fleet_apps_management/models/fleet_resource_summary.py +20 -14
- oci/fleet_apps_management/models/fleet_summary.py +15 -5
- oci/fleet_apps_management/models/fleet_target.py +98 -5
- oci/fleet_apps_management/models/fleet_target_summary.py +98 -5
- oci/fleet_apps_management/models/generate_compliance_report_details.py +5 -3
- oci/fleet_apps_management/models/generic_artifact.py +68 -0
- oci/fleet_apps_management/models/generic_artifact_details.py +78 -0
- oci/fleet_apps_management/models/group.py +11 -5
- oci/fleet_apps_management/models/input_argument.py +2 -2
- oci/fleet_apps_management/models/inventory_resource_summary.py +6 -6
- oci/fleet_apps_management/models/job_activity.py +57 -18
- oci/fleet_apps_management/models/key_encryption_credential_details.py +5 -5
- oci/fleet_apps_management/models/maintenance_window.py +19 -11
- oci/fleet_apps_management/models/maintenance_window_collection.py +1 -1
- oci/fleet_apps_management/models/maintenance_window_summary.py +18 -10
- oci/fleet_apps_management/models/manage_job_execution_details.py +68 -0
- oci/fleet_apps_management/models/manage_settings_details.py +72 -0
- oci/fleet_apps_management/models/managed_entity_aggregation.py +99 -0
- oci/fleet_apps_management/models/managed_entity_aggregation_collection.py +72 -0
- oci/fleet_apps_management/models/managed_entity_dimension.py +88 -0
- oci/fleet_apps_management/models/model_property.py +9 -9
- oci/fleet_apps_management/models/notification_preferences.py +7 -5
- oci/fleet_apps_management/models/object_storage_bucket_content_details.py +3 -3
- oci/fleet_apps_management/models/onboarding.py +70 -7
- oci/fleet_apps_management/models/onboarding_collection.py +3 -3
- oci/fleet_apps_management/models/onboarding_policy_collection.py +3 -3
- oci/fleet_apps_management/models/onboarding_policy_summary.py +1 -1
- oci/fleet_apps_management/models/onboarding_summary.py +69 -7
- oci/fleet_apps_management/models/outcome.py +7 -7
- oci/fleet_apps_management/models/output_variable_details.py +2 -2
- oci/fleet_apps_management/models/output_variable_input_argument.py +1 -1
- oci/fleet_apps_management/models/output_variable_mapping.py +4 -3
- oci/fleet_apps_management/models/patch.py +704 -0
- oci/fleet_apps_management/models/patch_collection.py +72 -0
- oci/fleet_apps_management/models/patch_level_selection_details.py +106 -0
- oci/fleet_apps_management/models/patch_name_selection_details.py +83 -0
- oci/fleet_apps_management/models/patch_product.py +103 -0
- oci/fleet_apps_management/models/patch_release_date_selection_details.py +83 -0
- oci/fleet_apps_management/models/patch_selection_details.py +117 -0
- oci/fleet_apps_management/models/patch_summary.py +625 -0
- oci/fleet_apps_management/models/patch_type.py +72 -0
- oci/fleet_apps_management/models/patch_type_config_category_details.py +52 -0
- oci/fleet_apps_management/models/pause_details.py +109 -0
- oci/fleet_apps_management/models/plain_text_credential_details.py +2 -2
- oci/fleet_apps_management/models/platform_configuration.py +529 -0
- oci/fleet_apps_management/models/platform_configuration_collection.py +72 -0
- oci/fleet_apps_management/models/platform_configuration_summary.py +485 -0
- oci/fleet_apps_management/models/platform_specific_artifact.py +162 -0
- oci/fleet_apps_management/models/platform_specific_artifact_details.py +82 -0
- oci/fleet_apps_management/models/preferences.py +3 -3
- oci/fleet_apps_management/models/product_config_category_details.py +215 -0
- oci/fleet_apps_management/models/product_stack_as_product_sub_category_details.py +182 -0
- oci/fleet_apps_management/models/product_stack_config_category_details.py +112 -0
- oci/fleet_apps_management/models/product_stack_generic_sub_category_details.py +51 -0
- oci/fleet_apps_management/models/product_stack_sub_category_details.py +109 -0
- oci/fleet_apps_management/models/product_version_details.py +105 -0
- oci/fleet_apps_management/models/property_collection.py +3 -3
- oci/fleet_apps_management/models/property_summary.py +8 -8
- oci/fleet_apps_management/models/publish_runbook_details.py +72 -0
- oci/fleet_apps_management/models/request_resource_validation_details.py +5 -5
- oci/fleet_apps_management/models/request_target_discovery_details.py +5 -5
- oci/fleet_apps_management/models/resource_collection.py +72 -0
- oci/fleet_apps_management/models/resource_credential_entity_specific_details.py +82 -0
- oci/fleet_apps_management/models/resource_summary.py +347 -0
- oci/fleet_apps_management/models/resource_tag_check_details.py +3 -3
- oci/fleet_apps_management/models/resource_tag_enablement_info.py +3 -3
- oci/fleet_apps_management/models/rollback_workflow_details.py +119 -0
- oci/fleet_apps_management/models/rule.py +15 -7
- oci/fleet_apps_management/models/runbook.py +28 -9
- oci/fleet_apps_management/models/runbook_collection.py +1 -1
- oci/fleet_apps_management/models/runbook_summary.py +6 -4
- oci/fleet_apps_management/models/scheduler_definition.py +16 -16
- oci/fleet_apps_management/models/scheduler_job.py +24 -20
- oci/fleet_apps_management/models/scheduler_job_aggregation.py +99 -0
- oci/fleet_apps_management/models/scheduler_job_aggregation_collection.py +72 -0
- oci/fleet_apps_management/models/scheduler_job_collection.py +1 -1
- oci/fleet_apps_management/models/scheduler_job_dimension.py +72 -0
- oci/fleet_apps_management/models/scheduler_job_summary.py +20 -16
- oci/fleet_apps_management/models/script_based_execution_details.py +38 -5
- oci/fleet_apps_management/models/selection_criteria.py +6 -3
- oci/fleet_apps_management/models/set_default_runbook_details.py +72 -0
- oci/fleet_apps_management/models/step_based_user_action_details.py +183 -0
- oci/fleet_apps_management/models/step_collection.py +72 -0
- oci/fleet_apps_management/models/step_summary.py +378 -0
- oci/fleet_apps_management/models/target_credential_entity_specific_details.py +6 -6
- oci/fleet_apps_management/models/target_resource.py +1 -1
- oci/fleet_apps_management/models/task_notification_preferences.py +134 -0
- oci/fleet_apps_management/models/task_record.py +1 -1
- oci/fleet_apps_management/models/task_variable.py +2 -1
- oci/fleet_apps_management/models/time_based_pause_details.py +82 -0
- oci/fleet_apps_management/models/update_compliance_policy_rule_details.py +283 -0
- oci/fleet_apps_management/models/update_fleet_details.py +4 -2
- oci/fleet_apps_management/models/update_fleet_property_details.py +3 -3
- oci/fleet_apps_management/models/update_fleet_resource_details.py +1 -1
- oci/fleet_apps_management/models/update_maintenance_window_details.py +18 -10
- oci/fleet_apps_management/models/update_onboarding_details.py +103 -0
- oci/fleet_apps_management/models/update_patch_details.py +369 -0
- oci/fleet_apps_management/models/update_platform_configuration_details.py +138 -0
- oci/fleet_apps_management/models/update_property_details.py +6 -6
- oci/fleet_apps_management/models/update_runbook_details.py +410 -0
- oci/fleet_apps_management/models/update_scheduler_job_details.py +3 -3
- oci/fleet_apps_management/models/update_task_record_details.py +204 -0
- oci/fleet_apps_management/models/user_action_based_pause_details.py +51 -0
- oci/fleet_apps_management/models/user_action_details.py +157 -0
- oci/fleet_apps_management/models/variable.py +103 -0
- oci/fleet_apps_management/models/work_request.py +67 -3
- oci/fleet_apps_management/models/work_request_summary.py +67 -3
- oci/fleet_apps_management/models/workflow_group.py +2 -2
- oci/fleet_apps_management/models/workflow_group_component.py +4 -4
- oci/fleet_software_update/fleet_software_update_client.py +46 -46
- oci/functions/functions_invoke_client.py +1 -1
- oci/functions/functions_management_client.py +16 -16
- oci/fusion_apps/fusion_applications_client.py +41 -41
- oci/generative_ai/generative_ai_client.py +22 -22
- oci/generative_ai_agent/generative_ai_agent_client.py +33 -33
- oci/generative_ai_agent_runtime/generative_ai_agent_runtime_client.py +5 -5
- oci/generative_ai_inference/generative_ai_inference_client.py +4 -4
- oci/generic_artifacts_content/generic_artifacts_content_client.py +3 -3
- oci/globally_distributed_database/sharded_database_service_client.py +30 -30
- oci/golden_gate/golden_gate_client.py +69 -69
- oci/governance_rules_control_plane/governance_rule_client.py +15 -15
- oci/governance_rules_control_plane/work_request_client.py +5 -5
- oci/healthchecks/health_checks_client.py +17 -17
- oci/identity/identity_client.py +145 -145
- oci/identity_data_plane/dataplane_client.py +2 -2
- oci/identity_domains/identity_domains_client.py +307 -307
- oci/identity_domains/models/auth_token.py +51 -0
- oci/identity_domains/models/customer_secret_key.py +45 -0
- oci/identity_domains/models/o_auth2_client_credential.py +49 -0
- oci/identity_domains/models/smtp_credential.py +47 -0
- oci/integration/integration_instance_client.py +19 -19
- oci/jms/java_management_service_client.py +75 -75
- oci/jms_java_downloads/java_download_client.py +25 -25
- oci/key_management/ekm_client.py +5 -5
- oci/key_management/kms_crypto_client.py +6 -6
- oci/key_management/kms_hsm_cluster_client.py +12 -12
- oci/key_management/kms_management_client.py +21 -21
- oci/key_management/kms_vault_client.py +14 -14
- oci/license_manager/license_manager_client.py +18 -18
- oci/limits/limits_client.py +4 -4
- oci/limits/quotas_client.py +7 -7
- oci/load_balancer/load_balancer_client.py +61 -61
- oci/load_balancer/models/create_listener_details.py +4 -6
- oci/load_balancer/models/listener.py +4 -6
- oci/load_balancer/models/listener_details.py +4 -6
- oci/load_balancer/models/update_listener_details.py +4 -6
- oci/lockbox/lockbox_client.py +24 -24
- oci/log_analytics/log_analytics_client.py +193 -193
- oci/logging/logging_management_client.py +30 -30
- oci/loggingingestion/logging_client.py +1 -1
- oci/loggingsearch/log_search_client.py +1 -1
- oci/management_agent/management_agent_client.py +28 -28
- oci/management_dashboard/dashx_apis_client.py +14 -14
- oci/marketplace/account_client.py +2 -2
- oci/marketplace/marketplace_client.py +30 -30
- oci/marketplace_private_offer/attachment_client.py +5 -5
- oci/marketplace_private_offer/offer_client.py +6 -6
- oci/marketplace_publisher/attachment_client.py +5 -5
- oci/marketplace_publisher/marketplace_publisher_client.py +71 -71
- oci/marketplace_publisher/offer_client.py +6 -6
- oci/media_services/media_services_client.py +60 -60
- oci/media_services/media_stream_client.py +2 -2
- oci/monitoring/monitoring_client.py +18 -18
- oci/mysql/channels_client.py +7 -7
- oci/mysql/db_backups_client.py +7 -7
- oci/mysql/db_system_client.py +17 -17
- oci/mysql/mysqlaas_client.py +7 -7
- oci/mysql/replicas_client.py +5 -5
- oci/mysql/work_requests_client.py +4 -4
- oci/network_firewall/network_firewall_client.py +86 -86
- oci/network_load_balancer/models/backend_set.py +0 -4
- oci/network_load_balancer/models/backend_set_details.py +0 -4
- oci/network_load_balancer/models/backend_set_summary.py +7 -5
- oci/network_load_balancer/models/create_listener_details.py +42 -5
- oci/network_load_balancer/models/listener.py +42 -5
- oci/network_load_balancer/models/listener_details.py +42 -5
- oci/network_load_balancer/models/listener_summary.py +42 -5
- oci/network_load_balancer/models/update_listener_details.py +42 -5
- oci/network_load_balancer/network_load_balancer_client.py +34 -34
- oci/nosql/nosql_client.py +24 -24
- oci/object_storage/object_storage_client.py +55 -55
- oci/oce/oce_instance_client.py +10 -10
- oci/oci_control_center/occ_metrics_client.py +3 -3
- oci/ocvp/cluster_client.py +5 -5
- oci/ocvp/esxi_host_client.py +8 -8
- oci/ocvp/sddc_client.py +14 -14
- oci/ocvp/work_request_client.py +4 -4
- oci/oda/management_client.py +59 -59
- oci/oda/oda_client.py +17 -17
- oci/oda/odapackage_client.py +7 -7
- oci/onesubscription/billing_schedule_client.py +1 -1
- oci/onesubscription/commitment_client.py +2 -2
- oci/onesubscription/computed_usage_client.py +3 -3
- oci/onesubscription/invoice_summary_client.py +2 -2
- oci/onesubscription/organization_subscription_client.py +1 -1
- oci/onesubscription/ratecard_client.py +1 -1
- oci/onesubscription/subscribed_service_client.py +2 -2
- oci/onesubscription/subscription_client.py +1 -1
- oci/ons/notification_control_plane_client.py +6 -6
- oci/ons/notification_data_plane_client.py +10 -10
- oci/opa/opa_instance_client.py +13 -13
- oci/opensearch/opensearch_cluster_backup_client.py +4 -4
- oci/opensearch/opensearch_cluster_client.py +14 -14
- oci/operator_access_control/access_requests_client.py +20 -20
- oci/operator_access_control/operator_actions_client.py +4 -4
- oci/operator_access_control/operator_control_assignment_client.py +16 -16
- oci/operator_access_control/operator_control_client.py +12 -12
- oci/opsi/models/__init__.py +8 -0
- oci/opsi/models/host_configuration_metric_group.py +11 -3
- oci/opsi/models/host_containers.py +65 -3
- oci/opsi/models/host_cpu_hardware_configuration.py +1 -1
- oci/opsi/models/host_cpu_statistics.py +1 -1
- oci/opsi/models/host_cpu_usage.py +1 -1
- oci/opsi/models/host_entities.py +1 -1
- oci/opsi/models/host_filesystem_configuration.py +1 -1
- oci/opsi/models/host_filesystem_usage.py +1 -1
- oci/opsi/models/host_gpu_configuration.py +1 -1
- oci/opsi/models/host_gpu_processes.py +1 -1
- oci/opsi/models/host_gpu_usage.py +1 -1
- oci/opsi/models/host_hardware_configuration.py +1 -1
- oci/opsi/models/host_io_statistics.py +160 -0
- oci/opsi/models/host_io_usage.py +1 -1
- oci/opsi/models/host_memory_configuration.py +1 -1
- oci/opsi/models/host_memory_statistics.py +1 -1
- oci/opsi/models/host_memory_usage.py +1 -1
- oci/opsi/models/host_network_activity_summary.py +1 -1
- oci/opsi/models/host_network_configuration.py +1 -1
- oci/opsi/models/host_network_statistics.py +1 -1
- oci/opsi/models/host_performance_metric_group.py +3 -11
- oci/opsi/models/host_product.py +1 -1
- oci/opsi/models/host_resource_allocation.py +1 -1
- oci/opsi/models/host_resource_statistics.py +11 -3
- oci/opsi/models/host_storage_statistics.py +1 -1
- oci/opsi/models/host_top_processes.py +1 -1
- oci/opsi/models/io_usage_trend.py +227 -0
- oci/opsi/models/io_usage_trend_aggregation.py +103 -0
- oci/opsi/models/summarize_host_insight_host_recommendation_aggregation.py +7 -3
- oci/opsi/models/summarize_host_insight_io_usage_trend_aggregation_collection.py +165 -0
- oci/opsi/models/summarize_host_insight_resource_capacity_trend_aggregation_collection.py +7 -3
- oci/opsi/models/summarize_host_insight_resource_forecast_trend_aggregation.py +7 -3
- oci/opsi/models/summarize_host_insight_resource_statistics_aggregation_collection.py +7 -3
- oci/opsi/models/summarize_host_insight_resource_usage_aggregation.py +7 -3
- oci/opsi/models/summarize_host_insight_resource_usage_trend_aggregation_collection.py +7 -3
- oci/opsi/models/summarize_host_insight_resource_utilization_insight_aggregation.py +7 -3
- oci/opsi/operations_insights_client.py +362 -179
- oci/optimizer/optimizer_client.py +26 -26
- oci/os_management/event_client.py +8 -8
- oci/os_management/os_management_client.py +69 -69
- oci/os_management_hub/event_client.py +8 -8
- oci/os_management_hub/lifecycle_environment_client.py +12 -12
- oci/os_management_hub/managed_instance_client.py +31 -31
- oci/os_management_hub/managed_instance_group_client.py +25 -25
- oci/os_management_hub/management_station_client.py +10 -10
- oci/os_management_hub/onboarding_client.py +6 -6
- oci/os_management_hub/reporting_managed_instance_client.py +3 -3
- oci/os_management_hub/scheduled_job_client.py +7 -7
- oci/os_management_hub/software_source_client.py +27 -27
- oci/os_management_hub/work_request_client.py +4 -4
- oci/osp_gateway/address_rule_service_client.py +1 -1
- oci/osp_gateway/address_service_client.py +2 -2
- oci/osp_gateway/invoice_service_client.py +5 -5
- oci/osp_gateway/subscription_service_client.py +5 -5
- oci/osub_billing_schedule/billing_schedule_client.py +1 -1
- oci/osub_organization_subscription/organization_subscription_client.py +1 -1
- oci/osub_subscription/commitment_client.py +2 -2
- oci/osub_subscription/ratecard_client.py +1 -1
- oci/osub_subscription/subscription_client.py +1 -1
- oci/osub_usage/computed_usage_client.py +3 -3
- oci/psql/postgresql_client.py +33 -33
- oci/queue/queue_admin_client.py +11 -11
- oci/queue/queue_client.py +8 -8
- oci/recovery/database_recovery_client.py +26 -26
- oci/redis/redis_cluster_client.py +12 -12
- oci/resource_manager/resource_manager_client.py +52 -52
- oci/resource_scheduler/schedule_client.py +13 -13
- oci/resource_search/resource_search_client.py +3 -3
- oci/rover/rover_bundle_client.py +8 -8
- oci/rover/rover_cluster_client.py +8 -8
- oci/rover/rover_entitlement_client.py +6 -6
- oci/rover/rover_node_client.py +15 -15
- oci/rover/shape_client.py +1 -1
- oci/rover/work_requests_client.py +5 -5
- oci/sch/connector_plugins_client.py +2 -2
- oci/sch/service_connector_client.py +12 -12
- oci/secrets/secrets_client.py +3 -3
- oci/security_attribute/security_attribute_client.py +18 -18
- oci/service_catalog/service_catalog_client.py +26 -26
- oci/service_manager_proxy/service_manager_proxy_client.py +2 -2
- oci/service_mesh/service_mesh_client.py +48 -48
- oci/stack_monitoring/stack_monitoring_client.py +71 -71
- oci/streaming/stream_admin_client.py +18 -18
- oci/streaming/stream_client.py +8 -8
- oci/tenant_manager_control_plane/domain_client.py +5 -5
- oci/tenant_manager_control_plane/domain_governance_client.py +5 -5
- oci/tenant_manager_control_plane/governance_client.py +2 -2
- oci/tenant_manager_control_plane/link_client.py +3 -3
- oci/tenant_manager_control_plane/orders_client.py +2 -2
- oci/tenant_manager_control_plane/organization_client.py +10 -10
- oci/tenant_manager_control_plane/recipient_invitation_client.py +5 -5
- oci/tenant_manager_control_plane/sender_invitation_client.py +5 -5
- oci/tenant_manager_control_plane/subscription_client.py +11 -11
- oci/tenant_manager_control_plane/work_request_client.py +4 -4
- oci/threat_intelligence/threatintel_client.py +5 -5
- oci/usage/resources_client.py +2 -2
- oci/usage/rewards_client.py +6 -6
- oci/usage/usagelimits_client.py +1 -1
- oci/usage_api/usageapi_client.py +33 -33
- oci/vault/vaults_client.py +13 -13
- oci/vbs_inst/vbs_instance_client.py +10 -10
- oci/version.py +1 -1
- oci/visual_builder/vb_instance_client.py +13 -13
- oci/vn_monitoring/vn_monitoring_client.py +12 -12
- oci/vulnerability_scanning/vulnerability_scanning_client.py +58 -58
- oci/waa/waa_client.py +13 -13
- oci/waa/work_request_client.py +4 -4
- oci/waas/redirect_client.py +6 -6
- oci/waas/waas_client.py +66 -66
- oci/waf/waf_client.py +24 -24
- oci/work_requests/work_request_client.py +4 -4
- oci/zpr/zpr_client.py +15 -15
- {oci-2.136.0.dist-info → oci-2.137.1.dist-info}/METADATA +1 -1
- {oci-2.136.0.dist-info → oci-2.137.1.dist-info}/RECORD +626 -506
- oci/_vendor/jwt/__main__.py +0 -173
- oci/_vendor/jwt/compat.py +0 -73
- oci/_vendor/jwt/contrib/__init__.py +0 -0
- oci/_vendor/jwt/contrib/algorithms/__init__.py +0 -0
- oci/_vendor/jwt/contrib/algorithms/py_ecdsa.py +0 -60
- oci/_vendor/jwt/contrib/algorithms/pycrypto.py +0 -46
- {oci-2.136.0.dist-info → oci-2.137.1.dist-info}/LICENSE.txt +0 -0
- {oci-2.136.0.dist-info → oci-2.137.1.dist-info}/THIRD_PARTY_LICENSES.txt +0 -0
- {oci-2.136.0.dist-info → oci-2.137.1.dist-info}/WHEEL +0 -0
- {oci-2.136.0.dist-info → oci-2.137.1.dist-info}/top_level.txt +0 -0
oci/_vendor/jwt/api_jwt.py
CHANGED
@@ -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
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
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,
|
21
|
-
|
22
|
-
|
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
|
28
|
-
|
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
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
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(
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
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(
|
55
|
-
|
53
|
+
raise TypeError(
|
54
|
+
"Expecting a mapping object, as JWT only supports "
|
55
|
+
"JSON objects as payloads."
|
56
|
+
)
|
56
57
|
|
57
58
|
# Payload
|
58
|
-
|
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())
|
63
|
+
payload[time_claim] = timegm(payload[time_claim].utctimetuple())
|
62
64
|
|
63
65
|
json_payload = json.dumps(
|
64
|
-
payload,
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
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
|
-
|
84
|
-
|
85
|
-
|
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
|
-
|
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
|
92
|
-
|
93
|
-
|
94
|
-
|
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 =
|
97
|
-
jwt,
|
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
|
114
|
+
payload = json.loads(decoded["payload"])
|
102
115
|
except ValueError as e:
|
103
|
-
raise DecodeError(
|
104
|
-
if not isinstance(payload,
|
105
|
-
raise DecodeError(
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
return
|
112
|
-
|
113
|
-
def
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
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, (
|
126
|
-
raise TypeError(
|
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.
|
148
|
+
now = timegm(datetime.now(tz=timezone.utc).utctimetuple())
|
131
149
|
|
132
|
-
if
|
150
|
+
if "iat" in payload and options["verify_iat"]:
|
133
151
|
self._validate_iat(payload, now, leeway)
|
134
152
|
|
135
|
-
if
|
153
|
+
if "nbf" in payload and options["verify_nbf"]:
|
136
154
|
self._validate_nbf(payload, now, leeway)
|
137
155
|
|
138
|
-
if
|
156
|
+
if "exp" in payload and options["verify_exp"]:
|
139
157
|
self._validate_exp(payload, now, leeway)
|
140
158
|
|
141
|
-
if options
|
159
|
+
if options["verify_iss"]:
|
142
160
|
self._validate_iss(payload, issuer)
|
143
161
|
|
144
|
-
if options
|
162
|
+
if options["verify_aud"]:
|
145
163
|
self._validate_aud(payload, audience)
|
146
164
|
|
147
165
|
def _validate_required_claims(self, payload, options):
|
148
|
-
|
149
|
-
|
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[
|
172
|
+
int(payload["iat"])
|
160
173
|
except ValueError:
|
161
|
-
raise InvalidIssuedAtError(
|
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[
|
178
|
+
nbf = int(payload["nbf"])
|
166
179
|
except ValueError:
|
167
|
-
raise DecodeError(
|
180
|
+
raise DecodeError("Not Before claim (nbf) must be an integer.")
|
168
181
|
|
169
182
|
if nbf > (now + leeway):
|
170
|
-
raise ImmatureSignatureError(
|
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[
|
187
|
+
exp = int(payload["exp"])
|
175
188
|
except ValueError:
|
176
|
-
raise DecodeError(
|
177
|
-
' integer.')
|
189
|
+
raise DecodeError("Expiration Time claim (exp) must be an" " integer.")
|
178
190
|
|
179
191
|
if exp < (now - leeway):
|
180
|
-
raise ExpiredSignatureError(
|
192
|
+
raise ExpiredSignatureError("Signature has expired")
|
181
193
|
|
182
194
|
def _validate_aud(self, payload, audience):
|
183
|
-
if audience is None
|
184
|
-
|
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
|
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(
|
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[
|
207
|
+
audience_claims = payload["aud"]
|
197
208
|
|
198
|
-
if isinstance(audience_claims,
|
209
|
+
if isinstance(audience_claims, str):
|
199
210
|
audience_claims = [audience_claims]
|
200
211
|
if not isinstance(audience_claims, list):
|
201
|
-
raise InvalidAudienceError(
|
202
|
-
if any(not isinstance(c,
|
203
|
-
raise InvalidAudienceError(
|
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,
|
216
|
+
if isinstance(audience, str):
|
206
217
|
audience = [audience]
|
207
218
|
|
208
|
-
if
|
209
|
-
raise InvalidAudienceError(
|
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
|
216
|
-
raise MissingRequiredClaimError(
|
226
|
+
if "iss" not in payload:
|
227
|
+
raise MissingRequiredClaimError("iss")
|
217
228
|
|
218
|
-
if payload[
|
219
|
-
raise InvalidIssuerError(
|
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
|
oci/_vendor/jwt/exceptions.py
CHANGED
@@ -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 "
|
59
|
+
return f'Token is missing the "{self.claim}" claim'
|
60
|
+
|
61
|
+
|
62
|
+
class PyJWKError(PyJWTError):
|
63
|
+
pass
|
59
64
|
|
60
65
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
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
|
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 = {
|
32
|
-
|
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 =
|
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": {
|
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"))
|