o
    6d                    @   s  d Z ddlmZ ddlmZ ddlmZ ddlm	Z	 ddlm
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ G dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZ ee Z!G dd dejZ"ee"Z#G dd dejZ$ee$Z%G d d! d!e$Z&ee&Z'G d"d# d#e&Z(ee(Z)G d$d% d%ejZ*ee*Z+G d&d' d'ejZ,ee,Z-G d(d) d)ejZ.ee.Z/G d*d+ d+ejZ0e1e0Z2G d,d- d-e0Z3ee3Z4G d.d/ d/ejZ5ee5Z6G d0d1 d1ejZ7ee7Z8G d2d3 d3ejZ9ee9Z:G d4d5 d5ejZ;ee;Z<G d6d7 d7ejZ=ee=Z>G d8d9 d9e=Z?ee?Z@G d:d; d;ejZAeeAZBG d<d= d=ejZCeeCZDG d>d? d?ejZEe1eEZFG d@dA dAeEZGeeGZHG dBdC dCejZIeeIZJG dDdE dEejZKeeKZLG dFdG dGejZMeeMZNG dHdI dIejZOeeOZPG dJdK dKejZQeeQZRG dLdM dMejZSeeSZTG dNdO dOeEZUeeUZVG dPdQ dQejZWeeWZXG dRdS dSejZYeeYZZG dTdU dUejZ[ee[Z\G dVdW dWejZ]ee]Z^G dXdY dYejZ_ee_Z`G dZd[ d[ejZaeeaZbG d\d] d]ejZceecZdG d^d_ d_ejZeeeeZfG d`da daejZgeegZhG dbdc dcegZieeiZjG ddde deejZkeekZlG dfdg dgejZmeemZnG dhdi diejZoeeoZpG djdk dkejZqeeqZrG dldm dmejsZteetZuG dndo doejZveevZwG dpdq dqevZxeexZyG drds dsejZzeezZ{G dtdu duejZ|ee|Z}G dvdw dwejZ~ee~ZG dxdy dyevZeeZG dzd{ d{ejZeeZG d|d} d}e	jZeeZG d~d dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd deZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd deZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeáZG dd dejZeešZG dd dejZeeǡZG dd dejZeeɡZG ddÄ dejZeeˡZG ddń dejZee͡ZG ddǄ dejZeeϡZG ddɄ dejZeeѡZG dd˄ dejZeeӡZG dd̈́ dejZeeաZG ddτ degZeeסZG ddф dejZee١ZG ddӄ dejZeeۡZG ddՄ dejZeeݡZG ddׄ de0ZeeߡZG ddل dejZeeZG ddۄ dejZeeZG dd݄ dejZeeZG dd߄ dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd de	jZeeZG dd dejZeeZG dd dejZeeZG dd degZeeZG dd dejZeeZG dd dejZeeZ G dd dejZeeZG dd deZeeZG dd dejZeeZG dd deZeeZG d d de	jZ	ee	Z
G dd de	jZeeZG dd dejZeeZG dd de=ZeeZG dd	 d	ejZeeZG d
d dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd dejZeeZG dd deZeeZG dd dejZ ee Z!G dd dejZ"ee"Z#G dd dejZ$ee$Z%G dd dejZ&ee&Z'G dd dejZ(ee(Z)G d d! d!ejZ*ee*Z+G d"d# d#ejZ,ee,Z-G d$d% d%ejZ.ee.Z/G d&d' d'ejZ0ee0Z1G d(d) d)ejZ2ee2Z3G d*d+ d+ejZ4ee4Z5G d,d- d-ejZ6ee6Z7G d.d/ d/ejZ8ee8Z9G d0d1 d1ejZ:ee:Z;G d2d3 d3ejZ<ee<Z=G d4d5 d5ejZ>ee>Z?G d6d7 d7ejZ@ee@ZAG d8d9 d9ejZBeeBZCG d:d; d;ejZDeeDZEG d<d= d=ejZFeeFZGG d>d? d?ejZHeeHZIG d@dA dAevZJeeJZKG dBdC dCeJZLeeLZMG dDdE dEejZNeeNZOG dFdG dGejZPeePZQG dHdI dIejZReeRZSG dJdK dKejZTeeTZUejVdLdMZWelZXekZYejZZZej[Z[ejVdLdNdOZ\ej]Z]ej^Z^ej_Z`ejaZbec e_dec e_eec e_fejdejeejfdPe_gedQe_hedRe_iedSe_jec e_kec e_lec e_mec e_nec e_oec e_fejkejlejmejnejoejfdTe_gedUe_pedVe_qedWe_redXe_sedYe_tedSe_jec e_kec e_uec e_fejkejuejfdZe_gedUe_ped[e_vedSe_je\ejw_xeyeԡejz_xe{eV ej|_xe} ej~_xeej_xe} ej_xeg d\e_d]ejwjxfd^ejzjxfd_ej|jxfd`ej~jxfdaejjxfdbejjxfge_e-e_e+e_ec e_ec e_ec e_fejejejejejfdce_gedde_edee_edSe_je
jej_xeye!ejz_xe} ej~_xe{ejVdLdMej|_xeg dfe_dgejjxfd^ejzjxfd`ej~jxfd_ej|jxfge_ee_ec e_ec e_e#e_ec e_e e_e e_ec e_ec e_ec e_ec e_ec e_ec e_ec e_fejejejejejejejejejejejejejejfdhe_gedie_edje_edke_edde_edle_edme_edne_edoe_edpe_edSe_jee j_xee j_xedqdage _dqe jjxfdae jjxfge _ec e"_eWe"_e
je"_eWe"_ec e"_ec e"_ec e"_fe"je"je"je"je"je"je"jfdre"_ge"dse"_e"dte"_e"due"_e"dSe"_jec e$_ec e$_ec e$_e$je$je$jdve$_ge$dwe$_e$dxe$_e$dye$_ec e&_ec e&_ec e&_ec e&_ec e&_fe&je&je&je&je&jfdze&_ge&jge$jg e&d{e&_e&d|e&_e&d}e&_e&d~e&_e&dSe&_ji e(_ge(jge&jg eV e*j_xedge*_de*jjxfge*_e e,j_xeye+e,j_xeddge,_de,jjxfde,jjxfge,_e
je.j_xeV e.j_xee.j_xeg de._dge.jjxfde.jjxfde.jjxfge._eV e0j_xeSe0j_xe{e
je0j_xeg de0_e0je0_de0jjxfde0jjxfde0jjxfge0_e0je0_ee4de0_eߐdefe3de4fie0_Ɛde0_ǐeg e3_e0je3jáe3_g e3_e0je3j e3_eV e5jɐ_xe} e5jʐ_xe{ee5jː_xeg de5_de5jɐjxfde5jʐjxfde5jːjxfge5_eje7_ec e7_fe7je7jfde7_ge7dSe7_je]e9jɐ_xe{e'e9jΐ_xeddge9_de9jɐjxfde9jΐjxfge9_eje;_ec e;_e{e#e;_Аe)e;_ec e;_e;je;je;je;je;jҐde;_ge;de;_e;de;_e{ee=j_xeyee=jՐ_xe{e/e=j֐_xee=jא_xe{e
je=jؐ_xeyee=jِ_xe} e=jڐ_xeg de=_dae=jjxfde=jՐjxfde=j֐jxfde=jאjxfde=jؐjxfde=jِjxfde=jڐjxfge=_e=jȐeg e?_e=jg  e?_ec eA_ec eA_ec eA_ec eA_ec eA_ec eA_ec eA_ec eA_ec eA_ec eA_ec eA_ec eA_ec eA_feAjeAjeAjeAjeAjeAjeAjeAjeAjeAjeAjeAjeAjfdeA_geAdeA_eAdeA_eAdeA_eAdeA_eAdeA_eAdeA_eAdeA_eAdeA_eAdeA_eAdeA_eAdeA_eAdeA_eAdSeA_jejZeC_ejZeC_ejZeC_ec eC_feCjeCjeCjeCjfdeC_geCdSeC_jeV eEj_xe{eZeEj_xeV eEj_xe{e
jeEj_xe{eV eEj_xeeEjِ_xe{e/eEj_xe{e`eEj_xeg deE_eEjeE_deEjjxfdeEjjxfdeEjjxfdeEjjxfdeEjjxfdeEjِjxfdeEjjxfdeEjjxfgeE_eEjeE_eHeVdeE_eGdeHfeUdeVfieE_ƐdeE_e
jeGj_xe
jeGj_xe^eGj_xe eGj_xeg deG_eEjeGjáeG_deGjjxfdeGjjxfdeGjjxfdeGjjxfgeG_eEjeGj eG_ec eI_ec eI_e+eI_eeI_ec eI_feIjeIjeIjeIjeIjfdeI_geIdeI_ eIdoeI_eIdSeI_je{eeK_eJeK_eKjeKjdeK_geeMj_xeLeMj_xe{eV eMj_xe{eyeV eMj_xeg deM_dqeMjjxfdeMjjxfdeMjjxfdeMjjxfgeM_eeO_eJeO_ec eO_feOjeOjeOjfdeO_geOdSeO_jeBeQj_xe} eQj_xe{eeQj_xeg deQ_deQjjxfdeQjjxfdeQjjxfgeQ_ec eS_	ec eS_ec eS_ec eS_ec eS_ec eS_ec eS_ec eS_ec eS_
ec eS_ec eS_ec eS_ec eS_ec eS_ec eS_feSj	eSjeSjeSjeSjeSjeSjeSjeSj
eSjeSjeSjeSjeSjeSjfdÜeS_geSdăeS_eSdeS_eSdeS_eSdeS_eSdeS_eSdeS_eSdeS_eSdeS_eSdŃeS_eSdeS_eSdƃeS_eSdeS_eSdeS_eSdǃeS_eSdSeS_jeg eU_eEjeUjáeU_g eU_eEjeUj eU_eTeWj_xe} eWj_xe{eeWj_xeg deW_deWjjxfdeWjjxfdeWjjxfgeW_e{eҡeYj_xe{eҡeYj_xeeYj_xe%eYj_xe{eQeYj_xeg dȢeY_deYjjxfdeYjjxfdeYjjxfdeYjjxfdeYjjxfgeY_e\e[jw_xe{eyeBe[j_xed]dge[_d]e[jwjxfde[jjxfge[_ejye\dϐdЍe]j_xe{eyeBe]j_xedѐdge]_de]jjxfde]jjxfge]_e\e_jw_xede_j_xed]dge__d]e_jwjxfde_jjxfge__e-ea_e+ea_ec ea_feajeajeajfdҜea_geadSea_jeec_e+ec_ec ec_fecjecjecjfdӜec_gecdSec_je
jeej_xe{eyeTeej_xedgdgee_dgeejjxfdeejjxfgee_ec eg_ec eg_ec eg_ec eg_fegjegjegjegjfdԜeg_gegdՃeg_egdփeg_egd׃eg_egdSeg_jec ei_deijiei_geijgegjg eid؃ei_eV ekj_xe{e[ekjɐ_xe{eV ekj _xeg d٢ek_dekjjxfdekjɐjxfdekj jxfgek_e{eV emjɐ_xedgem_demjɐjxfgem_ej!eo_ec eo_feojeojfdeo_geodSeo_jeye2eqj"_xedgeq_deqj"jxfgeq_ej#etj$_xe} etj%_xe} etj&_xe} etj'_xejsjȐeg dܢet_ejsjdetj$jxfdetj%jxfdetj&jxfdetj'jxfg et_eevj(_xe{eyeСevj)_xe{eV evj*_xe} evj+_xeg dev_devj(jxfdevj)jxfdevj*jxfdevj+jxfgev_euexj,_xevjȐedgex_evjdexj,jxfg ex_eV ezj-_xe{eV ezj._xeddgez_dezj-jxfdezj.jxfgez_e e|j/_xe e|j0_xe e|j1_xeg de|_de|j/jxfde|j0jxfde|j1jxfge|_e
je~_2ec e~_fe~j2e~jfde~_ge~dSe~_jeej3_xe{eOej4_xevjȐeddge_evjdej3jxfdej4jxfg e_e?e_5ee_6ee_7ec e_fej5ej6ej7ejfde_gedSe_jec e_8ee_9ej8ej9de_gejge	jjg ede_:ec e_mec e_lec e_fejmejlejfde_gedWe_redVe_qedSe_jec e_;ec e_<ec e_=ec e_>ec e_?ec e_@ec e_fej;ej<ej=ej>ej?ej@ejfde_gede_Aede_Bede_Cede_Dede_Eede_FedSe_jec e_ec e_Gec e_ec e_ec e_Hec e_fejejGejejejHejfde_gedwe_ede_Ied}e_edye_ed^e_zedSe_jec e_Jec e_Kec e_Lec e_Mec e_Nec e_Oec e_fejJejKejLejMejNejOejfde_gede_Pede_Qed e_Rede_Sede_Tede_UedSe_ji e_gejgejg eej_xe} ejV_xe{eejW_xeg de_dejjxfdejVjxfdejWjxfge_ec e_=e
je_?ec e_fej=ej?ejfde_gede_CedSe_jec e_>eV e_@ec e_fej>ej@ejfde_gede_DedSe_jeej_xe} ej_xe{eej_xeg de_dejjxfdejjxfdejjxfge_e{e'ejX_xe{e%ejY_xe} ejZ_xe{e!ej[_xe{eej\_xe{eej]_xeyeUej^_xe} ej__xe} ej`_xe} eja_xe} ejb_xe} ejc_xe} ejd_xe} eje_xe{eyeejՐ_xe{e} ejf_xe{e} ejg_xe{e} ejh_xe{e} eji_xeg d	e_d
ejXjxfdejYjxfdejZjxfdej[jxfdej\jxfdej]jxfdej^jxfdej_jxfdej`jxfdejajxfdejbjxfdejcjxfdejdjxfdejejxfdejՐjxfdejfjxfdejgjxfdejhjxfdejijxfge_e{eej_xe{eej_xe{eejؐ_xe{eej_xeg de_daejjxfdejjxfdejؐjxfdyejjxfge_e\ejw_xe{eyeΡej_xe} ejj_xejdLddejk_xeg de_d]ejwjxfdejjxfd ejjjxfd!ejkjxfge_ejye\dϐdЍej_xejd"d#ejk_xedѐd!ge_dejjxfd!ejkjxfge_e\ejw_xeej_xed]dge_d]ejwjxfdejjxfge_eV ejl_xed$ge_d$ejljxfge_e-e_e+e_ec e_mec e_fejejejmejfd%e_ged&e_nedSe_jeejz_xe ejo_xed^d'ge_d^ejzjxfd'ejojxfge_e-e_e+e_ec e_fejejejfdҜe_gedSe_jee_pe+e_ec e_fejpejejfd(e_gedSe_jejdLddejk_xe{eyeBej_xed!dge_d!ejkjxfdejjxfge_eV ejl_xed$ge_d$ejljxfge_e-e_ec e_mec e_fejejmejfd)e_ged&e_nedSe_jeyeejq_xe{eV ejl_xed*d$ge_d*ejqjxfd$ejljxfge_e{eyeΡej_xejdLd+dejk_xedΐd!ge_dejjxfd!ejkjxfge_e
jej_xejȐedgge_ejdgejjxfg e_eV ejl_xed$ge_d$ejljxfge_ee_ec e_mec e_fejejmejfd,e_ged&e_nedSe_jejdLd+dejk_xe{eyeTej_xed!dge_d!ejkjxfdejjxfge_eV ejl_xed$ge_d$ejljxfge_ec e_mec e_fejmejfd-e_ged&e_nedSe_jeyeeÐjq_xe{eV eÐjl_xed*d$geÐ_d*eÐjqjxfd$eÐjljxfgeÐ_e{e]eŐjɐ_xe{eV eŐjl_xe{e} eŐjr_xeg d.eŐ_deŐjɐjxfd$eŐjljxfd/eŐjrjxfgeŐ_ejeǐ_ec eǐ_sec eǐ_feǐjeǐjseǐjfd0eǐ_geǐd1eǐ_teǐdSeǐ_jeyeFeɐj"_xe} eɐju_xe{eV eɐjl_xeg d2eɐ_deɐj"jxfd3eɐjujxfd$eɐjljxfgeɐ_e{eeːj_xe{eV eːjv_xe{eyeޡeːjw_xeg d4eː_daeːjjxfd5eːjvjxfd6eːjwjxfgeː_ec e͐_ec e͐_xec e͐_yec e͐_zec e͐_{ec e͐_|ec e͐_fe͐je͐jxe͐jye͐jze͐j{e͐j|e͐jfd7e͐_ge͐dƃe͐_e͐d8e͐_}e͐d9e͐_~e͐d:e͐_e͐d;e͐_e͐d<e͐_e͐dSe͐_jeeϐj_xe} eϐj_xe{eeϐj_xeg deϐ_deϐjjxfdeϐjjxfdeϐjjxfgeϐ_ec eѐ_Gec eѐ_ec eѐ_feѐjGeѐjeѐjfd=eѐ_geѐdeѐ_Ieѐd>eѐ_eѐdSeѐ_jeWeӐ_e
jeӐ_2ec eӐ_feӐjeӐj2eӐjfd?eӐ_geӐdSeӐ_jeV eՐj_xe'eՐjΐ_xe} eՐj_xeg d@eՐ_deՐjjxfdeՐjΐjxfdAeՐjjxfgeՐ_e)eא_ec eא_eאjeאjϐdBeא_geאjgegjg eאdeא_e
jeِj_xedggeِ_dgeِjjxfgeِ_eeې_ec eې_e}eې_ec eې_ec eې_ec eې_ec eې_feېjeېjeېjeېjeېjeېjeېjfdCeې_geېdDeې_eېdEeې_eېdoeې_eېdFeې_eېdSeې_jeV eݐj_xe
jeݐj_xeyeСeݐj)_xeV eݐjɐ_xeg dGeݐ_dHeݐjjxfdgeݐjjxfdeݐj)jxfdeݐjɐjxfgeݐ_eV eߐjɐ_xedgeߐ_e0jeߐjáeߐ_deߐjɐjxfgeߐ_e0jeߐj eߐ_ec e_ec e_ejejdIe_ged]e_wedJe_ec e_ec e_ec e_ec e_ec e_ec e_ec e_ec e_ec e_Oec e_Lec e_Nec e_Mec e_ec e_e{e_ec e_fi dKejdLejdMejdNejdOejdPejdQejdRejdejOd ejLdejNdejMdSejdTejdmejdSejfe_gedKe_edLe_edMe_edNe_edOe_edPe_edQe_edRe_ede_Ued e_Rede_Tede_SedSe_edTe_edSe_je\ejw_xed]ge_d]ejwjxfge_e+e_ec e_ec e_ec e_fejejejejfdUe_gedVe_edoe_edSe_je
jej_xe} ej_xedgdge_dgejjxfdejjxfge_ee_ec e_ec e_ec e_ec e_ec e_ec e_ec e_fejejejejejejejejfdWe_gedXe_edYe_edVe_edne_edoe_edZe_edSe_je\ejw_xeej_xed]dqge_d]ejwjxfdqejjxfge_e-e_e+e_ee_ec e_fejejejejfd[e_gedSe_je
jej_xeej_xe} ej_xeg d\e_dgejjxfdqejjxfdejjxfge_ee_ee_ec e_ec e_ec e_ec e_ec e_ec e_fejejejejejejejejfd]e_gedXe_edVe_edne_edoe_ed^e_edSe_jee_8ee_9ej8ej9de_gejge	jjg ec e_mec e_lec e_ec e_ec e_fejmejlejejejfd_e_gedWe_redVe_qed`e_edae_edSe_jeV ej_xedge_dejjxfge_ec e_dbejie_gejgegjg edbe_eej_xe
jej_xedcdgge_dcejjxfdgejjxfge_ee_ec e_ec e_fejejejfdde_gedoe_edSe_je{eej_xe} ej_xe{eҡej_xejejɐ_xe{e%ej_xe{eQej_xeej_xeg dee_dːejjxfdfejjxfdɐejjxfdejɐjxfd̐ejjxfd͐ejjxfdcejjxfge_e{eyeTej_xe{eej_xejȐedΐdgge_ejdΐejjxfdgejjxfg e_ec e_ee_ec e_ec e_ec e_fejejejejejfdhe_gedie_edie_edje_edSe_jec e_doejie_gejgejg edoe_ee	_8ee	_9e	j8e	j9de	_ge	jge	jjg ee_8dej8ie_gejge	jjg ec e_ec e_ec e_ec e_ec e_ec e_ec e_ec e_ec e_Đee_ec e_ec e_ec e_ec e_ec e_ec e_ec e_fi dkejdDejdlejdmejdnejdoejdpejdqejÓdrejēdsejœdtejƓduejǓdvejȓdwejɓdxejʓdyej˓dSejfe_gedke_̐edDe_edle_͐edme_ΐedne_ϐedoe_Аedpe_ѐedqe_Ґedre_Ӑedte_Ԑedue_Րedve_֐edwe_אedxe_ؐedye_ِedSe_je{e-ejڐ_xeV ej_xe=jȐedzdge_e=jdzejڐjxfdejjxfg e_eyeMej_xeyeyejې_xeyeejܐ_xe{eV ejl_xeg d{e_d|ejjxfd}ejېjxfd~ejܐjxfd$ejljxfge_e{eej(_xejݐej_xe{e@ejސ_xe{eejߐ_xeV ej_xe{eyeV ej_xe{ej_ej_xe{e
jej_xe{eV ej_xe{eV ej_xe{eyeRej)_xeZej_xeV ej_xe{e
jej_xeg de_dej(jxfdejjxfdejސjxfdejߐjxfdejjxfdejjxfdejjxfdejjxfdejjxfdejjxfdej)jxfdejjxfdejjxfdejjxfge_ec e_ec e_ec e_ec e_ec e_fejejejejejfde_gede_ede_edie_ede_edSe_jec e_ec e_e̐e_ec e_fejejejejfde_gede_ede_edSe_jeyeKej_xeyeyejې_xeyeejܐ_xe{eV ejl_xeg d{e_d|ejjxfd}ejېjxfd~ejܐjxfd$ejljxfge_eej(_xe} ej_xe} ej_xe{eyeV ej_xe{ej_ej_xe{e
jej_xe{eV ej_xe{eV ej_xeg de_dej(jxfdejjxfdejjxfdejjxfdejjxfdejjxfdejjxfdejjxfge_e{eejߐ_xeV ej_xe{eyeXej)_xeZej_xeV ej_xe
jej_xe
jej_xeej_xejȐeg de_ejdejߐjxfdejjxfdej)jxfdejjxfdejjxfdgejjxfdejjxfdcejjxfg e_ec e _ec e _ec e _ec e _ec e _ec e _fe je je je je je jfde _ge de _e de _e de _e dxe _e de _e dSe _jeFe"_ec e"_fe"je"jfde"_ge"dSe"_jec e$_ec e$_Gec e$_Hec e$_fe$je$jGe$jHe$jfde$_ge$d>e$_e$de$_Ie$d^e$_ze$dSe$_je{e} e&jh_xe{eV e&j _xe{e
je&j_xe{ee&j_xe{ee&j_xe{e%e&jY_xe{e} e&ja_xeg de&_de&jhjxfdڐe&j jxfde&jjxfde&jjxfde&jjxfde&jYjxfde&jajxfge&_ec e(_ec e(_e(je(jde(_ge(de(_e(de(_ec e*_ec e*_ec e*_ec e*_ec e*_ec e*_fe*je*je*je*jĐe*jȐe*jfde*_ge*doe*_e*de*_ e*de*_e*dre*_Ӑe*dve*_֐e*dSe*_jec e,_ec e,_fe,je,jfde,_ge,die,_e,dSe,_je`e.j_xeV e.j_xe{eV e.j_xeg de._de.jjxfde.jjxfde.jjxfge._e
je0j_xeWe0j_xedgdge0_dge0jjxfde0jjxfge0_ee2_ec e2_ec e2_ec e2_ec e2_ec e2_ec e2_ec e2_fe2je2je2je2je2je2je2je2jfde2_ge2de2_e2de2_	e2de2_
e2de2_e2dne2_e2doe2_e2dSe2_je
je4j_xedgge4_dge4jjxfge4_ee6_ec e6_ec e6_ec e6_fe6je6je6je6jfde6_ge6doe6_e6de6_e6dSe6_je\e8jw_xed]ge8_d]e8jwjxfge8_e-e:_e+e:_ec e:_fe:je:je:jfdҜe:_ge:dSe:_je
je<j_xe} e<j_xedgdge<_dge<jjxfdƐe<jjxfge<_ee>_ec e>_ec e>_ec e>_ec e>_fe>je>je>je>je>jfde>_ge>dne>_e>doe>_e>d^e>_e>dSe>_je\e@jw_xeԐe@j_xee@j_xeg de@_d]e@jwjxfdqe@jjxfdae@jjxfge@_e
jeBj_xeԐeBj_xeeBj_xeg deB_dgeBjjxfdqeBjjxfdaeBjjxfgeB_eeD_eeD_eeD_ec eD_ec eD_ec eD_feDjeDjeDjeDjeDjeDjfdeD_geDdmeD_eDdoeD_eDdSeD_je
jeFj_xe{eҡeFj_xe{eeFj_xe{eQeFj_xe{e%eFj_xe{eeFj_xe{eyeTeFj_xeg deF_dgeFjjxfdɐeFjjxfdːeFjjxfd͐eFjjxfd̐eFjjxfdgeFjjxfdΐeFjjxfgeF_eeH_ec eH_ec eH_ec eH_ec eH_ec eH_ec eH_feHjeHjeHjeHjeHjeHjeHjfdeH_geHdeH_eHdieH_eHdjeH_eHdoeH_eHdneH_eHdSeH_jeOeJj4_xevjȐedgeJ_evjdeJj4jxfg eJ_e{e
jeLj_xe{ejeLj_xeJjȐeddgeL_eJjdeLjjxfdeLjjxfg eL_ejeNj_xeV eNj_xeV eNj_xe} eNj'_xe{eV eNj_xeg deN_deNjjxfdeNjjxfdeNjjxfdeNj'jxfdeNjjxfgeN_ec eP_ec eP_ec eP_fePjePjePjfdeP_gePdeP_ePdeP_ePdSeP_jec eR_ec eR_ec eR_ec eR_ec eR_ec eR_feRjeRjeRjeRjeRjeRjfdeR_geRdweR_eRdxeR_eRdyeR_eRd{eR_eRd|eR_eRdSeR_je%eTj_xe)eTj_xe} eTjV_xe{eeTjW_xeg deT_deTjjxfdeTjjxfdeTjVjxfdeTjWjxfgeT_dej~_ejrej_dej_dej~_ejre j_de5jʐ_devj+_dejj_dejk_dejk_dejk_d+ejk_d+ejk_deՐj_dej_ejhej_dej_ejhej_ejhej_de<j_edĐdLdeeyeNeddŐdƐdǜZedȐdLdeec eddŐdƐdǜZedɐdLde	jee	j ddŐdƐdǜZ!edʐdLde	jee	j ddŐdƐdǜZ"edːdLde	je
e	j ddŐdƐdǜZ#ed̐dLde6ee8ddŐdƐdǜZ$ed͐dLde:eFe<ddŐdƐdǜZ%edΐdLde\eebddŐdƐdǜZ&edϐdLde^eye`e-ddŐdƐdǜZ'edАdLdefeeddŐdƐdǜZ(edѐdLdeXeFejddҐdӐdǜZ)edԐdLdeleFehdՐdŐdƐdǜZ*ed֐dLdenerepddŐdƐdǜZ+edאdLdeeeddŐdƐdǜZ,edؐdLdeeyee-ddŐdƐdǜZ-edِdLdeeeddŐdƐdǜZ.edڐdLdeeeddŐdƐdǜZ/edېdLdeeeddŐdƐdǜZ0edܐdLdeeec ddŐdƐdǜZ1edݐdLdeeeddŐdƐdǜZ2edސdLdeeec ddŐdƐdǜZ3edߐdLdeeeddŐdƐdǜZ4eddLdeee-ddŐdƐdǜZ5eddLdeeeddŐdƐdǜZ6eddLdeeeȐddŐdƐdǜZ7eddLdeeFeؐddŐdƐdǜZ8eddLdeڐeeܐddŐdƐdǜZ9eddLdeec eddŐdƐdǜZ:eddLdee	j;eddŐdƐdǜZ<eddLdeeLeddŐdƐdǜZ=eddLdeePeddŐdƐdǜZ>eddLdee	j?eddŐdƐdǜZ@eddLdeec eddŐdƐdǜZAedǐdLdeee ddŐdƐdǜZeddLdeeeddŐdƐdǜZBeddLde1ec e3ddŐdƐdǜZCeddLde5ec e7ddŐdƐdǜZDeddLde9ec e;ddŐdƐdǜZEeddLde=e	j;e?ddŐdƐdǜZFeddLdeAeeJddŐdƐdǜZGeddLdeCe̐eEddŐdƐdǜZHeddLdeGeeIddŐdƐdǜZIi dĐedȐedɐe!dʐe"dːe#d̐e$d͐e%dΐe&dϐe'dАe(dѐe)dԐe*d֐e+dאe,dؐe-dِe.dڐe/i dېe0dܐe1dݐe2dސe3dߐe4de5de6de7de8de9de:de<de=de>de@deAdǐeeBeCeDeEeFeGeHeIdZJdS (  zm
This namespace contains endpoints and data types for creating and managing shared links and shared folders.
    )unicode_literals)
stone_base)stone_validators)async_)common)files)
seen_state)team_common)users)users_commonc                       H   e Zd ZdZdZdZdZdZdd Zdd Z	dd	 Z
 fd
dZ  ZS )AccessInheritancea  
    Information about the inheritance policy of a shared folder.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.AccessInheritance.inherit: The shared folder inherits its
        members from the parent folder.
    :ivar sharing.AccessInheritance.no_inherit: The shared folder does not
        inherit its members from the parent folder.
    otherNc                 C   
   | j dkS )zN
        Check if the union tag is ``inherit``.

        :rtype: bool
        inheritZ_tagself r   fC:\Users\jesus\OneDrive\Desktop\erpjis_fastapi\backend\jisbackend\Lib\site-packages\dropbox/sharing.py
is_inherit,      
zAccessInheritance.is_inheritc                 C   r   )zQ
        Check if the union tag is ``no_inherit``.

        :rtype: bool
        
no_inheritr   r   r   r   r   is_no_inherit4   r   zAccessInheritance.is_no_inheritc                 C   r   zL
        Check if the union tag is ``other``.

        :rtype: bool
        r   r   r   r   r   r   is_other<   r   zAccessInheritance.is_otherc                       t t| ||| d S N)superr   _process_custom_annotationsr   Zannotation_typeZ
field_path	processor	__class__r   r   r   D      z-AccessInheritance._process_custom_annotations)__name__
__module____qualname____doc__
_catch_allr   r   r   r   r   r   r   __classcell__r   r   r"   r   r          r   c                       l   e Zd ZdZdZdZdZdZdZdZ	dZ
dd Zdd Zdd	 Zd
d Zdd Zdd Z fddZ  ZS )AccessLevela  
    Defines the access levels for collaborators.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.AccessLevel.owner: The collaborator is the owner of the shared
        folder. Owners can view and edit the shared folder as well as set the
        folder's policies using
        :meth:`dropbox.dropbox_client.Dropbox.sharing_update_folder_policy`.
    :ivar sharing.AccessLevel.editor: The collaborator can both view and edit
        the shared folder.
    :ivar sharing.AccessLevel.viewer: The collaborator can only view the shared
        folder.
    :ivar sharing.AccessLevel.viewer_no_comment: The collaborator can only view
        the shared folder and does not have any access to comments.
    :ivar sharing.AccessLevel.traverse: The collaborator can only view the
        shared folder that they have access to.
    r   Nc                 C   r   zL
        Check if the union tag is ``owner``.

        :rtype: bool
        ownerr   r   r   r   r   is_ownerm   r   zAccessLevel.is_ownerc                 C   r   zM
        Check if the union tag is ``editor``.

        :rtype: bool
        editorr   r   r   r   r   	is_editoru   r   zAccessLevel.is_editorc                 C   r   zM
        Check if the union tag is ``viewer``.

        :rtype: bool
        viewerr   r   r   r   r   	is_viewer}   r   zAccessLevel.is_viewerc                 C   r   )zX
        Check if the union tag is ``viewer_no_comment``.

        :rtype: bool
        viewer_no_commentr   r   r   r   r   is_viewer_no_comment   r   z AccessLevel.is_viewer_no_commentc                 C   r   )zO
        Check if the union tag is ``traverse``.

        :rtype: bool
        traverser   r   r   r   r   is_traverse   r   zAccessLevel.is_traversec                 C   r   r   r   r   r   r   r   r      r   zAccessLevel.is_otherc                    r   r   )r   r-   r   r    r"   r   r   r      r$   z'AccessLevel._process_custom_annotations)r%   r&   r'   r(   r)   r/   r2   r5   r7   r9   r   r0   r3   r6   r8   r:   r   r   r*   r   r   r"   r   r-   I   s     r-   c                       r   )AclUpdatePolicya/  
    Who can change a shared folder's access control list (ACL). In other words,
    who can add, remove, or change the privileges of members.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.AclUpdatePolicy.owner: Only the owner can update the ACL.
    :ivar sharing.AclUpdatePolicy.editors: Any editor can update the ACL. This
        may be further restricted to editors on the same team.
    r   Nc                 C   r   r.   r   r   r   r   r   r0      r   zAclUpdatePolicy.is_ownerc                 C   r   )zN
        Check if the union tag is ``editors``.

        :rtype: bool
        editorsr   r   r   r   r   
is_editors   r   zAclUpdatePolicy.is_editorsc                 C   r   r   r   r   r   r   r   r      r   zAclUpdatePolicy.is_otherc                    r   r   )r   r;   r   r    r"   r   r   r      r$   z+AclUpdatePolicy._process_custom_annotations)r%   r&   r'   r(   r)   r/   r<   r   r0   r=   r   r   r*   r   r   r"   r   r;      r+   r;   c                       s   e Zd ZdZg dZdZ						dddZedZ	edZ
ejd	dd
ZedZejdddZedZ fddZ  ZS )AddFileMemberArgsa  
    Arguments for
    :meth:`dropbox.dropbox_client.Dropbox.sharing_add_file_member`.

    :ivar sharing.AddFileMemberArgs.file: File to which to add members.
    :ivar sharing.AddFileMemberArgs.members: Members to add. Note that even an
        email address is given, this may result in a user being directly added
        to the membership if that email is the user's main account email.
    :ivar sharing.AddFileMemberArgs.custom_message: Message to send to added
        members in their invitation.
    :ivar sharing.AddFileMemberArgs.quiet: Whether added members should be
        notified via email and device notifications of their invitation.
    :ivar sharing.AddFileMemberArgs.access_level: AccessLevel union object,
        describing what access level we want to give new members.
    :ivar sharing.AddFileMemberArgs.add_message_as_comment: If the custom
        message should be added as a comment on the file.
    )_file_value_members_value_custom_message_value_quiet_value_access_level_value_add_message_as_comment_valueTNc                 C   s   t j| _t j| _t j| _t j| _t j| _t j| _|d ur|| _|d ur&|| _	|d ur-|| _
|d ur4|| _|d ur;|| _|d urD|| _d S d S r   )bbNOT_SETr?   r@   rA   rB   rC   rD   filememberscustom_messagequietaccess_leveladd_message_as_comment)r   rG   rH   rI   rJ   rK   rL   r   r   r   __init__   s&   
zAddFileMemberArgs.__init__rG   rH   rI   nullablerJ   rK   user_definedrL   c                    r   r   )r   r>   r   r    r"   r   r   r     r$   z-AddFileMemberArgs._process_custom_annotationsNNNNNN)r%   r&   r'   r(   	__slots___has_required_fieldsrM   rE   	AttributerG   rH   rI   rJ   rK   rL   r   r*   r   r   r"   r   r>      s$    	




r>   c                          e Zd ZdZdZdZdZdZedd Z	edd Z
dd	 Zd
d Zdd Zdd Zdd Zdd Zdd Z fddZ  ZS )AddFileMemberErrora  
    Errors for :meth:`dropbox.dropbox_client.Dropbox.sharing_add_file_member`.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.AddFileMemberError.rate_limit: The user has reached the rate
        limit for invitations.
    :ivar sharing.AddFileMemberError.invalid_comment: The custom message did not
        pass comment permissions checks.
    r   Nc                 C   
   | d|S )z
        Create an instance of this class set to the ``user_error`` tag with
        value ``val``.

        :param SharingUserError val:
        :rtype: AddFileMemberError
        
user_errorr   clsvalr   r   r   rY   :     
	zAddFileMemberError.user_errorc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharingFileAccessError val:
        :rtype: AddFileMemberError
        access_errorr   rZ   r   r   r   r^   E  r]   zAddFileMemberError.access_errorc                 C   r   zQ
        Check if the union tag is ``user_error``.

        :rtype: bool
        rY   r   r   r   r   r   is_user_errorP  r   z AddFileMemberError.is_user_errorc                 C   r   zS
        Check if the union tag is ``access_error``.

        :rtype: bool
        r^   r   r   r   r   r   is_access_errorX  r   z"AddFileMemberError.is_access_errorc                 C   r   zQ
        Check if the union tag is ``rate_limit``.

        :rtype: bool
        
rate_limitr   r   r   r   r   is_rate_limit`  r   z AddFileMemberError.is_rate_limitc                 C   r   )zV
        Check if the union tag is ``invalid_comment``.

        :rtype: bool
        invalid_commentr   r   r   r   r   is_invalid_commenth  r   z%AddFileMemberError.is_invalid_commentc                 C   r   r   r   r   r   r   r   r   p  r   zAddFileMemberError.is_otherc                 C      |   std| jS zd
        Only call this if :meth:`is_user_error` is true.

        :rtype: SharingUserError
        tag 'user_error' not setr`   AttributeError_valuer   r   r   r   get_user_errorx     z!AddFileMemberError.get_user_errorc                 C   rh   zl
        Only call this if :meth:`is_access_error` is true.

        :rtype: SharingFileAccessError
        tag 'access_error' not setrb   rl   rm   r   r   r   r   get_access_error  ro   z#AddFileMemberError.get_access_errorc                    r   r   )r   rW   r   r    r"   r   r   r     r$   z.AddFileMemberError._process_custom_annotations)r%   r&   r'   r(   r)   rd   rf   r   classmethodrY   r^   r`   rb   re   rg   r   rn   rs   r   r*   r   r   r"   r   rW   $  s$    





rW   c                       j   e Zd ZdZg dZdZ				dddZedZ	edZ
ed	Zejd
ddZ fddZ  ZS )AddFolderMemberArga  
    :ivar sharing.AddFolderMemberArg.shared_folder_id: The ID for the shared
        folder.
    :ivar sharing.AddFolderMemberArg.members: The intended list of members to
        add.  Added members will receive invites to join the shared folder.
    :ivar sharing.AddFolderMemberArg.quiet: Whether added members should be
        notified via email and device notifications of their invite.
    :ivar sharing.AddFolderMemberArg.custom_message: Optional message to display
        to added members in their invitation.
    )_shared_folder_id_valuer@   rB   rA   TNc                 C   `   t j| _t j| _t j| _t j| _|d ur|| _|d ur|| _|d ur%|| _|d ur.|| _	d S d S r   )
rE   rF   rw   r@   rB   rA   shared_folder_idrH   rJ   rI   )r   ry   rH   rJ   rI   r   r   r   rM        
zAddFolderMemberArg.__init__ry   rH   rJ   rI   rN   c                    r   r   )r   rv   r   r    r"   r   r   r     r$   z.AddFolderMemberArg._process_custom_annotationsNNNN)r%   r&   r'   r(   rS   rT   rM   rE   rU   ry   rH   rJ   rI   r   r*   r   r   r"   r   rv     s    



rv   c                       s  e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZdZdZedd Zedd Zedd	 Zed
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Z d&d' Z!d(d) Z"d*d+ Z#d,d- Z$d.d/ Z% fd0d1Z&  Z'S )2AddFolderMemberErroram  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar SharedFolderAccessError AddFolderMemberError.access_error: Unable to
        access shared folder.
    :ivar sharing.AddFolderMemberError.email_unverified: This user's email
        address is not verified. This functionality is only available on
        accounts with a verified email address. Users can verify their email
        address `here <https://www.dropbox.com/help/317>`_.
    :ivar sharing.AddFolderMemberError.banned_member: The current user has been
        banned.
    :ivar AddMemberSelectorError AddFolderMemberError.bad_member:
        ``AddFolderMemberArg.members`` contains a bad invitation recipient.
    :ivar sharing.AddFolderMemberError.cant_share_outside_team: Your team policy
        does not allow sharing outside of the team.
    :ivar int sharing.AddFolderMemberError.too_many_members: The value is the
        member limit that was reached.
    :ivar int sharing.AddFolderMemberError.too_many_pending_invites: The value
        is the pending invite limit that was reached.
    :ivar sharing.AddFolderMemberError.rate_limit: The current user has hit the
        limit of invites they can send per day. Try again in 24 hours.
    :ivar sharing.AddFolderMemberError.too_many_invitees: The current user is
        trying to share with too many people at once.
    :ivar sharing.AddFolderMemberError.insufficient_plan: The current user's
        account doesn't support this action. An example of this is when adding a
        read-only member. This action can only be performed by users that have
        upgraded to a Pro or Business plan.
    :ivar sharing.AddFolderMemberError.team_folder: This action cannot be
        performed on a team shared folder.
    :ivar sharing.AddFolderMemberError.no_permission: The current user does not
        have permission to perform this action.
    :ivar sharing.AddFolderMemberError.invalid_shared_folder: Invalid shared
        folder error will be returned as an access_error.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharedFolderAccessError val:
        :rtype: AddFolderMemberError
        r^   r   rZ   r   r   r   r^     r]   z!AddFolderMemberError.access_errorc                 C   rX   )z
        Create an instance of this class set to the ``bad_member`` tag with
        value ``val``.

        :param AddMemberSelectorError val:
        :rtype: AddFolderMemberError
        
bad_memberr   rZ   r   r   r   r}     r]   zAddFolderMemberError.bad_memberc                 C   rX   )z
        Create an instance of this class set to the ``too_many_members`` tag
        with value ``val``.

        :param int val:
        :rtype: AddFolderMemberError
        too_many_membersr   rZ   r   r   r   r~     r]   z%AddFolderMemberError.too_many_membersc                 C   rX   )z
        Create an instance of this class set to the ``too_many_pending_invites``
        tag with value ``val``.

        :param int val:
        :rtype: AddFolderMemberError
        too_many_pending_invitesr   rZ   r   r   r   r   &  r]   z-AddFolderMemberError.too_many_pending_invitesc                 C   r   ra   r   r   r   r   r   rb   1  r   z$AddFolderMemberError.is_access_errorc                 C   r   zW
        Check if the union tag is ``email_unverified``.

        :rtype: bool
        email_unverifiedr   r   r   r   r   is_email_unverified9  r   z(AddFolderMemberError.is_email_unverifiedc                 C   r   )zT
        Check if the union tag is ``banned_member``.

        :rtype: bool
        banned_memberr   r   r   r   r   is_banned_memberA  r   z%AddFolderMemberError.is_banned_memberc                 C   r   )zQ
        Check if the union tag is ``bad_member``.

        :rtype: bool
        r}   r   r   r   r   r   is_bad_memberI  r   z"AddFolderMemberError.is_bad_memberc                 C   r   )z^
        Check if the union tag is ``cant_share_outside_team``.

        :rtype: bool
        cant_share_outside_teamr   r   r   r   r   is_cant_share_outside_teamQ  r   z/AddFolderMemberError.is_cant_share_outside_teamc                 C   r   )zW
        Check if the union tag is ``too_many_members``.

        :rtype: bool
        r~   r   r   r   r   r   is_too_many_membersY  r   z(AddFolderMemberError.is_too_many_membersc                 C   r   )z_
        Check if the union tag is ``too_many_pending_invites``.

        :rtype: bool
        r   r   r   r   r   r   is_too_many_pending_invitesa  r   z0AddFolderMemberError.is_too_many_pending_invitesc                 C   r   rc   r   r   r   r   r   re   i  r   z"AddFolderMemberError.is_rate_limitc                 C   r   )zX
        Check if the union tag is ``too_many_invitees``.

        :rtype: bool
        too_many_inviteesr   r   r   r   r   is_too_many_inviteesq  r   z)AddFolderMemberError.is_too_many_inviteesc                 C   r   zX
        Check if the union tag is ``insufficient_plan``.

        :rtype: bool
        insufficient_planr   r   r   r   r   is_insufficient_plany  r   z)AddFolderMemberError.is_insufficient_planc                 C   r   zR
        Check if the union tag is ``team_folder``.

        :rtype: bool
        team_folderr   r   r   r   r   is_team_folder  r   z#AddFolderMemberError.is_team_folderc                 C   r   zT
        Check if the union tag is ``no_permission``.

        :rtype: bool
        no_permissionr   r   r   r   r   is_no_permission  r   z%AddFolderMemberError.is_no_permissionc                 C   r   )z\
        Check if the union tag is ``invalid_shared_folder``.

        :rtype: bool
        invalid_shared_folderr   r   r   r   r   is_invalid_shared_folder  r   z-AddFolderMemberError.is_invalid_shared_folderc                 C   r   r   r   r   r   r   r   r     r   zAddFolderMemberError.is_otherc                 C   rh   z
        Unable to access shared folder.

        Only call this if :meth:`is_access_error` is true.

        :rtype: SharedFolderAccessError
        rq   rr   r   r   r   r   rs        z%AddFolderMemberError.get_access_errorc                 C   rh   )z
        ``AddFolderMemberArg.members`` contains a bad invitation recipient.

        Only call this if :meth:`is_bad_member` is true.

        :rtype: AddMemberSelectorError
        ztag 'bad_member' not set)r   rl   rm   r   r   r   r   get_bad_member  r   z#AddFolderMemberError.get_bad_memberc                 C   rh   )z
        The value is the member limit that was reached.

        Only call this if :meth:`is_too_many_members` is true.

        :rtype: int
        ztag 'too_many_members' not set)r   rl   rm   r   r   r   r   get_too_many_members  r   z)AddFolderMemberError.get_too_many_membersc                 C   rh   )z
        The value is the pending invite limit that was reached.

        Only call this if :meth:`is_too_many_pending_invites` is true.

        :rtype: int
        z&tag 'too_many_pending_invites' not set)r   rl   rm   r   r   r   r   get_too_many_pending_invites  r   z1AddFolderMemberError.get_too_many_pending_invitesc                    r   r   )r   r|   r   r    r"   r   r   r     r$   z0AddFolderMemberError._process_custom_annotations)(r%   r&   r'   r(   r)   r   r   r   rd   r   r   r   r   r   r   rt   r^   r}   r~   r   rb   r   r   r   r   r   r   re   r   r   r   r   r   r   rs   r   r   r   r   r*   r   r   r"   r   r|     sP    %







r|   c                       sV   e Zd ZdZddgZdZ		dddZejddd	Z	ejd
dd	Z
 fddZ  ZS )	AddMemberaA  
    The member and type of access the member should have when added to a shared
    folder.

    :ivar sharing.AddMember.member: The member to add to the shared folder.
    :ivar sharing.AddMember.access_level: The access level to grant ``member``
        to the shared folder.  ``AccessLevel.owner`` is disallowed.
    _member_valuerC   TNc                 C   4   t j| _t j| _|d ur|| _|d ur|| _d S d S r   )rE   rF   r   rC   memberrK   )r   r   rK   r   r   r   rM        
zAddMember.__init__r   rP   rK   c                    r   r   )r   r   r   r    r"   r   r   r     r$   z%AddMember._process_custom_annotationsNN)r%   r&   r'   r(   rS   rT   rM   rE   rU   r   rK   r   r*   r   r   r"   r   r     s    

r   c                       s   e Zd ZdZdZdZdZdZdZe	dd Z
e	dd Ze	dd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z fddZ  ZS ) AddMemberSelectorErrora4  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.AddMemberSelectorError.automatic_group: Automatically created
        groups can only be added to team folders.
    :ivar str sharing.AddMemberSelectorError.invalid_dropbox_id: The value is
        the ID that could not be identified.
    :ivar str sharing.AddMemberSelectorError.invalid_email: The value is the
        e-email address that is malformed.
    :ivar str sharing.AddMemberSelectorError.unverified_dropbox_id: The value is
        the ID of the Dropbox user with an unverified email address. Invite
        unverified users by email address instead of by their Dropbox ID.
    :ivar sharing.AddMemberSelectorError.group_deleted: At least one of the
        specified groups in ``AddFolderMemberArg.members`` is deleted.
    :ivar sharing.AddMemberSelectorError.group_not_on_team: Sharing to a group
        that is not on the current user's team.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``invalid_dropbox_id`` tag
        with value ``val``.

        :param str val:
        :rtype: AddMemberSelectorError
        invalid_dropbox_idr   rZ   r   r   r   r     r]   z)AddMemberSelectorError.invalid_dropbox_idc                 C   rX   )z
        Create an instance of this class set to the ``invalid_email`` tag with
        value ``val``.

        :param str val:
        :rtype: AddMemberSelectorError
        invalid_emailr   rZ   r   r   r   r   &  r]   z$AddMemberSelectorError.invalid_emailc                 C   rX   )z
        Create an instance of this class set to the ``unverified_dropbox_id``
        tag with value ``val``.

        :param str val:
        :rtype: AddMemberSelectorError
        unverified_dropbox_idr   rZ   r   r   r   r   1  r]   z,AddMemberSelectorError.unverified_dropbox_idc                 C   r   )zV
        Check if the union tag is ``automatic_group``.

        :rtype: bool
        automatic_groupr   r   r   r   r   is_automatic_group<  r   z)AddMemberSelectorError.is_automatic_groupc                 C   r   zY
        Check if the union tag is ``invalid_dropbox_id``.

        :rtype: bool
        r   r   r   r   r   r   is_invalid_dropbox_idD  r   z,AddMemberSelectorError.is_invalid_dropbox_idc                 C   r   )zT
        Check if the union tag is ``invalid_email``.

        :rtype: bool
        r   r   r   r   r   r   is_invalid_emailL  r   z'AddMemberSelectorError.is_invalid_emailc                 C   r   )z\
        Check if the union tag is ``unverified_dropbox_id``.

        :rtype: bool
        r   r   r   r   r   r   is_unverified_dropbox_idT  r   z/AddMemberSelectorError.is_unverified_dropbox_idc                 C   r   )zT
        Check if the union tag is ``group_deleted``.

        :rtype: bool
        group_deletedr   r   r   r   r   is_group_deleted\  r   z'AddMemberSelectorError.is_group_deletedc                 C   r   )zX
        Check if the union tag is ``group_not_on_team``.

        :rtype: bool
        group_not_on_teamr   r   r   r   r   is_group_not_on_teamd  r   z+AddMemberSelectorError.is_group_not_on_teamc                 C   r   r   r   r   r   r   r   r   l  r   zAddMemberSelectorError.is_otherc                 C   rh   )z
        The value is the ID that could not be identified.

        Only call this if :meth:`is_invalid_dropbox_id` is true.

        :rtype: str
        z tag 'invalid_dropbox_id' not set)r   rl   rm   r   r   r   r   get_invalid_dropbox_idt  r   z-AddMemberSelectorError.get_invalid_dropbox_idc                 C   rh   )z
        The value is the e-email address that is malformed.

        Only call this if :meth:`is_invalid_email` is true.

        :rtype: str
        ztag 'invalid_email' not set)r   rl   rm   r   r   r   r   get_invalid_email  r   z(AddMemberSelectorError.get_invalid_emailc                 C   rh   )a  
        The value is the ID of the Dropbox user with an unverified email
        address. Invite unverified users by email address instead of by their
        Dropbox ID.

        Only call this if :meth:`is_unverified_dropbox_id` is true.

        :rtype: str
        z#tag 'unverified_dropbox_id' not set)r   rl   rm   r   r   r   r   get_unverified_dropbox_id     
z0AddMemberSelectorError.get_unverified_dropbox_idc                    r   r   )r   r   r   r    r"   r   r   r     r$   z2AddMemberSelectorError._process_custom_annotations)r%   r&   r'   r(   r)   r   r   r   r   rt   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r*   r   r   r"   r   r     s0    





r   c                       sH   e Zd ZdZdZdZdZdZdd Zdd Z	dd Z
 fd	d
Z  ZS )RequestedVisibilitya  
    The access permission that can be requested by the caller for the shared
    link. Note that the final resolved visibility of the shared link takes into
    account other aspects, such as team and shared folder settings. Check the
    :class:`ResolvedVisibility` for more info on the possible resolved
    visibility values of shared links.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.RequestedVisibility.public: Anyone who has received the link
        can access it. No login required.
    :ivar sharing.RequestedVisibility.team_only: Only members of the same team
        can access the link. Login is required.
    :ivar sharing.RequestedVisibility.password: A link-specific password is
        required to access the link. Login is not required.
    Nc                 C   r   zM
        Check if the union tag is ``public``.

        :rtype: bool
        publicr   r   r   r   r   	is_public  r   zRequestedVisibility.is_publicc                 C   r   zP
        Check if the union tag is ``team_only``.

        :rtype: bool
        	team_onlyr   r   r   r   r   is_team_only  r   z RequestedVisibility.is_team_onlyc                 C   r   zO
        Check if the union tag is ``password``.

        :rtype: bool
        passwordr   r   r   r   r   is_password  r   zRequestedVisibility.is_passwordc                    r   r   )r   r   r   r    r"   r   r   r     r$   z/RequestedVisibility._process_custom_annotations)r%   r&   r'   r(   r)   r   r   r   r   r   r   r   r*   r   r   r"   r   r     s    r   c                       `   e Zd ZdZdZdZdZdZdZdZ	dd Z
dd Zdd	 Zd
d Zdd Z fddZ  ZS )ResolvedVisibilitya   
    The actual access permissions values of shared links after taking into
    account user preferences and the team and shared folder settings. Check the
    :class:`RequestedVisibility` for more info on the possible visibility values
    that can be set by the shared link's owner.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.ResolvedVisibility.team_and_password: Only members of the same
        team who have the link-specific password can access the link. Login is
        required.
    :ivar sharing.ResolvedVisibility.shared_folder_only: Only members of the
        shared folder containing the linked file can access the link. Login is
        required.
    :ivar sharing.ResolvedVisibility.no_one: The link merely points the user to
        the content, and does not grant any additional rights. Existing members
        of the content who use this link can only access the content with their
        pre-existing access rights. Either on the file directly, or inherited
        from a parent folder.
    :ivar sharing.ResolvedVisibility.only_you: Only the current user can view
        this link.
    r   Nc                 C   r   zX
        Check if the union tag is ``team_and_password``.

        :rtype: bool
        team_and_passwordr   r   r   r   r   is_team_and_password  r   z'ResolvedVisibility.is_team_and_passwordc                 C   r   zY
        Check if the union tag is ``shared_folder_only``.

        :rtype: bool
        shared_folder_onlyr   r   r   r   r   is_shared_folder_only  r   z(ResolvedVisibility.is_shared_folder_onlyc                 C   r   zM
        Check if the union tag is ``no_one``.

        :rtype: bool
        no_oner   r   r   r   r   	is_no_one  r   zResolvedVisibility.is_no_onec                 C   r   )zO
        Check if the union tag is ``only_you``.

        :rtype: bool
        only_your   r   r   r   r   is_only_you  r   zResolvedVisibility.is_only_youc                 C   r   r   r   r   r   r   r   r     r   zResolvedVisibility.is_otherc                    r   r   )r   r   r   r    r"   r   r   r   &  r$   z.ResolvedVisibility._process_custom_annotations)r%   r&   r'   r(   r)   r   r   r   r   r   r   r   r   r   r   r   r*   r   r   r"   r   r     s    r   c                           e Zd ZdZ fddZ  ZS )AlphaResolvedVisibilityz
    check documentation for ResolvedVisibility.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.
    c                    r   r   )r   r   r   r    r"   r   r   r   4  r$   z3AlphaResolvedVisibility._process_custom_annotationsr%   r&   r'   r(   r   r*   r   r   r"   r   r   +      r   c                       @   e Zd ZdZdgZdZ	d
ddZedZ	 fdd	Z
  ZS )AudienceExceptionContentInfoz
    Information about the content that has a link audience different than that
    of this folder.

    :ivar sharing.AudienceExceptionContentInfo.name: The name of the content,
        which is either a file or a folder.
    _name_valueTNc                 C      t j| _|d ur|| _d S d S r   )rE   rF   r   name)r   r   r   r   r   rM   H     
z%AudienceExceptionContentInfo.__init__r   c                    r   r   )r   r   r   r    r"   r   r   r   Q  r$   z8AudienceExceptionContentInfo._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r   r   r*   r   r   r"   r   r   9      	

r   c                       N   e Zd ZdZddgZdZ		dddZedZ	ed	Z
 fd
dZ  ZS )AudienceExceptionsa  
    The total count and truncated list of information of content inside this
    folder that has a different audience than the link on this folder. This is
    only returned for folders.

    :ivar sharing.AudienceExceptions.exceptions: A truncated list of some of the
        content that is an exception. The length of this list could be smaller
        than the count since it is only a sample but will not be empty as long
        as count is not 0.
    _count_value_exceptions_valueTNc                 C   r   r   )rE   rF   r   r   count
exceptions)r   r   r   r   r   r   rM   i  r   zAudienceExceptions.__init__r   r   c                    r   r   )r   r   r   r    r"   r   r   r   y  r$   z.AudienceExceptions._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r   r   r   r*   r   r   r"   r   r   V  s    


r   c                       ^   e Zd ZdZg dZdZ			dddZedZ	edZ
ejd	dd
Z fddZ  ZS )AudienceRestrictingSharedFoldera  
    Information about the shared folder that prevents the link audience for this
    link from being more restrictive.

    :ivar sharing.AudienceRestrictingSharedFolder.shared_folder_id: The ID of
        the shared folder.
    :ivar sharing.AudienceRestrictingSharedFolder.name: The name of the shared
        folder.
    :ivar sharing.AudienceRestrictingSharedFolder.audience: The link audience of
        the shared folder.
    )rw   r   _audience_valueTNc                 C   J   t j| _t j| _t j| _|d ur|| _|d ur|| _|d ur#|| _d S d S r   )rE   rF   rw   r   r   ry   r   audience)r   ry   r   r   r   r   r   rM        
z(AudienceRestrictingSharedFolder.__init__ry   r   r   rP   c                    r   r   )r   r   r   r    r"   r   r   r     r$   z;AudienceRestrictingSharedFolder._process_custom_annotationsNNN)r%   r&   r'   r(   rS   rT   rM   rE   rU   ry   r   r   r   r*   r   r   r"   r   r   ~  s    


r   c                       sb   e Zd ZdZg dZdZ			dddZedZ	ejddd	Z
ejd
ddZ fddZ  ZS )LinkMetadataah  
    Metadata for a shared link. This can be either a :class:`PathLinkMetadata`
    or :class:`CollectionLinkMetadata`.

    :ivar sharing.LinkMetadata.url: URL of the shared link.
    :ivar sharing.LinkMetadata.visibility: Who can access the link.
    :ivar sharing.LinkMetadata.expires: Expiration time, if set. By default the
        link won't expire.
    )
_url_value_visibility_value_expires_valueTNc                 C   r   r   )rE   rF   r   r   r   url
visibilityexpiresr   r   r   r   r   r   r   rM     r   zLinkMetadata.__init__r   r   rP   r   rN   c                    r   r   )r   r   r   r    r"   r   r   r     r$   z(LinkMetadata._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r   r   r   r   r*   r   r   r"   r   r         


r   c                       s<   e Zd ZdZg ZdZ			d fdd	Z fddZ  ZS )	CollectionLinkMetadataz6
    Metadata for a collection-based shared link.
    TNc                    r   r   )r   r   rM   r   r"   r   r   rM     s   zCollectionLinkMetadata.__init__c                    r   r   )r   r   r   r    r"   r   r   r     r$   z2CollectionLinkMetadata._process_custom_annotationsr   	r%   r&   r'   r(   rS   rT   rM   r   r*   r   r   r"   r   r     s    r   c                       s`   e Zd ZdZg dZdZ			dddZedZ	edZ
ejd	ddd
Z fddZ  ZS )CreateSharedLinkArgaK  
    :ivar sharing.CreateSharedLinkArg.path: The path to share.
    :ivar sharing.CreateSharedLinkArg.pending_upload: If it's okay to share a
        path that does not yet exist, set this to either
        ``PendingUploadMode.file`` or ``PendingUploadMode.folder`` to indicate
        whether to assume it's a file or folder.
    )_path_value_short_url_value_pending_upload_valueTNc                 C   r   r   )rE   rF   r   r   r   path	short_urlpending_upload)r   r   r   r   r   r   r   rM     r   zCreateSharedLinkArg.__init__r   r   r   rO   rQ   c                    r   r   )r   r   r   r    r"   r   r   r     r$   z/CreateSharedLinkArg._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r   r   r   r   r*   r   r   r"   r   r     s    


r   c                       L   e Zd ZdZdZdZedd Zdd Zdd	 Z	d
d Z
 fddZ  ZS )CreateSharedLinkError
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``path`` tag with value
        ``val``.

        :param files.LookupError val:
        :rtype: CreateSharedLinkError
        r   r   rZ   r   r   r   r   -  r]   zCreateSharedLinkError.pathc                 C   r   zK
        Check if the union tag is ``path``.

        :rtype: bool
        r   r   r   r   r   r   is_path8  r   zCreateSharedLinkError.is_pathc                 C   r   r   r   r   r   r   r   r   @  r   zCreateSharedLinkError.is_otherc                 C   rh   z_
        Only call this if :meth:`is_path` is true.

        :rtype: files.LookupError
        tag 'path' not setr   rl   rm   r   r   r   r   get_pathH  ro   zCreateSharedLinkError.get_pathc                    r   r   )r   r   r   r    r"   r   r   r   R  r$   z1CreateSharedLinkError._process_custom_annotationsr%   r&   r'   r(   r)   r   rt   r   r   r   r   r   r*   r   r   r"   r   r   "      


r   c                       sT   e Zd ZdZddgZdZ		dddZedZ	ejd	ddd
Z
 fddZ  ZS )CreateSharedLinkWithSettingsArgz
    :ivar sharing.CreateSharedLinkWithSettingsArg.path: The path to be shared by
        the shared link.
    :ivar sharing.CreateSharedLinkWithSettingsArg.settings: The requested
        settings for the newly created shared link.
    r   _settings_valueTNc                 C   r   r   )rE   rF   r   r  r   settings)r   r   r  r   r   r   rM   f  r   z(CreateSharedLinkWithSettingsArg.__init__r   r  r   c                    r   r   )r   r  r   r    r"   r   r   r   v  r$   z;CreateSharedLinkWithSettingsArg._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r   r  r   r*   r   r   r"   r   r  W  s    

r  c                       s   e Zd ZdZdZdZdZedd Zedd Z	edd Z
d	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z fddZ  ZS )!CreateSharedLinkWithSettingsErrora  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.CreateSharedLinkWithSettingsError.email_not_verified: This
        user's email address is not verified. This functionality is only
        available on accounts with a verified email address. Users can verify
        their email address `here <https://www.dropbox.com/help/317>`_.
    :ivar Optional[SharedLinkAlreadyExistsMetadata]
        sharing.CreateSharedLinkWithSettingsError.shared_link_already_exists:
        The shared link already exists. You can call :route:`list_shared_links`
        to get the  existing link, or use the provided metadata if it is
        returned.
    :ivar SharedLinkSettingsError
        CreateSharedLinkWithSettingsError.settings_error: There is an error with
        the given settings.
    :ivar sharing.CreateSharedLinkWithSettingsError.access_denied: The user is
        not allowed to create a shared link to the specified file. For  example,
        this can occur if the file is restricted or if the user's links are
        `banned <https://help.dropbox.com/files-folders/share/banned-links>`_.
    Nc                 C   rX   )z
        Create an instance of this class set to the ``path`` tag with value
        ``val``.

        :param files.LookupError val:
        :rtype: CreateSharedLinkWithSettingsError
        r   r   rZ   r   r   r   r     r]   z&CreateSharedLinkWithSettingsError.pathc                 C   rX   )z
        Create an instance of this class set to the
        ``shared_link_already_exists`` tag with value ``val``.

        :param SharedLinkAlreadyExistsMetadata val:
        :rtype: CreateSharedLinkWithSettingsError
        shared_link_already_existsr   rZ   r   r   r   r    r]   z<CreateSharedLinkWithSettingsError.shared_link_already_existsc                 C   rX   )z
        Create an instance of this class set to the ``settings_error`` tag with
        value ``val``.

        :param SharedLinkSettingsError val:
        :rtype: CreateSharedLinkWithSettingsError
        settings_errorr   rZ   r   r   r   r    r]   z0CreateSharedLinkWithSettingsError.settings_errorc                 C   r   r   r   r   r   r   r   r     r   z)CreateSharedLinkWithSettingsError.is_pathc                 C   r   zY
        Check if the union tag is ``email_not_verified``.

        :rtype: bool
        email_not_verifiedr   r   r   r   r   is_email_not_verified  r   z7CreateSharedLinkWithSettingsError.is_email_not_verifiedc                 C   r   )za
        Check if the union tag is ``shared_link_already_exists``.

        :rtype: bool
        r  r   r   r   r   r   is_shared_link_already_exists  r   z?CreateSharedLinkWithSettingsError.is_shared_link_already_existsc                 C   r   zU
        Check if the union tag is ``settings_error``.

        :rtype: bool
        r  r   r   r   r   r   is_settings_error  r   z3CreateSharedLinkWithSettingsError.is_settings_errorc                 C   r   )zT
        Check if the union tag is ``access_denied``.

        :rtype: bool
        access_deniedr   r   r   r   r   is_access_denied  r   z2CreateSharedLinkWithSettingsError.is_access_deniedc                 C   rh   r   r   r   r   r   r   r     ro   z*CreateSharedLinkWithSettingsError.get_pathc                 C   rh   )aU  
        The shared link already exists. You can call
        :meth:`dropbox.dropbox_client.Dropbox.sharing_list_shared_links` to get
        the  existing link, or use the provided metadata if it is returned.

        Only call this if :meth:`is_shared_link_already_exists` is true.

        :rtype: SharedLinkAlreadyExistsMetadata
        z(tag 'shared_link_already_exists' not set)r
  rl   rm   r   r   r   r   get_shared_link_already_exists  r   z@CreateSharedLinkWithSettingsError.get_shared_link_already_existsc                 C   rh   z
        There is an error with the given settings.

        Only call this if :meth:`is_settings_error` is true.

        :rtype: SharedLinkSettingsError
        ztag 'settings_error' not setr  rl   rm   r   r   r   r   get_settings_error  r   z4CreateSharedLinkWithSettingsError.get_settings_errorc                    r   r   )r   r  r   r    r"   r   r   r     r$   z=CreateSharedLinkWithSettingsError._process_custom_annotations)r%   r&   r'   r(   r)   r  r  rt   r   r  r  r   r	  r
  r  r  r   r  r  r   r*   r   r   r"   r   r  {  s(    






r  c                       s   e Zd ZdZg dZdZ							dddZejddddZ	ed	Z
ejd
dddZejdddZejdddZedZedZ fddZ  ZS )SharedContentLinkMetadataBasea  
    :ivar sharing.SharedContentLinkMetadataBase.access_level: The access level
        on the link for this file.
    :ivar sharing.SharedContentLinkMetadataBase.audience_options: The audience
        options that are available for the content. Some audience options may be
        unavailable. For example, team_only may be unavailable if the content is
        not owned by a user on a team. The 'default' audience option is always
        available if the user can modify link settings.
    :ivar
        sharing.SharedContentLinkMetadataBase.audience_restricting_shared_folder:
        The shared folder that prevents the link audience for this link from
        being more restrictive.
    :ivar sharing.SharedContentLinkMetadataBase.current_audience: The current
        audience of the link.
    :ivar sharing.SharedContentLinkMetadataBase.expiry: Whether the link has an
        expiry set on it. A link with an expiry will have its  audience changed
        to members when the expiry is reached.
    :ivar sharing.SharedContentLinkMetadataBase.link_permissions: A list of
        permissions for actions you can perform on the link.
    :ivar sharing.SharedContentLinkMetadataBase.password_protected: Whether the
        link is protected by a password.
    )rC   _audience_options_value)_audience_restricting_shared_folder_value_current_audience_value_expiry_value_link_permissions_value_password_protected_valueTNc                 C   s   t j| _t j| _t j| _t j| _t j| _t j| _t j| _|d ur#|| _	|d ur*|| _
|d ur1|| _|d ur8|| _|d ur?|| _|d urF|| _|d urO|| _d S d S r   )rE   rF   rC   r  r  r  r  r  r  rK   audience_options"audience_restricting_shared_foldercurrent_audienceexpirylink_permissionspassword_protectedr   r  r  r  r  rK   r  r  r   r   r   rM   /  ,   
z&SharedContentLinkMetadataBase.__init__rK   r   r  r  r  rP   r  rN   r  r  c                    r   r   )r   r  r   r    r"   r   r   r   b  r$   z9SharedContentLinkMetadataBase._process_custom_annotationsNNNNNNN)r%   r&   r'   r(   rS   rT   rM   rE   rU   rK   r  r  r  r  r  r  r   r*   r   r   r"   r   r    s(    




r  c                       sD   e Zd ZdZg ZdZ							d fdd	Z fddZ  ZS )	!ExpectedSharedContentLinkMetadataz
    The expected metadata of a shared link for a file or folder when a link is
    first created for the content. Absent if the link already exists.
    TNc              	      s    t t| ||||||| d S r   )r   r#  rM   r   r"   r   r   rM   r  s   z*ExpectedSharedContentLinkMetadata.__init__c                    r   r   )r   r#  r   r    r"   r   r   r     r$   z=ExpectedSharedContentLinkMetadata._process_custom_annotationsr"  r   r   r   r"   r   r#  g  s    r#  c                       s   e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZdZdZdZdZdZdd Zdd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z fddZ  Z S ) 
FileActiona  
    Sharing actions that may be taken on files.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.FileAction.disable_viewer_info: Disable viewer information on
        the file.
    :ivar sharing.FileAction.edit_contents: Change or edit contents of the file.
    :ivar sharing.FileAction.enable_viewer_info: Enable viewer information on
        the file.
    :ivar sharing.FileAction.invite_viewer: Add a member with view permissions.
    :ivar sharing.FileAction.invite_viewer_no_comment: Add a member with view
        permissions but no comment permissions.
    :ivar sharing.FileAction.invite_editor: Add a member with edit permissions.
    :ivar sharing.FileAction.unshare: Stop sharing this file.
    :ivar sharing.FileAction.relinquish_membership: Relinquish one's own
        membership to the file.
    :ivar sharing.FileAction.share_link: Use create_view_link and
        create_edit_link instead.
    :ivar sharing.FileAction.create_link: Use create_view_link and
        create_edit_link instead.
    :ivar sharing.FileAction.create_view_link: Create a shared link to a file
        that only allows users to view the content.
    :ivar sharing.FileAction.create_edit_link: Create a shared link to a file
        that allows users to edit the content.
    r   Nc                 C   r   zZ
        Check if the union tag is ``disable_viewer_info``.

        :rtype: bool
        disable_viewer_infor   r   r   r   r   is_disable_viewer_info  r   z!FileAction.is_disable_viewer_infoc                 C   r   zT
        Check if the union tag is ``edit_contents``.

        :rtype: bool
        edit_contentsr   r   r   r   r   is_edit_contents  r   zFileAction.is_edit_contentsc                 C   r   zY
        Check if the union tag is ``enable_viewer_info``.

        :rtype: bool
        enable_viewer_infor   r   r   r   r   is_enable_viewer_info  r   z FileAction.is_enable_viewer_infoc                 C   r   zT
        Check if the union tag is ``invite_viewer``.

        :rtype: bool
        invite_viewerr   r   r   r   r   is_invite_viewer  r   zFileAction.is_invite_viewerc                 C   r   z_
        Check if the union tag is ``invite_viewer_no_comment``.

        :rtype: bool
        invite_viewer_no_commentr   r   r   r   r   is_invite_viewer_no_comment  r   z&FileAction.is_invite_viewer_no_commentc                 C   r   zT
        Check if the union tag is ``invite_editor``.

        :rtype: bool
        invite_editorr   r   r   r   r   is_invite_editor  r   zFileAction.is_invite_editorc                 C   r   zN
        Check if the union tag is ``unshare``.

        :rtype: bool
        unsharer   r   r   r   r   
is_unshare  r   zFileAction.is_unsharec                 C   r   z\
        Check if the union tag is ``relinquish_membership``.

        :rtype: bool
        relinquish_membershipr   r   r   r   r   is_relinquish_membership  r   z#FileAction.is_relinquish_membershipc                 C   r   zQ
        Check if the union tag is ``share_link``.

        :rtype: bool
        
share_linkr   r   r   r   r   is_share_link  r   zFileAction.is_share_linkc                 C   r   zR
        Check if the union tag is ``create_link``.

        :rtype: bool
        create_linkr   r   r   r   r   is_create_link	  r   zFileAction.is_create_linkc                 C   r   )zW
        Check if the union tag is ``create_view_link``.

        :rtype: bool
        create_view_linkr   r   r   r   r   is_create_view_link  r   zFileAction.is_create_view_linkc                 C   r   )zW
        Check if the union tag is ``create_edit_link``.

        :rtype: bool
        create_edit_linkr   r   r   r   r   is_create_edit_link  r   zFileAction.is_create_edit_linkc                 C   r   r   r   r   r   r   r   r   !  r   zFileAction.is_otherc                    r   r   )r   r$  r   r    r"   r   r   r   )  r$   z&FileAction._process_custom_annotations)!r%   r&   r'   r(   r)   r&  r)  r,  r/  r2  r5  r8  r;  r>  rA  rC  rE  r   r'  r*  r-  r0  r3  r6  r9  r<  r?  rB  rD  rF  r   r   r*   r   r   r"   r   r$    s<    r$  c                          e Zd ZdZdZdZedd Zedd Zedd	 Z	d
d Z
dd Zdd Zdd Zdd Zdd Zdd Z fddZ  ZS )FileErrorResultaI  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar str sharing.FileErrorResult.file_not_found_error: File specified by id
        was not found.
    :ivar str sharing.FileErrorResult.invalid_file_action_error: User does not
        have permission to take the specified action on the file.
    :ivar str sharing.FileErrorResult.permission_denied_error: User does not
        have permission to access file specified by file.Id.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``file_not_found_error`` tag
        with value ``val``.

        :param str val:
        :rtype: FileErrorResult
        file_not_found_errorr   rZ   r   r   r   rI  @  r]   z$FileErrorResult.file_not_found_errorc                 C   rX   )z
        Create an instance of this class set to the
        ``invalid_file_action_error`` tag with value ``val``.

        :param str val:
        :rtype: FileErrorResult
        invalid_file_action_errorr   rZ   r   r   r   rJ  K  r]   z)FileErrorResult.invalid_file_action_errorc                 C   rX   )z
        Create an instance of this class set to the ``permission_denied_error``
        tag with value ``val``.

        :param str val:
        :rtype: FileErrorResult
        permission_denied_errorr   rZ   r   r   r   rK  V  r]   z'FileErrorResult.permission_denied_errorc                 C   r   )z[
        Check if the union tag is ``file_not_found_error``.

        :rtype: bool
        rI  r   r   r   r   r   is_file_not_found_errora  r   z'FileErrorResult.is_file_not_found_errorc                 C   r   )z`
        Check if the union tag is ``invalid_file_action_error``.

        :rtype: bool
        rJ  r   r   r   r   r   is_invalid_file_action_errori  r   z,FileErrorResult.is_invalid_file_action_errorc                 C   r   )z^
        Check if the union tag is ``permission_denied_error``.

        :rtype: bool
        rK  r   r   r   r   r   is_permission_denied_errorq  r   z*FileErrorResult.is_permission_denied_errorc                 C   r   r   r   r   r   r   r   r   y  r   zFileErrorResult.is_otherc                 C   rh   )z
        File specified by id was not found.

        Only call this if :meth:`is_file_not_found_error` is true.

        :rtype: str
        z"tag 'file_not_found_error' not set)rL  rl   rm   r   r   r   r   get_file_not_found_error  r   z(FileErrorResult.get_file_not_found_errorc                 C   rh   )z
        User does not have permission to take the specified action on the file.

        Only call this if :meth:`is_invalid_file_action_error` is true.

        :rtype: str
        z'tag 'invalid_file_action_error' not set)rM  rl   rm   r   r   r   r   get_invalid_file_action_error  r   z-FileErrorResult.get_invalid_file_action_errorc                 C   rh   )z
        User does not have permission to access file specified by file.Id.

        Only call this if :meth:`is_permission_denied_error` is true.

        :rtype: str
        z%tag 'permission_denied_error' not set)rN  rl   rm   r   r   r   r   get_permission_denied_error  r   z+FileErrorResult.get_permission_denied_errorc                    r   r   )r   rH  r   r    r"   r   r   r     r$   z+FileErrorResult._process_custom_annotations)r%   r&   r'   r(   r)   r   rt   rI  rJ  rK  rL  rM  rN  r   rO  rP  rQ  r   r*   r   r   r"   r   rH  .  s$    





rH  c                       s   e Zd ZdZg dZdZ								dddZedZ	ejddd	Z
ed
Zejddd	Zejddd	ZejdddZejddddZejddd	Z fddZ  ZS )SharedLinkMetadataa  
    The metadata of a shared link.

    :ivar sharing.SharedLinkMetadata.url: URL of the shared link.
    :ivar sharing.SharedLinkMetadata.id: A unique identifier for the linked
        file.
    :ivar sharing.SharedLinkMetadata.name: The linked file name (including
        extension). This never contains a slash.
    :ivar sharing.SharedLinkMetadata.expires: Expiration time, if set. By
        default the link won't expire.
    :ivar sharing.SharedLinkMetadata.path_lower: The lowercased full path in the
        user's Dropbox. This always starts with a slash. This field will only be
        present only if the linked file is in the authenticated user's  dropbox.
    :ivar sharing.SharedLinkMetadata.link_permissions: The link's access
        permissions.
    :ivar sharing.SharedLinkMetadata.team_member_info: The team membership
        information of the link's owner.  This field will only be present  if
        the link's owner is a team member.
    :ivar sharing.SharedLinkMetadata.content_owner_team_info: The team
        information of the content's owner. This field will only be present if
        the content's owner is a team member and the content's owner team is
        different from the link's owner team.
    )r   	_id_valuer   r   _path_lower_valuer  _team_member_info_value_content_owner_team_info_valueTNc	           	      C   s   t j| _t j| _t j| _t j| _t j| _t j| _t j| _t j| _	|d ur'|| _
|d ur.|| _|d ur5|| _|d ur<|| _|d urC|| _|d urJ|| _|d urQ|| _|d urZ|| _d S d S r   )rE   rF   r   rS  r   r   rT  r  rU  rV  r   idr   r   
path_lowerr  team_member_infocontent_owner_team_info	r   r   r   r  rW  r   rX  rY  rZ  r   r   r   rM     2   	
zSharedLinkMetadata.__init__r   rW  rN   r   r   rX  r  rP   rY  r   rZ  c                    r   r   )r   rR  r   r    r"   r   r   r   
  r$   z.SharedLinkMetadata._process_custom_annotationsNNNNNNNN)r%   r&   r'   r(   rS   rT   rM   rE   rU   r   rW  r   r   rX  r  rY  rZ  r   r*   r   r   r"   r   rR    s,    

#
rR  c                       sz   e Zd ZdZg dZdZ												d fdd	ZedZ	edZ
ed	Zed
Z fddZ  ZS )FileLinkMetadataaH  
    The metadata of a file shared link.

    :ivar sharing.FileLinkMetadata.client_modified: The modification time set by
        the desktop client when the file was added to Dropbox. Since this time
        is not verified (the Dropbox server stores whatever the desktop client
        sends up), this should only be used for display purposes (such as
        sorting) and not, for example, to determine if a file has changed or
        not.
    :ivar sharing.FileLinkMetadata.server_modified: The last time the file was
        modified on Dropbox.
    :ivar sharing.FileLinkMetadata.rev: A unique identifier for the current
        revision of a file. This field is the same rev as elsewhere in the API
        and can be used to detect changes and avoid conflicts.
    :ivar sharing.FileLinkMetadata.size: The file size in bytes.
    )_client_modified_value_server_modified_value
_rev_value_size_valueTNc              
      s~   t t| |||||	|
|| tj| _tj| _tj| _tj| _|d ur&|| _	|d ur-|| _
|d ur4|| _|d ur=|| _d S d S r   )r   r^  rM   rE   rF   r_  r`  ra  rb  client_modifiedserver_modifiedrevsize)r   r   r   r  rc  rd  re  rf  rW  r   rX  rY  rZ  r"   r   r   rM   *  s,   
zFileLinkMetadata.__init__rc  rd  re  rf  c                    r   r   )r   r^  r   r    r"   r   r   r   X  r$   z,FileLinkMetadata._process_custom_annotations)NNNNNNNNNNNN)r%   r&   r'   r(   rS   rT   rM   rE   rU   rc  rd  re  rf  r   r*   r   r   r"   r   r^    s,    
#


r^  c                       rV   )FileMemberActionErroraM  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.FileMemberActionError.invalid_member: Specified member was not
        found.
    :ivar sharing.FileMemberActionError.no_permission: User does not have
        permission to perform this action on this member.
    :ivar SharingFileAccessError FileMemberActionError.access_error: Specified
        file was invalid or user does not have access.
    :ivar MemberAccessLevelResult FileMemberActionError.no_explicit_access: The
        action cannot be completed because the target member does not have
        explicit access to the file. The return value is the access that the
        member has to the file from a parent folder.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharingFileAccessError val:
        :rtype: FileMemberActionError
        r^   r   rZ   r   r   r   r^   w  r]   z"FileMemberActionError.access_errorc                 C   rX   )z
        Create an instance of this class set to the ``no_explicit_access`` tag
        with value ``val``.

        :param MemberAccessLevelResult val:
        :rtype: FileMemberActionError
        no_explicit_accessr   rZ   r   r   r   rh    r]   z(FileMemberActionError.no_explicit_accessc                 C   r   )zU
        Check if the union tag is ``invalid_member``.

        :rtype: bool
        invalid_memberr   r   r   r   r   is_invalid_member  r   z'FileMemberActionError.is_invalid_memberc                 C   r   r   r   r   r   r   r   r     r   z&FileMemberActionError.is_no_permissionc                 C   r   ra   r   r   r   r   r   rb     r   z%FileMemberActionError.is_access_errorc                 C   r   zY
        Check if the union tag is ``no_explicit_access``.

        :rtype: bool
        rh  r   r   r   r   r   is_no_explicit_access  r   z+FileMemberActionError.is_no_explicit_accessc                 C   r   r   r   r   r   r   r   r     r   zFileMemberActionError.is_otherc                 C   rh   )z
        Specified file was invalid or user does not have access.

        Only call this if :meth:`is_access_error` is true.

        :rtype: SharingFileAccessError
        rq   rr   r   r   r   r   rs     r   z&FileMemberActionError.get_access_errorc                 C   rh   )aE  
        The action cannot be completed because the target member does not have
        explicit access to the file. The return value is the access that the
        member has to the file from a parent folder.

        Only call this if :meth:`is_no_explicit_access` is true.

        :rtype: MemberAccessLevelResult
         tag 'no_explicit_access' not setrl  rl   rm   r   r   r   r   get_no_explicit_access  r   z,FileMemberActionError.get_no_explicit_accessc                    r   r   )r   rg  r   r    r"   r   r   r     r$   z1FileMemberActionError._process_custom_annotations)r%   r&   r'   r(   r)   ri  r   r   rt   r^   rh  rj  r   rb   rl  r   rs   ro  r   r*   r   r   r"   r   rg  ]  s$    



rg  c                       s\   e Zd ZdZdZedd Zedd Zdd Zd	d
 Z	dd Z
dd Z fddZ  ZS ) FileMemberActionIndividualResulta  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar Optional[AccessLevel]
        sharing.FileMemberActionIndividualResult.success: Part of the response
        for both add_file_member and remove_file_member_v1 (deprecated). For
        add_file_member, indicates giving access was successful and at what
        AccessLevel. For remove_file_member_v1, indicates member was
        successfully removed from the file. If AccessLevel is given, the member
        still has access via a parent shared folder.
    :ivar FileMemberActionError FileMemberActionIndividualResult.member_error:
        User was not able to perform this action.
    Nc                 C   rX   )z
        Create an instance of this class set to the ``success`` tag with value
        ``val``.

        :param AccessLevel val:
        :rtype: FileMemberActionIndividualResult
        successr   rZ   r   r   r   rq    r]   z(FileMemberActionIndividualResult.successc                 C   rX   )z
        Create an instance of this class set to the ``member_error`` tag with
        value ``val``.

        :param FileMemberActionError val:
        :rtype: FileMemberActionIndividualResult
        member_errorr   rZ   r   r   r   rr    r]   z-FileMemberActionIndividualResult.member_errorc                 C   r   zN
        Check if the union tag is ``success``.

        :rtype: bool
        rq  r   r   r   r   r   
is_success  r   z+FileMemberActionIndividualResult.is_successc                 C   r   zS
        Check if the union tag is ``member_error``.

        :rtype: bool
        rr  r   r   r   r   r   is_member_error	  r   z0FileMemberActionIndividualResult.is_member_errorc                 C   rh   )a  
        Part of the response for both add_file_member and remove_file_member_v1
        (deprecated). For add_file_member, indicates giving access was
        successful and at what AccessLevel. For remove_file_member_v1, indicates
        member was successfully removed from the file. If AccessLevel is given,
        the member still has access via a parent shared folder.

        Only call this if :meth:`is_success` is true.

        :rtype: AccessLevel
        tag 'success' not setrt  rl   rm   r   r   r   r   get_success	  s   z,FileMemberActionIndividualResult.get_successc                 C   rh   )z
        User was not able to perform this action.

        Only call this if :meth:`is_member_error` is true.

        :rtype: FileMemberActionError
        tag 'member_error' not setrv  rl   rm   r   r   r   r   get_member_error	  r   z1FileMemberActionIndividualResult.get_member_errorc                    r   r   )r   rp  r   r    r"   r   r   r   )	  r$   z<FileMemberActionIndividualResult._process_custom_annotations)r%   r&   r'   r(   r)   rt   rq  rr  rt  rv  ry  r|  r   r*   r   r   r"   r   rp    s    



rp  c                       sv   e Zd ZdZg dZdZ				dddZejdddZ	ejd	ddZ
ejd
ddZejdddZ fddZ  ZS )FileMemberActionResulta|  
    Per-member result for
    :meth:`dropbox.dropbox_client.Dropbox.sharing_add_file_member`.

    :ivar sharing.FileMemberActionResult.member: One of specified input members.
    :ivar sharing.FileMemberActionResult.result: The outcome of the action on
        this member.
    :ivar sharing.FileMemberActionResult.sckey_sha1: The SHA-1 encrypted shared
        content key.
    :ivar sharing.FileMemberActionResult.invitation_signature: The sharing
        sender-recipient invitation signatures for the input member_id. A
        member_id can be a group and thus have multiple users and multiple
        invitation signatures.
    )r   _result_value_sckey_sha1_value_invitation_signature_valueTNc                 C   rx   r   )
rE   rF   r   r~  r  r  r   result
sckey_sha1invitation_signature)r   r   r  r  r  r   r   r   rM   G	  rz   zFileMemberActionResult.__init__r   rP   r  r  rN   r  c                    r   r   )r   r}  r   r    r"   r   r   r   e	  r$   z2FileMemberActionResult._process_custom_annotationsr{   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r   r  r  r  r   r*   r   r   r"   r   r}  .	  s    
r}  c                       h   e Zd ZdZdZdZedd Zedd Zdd	 Z	d
d Z
dd Zdd Zdd Z fddZ  ZS )FileMemberRemoveActionResulta  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar MemberAccessLevelResult FileMemberRemoveActionResult.success: Member
        was successfully removed from this file.
    :ivar FileMemberActionError FileMemberRemoveActionResult.member_error: User
        was not able to remove this member.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``success`` tag with value
        ``val``.

        :param MemberAccessLevelResult val:
        :rtype: FileMemberRemoveActionResult
        rq  r   rZ   r   r   r   rq  z	  r]   z$FileMemberRemoveActionResult.successc                 C   rX   )z
        Create an instance of this class set to the ``member_error`` tag with
        value ``val``.

        :param FileMemberActionError val:
        :rtype: FileMemberRemoveActionResult
        rr  r   rZ   r   r   r   rr  	  r]   z)FileMemberRemoveActionResult.member_errorc                 C   r   rs  r   r   r   r   r   rt  	  r   z'FileMemberRemoveActionResult.is_successc                 C   r   ru  r   r   r   r   r   rv  	  r   z,FileMemberRemoveActionResult.is_member_errorc                 C   r   r   r   r   r   r   r   r   	  r   z%FileMemberRemoveActionResult.is_otherc                 C   rh   )z
        Member was successfully removed from this file.

        Only call this if :meth:`is_success` is true.

        :rtype: MemberAccessLevelResult
        rw  rx  r   r   r   r   ry  	  r   z(FileMemberRemoveActionResult.get_successc                 C   rh   )z
        User was not able to remove this member.

        Only call this if :meth:`is_member_error` is true.

        :rtype: FileMemberActionError
        rz  r{  r   r   r   r   r|  	  r   z-FileMemberRemoveActionResult.get_member_errorc                    r   r   )r   r  r   r    r"   r   r   r   	  r$   z8FileMemberRemoveActionResult._process_custom_annotations)r%   r&   r'   r(   r)   r   rt   rq  rr  rt  rv  r   ry  r|  r   r*   r   r   r"   r   r  j	      



r  c                       d   e Zd ZdZg dZdZ			dddZejdddZ	ed	Z
ejd
dddZ fddZ  ZS )FilePermissiona  
    Whether the user is allowed to take the sharing action on the file.

    :ivar sharing.FilePermission.action: The action that the user may wish to
        take on the file.
    :ivar sharing.FilePermission.allow: True if the user is allowed to take the
        action.
    :ivar sharing.FilePermission.reason: The reason why the user is denied the
        permission. Not present if the action is allowed.
    _action_value_allow_value_reason_valueTNc                 C   r   r   rE   rF   r  r  r  actionallowreasonr   r  r  r  r   r   r   rM   	  r   zFilePermission.__init__r  rP   r  r  r   c                    r   r   )r   r  r   r    r"   r   r   r   	  r$   z*FilePermission._process_custom_annotationsr   r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r  r  r   r*   r   r   r"   r   r  	      

r  c                       s   e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZdZdZdZdZdZdZdZdd Zdd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z dd Z!d d! Z" fd"d#Z#  Z$S )$FolderActiona  
    Actions that may be taken on shared folders.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.FolderAction.change_options: Change folder options, such as
        who can be invited to join the folder.
    :ivar sharing.FolderAction.disable_viewer_info: Disable viewer information
        for this folder.
    :ivar sharing.FolderAction.edit_contents: Change or edit contents of the
        folder.
    :ivar sharing.FolderAction.enable_viewer_info: Enable viewer information on
        the folder.
    :ivar sharing.FolderAction.invite_editor: Invite a user or group to join the
        folder with read and write permission.
    :ivar sharing.FolderAction.invite_viewer: Invite a user or group to join the
        folder with read permission.
    :ivar sharing.FolderAction.invite_viewer_no_comment: Invite a user or group
        to join the folder with read permission but no comment permissions.
    :ivar sharing.FolderAction.relinquish_membership: Relinquish one's own
        membership in the folder.
    :ivar sharing.FolderAction.unmount: Unmount the folder.
    :ivar sharing.FolderAction.unshare: Stop sharing this folder.
    :ivar sharing.FolderAction.leave_a_copy: Keep a copy of the contents upon
        leaving or being kicked from the folder.
    :ivar sharing.FolderAction.share_link: Use create_link instead.
    :ivar sharing.FolderAction.create_link: Create a shared link for folder.
    :ivar sharing.FolderAction.set_access_inheritance: Set whether the folder
        inherits permissions from its parent.
    r   Nc                 C   r   )zU
        Check if the union tag is ``change_options``.

        :rtype: bool
        change_optionsr   r   r   r   r   is_change_options7
  r   zFolderAction.is_change_optionsc                 C   r   r%  r   r   r   r   r   r'  ?
  r   z#FolderAction.is_disable_viewer_infoc                 C   r   r(  r   r   r   r   r   r*  G
  r   zFolderAction.is_edit_contentsc                 C   r   r+  r   r   r   r   r   r-  O
  r   z"FolderAction.is_enable_viewer_infoc                 C   r   r4  r   r   r   r   r   r6  W
  r   zFolderAction.is_invite_editorc                 C   r   r.  r   r   r   r   r   r0  _
  r   zFolderAction.is_invite_viewerc                 C   r   r1  r   r   r   r   r   r3  g
  r   z(FolderAction.is_invite_viewer_no_commentc                 C   r   r:  r   r   r   r   r   r<  o
  r   z%FolderAction.is_relinquish_membershipc                 C   r   )zN
        Check if the union tag is ``unmount``.

        :rtype: bool
        unmountr   r   r   r   r   
is_unmountw
  r   zFolderAction.is_unmountc                 C   r   r7  r   r   r   r   r   r9  
  r   zFolderAction.is_unsharec                 C   r   zS
        Check if the union tag is ``leave_a_copy``.

        :rtype: bool
        leave_a_copyr   r   r   r   r   is_leave_a_copy
  r   zFolderAction.is_leave_a_copyc                 C   r   r=  r   r   r   r   r   r?  
  r   zFolderAction.is_share_linkc                 C   r   r@  r   r   r   r   r   rB  
  r   zFolderAction.is_create_linkc                 C   r   )z]
        Check if the union tag is ``set_access_inheritance``.

        :rtype: bool
        set_access_inheritancer   r   r   r   r   is_set_access_inheritance
  r   z&FolderAction.is_set_access_inheritancec                 C   r   r   r   r   r   r   r   r   
  r   zFolderAction.is_otherc                    r   r   )r   r  r   r    r"   r   r   r   
  r$   z(FolderAction._process_custom_annotations)%r%   r&   r'   r(   r)   r  r&  r)  r,  r5  r/  r2  r;  r  r8  r  r>  rA  r  r   r  r'  r*  r-  r6  r0  r3  r<  r  r9  r  r?  rB  r  r   r   r*   r   r   r"   r   r  	  sD    !r  c                       sF   e Zd ZdZg ZdZ								d fdd	Z fddZ  ZS )	FolderLinkMetadataz/
    The metadata of a folder shared link.
    TNc	           	   
      s"   t t| |||||||| d S r   )r   r  rM   r[  r"   r   r   rM   
  s   	zFolderLinkMetadata.__init__c                    r   r   )r   r  r   r    r"   r   r   r   
  r$   z.FolderLinkMetadata._process_custom_annotationsr]  r   r   r   r"   r   r  
  s    r  c                       r  )FolderPermissiona  
    Whether the user is allowed to take the action on the shared folder.

    :ivar sharing.FolderPermission.action: The action that the user may wish to
        take on the folder.
    :ivar sharing.FolderPermission.allow: True if the user is allowed to take
        the action.
    :ivar sharing.FolderPermission.reason: The reason why the user is denied the
        permission. Not present if the action is allowed, or if no reason is
        available.
    r  TNc                 C   r   r   r  r  r   r   r   rM   
  r   zFolderPermission.__init__r  rP   r  r  r   c                    r   r   )r   r  r   r    r"   r   r   r     r$   z,FolderPermission._process_custom_annotationsr   r  r   r   r"   r   r  
  s    

r  c                       s   e Zd ZdZg dZdZ					dddZejddddZ	ejd	dddZ
ejd
ddZejdddZejddddZ fddZ  ZS )FolderPolicya  
    A set of policies governing membership and privileges for a shared folder.

    :ivar sharing.FolderPolicy.member_policy: Who can be a member of this shared
        folder, as set on the folder itself. The effective policy may differ
        from this value if the team-wide policy is more restrictive. Present
        only if the folder is owned by a team.
    :ivar sharing.FolderPolicy.resolved_member_policy: Who can be a member of
        this shared folder, taking into account both the folder and the
        team-wide policy. This value may differ from that of member_policy if
        the team-wide policy is more restrictive than the folder policy. Present
        only if the folder is owned by a team.
    :ivar sharing.FolderPolicy.acl_update_policy: Who can add and remove members
        from this shared folder.
    :ivar sharing.FolderPolicy.shared_link_policy: Who links can be shared with.
    :ivar sharing.FolderPolicy.viewer_info_policy: Who can enable/disable viewer
        info for this shared folder.
    )_member_policy_value_resolved_member_policy_value_acl_update_policy_value_shared_link_policy_value_viewer_info_policy_valueTNc                 C   sv   t j| _t j| _t j| _t j| _t j| _|d ur|| _|d ur"|| _|d ur)|| _	|d ur0|| _
|d ur9|| _d S d S r   )rE   rF   r  r  r  r  r  member_policyresolved_member_policyacl_update_policyshared_link_policyviewer_info_policy)r   r  r  r  r  r  r   r   r   rM   $      
zFolderPolicy.__init__r  r   r  r  rP   r  r  c                    r   r   )r   r  r   r    r"   r   r   r   I  r$   z(FolderPolicy._process_custom_annotationsNNNNN)r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r  r  r  r  r   r*   r   r   r"   r   r    s     
r  c                       R   e Zd ZdZddgZdZ		dddZedZ	ejd	dd
Z
 fddZ  ZS )GetFileMetadataArga  
    Arguments of
    :meth:`dropbox.dropbox_client.Dropbox.sharing_get_file_metadata`.

    :ivar sharing.GetFileMetadataArg.file: The file to query.
    :ivar sharing.GetFileMetadataArg.actions: A list of `FileAction`s
        corresponding to `FilePermission`s that should appear in the  response's
        ``SharedFileMetadata.permissions`` field describing the actions the
        authenticated user can perform on the file.
    r?   _actions_valueTNc                 C   r   r   )rE   rF   r?   r  rG   actions)r   rG   r  r   r   r   rM   a  r   zGetFileMetadataArg.__init__rG   r  rN   c                    r   r   )r   r  r   r    r"   r   r   r   q  r$   z.GetFileMetadataArg._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   rG   r  r   r*   r   r   r"   r   r  N      

r  c                       r  )GetFileMetadataBatchArga  
    Arguments of
    :meth:`dropbox.dropbox_client.Dropbox.sharing_get_file_metadata_batch`.

    :ivar sharing.GetFileMetadataBatchArg.files: The files to query.
    :ivar sharing.GetFileMetadataBatchArg.actions: A list of `FileAction`s
        corresponding to `FilePermission`s that should appear in the  response's
        ``SharedFileMetadata.permissions`` field describing the actions the
        authenticated user can perform on the file.
    _files_valuer  TNc                 C   r   r   )rE   rF   r  r  r   r  )r   r   r  r   r   r   rM     r   z GetFileMetadataBatchArg.__init__r   r  rN   c                    r   r   )r   r  r   r    r"   r   r   r     r$   z3GetFileMetadataBatchArg._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r   r  r   r*   r   r   r"   r   r  v  r  r  c                       r  )GetFileMetadataBatchResultad  
    Per file results of
    :meth:`dropbox.dropbox_client.Dropbox.sharing_get_file_metadata_batch`.

    :ivar sharing.GetFileMetadataBatchResult.file: This is the input file
        identifier corresponding to one of ``GetFileMetadataBatchArg.files``.
    :ivar sharing.GetFileMetadataBatchResult.result: The result for this
        particular file.
    r?   r~  TNc                 C   r   r   rE   rF   r?   r~  rG   r  r   rG   r  r   r   r   rM     r   z#GetFileMetadataBatchResult.__init__rG   r  rP   c                    r   r   )r   r  r   r    r"   r   r   r     r$   z6GetFileMetadataBatchResult._process_custom_annotationsr   r%   r&   r'   r(   rS   rT   rM   rE   rU   rG   r  r   r*   r   r   r"   r   r        

r  c                       r  )GetFileMetadataErrora!  
    Error result for
    :meth:`dropbox.dropbox_client.Dropbox.sharing_get_file_metadata`.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``user_error`` tag with
        value ``val``.

        :param SharingUserError val:
        :rtype: GetFileMetadataError
        rY   r   rZ   r   r   r   rY     r]   zGetFileMetadataError.user_errorc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharingFileAccessError val:
        :rtype: GetFileMetadataError
        r^   r   rZ   r   r   r   r^     r]   z!GetFileMetadataError.access_errorc                 C   r   r_   r   r   r   r   r   r`     r   z"GetFileMetadataError.is_user_errorc                 C   r   ra   r   r   r   r   r   rb     r   z$GetFileMetadataError.is_access_errorc                 C   r   r   r   r   r   r   r   r     r   zGetFileMetadataError.is_otherc                 C   rh   ri   rk   r   r   r   r   rn     ro   z#GetFileMetadataError.get_user_errorc                 C   rh   rp   rr   r   r   r   r   rs     ro   z%GetFileMetadataError.get_access_errorc                    r   r   )r   r  r   r    r"   r   r   r     r$   z0GetFileMetadataError._process_custom_annotationsr%   r&   r'   r(   r)   r   rt   rY   r^   r`   rb   r   rn   rs   r   r*   r   r   r"   r   r        	





r  c                       r  )GetFileMetadataIndividualResulta  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar SharedFileMetadata GetFileMetadataIndividualResult.metadata: The
        result for this file if it was successful.
    :ivar SharingFileAccessError GetFileMetadataIndividualResult.access_error:
        The result for this file if it was an error.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``metadata`` tag with value
        ``val``.

        :param SharedFileMetadata val:
        :rtype: GetFileMetadataIndividualResult
        metadatar   rZ   r   r   r   r  *  r]   z(GetFileMetadataIndividualResult.metadatac                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharingFileAccessError val:
        :rtype: GetFileMetadataIndividualResult
        r^   r   rZ   r   r   r   r^   5  r]   z,GetFileMetadataIndividualResult.access_errorc                 C   r   zO
        Check if the union tag is ``metadata``.

        :rtype: bool
        r  r   r   r   r   r   is_metadata@  r   z+GetFileMetadataIndividualResult.is_metadatac                 C   r   ra   r   r   r   r   r   rb   H  r   z/GetFileMetadataIndividualResult.is_access_errorc                 C   r   r   r   r   r   r   r   r   P  r   z(GetFileMetadataIndividualResult.is_otherc                 C   rh   )z
        The result for this file if it was successful.

        Only call this if :meth:`is_metadata` is true.

        :rtype: SharedFileMetadata
        tag 'metadata' not setr  rl   rm   r   r   r   r   get_metadataX  r   z,GetFileMetadataIndividualResult.get_metadatac                 C   rh   )z
        The result for this file if it was an error.

        Only call this if :meth:`is_access_error` is true.

        :rtype: SharingFileAccessError
        rq   rr   r   r   r   r   rs   d  r   z0GetFileMetadataIndividualResult.get_access_errorc                    r   r   )r   r  r   r    r"   r   r   r   p  r$   z;GetFileMetadataIndividualResult._process_custom_annotations)r%   r&   r'   r(   r)   r   rt   r  r^   r  rb   r   r  rs   r   r*   r   r   r"   r   r    r  r  c                       r  )GetMetadataArgsa{  
    :ivar sharing.GetMetadataArgs.shared_folder_id: The ID for the shared
        folder.
    :ivar sharing.GetMetadataArgs.actions: A list of `FolderAction`s
        corresponding to `FolderPermission`s that should appear in the
        response's ``SharedFolderMetadata.permissions`` field describing the
        actions the  authenticated user can perform on the folder.
    rw   r  TNc                 C   r   r   )rE   rF   rw   r  ry   r  )r   ry   r  r   r   r   rM     r   zGetMetadataArgs.__init__ry   r  rN   c                    r   r   )r   r  r   r    r"   r   r   r     r$   z+GetMetadataArgs._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   ry   r  r   r*   r   r   r"   r   r  u      


r  c                       T   e Zd ZdZdZdZdZdZdZdd Z	dd Z
dd	 Zd
d Z fddZ  ZS )SharedLinkErroraO  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.SharedLinkError.shared_link_not_found: The shared link wasn't
        found.
    :ivar sharing.SharedLinkError.shared_link_access_denied: The caller is not
        allowed to access this shared link.
    :ivar sharing.SharedLinkError.unsupported_link_type: This type of link is
        not supported; use :meth:`dropbox.dropbox_client.Dropbox.sharing_files`
        instead.
    r   Nc                 C   r   )z\
        Check if the union tag is ``shared_link_not_found``.

        :rtype: bool
        shared_link_not_foundr   r   r   r   r   is_shared_link_not_found  r   z(SharedLinkError.is_shared_link_not_foundc                 C   r   )z`
        Check if the union tag is ``shared_link_access_denied``.

        :rtype: bool
        shared_link_access_deniedr   r   r   r   r   is_shared_link_access_denied  r   z,SharedLinkError.is_shared_link_access_deniedc                 C   r   )z\
        Check if the union tag is ``unsupported_link_type``.

        :rtype: bool
        unsupported_link_typer   r   r   r   r   is_unsupported_link_type  r   z(SharedLinkError.is_unsupported_link_typec                 C   r   r   r   r   r   r   r   r     r   zSharedLinkError.is_otherc                    r   r   )r   r  r   r    r"   r   r   r     r$   z+SharedLinkError._process_custom_annotations)r%   r&   r'   r(   r)   r  r  r  r   r  r  r  r   r   r*   r   r   r"   r   r        r  c                       ,   e Zd ZdZdZdd Z fddZ  ZS )GetSharedLinkFileErroraC  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.GetSharedLinkFileError.shared_link_is_directory: Directories
        cannot be retrieved by this endpoint.
    Nc                 C   r   )z_
        Check if the union tag is ``shared_link_is_directory``.

        :rtype: bool
        shared_link_is_directoryr   r   r   r   r   is_shared_link_is_directory  r   z2GetSharedLinkFileError.is_shared_link_is_directoryc                    r   r   )r   r  r   r    r"   r   r   r     r$   z2GetSharedLinkFileError._process_custom_annotations)r%   r&   r'   r(   r  r  r   r*   r   r   r"   r   r    
    
r  c                       b   e Zd ZdZg dZdZ			dddZedZ	ejddd	Z
ejd
dd	Z fddZ  ZS )GetSharedLinkMetadataArga  
    :ivar sharing.GetSharedLinkMetadataArg.url: URL of the shared link.
    :ivar sharing.GetSharedLinkMetadataArg.path: If the shared link is to a
        folder, this parameter can be used to retrieve the metadata for a
        specific file or sub-folder in this folder. A relative path should be
        used.
    :ivar sharing.GetSharedLinkMetadataArg.link_password: If the shared link has
        a password, this parameter can be used.
    )r   r   _link_password_valueTNc                 C   r   r   )rE   rF   r   r   r  r   r   link_password)r   r   r   r  r   r   r   rM     r   z!GetSharedLinkMetadataArg.__init__r   r   rN   r  c                    r   r   )r   r  r   r    r"   r   r   r     r$   z4GetSharedLinkMetadataArg._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r   r   r  r   r*   r   r   r"   r   r    r   r  c                       sD   e Zd ZdZdgZdZ	dddZejddd	Z	 fd
dZ
  ZS )GetSharedLinksArgz
    :ivar sharing.GetSharedLinksArg.path: See
        :meth:`dropbox.dropbox_client.Dropbox.sharing_get_shared_links`
        description.
    r   FNc                 C   r   r   )rE   rF   r   r   )r   r   r   r   r   rM   /  r   zGetSharedLinksArg.__init__r   TrN   c                    r   r   )r   r  r   r    r"   r   r   r   8  r$   z-GetSharedLinksArg._process_custom_annotationsr   r%   r&   r'   r(   rS   rT   rM   rE   rU   r   r   r*   r   r   r"   r   r  "  s    
r  c                       r   )GetSharedLinksErrorr   r   Nc                 C   rX   )z
        Create an instance of this class set to the ``path`` tag with value
        ``val``.

        :param Optional[str] val:
        :rtype: GetSharedLinksError
        r   r   rZ   r   r   r   r   H  r]   zGetSharedLinksError.pathc                 C   r   r   r   r   r   r   r   r   S  r   zGetSharedLinksError.is_pathc                 C   r   r   r   r   r   r   r   r   [  r   zGetSharedLinksError.is_otherc                 C   rh   )z[
        Only call this if :meth:`is_path` is true.

        :rtype: Optional[str]
        r   r   r   r   r   r   r   c  ro   zGetSharedLinksError.get_pathc                    r   r   )r   r  r   r    r"   r   r   r   m  r$   z/GetSharedLinksError._process_custom_annotationsr   r   r   r"   r   r  =  r   r  c                       r   )GetSharedLinksResultzi
    :ivar sharing.GetSharedLinksResult.links: Shared links applicable to the
        path argument.
    _links_valueTNc                 C   r   r   )rE   rF   r  links)r   r  r   r   r   rM   ~  r   zGetSharedLinksResult.__init__r  c                    r   r   )r   r  r   r    r"   r   r   r     r$   z0GetSharedLinksResult._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r   r*   r   r   r"   r   r  r      

r  c                       sx   e Zd ZdZg dZdZ									d fdd	ZejdddZ	ed	Z
ed
ZedZ fddZ  ZS )	GroupInfoa  
    The information about a group. Groups is a way to manage a list of users
    who need same access permission to the shared folder.

    :ivar sharing.GroupInfo.group_type: The type of group.
    :ivar sharing.GroupInfo.is_member: If the current user is a member of the
        group.
    :ivar sharing.GroupInfo.is_owner: If the current user is an owner of the
        group.
    :ivar sharing.GroupInfo.same_team: If the group is owned by the current
        user's team.
    )_group_type_value_is_member_value_is_owner_value_same_team_valueTNc
           
         sx   t t| |||||	 tj| _tj| _tj| _tj| _|d ur#|| _	|d ur*|| _
|d ur1|| _|d ur:|| _d S d S r   )r   r  rM   rE   rF   r  r  r  r  
group_type	is_memberr0   	same_team)
r   
group_nameZgroup_idZgroup_management_typer  r  r0   r  Zgroup_external_idmember_countr"   r   r   rM     s&   

zGroupInfo.__init__r  rP   r  r0   r  c                    r   r   )r   r  r   r    r"   r   r   r     r$   z%GroupInfo._process_custom_annotations	NNNNNNNNN)r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r  r0   r  r   r*   r   r   r"   r   r    s&    


r  c                       sr   e Zd ZdZg dZdZ				dddZejdddZ	ejd	dd
Z
ejddd
ZedZ fddZ  ZS )MembershipInfoa`  
    The information about a member of the shared content.

    :ivar sharing.MembershipInfo.access_type: The access type for this member.
        It contains inherited access type from parent folder, and acquired
        access type from this folder.
    :ivar sharing.MembershipInfo.permissions: The permissions that requesting
        user has on this member. The set of permissions corresponds to the
        MemberActions in the request.
    :ivar sharing.MembershipInfo.initials: Never set.
    :ivar sharing.MembershipInfo.is_inherited: True if the member has access
        from a parent folder.
    )_access_type_value_permissions_value_initials_value_is_inherited_valueTNc                 C   rx   r   )
rE   rF   r  r  r  r  access_typepermissionsinitialsis_inherited)r   r  r  r  r  r   r   r   rM     rz   zMembershipInfo.__init__r  rP   r  rN   r  r  c                    r   r   )r   r  r   r    r"   r   r   r     r$   z*MembershipInfo._process_custom_annotationsr{   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r  r  r  r   r*   r   r   r"   r   r    s    

r  c                       P   e Zd ZdZdgZdZ					d fdd	ZejdddZ	 fd	d
Z
  ZS )GroupMembershipInfoz
    The information about a group member of the shared content.

    :ivar sharing.GroupMembershipInfo.group: The information about the
        membership group.
    _group_valueTNc                    4   t t| |||| tj| _|d ur|| _d S d S r   )r   r  rM   rE   rF   r  group)r   r  r  r  r  r  r"   r   r   rM        
zGroupMembershipInfo.__init__r  rP   c                    r   r   )r   r  r   r    r"   r   r   r   *  r$   z/GroupMembershipInfo._process_custom_annotationsr  )r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r   r*   r   r   r"   r   r        r  c                       r  )InsufficientPlanaW  
    :ivar sharing.InsufficientPlan.message: A message to tell the user to
        upgrade in order to support expected action.
    :ivar sharing.InsufficientPlan.upsell_url: A URL to send the user to in
        order to obtain the account type they need, e.g. upgrading. Absent if
        there is no action the user can take to upgrade.
    _message_value_upsell_url_valueTNc                 C   r   r   )rE   rF   r  r  message
upsell_url)r   r  r  r   r   r   rM   ?  r   zInsufficientPlan.__init__r  r  rN   c                    r   r   )r   r  r   r    r"   r   r   r   O  r$   z,InsufficientPlan._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r  r   r*   r   r   r"   r   r  /  s    	

r  c                       sZ   e Zd ZdZg dZdZ			dddZedZ	edZ
ed	Z fd
dZ  ZS )InsufficientQuotaAmountsa  
    :ivar sharing.InsufficientQuotaAmounts.space_needed: The amount of space
        needed to add the item (the size of the item).
    :ivar sharing.InsufficientQuotaAmounts.space_shortage: The amount of extra
        space needed to add the item.
    :ivar sharing.InsufficientQuotaAmounts.space_left: The amount of space left
        in the user's Dropbox, less than space_needed.
    )_space_needed_value_space_shortage_value_space_left_valueTNc                 C   r   r   )rE   rF   r  r   r  space_neededspace_shortage
space_left)r   r  r  r  r   r   r   rM   f  r   z!InsufficientQuotaAmounts.__init__r  r  r  c                    r   r   )r   r  r   r    r"   r   r   r   }  r$   z4InsufficientQuotaAmounts._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r  r  r   r*   r   r   r"   r   r  T  s    	



r  c                       r   )InviteeInfoaS  
    Information about the recipient of a shared content invitation.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar str sharing.InviteeInfo.email: Email address of invited user.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``email`` tag with value
        ``val``.

        :param str val:
        :rtype: InviteeInfo
        emailr   rZ   r   r   r   r    r]   zInviteeInfo.emailc                 C   r   zL
        Check if the union tag is ``email``.

        :rtype: bool
        r  r   r   r   r   r   is_email  r   zInviteeInfo.is_emailc                 C   r   r   r   r   r   r   r   r     r   zInviteeInfo.is_otherc                 C   rh   )zz
        Email address of invited user.

        Only call this if :meth:`is_email` is true.

        :rtype: str
        tag 'email' not setr  rl   rm   r   r   r   r   	get_email  r   zInviteeInfo.get_emailc                    r   r   )r   r  r   r    r"   r   r   r     r$   z'InviteeInfo._process_custom_annotations)r%   r&   r'   r(   r)   r   rt   r  r  r   r  r   r*   r   r   r"   r   r    s    


r  c                       sd   e Zd ZdZddgZdZ						d fdd	Zejddd	Z	ejd
dddZ
 fddZ  ZS )InviteeMembershipInfoz
    Information about an invited member of a shared content.

    :ivar sharing.InviteeMembershipInfo.invitee: Recipient of the invitation.
    :ivar sharing.InviteeMembershipInfo.user: The user this invitation is tied
        to, if available.
    _invitee_value_user_valueTNc                    sJ   t t| |||| tj| _tj| _|d ur|| _|d ur#|| _d S d S r   )	r   r  rM   rE   rF   r  r  inviteeuser)r   r  r  r  r  r  r  r"   r   r   rM     s   
zInviteeMembershipInfo.__init__r  rP   r  r   c                    r   r   )r   r  r   r    r"   r   r   r     r$   z1InviteeMembershipInfo._process_custom_annotationsrR   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r  r   r*   r   r   r"   r   r    s     	r  c                       rG  )JobErrora  
    Error occurred while performing an asynchronous job from
    :meth:`dropbox.dropbox_client.Dropbox.sharing_unshare_folder` or
    :meth:`dropbox.dropbox_client.Dropbox.sharing_remove_folder_member`.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar UnshareFolderError JobError.unshare_folder_error: Error occurred while
        performing :meth:`dropbox.dropbox_client.Dropbox.sharing_unshare_folder`
        action.
    :ivar RemoveFolderMemberError JobError.remove_folder_member_error: Error
        occurred while performing
        :meth:`dropbox.dropbox_client.Dropbox.sharing_remove_folder_member`
        action.
    :ivar RelinquishFolderMembershipError
        JobError.relinquish_folder_membership_error: Error occurred while
        performing
        :meth:`dropbox.dropbox_client.Dropbox.sharing_relinquish_folder_membership`
        action.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``unshare_folder_error`` tag
        with value ``val``.

        :param UnshareFolderError val:
        :rtype: JobError
        unshare_folder_errorr   rZ   r   r   r   r    r]   zJobError.unshare_folder_errorc                 C   rX   )z
        Create an instance of this class set to the
        ``remove_folder_member_error`` tag with value ``val``.

        :param RemoveFolderMemberError val:
        :rtype: JobError
        remove_folder_member_errorr   rZ   r   r   r   r    r]   z#JobError.remove_folder_member_errorc                 C   rX   )z
        Create an instance of this class set to the
        ``relinquish_folder_membership_error`` tag with value ``val``.

        :param RelinquishFolderMembershipError val:
        :rtype: JobError
        "relinquish_folder_membership_errorr   rZ   r   r   r   r    r]   z+JobError.relinquish_folder_membership_errorc                 C   r   )z[
        Check if the union tag is ``unshare_folder_error``.

        :rtype: bool
        r  r   r   r   r   r   is_unshare_folder_error'  r   z JobError.is_unshare_folder_errorc                 C   r   )za
        Check if the union tag is ``remove_folder_member_error``.

        :rtype: bool
        r  r   r   r   r   r   is_remove_folder_member_error/  r   z&JobError.is_remove_folder_member_errorc                 C   r   )zi
        Check if the union tag is ``relinquish_folder_membership_error``.

        :rtype: bool
        r  r   r   r   r   r   %is_relinquish_folder_membership_error7  r   z.JobError.is_relinquish_folder_membership_errorc                 C   r   r   r   r   r   r   r   r   ?  r   zJobError.is_otherc                 C   rh   )z
        Error occurred while performing
        :meth:`dropbox.dropbox_client.Dropbox.sharing_unshare_folder` action.

        Only call this if :meth:`is_unshare_folder_error` is true.

        :rtype: UnshareFolderError
        z"tag 'unshare_folder_error' not set)r  rl   rm   r   r   r   r   get_unshare_folder_errorG     	z!JobError.get_unshare_folder_errorc                 C   rh   )a   
        Error occurred while performing
        :meth:`dropbox.dropbox_client.Dropbox.sharing_remove_folder_member`
        action.

        Only call this if :meth:`is_remove_folder_member_error` is true.

        :rtype: RemoveFolderMemberError
        z(tag 'remove_folder_member_error' not set)r  rl   rm   r   r   r   r   get_remove_folder_member_errorT  r   z'JobError.get_remove_folder_member_errorc                 C   rh   )a  
        Error occurred while performing
        :meth:`dropbox.dropbox_client.Dropbox.sharing_relinquish_folder_membership`
        action.

        Only call this if :meth:`is_relinquish_folder_membership_error` is true.

        :rtype: RelinquishFolderMembershipError
        z0tag 'relinquish_folder_membership_error' not set)r  rl   rm   r   r   r   r   &get_relinquish_folder_membership_errorb  r   z/JobError.get_relinquish_folder_membership_errorc                    r   r   )r   r  r   r    r"   r   r   r   p  r$   z$JobError._process_custom_annotations)r%   r&   r'   r(   r)   r   rt   r  r  r  r  r  r  r   r  r  r  r   r*   r   r   r"   r   r    s$    





r  c                       H   e Zd ZdZdZedd Zdd Zdd Zd	d
 Z	 fddZ
  ZS )	JobStatusa\  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.JobStatus.complete: The asynchronous job has finished.
    :ivar JobError JobStatus.failed: The asynchronous job returned an error.
    Nc                 C   rX   )z
        Create an instance of this class set to the ``failed`` tag with value
        ``val``.

        :param JobError val:
        :rtype: JobStatus
        failedr   rZ   r   r   r   r    r]   zJobStatus.failedc                 C   r   zO
        Check if the union tag is ``complete``.

        :rtype: bool
        completer   r   r   r   r   is_complete  r   zJobStatus.is_completec                 C   r   zM
        Check if the union tag is ``failed``.

        :rtype: bool
        r  r   r   r   r   r   	is_failed  r   zJobStatus.is_failedc                 C   rh   )z
        The asynchronous job returned an error.

        Only call this if :meth:`is_failed` is true.

        :rtype: JobError
        tag 'failed' not setr#  rl   rm   r   r   r   r   
get_failed  r   zJobStatus.get_failedc                    r   r   )r   r  r   r    r"   r   r   r     r$   z%JobStatus._process_custom_annotations)r%   r&   r'   r(   r   rt   r  r!  r#  r&  r   r*   r   r   r"   r   r  u  s    


r  c                       r   )LinkAccessLevela  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.LinkAccessLevel.viewer: Users who use the link can view and
        comment on the content.
    :ivar sharing.LinkAccessLevel.editor: Users who use the link can edit, view
        and comment on the content.
    r   Nc                 C   r   r4   r   r   r   r   r   r6     r   zLinkAccessLevel.is_viewerc                 C   r   r1   r   r   r   r   r   r3     r   zLinkAccessLevel.is_editorc                 C   r   r   r   r   r   r   r   r     r   zLinkAccessLevel.is_otherc                    r   r   )r   r'  r   r    r"   r   r   r     r$   z+LinkAccessLevel._process_custom_annotations)r%   r&   r'   r(   r)   r5   r2   r   r6   r3   r   r   r*   r   r   r"   r   r'        r'  c                       x   e Zd ZdZdZdZdZdZdZdZ	dZ
dZdd Zdd Zdd	 Zd
d Zdd Zdd Zdd Z fddZ  ZS )
LinkActiona  
    Actions that can be performed on a link.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.LinkAction.change_access_level: Change the access level of the
        link.
    :ivar sharing.LinkAction.change_audience: Change the audience of the link.
    :ivar sharing.LinkAction.remove_expiry: Remove the expiry date of the link.
    :ivar sharing.LinkAction.remove_password: Remove the password of the link.
    :ivar sharing.LinkAction.set_expiry: Create or modify the expiry date of the
        link.
    :ivar sharing.LinkAction.set_password: Create or modify the password of the
        link.
    r   Nc                 C   r   )zZ
        Check if the union tag is ``change_access_level``.

        :rtype: bool
        change_access_levelr   r   r   r   r   is_change_access_level  r   z!LinkAction.is_change_access_levelc                 C   r   )zV
        Check if the union tag is ``change_audience``.

        :rtype: bool
        change_audiencer   r   r   r   r   is_change_audience
  r   zLinkAction.is_change_audiencec                 C   r   zT
        Check if the union tag is ``remove_expiry``.

        :rtype: bool
        remove_expiryr   r   r   r   r   is_remove_expiry  r   zLinkAction.is_remove_expiryc                 C   r   zV
        Check if the union tag is ``remove_password``.

        :rtype: bool
        remove_passwordr   r   r   r   r   is_remove_password  r   zLinkAction.is_remove_passwordc                 C   r   zQ
        Check if the union tag is ``set_expiry``.

        :rtype: bool
        
set_expiryr   r   r   r   r   is_set_expiry"  r   zLinkAction.is_set_expiryc                 C   r   zS
        Check if the union tag is ``set_password``.

        :rtype: bool
        set_passwordr   r   r   r   r   is_set_password*  r   zLinkAction.is_set_passwordc                 C   r   r   r   r   r   r   r   r   2  r   zLinkAction.is_otherc                    r   r   )r   r*  r   r    r"   r   r   r   :  r$   z&LinkAction._process_custom_annotations)r%   r&   r'   r(   r)   r+  r-  r0  r3  r6  r9  r   r,  r.  r1  r4  r7  r:  r   r   r*   r   r   r"   r   r*    s$    r*  c                       r,   )LinkAudiencea  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.LinkAudience.public: Link is accessible by anyone.
    :ivar sharing.LinkAudience.team: Link is accessible only by team members.
    :ivar sharing.LinkAudience.no_one: The link can be used by no one. The link
        merely points the user to the content, and does not grant additional
        rights to the user. Members of the content who use this link can only
        access the content with their pre-existing access rights.
    :ivar sharing.LinkAudience.password: Use `require_password` instead. A
        link-specific password is required to access the link. Login is not
        required.
    :ivar sharing.LinkAudience.members: Link is accessible only by members of
        the content.
    r   Nc                 C   r   r   r   r   r   r   r   r   `  r   zLinkAudience.is_publicc                 C   r   zK
        Check if the union tag is ``team``.

        :rtype: bool
        teamr   r   r   r   r   is_teamh  r   zLinkAudience.is_teamc                 C   r   r   r   r   r   r   r   r   p  r   zLinkAudience.is_no_onec                 C   r   r   r   r   r   r   r   r   x  r   zLinkAudience.is_passwordc                 C   r   zN
        Check if the union tag is ``members``.

        :rtype: bool
        rH   r   r   r   r   r   
is_members  r   zLinkAudience.is_membersc                 C   r   r   r   r   r   r   r   r     r   zLinkAudience.is_otherc                    r   r   )r   r;  r   r    r"   r   r   r     r$   z(LinkAudience._process_custom_annotations)r%   r&   r'   r(   r)   r   r=  r   r   rH   r   r   r>  r   r   r@  r   r   r*   r   r   r"   r   r;  ?  s     r;  c                       r)  ) VisibilityPolicyDisallowedReasonar  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.VisibilityPolicyDisallowedReason.delete_and_recreate: The user
        needs to delete and recreate the link to change the visibility policy.
    :ivar sharing.VisibilityPolicyDisallowedReason.restricted_by_shared_folder:
        The parent shared folder restricts sharing of links outside the shared
        folder. To change the visibility policy, remove the restriction from the
        parent shared folder.
    :ivar sharing.VisibilityPolicyDisallowedReason.restricted_by_team: The team
        policy prevents links being shared outside the team.
    :ivar sharing.VisibilityPolicyDisallowedReason.user_not_on_team: The user
        needs to be on a team to set this policy.
    :ivar sharing.VisibilityPolicyDisallowedReason.user_account_type: The user
        is a basic user or is on a limited team.
    :ivar sharing.VisibilityPolicyDisallowedReason.permission_denied: The user
        does not have permission.
    r   Nc                 C   r   )zZ
        Check if the union tag is ``delete_and_recreate``.

        :rtype: bool
        delete_and_recreater   r   r   r   r   is_delete_and_recreate  r   z7VisibilityPolicyDisallowedReason.is_delete_and_recreatec                 C   r   )zb
        Check if the union tag is ``restricted_by_shared_folder``.

        :rtype: bool
        restricted_by_shared_folderr   r   r   r   r   is_restricted_by_shared_folder  r   z?VisibilityPolicyDisallowedReason.is_restricted_by_shared_folderc                 C   r   zY
        Check if the union tag is ``restricted_by_team``.

        :rtype: bool
        restricted_by_teamr   r   r   r   r   is_restricted_by_team  r   z6VisibilityPolicyDisallowedReason.is_restricted_by_teamc                 C   r   zW
        Check if the union tag is ``user_not_on_team``.

        :rtype: bool
        user_not_on_teamr   r   r   r   r   is_user_not_on_team  r   z4VisibilityPolicyDisallowedReason.is_user_not_on_teamc                 C   r   zX
        Check if the union tag is ``user_account_type``.

        :rtype: bool
        user_account_typer   r   r   r   r   is_user_account_type  r   z5VisibilityPolicyDisallowedReason.is_user_account_typec                 C   r   zX
        Check if the union tag is ``permission_denied``.

        :rtype: bool
        permission_deniedr   r   r   r   r   is_permission_denied  r   z5VisibilityPolicyDisallowedReason.is_permission_deniedc                 C   r   r   r   r   r   r   r   r     r   z)VisibilityPolicyDisallowedReason.is_otherc                    r   r   )r   rA  r   r    r"   r   r   r     r$   z<VisibilityPolicyDisallowedReason._process_custom_annotations)r%   r&   r'   r(   r)   rB  rD  rG  rJ  rM  rP  r   rC  rE  rH  rK  rN  rQ  r   r   r*   r   r   r"   r   rA    s$    rA  c                       r   )LinkAudienceDisallowedReasona  
    check documentation for VisibilityPolicyDisallowedReason.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.
    c                    r   r   )r   rR  r   r    r"   r   r   r     r$   z8LinkAudienceDisallowedReason._process_custom_annotationsr   r   r   r"   r   rR    r   rR  c                       r  )LinkAudienceOptiona  
    :ivar sharing.LinkAudienceOption.audience: Specifies who can access the
        link.
    :ivar sharing.LinkAudienceOption.allowed: Whether the user calling this API
        can select this audience option.
    :ivar sharing.LinkAudienceOption.disallowed_reason: If ``allowed`` is
        ``False``, this will provide the reason that the user is not permitted
        to set the visibility to this policy.
    )r   _allowed_value_disallowed_reason_valueTNc                 C   r   r   )rE   rF   r   rT  rU  r   alloweddisallowed_reason)r   r   rV  rW  r   r   r   rM     r   zLinkAudienceOption.__init__r   rP   rV  rW  r   c                    r   r   )r   rS  r   r    r"   r   r   r   0  r$   z.LinkAudienceOption._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r   rV  rW  r   r*   r   r   r"   r   rS    s    


rS  c                       X   e Zd ZdZdZdZdZedd Zdd Z	dd	 Z
d
d Zdd Z fddZ  ZS )
LinkExpirya  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.LinkExpiry.remove_expiry: Remove the currently set expiry for
        the link.
    :ivar datetime.datetime sharing.LinkExpiry.set_expiry: Set a new expiry or
        change an existing expiry.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``set_expiry`` tag with
        value ``val``.

        :param datetime.datetime val:
        :rtype: LinkExpiry
        r6  r   rZ   r   r   r   r6  G  r]   zLinkExpiry.set_expiryc                 C   r   r/  r   r   r   r   r   r1  R  r   zLinkExpiry.is_remove_expiryc                 C   r   r5  r   r   r   r   r   r7  Z  r   zLinkExpiry.is_set_expiryc                 C   r   r   r   r   r   r   r   r   b  r   zLinkExpiry.is_otherc                 C   rh   )z
        Set a new expiry or change an existing expiry.

        Only call this if :meth:`is_set_expiry` is true.

        :rtype: datetime.datetime
        ztag 'set_expiry' not set)r7  rl   rm   r   r   r   r   get_set_expiryj  r   zLinkExpiry.get_set_expiryc                    r   r   )r   rY  r   r    r"   r   r   r   v  r$   z&LinkExpiry._process_custom_annotations)r%   r&   r'   r(   r)   r0  r   rt   r6  r1  r7  r   rZ  r   r*   r   r   r"   r   rY  5      

rY  c                       rX  )LinkPassworda  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.LinkPassword.remove_password: Remove the currently set
        password for the link.
    :ivar str sharing.LinkPassword.set_password: Set a new password or change an
        existing password.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``set_password`` tag with
        value ``val``.

        :param str val:
        :rtype: LinkPassword
        r9  r   rZ   r   r   r   r9    r]   zLinkPassword.set_passwordc                 C   r   r2  r   r   r   r   r   r4    r   zLinkPassword.is_remove_passwordc                 C   r   r8  r   r   r   r   r   r:    r   zLinkPassword.is_set_passwordc                 C   r   r   r   r   r   r   r   r     r   zLinkPassword.is_otherc                 C   rh   )z
        Set a new password or change an existing password.

        Only call this if :meth:`is_set_password` is true.

        :rtype: str
        ztag 'set_password' not set)r:  rl   rm   r   r   r   r   get_set_password  r   zLinkPassword.get_set_passwordc                    r   r   )r   r\  r   r    r"   r   r   r     r$   z(LinkPassword._process_custom_annotations)r%   r&   r'   r(   r)   r3  r   rt   r9  r4  r:  r   r]  r   r*   r   r   r"   r   r\  {  r[  r\  c                       r  )LinkPermissionzB
    Permissions for actions that can be performed on a link.
    r  TNc                 C   r   r   r  r  r   r   r   rM     r   zLinkPermission.__init__r  rP   r  r  r   c                    r   r   )r   r^  r   r    r"   r   r   r     r$   z*LinkPermission._process_custom_annotationsr   r  r   r   r"   r   r^    s    

r^  c                       sL  e Zd ZdZg dZdZ																			dddZejddddZ	ejd	dddZ
ed
ZejddddZejddddZejddddZedZedZedZedZedZedZedZedZejdddZejdddZejdddZejdddZejdddZ fddZ  ZS )LinkPermissionsa7  
    :ivar sharing.LinkPermissions.resolved_visibility: The current visibility of
        the link after considering the shared links policies of the the team (in
        case the link's owner is part of a team) and the shared folder (in case
        the linked file is part of a shared folder). This field is shown only if
        the caller has access to this info (the link's owner always has access
        to this data). For some links, an effective_audience value is returned
        instead.
    :ivar sharing.LinkPermissions.requested_visibility: The shared link's
        requested visibility. This can be overridden by the team and shared
        folder policies. The final visibility, after considering these policies,
        can be found in ``resolved_visibility``. This is shown only if the
        caller is the link's owner and resolved_visibility is returned instead
        of effective_audience.
    :ivar sharing.LinkPermissions.can_revoke: Whether the caller can revoke the
        shared link.
    :ivar sharing.LinkPermissions.revoke_failure_reason: The failure reason for
        revoking the link. This field will only be present if the ``can_revoke``
        is ``False``.
    :ivar sharing.LinkPermissions.effective_audience: The type of audience who
        can benefit from the access level specified by the `link_access_level`
        field.
    :ivar sharing.LinkPermissions.link_access_level: The access level that the
        link will grant to its users. A link can grant additional rights to a
        user beyond their current access level. For example, if a user was
        invited as a viewer to a file, and then opens a link with
        `link_access_level` set to `editor`, then they will gain editor
        privileges. The `link_access_level` is a property of the link, and does
        not depend on who is calling this API. In particular,
        `link_access_level` does not take into account the API caller's current
        permissions to the content.
    :ivar sharing.LinkPermissions.visibility_policies: A list of policies that
        the user might be able to set for the visibility.
    :ivar sharing.LinkPermissions.can_set_expiry: Whether the user can set the
        expiry settings of the link. This refers to the ability to create a new
        expiry and modify an existing expiry.
    :ivar sharing.LinkPermissions.can_remove_expiry: Whether the user can remove
        the expiry of the link.
    :ivar sharing.LinkPermissions.allow_download: Whether the link can be
        downloaded or not.
    :ivar sharing.LinkPermissions.can_allow_download: Whether the user can allow
        downloads via the link. This refers to the ability to remove a
        no-download restriction on the link.
    :ivar sharing.LinkPermissions.can_disallow_download: Whether the user can
        disallow downloads via the link. This refers to the ability to impose a
        no-download restriction on the link.
    :ivar sharing.LinkPermissions.allow_comments: Whether comments are enabled
        for the linked file. This takes the team commenting policy into account.
    :ivar sharing.LinkPermissions.team_restricts_comments: Whether the team has
        disabled commenting globally.
    :ivar sharing.LinkPermissions.audience_options: A list of link audience
        options the user might be able to set as the new audience.
    :ivar sharing.LinkPermissions.can_set_password: Whether the user can set a
        password for the link.
    :ivar sharing.LinkPermissions.can_remove_password: Whether the user can
        remove the password of the link.
    :ivar sharing.LinkPermissions.require_password: Whether the user is required
        to provide a password to view the link.
    :ivar sharing.LinkPermissions.can_use_extended_sharing_controls: Whether the
        user can use extended sharing controls, based on their account type.
    )_resolved_visibility_value_requested_visibility_value_can_revoke_value_revoke_failure_reason_value_effective_audience_value_link_access_level_value_visibility_policies_value_can_set_expiry_value_can_remove_expiry_value_allow_download_value_can_allow_download_value_can_disallow_download_value_allow_comments_value_team_restricts_comments_valuer  _can_set_password_value_can_remove_password_value_require_password_value(_can_use_extended_sharing_controls_valueTNc                 C   s  t j| _t j| _t j| _t j| _t j| _t j| _t j| _t j| _	t j| _
t j| _t j| _t j| _t j| _t j| _t j| _t j| _t j| _t j| _t j| _|
d urS|
| _|d urZ|| _|d ura|| _|d urh|| _|d uro|| _|d urv|| _|d ur}|| _|d ur|| _|d ur|| _|d ur|| _|d ur|| _|d ur|| _ |d ur|| _!|	d ur|	| _"|d ur|| _#|d ur|| _$|d ur|| _%|d ur|| _&|d ur|| _'d S d S r   )(rE   rF   r`  ra  rb  rc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  r  rn  ro  rp  rq  resolved_visibilityrequested_visibility
can_revokerevoke_failure_reasoneffective_audiencelink_access_levelvisibility_policiescan_set_expirycan_remove_expiryallow_downloadcan_allow_downloadcan_disallow_downloadallow_commentsteam_restricts_commentsr  can_set_passwordcan_remove_passwordrequire_password!can_use_extended_sharing_controls)r   rt  rx  ry  rz  r{  r|  r}  r~  r  rr  rs  ru  rv  rw  r  r  r  r  r  r   r   r   rM   A  st   
zLinkPermissions.__init__rr  r   rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  r  rN   r  r  r  r  c                    r   r   )r   r_  r   r    r"   r   r   r     r$   z+LinkPermissions._process_custom_annotations)NNNNNNNNNNNNNNNNNNN)r%   r&   r'   r(   rS   rT   rM   rE   rU   rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  r  r  r  r  r  r   r*   r   r   r"   r   r_    sX    >
O








r_  c                       s~   e Zd ZdZg dZdZ				dddZejdddd	Z	ejd
ddd	Z
ejdddd	Zejdddd	Z fddZ  ZS )LinkSettingsa  
    Settings that apply to a link.

    :ivar sharing.LinkSettings.access_level: The access level on the link for
        this file. Currently, it only accepts 'viewer' and 'viewer_no_comment'.
    :ivar sharing.LinkSettings.audience: The type of audience on the link for
        this file.
    :ivar sharing.LinkSettings.expiry: An expiry timestamp to set on a link.
    :ivar sharing.LinkSettings.password: The password for the link.
    )rC   r   r  _password_valueFNc                 C   rx   r   )
rE   rF   rC   r   r  r  rK   r   r  r   )r   rK   r   r  r   r   r   r   rM     rz   zLinkSettings.__init__rK   Tr   r   r  r   c                    r   r   )r   r  r   r    r"   r   r   r      r$   z(LinkSettings._process_custom_annotationsr{   )r%   r&   r'   r(   rS   rT   rM   rE   rU   rK   r   r  r   r   r*   r   r   r"   r   r    s    
r  c                       sj   e Zd ZdZg dZdZ				dddZedZ	ejddd	Z
ed
ZedZ fddZ  ZS )ListFileMembersArgaB  
    Arguments for
    :meth:`dropbox.dropbox_client.Dropbox.sharing_list_file_members`.

    :ivar sharing.ListFileMembersArg.file: The file for which you want to see
        members.
    :ivar sharing.ListFileMembersArg.actions: The actions for which to return
        permissions on a member.
    :ivar sharing.ListFileMembersArg.include_inherited: Whether to include
        members who only have access from a parent shared folder.
    :ivar sharing.ListFileMembersArg.limit: Number of members to return max per
        query. Defaults to 100 if no limit is specified.
    )r?   r  _include_inherited_value_limit_valueTNc                 C   rx   r   )
rE   rF   r?   r  r  r  rG   r  include_inheritedlimit)r   rG   r  r  r  r   r   r   rM     rz   zListFileMembersArg.__init__rG   r  rN   r  r  c                    r   r   )r   r  r   r    r"   r   r   r   ;  r$   z.ListFileMembersArg._process_custom_annotationsr{   )r%   r&   r'   r(   rS   rT   rM   rE   rU   rG   r  r  r  r   r*   r   r   r"   r   r    s    



r  c                       r   )ListFileMembersBatchArgaM  
    Arguments for
    :meth:`dropbox.dropbox_client.Dropbox.sharing_list_file_members_batch`.

    :ivar sharing.ListFileMembersBatchArg.files: Files for which to return
        members.
    :ivar sharing.ListFileMembersBatchArg.limit: Number of members to return max
        per query. Defaults to 10 if no limit is specified.
    r  r  TNc                 C   r   r   )rE   rF   r  r  r   r  )r   r   r  r   r   r   rM   R  r   z ListFileMembersBatchArg.__init__r   r  c                    r   r   )r   r  r   r    r"   r   r   r   b  r$   z3ListFileMembersBatchArg._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r   r  r   r*   r   r   r"   r   r  @  s    


r  c                       r  )ListFileMembersBatchResultaC  
    Per-file result for
    :meth:`dropbox.dropbox_client.Dropbox.sharing_list_file_members_batch`.

    :ivar sharing.ListFileMembersBatchResult.file: This is the input file
        identifier, whether an ID or a path.
    :ivar sharing.ListFileMembersBatchResult.result: The result for this
        particular file.
    r?   r~  TNc                 C   r   r   r  r  r   r   r   rM   y  r   z#ListFileMembersBatchResult.__init__rG   r  rP   c                    r   r   )r   r  r   r    r"   r   r   r     r$   z6ListFileMembersBatchResult._process_custom_annotationsr   r  r   r   r"   r   r  g  r  r  c                       r   )ListFileMembersContinueArga  
    Arguments for
    :meth:`dropbox.dropbox_client.Dropbox.sharing_list_file_members_continue`.

    :ivar sharing.ListFileMembersContinueArg.cursor: The cursor returned by your
        last call to
        :meth:`dropbox.dropbox_client.Dropbox.sharing_list_file_members`,
        :meth:`dropbox.dropbox_client.Dropbox.sharing_list_file_members_continue`,
        or
        :meth:`dropbox.dropbox_client.Dropbox.sharing_list_file_members_batch`.
    _cursor_valueTNc                 C   r   r   rE   rF   r  cursorr   r  r   r   r   rM     r   z#ListFileMembersContinueArg.__init__r  c                    r   r   )r   r  r   r    r"   r   r   r     r$   z6ListFileMembersContinueArg._process_custom_annotationsr   r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r   r*   r   r   r"   r   r    s    

r  c                       st   e Zd ZdZdZdZdZedd Zedd Z	dd	 Z
d
d Zdd Zdd Zdd Zdd Z fddZ  ZS )ListFileMembersContinueErrora  
    Error for
    :meth:`dropbox.dropbox_client.Dropbox.sharing_list_file_members_continue`.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.ListFileMembersContinueError.invalid_cursor:
        ``ListFileMembersContinueArg.cursor`` is invalid.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``user_error`` tag with
        value ``val``.

        :param SharingUserError val:
        :rtype: ListFileMembersContinueError
        rY   r   rZ   r   r   r   rY     r]   z'ListFileMembersContinueError.user_errorc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharingFileAccessError val:
        :rtype: ListFileMembersContinueError
        r^   r   rZ   r   r   r   r^     r]   z)ListFileMembersContinueError.access_errorc                 C   r   r_   r   r   r   r   r   r`     r   z*ListFileMembersContinueError.is_user_errorc                 C   r   ra   r   r   r   r   r   rb     r   z,ListFileMembersContinueError.is_access_errorc                 C   r   zU
        Check if the union tag is ``invalid_cursor``.

        :rtype: bool
        invalid_cursorr   r   r   r   r   is_invalid_cursor  r   z.ListFileMembersContinueError.is_invalid_cursorc                 C   r   r   r   r   r   r   r   r     r   z%ListFileMembersContinueError.is_otherc                 C   rh   ri   rk   r   r   r   r   rn     ro   z+ListFileMembersContinueError.get_user_errorc                 C   rh   rp   rr   r   r   r   r   rs     ro   z-ListFileMembersContinueError.get_access_errorc                    r   r   )r   r  r   r    r"   r   r   r     r$   z8ListFileMembersContinueError._process_custom_annotations)r%   r&   r'   r(   r)   r  r   rt   rY   r^   r`   rb   r  r   rn   rs   r   r*   r   r   r"   r   r    s     





r  c                       R   e Zd ZdZddgZdZ		dddZejddd	Z	ed
Z
 fddZ  ZS )ListFileMembersCountResultz
    :ivar sharing.ListFileMembersCountResult.members: A list of members on this
        file.
    :ivar sharing.ListFileMembersCountResult.member_count: The number of members
        on this file. This does not include inherited members.
    r@   _member_count_valueTNc                 C   r   r   )rE   rF   r@   r  rH   r  )r   rH   r  r   r   r   rM      r   z#ListFileMembersCountResult.__init__rH   rP   r  c                    r   r   )r   r  r   r    r"   r   r   r   0  r$   z6ListFileMembersCountResult._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   rH   r  r   r*   r   r   r"   r   r        

r  c                       r  )ListFileMembersErrora  
    Error for :meth:`dropbox.dropbox_client.Dropbox.sharing_list_file_members`.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``user_error`` tag with
        value ``val``.

        :param SharingUserError val:
        :rtype: ListFileMembersError
        rY   r   rZ   r   r   r   rY   B  r]   zListFileMembersError.user_errorc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharingFileAccessError val:
        :rtype: ListFileMembersError
        r^   r   rZ   r   r   r   r^   M  r]   z!ListFileMembersError.access_errorc                 C   r   r_   r   r   r   r   r   r`   X  r   z"ListFileMembersError.is_user_errorc                 C   r   ra   r   r   r   r   r   rb   `  r   z$ListFileMembersError.is_access_errorc                 C   r   r   r   r   r   r   r   r   h  r   zListFileMembersError.is_otherc                 C   rh   ri   rk   r   r   r   r   rn   p  ro   z#ListFileMembersError.get_user_errorc                 C   rh   rp   rr   r   r   r   r   rs   z  ro   z%ListFileMembersError.get_access_errorc                    r   r   )r   r  r   r    r"   r   r   r     r$   z0ListFileMembersError._process_custom_annotationsr  r   r   r"   r   r  5  s    





r  c                       r  )ListFileMembersIndividualResulta  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar ListFileMembersCountResult ListFileMembersIndividualResult.result: The
        results of the query for this file if it was successful.
    :ivar SharingFileAccessError ListFileMembersIndividualResult.access_error:
        The result of the query for this file if it was an error.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``result`` tag with value
        ``val``.

        :param ListFileMembersCountResult val:
        :rtype: ListFileMembersIndividualResult
        r  r   rZ   r   r   r   r    r]   z&ListFileMembersIndividualResult.resultc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharingFileAccessError val:
        :rtype: ListFileMembersIndividualResult
        r^   r   rZ   r   r   r   r^     r]   z,ListFileMembersIndividualResult.access_errorc                 C   r   )zM
        Check if the union tag is ``result``.

        :rtype: bool
        r  r   r   r   r   r   	is_result  r   z)ListFileMembersIndividualResult.is_resultc                 C   r   ra   r   r   r   r   r   rb     r   z/ListFileMembersIndividualResult.is_access_errorc                 C   r   r   r   r   r   r   r   r     r   z(ListFileMembersIndividualResult.is_otherc                 C   rh   )z
        The results of the query for this file if it was successful.

        Only call this if :meth:`is_result` is true.

        :rtype: ListFileMembersCountResult
        ztag 'result' not set)r  rl   rm   r   r   r   r   
get_result  r   z*ListFileMembersIndividualResult.get_resultc                 C   rh   )z
        The result of the query for this file if it was an error.

        Only call this if :meth:`is_access_error` is true.

        :rtype: SharingFileAccessError
        rq   rr   r   r   r   r   rs     r   z0ListFileMembersIndividualResult.get_access_errorc                    r   r   )r   r  r   r    r"   r   r   r     r$   z;ListFileMembersIndividualResult._process_custom_annotations)r%   r&   r'   r(   r)   r   rt   r  r^   r  rb   r   r  rs   r   r*   r   r   r"   r   r    r  r  c                       R   e Zd ZdZddgZdZ		dddZedZ	ejd	d
dZ
 fddZ  ZS )ListFilesArga  
    Arguments for
    :meth:`dropbox.dropbox_client.Dropbox.sharing_list_received_files`.

    :ivar sharing.ListFilesArg.limit: Number of files to return max per query.
        Defaults to 100 if no limit is specified.
    :ivar sharing.ListFilesArg.actions: A list of `FileAction`s corresponding to
        `FilePermission`s that should appear in the  response's
        ``SharedFileMetadata.permissions`` field describing the actions the
        authenticated user can perform on the file.
    r  r  FNc                 C   r   r   rE   rF   r  r  r  r  r   r  r  r   r   r   rM     r   zListFilesArg.__init__r  r  TrN   c                    r   r   )r   r  r   r    r"   r   r   r     r$   z(ListFilesArg._process_custom_annotationsr   r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r  r   r*   r   r   r"   r   r    s    

r  c                       r   )ListFilesContinueArgz
    Arguments for
    :meth:`dropbox.dropbox_client.Dropbox.sharing_list_received_files_continue`.

    :ivar sharing.ListFilesContinueArg.cursor: Cursor in
        ``ListFilesResult.cursor``.
    r  TNc                 C   r   r   r  r  r   r   r   rM     r   zListFilesContinueArg.__init__r  c                    r   r   )r   r  r   r    r"   r   r   r   %  r$   z0ListFilesContinueArg._process_custom_annotationsr   r  r   r   r"   r   r    r   r  c                       rX  )ListFilesContinueErrora  
    Error results for
    :meth:`dropbox.dropbox_client.Dropbox.sharing_list_received_files_continue`.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar SharingUserError ListFilesContinueError.user_error: User account had a
        problem.
    :ivar sharing.ListFilesContinueError.invalid_cursor:
        ``ListFilesContinueArg.cursor`` is invalid.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``user_error`` tag with
        value ``val``.

        :param SharingUserError val:
        :rtype: ListFilesContinueError
        rY   r   rZ   r   r   r   rY   ?  r]   z!ListFilesContinueError.user_errorc                 C   r   r_   r   r   r   r   r   r`   J  r   z$ListFilesContinueError.is_user_errorc                 C   r   r  r   r   r   r   r   r  R  r   z(ListFilesContinueError.is_invalid_cursorc                 C   r   r   r   r   r   r   r   r   Z  r   zListFilesContinueError.is_otherc                 C   rh   )z
        User account had a problem.

        Only call this if :meth:`is_user_error` is true.

        :rtype: SharingUserError
        rj   rk   r   r   r   r   rn   b  r   z%ListFilesContinueError.get_user_errorc                    r   r   )r   r  r   r    r"   r   r   r   n  r$   z2ListFilesContinueError._process_custom_annotations)r%   r&   r'   r(   r)   r  r   rt   rY   r`   r  r   rn   r   r*   r   r   r"   r   r  *  s    

r  c                       r  )ListFilesResulta0  
    Success results for
    :meth:`dropbox.dropbox_client.Dropbox.sharing_list_received_files`.

    :ivar sharing.ListFilesResult.entries: Information about the files shared
        with current user.
    :ivar sharing.ListFilesResult.cursor: Cursor used to obtain additional
        shared files.
    _entries_valuer  TNc                 C   r   r   rE   rF   r  r  entriesr  r   r  r  r   r   r   rM     r   zListFilesResult.__init__r  r  rN   c                    r   r   )r   r  r   r    r"   r   r   r     r$   z+ListFilesResult._process_custom_annotationsr   r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r  r   r*   r   r   r"   r   r  s  r  r  c                       sR   e Zd ZdZddgZdZ		dddZejdd	d
Z	edZ
 fddZ  ZS )ListFolderMembersCursorArga  
    :ivar sharing.ListFolderMembersCursorArg.actions: This is a list indicating
        whether each returned member will include a boolean value
        ``MemberPermission.allow`` that describes whether the current user can
        perform the MemberAction on the member.
    :ivar sharing.ListFolderMembersCursorArg.limit: The maximum number of
        results that include members, groups and invitees to return per request.
    r  r  FNc                 C   r   r   )rE   rF   r  r  r  r  )r   r  r  r   r   r   rM     r   z#ListFolderMembersCursorArg.__init__r  TrN   r  c                    r   r   )r   r  r   r    r"   r   r   r     r$   z6ListFolderMembersCursorArg._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r  r   r*   r   r   r"   r   r    s    


r  c                       sH   e Zd ZdZdgZdZ			d
 fdd	ZedZ	 fdd	Z
  ZS )ListFolderMembersArgsze
    :ivar sharing.ListFolderMembersArgs.shared_folder_id: The ID for the shared
        folder.
    rw   TNc                    s0   t t| || tj| _|d ur|| _d S d S r   )r   r  rM   rE   rF   rw   ry   )r   ry   r  r  r"   r   r   rM     s   
zListFolderMembersArgs.__init__ry   c                    r   r   )r   r  r   r    r"   r   r   r     r$   z1ListFolderMembersArgs._process_custom_annotationsr   r%   r&   r'   r(   rS   rT   rM   rE   rU   ry   r   r*   r   r   r"   r   r    s    
r  c                       r   )ListFolderMembersContinueArga  
    :ivar sharing.ListFolderMembersContinueArg.cursor: The cursor returned by
        your last call to
        :meth:`dropbox.dropbox_client.Dropbox.sharing_list_folder_members` or
        :meth:`dropbox.dropbox_client.Dropbox.sharing_list_folder_members_continue`.
    r  TNc                 C   r   r   r  r  r   r   r   rM     r   z%ListFolderMembersContinueArg.__init__r  c                    r   r   )r   r  r   r    r"   r   r   r     r$   z8ListFolderMembersContinueArg._process_custom_annotationsr   r  r   r   r"   r   r    s    

r  c                       rX  )ListFolderMembersContinueErroraC  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.ListFolderMembersContinueError.invalid_cursor:
        ``ListFolderMembersContinueArg.cursor`` is invalid.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharedFolderAccessError val:
        :rtype: ListFolderMembersContinueError
        r^   r   rZ   r   r   r   r^   
  r]   z+ListFolderMembersContinueError.access_errorc                 C   r   ra   r   r   r   r   r   rb     r   z.ListFolderMembersContinueError.is_access_errorc                 C   r   r  r   r   r   r   r   r    r   z0ListFolderMembersContinueError.is_invalid_cursorc                 C   r   r   r   r   r   r   r   r   %  r   z'ListFolderMembersContinueError.is_otherc                 C   rh   zm
        Only call this if :meth:`is_access_error` is true.

        :rtype: SharedFolderAccessError
        rq   rr   r   r   r   r   rs   -  ro   z/ListFolderMembersContinueError.get_access_errorc                    r   r   )r   r  r   r    r"   r   r   r   7  r$   z:ListFolderMembersContinueError._process_custom_annotations)r%   r&   r'   r(   r)   r  r   rt   r^   rb   r  r   rs   r   r*   r   r   r"   r   r    s    	


r  c                       r  )ListFoldersArgsa  
    :ivar sharing.ListFoldersArgs.limit: The maximum number of results to return
        per request.
    :ivar sharing.ListFoldersArgs.actions: A list of `FolderAction`s
        corresponding to `FolderPermission`s that should appear in the
        response's ``SharedFolderMetadata.permissions`` field describing the
        actions the  authenticated user can perform on the folder.
    r  r  FNc                 C   r   r   r  r  r   r   r   rM   M  r   zListFoldersArgs.__init__r  r  TrN   c                    r   r   )r   r  r   r    r"   r   r   r   ]  r$   z+ListFoldersArgs._process_custom_annotationsr   r  r   r   r"   r   r  <  r  r  c                       r   )ListFoldersContinueArgz
    :ivar sharing.ListFoldersContinueArg.cursor: The cursor returned by the
        previous API call specified in the endpoint description.
    r  TNc                 C   r   r   r  r  r   r   r   rM   n  r   zListFoldersContinueArg.__init__r  c                    r   r   )r   r  r   r    r"   r   r   r   w  r$   z2ListFoldersContinueArg._process_custom_annotationsr   r  r   r   r"   r   r  b  r  r  c                       <   e Zd ZdZdZdZdZdd Zdd Z fdd	Z	  Z
S )
ListFoldersContinueErrora7  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.ListFoldersContinueError.invalid_cursor:
        ``ListFoldersContinueArg.cursor`` is invalid.
    r   Nc                 C   r   r  r   r   r   r   r   r    r   z*ListFoldersContinueError.is_invalid_cursorc                 C   r   r   r   r   r   r   r   r     r   z!ListFoldersContinueError.is_otherc                    r   r   )r   r  r   r    r"   r   r   r     r$   z4ListFoldersContinueError._process_custom_annotations)r%   r&   r'   r(   r)   r  r   r  r   r   r*   r   r   r"   r   r  |  s    	r  c                       r  )ListFoldersResultaC  
    Result for :meth:`dropbox.dropbox_client.Dropbox.sharing_list_folders` or
    :meth:`dropbox.dropbox_client.Dropbox.sharing_list_mountable_folders`,
    depending on which endpoint was requested. Unmounted shared folders can be
    identified by the absence of ``SharedFolderMetadata.path_lower``.

    :ivar sharing.ListFoldersResult.entries: List of all shared folders the
        authenticated user has access to.
    :ivar sharing.ListFoldersResult.cursor: Present if there are additional
        shared folders that have not been returned yet. Pass the cursor into the
        corresponding continue endpoint (either
        :meth:`dropbox.dropbox_client.Dropbox.sharing_list_folders_continue` or
        :meth:`dropbox.dropbox_client.Dropbox.sharing_list_mountable_folders_continue`)
        to list additional folders.
    r  r  TNc                 C   r   r   r  r  r   r   r   rM     r   zListFoldersResult.__init__r  r  rN   c                    r   r   )r   r  r   r    r"   r   r   r     r$   z-ListFoldersResult._process_custom_annotationsr   r  r   r   r"   r   r    s    

r  c                       sf   e Zd ZdZg dZdZ			dddZejddd	Z	ejd
dd	Z
ejddd	Z fddZ  ZS )ListSharedLinksArga  
    :ivar sharing.ListSharedLinksArg.path: See
        :meth:`dropbox.dropbox_client.Dropbox.sharing_list_shared_links`
        description.
    :ivar sharing.ListSharedLinksArg.cursor: The cursor returned by your last
        call to
        :meth:`dropbox.dropbox_client.Dropbox.sharing_list_shared_links`.
    :ivar sharing.ListSharedLinksArg.direct_only: See
        :meth:`dropbox.dropbox_client.Dropbox.sharing_list_shared_links`
        description.
    )r   r  _direct_only_valueFNc                 C   r   r   )rE   rF   r   r  r  r   r  direct_only)r   r   r  r  r   r   r   rM     r   zListSharedLinksArg.__init__r   TrN   r  r  c                    r   r   )r   r  r   r    r"   r   r   r     r$   z.ListSharedLinksArg._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r   r  r  r   r*   r   r   r"   r   r    s    
r  c                       rX  )ListSharedLinksErrora  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.ListSharedLinksError.reset: Indicates that the cursor has been
        invalidated. Call
        :meth:`dropbox.dropbox_client.Dropbox.sharing_list_shared_links` to
        obtain a new cursor.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``path`` tag with value
        ``val``.

        :param files.LookupError val:
        :rtype: ListSharedLinksError
        r   r   rZ   r   r   r   r     r]   zListSharedLinksError.pathc                 C   r   r   r   r   r   r   r   r     r   zListSharedLinksError.is_pathc                 C   r   )zL
        Check if the union tag is ``reset``.

        :rtype: bool
        resetr   r   r   r   r   is_reset$  r   zListSharedLinksError.is_resetc                 C   r   r   r   r   r   r   r   r   ,  r   zListSharedLinksError.is_otherc                 C   rh   r   r   r   r   r   r   r   4  ro   zListSharedLinksError.get_pathc                    r   r   )r   r  r   r    r"   r   r   r   >  r$   z0ListSharedLinksError._process_custom_annotations)r%   r&   r'   r(   r)   r  r   rt   r   r   r  r   r   r   r*   r   r   r"   r   r    s    


r  c                       r   )ListSharedLinksResultaU  
    :ivar sharing.ListSharedLinksResult.links: Shared links applicable to the
        path argument.
    :ivar sharing.ListSharedLinksResult.has_more: Is true if there are
        additional shared links that have not been returned yet. Pass the cursor
        into :meth:`dropbox.dropbox_client.Dropbox.sharing_list_shared_links` to
        retrieve them.
    :ivar sharing.ListSharedLinksResult.cursor: Pass the cursor into
        :meth:`dropbox.dropbox_client.Dropbox.sharing_list_shared_links` to
        obtain the additional links. Cursor is returned only if no path is
        given.
    )r  _has_more_valuer  TNc                 C   r   r   )rE   rF   r  r  r  r  has_morer  )r   r  r  r  r   r   r   rM   Y  r   zListSharedLinksResult.__init__r  r  r  rN   c                    r   r   )r   r  r   r    r"   r   r   r   p  r$   z1ListSharedLinksResult._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r  r  r   r*   r   r   r"   r   r  C  s    


r  c                       sh   e Zd ZdZg dZdZ			dddZejdddd	Z	ejd
ddZ
ejdddZ fddZ  ZS )MemberAccessLevelResulta}  
    Contains information about a member's access level to content after an
    operation.

    :ivar sharing.MemberAccessLevelResult.access_level: The member still has
        this level of access to the content through a parent folder.
    :ivar sharing.MemberAccessLevelResult.warning: A localized string with
        additional information about why the user has this access level to the
        content.
    :ivar sharing.MemberAccessLevelResult.access_details: The parent folders
        that a member has access to. The field is present if the user has access
        to the first parent folder where the member gains access.
    )rC   _warning_value_access_details_valueFNc                 C   r   r   )rE   rF   rC   r  r  rK   warningaccess_details)r   rK   r  r  r   r   r   rM     r   z MemberAccessLevelResult.__init__rK   Tr   r  rN   r  c                    r   r   )r   r  r   r    r"   r   r   r     r$   z3MemberAccessLevelResult._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   rK   r  r  r   r*   r   r   r"   r   r  u  s    
r  c                       r)  )MemberActionaZ  
    Actions that may be taken on members of a shared folder.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.MemberAction.leave_a_copy: Allow the member to keep a copy of
        the folder when removing.
    :ivar sharing.MemberAction.make_editor: Make the member an editor of the
        folder.
    :ivar sharing.MemberAction.make_owner: Make the member an owner of the
        folder.
    :ivar sharing.MemberAction.make_viewer: Make the member a viewer of the
        folder.
    :ivar sharing.MemberAction.make_viewer_no_comment: Make the member a viewer
        of the folder without commenting permissions.
    :ivar sharing.MemberAction.remove: Remove the member from the folder.
    r   Nc                 C   r   r  r   r   r   r   r   r    r   zMemberAction.is_leave_a_copyc                 C   r   )zR
        Check if the union tag is ``make_editor``.

        :rtype: bool
        make_editorr   r   r   r   r   is_make_editor  r   zMemberAction.is_make_editorc                 C   r   )zQ
        Check if the union tag is ``make_owner``.

        :rtype: bool
        
make_ownerr   r   r   r   r   is_make_owner  r   zMemberAction.is_make_ownerc                 C   r   )zR
        Check if the union tag is ``make_viewer``.

        :rtype: bool
        make_viewerr   r   r   r   r   is_make_viewer  r   zMemberAction.is_make_viewerc                 C   r   )z]
        Check if the union tag is ``make_viewer_no_comment``.

        :rtype: bool
        make_viewer_no_commentr   r   r   r   r   is_make_viewer_no_comment  r   z&MemberAction.is_make_viewer_no_commentc                 C   r   )zM
        Check if the union tag is ``remove``.

        :rtype: bool
        remover   r   r   r   r   	is_remove  r   zMemberAction.is_removec                 C   r   r   r   r   r   r   r   r     r   zMemberAction.is_otherc                    r   r   )r   r  r   r    r"   r   r   r     r$   z(MemberAction._process_custom_annotations)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    s$    r  c                       r  )MemberPermissiona  
    Whether the user is allowed to take the action on the associated member.

    :ivar sharing.MemberPermission.action: The action that the user may wish to
        take on the member.
    :ivar sharing.MemberPermission.allow: True if the user is allowed to take
        the action.
    :ivar sharing.MemberPermission.reason: The reason why the user is denied the
        permission. Not present if the action is allowed.
    r  TNc                 C   r   r   r  r  r   r   r   rM     r   zMemberPermission.__init__r  rP   r  r  r   c                    r   r   )r   r  r   r    r"   r   r   r   5  r$   z,MemberPermission._process_custom_annotationsr   r  r   r   r"   r   r  
  r  r  c                       r   )MemberPolicya  
    Policy governing who can be a member of a shared folder. Only applicable to
    folders owned by a user on a team.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.MemberPolicy.team: Only a teammate can become a member.
    :ivar sharing.MemberPolicy.anyone: Anyone can become a member.
    r   Nc                 C   r   r<  r   r   r   r   r   r>  O  r   zMemberPolicy.is_teamc                 C   r   zM
        Check if the union tag is ``anyone``.

        :rtype: bool
        anyoner   r   r   r   r   	is_anyoneW  r   zMemberPolicy.is_anyonec                 C   r   r   r   r   r   r   r   r   _  r   zMemberPolicy.is_otherc                    r   r   )r   r  r   r    r"   r   r   r   g  r$   z(MemberPolicy._process_custom_annotations)r%   r&   r'   r(   r)   r=  r  r   r>  r  r   r   r*   r   r   r"   r   r  :  s    r  c                       r  )MemberSelectora  
    Includes different ways to identify a member of a shared folder.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar str sharing.MemberSelector.dropbox_id: Dropbox account, team member,
        or group ID of member.
    :ivar str sharing.MemberSelector.email: Email address of member.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``dropbox_id`` tag with
        value ``val``.

        :param str val:
        :rtype: MemberSelector
        
dropbox_idr   rZ   r   r   r   r  }  r]   zMemberSelector.dropbox_idc                 C   rX   )z
        Create an instance of this class set to the ``email`` tag with value
        ``val``.

        :param str val:
        :rtype: MemberSelector
        r  r   rZ   r   r   r   r    r]   zMemberSelector.emailc                 C   r   )zQ
        Check if the union tag is ``dropbox_id``.

        :rtype: bool
        r  r   r   r   r   r   is_dropbox_id  r   zMemberSelector.is_dropbox_idc                 C   r   r  r   r   r   r   r   r    r   zMemberSelector.is_emailc                 C   r   r   r   r   r   r   r   r     r   zMemberSelector.is_otherc                 C   rh   )z
        Dropbox account, team member, or group ID of member.

        Only call this if :meth:`is_dropbox_id` is true.

        :rtype: str
        ztag 'dropbox_id' not set)r  rl   rm   r   r   r   r   get_dropbox_id  r   zMemberSelector.get_dropbox_idc                 C   rh   )zt
        Email address of member.

        Only call this if :meth:`is_email` is true.

        :rtype: str
        r	  r
  r   r   r   r   r    r   zMemberSelector.get_emailc                    r   r   )r   r  r   r    r"   r   r   r     r$   z*MemberSelector._process_custom_annotations)r%   r&   r'   r(   r)   r   rt   r  r  r  r  r   r  r  r   r*   r   r   r"   r   r  l  s    



r  c                       ^   e Zd ZdZg dZdZ			dddZedZ	ejddd	Z
ed
Z fddZ  ZS )ModifySharedLinkSettingsArgsa[  
    :ivar sharing.ModifySharedLinkSettingsArgs.url: URL of the shared link to
        change its settings.
    :ivar sharing.ModifySharedLinkSettingsArgs.settings: Set of settings for the
        shared link.
    :ivar sharing.ModifySharedLinkSettingsArgs.remove_expiration: If set to
        true, removes the expiration of the shared link.
    )r   r  _remove_expiration_valueTNc                 C   r   r   )rE   rF   r   r  r  r   r  remove_expiration)r   r   r  r  r   r   r   rM     r   z%ModifySharedLinkSettingsArgs.__init__r   r  rP   r  c                    r   r   )r   r  r   r    r"   r   r   r     r$   z8ModifySharedLinkSettingsArgs._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r   r  r  r   r*   r   r   r"   r   r    s    	


r  c                       r  )ModifySharedLinkSettingsErroraq  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar SharedLinkSettingsError ModifySharedLinkSettingsError.settings_error:
        There is an error with the given settings.
    :ivar sharing.ModifySharedLinkSettingsError.email_not_verified: This user's
        email address is not verified. This functionality is only available on
        accounts with a verified email address. Users can verify their email
        address `here <https://www.dropbox.com/help/317>`_.
    Nc                 C   rX   )z
        Create an instance of this class set to the ``settings_error`` tag with
        value ``val``.

        :param SharedLinkSettingsError val:
        :rtype: ModifySharedLinkSettingsError
        r  r   rZ   r   r   r   r    r]   z,ModifySharedLinkSettingsError.settings_errorc                 C   r   r  r   r   r   r   r   r    r   z/ModifySharedLinkSettingsError.is_settings_errorc                 C   r   r  r   r   r   r   r   r	    r   z3ModifySharedLinkSettingsError.is_email_not_verifiedc                 C   rh   r  r  r   r   r   r   r  "  r   z0ModifySharedLinkSettingsError.get_settings_errorc                    r   r   )r   r  r   r    r"   r   r   r   .  r$   z9ModifySharedLinkSettingsError._process_custom_annotations)r%   r&   r'   r(   r  rt   r  r  r	  r  r   r*   r   r   r"   r   r    s    

r  c                       r   )MountFolderArgzf
    :ivar sharing.MountFolderArg.shared_folder_id: The ID of the shared folder
        to mount.
    rw   TNc                 C   r   r   rE   rF   rw   ry   r   ry   r   r   r   rM   ?  r   zMountFolderArg.__init__ry   c                    r   r   )r   r  r   r    r"   r   r   r   H  r$   z*MountFolderArg._process_custom_annotationsr   r  r   r   r"   r   r  3  r  r  c                       s   e Zd ZdZdZdZdZdZdZdZ	e
dd Ze
dd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z fddZ  ZS )MountFolderErrora  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.MountFolderError.inside_shared_folder: Mounting would cause a
        shared folder to be inside another, which is disallowed.
    :ivar InsufficientQuotaAmounts MountFolderError.insufficient_quota: The
        current user does not have enough space to mount the shared folder.
    :ivar sharing.MountFolderError.already_mounted: The shared folder is already
        mounted.
    :ivar sharing.MountFolderError.no_permission: The current user does not have
        permission to perform this action.
    :ivar sharing.MountFolderError.not_mountable: The shared folder is not
        mountable. One example where this can occur is when the shared folder
        belongs within a team folder in the user's Dropbox.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharedFolderAccessError val:
        :rtype: MountFolderError
        r^   r   rZ   r   r   r   r^   l  r]   zMountFolderError.access_errorc                 C   rX   )z
        Create an instance of this class set to the ``insufficient_quota`` tag
        with value ``val``.

        :param InsufficientQuotaAmounts val:
        :rtype: MountFolderError
        insufficient_quotar   rZ   r   r   r   r  w  r]   z#MountFolderError.insufficient_quotac                 C   r   ra   r   r   r   r   r   rb     r   z MountFolderError.is_access_errorc                 C   r   z[
        Check if the union tag is ``inside_shared_folder``.

        :rtype: bool
        inside_shared_folderr   r   r   r   r   is_inside_shared_folder  r   z(MountFolderError.is_inside_shared_folderc                 C   r   )zY
        Check if the union tag is ``insufficient_quota``.

        :rtype: bool
        r  r   r   r   r   r   is_insufficient_quota  r   z&MountFolderError.is_insufficient_quotac                 C   r   )zV
        Check if the union tag is ``already_mounted``.

        :rtype: bool
        already_mountedr   r   r   r   r   is_already_mounted  r   z#MountFolderError.is_already_mountedc                 C   r   r   r   r   r   r   r   r     r   z!MountFolderError.is_no_permissionc                 C   r   )zT
        Check if the union tag is ``not_mountable``.

        :rtype: bool
        not_mountabler   r   r   r   r   is_not_mountable  r   z!MountFolderError.is_not_mountablec                 C   r   r   r   r   r   r   r   r     r   zMountFolderError.is_otherc                 C   rh   r  rr   r   r   r   r   rs     ro   z!MountFolderError.get_access_errorc                 C   rh   )z
        The current user does not have enough space to mount the shared folder.

        Only call this if :meth:`is_insufficient_quota` is true.

        :rtype: InsufficientQuotaAmounts
        z tag 'insufficient_quota' not set)r  rl   rm   r   r   r   r   get_insufficient_quota  r   z'MountFolderError.get_insufficient_quotac                    r   r   )r   r  r   r    r"   r   r   r     r$   z,MountFolderError._process_custom_annotations)r%   r&   r'   r(   r)   r  r  r   r  r   rt   r^   r  rb   r  r  r  r   r  r   rs   r  r   r*   r   r   r"   r   r  M  s,    




r  c                       sf   e Zd ZdZg dZdZ				dddZedZ	edZ
ed	Zed
Z fddZ  ZS )ParentFolderAccessInfoa  
    Contains information about a parent folder that a member has access to.

    :ivar sharing.ParentFolderAccessInfo.folder_name: Display name for the
        folder.
    :ivar sharing.ParentFolderAccessInfo.shared_folder_id: The identifier of the
        parent shared folder.
    :ivar sharing.ParentFolderAccessInfo.permissions: The user's permissions for
        the parent shared folder.
    :ivar sharing.ParentFolderAccessInfo.path: The full path to the parent
        shared folder relative to the acting user's root.
    )_folder_name_valuerw   r  r   TNc                 C   rx   r   )
rE   rF   r  rw   r  r   folder_namery   r  r   )r   r  ry   r  r   r   r   r   rM     rz   zParentFolderAccessInfo.__init__r  ry   r  r   c                    r   r   )r   r  r   r    r"   r   r   r   
  r$   z2ParentFolderAccessInfo._process_custom_annotationsr{   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r  ry   r  r   r   r*   r   r   r"   r   r    s    




r  c                       sJ   e Zd ZdZdgZdZ				d
 fdd	ZedZ	 fdd	Z
  ZS )PathLinkMetadatazr
    Metadata for a path-based shared link.

    :ivar sharing.PathLinkMetadata.path: Path in user's Dropbox.
    r   TNc                    s2   t t| ||| tj| _|d ur|| _d S d S r   )r   r  rM   rE   rF   r   r   )r   r   r   r   r   r"   r   r   rM     s   
zPathLinkMetadata.__init__r   c                    r   r   )r   r  r   r    r"   r   r   r   +  r$   z,PathLinkMetadata._process_custom_annotationsr{   r  r   r   r"   r   r    s    
r  c                       <   e Zd ZdZdZdZdZdd Zdd Z fddZ	  Z
S )	PendingUploadModea  
    Flag to indicate pending upload default (for linking to not-yet-existing
    paths).

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.PendingUploadMode.file: Assume pending uploads are files.
    :ivar sharing.PendingUploadMode.folder: Assume pending uploads are folders.
    Nc                 C   r   )zK
        Check if the union tag is ``file``.

        :rtype: bool
        rG   r   r   r   r   r   is_fileC  r   zPendingUploadMode.is_filec                 C   r   )zM
        Check if the union tag is ``folder``.

        :rtype: bool
        folderr   r   r   r   r   	is_folderK  r   zPendingUploadMode.is_folderc                    r   r   )r   r  r   r    r"   r   r   r   S  r$   z-PendingUploadMode._process_custom_annotations)r%   r&   r'   r(   r)   rG   r  r  r  r   r*   r   r   r"   r   r  0  s    r  c                       s   e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZdZdZdZdZdZdZdZedd Zdd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z dd Z!dd Z"d d! Z#d"d# Z$d$d% Z%d&d' Z& fd(d)Z'  Z(S )*PermissionDeniedReasona  
    Possible reasons the user is denied a permission.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.PermissionDeniedReason.user_not_same_team_as_owner: User is
        not on the same team as the folder owner.
    :ivar sharing.PermissionDeniedReason.user_not_allowed_by_owner: User is
        prohibited by the owner from taking the action.
    :ivar sharing.PermissionDeniedReason.target_is_indirect_member: Target is
        indirectly a member of the folder, for example by being part of a group.
    :ivar sharing.PermissionDeniedReason.target_is_owner: Target is the owner of
        the folder.
    :ivar sharing.PermissionDeniedReason.target_is_self: Target is the user
        itself.
    :ivar sharing.PermissionDeniedReason.target_not_active: Target is not an
        active member of the team.
    :ivar sharing.PermissionDeniedReason.folder_is_limited_team_folder: Folder
        is team folder for a limited team.
    :ivar sharing.PermissionDeniedReason.owner_not_on_team: The content owner
        needs to be on a Dropbox team to perform this action.
    :ivar sharing.PermissionDeniedReason.permission_denied: The user does not
        have permission to perform this action on the link.
    :ivar sharing.PermissionDeniedReason.restricted_by_team: The user's team
        policy prevents performing this action on the link.
    :ivar sharing.PermissionDeniedReason.user_account_type: The user's account
        type does not support this action.
    :ivar sharing.PermissionDeniedReason.user_not_on_team: The user needs to be
        on a Dropbox team to perform this action.
    :ivar sharing.PermissionDeniedReason.folder_is_inside_shared_folder: Folder
        is inside of another shared folder.
    :ivar sharing.PermissionDeniedReason.restricted_by_parent_folder: Policy
        cannot be changed due to restrictions from parent folder.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``insufficient_plan`` tag
        with value ``val``.

        :param InsufficientPlan val:
        :rtype: PermissionDeniedReason
        r   r   rZ   r   r   r   r     r]   z(PermissionDeniedReason.insufficient_planc                 C   r   )zb
        Check if the union tag is ``user_not_same_team_as_owner``.

        :rtype: bool
        user_not_same_team_as_ownerr   r   r   r   r   is_user_not_same_team_as_owner  r   z5PermissionDeniedReason.is_user_not_same_team_as_ownerc                 C   r   )z`
        Check if the union tag is ``user_not_allowed_by_owner``.

        :rtype: bool
        user_not_allowed_by_ownerr   r   r   r   r   is_user_not_allowed_by_owner  r   z3PermissionDeniedReason.is_user_not_allowed_by_ownerc                 C   r   )z`
        Check if the union tag is ``target_is_indirect_member``.

        :rtype: bool
        target_is_indirect_memberr   r   r   r   r   is_target_is_indirect_member  r   z3PermissionDeniedReason.is_target_is_indirect_memberc                 C   r   )zV
        Check if the union tag is ``target_is_owner``.

        :rtype: bool
        target_is_ownerr   r   r   r   r   is_target_is_owner  r   z)PermissionDeniedReason.is_target_is_ownerc                 C   r   )zU
        Check if the union tag is ``target_is_self``.

        :rtype: bool
        target_is_selfr   r   r   r   r   is_target_is_self  r   z(PermissionDeniedReason.is_target_is_selfc                 C   r   )zX
        Check if the union tag is ``target_not_active``.

        :rtype: bool
        target_not_activer   r   r   r   r   is_target_not_active  r   z+PermissionDeniedReason.is_target_not_activec                 C   r   )zd
        Check if the union tag is ``folder_is_limited_team_folder``.

        :rtype: bool
        folder_is_limited_team_folderr   r   r   r   r    is_folder_is_limited_team_folder  r   z7PermissionDeniedReason.is_folder_is_limited_team_folderc                 C   r   )zX
        Check if the union tag is ``owner_not_on_team``.

        :rtype: bool
        owner_not_on_teamr   r   r   r   r   is_owner_not_on_team  r   z+PermissionDeniedReason.is_owner_not_on_teamc                 C   r   rO  r   r   r   r   r   rQ    r   z+PermissionDeniedReason.is_permission_deniedc                 C   r   rF  r   r   r   r   r   rH    r   z,PermissionDeniedReason.is_restricted_by_teamc                 C   r   rL  r   r   r   r   r   rN    r   z+PermissionDeniedReason.is_user_account_typec                 C   r   rI  r   r   r   r   r   rK    r   z*PermissionDeniedReason.is_user_not_on_teamc                 C   r   )ze
        Check if the union tag is ``folder_is_inside_shared_folder``.

        :rtype: bool
        folder_is_inside_shared_folderr   r   r   r   r   !is_folder_is_inside_shared_folder	  r   z8PermissionDeniedReason.is_folder_is_inside_shared_folderc                 C   r   )zb
        Check if the union tag is ``restricted_by_parent_folder``.

        :rtype: bool
        restricted_by_parent_folderr   r   r   r   r   is_restricted_by_parent_folder  r   z5PermissionDeniedReason.is_restricted_by_parent_folderc                 C   r   r   r   r   r   r   r   r     r   z+PermissionDeniedReason.is_insufficient_planc                 C   r   r   r   r   r   r   r   r   !  r   zPermissionDeniedReason.is_otherc                 C   rh   )zk
        Only call this if :meth:`is_insufficient_plan` is true.

        :rtype: InsufficientPlan
        ztag 'insufficient_plan' not set)r   rl   rm   r   r   r   r   get_insufficient_plan)  ro   z,PermissionDeniedReason.get_insufficient_planc                    r   r   )r   r  r   r    r"   r   r   r   3  r$   z2PermissionDeniedReason._process_custom_annotations))r%   r&   r'   r(   r)   r  r  r  r  r  r   r  r  rP  rG  rM  rJ  r  r  r   rt   r   r  r  r  r  r  r  r  r  rQ  rH  rN  rK  r  r	  r   r   r
  r   r*   r   r   r"   r   r  X  sL    %


r  c                       r   )RelinquishFileMembershipArgzV
    :ivar sharing.RelinquishFileMembershipArg.file: The path or id for the file.
    r?   TNc                 C   r   r   rE   rF   r?   rG   r   rG   r   r   r   rM   C  r   z$RelinquishFileMembershipArg.__init__rG   c                    r   r   )r   r  r   r    r"   r   r   r   L  r$   z7RelinquishFileMembershipArg._process_custom_annotationsr   r%   r&   r'   r(   rS   rT   rM   rE   rU   rG   r   r*   r   r   r"   r   r  8      

r  c                       d   e Zd ZdZdZdZdZdZedd Z	dd Z
dd	 Zd
d Zdd Zdd Z fddZ  ZS )RelinquishFileMembershipErrora  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.RelinquishFileMembershipError.group_access: The current user
        has access to the shared file via a group.  You can't relinquish
        membership to a file shared via groups.
    :ivar sharing.RelinquishFileMembershipError.no_permission: The current user
        does not have permission to perform this action.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharingFileAccessError val:
        :rtype: RelinquishFileMembershipError
        r^   r   rZ   r   r   r   r^   f  r]   z*RelinquishFileMembershipError.access_errorc                 C   r   ra   r   r   r   r   r   rb   q  r   z-RelinquishFileMembershipError.is_access_errorc                 C   r   zS
        Check if the union tag is ``group_access``.

        :rtype: bool
        group_accessr   r   r   r   r   is_group_accessy  r   z-RelinquishFileMembershipError.is_group_accessc                 C   r   r   r   r   r   r   r   r     r   z.RelinquishFileMembershipError.is_no_permissionc                 C   r   r   r   r   r   r   r   r     r   z&RelinquishFileMembershipError.is_otherc                 C   rh   rp   rr   r   r   r   r   rs     ro   z.RelinquishFileMembershipError.get_access_errorc                    r   r   )r   r  r   r    r"   r   r   r     r$   z9RelinquishFileMembershipError._process_custom_annotations)r%   r&   r'   r(   r)   r  r   r   rt   r^   rb   r  r   r   rs   r   r*   r   r   r"   r   r  Q  s    


r  c                       r   )RelinquishFolderMembershipArga[  
    :ivar sharing.RelinquishFolderMembershipArg.shared_folder_id: The ID for the
        shared folder.
    :ivar sharing.RelinquishFolderMembershipArg.leave_a_copy: Keep a copy of the
        folder's contents upon relinquishing membership. This must be set to
        false when the folder is within a team folder or another shared folder.
    rw   _leave_a_copy_valueTNc                 C   r   r   rE   rF   rw   r  ry   r  r   ry   r  r   r   r   rM     r   z&RelinquishFolderMembershipArg.__init__ry   r  c                    r   r   )r   r  r   r    r"   r   r   r     r$   z9RelinquishFolderMembershipArg._process_custom_annotationsr   r%   r&   r'   r(   rS   rT   rM   rE   rU   ry   r  r   r*   r   r   r"   r   r    s    	


r  c                          e Zd ZdZdZdZdZdZdZdZ	dZ
dZedd Zdd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Z fddZ  ZS )RelinquishFolderMembershipErrora  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.RelinquishFolderMembershipError.folder_owner: The current user
        is the owner of the shared folder. Owners cannot relinquish membership
        to their own folders. Try unsharing or transferring ownership first.
    :ivar sharing.RelinquishFolderMembershipError.mounted: The shared folder is
        currently mounted.  Unmount the shared folder before relinquishing
        membership.
    :ivar sharing.RelinquishFolderMembershipError.group_access: The current user
        has access to the shared folder via a group.  You can't relinquish
        membership to folders shared via groups.
    :ivar sharing.RelinquishFolderMembershipError.team_folder: This action
        cannot be performed on a team shared folder.
    :ivar sharing.RelinquishFolderMembershipError.no_permission: The current
        user does not have permission to perform this action.
    :ivar sharing.RelinquishFolderMembershipError.no_explicit_access: The
        current user only has inherited access to the shared folder.  You can't
        relinquish inherited membership to folders.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharedFolderAccessError val:
        :rtype: RelinquishFolderMembershipError
        r^   r   rZ   r   r   r   r^     r]   z,RelinquishFolderMembershipError.access_errorc                 C   r   ra   r   r   r   r   r   rb     r   z/RelinquishFolderMembershipError.is_access_errorc                 C   r   zS
        Check if the union tag is ``folder_owner``.

        :rtype: bool
        folder_ownerr   r   r   r   r   is_folder_owner   r   z/RelinquishFolderMembershipError.is_folder_ownerc                 C   r   )zN
        Check if the union tag is ``mounted``.

        :rtype: bool
        mountedr   r   r   r   r   
is_mounted  r   z*RelinquishFolderMembershipError.is_mountedc                 C   r   r  r   r   r   r   r   r    r   z/RelinquishFolderMembershipError.is_group_accessc                 C   r   r   r   r   r   r   r   r     r   z.RelinquishFolderMembershipError.is_team_folderc                 C   r   r   r   r   r   r   r   r      r   z0RelinquishFolderMembershipError.is_no_permissionc                 C   r   rk  r   r   r   r   r   rl  (  r   z5RelinquishFolderMembershipError.is_no_explicit_accessc                 C   r   r   r   r   r   r   r   r   0  r   z(RelinquishFolderMembershipError.is_otherc                 C   rh   r  rr   r   r   r   r   rs   8  ro   z0RelinquishFolderMembershipError.get_access_errorc                    r   r   )r   r  r   r    r"   r   r   r   B  r$   z;RelinquishFolderMembershipError._process_custom_annotations)r%   r&   r'   r(   r)   r  r  r  r   r   rh  r   rt   r^   rb   r  r   r  r   r   rl  r   rs   r   r*   r   r   r"   r   r    s,    


r  c                       r  )RemoveFileMemberArga  
    Arguments for
    :meth:`dropbox.dropbox_client.Dropbox.sharing_remove_file_member_2`.

    :ivar sharing.RemoveFileMemberArg.file: File from which to remove members.
    :ivar sharing.RemoveFileMemberArg.member: Member to remove from this file.
        Note that even if an email is specified, it may result in the removal of
        a user (not an invitee) if the user's main account corresponds to that
        email address.
    r?   r   TNc                 C   r   r   )rE   rF   r?   r   rG   r   )r   rG   r   r   r   r   rM   Z  r   zRemoveFileMemberArg.__init__rG   r   rP   c                    r   r   )r   r!  r   r    r"   r   r   r   j  r$   z/RemoveFileMemberArg._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   rG   r   r   r*   r   r   r"   r   r!  G  r  r!  c                       rG  )RemoveFileMemberErrora2  
    Errors for
    :meth:`dropbox.dropbox_client.Dropbox.sharing_remove_file_member_2`.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar MemberAccessLevelResult RemoveFileMemberError.no_explicit_access: This
        member does not have explicit access to the file and therefore cannot be
        removed. The return value is the access that a user might have to the
        file from a parent folder.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``user_error`` tag with
        value ``val``.

        :param SharingUserError val:
        :rtype: RemoveFileMemberError
        rY   r   rZ   r   r   r   rY     r]   z RemoveFileMemberError.user_errorc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharingFileAccessError val:
        :rtype: RemoveFileMemberError
        r^   r   rZ   r   r   r   r^     r]   z"RemoveFileMemberError.access_errorc                 C   rX   )z
        Create an instance of this class set to the ``no_explicit_access`` tag
        with value ``val``.

        :param MemberAccessLevelResult val:
        :rtype: RemoveFileMemberError
        rh  r   rZ   r   r   r   rh    r]   z(RemoveFileMemberError.no_explicit_accessc                 C   r   r_   r   r   r   r   r   r`     r   z#RemoveFileMemberError.is_user_errorc                 C   r   ra   r   r   r   r   r   rb     r   z%RemoveFileMemberError.is_access_errorc                 C   r   rk  r   r   r   r   r   rl    r   z+RemoveFileMemberError.is_no_explicit_accessc                 C   r   r   r   r   r   r   r   r     r   zRemoveFileMemberError.is_otherc                 C   rh   ri   rk   r   r   r   r   rn     ro   z$RemoveFileMemberError.get_user_errorc                 C   rh   rp   rr   r   r   r   r   rs     ro   z&RemoveFileMemberError.get_access_errorc                 C   rh   )a;  
        This member does not have explicit access to the file and therefore
        cannot be removed. The return value is the access that a user might have
        to the file from a parent folder.

        Only call this if :meth:`is_no_explicit_access` is true.

        :rtype: MemberAccessLevelResult
        rm  rn  r   r   r   r   ro    r   z,RemoveFileMemberError.get_no_explicit_accessc                    r   r   )r   r"  r   r    r"   r   r   r     r$   z1RemoveFileMemberError._process_custom_annotations)r%   r&   r'   r(   r)   r   rt   rY   r^   rh  r`   rb   rl  r   rn   rs   ro  r   r*   r   r   r"   r   r"  o  s$    







r"  c                       r  )RemoveFolderMemberArga,  
    :ivar sharing.RemoveFolderMemberArg.shared_folder_id: The ID for the shared
        folder.
    :ivar sharing.RemoveFolderMemberArg.member: The member to remove from the
        folder.
    :ivar sharing.RemoveFolderMemberArg.leave_a_copy: If true, the removed user
        will keep their copy of the folder after it's unshared, assuming it was
        mounted. Otherwise, it will be removed from their Dropbox. This must be
        set to false when removing a group, or when the folder is within a team
        folder or another shared folder.
    )rw   r   r  TNc                 C   r   r   )rE   rF   rw   r   r  ry   r   r  )r   ry   r   r  r   r   r   rM     r   zRemoveFolderMemberArg.__init__ry   r   rP   r  c                    r   r   )r   r#  r   r    r"   r   r   r     r$   z1RemoveFolderMemberArg._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   ry   r   r  r   r*   r   r   r"   r   r#    s    


r#  c                       s   e Zd ZdZdZdZdZdZdZdZ	dZ
edd Zedd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z fddZ  ZS )RemoveFolderMemberErrora  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.RemoveFolderMemberError.folder_owner: The target user is the
        owner of the shared folder. You can't remove this user until ownership
        has been transferred to another member.
    :ivar sharing.RemoveFolderMemberError.group_access: The target user has
        access to the shared folder via a group.
    :ivar sharing.RemoveFolderMemberError.team_folder: This action cannot be
        performed on a team shared folder.
    :ivar sharing.RemoveFolderMemberError.no_permission: The current user does
        not have permission to perform this action.
    :ivar sharing.RemoveFolderMemberError.too_many_files: This shared folder has
        too many files for leaving a copy. You can still remove this user
        without leaving a copy.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharedFolderAccessError val:
        :rtype: RemoveFolderMemberError
        r^   r   rZ   r   r   r   r^   =  r]   z$RemoveFolderMemberError.access_errorc                 C   rX   )z
        Create an instance of this class set to the ``member_error`` tag with
        value ``val``.

        :param SharedFolderMemberError val:
        :rtype: RemoveFolderMemberError
        rr  r   rZ   r   r   r   rr  H  r]   z$RemoveFolderMemberError.member_errorc                 C   r   ra   r   r   r   r   r   rb   S  r   z'RemoveFolderMemberError.is_access_errorc                 C   r   ru  r   r   r   r   r   rv  [  r   z'RemoveFolderMemberError.is_member_errorc                 C   r   r  r   r   r   r   r   r  c  r   z'RemoveFolderMemberError.is_folder_ownerc                 C   r   r  r   r   r   r   r   r  k  r   z'RemoveFolderMemberError.is_group_accessc                 C   r   r   r   r   r   r   r   r   s  r   z&RemoveFolderMemberError.is_team_folderc                 C   r   r   r   r   r   r   r   r   {  r   z(RemoveFolderMemberError.is_no_permissionc                 C   r   zU
        Check if the union tag is ``too_many_files``.

        :rtype: bool
        too_many_filesr   r   r   r   r   is_too_many_files  r   z)RemoveFolderMemberError.is_too_many_filesc                 C   r   r   r   r   r   r   r   r     r   z RemoveFolderMemberError.is_otherc                 C   rh   r  rr   r   r   r   r   rs     ro   z(RemoveFolderMemberError.get_access_errorc                 C   rh   zm
        Only call this if :meth:`is_member_error` is true.

        :rtype: SharedFolderMemberError
        rz  r{  r   r   r   r   r|    ro   z(RemoveFolderMemberError.get_member_errorc                    r   r   )r   r$  r   r    r"   r   r   r     r$   z3RemoveFolderMemberError._process_custom_annotations)r%   r&   r'   r(   r)   r  r  r   r   r&  r   rt   r^   rr  rb   rv  r  r  r   r   r'  r   rs   r|  r   r*   r   r   r"   r   r$    s0    





r$  c                       X   e Zd ZdZedd Zedd Zdd Zdd	 Zd
d Z	dd Z
 fddZ  ZS )RemoveMemberJobStatusa  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar MemberAccessLevelResult RemoveMemberJobStatus.complete: Removing the
        folder member has finished. The value is information about whether the
        member has another form of access.
    c                 C   rX   )z
        Create an instance of this class set to the ``complete`` tag with value
        ``val``.

        :param MemberAccessLevelResult val:
        :rtype: RemoveMemberJobStatus
        r   r   rZ   r   r   r   r     r]   zRemoveMemberJobStatus.completec                 C   rX   )z
        Create an instance of this class set to the ``failed`` tag with value
        ``val``.

        :param RemoveFolderMemberError val:
        :rtype: RemoveMemberJobStatus
        r  r   rZ   r   r   r   r    r]   zRemoveMemberJobStatus.failedc                 C   r   r  r   r   r   r   r   r!    r   z!RemoveMemberJobStatus.is_completec                 C   r   r"  r   r   r   r   r   r#    r   zRemoveMemberJobStatus.is_failedc                 C   rh   )z
        Removing the folder member has finished. The value is information about
        whether the member has another form of access.

        Only call this if :meth:`is_complete` is true.

        :rtype: MemberAccessLevelResult
        tag 'complete' not setr!  rl   rm   r   r   r   r   get_complete  r  z"RemoveMemberJobStatus.get_completec                 C   rh   )zg
        Only call this if :meth:`is_failed` is true.

        :rtype: RemoveFolderMemberError
        r$  r%  r   r   r   r   r&    ro   z RemoveMemberJobStatus.get_failedc                    r   r   )r   r*  r   r    r"   r   r   r     r$   z1RemoveMemberJobStatus._process_custom_annotationsr%   r&   r'   r(   rt   r   r  r!  r#  r-  r&  r   r*   r   r   r"   r   r*    s    





r*  c                       r   )RequestedLinkAccessLevela  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.RequestedLinkAccessLevel.viewer: Users who use the link can
        view and comment on the content.
    :ivar sharing.RequestedLinkAccessLevel.editor: Users who use the link can
        edit, view and comment on the content. Note not all file types support
        edit links yet.
    :ivar sharing.RequestedLinkAccessLevel.max: Request for the maximum access
        level you can set the link to.
    :ivar sharing.RequestedLinkAccessLevel.default: Request for the default
        access level the user has set.
    r   Nc                 C   r   r4   r   r   r   r   r   r6     r   z"RequestedLinkAccessLevel.is_viewerc                 C   r   r1   r   r   r   r   r   r3     r   z"RequestedLinkAccessLevel.is_editorc                 C   r   )zJ
        Check if the union tag is ``max``.

        :rtype: bool
        maxr   r   r   r   r   is_max&  r   zRequestedLinkAccessLevel.is_maxc                 C   r   )zN
        Check if the union tag is ``default``.

        :rtype: bool
        defaultr   r   r   r   r   
is_default.  r   z#RequestedLinkAccessLevel.is_defaultc                 C   r   r   r   r   r   r   r   r   6  r   z!RequestedLinkAccessLevel.is_otherc                    r   r   )r   r/  r   r    r"   r   r   r   >  r$   z4RequestedLinkAccessLevel._process_custom_annotations)r%   r&   r'   r(   r)   r5   r2   r0  r2  r   r6   r3   r1  r3  r   r   r*   r   r   r"   r   r/        r/  c                       r   )RevokeSharedLinkArgzH
    :ivar sharing.RevokeSharedLinkArg.url: URL of the shared link.
    r   TNc                 C   r   r   )rE   rF   r   r   )r   r   r   r   r   rM   N  r   zRevokeSharedLinkArg.__init__r   c                    r   r   )r   r5  r   r    r"   r   r   r   W  r$   z/RevokeSharedLinkArg._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r   r   r*   r   r   r"   r   r5  C  r  r5  c                       r  )RevokeSharedLinkErrora'  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.RevokeSharedLinkError.shared_link_malformed: Shared link is
        malformed.
    Nc                 C   r   )z\
        Check if the union tag is ``shared_link_malformed``.

        :rtype: bool
        shared_link_malformedr   r   r   r   r   is_shared_link_malformedi  r   z.RevokeSharedLinkError.is_shared_link_malformedc                    r   r   )r   r6  r   r    r"   r   r   r   q  r$   z1RevokeSharedLinkError._process_custom_annotations)r%   r&   r'   r(   r7  r8  r   r*   r   r   r"   r   r6  \  r  r6  c                       r  )SetAccessInheritanceArgz
    :ivar sharing.SetAccessInheritanceArg.access_inheritance: The access
        inheritance settings for the folder.
    :ivar sharing.SetAccessInheritanceArg.shared_folder_id: The ID for the
        shared folder.
    _access_inheritance_valuerw   TNc                 C   s4   t j| _t j| _|d ur|| _|d ur|| _d S d S r   )rE   rF   r:  rw   access_inheritancery   )r   ry   r;  r   r   r   rM     r   z SetAccessInheritanceArg.__init__r;  rP   ry   c                    r   r   )r   r9  r   r    r"   r   r   r     r$   z3SetAccessInheritanceArg._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r;  ry   r   r*   r   r   r"   r   r9  v  r  r9  c                       rX  )SetAccessInheritanceErrora  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar SharedFolderAccessError SetAccessInheritanceError.access_error: Unable
        to access shared folder.
    :ivar sharing.SetAccessInheritanceError.no_permission: The current user does
        not have permission to perform this action.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharedFolderAccessError val:
        :rtype: SetAccessInheritanceError
        r^   r   rZ   r   r   r   r^     r]   z&SetAccessInheritanceError.access_errorc                 C   r   ra   r   r   r   r   r   rb     r   z)SetAccessInheritanceError.is_access_errorc                 C   r   r   r   r   r   r   r   r     r   z*SetAccessInheritanceError.is_no_permissionc                 C   r   r   r   r   r   r   r   r     r   z"SetAccessInheritanceError.is_otherc                 C   rh   r   rr   r   r   r   r   rs     r   z*SetAccessInheritanceError.get_access_errorc                    r   r   )r   r<  r   r    r"   r   r   r     r$   z5SetAccessInheritanceError._process_custom_annotations)r%   r&   r'   r(   r)   r   r   rt   r^   rb   r   r   rs   r   r*   r   r   r"   r   r<    r[  r<  c                       s   e Zd ZdZg dZdZ							dddZejddddZ	ed	Z
ejd
dddZedZejddddZejddddZejdddZ fddZ  ZS )ShareFolderArgBasea  
    :ivar sharing.ShareFolderArgBase.acl_update_policy: Who can add and remove
        members of this shared folder.
    :ivar sharing.ShareFolderArgBase.force_async: Whether to force the share to
        happen asynchronously.
    :ivar sharing.ShareFolderArgBase.member_policy: Who can be a member of this
        shared folder. Only applicable if the current user is on a team.
    :ivar sharing.ShareFolderArgBase.path: The path to the folder to share. If
        it does not exist, then a new one is created.
    :ivar sharing.ShareFolderArgBase.shared_link_policy: The policy to apply to
        shared links created for content inside this shared folder.  The current
        user must be on a team to set this policy to
        ``SharedLinkPolicy.members``.
    :ivar sharing.ShareFolderArgBase.viewer_info_policy: Who can enable/disable
        viewer info for this shared folder.
    :ivar sharing.ShareFolderArgBase.access_inheritance: The access inheritance
        settings for the folder.
    )r  _force_async_valuer  r   r  r  r:  TNc                 C   s   t j| _t j| _t j| _t j| _t j| _t j| _t j| _|d ur#|| _	|d ur*|| _
|d ur1|| _|d ur8|| _|d ur?|| _|d urF|| _|d urO|| _d S d S r   )rE   rF   r  r>  r  r   r  r  r:  r  force_asyncr  r   r  r  r;  )r   r   r  r?  r  r  r  r;  r   r   r   rM      r!  zShareFolderArgBase.__init__r  r   r?  r  r   r  r  r;  rP   c                    r   r   )r   r=  r   r    r"   r   r   r   3  r$   z.ShareFolderArgBase._process_custom_annotationsr"  )r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r?  r  r   r  r  r;  r   r*   r   r   r"   r   r=    s(    



r=  c                       sj   e Zd ZdZddgZdZ									d fdd	Zejddd	Z	ejd
dddZ
 fddZ  ZS )ShareFolderArga~  
    :ivar sharing.ShareFolderArg.actions: A list of `FolderAction`s
        corresponding to `FolderPermission`s that should appear in the
        response's ``SharedFolderMetadata.permissions`` field describing the
        actions the  authenticated user can perform on the folder.
    :ivar sharing.ShareFolderArg.link_settings: Settings on the link for this
        folder.
    r  _link_settings_valueTNc
           
   	      sP   t t| ||||||| tj| _tj| _|d ur|| _|	d ur&|	| _d S d S r   )	r   r@  rM   rE   rF   r  rA  r  link_settings)
r   r   r  r?  r  r  r  r;  r  rB  r"   r   r   rM   I     

zShareFolderArg.__init__r  rN   rB  r   c                    r   r   )r   r@  r   r    r"   r   r   r   g  r$   z*ShareFolderArg._process_custom_annotationsr  )r%   r&   r'   r(   rS   rT   rM   rE   rU   r  rB  r   r*   r   r   r"   r   r@  8  s&    
r@  c                       p   e Zd ZdZdZdZdZdZdZe	dd Z
dd Zdd	 Zd
d Zdd Zdd Zdd Z fddZ  ZS )ShareFolderErrorBasea  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.ShareFolderErrorBase.email_unverified: This user's email
        address is not verified. This functionality is only available on
        accounts with a verified email address. Users can verify their email
        address `here <https://www.dropbox.com/help/317>`_.
    :ivar SharePathError ShareFolderErrorBase.bad_path: ``ShareFolderArg.path``
        is invalid.
    :ivar sharing.ShareFolderErrorBase.team_policy_disallows_member_policy: Team
        policy is more restrictive than ``ShareFolderArg.member_policy``.
    :ivar sharing.ShareFolderErrorBase.disallowed_shared_link_policy: The
        current user's account is not allowed to select the specified
        ``ShareFolderArg.shared_link_policy``.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``bad_path`` tag with value
        ``val``.

        :param SharePathError val:
        :rtype: ShareFolderErrorBase
        bad_pathr   rZ   r   r   r   rF    r]   zShareFolderErrorBase.bad_pathc                 C   r   r   r   r   r   r   r   r     r   z(ShareFolderErrorBase.is_email_unverifiedc                 C   r   )zO
        Check if the union tag is ``bad_path``.

        :rtype: bool
        rF  r   r   r   r   r   is_bad_path  r   z ShareFolderErrorBase.is_bad_pathc                 C   r   zj
        Check if the union tag is ``team_policy_disallows_member_policy``.

        :rtype: bool
        #team_policy_disallows_member_policyr   r   r   r   r   &is_team_policy_disallows_member_policy  r   z;ShareFolderErrorBase.is_team_policy_disallows_member_policyc                 C   r   zd
        Check if the union tag is ``disallowed_shared_link_policy``.

        :rtype: bool
        disallowed_shared_link_policyr   r   r   r   r    is_disallowed_shared_link_policy  r   z5ShareFolderErrorBase.is_disallowed_shared_link_policyc                 C   r   r   r   r   r   r   r   r     r   zShareFolderErrorBase.is_otherc                 C   rh   )z
        ``ShareFolderArg.path`` is invalid.

        Only call this if :meth:`is_bad_path` is true.

        :rtype: SharePathError
        ztag 'bad_path' not set)rG  rl   rm   r   r   r   r   get_bad_path  r   z!ShareFolderErrorBase.get_bad_pathc                    r   r   )r   rE  r   r    r"   r   r   r     r$   z0ShareFolderErrorBase._process_custom_annotations)r%   r&   r'   r(   r)   r   rI  rL  r   rt   rF  r   rG  rJ  rM  r   rN  r   r*   r   r   r"   r   rE  l  s     

rE  c                       r  )ShareFolderErroraB  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.ShareFolderError.no_permission: The current user does not have
        permission to perform this action.
    Nc                 C   r   r   r   r   r   r   r   r     r   z!ShareFolderError.is_no_permissionc                    r   r   )r   rO  r   r    r"   r   r   r     r$   z,ShareFolderError._process_custom_annotations)r%   r&   r'   r(   r   r   r   r*   r   r   r"   r   rO    r  rO  c                       r)  )ShareFolderJobStatusaR  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar SharedFolderMetadata ShareFolderJobStatus.complete: The share job has
        finished. The value is the metadata for the folder.
    c                 C   rX   )z
        Create an instance of this class set to the ``complete`` tag with value
        ``val``.

        :param SharedFolderMetadata val:
        :rtype: ShareFolderJobStatus
        r   r   rZ   r   r   r   r     r]   zShareFolderJobStatus.completec                 C   rX   )z
        Create an instance of this class set to the ``failed`` tag with value
        ``val``.

        :param ShareFolderError val:
        :rtype: ShareFolderJobStatus
        r  r   rZ   r   r   r   r    r]   zShareFolderJobStatus.failedc                 C   r   r  r   r   r   r   r   r!     r   z ShareFolderJobStatus.is_completec                 C   r   r"  r   r   r   r   r   r#     r   zShareFolderJobStatus.is_failedc                 C   rh   )z
        The share job has finished. The value is the metadata for the folder.

        Only call this if :meth:`is_complete` is true.

        :rtype: SharedFolderMetadata
        r+  r,  r   r   r   r   r-     r   z!ShareFolderJobStatus.get_completec                 C   rh   )z`
        Only call this if :meth:`is_failed` is true.

        :rtype: ShareFolderError
        r$  r%  r   r   r   r   r&  #   ro   zShareFolderJobStatus.get_failedc                    r   r   )r   rP  r   r    r"   r   r   r   -   r$   z0ShareFolderJobStatus._process_custom_annotationsr.  r   r   r"   r   rP    s    	




rP  c                       s<   e Zd ZdZedd Zdd Zdd Z fdd	Z  Z	S )
ShareFolderLaunchr   c                 C   rX   )z
        Create an instance of this class set to the ``complete`` tag with value
        ``val``.

        :param SharedFolderMetadata val:
        :rtype: ShareFolderLaunch
        r   r   rZ   r   r   r   r   9   r]   zShareFolderLaunch.completec                 C   r   r  r   r   r   r   r   r!  D   r   zShareFolderLaunch.is_completec                 C   rh   )zf
        Only call this if :meth:`is_complete` is true.

        :rtype: SharedFolderMetadata
        r+  r,  r   r   r   r   r-  L   ro   zShareFolderLaunch.get_completec                    r   r   )r   rQ  r   r    r"   r   r   r   V   r$   z-ShareFolderLaunch._process_custom_annotations)
r%   r&   r'   r(   rt   r   r!  r-  r   r*   r   r   r"   r   rQ  2   s    


rQ  c                       s   e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZdZdZdZdZdZdZdZdZedd Zdd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z dd Z!dd Z"dd Z#d d! Z$d"d# Z%d$d% Z&d&d' Z'd(d) Z( fd*d+Z)  Z*S ),SharePathErrora  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.SharePathError.is_file: A file is at the specified path.
    :ivar sharing.SharePathError.inside_shared_folder: We do not support sharing
        a folder inside a shared folder.
    :ivar sharing.SharePathError.contains_shared_folder: We do not support
        shared folders that contain shared folders.
    :ivar sharing.SharePathError.contains_app_folder: We do not support shared
        folders that contain app folders.
    :ivar sharing.SharePathError.contains_team_folder: We do not support shared
        folders that contain team folders.
    :ivar sharing.SharePathError.is_app_folder: We do not support sharing an app
        folder.
    :ivar sharing.SharePathError.inside_app_folder: We do not support sharing a
        folder inside an app folder.
    :ivar sharing.SharePathError.is_public_folder: A public folder can't be
        shared this way. Use a public link instead.
    :ivar sharing.SharePathError.inside_public_folder: A folder inside a public
        folder can't be shared this way. Use a public link instead.
    :ivar SharedFolderMetadata SharePathError.already_shared: Folder is already
        shared. Contains metadata about the existing shared folder.
    :ivar sharing.SharePathError.invalid_path: Path is not valid.
    :ivar sharing.SharePathError.is_osx_package: We do not support sharing a Mac
        OS X package.
    :ivar sharing.SharePathError.inside_osx_package: We do not support sharing a
        folder inside a Mac OS X package.
    :ivar sharing.SharePathError.is_vault: We do not support sharing the Vault
        folder.
    :ivar sharing.SharePathError.is_vault_locked: We do not support sharing a
        folder inside a locked Vault.
    :ivar sharing.SharePathError.is_family: We do not support sharing the Family
        folder.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``already_shared`` tag with
        value ``val``.

        :param SharedFolderMetadata val:
        :rtype: SharePathError
        already_sharedr   rZ   r   r   r   rS     r]   zSharePathError.already_sharedc                 C   r   )zN
        Check if the union tag is ``is_file``.

        :rtype: bool
        r  r   r   r   r   r   
is_is_file   r   zSharePathError.is_is_filec                 C   r   r  r   r   r   r   r   r     r   z&SharePathError.is_inside_shared_folderc                 C   r   )z]
        Check if the union tag is ``contains_shared_folder``.

        :rtype: bool
        contains_shared_folderr   r   r   r   r   is_contains_shared_folder   r   z(SharePathError.is_contains_shared_folderc                 C   r   )zZ
        Check if the union tag is ``contains_app_folder``.

        :rtype: bool
        contains_app_folderr   r   r   r   r   is_contains_app_folder   r   z%SharePathError.is_contains_app_folderc                 C   r   )z[
        Check if the union tag is ``contains_team_folder``.

        :rtype: bool
        contains_team_folderr   r   r   r   r   is_contains_team_folder   r   z&SharePathError.is_contains_team_folderc                 C   r   )zT
        Check if the union tag is ``is_app_folder``.

        :rtype: bool
        is_app_folderr   r   r   r   r   is_is_app_folder   r   zSharePathError.is_is_app_folderc                 C   r   )zX
        Check if the union tag is ``inside_app_folder``.

        :rtype: bool
        inside_app_folderr   r   r   r   r   is_inside_app_folder   r   z#SharePathError.is_inside_app_folderc                 C   r   )zW
        Check if the union tag is ``is_public_folder``.

        :rtype: bool
        is_public_folderr   r   r   r   r   is_is_public_folder   r   z"SharePathError.is_is_public_folderc                 C   r   z[
        Check if the union tag is ``inside_public_folder``.

        :rtype: bool
        inside_public_folderr   r   r   r   r   is_inside_public_folder   r   z&SharePathError.is_inside_public_folderc                 C   r   )zU
        Check if the union tag is ``already_shared``.

        :rtype: bool
        rS  r   r   r   r   r   is_already_shared   r   z SharePathError.is_already_sharedc                 C   r   )zS
        Check if the union tag is ``invalid_path``.

        :rtype: bool
        invalid_pathr   r   r   r   r   is_invalid_path   r   zSharePathError.is_invalid_pathc                 C   r   )zU
        Check if the union tag is ``is_osx_package``.

        :rtype: bool
        is_osx_packager   r   r   r   r   is_is_osx_package!  r   z SharePathError.is_is_osx_packagec                 C   r   zY
        Check if the union tag is ``inside_osx_package``.

        :rtype: bool
        inside_osx_packager   r   r   r   r   is_inside_osx_package!  r   z$SharePathError.is_inside_osx_packagec                 C   r   )zO
        Check if the union tag is ``is_vault``.

        :rtype: bool
        is_vaultr   r   r   r   r   is_is_vault!  r   zSharePathError.is_is_vaultc                 C   r   )zV
        Check if the union tag is ``is_vault_locked``.

        :rtype: bool
        is_vault_lockedr   r   r   r   r   is_is_vault_locked!  r   z!SharePathError.is_is_vault_lockedc                 C   r   )zP
        Check if the union tag is ``is_family``.

        :rtype: bool
        	is_familyr   r   r   r   r   is_is_family&!  r   zSharePathError.is_is_familyc                 C   r   r   r   r   r   r   r   r   .!  r   zSharePathError.is_otherc                 C   rh   )z
        Folder is already shared. Contains metadata about the existing shared
        folder.

        Only call this if :meth:`is_already_shared` is true.

        :rtype: SharedFolderMetadata
        ztag 'already_shared' not set)rd  rl   rm   r   r   r   r   get_already_shared6!  r  z!SharePathError.get_already_sharedc                    r   r   )r   rR  r   r    r"   r   r   r   C!  r$   z*SharePathError._process_custom_annotations)+r%   r&   r'   r(   r)   r  r  rU  rW  rY  r[  r]  r_  rb  re  rg  rj  rl  rn  rp  r   rt   rS  rT  r  rV  rX  rZ  r\  r^  r`  rc  rd  rf  rh  rk  rm  ro  rq  r   rr  r   r*   r   r   r"   r   rR  [   sP    %

rR  c                       sf   e Zd ZdZddgZdZ									d fdd	Zejdddd	Z	ed
Z
 fddZ  ZS )SharedContentLinkMetadataa  
    Metadata of a shared link for a file or folder.

    :ivar sharing.SharedContentLinkMetadata.audience_exceptions: The content
        inside this folder with link audience different than this folder's. This
        is only returned when an endpoint that returns metadata for a single
        shared folder is called, e.g. /get_folder_metadata.
    :ivar sharing.SharedContentLinkMetadata.url: The URL of the link.
    _audience_exceptions_valuer   TNc
           
   	      sP   t t| ||||||| tj| _tj| _|	d ur|	| _|d ur&|| _d S d S r   )	r   rs  rM   rE   rF   rt  r   audience_exceptionsr   )
r   r  r  r  r  r   rK   r  r  ru  r"   r   r   rM   Z!  rC  z"SharedContentLinkMetadata.__init__ru  r   r   c                    r   r   )r   rs  r   r    r"   r   r   r   x!  r$   z5SharedContentLinkMetadata._process_custom_annotationsr  )r%   r&   r'   r(   rS   rT   rM   rE   rU   ru  r   r   r*   r   r   r"   r   rs  H!  s&    
rs  c                       ru   )SharedFileMembersa  
    Shared file user, group, and invitee membership. Used for the results of
    :meth:`dropbox.dropbox_client.Dropbox.sharing_list_file_members` and
    :meth:`dropbox.dropbox_client.Dropbox.sharing_list_file_members_continue`,
    and used as part of the results for
    :meth:`dropbox.dropbox_client.Dropbox.sharing_list_file_members_batch`.

    :ivar sharing.SharedFileMembers.users: The list of user members of the
        shared file.
    :ivar sharing.SharedFileMembers.groups: The list of group members of the
        shared file.
    :ivar sharing.SharedFileMembers.invitees: The list of invited members of a
        file, but have not logged in and claimed this.
    :ivar sharing.SharedFileMembers.cursor: Present if there are additional
        shared file members that have not been returned yet. Pass the cursor
        into
        :meth:`dropbox.dropbox_client.Dropbox.sharing_list_file_members_continue`
        to list additional members.
    _users_value_groups_value_invitees_valuer  TNc                 C   rx   r   
rE   rF   rx  ry  rz  r  r
   groupsinviteesr  r   r
   r|  r}  r  r   r   r   rM   !  rz   zSharedFileMembers.__init__r
   r|  r}  r  rN   c                    r   r   )r   rv  r   r    r"   r   r   r   !  r$   z-SharedFileMembers._process_custom_annotationsr{   r%   r&   r'   r(   rS   rT   rM   rE   rU   r
   r|  r}  r  r   r*   r   r   r"   r   rv  }!  s    



rv  c                       s  e Zd ZdZg dZdZ														dddZejddddZ	ed	Z
ejd
dddZejddddZedZejdddZejddddZejdddZejdddZejdddZejdddZejdddZedZejdddZ fddZ  ZS )SharedFileMetadataa	  
    Properties of the shared file.

    :ivar sharing.SharedFileMetadata.access_type: The current user's access
        level for this shared file.
    :ivar sharing.SharedFileMetadata.id: The ID of the file.
    :ivar sharing.SharedFileMetadata.expected_link_metadata: The expected
        metadata of the link associated for the file when it is first shared.
        Absent if the link already exists. This is for an unreleased feature so
        it may not be returned yet.
    :ivar sharing.SharedFileMetadata.link_metadata: The metadata of the link
        associated for the file. This is for an unreleased feature so it may not
        be returned yet.
    :ivar sharing.SharedFileMetadata.name: The name of this file.
    :ivar sharing.SharedFileMetadata.owner_display_names: The display names of
        the users that own the file. If the file is part of a team folder, the
        display names of the team admins are also included. Absent if the owner
        display names cannot be fetched.
    :ivar sharing.SharedFileMetadata.owner_team: The team that owns the file.
        This field is not present if the file is not owned by a team.
    :ivar sharing.SharedFileMetadata.parent_shared_folder_id: The ID of the
        parent shared folder. This field is present only if the file is
        contained within a shared folder.
    :ivar sharing.SharedFileMetadata.path_display: The cased path to be used for
        display purposes only. In rare instances the casing will not correctly
        match the user's filesystem, but this behavior will match the path
        provided in the Core API v1. Absent for unmounted files.
    :ivar sharing.SharedFileMetadata.path_lower: The lower-case full path of
        this file. Absent for unmounted files.
    :ivar sharing.SharedFileMetadata.permissions: The sharing permissions that
        requesting user has on this file. This corresponds to the entries given
        in ``GetFileMetadataBatchArg.actions`` or
        ``GetFileMetadataArg.actions``.
    :ivar sharing.SharedFileMetadata.policy: Policies governing this shared
        file.
    :ivar sharing.SharedFileMetadata.preview_url: URL for displaying a web
        preview of the shared file.
    :ivar sharing.SharedFileMetadata.time_invited: Timestamp indicating when the
        current user was invited to this shared file. If the user was not
        invited to the shared file, the timestamp will indicate when the user
        was invited to the parent shared folder. This value may be absent.
    )r  rS  _expected_link_metadata_value_link_metadata_valuer   _owner_display_names_value_owner_team_value_parent_shared_folder_id_value_path_display_valuerT  r  _policy_value_preview_url_value_time_invited_valueTNc                 C   s<  t j| _t j| _t j| _t j| _t j| _t j| _t j| _t j| _	t j| _
t j| _t j| _t j| _t j| _t j| _|d ur?|| _|d urF|| _|d urM|| _|d urT|| _|d ur[|| _|d urb|| _|	d uri|	| _|
d urp|
| _|d urw|| _|d ur~|| _|d ur|| _|d ur|| _|d ur|| _|d ur|| _d S d S r   )rE   rF   r  rS  r  r  r   r  r  r  r  rT  r  r  r  r  r  rW  expected_link_metadatalink_metadatar   owner_display_names
owner_teamparent_shared_folder_idpath_displayrX  r  policypreview_urltime_invited)r   rW  r   r  r  r  r  r  r  r  r  r  rX  r  r  r   r   r   rM   !  sV   
zSharedFileMetadata.__init__r  r   rW  r  r  r   r  rN   r  r  r  rX  r  r  rP   r  r  c                    r   r   )r   r  r   r    r"   r   r   r   a"  r$   z.SharedFileMetadata._process_custom_annotations)NNNNNNNNNNNNNN)r%   r&   r'   r(   rS   rT   rM   rE   rU   r  rW  r  r  r   r  r  r  r  rX  r  r  r  r  r   r*   r   r   r"   r   r  !  sD    +
;


r  c                       r   )SharedFolderAccessErrora  
    There is an error accessing the shared folder.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.SharedFolderAccessError.invalid_id: This shared folder ID is
        invalid.
    :ivar sharing.SharedFolderAccessError.not_a_member: The user is not a member
        of the shared folder thus cannot access it.
    :ivar sharing.SharedFolderAccessError.email_unverified: Never set.
    :ivar sharing.SharedFolderAccessError.unmounted: The shared folder is
        unmounted.
    r   Nc                 C   r   )zQ
        Check if the union tag is ``invalid_id``.

        :rtype: bool
        
invalid_idr   r   r   r   r   is_invalid_id"  r   z%SharedFolderAccessError.is_invalid_idc                 C   r   zS
        Check if the union tag is ``not_a_member``.

        :rtype: bool
        not_a_memberr   r   r   r   r   is_not_a_member"  r   z'SharedFolderAccessError.is_not_a_memberc                 C   r   r   r   r   r   r   r   r   "  r   z+SharedFolderAccessError.is_email_unverifiedc                 C   r   )zP
        Check if the union tag is ``unmounted``.

        :rtype: bool
        	unmountedr   r   r   r   r   is_unmounted"  r   z$SharedFolderAccessError.is_unmountedc                 C   r   r   r   r   r   r   r   r   "  r   z SharedFolderAccessError.is_otherc                    r   r   )r   r  r   r    r"   r   r   r   "  r$   z3SharedFolderAccessError._process_custom_annotations)r%   r&   r'   r(   r)   r  r  r   r  r   r  r  r   r  r   r   r*   r   r   r"   r   r  f"  r4  r  c                       r  )SharedFolderMemberErroraB  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.SharedFolderMemberError.invalid_dropbox_id: The target
        dropbox_id is invalid.
    :ivar sharing.SharedFolderMemberError.not_a_member: The target dropbox_id is
        not a member of the shared folder.
    :ivar MemberAccessLevelResult SharedFolderMemberError.no_explicit_access:
        The target member only has inherited access to the shared folder.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``no_explicit_access`` tag
        with value ``val``.

        :param MemberAccessLevelResult val:
        :rtype: SharedFolderMemberError
        rh  r   rZ   r   r   r   rh  "  r]   z*SharedFolderMemberError.no_explicit_accessc                 C   r   r   r   r   r   r   r   r   "  r   z-SharedFolderMemberError.is_invalid_dropbox_idc                 C   r   r  r   r   r   r   r   r  "  r   z'SharedFolderMemberError.is_not_a_memberc                 C   r   rk  r   r   r   r   r   rl  "  r   z-SharedFolderMemberError.is_no_explicit_accessc                 C   r   r   r   r   r   r   r   r   "  r   z SharedFolderMemberError.is_otherc                 C   rh   )z
        The target member only has inherited access to the shared folder.

        Only call this if :meth:`is_no_explicit_access` is true.

        :rtype: MemberAccessLevelResult
        rm  rn  r   r   r   r   ro  "  r   z.SharedFolderMemberError.get_no_explicit_accessc                    r   r   )r   r  r   r    r"   r   r   r   "  r$   z3SharedFolderMemberError._process_custom_annotations)r%   r&   r'   r(   r)   r   r  r   rt   rh  r   r  rl  r   ro  r   r*   r   r   r"   r   r  "  s    

r  c                       ru   )SharedFolderMembersa  
    Shared folder user and group membership.

    :ivar sharing.SharedFolderMembers.users: The list of user members of the
        shared folder.
    :ivar sharing.SharedFolderMembers.groups: The list of group members of the
        shared folder.
    :ivar sharing.SharedFolderMembers.invitees: The list of invitees to the
        shared folder.
    :ivar sharing.SharedFolderMembers.cursor: Present if there are additional
        shared folder members that have not been returned yet. Pass the cursor
        into
        :meth:`dropbox.dropbox_client.Dropbox.sharing_list_folder_members_continue`
        to list additional members.
    rw  TNc                 C   rx   r   r{  r~  r   r   r   rM   #  rz   zSharedFolderMembers.__init__r
   r|  r}  r  rN   c                    r   r   )r   r  r   r    r"   r   r   r   :#  r$   z/SharedFolderMembers._process_custom_annotationsr{   r  r   r   r"   r   r  #  s    



r  c                       s   e Zd ZdZg dZdZ								dddZejdddZ	ed	Z
ed
ZejdddZejddddZejdddZejdddZejdddZ fddZ  ZS )SharedFolderMetadataBasea3  
    Properties of the shared folder.

    :ivar sharing.SharedFolderMetadataBase.access_type: The current user's
        access level for this shared folder.
    :ivar sharing.SharedFolderMetadataBase.is_inside_team_folder: Whether this
        folder is inside of a team folder.
    :ivar sharing.SharedFolderMetadataBase.is_team_folder: Whether this folder
        is a `team folder <https://www.dropbox.com/en/help/986>`_.
    :ivar sharing.SharedFolderMetadataBase.owner_display_names: The display
        names of the users that own the folder. If the folder is part of a team
        folder, the display names of the team admins are also included. Absent
        if the owner display names cannot be fetched.
    :ivar sharing.SharedFolderMetadataBase.owner_team: The team that owns the
        folder. This field is not present if the folder is not owned by a team.
    :ivar sharing.SharedFolderMetadataBase.parent_shared_folder_id: The ID of
        the parent shared folder. This field is present only if the folder is
        contained within another shared folder.
    :ivar sharing.SharedFolderMetadataBase.path_lower: The lower-cased full path
        of this shared folder. Absent for unmounted folders.
    :ivar sharing.SharedFolderMetadataBase.parent_folder_name: Display name for
        the parent folder.
    )r  _is_inside_team_folder_value_is_team_folder_valuer  r  r  rT  _parent_folder_name_valueTNc	           	      C   s   t j| _t j| _t j| _t j| _t j| _t j| _t j| _t j| _	|d ur'|| _
|d ur.|| _|d ur5|| _|d ur<|| _|d urC|| _|d urJ|| _|d urQ|| _|d urZ|| _d S d S r   )rE   rF   r  r  r  r  r  r  rT  r  r  is_inside_team_folderr   r  r  r  rX  parent_folder_name)	r   r  r  r   r  r  r  rX  r  r   r   r   rM   e#  r\  z!SharedFolderMetadataBase.__init__r  rP   r  r   r  rN   r  r   r  rX  r  c                    r   r   )r   r  r   r    r"   r   r   r   #  r$   z4SharedFolderMetadataBase._process_custom_annotationsr]  )r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r  r   r  r  r  rX  r  r   r*   r   r   r"   r   r  ?#  s,    
#

r  c                       s   e Zd ZdZg dZdZ																d fdd	ZejddddZ	ed	Z
ejd
ddZejdddZedZedZedZejdddZ fddZ  ZS )SharedFolderMetadataa  
    The metadata which includes basic information about the shared folder.

    :ivar sharing.SharedFolderMetadata.link_metadata: The metadata of the shared
        content link to this shared folder. Absent if there is no link on the
        folder. This is for an unreleased feature so it may not be returned yet.
    :ivar sharing.SharedFolderMetadata.name: The name of the this shared folder.
    :ivar sharing.SharedFolderMetadata.permissions: Actions the current user may
        perform on the folder and its contents. The set of permissions
        corresponds to the FolderActions in the request.
    :ivar sharing.SharedFolderMetadata.policy: Policies governing this shared
        folder.
    :ivar sharing.SharedFolderMetadata.preview_url: URL for displaying a web
        preview of the shared folder.
    :ivar sharing.SharedFolderMetadata.shared_folder_id: The ID of the shared
        folder.
    :ivar sharing.SharedFolderMetadata.time_invited: Timestamp indicating when
        the current user was invited to this shared folder.
    :ivar sharing.SharedFolderMetadata.access_inheritance: Whether the folder
        inherits its members from its parent.
    )r  r   r  r  r  rw   r  r:  TNc              
      s   t t| ||||	|
||| tj| _tj| _tj| _tj| _tj| _	tj| _
tj| _tj| _|d ur6|| _|d ur=|| _|d urD|| _|d urK|| _|d urR|| _|d urY|| _|d ur`|| _|d uri|| _d S d S r   )r   r  rM   rE   rF   r  r   r  r  r  rw   r  r:  r  r   r  r  r  ry   r  r;  )r   r  r  r   r   r  r  ry   r  r  r  r  rX  r  r  r  r;  r"   r   r   rM   #  sD   
zSharedFolderMetadata.__init__r  r   r   r  rN   r  rP   r  ry   r  r;  c                    r   r   )r   r  r   r    r"   r   r   r   $  r$   z0SharedFolderMetadata._process_custom_annotations)NNNNNNNNNNNNNNNN)r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r   r  r  r  ry   r  r;  r   r*   r   r   r"   r   r  #  s<    3



r  c                       r,   )SharedLinkAccessFailureReasona  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.SharedLinkAccessFailureReason.login_required: User is not
        logged in.
    :ivar sharing.SharedLinkAccessFailureReason.email_verify_required: This
        user's email address is not verified. This functionality is only
        available on accounts with a verified email address. Users can verify
        their email address `here <https://www.dropbox.com/help/317>`_.
    :ivar sharing.SharedLinkAccessFailureReason.password_required: The link is
        password protected.
    :ivar sharing.SharedLinkAccessFailureReason.team_only: Access is allowed for
        team members only.
    :ivar sharing.SharedLinkAccessFailureReason.owner_only: Access is allowed
        for the shared link's owner only.
    r   Nc                 C   r   )zU
        Check if the union tag is ``login_required``.

        :rtype: bool
        login_requiredr   r   r   r   r   is_login_required9$  r   z/SharedLinkAccessFailureReason.is_login_requiredc                 C   r   )z\
        Check if the union tag is ``email_verify_required``.

        :rtype: bool
        email_verify_requiredr   r   r   r   r   is_email_verify_requiredA$  r   z6SharedLinkAccessFailureReason.is_email_verify_requiredc                 C   r   )zX
        Check if the union tag is ``password_required``.

        :rtype: bool
        password_requiredr   r   r   r   r   is_password_requiredI$  r   z2SharedLinkAccessFailureReason.is_password_requiredc                 C   r   r   r   r   r   r   r   r   Q$  r   z*SharedLinkAccessFailureReason.is_team_onlyc                 C   r   )zQ
        Check if the union tag is ``owner_only``.

        :rtype: bool
        
owner_onlyr   r   r   r   r   is_owner_onlyY$  r   z+SharedLinkAccessFailureReason.is_owner_onlyc                 C   r   r   r   r   r   r   r   r   a$  r   z&SharedLinkAccessFailureReason.is_otherc                    r   r   )r   r  r   r    r"   r   r   r   i$  r$   z9SharedLinkAccessFailureReason._process_custom_annotations)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  c                       r   )SharedLinkAlreadyExistsMetadataaF  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar SharedLinkMetadata SharedLinkAlreadyExistsMetadata.metadata: Metadata
        of the shared link that already exists.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``metadata`` tag with value
        ``val``.

        :param SharedLinkMetadata val:
        :rtype: SharedLinkAlreadyExistsMetadata
        r  r   rZ   r   r   r   r  |$  r]   z(SharedLinkAlreadyExistsMetadata.metadatac                 C   r   r  r   r   r   r   r   r  $  r   z+SharedLinkAlreadyExistsMetadata.is_metadatac                 C   r   r   r   r   r   r   r   r   $  r   z(SharedLinkAlreadyExistsMetadata.is_otherc                 C   rh   )z
        Metadata of the shared link that already exists.

        Only call this if :meth:`is_metadata` is true.

        :rtype: SharedLinkMetadata
        r  r  r   r   r   r   r  $  r   z,SharedLinkAlreadyExistsMetadata.get_metadatac                    r   r   )r   r  r   r    r"   r   r   r   $  r$   z;SharedLinkAlreadyExistsMetadata._process_custom_annotations)r%   r&   r'   r(   r)   r   rt   r  r  r   r  r   r*   r   r   r"   r   r  n$  s    	

r  c                       r  )SharedLinkPolicya"  
    Who can view shared links in this folder.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.SharedLinkPolicy.anyone: Links can be shared with anyone.
    :ivar sharing.SharedLinkPolicy.team: Links can be shared with anyone on the
        same team as the owner.
    :ivar sharing.SharedLinkPolicy.members: Links can only be shared among
        members of the shared folder.
    r   Nc                 C   r   r  r   r   r   r   r   r  $  r   zSharedLinkPolicy.is_anyonec                 C   r   r<  r   r   r   r   r   r>  $  r   zSharedLinkPolicy.is_teamc                 C   r   r?  r   r   r   r   r   r@  $  r   zSharedLinkPolicy.is_membersc                 C   r   r   r   r   r   r   r   r   $  r   zSharedLinkPolicy.is_otherc                    r   r   )r   r  r   r    r"   r   r   r   $  r$   z,SharedLinkPolicy._process_custom_annotations)r%   r&   r'   r(   r)   r  r=  rH   r   r  r>  r@  r   r   r*   r   r   r"   r   r  $  r  r  c                       s   e Zd ZdZg dZdZ							dddZejddd	Z	ejd
dd	Z
ejddd	ZejddddZejddddZejddddZejddd	Z fddZ  ZS )SharedLinkSettingsa  
    :ivar sharing.SharedLinkSettings.require_password: Boolean flag to enable or
        disable password protection.
    :ivar sharing.SharedLinkSettings.link_password: If ``require_password`` is
        true, this is needed to specify the password to access the link.
    :ivar sharing.SharedLinkSettings.expires: Expiration time of the shared
        link. By default the link won't expire.
    :ivar sharing.SharedLinkSettings.audience: The new audience who can benefit
        from the access level specified by the link's access level specified in
        the `link_access_level` field of `LinkPermissions`. This is used in
        conjunction with team policies and shared folder policies to determine
        the final effective audience type in the `effective_audience` field of
        `LinkPermissions.
    :ivar sharing.SharedLinkSettings.access: Requested access level you want the
        audience to gain from this link. Note, modifying access level for an
        existing link is not supported.
    :ivar sharing.SharedLinkSettings.requested_visibility: Use ``audience``
        instead.  The requested access for this shared link.
    :ivar sharing.SharedLinkSettings.allow_download: Boolean flag to allow or
        not download capabilities for shared links.
    )rp  r  r   r   _access_valuera  ri  FNc                 C      t j| _t j| _t j| _t j| _t j| _t j| _t j| _|d ur#|| _	|d ur*|| _
|d ur1|| _|d ur8|| _|d ur?|| _|d urF|| _|d urO|| _d S d S r   )rE   rF   rp  r  r   r   r  ra  ri  r  r  r   r   accessrs  r{  )r   r  r  r   r   r  rs  r{  r   r   r   rM   	%  r!  zSharedLinkSettings.__init__r  TrN   r  r   r   r   r  rs  r{  c                    r   r   )r   r  r   r    r"   r   r   r   <%  r$   z.SharedLinkSettings._process_custom_annotationsr"  )r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r  r   r   r  rs  r{  r   r*   r   r   r"   r   r  $  s(    

r  c                       r  )	SharedLinkSettingsErrora{  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.SharedLinkSettingsError.invalid_settings: The given settings
        are invalid (for example, all attributes of the
        :class:`SharedLinkSettings` are empty, the requested visibility is
        ``RequestedVisibility.password`` but the
        ``SharedLinkSettings.link_password`` is missing,
        ``SharedLinkSettings.expires`` is set to the past, etc.).
    :ivar sharing.SharedLinkSettingsError.not_authorized: User is not allowed to
        modify the settings of this link. Note that basic users can only set
        ``RequestedVisibility.public`` as the
        ``SharedLinkSettings.requested_visibility`` and cannot set
        ``SharedLinkSettings.expires``.
    Nc                 C   r   )zW
        Check if the union tag is ``invalid_settings``.

        :rtype: bool
        invalid_settingsr   r   r   r   r   is_invalid_settingsZ%  r   z+SharedLinkSettingsError.is_invalid_settingsc                 C   r   )zU
        Check if the union tag is ``not_authorized``.

        :rtype: bool
        not_authorizedr   r   r   r   r   is_not_authorizedb%  r   z)SharedLinkSettingsError.is_not_authorizedc                    r   r   )r   r  r   r    r"   r   r   r   j%  r$   z3SharedLinkSettingsError._process_custom_annotations)r%   r&   r'   r(   r)   r  r  r  r  r   r*   r   r   r"   r   r  A%  s    r  c                       r,   )SharingFileAccessErrora  
    User could not access this file.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.SharingFileAccessError.no_permission: Current user does not
        have sufficient privileges to perform the desired action.
    :ivar sharing.SharingFileAccessError.invalid_file: File specified was not
        found.
    :ivar sharing.SharingFileAccessError.is_folder: A folder can't be shared
        this way. Use folder sharing or a shared link instead.
    :ivar sharing.SharingFileAccessError.inside_public_folder: A file inside a
        public folder can't be shared this way. Use a public link instead.
    :ivar sharing.SharingFileAccessError.inside_osx_package: A Mac OS X package
        can't be shared this way. Use a shared link instead.
    r   Nc                 C   r   r   r   r   r   r   r   r   %  r   z'SharingFileAccessError.is_no_permissionc                 C   r   )zS
        Check if the union tag is ``invalid_file``.

        :rtype: bool
        invalid_filer   r   r   r   r   is_invalid_file%  r   z&SharingFileAccessError.is_invalid_filec                 C   r   )zP
        Check if the union tag is ``is_folder``.

        :rtype: bool
        r  r   r   r   r   r   is_is_folder%  r   z#SharingFileAccessError.is_is_folderc                 C   r   ra  r   r   r   r   r   rc  %  r   z.SharingFileAccessError.is_inside_public_folderc                 C   r   ri  r   r   r   r   r   rk  %  r   z,SharingFileAccessError.is_inside_osx_packagec                 C   r   r   r   r   r   r   r   r   %  r   zSharingFileAccessError.is_otherc                    r   r   )r   r  r   r    r"   r   r   r   %  r$   z2SharingFileAccessError._process_custom_annotations)r%   r&   r'   r(   r)   r   r  r  rb  rj  r   r   r  r  rc  rk  r   r   r*   r   r   r"   r   r  o%  r  r  c                       r  )
SharingUserErrora  
    User account had a problem preventing this action.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.SharingUserError.email_unverified: This user's email address
        is not verified. This functionality is only available on accounts with a
        verified email address. Users can verify their email address `here
        <https://www.dropbox.com/help/317>`_.
    r   Nc                 C   r   r   r   r   r   r   r   r   %  r   z$SharingUserError.is_email_unverifiedc                 C   r   r   r   r   r   r   r   r   %  r   zSharingUserError.is_otherc                    r   r   )r   r  r   r    r"   r   r   r   %  r$   z,SharingUserError._process_custom_annotations)r%   r&   r'   r(   r)   r   r   r   r   r   r*   r   r   r"   r   r  %  s    r  c                       r   )TeamMemberInfoaz  
    Information about a team member.

    :ivar sharing.TeamMemberInfo.team_info: Information about the member's team.
    :ivar sharing.TeamMemberInfo.display_name: The display name of the user.
    :ivar sharing.TeamMemberInfo.member_id: ID of user as a member of a team.
        This field will only be present if the member is in the same team as
        current user.
    )_team_info_value_display_name_value_member_id_valueTNc                 C   r   r   )rE   rF   r  r  r  	team_infodisplay_name	member_id)r   r  r  r  r   r   r   rM   &  r   zTeamMemberInfo.__init__r  r  r  rN   c                    r   r   )r   r  r   r    r"   r   r   r   &  r$   z*TeamMemberInfo._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r  r  r   r*   r   r   r"   r   r  %  s    



r  c                       r   )TransferFolderArgz
    :ivar sharing.TransferFolderArg.shared_folder_id: The ID for the shared
        folder.
    :ivar sharing.TransferFolderArg.to_dropbox_id: A account or team member ID
        to transfer ownership to.
    rw   _to_dropbox_id_valueTNc                 C   r   r   )rE   rF   rw   r  ry   to_dropbox_id)r   ry   r  r   r   r   rM   -&  r   zTransferFolderArg.__init__ry   r  c                    r   r   )r   r  r   r    r"   r   r   r   =&  r$   z-TransferFolderArg._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   ry   r  r   r*   r   r   r"   r   r  &  s    


r  c                       r  )TransferFolderErrorav  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.TransferFolderError.invalid_dropbox_id:
        ``TransferFolderArg.to_dropbox_id`` is invalid.
    :ivar sharing.TransferFolderError.new_owner_not_a_member: The new designated
        owner is not currently a member of the shared folder.
    :ivar sharing.TransferFolderError.new_owner_unmounted: The new designated
        owner has not added the folder to their Dropbox.
    :ivar sharing.TransferFolderError.new_owner_email_unverified: The new
        designated owner's email address is not verified. This functionality is
        only available on accounts with a verified email address. Users can
        verify their email address `here <https://www.dropbox.com/help/317>`_.
    :ivar sharing.TransferFolderError.team_folder: This action cannot be
        performed on a team shared folder.
    :ivar sharing.TransferFolderError.no_permission: The current user does not
        have permission to perform this action.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharedFolderAccessError val:
        :rtype: TransferFolderError
        r^   r   rZ   r   r   r   r^   h&  r]   z TransferFolderError.access_errorc                 C   r   ra   r   r   r   r   r   rb   s&  r   z#TransferFolderError.is_access_errorc                 C   r   r   r   r   r   r   r   r   {&  r   z)TransferFolderError.is_invalid_dropbox_idc                 C   r   )z]
        Check if the union tag is ``new_owner_not_a_member``.

        :rtype: bool
        new_owner_not_a_memberr   r   r   r   r   is_new_owner_not_a_member&  r   z-TransferFolderError.is_new_owner_not_a_memberc                 C   r   )zZ
        Check if the union tag is ``new_owner_unmounted``.

        :rtype: bool
        new_owner_unmountedr   r   r   r   r   is_new_owner_unmounted&  r   z*TransferFolderError.is_new_owner_unmountedc                 C   r   )za
        Check if the union tag is ``new_owner_email_unverified``.

        :rtype: bool
        new_owner_email_unverifiedr   r   r   r   r   is_new_owner_email_unverified&  r   z1TransferFolderError.is_new_owner_email_unverifiedc                 C   r   r   r   r   r   r   r   r   &  r   z"TransferFolderError.is_team_folderc                 C   r   r   r   r   r   r   r   r   &  r   z$TransferFolderError.is_no_permissionc                 C   r   r   r   r   r   r   r   r   &  r   zTransferFolderError.is_otherc                 C   rh   r  rr   r   r   r   r   rs   &  ro   z$TransferFolderError.get_access_errorc                    r   r   )r   r  r   r    r"   r   r   r   &  r$   z/TransferFolderError._process_custom_annotations)r%   r&   r'   r(   r)   r   r  r  r  r   r   r   rt   r^   rb   r   r  r  r  r   r   r   rs   r   r*   r   r   r"   r   r  B&  s,    


r  c                       r   )UnmountFolderArgz`
    :ivar sharing.UnmountFolderArg.shared_folder_id: The ID for the shared
        folder.
    rw   TNc                 C   r   r   r  r  r   r   r   rM   &  r   zUnmountFolderArg.__init__ry   c                    r   r   )r   r  r   r    r"   r   r   r   &  r$   z,UnmountFolderArg._process_custom_annotationsr   r  r   r   r"   r   r  &  r  r  c                       r  )UnmountFolderErroraG  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.UnmountFolderError.no_permission: The current user does not
        have permission to perform this action.
    :ivar sharing.UnmountFolderError.not_unmountable: The shared folder can't be
        unmounted. One example where this can occur is when the shared folder's
        parent folder is also a shared folder that resides in the current user's
        Dropbox.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharedFolderAccessError val:
        :rtype: UnmountFolderError
        r^   r   rZ   r   r   r   r^   &  r]   zUnmountFolderError.access_errorc                 C   r   ra   r   r   r   r   r   rb   &  r   z"UnmountFolderError.is_access_errorc                 C   r   r   r   r   r   r   r   r   '  r   z#UnmountFolderError.is_no_permissionc                 C   r   )zV
        Check if the union tag is ``not_unmountable``.

        :rtype: bool
        not_unmountabler   r   r   r   r   is_not_unmountable'  r   z%UnmountFolderError.is_not_unmountablec                 C   r   r   r   r   r   r   r   r   '  r   zUnmountFolderError.is_otherc                 C   rh   r  rr   r   r   r   r   rs   '  ro   z#UnmountFolderError.get_access_errorc                    r   r   )r   r  r   r    r"   r   r   r   ''  r$   z.UnmountFolderError._process_custom_annotations)r%   r&   r'   r(   r)   r   r  r   rt   r^   rb   r   r  r   rs   r   r*   r   r   r"   r   r  &  s    


r  c                       r   )UnshareFileArgz
    Arguments for :meth:`dropbox.dropbox_client.Dropbox.sharing_unshare_file`.

    :ivar sharing.UnshareFileArg.file: The file to unshare.
    r?   TNc                 C   r   r   r  r  r   r   r   rM   9'  r   zUnshareFileArg.__init__rG   c                    r   r   )r   r  r   r    r"   r   r   r   B'  r$   z*UnshareFileArg._process_custom_annotationsr   r  r   r   r"   r   r  ,'  s    

r  c                       r  )UnshareFileErrora  
    Error result for
    :meth:`dropbox.dropbox_client.Dropbox.sharing_unshare_file`.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``user_error`` tag with
        value ``val``.

        :param SharingUserError val:
        :rtype: UnshareFileError
        rY   r   rZ   r   r   r   rY   U'  r]   zUnshareFileError.user_errorc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharingFileAccessError val:
        :rtype: UnshareFileError
        r^   r   rZ   r   r   r   r^   `'  r]   zUnshareFileError.access_errorc                 C   r   r_   r   r   r   r   r   r`   k'  r   zUnshareFileError.is_user_errorc                 C   r   ra   r   r   r   r   r   rb   s'  r   z UnshareFileError.is_access_errorc                 C   r   r   r   r   r   r   r   r   {'  r   zUnshareFileError.is_otherc                 C   rh   ri   rk   r   r   r   r   rn   '  ro   zUnshareFileError.get_user_errorc                 C   rh   rp   rr   r   r   r   r   rs   '  ro   z!UnshareFileError.get_access_errorc                    r   r   )r   r  r   r    r"   r   r   r   '  r$   z,UnshareFileError._process_custom_annotationsr  r   r   r"   r   r  G'  r  r  c                       r   )UnshareFolderArgax  
    :ivar sharing.UnshareFolderArg.shared_folder_id: The ID for the shared
        folder.
    :ivar sharing.UnshareFolderArg.leave_a_copy: If true, members of this shared
        folder will get a copy of this folder after it's unshared. Otherwise, it
        will be removed from their Dropbox. The current user, who is an owner,
        will always retain their copy.
    rw   r  TNc                 C   r   r   r  r  r   r   r   rM   '  r   zUnshareFolderArg.__init__ry   r  c                    r   r   )r   r  r   r    r"   r   r   r   '  r$   z,UnshareFolderArg._process_custom_annotationsr   r  r   r   r"   r   r  '  s    



r  c                       rD  )UnshareFolderErrora*  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.UnshareFolderError.team_folder: This action cannot be
        performed on a team shared folder.
    :ivar sharing.UnshareFolderError.no_permission: The current user does not
        have permission to perform this action.
    :ivar sharing.UnshareFolderError.too_many_files: This shared folder has too
        many files to be unshared.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharedFolderAccessError val:
        :rtype: UnshareFolderError
        r^   r   rZ   r   r   r   r^   '  r]   zUnshareFolderError.access_errorc                 C   r   ra   r   r   r   r   r   rb   '  r   z"UnshareFolderError.is_access_errorc                 C   r   r   r   r   r   r   r   r   '  r   z!UnshareFolderError.is_team_folderc                 C   r   r   r   r   r   r   r   r   '  r   z#UnshareFolderError.is_no_permissionc                 C   r   r%  r   r   r   r   r   r'  '  r   z$UnshareFolderError.is_too_many_filesc                 C   r   r   r   r   r   r   r   r   (  r   zUnshareFolderError.is_otherc                 C   rh   r  rr   r   r   r   r   rs   (  ro   z#UnshareFolderError.get_access_errorc                    r   r   )r   r  r   r    r"   r   r   r   (  r$   z.UnshareFolderError._process_custom_annotations)r%   r&   r'   r(   r)   r   r   r&  r   rt   r^   rb   r   r   r'  r   rs   r   r*   r   r   r"   r   r  '  s     


r  c                       r  )UpdateFileMemberArgsa  
    Arguments for
    :meth:`dropbox.dropbox_client.Dropbox.sharing_update_file_member`.

    :ivar sharing.UpdateFileMemberArgs.file: File for which we are changing a
        member's access.
    :ivar sharing.UpdateFileMemberArgs.member: The member whose access we are
        changing.
    :ivar sharing.UpdateFileMemberArgs.access_level: The new access level for
        the member.
    )r?   r   rC   TNc                 C   r   r   )rE   rF   r?   r   rC   rG   r   rK   )r   rG   r   rK   r   r   r   rM   1(  r   zUpdateFileMemberArgs.__init__rG   r   rP   rK   c                    r   r   )r   r  r   r    r"   r   r   r   H(  r$   z0UpdateFileMemberArgs._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   rG   r   rK   r   r*   r   r   r"   r   r  (  s    

r  c                       r  )UpdateFolderMemberArga  
    :ivar sharing.UpdateFolderMemberArg.shared_folder_id: The ID for the shared
        folder.
    :ivar sharing.UpdateFolderMemberArg.member: The member of the shared folder
        to update.  Only the ``MemberSelector.dropbox_id`` may be set at this
        time.
    :ivar sharing.UpdateFolderMemberArg.access_level: The new access level for
        ``member``. ``AccessLevel.owner`` is disallowed.
    )rw   r   rC   TNc                 C   r   r   )rE   rF   rw   r   rC   ry   r   rK   )r   ry   r   rK   r   r   r   rM   `(  r   zUpdateFolderMemberArg.__init__ry   r   rP   rK   c                    r   r   )r   r  r   r    r"   r   r   r   w(  r$   z1UpdateFolderMemberArg._process_custom_annotationsr   )r%   r&   r'   r(   rS   rT   rM   rE   rU   ry   r   rK   r   r*   r   r   r"   r   r  M(  r   r  c                       s   e Zd ZdZdZdZdZdZedd Z	edd Z
edd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z fddZ  ZS )UpdateFolderMemberErroraQ  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar AddFolderMemberError UpdateFolderMemberError.no_explicit_access: If
        updating the access type required the member to be added to the shared
        folder and there was an error when adding the member.
    :ivar sharing.UpdateFolderMemberError.insufficient_plan: The current user's
        account doesn't support this action. An example of this is when
        downgrading a member from editor to viewer. This action can only be
        performed by users that have upgraded to a Pro or Business plan.
    :ivar sharing.UpdateFolderMemberError.no_permission: The current user does
        not have permission to perform this action.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharedFolderAccessError val:
        :rtype: UpdateFolderMemberError
        r^   r   rZ   r   r   r   r^   (  r]   z$UpdateFolderMemberError.access_errorc                 C   rX   )z
        Create an instance of this class set to the ``member_error`` tag with
        value ``val``.

        :param SharedFolderMemberError val:
        :rtype: UpdateFolderMemberError
        rr  r   rZ   r   r   r   rr  (  r]   z$UpdateFolderMemberError.member_errorc                 C   rX   )z
        Create an instance of this class set to the ``no_explicit_access`` tag
        with value ``val``.

        :param AddFolderMemberError val:
        :rtype: UpdateFolderMemberError
        rh  r   rZ   r   r   r   rh  (  r]   z*UpdateFolderMemberError.no_explicit_accessc                 C   r   ra   r   r   r   r   r   rb   (  r   z'UpdateFolderMemberError.is_access_errorc                 C   r   ru  r   r   r   r   r   rv  (  r   z'UpdateFolderMemberError.is_member_errorc                 C   r   rk  r   r   r   r   r   rl  (  r   z-UpdateFolderMemberError.is_no_explicit_accessc                 C   r   r   r   r   r   r   r   r   (  r   z,UpdateFolderMemberError.is_insufficient_planc                 C   r   r   r   r   r   r   r   r   (  r   z(UpdateFolderMemberError.is_no_permissionc                 C   r   r   r   r   r   r   r   r   (  r   z UpdateFolderMemberError.is_otherc                 C   rh   r  rr   r   r   r   r   rs   (  ro   z(UpdateFolderMemberError.get_access_errorc                 C   rh   r(  r{  r   r   r   r   r|  (  ro   z(UpdateFolderMemberError.get_member_errorc                 C   rh   )a  
        If updating the access type required the member to be added to the
        shared folder and there was an error when adding the member.

        Only call this if :meth:`is_no_explicit_access` is true.

        :rtype: AddFolderMemberError
        rm  rn  r   r   r   r   ro  (  r  z.UpdateFolderMemberError.get_no_explicit_accessc                    r   r   )r   r  r   r    r"   r   r   r   )  r$   z3UpdateFolderMemberError._process_custom_annotations)r%   r&   r'   r(   r)   r   r   r   rt   r^   rr  rh  rb   rv  rl  r   r   r   rs   r|  ro  r   r*   r   r   r"   r   r  |(  s,    







r  c                       s   e Zd ZdZg dZdZ							dddZedZ	ejdddd	Z
ejd
ddd	Zejdddd	Zejdddd	Zejdddd	ZejdddZ fddZ  ZS )UpdateFolderPolicyArga  
    If any of the policies are unset, then they retain their current setting.

    :ivar sharing.UpdateFolderPolicyArg.shared_folder_id: The ID for the shared
        folder.
    :ivar sharing.UpdateFolderPolicyArg.member_policy: Who can be a member of
        this shared folder. Only applicable if the current user is on a team.
    :ivar sharing.UpdateFolderPolicyArg.acl_update_policy: Who can add and
        remove members of this shared folder.
    :ivar sharing.UpdateFolderPolicyArg.viewer_info_policy: Who can
        enable/disable viewer info for this shared folder.
    :ivar sharing.UpdateFolderPolicyArg.shared_link_policy: The policy to apply
        to shared links created for content inside this shared folder. The
        current user must be on a team to set this policy to
        ``SharedLinkPolicy.members``.
    :ivar sharing.UpdateFolderPolicyArg.link_settings: Settings on the link for
        this folder.
    :ivar sharing.UpdateFolderPolicyArg.actions: A list of `FolderAction`s
        corresponding to `FolderPermission`s that should appear in the
        response's ``SharedFolderMetadata.permissions`` field describing the
        actions the  authenticated user can perform on the folder.
    )rw   r  r  r  r  rA  r  TNc                 C   r  r   )rE   rF   rw   r  r  r  r  rA  r  ry   r  r  r  r  rB  r  )r   ry   r  r  r  r  rB  r  r   r   r   rM   0)  r!  zUpdateFolderPolicyArg.__init__ry   r  r   r  r  r  rB  r  rN   c                    r   r   )r   r  r   r    r"   r   r   r   c)  r$   z1UpdateFolderPolicyArg._process_custom_annotationsr"  )r%   r&   r'   r(   rS   rT   rM   rE   rU   ry   r  r  r  r  rB  r  r   r*   r   r   r"   r   r  )  s(    


r  c                       s   e Zd ZdZdZdZdZdZdZdZ	dZ
edd Zdd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Z fddZ  ZS )UpdateFolderPolicyErrora  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.UpdateFolderPolicyError.not_on_team:
        ``UpdateFolderPolicyArg.member_policy`` was set even though user is not
        on a team.
    :ivar sharing.UpdateFolderPolicyError.team_policy_disallows_member_policy:
        Team policy is more restrictive than ``ShareFolderArg.member_policy``.
    :ivar sharing.UpdateFolderPolicyError.disallowed_shared_link_policy: The
        current account is not allowed to select the specified
        ``ShareFolderArg.shared_link_policy``.
    :ivar sharing.UpdateFolderPolicyError.no_permission: The current user does
        not have permission to perform this action.
    :ivar sharing.UpdateFolderPolicyError.team_folder: This action cannot be
        performed on a team shared folder.
    r   Nc                 C   rX   )z
        Create an instance of this class set to the ``access_error`` tag with
        value ``val``.

        :param SharedFolderAccessError val:
        :rtype: UpdateFolderPolicyError
        r^   r   rZ   r   r   r   r^   )  r]   z$UpdateFolderPolicyError.access_errorc                 C   r   ra   r   r   r   r   r   rb   )  r   z'UpdateFolderPolicyError.is_access_errorc                 C   r   )zR
        Check if the union tag is ``not_on_team``.

        :rtype: bool
        not_on_teamr   r   r   r   r   is_not_on_team)  r   z&UpdateFolderPolicyError.is_not_on_teamc                 C   r   rH  r   r   r   r   r   rJ  )  r   z>UpdateFolderPolicyError.is_team_policy_disallows_member_policyc                 C   r   rK  r   r   r   r   r   rM  )  r   z8UpdateFolderPolicyError.is_disallowed_shared_link_policyc                 C   r   r   r   r   r   r   r   r   )  r   z(UpdateFolderPolicyError.is_no_permissionc                 C   r   r   r   r   r   r   r   r   )  r   z&UpdateFolderPolicyError.is_team_folderc                 C   r   r   r   r   r   r   r   r   )  r   z UpdateFolderPolicyError.is_otherc                 C   rh   r  rr   r   r   r   r   rs   )  ro   z(UpdateFolderPolicyError.get_access_errorc                    r   r   )r   r  r   r    r"   r   r   r   )  r$   z3UpdateFolderPolicyError._process_custom_annotations)r%   r&   r'   r(   r)   r  rI  rL  r   r   r   rt   r^   rb   r  rJ  rM  r   r   r   rs   r   r*   r   r   r"   r   r  h)  s(    


r  c                       r  )UserMembershipInfoz
    The information about a user member of the shared content.

    :ivar sharing.UserMembershipInfo.user: The account information for the
        membership user.
    r  TNc                    r  r   )r   r  rM   rE   rF   r  r  )r   r  r  r  r  r  r"   r   r   rM   )  r  zUserMembershipInfo.__init__r  rP   c                    r   r   )r   r  r   r    r"   r   r   r   )  r$   z.UserMembershipInfo._process_custom_annotationsr  )r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r   r*   r   r   r"   r   r  )  r  r  c                       sf   e Zd ZdZddgZdZ							d fdd	Zejddd	Z	ejd
dddZ
 fddZ  ZS )UserFileMembershipInfoa  
    The information about a user member of the shared content with an appended
    last seen timestamp.

    :ivar sharing.UserFileMembershipInfo.time_last_seen: The UTC timestamp of
        when the user has last seen the content. Only populated if the user has
        seen the content and the caller has a plan that includes viewer history.
    :ivar sharing.UserFileMembershipInfo.platform_type: The platform on which
        the user has last seen the content, or unknown.
    _time_last_seen_value_platform_type_valueTNc                    sL   t t| ||||| tj| _tj| _|d ur|| _|d ur$|| _d S d S r   )	r   r  rM   rE   rF   r  r  time_last_seenplatform_type)r   r  r  r  r  r  r  r  r"   r   r   rM   *  s   
zUserFileMembershipInfo.__init__r  rN   r  r   c                    r   r   )r   r  r   r    r"   r   r   r   -*  r$   z2UserFileMembershipInfo._process_custom_annotationsr"  )r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r  r   r*   r   r   r"   r   r   *  s"    r  c                       sv   e Zd ZdZg dZdZ					dddZedZ	edZ
ed	Zed
ZejdddZ fddZ  ZS )UserInfoa  
    Basic information about a user. Use
    :meth:`dropbox.dropbox_client.Dropbox.sharing_users_account` and
    :meth:`dropbox.dropbox_client.Dropbox.sharing_users_account_batch` to obtain
    more detailed information.

    :ivar sharing.UserInfo.account_id: The account ID of the user.
    :ivar sharing.UserInfo.email: Email address of user.
    :ivar sharing.UserInfo.display_name: The display name of the user.
    :ivar sharing.UserInfo.same_team: If the user is in the same team as current
        user.
    :ivar sharing.UserInfo.team_member_id: The team member ID of the shared
        folder member. Only present if ``same_team`` is true.
    )_account_id_value_email_valuer  r  _team_member_id_valueTNc                 C   sv   t j| _t j| _t j| _t j| _t j| _|d ur|| _|d ur"|| _|d ur)|| _	|d ur0|| _
|d ur9|| _d S d S r   )rE   rF   r  r  r  r  r  
account_idr  r  r  team_member_id)r   r  r  r  r  r  r   r   r   rM   L*  r  zUserInfo.__init__r  r  r  r  r  rN   c                    r   r   )r   r  r   r    r"   r   r   r   q*  r$   z$UserInfo._process_custom_annotationsr  )r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r  r  r  r  r   r*   r   r   r"   r   r  2*  s     




r  c                       r   )ViewerInfoPolicya  
    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.ViewerInfoPolicy.enabled: Viewer information is available on
        this file.
    :ivar sharing.ViewerInfoPolicy.disabled: Viewer information is disabled on
        this file.
    r   Nc                 C   r   )zN
        Check if the union tag is ``enabled``.

        :rtype: bool
        enabledr   r   r   r   r   
is_enabled*  r   zViewerInfoPolicy.is_enabledc                 C   r   )zO
        Check if the union tag is ``disabled``.

        :rtype: bool
        disabledr   r   r   r   r   is_disabled*  r   zViewerInfoPolicy.is_disabledc                 C   r   r   r   r   r   r   r   r   *  r   zViewerInfoPolicy.is_otherc                    r   r   )r   r  r   r    r"   r   r   r   *  r$   z,ViewerInfoPolicy._process_custom_annotations)r%   r&   r'   r(   r)   r  r  r   r  r  r   r   r*   r   r   r"   r   r  v*  r(  r  c                       r,   )
Visibilitya  
    Who can access a shared link. The most open visibility is ``public``. The
    default depends on many aspects, such as team and user preferences and
    shared folder settings.

    This class acts as a tagged union. Only one of the ``is_*`` methods will
    return true. To get the associated value of a tag (if one exists), use the
    corresponding ``get_*`` method.

    :ivar sharing.Visibility.public: Anyone who has received the link can access
        it. No login required.
    :ivar sharing.Visibility.team_only: Only members of the same team can access
        the link. Login is required.
    :ivar sharing.Visibility.password: A link-specific password is required to
        access the link. Login is not required.
    :ivar sharing.Visibility.team_and_password: Only members of the same team
        who have the link-specific password can access the link.
    :ivar sharing.Visibility.shared_folder_only: Only members of the shared
        folder containing the linked file can access the link. Login is
        required.
    r   Nc                 C   r   r   r   r   r   r   r   r   *  r   zVisibility.is_publicc                 C   r   r   r   r   r   r   r   r   *  r   zVisibility.is_team_onlyc                 C   r   r   r   r   r   r   r   r   *  r   zVisibility.is_passwordc                 C   r   r   r   r   r   r   r   r   *  r   zVisibility.is_team_and_passwordc                 C   r   r   r   r   r   r   r   r   *  r   z Visibility.is_shared_folder_onlyc                 C   r   r   r   r   r   r   r   r   *  r   zVisibility.is_otherc                    r   r   )r   r  r   r    r"   r   r   r   *  r$   z&Visibility._process_custom_annotations)r%   r&   r'   r(   r)   r   r   r   r   r   r   r   r   r   r   r   r   r   r*   r   r   r"   r   r  *  s     r  c                       st   e Zd ZdZg dZdZ				dddZejdddZ	ejd	ddZ
ed
ZejddddZ fddZ  ZS )VisibilityPolicya  
    :ivar sharing.VisibilityPolicy.policy: This is the value to submit when
        saving the visibility setting.
    :ivar sharing.VisibilityPolicy.resolved_policy: This is what the effective
        policy would be, if you selected this option. The resolved policy is
        obtained after considering external effects such as shared folder
        settings and team policy. This value is guaranteed to be provided.
    :ivar sharing.VisibilityPolicy.allowed: Whether the user is permitted to set
        the visibility to this policy.
    :ivar sharing.VisibilityPolicy.disallowed_reason: If ``allowed`` is
        ``False``, this will provide the reason that the user is not permitted
        to set the visibility to this policy.
    )r  _resolved_policy_valuerT  rU  TNc                 C   rx   r   )
rE   rF   r  r  rT  rU  r  resolved_policyrV  rW  )r   r  r  rV  rW  r   r   r   rM   +  rz   zVisibilityPolicy.__init__r  rP   r  rV  rW  r   c                    r   r   )r   r  r   r    r"   r   r   r   7+  r$   z,VisibilityPolicy._process_custom_annotationsr{   )r%   r&   r'   r(   rS   rT   rM   rE   rU   r  r  rV  rW  r   r*   r   r   r"   r   r  +  s    

r     )
min_lengthz,((/|id:).*|nspath:[0-9]+:.*)|ns:[0-9]+(/.*)?)r  pattern)r   r   r   r   r   r   )r/   r2   r5   r7   r9   r   r/   r2   r5   r7   r9   )r/   r<   r   r<   )rG   rH   rI   rJ   rK   rL   rG   rH   rI   rJ   rK   rL   )rY   r^   rd   rf   r   rd   rf   )ry   rH   rJ   rI   ry   )r^   r   r   r}   r   r~   r   rd   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   r   r   r   r   r   r   )ry   r   r   r   )r   r   r   r   r   r   )r   Z
collectionr  r  T)r   r   r   r   r   r   )r   r   r  )r   r  r  r  r  r  r  )rK   r  r  r  r  r  r  r  r  r  r  r  r  )r&  r)  r,  r/  r2  r5  r8  r;  r>  rA  rC  rE  r   r&  r)  r,  r/  r2  r5  r8  r;  r>  rA  rC  rE  )rI  rJ  rK  r   )r   rW  r   r   rX  r  rY  rZ  rW  rX  rY  rZ  )rG   r  r  r  )rc  rd  re  rf  rc  rd  re  rf  )ri  r   r^   rh  r   ri  )rq  rr  )r   r  r  r  r  r  r  )rq  rr  r   )r  r  r  r  r  r  )r  r&  r)  r,  r5  r/  r2  r;  r  r8  r  r>  rA  r  r   r  r  r  r  )r  r  r  r  r  r  r  r  r  r  r  d   )Z	max_itemsr   )rY   r^   r   )r  r^   r   )r  r  r  r   r  r  r  r  )r   r   r  r  r  )r  r  r0   r  r  r  r0   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   )r5   r2   r   )r+  r-  r0  r3  r6  r9  r   r+  r-  r0  r3  r6  r9  )r   r=  r   r   rH   r   r=  )rB  rD  rG  rJ  rM  rP  r   rB  rD  rG  rJ  rM  rP  )r   rV  rW  rV  rW  )r0  r6  r   )r3  r9  r   )rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  r  r  r  r  r  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  r  r  r  r  )rK   r   r  r   i,  )Z	min_value	max_value)rG   r  r  r  r  r     )r  r  )rY   r^   r  r   r  r  )r  r^   r   )rY   r  r   r  i  )r^   r  r   )r  r   )r   r  r  r  )r   r  r   r  )r  r  r  r  )rK   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  r  r  )r  ry   r  r   r  )rG   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  rh  )rY   r^   rh  r   )ry   r   r  )r^   rr  r  r  r   r   r&  r   r&  )r5   r2   r0  r2  r   r0  r2  r7  r;  )r^   r   r   )r  r?  r  r   r  r  r;  r?  rB  )r   rF  rI  rL  r   rI  rL  r  rU  rW  rY  r[  r]  r_  rb  rS  re  rg  rj  rl  rn  rp  ru  )r
   r|  r}  r  r
   r|  r}  )r  rW  r  r  r   r  r  r  r  rX  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  rX  r  r  r   r  )r  r   r  r  r  ry   r  r;  )r  r  r  r   r  r   r  r  r  r  )r  r   )r  r=  rH   r   )r  r  r   r   r  rs  r{  r  )r  r  r  r  )r   r  r  rb  rj  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   )rG   r   rK   )ry   r   rK   )r^   rr  rh  r   r   r   )ry   r  r  r  r  rB  r  )r^   r  rI  rL  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  rV  rW  r  F
   add_file_memberapiZrpc)authhoststyleadd_folder_membercheck_job_statuscheck_remove_member_job_statuscheck_share_job_statuscreate_shared_link create_shared_link_with_settingsget_file_metadatazget_file_metadata/batchget_folder_metadataget_shared_link_filecontentdownloadget_shared_link_metadataz	app, userget_shared_linkslist_file_memberszlist_file_members/batchzlist_file_members/continuelist_folder_memberszlist_folder_members/continuelist_folderszlist_folders/continuelist_mountable_folderszlist_mountable_folders/continuelist_received_fileszlist_received_files/continuelist_shared_linksmodify_shared_link_settingsmount_folderrelinquish_file_membershiprelinquish_folder_membershipremove_file_memberremove_file_member_2remove_folder_memberrevoke_shared_linkshare_foldertransfer_folderunmount_folderunshare_fileunshare_folderupdate_file_memberupdate_folder_memberupdate_folder_policy)r  r  r   r!  r"  r#  r$  r%  N(K  r(   
__future__r   Zstone.backends.python_rsrcr   rE   r   ZbvZdropboxr   r   r   r   r	   r
   r   Unionr   ZAccessInheritance_validatorr-   ZAccessLevel_validatorr;   ZAclUpdatePolicy_validatorStructr>   ZAddFileMemberArgs_validatorrW   ZAddFileMemberError_validatorrv   ZAddFolderMemberArg_validatorr|   ZAddFolderMemberError_validatorr   ZAddMember_validatorr   Z AddMemberSelectorError_validatorr   ZRequestedVisibility_validatorr   ZResolvedVisibility_validatorr   Z!AlphaResolvedVisibility_validatorr   Z&AudienceExceptionContentInfo_validatorr   ZAudienceExceptions_validatorr   Z)AudienceRestrictingSharedFolder_validatorr   Z
StructTreeZLinkMetadata_validatorr   Z CollectionLinkMetadata_validatorr   ZCreateSharedLinkArg_validatorr   ZCreateSharedLinkError_validatorr  Z)CreateSharedLinkWithSettingsArg_validatorr  Z+CreateSharedLinkWithSettingsError_validatorr  Z'SharedContentLinkMetadataBase_validatorr#  Z+ExpectedSharedContentLinkMetadata_validatorr$  ZFileAction_validatorrH  ZFileErrorResult_validatorrR  ZSharedLinkMetadata_validatorr^  ZFileLinkMetadata_validatorrg  ZFileMemberActionError_validatorrp  Z*FileMemberActionIndividualResult_validatorr}  Z FileMemberActionResult_validatorr  Z&FileMemberRemoveActionResult_validatorr  ZFilePermission_validatorr  ZFolderAction_validatorr  ZFolderLinkMetadata_validatorr  ZFolderPermission_validatorr  ZFolderPolicy_validatorr  ZGetFileMetadataArg_validatorr  Z!GetFileMetadataBatchArg_validatorr  Z$GetFileMetadataBatchResult_validatorr  ZGetFileMetadataError_validatorr  Z)GetFileMetadataIndividualResult_validatorr  ZGetMetadataArgs_validatorr  ZSharedLinkError_validatorr  Z GetSharedLinkFileError_validatorr  Z"GetSharedLinkMetadataArg_validatorr  ZGetSharedLinksArg_validatorr  ZGetSharedLinksError_validatorr  ZGetSharedLinksResult_validatorZGroupSummaryr  ZGroupInfo_validatorr  ZMembershipInfo_validatorr  ZGroupMembershipInfo_validatorr  ZInsufficientPlan_validatorr  Z"InsufficientQuotaAmounts_validatorr  ZInviteeInfo_validatorr  ZInviteeMembershipInfo_validatorr  ZJobError_validatorZPollResultBaser  ZJobStatus_validatorr'  ZLinkAccessLevel_validatorr*  ZLinkAction_validatorr;  ZLinkAudience_validatorrA  Z*VisibilityPolicyDisallowedReason_validatorrR  Z&LinkAudienceDisallowedReason_validatorrS  ZLinkAudienceOption_validatorrY  ZLinkExpiry_validatorr\  ZLinkPassword_validatorr^  ZLinkPermission_validatorr_  ZLinkPermissions_validatorr  ZLinkSettings_validatorr  ZListFileMembersArg_validatorr  Z!ListFileMembersBatchArg_validatorr  Z$ListFileMembersBatchResult_validatorr  Z$ListFileMembersContinueArg_validatorr  Z&ListFileMembersContinueError_validatorr  Z$ListFileMembersCountResult_validatorr  ZListFileMembersError_validatorr  Z)ListFileMembersIndividualResult_validatorr  ZListFilesArg_validatorr  ZListFilesContinueArg_validatorr  Z ListFilesContinueError_validatorr  ZListFilesResult_validatorr  Z$ListFolderMembersCursorArg_validatorr  ZListFolderMembersArgs_validatorr  Z&ListFolderMembersContinueArg_validatorr  Z(ListFolderMembersContinueError_validatorr  ZListFoldersArgs_validatorr  Z ListFoldersContinueArg_validatorr  Z"ListFoldersContinueError_validatorr  ZListFoldersResult_validatorr  ZListSharedLinksArg_validatorr  ZListSharedLinksError_validatorr  ZListSharedLinksResult_validatorr  Z!MemberAccessLevelResult_validatorr  ZMemberAction_validatorr  ZMemberPermission_validatorr  ZMemberPolicy_validatorr  ZMemberSelector_validatorr  Z&ModifySharedLinkSettingsArgs_validatorr  Z'ModifySharedLinkSettingsError_validatorr  ZMountFolderArg_validatorr  ZMountFolderError_validatorr  Z ParentFolderAccessInfo_validatorr  ZPathLinkMetadata_validatorr  ZPendingUploadMode_validatorr  Z PermissionDeniedReason_validatorr  Z%RelinquishFileMembershipArg_validatorr  Z'RelinquishFileMembershipError_validatorr  Z'RelinquishFolderMembershipArg_validatorr  Z)RelinquishFolderMembershipError_validatorr!  ZRemoveFileMemberArg_validatorr"  ZRemoveFileMemberError_validatorr#  ZRemoveFolderMemberArg_validatorr$  Z!RemoveFolderMemberError_validatorr*  ZRemoveMemberJobStatus_validatorr/  Z"RequestedLinkAccessLevel_validatorr5  ZRevokeSharedLinkArg_validatorr6  ZRevokeSharedLinkError_validatorr9  Z!SetAccessInheritanceArg_validatorr<  Z#SetAccessInheritanceError_validatorr=  ZShareFolderArgBase_validatorr@  ZShareFolderArg_validatorrE  ZShareFolderErrorBase_validatorrO  ZShareFolderError_validatorrP  ZShareFolderJobStatus_validatorZLaunchResultBaserQ  ZShareFolderLaunch_validatorrR  ZSharePathError_validatorrs  Z#SharedContentLinkMetadata_validatorrv  ZSharedFileMembers_validatorr  ZSharedFileMetadata_validatorr  Z!SharedFolderAccessError_validatorr  Z!SharedFolderMemberError_validatorr  ZSharedFolderMembers_validatorr  Z"SharedFolderMetadataBase_validatorr  ZSharedFolderMetadata_validatorr  Z'SharedLinkAccessFailureReason_validatorr  Z)SharedLinkAlreadyExistsMetadata_validatorr  ZSharedLinkPolicy_validatorr  ZSharedLinkSettings_validatorr  Z!SharedLinkSettingsError_validatorr  Z SharingFileAccessError_validatorr  ZSharingUserError_validatorr  ZTeamMemberInfo_validatorr  ZTransferFolderArg_validatorr  ZTransferFolderError_validatorr  ZUnmountFolderArg_validatorr  ZUnmountFolderError_validatorr  ZUnshareFileArg_validatorr  ZUnshareFileError_validatorr  ZUnshareFolderArg_validatorr  ZUnshareFolderError_validatorr  ZUpdateFileMemberArgs_validatorr  ZUpdateFolderMemberArg_validatorr  Z!UpdateFolderMemberError_validatorr  ZUpdateFolderPolicyArg_validatorr  Z!UpdateFolderPolicyError_validatorr  ZUserMembershipInfo_validatorr  Z UserFileMembershipInfo_validatorr  ZUserInfo_validatorr  ZViewerInfoPolicy_validatorr  ZVisibility_validatorr  ZVisibilityPolicy_validatorStringZDropboxId_validatorZGetSharedLinkFileArg_validatorZGetSharedLinkFileArgZId_validatorZPath_validatorZPathOrId_validatorZReadPath_validatorZRev_validatorZTeam_validatorZTeamInfo_validatorZTeamZTeamInfoZVoidZ_inherit_validatorZ_no_inherit_validatorZ_other_validatorZ_tagmapr   r   r   Z_owner_validatorZ_editor_validatorZ_viewer_validatorZ_viewer_no_comment_validatorZ_traverse_validatorr/   r2   r5   r7   r9   Z_editors_validatorr<   rG   	validatorListrH   ZNullablerI   BooleanrJ   rK   rL   setZ_all_field_names_Z_all_fields_Z_user_error_validatorZ_access_error_validatorZ_rate_limit_validatorZ_invalid_comment_validatorrd   rf   ZSharedFolderId_validatorry   Z_email_unverified_validatorZ_banned_member_validatorZ_bad_member_validatorZ"_cant_share_outside_team_validatorZUInt64Z_too_many_members_validatorZ#_too_many_pending_invites_validatorZ_too_many_invitees_validatorZ_insufficient_plan_validatorZ_team_folder_validatorZ_no_permission_validatorZ _invalid_shared_folder_validatorr   r   r   r   r   r   r   r   r   Z_automatic_group_validatorZ_invalid_dropbox_id_validatorZEmailAddress_validatorZ_invalid_email_validatorZ _unverified_dropbox_id_validatorZ_group_deleted_validatorZ_group_not_on_team_validatorr   r   r   Z_public_validatorZ_team_only_validatorZ_password_validatorr   r   r   Z_team_and_password_validatorZ_shared_folder_only_validatorZ_no_one_validatorZ_only_you_validatorupdater   r   r   r   r   ZUInt32r   r   r   r   r   ZDropboxTimestamp_validatorr   Z_field_names__fields_Z_tag_to_subtype_Z_pytype_to_tag_and_subtype_Z_is_catch_all_unionr   r   r   ZLookupError_validatorZ_path_validatorr  Z_email_not_verified_validatorZ%_shared_link_already_exists_validatorZ_settings_error_validatorZ_access_denied_validatorr  r  r  r  r  r  r  r  Z_disable_viewer_info_validatorZ_edit_contents_validatorZ_enable_viewer_info_validatorZ_invite_viewer_validatorZ#_invite_viewer_no_comment_validatorZ_invite_editor_validatorZ_unshare_validatorZ _relinquish_membership_validatorZ_share_link_validatorZ_create_link_validatorZ_create_view_link_validatorZ_create_edit_link_validatorr&  r)  r,  r/  r2  r5  r8  r;  r>  rA  rC  rE  Z_file_not_found_error_validatorZ$_invalid_file_action_error_validatorZ"_permission_denied_error_validatorrW  rX  rY  rZ  rc  rd  re  rf  Z_invalid_member_validatorZ_no_explicit_access_validatorri  Z_success_validatorZ_member_error_validatorr  r  r  r  r  r  Z_change_options_validatorZ_unmount_validatorZ_leave_a_copy_validatorZ!_set_access_inheritance_validatorr  r  r  r  r  r  r  r  r  r  Z_metadata_validatorZ _shared_link_not_found_validatorZ$_shared_link_access_denied_validatorZ _unsupported_link_type_validatorr  r  r  Z#_shared_link_is_directory_validatorr  r  ZMalformedPathError_validatorr  ZGroupType_validatorr  r  r0   r  r  r  r  r  r  r  r  r  r  r  Z_email_validatorr  r  Z_unshare_folder_error_validatorZ%_remove_folder_member_error_validatorZ-_relinquish_folder_membership_error_validatorZ_complete_validatorZ_failed_validatorr   Z_change_access_level_validatorZ_change_audience_validatorZ_remove_expiry_validatorZ_remove_password_validatorZ_set_expiry_validatorZ_set_password_validatorr+  r-  r0  r3  r6  r9  Z_team_validatorZ_members_validatorr=  Z_delete_and_recreate_validatorZ&_restricted_by_shared_folder_validatorZ_restricted_by_team_validatorZ_user_not_on_team_validatorZ_user_account_type_validatorZ_permission_denied_validatorrB  rD  rG  rJ  rM  rP  rV  rW  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  r  r  r  r  r  r  r  Z_invalid_cursor_validatorr  r  Z_result_validatorr  r  Z_reset_validatorr  r  r  r  Z_make_editor_validatorZ_make_owner_validatorZ_make_viewer_validatorZ!_make_viewer_no_comment_validatorZ_remove_validatorr  r  r  r  r  Z_anyone_validatorr  Z_dropbox_id_validatorr  Z_inside_shared_folder_validatorZ_insufficient_quota_validatorZ_already_mounted_validatorZ_not_mountable_validatorr  r  r  r  Z_file_validatorZ_folder_validatorr  Z&_user_not_same_team_as_owner_validatorZ$_user_not_allowed_by_owner_validatorZ$_target_is_indirect_member_validatorZ_target_is_owner_validatorZ_target_is_self_validatorZ_target_not_active_validatorZ(_folder_is_limited_team_folder_validatorZ_owner_not_on_team_validatorZ)_folder_is_inside_shared_folder_validatorZ&_restricted_by_parent_folder_validatorr  r  r  r  r  r   r  r  r  r  Z_group_access_validatorr  Z_folder_owner_validatorZ_mounted_validatorr  r  rh  Z_too_many_files_validatorr&  Z_max_validatorZ_default_validatorr0  r2  Z _shared_link_malformed_validatorr7  r;  r?  ZWritePath_validatorrB  Z_bad_path_validatorZ._team_policy_disallows_member_policy_validatorZ(_disallowed_shared_link_policy_validatorrI  rL  Z_is_file_validatorZ!_contains_shared_folder_validatorZ_contains_app_folder_validatorZ_contains_team_folder_validatorZ_is_app_folder_validatorZ_inside_app_folder_validatorZ_is_public_folder_validatorZ_inside_public_folder_validatorZ_already_shared_validatorZ_invalid_path_validatorZ_is_osx_package_validatorZ_inside_osx_package_validatorZ_is_vault_validatorZ_is_vault_locked_validatorZ_is_family_validatorr  rU  rW  rY  r[  r]  r_  rb  re  rg  rj  rl  rn  rp  ru  r|  r}  ZFileId_validatorr  r  r  r  r  r  r  r  r  Z_invalid_id_validatorZ_not_a_member_validatorZ_unmounted_validatorr  r  r  r   r  r   r  Z_login_required_validatorZ _email_verify_required_validatorZ_password_required_validatorZ_owner_only_validatorr  r  r  r  r  Z_invalid_settings_validatorZ_not_authorized_validatorr  r  Z_invalid_file_validatorZ_is_folder_validatorr  r  r  r  r  r  Z!_new_owner_not_a_member_validatorZ_new_owner_unmounted_validatorZ%_new_owner_email_unverified_validatorr  r  r  Z_not_unmountable_validatorr  Z_not_on_team_validatorr  r  ZPlatformType_validatorr  ZAccountId_validatorr  r  r  Z_enabled_validatorZ_disabled_validatorr  r  r  ZRouter  r  ZPollArg_validatorZPollError_validatorr  r  r  r  r  r	  Zget_file_metadata_batchr
  r  r  r  r  Zlist_file_members_batchZlist_file_members_continuer  Zlist_folder_members_continuer  Zlist_folders_continuer  Zlist_mountable_folders_continuer  Zlist_received_files_continuer  r  r  r  ZLaunchEmptyResult_validatorr  r  r  ZLaunchResultBase_validatorr  r  r  r  r   r!  r"  r#  r$  r%  ZROUTESr   r   r   r   <module>   s  
1
W
1
M
k
6  

$ 
"
7
Q


&
/
-

+
3
" 

Z
 
&
z
c
L
u
X
:
Y
. 
>

/
F
&
&
%
S
Y
$
<

-

3

B
9
"
#
,
9
+ 


7
/
^
T
a

-
D
D
' 
b
6
9
%
%

`
"
R
Y
'

G
%
$


@
$

#
+
/
B
0
1
`
.
0
Z
,
;
 

8

& 
_

M
# 

&
y
/ 

K
H


"DV2_I' l3? 'HP;cqU8<Y,U'-"~NS$X/- Zr"0B/X9





		
	
"


















"








"
 



	












 
















	























	


$


$
$
	



	





	



 $
	



	
 !"#