Ë
    õµg	  ã                   ó†   — d dl Z d dlmZmZ d dlmZmZ  G d„ de j                  ¬«      Z G d„ dee j                  ¬«      Z	y)	é    N)ÚAnyÚDict)ÚconfigÚcontractc                   óÚ   — e Zd Zeej
                  defd„«       «       Zej
                  dej                  de
fd„«       Zej
                  defd„«       Zej
                  dedefd„«       Zy)	ÚAutoAttachInstanceÚreturnc                  ó   — y)z?Return True if the machine is a viable AutoAttachCloudInstance.N© ©Úselfs    ú:/usr/lib/python3/dist-packages/uaclient/clouds/__init__.pyÚ	is_viablezAutoAttachInstance.is_viable   ó   € ð 	ó    Úcfgc                  ó   — y)ú{
        Cloud-specific implementation of acquiring the pro token using whatever
        method suits the platform
        Nr   )r   r   s     r   Úacquire_pro_tokenz$AutoAttachInstance.acquire_pro_token   ó   € ð 	r   c                  ó   — y)zw
        Cloud-specific checks for whether the daemon should continously poll
        for Ubuntu Pro licenses.
        Nr   r   s    r   Úshould_poll_for_pro_licensez.AutoAttachInstance.should_poll_for_pro_license   r   r   Úwait_for_changec                 ó   — y)z1
        Check for an Ubuntu Pro license
        Nr   )r   r   s     r   Úis_pro_license_presentz)AutoAttachInstance.is_pro_license_present   s   € ð
 	r   N)Ú__name__Ú
__module__Ú__qualname__ÚpropertyÚabcÚabstractmethodÚboolr   r   ÚUAConfigÚstrr   r   r   r   r   r   r   r      sž   „ ØØ×Ñð˜4ò ó ó ðð 	×Ñð V§_¡_ð ¸ò ó ðð 	×Ñð¨Tò ó ðð 	×Ñð¸ð À$ò ó ñr   r   )Ú	metaclassc                   ó¢   — e Zd Zeej
                  deeef   fd„«       «       Z	eej
                  defd„«       «       Z
dej                  defd„Zy)ÚPublicCloudAutoAttachInstancer	   c                  ó   — y)z=Return the identity document representing this cloud instanceNr   r   s    r   Úidentity_docz*PublicCloudAutoAttachInstance.identity_doc'   r   r   c                  ó   — y)z=Return a string of the cloud type on which this instance runsNr   r   s    r   Ú
cloud_typez(PublicCloudAutoAttachInstance.cloud_type-   r   r   r   c                 ó„   — t        j                  |«      }|j                  | j                  | j                  ¬«      }|d   S )r   )r+   ÚdataÚcontractToken)r   ÚUAContractClientÚ%get_contract_token_for_cloud_instancer+   r)   )r   r   Úcontract_clientÚtoken_responses       r   r   z/PublicCloudAutoAttachInstance.acquire_pro_token3   sF   € ô
 #×3Ñ3°CÓ8ˆØ(×NÑNØ—‘¨T×->Ñ->ð Oó 
ˆð ˜oÑ.Ð.r   N)r   r   r   r   r    r!   r   r$   r   r)   r+   r   r#   r   r   r   r   r'   r'   &   sq   „ ØØ×Ñð˜d 3¨ 8™nò ó ó ðð Ø×Ñð˜Cò ó ó ðð	/ V§_¡_ð 	/¸ô 	/r   r'   )
r    Útypingr   r   Úuaclientr   r   ÚABCMetar   r'   r   r   r   ú<module>r6      s1   ðÛ 
ß ç %ô 3§;¡;õ ô>/Ð$6À#Ç+Á+ö /r   