flowcommerce 0.0.10 → 0.0.11

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4534c623d5e0b6765aa85c03c1e82773ab0f471a
4
- data.tar.gz: 8e715ca802435c606f7a18be56f238cc342139ce
3
+ metadata.gz: c265a72646f875ea42247024e52ad13bd9362351
4
+ data.tar.gz: 76f8f5678c7ad813b99744f858aa4958a51eb23a
5
5
  SHA512:
6
- metadata.gz: f7afe47b4f026eee387da01e6c2b854c6c596a509577dc2a7d1afba60654c75e0e95cf4a863ae3446de94dd4fd42de3104cafbc58b3df47f5fa654bc57341cf7
7
- data.tar.gz: d5c927ce2bf625ae1fda995469630d7317d3e7d962afa6e0cb12d3c491077663782b43684a5ef19ea59d54ce367ea5b625230543429ad2316d9ed412e6b5effd
6
+ metadata.gz: 22b4b15968a2b6c513a8177b74eacaeefaa0975089121fec6645e947e08ed902c34c92d96f2f2305537235bb19e25329b8c66f683b90f5bc3a0453783bd4e16a
7
+ data.tar.gz: 39c35efd1072a27f7e861dd452432304a3b072ea2fc86588d72bef258d7bad1f5fade3d347810d51dac809763c4d809f4878bdaacab215d6e5741422b60ee976
data/README.md CHANGED
@@ -2,40 +2,34 @@
2
2
 
3
3
  Native ruby client to the Flow API (https://api.flow.io)
4
4
 
5
- ## Installation
6
-
7
- gem install flowcommerce
8
-
9
-
10
- ## Usage
11
-
12
- require 'flowcommerce'
13
-
14
- org = "demo"
5
+ ## Status
15
6
 
16
- client = FlowCommerce.client("api token")
7
+ Please note that this library and APIs are in ALPHA and are subject to
8
+ change and will break in the future. Once Flow Commerce releases its
9
+ official 1.0 library, API changes will be backwards compatible. Until
10
+ then - we are super grateful for your patience as we finalize the API
11
+ for our launch.
17
12
 
18
- catalog = client.catalogs.get_catalog(org)
13
+ Additionally, note that the final URL for the Flow Commerce API will
14
+ be https://api.flow.io - at the moment this domain is not ready, thus
15
+ you will see different clients used to access the catalog or to access
16
+ experience. This is temporary.
19
17
 
20
- items = client.subcatalog_items.get(org, "canada", :limit => 10, :offset => 0)
21
- puts "# items in subcatalog: %s" % items.size
18
+ ## Installation
22
19
 
20
+ gem install flowcommerce
23
21
 
24
22
  ## Example
25
23
 
26
- See example.rb for a working example
24
+ 1. Create a file named ~/.flow/token that contains your API token
25
+ and nothing else
27
26
 
27
+ 2. ruby ./example.rb <org id>
28
28
 
29
- ## Documentation
30
-
31
- The full API is documented at http://apidoc.me/flow/catalog/latest
29
+ Code for each example is in the examples directory, designed to really
30
+ highlight the use of key APIs in as clear a way as possible.
32
31
 
33
- Also look at
34
- https://github.com/flowcommerce/ruby-sdk/blob/master/lib/clients/flow_catalog_v0_client.rb
35
- for the complete Ruby implementation of the API.
36
32
 
33
+ ## Documentation
37
34
 
38
- ## Release a new version of the gem
39
-
40
- go run release.go
41
-
35
+ Complete API documentation is available at http://docs.flow.io
@@ -1,6 +1,6 @@
1
1
  # Generated by apidoc - http://www.apidoc.me
2
- # Service version: 0.0.19
3
- # apidoc:0.11.27 http://www.apidoc.me/flow/catalog/0.0.19/ruby_client
2
+ # Service version: 0.0.32
3
+ # apidoc:0.11.28 http://www.apidoc.me/flow/catalog/0.0.32/ruby_client
4
4
 
5
5
  require 'cgi'
6
6
  require 'net/http'
@@ -26,8 +26,8 @@ module Io
26
26
 
27
27
  BASE_URL = 'https://catalog.api.flow.io' unless defined?(Constants::BASE_URL)
28
28
  NAMESPACE = 'io.flow.catalog.v0' unless defined?(Constants::NAMESPACE)
29
- USER_AGENT = 'apidoc:0.11.27 http://www.apidoc.me/flow/catalog/0.0.19/ruby_client' unless defined?(Constants::USER_AGENT)
30
- VERSION = '0.0.19' unless defined?(Constants::VERSION)
29
+ USER_AGENT = 'apidoc:0.11.28 http://www.apidoc.me/flow/catalog/0.0.32/ruby_client' unless defined?(Constants::USER_AGENT)
30
+ VERSION = '0.0.32' unless defined?(Constants::VERSION)
31
31
  VERSION_MAJOR = 0 unless defined?(VERSION_MAJOR)
32
32
 
33
33
  end
@@ -129,9 +129,10 @@ module Io
129
129
  :id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }),
130
130
  :name => (x = opts.delete(:name); x.nil? ? nil : HttpClient::Preconditions.assert_class('name', x, Array).map { |v| HttpClient::Preconditions.assert_class('name', v, String) }),
131
131
  :position => (x = opts.delete(:position); x.nil? ? nil : HttpClient::Preconditions.assert_class('position', x, Array).map { |v| HttpClient::Preconditions.assert_class('position', v, Integer) }),
132
+ :subcatalog => (x = opts.delete(:subcatalog); x.nil? ? nil : HttpClient::Preconditions.assert_class('subcatalog', x, Array).map { |v| HttpClient::Preconditions.assert_class('subcatalog', v, String) }),
132
133
  :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer),
133
134
  :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer),
134
- :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "lower(name)" : x), String)
135
+ :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "name" : x), String)
135
136
  }.delete_if { |k, v| v.nil? }
136
137
  r = @client.request("/#{CGI.escape(organization)}/functions").with_query(query).get
137
138
  r.map { |x| ::Io::Flow::Catalog::V0::Models::Function.new(x) }
@@ -170,16 +171,6 @@ module Io
170
171
  nil
171
172
  end
172
173
 
173
- # Sync functions
174
- def post_events_by_id_and_event(organization, id, event, hash)
175
- HttpClient::Preconditions.assert_class('organization', organization, String)
176
- HttpClient::Preconditions.assert_class('id', id, String)
177
- HttpClient::Preconditions.assert_class('event', event, String)
178
- HttpClient::Preconditions.assert_class('hash', hash, Hash)
179
- r = @client.request("/#{CGI.escape(organization)}/functions/#{CGI.escape(id)}/events/#{CGI.escape(event)}").with_json(hash.to_json).post
180
- nil
181
- end
182
-
183
174
  end
184
175
 
185
176
  class Items
@@ -213,17 +204,17 @@ module Io
213
204
  :query => (x = opts.delete(:query); x.nil? ? nil : HttpClient::Preconditions.assert_class('query', x, String)),
214
205
  :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer),
215
206
  :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer),
216
- :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "lower(name)" : x), String)
207
+ :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "name" : x), String)
217
208
  }.delete_if { |k, v| v.nil? }
218
209
  r = @client.request("/#{CGI.escape(organization)}/catalog/items").with_query(query).get
219
210
  r.map { |x| ::Io::Flow::Catalog::V0::Models::Item.new(x) }
220
211
  end
221
212
 
222
213
  # Returns information about a specific item.
223
- def get_by_id(organization, id)
214
+ def get_by_number(organization, number)
224
215
  HttpClient::Preconditions.assert_class('organization', organization, String)
225
- HttpClient::Preconditions.assert_class('id', id, String)
226
- r = @client.request("/#{CGI.escape(organization)}/catalog/items/#{CGI.escape(id)}").get
216
+ HttpClient::Preconditions.assert_class('number', number, String)
217
+ r = @client.request("/#{CGI.escape(organization)}/catalog/items/#{CGI.escape(number)}").get
227
218
  ::Io::Flow::Catalog::V0::Models::Item.new(r)
228
219
  end
229
220
 
@@ -235,20 +226,20 @@ module Io
235
226
  ::Io::Flow::Catalog::V0::Models::Item.new(r)
236
227
  end
237
228
 
238
- # Update item with the specified id, creating if it does not exist.
239
- def put_by_id(organization, id, item_form)
229
+ # Update item with the specified number, creating if it does not exist.
230
+ def put_by_number(organization, number, item_form)
240
231
  HttpClient::Preconditions.assert_class('organization', organization, String)
241
- HttpClient::Preconditions.assert_class('id', id, String)
232
+ HttpClient::Preconditions.assert_class('number', number, String)
242
233
  HttpClient::Preconditions.assert_class('item_form', item_form, ::Io::Flow::Catalog::V0::Models::ItemForm)
243
- r = @client.request("/#{CGI.escape(organization)}/catalog/items/#{CGI.escape(id)}").with_json(item_form.to_json).put
234
+ r = @client.request("/#{CGI.escape(organization)}/catalog/items/#{CGI.escape(number)}").with_json(item_form.to_json).put
244
235
  ::Io::Flow::Catalog::V0::Models::Item.new(r)
245
236
  end
246
237
 
247
- # Delete the item with this id
248
- def delete_by_id(organization, id)
238
+ # Delete the item with this number
239
+ def delete_by_number(organization, number)
249
240
  HttpClient::Preconditions.assert_class('organization', organization, String)
250
- HttpClient::Preconditions.assert_class('id', id, String)
251
- r = @client.request("/#{CGI.escape(organization)}/catalog/items/#{CGI.escape(id)}").delete
241
+ HttpClient::Preconditions.assert_class('number', number, String)
242
+ r = @client.request("/#{CGI.escape(organization)}/catalog/items/#{CGI.escape(number)}").delete
252
243
  nil
253
244
  end
254
245
 
@@ -266,6 +257,7 @@ module Io
266
257
  opts = HttpClient::Helper.symbolize_keys(incoming)
267
258
  query = {
268
259
  :id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }),
260
+ :key => (x = opts.delete(:key); x.nil? ? nil : HttpClient::Preconditions.assert_class('key', x, Array).map { |v| HttpClient::Preconditions.assert_class('key', v, String) }),
269
261
  :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer),
270
262
  :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer),
271
263
  :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "journal_timestamp" : x), String)
@@ -280,6 +272,7 @@ module Io
280
272
  opts = HttpClient::Helper.symbolize_keys(incoming)
281
273
  query = {
282
274
  :id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }),
275
+ :key => (x = opts.delete(:key); x.nil? ? nil : HttpClient::Preconditions.assert_class('key', x, Array).map { |v| HttpClient::Preconditions.assert_class('key', v, String) }),
283
276
  :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer),
284
277
  :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer),
285
278
  :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "-created_at" : x), String)
@@ -289,10 +282,10 @@ module Io
289
282
  end
290
283
 
291
284
  # Returns information about a specific subcatalog.
292
- def get_by_id(organization, id)
285
+ def get_by_key(organization, key)
293
286
  HttpClient::Preconditions.assert_class('organization', organization, String)
294
- HttpClient::Preconditions.assert_class('id', id, String)
295
- r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(id)}").get
287
+ HttpClient::Preconditions.assert_class('key', key, String)
288
+ r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(key)}").get
296
289
  ::Io::Flow::Catalog::V0::Models::Subcatalog.new(r)
297
290
  end
298
291
 
@@ -304,47 +297,47 @@ module Io
304
297
  ::Io::Flow::Catalog::V0::Models::Subcatalog.new(r)
305
298
  end
306
299
 
307
- # Update subcatalog with the specified id, creating if it does not exist.
308
- def put_by_id(organization, id, subcatalog_form)
300
+ # Update subcatalog with the specified key, creating if it does not exist.
301
+ def put_by_key(organization, key, subcatalog_form)
309
302
  HttpClient::Preconditions.assert_class('organization', organization, String)
310
- HttpClient::Preconditions.assert_class('id', id, String)
303
+ HttpClient::Preconditions.assert_class('key', key, String)
311
304
  HttpClient::Preconditions.assert_class('subcatalog_form', subcatalog_form, ::Io::Flow::Catalog::V0::Models::SubcatalogForm)
312
- r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(id)}").with_json(subcatalog_form.to_json).put
305
+ r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(key)}").with_json(subcatalog_form.to_json).put
313
306
  ::Io::Flow::Catalog::V0::Models::Subcatalog.new(r)
314
307
  end
315
308
 
316
- # Delete the subcatalog with this id
317
- def delete_by_id(organization, id)
309
+ # Delete the subcatalog with this key
310
+ def delete_by_key(organization, key)
318
311
  HttpClient::Preconditions.assert_class('organization', organization, String)
319
- HttpClient::Preconditions.assert_class('id', id, String)
320
- r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(id)}").delete
312
+ HttpClient::Preconditions.assert_class('key', key, String)
313
+ r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(key)}").delete
321
314
  nil
322
315
  end
323
316
 
324
317
  # Returns information about a specific subcatalog's settings.
325
- def get_settings_by_id(organization, id)
318
+ def get_settings_by_key(organization, key)
326
319
  HttpClient::Preconditions.assert_class('organization', organization, String)
327
- HttpClient::Preconditions.assert_class('id', id, String)
328
- r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(id)}/settings").get
320
+ HttpClient::Preconditions.assert_class('key', key, String)
321
+ r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(key)}/settings").get
329
322
  ::Io::Flow::Catalog::V0::Models::SubcatalogSettings.new(r)
330
323
  end
331
324
 
332
325
  # Update subcatalog settings for the specified subcatalog.
333
- def put_settings_by_id(organization, id, subcatalog_settings_form)
326
+ def put_settings_by_key(organization, key, subcatalog_settings_form)
334
327
  HttpClient::Preconditions.assert_class('organization', organization, String)
335
- HttpClient::Preconditions.assert_class('id', id, String)
328
+ HttpClient::Preconditions.assert_class('key', key, String)
336
329
  HttpClient::Preconditions.assert_class('subcatalog_settings_form', subcatalog_settings_form, ::Io::Flow::Catalog::V0::Models::SubcatalogSettingsForm)
337
- r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(id)}/settings").with_json(subcatalog_settings_form.to_json).put
330
+ r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(key)}/settings").with_json(subcatalog_settings_form.to_json).put
338
331
  ::Io::Flow::Catalog::V0::Models::SubcatalogSettings.new(r)
339
332
  end
340
333
 
341
334
  # Sync subcatalog
342
- def post_events_by_id_and_event(organization, id, event, hash)
335
+ def post_events_by_key_and_event(organization, key, event, hash)
343
336
  HttpClient::Preconditions.assert_class('organization', organization, String)
344
- HttpClient::Preconditions.assert_class('id', id, String)
337
+ HttpClient::Preconditions.assert_class('key', key, String)
345
338
  HttpClient::Preconditions.assert_class('event', event, String)
346
339
  HttpClient::Preconditions.assert_class('hash', hash, Hash)
347
- r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(id)}/events/#{CGI.escape(event)}").with_json(hash.to_json).post
340
+ r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(key)}/events/#{CGI.escape(event)}").with_json(hash.to_json).post
348
341
  nil
349
342
  end
350
343
 
@@ -383,18 +376,18 @@ module Io
383
376
  :query => (x = opts.delete(:query); x.nil? ? nil : HttpClient::Preconditions.assert_class('query', x, String)),
384
377
  :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer),
385
378
  :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer),
386
- :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "lower(name)" : x), String)
379
+ :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "name" : x), String)
387
380
  }.delete_if { |k, v| v.nil? }
388
381
  r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(subcatalog)}/items").with_query(query).get
389
382
  r.map { |x| ::Io::Flow::Catalog::V0::Models::Item.new(x) }
390
383
  end
391
384
 
392
385
  # Returns information about specific subcatalog items.
393
- def get_by_id(organization, subcatalog, id)
386
+ def get_by_number(organization, subcatalog, number)
394
387
  HttpClient::Preconditions.assert_class('organization', organization, String)
395
388
  HttpClient::Preconditions.assert_class('subcatalog', subcatalog, String)
396
- HttpClient::Preconditions.assert_class('id', id, String)
397
- r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(subcatalog)}/items/#{CGI.escape(id)}").get
389
+ HttpClient::Preconditions.assert_class('number', number, String)
390
+ r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(subcatalog)}/items/#{CGI.escape(number)}").get
398
391
  ::Io::Flow::Catalog::V0::Models::Item.new(r)
399
392
  end
400
393
 
@@ -407,22 +400,23 @@ module Io
407
400
  ::Io::Flow::Catalog::V0::Models::Item.new(r)
408
401
  end
409
402
 
410
- # Update subcatalog item with the specified id, creating if it does not exist.
411
- def put_by_id(organization, subcatalog, id, item_form)
403
+ # Update subcatalog item with the specified number, creating if it does not
404
+ # exist.
405
+ def put_by_number(organization, subcatalog, number, item_form)
412
406
  HttpClient::Preconditions.assert_class('organization', organization, String)
413
407
  HttpClient::Preconditions.assert_class('subcatalog', subcatalog, String)
414
- HttpClient::Preconditions.assert_class('id', id, String)
408
+ HttpClient::Preconditions.assert_class('number', number, String)
415
409
  HttpClient::Preconditions.assert_class('item_form', item_form, ::Io::Flow::Catalog::V0::Models::ItemForm)
416
- r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(subcatalog)}/items/#{CGI.escape(id)}").with_json(item_form.to_json).put
410
+ r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(subcatalog)}/items/#{CGI.escape(number)}").with_json(item_form.to_json).put
417
411
  ::Io::Flow::Catalog::V0::Models::Item.new(r)
418
412
  end
419
413
 
420
- # Delete the subcatalog item with this id
421
- def delete_by_id(organization, subcatalog, id)
414
+ # Delete the subcatalog item with this number
415
+ def delete_by_number(organization, subcatalog, number)
422
416
  HttpClient::Preconditions.assert_class('organization', organization, String)
423
417
  HttpClient::Preconditions.assert_class('subcatalog', subcatalog, String)
424
- HttpClient::Preconditions.assert_class('id', id, String)
425
- r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(subcatalog)}/items/#{CGI.escape(id)}").delete
418
+ HttpClient::Preconditions.assert_class('number', number, String)
419
+ r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(subcatalog)}/items/#{CGI.escape(number)}").delete
426
420
  nil
427
421
  end
428
422
 
@@ -1029,6 +1023,8 @@ module Io
1029
1023
 
1030
1024
  end
1031
1025
 
1026
+ # The URL to an image, with optional tags. Flow Commerce primarily uses images
1027
+ # to enhance the administrative tools (e.g. showing an item image in console)
1032
1028
  class Image
1033
1029
 
1034
1030
  attr_reader :url, :tags
@@ -1057,6 +1053,35 @@ module Io
1057
1053
 
1058
1054
  end
1059
1055
 
1056
+ # Image form defines the data needed to create an image
1057
+ class ImageForm
1058
+
1059
+ attr_reader :url, :tags
1060
+
1061
+ def initialize(incoming={})
1062
+ opts = HttpClient::Helper.symbolize_keys(incoming)
1063
+ HttpClient::Preconditions.require_keys(opts, [:url], 'ImageForm')
1064
+ @url = HttpClient::Preconditions.assert_class('url', opts.delete(:url), String)
1065
+ @tags = (x = opts.delete(:tags); x.nil? ? nil : HttpClient::Preconditions.assert_class('tags', x, Array).map { |v| HttpClient::Preconditions.assert_class('tags', v, String) })
1066
+ end
1067
+
1068
+ def to_json
1069
+ JSON.dump(to_hash)
1070
+ end
1071
+
1072
+ def copy(incoming={})
1073
+ ImageForm.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
1074
+ end
1075
+
1076
+ def to_hash
1077
+ {
1078
+ :url => url,
1079
+ :tags => tags.nil? ? nil : tags
1080
+ }
1081
+ end
1082
+
1083
+ end
1084
+
1060
1085
  # The Flow item defines a specific item that can be purchased by a consumer. For
1061
1086
  # many clients, this will map to a Sku.
1062
1087
  class Item
@@ -1126,7 +1151,7 @@ module Io
1126
1151
  @description = (x = opts.delete(:description); x.nil? ? nil : HttpClient::Preconditions.assert_class('description', x, String))
1127
1152
  @attributes = (x = opts.delete(:attributes); x.nil? ? nil : HttpClient::Preconditions.assert_class('attributes', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::Catalog::V0::Models::Attribute) ? x : ::Io::Flow::Catalog::V0::Models::Attribute.new(x)) })
1128
1153
  @dimensions = (x = opts.delete(:dimensions); x.nil? ? nil : HttpClient::Preconditions.assert_class('dimensions', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::Common::V0::Models::Dimension) ? x : ::Io::Flow::Common::V0::Models::Dimension.new(x)) })
1129
- @images = (x = opts.delete(:images); x.nil? ? nil : HttpClient::Preconditions.assert_class('images', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::Catalog::V0::Models::Image) ? x : ::Io::Flow::Catalog::V0::Models::Image.new(x)) })
1154
+ @images = (x = opts.delete(:images); x.nil? ? nil : HttpClient::Preconditions.assert_class('images', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::Catalog::V0::Models::ImageForm) ? x : ::Io::Flow::Catalog::V0::Models::ImageForm.new(x)) })
1130
1155
  end
1131
1156
 
1132
1157
  def to_json
@@ -1341,12 +1366,13 @@ module Io
1341
1366
 
1342
1367
  class SubcatalogForm
1343
1368
 
1344
- attr_reader :key, :country, :query, :settings
1369
+ attr_reader :country, :key, :query, :settings
1345
1370
 
1346
1371
  def initialize(incoming={})
1347
1372
  opts = HttpClient::Helper.symbolize_keys(incoming)
1373
+ HttpClient::Preconditions.require_keys(opts, [:country], 'SubcatalogForm')
1374
+ @country = HttpClient::Preconditions.assert_class('country', opts.delete(:country), String)
1348
1375
  @key = (x = opts.delete(:key); x.nil? ? nil : HttpClient::Preconditions.assert_class('key', x, String))
1349
- @country = (x = opts.delete(:country); x.nil? ? nil : HttpClient::Preconditions.assert_class('country', x, String))
1350
1376
  @query = (x = opts.delete(:query); x.nil? ? nil : HttpClient::Preconditions.assert_class('query', x, String))
1351
1377
  @settings = (x = opts.delete(:settings); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::Catalog::V0::Models::SubcatalogSettingsForm) ? x : ::Io::Flow::Catalog::V0::Models::SubcatalogSettingsForm.new(x)))
1352
1378
  end
@@ -1361,8 +1387,8 @@ module Io
1361
1387
 
1362
1388
  def to_hash
1363
1389
  {
1364
- :key => key,
1365
1390
  :country => country,
1391
+ :key => key,
1366
1392
  :query => query,
1367
1393
  :settings => settings.nil? ? nil : settings.to_hash
1368
1394
  }
@@ -1573,13 +1599,13 @@ module Io
1573
1599
  client
1574
1600
  end
1575
1601
 
1576
- # If HTTP is required, this method accepts an HTTP Client and configures SSL
1577
- def configure_ssl(client)
1578
- Preconditions.assert_class('client', client, Net::HTTP)
1579
- client.use_ssl = true
1580
- client.verify_mode = OpenSSL::SSL::VERIFY_PEER
1581
- client.cert_store = OpenSSL::X509::Store.new
1582
- client.cert_store.set_default_paths
1602
+ # If HTTPS is required, this method accepts an HTTP Client and configures SSL
1603
+ def configure_ssl(http)
1604
+ Preconditions.assert_class('http', http, Net::HTTP)
1605
+ http.use_ssl = true
1606
+ http.verify_mode = OpenSSL::SSL::VERIFY_PEER
1607
+ http.cert_store = OpenSSL::X509::Store.new
1608
+ http.cert_store.set_default_paths
1583
1609
  end
1584
1610
 
1585
1611
  def get(&block)
@@ -1,6 +1,6 @@
1
1
  # Generated by apidoc - http://www.apidoc.me
2
- # Service version: 0.0.19
3
- # apidoc:0.11.27 http://www.apidoc.me/flow/common/0.0.19/ruby_client
2
+ # Service version: 0.0.32
3
+ # apidoc:0.11.28 http://www.apidoc.me/flow/common/0.0.32/ruby_client
4
4
 
5
5
  require 'cgi'
6
6
  require 'net/http'
@@ -26,8 +26,8 @@ module Io
26
26
 
27
27
  BASE_URL = 'https://api.flow.io' unless defined?(Constants::BASE_URL)
28
28
  NAMESPACE = 'io.flow.common.v0' unless defined?(Constants::NAMESPACE)
29
- USER_AGENT = 'apidoc:0.11.27 http://www.apidoc.me/flow/common/0.0.19/ruby_client' unless defined?(Constants::USER_AGENT)
30
- VERSION = '0.0.19' unless defined?(Constants::VERSION)
29
+ USER_AGENT = 'apidoc:0.11.28 http://www.apidoc.me/flow/common/0.0.32/ruby_client' unless defined?(Constants::USER_AGENT)
30
+ VERSION = '0.0.32' unless defined?(Constants::VERSION)
31
31
  VERSION_MAJOR = 0 unless defined?(VERSION_MAJOR)
32
32
 
33
33
  end
@@ -1408,13 +1408,13 @@ module Io
1408
1408
  client
1409
1409
  end
1410
1410
 
1411
- # If HTTP is required, this method accepts an HTTP Client and configures SSL
1412
- def configure_ssl(client)
1413
- Preconditions.assert_class('client', client, Net::HTTP)
1414
- client.use_ssl = true
1415
- client.verify_mode = OpenSSL::SSL::VERIFY_PEER
1416
- client.cert_store = OpenSSL::X509::Store.new
1417
- client.cert_store.set_default_paths
1411
+ # If HTTPS is required, this method accepts an HTTP Client and configures SSL
1412
+ def configure_ssl(http)
1413
+ Preconditions.assert_class('http', http, Net::HTTP)
1414
+ http.use_ssl = true
1415
+ http.verify_mode = OpenSSL::SSL::VERIFY_PEER
1416
+ http.cert_store = OpenSSL::X509::Store.new
1417
+ http.cert_store.set_default_paths
1418
1418
  end
1419
1419
 
1420
1420
  def get(&block)