U vi@sPdZddlZddlmZmZmZmZddlmZddl m Z Gddde Z dS)z A bucket is a named location where time series data is stored. All buckets have a retention policy, a duration of time that each data point persists. A bucket belongs to an organization. N)BucketsServiceBucketPostBucketRequestPatchBucketRequest)get_org_query_param) _Paginatedc@s`eZdZdZddZdedddZeedd d Zd d Zd dZ ddZ ddZ ddZ dS) BucketsApiz.Implementation for '/api/v2/buckets' endpoint.cCs||_t|j|_dS)zInitialize defaults.N)_influxdb_clientrZ api_client_buckets_service)selfinfluxdb_clientr R/opt/alt/python38/lib/python3.8/site-packages/influxdb_client/client/bucket_api.py__init__szBucketsApi.__init__N)returnc Cs|dkr g}g}t|tr&||n |||dk rDtdt|dkrtt|||t|dkrb|n||j ddd}|j j |dS)aCreate a bucket. :param Bucket|PostBucketRequest bucket: bucket to create :param bucket_name: bucket name :param description: bucket description :param org_id: org_id :param bucket_name: bucket name :param retention_rules: retention rules array or single BucketRetentionRules :param str, Organization org: specifies the organization for create the bucket; Take the ``ID``, ``Name`` or ``Organization``. If not specified the default value from ``InfluxDBClient.org`` is used. :return: Bucket If the method is called asynchronously, returns the request thread. Nzorg_id is deprecated; use orgT)orgclientZ required_id)nameretention_rules descriptionorg_id)Zpost_bucket_request) isinstancelistextendappendwarningswarnDeprecationWarningrrr r Z post_buckets)r bucket bucket_namerrrrrulesr r r create_buckets$    zBucketsApi.create_bucket)rrcCs&t|j|j|jd}|jj|j|dS)zkUpdate a bucket. :param bucket: Bucket update to apply (required) :return: Bucket )rrr) bucket_idZpatch_bucket_request)rrrrr Zpatch_buckets_idid)r rrequestr r r update_bucket>s zBucketsApi.update_bucketcCs$t|tr|j}n|}|jj|dS)z]Delete a bucket. :param bucket: bucket id or Bucket :return: Bucket )r")rrr#r Zdelete_buckets_id)r rr"r r r delete_bucketJs zBucketsApi.delete_bucketcCs |j|S)z@Find bucket by ID. :param id: :return: )r Zget_buckets_id)r r#r r rfind_bucket_by_idWszBucketsApi.find_bucket_by_idcCs.|jj|d}t|jdkr&|jdSdSdS)z^Find bucket by name. :param bucket_name: bucket name :return: Bucket )rrN)r get_bucketslenbuckets)r rr*r r rfind_bucket_by_name_s zBucketsApi.find_bucket_by_namecKs|jjf|S)aList buckets. :key int offset: Offset for pagination :key int limit: Limit for pagination :key str after: The last resource ID from which to seek from (but not including). This is to be used instead of `offset`. :key str org: The organization name. :key str org_id: The organization ID. :key str name: Only returns buckets with a specific name. :return: Buckets )r r(r kwargsr r r find_bucketsls zBucketsApi.find_bucketscKst|jjddjf|S)aIterate over all buckets with pagination. :key str name: Only returns buckets with the specified name :key str org: The organization name. :key str org_id: The organization ID. :key str after: The last resource ID from which to seek from (but not including). :key int limit: the maximum number of buckets in one page :return: Buckets iterator cSs|jS)N)r*)responser r rz.BucketsApi.find_buckets_iter..)rr r(Z find_iterr,r r rfind_buckets_iterzs zBucketsApi.find_buckets_iter)NNNNNN) __name__ __module__ __qualname____doc__rrr!r%r&r'r+r.r2r r r rrs (   r) r6rr rrrrZ#influxdb_client.client.util.helpersrZinfluxdb_client.client._pagesrobjectrr r r rs