influxdb-client 1.12.0.pre.1894 → 1.12.1.pre.2044
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -1
- data/README.md +118 -1
- data/influxdb-client.gemspec +5 -3
- data/lib/influxdb2/client/models/delete_predicate_request.rb +51 -24
- data/lib/influxdb2/client/models/dialect.rb +61 -34
- data/lib/influxdb2/client/models/health_check.rb +56 -29
- data/lib/influxdb2/client/models/query.rb +55 -28
- data/lib/influxdb2/client/version.rb +1 -1
- metadata +6 -22
- data/.circleci/config.yml +0 -158
- data/.circleci/setup-rubygems.sh +0 -3
- data/.codecov.yml +0 -3
- data/.github/ISSUE_TEMPLATE/bug_report.md +0 -34
- data/.github/ISSUE_TEMPLATE/feature_request.md +0 -28
- data/.github/PULL_REQUEST_TEMPLATE +0 -16
- data/.github/semantic.yml +0 -3
- data/.gitignore +0 -16
- data/.rubocop.yml +0 -43
- data/Gemfile +0 -24
- data/bin/generate-sources.sh +0 -23
- data/bin/influxdb-onboarding.sh +0 -39
- data/bin/influxdb-restart.sh +0 -61
- data/bin/pom.xml +0 -34
- data/bin/swagger.yml +0 -10057
- data/examples/influxdb_18_example.rb +0 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f6639ff8a9f6d3f56dc6f6cf25bfd8ed98196475c812fc4f888143f1aa0d495
|
4
|
+
data.tar.gz: c9adcc0f3bca1b8709a40b96c434de223ee9f9fb2594694682a25636918ec9e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b8cdb5929e877e3b982ccd64490de07a0b1f748cdeef6799f9bb7c33d0c190ffff529e724a20a863ce7c38059670b4358a9fb4d1d3ac2e61017ff34528ed247
|
7
|
+
data.tar.gz: c51c26e5b93d44ed063d073e2a39ebefcacf47db7c60f3fb3b869cc60c7630aa737abc88f30852c66a5838a6eb4cb53c2fc46056122db7ca0944c52984ca7850
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,19 @@
|
|
1
|
-
## 1.
|
1
|
+
## 1.13.0 [unreleased]
|
2
|
+
|
3
|
+
## 1.12.1 [2021-03-05]
|
4
|
+
|
5
|
+
### Bug Fixes
|
6
|
+
1. [#74](https://github.com/influxdata/influxdb-client-ruby/pull/74): Avoid uses sources from parent path
|
7
|
+
|
8
|
+
## 1.12.0 [2021-03-05]
|
2
9
|
|
3
10
|
### Features
|
11
|
+
1. [#69](https://github.com/influxdata/influxdb-client-ruby/pull/69): Created `influxdb-client-apis` package for Management API
|
4
12
|
1. [#71](https://github.com/influxdata/influxdb-client-ruby/pull/71): Added possibility to specify the certification verification behaviour
|
5
13
|
|
14
|
+
### CI
|
15
|
+
1. [#73](https://github.com/influxdata/influxdb-client-ruby/pull/73): Updated stable image to `influxdb:latest` and nightly to `quay.io/influxdb/influxdb:nightly`
|
16
|
+
|
6
17
|
## 1.11.0 [2021-01-29]
|
7
18
|
|
8
19
|
### CI
|
data/README.md
CHANGED
@@ -12,6 +12,37 @@ This repository contains the reference Ruby client for the InfluxDB 2.0.
|
|
12
12
|
|
13
13
|
#### Note: Use this client library with InfluxDB 2.x and InfluxDB 1.8+ ([see details](#influxdb-18-api-compatibility)). For connecting to InfluxDB 1.7 or earlier instances, use the [influxdb-ruby](https://github.com/influxdata/influxdb-ruby) client library.
|
14
14
|
|
15
|
+
- [Features](#features)
|
16
|
+
- [Installation](#installation)
|
17
|
+
- [Install the Gem](#install-the-gem)
|
18
|
+
- [Usage](#usage)
|
19
|
+
- [Creating a client](#creating-a-client)
|
20
|
+
- [Writing data](#writing-data)
|
21
|
+
- [Querying data](#queries)
|
22
|
+
- [Delete data](#delete-data)
|
23
|
+
- [Management API](#management-api)
|
24
|
+
- [Advanced Usage](#advanced-usage)
|
25
|
+
- [Default Tags](#default-tags)
|
26
|
+
- [Contributing](#contributing)
|
27
|
+
- [License](#license)
|
28
|
+
|
29
|
+
## Features
|
30
|
+
|
31
|
+
InfluxDB 2.0 client consists of two packages
|
32
|
+
|
33
|
+
- `influxdb-client`
|
34
|
+
- Querying data using the Flux language
|
35
|
+
- Writing data
|
36
|
+
- batched in chunks on background
|
37
|
+
- automatic retries on write failures
|
38
|
+
- `influxdb-client-apis`
|
39
|
+
- provides all other InfluxDB 2.0 APIs for managing
|
40
|
+
- buckets
|
41
|
+
- labels
|
42
|
+
- authorizations
|
43
|
+
- ...
|
44
|
+
- built on top of `influxdb-client`
|
45
|
+
|
15
46
|
## Installation
|
16
47
|
|
17
48
|
The InfluxDB 2 client is bundled as a gem and is hosted on [Rubygems](https://rubygems.org/gems/influxdb-client).
|
@@ -23,7 +54,13 @@ The client can be installed manually or with bundler.
|
|
23
54
|
To install the client gem manually:
|
24
55
|
|
25
56
|
```
|
26
|
-
gem install influxdb-client -v 1.
|
57
|
+
gem install influxdb-client -v 1.12.0
|
58
|
+
```
|
59
|
+
|
60
|
+
For management API:
|
61
|
+
|
62
|
+
```
|
63
|
+
gem install influxdb-client-apis -v 1.12.0
|
27
64
|
```
|
28
65
|
|
29
66
|
## Usage
|
@@ -267,6 +304,86 @@ The time range could be specified as:
|
|
267
304
|
1. DateTime - `DateTime.rfc3339('2019-03-03T04:05:06+07:00')`
|
268
305
|
1. Time - `Time.utc(2015, 10, 16, 8, 20, 15)`
|
269
306
|
|
307
|
+
### Management API
|
308
|
+
|
309
|
+
The client supports following management API:
|
310
|
+
|
311
|
+
| | API docs |
|
312
|
+
| --- | --- |
|
313
|
+
| [**AuthorizationsApi**](https://influxdata.github.io/influxdb-client-ruby/InfluxDB2/API/AuthorizationsApi.html) | https://docs.influxdata.com/influxdb/v2.0/api/#tag/Authorizations |
|
314
|
+
| [**BucketsApi**](https://influxdata.github.io/influxdb-client-ruby/InfluxDB2/API/BucketsApi.html) | https://docs.influxdata.com/influxdb/v2.0/api/#tag/Buckets |
|
315
|
+
| [**LabelsApi**](https://influxdata.github.io/influxdb-client-ruby/InfluxDB2/API/LabelsApi.html) | https://docs.influxdata.com/influxdb/v2.0/api/#tag/Labels |
|
316
|
+
| [**OrganizationsApi**](https://influxdata.github.io/influxdb-client-ruby/InfluxDB2/API/OrganizationsApi.html) | https://docs.influxdata.com/influxdb/v2.0/api/#tag/Organizations |
|
317
|
+
| [**UsersApi**](https://influxdata.github.io/influxdb-client-ruby/InfluxDB2/API/UsersApi.html) | https://docs.influxdata.com/influxdb/v2.0/api/#tag/Users |
|
318
|
+
|
319
|
+
|
320
|
+
The following example demonstrates how to use a InfluxDB 2.0 Management API to create new bucket. For further information see docs and [examples](/examples).
|
321
|
+
|
322
|
+
```ruby
|
323
|
+
#
|
324
|
+
# This is an example how to create new bucket with permission to write.
|
325
|
+
#
|
326
|
+
# You could run example via: `cd apis && bundle exec ruby ../examples/create_new_bucket.rb`
|
327
|
+
#
|
328
|
+
$LOAD_PATH.unshift File.expand_path('../lib', __dir__)
|
329
|
+
require 'influxdb-client'
|
330
|
+
$LOAD_PATH.unshift File.expand_path('../apis/lib', __dir__)
|
331
|
+
require 'influxdb-client-apis'
|
332
|
+
|
333
|
+
url = 'http://localhost:8086'
|
334
|
+
bucket = 'my-bucket'
|
335
|
+
org = 'my-org'
|
336
|
+
token = 'my-token'
|
337
|
+
|
338
|
+
client = InfluxDB2::Client.new(url,
|
339
|
+
token,
|
340
|
+
bucket: bucket,
|
341
|
+
org: org,
|
342
|
+
use_ssl: false,
|
343
|
+
precision: InfluxDB2::WritePrecision::NANOSECOND)
|
344
|
+
|
345
|
+
api = InfluxDB2::API::Client.new(client)
|
346
|
+
|
347
|
+
# Find my organization
|
348
|
+
organization = api.create_organizations_api
|
349
|
+
.get_orgs
|
350
|
+
.orgs
|
351
|
+
.select { |it| it.name == 'my-org' }
|
352
|
+
.first
|
353
|
+
|
354
|
+
#
|
355
|
+
# Create new Bucket
|
356
|
+
#
|
357
|
+
retention_rule = InfluxDB2::API::RetentionRule.new(type: 'expire', every_seconds: 3600)
|
358
|
+
bucket_name = 'new-bucket-name'
|
359
|
+
request = InfluxDB2::API::PostBucketRequest.new(org_id: organization.id,
|
360
|
+
name: bucket_name,
|
361
|
+
retention_rules: [retention_rule])
|
362
|
+
bucket = api.create_buckets_api
|
363
|
+
.post_buckets(request)
|
364
|
+
|
365
|
+
#
|
366
|
+
# Create Permission to read/write from Bucket
|
367
|
+
#
|
368
|
+
resource = InfluxDB2::API::Resource.new(type: 'buckets',
|
369
|
+
id: bucket.id,
|
370
|
+
org_id: organization.id)
|
371
|
+
authorization = InfluxDB2::API::Authorization.new(description: "Authorization to read/write bucket: #{bucket.name}",
|
372
|
+
org_id: organization.id,
|
373
|
+
permissions: [
|
374
|
+
InfluxDB2::API::Permission.new(action: 'read', resource: resource),
|
375
|
+
InfluxDB2::API::Permission.new(action: 'write', resource: resource)
|
376
|
+
])
|
377
|
+
result = api.create_authorizations_api
|
378
|
+
.post_authorizations(authorization)
|
379
|
+
|
380
|
+
print("The token: '#{result.token}' is authorized to read/write from/to bucket: '#{bucket.name}'.")
|
381
|
+
|
382
|
+
client.close!
|
383
|
+
|
384
|
+
```
|
385
|
+
- sources - [create_new_bucket.rb](/examples/create_new_bucket.rb)
|
386
|
+
|
270
387
|
## Advanced Usage
|
271
388
|
|
272
389
|
### Check the server status
|
data/influxdb-client.gemspec
CHANGED
@@ -22,6 +22,7 @@ lib = File.expand_path('lib', __dir__)
|
|
22
22
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
23
23
|
require 'influxdb2/client/version'
|
24
24
|
|
25
|
+
# noinspection DuplicatedCode
|
25
26
|
Gem::Specification.new do |spec|
|
26
27
|
spec.name = 'influxdb-client'
|
27
28
|
spec.version = ENV['CIRCLE_BUILD_NUM'] ? "#{InfluxDB2::VERSION}-#{ENV['CIRCLE_BUILD_NUM']}" : InfluxDB2::VERSION
|
@@ -37,8 +38,9 @@ Gem::Specification.new do |spec|
|
|
37
38
|
spec.metadata['source_code_uri'] = 'https://github.com/influxdata/influxdb-client-ruby'
|
38
39
|
spec.metadata['changelog_uri'] = 'https://raw.githubusercontent.com/influxdata/influxdb-client-ruby/master/CHANGELOG.md'
|
39
40
|
|
40
|
-
spec.files
|
41
|
-
spec.
|
41
|
+
spec.files = Dir.glob('lib/**/*')
|
42
|
+
spec.files += %w[influxdb-client.gemspec LICENSE README.md CHANGELOG.md Rakefile]
|
43
|
+
spec.test_files = Dir.glob('test/**/*')
|
42
44
|
spec.require_paths = ['lib']
|
43
45
|
spec.required_ruby_version = '>= 2.2.0'
|
44
46
|
|
@@ -46,7 +48,7 @@ Gem::Specification.new do |spec|
|
|
46
48
|
spec.add_development_dependency 'codecov', '~> 0.1.16'
|
47
49
|
spec.add_development_dependency 'minitest', '~> 5.0'
|
48
50
|
spec.add_development_dependency 'minitest-reporters', '~> 1.4'
|
49
|
-
spec.add_development_dependency 'rake', '
|
51
|
+
spec.add_development_dependency 'rake', '~> 12.3'
|
50
52
|
spec.add_development_dependency 'rubocop', '~> 0.66.0'
|
51
53
|
spec.add_development_dependency 'simplecov', '~> 0.17.1'
|
52
54
|
spec.add_development_dependency 'webmock', '~> 3.7'
|
@@ -3,14 +3,15 @@
|
|
3
3
|
|
4
4
|
#No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
5
5
|
|
6
|
-
OpenAPI
|
6
|
+
The version of the OpenAPI document: 0.1.0
|
7
7
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
9
|
-
OpenAPI Generator version:
|
9
|
+
OpenAPI Generator version: 5.0.0-beta3
|
10
10
|
|
11
11
|
=end
|
12
12
|
|
13
13
|
require 'date'
|
14
|
+
require 'time'
|
14
15
|
|
15
16
|
module InfluxDB2
|
16
17
|
# The delete predicate request.
|
@@ -24,41 +25,54 @@ module InfluxDB2
|
|
24
25
|
# InfluxQL-like delete statement
|
25
26
|
attr_accessor :predicate
|
26
27
|
|
27
|
-
# Attribute mapping from ruby-style variable name to JSON key
|
28
|
+
# Attribute mapping from ruby-style variable name to JSON key
|
28
29
|
def self.attribute_map
|
29
30
|
{
|
30
31
|
:'start' => :'start',
|
31
32
|
:'stop' => :'stop',
|
32
|
-
:'predicate' => :'predicate'
|
33
|
+
:'predicate' => :'predicate',
|
33
34
|
}
|
34
35
|
end
|
35
36
|
|
36
37
|
# Attribute type mapping.
|
37
38
|
def self.openapi_types
|
38
39
|
{
|
39
|
-
:'start' => :'
|
40
|
-
:'stop' => :'
|
41
|
-
:'predicate' => :'String'
|
40
|
+
:'start' => :'Time',
|
41
|
+
:'stop' => :'Time',
|
42
|
+
:'predicate' => :'String',
|
42
43
|
}
|
43
44
|
end
|
44
45
|
|
46
|
+
# List of attributes with nullable: true
|
47
|
+
def self.openapi_nullable
|
48
|
+
Set.new([
|
49
|
+
])
|
50
|
+
end
|
51
|
+
|
45
52
|
# Initializes the object
|
46
53
|
# @param [Hash] attributes Model attributes in the form of hash
|
47
54
|
def initialize(attributes = {})
|
48
|
-
|
55
|
+
if (!attributes.is_a?(Hash))
|
56
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `InfluxDB2::DeletePredicateRequest` initialize method"
|
57
|
+
end
|
49
58
|
|
50
|
-
# convert string to symbol for hash key
|
51
|
-
attributes = attributes.each_with_object({}) { |(k, v), h|
|
59
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
60
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
61
|
+
if (!self.class.attribute_map.key?(k.to_sym))
|
62
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `InfluxDB2::DeletePredicateRequest`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
|
63
|
+
end
|
64
|
+
h[k.to_sym] = v
|
65
|
+
}
|
52
66
|
|
53
|
-
if attributes.
|
67
|
+
if attributes.key?(:'start')
|
54
68
|
self.start = attributes[:'start']
|
55
69
|
end
|
56
70
|
|
57
|
-
if attributes.
|
71
|
+
if attributes.key?(:'stop')
|
58
72
|
self.stop = attributes[:'stop']
|
59
73
|
end
|
60
74
|
|
61
|
-
if attributes.
|
75
|
+
if attributes.key?(:'predicate')
|
62
76
|
self.predicate = attributes[:'predicate']
|
63
77
|
end
|
64
78
|
end
|
@@ -103,9 +117,16 @@ module InfluxDB2
|
|
103
117
|
end
|
104
118
|
|
105
119
|
# Calculates hash code according to all attributes.
|
106
|
-
# @return [
|
120
|
+
# @return [Integer] Hash code
|
107
121
|
def hash
|
108
|
-
[start, stop, predicate].hash
|
122
|
+
[start, stop, predicate, ].hash
|
123
|
+
end
|
124
|
+
|
125
|
+
# Builds the object from hash
|
126
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
127
|
+
# @return [Object] Returns the model itself
|
128
|
+
def self.build_from_hash(attributes)
|
129
|
+
new.build_from_hash(attributes)
|
109
130
|
end
|
110
131
|
|
111
132
|
# Builds the object from hash
|
@@ -114,15 +135,17 @@ module InfluxDB2
|
|
114
135
|
def build_from_hash(attributes)
|
115
136
|
return nil unless attributes.is_a?(Hash)
|
116
137
|
self.class.openapi_types.each_pair do |key, type|
|
117
|
-
if
|
118
|
-
#
|
138
|
+
if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
|
139
|
+
self.send("#{key}=", nil)
|
140
|
+
elsif type =~ /\AArray<(.*)>/i
|
141
|
+
# check to ensure the input is an array given that the attribute
|
119
142
|
# is documented as an array but the input is not
|
120
143
|
if attributes[self.class.attribute_map[key]].is_a?(Array)
|
121
144
|
self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
|
122
145
|
end
|
123
146
|
elsif !attributes[self.class.attribute_map[key]].nil?
|
124
147
|
self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
|
125
|
-
end
|
148
|
+
end
|
126
149
|
end
|
127
150
|
|
128
151
|
self
|
@@ -134,8 +157,8 @@ module InfluxDB2
|
|
134
157
|
# @return [Object] Deserialized data
|
135
158
|
def _deserialize(type, value)
|
136
159
|
case type.to_sym
|
137
|
-
when :
|
138
|
-
|
160
|
+
when :Time
|
161
|
+
Time.parse(value)
|
139
162
|
when :Date
|
140
163
|
Date.parse(value)
|
141
164
|
when :String
|
@@ -144,7 +167,7 @@ module InfluxDB2
|
|
144
167
|
value.to_i
|
145
168
|
when :Float
|
146
169
|
value.to_f
|
147
|
-
when :
|
170
|
+
when :Boolean
|
148
171
|
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
149
172
|
true
|
150
173
|
else
|
@@ -165,8 +188,7 @@ module InfluxDB2
|
|
165
188
|
end
|
166
189
|
end
|
167
190
|
else # model
|
168
|
-
|
169
|
-
temp_model.build_from_hash(value)
|
191
|
+
InfluxDB2.const_get(type).build_from_hash(value)
|
170
192
|
end
|
171
193
|
end
|
172
194
|
|
@@ -188,7 +210,11 @@ module InfluxDB2
|
|
188
210
|
hash = {}
|
189
211
|
self.class.attribute_map.each_pair do |attr, param|
|
190
212
|
value = self.send(attr)
|
191
|
-
|
213
|
+
if value.nil?
|
214
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
215
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
216
|
+
end
|
217
|
+
|
192
218
|
hash[param] = _to_hash(value)
|
193
219
|
end
|
194
220
|
hash
|
@@ -211,5 +237,6 @@ module InfluxDB2
|
|
211
237
|
value
|
212
238
|
end
|
213
239
|
end
|
240
|
+
|
214
241
|
end
|
215
242
|
end
|
@@ -3,14 +3,15 @@
|
|
3
3
|
|
4
4
|
#No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
5
5
|
|
6
|
-
OpenAPI
|
6
|
+
The version of the OpenAPI document: 0.1.0
|
7
7
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
9
|
-
OpenAPI Generator version:
|
9
|
+
OpenAPI Generator version: 5.0.0-beta3
|
10
10
|
|
11
11
|
=end
|
12
12
|
|
13
13
|
require 'date'
|
14
|
+
require 'time'
|
14
15
|
|
15
16
|
module InfluxDB2
|
16
17
|
# Dialect are options to change the default CSV output format; https://www.w3.org/TR/2015/REC-tabular-metadata-20151217/#dialect-descriptions
|
@@ -19,16 +20,16 @@ module InfluxDB2
|
|
19
20
|
attr_accessor :header
|
20
21
|
|
21
22
|
# Separator between cells; the default is ,
|
22
|
-
|
23
|
+
attr_reader :delimiter
|
23
24
|
|
24
|
-
#
|
25
|
+
# https://www.w3.org/TR/2015/REC-tabular-data-model-20151217/#columns
|
25
26
|
attr_accessor :annotations
|
26
27
|
|
27
28
|
# Character prefixed to comment strings
|
28
|
-
|
29
|
+
attr_reader :comment_prefix
|
29
30
|
|
30
31
|
# Format of timestamps
|
31
|
-
|
32
|
+
attr_reader :date_time_format
|
32
33
|
|
33
34
|
class EnumAttributeValidator
|
34
35
|
attr_reader :datatype
|
@@ -52,62 +53,75 @@ module InfluxDB2
|
|
52
53
|
end
|
53
54
|
end
|
54
55
|
|
55
|
-
# Attribute mapping from ruby-style variable name to JSON key
|
56
|
+
# Attribute mapping from ruby-style variable name to JSON key
|
56
57
|
def self.attribute_map
|
57
58
|
{
|
58
59
|
:'header' => :'header',
|
59
60
|
:'delimiter' => :'delimiter',
|
60
61
|
:'annotations' => :'annotations',
|
61
62
|
:'comment_prefix' => :'commentPrefix',
|
62
|
-
:'date_time_format' => :'dateTimeFormat'
|
63
|
+
:'date_time_format' => :'dateTimeFormat',
|
63
64
|
}
|
64
65
|
end
|
65
66
|
|
66
67
|
# Attribute type mapping.
|
67
68
|
def self.openapi_types
|
68
69
|
{
|
69
|
-
:'header' => :'
|
70
|
+
:'header' => :'Boolean',
|
70
71
|
:'delimiter' => :'String',
|
71
72
|
:'annotations' => :'Array<String>',
|
72
73
|
:'comment_prefix' => :'String',
|
73
|
-
:'date_time_format' => :'String'
|
74
|
+
:'date_time_format' => :'String',
|
74
75
|
}
|
75
76
|
end
|
76
77
|
|
78
|
+
# List of attributes with nullable: true
|
79
|
+
def self.openapi_nullable
|
80
|
+
Set.new([
|
81
|
+
])
|
82
|
+
end
|
83
|
+
|
77
84
|
# Initializes the object
|
78
85
|
# @param [Hash] attributes Model attributes in the form of hash
|
79
86
|
def initialize(attributes = {})
|
80
|
-
|
87
|
+
if (!attributes.is_a?(Hash))
|
88
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `InfluxDB2::Dialect` initialize method"
|
89
|
+
end
|
81
90
|
|
82
|
-
# convert string to symbol for hash key
|
83
|
-
attributes = attributes.each_with_object({}) { |(k, v), h|
|
91
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
92
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
93
|
+
if (!self.class.attribute_map.key?(k.to_sym))
|
94
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `InfluxDB2::Dialect`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
|
95
|
+
end
|
96
|
+
h[k.to_sym] = v
|
97
|
+
}
|
84
98
|
|
85
|
-
if attributes.
|
99
|
+
if attributes.key?(:'header')
|
86
100
|
self.header = attributes[:'header']
|
87
101
|
else
|
88
102
|
self.header = true
|
89
103
|
end
|
90
104
|
|
91
|
-
if attributes.
|
105
|
+
if attributes.key?(:'delimiter')
|
92
106
|
self.delimiter = attributes[:'delimiter']
|
93
107
|
else
|
94
108
|
self.delimiter = ','
|
95
109
|
end
|
96
110
|
|
97
|
-
if attributes.
|
111
|
+
if attributes.key?(:'annotations')
|
98
112
|
if (value = attributes[:'annotations']).is_a?(Array)
|
99
113
|
self.annotations = value
|
100
114
|
end
|
101
115
|
end
|
102
116
|
|
103
|
-
if attributes.
|
104
|
-
self.comment_prefix = attributes[:'
|
117
|
+
if attributes.key?(:'comment_prefix')
|
118
|
+
self.comment_prefix = attributes[:'comment_prefix']
|
105
119
|
else
|
106
120
|
self.comment_prefix = '#'
|
107
121
|
end
|
108
122
|
|
109
|
-
if attributes.
|
110
|
-
self.date_time_format = attributes[:'
|
123
|
+
if attributes.key?(:'date_time_format')
|
124
|
+
self.date_time_format = attributes[:'date_time_format']
|
111
125
|
else
|
112
126
|
self.date_time_format = 'RFC3339'
|
113
127
|
end
|
@@ -143,7 +157,7 @@ module InfluxDB2
|
|
143
157
|
return false if !@delimiter.nil? && @delimiter.to_s.length < 1
|
144
158
|
return false if !@comment_prefix.nil? && @comment_prefix.to_s.length > 1
|
145
159
|
return false if !@comment_prefix.nil? && @comment_prefix.to_s.length < 0
|
146
|
-
date_time_format_validator = EnumAttributeValidator.new('String', [
|
160
|
+
date_time_format_validator = EnumAttributeValidator.new('String', ["RFC3339", "RFC3339Nano"])
|
147
161
|
return false unless date_time_format_validator.valid?(@date_time_format)
|
148
162
|
true
|
149
163
|
end
|
@@ -179,9 +193,9 @@ module InfluxDB2
|
|
179
193
|
# Custom attribute writer method checking allowed values (enum).
|
180
194
|
# @param [Object] date_time_format Object to be assigned
|
181
195
|
def date_time_format=(date_time_format)
|
182
|
-
validator = EnumAttributeValidator.new('String', [
|
196
|
+
validator = EnumAttributeValidator.new('String', ["RFC3339", "RFC3339Nano"])
|
183
197
|
unless validator.valid?(date_time_format)
|
184
|
-
fail ArgumentError,
|
198
|
+
fail ArgumentError, "invalid value for \"date_time_format\", must be one of #{validator.allowable_values}."
|
185
199
|
end
|
186
200
|
@date_time_format = date_time_format
|
187
201
|
end
|
@@ -205,9 +219,16 @@ module InfluxDB2
|
|
205
219
|
end
|
206
220
|
|
207
221
|
# Calculates hash code according to all attributes.
|
208
|
-
# @return [
|
222
|
+
# @return [Integer] Hash code
|
209
223
|
def hash
|
210
|
-
[header, delimiter, annotations, comment_prefix, date_time_format].hash
|
224
|
+
[header, delimiter, annotations, comment_prefix, date_time_format, ].hash
|
225
|
+
end
|
226
|
+
|
227
|
+
# Builds the object from hash
|
228
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
229
|
+
# @return [Object] Returns the model itself
|
230
|
+
def self.build_from_hash(attributes)
|
231
|
+
new.build_from_hash(attributes)
|
211
232
|
end
|
212
233
|
|
213
234
|
# Builds the object from hash
|
@@ -216,15 +237,17 @@ module InfluxDB2
|
|
216
237
|
def build_from_hash(attributes)
|
217
238
|
return nil unless attributes.is_a?(Hash)
|
218
239
|
self.class.openapi_types.each_pair do |key, type|
|
219
|
-
if
|
220
|
-
#
|
240
|
+
if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
|
241
|
+
self.send("#{key}=", nil)
|
242
|
+
elsif type =~ /\AArray<(.*)>/i
|
243
|
+
# check to ensure the input is an array given that the attribute
|
221
244
|
# is documented as an array but the input is not
|
222
245
|
if attributes[self.class.attribute_map[key]].is_a?(Array)
|
223
246
|
self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
|
224
247
|
end
|
225
248
|
elsif !attributes[self.class.attribute_map[key]].nil?
|
226
249
|
self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
|
227
|
-
end
|
250
|
+
end
|
228
251
|
end
|
229
252
|
|
230
253
|
self
|
@@ -236,8 +259,8 @@ module InfluxDB2
|
|
236
259
|
# @return [Object] Deserialized data
|
237
260
|
def _deserialize(type, value)
|
238
261
|
case type.to_sym
|
239
|
-
when :
|
240
|
-
|
262
|
+
when :Time
|
263
|
+
Time.parse(value)
|
241
264
|
when :Date
|
242
265
|
Date.parse(value)
|
243
266
|
when :String
|
@@ -246,7 +269,7 @@ module InfluxDB2
|
|
246
269
|
value.to_i
|
247
270
|
when :Float
|
248
271
|
value.to_f
|
249
|
-
when :
|
272
|
+
when :Boolean
|
250
273
|
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
251
274
|
true
|
252
275
|
else
|
@@ -267,8 +290,7 @@ module InfluxDB2
|
|
267
290
|
end
|
268
291
|
end
|
269
292
|
else # model
|
270
|
-
|
271
|
-
temp_model.build_from_hash(value)
|
293
|
+
InfluxDB2.const_get(type).build_from_hash(value)
|
272
294
|
end
|
273
295
|
end
|
274
296
|
|
@@ -290,7 +312,11 @@ module InfluxDB2
|
|
290
312
|
hash = {}
|
291
313
|
self.class.attribute_map.each_pair do |attr, param|
|
292
314
|
value = self.send(attr)
|
293
|
-
|
315
|
+
if value.nil?
|
316
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
317
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
318
|
+
end
|
319
|
+
|
294
320
|
hash[param] = _to_hash(value)
|
295
321
|
end
|
296
322
|
hash
|
@@ -313,5 +339,6 @@ module InfluxDB2
|
|
313
339
|
value
|
314
340
|
end
|
315
341
|
end
|
342
|
+
|
316
343
|
end
|
317
344
|
end
|