@@ -54,6 +54,7 @@ class SCIMClient:
54
54
If a request payload describe a resource that is not in this list, an exception will be raised.
55
55
:param resource_types: A collection of :class:`~scim2_models.ResourceType` that will be used to guess the
56
56
server endpoints associated with the resources.
57
+ :param service_provider_config: An instance of :class:`~scim2_models.ServiceProviderConfig`.
57
58
:param check_request_payload: If :data:`False`,
58
59
:code:`resource` is expected to be a dict that will be passed as-is in the request.
59
60
This value can be overwritten in methods.
@@ -152,12 +153,14 @@ def __init__(
152
153
self ,
153
154
resource_models : Optional [Collection [type [Resource ]]] = None ,
154
155
resource_types : Optional [Collection [ResourceType ]] = None ,
156
+ service_provider_config : Optional [ServiceProviderConfig ] = None ,
155
157
check_request_payload : bool = True ,
156
158
check_response_payload : bool = True ,
157
159
raise_scim_errors : bool = True ,
158
160
):
159
161
self .resource_models = tuple (set (resource_models or []) | set (CONFIG_RESOURCES ))
160
162
self .resource_types = resource_types
163
+ self .service_provider_config = service_provider_config
161
164
self .check_request_payload = check_request_payload
162
165
self .check_response_payload = check_response_payload
163
166
self .raise_scim_errors = raise_scim_errors
@@ -799,6 +802,7 @@ def discover(self):
799
802
"""Dynamically discover the server models :class:`~scim2_models.Schema` and :class:`~scim2_models.ResourceType`."""
800
803
resource_types_response = self .query (ResourceType )
801
804
schemas_response = self .query (Schema )
805
+ self .service_provider_config = self .query (ServiceProviderConfig )
802
806
self .resource_types = resource_types_response .resources
803
807
schemas = schemas_response .resources
804
808
self .resource_models = self .build_resource_models (self .resource_types , schemas )
@@ -1064,8 +1068,10 @@ async def discover(self):
1064
1068
"""Dynamically discover the server models :class:`~scim2_models.Schema` and :class:`~scim2_models.ResourceType`."""
1065
1069
resources_task = asyncio .create_task (self .query (ResourceType ))
1066
1070
schemas_task = asyncio .create_task (self .query (Schema ))
1071
+ spc_task = asyncio .create_task (self .query (ServiceProviderConfig ))
1067
1072
resource_types_response = await resources_task
1068
1073
schemas_response = await schemas_task
1074
+ self .service_provider_config = await spc_task
1069
1075
self .resource_types = resource_types_response .resources
1070
1076
schemas = schemas_response .resources
1071
1077
self .resource_models = self .build_resource_models (self .resource_types , schemas )
0 commit comments