
    K:g              	          U d dl Z d dlmZ d dlmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZ d dlZd dlmZ d dlmZ d dlmZmZmZmZmZ  ede	      Z eej4                  e
      Z eej4                  e
      ZdededefdZ dee   dedefdZ! G d de      Z" G d de      Z# G d de"d      Z$ G d de      Z% G d de      Z& G d ded d!d"gd#$      Z' G d% d&ed'      Z( G d( d)e      Z) G d* d+e      Z* G d, d-e*      Z+ G d. d/e)      Z, G d0 d1ed2      Z- G d3 d4e-d5      Z. G d6 d7e-d8      Z/ G d9 d:e-d;      Z0 G d< d=e      Z1 G d> d?e"d@      Z2 G dA dBe      Z3 G dC dDe      Z4 G dE dFe      Z5 G dG dHeedIg dJK      Z6 G dL dMe      Z7 G dN dOe      Z8 G dP dQe      Z9 G dR dSe      Z: G dT dUe      Z; G dV dWe      Z< G dX dYe      Z= G dZ d[e      Z> G d\ d]e      Z? G d^ d_e      Z@ G d` dae      ZA G db dce      ZB G dd dee      ZC G df dge      ZD G dh die      ZE G dj dke      ZF G dl dme      ZG G dn doe      ZH G dp dqe      ZI G dr dse      ZJ G dt due      ZK G dv dwe      ZL G dx dye      ZM G dz d{e      ZN G d| d}e      ZO G d~ de      ZP G d de      ZQ G d de      ZR G d de      ZS G d de      ZT G d de      ZU G d de      ZV G d de      ZW G d de      ZX G d de      ZY G d de      ZZ G d de      Z[ G d de      Z\ G d de      Z] G d de      Z^ G d de      Z_ G d de      Z` G d de      Za G d de      Zb G d de      Zc G d de      Zd G d de      Ze G d de      Zf G d de      Zg G d de      Zh G d de      Zi G d de      Zj G d ded d!d"gd$      Zk	 eg e8e:e;e<e=e?eAeBeCeEeGeIeKeLeMeOePeReSeTeVeWeYe[e\e^e_e`ebeceeefegeiej   Zleemd<    G d deke8      Zn G d deke:      Zo G d deke;      Zp G d deke<      Zq G d deke=      Zr G d deke?      Zs G dĄ dekeA      Zt G dƄ dekeB      Zu G dȄ dekeC      Zv G dʄ dekeE      Zw G d̄ dekeG      Zx G d΄ dekeI      Zy G dЄ dekeK      Zz G d҄ dekeL      Z{ G dԄ dekeM      Z| G dք dekeO      Z} G d؄ dekeP      Z~ G dڄ dekeR      Z G d܄ dekeS      Z G dބ dekeT      Z G d dekeV      Z G d dekeW      Z G d dekeY      Z G d deke[      Z G d deke\      Z G d deke^      Z G d deke_      Z G d deke`      Z G d dekeb      Z G d dekec      Z G d dekee      Z G d dekef      Z G d dekeg      Z G d dekei      Z G d dekej      Zeg eneoepeqereseteuevewexeyeze{e|e}e~eeeeeeeeeeeeeeeeee   Zeemd<    G d d e      Zdeeef   defdZ e e              y(      N)datetime)partial)	AnyDictIterableListLiteralOptionalTypeVarUnioncast)	TypeAlias)AddCollaboratorDict)AirtableModelCanDeleteModelCanUpdateModelRestfulModelrebuild_models_T)bound)default_factory	classnamekwargsreturnc                 P     dt         f fd}||d<   t        j                  di |S )Nr   c                      t        j                  t              } | }j                  d      D ]  }t	        ||      }  |       S )N.)	importlibimport_module__name__splitgetattr)this_moduleobjsegmentr   s      U/var/www/html/lionshead/venv/lib/python3.12/site-packages/pyairtable/models/schema.py_create_default_from_classnamez*_F.<locals>._create_default_from_classname   s>    --h7 s+G#w'C ,u    r    )r   pydanticField)r   r   r'   s   `  r&   _Fr,      s.    C  !?F>>#F##r(   
collection
id_or_namec                 ~    i }| D ]2  }t        |dd      r|j                  |k(  r|c S |||j                  <   4 ||   S )zM
    For use on a collection model to find objects by either id or name.
    deletedN)r"   idname)r-   r.   items_by_nameitems       r&   _findr5   #   sN     $&M4D)77j K#'dii   $$r(   c                       e Zd ZdZdededdfdZdededdfdZd	ed
ededdfdZdee	   ddfdZ
d
ededdfdZd
eddfdZy)_CollaboratorszY
    Mixin for use with RestfulModel subclasses that have a /collaborators endpoint.
    user_idpermission_levelr   Nc                 *    | j                  d||       y)z
        Add a user as a collaborator to this Airtable object.

        Args:
            user_id: The user ID.
            permission_level: |kwarg_permission_level|
        userNadd)selfr8   r9   s      r&   add_userz_Collaborators.add_user8   s     	"23r(   group_idc                 *    | j                  d||       y)z
        Add a group as a collaborator to this Airtable object.

        Args:
            group_id: The group ID.
            permission_level: |kwarg_permission_level|
        groupNr<   )r>   r@   r9   s      r&   	add_groupz_Collaborators.add_groupB   s     	($45r(   collaborator_typecollaborator_idc           	      n    |dvrt        d      | j                  t        t        |d|id|i      g       y)a
  
        Add a user or group as a collaborator to this Airtable object.

        Args:
            collaborator_type: Either ``'user'`` or ``'group'``.
            collaborator_id: The user or group ID.
            permission_level: |kwarg_permission_level|
        )r;   rB   z+collaborator_type must be 'user' or 'group'r1   permissionLevelN)
ValueErroradd_collaboratorsr   r   )r>   rD   rE   r9   s       r&   r=   z_Collaborators.addL   sL     $55JKK')D/+B)+;
	
r(   collaboratorsc                     dt        |      i}| j                  j                  | j                   d|       | j	                          y)aW  
        Add multiple collaborators to this Airtable object.

        Args:
            collaborators: A list of ``dict`` that conform to the specification
                laid out in the `Add base collaborator <https://airtable.com/developers/web/api/add-base-collaborator#request-collaborators>`__
                API documentation.
        rJ   z/collaboratorsjsonN)list_apipost_url_reload)r>   rJ   payloads      r&   rI   z _Collaborators.add_collaboratorsh   s;     #D$78		$))N3'Br(   c                 `    | j                   j                  | j                   d| d|i       y)z
        Change the permission level granted to a user or group.

        Args:
            collaborator_id: The user or group ID.
            permission_level: |kwarg_permission_level|
        /collaborators/rG   rL   N)rO   patchrQ   )r>   rE   r9   s      r&   updatez_Collaborators.updateu   s5     			yyk(9:#%56 	 	
r(   c                 X    | j                   j                  | j                   d|        y)z}
        Remove a user or group as a collaborator.

        Args:
            collaborator_id: The user or group ID.
        rU   N)rO   deleterQ   )r>   rE   s     r&   removez_Collaborators.remove   s&     			DII;oo5FGHr(   )r    
__module____qualname____doc__strr?   rC   r=   r   r   rI   rW   rZ   r)   r(   r&   r7   r7   3   s    4 4s 4t 46# 6 6 6

 
 	

 

8x8K/L QU 
c 
S 
T 
Ic Id Ir(   r7   c                   V    e Zd ZU dZ e       Zed   ed<   deddfdZ	 G d de
      Zy	)
Baseszq
    The list of bases visible to the API token.

    See https://airtable.com/developers/web/api/list-bases
    
Bases.Infobasesbase_idr   c                 .    t        | j                  |      S )zI
        Get basic information about the base with the given ID.
        )r5   rb   )r>   rc   s     r&   basez
Bases.base   s     TZZ))r(   c                   ,    e Zd ZU eed<   eed<   eed<   y)ra   r1   r2   r9   Nr    r[   r\   r^   __annotations__r)   r(   r&   Infoz
Bases.Info   s    	r(   ri   N)r    r[   r\   r]   _FLrb   r   rh   r^   re   r   ri   r)   r(   r&   r`   r`      s9     !$E4%*C *L *} r(   r`   c                      e Zd ZU dZeed<   eed<   eed<   eed<   eed<    e       Ze	edf   ed<    e
d	      Zd	ed
<    e
d      Zded<    e
d      Zded<    G d ded      Z G d de      Z G d de      Z G d ded      Zy)BaseCollaboratorsz
    Detailed information about who can access a base.

    See https://airtable.com/developers/web/api/get-base-collaborators
    r1   r2   created_timer9   workspace_id(BaseCollaborators.InterfaceCollaborators
interfaces$BaseCollaborators.GroupCollaboratorsgroup_collaborators)BaseCollaborators.IndividualCollaboratorsindividual_collaboratorsBaseCollaborators.InviteLinksinvite_linksc                       e Zd ZU eed<   eed<   eed<   dZee   ed<    e       Z	e
d   ed<    e       Ze
d   ed	<    e       Ze
d
   ed<   y)ro   r1   r2   rm   Nfirst_publish_timeGroupCollaboratorrr   IndividualCollaboratorrt   InterfaceInviteLinkrv   )r    r[   r\   r^   rh   r   rx   r
   rj   rr   r   rt   rv   r)   r(   r&   InterfaceCollaboratorsz(BaseCollaborators.InterfaceCollaborators   s\     	15HX.59<T"56>CF5 $'?"@H47Ed019r(   r|   z%meta/bases/{base.id}/interfaces/{key}urlc                   R    e Zd ZU  ed      Zed   ed<    ed      Zed   ed<   y)rq   baseCollaboratorsaliasry   via_baseworkspaceCollaboratorsvia_workspaceNr    r[   r\   rj   r   r   rh   r   r)   r(   r&   GroupCollaboratorsz$BaseCollaborators.GroupCollaborators   s.    .18K.L$*+L36=U3Vt/0Vr(   r   c                   R    e Zd ZU  ed      Zed   ed<    ed      Zed   ed<   y)rs   r   r   rz   r   r   r   Nr   r)   r(   r&   IndividualCollaboratorsz)BaseCollaborators.IndividualCollaborators   s.    36=P3Q$/0Q8;BZ8[t45[r(   r   c                   R    e Zd ZU  ed      Zed   ed<    ed      Zed   ed<   y)	ru   baseInviteLinksr   
InviteLinkr   workspaceInviteLinksWorkspaceInviteLinkr   Nr   r)   r(   r&   InviteLinkszBaseCollaborators.InviteLinks   s-    '*1B'C$|$C58?U5Vt12Vr(   r   z!{base_collaborators._url}/invitesN)r    r[   r\   r]   r^   rh   r   _FDrp   r   r,   rr   rt   rv   r7   r|   r   r   r   r   r   r)   r(   r&   rl   rl      s     	G
IHKJSDDEMBDEkBl?lLNOzL{I{467V4WL1W
:3
:W] W\- \Wl(K Wr(   rl   zmeta/bases/{base.id}r}   c            	       D    e Zd ZU dZed   ed<    G d deeddgd	      Zy
)
BaseShareszl
    Collection of shared views in a base.

    See https://airtable.com/developers/web/api/list-shares
    BaseShares.Infosharesc                       e Zd ZU eed<   eed<   eed<   eed<   eed<   dZee   ed<   eed<   dZ	ee   ed	<    e
       Zee   ed
<   dZee   ed<    e
       Zee   ed<   ddZddZy)r   statecreated_by_user_idrm   share_idtypeNcan_be_syncedis_password_protectedblock_installation_idrestricted_to_email_domainsview_id!effective_email_domain_allow_listc                 2    d| _         | j                          y)z0
            Enable the base share.
            enabledNr   saver>   s    r&   enablezBaseShares.Info.enable   s     #DJIIKr(   c                 2    d| _         | j                          y)z1
            Disable the base share.
            disabledNr   r   s    r&   disablezBaseShares.Info.disable   s     $DJIIKr(   r   N)r    r[   r\   r^   rh   r   r   r
   boolr   rj   r   r   r   r   r   r   r)   r(   r&   ri   zBaseShares.Info   s|     
	(,x~,##/3x}314#T#Y6!%#%7:u)49<		r(   ri   z+meta/bases/{base.id}/shares/{self.share_id}r   F)r~   writablereload_after_saveN)	r    r[   r\   r]   r   rh   r   r   ri   r)   r(   r&   r   r      s0     "##9r(   r   c                   2    e Zd ZU dZed   ed<   deddfdZy)
BaseSchemaa  
    Schema of all tables within the base.

    See https://airtable.com/developers/web/api/get-base-schema

    Usage:
        >>> schema = api.base(base_id).schema()
        >>> schema.tables
        [TableSchema(...), ...]
        >>> schema.table("Table Name")
        TableSchema(
            id='tbl6jG0XedVMNxFQW',
            name='Table Name',
            primary_field_id='fld0XedVMNxFQW6jG',
            description=None,
            fields=[...],
            views=[...]
        )
    TableSchematablesr.   r   c                 .    t        | j                  |      S )zI
        Get the schema for the table with the given ID or name.
        )r5   r   r>   r.   s     r&   tablezBaseSchema.table       T[[*--r(   N)r    r[   r\   r]   r   rh   r^   r   r)   r(   r&   r   r      s'    ( . . .r(   r   c                       e Zd ZU dZeed<   eed<   eed<   dZee   ed<   ed   ed<   ed	   ed
<   deddfdZ	dedd	fdZ
y)r   a  
    Metadata for a table.

    See https://airtable.com/developers/web/api/get-base-schema

    Usage:
        >>> schema = base.table("Table Name").schema()
        >>> schema.id
        'tbl6clmhESAtaCCwF'
        >>> schema.name
        'Table Name'

        >>> schema.fields
        [FieldSchema(...), ...]
        >>> schema().field("fld6jG0XedVMNxFQW")
        SingleLineTextFieldSchema(
            id='fld6jG0XedVMNxFQW',
            name='Name',
            type='singleLineText'
        )

        >>> schema.views
        [ViewSchema(...), ...]
        >>> schema().view("View Name")
        ViewSchema(
            id='viw6jG0XedVMNxFQW',
            name='My Grid View',
            type='grid'
        )
    r1   r2   primary_field_idNdescriptionFieldSchemafields
ViewSchemaviewsr.   r   c                 .    t        | j                  |      S )zI
        Get the schema for the field with the given ID or name.
        )r5   r   r   s     r&   fieldzTableSchema.field@  r   r(   c                 .    t        | j                  |      S )zH
        Get the schema for the view with the given ID or name.
        )r5   r   r   s     r&   viewzTableSchema.viewF  s     TZZ,,r(   )r    r[   r\   r]   r^   rh   r   r
   r   r   r   r)   r(   r&   r   r     sc    > 	G
I!%K#%. . .-s -| -r(   r   Fr2   r   z%meta/bases/{base.id}/tables/{self.id})save_null_valuesr   r~   c                   ^    e Zd ZU dZeed<   eed<   eed<   dZee   ed<   dZee	e      ed<   y)r   a  
    Metadata for a view.

    See https://airtable.com/developers/web/api/get-view-metadata

    Usage:
        >>> vw = table.schema().view("View name")
        >>> vw.name
        'View name'
        >>> vw.type
        'grid'
        >>> vw.delete()
    r1   r   r2   Npersonal_for_user_idvisible_field_ids)
r    r[   r\   r]   r^   rh   r   r
   r   r   r)   r(   r&   r   r   M  s;     	G
I
I*.(3-.-1xS	*1r(   r   z$meta/bases/{base.id}/views/{self.id}c                   @    e Zd ZU eed<   eed<   eed<   eed<   eed<   y)ry   rm   granted_by_user_idr@   r2   r9   Nr    r[   r\   r   rh   r^   r)   r(   r&   ry   ry   c  s    M
Ir(   ry   c                   @    e Zd ZU eed<   eed<   eed<   eed<   eed<   y)rz   rm   r   r8   emailr9   Nr   r)   r(   r&   rz   rz   k  s    LJr(   rz   c                       e Zd ZU eed<   y)BaseIndividualCollaboratorrc   Nrg   r)   r(   r&   r   r   s      Lr(   r   c                       e Zd ZU eed<   y)BaseGroupCollaboratorrc   Nrg   r)   r(   r&   r   r   w  r   r(   r   c                   v    e Zd ZU dZeed<   eed<   eed<   dZee   ed<   eed<   eed<    e	       Z
ee   ed	<   y)
r   zd
    Represents an `invite link <https://airtable.com/developers/web/api/model/invite-link>`__.
    r1   r   rm   Ninvited_emailreferred_by_user_idr9   r   )r    r[   r\   r]   r^   rh   r   r   r
   rj   r   r   r)   r(   r&   r   r   }  sD     	G
I#'M8C='-0Uc2r(   r   z{invite_links._url}/{self.id}c                       e Zd ZU dZeed<   y)BaseInviteLinkzm
    Represents a `base invite link <https://airtable.com/developers/web/api/model/base-invite-link>`__.
    rc   N)r    r[   r\   r]   r^   rh   r)   r(   r&   r   r     s     Lr(   r   z+meta/bases/{self.base_id}/invites/{self.id}c                       e Zd ZdZy)r   z
    Represents an `invite link <https://airtable.com/developers/web/api/model/invite-link>`__
    to a workspace that was returned within a base schema.
    Nr    r[   r\   r]   r)   r(   r&   r   r         r(   r   zCmeta/workspaces/{base_collaborators.workspace_id}/invites/{self.id}c                       e Zd ZdZy)r{   z
    Represents an `invite link <https://airtable.com/developers/web/api/model/invite-link>`__
    to an interface that was returned within a base schema.
    Nr   r)   r(   r&   r{   r{     r   r(   r{   z0{interface_collaborators._url}/invites/{self.id}c                      e Zd ZU dZeed<   eed<   ee   ed<   ee   ed<   ee   ed<   ed   ed<    ej                  d	
      Z
eed<    ed
      Zee   ed<   dZed   ed<    e       Zeedf   ed<    G d de      Z G d de      Zy)EnterpriseInfoz
    Information about groups, users, workspaces, and email domains
    associated with an enterprise account.

    See https://airtable.com/developers/web/api/get-enterprise
    r1   rm   	group_idsuser_idsworkspace_idsEnterpriseInfo.EmailDomainemail_domainsrootEnterpriseAccountIdr   root_enterprise_iddescendantEnterpriseAccountIdsdescendant_enterprise_idsNEnterpriseInfo.AggregatedIds
aggregateddescendantsc                   "    e Zd ZU eed<   eed<   y)r   email_domainis_sso_requiredN)r    r[   r\   r^   rh   r   r)   r(   r&   EmailDomainzEnterpriseInfo.EmailDomain  s    r(   r   c                   h    e Zd ZU  e       Zee   ed<    e       Zee   ed<    e       Z	ee   ed<   y)r   r   r   r   N)
r    r[   r\   rj   r   r   r^   rh   r   r   r)   r(   r&   AggregatedIdszEnterpriseInfo.AggregatedIds  s2    "u	49$!e$s)##&5tCy(r(   r   )r    r[   r\   r]   r^   rh   r   r   r*   r+   r   rj   r   r   r
   r   r   r   r   r   r   r)   r(   r&   r   r     s     	GCy3i9455,hnn3LMM+.5U+VtCyV;?J78?=@UKc99:Bm ) )r(   r   c                   "   e Zd ZU dZeed<   eed<   eed<   ee   ed<    ej                  d      Z
ded	<    ed
      Zd
ed<    ed      Zded<    ed      Zded<    G d deddd      Z G d de      Z G d de      Z G d ded      Zy)WorkspaceCollaboratorsz
    Detailed information about who can access a workspace.

    See https://airtable.com/developers/web/api/get-workspace-collaborators
    r1   r2   rm   base_idsworkspaceRestrictionsr   #WorkspaceCollaborators.Restrictionsrestrictions)WorkspaceCollaborators.GroupCollaboratorsrr   .WorkspaceCollaborators.IndividualCollaboratorsrt   "WorkspaceCollaborators.InviteLinksrv   c                   n    e Zd ZU  ej                  d      Zeed<    ej                  d      Zeed<   y)r   inviteCreationRestrictionr   invite_creationshareCreationRestrictionshare_creationN)	r    r[   r\   r*   r+   r   r^   rh   r   r)   r(   r&   Restrictionsz#WorkspaceCollaborators.Restrictions  s0      .x~~4OPP,hnn3MNNr(   r   z1{workspace_collaborators._url}/updateRestrictionsPOSTF)r~   save_methodr   c                   R    e Zd ZU  ed      Zed   ed<    ed      Zed   ed<   y)	r   r   r   r   r   r   ry   r   Nr   r)   r(   r&   r   z)WorkspaceCollaborators.GroupCollaborators  s.    25<O2P$./P36=U3Vt/0Vr(   r   c                   R    e Zd ZU  ed      Zed   ed<    ed      Zed   ed<   y)	r   r   r   r   r   r   rz   r   Nr   r)   r(   r&   r   z.WorkspaceCollaborators.IndividualCollaborators  s2    7:AT7U$34U8;*9
t45 	
r(   r   c                   R    e Zd ZU  ed      Zed   ed<    ed      Zed   ed<   y)	r   r   r   r   r   r   r   r   Nr   r)   r(   r&   r   z"WorkspaceCollaborators.InviteLinks  s-    +.5F+G$'(G,/6L,MtL)Mr(   r   z&{workspace_collaborators._url}/invitesr}   N)r    r[   r\   r]   r^   rh   r   r   r*   r+   r   r,   rr   rt   rv   r   r   r   r   r   r   r   r)   r(   r&   r   r     s     	G
I3i:H(..Of:gL7gGIJuGvDvQS  UE  RFN  F9;<`9aL6aO?	OW] W
- 
Nl(P Nr(   r   zmeta/workspaces/{self.id}c                       e Zd ZU eed<   y)NestedIdr1   Nrg   r)   r(   r&   r   r     s    Gr(   r   c                       e Zd ZU eed<   y)NestedFieldIdfield_idNrg   r)   r(   r&   r  r    s    Mr(   r  c                      e Zd ZU dZ e       Zed   ed<    e       Zed   ed<    e       Z	ed   ed<   de
fd	Zedeedf   fd
       Zedeedf   fd       Zedeedf   fd       Z G d de      Z G d de      Z G d de      Zy)Collaborationsz
    The full set of collaborations granted to a user or user group.

    See https://airtable.com/developers/web/api/model/collaborations
     Collaborations.BaseCollaborationbase_collaborations%Collaborations.InterfaceCollaborationinterface_collaborations%Collaborations.WorkspaceCollaborationworkspace_collaborationsr   c                 d    t        | j                  xs | j                  xs | j                        S )N)r   r  r	  r  r   s    r&   __bool__zCollaborations.__bool__  s4    $$ -,,-,,
 	
r(   c                 V    | j                   D ci c]  }|j                  | c}S c c}w )zP
        Mapping of base IDs to collaborations, to make lookups easier.
        )r  rc   r>   cs     r&   rb   zCollaborations.bases	  s,    
 '+&>&>?&>		1&>???   &c                 V    | j                   D ci c]  }|j                  | c}S c c}w )zU
        Mapping of interface IDs to collaborations, to make lookups easier.
        )r	  interface_idr  s     r&   rp   zCollaborations.interfaces  -    
 ,0+H+HI+Ha!+HIIIr  c                 V    | j                   D ci c]  }|j                  | c}S c c}w )zU
        Mapping of workspace IDs to collaborations, to make lookups easier.
        )r  rn   r  s     r&   
workspaceszCollaborations.workspaces  r  r  c                   6    e Zd ZU eed<   eed<   eed<   eed<   y)r  rc   rm   r   r9   Nr    r[   r\   r^   rh   r   r)   r(   r&   BaseCollaborationz Collaborations.BaseCollaboration  s    r(   r  c                       e Zd ZU eed<   y)r  r  Nrg   r)   r(   r&   InterfaceCollaborationz%Collaborations.InterfaceCollaboration$  s    r(   r  c                   6    e Zd ZU eed<   eed<   eed<   eed<   y)r
  rn   rm   r   r9   Nr  r)   r(   r&   WorkspaceCollaborationz%Collaborations.WorkspaceCollaboration'  s    r(   r  N)r    r[   r\   r]   rj   r  r   rh   r	  r  r   r  propertyr   r^   rb   rp   r  r   r  r  r  r)   r(   r&   r  r    s     EHE@AINQed#JKSNQed#JKS
$ 
 @tC!CCD @ @ JD&M!MN J J JD&M!MN J JM !2  r(   r  c                   t   e Zd ZU dZeed<   eed<   eed<   eed<   eed<   eed<   eed<   d	Zee	   ed
<   d	Z
ee	   ed<   d	Zee   ed<   d	Zee   ed<   dZeed<   dZeed<   dZeed<    e       Zee   ed<    ed      Zded<    e       Zeedf   ed<   d	Zed   ed<   ddZ G d de      Z G d de      Zy	)UserInfozl
    Detailed information about a user.

    See https://airtable.com/developers/web/api/get-user-by-id
    r1   r2   r   r   is_service_accountr   is_two_factor_auth_enabledNlast_activity_timerm   enterprise_user_typeinvited_to_airtable_by_user_idF
is_managedis_adminis_super_admingroupsr  collaborationsUserInfo.DescendantIdsr   UserInfo.AggregatedIdsr   c                 T    | j                   j                  | j                  dz          y )Nz/logout)rO   rP   rQ   r   s    r&   logoutzUserInfo.logoutM  s    		tyy9,-r(   c                   p    e Zd ZU dZee   ed<   dZed   ed<   dZe	ed<   dZ
e	ed<    e       Zee   ed<   y)	r+  Nr#  r  r*  Fr'  r&  r)  )r    r[   r\   r#  r
   r   rh   r*  r'  r   r&  rj   r)  r   r   r)   r(   r&   DescendantIdszUserInfo.DescendantIdsP  sF    15HX.559!129$ 
D !$X&r(   r0  c                   b    e Zd ZU dZee   ed<   dZed   ed<   dZe	ed<    e
       Zee   ed<   y)r,  Nr#  r  r*  Fr'  r)  )r    r[   r\   r#  r
   r   rh   r*  r'  r   rj   r)  r   r   r)   r(   r&   r   zUserInfo.AggregatedIdsW  s<    15HX.559!129$!$X&r(   r   r   )r    r[   r\   r]   r^   rh   r   r#  r
   r   rm   r$  r%  r&  r'  r(  rj   r)  r   r   r,   r*  r   r   r   r   r.  r   r0  r   r)   r(   r&   r   r   .  s     	G
IJJ $$-1*1'+L(8$+*.(3-.48"HSM8JHd ND  UFDN"')*:';N$;7:uKc334<59J129.' '' 'r(   r   z!{enterprise.urls.users}/{self.id})r   r   
first_name	last_name)r~   r   c                       e Zd ZU dZeed<   eed<   eed<   eed<   eed<   ed   ed<    ed	      Z	d	ed
<    G d de
      Zy)	UserGroupz
    Detailed information about a user group and its members.

    See https://airtable.com/developers/web/api/get-user-group
    r1   r2   enterprise_account_idrm   updated_timeUserGroup.Membermembersr  r*  c                   J    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   y)r8  r8   r   r2  r3  rolerm   Nr  r)   r(   r&   MemberzUserGroup.Memberm  s!    
	r(   r<  N)r    r[   r\   r]   r^   rh   r   r   r,   r*  r   r<  r)   r(   r&   r5  r5  ^  sN     	G
I$%%')*:';N$; r(   r5  c                   ,    e Zd ZU dZed   ed<   ded<   y)AITextFieldConfigzk
    Field configuration for `AI text <https://airtable.com/developers/web/api/field-model#aitext>`__.
    aiTextr   AITextFieldOptionsoptionsNr    r[   r\   r]   r	   rh   r)   r(   r&   r>  r>  ~       (
!!r(   r>  c                   j    e Zd ZU  e       Zeeedf      ed<    e       Z	ee   ed<    G d de
      Zy)r@  AITextFieldOptions.PromptFieldpromptreferenced_field_idsc                       e Zd ZU eed<   y)rE  r   N)r    r[   r\   r  rh   r)   r(   r&   PromptFieldzAITextFieldOptions.PromptField  s    r(   rI  N)r    r[   r\   rj   rF  r   r   r^   rh   rG  r   rI  r)   r(   r&   r@  r@    s;    ADFDs<<=>F&)e$s)+m r(   r@  c                   "    e Zd ZU dZed   ed<   y)AutoNumberFieldConfigzs
    Field configuration for `Auto number <https://airtable.com/developers/web/api/field-model#autonumber>`__.
    
autoNumberr   NrB  r)   r(   r&   rK  rK         ,
r(   rK  c                   "    e Zd ZU dZed   ed<   y)BarcodeFieldConfigzl
    Field configuration for `Barcode <https://airtable.com/developers/web/api/field-model#barcode>`__.
    barcoder   NrB  r)   r(   r&   rO  rO    s     )
r(   rO  c                   "    e Zd ZU dZed   ed<   y)ButtonFieldConfigzj
    Field configuration for `Button <https://airtable.com/developers/web/api/field-model#button>`__.
    buttonr   NrB  r)   r(   r&   rR  rR    s     (
r(   rR  c                   ,    e Zd ZU dZed   ed<   ded<   y)CheckboxFieldConfigzn
    Field configuration for `Checkbox <https://airtable.com/developers/web/api/field-model#checkbox>`__.
    checkboxr   CheckboxFieldOptionsrA  NrB  r)   r(   r&   rU  rU         *
##r(   rU  c                   "    e Zd ZU eed<   eed<   y)rW  coloriconNrg   r)   r(   r&   rW  rW    s    J
Ir(   rW  c                   ,    e Zd ZU dZed   ed<   ded<   y)CountFieldConfigzh
    Field configuration for `Count <https://airtable.com/developers/web/api/field-model#count>`__.
    countr   CountFieldOptionsrA  NrB  r)   r(   r&   r]  r]    s     '
  r(   r]  c                   ,    e Zd ZU eed<   dZee   ed<   y)r_  is_validNrecord_link_field_id)r    r[   r\   r   rh   rb  r
   r^   r)   r(   r&   r_  r_    s    N*.(3-.r(   r_  c                   "    e Zd ZU dZed   ed<   y)CreatedByFieldConfigzq
    Field configuration for `Created by <https://airtable.com/developers/web/api/field-model#createdby>`__.
    	createdByr   NrB  r)   r(   r&   rd  rd    s     +
r(   rd  c                   "    e Zd ZU dZed   ed<   y)CreatedTimeFieldConfigzu
    Field configuration for `Created time <https://airtable.com/developers/web/api/field-model#createdtime>`__.
    createdTimer   NrB  r)   r(   r&   rg  rg         -
  r(   rg  c                   ,    e Zd ZU dZed   ed<   ded<   y)CurrencyFieldConfigzt
    Field configuration for `Currency <https://airtable.com/developers/web/api/field-model#currencynumber>`__.
    currencyr   CurrencyFieldOptionsrA  NrB  r)   r(   r&   rk  rk    rX  r(   rk  c                   "    e Zd ZU eed<   eed<   y)rm  	precisionsymbolN)r    r[   r\   intrh   r^   r)   r(   r&   rm  rm    s    NKr(   rm  c                   ,    e Zd ZU dZed   ed<   ded<   y)DateFieldConfigzj
    Field configuration for `Date <https://airtable.com/developers/web/api/field-model#dateonly>`__.
    dater   DateFieldOptionsrA  NrB  r)   r(   r&   rs  rs    s     &/r(   rs  c                       e Zd ZU ded<   y)ru  DateTimeFieldOptions.DateFormatdate_formatN)r    r[   r\   rh   r)   r(   r&   ru  ru    s    22r(   ru  c                   ,    e Zd ZU dZed   ed<   ded<   y)DateTimeFieldConfigzv
    Field configuration for `Date and time <https://airtable.com/developers/web/api/field-model#dateandtime>`__.
    dateTimer   DateTimeFieldOptionsrA  NrB  r)   r(   r&   rz  rz    rX  r(   rz  c                   X    e Zd ZU eed<   ded<   ded<    G d de      Z G d d	e      Zy
)r|  	time_zonerw  rx  DateTimeFieldOptions.TimeFormattime_formatc                   "    e Zd ZU eed<   eed<   y)rw  formatr2   Nrg   r)   r(   r&   
DateFormatzDateTimeFieldOptions.DateFormat      	r(   r  c                   "    e Zd ZU eed<   eed<   y)r  r  r2   Nrg   r)   r(   r&   
TimeFormatzDateTimeFieldOptions.TimeFormat   r  r(   r  N)r    r[   r\   r^   rh   r   r  r  r)   r(   r&   r|  r|    s+    N2222] ] r(   r|  c                   ,    e Zd ZU dZed   ed<   ded<   y)DurationFieldConfigzt
    Field configuration for `Duration <https://airtable.com/developers/web/api/field-model#durationnumber>`__.
    durationr   DurationFieldOptionsrA  NrB  r)   r(   r&   r  r    rX  r(   r  c                       e Zd ZU eed<   y)r  duration_formatNrg   r)   r(   r&   r  r    s    r(   r  c                   "    e Zd ZU dZed   ed<   y)EmailFieldConfigzh
    Field configuration for `Email <https://airtable.com/developers/web/api/field-model#email>`__.
    r   r   NrB  r)   r(   r&   r  r    s     '
r(   r  c                   ,    e Zd ZU dZed   ed<   ded<   y)ExternalSyncSourceFieldConfigzs
    Field configuration for `Sync source <https://airtable.com/developers/web/api/field-model#syncsource>`__.
    externalSyncSourcer   SingleSelectFieldOptionsrA  NrB  r)   r(   r&   r  r    s     &
''''r(   r  c                   ,    e Zd ZU dZed   ed<   ded<   y)FormulaFieldConfigzl
    Field configuration for `Formula <https://airtable.com/developers/web/api/field-model#formula>`__.
    formular   FormulaFieldOptionsrA  NrB  r)   r(   r&   r  r  #  s     )
""r(   r  c                   P    e Zd ZU eed<   eed<   dZeee      ed<   dZ	ed   ed<   y)r  r  ra  NrG  FieldConfigresult)
r    r[   r\   r^   rh   r   rG  r
   r   r  r)   r(   r&   r  r  ,  s/    LN04(49-4&*FH]#*r(   r  c                   "    e Zd ZU dZed   ed<   y)LastModifiedByFieldConfigz|
    Field configuration for `Last modified by <https://airtable.com/developers/web/api/field-model#lastmodifiedby>`__.
    lastModifiedByr   NrB  r)   r(   r&   r  r  3       "
##r(   r  c                   ,    e Zd ZU dZed   ed<   ded<   y)LastModifiedTimeFieldConfigz
    Field configuration for `Last modified time <https://airtable.com/developers/web/api/field-model#lastmodifiedtime>`__.
    lastModifiedTimer   LastModifiedTimeFieldOptionsrA  NrB  r)   r(   r&   r  r  ;  s     $
%%++r(   r  c                   L    e Zd ZU eed<   dZeee      ed<   dZ	ee
d      ed<   y)r  ra  NrG  )rs  rz  r  )r    r[   r\   r   rh   rG  r
   r   r^   r  r   r)   r(   r&   r  r  D  s0    N04(49-4HLFHUCDELr(   r  c                   "    e Zd ZU dZed   ed<   y)ManualSortFieldConfigzM
    Field configuration for ``manualSort`` field type (not documented).
    
manualSortr   NrB  r)   r(   r&   r  r  J  rM  r(   r  c                   "    e Zd ZU dZed   ed<   y)MultilineTextFieldConfigzt
    Field configuration for `Long text <https://airtable.com/developers/web/api/field-model#multilinetext>`__.
    multilineTextr   NrB  r)   r(   r&   r  r  R  s     /
""r(   r  c                   ,    e Zd ZU dZed   ed<   ded<   y)MultipleAttachmentsFieldConfig{
    Field configuration for `Attachments <https://airtable.com/developers/web/api/field-model#multipleattachment>`__.
    multipleAttachmentsr   MultipleAttachmentsFieldOptionsrA  NrB  r)   r(   r&   r  r  Z       '
((..r(   r  c                       e Zd ZU dZeed<   y)r  r  is_reversedN)r    r[   r\   r]   r   rh   r)   r(   r&   r  r  c  s     r(   r  c                   "    e Zd ZU dZed   ed<   y) MultipleCollaboratorsFieldConfigz
    Field configuration for `Multiple Collaborators <https://airtable.com/developers/web/api/field-model#multicollaborator>`__.
    multipleCollaboratorsr   NrB  r)   r(   r&   r  r  k  s     )
**r(   r  c                   ,    e Zd ZU dZed   ed<   ded<   y)MultipleLookupValuesFieldConfigzj
    Field configuration for `Lookup <https://airtable.com/developers/web/api/field-model#lookup>__`.
    multipleLookupValuesr    MultipleLookupValuesFieldOptionsrA  NrB  r)   r(   r&   r  r  s  s     (
))//r(   r  c                   T    e Zd ZU eed<   dZee   ed<   dZee   ed<   dZ	ed   ed<   y)r  ra  Nfield_id_in_linked_tablerb  r  r  )
r    r[   r\   r   rh   r  r
   r^   rb  r  r)   r(   r&   r  r  |  s4    N.2hsm2*.(3-.&*FH]#*r(   r  c                   ,    e Zd ZU dZed   ed<   ded<   y)MultipleRecordLinksFieldConfigz~
    Field configuration for `Link to another record <https://airtable.com/developers/web/api/field-model#foreignkey>__`.
    multipleRecordLinksr   MultipleRecordLinksFieldOptionsrA  NrB  r)   r(   r&   r  r    r  r(   r  c                   T    e Zd ZU eed<   eed<   eed<   dZee   ed<   dZee   ed<   y)r  r  linked_table_idprefers_single_record_linkNinverse_link_field_idview_id_for_record_selection)	r    r[   r\   r   rh   r^   r  r
   r  r)   r(   r&   r  r    s2     $$+/8C=/26 (3-6r(   r  c                   ,    e Zd ZU dZed   ed<   ded<   y)MultipleSelectsFieldConfigzx
    Field configuration for `Multiple select <https://airtable.com/developers/web/api/field-model#multiselect>`__.
    multipleSelectsr   r  rA  NrB  r)   r(   r&   r  r    s     #
$$''r(   r  c                   ,    e Zd ZU dZed   ed<   ded<   y)NumberFieldConfigzz
    Field configuration for `Number <https://airtable.com/developers/web/api/field-model#decimalorintegernumber>`__.
    numberr   NumberFieldOptionsrA  NrB  r)   r(   r&   r  r    rC  r(   r  c                       e Zd ZU eed<   y)r  ro  N)r    r[   r\   rq  rh   r)   r(   r&   r  r    s    Nr(   r  c                   ,    e Zd ZU dZed   ed<   ded<   y)PercentFieldConfigzr
    Field configuration for `Percent <https://airtable.com/developers/web/api/field-model#percentnumber>`__.
    percentr   r  rA  NrB  r)   r(   r&   r  r    s     )
!!r(   r  c                   "    e Zd ZU dZed   ed<   y)PhoneNumberFieldConfigzh
    Field configuration for `Phone <https://airtable.com/developers/web/api/field-model#phone>`__.
    phoneNumberr   NrB  r)   r(   r&   r  r    ri  r(   r  c                   ,    e Zd ZU dZed   ed<   ded<   y)RatingFieldConfigzj
    Field configuration for `Rating <https://airtable.com/developers/web/api/field-model#rating>`__.
    ratingr   RatingFieldOptionsrA  NrB  r)   r(   r&   r  r    rC  r(   r  c                   ,    e Zd ZU eed<   eed<   eed<   y)r  rZ  r[  maxN)r    r[   r\   r^   rh   rq  r)   r(   r&   r  r    s    J
I	Hr(   r  c                   "    e Zd ZU dZed   ed<   y)RichTextFieldConfigzp
    Field configuration for `Rich text <https://airtable.com/developers/web/api/field-model#rich-text>`__.
    richTextr   NrB  r)   r(   r&   r  r    s     *
r(   r  c                   ,    e Zd ZU dZed   ed<   ded<   y)RollupFieldConfigzj
    Field configuration for `Rollup <https://airtable.com/developers/web/api/field-model#rollup>__`.
    rollupr   RollupFieldOptionsrA  NrB  r)   r(   r&   r  r    rC  r(   r  c                   n    e Zd ZU dZee   ed<   eed<   dZee   ed<   dZ	ee
e      ed<   dZed   ed<   y)r  Nr  ra  rb  rG  r  r  )r    r[   r\   r  r
   r^   rh   r   rb  rG  r   r  r)   r(   r&   r  r    sH    .2hsm2N*.(3-.04(49-4&*FH]#*r(   r  c                   "    e Zd ZU dZed   ed<   y)SingleCollaboratorFieldConfigzv
    Field configuration for `Collaborator <https://airtable.com/developers/web/api/field-model#collaborator>`__.
    singleCollaboratorr   NrB  r)   r(   r&   r  r    s     &
''r(   r  c                   "    e Zd ZU dZed   ed<   y)SingleLineTextFieldConfigzx
    Field configuration for `Single line text <https://airtable.com/developers/web/api/field-model#simpletext>`__.
    singleLineTextr   NrB  r)   r(   r&   r  r    r  r(   r  c                   ,    e Zd ZU dZed   ed<   ded<   y)SingleSelectFieldConfigzq
    Field configuration for `Single select <https://airtable.com/developers/web/api/field-model#select>`__.
    singleSelectr   r  rA  NrB  r)   r(   r&   r  r    s     .
!!''r(   r  c                   4    e Zd ZU ed   ed<    G d de      Zy)r  SingleSelectFieldOptions.Choicechoicesc                   6    e Zd ZU eed<   eed<   dZee   ed<   y)r  r1   r2   NrZ  )r    r[   r\   r^   rh   rZ  r
   r)   r(   r&   ChoicezSingleSelectFieldOptions.Choice  s    	#x}#r(   r  N)r    r[   r\   r   rh   r   r  r)   r(   r&   r  r    s    344$ $r(   r  c                   "    e Zd ZU dZed   ed<   y)UrlFieldConfigzh
    Field configuration for `Url <https://airtable.com/developers/web/api/field-model#urltext>`__.
    r~   r   NrB  r)   r(   r&   r  r    s     %.r(   r  c                   :    e Zd ZU dZeed<   dZeeee	f      ed<   y)UnknownFieldConfigz
    Field configuration class used as a fallback for unrecognized types.
    This ensures we don't raise pydantic.ValidationError if Airtable adds new types.
    r   NrA  )
r    r[   r\   r]   r^   rh   rA  r
   r   r   r)   r(   r&   r  r    s%    
 I(,GXd38n%,r(   r  c                   6    e Zd ZU eed<   eed<   dZee   ed<   y)_FieldSchemaBaser1   r2   Nr   )r    r[   r\   r^   rh   r   r
   r)   r(   r&   r  r    s     	G
I!%K#%r(   r  z>meta/bases/{base.id}/tables/{table_schema.id}/fields/{self.id}r  c                       e Zd ZdZy)AITextFieldSchemazd
    Field schema for `AI text <https://airtable.com/developers/web/api/field-model#aitext>`__.
    Nr   r)   r(   r&   r  r  o      r(   r  c                       e Zd ZdZy)AutoNumberFieldSchemazl
    Field schema for `Auto number <https://airtable.com/developers/web/api/field-model#autonumber>`__.
    Nr   r)   r(   r&   r  r  u  r  r(   r  c                       e Zd ZdZy)BarcodeFieldSchemaze
    Field schema for `Barcode <https://airtable.com/developers/web/api/field-model#barcode>`__.
    Nr   r)   r(   r&   r  r  {  r  r(   r  c                       e Zd ZdZy)ButtonFieldSchemazc
    Field schema for `Button <https://airtable.com/developers/web/api/field-model#button>`__.
    Nr   r)   r(   r&   r  r    r  r(   r  c                       e Zd ZdZy)CheckboxFieldSchemazg
    Field schema for `Checkbox <https://airtable.com/developers/web/api/field-model#checkbox>`__.
    Nr   r)   r(   r&   r  r    r  r(   r  c                       e Zd ZdZy)CountFieldSchemaza
    Field schema for `Count <https://airtable.com/developers/web/api/field-model#count>`__.
    Nr   r)   r(   r&   r  r    r  r(   r  c                       e Zd ZdZy)CreatedByFieldSchemazj
    Field schema for `Created by <https://airtable.com/developers/web/api/field-model#createdby>`__.
    Nr   r)   r(   r&   r  r    r  r(   r  c                       e Zd ZdZy)CreatedTimeFieldSchemazn
    Field schema for `Created time <https://airtable.com/developers/web/api/field-model#createdtime>`__.
    Nr   r)   r(   r&   r  r    r  r(   r  c                       e Zd ZdZy)CurrencyFieldSchemazm
    Field schema for `Currency <https://airtable.com/developers/web/api/field-model#currencynumber>`__.
    Nr   r)   r(   r&   r  r    r  r(   r  c                       e Zd ZdZy)DateFieldSchemazc
    Field schema for `Date <https://airtable.com/developers/web/api/field-model#dateonly>`__.
    Nr   r)   r(   r&   r  r    r  r(   r  c                       e Zd ZdZy)DateTimeFieldSchemazo
    Field schema for `Date and time <https://airtable.com/developers/web/api/field-model#dateandtime>`__.
    Nr   r)   r(   r&   r	  r	    r  r(   r	  c                       e Zd ZdZy)DurationFieldSchemazm
    Field schema for `Duration <https://airtable.com/developers/web/api/field-model#durationnumber>`__.
    Nr   r)   r(   r&   r  r    r  r(   r  c                       e Zd ZdZy)EmailFieldSchemaza
    Field schema for `Email <https://airtable.com/developers/web/api/field-model#email>`__.
    Nr   r)   r(   r&   r  r    r  r(   r  c                       e Zd ZdZy)ExternalSyncSourceFieldSchemazl
    Field schema for `Sync source <https://airtable.com/developers/web/api/field-model#syncsource>`__.
    Nr   r)   r(   r&   r  r    r  r(   r  c                       e Zd ZdZy)FormulaFieldSchemaze
    Field schema for `Formula <https://airtable.com/developers/web/api/field-model#formula>`__.
    Nr   r)   r(   r&   r  r    r  r(   r  c                       e Zd ZdZy)LastModifiedByFieldSchemazu
    Field schema for `Last modified by <https://airtable.com/developers/web/api/field-model#lastmodifiedby>`__.
    Nr   r)   r(   r&   r  r    r  r(   r  c                       e Zd ZdZy)LastModifiedTimeFieldSchemazy
    Field schema for `Last modified time <https://airtable.com/developers/web/api/field-model#lastmodifiedtime>`__.
    Nr   r)   r(   r&   r  r    r  r(   r  c                       e Zd ZdZy)ManualSortFieldSchemazF
    Field schema for ``manualSort`` field type (not documented).
    Nr   r)   r(   r&   r  r    r  r(   r  c                       e Zd ZdZy)MultilineTextFieldSchemazm
    Field schema for `Long text <https://airtable.com/developers/web/api/field-model#multilinetext>`__.
    Nr   r)   r(   r&   r  r    r  r(   r  c                       e Zd ZdZy)MultipleAttachmentsFieldSchemazt
    Field schema for `Attachments <https://airtable.com/developers/web/api/field-model#multipleattachment>`__.
    Nr   r)   r(   r&   r  r    r  r(   r  c                       e Zd ZdZy) MultipleCollaboratorsFieldSchemaz~
    Field schema for `Multiple Collaborators <https://airtable.com/developers/web/api/field-model#multicollaborator>`__.
    Nr   r)   r(   r&   r  r    r  r(   r  c                       e Zd ZdZy)MultipleLookupValuesFieldSchemazc
    Field schema for `Lookup <https://airtable.com/developers/web/api/field-model#lookup>__`.
    Nr   r)   r(   r&   r  r    r  r(   r  c                       e Zd ZdZy)MultipleRecordLinksFieldSchemazw
    Field schema for `Link to another record <https://airtable.com/developers/web/api/field-model#foreignkey>__`.
    Nr   r)   r(   r&   r!  r!    r  r(   r!  c                       e Zd ZdZy)MultipleSelectsFieldSchemazq
    Field schema for `Multiple select <https://airtable.com/developers/web/api/field-model#multiselect>`__.
    Nr   r)   r(   r&   r#  r#    r  r(   r#  c                       e Zd ZdZy)NumberFieldSchemazs
    Field schema for `Number <https://airtable.com/developers/web/api/field-model#decimalorintegernumber>`__.
    Nr   r)   r(   r&   r%  r%    r  r(   r%  c                       e Zd ZdZy)PercentFieldSchemazk
    Field schema for `Percent <https://airtable.com/developers/web/api/field-model#percentnumber>`__.
    Nr   r)   r(   r&   r'  r'    r  r(   r'  c                       e Zd ZdZy)PhoneNumberFieldSchemaza
    Field schema for `Phone <https://airtable.com/developers/web/api/field-model#phone>`__.
    Nr   r)   r(   r&   r)  r)    r  r(   r)  c                       e Zd ZdZy)RatingFieldSchemazc
    Field schema for `Rating <https://airtable.com/developers/web/api/field-model#rating>`__.
    Nr   r)   r(   r&   r+  r+    r  r(   r+  c                       e Zd ZdZy)RichTextFieldSchemazi
    Field schema for `Rich text <https://airtable.com/developers/web/api/field-model#rich-text>`__.
    Nr   r)   r(   r&   r-  r-    r  r(   r-  c                       e Zd ZdZy)RollupFieldSchemazc
    Field schema for `Rollup <https://airtable.com/developers/web/api/field-model#rollup>__`.
    Nr   r)   r(   r&   r/  r/    r  r(   r/  c                       e Zd ZdZy)SingleCollaboratorFieldSchemazo
    Field schema for `Collaborator <https://airtable.com/developers/web/api/field-model#collaborator>`__.
    Nr   r)   r(   r&   r1  r1  #  r  r(   r1  c                       e Zd ZdZy)SingleLineTextFieldSchemazq
    Field schema for `Single line text <https://airtable.com/developers/web/api/field-model#simpletext>`__.
    Nr   r)   r(   r&   r3  r3  )  r  r(   r3  c                       e Zd ZdZy)SingleSelectFieldSchemazj
    Field schema for `Single select <https://airtable.com/developers/web/api/field-model#select>`__.
    Nr   r)   r(   r&   r5  r5  /  r  r(   r5  c                       e Zd ZdZy)UrlFieldSchemaza
    Field schema for `Url <https://airtable.com/developers/web/api/field-model#urltext>`__.
    Nr   r)   r(   r&   r7  r7  5  r  r(   r7  c                       e Zd ZdZy)UnknownFieldSchemaz
    Field schema class used as a fallback for unrecognized types.
    This ensures we don't raise pydantic.ValidationError if Airtable adds new types.
    Nr   r)   r(   r&   r9  r9  ;  s    r(   r9  r   c                       e Zd ZU eed<   y)_HasFieldSchemafield_schemaN)r    r[   r\   r   rh   r)   r(   r&   r;  r;  m  s    r(   r;  r$   c                 D    t         j                  d| i      j                  S )zo
    Given a ``dict`` representing a field schema,
    parse it into the appropriate FieldSchema subclass.
    r<  )r;  model_validater<  )r$   s    r&   parse_field_schemar?  q  s     
 ))>3*?@MMMr(   )r   r   	functoolsr   typingr   r   r   r   r	   r
   r   r   r   r*   typing_extensionsr   pyairtable.api.typesr   pyairtable.models._baser   r   r   r   r   r   r+   rN   rj   dictr   r^   r,   r5   r7   r`   rl   r   r   r   r   ry   rz   r   r   r   r   r   r{   r   r   r   r  r  r   r5  r>  r@  rK  rO  rR  rU  rW  r]  r_  rd  rg  rk  rm  rs  ru  rz  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rh   r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r  r  r  r  r  r!  r#  r%  r'  r)  r+  r-  r/  r1  r3  r5  r7  r9  r   r;  r?  varsr)   r(   r&   <module>rG     s	      U U U  ' 4  Thnnd3hnnd3	$# 	$ 	$ 	$%d2h %C %B % VI\ VIrM *'W,B 'WT( (V. .<6-m$/	6-r2%K 2, ] !7 - 3%D 35M:)] ):%N^1L %NP} M 4] 4n-'+:	-'` @" "  M    $- $= 
!} !/ /
= !] !$- $= 
 m  3} 3$- $= $- $= } (M (# #+- +$ $,- ,M= M M  #} #/] /m +} +0m 0+} +/] /7m 7( (" " " "!] !" " - " "+ +(M ($ $(m ($} $] - -&m$H	& F " """ " 	"
 " " " " " " " " "" " "   !"" #"$ %"& #'"( %)"* $+", #-". /"0 1"2 3"4 5"6 7"8 9": ;"< "="> ?"@ A"B C"D E"$Y $N(*; ,.C )+= (*; *,? ')9 +-A -/E *,? & *,? *,? ')9 $46S )+=  02K "24O ,.C /1I %57U '79Y &68W %57U !13M (*; )+= -/E (*; *,? (*; $46S  02K .0G %~ )+=  " """ " 	"
 " " " " " " " " "" " "   !"" #"$ %"& #'"( %)"* $+", #-". /"0 1"2 3"4 5"6 7"8 9": ;"< "="> ?"@ A"B C"D E"$Y $Vm NDcN N{ N tv r(   