zuora_rest_client 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
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: []