@@ -36,7 +36,7 @@ class BaseSCIMClient:
3636
3737 This class can be inherited and used as a basis for request engine integration.
3838
39- :param resource_types : A tuple of :class:`~scim2_models.Resource` types expected to be handled by the SCIM client.
39+ :param resource_models : A tuple of :class:`~scim2_models.Resource` types expected to be handled by the SCIM client.
4040 If a request payload describe a resource that is not in this list, an exception will be raised.
4141
4242 .. note::
@@ -124,30 +124,32 @@ class BaseSCIMClient:
124124 :rfc:`RFC7644 §3.12 <7644#section-3.12>`.
125125 """
126126
127- def __init__ (self , resource_types : Optional [tuple [type [Resource ]]] = None ):
128- self .resource_types = tuple (
129- set (resource_types or []) | {ResourceType , Schema , ServiceProviderConfig }
127+ def __init__ (self , resource_models : Optional [tuple [type [Resource ]]] = None ):
128+ self .resource_models = tuple (
129+ set (resource_models or []) | {ResourceType , Schema , ServiceProviderConfig }
130130 )
131131
132- def check_resource_type (self , resource_type : type [Resource ], payload = None ) -> None :
133- if resource_type not in self .resource_types :
132+ def check_resource_model (
133+ self , resource_model : type [Resource ], payload = None
134+ ) -> None :
135+ if resource_model not in self .resource_models :
134136 raise SCIMRequestError (
135- f"Unknown resource type: '{ resource_type } '" , source = payload
137+ f"Unknown resource type: '{ resource_model } '" , source = payload
136138 )
137139
138- def resource_endpoint (self , resource_type : Optional [type [Resource ]]) -> str :
139- if resource_type is None :
140+ def resource_endpoint (self , resource_model : Optional [type [Resource ]]) -> str :
141+ if resource_model is None :
140142 return "/"
141143
142144 # This one takes no final 's'
143- if resource_type is ServiceProviderConfig :
145+ if resource_model is ServiceProviderConfig :
144146 return "/ServiceProviderConfig"
145147
146148 try :
147- first_bracket_index = resource_type .__name__ .index ("[" )
148- root_name = resource_type .__name__ [:first_bracket_index ]
149+ first_bracket_index = resource_model .__name__ .index ("[" )
150+ root_name = resource_model .__name__ [:first_bracket_index ]
149151 except ValueError :
150- root_name = resource_type .__name__
152+ root_name = resource_model .__name__
151153 return f"/{ root_name } s"
152154
153155 def check_response (
@@ -288,25 +290,25 @@ def prepare_create_request(
288290
289291 else :
290292 if isinstance (resource , Resource ):
291- resource_type = resource .__class__
293+ resource_model = resource .__class__
292294
293295 else :
294- resource_type = Resource .get_by_payload (self .resource_types , resource )
295- if not resource_type :
296+ resource_model = Resource .get_by_payload (self .resource_models , resource )
297+ if not resource_model :
296298 raise SCIMRequestError (
297299 "Cannot guess resource type from the payload"
298300 )
299301
300302 try :
301- resource = resource_type .model_validate (resource )
303+ resource = resource_model .model_validate (resource )
302304 except ValidationError as exc :
303305 scim_validation_exc = RequestPayloadValidationError (source = resource )
304306 if sys .version_info >= (3 , 11 ): # pragma: no cover
305307 scim_validation_exc .add_note (str (exc ))
306308 raise scim_validation_exc from exc
307309
308- self .check_resource_type ( resource_type , resource )
309- url = kwargs .pop ("url" , self .resource_endpoint (resource_type ))
310+ self .check_resource_model ( resource_model , resource )
311+ url = kwargs .pop ("url" , self .resource_endpoint (resource_model ))
310312 payload = resource .model_dump (scim_ctx = Context .RESOURCE_CREATION_REQUEST )
311313
312314 expected_types = [resource .__class__ ] if check_request_payload else None
@@ -315,7 +317,7 @@ def prepare_create_request(
315317
316318 def query (
317319 self ,
318- resource_type : Optional [type [Resource ]] = None ,
320+ resource_model : Optional [type [Resource ]] = None ,
319321 id : Optional [str ] = None ,
320322 search_request : Optional [Union [SearchRequest , dict ]] = None ,
321323 check_request_payload : bool = True ,
@@ -329,7 +331,7 @@ def query(
329331 - If `id` is not :data:`None`, the resource with the exact id will be reached.
330332 - If `id` is :data:`None`, all the resources with the given type will be reached.
331333
332- :param resource_type : A :class:`~scim2_models.Resource` subtype or :data:`None`
334+ :param resource_model : A :class:`~scim2_models.Resource` subtype or :data:`None`
333335 :param id: The SCIM id of an object to get, or :data:`None`
334336 :param search_request: An object detailing the search query parameters.
335337 :param check_request_payload: If :data:`False`,
@@ -345,8 +347,8 @@ def query(
345347
346348 :return:
347349 - A :class:`~scim2_models.Error` object in case of error.
348- - A `resource_type ` object in case of success if `id` is not :data:`None`
349- - A :class:`~scim2_models.ListResponse[resource_type ]` object in case of success if `id` is :data:`None`
350+ - A `resource_model ` object in case of success if `id` is not :data:`None`
351+ - A :class:`~scim2_models.ListResponse[resource_model ]` object in case of success if `id` is :data:`None`
350352
351353 .. note::
352354
@@ -391,7 +393,7 @@ def query(
391393
392394 def prepare_query_request (
393395 self ,
394- resource_type : Optional [type [Resource ]] = None ,
396+ resource_model : Optional [type [Resource ]] = None ,
395397 id : Optional [str ] = None ,
396398 search_request : Optional [Union [SearchRequest , dict ]] = None ,
397399 check_request_payload : bool = True ,
@@ -400,8 +402,8 @@ def prepare_query_request(
400402 raise_scim_errors : bool = True ,
401403 ** kwargs ,
402404 ) -> tuple [str , Union [AnyResource , dict ], Optional [list [type [Resource ]]], dict ]:
403- if resource_type and check_request_payload :
404- self .check_resource_type ( resource_type )
405+ if resource_model and check_request_payload :
406+ self .check_resource_model ( resource_model )
405407
406408 payload : Optional [SearchRequest ]
407409 if not check_request_payload :
@@ -416,25 +418,25 @@ def prepare_query_request(
416418 else :
417419 payload = None
418420
419- url = kwargs .pop ("url" , self .resource_endpoint (resource_type ))
421+ url = kwargs .pop ("url" , self .resource_endpoint (resource_model ))
420422
421- if resource_type is None :
423+ if resource_model is None :
422424 expected_types = [
423- * self .resource_types ,
424- ListResponse [Union [self .resource_types ]],
425+ * self .resource_models ,
426+ ListResponse [Union [self .resource_models ]],
425427 ]
426428
427- elif resource_type == ServiceProviderConfig :
428- expected_types = [resource_type ]
429+ elif resource_model == ServiceProviderConfig :
430+ expected_types = [resource_model ]
429431 if id :
430432 raise SCIMClientError ("ServiceProviderConfig cannot have an id" )
431433
432434 elif id :
433- expected_types = [resource_type ]
435+ expected_types = [resource_model ]
434436 url = f"{ url } /{ id } "
435437
436438 else :
437- expected_types = [ListResponse [resource_type ]]
439+ expected_types = [ListResponse [resource_model ]]
438440
439441 return url , payload , expected_types , kwargs
440442
@@ -449,7 +451,7 @@ def search(
449451 ) -> Union [AnyResource , ListResponse [AnyResource ], Error , dict ]:
450452 """Perform a POST search request to read all available resources, as defined in :rfc:`RFC7644 §3.4.3 <7644#section-3.4.3>`.
451453
452- :param resource_types : Resource type or union of types expected
454+ :param resource_models : Resource type or union of types expected
453455 to be read from the response.
454456 :param search_request: An object detailing the search query parameters.
455457 :param check_request_payload: If :data:`False`,
@@ -466,7 +468,7 @@ def search(
466468
467469 :return:
468470 - A :class:`~scim2_models.Error` object in case of error.
469- - A :class:`~scim2_models.ListResponse[resource_type ]` object in case of success.
471+ - A :class:`~scim2_models.ListResponse[resource_model ]` object in case of success.
470472
471473 :usage:
472474
@@ -510,12 +512,12 @@ def prepare_search_request(
510512 )
511513
512514 url = kwargs .pop ("url" , "/.search" )
513- expected_types = [ListResponse [Union [self .resource_types ]]]
515+ expected_types = [ListResponse [Union [self .resource_models ]]]
514516 return url , payload , expected_types , kwargs
515517
516518 def delete (
517519 self ,
518- resource_type : type ,
520+ resource_model : type ,
519521 id : str ,
520522 check_response_payload : bool = True ,
521523 expected_status_codes : Optional [list [int ]] = DELETION_RESPONSE_STATUS_CODES ,
@@ -524,7 +526,7 @@ def delete(
524526 ) -> Optional [Union [Error , dict ]]:
525527 """Perform a DELETE request to create, as defined in :rfc:`RFC7644 §3.6 <7644#section-3.6>`.
526528
527- :param resource_type : The type of the resource to delete.
529+ :param resource_model : The type of the resource to delete.
528530 :param id: The type id the resource to delete.
529531 :param check_response_payload: Whether to validate that the response payload is valid.
530532 If set, the raw payload will be returned.
@@ -554,15 +556,15 @@ def delete(
554556
555557 def prepare_delete_request (
556558 self ,
557- resource_type : type ,
559+ resource_model : type ,
558560 id : str ,
559561 check_response_payload : bool = True ,
560562 expected_status_codes : Optional [list [int ]] = DELETION_RESPONSE_STATUS_CODES ,
561563 raise_scim_errors : bool = True ,
562564 ** kwargs ,
563565 ) -> tuple [str , dict ]:
564- self .check_resource_type ( resource_type )
565- delete_url = self .resource_endpoint (resource_type ) + f"/{ id } "
566+ self .check_resource_model ( resource_model )
567+ delete_url = self .resource_endpoint (resource_model ) + f"/{ id } "
566568 url = kwargs .pop ("url" , delete_url )
567569 return url , kwargs
568570
@@ -630,25 +632,25 @@ def prepare_replace_request(
630632
631633 else :
632634 if isinstance (resource , Resource ):
633- resource_type = resource .__class__
635+ resource_model = resource .__class__
634636
635637 else :
636- resource_type = Resource .get_by_payload (self .resource_types , resource )
637- if not resource_type :
638+ resource_model = Resource .get_by_payload (self .resource_models , resource )
639+ if not resource_model :
638640 raise SCIMRequestError (
639641 "Cannot guess resource type from the payload" ,
640642 source = resource ,
641643 )
642644
643645 try :
644- resource = resource_type .model_validate (resource )
646+ resource = resource_model .model_validate (resource )
645647 except ValidationError as exc :
646648 scim_validation_exc = RequestPayloadValidationError (source = resource )
647649 if sys .version_info >= (3 , 11 ): # pragma: no cover
648650 scim_validation_exc .add_note (str (exc ))
649651 raise scim_validation_exc from exc
650652
651- self .check_resource_type ( resource_type , resource )
653+ self .check_resource_model ( resource_model , resource )
652654
653655 if not resource .id :
654656 raise SCIMRequestError ("Resource must have an id" , source = resource )
0 commit comments