Ë
    ümxiß  ã                  ó  — U d dl mZ d dlmZ d dlmc mZ d dlm	Z	 d dlm
Z
 d dlmZ ddddd	œZd
ed<   dd„Zdd„Zdd„Zdd„Z	 	 	 	 d	 	 	 	 	 	 	 	 	 dd„Z	 ddddddœ	 	 	 	 	 	 	 	 	 	 	 dd„Z	 ddddddœ	 	 	 	 	 	 	 	 	 	 	 dd„Zy)é    )Úannotations)ÚCallableN)Úpermission_types)Úretriever_types)Úmodel_typesÚcorporaÚtunedModels)Úcorpusr   Ú
tunedmodelÚtunedmodelszdict[str, str]Ú_RESOURCE_TYPEc                ó”   — t        | t        «      r| j                  «       } t        j	                  | d «      }|st        d| › d�«      ‚|S )Nz!Unsupported resource type. Got: `ú
` instead.)Ú
isinstanceÚstrÚlowerr   ÚgetÚ
ValueError©ÚxÚresource_types     úU/home/htdocs/ttos/venv/lib/python3.12/site-packages/google/generativeai/permission.pyÚ_to_resource_typer   "   sG   € Ü�!”SÔØ�G‰G‹IˆÜ"×&Ñ& q¨$Ó/€MÙÜÐ<¸Q¸C¸zÐJÓKÐKàÐó    c                óV  — |dk(  rIt        j                  | «      s3t        t         j                  j	                  t        | «      | ¬«      «      ‚y |dk(  rIt        j                  | «      s3t        t        j                  j	                  t        | «      | ¬«      «      ‚y t        d|› �«      ‚)Nr   )ÚlengthÚnamer	   zUnsupported resource type: )	r   Ú
valid_namer   ÚNAME_ERROR_MSGÚformatÚlenr   Úvalid_tuned_model_nameÚTUNED_MODEL_NAME_ERROR_MSGr   s     r   Ú_validate_resource_namer$   ,   sž   € Ø˜	Ò!Ü×)Ñ)¨!Ô,Üœ_×;Ñ;×BÑBÌ#ÈaË&ÐWXÐBÓYÓZÐZð -ð 
˜-Ò	'Ü×1Ñ1°!Ô4Üœ[×CÑC×JÑJÔRUÐVWÓRXÐ_`ÐJÓaÓbÐbð 5ô Ð6°}°oÐFÓGÐGr   c                ó€   — t        j                  | «      s)t        t         j                  j	                  | ¬«      «      ‚y )N)Úpermission_id)r   Úvalid_idr   ÚINVALID_PERMISSION_ID_MSGr    )r   s    r   Ú_validate_permission_idr)   9   s6   € Ü×$Ñ$ QÔ'ÜÔ)×CÑC×JÑJÐYZÐJÓ[Ó\Ð\ð (r   c                óþ   — | j                  d«      }t        |«      dk7  rt        d| › d�«      ‚|\  }}}}t        |«      }dj	                  ||g«      }t        ||«       t        |«       dj	                  |||g«      S )Nú/é   zyInvalid name format. Expected format:                 `resource_type/<resource_name>/permissions/<permission_id>`. Got: `r   )Úsplitr!   r   r   Újoinr$   r)   )r   Úname_path_componentsr   Úresource_nameÚpermission_placeholderr&   s         r   Ú_get_valid_name_componentsr2   >   s™   € àŸ:™: c›?ÐÜ
ÐÓ  AÒ%ÜðTØTXÐSYÐYcðeó
ð 	
ð
 K_ÑG€M�=Ð"8¸-Ü% mÓ4€Mà—H‘HÐ4°mÐDÓE€Mä˜M¨=Ô9Ü˜MÔ*à�8‰8�] M°=ÐAÓBÐBr   c           	     ól  — | s¦|r|st        d| › d|› d|› d�«      ‚|rt        |«      }nH|j                  d«      }t        |«      dk7  rt        d|› dt        |«      › d	�«      ‚t        |d
   «      }|› d�|v r|› d�} n|› d|› d�} t	        |t
        «      sd|vr	| d|› �z  } n| |z  } t        | «      } | S )NznInvalid arguments: Either `name` or both `resource_name` and `permission_id` must be provided. Received name: z, resource_name: z, permission_id: ú.r+   é   zlInvalid `resource_name` format: Expected format is `resource_type/resource_name` (2 components). Received: `z` with z components.r   zpermissions/)r   r   r-   r!   r   Úintr2   )r   r0   r&   r   Úresource_path_componentss        r   Ú_construct_namer8   R   sa  € ñ á¡-Üð Að  BFð  AGð  GXð  Yfð  Xgð  gxð  yFð  xGð  GHð  Ióð ñ Ü-¨mÓ<‰Mð (5×':Ñ':¸3Ó'?Ð$ÜÐ+Ó,°Ò1Ü ð Cð  DQð  CRð  RYô  Z]ð  ^vó  Zwð  Yxð  xDð  Eóð ô .Ð.FÀqÑ.IÓJˆMàˆ_˜AÐ -Ñ/Ø#�_ AÐ&‰Dà#�_ A m _°AÐ6ˆDä�m¤SÔ)¨^À=Ñ-PØ�l = /Ð2Ñ2‰Dà�MÑ!ˆDô & dÓ+€DØ€Kr   )Úclientr0   r&   r   c               ób   — t        | |||¬«      } t        j                  j                  | |¬«      S )aw  Calls the API to retrieve detailed information about a specific permission based on resource type and permission identifiers

    Args:
        name: The name of the permission.
        resource_name: The name of the supported resource for which the permission details are needed.
        permission_id: The name of the permission.
        resource_type: The type of the resource (corpus or tunedModel as of now) for which the permission details are needed.
                        If not provided, it will be inferred from `resource_name`.

    Returns:
        The permission as an instance of `permission_types.Permission`.
    ©r   r0   r&   r   ©r   r9   )r8   r   Ú
Permissionr   ©r   r9   r0   r&   r   s        r   Úget_permissionr?   y   s8   € ô( ØØ#Ø#Ø#ô	€Dô ×&Ñ&×*Ñ*°¸VÐ*ÓDÐDr   c             ƒ  ó~   K  — t        | |||¬«      } t        j                  j                  | |¬«      ƒ d{  –—† S 7 Œ­w)zC
    This is the async version of `permission.get_permission`.
    r;   r<   N)r8   r   r=   Ú	get_asyncr>   s        r   Úget_permission_asyncrB   –   sB   è ø€ ô ØØ#Ø#Ø#ô	€Dô "×,Ñ,×6Ñ6¸DÈÐ6ÓP×PÐPÐPús   ‚4=¶;·=)r   r   Úreturnr   )r   r   r   r   rC   ÚNone)r   r   rC   rD   )r   r   rC   r   )NNNN)
r   ú
str | Noner0   rE   r&   ústr | int | Noner   rE   rC   r   )N)r   rE   r9   z"glm.PermissionServiceClient | Noner0   rE   r&   rF   r   rE   rC   úpermission_types.Permission)r   rE   r9   z'glm.PermissionServiceAsyncClient | Noner0   rE   r&   rF   r   rE   rC   rG   )Ú
__future__r   Útypingr   Úgoogle.ai.generativelanguageÚaiÚgenerativelanguageÚglmÚgoogle.generativeai.typesr   r   r   r   Ú__annotations__r   r$   r)   r2   r8   r?   rB   © r   r   ú<module>rQ      sO  ðö #å ç *Ð *å 6Ý 5Ý 1ð ØØØ ñ	"€�ó óó
Hó]ó
Cð* Ø $Ø&*Ø $ð	$Ø
ð$àð$ð $ð$ð ð	$ð
 	ó$ðP ðEð 26Ø $Ø&*Ø $ñEØ
ðEð /ðEð ð	Eð
 $ðEð ðEð !óEð< ðQð 7;Ø $Ø&*Ø $ñQØ
ðQð 4ðQð ð	Qð
 $ðQð ðQð !ôQr   