o
    #j                     @   s   d Z ddlZddlZddlZddlmZ ddlmZ ddlm	Z	 ddlm
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZ eeZG dd deZdS )z/
This module provides a client class for TSDB.
    N)bce_v1_signer)BceBaseClient)bce_http_client)handler)http_content_types)http_headers)http_methods)tsdb_handlerc                   @   s^   e Zd ZdZdddZ			dddZdd Zd	d
 Zdd Zdd Z						dddZ
dS )TsdbAdminClientz
    sdk client
    Nc                 C   s   t | | d S N)r   __init__)selfconfig r   i/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/baidubce/services/tsdb/tsdb_admin_client.pyr   &   s   zTsdbAdminClient.__init__c              	   C   sN   d}d|i}	t | | |||| dd}
| jtj||
|	tjdS )a:  
        create_database

        :param client_token: a unique id for idempotence
        :type client_token: string
        :param database_name: name of database
        :type database_name: string
        :param description: optional, description for database
        :type description: string
        :param ingest_datapoints_monthly: max ingest datapoints count per month,unit Million
        :type ingest_datapoints_monthly: int
        :param store_bytes_quota: optional, unit GB
        :type store_bytes_quota: int
        :param purchase_length: purchase length, unit Month
        :type purchase_length: int
        :param coupon_name: optional, coupon number
        :type coupon_name: type

        :return: {database_id:,charge:,expired_time:order_id:}
        :rtype: baidubce.bce_response.BceResponse
           /v1/databaseZclientToken)ZdatabaseNamedescriptionZingestDataPointsMonthlyZstoreBytesQuotaZpurchaseLengthZ
couponNamezutf-8)pathbodyparamsbody_parser)	jsondumpsdecodeencode_send_requestr   POSTr	   
parse_json)r   Zclient_tokenZdatabase_nameZingest_datapoints_monthlyZpurchase_lengthr   Zstore_bytes_quotaZcoupon_namer   r   r   r   r   r   create_database)   s   zTsdbAdminClient.create_databasec                 C      d| }| j tj|tjdS )z
        delete database

        :param database_id: database id to delete
        :type database_id: string

        :return: bce_request_id
        :rtype: baidubce.bce_response.BceResponses
           /v1/database/r   )r   r   DELETEr	   r   r   Zdatabase_idr   r   r   r   delete_databaseU   s   
zTsdbAdminClient.delete_databasec                 C   r   )z
        get database

        :param database_id: database id to delete
        :type database_id: string
        
        :return: database info
        :rtype: baidubce.bce_response.BceResponse
        r    r!   r   r   GETr	   r   r#   r   r   r   get_databaseb   s   zTsdbAdminClient.get_databasec                 C   s   d}| j tj|tjdS )z}
        get all databases
        
        :return: database dict
        :rtype: baidubce.bce_response.BceResponse
        r   r!   r%   )r   r   r   r   r   get_all_databasesp   s   z!TsdbAdminClient.get_all_databasesc                 C   s(   |d u r| j S t| j }|| |S r   )r   copyZmerge_non_none_values)r   r   Z
new_configr   r   r   _merge_config{   s
   
zTsdbAdminClient._merge_configc              
   C   sL   |  |}|d u rtjtji}|d u rtj}t|t	j
tj|g|||||S r   )r*   r   ZCONTENT_TYPEr   JSONr   r   r   send_requestr   signZparse_error)r   Zhttp_methodr   r   r   headersr   r   r   r   r   r      s   

zTsdbAdminClient._send_requestr   )NNN)NNNNN)__name__
__module____qualname____doc__r   r   r$   r'   r(   r*   r   r   r   r   r   r
   "   s"    
	
,
r
   )r2   r)   r   loggingZbaidubce.authr   Zbaidubce.bce_base_clientr   Zbaidubce.httpr   r   r   r   r   Zbaidubce.services.tsdbr	   	getLoggerr/   _loggerr
   r   r   r   r   <module>   s   
