U
    2d!                     @   s   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 dZG dd	 d	e
Zeeef eeef d
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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'G d%d& d&e
Z(ee(ed'ddejd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
Z.ee.ed/ddejZ/dS )0    N)AnyDictListOptional)defaults)BoolDataValue
DataObjectDatetimeDataValueFieldIntDataValueStringDataValue	data_list)DataObjectFileDataObjectFileFormat)UAFileUserCacheFilezservices-once-enabledc                   @   s(   e Zd ZededgZedddZdS )ServicesOnceEnabledDatafips_updatesFr   c                 C   s
   || _ d S Nr   )selfr    r   </usr/lib/python3/dist-packages/uaclient/files/state_files.py__init__   s    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|kr*d||dd< qd||< q|S )N-T_)keysreplace)r   Zupdated_datakeyr   r   r   %_services_once_enable_preprocess_data   s    
r&   F)nameprivate)Zdata_object_clsZua_fileZpreprocess_datac                   @   sN   e Zd ZedeededeedgZdeee	  eee	  dddZ
dS )	RetryAutoAttachOptionsenableFenable_betaNr*   r+   c                 C   s   || _ || _d S r   r,   )r   r*   r+   r   r   r   r   =   s    zRetryAutoAttachOptions.__init__)NN)r   r   r   r
   r   r   r   r   r   strr   r   r   r   r   r)   7   s     

r)   zretry-auto-attach-options.jsonT)r(   c                   @   s8   e Zd ZedeededdgZeee	 dddZ
dS )	RetryAutoAttachStateinterval_indexfailure_reasonFZrequiredr/   r0   c                 C   s   || _ || _d S r   r2   )r   r/   r0   r   r   r   r   V   s    zRetryAutoAttachState.__init__N)r   r   r   r
   r   r   r   intr   r-   r   r   r   r   r   r.   P   s   r.   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   s   || _ || _d S r   )r5   r6   )r   r5   r6   r   r   r   r   l   s    zTimerJobState.__init__N)r   r   r   r
   r	   r   r   r   r   r   r   r4   f   s   r4   c                   @   sR   e Zd ZededdededdededdgZee ee ee dddZd	S )
AllTimerJobsStatemeteringFr1   update_messagingupdate_contract_infor8   r9   r:   c                 C   s   || _ || _|| _d S r   r;   )r   r8   r9   r:   r   r   r   r   x   s    zAllTimerJobsState.__init__N)r   r   r   r
   r4   r   r   r   r   r   r   r   r7   q   s   r7   zjobs-status.jsonzapt-news)	directoryzapt-news-raw)r(   r<   c                	   @   sb   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eeeee	e
 ejd	d
dZdS )LivepatchSupportCacheDataversionflavorarchcodename	supportedFr1   	cached_atr>   r?   r@   rA   rB   rC   c                 C   s(   || _ || _|| _|| _|| _|| _d S r   rD   )r   r>   r?   r@   rA   rB   rC   r   r   r   r      s    	z"LivepatchSupportCacheData.__init__N)r   r   r   r
   r   r   r	   r   r-   r   r   datetimer   r   r   r   r   r=      s   r=   z#livepatch-kernel-support-cache.json)Zfile_formatc                   @   s  e Zd Zededdededdededdededdededdededded	edded
eddededdededdededdededdededdededdgZdee	 ee	 ee	 ee	 ee	 ee	 ee	 ee	 ee
 ee	 ee
 ee ee ee dddZdS )UserConfigDataapt_http_proxyFr1   apt_https_proxyglobal_apt_http_proxyglobal_apt_https_proxyua_apt_http_proxyua_apt_https_proxy
http_proxyhttps_proxyapt_newsapt_news_urlpoll_for_pro_licensepolling_error_retry_delaymetering_timerupdate_messaging_timerNrG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   c                 C   sX   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
|| _|| _|| _d S r   rU   )r   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   r   r   r   r      s    zUserConfigData.__init__)NNNNNNNNNNNNNN)r   r   r   r
   r   r   r   r   r   r-   r   r3   r   r   r   r   r   rF      sZ                 rF   zuser-config.json)Z optional_type_errors_become_nullzmarker-reboot-cmds-requiredc                   @   sD   e Zd ZedeedeedeedegZeeeedddZdS )	AnboxCloudDataanbox_images_urlanbox_images_resource_tokenanbox_cloud_apt_tokenanbox_cloud_apt_urlrW   rX   rY   rZ   c                 C   s   || _ || _|| _|| _d S r   r[   )r   rW   rX   rY   rZ   r   r   r   r      s    zAnboxCloudData.__init__N)r   r   r   r
   r   r   r-   r   r   r   r   r   rV      s   	rV   zanbox-cloud-credentialsc                   @   s(   e Zd ZedegZejdddZdS )AttachmentDataattached_atr]   c                 C   s
   || _ d S r   r^   )r   r]   r   r   r   r     s    zAttachmentData.__init__N)r   r   r   r
   r	   r   rE   r   r   r   r   r   r\     s   r\   zattachment.json)0rE   typingr   r   r   r   Zuaclientr   Zuaclient.data_typesr   r   r	   r
   r   r   r   Zuaclient.files.data_typesr   r   Zuaclient.files.filesr   r   ZSERVICES_ONCE_ENABLEDr   r-   r&   Zservices_once_enabled_filer)   ZJSONZretry_auto_attach_options_filer.   Zretry_auto_attach_state_filer4   r7   Ztimer_jobs_state_fileZMESSAGES_DIRZapt_news_contents_fileZapt_news_raw_filer=   Zlivepatch_support_cacherF   Zuser_config_fileZreboot_cmd_marker_filerV   ZDEFAULT_PRIVATE_DATA_DIRZanbox_cloud_credentials_filer\   Zattachment_data_filer   r   r   r   <module>   s   $	





  3
	
