osdu-python-client 0.4.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.
- osdu_python_client/__init__.py +31 -0
- osdu_python_client/async_client.py +108 -0
- osdu_python_client/async_client.pyi +57 -0
- osdu_python_client/auth/__init__.py +69 -0
- osdu_python_client/auth/_base.py +60 -0
- osdu_python_client/auth/aws.py +101 -0
- osdu_python_client/auth/azure.py +375 -0
- osdu_python_client/auth/ci.py +105 -0
- osdu_python_client/auth/gcp.py +103 -0
- osdu_python_client/auth/ibm.py +102 -0
- osdu_python_client/client.py +107 -0
- osdu_python_client/client.pyi +57 -0
- osdu_python_client/config.py +44 -0
- osdu_python_client/errors.py +16 -0
- osdu_python_client/generated/__init__.py +0 -0
- osdu_python_client/generated/crs_catalog/__init__.py +8 -0
- osdu_python_client/generated/crs_catalog/_facade.pyi +291 -0
- osdu_python_client/generated/crs_catalog/api/__init__.py +1 -0
- osdu_python_client/generated/crs_catalog/api/area_of_use_api_v3/__init__.py +1 -0
- osdu_python_client/generated/crs_catalog/api/area_of_use_api_v3/get_aou_info.py +223 -0
- osdu_python_client/generated/crs_catalog/api/areas_of_use_api/__init__.py +1 -0
- osdu_python_client/generated/crs_catalog/api/areas_of_use_api/get_area_of_use.py +247 -0
- osdu_python_client/generated/crs_catalog/api/areas_of_use_api/get_areas_of_use.py +255 -0
- osdu_python_client/generated/crs_catalog/api/areas_of_use_api/search_areas_of_use.py +353 -0
- osdu_python_client/generated/crs_catalog/api/cartographic_transformations_api/__init__.py +1 -0
- osdu_python_client/generated/crs_catalog/api/cartographic_transformations_api/get_compound_ct.py +251 -0
- osdu_python_client/generated/crs_catalog/api/cartographic_transformations_api/get_ct.py +255 -0
- osdu_python_client/generated/crs_catalog/api/cartographic_transformations_api/get_single_ct.py +251 -0
- osdu_python_client/generated/crs_catalog/api/cartographic_transformations_api/search_c_ts.py +357 -0
- osdu_python_client/generated/crs_catalog/api/coordinate_reference_systems_api/__init__.py +1 -0
- osdu_python_client/generated/crs_catalog/api/coordinate_reference_systems_api/get_compound_crs.py +251 -0
- osdu_python_client/generated/crs_catalog/api/coordinate_reference_systems_api/get_crs.py +255 -0
- osdu_python_client/generated/crs_catalog/api/coordinate_reference_systems_api/get_early_bound_crs.py +255 -0
- osdu_python_client/generated/crs_catalog/api/coordinate_reference_systems_api/get_late_bound_crs.py +255 -0
- osdu_python_client/generated/crs_catalog/api/coordinate_reference_systems_api/search_cr_ses.py +365 -0
- osdu_python_client/generated/crs_catalog/api/coordinate_reference_systems_api_v3/__init__.py +1 -0
- osdu_python_client/generated/crs_catalog/api/coordinate_reference_systems_api_v3/get_coordinate_reference_system.py +240 -0
- osdu_python_client/generated/crs_catalog/api/coordinate_reference_systems_api_v3/get_coordinate_reference_systems.py +224 -0
- osdu_python_client/generated/crs_catalog/api/coordinate_transformations_api_v3/__init__.py +1 -0
- osdu_python_client/generated/crs_catalog/api/coordinate_transformations_api_v3/get_coordinate_transformation.py +240 -0
- osdu_python_client/generated/crs_catalog/api/coordinate_transformations_api_v3/get_coordinate_transformations.py +224 -0
- osdu_python_client/generated/crs_catalog/api/crs_catalog_api/__init__.py +1 -0
- osdu_python_client/generated/crs_catalog/api/crs_catalog_api/get_catalog.py +213 -0
- osdu_python_client/generated/crs_catalog/api/crs_catalog_api/get_catalog_attributes.py +205 -0
- osdu_python_client/generated/crs_catalog/api/health_check_api/__init__.py +1 -0
- osdu_python_client/generated/crs_catalog/api/health_check_api/liveness_check.py +182 -0
- osdu_python_client/generated/crs_catalog/api/health_check_api/liveness_check_1.py +182 -0
- osdu_python_client/generated/crs_catalog/api/health_check_api/readiness_check.py +182 -0
- osdu_python_client/generated/crs_catalog/api/health_check_api/readiness_check_1.py +182 -0
- osdu_python_client/generated/crs_catalog/api/info_api/__init__.py +1 -0
- osdu_python_client/generated/crs_catalog/api/info_api/info_1.py +180 -0
- osdu_python_client/generated/crs_catalog/api/info_api_v3/__init__.py +1 -0
- osdu_python_client/generated/crs_catalog/api/info_api_v3/info.py +180 -0
- osdu_python_client/generated/crs_catalog/client.py +282 -0
- osdu_python_client/generated/crs_catalog/errors.py +16 -0
- osdu_python_client/generated/crs_catalog/models/__init__.py +141 -0
- osdu_python_client/generated/crs_catalog/models/aggregation_response.py +70 -0
- osdu_python_client/generated/crs_catalog/models/app_error.py +79 -0
- osdu_python_client/generated/crs_catalog/models/area_of_use.py +187 -0
- osdu_python_client/generated/crs_catalog/models/area_of_use_deprecation_info.py +92 -0
- osdu_python_client/generated/crs_catalog/models/area_of_use_essence.py +110 -0
- osdu_python_client/generated/crs_catalog/models/area_of_use_essence_impl.py +111 -0
- osdu_python_client/generated/crs_catalog/models/area_of_use_request.py +84 -0
- osdu_python_client/generated/crs_catalog/models/area_of_use_results.py +109 -0
- osdu_python_client/generated/crs_catalog/models/authority_code.py +70 -0
- osdu_python_client/generated/crs_catalog/models/base_crs.py +71 -0
- osdu_python_client/generated/crs_catalog/models/catalog.py +332 -0
- osdu_python_client/generated/crs_catalog/models/catalog_attributes.py +79 -0
- osdu_python_client/generated/crs_catalog/models/compound_crs.py +259 -0
- osdu_python_client/generated/crs_catalog/models/compound_crs_essence.py +171 -0
- osdu_python_client/generated/crs_catalog/models/compound_crs_essence_impl.py +216 -0
- osdu_python_client/generated/crs_catalog/models/compound_crs_request.py +87 -0
- osdu_python_client/generated/crs_catalog/models/compound_crs_results.py +109 -0
- osdu_python_client/generated/crs_catalog/models/compound_ct.py +260 -0
- osdu_python_client/generated/crs_catalog/models/compound_ct_essence.py +156 -0
- osdu_python_client/generated/crs_catalog/models/compound_ct_essence_impl.py +133 -0
- osdu_python_client/generated/crs_catalog/models/compound_ct_request.py +86 -0
- osdu_python_client/generated/crs_catalog/models/compound_ct_results.py +109 -0
- osdu_python_client/generated/crs_catalog/models/connected_outer_service.py +70 -0
- osdu_python_client/generated/crs_catalog/models/coordinate_reference_systems_query.py +291 -0
- osdu_python_client/generated/crs_catalog/models/coordinate_transformations_query.py +192 -0
- osdu_python_client/generated/crs_catalog/models/crs.py +241 -0
- osdu_python_client/generated/crs_catalog/models/crs_deprecation_info.py +92 -0
- osdu_python_client/generated/crs_catalog/models/crs_essence.py +101 -0
- osdu_python_client/generated/crs_catalog/models/crs_essence_impl.py +103 -0
- osdu_python_client/generated/crs_catalog/models/crs_request.py +104 -0
- osdu_python_client/generated/crs_catalog/models/crs_results.py +109 -0
- osdu_python_client/generated/crs_catalog/models/ct.py +219 -0
- osdu_python_client/generated/crs_catalog/models/ct_deprecation_info.py +92 -0
- osdu_python_client/generated/crs_catalog/models/ct_essence.py +101 -0
- osdu_python_client/generated/crs_catalog/models/ct_essence_impl.py +102 -0
- osdu_python_client/generated/crs_catalog/models/ct_request.py +103 -0
- osdu_python_client/generated/crs_catalog/models/ct_results.py +109 -0
- osdu_python_client/generated/crs_catalog/models/cursor_query_response.py +103 -0
- osdu_python_client/generated/crs_catalog/models/cursor_query_response_results_item.py +47 -0
- osdu_python_client/generated/crs_catalog/models/datum.py +80 -0
- osdu_python_client/generated/crs_catalog/models/deprecation_info.py +70 -0
- osdu_python_client/generated/crs_catalog/models/early_bound_crs.py +261 -0
- osdu_python_client/generated/crs_catalog/models/early_bound_crs_essence.py +173 -0
- osdu_python_client/generated/crs_catalog/models/early_bound_crs_essence_impl.py +156 -0
- osdu_python_client/generated/crs_catalog/models/early_bound_crs_request.py +87 -0
- osdu_python_client/generated/crs_catalog/models/early_bound_crs_results.py +109 -0
- osdu_python_client/generated/crs_catalog/models/essence.py +83 -0
- osdu_python_client/generated/crs_catalog/models/in_polygon_query.py +127 -0
- osdu_python_client/generated/crs_catalog/models/late_bound_crs.py +261 -0
- osdu_python_client/generated/crs_catalog/models/late_bound_crs_essence.py +110 -0
- osdu_python_client/generated/crs_catalog/models/late_bound_crs_essence_impl.py +111 -0
- osdu_python_client/generated/crs_catalog/models/late_bound_crs_request.py +87 -0
- osdu_python_client/generated/crs_catalog/models/late_bound_crs_results.py +109 -0
- osdu_python_client/generated/crs_catalog/models/named_reference.py +71 -0
- osdu_python_client/generated/crs_catalog/models/point.py +71 -0
- osdu_python_client/generated/crs_catalog/models/points_in_aou_search_point.py +93 -0
- osdu_python_client/generated/crs_catalog/models/points_in_aou_search_result.py +92 -0
- osdu_python_client/generated/crs_catalog/models/query_response.py +125 -0
- osdu_python_client/generated/crs_catalog/models/query_response_results_item.py +47 -0
- osdu_python_client/generated/crs_catalog/models/search_request.py +62 -0
- osdu_python_client/generated/crs_catalog/models/search_response.py +104 -0
- osdu_python_client/generated/crs_catalog/models/single_ct.py +237 -0
- osdu_python_client/generated/crs_catalog/models/single_ct_essence.py +110 -0
- osdu_python_client/generated/crs_catalog/models/single_ct_essence_impl.py +111 -0
- osdu_python_client/generated/crs_catalog/models/single_ct_request.py +86 -0
- osdu_python_client/generated/crs_catalog/models/single_ct_results.py +109 -0
- osdu_python_client/generated/crs_catalog/models/spherical_bounding_box.py +88 -0
- osdu_python_client/generated/crs_catalog/models/version_info.py +146 -0
- osdu_python_client/generated/crs_catalog/types.py +54 -0
- osdu_python_client/generated/crs_conversion/__init__.py +8 -0
- osdu_python_client/generated/crs_conversion/_facade.pyi +205 -0
- osdu_python_client/generated/crs_conversion/api/__init__.py +1 -0
- osdu_python_client/generated/crs_conversion/api/convert_trajectory_api_v2/__init__.py +1 -0
- osdu_python_client/generated/crs_conversion/api/convert_trajectory_api_v2/convert_trajectory_2.py +194 -0
- osdu_python_client/generated/crs_conversion/api/convert_trajectory_api_v3/__init__.py +1 -0
- osdu_python_client/generated/crs_conversion/api/convert_trajectory_api_v3/convert_trajectory_1.py +194 -0
- osdu_python_client/generated/crs_conversion/api/crs_converter_api_v2/__init__.py +1 -0
- osdu_python_client/generated/crs_conversion/api/crs_converter_api_v2/convert_geo_json_1.py +194 -0
- osdu_python_client/generated/crs_conversion/api/crs_converter_api_v2/convert_point_1.py +202 -0
- osdu_python_client/generated/crs_conversion/api/crs_converter_api_v3/__init__.py +1 -0
- osdu_python_client/generated/crs_conversion/api/crs_converter_api_v3/convert_bin_grid.py +210 -0
- osdu_python_client/generated/crs_conversion/api/crs_converter_api_v3/convert_geo_json.py +194 -0
- osdu_python_client/generated/crs_conversion/api/crs_converter_api_v3/convert_point.py +202 -0
- osdu_python_client/generated/crs_conversion/api/crs_converter_api_v4/__init__.py +1 -0
- osdu_python_client/generated/crs_conversion/api/crs_converter_api_v4/convert_geo_json_v4.py +194 -0
- osdu_python_client/generated/crs_conversion/api/crs_converter_api_v4/convert_point_v4.py +202 -0
- osdu_python_client/generated/crs_conversion/api/crs_converter_api_v_4_experimental/__init__.py +1 -0
- osdu_python_client/generated/crs_conversion/api/crs_converter_api_v_4_experimental/convert_trajectory.py +186 -0
- osdu_python_client/generated/crs_conversion/api/health_check_api/__init__.py +1 -0
- osdu_python_client/generated/crs_conversion/api/health_check_api/liveness_check.py +106 -0
- osdu_python_client/generated/crs_conversion/api/health_check_api/liveness_check_1.py +106 -0
- osdu_python_client/generated/crs_conversion/api/health_check_api/liveness_check_2.py +106 -0
- osdu_python_client/generated/crs_conversion/api/health_check_api/readiness_check.py +106 -0
- osdu_python_client/generated/crs_conversion/api/health_check_api/readiness_check_1.py +106 -0
- osdu_python_client/generated/crs_conversion/api/health_check_api/readiness_check_2.py +106 -0
- osdu_python_client/generated/crs_conversion/api/info_api/__init__.py +1 -0
- osdu_python_client/generated/crs_conversion/api/info_api/info.py +164 -0
- osdu_python_client/generated/crs_conversion/api/info_api/info_1.py +164 -0
- osdu_python_client/generated/crs_conversion/client.py +282 -0
- osdu_python_client/generated/crs_conversion/errors.py +16 -0
- osdu_python_client/generated/crs_conversion/models/__init__.py +83 -0
- osdu_python_client/generated/crs_conversion/models/abstract_any_crs_feature_collection.py +106 -0
- osdu_python_client/generated/crs_conversion/models/abstract_bin_grid.py +241 -0
- osdu_python_client/generated/crs_conversion/models/abstract_feature.py +101 -0
- osdu_python_client/generated/crs_conversion/models/abstract_feature_collection.py +88 -0
- osdu_python_client/generated/crs_conversion/models/abstract_spatial_location.py +207 -0
- osdu_python_client/generated/crs_conversion/models/app_error.py +79 -0
- osdu_python_client/generated/crs_conversion/models/connected_outer_service.py +70 -0
- osdu_python_client/generated/crs_conversion/models/convert_bin_grid_request.py +83 -0
- osdu_python_client/generated/crs_conversion/models/convert_bin_grid_response.py +103 -0
- osdu_python_client/generated/crs_conversion/models/convert_geo_json_request.py +96 -0
- osdu_python_client/generated/crs_conversion/models/convert_geo_json_request_v4.py +107 -0
- osdu_python_client/generated/crs_conversion/models/convert_geo_json_response.py +110 -0
- osdu_python_client/generated/crs_conversion/models/convert_points_request.py +118 -0
- osdu_python_client/generated/crs_conversion/models/convert_points_request_v4.py +136 -0
- osdu_python_client/generated/crs_conversion/models/convert_points_response.py +102 -0
- osdu_python_client/generated/crs_conversion/models/convert_trajectory_request.py +162 -0
- osdu_python_client/generated/crs_conversion/models/convert_trajectory_request_v4.py +199 -0
- osdu_python_client/generated/crs_conversion/models/convert_trajectory_response.py +186 -0
- osdu_python_client/generated/crs_conversion/models/convert_trajectory_response_v4.py +241 -0
- osdu_python_client/generated/crs_conversion/models/geo_json_base.py +95 -0
- osdu_python_client/generated/crs_conversion/models/geo_json_base_geo_json_variant_internal.py +9 -0
- osdu_python_client/generated/crs_conversion/models/geo_json_feature.py +127 -0
- osdu_python_client/generated/crs_conversion/models/geo_json_feature_collection.py +181 -0
- osdu_python_client/generated/crs_conversion/models/geo_json_feature_collection_geo_json_variant_internal.py +9 -0
- osdu_python_client/generated/crs_conversion/models/geo_json_feature_collection_properties.py +47 -0
- osdu_python_client/generated/crs_conversion/models/geo_json_feature_geo_json_variant_internal.py +9 -0
- osdu_python_client/generated/crs_conversion/models/geo_json_feature_properties.py +47 -0
- osdu_python_client/generated/crs_conversion/models/geometry.py +69 -0
- osdu_python_client/generated/crs_conversion/models/max_mis_location.py +70 -0
- osdu_python_client/generated/crs_conversion/models/minimum_depth_interval.py +73 -0
- osdu_python_client/generated/crs_conversion/models/point.py +78 -0
- osdu_python_client/generated/crs_conversion/models/point_properties.py +79 -0
- osdu_python_client/generated/crs_conversion/models/properties_bin_grid_corners.py +90 -0
- osdu_python_client/generated/crs_conversion/models/scale_convergence.py +80 -0
- osdu_python_client/generated/crs_conversion/models/trajectory_station_in_v4.py +113 -0
- osdu_python_client/generated/crs_conversion/models/trajectory_station_out.py +164 -0
- osdu_python_client/generated/crs_conversion/models/version_info.py +146 -0
- osdu_python_client/generated/crs_conversion/types.py +54 -0
- osdu_python_client/generated/dataset/__init__.py +8 -0
- osdu_python_client/generated/dataset/_facade.pyi +130 -0
- osdu_python_client/generated/dataset/api/__init__.py +1 -0
- osdu_python_client/generated/dataset/api/dataset/__init__.py +1 -0
- osdu_python_client/generated/dataset/api/dataset/create_or_update_dataset_registry.py +224 -0
- osdu_python_client/generated/dataset/api/dataset/delete_metadata_by_id.py +218 -0
- osdu_python_client/generated/dataset/api/dataset/get_dataset_registry.py +226 -0
- osdu_python_client/generated/dataset/api/dataset/get_dataset_registry_1.py +224 -0
- osdu_python_client/generated/dataset/api/dataset/retrieval_instructions.py +239 -0
- osdu_python_client/generated/dataset/api/dataset/retrieval_instructions_1.py +242 -0
- osdu_python_client/generated/dataset/api/dataset/revoke_url.py +239 -0
- osdu_python_client/generated/dataset/api/dataset/storage_instructions.py +241 -0
- osdu_python_client/generated/dataset/api/dataset/undelete_metadata_by_id.py +222 -0
- osdu_python_client/generated/dataset/api/health_check_api/__init__.py +1 -0
- osdu_python_client/generated/dataset/api/health_check_api/liveness_check.py +177 -0
- osdu_python_client/generated/dataset/api/info/__init__.py +1 -0
- osdu_python_client/generated/dataset/api/info/info.py +164 -0
- osdu_python_client/generated/dataset/client.py +282 -0
- osdu_python_client/generated/dataset/errors.py +16 -0
- osdu_python_client/generated/dataset/models/__init__.py +63 -0
- osdu_python_client/generated/dataset/models/acl.py +70 -0
- osdu_python_client/generated/dataset/models/app_error.py +80 -0
- osdu_python_client/generated/dataset/models/connected_outer_service.py +71 -0
- osdu_python_client/generated/dataset/models/create_dataset_registry_request.py +76 -0
- osdu_python_client/generated/dataset/models/dataset_retrieval_properties.py +100 -0
- osdu_python_client/generated/dataset/models/dataset_retrieval_properties_retrieval_properties.py +76 -0
- osdu_python_client/generated/dataset/models/dataset_retrieval_properties_retrieval_properties_additional_property.py +49 -0
- osdu_python_client/generated/dataset/models/feature_flag_state.py +89 -0
- osdu_python_client/generated/dataset/models/get_create_update_dataset_registry_response.py +79 -0
- osdu_python_client/generated/dataset/models/get_dataset_registry_request.py +62 -0
- osdu_python_client/generated/dataset/models/get_dataset_storage_instructions_response.py +93 -0
- osdu_python_client/generated/dataset/models/get_dataset_storage_instructions_response_storage_location.py +74 -0
- osdu_python_client/generated/dataset/models/get_dataset_storage_instructions_response_storage_location_additional_property.py +49 -0
- osdu_python_client/generated/dataset/models/legal.py +90 -0
- osdu_python_client/generated/dataset/models/legal_status.py +9 -0
- osdu_python_client/generated/dataset/models/record.py +230 -0
- osdu_python_client/generated/dataset/models/record_ancestry.py +65 -0
- osdu_python_client/generated/dataset/models/record_data.py +47 -0
- osdu_python_client/generated/dataset/models/record_meta_item.py +47 -0
- osdu_python_client/generated/dataset/models/record_tags.py +47 -0
- osdu_python_client/generated/dataset/models/retrieval_instructions_response.py +79 -0
- osdu_python_client/generated/dataset/models/revoke_url_body.py +47 -0
- osdu_python_client/generated/dataset/models/version_info.py +173 -0
- osdu_python_client/generated/dataset/types.py +54 -0
- osdu_python_client/generated/entitlements/__init__.py +8 -0
- osdu_python_client/generated/entitlements/_facade.pyi +165 -0
- osdu_python_client/generated/entitlements/api/__init__.py +1 -0
- osdu_python_client/generated/entitlements/api/add_member_api/__init__.py +1 -0
- osdu_python_client/generated/entitlements/api/add_member_api/add_member.py +233 -0
- osdu_python_client/generated/entitlements/api/create_group_api/__init__.py +1 -0
- osdu_python_client/generated/entitlements/api/create_group_api/create_group.py +218 -0
- osdu_python_client/generated/entitlements/api/delete_group_api/__init__.py +1 -0
- osdu_python_client/generated/entitlements/api/delete_group_api/delete_group.py +214 -0
- osdu_python_client/generated/entitlements/api/delete_member_api/__init__.py +1 -0
- osdu_python_client/generated/entitlements/api/delete_member_api/delete_member.py +214 -0
- osdu_python_client/generated/entitlements/api/health_checks_api/__init__.py +1 -0
- osdu_python_client/generated/entitlements/api/health_checks_api/liveness_check.py +162 -0
- osdu_python_client/generated/entitlements/api/health_checks_api/readiness_check.py +162 -0
- osdu_python_client/generated/entitlements/api/info/__init__.py +1 -0
- osdu_python_client/generated/entitlements/api/info/info.py +164 -0
- osdu_python_client/generated/entitlements/api/init_api/__init__.py +1 -0
- osdu_python_client/generated/entitlements/api/init_api/initiate_tenant.py +213 -0
- osdu_python_client/generated/entitlements/api/list_group_api/__init__.py +1 -0
- osdu_python_client/generated/entitlements/api/list_group_on_behalf_of_api/__init__.py +1 -0
- osdu_python_client/generated/entitlements/api/list_group_on_behalf_of_api/list_all_partition_groups.py +250 -0
- osdu_python_client/generated/entitlements/api/list_group_on_behalf_of_api/list_groups_on_behalf_of.py +266 -0
- osdu_python_client/generated/entitlements/api/list_member_api/__init__.py +1 -0
- osdu_python_client/generated/entitlements/api/list_member_api/list_group_members.py +256 -0
- osdu_python_client/generated/entitlements/api/members_count_api/__init__.py +1 -0
- osdu_python_client/generated/entitlements/api/members_count_api/get_members_count.py +241 -0
- osdu_python_client/generated/entitlements/api/remove_member_api/__init__.py +1 -0
- osdu_python_client/generated/entitlements/api/remove_member_api/delete_member_1.py +228 -0
- osdu_python_client/generated/entitlements/api/update_group_api/__init__.py +1 -0
- osdu_python_client/generated/entitlements/api/update_group_api/update_group.py +237 -0
- osdu_python_client/generated/entitlements/client.py +282 -0
- osdu_python_client/generated/entitlements/errors.py +16 -0
- osdu_python_client/generated/entitlements/models/__init__.py +47 -0
- osdu_python_client/generated/entitlements/models/add_member_dto.py +72 -0
- osdu_python_client/generated/entitlements/models/add_member_dto_role.py +9 -0
- osdu_python_client/generated/entitlements/models/alias_entity.py +70 -0
- osdu_python_client/generated/entitlements/models/app_error.py +80 -0
- osdu_python_client/generated/entitlements/models/connected_outer_service.py +71 -0
- osdu_python_client/generated/entitlements/models/create_group_dto.py +73 -0
- osdu_python_client/generated/entitlements/models/feature_flag_state.py +89 -0
- osdu_python_client/generated/entitlements/models/get_members_count_role.py +9 -0
- osdu_python_client/generated/entitlements/models/group_dto.py +80 -0
- osdu_python_client/generated/entitlements/models/init_service_dto.py +79 -0
- osdu_python_client/generated/entitlements/models/list_group_members_role.py +9 -0
- osdu_python_client/generated/entitlements/models/list_group_response_dto.py +98 -0
- osdu_python_client/generated/entitlements/models/list_groups_of_partition_dto.py +98 -0
- osdu_python_client/generated/entitlements/models/list_member_response_dto.py +80 -0
- osdu_python_client/generated/entitlements/models/member_dto.py +105 -0
- osdu_python_client/generated/entitlements/models/member_dto_member_type.py +9 -0
- osdu_python_client/generated/entitlements/models/member_dto_role.py +9 -0
- osdu_python_client/generated/entitlements/models/parent_reference.py +89 -0
- osdu_python_client/generated/entitlements/models/update_group_operation.py +82 -0
- osdu_python_client/generated/entitlements/models/update_group_response_dto.py +82 -0
- osdu_python_client/generated/entitlements/models/version_info.py +173 -0
- osdu_python_client/generated/entitlements/types.py +54 -0
- osdu_python_client/generated/file/__init__.py +8 -0
- osdu_python_client/generated/file/_facade.pyi +110 -0
- osdu_python_client/generated/file/api/__init__.py +1 -0
- osdu_python_client/generated/file/api/file_admin_api/__init__.py +1 -0
- osdu_python_client/generated/file/api/file_admin_api/revoke_url.py +201 -0
- osdu_python_client/generated/file/api/file_delivery_api/__init__.py +1 -0
- osdu_python_client/generated/file/api/file_delivery_api/download_url.py +248 -0
- osdu_python_client/generated/file/api/file_location_api/__init__.py +1 -0
- osdu_python_client/generated/file/api/file_location_api/get_location_file.py +244 -0
- osdu_python_client/generated/file/api/file_metadata_api/__init__.py +1 -0
- osdu_python_client/generated/file/api/file_metadata_api/delete_file_metadata_by_id.py +218 -0
- osdu_python_client/generated/file/api/file_metadata_api/get_file_metadata_by_id.py +224 -0
- osdu_python_client/generated/file/api/file_metadata_api/post_files_metadata.py +242 -0
- osdu_python_client/generated/file/api/health_check_api/__init__.py +1 -0
- osdu_python_client/generated/file/api/health_check_api/liveness_check.py +162 -0
- osdu_python_client/generated/file/api/health_check_api/readiness_check.py +162 -0
- osdu_python_client/generated/file/api/info/__init__.py +1 -0
- osdu_python_client/generated/file/api/info/info.py +164 -0
- osdu_python_client/generated/file/client.py +282 -0
- osdu_python_client/generated/file/errors.py +16 -0
- osdu_python_client/generated/file/models/__init__.py +65 -0
- osdu_python_client/generated/file/models/acl.py +70 -0
- osdu_python_client/generated/file/models/ancestry.py +64 -0
- osdu_python_client/generated/file/models/app_error.py +80 -0
- osdu_python_client/generated/file/models/connected_outer_service.py +71 -0
- osdu_python_client/generated/file/models/dataset_properties.py +68 -0
- osdu_python_client/generated/file/models/download_url_response.py +62 -0
- osdu_python_client/generated/file/models/feature_flag_state.py +89 -0
- osdu_python_client/generated/file/models/file_data.py +235 -0
- osdu_python_client/generated/file/models/file_data_endian.py +9 -0
- osdu_python_client/generated/file/models/file_data_extension_properties.py +70 -0
- osdu_python_client/generated/file/models/file_data_extension_properties_additional_property.py +47 -0
- osdu_python_client/generated/file/models/file_metadata.py +168 -0
- osdu_python_client/generated/file/models/file_metadata_meta_item.py +70 -0
- osdu_python_client/generated/file/models/file_metadata_meta_item_additional_property.py +47 -0
- osdu_python_client/generated/file/models/file_metadata_response.py +62 -0
- osdu_python_client/generated/file/models/file_metadata_tags.py +47 -0
- osdu_python_client/generated/file/models/file_source_info.py +160 -0
- osdu_python_client/generated/file/models/legal.py +90 -0
- osdu_python_client/generated/file/models/legal_status.py +9 -0
- osdu_python_client/generated/file/models/location_response.py +83 -0
- osdu_python_client/generated/file/models/location_response_location.py +47 -0
- osdu_python_client/generated/file/models/record_version.py +178 -0
- osdu_python_client/generated/file/models/record_version_meta_item.py +70 -0
- osdu_python_client/generated/file/models/record_version_meta_item_additional_property.py +47 -0
- osdu_python_client/generated/file/models/record_version_tags.py +47 -0
- osdu_python_client/generated/file/models/revoke_url_body.py +47 -0
- osdu_python_client/generated/file/models/version_info.py +173 -0
- osdu_python_client/generated/file/types.py +54 -0
- osdu_python_client/generated/geospatial/__init__.py +8 -0
- osdu_python_client/generated/geospatial/api/__init__.py +1 -0
- osdu_python_client/generated/geospatial/api/tag1_transformer_service_configuration/__init__.py +1 -0
- osdu_python_client/generated/geospatial/api/tag1_transformer_service_configuration/generate_app_yaml.py +238 -0
- osdu_python_client/generated/geospatial/api/tag1_transformer_service_configuration/get_transformer_configuration.py +200 -0
- osdu_python_client/generated/geospatial/api/tag1_transformer_service_configuration/patch_transformer_configuration.py +184 -0
- osdu_python_client/generated/geospatial/api/tag1_transformer_service_configuration/reset_transformer_config.py +247 -0
- osdu_python_client/generated/geospatial/api/tag1_transformer_service_configuration/upsert_transformer_configuration.py +182 -0
- osdu_python_client/generated/geospatial/api/tag2_transformer_caches_configuration/__init__.py +1 -0
- osdu_python_client/generated/geospatial/api/tag2_transformer_caches_configuration/delete_kind_cache_configuration.py +180 -0
- osdu_python_client/generated/geospatial/api/tag2_transformer_caches_configuration/get_kind_cache_configs.py +184 -0
- osdu_python_client/generated/geospatial/api/tag2_transformer_caches_configuration/get_kind_cache_configuration.py +180 -0
- osdu_python_client/generated/geospatial/api/tag2_transformer_caches_configuration/upsert_kind_cache_configuration.py +187 -0
- osdu_python_client/generated/geospatial/api/tag3_transformer_caches_insights/__init__.py +1 -0
- osdu_python_client/generated/geospatial/api/tag3_transformer_caches_insights/browse_cache_data.py +206 -0
- osdu_python_client/generated/geospatial/api/tag3_transformer_caches_insights/get_all_transformer_load_statuses.py +104 -0
- osdu_python_client/generated/geospatial/api/tag3_transformer_caches_insights/get_available_kinds.py +189 -0
- osdu_python_client/generated/geospatial/api/tag3_transformer_caches_insights/get_kind_fields.py +189 -0
- osdu_python_client/generated/geospatial/api/tag3_transformer_caches_insights/get_status.py +189 -0
- osdu_python_client/generated/geospatial/api/tag3_transformer_caches_insights/get_transformer_load_status.py +186 -0
- osdu_python_client/generated/geospatial/api/tag3_transformer_caches_insights/reset_lost_partitions.py +178 -0
- osdu_python_client/generated/geospatial/api/tag3_transformer_caches_insights/update_cache.py +213 -0
- osdu_python_client/generated/geospatial/api/tag3_transformer_caches_insights/update_cache_for_single.py +220 -0
- osdu_python_client/generated/geospatial/api/tag4_provider_service_configuration/__init__.py +1 -0
- osdu_python_client/generated/geospatial/api/tag4_provider_service_configuration/generate_koop_config.py +253 -0
- osdu_python_client/generated/geospatial/api/tag4_provider_service_configuration/get_provider_configuration.py +184 -0
- osdu_python_client/generated/geospatial/api/tag4_provider_service_configuration/patch_provider_configuration.py +182 -0
- osdu_python_client/generated/geospatial/api/tag4_provider_service_configuration/reset_provider_config.py +225 -0
- osdu_python_client/generated/geospatial/api/tag4_provider_service_configuration/upsert_provider_configuration.py +182 -0
- osdu_python_client/generated/geospatial/api/tag5_provider_layer_definitions/__init__.py +1 -0
- osdu_python_client/generated/geospatial/api/tag5_provider_layer_definitions/delete_layer_definition.py +180 -0
- osdu_python_client/generated/geospatial/api/tag5_provider_layer_definitions/get_all_layer_definitions.py +164 -0
- osdu_python_client/generated/geospatial/api/tag5_provider_layer_definitions/get_layer_definition.py +180 -0
- osdu_python_client/generated/geospatial/api/tag5_provider_layer_definitions/upsert_layer_definition.py +187 -0
- osdu_python_client/generated/geospatial/api/tag6_logging_gcz_services_and_processes/__init__.py +1 -0
- osdu_python_client/generated/geospatial/api/tag6_logging_gcz_services_and_processes/get_available_log_streams.py +107 -0
- osdu_python_client/generated/geospatial/api/tag6_logging_gcz_services_and_processes/get_logs.py +207 -0
- osdu_python_client/generated/geospatial/api/tag7_load_session_history/__init__.py +1 -0
- osdu_python_client/generated/geospatial/api/tag7_load_session_history/get_last_session_for_cache.py +232 -0
- osdu_python_client/generated/geospatial/api/tag7_load_session_history/get_sessions.py +274 -0
- osdu_python_client/generated/geospatial/api/version_info/__init__.py +1 -0
- osdu_python_client/generated/geospatial/api/version_info/get_info.py +152 -0
- osdu_python_client/generated/geospatial/client.py +282 -0
- osdu_python_client/generated/geospatial/errors.py +16 -0
- osdu_python_client/generated/geospatial/models/__init__.py +101 -0
- osdu_python_client/generated/geospatial/models/available_kinds_response.py +79 -0
- osdu_python_client/generated/geospatial/models/cache_bulk_update_response.py +100 -0
- osdu_python_client/generated/geospatial/models/cache_data_request.py +123 -0
- osdu_python_client/generated/geospatial/models/cache_data_request_sort.py +62 -0
- osdu_python_client/generated/geospatial/models/cache_data_request_sort_additional_property.py +9 -0
- osdu_python_client/generated/geospatial/models/cache_data_response.py +106 -0
- osdu_python_client/generated/geospatial/models/cache_data_response_data_item.py +70 -0
- osdu_python_client/generated/geospatial/models/cache_data_response_data_item_additional_property.py +47 -0
- osdu_python_client/generated/geospatial/models/cache_update_info.py +70 -0
- osdu_python_client/generated/geospatial/models/config_response.py +70 -0
- osdu_python_client/generated/geospatial/models/field.py +80 -0
- osdu_python_client/generated/geospatial/models/field_info.py +79 -0
- osdu_python_client/generated/geospatial/models/geometry_type.py +69 -0
- osdu_python_client/generated/geospatial/models/get_cache_status_response.py +78 -0
- osdu_python_client/generated/geospatial/models/get_cache_status_response_cache_size.py +89 -0
- osdu_python_client/generated/geospatial/models/get_cache_status_response_cache_size_additional_property.py +47 -0
- osdu_python_client/generated/geospatial/models/get_last_session_for_cache_status_item.py +12 -0
- osdu_python_client/generated/geospatial/models/get_sessions_status_item.py +12 -0
- osdu_python_client/generated/geospatial/models/get_transformer_load_status_response_200.py +47 -0
- osdu_python_client/generated/geospatial/models/kind.py +270 -0
- osdu_python_client/generated/geospatial/models/kind_field_info.py +88 -0
- osdu_python_client/generated/geospatial/models/kind_info.py +79 -0
- osdu_python_client/generated/geospatial/models/kinds_fields_response.py +79 -0
- osdu_python_client/generated/geospatial/models/layer_definition.py +155 -0
- osdu_python_client/generated/geospatial/models/layer_definition_with_id.py +163 -0
- osdu_python_client/generated/geospatial/models/load_session.py +157 -0
- osdu_python_client/generated/geospatial/models/load_session_status.py +12 -0
- osdu_python_client/generated/geospatial/models/message_response.py +61 -0
- osdu_python_client/generated/geospatial/models/provider_configuration.py +86 -0
- osdu_python_client/generated/geospatial/models/provider_configuration_patch_dto.py +88 -0
- osdu_python_client/generated/geospatial/models/provider_configuration_reset_dto.py +83 -0
- osdu_python_client/generated/geospatial/models/provider_configuration_reset_dto_layer_definitions.py +64 -0
- osdu_python_client/generated/geospatial/models/reset_provider_config_response_200.py +47 -0
- osdu_python_client/generated/geospatial/models/reset_provider_config_response_400.py +47 -0
- osdu_python_client/generated/geospatial/models/reset_provider_config_response_500.py +47 -0
- osdu_python_client/generated/geospatial/models/reset_transformer_config_response_200.py +47 -0
- osdu_python_client/generated/geospatial/models/reset_transformer_config_response_400.py +47 -0
- osdu_python_client/generated/geospatial/models/reset_transformer_config_response_500.py +47 -0
- osdu_python_client/generated/geospatial/models/transformer_configuration.py +86 -0
- osdu_python_client/generated/geospatial/models/transformer_configuration_patch_dto.py +90 -0
- osdu_python_client/generated/geospatial/models/update_cache_response.py +61 -0
- osdu_python_client/generated/geospatial/models/validation_filter.py +61 -0
- osdu_python_client/generated/geospatial/models/version_info.py +98 -0
- osdu_python_client/generated/geospatial/types.py +54 -0
- osdu_python_client/generated/indexer/__init__.py +8 -0
- osdu_python_client/generated/indexer/_facade.pyi +99 -0
- osdu_python_client/generated/indexer/api/__init__.py +1 -0
- osdu_python_client/generated/indexer/api/cleanup_indicies_api/__init__.py +1 -0
- osdu_python_client/generated/indexer/api/cleanup_indicies_api/delete_index.py +218 -0
- osdu_python_client/generated/indexer/api/health_check_api/__init__.py +1 -0
- osdu_python_client/generated/indexer/api/health_check_api/liveness_check.py +104 -0
- osdu_python_client/generated/indexer/api/health_check_api/readiness_check.py +104 -0
- osdu_python_client/generated/indexer/api/info/__init__.py +1 -0
- osdu_python_client/generated/indexer/api/info/info.py +164 -0
- osdu_python_client/generated/indexer/api/partition_setup_api/__init__.py +1 -0
- osdu_python_client/generated/indexer/api/partition_setup_api/provision_partition.py +164 -0
- osdu_python_client/generated/indexer/api/reindex_api/__init__.py +1 -0
- osdu_python_client/generated/indexer/api/reindex_api/full_reindex.py +120 -0
- osdu_python_client/generated/indexer/api/reindex_api/reindex.py +206 -0
- osdu_python_client/generated/indexer/api/reindex_api/reindex_records.py +186 -0
- osdu_python_client/generated/indexer/client.py +282 -0
- osdu_python_client/generated/indexer/errors.py +16 -0
- osdu_python_client/generated/indexer/models/__init__.py +23 -0
- osdu_python_client/generated/indexer/models/app_error.py +79 -0
- osdu_python_client/generated/indexer/models/connected_outer_service.py +70 -0
- osdu_python_client/generated/indexer/models/feature_flag_state.py +88 -0
- osdu_python_client/generated/indexer/models/provision_partition_response_200.py +47 -0
- osdu_python_client/generated/indexer/models/record_reindex_request.py +72 -0
- osdu_python_client/generated/indexer/models/reindex_records_request.py +61 -0
- osdu_python_client/generated/indexer/models/reindex_records_response_202.py +47 -0
- osdu_python_client/generated/indexer/models/reindex_response_200.py +47 -0
- osdu_python_client/generated/indexer/models/version_info.py +171 -0
- osdu_python_client/generated/indexer/types.py +54 -0
- osdu_python_client/generated/legal/__init__.py +8 -0
- osdu_python_client/generated/legal/_facade.pyi +147 -0
- osdu_python_client/generated/legal/api/__init__.py +1 -0
- osdu_python_client/generated/legal/api/health/__init__.py +1 -0
- osdu_python_client/generated/legal/api/health/liveness_check.py +106 -0
- osdu_python_client/generated/legal/api/health/readiness_check.py +106 -0
- osdu_python_client/generated/legal/api/info/__init__.py +1 -0
- osdu_python_client/generated/legal/api/info/info.py +164 -0
- osdu_python_client/generated/legal/api/legaltag/__init__.py +1 -0
- osdu_python_client/generated/legal/api/legaltag/create_legal_tag.py +118 -0
- osdu_python_client/generated/legal/api/legaltag/delete_legal_tag.py +116 -0
- osdu_python_client/generated/legal/api/legaltag/get_legal_tag.py +114 -0
- osdu_python_client/generated/legal/api/legaltag/get_legal_tag_properties.py +104 -0
- osdu_python_client/generated/legal/api/legaltag/get_legal_tags.py +118 -0
- osdu_python_client/generated/legal/api/legaltag/list_legal_tags.py +118 -0
- osdu_python_client/generated/legal/api/legaltag/query_legal_tag.py +136 -0
- osdu_python_client/generated/legal/api/legaltag/update_legal_tag.py +116 -0
- osdu_python_client/generated/legal/api/legaltag/validate_legal_tags.py +118 -0
- osdu_python_client/generated/legal/api/legaltag_status_job/__init__.py +1 -0
- osdu_python_client/generated/legal/api/legaltag_status_job/check_legal_tag_status_changes.py +104 -0
- osdu_python_client/generated/legal/client.py +282 -0
- osdu_python_client/generated/legal/errors.py +16 -0
- osdu_python_client/generated/legal/models/__init__.py +47 -0
- osdu_python_client/generated/legal/models/app_error.py +80 -0
- osdu_python_client/generated/legal/models/connected_outer_service.py +71 -0
- osdu_python_client/generated/legal/models/feature_flag_state.py +89 -0
- osdu_python_client/generated/legal/models/invalid_tag_with_reason.py +71 -0
- osdu_python_client/generated/legal/models/invalid_tags_with_reason.py +82 -0
- osdu_python_client/generated/legal/models/legal_tag_dto.py +93 -0
- osdu_python_client/generated/legal/models/legal_tag_dtos.py +80 -0
- osdu_python_client/generated/legal/models/properties.py +167 -0
- osdu_python_client/generated/legal/models/properties_extension_properties.py +47 -0
- osdu_python_client/generated/legal/models/query_legal_tag.py +102 -0
- osdu_python_client/generated/legal/models/readable_property_values.py +165 -0
- osdu_python_client/generated/legal/models/readable_property_values_countries_of_origin.py +47 -0
- osdu_python_client/generated/legal/models/readable_property_values_other_relevant_data_countries.py +47 -0
- osdu_python_client/generated/legal/models/request_legal_tags.py +62 -0
- osdu_python_client/generated/legal/models/update_legal_tag.py +130 -0
- osdu_python_client/generated/legal/models/update_legal_tag_extension_properties.py +74 -0
- osdu_python_client/generated/legal/models/update_legal_tag_extension_properties_additional_property.py +47 -0
- osdu_python_client/generated/legal/models/version_info.py +173 -0
- osdu_python_client/generated/legal/types.py +54 -0
- osdu_python_client/generated/notification/__init__.py +8 -0
- osdu_python_client/generated/notification/_facade.pyi +32 -0
- osdu_python_client/generated/notification/api/__init__.py +1 -0
- osdu_python_client/generated/notification/api/health_checks_api/__init__.py +1 -0
- osdu_python_client/generated/notification/api/health_checks_api/warmup.py +86 -0
- osdu_python_client/generated/notification/api/info/__init__.py +1 -0
- osdu_python_client/generated/notification/api/info/info.py +136 -0
- osdu_python_client/generated/notification/client.py +282 -0
- osdu_python_client/generated/notification/errors.py +16 -0
- osdu_python_client/generated/notification/models/__init__.py +9 -0
- osdu_python_client/generated/notification/models/connected_outer_service.py +70 -0
- osdu_python_client/generated/notification/models/version_info.py +146 -0
- osdu_python_client/generated/notification/types.py +54 -0
- osdu_python_client/generated/partition/__init__.py +8 -0
- osdu_python_client/generated/partition/_facade.pyi +54 -0
- osdu_python_client/generated/partition/api/__init__.py +1 -0
- osdu_python_client/generated/partition/api/health_check_api/__init__.py +1 -0
- osdu_python_client/generated/partition/api/health_check_api/liveness_check.py +145 -0
- osdu_python_client/generated/partition/api/info/__init__.py +1 -0
- osdu_python_client/generated/partition/api/info/info.py +136 -0
- osdu_python_client/generated/partition/api/partition_api/__init__.py +1 -0
- osdu_python_client/generated/partition/api/partition_api/get.py +199 -0
- osdu_python_client/generated/partition/api/partition_api/list_.py +171 -0
- osdu_python_client/generated/partition/client.py +282 -0
- osdu_python_client/generated/partition/errors.py +16 -0
- osdu_python_client/generated/partition/models/__init__.py +19 -0
- osdu_python_client/generated/partition/models/app_error.py +80 -0
- osdu_python_client/generated/partition/models/connected_outer_service.py +71 -0
- osdu_python_client/generated/partition/models/feature_flag_state.py +89 -0
- osdu_python_client/generated/partition/models/map_.py +74 -0
- osdu_python_client/generated/partition/models/property_.py +83 -0
- osdu_python_client/generated/partition/models/property_value.py +47 -0
- osdu_python_client/generated/partition/models/version_info.py +173 -0
- osdu_python_client/generated/partition/types.py +54 -0
- osdu_python_client/generated/policy/__init__.py +8 -0
- osdu_python_client/generated/policy/_facade.pyi +262 -0
- osdu_python_client/generated/policy/api/__init__.py +1 -0
- osdu_python_client/generated/policy/api/diagnostic/__init__.py +1 -0
- osdu_python_client/generated/policy/api/diagnostic/health_api_policy_v1_health_get.py +232 -0
- osdu_python_client/generated/policy/api/diagnostic/ready_api_policy_v1_ready_get.py +253 -0
- osdu_python_client/generated/policy/api/diagnostic/return_version_info_api_policy_v1_info_get.py +218 -0
- osdu_python_client/generated/policy/api/diagnostic/show_policy_config_details_api_policy_v1_config_get.py +243 -0
- osdu_python_client/generated/policy/api/diagnostic/validate_policy_api_policy_v1_validate_policy_id_put.py +304 -0
- osdu_python_client/generated/policy/api/evaluate/__init__.py +1 -0
- osdu_python_client/generated/policy/api/evaluate/evaluate_policy_api_policy_v1_evaluations_query_post.py +465 -0
- osdu_python_client/generated/policy/api/home/__init__.py +1 -0
- osdu_python_client/generated/policy/api/home/home_page_get.py +177 -0
- osdu_python_client/generated/policy/api/policies/__init__.py +1 -0
- osdu_python_client/generated/policy/api/policies/create_or_update_partition_policy_api_policy_v1_policies_osdu_partition_data_partition_policy_id_put.py +459 -0
- osdu_python_client/generated/policy/api/policies/delete_partition_policy_api_policy_v1_policies_osdu_partition_data_partition_policy_id_delete.py +421 -0
- osdu_python_client/generated/policy/api/policies/fetch_a_policy_api_policy_v1_policies_policy_id_get.py +265 -0
- osdu_python_client/generated/policy/api/policies/fetch_all_policies_that_match_partition_api_policy_v1_policies_get.py +264 -0
- osdu_python_client/generated/policy/api/policies/fetch_instance_policy_api_policy_v1_policies_osdu_instance_policy_id_get.py +260 -0
- osdu_python_client/generated/policy/api/policies/fetch_partition_policy_directly_from_opa_api_policy_v1_policies_osdu_partition_data_partition_policy_id_get.py +278 -0
- osdu_python_client/generated/policy/api/translate/__init__.py +1 -0
- osdu_python_client/generated/policy/api/translate/translate_policy_api_api_policy_v1_translate_post.py +287 -0
- osdu_python_client/generated/policy/api/user/__init__.py +1 -0
- osdu_python_client/generated/policy/api/user/delete_user_api_policy_v1_user_user_id_delete.py +279 -0
- osdu_python_client/generated/policy/api/user/get_my_user_details_api_policy_v1_user_get.py +264 -0
- osdu_python_client/generated/policy/api/user/get_user_details_of_another_user_api_policy_v1_user_user_id_get.py +280 -0
- osdu_python_client/generated/policy/api/user/set_user_details_api_policy_v1_user_user_id_put.py +292 -0
- osdu_python_client/generated/policy/api/utility/__init__.py +1 -0
- osdu_python_client/generated/policy/api/utility/backup_api_policy_v1_backup_get.py +264 -0
- osdu_python_client/generated/policy/api/utility/bootstrap_api_policy_v1_bootstrap_post.py +334 -0
- osdu_python_client/generated/policy/api/utility/compile_partially_evaluate_a_query_api_policy_v1_compile_post.py +387 -0
- osdu_python_client/generated/policy/api/utility/delete_tenant_api_policy_v1_tenant_delete.py +261 -0
- osdu_python_client/generated/policy/api/utility/get_tenant_api_policy_v1_tenant_get.py +273 -0
- osdu_python_client/generated/policy/api/utility/update_tenant_api_policy_v1_tenant_put.py +328 -0
- osdu_python_client/generated/policy/client.py +282 -0
- osdu_python_client/generated/policy/errors.py +16 -0
- osdu_python_client/generated/policy/models/__init__.py +43 -0
- osdu_python_client/generated/policy/models/body_compile_partially_evaluate_a_query_api_policy_v1_compile_post.py +75 -0
- osdu_python_client/generated/policy/models/body_create_or_update_partition_policy_api_policy_v1_policies_osdu_partition_data_partition_policy_id_put.py +78 -0
- osdu_python_client/generated/policy/models/body_evaluate_policy_api_policy_v1_evaluations_query_post.py +75 -0
- osdu_python_client/generated/policy/models/body_validate_policy_api_policy_v1_validate_policy_id_put.py +75 -0
- osdu_python_client/generated/policy/models/detail.py +61 -0
- osdu_python_client/generated/policy/models/http_validation_error.py +79 -0
- osdu_python_client/generated/policy/models/info_out.py +217 -0
- osdu_python_client/generated/policy/models/input_.py +155 -0
- osdu_python_client/generated/policy/models/input_operation.py +12 -0
- osdu_python_client/generated/policy/models/service_detail.py +73 -0
- osdu_python_client/generated/policy/models/services.py +67 -0
- osdu_python_client/generated/policy/models/translate_item.py +83 -0
- osdu_python_client/generated/policy/models/user_detail_request_model.py +89 -0
- osdu_python_client/generated/policy/models/user_details_model.py +73 -0
- osdu_python_client/generated/policy/models/validation_error.py +90 -0
- osdu_python_client/generated/policy/types.py +54 -0
- osdu_python_client/generated/register/__init__.py +8 -0
- osdu_python_client/generated/register/_facade.pyi +277 -0
- osdu_python_client/generated/register/api/__init__.py +1 -0
- osdu_python_client/generated/register/api/action_api/__init__.py +1 -0
- osdu_python_client/generated/register/api/action_api/create_action.py +223 -0
- osdu_python_client/generated/register/api/action_api/delete_action.py +223 -0
- osdu_python_client/generated/register/api/action_api/get_action.py +230 -0
- osdu_python_client/generated/register/api/action_api/retrieve_action.py +236 -0
- osdu_python_client/generated/register/api/action_api/test_action.py +232 -0
- osdu_python_client/generated/register/api/ddms_api/__init__.py +1 -0
- osdu_python_client/generated/register/api/ddms_api/delete_dms.py +223 -0
- osdu_python_client/generated/register/api/ddms_api/get_dms.py +225 -0
- osdu_python_client/generated/register/api/ddms_api/post_dms.py +226 -0
- osdu_python_client/generated/register/api/ddms_api/query_dms.py +234 -0
- osdu_python_client/generated/register/api/ddms_api/redirect_to_dms.py +251 -0
- osdu_python_client/generated/register/api/health_checks_api/__init__.py +1 -0
- osdu_python_client/generated/register/api/health_checks_api/liveness_check.py +162 -0
- osdu_python_client/generated/register/api/health_checks_api/readiness_check.py +162 -0
- osdu_python_client/generated/register/api/info/__init__.py +1 -0
- osdu_python_client/generated/register/api/info/info.py +164 -0
- osdu_python_client/generated/register/api/subscriber_api/__init__.py +1 -0
- osdu_python_client/generated/register/api/subscriber_api/create_subscription.py +226 -0
- osdu_python_client/generated/register/api/subscriber_api/delete_subscription.py +219 -0
- osdu_python_client/generated/register/api/subscriber_api/get_subscription.py +225 -0
- osdu_python_client/generated/register/api/subscriber_api/list_messages.py +218 -0
- osdu_python_client/generated/register/api/subscriber_api/query_subscription.py +234 -0
- osdu_python_client/generated/register/api/subscriber_api/update_secret.py +245 -0
- osdu_python_client/generated/register/api/subscriber_api_core_plus/__init__.py +1 -0
- osdu_python_client/generated/register/api/subscriber_api_core_plus/get_subscriptions.py +157 -0
- osdu_python_client/generated/register/api/subscriber_listener_test_api/__init__.py +1 -0
- osdu_python_client/generated/register/api/subscriber_listener_test_api/get_test_endpoint_state.py +154 -0
- osdu_python_client/generated/register/api/subscriber_listener_test_api/test_crc.py +203 -0
- osdu_python_client/generated/register/api/subscriber_listener_test_api/test_gsa.py +188 -0
- osdu_python_client/generated/register/api/subscriber_listener_test_api/test_push_gsa.py +123 -0
- osdu_python_client/generated/register/api/subscriber_listener_test_api/test_push_hmac.py +137 -0
- osdu_python_client/generated/register/client.py +282 -0
- osdu_python_client/generated/register/errors.py +16 -0
- osdu_python_client/generated/register/models/__init__.py +55 -0
- osdu_python_client/generated/register/models/action.py +148 -0
- osdu_python_client/generated/register/models/app_error.py +80 -0
- osdu_python_client/generated/register/models/challenge_response.py +62 -0
- osdu_python_client/generated/register/models/connected_outer_service.py +71 -0
- osdu_python_client/generated/register/models/create_action_dto.py +132 -0
- osdu_python_client/generated/register/models/ddms.py +135 -0
- osdu_python_client/generated/register/models/feature_flag_state.py +89 -0
- osdu_python_client/generated/register/models/filter_.py +86 -0
- osdu_python_client/generated/register/models/get_test_endpoint_state_response_200.py +74 -0
- osdu_python_client/generated/register/models/get_test_endpoint_state_response_200_additional_property.py +106 -0
- osdu_python_client/generated/register/models/gsa_secret.py +86 -0
- osdu_python_client/generated/register/models/gsa_secret_value.py +71 -0
- osdu_python_client/generated/register/models/hmac_secret.py +73 -0
- osdu_python_client/generated/register/models/parsed_action.py +71 -0
- osdu_python_client/generated/register/models/registered_interface.py +76 -0
- osdu_python_client/generated/register/models/registered_interface_schema.py +47 -0
- osdu_python_client/generated/register/models/secret.py +62 -0
- osdu_python_client/generated/register/models/subscription.py +158 -0
- osdu_python_client/generated/register/models/subscription_info.py +116 -0
- osdu_python_client/generated/register/models/test_action_request.py +86 -0
- osdu_python_client/generated/register/models/test_push_gsa_body.py +47 -0
- osdu_python_client/generated/register/models/test_push_hmac_body.py +47 -0
- osdu_python_client/generated/register/models/topic.py +89 -0
- osdu_python_client/generated/register/models/version_info.py +173 -0
- osdu_python_client/generated/register/types.py +54 -0
- osdu_python_client/generated/schema/__init__.py +8 -0
- osdu_python_client/generated/schema/_facade.pyi +88 -0
- osdu_python_client/generated/schema/api/__init__.py +1 -0
- osdu_python_client/generated/schema/api/health_check_api/__init__.py +1 -0
- osdu_python_client/generated/schema/api/health_check_api/liveness_check.py +149 -0
- osdu_python_client/generated/schema/api/info/__init__.py +1 -0
- osdu_python_client/generated/schema/api/info/info.py +136 -0
- osdu_python_client/generated/schema/api/schema_api/__init__.py +1 -0
- osdu_python_client/generated/schema/api/schema_api/create_schema.py +242 -0
- osdu_python_client/generated/schema/api/schema_api/get_schema.py +220 -0
- osdu_python_client/generated/schema/api/schema_api/get_schema_info_list.py +378 -0
- osdu_python_client/generated/schema/api/schema_api/upsert_schema.py +255 -0
- osdu_python_client/generated/schema/api/system_schema_api/__init__.py +1 -0
- osdu_python_client/generated/schema/api/system_schema_api/upsert_system_schema.py +241 -0
- osdu_python_client/generated/schema/client.py +282 -0
- osdu_python_client/generated/schema/errors.py +16 -0
- osdu_python_client/generated/schema/models/__init__.py +27 -0
- osdu_python_client/generated/schema/models/app_error.py +80 -0
- osdu_python_client/generated/schema/models/connected_outer_service.py +71 -0
- osdu_python_client/generated/schema/models/feature_flag_state.py +89 -0
- osdu_python_client/generated/schema/models/get_schema_response_200.py +47 -0
- osdu_python_client/generated/schema/models/schema_identity.py +114 -0
- osdu_python_client/generated/schema/models/schema_info.py +142 -0
- osdu_python_client/generated/schema/models/schema_info_response.py +107 -0
- osdu_python_client/generated/schema/models/schema_info_schema_scope.py +9 -0
- osdu_python_client/generated/schema/models/schema_info_schema_status.py +10 -0
- osdu_python_client/generated/schema/models/schema_request.py +77 -0
- osdu_python_client/generated/schema/models/version_info.py +173 -0
- osdu_python_client/generated/schema/types.py +54 -0
- osdu_python_client/generated/search/__init__.py +8 -0
- osdu_python_client/generated/search/_facade.pyi +78 -0
- osdu_python_client/generated/search/api/__init__.py +1 -0
- osdu_python_client/generated/search/api/health_check_api/__init__.py +1 -0
- osdu_python_client/generated/search/api/health_check_api/liveness_check.py +145 -0
- osdu_python_client/generated/search/api/health_check_api/readiness_check.py +145 -0
- osdu_python_client/generated/search/api/info/__init__.py +1 -0
- osdu_python_client/generated/search/api/info/info.py +136 -0
- osdu_python_client/generated/search/api/search_api/__init__.py +1 -0
- osdu_python_client/generated/search/api/search_api/close_cursor.py +244 -0
- osdu_python_client/generated/search/api/search_api/query_records.py +230 -0
- osdu_python_client/generated/search/api/search_api/query_with_cursor.py +262 -0
- osdu_python_client/generated/search/client.py +282 -0
- osdu_python_client/generated/search/errors.py +16 -0
- osdu_python_client/generated/search/models/__init__.py +47 -0
- osdu_python_client/generated/search/models/aggregation_response.py +70 -0
- osdu_python_client/generated/search/models/app_error.py +80 -0
- osdu_python_client/generated/search/models/by_bounding_box.py +76 -0
- osdu_python_client/generated/search/models/by_distance.py +77 -0
- osdu_python_client/generated/search/models/by_geo_polygon.py +76 -0
- osdu_python_client/generated/search/models/by_intersection.py +76 -0
- osdu_python_client/generated/search/models/by_within_polygon.py +76 -0
- osdu_python_client/generated/search/models/connected_outer_service.py +71 -0
- osdu_python_client/generated/search/models/cursor_query_request.py +219 -0
- osdu_python_client/generated/search/models/cursor_query_response.py +107 -0
- osdu_python_client/generated/search/models/cursor_query_response_results_item.py +47 -0
- osdu_python_client/generated/search/models/feature_flag_state.py +89 -0
- osdu_python_client/generated/search/models/point.py +71 -0
- osdu_python_client/generated/search/models/polygon.py +80 -0
- osdu_python_client/generated/search/models/query_request.py +228 -0
- osdu_python_client/generated/search/models/query_response.py +128 -0
- osdu_python_client/generated/search/models/query_response_results_item.py +47 -0
- osdu_python_client/generated/search/models/sort_query.py +99 -0
- osdu_python_client/generated/search/models/sort_query_order_item.py +9 -0
- osdu_python_client/generated/search/models/spatial_filter.py +163 -0
- osdu_python_client/generated/search/models/version_info.py +173 -0
- osdu_python_client/generated/search/types.py +54 -0
- osdu_python_client/generated/seismic_ddms/__init__.py +8 -0
- osdu_python_client/generated/seismic_ddms/_facade.pyi +542 -0
- osdu_python_client/generated/seismic_ddms/api/__init__.py +1 -0
- osdu_python_client/generated/seismic_ddms/api/apps/__init__.py +1 -0
- osdu_python_client/generated/seismic_ddms/api/apps/app_list.py +191 -0
- osdu_python_client/generated/seismic_ddms/api/apps/app_register.py +134 -0
- osdu_python_client/generated/seismic_ddms/api/apps/trustedapp_list.py +191 -0
- osdu_python_client/generated/seismic_ddms/api/apps/trustedapp_register.py +136 -0
- osdu_python_client/generated/seismic_ddms/api/dataset/__init__.py +1 -0
- osdu_python_client/generated/seismic_ddms/api/dataset/dataset_add_tag.py +189 -0
- osdu_python_client/generated/seismic_ddms/api/dataset/dataset_ctag_check.py +262 -0
- osdu_python_client/generated/seismic_ddms/api/dataset/dataset_delete.py +164 -0
- osdu_python_client/generated/seismic_ddms/api/dataset/dataset_exist.py +236 -0
- osdu_python_client/generated/seismic_ddms/api/dataset/dataset_get.py +302 -0
- osdu_python_client/generated/seismic_ddms/api/dataset/dataset_list_post.py +286 -0
- osdu_python_client/generated/seismic_ddms/api/dataset/dataset_lock.py +335 -0
- osdu_python_client/generated/seismic_ddms/api/dataset/dataset_patch.py +443 -0
- osdu_python_client/generated/seismic_ddms/api/dataset/dataset_permission.py +277 -0
- osdu_python_client/generated/seismic_ddms/api/dataset/dataset_read_directory.py +223 -0
- osdu_python_client/generated/seismic_ddms/api/dataset/dataset_register.py +316 -0
- osdu_python_client/generated/seismic_ddms/api/dataset/dataset_size_get.py +250 -0
- osdu_python_client/generated/seismic_ddms/api/dataset/dataset_size_post.py +253 -0
- osdu_python_client/generated/seismic_ddms/api/dataset/dataset_unlock.py +179 -0
- osdu_python_client/generated/seismic_ddms/api/dataset_deprecated/__init__.py +1 -0
- osdu_python_client/generated/seismic_ddms/api/dataset_deprecated/dataset_sizes.py +252 -0
- osdu_python_client/generated/seismic_ddms/api/general/__init__.py +1 -0
- osdu_python_client/generated/seismic_ddms/api/general/service_info.py +88 -0
- osdu_python_client/generated/seismic_ddms/api/general/service_status.py +134 -0
- osdu_python_client/generated/seismic_ddms/api/general/service_status_check.py +144 -0
- osdu_python_client/generated/seismic_ddms/api/impersonation_token/__init__.py +1 -0
- osdu_python_client/generated/seismic_ddms/api/impersonation_token/impersonation_token_generate.py +210 -0
- osdu_python_client/generated/seismic_ddms/api/impersonation_token/impersonation_token_refresh.py +195 -0
- osdu_python_client/generated/seismic_ddms/api/impersonation_token_obsolete/__init__.py +1 -0
- osdu_python_client/generated/seismic_ddms/api/impersonation_token_obsolete/imptoken_generate.py +200 -0
- osdu_python_client/generated/seismic_ddms/api/impersonation_token_obsolete/imptoken_patch.py +200 -0
- osdu_python_client/generated/seismic_ddms/api/impersonation_token_obsolete/imptoken_refresh.py +184 -0
- osdu_python_client/generated/seismic_ddms/api/operations/__init__.py +1 -0
- osdu_python_client/generated/seismic_ddms/api/operations/operation_bulk_delete_get.py +200 -0
- osdu_python_client/generated/seismic_ddms/api/operations/operation_bulk_delete_push.py +221 -0
- osdu_python_client/generated/seismic_ddms/api/operations/operation_change_tier_get.py +200 -0
- osdu_python_client/generated/seismic_ddms/api/operations/operation_change_tier_push.py +236 -0
- osdu_python_client/generated/seismic_ddms/api/sub_project/__init__.py +1 -0
- osdu_python_client/generated/seismic_ddms/api/sub_project/subproject_create.py +257 -0
- osdu_python_client/generated/seismic_ddms/api/sub_project/subproject_delete.py +126 -0
- osdu_python_client/generated/seismic_ddms/api/sub_project/subproject_get.py +218 -0
- osdu_python_client/generated/seismic_ddms/api/sub_project/subproject_list.py +184 -0
- osdu_python_client/generated/seismic_ddms/api/sub_project/subproject_patch.py +293 -0
- osdu_python_client/generated/seismic_ddms/api/tenant/__init__.py +1 -0
- osdu_python_client/generated/seismic_ddms/api/tenant/tenant_create.py +216 -0
- osdu_python_client/generated/seismic_ddms/api/tenant/tenant_get.py +179 -0
- osdu_python_client/generated/seismic_ddms/api/tenant_obsolete/__init__.py +1 -0
- osdu_python_client/generated/seismic_ddms/api/tenant_obsolete/tenant_sdpath.py +186 -0
- osdu_python_client/generated/seismic_ddms/api/users/__init__.py +1 -0
- osdu_python_client/generated/seismic_ddms/api/users/user_add.py +127 -0
- osdu_python_client/generated/seismic_ddms/api/users/user_list.py +192 -0
- osdu_python_client/generated/seismic_ddms/api/users/user_remove.py +134 -0
- osdu_python_client/generated/seismic_ddms/api/users/user_roles.py +184 -0
- osdu_python_client/generated/seismic_ddms/api/utility/__init__.py +1 -0
- osdu_python_client/generated/seismic_ddms/api/utility/utility_cp.py +275 -0
- osdu_python_client/generated/seismic_ddms/api/utility/utility_download_connection_string.py +289 -0
- osdu_python_client/generated/seismic_ddms/api/utility/utility_gcs_access_token.py +252 -0
- osdu_python_client/generated/seismic_ddms/api/utility/utility_ls_get.py +259 -0
- osdu_python_client/generated/seismic_ddms/api/utility/utility_ls_post.py +217 -0
- osdu_python_client/generated/seismic_ddms/api/utility/utility_storage_tiers.py +107 -0
- osdu_python_client/generated/seismic_ddms/api/utility/utility_upload_connection_string.py +285 -0
- osdu_python_client/generated/seismic_ddms/client.py +282 -0
- osdu_python_client/generated/seismic_ddms/errors.py +16 -0
- osdu_python_client/generated/seismic_ddms/models/__init__.py +177 -0
- osdu_python_client/generated/seismic_ddms/models/abstract_dataset.py +145 -0
- osdu_python_client/generated/seismic_ddms/models/abstract_dataset_dataset_properties.py +47 -0
- osdu_python_client/generated/seismic_ddms/models/abstract_dataset_endian.py +9 -0
- osdu_python_client/generated/seismic_ddms/models/abstract_file_collection.py +74 -0
- osdu_python_client/generated/seismic_ddms/models/abstract_file_collection_dataset_properties.py +124 -0
- osdu_python_client/generated/seismic_ddms/models/abstract_file_source_info_schema.py +182 -0
- osdu_python_client/generated/seismic_ddms/models/abstract_vector_header_mapping.py +97 -0
- osdu_python_client/generated/seismic_ddms/models/abstract_vector_header_mapping_vector_header_mapping_item.py +140 -0
- osdu_python_client/generated/seismic_ddms/models/abstract_vector_header_mapping_vector_header_mapping_item_scalar_indicator.py +10 -0
- osdu_python_client/generated/seismic_ddms/models/access_control_list.py +54 -0
- osdu_python_client/generated/seismic_ddms/models/access_token.py +80 -0
- osdu_python_client/generated/seismic_ddms/models/computed_size.py +72 -0
- osdu_python_client/generated/seismic_ddms/models/dataset.py +289 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_and_directories.py +72 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_bulk_delete_body.py +80 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_bulk_delete_body_filter.py +47 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_check_list.py +64 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_filemetadata.py +47 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_list_body.py +128 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_list_body_filter.py +47 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_ls_body.py +94 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_metadata.py +47 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_patch.py +234 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_patch_acls.py +75 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_patch_filemetadata.py +47 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_patch_metadata.py +47 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_patch_seismicmeta.py +84 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_patch_seismicmeta_data.py +47 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_permission.py +80 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_register_body.py +163 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_register_body_acls.py +75 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_register_body_seismicmeta.py +88 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_register_body_seismicmeta_data.py +47 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_seismicmeta.py +84 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_seismicmeta_data.py +47 -0
- osdu_python_client/generated/seismic_ddms/models/dataset_size.py +72 -0
- osdu_python_client/generated/seismic_ddms/models/file_collection_segy.py +339 -0
- osdu_python_client/generated/seismic_ddms/models/file_collection_segy_data.py +290 -0
- osdu_python_client/generated/seismic_ddms/models/file_collection_segy_data_extension_properties.py +47 -0
- osdu_python_client/generated/seismic_ddms/models/file_collection_segy_tag_dictionary.py +52 -0
- osdu_python_client/generated/seismic_ddms/models/file_collection_slb_open_zgy.py +342 -0
- osdu_python_client/generated/seismic_ddms/models/file_collection_slb_open_zgy_data.py +247 -0
- osdu_python_client/generated/seismic_ddms/models/file_collection_slb_open_zgy_data_extension_properties.py +47 -0
- osdu_python_client/generated/seismic_ddms/models/file_collection_slb_open_zgy_tag_dictionary.py +52 -0
- osdu_python_client/generated/seismic_ddms/models/frame_of_reference_azimuth_reference.py +103 -0
- osdu_python_client/generated/seismic_ddms/models/frame_of_reference_crs.py +118 -0
- osdu_python_client/generated/seismic_ddms/models/frame_of_reference_date_time.py +102 -0
- osdu_python_client/generated/seismic_ddms/models/frame_of_reference_uom.py +113 -0
- osdu_python_client/generated/seismic_ddms/models/imp_token_patch_request.py +73 -0
- osdu_python_client/generated/seismic_ddms/models/imp_token_request.py +97 -0
- osdu_python_client/generated/seismic_ddms/models/impersonation_token.py +88 -0
- osdu_python_client/generated/seismic_ddms/models/impersonation_token_request.py +104 -0
- osdu_python_client/generated/seismic_ddms/models/impersonation_token_request_metadata.py +50 -0
- osdu_python_client/generated/seismic_ddms/models/legal_meta_data.py +68 -0
- osdu_python_client/generated/seismic_ddms/models/ls_paginated_datasets.py +72 -0
- osdu_python_client/generated/seismic_ddms/models/operation.py +64 -0
- osdu_python_client/generated/seismic_ddms/models/operation_body.py +80 -0
- osdu_python_client/generated/seismic_ddms/models/operation_body_filter.py +47 -0
- osdu_python_client/generated/seismic_ddms/models/operation_status.py +129 -0
- osdu_python_client/generated/seismic_ddms/models/osdu_common_resources.py +129 -0
- osdu_python_client/generated/seismic_ddms/models/paginated_datasets.py +88 -0
- osdu_python_client/generated/seismic_ddms/models/parent_list.py +49 -0
- osdu_python_client/generated/seismic_ddms/models/refresh_token_request.py +64 -0
- osdu_python_client/generated/seismic_ddms/models/resource.py +72 -0
- osdu_python_client/generated/seismic_ddms/models/status.py +64 -0
- osdu_python_client/generated/seismic_ddms/models/sub_project.py +133 -0
- osdu_python_client/generated/seismic_ddms/models/sub_project_access_policy.py +9 -0
- osdu_python_client/generated/seismic_ddms/models/sub_project_acls.py +75 -0
- osdu_python_client/generated/seismic_ddms/models/sub_project_create_body.py +131 -0
- osdu_python_client/generated/seismic_ddms/models/sub_project_create_body_access_policy.py +9 -0
- osdu_python_client/generated/seismic_ddms/models/sub_project_create_body_acls.py +76 -0
- osdu_python_client/generated/seismic_ddms/models/sub_project_patch_body.py +90 -0
- osdu_python_client/generated/seismic_ddms/models/sub_project_patch_body_acls.py +75 -0
- osdu_python_client/generated/seismic_ddms/models/tenant.py +92 -0
- osdu_python_client/generated/seismic_ddms/models/tenant_create_body.py +84 -0
- osdu_python_client/generated/seismic_ddms/models/user_add_request.py +83 -0
- osdu_python_client/generated/seismic_ddms/models/user_add_request_group.py +9 -0
- osdu_python_client/generated/seismic_ddms/models/user_remove_request.py +73 -0
- osdu_python_client/generated/seismic_ddms/models/user_roles.py +71 -0
- osdu_python_client/generated/seismic_ddms/models/utility_cp_response_200.py +47 -0
- osdu_python_client/generated/seismic_ddms/types.py +54 -0
- osdu_python_client/generated/storage/__init__.py +8 -0
- osdu_python_client/generated/storage/_facade.pyi +209 -0
- osdu_python_client/generated/storage/api/__init__.py +1 -0
- osdu_python_client/generated/storage/api/health_check_api/__init__.py +1 -0
- osdu_python_client/generated/storage/api/health_check_api/liveness_check.py +177 -0
- osdu_python_client/generated/storage/api/info/__init__.py +1 -0
- osdu_python_client/generated/storage/api/info/info.py +164 -0
- osdu_python_client/generated/storage/api/query/__init__.py +1 -0
- osdu_python_client/generated/storage/api/query/fetch_records.py +257 -0
- osdu_python_client/generated/storage/api/query/get_all_records_1.py +270 -0
- osdu_python_client/generated/storage/api/query/get_records.py +238 -0
- osdu_python_client/generated/storage/api/records/__init__.py +1 -0
- osdu_python_client/generated/storage/api/records/bulk_delete_records.py +241 -0
- osdu_python_client/generated/storage/api/records/copy_record_references_between_namespaces.py +253 -0
- osdu_python_client/generated/storage/api/records/create_or_update_records.py +273 -0
- osdu_python_client/generated/storage/api/records/delete_record.py +238 -0
- osdu_python_client/generated/storage/api/records/get_all_records.py +334 -0
- osdu_python_client/generated/storage/api/records/get_latest_record_version.py +258 -0
- osdu_python_client/generated/storage/api/records/get_record_versions.py +236 -0
- osdu_python_client/generated/storage/api/records/get_specific_record_version.py +272 -0
- osdu_python_client/generated/storage/api/records/patch_record.py +280 -0
- osdu_python_client/generated/storage/api/records/purge_record.py +233 -0
- osdu_python_client/generated/storage/api/records/purge_record_versions.py +283 -0
- osdu_python_client/generated/storage/api/replay/__init__.py +1 -0
- osdu_python_client/generated/storage/api/replay/get_replay_status.py +215 -0
- osdu_python_client/generated/storage/api/replay/trigger_replay.py +233 -0
- osdu_python_client/generated/storage/client.py +282 -0
- osdu_python_client/generated/storage/errors.py +16 -0
- osdu_python_client/generated/storage/models/__init__.py +115 -0
- osdu_python_client/generated/storage/models/acl.py +70 -0
- osdu_python_client/generated/storage/models/app_error.py +80 -0
- osdu_python_client/generated/storage/models/bulk_update_records_response.py +108 -0
- osdu_python_client/generated/storage/models/connected_outer_service.py +71 -0
- osdu_python_client/generated/storage/models/conversion_status.py +81 -0
- osdu_python_client/generated/storage/models/copy_record_references_model.py +89 -0
- osdu_python_client/generated/storage/models/create_update_records_response.py +95 -0
- osdu_python_client/generated/storage/models/datastore_query_result.py +72 -0
- osdu_python_client/generated/storage/models/delete_records_exception.py +175 -0
- osdu_python_client/generated/storage/models/delete_records_exception_cause.py +132 -0
- osdu_python_client/generated/storage/models/delete_records_exception_cause_stack_trace_item.py +124 -0
- osdu_python_client/generated/storage/models/delete_records_exception_cause_suppressed_item.py +109 -0
- osdu_python_client/generated/storage/models/delete_records_exception_cause_suppressed_item_stack_trace_item.py +124 -0
- osdu_python_client/generated/storage/models/delete_records_exception_stack_trace_item.py +124 -0
- osdu_python_client/generated/storage/models/delete_records_exception_suppressed_item.py +109 -0
- osdu_python_client/generated/storage/models/delete_records_exception_suppressed_item_stack_trace_item.py +124 -0
- osdu_python_client/generated/storage/models/feature_flag_state.py +89 -0
- osdu_python_client/generated/storage/models/get_all_records_sort_order.py +9 -0
- osdu_python_client/generated/storage/models/legal.py +90 -0
- osdu_python_client/generated/storage/models/legal_status.py +9 -0
- osdu_python_client/generated/storage/models/multi_record_ids.py +75 -0
- osdu_python_client/generated/storage/models/multi_record_info.py +101 -0
- osdu_python_client/generated/storage/models/multi_record_request.py +62 -0
- osdu_python_client/generated/storage/models/multi_record_response.py +103 -0
- osdu_python_client/generated/storage/models/pair_string_string.py +88 -0
- osdu_python_client/generated/storage/models/patch_operation.py +78 -0
- osdu_python_client/generated/storage/models/patch_records_request_model.py +81 -0
- osdu_python_client/generated/storage/models/patch_records_response.py +106 -0
- osdu_python_client/generated/storage/models/record.py +230 -0
- osdu_python_client/generated/storage/models/record_ancestry.py +65 -0
- osdu_python_client/generated/storage/models/record_bulk_update_param.py +86 -0
- osdu_python_client/generated/storage/models/record_data.py +47 -0
- osdu_python_client/generated/storage/models/record_merge_patch_request.py +180 -0
- osdu_python_client/generated/storage/models/record_merge_patch_request_data.py +70 -0
- osdu_python_client/generated/storage/models/record_merge_patch_request_data_additional_property.py +47 -0
- osdu_python_client/generated/storage/models/record_merge_patch_request_tags.py +47 -0
- osdu_python_client/generated/storage/models/record_meta_item.py +47 -0
- osdu_python_client/generated/storage/models/record_query.py +63 -0
- osdu_python_client/generated/storage/models/record_query_patch.py +66 -0
- osdu_python_client/generated/storage/models/record_tags.py +47 -0
- osdu_python_client/generated/storage/models/record_version_model.py +71 -0
- osdu_python_client/generated/storage/models/record_versions.py +72 -0
- osdu_python_client/generated/storage/models/replay_filter.py +64 -0
- osdu_python_client/generated/storage/models/replay_request.py +96 -0
- osdu_python_client/generated/storage/models/replay_response.py +63 -0
- osdu_python_client/generated/storage/models/replay_status.py +116 -0
- osdu_python_client/generated/storage/models/replay_status_response.py +171 -0
- osdu_python_client/generated/storage/models/version_info.py +173 -0
- osdu_python_client/generated/storage/types.py +54 -0
- osdu_python_client/generated/unit/__init__.py +8 -0
- osdu_python_client/generated/unit/_facade.pyi +638 -0
- osdu_python_client/generated/unit/api/__init__.py +1 -0
- osdu_python_client/generated/unit/api/conversions_deprecated/__init__.py +1 -0
- osdu_python_client/generated/unit/api/conversions_deprecated/get_conversion_abcd_by_symbols_1.py +244 -0
- osdu_python_client/generated/unit/api/conversions_deprecated/get_conversion_scale_offset_by_symbols_1.py +244 -0
- osdu_python_client/generated/unit/api/conversions_deprecated/post_conversion_abcd_1.py +225 -0
- osdu_python_client/generated/unit/api/conversions_deprecated/post_conversion_scale_offset_1.py +225 -0
- osdu_python_client/generated/unit/api/health_check_api/__init__.py +1 -0
- osdu_python_client/generated/unit/api/health_check_api/liveness_check.py +88 -0
- osdu_python_client/generated/unit/api/health_check_api/liveness_check_1.py +88 -0
- osdu_python_client/generated/unit/api/health_check_api/readiness_check.py +88 -0
- osdu_python_client/generated/unit/api/health_check_api/readiness_check_1.py +88 -0
- osdu_python_client/generated/unit/api/info_api_v3/__init__.py +1 -0
- osdu_python_client/generated/unit/api/info_api_v3/info.py +152 -0
- osdu_python_client/generated/unit/api/measurements_deprecated/__init__.py +1 -0
- osdu_python_client/generated/unit/api/measurements_deprecated/get_measurement_1.py +204 -0
- osdu_python_client/generated/unit/api/measurements_deprecated/get_measurement_maps_1.py +224 -0
- osdu_python_client/generated/unit/api/measurements_deprecated/get_measurements_1.py +224 -0
- osdu_python_client/generated/unit/api/measurements_deprecated/post_measurement_1.py +213 -0
- osdu_python_client/generated/unit/api/measurements_deprecated/post_search_measurements_1.py +252 -0
- osdu_python_client/generated/unit/api/unit_api_v3/__init__.py +1 -0
- osdu_python_client/generated/unit/api/unit_api_v3/get_catalog.py +177 -0
- osdu_python_client/generated/unit/api/unit_api_v3/get_conversion_abcd_by_symbols.py +239 -0
- osdu_python_client/generated/unit/api/unit_api_v3/get_conversion_scale_offset_by_symbols.py +239 -0
- osdu_python_client/generated/unit/api/unit_api_v3/get_last_modified.py +177 -0
- osdu_python_client/generated/unit/api/unit_api_v3/get_map_states.py +224 -0
- osdu_python_client/generated/unit/api/unit_api_v3/get_measurement.py +209 -0
- osdu_python_client/generated/unit/api/unit_api_v3/get_measurement_maps.py +224 -0
- osdu_python_client/generated/unit/api/unit_api_v3/get_measurements.py +224 -0
- osdu_python_client/generated/unit/api/unit_api_v3/get_preferred_units_by_measurement.py +209 -0
- osdu_python_client/generated/unit/api/unit_api_v3/get_unit_by_symbol.py +224 -0
- osdu_python_client/generated/unit/api/unit_api_v3/get_unit_by_system_and_measurement.py +224 -0
- osdu_python_client/generated/unit/api/unit_api_v3/get_unit_maps.py +224 -0
- osdu_python_client/generated/unit/api/unit_api_v3/get_unit_system.py +239 -0
- osdu_python_client/generated/unit/api/unit_api_v3/get_unit_system_info_list.py +224 -0
- osdu_python_client/generated/unit/api/unit_api_v3/get_units.py +224 -0
- osdu_python_client/generated/unit/api/unit_api_v3/get_units_by_measurement.py +209 -0
- osdu_python_client/generated/unit/api/unit_api_v3/get_units_by_symbol.py +209 -0
- osdu_python_client/generated/unit/api/unit_api_v3/post_conversion_abcd.py +222 -0
- osdu_python_client/generated/unit/api/unit_api_v3/post_conversion_scale_offset.py +222 -0
- osdu_python_client/generated/unit/api/unit_api_v3/post_measurement.py +218 -0
- osdu_python_client/generated/unit/api/unit_api_v3/post_preferred_units_by_measurement.py +218 -0
- osdu_python_client/generated/unit/api/unit_api_v3/post_search.py +249 -0
- osdu_python_client/generated/unit/api/unit_api_v3/post_search_measurements.py +249 -0
- osdu_python_client/generated/unit/api/unit_api_v3/post_search_units.py +249 -0
- osdu_python_client/generated/unit/api/unit_api_v3/post_unit.py +214 -0
- osdu_python_client/generated/unit/api/unit_api_v3/post_unit_by_system_and_measurement.py +238 -0
- osdu_python_client/generated/unit/api/unit_api_v3/post_unit_system.py +249 -0
- osdu_python_client/generated/unit/api/unit_api_v3/post_units_by_measurement.py +218 -0
- osdu_python_client/generated/unit/api/unit_systems_deprecated/__init__.py +1 -0
- osdu_python_client/generated/unit/api/unit_systems_deprecated/get_unit_by_system_and_measurement_1.py +222 -0
- osdu_python_client/generated/unit/api/unit_systems_deprecated/get_unit_system_1.py +240 -0
- osdu_python_client/generated/unit/api/unit_systems_deprecated/get_unit_system_info_list_1.py +228 -0
- osdu_python_client/generated/unit/api/unit_systems_deprecated/post_unit_by_system_and_measurement_1.py +237 -0
- osdu_python_client/generated/unit/api/unit_systems_deprecated/post_unit_system_1.py +244 -0
- osdu_python_client/generated/unit/api/units_deprecated/__init__.py +1 -0
- osdu_python_client/generated/unit/api/units_deprecated/get_preferred_units_by_measurement_1.py +204 -0
- osdu_python_client/generated/unit/api/units_deprecated/get_unit_by_symbol_1.py +222 -0
- osdu_python_client/generated/unit/api/units_deprecated/get_unit_maps_1.py +224 -0
- osdu_python_client/generated/unit/api/units_deprecated/get_units_1.py +224 -0
- osdu_python_client/generated/unit/api/units_deprecated/get_units_by_measurement_1.py +204 -0
- osdu_python_client/generated/unit/api/units_deprecated/get_units_by_symbol_1.py +208 -0
- osdu_python_client/generated/unit/api/units_deprecated/post_preferred_units_by_measurement_1.py +217 -0
- osdu_python_client/generated/unit/api/units_deprecated/post_search_units_1.py +248 -0
- osdu_python_client/generated/unit/api/units_deprecated/post_unit_1.py +213 -0
- osdu_python_client/generated/unit/api/units_deprecated/post_units_by_measurement_1.py +217 -0
- osdu_python_client/generated/unit/api/uo_m_catalog_deprecated/__init__.py +1 -0
- osdu_python_client/generated/unit/api/uo_m_catalog_deprecated/get_catalog_1.py +181 -0
- osdu_python_client/generated/unit/api/uo_m_catalog_deprecated/get_last_modified_1.py +177 -0
- osdu_python_client/generated/unit/api/uo_m_catalog_deprecated/get_map_states_1.py +224 -0
- osdu_python_client/generated/unit/api/uo_m_catalog_deprecated/post_search_1.py +256 -0
- osdu_python_client/generated/unit/client.py +282 -0
- osdu_python_client/generated/unit/errors.py +16 -0
- osdu_python_client/generated/unit/models/__init__.py +77 -0
- osdu_python_client/generated/unit/models/abcd.py +88 -0
- osdu_python_client/generated/unit/models/abcd_impl.py +89 -0
- osdu_python_client/generated/unit/models/app_error.py +79 -0
- osdu_python_client/generated/unit/models/catalog.py +261 -0
- osdu_python_client/generated/unit/models/catalog_last_modified.py +61 -0
- osdu_python_client/generated/unit/models/connected_outer_service.py +70 -0
- osdu_python_client/generated/unit/models/conversion_abcd_request.py +112 -0
- osdu_python_client/generated/unit/models/conversion_result.py +126 -0
- osdu_python_client/generated/unit/models/conversion_scale_offset_request.py +112 -0
- osdu_python_client/generated/unit/models/feature_flag_state.py +88 -0
- osdu_python_client/generated/unit/models/map_state.py +79 -0
- osdu_python_client/generated/unit/models/measurement.py +237 -0
- osdu_python_client/generated/unit/models/measurement_deprecation_info.py +79 -0
- osdu_python_client/generated/unit/models/measurement_essence.py +70 -0
- osdu_python_client/generated/unit/models/measurement_essence_impl.py +80 -0
- osdu_python_client/generated/unit/models/measurement_map.py +108 -0
- osdu_python_client/generated/unit/models/measurement_map_item.py +126 -0
- osdu_python_client/generated/unit/models/measurement_request.py +84 -0
- osdu_python_client/generated/unit/models/query_result.py +200 -0
- osdu_python_client/generated/unit/models/scale_offset.py +70 -0
- osdu_python_client/generated/unit/models/scale_offset_impl.py +71 -0
- osdu_python_client/generated/unit/models/search_request.py +62 -0
- osdu_python_client/generated/unit/models/unit.py +155 -0
- osdu_python_client/generated/unit/models/unit_assignment.py +101 -0
- osdu_python_client/generated/unit/models/unit_deprecation_info.py +79 -0
- osdu_python_client/generated/unit/models/unit_essence.py +130 -0
- osdu_python_client/generated/unit/models/unit_essence_impl.py +129 -0
- osdu_python_client/generated/unit/models/unit_map.py +106 -0
- osdu_python_client/generated/unit/models/unit_map_item.py +126 -0
- osdu_python_client/generated/unit/models/unit_request.py +85 -0
- osdu_python_client/generated/unit/models/unit_system.py +184 -0
- osdu_python_client/generated/unit/models/unit_system_essence_impl.py +62 -0
- osdu_python_client/generated/unit/models/unit_system_info.py +89 -0
- osdu_python_client/generated/unit/models/unit_system_info_response.py +109 -0
- osdu_python_client/generated/unit/models/unit_system_request.py +84 -0
- osdu_python_client/generated/unit/models/version_info.py +171 -0
- osdu_python_client/generated/unit/types.py +54 -0
- osdu_python_client/generated/wellbore_ddms/__init__.py +8 -0
- osdu_python_client/generated/wellbore_ddms/_facade.pyi +848 -0
- osdu_python_client/generated/wellbore_ddms/api/__init__.py +1 -0
- osdu_python_client/generated/wellbore_ddms/api/log_recognition/__init__.py +1 -0
- osdu_python_client/generated/wellbore_ddms/api/log_recognition/family.py +213 -0
- osdu_python_client/generated/wellbore_ddms/api/log_recognition/upload_catalog.py +237 -0
- osdu_python_client/generated/wellbore_ddms/api/marker/__init__.py +1 -0
- osdu_python_client/generated/wellbore_ddms/api/marker/del_osdu_wellboremarkerset.py +205 -0
- osdu_python_client/generated/wellbore_ddms/api/marker/get_osdu_wellboremarkerset_version.py +225 -0
- osdu_python_client/generated/wellbore_ddms/api/marker/get_osdu_wellboremarkerset_versions.py +207 -0
- osdu_python_client/generated/wellbore_ddms/api/marker/get_wellbore_markerset_osdu.py +211 -0
- osdu_python_client/generated/wellbore_ddms/api/marker/post_wellboremarkerset_osdu.py +208 -0
- osdu_python_client/generated/wellbore_ddms/api/ppfg_dataset_v_3/__init__.py +1 -0
- osdu_python_client/generated/wellbore_ddms/api/ppfg_dataset_v_3/create_or_update_osdu_record.py +232 -0
- osdu_python_client/generated/wellbore_ddms/api/ppfg_dataset_v_3/delete_osdu_record.py +217 -0
- osdu_python_client/generated/wellbore_ddms/api/ppfg_dataset_v_3/get_ddms_v3_ppfgdataset_record_id_data.py +473 -0
- osdu_python_client/generated/wellbore_ddms/api/ppfg_dataset_v_3/get_ddms_v3_ppfgdataset_record_id_sessions.py +200 -0
- osdu_python_client/generated/wellbore_ddms/api/ppfg_dataset_v_3/get_ddms_v3_ppfgdataset_record_id_sessions_session_id.py +210 -0
- osdu_python_client/generated/wellbore_ddms/api/ppfg_dataset_v_3/get_ddms_v3_ppfgdataset_record_id_versions_version_data.py +487 -0
- osdu_python_client/generated/wellbore_ddms/api/ppfg_dataset_v_3/get_osdu_record.py +195 -0
- osdu_python_client/generated/wellbore_ddms/api/ppfg_dataset_v_3/get_record_versions.py +195 -0
- osdu_python_client/generated/wellbore_ddms/api/ppfg_dataset_v_3/get_specific_record_version.py +217 -0
- osdu_python_client/generated/wellbore_ddms/api/ppfg_dataset_v_3/patch_ddms_v3_ppfgdataset_record_id_sessions_session_id.py +252 -0
- osdu_python_client/generated/wellbore_ddms/api/ppfg_dataset_v_3/post_ddms_v3_ppfgdataset_record_id_data.py +434 -0
- osdu_python_client/generated/wellbore_ddms/api/ppfg_dataset_v_3/post_ddms_v3_ppfgdataset_record_id_sessions.py +301 -0
- osdu_python_client/generated/wellbore_ddms/api/ppfg_dataset_v_3/post_ddms_v3_ppfgdataset_record_id_sessions_session_id_data.py +411 -0
- osdu_python_client/generated/wellbore_ddms/api/trajectory_v_3/__init__.py +1 -0
- osdu_python_client/generated/wellbore_ddms/api/trajectory_v_3/del_osdu_wellboretrajectory.py +225 -0
- osdu_python_client/generated/wellbore_ddms/api/trajectory_v_3/get_ddms_v3_wellboretrajectories_record_id_data.py +473 -0
- osdu_python_client/generated/wellbore_ddms/api/trajectory_v_3/get_ddms_v3_wellboretrajectories_record_id_sessions.py +200 -0
- osdu_python_client/generated/wellbore_ddms/api/trajectory_v_3/get_ddms_v3_wellboretrajectories_record_id_sessions_session_id.py +210 -0
- osdu_python_client/generated/wellbore_ddms/api/trajectory_v_3/get_ddms_v3_wellboretrajectories_record_id_versions_version_data.py +487 -0
- osdu_python_client/generated/wellbore_ddms/api/trajectory_v_3/get_osdu_wellboretrajectory_version.py +225 -0
- osdu_python_client/generated/wellbore_ddms/api/trajectory_v_3/get_osdu_wellboretrajectory_versions.py +207 -0
- osdu_python_client/generated/wellbore_ddms/api/trajectory_v_3/get_wellbore_trajectory_osdu.py +211 -0
- osdu_python_client/generated/wellbore_ddms/api/trajectory_v_3/patch_ddms_v3_wellboretrajectories_record_id_sessions_session_id.py +252 -0
- osdu_python_client/generated/wellbore_ddms/api/trajectory_v_3/post_ddms_v3_wellboretrajectories_record_id_data.py +434 -0
- osdu_python_client/generated/wellbore_ddms/api/trajectory_v_3/post_ddms_v3_wellboretrajectories_record_id_sessions.py +301 -0
- osdu_python_client/generated/wellbore_ddms/api/trajectory_v_3/post_ddms_v3_wellboretrajectories_record_id_sessions_session_id_data.py +411 -0
- osdu_python_client/generated/wellbore_ddms/api/trajectory_v_3/post_wellboretrajectory_osdu.py +232 -0
- osdu_python_client/generated/wellbore_ddms/api/well/__init__.py +1 -0
- osdu_python_client/generated/wellbore_ddms/api/well/del_osdu_well.py +205 -0
- osdu_python_client/generated/wellbore_ddms/api/well/get_osdu_well_version.py +225 -0
- osdu_python_client/generated/wellbore_ddms/api/well/get_osdu_well_versions.py +207 -0
- osdu_python_client/generated/wellbore_ddms/api/well/get_well_osdu.py +211 -0
- osdu_python_client/generated/wellbore_ddms/api/well/post_well_osdu.py +208 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log/__init__.py +1 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log/del_osdu_welllog.py +225 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log/get_ddms_v3_welllogs_record_id_data.py +473 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log/get_ddms_v3_welllogs_record_id_data_statistics.py +292 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log/get_ddms_v3_welllogs_record_id_sessions.py +200 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log/get_ddms_v3_welllogs_record_id_sessions_session_id.py +210 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log/get_ddms_v3_welllogs_record_id_versions_version_data.py +487 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log/get_osdu_welllog_version.py +225 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log/get_osdu_welllog_versions.py +207 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log/get_welllog_osdu.py +211 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log/patch_ddms_v3_welllogs_record_id_sessions_session_id.py +252 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log/post_chunk_data.py +411 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log/post_ddms_v3_welllogs_record_id_sessions.py +301 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log/post_welllog_osdu.py +232 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log/write_record_data.py +434 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log_acquisition/__init__.py +1 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log_acquisition/del_osdu_welllogacquisitionid.py +205 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log_acquisition/get_osdu_welllogacquisitionid_version.py +225 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log_acquisition/get_osdu_welllogacquisitionid_versions.py +207 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log_acquisition/get_welllogacquisitionid_osdu.py +211 -0
- osdu_python_client/generated/wellbore_ddms/api/well_log_acquisition/post_welllogacquisitionid_osdu.py +232 -0
- osdu_python_client/generated/wellbore_ddms/api/well_pressure_test_raw_measurement_v_3/__init__.py +1 -0
- osdu_python_client/generated/wellbore_ddms/api/well_pressure_test_raw_measurement_v_3/delete_ddms_v3_wellpressuretestrawmeasurement_osdu_record_id.py +217 -0
- osdu_python_client/generated/wellbore_ddms/api/well_pressure_test_raw_measurement_v_3/get_ddms_v3_wellpressuretestrawmeasurement_osdu_record_id.py +195 -0
- osdu_python_client/generated/wellbore_ddms/api/well_pressure_test_raw_measurement_v_3/get_ddms_v3_wellpressuretestrawmeasurement_osdu_record_id_versions.py +195 -0
- osdu_python_client/generated/wellbore_ddms/api/well_pressure_test_raw_measurement_v_3/get_ddms_v3_wellpressuretestrawmeasurement_osdu_record_id_versions_version.py +217 -0
- osdu_python_client/generated/wellbore_ddms/api/well_pressure_test_raw_measurement_v_3/get_ddms_v3_wellpressuretestrawmeasurement_record_id_data.py +473 -0
- osdu_python_client/generated/wellbore_ddms/api/well_pressure_test_raw_measurement_v_3/get_ddms_v3_wellpressuretestrawmeasurement_record_id_sessions.py +200 -0
- osdu_python_client/generated/wellbore_ddms/api/well_pressure_test_raw_measurement_v_3/get_ddms_v3_wellpressuretestrawmeasurement_record_id_sessions_session_id.py +210 -0
- osdu_python_client/generated/wellbore_ddms/api/well_pressure_test_raw_measurement_v_3/get_ddms_v3_wellpressuretestrawmeasurement_record_id_versions_version_data.py +487 -0
- osdu_python_client/generated/wellbore_ddms/api/well_pressure_test_raw_measurement_v_3/patch_ddms_v3_wellpressuretestrawmeasurement_record_id_sessions_session_id.py +252 -0
- osdu_python_client/generated/wellbore_ddms/api/well_pressure_test_raw_measurement_v_3/post_ddms_v3_wellpressuretestrawmeasurement.py +232 -0
- osdu_python_client/generated/wellbore_ddms/api/well_pressure_test_raw_measurement_v_3/post_ddms_v3_wellpressuretestrawmeasurement_record_id_data.py +434 -0
- osdu_python_client/generated/wellbore_ddms/api/well_pressure_test_raw_measurement_v_3/post_ddms_v3_wellpressuretestrawmeasurement_record_id_sessions.py +301 -0
- osdu_python_client/generated/wellbore_ddms/api/well_pressure_test_raw_measurement_v_3/post_ddms_v3_wellpressuretestrawmeasurement_record_id_sessions_session_id_data.py +411 -0
- osdu_python_client/generated/wellbore_ddms/api/wellbore/__init__.py +1 -0
- osdu_python_client/generated/wellbore_ddms/api/wellbore/del_osdu_wellbore.py +205 -0
- osdu_python_client/generated/wellbore_ddms/api/wellbore/get_osdu_wellbore_version.py +225 -0
- osdu_python_client/generated/wellbore_ddms/api/wellbore/get_osdu_wellbore_versions.py +207 -0
- osdu_python_client/generated/wellbore_ddms/api/wellbore/get_wellbore_osdu.py +211 -0
- osdu_python_client/generated/wellbore_ddms/api/wellbore/post_wellbore_osdu.py +208 -0
- osdu_python_client/generated/wellbore_ddms/api/wellbore_ddms/__init__.py +1 -0
- osdu_python_client/generated/wellbore_ddms/api/wellbore_ddms/get_about.py +132 -0
- osdu_python_client/generated/wellbore_ddms/api/wellbore_ddms/get_version.py +140 -0
- osdu_python_client/generated/wellbore_ddms/api/wellbore_interval_set/__init__.py +1 -0
- osdu_python_client/generated/wellbore_ddms/api/wellbore_interval_set/del_osdu_wellboreintervalsetid.py +205 -0
- osdu_python_client/generated/wellbore_ddms/api/wellbore_interval_set/get_osdu_wellboreintervalsetid_version.py +225 -0
- osdu_python_client/generated/wellbore_ddms/api/wellbore_interval_set/get_osdu_wellboreintervalsetid_versions.py +207 -0
- osdu_python_client/generated/wellbore_ddms/api/wellbore_interval_set/get_wellboreintervalsetid_osdu.py +211 -0
- osdu_python_client/generated/wellbore_ddms/api/wellbore_interval_set/post_wellboreintervalsetid_osdu.py +208 -0
- osdu_python_client/generated/wellbore_ddms/client.py +282 -0
- osdu_python_client/generated/wellbore_ddms/errors.py +16 -0
- osdu_python_client/generated/wellbore_ddms/models/__init__.py +79 -0
- osdu_python_client/generated/wellbore_ddms/models/about_response.py +153 -0
- osdu_python_client/generated/wellbore_ddms/models/bulk_data_statistics_response.py +121 -0
- osdu_python_client/generated/wellbore_ddms/models/bulk_data_statistics_response_curves_statistics_values.py +64 -0
- osdu_python_client/generated/wellbore_ddms/models/bulk_statistics_status.py +11 -0
- osdu_python_client/generated/wellbore_ddms/models/catalog.py +126 -0
- osdu_python_client/generated/wellbore_ddms/models/catalog_item.py +91 -0
- osdu_python_client/generated/wellbore_ddms/models/catalog_record.py +93 -0
- osdu_python_client/generated/wellbore_ddms/models/commit_session_response.py +195 -0
- osdu_python_client/generated/wellbore_ddms/models/commit_session_response_meta_type_0.py +47 -0
- osdu_python_client/generated/wellbore_ddms/models/create_data_session_request.py +134 -0
- osdu_python_client/generated/wellbore_ddms/models/create_data_session_request_meta_type_0.py +47 -0
- osdu_python_client/generated/wellbore_ddms/models/create_update_records_response.py +166 -0
- osdu_python_client/generated/wellbore_ddms/models/curve_statistics.py +125 -0
- osdu_python_client/generated/wellbore_ddms/models/dataframe_basic_describe.py +102 -0
- osdu_python_client/generated/wellbore_ddms/models/guess_request.py +106 -0
- osdu_python_client/generated/wellbore_ddms/models/guess_response.py +144 -0
- osdu_python_client/generated/wellbore_ddms/models/http_validation_error.py +79 -0
- osdu_python_client/generated/wellbore_ddms/models/json_orient.py +9 -0
- osdu_python_client/generated/wellbore_ddms/models/legal.py +119 -0
- osdu_python_client/generated/wellbore_ddms/models/main_family_catalog_item.py +77 -0
- osdu_python_client/generated/wellbore_ddms/models/record.py +349 -0
- osdu_python_client/generated/wellbore_ddms/models/record_ancestry.py +84 -0
- osdu_python_client/generated/wellbore_ddms/models/record_data.py +47 -0
- osdu_python_client/generated/wellbore_ddms/models/record_meta_type_0_item.py +47 -0
- osdu_python_client/generated/wellbore_ddms/models/record_tags_type_0.py +47 -0
- osdu_python_client/generated/wellbore_ddms/models/record_versions.py +104 -0
- osdu_python_client/generated/wellbore_ddms/models/session.py +170 -0
- osdu_python_client/generated/wellbore_ddms/models/session_meta_type_0.py +47 -0
- osdu_python_client/generated/wellbore_ddms/models/session_state.py +12 -0
- osdu_python_client/generated/wellbore_ddms/models/session_update_mode.py +9 -0
- osdu_python_client/generated/wellbore_ddms/models/storage_acl.py +69 -0
- osdu_python_client/generated/wellbore_ddms/models/update_session_state.py +63 -0
- osdu_python_client/generated/wellbore_ddms/models/update_session_state_value.py +9 -0
- osdu_python_client/generated/wellbore_ddms/models/validation_error.py +90 -0
- osdu_python_client/generated/wellbore_ddms/models/version_details_response.py +179 -0
- osdu_python_client/generated/wellbore_ddms/models/version_details_response_details_type_0.py +47 -0
- osdu_python_client/generated/wellbore_ddms/types.py +54 -0
- osdu_python_client/generated/workflow/__init__.py +8 -0
- osdu_python_client/generated/workflow/api/__init__.py +1 -0
- osdu_python_client/generated/workflow/api/health/__init__.py +1 -0
- osdu_python_client/generated/workflow/api/health/liveness_check.py +166 -0
- osdu_python_client/generated/workflow/api/health/readiness_check.py +166 -0
- osdu_python_client/generated/workflow/api/info/__init__.py +1 -0
- osdu_python_client/generated/workflow/api/info/info.py +164 -0
- osdu_python_client/generated/workflow/api/run_details_api/__init__.py +1 -0
- osdu_python_client/generated/workflow/api/run_details_api/get_workflow_run_details.py +236 -0
- osdu_python_client/generated/workflow/api/workflow_manager_api/__init__.py +1 -0
- osdu_python_client/generated/workflow/api/workflow_manager_api/create.py +227 -0
- osdu_python_client/generated/workflow/api/workflow_manager_api/delete_workflow_by_id.py +219 -0
- osdu_python_client/generated/workflow/api/workflow_manager_api/get_all_workflows_for_tenant.py +225 -0
- osdu_python_client/generated/workflow/api/workflow_manager_api/get_workflow_by_name.py +221 -0
- osdu_python_client/generated/workflow/api/workflow_run_api/__init__.py +1 -0
- osdu_python_client/generated/workflow/api/workflow_run_api/get_all_run_instances.py +243 -0
- osdu_python_client/generated/workflow/api/workflow_run_api/get_workflow_run_by_id.py +235 -0
- osdu_python_client/generated/workflow/api/workflow_run_api/trigger_workflow.py +239 -0
- osdu_python_client/generated/workflow/api/workflow_run_api/update_workflow_run.py +253 -0
- osdu_python_client/generated/workflow/api/workflow_system_manager_api/__init__.py +1 -0
- osdu_python_client/generated/workflow/api/workflow_system_manager_api/create_system_workflow.py +227 -0
- osdu_python_client/generated/workflow/api/workflow_system_manager_api/delete_system_workflow_by_id.py +219 -0
- osdu_python_client/generated/workflow/client.py +282 -0
- osdu_python_client/generated/workflow/errors.py +16 -0
- osdu_python_client/generated/workflow/models/__init__.py +63 -0
- osdu_python_client/generated/workflow/models/app_error.py +80 -0
- osdu_python_client/generated/workflow/models/connected_outer_service.py +71 -0
- osdu_python_client/generated/workflow/models/create_workflow_request.py +100 -0
- osdu_python_client/generated/workflow/models/create_workflow_request_registration_instructions.py +82 -0
- osdu_python_client/generated/workflow/models/create_workflow_request_registration_instructions_additional_property.py +49 -0
- osdu_python_client/generated/workflow/models/feature_flag_state.py +89 -0
- osdu_python_client/generated/workflow/models/get_all_run_instances_params.py +70 -0
- osdu_python_client/generated/workflow/models/get_all_run_instances_params_additional_property.py +47 -0
- osdu_python_client/generated/workflow/models/get_workflow_run_details_response_200.py +47 -0
- osdu_python_client/generated/workflow/models/trigger_workflow_request.py +90 -0
- osdu_python_client/generated/workflow/models/trigger_workflow_request_execution_context.py +76 -0
- osdu_python_client/generated/workflow/models/trigger_workflow_request_execution_context_additional_property.py +47 -0
- osdu_python_client/generated/workflow/models/update_workflow_run_request.py +69 -0
- osdu_python_client/generated/workflow/models/update_workflow_run_request_status.py +13 -0
- osdu_python_client/generated/workflow/models/version_info.py +173 -0
- osdu_python_client/generated/workflow/models/workflow_metadata.py +164 -0
- osdu_python_client/generated/workflow/models/workflow_metadata_registration_instructions.py +84 -0
- osdu_python_client/generated/workflow/models/workflow_metadata_registration_instructions_additional_property.py +47 -0
- osdu_python_client/generated/workflow/models/workflow_run.py +133 -0
- osdu_python_client/generated/workflow/models/workflow_run_response.py +114 -0
- osdu_python_client/generated/workflow/models/workflow_run_response_status.py +12 -0
- osdu_python_client/generated/workflow/models/workflow_run_status.py +13 -0
- osdu_python_client/generated/workflow/types.py +54 -0
- osdu_python_client/hooks.py +21 -0
- osdu_python_client/logging_setup.py +35 -0
- osdu_python_client/py.typed +0 -0
- osdu_python_client/services/__init__.py +3 -0
- osdu_python_client/services/facade.py +173 -0
- osdu_python_client/services/registry.py +50 -0
- osdu_python_client/transport.py +245 -0
- osdu_python_client-0.4.1.dist-info/METADATA +235 -0
- osdu_python_client-0.4.1.dist-info/RECORD +1254 -0
- osdu_python_client-0.4.1.dist-info/WHEEL +5 -0
- osdu_python_client-0.4.1.dist-info/licenses/LICENSE +201 -0
- osdu_python_client-0.4.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
"""Azure / Entra ID token providers backed by MSAL."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import logging
|
|
6
|
+
import pathlib
|
|
7
|
+
import threading
|
|
8
|
+
import time
|
|
9
|
+
from typing import TYPE_CHECKING, Any, Literal
|
|
10
|
+
|
|
11
|
+
from pydantic import AliasChoices, Field, model_validator
|
|
12
|
+
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
13
|
+
|
|
14
|
+
from osdu_python_client.auth._base import (
|
|
15
|
+
TokenProvider,
|
|
16
|
+
register_provider,
|
|
17
|
+
)
|
|
18
|
+
from osdu_python_client.errors import OsduAuthError, OsduConfigError
|
|
19
|
+
|
|
20
|
+
if TYPE_CHECKING:
|
|
21
|
+
from osdu_python_client.config import OsduConfig
|
|
22
|
+
|
|
23
|
+
log = logging.getLogger(__name__)
|
|
24
|
+
|
|
25
|
+
AzureAuthMode = Literal[
|
|
26
|
+
"interactive", "device_flow", "client_credentials", "workload_identity"
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
# MSAL adds these implicitly and rejects them in caller-supplied scope lists.
|
|
30
|
+
_MSAL_RESERVED_SCOPES: frozenset[str] = frozenset(
|
|
31
|
+
{"openid", "profile", "offline_access"}
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class AzureMsalConfig(BaseSettings):
|
|
36
|
+
"""Azure-specific auth settings, loaded from the same ``.env`` as OsduConfig.
|
|
37
|
+
|
|
38
|
+
The env var names (``AUTHORITY``, ``SCOPES``, ``CLIENT_ID``, ``CLIENT_SECRET``,
|
|
39
|
+
``AUTH_MODE``, ``MSAL_CACHE_PATH``) are unchanged from the pre-split layout.
|
|
40
|
+
For workload identity (``AUTH_MODE=workload_identity``), uses Azure-standard env vars:
|
|
41
|
+
- ``AZURE_TENANT_ID`` — tenant ID (required for workload identity)
|
|
42
|
+
- ``AZURE_CLIENT_ID`` or ``CLIENT_ID`` — client/application ID (with fallback)
|
|
43
|
+
- ``AZURE_FEDERATED_TOKEN_FILE`` — path to federated token file (required for workload identity)
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
authority: str | None = None
|
|
47
|
+
scopes: str
|
|
48
|
+
client_id: str | None = Field(
|
|
49
|
+
default=None,
|
|
50
|
+
validation_alias=AliasChoices("AZURE_CLIENT_ID", "CLIENT_ID"),
|
|
51
|
+
)
|
|
52
|
+
client_secret: str | None = None
|
|
53
|
+
auth_mode: AzureAuthMode = "interactive"
|
|
54
|
+
msal_cache_path: str = ".msal_token_cache.bin"
|
|
55
|
+
# Workload identity specific (using AliasChoices for environment variable flexibility)
|
|
56
|
+
tenant_id: str | None = Field(
|
|
57
|
+
default=None,
|
|
58
|
+
validation_alias=AliasChoices("AZURE_TENANT_ID", "TENANT_ID"),
|
|
59
|
+
)
|
|
60
|
+
federated_token_file: str | None = Field(
|
|
61
|
+
default=None,
|
|
62
|
+
validation_alias=AliasChoices("AZURE_FEDERATED_TOKEN_FILE"),
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
model_config = SettingsConfigDict(
|
|
66
|
+
env_file=".env",
|
|
67
|
+
env_file_encoding="utf-8",
|
|
68
|
+
extra="ignore",
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
@model_validator(mode="after")
|
|
72
|
+
def validate_auth_mode_requirements(self) -> AzureMsalConfig:
|
|
73
|
+
"""Validate that all required fields are present for the chosen auth mode."""
|
|
74
|
+
if self.auth_mode == "workload_identity":
|
|
75
|
+
# Workload identity requires tenant_id, client_id, and federated_token_file
|
|
76
|
+
# Authority is not needed for workload identity
|
|
77
|
+
if not self.tenant_id:
|
|
78
|
+
raise OsduConfigError("workload_identity mode requires AZURE_TENANT_ID")
|
|
79
|
+
if not self.client_id:
|
|
80
|
+
raise OsduConfigError(
|
|
81
|
+
"workload_identity mode requires AZURE_CLIENT_ID or CLIENT_ID"
|
|
82
|
+
)
|
|
83
|
+
if not self.federated_token_file:
|
|
84
|
+
raise OsduConfigError(
|
|
85
|
+
"workload_identity mode requires AZURE_FEDERATED_TOKEN_FILE"
|
|
86
|
+
)
|
|
87
|
+
else:
|
|
88
|
+
# MSAL modes (interactive, device_flow, client_credentials) require authority
|
|
89
|
+
if not self.authority:
|
|
90
|
+
raise OsduConfigError(
|
|
91
|
+
"MSAL modes (interactive, device_flow, client_credentials) require AUTHORITY"
|
|
92
|
+
)
|
|
93
|
+
if self.auth_mode == "client_credentials" and not self.client_secret:
|
|
94
|
+
raise OsduConfigError("client_credentials mode requires CLIENT_SECRET")
|
|
95
|
+
return self
|
|
96
|
+
|
|
97
|
+
@property
|
|
98
|
+
def scopes_list(self) -> list[str]:
|
|
99
|
+
raw = self.scopes.split()
|
|
100
|
+
filtered = [s for s in raw if s.lower() not in _MSAL_RESERVED_SCOPES]
|
|
101
|
+
dropped = [s for s in raw if s.lower() in _MSAL_RESERVED_SCOPES]
|
|
102
|
+
if dropped:
|
|
103
|
+
log.debug(
|
|
104
|
+
"ignoring MSAL-reserved scopes from config: %s (MSAL adds these itself)",
|
|
105
|
+
dropped,
|
|
106
|
+
)
|
|
107
|
+
return filtered
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
_MSAL_INSTALL_HINT = (
|
|
111
|
+
"msal is required for Azure auth. "
|
|
112
|
+
"Install it with: pip install 'osdu-python-client[azure]'"
|
|
113
|
+
)
|
|
114
|
+
_WORKLOAD_IDENTITY_INSTALL_HINT = (
|
|
115
|
+
"azure-identity is required for workload identity auth. "
|
|
116
|
+
"Install it with: pip install 'osdu-python-client[azure]'"
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def _load_cache(path: pathlib.Path) -> Any:
|
|
121
|
+
try:
|
|
122
|
+
from msal import SerializableTokenCache
|
|
123
|
+
except ImportError as exc:
|
|
124
|
+
raise OsduConfigError(_MSAL_INSTALL_HINT) from exc
|
|
125
|
+
|
|
126
|
+
cache = SerializableTokenCache()
|
|
127
|
+
if path.exists():
|
|
128
|
+
cache.deserialize(path.read_text(encoding="utf-8"))
|
|
129
|
+
return cache
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
def _save_cache(cache: Any, path: pathlib.Path) -> None:
|
|
133
|
+
if cache.has_state_changed:
|
|
134
|
+
path.write_text(cache.serialize(), encoding="utf-8")
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
class _MsalProviderBase:
|
|
138
|
+
def __init__(self, config: AzureMsalConfig) -> None:
|
|
139
|
+
self._config = config
|
|
140
|
+
self._lock = threading.Lock()
|
|
141
|
+
self._cache_path = pathlib.Path(config.msal_cache_path)
|
|
142
|
+
self._cache = _load_cache(self._cache_path)
|
|
143
|
+
self._app = self._build_app()
|
|
144
|
+
|
|
145
|
+
def _build_app(self) -> Any: # pragma: no cover - subclasses override
|
|
146
|
+
raise NotImplementedError
|
|
147
|
+
|
|
148
|
+
def _persist(self) -> None:
|
|
149
|
+
_save_cache(self._cache, self._cache_path)
|
|
150
|
+
|
|
151
|
+
def _try_silent(self, force_refresh: bool) -> dict[str, Any] | None:
|
|
152
|
+
accounts = self._app.get_accounts()
|
|
153
|
+
if not accounts:
|
|
154
|
+
return None
|
|
155
|
+
return self._app.acquire_token_silent(
|
|
156
|
+
scopes=self._config.scopes_list,
|
|
157
|
+
account=accounts[0],
|
|
158
|
+
force_refresh=force_refresh,
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
def _extract_token(self, result: dict[str, Any] | None) -> str:
|
|
162
|
+
token = result.get("access_token") if isinstance(result, dict) else None
|
|
163
|
+
if not token:
|
|
164
|
+
raise OsduAuthError(f"Authentication failed: {result}")
|
|
165
|
+
return token
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
class MsalInteractiveProvider(_MsalProviderBase):
|
|
169
|
+
def _build_app(self) -> Any:
|
|
170
|
+
try:
|
|
171
|
+
from msal import PublicClientApplication
|
|
172
|
+
except ImportError as exc:
|
|
173
|
+
raise OsduConfigError(_MSAL_INSTALL_HINT) from exc
|
|
174
|
+
|
|
175
|
+
return PublicClientApplication(
|
|
176
|
+
client_id=self._config.client_id,
|
|
177
|
+
authority=self._config.authority,
|
|
178
|
+
token_cache=self._cache,
|
|
179
|
+
)
|
|
180
|
+
|
|
181
|
+
def get_token(self, force_refresh: bool = False) -> str:
|
|
182
|
+
with self._lock:
|
|
183
|
+
result = self._try_silent(force_refresh=force_refresh)
|
|
184
|
+
if result and "access_token" in result:
|
|
185
|
+
log.debug("token acquired silently (force_refresh=%s)", force_refresh)
|
|
186
|
+
else:
|
|
187
|
+
log.info("interactive auth flow required")
|
|
188
|
+
result = self._app.acquire_token_interactive(
|
|
189
|
+
scopes=self._config.scopes_list
|
|
190
|
+
)
|
|
191
|
+
log.debug("token acquired via interactive flow")
|
|
192
|
+
self._persist()
|
|
193
|
+
return self._extract_token(result)
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
class MsalDeviceFlowProvider(_MsalProviderBase):
|
|
197
|
+
def __init__(
|
|
198
|
+
self,
|
|
199
|
+
config: AzureMsalConfig,
|
|
200
|
+
prompt_callback: Any | None = None,
|
|
201
|
+
) -> None:
|
|
202
|
+
super().__init__(config)
|
|
203
|
+
self._prompt_callback = prompt_callback or (lambda flow: print(flow["message"]))
|
|
204
|
+
|
|
205
|
+
def _build_app(self) -> Any:
|
|
206
|
+
try:
|
|
207
|
+
from msal import PublicClientApplication
|
|
208
|
+
except ImportError as exc:
|
|
209
|
+
raise OsduConfigError(_MSAL_INSTALL_HINT) from exc
|
|
210
|
+
|
|
211
|
+
return PublicClientApplication(
|
|
212
|
+
client_id=self._config.client_id,
|
|
213
|
+
authority=self._config.authority,
|
|
214
|
+
token_cache=self._cache,
|
|
215
|
+
)
|
|
216
|
+
|
|
217
|
+
def get_token(self, force_refresh: bool = False) -> str:
|
|
218
|
+
with self._lock:
|
|
219
|
+
result = self._try_silent(force_refresh=force_refresh)
|
|
220
|
+
if result and "access_token" in result:
|
|
221
|
+
log.debug("token acquired silently (force_refresh=%s)", force_refresh)
|
|
222
|
+
else:
|
|
223
|
+
flow = self._app.initiate_device_flow(scopes=self._config.scopes_list)
|
|
224
|
+
if "user_code" not in flow:
|
|
225
|
+
raise OsduAuthError(f"Device flow init failed: {flow}")
|
|
226
|
+
log.info("device flow initiated — awaiting user code entry")
|
|
227
|
+
self._prompt_callback(flow)
|
|
228
|
+
result = self._app.acquire_token_by_device_flow(flow)
|
|
229
|
+
log.debug("token acquired via device flow")
|
|
230
|
+
self._persist()
|
|
231
|
+
return self._extract_token(result)
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
class ClientCredentialsProvider(_MsalProviderBase):
|
|
235
|
+
def __init__(self, config: AzureMsalConfig) -> None:
|
|
236
|
+
if not config.client_secret:
|
|
237
|
+
raise OsduConfigError(
|
|
238
|
+
"client_secret is required for client_credentials auth_mode"
|
|
239
|
+
)
|
|
240
|
+
super().__init__(config)
|
|
241
|
+
|
|
242
|
+
def _build_app(self) -> Any:
|
|
243
|
+
try:
|
|
244
|
+
from msal import ConfidentialClientApplication
|
|
245
|
+
except ImportError as exc:
|
|
246
|
+
raise OsduConfigError(_MSAL_INSTALL_HINT) from exc
|
|
247
|
+
|
|
248
|
+
return ConfidentialClientApplication(
|
|
249
|
+
client_id=self._config.client_id,
|
|
250
|
+
authority=self._config.authority,
|
|
251
|
+
client_credential=self._config.client_secret,
|
|
252
|
+
token_cache=self._cache,
|
|
253
|
+
)
|
|
254
|
+
|
|
255
|
+
def get_token(self, force_refresh: bool = False) -> str:
|
|
256
|
+
with self._lock:
|
|
257
|
+
result: dict[str, Any] | None = None
|
|
258
|
+
if not force_refresh:
|
|
259
|
+
result = self._app.acquire_token_silent(
|
|
260
|
+
scopes=self._config.scopes_list, account=None
|
|
261
|
+
)
|
|
262
|
+
if result and "access_token" in result:
|
|
263
|
+
log.debug("client_credentials token acquired silently")
|
|
264
|
+
else:
|
|
265
|
+
log.debug(
|
|
266
|
+
"client_credentials acquiring new token (force_refresh=%s)",
|
|
267
|
+
force_refresh,
|
|
268
|
+
)
|
|
269
|
+
result = self._app.acquire_token_for_client(
|
|
270
|
+
scopes=self._config.scopes_list
|
|
271
|
+
)
|
|
272
|
+
self._persist()
|
|
273
|
+
return self._extract_token(result)
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
class WorkloadIdentityProvider:
|
|
277
|
+
"""Azure Workload Identity provider using ``azure-identity`` SDK.
|
|
278
|
+
|
|
279
|
+
Uses ``WorkloadIdentityCredential`` to exchange a federated token (from
|
|
280
|
+
``AZURE_FEDERATED_TOKEN_FILE``) for an access token, without user interaction.
|
|
281
|
+
Suitable for Kubernetes/AKS environments with Workload Identity federation.
|
|
282
|
+
"""
|
|
283
|
+
|
|
284
|
+
def __init__(self, config: AzureMsalConfig) -> None:
|
|
285
|
+
self._config = config
|
|
286
|
+
self._lock = threading.Lock()
|
|
287
|
+
self._credential = self._build_credential()
|
|
288
|
+
self._cached_token: str | None = None
|
|
289
|
+
self._token_expiry: float | None = None
|
|
290
|
+
self._refresh_buffer_seconds = 300 # Refresh if token expires within this many seconds
|
|
291
|
+
|
|
292
|
+
def _build_credential(self) -> Any:
|
|
293
|
+
try:
|
|
294
|
+
from azure.identity import WorkloadIdentityCredential
|
|
295
|
+
except ImportError as exc:
|
|
296
|
+
raise OsduConfigError(_WORKLOAD_IDENTITY_INSTALL_HINT) from exc
|
|
297
|
+
|
|
298
|
+
return WorkloadIdentityCredential(
|
|
299
|
+
client_id=self._config.client_id,
|
|
300
|
+
tenant_id=self._config.tenant_id,
|
|
301
|
+
token_file=self._config.federated_token_file,
|
|
302
|
+
)
|
|
303
|
+
|
|
304
|
+
def _clear_cache(self) -> None:
|
|
305
|
+
"""Clear cached token and credential state."""
|
|
306
|
+
self._cached_token = None
|
|
307
|
+
self._token_expiry = None
|
|
308
|
+
self._credential = self._build_credential() # Rebuild credential to clear any internal state
|
|
309
|
+
log.debug("workload identity cache cleared")
|
|
310
|
+
|
|
311
|
+
def _token_refresh_required(self) -> bool:
|
|
312
|
+
"""Determine if the cached token is missing or close to expiry."""
|
|
313
|
+
return (
|
|
314
|
+
self._cached_token is None
|
|
315
|
+
or self._token_expiry is None
|
|
316
|
+
or self._token_expiry - time.time() < self._refresh_buffer_seconds
|
|
317
|
+
)
|
|
318
|
+
|
|
319
|
+
def get_token(self, force_refresh: bool = False) -> str:
|
|
320
|
+
"""Get or refresh access token using workload identity credential."""
|
|
321
|
+
with self._lock:
|
|
322
|
+
if force_refresh:
|
|
323
|
+
self._clear_cache()
|
|
324
|
+
|
|
325
|
+
if self._token_refresh_required():
|
|
326
|
+
log.debug(
|
|
327
|
+
"acquiring workload identity token (force_refresh=%s)", force_refresh
|
|
328
|
+
)
|
|
329
|
+
try:
|
|
330
|
+
scopes = self._config.scopes_list
|
|
331
|
+
token_response = self._credential.get_token(*scopes)
|
|
332
|
+
self._cached_token = token_response.token
|
|
333
|
+
self._token_expiry = token_response.expires_on
|
|
334
|
+
remaining = (
|
|
335
|
+
max(0, int(self._token_expiry - time.time()))
|
|
336
|
+
if self._token_expiry
|
|
337
|
+
else 0
|
|
338
|
+
)
|
|
339
|
+
log.debug(
|
|
340
|
+
"workload identity token acquired (expires in %d seconds)",
|
|
341
|
+
remaining,
|
|
342
|
+
)
|
|
343
|
+
except Exception as exc:
|
|
344
|
+
msg = f"failed to acquire workload identity token: {exc}"
|
|
345
|
+
log.error(msg)
|
|
346
|
+
raise OsduAuthError(msg) from exc
|
|
347
|
+
|
|
348
|
+
if not self._cached_token:
|
|
349
|
+
raise OsduAuthError("failed to acquire workload identity token")
|
|
350
|
+
|
|
351
|
+
remaining = (
|
|
352
|
+
max(0, int(self._token_expiry - time.time()))
|
|
353
|
+
if self._token_expiry
|
|
354
|
+
else 0
|
|
355
|
+
)
|
|
356
|
+
log.debug("returning cached token (expires in %d seconds)", remaining)
|
|
357
|
+
|
|
358
|
+
return self._cached_token
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
def _factory(_config: "OsduConfig") -> TokenProvider:
|
|
363
|
+
azure_config = AzureMsalConfig()
|
|
364
|
+
match azure_config.auth_mode:
|
|
365
|
+
case "interactive":
|
|
366
|
+
return MsalInteractiveProvider(azure_config)
|
|
367
|
+
case "device_flow":
|
|
368
|
+
return MsalDeviceFlowProvider(azure_config)
|
|
369
|
+
case "client_credentials":
|
|
370
|
+
return ClientCredentialsProvider(azure_config)
|
|
371
|
+
case "workload_identity":
|
|
372
|
+
return WorkloadIdentityProvider(azure_config)
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
register_provider("azure_msal", _factory)
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"""Community Implementation (CI / baremetal) auth provider.
|
|
2
|
+
|
|
3
|
+
OSDU Community / baremetal deployments authenticate via Keycloak using
|
|
4
|
+
OAuth2 client credentials. The response ``id_token`` is used as the bearer
|
|
5
|
+
token (not the ``access_token``). No extra dependencies are required beyond
|
|
6
|
+
the core package.
|
|
7
|
+
|
|
8
|
+
Required environment variables (or .env entries):
|
|
9
|
+
|
|
10
|
+
CI_KEYCLOAK_AUTH_URL — full token endpoint URL
|
|
11
|
+
(e.g. https://keycloak.example.com/auth/realms/<realm>/protocol/openid-connect/token)
|
|
12
|
+
CI_CLIENT_ID — OAuth2 client ID
|
|
13
|
+
CI_CLIENT_SECRET — OAuth2 client secret
|
|
14
|
+
CI_SCOPES — space-separated scopes (optional; defaults to "openid")
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
from __future__ import annotations
|
|
18
|
+
|
|
19
|
+
import logging
|
|
20
|
+
import threading
|
|
21
|
+
import time
|
|
22
|
+
from typing import TYPE_CHECKING
|
|
23
|
+
|
|
24
|
+
import httpx
|
|
25
|
+
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
26
|
+
|
|
27
|
+
from osdu_python_client.auth._base import TokenProvider, register_provider
|
|
28
|
+
from osdu_python_client.errors import OsduAuthError
|
|
29
|
+
|
|
30
|
+
if TYPE_CHECKING:
|
|
31
|
+
from osdu_python_client.config import OsduConfig
|
|
32
|
+
|
|
33
|
+
log = logging.getLogger(__name__)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class CiConfig(BaseSettings):
|
|
37
|
+
"""Community Implementation auth settings, loaded from the same ``.env`` as OsduConfig."""
|
|
38
|
+
|
|
39
|
+
ci_keycloak_auth_url: str
|
|
40
|
+
ci_client_id: str
|
|
41
|
+
ci_client_secret: str
|
|
42
|
+
ci_scopes: str = "openid"
|
|
43
|
+
|
|
44
|
+
model_config = SettingsConfigDict(
|
|
45
|
+
env_file=".env",
|
|
46
|
+
env_file_encoding="utf-8",
|
|
47
|
+
extra="ignore",
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
@property
|
|
51
|
+
def scopes_list(self) -> list[str]:
|
|
52
|
+
return self.ci_scopes.split() if self.ci_scopes.strip() else ["openid"]
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class CiKeycloakProvider:
|
|
56
|
+
"""Token provider for OSDU Community / baremetal using Keycloak client credentials."""
|
|
57
|
+
|
|
58
|
+
def __init__(self, config: CiConfig) -> None:
|
|
59
|
+
self._config = config
|
|
60
|
+
self._lock = threading.Lock()
|
|
61
|
+
self._token: str | None = None
|
|
62
|
+
self._expires_at: float = 0.0
|
|
63
|
+
|
|
64
|
+
def get_token(self, force_refresh: bool = False) -> str:
|
|
65
|
+
with self._lock:
|
|
66
|
+
if force_refresh or self._token is None or time.monotonic() >= self._expires_at:
|
|
67
|
+
self._fetch()
|
|
68
|
+
return self._token # type: ignore[return-value]
|
|
69
|
+
|
|
70
|
+
def _fetch(self) -> None:
|
|
71
|
+
cfg = self._config
|
|
72
|
+
data = {
|
|
73
|
+
"grant_type": "client_credentials",
|
|
74
|
+
"scope": " ".join(cfg.scopes_list),
|
|
75
|
+
"client_id": cfg.ci_client_id,
|
|
76
|
+
"client_secret": cfg.ci_client_secret,
|
|
77
|
+
}
|
|
78
|
+
log.debug("acquiring CI token from %s", cfg.ci_keycloak_auth_url)
|
|
79
|
+
response = httpx.post(
|
|
80
|
+
cfg.ci_keycloak_auth_url,
|
|
81
|
+
headers={"Content-Type": "application/x-www-form-urlencoded"},
|
|
82
|
+
data=data,
|
|
83
|
+
timeout=30,
|
|
84
|
+
)
|
|
85
|
+
if response.status_code != 200:
|
|
86
|
+
raise OsduAuthError(
|
|
87
|
+
f"CI token request failed [{response.status_code}]: {response.text}"
|
|
88
|
+
)
|
|
89
|
+
payload = response.json()
|
|
90
|
+
# Baremetal OSDU uses the id_token as the bearer token
|
|
91
|
+
token = payload.get("id_token") or payload.get("access_token")
|
|
92
|
+
if not token:
|
|
93
|
+
raise OsduAuthError(f"CI token response missing id_token/access_token: {payload}")
|
|
94
|
+
|
|
95
|
+
expires_in = int(payload.get("expires_in", 300))
|
|
96
|
+
self._token = token
|
|
97
|
+
self._expires_at = time.monotonic() + expires_in - 30 # 30s early-refresh buffer
|
|
98
|
+
log.debug("CI token acquired, expires in %ds", expires_in)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
def _factory(_config: "OsduConfig") -> TokenProvider:
|
|
102
|
+
return CiKeycloakProvider(CiConfig())
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
register_provider("community", _factory)
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"""GCP auth provider using google-auth.
|
|
2
|
+
|
|
3
|
+
OSDU-on-GCP deployments authenticate via Google Cloud service accounts or
|
|
4
|
+
Application Default Credentials (ADC). Requires ``google-auth[requests]``;
|
|
5
|
+
install with ``pip install 'osdu-python-client[gcp]'``.
|
|
6
|
+
|
|
7
|
+
Required environment variables (or .env entries):
|
|
8
|
+
|
|
9
|
+
GCP_SA_FILE_PATH — path to a service account JSON key file (optional;
|
|
10
|
+
omit to use Application Default Credentials)
|
|
11
|
+
GCP_USE_ID_TOKEN — set to "true" to return an ID token instead of an
|
|
12
|
+
access token (some OSDU-on-GCP deployments require this)
|
|
13
|
+
GCP_SCOPES — space-separated scopes (optional; defaults to
|
|
14
|
+
"openid email profile")
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
from __future__ import annotations
|
|
18
|
+
|
|
19
|
+
import logging
|
|
20
|
+
import threading
|
|
21
|
+
from typing import TYPE_CHECKING
|
|
22
|
+
|
|
23
|
+
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
24
|
+
|
|
25
|
+
from osdu_python_client.auth._base import TokenProvider, register_provider
|
|
26
|
+
from osdu_python_client.errors import OsduAuthError, OsduConfigError
|
|
27
|
+
|
|
28
|
+
if TYPE_CHECKING:
|
|
29
|
+
from osdu_python_client.config import OsduConfig
|
|
30
|
+
|
|
31
|
+
log = logging.getLogger(__name__)
|
|
32
|
+
|
|
33
|
+
_DEFAULT_SCOPES = ["openid", "email", "profile"]
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class GcpConfig(BaseSettings):
|
|
37
|
+
"""GCP auth settings, loaded from the same ``.env`` as OsduConfig."""
|
|
38
|
+
|
|
39
|
+
gcp_sa_file_path: str | None = None
|
|
40
|
+
gcp_use_id_token: bool = False
|
|
41
|
+
gcp_scopes: str = ""
|
|
42
|
+
|
|
43
|
+
model_config = SettingsConfigDict(
|
|
44
|
+
env_file=".env",
|
|
45
|
+
env_file_encoding="utf-8",
|
|
46
|
+
extra="ignore",
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
@property
|
|
50
|
+
def scopes_list(self) -> list[str]:
|
|
51
|
+
raw = self.gcp_scopes.strip()
|
|
52
|
+
return raw.split() if raw else _DEFAULT_SCOPES
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class GcpTokenProvider:
|
|
56
|
+
"""Token provider for OSDU-on-GCP using google-auth."""
|
|
57
|
+
|
|
58
|
+
def __init__(self, config: GcpConfig) -> None:
|
|
59
|
+
self._config = config
|
|
60
|
+
self._lock = threading.Lock()
|
|
61
|
+
|
|
62
|
+
def get_token(self, force_refresh: bool = False) -> str:
|
|
63
|
+
with self._lock:
|
|
64
|
+
try:
|
|
65
|
+
import google.auth
|
|
66
|
+
from google.auth.transport.requests import Request
|
|
67
|
+
except ImportError as exc:
|
|
68
|
+
raise OsduConfigError(
|
|
69
|
+
"google-auth is required for GCP auth. "
|
|
70
|
+
"Install it with: pip install 'osdu-python-client[gcp]'"
|
|
71
|
+
) from exc
|
|
72
|
+
|
|
73
|
+
if self._config.gcp_sa_file_path:
|
|
74
|
+
from google.oauth2 import service_account
|
|
75
|
+
|
|
76
|
+
log.debug("loading GCP credentials from SA file: %s", self._config.gcp_sa_file_path)
|
|
77
|
+
credentials = service_account.Credentials.from_service_account_file(
|
|
78
|
+
self._config.gcp_sa_file_path,
|
|
79
|
+
scopes=self._config.scopes_list,
|
|
80
|
+
)
|
|
81
|
+
else:
|
|
82
|
+
log.debug("loading GCP Application Default Credentials")
|
|
83
|
+
credentials, _ = google.auth.default(scopes=self._config.scopes_list)
|
|
84
|
+
|
|
85
|
+
credentials.refresh(Request())
|
|
86
|
+
|
|
87
|
+
if self._config.gcp_use_id_token and hasattr(credentials, "id_token"):
|
|
88
|
+
token = credentials.id_token
|
|
89
|
+
log.debug("GCP ID token acquired")
|
|
90
|
+
else:
|
|
91
|
+
token = credentials.token
|
|
92
|
+
log.debug("GCP access token acquired")
|
|
93
|
+
|
|
94
|
+
if not token:
|
|
95
|
+
raise OsduAuthError("GCP credential refresh returned an empty token")
|
|
96
|
+
return token
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def _factory(_config: "OsduConfig") -> TokenProvider:
|
|
100
|
+
return GcpTokenProvider(GcpConfig())
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
register_provider("gcp_iam", _factory)
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"""IBM auth provider using Keycloak OIDC (Resource Owner Password Credentials).
|
|
2
|
+
|
|
3
|
+
OSDU-on-IBM deployments authenticate via a Keycloak server. Requires
|
|
4
|
+
``python-keycloak``; install with ``pip install 'osdu-python-client[ibm]'``.
|
|
5
|
+
|
|
6
|
+
Required environment variables (or .env entries):
|
|
7
|
+
|
|
8
|
+
IBM_KEYCLOAK_URI — Keycloak server URL (e.g. https://keycloak.example.com/auth/)
|
|
9
|
+
IBM_REALM_NAME — Keycloak realm name
|
|
10
|
+
IBM_CLIENT_ID — Keycloak client ID
|
|
11
|
+
IBM_CLIENT_SECRET — Keycloak client secret
|
|
12
|
+
IBM_USERNAME — user login
|
|
13
|
+
IBM_PASSWORD — user password
|
|
14
|
+
IBM_VERIFY_SSL — set to "false" to disable SSL verification (default: true)
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
from __future__ import annotations
|
|
18
|
+
|
|
19
|
+
import logging
|
|
20
|
+
import threading
|
|
21
|
+
import time
|
|
22
|
+
from typing import TYPE_CHECKING
|
|
23
|
+
|
|
24
|
+
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
25
|
+
|
|
26
|
+
from osdu_python_client.auth._base import TokenProvider, register_provider
|
|
27
|
+
from osdu_python_client.errors import OsduAuthError, OsduConfigError
|
|
28
|
+
|
|
29
|
+
if TYPE_CHECKING:
|
|
30
|
+
from osdu_python_client.config import OsduConfig
|
|
31
|
+
|
|
32
|
+
log = logging.getLogger(__name__)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class IbmConfig(BaseSettings):
|
|
36
|
+
"""IBM/Keycloak auth settings, loaded from the same ``.env`` as OsduConfig."""
|
|
37
|
+
|
|
38
|
+
ibm_keycloak_uri: str
|
|
39
|
+
ibm_realm_name: str
|
|
40
|
+
ibm_client_id: str
|
|
41
|
+
ibm_client_secret: str
|
|
42
|
+
ibm_username: str
|
|
43
|
+
ibm_password: str
|
|
44
|
+
ibm_verify_ssl: bool = True
|
|
45
|
+
|
|
46
|
+
model_config = SettingsConfigDict(
|
|
47
|
+
env_file=".env",
|
|
48
|
+
env_file_encoding="utf-8",
|
|
49
|
+
extra="ignore",
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class IbmKeycloakProvider:
|
|
54
|
+
"""Token provider for OSDU-on-IBM using Keycloak OIDC."""
|
|
55
|
+
|
|
56
|
+
def __init__(self, config: IbmConfig) -> None:
|
|
57
|
+
self._config = config
|
|
58
|
+
self._lock = threading.Lock()
|
|
59
|
+
self._token: str | None = None
|
|
60
|
+
self._expires_at: float = 0.0
|
|
61
|
+
|
|
62
|
+
def get_token(self, force_refresh: bool = False) -> str:
|
|
63
|
+
with self._lock:
|
|
64
|
+
if force_refresh or self._token is None or time.monotonic() >= self._expires_at:
|
|
65
|
+
self._fetch()
|
|
66
|
+
return self._token # type: ignore[return-value]
|
|
67
|
+
|
|
68
|
+
def _fetch(self) -> None:
|
|
69
|
+
try:
|
|
70
|
+
from keycloak import KeycloakOpenID
|
|
71
|
+
except ImportError as exc:
|
|
72
|
+
raise OsduConfigError(
|
|
73
|
+
"python-keycloak is required for IBM auth. "
|
|
74
|
+
"Install it with: pip install 'osdu-python-client[ibm]'"
|
|
75
|
+
) from exc
|
|
76
|
+
|
|
77
|
+
cfg = self._config
|
|
78
|
+
log.debug("acquiring IBM token from %s realm=%s", cfg.ibm_keycloak_uri, cfg.ibm_realm_name)
|
|
79
|
+
kc = KeycloakOpenID(
|
|
80
|
+
server_url=cfg.ibm_keycloak_uri,
|
|
81
|
+
realm_name=cfg.ibm_realm_name,
|
|
82
|
+
client_id=cfg.ibm_client_id,
|
|
83
|
+
client_secret_key=cfg.ibm_client_secret,
|
|
84
|
+
verify=cfg.ibm_verify_ssl,
|
|
85
|
+
)
|
|
86
|
+
token_response = kc.token(cfg.ibm_username, cfg.ibm_password)
|
|
87
|
+
refreshed = kc.refresh_token(token_response["refresh_token"])
|
|
88
|
+
token = refreshed.get("access_token")
|
|
89
|
+
if not token:
|
|
90
|
+
raise OsduAuthError(f"IBM Keycloak token refresh returned no access_token: {refreshed}")
|
|
91
|
+
|
|
92
|
+
expires_in = int(refreshed.get("expires_in", 300))
|
|
93
|
+
self._token = token
|
|
94
|
+
self._expires_at = time.monotonic() + expires_in - 30 # 30s early-refresh buffer
|
|
95
|
+
log.debug("IBM token acquired, expires in %ds", expires_in)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def _factory(_config: "OsduConfig") -> TokenProvider:
|
|
99
|
+
return IbmKeycloakProvider(IbmConfig())
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
register_provider("ibm_iam", _factory)
|