zuora_rest_client 1.0.1

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.
Files changed (33) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +53 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE +18 -0
  7. data/README.md +56 -0
  8. data/Rakefile +6 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/fixtures/vcr_cassettes/zuora/create_account_object_success.yml +59 -0
  12. data/fixtures/vcr_cassettes/zuora/create_account_success.yml +66 -0
  13. data/fixtures/vcr_cassettes/zuora/delete_account_object_success.yml +223 -0
  14. data/fixtures/vcr_cassettes/zuora/describe_account.yml +577 -0
  15. data/fixtures/vcr_cassettes/zuora/describe_account_related_objects.yml +577 -0
  16. data/fixtures/vcr_cassettes/zuora/describe_all_account_fields.yml +577 -0
  17. data/fixtures/vcr_cassettes/zuora/describe_all_zobjects.yml +176 -0
  18. data/fixtures/vcr_cassettes/zuora/describe_exportable_account_fields.yml +577 -0
  19. data/fixtures/vcr_cassettes/zuora/describe_non_exportable_account_fields.yml +577 -0
  20. data/fixtures/vcr_cassettes/zuora/describe_non_updateable_account_fields.yml +577 -0
  21. data/fixtures/vcr_cassettes/zuora/describe_updateable_account_fields.yml +577 -0
  22. data/fixtures/vcr_cassettes/zuora/get_account_object_success.yml +60 -0
  23. data/fixtures/vcr_cassettes/zuora/get_account_success.yml +149 -0
  24. data/fixtures/vcr_cassettes/zuora/get_account_summary_success.yml +141 -0
  25. data/fixtures/vcr_cassettes/zuora/update_account_object_success.yml +115 -0
  26. data/fixtures/vcr_cassettes/zuora/update_account_success.yml +207 -0
  27. data/lib/zuora_rest_client/client.rb +1917 -0
  28. data/lib/zuora_rest_client/connection.rb +189 -0
  29. data/lib/zuora_rest_client/result.rb +8 -0
  30. data/lib/zuora_rest_client/version.rb +3 -0
  31. data/lib/zuora_rest_client.rb +7 -0
  32. data/zuora_rest_client.gemspec +45 -0
  33. metadata +383 -0
@@ -0,0 +1,189 @@
1
+ require 'zuora_rest_client/result'
2
+ require 'faraday'
3
+ require 'faraday_middleware'
4
+ require 'faraday/detailed_logger'
5
+ require 'multi_json'
6
+ require 'ostruct'
7
+ require 'logger'
8
+ require 'nori'
9
+ require 'net/http'
10
+ require 'addressable/uri'
11
+
12
+ module ZuoraRestClient
13
+ class Connection
14
+
15
+ DEFAULT_OPTIONS = {
16
+ entity_id: nil,
17
+ entity_name: nil,
18
+ logger: Logger.new($stdout),
19
+ log_level: :error,
20
+ log: true }
21
+
22
+ def initialize(username, password, environment = :production, options = {})
23
+ @username = username
24
+ @password = password
25
+ @environment = environment
26
+ @options = {}.merge(DEFAULT_OPTIONS).merge(options)
27
+ end
28
+
29
+ def app_get(path)
30
+ response = app_connection.get do |request|
31
+ request.url path
32
+ request.headers = app_headers
33
+ end
34
+ process_response(response)
35
+ end
36
+
37
+ def app_post(path, post_data = nil, is_json = true)
38
+ response = app_connection.get do |request|
39
+ request.url path
40
+ request.headers = app_headers
41
+ request.body = MultiJson.dump(post_data) if !post_data.nil? && is_json
42
+ request.body = post_data if !post_data.nil? && !is_json
43
+ end
44
+ process_response(response)
45
+ end
46
+
47
+ def rest_get(path, zuora_version = nil)
48
+ response = rest_connection.get do |request|
49
+ request.url [ ZUORA_REST_MAJOR_VERSION, path ].join('/')
50
+ request.headers = rest_headers(zuora_version)
51
+ end
52
+ process_response(response)
53
+ end
54
+
55
+ def rest_streamed_get(path, destination_io, zuora_version = nil)
56
+
57
+ # Set IO to binary mode
58
+ destination_io.binmode
59
+
60
+ endpoint_uri = Addressable::URI.parse(zuora_endpoint.rest)
61
+ Net::HTTP.start(endpoint_uri.normalized_host, endpoint_uri.normalized_port,
62
+ use_ssl: endpoint_uri.normalized_scheme == 'https') do |http|
63
+ request = Net::HTTP::Get.new path
64
+ rest_headers(zuora_version).each_pair do |header_key, header_value|
65
+ request[header_key] = header_value
66
+ end
67
+ http.request request do |response|
68
+ response.read_body do |chunk|
69
+ destination_io.write chunk
70
+ end
71
+ end
72
+ end
73
+
74
+ # Set pointer to beginning of file
75
+ destination_io.rewind
76
+
77
+ nil
78
+ end
79
+
80
+ def rest_post(path, post_data = nil, zuora_version = nil, is_json = true)
81
+ response = rest_connection.post do |request|
82
+ request.url [ ZUORA_REST_MAJOR_VERSION, path ].join('/')
83
+ request.headers = rest_headers(zuora_version)
84
+ request.body = MultiJson.dump(post_data) if !post_data.nil? && is_json
85
+ request.body = post_data if !post_data.nil? && !is_json
86
+ end
87
+ process_response(response)
88
+ end
89
+
90
+ def rest_put(path, put_data = nil, zuora_version = nil, is_json = true)
91
+ response = rest_connection.put do |request|
92
+ request.url [ ZUORA_REST_MAJOR_VERSION, path ].join('/')
93
+ request.headers = rest_headers(zuora_version)
94
+ request.body = MultiJson.dump(put_data) if !put_data.nil? && is_json
95
+ request.body = put_data if !put_data.nil? && !is_json
96
+ end
97
+ process_response(response)
98
+ end
99
+
100
+ def rest_delete(path, zuora_version = nil)
101
+ response = rest_connection.delete do |request|
102
+ request.url [ ZUORA_REST_MAJOR_VERSION, path ].join('/')
103
+ request.headers = rest_headers(zuora_version)
104
+ end
105
+ process_response(response)
106
+ end
107
+
108
+ private
109
+
110
+ ZUORA_REST_MAJOR_VERSION = 'v1'
111
+
112
+ ZUORA_ENVIRONMENTS = {
113
+ production: {
114
+ rest: 'https://rest.zuora.com',
115
+ app: 'https://www.zuora.com' },
116
+ api_sandbox: {
117
+ rest: 'https://rest.apisandbox.zuora.com',
118
+ app: 'https://apisandbox.zuora.com' } }
119
+
120
+ def app_connection
121
+ Faraday.new(url: zuora_endpoint.app) do |faraday|
122
+ faraday.use FaradayMiddleware::FollowRedirects
123
+ faraday.use Faraday::Request::BasicAuthentication, @username, @password
124
+ faraday.request :multipart
125
+ faraday.response :detailed_logger, logger
126
+ faraday.adapter :httpclient
127
+ end
128
+ end
129
+
130
+ def app_headers
131
+ headers = { 'Content-Type' => 'application/json' }
132
+ headers['entityId'] = @options[:entity_id] if !@options[:entity_id].nil?
133
+ headers['entityName'] = @options[:entity_name] if !@options[:entity_name].nil?
134
+ headers
135
+ end
136
+
137
+ def logger
138
+ result = @options[:logger] || Logger.new($stdout)
139
+ log_level = (@options[:log_level] || :info).to_s.upcase
140
+ result.level = Logger::INFO
141
+ result.level = Logger.const_get(log_level) if Logger.const_defined?(log_level)
142
+ result
143
+ end
144
+
145
+ def process_response(response)
146
+ if response.headers['Content-Type'].to_s.start_with?('application/json')
147
+ hash = MultiJson.load(response.body)
148
+ Result.new(hash, recurse_over_arrays: true)
149
+ elsif response.headers['Content-Type'].to_s.start_with?('text/xml')
150
+ Result.new(Nori.new.parse(response.body), recurse_over_arrays: true)
151
+ else
152
+ response
153
+ end
154
+ end
155
+
156
+ def rest_connection
157
+ Faraday.new(url: zuora_endpoint.rest) do |faraday|
158
+ faraday.use FaradayMiddleware::FollowRedirects
159
+ faraday.request :multipart
160
+ faraday.response :detailed_logger, logger
161
+ faraday.adapter :httpclient
162
+ end
163
+ end
164
+
165
+ def rest_headers(zuora_version = nil)
166
+ headers = { 'Content-Type' => 'application/json',
167
+ 'apiAccessKeyId' => @username,
168
+ 'apiSecretAccessKey' => @password }
169
+ headers['entityId'] = @options[:entity_id] if !@options[:entity_id].nil?
170
+ headers['entityName'] = @options[:entity_name] if !@options[:entity_name].nil?
171
+ headers['zuora-version'] = zuora_version if !zuora_version.nil?
172
+ headers
173
+ end
174
+
175
+ def zuora_endpoint
176
+ if @environment.is_a? Symbol
177
+ rest_endpoint = "#{ZUORA_ENVIRONMENTS[@environment][:rest]}"
178
+ app_endpoint = "#{ZUORA_ENVIRONMENTS[@environment][:app]}/apps/api"
179
+ elsif @environment.is_a? Hash
180
+ rest_endpoint = "#{@environment[:rest]}"
181
+ app_endpoint = "#{@environment[:app]}/apps/api"
182
+ else
183
+ raise 'Possible values for environment are: :production, :sandbox, or a hash with base URL values for :rest and :app.'
184
+ end
185
+ OpenStruct.new({ rest: rest_endpoint, app: app_endpoint })
186
+ end
187
+
188
+ end
189
+ end
@@ -0,0 +1,8 @@
1
+ require 'recursive-open-struct'
2
+
3
+ module ZuoraRestClient
4
+
5
+ class Result < RecursiveOpenStruct
6
+ end
7
+
8
+ end
@@ -0,0 +1,3 @@
1
+ module ZuoraRestClient
2
+ VERSION = '1.0.1'
3
+ end
@@ -0,0 +1,7 @@
1
+ require 'zuora_rest_client/version'
2
+ require 'zuora_rest_client/client'
3
+ require 'zuora_rest_client/connection'
4
+ require 'zuora_rest_client/result'
5
+
6
+ module ZuoraRestClient
7
+ end
@@ -0,0 +1,45 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'zuora_rest_client/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'zuora_rest_client'
8
+ spec.version = ZuoraRestClient::VERSION
9
+ spec.authors = ['David Massad']
10
+ spec.email = ['david.massad@fronteraconsulting.net']
11
+
12
+ spec.summary = 'Zuora REST Client'
13
+ spec.description = 'An easy-to-use client for Zuora.'
14
+ spec.homepage = 'https://github.com/FronteraConsulting/zuora_rest_client'
15
+ spec.license = 'MIT'
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
+ f.match(%r{^(test|spec|features)/})
19
+ end
20
+ spec.bindir = 'exe'
21
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
+ spec.require_paths = ['lib']
23
+
24
+ spec.add_development_dependency 'bundler', '~> 1.13'
25
+ spec.add_development_dependency 'rake', '~> 10.0'
26
+ spec.add_development_dependency 'rspec', '~> 3.6'
27
+ spec.add_development_dependency 'dotenv', '~> 2.2', '>= 2.2.1'
28
+ spec.add_development_dependency 'simplecov', '~> 0.14.1'
29
+ spec.add_development_dependency 'vcr', '~> 3.0', '>= 3.0.3'
30
+ spec.add_development_dependency 'webmock', '~> 3.0', '>= 3.0.1'
31
+ spec.add_development_dependency 'http-cookie', '~> 1.0', '>= 1.0.3'
32
+
33
+ spec.add_runtime_dependency 'httpclient', '~> 2.8'
34
+ spec.add_runtime_dependency 'faraday', '~> 0'
35
+ spec.add_runtime_dependency 'faraday-detailed_logger', '~> 2'
36
+ spec.add_runtime_dependency 'faraday_middleware', '~> 0'
37
+ spec.add_runtime_dependency 'multipart-post', '~> 2'
38
+ spec.add_runtime_dependency 'addressable', '~> 2', '>= 2.5.1'
39
+ spec.add_runtime_dependency 'fire_poll', '~> 1.2'
40
+ spec.add_runtime_dependency 'multi_json', '~> 1.12', '>= 1.12.1'
41
+ spec.add_runtime_dependency 'nori', '~> 2.6'
42
+ spec.add_runtime_dependency 'nokogiri', '~> 1.8'
43
+ spec.add_runtime_dependency 'recursive-open-struct', '~> 1.0', '>= 1.0.4'
44
+
45
+ end
metadata ADDED
@@ -0,0 +1,383 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: zuora_rest_client
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
+ platform: ruby
6
+ authors:
7
+ - David Massad
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-06-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.13'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.13'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.6'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.6'
55
+ - !ruby/object:Gem::Dependency
56
+ name: dotenv
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.2'
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 2.2.1
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: '2.2'
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 2.2.1
75
+ - !ruby/object:Gem::Dependency
76
+ name: simplecov
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: 0.14.1
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: 0.14.1
89
+ - !ruby/object:Gem::Dependency
90
+ name: vcr
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '3.0'
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: 3.0.3
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: '3.0'
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: 3.0.3
109
+ - !ruby/object:Gem::Dependency
110
+ name: webmock
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '3.0'
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: 3.0.1
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '3.0'
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: 3.0.1
129
+ - !ruby/object:Gem::Dependency
130
+ name: http-cookie
131
+ requirement: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - "~>"
134
+ - !ruby/object:Gem::Version
135
+ version: '1.0'
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: 1.0.3
139
+ type: :development
140
+ prerelease: false
141
+ version_requirements: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '1.0'
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: 1.0.3
149
+ - !ruby/object:Gem::Dependency
150
+ name: httpclient
151
+ requirement: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: '2.8'
156
+ type: :runtime
157
+ prerelease: false
158
+ version_requirements: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - "~>"
161
+ - !ruby/object:Gem::Version
162
+ version: '2.8'
163
+ - !ruby/object:Gem::Dependency
164
+ name: faraday
165
+ requirement: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - "~>"
168
+ - !ruby/object:Gem::Version
169
+ version: '0'
170
+ type: :runtime
171
+ prerelease: false
172
+ version_requirements: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - "~>"
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ - !ruby/object:Gem::Dependency
178
+ name: faraday-detailed_logger
179
+ requirement: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - "~>"
182
+ - !ruby/object:Gem::Version
183
+ version: '2'
184
+ type: :runtime
185
+ prerelease: false
186
+ version_requirements: !ruby/object:Gem::Requirement
187
+ requirements:
188
+ - - "~>"
189
+ - !ruby/object:Gem::Version
190
+ version: '2'
191
+ - !ruby/object:Gem::Dependency
192
+ name: faraday_middleware
193
+ requirement: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - "~>"
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ type: :runtime
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - "~>"
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ - !ruby/object:Gem::Dependency
206
+ name: multipart-post
207
+ requirement: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - "~>"
210
+ - !ruby/object:Gem::Version
211
+ version: '2'
212
+ type: :runtime
213
+ prerelease: false
214
+ version_requirements: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - "~>"
217
+ - !ruby/object:Gem::Version
218
+ version: '2'
219
+ - !ruby/object:Gem::Dependency
220
+ name: addressable
221
+ requirement: !ruby/object:Gem::Requirement
222
+ requirements:
223
+ - - "~>"
224
+ - !ruby/object:Gem::Version
225
+ version: '2'
226
+ - - ">="
227
+ - !ruby/object:Gem::Version
228
+ version: 2.5.1
229
+ type: :runtime
230
+ prerelease: false
231
+ version_requirements: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - "~>"
234
+ - !ruby/object:Gem::Version
235
+ version: '2'
236
+ - - ">="
237
+ - !ruby/object:Gem::Version
238
+ version: 2.5.1
239
+ - !ruby/object:Gem::Dependency
240
+ name: fire_poll
241
+ requirement: !ruby/object:Gem::Requirement
242
+ requirements:
243
+ - - "~>"
244
+ - !ruby/object:Gem::Version
245
+ version: '1.2'
246
+ type: :runtime
247
+ prerelease: false
248
+ version_requirements: !ruby/object:Gem::Requirement
249
+ requirements:
250
+ - - "~>"
251
+ - !ruby/object:Gem::Version
252
+ version: '1.2'
253
+ - !ruby/object:Gem::Dependency
254
+ name: multi_json
255
+ requirement: !ruby/object:Gem::Requirement
256
+ requirements:
257
+ - - "~>"
258
+ - !ruby/object:Gem::Version
259
+ version: '1.12'
260
+ - - ">="
261
+ - !ruby/object:Gem::Version
262
+ version: 1.12.1
263
+ type: :runtime
264
+ prerelease: false
265
+ version_requirements: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - "~>"
268
+ - !ruby/object:Gem::Version
269
+ version: '1.12'
270
+ - - ">="
271
+ - !ruby/object:Gem::Version
272
+ version: 1.12.1
273
+ - !ruby/object:Gem::Dependency
274
+ name: nori
275
+ requirement: !ruby/object:Gem::Requirement
276
+ requirements:
277
+ - - "~>"
278
+ - !ruby/object:Gem::Version
279
+ version: '2.6'
280
+ type: :runtime
281
+ prerelease: false
282
+ version_requirements: !ruby/object:Gem::Requirement
283
+ requirements:
284
+ - - "~>"
285
+ - !ruby/object:Gem::Version
286
+ version: '2.6'
287
+ - !ruby/object:Gem::Dependency
288
+ name: nokogiri
289
+ requirement: !ruby/object:Gem::Requirement
290
+ requirements:
291
+ - - "~>"
292
+ - !ruby/object:Gem::Version
293
+ version: '1.8'
294
+ type: :runtime
295
+ prerelease: false
296
+ version_requirements: !ruby/object:Gem::Requirement
297
+ requirements:
298
+ - - "~>"
299
+ - !ruby/object:Gem::Version
300
+ version: '1.8'
301
+ - !ruby/object:Gem::Dependency
302
+ name: recursive-open-struct
303
+ requirement: !ruby/object:Gem::Requirement
304
+ requirements:
305
+ - - "~>"
306
+ - !ruby/object:Gem::Version
307
+ version: '1.0'
308
+ - - ">="
309
+ - !ruby/object:Gem::Version
310
+ version: 1.0.4
311
+ type: :runtime
312
+ prerelease: false
313
+ version_requirements: !ruby/object:Gem::Requirement
314
+ requirements:
315
+ - - "~>"
316
+ - !ruby/object:Gem::Version
317
+ version: '1.0'
318
+ - - ">="
319
+ - !ruby/object:Gem::Version
320
+ version: 1.0.4
321
+ description: An easy-to-use client for Zuora.
322
+ email:
323
+ - david.massad@fronteraconsulting.net
324
+ executables: []
325
+ extensions: []
326
+ extra_rdoc_files: []
327
+ files:
328
+ - ".gitignore"
329
+ - ".rspec"
330
+ - ".travis.yml"
331
+ - Gemfile
332
+ - LICENSE
333
+ - README.md
334
+ - Rakefile
335
+ - bin/console
336
+ - bin/setup
337
+ - fixtures/vcr_cassettes/zuora/create_account_object_success.yml
338
+ - fixtures/vcr_cassettes/zuora/create_account_success.yml
339
+ - fixtures/vcr_cassettes/zuora/delete_account_object_success.yml
340
+ - fixtures/vcr_cassettes/zuora/describe_account.yml
341
+ - fixtures/vcr_cassettes/zuora/describe_account_related_objects.yml
342
+ - fixtures/vcr_cassettes/zuora/describe_all_account_fields.yml
343
+ - fixtures/vcr_cassettes/zuora/describe_all_zobjects.yml
344
+ - fixtures/vcr_cassettes/zuora/describe_exportable_account_fields.yml
345
+ - fixtures/vcr_cassettes/zuora/describe_non_exportable_account_fields.yml
346
+ - fixtures/vcr_cassettes/zuora/describe_non_updateable_account_fields.yml
347
+ - fixtures/vcr_cassettes/zuora/describe_updateable_account_fields.yml
348
+ - fixtures/vcr_cassettes/zuora/get_account_object_success.yml
349
+ - fixtures/vcr_cassettes/zuora/get_account_success.yml
350
+ - fixtures/vcr_cassettes/zuora/get_account_summary_success.yml
351
+ - fixtures/vcr_cassettes/zuora/update_account_object_success.yml
352
+ - fixtures/vcr_cassettes/zuora/update_account_success.yml
353
+ - lib/zuora_rest_client.rb
354
+ - lib/zuora_rest_client/client.rb
355
+ - lib/zuora_rest_client/connection.rb
356
+ - lib/zuora_rest_client/result.rb
357
+ - lib/zuora_rest_client/version.rb
358
+ - zuora_rest_client.gemspec
359
+ homepage: https://github.com/FronteraConsulting/zuora_rest_client
360
+ licenses:
361
+ - MIT
362
+ metadata: {}
363
+ post_install_message:
364
+ rdoc_options: []
365
+ require_paths:
366
+ - lib
367
+ required_ruby_version: !ruby/object:Gem::Requirement
368
+ requirements:
369
+ - - ">="
370
+ - !ruby/object:Gem::Version
371
+ version: '0'
372
+ required_rubygems_version: !ruby/object:Gem::Requirement
373
+ requirements:
374
+ - - ">="
375
+ - !ruby/object:Gem::Version
376
+ version: '0'
377
+ requirements: []
378
+ rubyforge_project:
379
+ rubygems_version: 2.6.12
380
+ signing_key:
381
+ specification_version: 4
382
+ summary: Zuora REST Client
383
+ test_files: []