o
    i/1                     @   sD   d dl Z d dlmZ d dlmZ d dlmZmZ G dd deZ	dS )    N)pretty_json)api)report_errorsreport_warningsc                   @   s   e Zd Zedd Zedd Zedd Zedd Zed	d
 Zedd Z	edd Z
edd Zedd Zedd Zedd Zedd Zedd Zedd ZdS )DashboardListClientc                 C   s  |j ddd}|jddd}d|_|j dd	d}|jd
dd |j| jd |j ddd}|jddd |jd
dd |j| jd |j ddd}|jddd |j| jd |j ddd}|j| jd |j ddd}|jddd |j| j	d |j ddd}	|	jddd |	j| j
d |j ddd}
|
jddd |
j| jd |j ddd}|jddd |jd d!d |j| jd |j d"dd}|jddd |jd d#d |j| jd |j d$d%d}|jdd&d |jd d!d |j| jd |j d'd%d}|jdd&d |jd d#d |j| jd |j d(d)d}|jdd*d |jd d!d |j| jd |j d+d)d}|jdd*d |jd d#d |j| jd d S ),Ndashboard_listz(Create, edit, and delete dashboard lists)helpVerbsverb)titledestTpostzCreate a dashboard listnamezName for the dashboard list)funcupdatezUpdate existing dashboard listdashboard_list_idz1Dashboard list to replace with the new definitionshowz Show a dashboard list definitionzDashboard list to showshow_allz"Show a list of all dashboard listsdeletezDelete existing dashboard listzDashboard list to deleteshow_dashboardsz<Show a list of all dashboards for an existing dashboard listz&Dashboard list to show dashboards fromshow_dashboards_v2add_dashboardsz,Add dashboards to an existing dashboard listz#Dashboard list to add dashboards to
dashboardszzA JSON list of dashboard dicts, e.g. [{"type": "custom_timeboard", "id": 1234}, {"type": "custom_screenboard", "id": 123}]add_dashboards_v2zA JSON list of dashboard dicts, e.g. [{"type": "custom_timeboard", "id": "ewc-a4f-8ps"}, {"type": "custom_screenboard", "id": "kwj-3t3-d3m"}]update_dashboardsz/Update dashboards of an existing dashboard listz(Dashboard list to update with dashboardsupdate_dashboards_v2delete_dashboardsz1Delete dashboards from an existing dashboard listz(Dashboard list to delete dashboards fromdelete_dashboards_v2)
add_parseradd_subparsersrequiredadd_argumentset_defaults_post_update_show	_show_all_delete_show_dashboards_show_dashboards_v2_add_dashboards_add_dashboards_v2_update_dashboards_update_dashboards_v2_delete_dashboards_delete_dashboards_v2)cls
subparsersparserverb_parserspost_parserupdate_parsershow_parsershow_all_parserdelete_parserget_dashboards_parserget_dashboards_v2_parseradd_dashboards_parseradd_dashboards_v2_parserupdate_dashboards_parserupdate_dashboards_v2_parserdelete_dashboards_parserdelete_dashboards_v2_parser rA   S/home/ubuntu/.local/lib/python3.10/site-packages/datadog/dogshell/dashboard_list.pysetup_parser   s   z DashboardListClient.setup_parserc                 C   s\   |j t_|j}|j}tjj|d}t| t| |dkr%t	t
| d S t	t| d S N)r   pretty)timeoutr   _timeoutformatr   DashboardListcreater   r   printr   jsondumps)r0   argsrH   r   resrA   rA   rB   r#         zDashboardListClient._postc                 C   sd   |j t_|j}|j}|j}tjj||d}t| t	| |dkr)t
t| d S t
t| d S rD   )rF   r   rG   rH   r   r   rI   r   r   r   rK   r   rL   rM   )r0   rN   rH   r   r   rO   rA   rA   rB   r$      s   zDashboardListClient._updatec                 C   Z   |j t_|j}|j}tj|}t| t| |dkr$t	t
| d S t	t| d S NrE   )rF   r   rG   rH   r   rI   getr   r   rK   r   rL   rM   r0   rN   rH   r   rO   rA   rA   rB   r%         zDashboardListClient._showc                 C   sR   |j t_|j}tj }t| t| |dkr tt	| d S tt
| d S rR   )rF   r   rG   rH   rI   get_allr   r   rK   r   rL   rM   )r0   rN   rH   rO   rA   rA   rB   r&      s   
zDashboardListClient._show_allc                 C   rQ   rR   )rF   r   rG   rH   r   rI   r   r   r   rK   r   rL   rM   rT   rA   rA   rB   r'      rU   zDashboardListClient._deletec                 C   rQ   rR   )rF   r   rG   rH   r   rI   	get_itemsr   r   rK   r   rL   rM   rT   rA   rA   rB   r(      rU   z$DashboardListClient._show_dashboardsc                 C   s\   |j t_|j}|j}tjj|}t| t	| |dkr%t
t| d S t
t| d S rR   )rF   r   rG   rH   r   rI   v2rW   r   r   rK   r   rL   rM   rT   rA   rA   rB   r)      rP   z'DashboardListClient._show_dashboards_v2c                 C   j   |j t_|j}|j}t|j}tjj	||d}t
| t| |dkr,tt| d S tt| d S N)r   rE   )rF   r   rG   rH   r   rL   loadsr   rI   	add_itemsr   r   rK   r   rM   r0   rN   rH   r   r   rO   rA   rA   rB   r*         z#DashboardListClient._add_dashboardsc                 C   l   |j t_|j}|j}t|j}tjj	j
||d}t| t| |dkr-tt| d S tt| d S rZ   )rF   r   rG   rH   r   rL   r[   r   rI   rX   r\   r   r   rK   r   rM   r]   rA   rA   rB   r+        z&DashboardListClient._add_dashboards_v2c                 C   rY   rZ   )rF   r   rG   rH   r   rL   r[   r   rI   update_itemsr   r   rK   r   rM   r]   rA   rA   rB   r,     r^   z&DashboardListClient._update_dashboardsc                 C   r_   rZ   )rF   r   rG   rH   r   rL   r[   r   rI   rX   ra   r   r   rK   r   rM   r]   rA   rA   rB   r-   %  r`   z)DashboardListClient._update_dashboards_v2c                 C   rY   rZ   )rF   r   rG   rH   r   rL   r[   r   rI   delete_itemsr   r   rK   r   rM   r]   rA   rA   rB   r.   5  r^   z&DashboardListClient._delete_dashboardsc                 C   r_   rZ   )rF   r   rG   rH   r   rL   r[   r   rI   rX   rb   r   r   rK   r   rM   r]   rA   rA   rB   r/   E  r`   z)DashboardListClient._delete_dashboards_v2N)__name__
__module____qualname__classmethodrC   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   rA   rA   rA   rB   r      s:    
{











r   )
rL   datadog.util.formatr   datadogr   datadog.dogshell.commonr   r   objectr   rA   rA   rA   rB   <module>   s
   