
    Jhj                         d dl mZmZ d dlmZ d dlmZmZ d dlm	Z	 d dl
mZ d dlmZmZmZmZ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)    )ListOptional)APIEndpoint)AdditionalInfoErrorWarningObject)_is_attached)UAConfig)BoolDataValue
DataObjectFieldStringDataValue	data_listc                   p    e Zd Z eded       eded       ededd      gZdd	d
dedede	e   fdZ
y	)EnabledServicenamezName of the servicedocvariant_enabledz&If a variant of the service is enabledvariant_nameFz,Name of the variant, if a variant is enabledN)r   r   c                .    || _         || _        || _        y Nr   r   r   )selfr   r   r   s       O/usr/lib/python3/dist-packages/uaclient/api/u/pro/status/enabled_services/v1.py__init__zEnabledService.__init__    s     	.(    )__name__
__module____qualname__r   r   r
   fieldsstrboolr   r    r   r   r   r      sl    fo+@A8	

 	>		
F& !&&*	) 	) 		)
 sm	)r   r   c                   B    e Zd Z ed ee      d      gZdee   fdZy)EnabledServicesResultenabled_servicesz$A list of ``EnabledService`` objectsr   c                    || _         y r   r&   )r   r&   s     r   r   zEnabledServicesResult.__init__5   s
     0r   N)	r   r   r   r   r   r   r    r   r   r#   r   r   r%   r%   ,   s0    n%6	
F1D,@ 1r   r%   returnc                  (    t        t                     S r   )_enabled_servicesr	   r#   r   r   r&   r&   9   s    XZ((r   cfgc           	         ddl m} ddlm} t	        |       j
                  st        g       S g }g }|D ]  } ||       }|j                         \  }}||j                  |j                  fv s:|j                  }	t        |	      }
|j                  j                         D ]G  \  }} ||       }|j                         d   |j                  k(  s/t        |	d|j                        }
 n |j                  |
       ||j                  k(  s|s|j                  t!        |j"                  xs d|j$                  xs dd	|	i
              t        t'        |d             }||_        |S )zO
    This endpoint shows the Pro services that are enabled on the machine.
    r   )ENTITLEMENT_CLASSES)UserFacingStatusr(   r   Tr    service)titlecodemetac                     | j                   S r   r0   )xs    r   <lambda>z#_enabled_services.<locals>.<lambda>h   s
     r   )key)uaclient.entitlementsr.   (uaclient.entitlements.entitlement_statusr/   r   is_attachedr%   user_facing_statusACTIVEWARNINGpresentation_namer   variantsitemsr   appendr   msgr   sortedwarnings)r,   r.   r/   r&   rF   ent_clsent
ent_statusdetailsent_nameenabled_service_variant_clsvariantresults                  r   r+   r+   =   si    :I(($b99H& cl!446
G*113C3K3KLL,,H,(;O"%,,"4"4"6 	;%c*--/26F6M6MM&4%(,%,%9%9'O
 	 ##O4-555'&%kk/R$\\/R'2-< # 06FGF FOMr   v1EnabledServicesN)versionr   fnoptions_cls28Fzi
from uaclient.api.u.pro.status.enabled_services.v1 import enabled_services

result = enabled_services()
z(pro api u.pro.status.enabled_services.v1a  
{
    "enabled_services": [
        {
            "name": "esm-apps",
            "variant_enabled": false,
            "variant_name": null
        },
        {
            "name": "esm-infra",
            "variant_enabled": false,
            "variant_name": null
        },
        {
            "name": "realtime-kernel",
            "variant_enabled": true,
            "variant_name": "raspi"
        }
    ]
}
)introduced_inrequires_networkexample_pythonresult_class
exceptionsexample_cliexample_json)typingr   r   uaclient.api.apir   uaclient.api.data_typesr   r   (uaclient.api.u.pro.status.is_attached.v1r   uaclient.configr	   uaclient.data_typesr
   r   r   r   r   r   r%   r&   r+   endpoint_docr#   r   r   <module>rf      s    ! ( F A $ )Z )8
1J 
1)/ )/8 /(= /d 		 
 *= r   