@@ -54,6 +54,7 @@ class SCIMClient:
5454 If a request payload describe a resource that is not in this list, an exception will be raised.
5555 :param resource_types: A collection of :class:`~scim2_models.ResourceType` that will be used to guess the
5656 server endpoints associated with the resources.
57+ :param service_provider_config: An instance of :class:`~scim2_models.ServiceProviderConfig`.
5758 :param check_request_payload: If :data:`False`,
5859 :code:`resource` is expected to be a dict that will be passed as-is in the request.
5960 This value can be overwritten in methods.
@@ -152,12 +153,14 @@ def __init__(
152153 self ,
153154 resource_models : Optional [Collection [type [Resource ]]] = None ,
154155 resource_types : Optional [Collection [ResourceType ]] = None ,
156+ service_provider_config : Optional [ServiceProviderConfig ] = None ,
155157 check_request_payload : bool = True ,
156158 check_response_payload : bool = True ,
157159 raise_scim_errors : bool = True ,
158160 ):
159161 self .resource_models = tuple (set (resource_models or []) | set (CONFIG_RESOURCES ))
160162 self .resource_types = resource_types
163+ self .service_provider_config = service_provider_config
161164 self .check_request_payload = check_request_payload
162165 self .check_response_payload = check_response_payload
163166 self .raise_scim_errors = raise_scim_errors
@@ -799,6 +802,7 @@ def discover(self):
799802 """Dynamically discover the server models :class:`~scim2_models.Schema` and :class:`~scim2_models.ResourceType`."""
800803 resource_types_response = self .query (ResourceType )
801804 schemas_response = self .query (Schema )
805+ self .service_provider_config = self .query (ServiceProviderConfig )
802806 self .resource_types = resource_types_response .resources
803807 schemas = schemas_response .resources
804808 self .resource_models = self .build_resource_models (self .resource_types , schemas )
@@ -1064,8 +1068,10 @@ async def discover(self):
10641068 """Dynamically discover the server models :class:`~scim2_models.Schema` and :class:`~scim2_models.ResourceType`."""
10651069 resources_task = asyncio .create_task (self .query (ResourceType ))
10661070 schemas_task = asyncio .create_task (self .query (Schema ))
1071+ spc_task = asyncio .create_task (self .query (ServiceProviderConfig ))
10671072 resource_types_response = await resources_task
10681073 schemas_response = await schemas_task
1074+ self .service_provider_config = await spc_task
10691075 self .resource_types = resource_types_response .resources
10701076 schemas = schemas_response .resources
10711077 self .resource_models = self .build_resource_models (self .resource_types , schemas )
0 commit comments