provenaclient.utils.config ========================== .. py:module:: provenaclient.utils.config .. autoapi-nested-parse:: Created Date: Tuesday May 28th 2024 +1000 Author: Peter Baker ----- Last Modified: Tuesday May 28th 2024 11:18:32 am +1000 Modified By: Peter Baker ----- Description: Defines the primary config object for the Provena Client - notably the endpoints. ----- HISTORY: Date By Comments ---------- --- --------------------------------------------------------- Classes ------- .. autoapisummary:: provenaclient.utils.config.APIOverrides provenaclient.utils.config.EndpointConfig provenaclient.utils.config.Config Functions --------- .. autoapisummary:: provenaclient.utils.config.optional_override_prefixor Module Contents --------------- .. py:function:: optional_override_prefixor(domain: str, prefix: str, override: Optional[str]) -> str Helper function which performs the API prefixing while being override aware. If override supplied - uses it directly. If not, prefixes with protocol and prefix suitably. :param domain: The domain base :type domain: str :param prefix: The API prefix :type prefix: str :param override: The optional override :type override: Optional[str] :returns: The URL :rtype: str .. py:class:: APIOverrides(/, **data: Any) Bases: :py:obj:`pydantic.BaseModel` !!! abstract "Usage Documentation" [Models](../concepts/models.md) A base class for creating Pydantic models. .. attribute:: __class_vars__ The names of the class variables defined on the model. .. attribute:: __private_attributes__ Metadata about the private attributes of the model. .. attribute:: __signature__ The synthesized `__init__` [`Signature`][inspect.Signature] of the model. .. attribute:: __pydantic_complete__ Whether model building is completed, or if there are still undefined fields. .. attribute:: __pydantic_core_schema__ The core schema of the model. .. attribute:: __pydantic_custom_init__ Whether the model has a custom `__init__` function. .. attribute:: __pydantic_decorators__ Metadata containing the decorators defined on the model. This replaces `Model.__validators__` and `Model.__root_validators__` from Pydantic V1. .. attribute:: __pydantic_generic_metadata__ Metadata for generic models; contains data used for a similar purpose to __args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these. .. attribute:: __pydantic_parent_namespace__ Parent namespace of the model, used for automatic rebuilding of models. .. attribute:: __pydantic_post_init__ The name of the post-init method for the model, if defined. .. attribute:: __pydantic_root_model__ Whether the model is a [`RootModel`][pydantic.root_model.RootModel]. .. attribute:: __pydantic_serializer__ The `pydantic-core` `SchemaSerializer` used to dump instances of the model. .. attribute:: __pydantic_validator__ The `pydantic-core` `SchemaValidator` used to validate instances of the model. .. attribute:: __pydantic_fields__ A dictionary of field names and their corresponding [`FieldInfo`][pydantic.fields.FieldInfo] objects. .. attribute:: __pydantic_computed_fields__ A dictionary of computed field names and their corresponding [`ComputedFieldInfo`][pydantic.fields.ComputedFieldInfo] objects. .. attribute:: __pydantic_extra__ A dictionary containing extra values, if [`extra`][pydantic.config.ConfigDict.extra] is set to `'allow'`. .. attribute:: __pydantic_fields_set__ The names of fields explicitly set during instantiation. .. attribute:: __pydantic_private__ Values of private attributes set on the model instance. .. py:attribute:: datastore_api_endpoint_override :type: Optional[str] :value: None .. py:attribute:: auth_api_endpoint_override :type: Optional[str] :value: None .. py:attribute:: registry_api_endpoint_override :type: Optional[str] :value: None .. py:attribute:: prov_api_endpoint_override :type: Optional[str] :value: None .. py:attribute:: search_api_endpoint_override :type: Optional[str] :value: None .. py:attribute:: search_service_endpoint_override :type: Optional[str] :value: None .. py:attribute:: handle_service_api_endpoint_override :type: Optional[str] :value: None .. py:attribute:: jobs_service_api_endpoint_override :type: Optional[str] :value: None .. py:attribute:: keycloak_endpoint_override :type: Optional[str] :value: None .. py:class:: EndpointConfig(/, **data: Any) Bases: :py:obj:`pydantic.BaseModel` !!! abstract "Usage Documentation" [Models](../concepts/models.md) A base class for creating Pydantic models. .. attribute:: __class_vars__ The names of the class variables defined on the model. .. attribute:: __private_attributes__ Metadata about the private attributes of the model. .. attribute:: __signature__ The synthesized `__init__` [`Signature`][inspect.Signature] of the model. .. attribute:: __pydantic_complete__ Whether model building is completed, or if there are still undefined fields. .. attribute:: __pydantic_core_schema__ The core schema of the model. .. attribute:: __pydantic_custom_init__ Whether the model has a custom `__init__` function. .. attribute:: __pydantic_decorators__ Metadata containing the decorators defined on the model. This replaces `Model.__validators__` and `Model.__root_validators__` from Pydantic V1. .. attribute:: __pydantic_generic_metadata__ Metadata for generic models; contains data used for a similar purpose to __args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these. .. attribute:: __pydantic_parent_namespace__ Parent namespace of the model, used for automatic rebuilding of models. .. attribute:: __pydantic_post_init__ The name of the post-init method for the model, if defined. .. attribute:: __pydantic_root_model__ Whether the model is a [`RootModel`][pydantic.root_model.RootModel]. .. attribute:: __pydantic_serializer__ The `pydantic-core` `SchemaSerializer` used to dump instances of the model. .. attribute:: __pydantic_validator__ The `pydantic-core` `SchemaValidator` used to validate instances of the model. .. attribute:: __pydantic_fields__ A dictionary of field names and their corresponding [`FieldInfo`][pydantic.fields.FieldInfo] objects. .. attribute:: __pydantic_computed_fields__ A dictionary of computed field names and their corresponding [`ComputedFieldInfo`][pydantic.fields.ComputedFieldInfo] objects. .. attribute:: __pydantic_extra__ A dictionary containing extra values, if [`extra`][pydantic.config.ConfigDict.extra] is set to `'allow'`. .. attribute:: __pydantic_fields_set__ The names of fields explicitly set during instantiation. .. attribute:: __pydantic_private__ Values of private attributes set on the model instance. .. py:attribute:: domain :type: str .. py:attribute:: realm_name :type: str .. py:attribute:: api_overrides :type: APIOverrides .. py:class:: Config(domain: str, realm_name: str, api_overrides: APIOverrides = APIOverrides()) .. py:attribute:: _api_config :type: EndpointConfig .. py:property:: search_api_endpoint :type: str Generate the search api endpoint based on the provided domain, prefix and possible override value. :returns: A string containing the search api endpoint. :rtype: str .. py:property:: jobs_service_api_endpoint :type: str Generate the job api endpoint based on the provided domain, prefix and possible override value. :returns: A string containing the job api endpoint. :rtype: str .. py:property:: handle_service_api_endpoint :type: str Generate the handle_service api endpoint based on the provided domain, prefix and possible override value. :returns: A string containing the handle_service api endpoint. :rtype: str .. py:property:: search_service_endpoint :type: str Generate the search_service api endpoint based on the provided domain, prefix and possible override value. :returns: A string containing the search_service api endpoint. :rtype: str .. py:property:: auth_api_endpoint :type: str Generate the auth api endpoint based on the provided domain, prefix and possible override value. :returns: A string containing the auth api endpoint. :rtype: str .. py:property:: prov_api_endpoint :type: str Generate the prov api endpoint based on the provided domain, prefix and possible override value. :returns: A string containing the prov api endpoint. :rtype: str .. py:property:: datastore_api_endpoint :type: str Generate the datastore api endpoint based on the provided domain, prefix and possible override value. :returns: A string containing the datastore api endpoint. :rtype: str .. py:property:: registry_api_endpoint :type: str Generate the registry api endpoint based on the provided domain, prefix and possible override value. :returns: A string containing the registry api endpoint. :rtype: str .. py:property:: keycloak_endpoint :type: str Generate the keycloak realm endpoint using domain, realm_name and possible override value. :returns: A string containing the keycloak realm endpoint. :rtype: str