Ë
    GKÕi<  ã                   óJ  — d dl Z d dlmZ d dlmZmZmZmZmZm	Z	 d dl
mZmZ d dlmZmZmZ d dlmZ d dlmZ d dlmZmZ d d	lmZ g d
¢Zdee   dee   de	eeef   ee   f   fd„Zdedee   de	eeef   ee   f   fd„Z	 ddedee   dededee   defd„Z G d„ d«      Zy)é    N)Úimport_module)ÚAnyÚCallableÚDictÚListÚOptionalÚTuple)ÚAbstractProgressÚerrors)ÚAPIDataÚAPIResponseÚErrorWarningObject)ÚUAConfig)ÚIncorrectFieldTypeError)ÚAPI_UNKNOWN_ARGÚWARN_NEW_VERSION_AVAILABLE)Úcheck_for_new_version)zu.pro.version.v1z,u.pro.attach.auto.configure_retry_service.v1z%u.pro.attach.auto.full_auto_attach.v1z'u.pro.attach.auto.should_auto_attach.v1z%u.pro.attach.guest.get_guest_token.v1zu.pro.attach.magic.initiate.v1zu.pro.attach.magic.revoke.v1zu.pro.attach.magic.wait.v1z'u.pro.attach.token.full_token_attach.v1zu.pro.detach.v1zu.pro.packages.summary.v1zu.pro.packages.updates.v1zu.pro.security.cves.v1z!u.pro.security.fix.cve.execute.v1zu.pro.security.fix.cve.plan.v1z!u.pro.security.fix.usn.execute.v1zu.pro.security.fix.usn.plan.v1z'u.pro.security.status.livepatch_cves.v1z(u.pro.security.status.reboot_required.v1zu.pro.services.dependencies.v1zu.pro.services.disable.v1zu.pro.services.enable.v1z u.pro.status.enabled_services.v1zu.pro.status.is_attached.v1zu.apt_news.current_news.v1zu.security.package_manifest.v1zu.unattended_upgrades.status.v1ÚoptionsÚfieldsÚreturnc                 óh  — i }g }| D ]ƒ  }	 |j                  d«      \  }}|r|st        j                  |¬«      ‚||vrI|j	                  t        t        j                  |¬«      j                  t        j                  i ¬«      «       |||<   Œ… ||fS # t        $ r t        j                  |¬«      ‚w xY w)Nú=©Úarg©ÚtitleÚcodeÚmeta)
ÚsplitÚ
ValueErrorr   ÚAPIBadArgsFormatÚappendr   r   ÚformatÚmsgÚname)r   r   ÚkwargsÚwarningsÚoptionÚkÚvs          ú2/usr/lib/python3/dist-packages/uaclient/api/api.pyÚ_process_optionsr,   +   sÁ   € ð €FØ€Hàò ˆð	6Ø—<‘< Ó$‰DˆAˆqñ ™Ü×)Ñ)¨fÔ5Ð5à�F‰?Ø�O‰OÜ"Ü)×0Ñ0°QÔ7×;Ñ;Ü(×-Ñ-Øôôð ˆˆqŠ	ð%ð( �8ÐÐøô# ò 	6Ü×)Ñ)¨fÔ5Ð5ð	6ús   ‹BÂ B1Údatac                 ó€  — i }g }	 t        j                  | «      }|j                  «       D ]W  \  }}||vrI|j                  t        t        j                  |¬«      j                  t        j                  i ¬«      «       |||<   ŒY ||fS # t         j                  j                  $ r t	        j
                  | ¬«      ‚w xY w)N)r-   r   r   )ÚjsonÚloadsÚdecoderÚJSONDecodeErrorr   ÚAPIJSONDataFormatErrorÚitemsr"   r   r   r#   r$   r%   )r-   r   r&   r'   Ú	json_datar)   r*   s          r+   Ú_process_datar6   H   s¼   € ð €FØ€Hð7Ü—J‘J˜tÓ$ˆ	ð —‘Ó!ò 
‰ˆˆ1Ø�F‰?Ø�O‰OÜ"Ü)×0Ñ0°QÔ7×;Ñ;Ü(×-Ñ-Øôôð ˆˆqŠ	ð
ð �8ÐÐøô �<‰<×'Ñ'ò 7Ü×+Ñ+°Ô6Ð6ð7ús   †B	 Â	4B=Úendpoint_pathÚcfgÚprogress_objectc           	      óÊ  — | t         vr)t        j                  t        j                  | ¬«      «      S t	        d| z   «      }|j
                  }g }|j                  r¸|j                  j                  D �cg c]  }|j                  ‘Œ }	}	 |rt        ||	«      \  }
}n|rt        ||	«      \  }
}ni g }}
|j                  |«       	 |j                  j                  |
«      }	 |j                   r|j#                  |||¬«      }n|j#                  ||«      }n_|s|r)t        j                  t        j&                  | ¬«      «      S 	 |j                   r|j#                  ||¬«      }n|j#                  |«      }t)        «       }|rI|j+                  t-        t/        j0                  |¬«      j2                  t.        j4                  i ¬«      «       t7        |j8                  |j:                  |z   t=        |j4                  ||j>                  ¬«      ¬«      S c c}w # t        j                  $ r}t        j                  |«      cY d }~S d }~ww xY w# t        $ r>}t        j                  t        j                  |j                  | ¬«      «      cY d }~S d }~ww xY w# t$        $ r}t        j                  |«      cY d }~S d }~ww xY w# t$        $ r}t        j                  |«      cY d }~S d }~ww xY w)	N)Úendpointzuaclient.api.)r   r;   )r9   )Úversionr   )ÚtypeÚ
attributesr   )Ú_schema_versionr'   r-   ) ÚVALID_ENDPOINTSr   Ú	error_outÚAPIInvalidEndpointr   r;   Úoptions_clsr   Úkeyr,   r6   ÚextendÚAPIErrorÚ	from_dictr   ÚAPIMissingArgÚsupports_progressÚfnÚ	ExceptionÚAPINoArgsForEndpointr   r"   r   r   r#   r$   r%   r   r<   r'   r   r   )r7   r   r-   r8   r9   Úmoduler;   Úoption_warningsÚfr   r&   r'   ÚeÚresultÚnew_versions                  r+   Úcall_apirS   b   s“  € ð œOÑ+Ü×ÑÜ×%Ñ%¨}Ô=ó
ð 	
ô ˜?¨]Ñ:Ó;€FØ�‰€Hà€Oà×ÒØ!)×!5Ñ!5×!<Ñ!<Ö=˜A�!—%“%Ð=ˆÐ=ð		'ÙÜ#3°G¸VÓ#DÑ �™ÙÜ#0°°vÓ#>Ñ �™à#% r˜�Ø×"Ñ" 8Ô,ð	Ø×*Ñ*×4Ñ4°VÓ<ˆGð	'Ø×)Ò)Ø!Ÿ™Ø˜S°/ð %ó ‘ð "Ÿ™ W¨cÓ2�øñ
 ‘dÜ×#Ñ#Ü×+Ñ+°]ÔCóð ð	'Ø×)Ò)Ø!Ÿ™ S¸/˜ÓJ‘à!Ÿ™ SÓ)�ô (Ó)€KÙØ×ÑÜÜ0×7Ñ7Ø'ôç‘#Ü/×4Ñ4Øôô	
ô Ø ×(Ñ(Ø—‘ ?Ñ2ÜØ—‘ØØ—‘ô
ôð ùòm >øô �‰ò 	'Ü×#Ñ# AÓ&Õ&ûð	'ûô
 'ò 	Ü×#Ñ#Ü×$Ñ$¨¯©¸ÔGóõ ûð	ûô ò 	'Ü×#Ñ# AÓ&Õ&ûð	'ûô ò 	'Ü×#Ñ# AÓ&Õ&ûð	'ús~   Á2HÂ9H ÃI Ã3J Å 1J: ÈIÈ#H=È7IÈ=IÉ	JÉ3JÊJÊJÊ	J7ÊJ2Ê,J7Ê2J7Ê:	K"ËKËK"ËK"c            	       ó(   — e Zd Z	 ddedededefd„Zy)ÚAPIEndpointr<   r%   rJ   rI   c                 óJ   — || _         || _        || _        || _        || _        y ©N)r<   r%   rJ   rC   rI   )Úselfr<   r%   rJ   rC   rI   s         r+   Ú__init__zAPIEndpoint.__init__·   s)   € ð ˆŒØˆŒ	ØˆŒØ&ˆÔØ!2ˆÕó    N)F)Ú__name__Ú
__module__Ú__qualname__Ústrr   ÚboolrY   © rZ   r+   rU   rU   ¶   s2   „ ð #(ñ3àð3ð ð3ð ð	3ð  ô3rZ   rU   rW   ) r/   Ú	importlibr   Útypingr   r   r   r   r   r	   Úuaclient.apir
   r   Úuaclient.api.data_typesr   r   r   Úuaclient.configr   Úuaclient.data_typesr   Úuaclient.messagesr   r   Úuaclient.versionr   r@   r^   r,   r6   rS   rU   r`   rZ   r+   ú<module>ri      s  ðÛ Ý #ß =× =ç 1ß LÑ LÝ $Ý 7ß IÝ 2ò€ð>Ø�#‰YðØ $ S¡	ðà
ˆ4��S�‰>˜4Ð 2Ñ3Ð3Ñ4óð:Ø
ðØ˜C‘yðà
ˆ4��S�‰>˜4Ð 2Ñ3Ð3Ñ4óð> 37ñQØðQà�#‰YðQð ðQð 
ð	Qð
 Ð.Ñ/ðQð óQ÷h3ò 3rZ   