isaca 1.0.2 → 1.1.0

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: 97fea509339683c9463f68ff393cebab556f42f2
4
- data.tar.gz: a647ea10cca6adac49c6cb48a2a4adb5c8e71efd
3
+ metadata.gz: 5731ab5c9f6520fdd6f707e6494742a012ca5cb9
4
+ data.tar.gz: 007ca4c7926f16168ce0c722e34f03e27766de90
5
5
  SHA512:
6
- metadata.gz: 8fd1bbbf340e1dac3b8a17f0e5b821b131e9e113fdb65d33019953be4fcd47bd44c63444e6c5f741c465e3b4ebcf675965aed37604c4ca69fc6c7e72b8ddabaa
7
- data.tar.gz: 4c7803105f8b2760a6777bfe3eb50b88c96516ea77b9d60c2a957169b3646eed2b41516eb077885701e2c7c09a5a1006f232c9fc90aeb79ec8b89da456e1ccb9
6
+ metadata.gz: baad6f6779e27c7452349d938023ae012a7b8015c62584866c824f42250cb81e0e45cf35f952d3ae07dbfc85e852080acf8ccd90b923cc32f076258c2a9fa424
7
+ data.tar.gz: e5a0df3b4085533b375d268cee2f8d04e99dc00fe3150a933ccfc9addcfc58c107580c70bc34c52e7e15bd2411c7e458265bb830b7b4302b4a606bb0f9e8316b
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- isaca (1.0.1)
4
+ isaca (1.0.2)
5
5
  faraday (~> 0.14.0)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -24,22 +24,22 @@ Refer to the full documentation on how to use this library. Consider the followi
24
24
 
25
25
  ```ruby
26
26
  # Log the user in and get back a session token
27
- session = ISACA::Request::AuthenticateUser.get('username', 'password')
27
+ session = Isaca::Request::AuthenticateUser.get('username', 'password')
28
28
 
29
29
  # Get user information of the current user
30
- user = ISACA::Request::GetUserDetailsByToken.get(session.value)
30
+ user = Isaca::Request::GetUserDetailsByToken.get(session.value)
31
31
 
32
32
  # Destroy a user session
33
- ISACA::Request::LogOut.get(session.value)
33
+ Isaca::Request::LogOut.get(session.value)
34
34
  ```
35
35
 
36
36
  ## Configuration
37
37
 
38
- Configuration of this library is fairly easy -- you just need to use the `ISACA.configure` block. Consider the following
38
+ Configuration of this library is fairly easy -- you just need to use the `Isaca.configure` block. Consider the following
39
39
  example:
40
40
 
41
41
  ```ruby
42
- ISACA.configure do |config|
42
+ Isaca.configure do |config|
43
43
  config.url = 'https://partnerapi.isaca.org:8443/ISACAServices/Service1.svc'
44
44
  config.secret_pass = '1234567890ABCDEFGHI'
45
45
  config.user_agent = 'my_application'
@@ -49,7 +49,7 @@ end
49
49
 
50
50
  ## Rails Integration
51
51
 
52
- For Ruby on Rails applications, consider the `isaca-rails` engine which utilizes this library. `ISACA::Rails` is intended
52
+ For Ruby on Rails applications, consider the `isaca-rails` engine which utilizes this library. `Isaca::Rails` is intended
53
53
  to give you a jump start on your ISACA integrated Rails applications.
54
54
 
55
55
  ## Contributing
data/isaca.gemspec CHANGED
@@ -5,7 +5,7 @@ require "isaca/version"
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "isaca"
8
- spec.version = ISACA::VERSION
8
+ spec.version = Isaca::VERSION
9
9
  spec.authors = ["Matt Orahood"]
10
10
  spec.email = ["morahood@gmail.com"]
11
11
 
@@ -1,4 +1,4 @@
1
- module ISACA
1
+ module Isaca
2
2
  class AttributeError < ServiceError
3
3
  def initialize(attribute, klass, hash)
4
4
  super("Missing required attribute #{attribute.to_s} for #{klass}. Hash keys: #{hash.keys}")
@@ -1,4 +1,4 @@
1
- module ISACA
1
+ module Isaca
2
2
  class ConfigurationError < StandardError
3
3
  end
4
4
  end
@@ -1,4 +1,4 @@
1
- module ISACA
1
+ module Isaca
2
2
  class ConnectionError < ServiceError
3
3
  end
4
4
  end
data/lib/isaca/helpers.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'date'
2
2
  require 'json'
3
3
 
4
- module ISACA
4
+ module Isaca
5
5
  # A series of helper methods for parsing the way ISACA sends some data.
6
6
  module Helpers
7
7
  # ISACA seems to use the default format to pass datetimes. This method exists so you don't have to remember
@@ -1,6 +1,6 @@
1
- module ISACA
1
+ module Isaca
2
2
  module Model
3
- # Class that is used as an object representation of the response from {ISACA::Request::AuthenticateUser}.
3
+ # Class that is used as an object representation of the response from {Isaca::Request::AuthenticateUser}.
4
4
  class AuthenticateUser
5
5
  attr_reader :error
6
6
  # @!attribute error
@@ -1,6 +1,6 @@
1
- module ISACA
1
+ module Isaca
2
2
  module Model
3
- # Class that is used as an object representation of the response from {ISACA::Request::Countries} and {ISACA::Request::ExplicitCountries}.
3
+ # Class that is used as an object representation of the response from {Isaca::Request::Countries} and {Isaca::Request::ExplicitCountries}.
4
4
  class Countries
5
5
  attr_reader :countries
6
6
  # @!attribute countries
@@ -1,6 +1,6 @@
1
- module ISACA
1
+ module Isaca
2
2
  module Model
3
- # Class is used as an object representation of the response from {ISACA::Request::GetUserByID}.
3
+ # Class is used as an object representation of the response from {Isaca::Request::GetUserByID}.
4
4
  class GetUserByID
5
5
  attr_reader :active_member
6
6
  # @!attribute active_member
@@ -24,9 +24,9 @@ module ISACA
24
24
  # @option params [String] :MemberType
25
25
  # @option params [String] :iMISID
26
26
  def initialize(params)
27
- @active_member = ISACA::Helpers.parse_boolean(params[:ActiveMember])
28
- @expiration_date = ISACA::Helpers.strptime(params[:ExpirationDate])
29
- @member_type = ISACA::Helpers.normalize_member_type(params[:MemberType])
27
+ @active_member = Isaca::Helpers.parse_boolean(params[:ActiveMember])
28
+ @expiration_date = Isaca::Helpers.strptime(params[:ExpirationDate])
29
+ @member_type = Isaca::Helpers.normalize_member_type(params[:MemberType])
30
30
 
31
31
  if params[:iMISID].to_s.strip.empty?
32
32
  raise ServiceError.new('User with given IMIS ID not found')
@@ -1,7 +1,7 @@
1
1
  # An object representation of the GetUserDetailsByToken endpoint
2
- module ISACA
2
+ module Isaca
3
3
  module Model
4
- # Class is used as an object representation of the response from {ISACA::Request::GetUserDetailsByToken}.
4
+ # Class is used as an object representation of the response from {Isaca::Request::GetUserDetailsByToken}.
5
5
  class GetUserDetailsByToken
6
6
  attr_reader :imis_id
7
7
  # @!attribute imis_id
@@ -50,7 +50,7 @@ module ISACA
50
50
  # @option params [String] :PRIVACY
51
51
  # @option params [String] :MARKETING
52
52
  #
53
- # @raise [ISACA::ServiceError] Raises error if IMIS ID is not present.
53
+ # @raise [Isaca::ServiceError] Raises error if IMIS ID is not present.
54
54
  def initialize(params)
55
55
  if params[:ID].to_s.strip.empty?
56
56
  raise ServiceError.new('User with given IMIS ID not found')
@@ -1,4 +1,4 @@
1
- module ISACA
1
+ module Isaca
2
2
  class PartnerKeyError < ServiceError
3
3
  end
4
4
  end
@@ -1,16 +1,16 @@
1
- module ISACA
1
+ module Isaca
2
2
  module Request
3
3
  # Class used to create user sessions.
4
4
  class AuthenticateUser
5
5
  # Method used to generate a session token.
6
6
  #
7
- # @raise [ISACA::SessionError] Raised if the returned session is invalid.
7
+ # @raise [Isaca::SessionError] Raised if the returned session is invalid.
8
8
  #
9
- # @return [ISACA::Model::AuthenticateUser] An object representation of the response.
9
+ # @return [Isaca::Model::AuthenticateUser] An object representation of the response.
10
10
  def self.get(username, password)
11
11
  response = self.send_request(username, password)
12
12
 
13
- model = ISACA::Model::AuthenticateUser.new(JSON.parse(response.body, {symbolize_names: true}))
13
+ model = Isaca::Model::AuthenticateUser.new(JSON.parse(response.body, {symbolize_names: true}))
14
14
  raise SessionError.new(model.value) unless model.is_valid?
15
15
 
16
16
  model
@@ -24,7 +24,7 @@ module ISACA
24
24
  #
25
25
  # @return [Faraday::Response]
26
26
  def self.send_request(username, password)
27
- ISACA::Request.get do |request|
27
+ Isaca::Request.get do |request|
28
28
  request.path = request.path + '/AuthenticateUser'
29
29
  request.params['username'] = username
30
30
  request.params['password'] = password
@@ -1,13 +1,13 @@
1
- module ISACA
1
+ module Isaca
2
2
  module Request
3
3
  # Class used to fetch countries recognized by ISACA.
4
4
  module Countries
5
5
  # Method used to fetch all countries.
6
6
  #
7
- # @return [ISACA::Model::Countries] An object representation of the response.
7
+ # @return [Isaca::Model::Countries] An object representation of the response.
8
8
  def self.get
9
9
  response = self.send_request
10
- ISACA::Model::Countries.new(JSON.parse(response.body, symbolize_names: true))
10
+ Isaca::Model::Countries.new(JSON.parse(response.body, symbolize_names: true))
11
11
  end
12
12
 
13
13
  private
@@ -16,8 +16,8 @@ module ISACA
16
16
  #
17
17
  # @return [Faraday::Response]
18
18
  def self.send_request
19
- ISACA::Request.get do |request|
20
- uri = URI(ISACA.configuration.url)
19
+ Isaca::Request.get do |request|
20
+ uri = URI(Isaca.configuration.url)
21
21
  request.path = "#{uri.scheme}://#{uri.hostname}:#{uri.port}/isacaservices/countries.json"
22
22
  end
23
23
  end
@@ -1,14 +1,14 @@
1
- module ISACA
1
+ module Isaca
2
2
  module Request
3
3
  # Class used to fetch the explicit countries recognized by ISACA. Explicit countries are countries that require
4
4
  # consent for marketing.
5
5
  module ExplicitCountries
6
6
  # Method used to fetch all of the ExplicitCountries.
7
7
  #
8
- # @return [ISACA::Model::Countries] An object representation of the response.
8
+ # @return [Isaca::Model::Countries] An object representation of the response.
9
9
  def self.get
10
10
  response = self.send_request
11
- ISACA::Model::Countries.new(JSON.parse(response.body, symbolize_names: true))
11
+ Isaca::Model::Countries.new(JSON.parse(response.body, symbolize_names: true))
12
12
  end
13
13
 
14
14
  private
@@ -17,8 +17,8 @@ module ISACA
17
17
  #
18
18
  # @return [Faraday::Response]
19
19
  def self.send_request
20
- ISACA::Request.get do |request|
21
- uri = URI(ISACA.configuration.url)
20
+ Isaca::Request.get do |request|
21
+ uri = URI(Isaca.configuration.url)
22
22
  request.path = "#{uri.scheme}://#{uri.hostname}:#{uri.port}/isacaservices/explicitcountries.json"
23
23
  end
24
24
  end
@@ -1,4 +1,4 @@
1
- module ISACA
1
+ module Isaca
2
2
  module Request
3
3
  # Class used to fetch an ISACA user by their IMIS ID.
4
4
  module GetUserByID
@@ -6,10 +6,10 @@ module ISACA
6
6
  #
7
7
  # @param [String] id The IMIS ID of the requested user.
8
8
  #
9
- # @return [ISACA::Model::GetUserByID] An object representation of the response.
9
+ # @return [Isaca::Model::GetUserByID] An object representation of the response.
10
10
  def self.get(id)
11
11
  response = self.send_request(id)
12
- ISACA::Model::GetUserByID.new(JSON.parse(response.body, symbolize_names: true))
12
+ Isaca::Model::GetUserByID.new(JSON.parse(response.body, symbolize_names: true))
13
13
  end
14
14
 
15
15
  private
@@ -20,7 +20,7 @@ module ISACA
20
20
  #
21
21
  # @return [Faraday::Response]
22
22
  def self.send_request(id)
23
- ISACA::Request.get do |request|
23
+ Isaca::Request.get do |request|
24
24
  request.path = request.path + '/GetUserByID'
25
25
  request.params['ID'] = id
26
26
  end
@@ -1,18 +1,18 @@
1
- module ISACA
1
+ module Isaca
2
2
  module Request
3
3
  class GetUserDetailsByToken
4
4
  # Method used to get user information by token
5
5
  #
6
6
  # @param token [String] The user's session token
7
7
  #
8
- # @raise [ISACA::AttributeError] Raised if the returned IMIS ID is nil or the ID key is missing
8
+ # @raise [Isaca::AttributeError] Raised if the returned IMIS ID is nil or the ID key is missing
9
9
  #
10
- # @return [ISACA::Model::GetUserDetailsByToken] An object representation of the response
10
+ # @return [Isaca::Model::GetUserDetailsByToken] An object representation of the response
11
11
  def self.get(token)
12
12
  response = self.send_request(token)
13
13
 
14
14
  data = JSON.parse(JSON.parse(response.body, quirks_mode: true), {symbolize_names: true})
15
- ISACA::Model::GetUserDetailsByToken.new(data)
15
+ Isaca::Model::GetUserDetailsByToken.new(data)
16
16
  end
17
17
 
18
18
  private
@@ -22,7 +22,7 @@ module ISACA
22
22
  #
23
23
  # @return [Faraday::Response]
24
24
  def self.send_request(token)
25
- ISACA::Request.get do |request|
25
+ Isaca::Request.get do |request|
26
26
  request.path = request.path + '/GetUserDetailsByToken'
27
27
  request.params['token'] = token
28
28
  end
@@ -1,11 +1,11 @@
1
- module ISACA
1
+ module Isaca
2
2
  module Request
3
3
  module LogOut
4
4
  # Method used to destroy a user session
5
5
  #
6
6
  # @param token [String] Session token to be destroyed
7
7
  #
8
- # @raise [ISACA::ServiceError] An error is raised if this ever fails. See [ISACA::Request]
8
+ # @raise [Isaca::ServiceError] An error is raised if this ever fails. See [Isaca::Request]
9
9
  #
10
10
  # @return [Faraday::Response] Returns a response object
11
11
  def self.get(token)
@@ -20,7 +20,7 @@ module ISACA
20
20
  #
21
21
  # @return [Faraday::Response] Returns a response object
22
22
  def self.send_request(token)
23
- ISACA::Request.get do |request|
23
+ Isaca::Request.get do |request|
24
24
  request.path = request.path + '/LogOut'
25
25
  request.params['token'] = token
26
26
  end
@@ -1,4 +1,4 @@
1
- module ISACA
1
+ module Isaca
2
2
  module Request
3
3
  module ReportConsent
4
4
  # Method used to report marketing consent and acceptance of the privacy policy. ISACA assumes that when you
@@ -28,7 +28,7 @@ module ISACA
28
28
  #
29
29
  # @return [Faraday::Response] Returns a response object
30
30
  def self.send_request(imis_id, options={})
31
- ISACA::Request.get do |request|
31
+ Isaca::Request.get do |request|
32
32
  request.path = request.path + '/ReportConsent'
33
33
  request.params['MarketingConsent'] = options[:marketing]
34
34
  request.params['iMISID'] = imis_id
@@ -1,24 +1,24 @@
1
1
  require 'faraday'
2
2
 
3
- module ISACA
3
+ module Isaca
4
4
  module Request
5
5
  # Generic GET request used to build REST calls
6
6
  #
7
- # @raise [ISACA::ServiceError] Raised because server returned a 400 response code. Bad request.
8
- # @raise [ISACA::PartnerKey] The partner has provided an invalid API Key.
9
- # @raise [ISACA::ServiceError] Raised because the server returned a 500 response code. Server error.
7
+ # @raise [Isaca::ServiceError] Raised because server returned a 400 response code. Bad request.
8
+ # @raise [Isaca::PartnerKey] The partner has provided an invalid API Key.
9
+ # @raise [Isaca::ServiceError] Raised because the server returned a 500 response code. Server error.
10
10
  #
11
11
  # @return [Faraday::Response] Returns a Faraday Response object
12
12
  def self.get # :yields: [Faraday::Request] Yields a request object.
13
- conn = Faraday.new(url: ISACA.configuration.url)
14
- conn.ssl.verify_mode = OpenSSL::SSL::VERIFY_NONE unless ISACA.configuration.verify_ssl
13
+ conn = Faraday.new(url: Isaca.configuration.url)
14
+ conn.ssl.verify_mode = OpenSSL::SSL::VERIFY_NONE unless Isaca.configuration.verify_ssl
15
15
 
16
16
  response = conn.get do |request|
17
17
  set_default_request_options(request)
18
18
  yield(request) if block_given?
19
19
  end
20
20
 
21
- ISACA.logger.debug("\n" + response.inspect + "\n") if ISACA.configuration.debug
21
+ Isaca.logger.debug("\n" + response.inspect + "\n") if Isaca.configuration.debug
22
22
  response.success? ? response : raise_response_error(response)
23
23
  end
24
24
 
@@ -26,7 +26,7 @@ module ISACA
26
26
 
27
27
  # Testing Request#get is difficult so this method was created for easier testing and stubbing
28
28
  #
29
- # @raise [ISACA::ServiceError] Raises a type of service error depending on status code
29
+ # @raise [Isaca::ServiceError] Raises a type of service error depending on status code
30
30
  #
31
31
  # @param response [Faraday::Response] Accepts a response object
32
32
  def self.raise_response_error(response)
@@ -48,11 +48,11 @@ module ISACA
48
48
  #
49
49
  # @param request [Faraday::Request] The request to which the headers are applied
50
50
  def self.set_default_request_options(request)
51
- uri = URI(ISACA.configuration.url)
51
+ uri = URI(Isaca.configuration.url)
52
52
  request.path = uri.path
53
53
  request.headers['Content-Type'] = 'application/json'
54
- request.headers['User-Agent'] = ISACA.configuration.user_agent
55
- request.params['secPass'] = ISACA.configuration.secret_pass
54
+ request.headers['User-Agent'] = Isaca.configuration.user_agent
55
+ request.params['secPass'] = Isaca.configuration.secret_pass
56
56
  end
57
57
  end
58
58
  end
@@ -1,4 +1,4 @@
1
- module ISACA
1
+ module Isaca
2
2
  class ServiceError < StandardError
3
3
  end
4
4
  end
@@ -1,4 +1,4 @@
1
- module ISACA
1
+ module Isaca
2
2
  class SessionError < ServiceError
3
3
  end
4
4
  end
data/lib/isaca/version.rb CHANGED
@@ -1,3 +1,3 @@
1
- module ISACA
2
- VERSION = "1.0.2"
1
+ module Isaca
2
+ VERSION = "1.1.0"
3
3
  end
data/lib/isaca.rb CHANGED
@@ -31,11 +31,11 @@ require 'openssl'
31
31
  require 'logger'
32
32
 
33
33
  # Library intended to help ease the implementation of ISACA web services.
34
- module ISACA
34
+ module Isaca
35
35
  class << self
36
36
  attr_accessor :configuration
37
37
  # @!attribute configuration
38
- # @return [ISACA::Configuration] Object used to configure the library.
38
+ # @return [Isaca::Configuration] Object used to configure the library.
39
39
 
40
40
  attr_accessor :logger
41
41
  # @!attribute logger
@@ -43,14 +43,14 @@ module ISACA
43
43
 
44
44
  # Method used to fetch the configuration object.
45
45
  #
46
- # @return [ISACA::Configuration]
46
+ # @return [Isaca::Configuration]
47
47
  def configuration
48
48
  @configuration ||= Configuration.new
49
49
  end
50
50
 
51
51
  # Method used to reset the ISACA configuration. Primarily used for testing.
52
52
  #
53
- # @return [ISACA::Configuration]
53
+ # @return [Isaca::Configuration]
54
54
  def reset
55
55
  @configuration = Configuration.new
56
56
  end
@@ -69,10 +69,10 @@ module ISACA
69
69
 
70
70
  # Configuration block used to configure the library.
71
71
  #
72
- # @yield [ISACA::Configuration]
72
+ # @yield [Isaca::Configuration]
73
73
  #
74
74
  # @example An example configuration
75
- # ISACA.configure do |config|
75
+ # Isaca.configure do |config|
76
76
  # config.url = 'https://partnerapi.isaca.org:8443/ISACAServices/Service1.svc'
77
77
  # config.secret_pass = '1234567890ABCDEFGHI'
78
78
  # config.user_agent = 'my_application'
@@ -117,7 +117,7 @@ module ISACA
117
117
 
118
118
  # Returns the secret_pass attribute value
119
119
  #
120
- # @raise [ISACA::ConfigurationError] Raises if secret pass was not configured.
120
+ # @raise [Isaca::ConfigurationError] Raises if secret pass was not configured.
121
121
  #
122
122
  # @return [String]
123
123
  def secret_pass
@@ -125,7 +125,7 @@ module ISACA
125
125
  @secret_pass
126
126
  else
127
127
  msg = 'Missing SecretPass configuration. The ISACA Partners API requires an assigned SecretPass.'
128
- msg << ' Example: ISACA.configure {|config| config.secret_pass = "MyPass"}'
128
+ msg << ' Example: Isaca.configure {|config| config.secret_pass = "MyPass"}'
129
129
 
130
130
  raise ConfigurationError.new(msg)
131
131
  end
@@ -133,7 +133,7 @@ module ISACA
133
133
 
134
134
  # Returns the url attribute value
135
135
  #
136
- # @raise [ISACA::ConfigurationError] Raises if url was not configured.
136
+ # @raise [Isaca::ConfigurationError] Raises if url was not configured.
137
137
  #
138
138
  # @return [String]
139
139
  def url
@@ -141,7 +141,7 @@ module ISACA
141
141
  @url
142
142
  else
143
143
  msg = 'Missing URL configuration. The ISACA Partners API requires an endpoint URL.'
144
- msg << ' Example: ISACA.configure {|config| config.url = "https://partnerapi.isaca.org:8443/ISACAServices/Service1.svc"}'
144
+ msg << ' Example: Isaca.configure {|config| config.url = "https://partnerapi.isaca.org:8443/ISACAServices/Service1.svc"}'
145
145
 
146
146
  raise ConfigurationError.new(msg)
147
147
  end
@@ -149,7 +149,7 @@ module ISACA
149
149
 
150
150
  # Returns the user_agent attribute value
151
151
  #
152
- # @raise [ISACA::ConfigurationError] Raises if user agent was not configured.
152
+ # @raise [Isaca::ConfigurationError] Raises if user agent was not configured.
153
153
  #
154
154
  # @return [String]
155
155
  def user_agent
@@ -157,7 +157,7 @@ module ISACA
157
157
  @user_agent
158
158
  else
159
159
  msg = 'Missing User-Agent configuration. The ISACA Partners API requires a predefined User-Agent.'
160
- msg << ' Example: ISACA.configure {|config| config.user_agent = "MyApplication"}'
160
+ msg << ' Example: Isaca.configure {|config| config.user_agent = "MyApplication"}'
161
161
 
162
162
  raise ConfigurationError.new(msg)
163
163
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isaca
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Orahood
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-07-19 00:00:00.000000000 Z
11
+ date: 2018-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday