
    Jh                         d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	 d dl
mZ  G d de      Z G d d	e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)    )APIEndpoint)AdditionalInfo)UAConfig)
DataObjectFieldIntDataValue) get_installed_packages_by_originc                       e Zd Z eded       eded       eded       eded	       ed
ed       eded       eded       eded       eded      g	Zdedededed
ededededefdZy)PackageSummarynum_installed_packagesz!Total count of installed packagesdocnum_esm_apps_packagesz-Count of packages installed from ``esm-apps``num_esm_infra_packagesz.Count of packages installed from ``esm-infra``num_main_packagesz)Count of packages installed from ``main``num_multiverse_packagesz/Count of packages installed from ``multiverse``num_restricted_packagesz/Count of packages installed from ``restricted``num_third_party_packagesz4Count of packages installed from third party sourcesnum_universe_packagesz-Count of packages installed from ``universe``num_unknown_packagesz0Count of packages installed from unknown sourcesc
                     || _         || _        || _        || _        || _        || _        || _        || _        |	| _        y N	r   r   r   r   r   r   r   r   r   )
selfr   r   r   r   r   r   r   r   r   s
             H/usr/lib/python3/dist-packages/uaclient/api/u/pro/packages/summary/v1.py__init__zPackageSummary.__init__9   sL     '=#%:"&<#!2'>$'>$(@%%:"$8!    N)__name__
__module____qualname__r   r   fieldsintr    r   r   r   r      s   $3	

 	#?	

 	$@	

 	;	

 	%A	

 	%A	

 	&F	

 	#?	

 	"B	
S.F`9 #9  #9 !$	9
 9 "%9 "%9 #&9  #9 "9r   r   c                   *    e Zd Z eded      gZd Zy)PackageSummaryResultsummaryz!Summary of all installed packagesr   c                     || _         y r   r&   )r   r&   s     r   r   zPackageSummaryResult.__init__Y   s	    r   N)r   r   r    r   r   r!   r   r#   r   r   r%   r%   P   s    4	
Fr   r%   returnc                  (    t        t                     S r   )_summaryr   r#   r   r   r&   r&   ]   s    HJr   cfgc                 .   t               }t        t        |d         t        |d         t        |d         t        |d         t        |d         t        |d         t        |d         t        |d         t        |d	         
	      }t        |      S )zg
    This endpoint shows a summary of installed packages in the system,
    categorised by origin.
    allzesm-appsz	esm-inframain
multiverse
restrictedzthird-partyuniverseunknownr   r(   )r	   r   lenr%   )r,   packagesr&   s      r   r+   r+   a   s    
 01H"8E?3!(:"67"8K#89hv./ #H\$: ; #H\$: ;!$Xm%<!=!(:"67 )!45
G  00r   v1N)versionnamefnoptions_clsz27.12FzP
from uaclient.api.u.pro.packages.summary.v1 import summary

result = summary()
z!pro api u.pro.packages.summary.v1ad  
{
    "summary":{
        "num_installed_packages": 1,
        "num_esm_apps_packages": 2,
        "num_esm_infra_packages": 3,
        "num_main_packages": 4,
        "num_multiverse_packages": 5,
        "num_restricted_packages": 6,
        "num_third_party_packages": 7,
        "num_universe_packages": 8,
        "num_unknown_packages": 9,
    },
}
)introduced_inrequires_networkexample_pythonresult_class
exceptionsexample_cliexample_json)uaclient.api.apir   uaclient.api.data_typesr   uaclient.configr   uaclient.data_typesr   r   r   uaclient.security_statusr	   r   r%   r&   r+   endpoint_docr#   r   r   <module>rI      s    ( 2 $ ? ? EE9Z E9P
:~ 
 %  1( 13 1( 		 
 )6r   