
    Jh_                         d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
mZmZ  G d de
e      ZeZdefd	Zd
edefdZ edded      Zdddeg dddZy)    )aptsnap)APIEndpoint)AdditionalInfo)UAConfig)
DataObjectFieldStringDataValuec                   0    e Zd Z eded      gZdefdZy)PackageManifestResultmanifest_datazAManifest of ``apt`` and ``snap`` packages installed on the system)docc                     || _         y Nr   )selfr   s     M/usr/lib/python3/dist-packages/uaclient/api/u/security/package_manifest/v1.py__init__zPackageManifestResult.__init__   s
    *    N)__name__
__module____qualname__r	   r
   fieldsstrr    r   r   r   r      s(    		
	F+c +r   r   returnc                  (    t        t                     S r   )_package_manifestr   r   r   r   package_manifestr      s    XZ((r   cfgc                    d}t        j                         }|D ]L  }|j                  dk(  rdnd|j                  z   }|dj                  |j                  ||j
                        z  }N t        j                         }|D ]7  }|dj                  |j                  |j                  |j                        z  }9 t        |      S )z
    This endpoint returns the status of installed packages (``apt`` and
    ``snap``), formatted as a manifest file (i.e., ``package_name\tversion``).
     all:z{}{}	{}
z!snap:{name}	{channel}	{revision}
)namechannelrevisionr   )r   get_installed_packagesarchformatr%   versionr   get_installed_snapsr&   r'   r   )r    manifestapt_pkgsapt_pkgr)   pkgspkgs          r   r   r   !   s    
 H))+H M\\U*rgll0BL''dGOOLLM ##%D 
:AAKK\\ B 
 	

 !x88r   v1PackagesN)r+   r%   fnoptions_clsz27.12Fzg
from uaclient.api.u.security.package_manifest.v1 import package_manifest

result = package_manifest()
z&pro api u.security.package_manifest.v1z=
{
    "package_manifest":"package1\t1.0\npackage2\t2.3\n"
}
)introduced_inrequires_networkexample_pythonresult_class
exceptionsexample_cliexample_json)uaclientr   r   uaclient.api.apir   uaclient.api.data_typesr   uaclient.configr   uaclient.data_typesr   r	   r
   r   PackageManifestResultsr   r   endpoint_docr   r   r   <module>rE      s     ( 2 $ B B+J +$ / )/ )98 9(= 9, 		 
 *;r   