@@ -587,16 +587,21 @@ async def ListAccessPolicyTemplatesAsync(
587587 return templates
588588
589589 async def GetAccessPolicyTemplateAsync (self , rid : ResourceID ):
590- if rid . id is not None :
590+ if hasattr ( rid , "id" ) :
591591 resp_json = await self ._get_async (
592592 f"/tokenizer/policies/accesstemplate/{ rid .id } "
593593 )
594- elif rid .name is not None :
594+ return AccessPolicyTemplate .from_json (resp_json )
595+ elif hasattr (rid , "name" ):
595596 resp_json = await self ._get_async (
596- f"/tokenizer/policies/accesstemplate?name ={ rid .name } "
597+ f"/tokenizer/policies/accesstemplate?template_name ={ rid .name } "
597598 )
598-
599- return AccessPolicyTemplate .from_json (resp_json )
599+ if len (resp_json ["data" ]) == 1 :
600+ return AccessPolicyTemplate .from_json (resp_json ["data" ][0 ])
601+ raise UserCloudsSDKError (
602+ f"Access Policy Template with name { rid .name } not found" , 404
603+ )
604+ raise UserCloudsSDKError ("Invalid ResourceID" , 400 )
600605
601606 async def UpdateAccessPolicyTemplateAsync (
602607 self , access_policy_template : AccessPolicyTemplate
@@ -659,14 +664,19 @@ async def ListAccessPoliciesAsync(
659664 return policies
660665
661666 async def GetAccessPolicyAsync (self , rid : ResourceID ):
662- if rid . id is not None :
667+ if hasattr ( rid , "id" ) :
663668 resp_json = await self ._get_async (f"/tokenizer/policies/access/{ rid .id } " )
664- elif rid .name is not None :
669+ return AccessPolicy .from_json (resp_json )
670+ elif hasattr (rid , "name" ):
665671 resp_json = await self ._get_async (
666- f"/tokenizer/policies/access?name ={ rid .name } "
672+ f"/tokenizer/policies/access?policy_name ={ rid .name } "
667673 )
668-
669- return AccessPolicy .from_json (resp_json )
674+ if len (resp_json ["data" ]) == 1 :
675+ return AccessPolicy .from_json (resp_json ["data" ][0 ])
676+ raise UserCloudsSDKError (
677+ f"Access Policy with name { rid .name } not found" , 404
678+ )
679+ raise UserCloudsSDKError ("Invalid ResourceID" , 400 )
670680
671681 async def UpdateAccessPolicyAsync (self , access_policy : AccessPolicy ):
672682 resp_json = await self ._put_async (
@@ -698,6 +708,21 @@ async def CreateTransformerAsync(
698708 return transformer
699709 raise err
700710
711+ async def GetTransformerAsync (self , rid : ResourceID ):
712+ if hasattr (rid , "id" ):
713+ resp_json = await self ._get_async (
714+ f"/tokenizer/policies/transformation/{ rid .id } "
715+ )
716+ return Transformer .from_json (resp_json )
717+ elif hasattr (rid , "name" ):
718+ resp_json = await self ._get_async (
719+ f"/tokenizer/policies/transformation?transformer_name={ rid .name } "
720+ )
721+ if len (resp_json ["data" ]) == 1 :
722+ return Transformer .from_json (resp_json ["data" ][0 ])
723+ raise UserCloudsSDKError (f"Transformer with name { rid .name } not found" , 404 )
724+ raise UserCloudsSDKError ("Invalid ResourceID" , 400 )
725+
701726 async def ListTransformersAsync (
702727 self ,
703728 limit : int = 0 ,
@@ -727,7 +752,12 @@ async def ListTransformersAsync(
727752 transformers = [Transformer .from_json (tf ) for tf in resp_json ["data" ]]
728753 return transformers
729754
730- # Note: Transformers are immutable, so no Update method is provided.
755+ async def UpdateTransformerAsync (self , transformer : Transformer ):
756+ resp_json = await self ._put_async (
757+ f"/tokenizer/policies/transformation/{ transformer .id } " ,
758+ json_data = {"transformer" : transformer .__dict__ },
759+ )
760+ return Transformer .from_json (resp_json )
731761
732762 async def DeleteTransformerAsync (self , id : uuid .UUID ):
733763 return await self ._delete_async (f"/tokenizer/policies/transformation/{ id } " )
0 commit comments