td-client 0.8.68 → 0.8.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,6 +6,7 @@ module ServerStatus
6
6
  ##
7
7
 
8
8
  # => status:String
9
+ # @return [String] HTTP status code
9
10
  def server_status
10
11
  code, body, res = get('/v3/system/server_status')
11
12
  if code != "200"
@@ -5,7 +5,8 @@ module Table
5
5
  ## Table API
6
6
  ##
7
7
 
8
- # => {name:String => [type:Symbol, count:Integer]}
8
+ # @param [String] db
9
+ # @return [Array]
9
10
  def list_tables(db)
10
11
  code, body, res = get("/v3/table/list/#{e db}")
11
12
  if code != "200"
@@ -31,6 +32,10 @@ module Table
31
32
  return result
32
33
  end
33
34
 
35
+ # @param [String] db
36
+ # @param [String] table
37
+ # @param [String] type
38
+ # @return [true]
34
39
  def create_log_or_item_table(db, table, type)
35
40
  code, body, res = post("/v3/table/create/#{e db}/#{e table}/#{type}")
36
41
  if code != "200"
@@ -40,17 +45,28 @@ module Table
40
45
  end
41
46
  private :create_log_or_item_table
42
47
 
43
- # => true
48
+ # @param [String] db
49
+ # @param [String] table
50
+ # @return [true]
44
51
  def create_log_table(db, table)
45
52
  create_table(db, table, :log)
46
53
  end
47
54
 
48
- # => true
55
+ # @param [String] db
56
+ # @param [String] table
57
+ # @param [String] primary_key
58
+ # @param [String] primary_key_type
59
+ # @return [true]
49
60
  def create_item_table(db, table, primary_key, primary_key_type)
50
61
  params = {'primary_key' => primary_key, 'primary_key_type' => primary_key_type}
51
62
  create_table(db, table, :item, params)
52
63
  end
53
64
 
65
+ # @param [String] db
66
+ # @param [String] table
67
+ # @param [String] type
68
+ # @param [Hash] params
69
+ # @return [true]
54
70
  def create_table(db, table, type, params={})
55
71
  schema = schema.to_s
56
72
  code, body, res = post("/v3/table/create/#{e db}/#{e table}/#{type}", params)
@@ -61,7 +77,10 @@ module Table
61
77
  end
62
78
  private :create_table
63
79
 
64
- # => true
80
+ # @param [String] db
81
+ # @param [String] table1
82
+ # @param [String] table2
83
+ # @return [true]
65
84
  def swap_table(db, table1, table2)
66
85
  code, body, res = post("/v3/table/swap/#{e db}/#{e table1}/#{e table2}")
67
86
  if code != "200"
@@ -70,7 +89,10 @@ module Table
70
89
  return true
71
90
  end
72
91
 
73
- # => true
92
+ # @param [String] db
93
+ # @param [String] table
94
+ # @param [String] schema_json
95
+ # @return [true]
74
96
  def update_schema(db, table, schema_json)
75
97
  code, body, res = post("/v3/table/update-schema/#{e db}/#{e table}", {'schema'=>schema_json})
76
98
  if code != "200"
@@ -79,6 +101,10 @@ module Table
79
101
  return true
80
102
  end
81
103
 
104
+ # @param [String] db
105
+ # @param [String] table
106
+ # @param [Fixnum] expire_days
107
+ # @return [true]
82
108
  def update_expire(db, table, expire_days)
83
109
  code, body, res = post("/v3/table/update/#{e db}/#{e table}", {'expire_days'=>expire_days})
84
110
  if code != "200"
@@ -87,7 +113,9 @@ module Table
87
113
  return true
88
114
  end
89
115
 
90
- # => type:Symbol
116
+ # @param [String] db
117
+ # @param [String] table
118
+ # @return [Symbol]
91
119
  def delete_table(db, table)
92
120
  code, body, res = post("/v3/table/delete/#{e db}/#{e table}")
93
121
  if code != "200"
@@ -98,6 +126,13 @@ module Table
98
126
  return type
99
127
  end
100
128
 
129
+ # @param [String] db
130
+ # @param [String] table
131
+ # @param [Fixnum] count
132
+ # @param [Fixnum] to
133
+ # @param [Fixnum] from
134
+ # @param [Proc] block
135
+ # @return [Array, nil]
101
136
  def tail(db, table, count, to, from, &block)
102
137
  params = {'format' => 'msgpack'}
103
138
  params['count'] = count.to_s if count
@@ -0,0 +1,82 @@
1
+ class TreasureData::API
2
+ class ToHashStruct < Struct
3
+ module ClassModule
4
+ def parse_json(body)
5
+ begin
6
+ js = JSON.load(body)
7
+ rescue
8
+ raise "Unexpected API response: #{$!}"
9
+ end
10
+ unless js.is_a?(Hash)
11
+ raise "Unexpected API response: #{body}"
12
+ end
13
+ js
14
+ end
15
+
16
+ def from_json(json)
17
+ from_hash(parse_json(json))
18
+ end
19
+
20
+ def from_hash(hash)
21
+ return new if hash.nil?
22
+ new(*members.map { |sym|
23
+ v = hash[sym] || hash[sym.to_s]
24
+ model.key?(sym) ? model[sym].from_hash(v) : v
25
+ })
26
+ end
27
+
28
+ def model_property(key, klass)
29
+ model[key.to_sym] = klass
30
+ end
31
+
32
+ def model
33
+ @model ||= {}
34
+ end
35
+ end
36
+ extend ClassModule
37
+
38
+ def to_h
39
+ self.class.members.inject({}) { |r, e|
40
+ v = obj_to_h(self[e])
41
+ r[e.to_s] = v unless v.nil?
42
+ r
43
+ }
44
+ end
45
+
46
+ def to_json
47
+ to_h.to_json
48
+ end
49
+
50
+ def validate
51
+ validate_self
52
+ values.each do |v|
53
+ v.validate if v.is_a?(ToHashStruct)
54
+ end
55
+ self
56
+ end
57
+
58
+ def validate_self
59
+ # define as required
60
+ end
61
+
62
+ private
63
+
64
+ def validate_presence_of(key)
65
+ unless self.send(key)
66
+ raise ArgumentError.new("#{key} required")
67
+ end
68
+ end
69
+
70
+ def obj_to_h(obj)
71
+ if obj.nil?
72
+ nil
73
+ elsif Array === obj
74
+ obj.map { |e| obj_to_h(e) }
75
+ elsif obj.respond_to?(:to_h)
76
+ obj.to_h
77
+ else
78
+ obj
79
+ end
80
+ end
81
+ end
82
+ end
@@ -5,7 +5,9 @@ module User
5
5
  ## User API
6
6
  ##
7
7
 
8
- # apikey:String
8
+ # @param [String] user
9
+ # @param [String] password
10
+ # @return [String] API key
9
11
  def authenticate(user, password)
10
12
  code, body, res = post("/v3/user/authenticate", {'user'=>user, 'password'=>password})
11
13
  if code != "200"
@@ -20,7 +22,7 @@ module User
20
22
  return apikey
21
23
  end
22
24
 
23
- # => [[name:String,organization:String,[user:String]]
25
+ # @return [Array]
24
26
  def list_users
25
27
  code, body, res = get("/v3/user/list")
26
28
  if code != "200"
@@ -35,7 +37,11 @@ module User
35
37
  return result
36
38
  end
37
39
 
38
- # => true
40
+ # @param [String] name
41
+ # @param [String] org
42
+ # @param [String] email
43
+ # @param [String] password
44
+ # @return [true]
39
45
  def add_user(name, org, email, password)
40
46
  params = {'organization'=>org, :email=>email, :password=>password}
41
47
  code, body, res = post("/v3/user/add/#{e name}", params)
@@ -45,7 +51,8 @@ module User
45
51
  return true
46
52
  end
47
53
 
48
- # => true
54
+ # @param [String] user
55
+ # @return [true]
49
56
  def remove_user(user)
50
57
  code, body, res = post("/v3/user/remove/#{e user}")
51
58
  if code != "200"
@@ -54,7 +61,9 @@ module User
54
61
  return true
55
62
  end
56
63
 
57
- # => true
64
+ # @param [String] user
65
+ # @param [String] email
66
+ # @return [true]
58
67
  def change_email(user, email)
59
68
  params = {'email' => email}
60
69
  code, body, res = post("/v3/user/email/change/#{e user}", params)
@@ -64,7 +73,8 @@ module User
64
73
  return true
65
74
  end
66
75
 
67
- # => [apikey:String]
76
+ # @param [String] user
77
+ # @return [Array<String>] API keys as array
68
78
  def list_apikeys(user)
69
79
  code, body, res = get("/v3/user/apikey/list/#{e user}")
70
80
  if code != "200"
@@ -74,7 +84,8 @@ module User
74
84
  return js['apikeys']
75
85
  end
76
86
 
77
- # => true
87
+ # @param [String] user
88
+ # @return [true]
78
89
  def add_apikey(user)
79
90
  code, body, res = post("/v3/user/apikey/add/#{e user}")
80
91
  if code != "200"
@@ -83,7 +94,9 @@ module User
83
94
  return true
84
95
  end
85
96
 
86
- # => true
97
+ # @param [String] user
98
+ # @param [String] apikey
99
+ # @return [true]
87
100
  def remove_apikey(user, apikey)
88
101
  params = {'apikey' => apikey}
89
102
  code, body, res = post("/v3/user/apikey/remove/#{e user}", params)
@@ -93,7 +106,9 @@ module User
93
106
  return true
94
107
  end
95
108
 
96
- # => true
109
+ # @param [String] user
110
+ # @param [String] password
111
+ # @return [true]
97
112
  def change_password(user, password)
98
113
  params = {'password' => password}
99
114
  code, body, res = post("/v3/user/password/change/#{e user}", params)
@@ -103,7 +118,9 @@ module User
103
118
  return true
104
119
  end
105
120
 
106
- # => true
121
+ # @param [String] old_password
122
+ # @param [String] password
123
+ # @return [true]
107
124
  def change_my_password(old_password, password)
108
125
  params = {'old_password' => old_password, 'password' => password}
109
126
  code, body, res = post("/v3/user/password/change", params)
@@ -2,6 +2,9 @@
2
2
  methods = Zlib::GzipReader.public_instance_methods
3
3
  if !methods.include?(:readpartial) && !methods.include?('readpartial')
4
4
  class Zlib::GzipReader
5
+ # @param [Fixnum] size
6
+ # @param [IO] out
7
+ # @return [String]
5
8
  def readpartial(size, out=nil)
6
9
  o = read(size)
7
10
  if o
@@ -3,14 +3,24 @@ module TreasureData
3
3
 
4
4
 
5
5
  class Model
6
+ # @param [TreasureData::Client] client
6
7
  def initialize(client)
7
8
  @client = client
8
9
  end
9
10
 
11
+ # @!attribute [r] client
12
+ # @return [TreasureData::Client] client
10
13
  attr_reader :client
11
14
  end
12
15
 
13
16
  class Account < Model
17
+ # @param [TreasureData::Client] client
18
+ # @param [String] account_id
19
+ # @param [Fixnum] plan
20
+ # @param [Fixnum] storage_size
21
+ # @param [Fixnum] guaranteed_cores
22
+ # @param [Fixnum] maximum_cores
23
+ # @param [String] created_at
14
24
  def initialize(client, account_id, plan, storage_size=nil, guaranteed_cores=nil, maximum_cores=nil, created_at=nil)
15
25
  super(client)
16
26
  @account_id = account_id
@@ -21,12 +31,19 @@ class Account < Model
21
31
  @created_at = created_at
22
32
  end
23
33
 
34
+ # @!attribute [r] account_id
35
+ # @!attribute [r] plan
36
+ # @!attribute [r] storage_size
37
+ # @!attribute [r] guaranteed_cores
38
+ # @!attribute [r] maximum_cores
24
39
  attr_reader :account_id, :plan, :storage_size, :guaranteed_cores, :maximum_cores
25
40
 
41
+ # @return <Time, nil>
26
42
  def created_at
27
43
  @created_at && !@created_at.empty? ? Time.parse(@created_at) : nil
28
44
  end
29
45
 
46
+ # @return <String>
30
47
  def storage_size_string
31
48
  if @storage_size <= 1024 * 1024
32
49
  return "0.0 GB"
@@ -44,6 +61,14 @@ class Database < Model
44
61
  PERMISSIONS = [:administrator, :full_access, :import_only, :query_only]
45
62
  PERMISSION_LIST_TABLES = [:administrator, :full_access]
46
63
 
64
+ # @param [TreasureData::Client] client
65
+ # @param [String] db_name
66
+ # @param [Array<Table>] tables
67
+ # @param [Fixnum] count
68
+ # @param [String] created_at
69
+ # @param [String] updated_at
70
+ # @param [String] org_name
71
+ # @param [String] permission
47
72
  def initialize(client, db_name, tables=nil, count=nil, created_at=nil, updated_at=nil, org_name=nil, permission=nil)
48
73
  super(client)
49
74
  @db_name = db_name
@@ -54,45 +79,62 @@ class Database < Model
54
79
  @permission = permission.to_sym
55
80
  end
56
81
 
82
+ # @!attribute [r] org_name
83
+ # @!attribute [r] permission
84
+ # @!attribute [r] count
57
85
  attr_reader :org_name, :permission, :count
58
86
 
87
+ # @return [String] db_name
59
88
  def name
60
89
  @db_name
61
90
  end
62
91
 
92
+ # @return [Array<Table>]
63
93
  def tables
64
94
  update_tables! unless @tables
65
95
  @tables
66
96
  end
67
97
 
98
+ # @param [String] name
99
+ # @return [true]
68
100
  def create_log_table(name)
69
101
  @client.create_log_table(@db_name, name)
70
102
  end
71
103
 
104
+ # @param [String] name
105
+ # @return [true]
72
106
  def create_item_table(name)
73
107
  @client.create_item_table(@db_name, name)
74
108
  end
75
109
 
110
+ # @param [String] table_name
111
+ # @return [Table]
76
112
  def table(table_name)
77
113
  @client.table(@db_name, table_name)
78
114
  end
79
115
 
116
+ # @return [Symbol]
80
117
  def delete
81
118
  @client.delete_database(@db_name)
82
119
  end
83
120
 
121
+ # @param [String] q
122
+ # @return [Job]
84
123
  def query(q)
85
124
  @client.query(@db_name, q)
86
125
  end
87
126
 
127
+ # @return [Time, nil]
88
128
  def created_at
89
129
  @created_at && !@created_at.empty? ? Time.parse(@created_at) : nil
90
130
  end
91
131
 
132
+ # @return [Time, nil]
92
133
  def updated_at
93
134
  @updated_at && !@updated_at.empty? ? Time.parse(@updated_at) : nil
94
135
  end
95
136
 
137
+ # @return [nil]
96
138
  def update_tables!
97
139
  @tables = @client.tables(@db_name)
98
140
  # provide Table objects with a reference to the parent Database to avoid
@@ -105,6 +147,20 @@ class Database < Model
105
147
  end
106
148
 
107
149
  class Table < Model
150
+ # @param [TreasureData::Client] client
151
+ # @param [String] db_name
152
+ # @param [String] table_name
153
+ # @param [String] type
154
+ # @param [String] schema
155
+ # @param [Fixnum] count
156
+ # @param [String] created_at
157
+ # @param [String] updated_at
158
+ # @param [Fixnum] estimated_storage_size
159
+ # @param [String] last_import
160
+ # @param [String] last_log_timestamp
161
+ # @param [Fixnum, String] expire_days
162
+ # @param [String] primary_key
163
+ # @param [String] primary_key_type
108
164
  def initialize(client, db_name, table_name, type, schema, count, created_at=nil, updated_at=nil, estimated_storage_size=nil, last_import=nil, last_log_timestamp=nil, expire_days=nil, primary_key=nil, primary_key_type=nil)
109
165
  super(client)
110
166
  @database = nil
@@ -123,65 +179,95 @@ class Table < Model
123
179
  @primary_key_type = primary_key_type
124
180
  end
125
181
 
182
+ # @!attribute [r] type
183
+ # @!attribute [r] db_name
184
+ # @!attribute [r] table_name
185
+ # @!attribute [r] schema
186
+ # @!attribute [r] count
187
+ # @!attribute [r] estimated_storage_size
188
+ # @!attribute [r] primary_key
189
+ # @!attribute [r] primary_key_type
126
190
  attr_reader :type, :db_name, :table_name, :schema, :count, :estimated_storage_size, :primary_key, :primary_key_type
127
191
 
128
192
  alias database_name db_name
129
193
  alias name table_name
130
194
 
195
+ # @param [String] database
131
196
  def database=(database)
132
197
  @database = database if database.instance_of?(Database)
133
198
  end
134
199
 
200
+ # @return [Time, nil]
135
201
  def created_at
136
202
  @created_at && !@created_at.empty? ? Time.parse(@created_at) : nil
137
203
  end
138
204
 
205
+ # @return [Time, nil]
139
206
  def updated_at
140
207
  @updated_at && !@updated_at.empty? ? Time.parse(@updated_at) : nil
141
208
  end
142
209
 
210
+ # @return [Time, nil]
143
211
  def last_import
144
212
  @last_import && !@last_import.empty? ? Time.parse(@last_import) : nil
145
213
  end
146
214
 
215
+ # @return [Time, nil]
147
216
  def last_log_timestamp
148
217
  @last_log_timestamp && !@last_log_timestamp.empty? ? Time.parse(@last_log_timestamp) : nil
149
218
  end
150
219
 
220
+ # @return [Fixnum, nil]
151
221
  def expire_days
152
222
  @expire_days ? @expire_days.to_i : nil
153
223
  end
154
224
 
225
+ # @return [Database]
155
226
  def database
156
227
  update_database! unless @database
157
228
  @database
158
229
  end
159
230
 
160
231
  # get the database's permission as if they were the table's
232
+ # @return [String]
161
233
  def permission
162
234
  database.permission
163
235
  end
164
236
 
237
+ # @return [String]
165
238
  def identifier
166
239
  "#{@db_name}.#{@table_name}"
167
240
  end
168
241
 
242
+ # @return [Symbol]
169
243
  def delete
170
244
  @client.delete_table(@db_name, @table_name)
171
245
  end
172
246
 
247
+ # @param [Fixnum] count
248
+ # @param [Fixnum] to
249
+ # @param [Fixnum] from
250
+ # @return [Array, nil]
173
251
  def tail(count, to=nil, from=nil)
174
252
  @client.tail(@db_name, @table_name, count, to, from)
175
253
  end
176
254
 
255
+ # @param [String] format
256
+ # @param [String, StringIO] stream
257
+ # @param [Fixnum] size
258
+ # @return [Float]
177
259
  def import(format, stream, size)
178
260
  @client.import(@db_name, @table_name, format, stream, size)
179
261
  end
180
262
 
263
+ # @param [String] storage_type
264
+ # @param [Hash] opts
265
+ # @return [Job]
181
266
  def export(storage_type, opts={})
182
267
  @client.export(@db_name, @table_name, storage_type, opts)
183
268
  end
184
269
 
270
+ # @return [String]
185
271
  def estimated_storage_size_string
186
272
  if @estimated_storage_size <= 1024*1024
187
273
  return "0.0 GB"
@@ -201,14 +287,21 @@ end
201
287
 
202
288
  class Schema
203
289
  class Field
290
+ # @param [String] name
291
+ # @param [String] type
204
292
  def initialize(name, type)
205
293
  @name = name
206
294
  @type = type
207
295
  end
296
+
297
+ # @!attribute [r] name
298
+ # @!attribute [r] type
208
299
  attr_reader :name
209
300
  attr_reader :type
210
301
  end
211
302
 
303
+ # @param [String] cols
304
+ # @return [Schema]
212
305
  def self.parse(cols)
213
306
  fields = cols.split(',').map {|col|
214
307
  name, type, *_ = col.split(':')
@@ -217,16 +310,23 @@ class Schema
217
310
  Schema.new(fields)
218
311
  end
219
312
 
313
+ # @param [Array] fields
220
314
  def initialize(fields=[])
221
315
  @fields = fields
222
316
  end
223
317
 
318
+ # @!attribute [r] fields
224
319
  attr_reader :fields
225
320
 
321
+ # @param [String] name
322
+ # @param [String] type
323
+ # @return [Array]
226
324
  def add_field(name, type)
227
325
  @fields << Field.new(name, type)
228
326
  end
229
327
 
328
+ # @param [Schema] schema
329
+ # @return [Schema]
230
330
  def merge(schema)
231
331
  nf = @fields.dup
232
332
  schema.fields.each {|f|
@@ -239,10 +339,13 @@ class Schema
239
339
  Schema.new(nf)
240
340
  end
241
341
 
342
+ # @return [Array<Field>]
242
343
  def to_json(*args)
243
344
  @fields.map {|f| [f.name, f.type] }.to_json(*args)
244
345
  end
245
346
 
347
+ # @param [Object] obj
348
+ # @return [self]
246
349
  def from_json(obj)
247
350
  @fields = obj.map {|f|
248
351
  Field.new(f[0], f[1])
@@ -260,6 +363,24 @@ class Job < Model
260
363
  STATUS_KILLED = "killed"
261
364
  FINISHED_STATUS = [STATUS_SUCCESS, STATUS_ERROR, STATUS_KILLED]
262
365
 
366
+ # @param [TreasureData::Client] client
367
+ # @param [String] job_id
368
+ # @param [String] type
369
+ # @param [String] query
370
+ # @param [Fixnum] status
371
+ # @param [String] url
372
+ # @param [Boolean] debug
373
+ # @param [String] start_at
374
+ # @param [String] end_at
375
+ # @param [String] cpu_time
376
+ # @param [String] result_size
377
+ # @param [Array] result
378
+ # @param [String] result_url
379
+ # @param [Array] hive_result_schema
380
+ # @param [Fixnum] priority
381
+ # @param [Fixnum] retry_limit
382
+ # @param [String] org_name
383
+ # @param [String] db_name
263
384
  def initialize(client, job_id, type, query, status=nil, url=nil, debug=nil, start_at=nil, end_at=nil, cpu_time=nil,
264
385
  result_size=nil, result=nil, result_url=nil, hive_result_schema=nil, priority=nil, retry_limit=nil,
265
386
  org_name=nil, db_name=nil)
@@ -282,6 +403,13 @@ class Job < Model
282
403
  @db_name = db_name
283
404
  end
284
405
 
406
+ # @!attribute [r] job_id
407
+ # @!attribute [r] type
408
+ # @!attribute [r] result_url
409
+ # @!attribute [r] priority
410
+ # @!attribute [r] retry_limit
411
+ # @!attribute [r] org_name
412
+ # @!attribute [r] db_name
285
413
  attr_reader :job_id, :type, :result_url
286
414
  attr_reader :priority, :retry_limit, :org_name, :db_name
287
415
 
@@ -293,51 +421,61 @@ class Job < Model
293
421
  # TODO
294
422
  end
295
423
 
424
+ # @return [String]
296
425
  def query
297
426
  update_status! unless @query || finished?
298
427
  @query
299
428
  end
300
429
 
430
+ # @return [String]
301
431
  def status
302
432
  update_status! unless @status || finished?
303
433
  @status
304
434
  end
305
435
 
436
+ # @return [String]
306
437
  def url
307
438
  update_status! unless @url || finished?
308
439
  @url
309
440
  end
310
441
 
442
+ # @return [Boolean]
311
443
  def debug
312
444
  update_status! unless @debug || finished?
313
445
  @debug
314
446
  end
315
447
 
448
+ # @return [Time, nil]
316
449
  def start_at
317
450
  update_status! unless @start_at || finished?
318
451
  @start_at && !@start_at.empty? ? Time.parse(@start_at) : nil
319
452
  end
320
453
 
454
+ # @return [Time, nil]
321
455
  def end_at
322
456
  update_status! unless @end_at || finished?
323
457
  @end_at && !@end_at.empty? ? Time.parse(@end_at) : nil
324
458
  end
325
459
 
460
+ # @return [String]
326
461
  def cpu_time
327
462
  update_status! unless @cpu_time || finished?
328
463
  @cpu_time
329
464
  end
330
465
 
466
+ # @return [Array]
331
467
  def hive_result_schema
332
468
  update_status! unless @hive_result_schema.instance_of? Array || finished?
333
469
  @hive_result_schema
334
470
  end
335
471
 
472
+ # @return [String]
336
473
  def result_size
337
474
  update_status! unless @result_size || finished?
338
475
  @result_size
339
476
  end
340
477
 
478
+ # @return [Array]
341
479
  def result
342
480
  unless @result
343
481
  return nil unless finished?
@@ -346,11 +484,17 @@ class Job < Model
346
484
  @result
347
485
  end
348
486
 
487
+ # @param [String] format
488
+ # @param [IO] io
489
+ # @param [Proc] block
490
+ # @return [nil, String]
349
491
  def result_format(format, io=nil, &block)
350
492
  return nil unless finished?
351
493
  @client.job_result_format(@job_id, format, io, &block)
352
494
  end
353
495
 
496
+ # @yield [result]
497
+ # @return [nil]
354
498
  def result_each_with_compr_size(&block)
355
499
  if @result
356
500
  @result.each(&block)
@@ -360,6 +504,8 @@ class Job < Model
360
504
  nil
361
505
  end
362
506
 
507
+ # @yield [result]
508
+ # @return [nil]
363
509
  def result_each(&block)
364
510
  if @result
365
511
  @result.each(&block)
@@ -369,31 +515,37 @@ class Job < Model
369
515
  nil
370
516
  end
371
517
 
518
+ # @return [Boolean]
372
519
  def finished?
373
520
  update_progress! unless @status
374
521
  FINISHED_STATUS.include?(@status)
375
522
  end
376
523
 
524
+ # @return [Boolean]
377
525
  def success?
378
526
  update_progress! unless @status
379
527
  @status == STATUS_SUCCESS
380
528
  end
381
529
 
530
+ # @return [Boolean]
382
531
  def error?
383
532
  update_progress! unless @status
384
533
  @status == STATUS_ERROR
385
534
  end
386
535
 
536
+ # @return [Boolean]
387
537
  def killed?
388
538
  update_progress! unless @status
389
539
  @status == STATUS_KILLED
390
540
  end
391
541
 
542
+ # @return [Boolean]
392
543
  def queued?
393
544
  update_progress! unless @status
394
545
  @status == STATUS_QUEUED
395
546
  end
396
547
 
548
+ # @return [Boolean]
397
549
  def running?
398
550
  update_progress! unless @status
399
551
  @status == STATUS_RUNNING
@@ -428,6 +580,9 @@ end
428
580
  class ScheduledJob < Job
429
581
  attr_reader :scheduled_at
430
582
 
583
+ # @param [TreasureData::Client] client
584
+ # @param [String] scheduled_at
585
+ # @param [...] args for Job#initialize
431
586
  def initialize(client, scheduled_at, *super_args)
432
587
  super(client, *super_args)
433
588
  if scheduled_at.to_s.empty?
@@ -440,6 +595,18 @@ end
440
595
 
441
596
 
442
597
  class Schedule < Model
598
+ # @param [TreasureData::Client] client
599
+ # @param [String] name
600
+ # @param [String] cron
601
+ # @param [String] query
602
+ # @param [Fixnum] database
603
+ # @param [String] result_url
604
+ # @param [String] timezone
605
+ # @param [String] delay
606
+ # @param [String] next_time
607
+ # @param [String] priority
608
+ # @param [String] retry_limit
609
+ # @param [String] org_name
443
610
  def initialize(client, name, cron, query, database=nil, result_url=nil, timezone=nil, delay=nil, next_time=nil,
444
611
  priority=nil, retry_limit=nil, org_name=nil)
445
612
  super(client)
@@ -455,12 +622,25 @@ class Schedule < Model
455
622
  @retry_limit = retry_limit
456
623
  end
457
624
 
625
+ # @!attribute [r] name
626
+ # @!attribute [r] cron
627
+ # @!attribute [r] query
628
+ # @!attribute [r] database
629
+ # @!attribute [r] result_url
630
+ # @!attribute [r] delay
631
+ # @!attribute [r] priority
632
+ # @!attribute [r] retry_limit
633
+ # @!attribute [r] org_name
458
634
  attr_reader :name, :cron, :query, :database, :result_url, :timezone, :delay, :priority, :retry_limit, :org_name
459
635
 
636
+ # @return [Time, nil]
460
637
  def next_time
461
638
  @next_time ? Time.parse(@next_time) : nil
462
639
  end
463
640
 
641
+ # @param [String] time
642
+ # @param [Fixnum] num
643
+ # @return [Array]
464
644
  def run(time, num)
465
645
  @client.run_schedule(time, num)
466
646
  end
@@ -468,17 +648,26 @@ end
468
648
 
469
649
 
470
650
  class Result < Model
651
+ # @param [TreasureData::Client] client
652
+ # @param [String] name
653
+ # @param [String] url
654
+ # @param [String] org_name
471
655
  def initialize(client, name, url, org_name)
472
656
  super(client)
473
657
  @name = name
474
658
  @url = url
475
659
  end
476
660
 
661
+ # @!attribute [r] name
662
+ # @!attribute [r] url
663
+ # @!attribute [r] org_name
477
664
  attr_reader :name, :url, :org_name
478
665
  end
479
666
 
480
667
 
481
668
  class BulkImport < Model
669
+ # @param [TreasureData::Client] client
670
+ # @param [Hash] data
482
671
  def initialize(client, data={})
483
672
  super(client)
484
673
  @name = data['name']
@@ -493,6 +682,16 @@ class BulkImport < Model
493
682
  @error_parts = data['error_parts']
494
683
  end
495
684
 
685
+ # @!attribute [r] name
686
+ # @!attribute [r] database
687
+ # @!attribute [r] table
688
+ # @!attribute [r] status
689
+ # @!attribute [r] job_id
690
+ # @!attribute [r] valid_records
691
+ # @!attribute [r] error_records
692
+ # @!attribute [r] valid_parts
693
+ # @!attribute [r] error_parts
694
+ # @!attribute [r] org_name
496
695
  attr_reader :name
497
696
  attr_reader :database
498
697
  attr_reader :table
@@ -504,6 +703,7 @@ class BulkImport < Model
504
703
  attr_reader :error_parts
505
704
  attr_reader :org_name
506
705
 
706
+ # @return [Boolean]
507
707
  def upload_frozen?
508
708
  @upload_frozen
509
709
  end
@@ -522,6 +722,11 @@ end
522
722
 
523
723
 
524
724
  class AccessControl < Model
725
+ # @param [TreasureData::Client] client
726
+ # @param [String] subject
727
+ # @param [String] action
728
+ # @param [String] scope
729
+ # @param [Array] grant_option
525
730
  def initialize(client, subject, action, scope, grant_option)
526
731
  super(client)
527
732
  @subject = subject
@@ -530,6 +735,10 @@ class AccessControl < Model
530
735
  @grant_option = grant_option
531
736
  end
532
737
 
738
+ # @!attribute [r] subject
739
+ # @!attribute [r] action
740
+ # @!attribute [r] scope
741
+ # @!attribute [r] grant_option
533
742
  attr_reader :subject, :action, :scope, :grant_option
534
743
  end
535
744