o
    ÙKÕi{  ã                   @   sH  d dl Z d dlmZmZmZmZ d dlmZ d dlm	Z	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ZG d	d
„ d
e
ƒZdeeef deeef fdd„Zeeeedd�ed�ZG dd„ de
ƒZeeeddd�ejƒZ G dd„ de
ƒZ!ee!eddd�ejƒZ"G dd„ de
ƒZ#G dd„ de
ƒZ$ee$eddd�ejƒZ%edej&d �Z'ed!dej&d"�Z(G d#d$„ d$e
ƒZ)ee)ed%ƒejd&�Z*ed'ƒZ+ed(ƒZ,G d)d*„ d*e
ƒZ-ee-ed+ej.dd�ejƒZ/G d,d-„ d-e
ƒZ0ee0ed.dd�ejƒZ1eed/dd�d0�Z2ed1ej.dd�Z3G d2d3„ d3e
ƒZ4ee4ed4ej5dd5�ejƒZ6d6d7„ Z7dS )8é    N)ÚAnyÚDictÚListÚOptional)Údefaults)ÚBoolDataValueÚ
DataObjectÚDatetimeDataValueÚFieldÚIntDataValueÚStringDataValueÚ	data_list)ÚDataObjectFileÚDataObjectFileFormat)ÚProJSONFileÚUAFileÚUserCacheFile)ÚLXDGuestAttachEnumzservices-once-enabledc                   @   s(   e Zd ZededƒgZdefdd„ZdS )ÚServicesOnceEnabledDataÚfips_updatesFc                 C   ó
   || _ d S ©N)r   )Úselfr   © r   ú</usr/lib/python3/dist-packages/uaclient/files/state_files.pyÚ__init__   ó   
z ServicesOnceEnabledData.__init__N)Ú__name__Ú
__module__Ú__qualname__r
   r   ÚfieldsÚboolr   r   r   r   r   r      s    
ÿr   ÚdataÚreturnc                 C   s8   i }|   ¡ D ]}d|v rd|| dd¡< qd||< q|S )Nú-TÚ_)ÚkeysÚreplace)r"   Úupdated_dataÚkeyr   r   r   Ú%_services_once_enable_preprocess_data   s   
r*   F)ÚnameÚprivate)Údata_object_clsÚua_fileÚpreprocess_datac                   @   sT   e Zd ZedeeƒdƒedeeƒdƒgZ		ddeee	  deee	  fdd„Z
dS )ÚRetryAutoAttachOptionsÚenableFÚenable_betaNc                 C   ó   || _ || _d S r   )r1   r2   )r   r1   r2   r   r   r   r   >   ó   
zRetryAutoAttachOptions.__init__)NN)r   r   r   r
   r   r   r    r   r   Ústrr   r   r   r   r   r0   8   s    þý
þ
ýr0   zretry-auto-attach-options.jsonT)r,   c                   @   s:   e Zd Zedeƒededd�gZdedee	 fdd„Z
dS )ÚRetryAutoAttachStateÚinterval_indexÚfailure_reasonF©Úrequiredc                 C   r3   r   )r7   r8   )r   r7   r8   r   r   r   r   W   r4   zRetryAutoAttachState.__init__N)r   r   r   r
   r   r   r    Úintr   r5   r   r   r   r   r   r6   Q   s    þþýr6   zretry-auto-attach-state.jsonc                   @   s(   e Zd ZedeƒedeƒgZdd„ ZdS )ÚTimerJobStateÚnext_runÚlast_runc                 C   r3   r   )r=   r>   )r   r=   r>   r   r   r   r   m   s   
zTimerJobState.__init__N)r   r   r   r
   r	   r    r   r   r   r   r   r<   g   s
    þr<   c                   @   sB   e Zd Zededd�ededd�gZdee dee fdd„ZdS )ÚAllTimerJobsStateÚmeteringFr9   Úupdate_messagingc                 C   r3   r   )r@   rA   )r   r@   rA   r   r   r   r   x   r4   zAllTimerJobsState.__init__N)r   r   r   r
   r<   r    r   r   r   r   r   r   r?   r   s    þþýr?   zjobs-status.jsonzapt-news)Ú	directoryzapt-news-raw)r,   rB   c                   @   sl   e Zd Zedeƒedeƒedeƒedeƒededd�edeƒgZdedededede	e
 dejfd	d
„ZdS )ÚLivepatchSupportCacheDataÚversionÚflavorÚarchÚcodenameÚ	supportedFr9   Ú	cached_atc                 C   s(   || _ || _|| _|| _|| _|| _d S r   )rD   rE   rF   rG   rH   rI   )r   rD   rE   rF   rG   rH   rI   r   r   r   r   ˜   s   	
z"LivepatchSupportCacheData.__init__N)r   r   r   r
   r   r   r	   r    r5   r   r!   Údatetimer   r   r   r   r   rC   Ž   s*    ú	þýüûúùrC   z#livepatch-kernel-support-cache.json)Úfile_formatzmarker-reboot-cmds-requiredzmarker-only-series-checkc                   @   sJ   e Zd ZedeƒedeƒedeƒedeƒgZdedededefdd„ZdS )ÚAnboxCloudDataÚanbox_images_urlÚanbox_images_resource_tokenÚanbox_cloud_apt_tokenÚanbox_cloud_apt_urlc                 C   s   || _ || _|| _|| _d S r   )rM   rN   rO   rP   )r   rM   rN   rO   rP   r   r   r   r   »   s   
zAnboxCloudData.__init__N)r   r   r   r
   r   r    r5   r   r   r   r   r   rL   ³   s    üþýüûrL   zanbox-cloud-credentialsc                   @   s(   e Zd ZedeƒgZdejfdd„ZdS )ÚAttachmentDataÚattached_atc                 C   r   r   )rR   )r   rR   r   r   r   r   Ø   r   zAttachmentData.__init__N)r   r   r   r
   r	   r    rJ   r   r   r   r   r   rQ   Ó   s    ÿrQ   zattachment.jsonzstatus.json)Úpro_filez
machine-idc                   @   s&   e Zd ZedeƒgZdefdd„ZdS )ÚLXDProConfigÚguest_attachc                 C   r   r   )rU   )r   rU   r   r   r   r   ö   r   zLXDProConfig.__init__N)r   r   r   r
   r   r    r   r   r   r   r   rT   ñ   s    ÿrT   zlxd-config.json)rB   r,   c                   C   sD   t  ¡  t ¡  t ¡  t ¡  t ¡  t ¡  t ¡  t ¡  d S r   )Úmachine_id_fileÚdeleteÚstatus_cache_fileÚattachment_data_fileÚanbox_cloud_credentials_fileÚreboot_cmd_marker_fileÚonly_series_check_marker_fileÚlxd_pro_config_filer   r   r   r   Údelete_state_files  s   r^   )8rJ   Útypingr   r   r   r   Úuaclientr   Úuaclient.data_typesr   r   r	   r
   r   r   r   Úuaclient.files.data_typesr   r   Úuaclient.files.filesr   r   r   Úuaclient.files.user_config_filer   ÚSERVICES_ONCE_ENABLEDr   r5   r*   Úservices_once_enabled_filer0   ÚJSONÚretry_auto_attach_options_filer6   Úretry_auto_attach_state_filer<   r?   Útimer_jobs_state_fileÚMESSAGES_DIRÚapt_news_contents_fileÚapt_news_raw_filerC   Úlivepatch_support_cacher[   r\   rL   ÚDEFAULT_PRIVATE_DATA_DIRrZ   rQ   rY   rX   rV   rT   ÚINTERFACE_FILES_DIRr]   r^   r   r   r   r   Ú<module>   s¼    $		
ÿ

þþú
þú

ý
ýÿýýù	
ýþÿý	ýù