B
    `~                 @   sh   d dl Z d dlmZmZ d dlmZmZmZmZm	Z	m
Z
 d dlmZ G dd deZG dd deZdS )	    N)ApiErrorUnexpectedResponseError)BaseDerivedBaseDomainInstancePropertyVolume)NodeBalancerc               @   sB   e Zd ZdZdZdZeddedde edde e dZdS )	TicketReplyz$/support/tickets/{ticket_id}/repliesreplies	ticket_idT)
identifier)is_datetime)idr   descriptioncreatedZ
created_byZfrom_linodeN)__name__
__module____qualname__api_endpointZderived_url_pathZparent_id_namer   
properties r   r   J/home/dcms/DCMS/lib/python3.7/site-packages/linode_api4/objects/support.pyr   	   s   r   c               @   s   e Zd ZdZedde e edde eddeddedde eedd
Zedd	 Zed
d Z	edd Z
edd Zdd Zdd ZdS )SupportTicketz/support/tickets/{id}T)r   )Z
filterable)r   )Zderived_class)
r   summaryr   statusentityZopenedclosedupdatedZ
updated_byr   c             C   s&   | j r"| j jdkr"t| j| j jS d S )Nlinode)r   typer   _clientr   )selfr   r   r   r    '   s    zSupportTicket.linodec             C   s&   | j r"| j jdkr"t| j| j jS d S )Ndomain)r   r!   r   r"   r   )r#   r   r   r   r$   -   s    zSupportTicket.domainc             C   s&   | j r"| j jdkr"t| j| j jS d S )Nnodebalancer)r   r!   r
   r"   r   )r#   r   r   r   r%   3   s    zSupportTicket.nodebalancerc             C   s&   | j r"| j jdkr"t| j| j jS d S )Nvolume)r   r!   r	   r"   r   )r#   r   r   r   r&   9   s    zSupportTicket.volumec             C   sL   | j jdtj| d|id}d|kr2td|dt| j |d | j|}|S )z	
        z
{}/repliesr   )modeldatar   z/Unexpected response when creating ticket reply!)json)r"   postformatr   r   r   r   r   )r#   r   resultrr   r   r   
post_reply?   s    zSupportTicket.post_replyc          	   C   s   d }t |}| }W d Q R X |s,tdd| jjdd}tjd| jjt	j
j| jd||d}|jdksg }| }d	|krd
d |d	 D }td|j||ddS )NzNothing to upload!ztoken {}zmultipart/form-data)AuthorizationzContent-typez{}{}/attachments)r   )headersfiles   errorsc             S   s   g | ]}|d  qS )reasonr   ).0er   r   r   
<listcomp>b   s    z3SupportTicket.upload_attachment.<locals>.<listcomp>z{}: {})r)   T)openread
ValueErrorr+   r"   tokenrequestsr*   base_urlr   r   r   status_coder)   r   )r#   
attachmentcontentfr0   r,   r3   jr   r   r   upload_attachmentM   s"    


zSupportTicket.upload_attachmentN)r   r   r   r   r   r   r   propertyr    r$   r%   r&   r.   rC   r   r   r   r   r      s"   r   )r<   Zlinode_api4.errorsr   r   Zlinode_api4.objectsr   r   r   r   r   r	   Z linode_api4.objects.nodebalancerr
   r   r   r   r   r   r   <module>   s
    