File: //lib/python3/dist-packages/uaclient/api/u/pro/status/is_attached/__pycache__/v1.cpython-38.pyc
U
��Jh< � @ s d dl Z d dlmZmZ d dlmZ d dlmZ d dlm Z d dl
mZmZm
Z
mZmZ d dlmZmZ d dlmZ G d d
� d
ee�Ze jG dd� de j��Ze eee eeef d
�dd�Zed�dd�Ze ed�dd�Zeddedd�Zdddeg dddd�ZdS ) � N)�Optional�Tuple)�APIEndpoint)�AdditionalInfo)�UAConfig)�
BoolDataValue�
DataObject�Field�IntDataValue�StringDataValue)�!CONTRACT_EXPIRY_GRACE_PERIOD_DAYS�CONTRACT_EXPIRY_PENDING_DAYS)�
machine_tokenc @ sZ e Zd Zededd�ededdd�ededd�ed ed
d�gZee e
eed�dd
�ZdS )�IsAttachedResult�is_attachedz=True if the machine is attached to an Ubuntu Pro subscription)�doc�contract_statusFz%Status of the Ubuntu Pro subscription�contract_remaining_daysz2Number of days left in the Ubuntu Pro subscription�is_attached_and_contract_validzbTrue if the machine is attached to an Ubuntu Pro subscription and that subscription is not expired�r r r r c C s || _ || _|| _|| _d S �Nr )�selfr r r r � r �J/usr/lib/python3/dist-packages/uaclient/api/u/pro/status/is_attached/v1.py�__init__3 s zIsAttachedResult.__init__N)
�__name__�
__module__�__qualname__r r r r
Zfields�boolr �str�intr r r r r r s6 ����� �r c @ s e Zd ZdZdZdZdZdZdS )�ContractExpiryStatusNZactivezactive-soon-to-expirezgrace-periodZexpired)r r r �NONE�ACTIVE�ACTIVE_EXPIRED_SOON�EXPIRED_GRACE_PERIOD�EXPIREDr r r r r! A s
r! )�cfg�is_machine_attached�remaining_days�returnc C s� |st jdfS t}t}|dkr*t j| fS d| kr>|krLn n
t j|fS | | krbdk rpn n
t j|fS || k r�t j|fS t j|fS )z/Return a tuple [ContractExpiryStatus, num_days]r N)r! r"