o
    (f                     @   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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)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.eed-ddd.Z/ed/ej+ddZ0d0d1 Z1dS )2    N)AnyDictListOptional)defaults)BoolDataValue
DataObjectDatetimeDataValueFieldIntDataValueStringDataValue	data_list)DataObjectFileDataObjectFileFormat)ProJSONFileUAFileUserCacheFilez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   )r0   r1   )r   r0   r1   r   r   r   r   =      
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                   @   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   r2   r   )r6   r7   )r   r6   r7   r   r   r   r   V   r3   zRetryAutoAttachState.__init__N)r   r   r   r
   r   r   r   intr   r4   r   r   r   r   r   r5   P   s    r5   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   r2   r   )r<   r=   )r   r<   r=   r   r   r   r   l   s   
zTimerJobState.__init__N)r   r   r   r
   r	   r   r   r   r   r   r   r;   f   s
    r;   c                   @   sV   e Zd ZededdededdededdgZdee dee dee fddZdS )	AllTimerJobsStatemeteringFr8   update_messagingvalidate_release_seriesc                 C   s   || _ || _|| _d S r   )r?   r@   rA   )r   r?   r@   rA   r   r   r   r   x   s   
zAllTimerJobsState.__init__N)r   r   r   r
   r;   r   r   r   r   r   r   r   r>   q   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	supportedFr8   	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   r4   r   r    datetimer   r   r   r   r   rC      s*    	rC   z#livepatch-kernel-support-cache.json)file_formatzmarker-reboot-cmds-requiredc                   @   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   r4   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                   C   s4   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_filer   r   r   r   delete_state_files   s   rZ   )2rJ   typingr   r   r   r   uaclientr   uaclient.data_typesr   r   r	   r
   r   r   r   uaclient.files.data_typesr   r   uaclient.files.filesr   r   r   SERVICES_ONCE_ENABLEDr   r4   r)   services_once_enabled_filer/   JSONretry_auto_attach_options_filer5   retry_auto_attach_state_filer;   r>   timer_jobs_state_fileMESSAGES_DIRapt_news_contents_fileapt_news_raw_filerC   livepatch_support_cacherY   rL   DEFAULT_PRIVATE_DATA_DIRrX   rQ   rW   rV   rT   rZ   r   r   r   r   <module>   s    $		






	
