multi-auth-project-sdk 1.0.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.
Files changed (37) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +139 -0
  4. data/lib/multi_auth_sample/api_helper.rb +10 -0
  5. data/lib/multi_auth_sample/client.rb +105 -0
  6. data/lib/multi_auth_sample/configuration.rb +170 -0
  7. data/lib/multi_auth_sample/controllers/authentication_controller.rb +151 -0
  8. data/lib/multi_auth_sample/controllers/base_controller.rb +65 -0
  9. data/lib/multi_auth_sample/controllers/o_auth_authorization_controller.rb +188 -0
  10. data/lib/multi_auth_sample/exceptions/api_exception.rb +10 -0
  11. data/lib/multi_auth_sample/exceptions/o_auth_provider_exception.rb +48 -0
  12. data/lib/multi_auth_sample/http/auth/api_header.rb +47 -0
  13. data/lib/multi_auth_sample/http/auth/api_key.rb +47 -0
  14. data/lib/multi_auth_sample/http/auth/basic_auth.rb +49 -0
  15. data/lib/multi_auth_sample/http/auth/custom_auth.rb +40 -0
  16. data/lib/multi_auth_sample/http/auth/o_auth_acg.rb +144 -0
  17. data/lib/multi_auth_sample/http/auth/o_auth_bearer_token.rb +42 -0
  18. data/lib/multi_auth_sample/http/auth/o_auth_ccg.rb +88 -0
  19. data/lib/multi_auth_sample/http/auth/o_auth_ropcg.rb +120 -0
  20. data/lib/multi_auth_sample/http/http_call_back.rb +10 -0
  21. data/lib/multi_auth_sample/http/http_method_enum.rb +10 -0
  22. data/lib/multi_auth_sample/http/http_request.rb +10 -0
  23. data/lib/multi_auth_sample/http/http_response.rb +10 -0
  24. data/lib/multi_auth_sample/models/base_model.rb +62 -0
  25. data/lib/multi_auth_sample/models/o_auth_provider_error_enum.rb +45 -0
  26. data/lib/multi_auth_sample/models/o_auth_scope_o_auth_acg_enum.rb +20 -0
  27. data/lib/multi_auth_sample/models/o_auth_token.rb +110 -0
  28. data/lib/multi_auth_sample/models/service_status.rb +129 -0
  29. data/lib/multi_auth_sample/models/suite_code_enum.rb +29 -0
  30. data/lib/multi_auth_sample/models/user.rb +100 -0
  31. data/lib/multi_auth_sample/utilities/date_time_helper.rb +11 -0
  32. data/lib/multi_auth_sample/utilities/file_wrapper.rb +16 -0
  33. data/lib/multi_auth_sample.rb +54 -0
  34. data/test/controllers/controller_test_base.rb +47 -0
  35. data/test/controllers/test_authentication_controller.rb +110 -0
  36. data/test/http_response_catcher.rb +19 -0
  37. metadata +154 -0
@@ -0,0 +1,42 @@
1
+ # multi_auth_sample
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module MultiAuthSample
7
+ # Utility class for OAuth 2 authorization and token management.
8
+ class OAuthBearerToken < CoreLibrary::HeaderAuth
9
+ # Display error message on occurrence of authentication failure.
10
+ # @returns [String] The oAuth error message.
11
+ def error_message
12
+ 'OAuthBearerToken: access_token is undefined.'
13
+ end
14
+
15
+ # Initialization constructor.
16
+ def initialize(o_auth_bearer_token_credentials)
17
+ auth_params = {}
18
+ @_access_token = o_auth_bearer_token_credentials.access_token unless
19
+ o_auth_bearer_token_credentials.nil? || o_auth_bearer_token_credentials.access_token.nil?
20
+ auth_params['Authorization'] = "Bearer #{@_access_token}" unless @_access_token.nil?
21
+
22
+ super auth_params
23
+ end
24
+ end
25
+
26
+ # Data class for OAuthBearerTokenCredentials.
27
+ class OAuthBearerTokenCredentials
28
+ attr_reader :access_token
29
+
30
+ def initialize(access_token:)
31
+ raise ArgumentError, 'access_token cannot be nil' if access_token.nil?
32
+
33
+ @access_token = access_token
34
+ end
35
+
36
+ def clone_with(access_token: nil)
37
+ access_token ||= self.access_token
38
+
39
+ OAuthBearerTokenCredentials.new(access_token: access_token)
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,88 @@
1
+ # multi_auth_sample
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module MultiAuthSample
7
+ # Utility class for OAuth 2 authorization and token management.
8
+ class OAuthCCG < CoreLibrary::HeaderAuth
9
+ # Display error message on occurrence of authentication failure.
10
+ # @returns [String] The oAuth error message.
11
+ def error_message
12
+ 'OAuthCCG: OAuthToken is undefined or expired.'
13
+ end
14
+
15
+ # Initialization constructor.
16
+ def initialize(o_auth_ccg_credentials, config)
17
+ auth_params = {}
18
+ @_o_auth_client_id = o_auth_ccg_credentials.o_auth_client_id unless
19
+ o_auth_ccg_credentials.nil? || o_auth_ccg_credentials.o_auth_client_id.nil?
20
+ @_o_auth_client_secret = o_auth_ccg_credentials.o_auth_client_secret unless
21
+ o_auth_ccg_credentials.nil? || o_auth_ccg_credentials.o_auth_client_secret.nil?
22
+ @_o_auth_token = o_auth_ccg_credentials.o_auth_token unless
23
+ o_auth_ccg_credentials.nil? || o_auth_ccg_credentials.o_auth_token.nil?
24
+ @_o_auth_api = OAuthAuthorizationController.new(config)
25
+ auth_params['Authorization'] = "Bearer #{@_o_auth_token.access_token}" unless @_o_auth_token.nil?
26
+
27
+ super auth_params
28
+ end
29
+
30
+ # Validates the oAuth token.
31
+ # @return [Boolean] true if the token is present and not expired.
32
+ def valid
33
+ !@_o_auth_token.nil? && !token_expired?(@_o_auth_token)
34
+ end
35
+
36
+ # Builds the basic auth header for endpoints in the OAuth Authorization Controller.
37
+ # @return [String] The value of the Authentication header.
38
+ def build_basic_auth_header
39
+ "Basic #{AuthHelper.get_base64_encoded_value(@_o_auth_client_id, @_o_auth_client_secret)}"
40
+ end
41
+
42
+ # Fetches the token.
43
+ # @param [Hash] additional_params Any additional form parameters.
44
+ # @return [OAuthToken] The oAuth token instance.
45
+ def fetch_token(additional_params: nil)
46
+ token = @_o_auth_api.request_token_o_auth_ccg(
47
+ build_basic_auth_header,
48
+ _field_parameters: additional_params
49
+ )
50
+ if token.respond_to?('expires_in') && !token.expires_in.nil?
51
+ token.expiry = AuthHelper.get_token_expiry(token.expires_in, Time.now.utc.to_i)
52
+ end
53
+ token
54
+ end
55
+
56
+ # Checks if OAuth token has expired.
57
+ # @param [OAuthToken] token The oAuth token instance.
58
+ # @return [Boolean] true if the token's expiry exist and also the token is expired, false otherwise.
59
+ def token_expired?(token)
60
+ token.respond_to?('expiry') && AuthHelper.token_expired?(token.expiry)
61
+ end
62
+ end
63
+
64
+ # Data class for OAuthCCGCredentials.
65
+ class OAuthCCGCredentials
66
+ attr_reader :o_auth_client_id, :o_auth_client_secret, :o_auth_token
67
+
68
+ def initialize(o_auth_client_id:, o_auth_client_secret:, o_auth_token: nil)
69
+ raise ArgumentError, 'o_auth_client_id cannot be nil' if o_auth_client_id.nil?
70
+ raise ArgumentError, 'o_auth_client_secret cannot be nil' if o_auth_client_secret.nil?
71
+
72
+ @o_auth_client_id = o_auth_client_id
73
+ @o_auth_client_secret = o_auth_client_secret
74
+ @o_auth_token = o_auth_token
75
+ end
76
+
77
+ def clone_with(o_auth_client_id: nil, o_auth_client_secret: nil,
78
+ o_auth_token: nil)
79
+ o_auth_client_id ||= self.o_auth_client_id
80
+ o_auth_client_secret ||= self.o_auth_client_secret
81
+ o_auth_token ||= self.o_auth_token
82
+
83
+ OAuthCCGCredentials.new(o_auth_client_id: o_auth_client_id,
84
+ o_auth_client_secret: o_auth_client_secret,
85
+ o_auth_token: o_auth_token)
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,120 @@
1
+ # multi_auth_sample
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module MultiAuthSample
7
+ # Utility class for OAuth 2 authorization and token management.
8
+ class OAuthROPCG < CoreLibrary::HeaderAuth
9
+ # Display error message on occurrence of authentication failure.
10
+ # @returns [String] The oAuth error message.
11
+ def error_message
12
+ 'OAuthROPCG: OAuthToken is undefined or expired.'
13
+ end
14
+
15
+ # Initialization constructor.
16
+ def initialize(o_auth_ropcg_credentials, config)
17
+ auth_params = {}
18
+ @_o_auth_client_id = o_auth_ropcg_credentials.o_auth_client_id unless
19
+ o_auth_ropcg_credentials.nil? || o_auth_ropcg_credentials.o_auth_client_id.nil?
20
+ @_o_auth_client_secret = o_auth_ropcg_credentials.o_auth_client_secret unless
21
+ o_auth_ropcg_credentials.nil? || o_auth_ropcg_credentials.o_auth_client_secret.nil?
22
+ @_o_auth_username = o_auth_ropcg_credentials.o_auth_username unless
23
+ o_auth_ropcg_credentials.nil? || o_auth_ropcg_credentials.o_auth_username.nil?
24
+ @_o_auth_password = o_auth_ropcg_credentials.o_auth_password unless
25
+ o_auth_ropcg_credentials.nil? || o_auth_ropcg_credentials.o_auth_password.nil?
26
+ @_o_auth_token = o_auth_ropcg_credentials.o_auth_token unless
27
+ o_auth_ropcg_credentials.nil? || o_auth_ropcg_credentials.o_auth_token.nil?
28
+ @_o_auth_api = OAuthAuthorizationController.new(config)
29
+ auth_params['Authorization'] = "Bearer #{@_o_auth_token.access_token}" unless @_o_auth_token.nil?
30
+
31
+ super auth_params
32
+ end
33
+
34
+ # Validates the oAuth token.
35
+ # @return [Boolean] true if the token is present and not expired.
36
+ def valid
37
+ !@_o_auth_token.nil? && !token_expired?(@_o_auth_token)
38
+ end
39
+
40
+ # Builds the basic auth header for endpoints in the OAuth Authorization Controller.
41
+ # @return [String] The value of the Authentication header.
42
+ def build_basic_auth_header
43
+ "Basic #{AuthHelper.get_base64_encoded_value(@_o_auth_client_id, @_o_auth_client_secret)}"
44
+ end
45
+
46
+ # Fetches the token.
47
+ # @param [Hash] additional_params Any additional form parameters.
48
+ # @return [OAuthToken] The oAuth token instance.
49
+ def fetch_token(additional_params: nil)
50
+ token = @_o_auth_api.request_token_o_auth_ropcg(
51
+ build_basic_auth_header,
52
+ @_o_auth_username,
53
+ @_o_auth_password,
54
+ _field_parameters: additional_params
55
+ )
56
+ if token.respond_to?('expires_in') && !token.expires_in.nil?
57
+ token.expiry = AuthHelper.get_token_expiry(token.expires_in, Time.now.utc.to_i)
58
+ end
59
+ token
60
+ end
61
+
62
+ # Checks if OAuth token has expired.
63
+ # @param [OAuthToken] token The oAuth token instance.
64
+ # @return [Boolean] true if the token's expiry exist and also the token is expired, false otherwise.
65
+ def token_expired?(token)
66
+ token.respond_to?('expiry') && AuthHelper.token_expired?(token.expiry)
67
+ end
68
+
69
+ # Refreshes OAuth token.
70
+ # @param [Hash] additional_params Any additional form parameters.
71
+ # @return [OAuthToken] The oAuth token instance.
72
+ def refresh_token(additional_params: nil)
73
+ token = @_o_auth_api.refresh_token_o_auth_ropcg(
74
+ OAuthROPCG.build_basic_auth_header,
75
+ @_o_auth_token.refresh_token,
76
+ _field_parameters: additional_params
77
+ )
78
+ if token.respond_to?('expires_in') && !token.expires_in.nil?
79
+ token.expiry = AuthHelper.get_token_expiry(token.expires_in, Time.now.utc.to_i)
80
+ end
81
+ token
82
+ end
83
+ end
84
+
85
+ # Data class for OAuthROPCGCredentials.
86
+ class OAuthROPCGCredentials
87
+ attr_reader :o_auth_client_id, :o_auth_client_secret, :o_auth_username,
88
+ :o_auth_password, :o_auth_token
89
+
90
+ def initialize(o_auth_client_id:, o_auth_client_secret:, o_auth_username:,
91
+ o_auth_password:, o_auth_token: nil)
92
+ raise ArgumentError, 'o_auth_client_id cannot be nil' if o_auth_client_id.nil?
93
+ raise ArgumentError, 'o_auth_client_secret cannot be nil' if o_auth_client_secret.nil?
94
+ raise ArgumentError, 'o_auth_username cannot be nil' if o_auth_username.nil?
95
+ raise ArgumentError, 'o_auth_password cannot be nil' if o_auth_password.nil?
96
+
97
+ @o_auth_client_id = o_auth_client_id
98
+ @o_auth_client_secret = o_auth_client_secret
99
+ @o_auth_username = o_auth_username
100
+ @o_auth_password = o_auth_password
101
+ @o_auth_token = o_auth_token
102
+ end
103
+
104
+ def clone_with(o_auth_client_id: nil, o_auth_client_secret: nil,
105
+ o_auth_username: nil, o_auth_password: nil,
106
+ o_auth_token: nil)
107
+ o_auth_client_id ||= self.o_auth_client_id
108
+ o_auth_client_secret ||= self.o_auth_client_secret
109
+ o_auth_username ||= self.o_auth_username
110
+ o_auth_password ||= self.o_auth_password
111
+ o_auth_token ||= self.o_auth_token
112
+
113
+ OAuthROPCGCredentials.new(o_auth_client_id: o_auth_client_id,
114
+ o_auth_client_secret: o_auth_client_secret,
115
+ o_auth_username: o_auth_username,
116
+ o_auth_password: o_auth_password,
117
+ o_auth_token: o_auth_token)
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,10 @@
1
+ # multi_auth_sample
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module MultiAuthSample
7
+ # HttpCallBack allows defining callables for pre and post API calls.
8
+ class HttpCallBack < CoreLibrary::HttpCallback
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ # multi_auth_sample
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module MultiAuthSample
7
+ # HTTP Methods Enumeration.
8
+ class HttpMethodEnum < CoreLibrary::HttpMethod
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ # multi_auth_sample
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module MultiAuthSample
7
+ # Represents a single Http Request.
8
+ class HttpRequest < CoreLibrary::HttpRequest
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ # multi_auth_sample
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module MultiAuthSample
7
+ # Http response received.
8
+ class HttpResponse < CoreLibrary::HttpResponse
9
+ end
10
+ end
@@ -0,0 +1,62 @@
1
+ # multi_auth_sample
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module MultiAuthSample
7
+ # Base model.
8
+ class BaseModel < CoreLibrary::BaseModel
9
+ # Returns a Hash representation of the current object.
10
+ def to_hash
11
+ # validating the model being serialized
12
+ self.class.validate(self) if self.class.respond_to?(:validate)
13
+
14
+ hash = {}
15
+ instance_variables.each do |name|
16
+ value = instance_variable_get(name)
17
+ name = name[1..]
18
+ key = self.class.names.key?(name) ? self.class.names[name] : name
19
+ optional_fields = self.class.optionals
20
+ nullable_fields = self.class.nullables
21
+ if value.nil?
22
+ next unless nullable_fields.include?(name)
23
+
24
+ if !optional_fields.include?(name) && !nullable_fields.include?(name)
25
+ raise ArgumentError,
26
+ "`#{name}` cannot be nil in `#{self.class}`. Please specify a valid value."
27
+ end
28
+ end
29
+
30
+ hash[key] = nil
31
+ unless value.nil?
32
+ if respond_to?("to_custom_#{name}")
33
+ if (value.instance_of? Array) || (value.instance_of? Hash)
34
+ params = [hash, key]
35
+ hash[key] = send("to_custom_#{name}", *params)
36
+ else
37
+ hash[key] = send("to_custom_#{name}")
38
+ end
39
+ elsif respond_to?("to_union_type_#{name}")
40
+ hash[key] = send("to_union_type_#{name}")
41
+ elsif value.instance_of? Array
42
+ hash[key] = value.map { |v| v.is_a?(BaseModel) ? v.to_hash : v }
43
+ elsif value.instance_of? Hash
44
+ hash[key] = {}
45
+ value.each do |k, v|
46
+ hash[key][k] = v.is_a?(BaseModel) ? v.to_hash : v
47
+ end
48
+ else
49
+ hash[key] = value.is_a?(BaseModel) ? value.to_hash : value
50
+ end
51
+ end
52
+ end
53
+ hash
54
+ end
55
+
56
+ # Returns a JSON representation of the curent object.
57
+ def to_json(options = {})
58
+ hash = to_hash
59
+ hash.to_json(options)
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,45 @@
1
+ # multi_auth_sample
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module MultiAuthSample
7
+ # OAuth 2 Authorization error codes
8
+ class OAuthProviderErrorEnum
9
+ O_AUTH_PROVIDER_ERROR_ENUM = [
10
+ # The request is missing a required parameter, includes an unsupported
11
+ # parameter value (other than grant type), repeats a parameter, includes
12
+ # multiple credentials, utilizes more than one mechanism for
13
+ # authenticating the client, or is otherwise malformed.
14
+ INVALID_REQUEST = 'invalid_request'.freeze,
15
+
16
+ # Client authentication failed (e.g., unknown client, no client
17
+ # authentication included, or unsupported authentication method).
18
+ INVALID_CLIENT = 'invalid_client'.freeze,
19
+
20
+ # The provided authorization grant (e.g., authorization code, resource
21
+ # owner credentials) or refresh token is invalid, expired, revoked, does
22
+ # not match the redirection URI used in the authorization request, or was
23
+ # issued to another client.
24
+ INVALID_GRANT = 'invalid_grant'.freeze,
25
+
26
+ # The authenticated client is not authorized to use this authorization
27
+ # grant type.
28
+ UNAUTHORIZED_CLIENT = 'unauthorized_client'.freeze,
29
+
30
+ # The authorization grant type is not supported by the authorization
31
+ # server.
32
+ UNSUPPORTED_GRANT_TYPE = 'unsupported_grant_type'.freeze,
33
+
34
+ # The requested scope is invalid, unknown, malformed, or exceeds the scope
35
+ # granted by the resource owner.
36
+ INVALID_SCOPE = 'invalid_scope'.freeze
37
+ ].freeze
38
+
39
+ def self.validate(value)
40
+ return false if value.nil?
41
+
42
+ O_AUTH_PROVIDER_ERROR_ENUM.include?(value)
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,20 @@
1
+ # multi_auth_sample
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module MultiAuthSample
7
+ # OAuth 2 scopes supported by the API
8
+ class OAuthScopeOAuthACGEnum
9
+ O_AUTH_SCOPE_O_AUTH_ACG_ENUM = [
10
+ # Read request for files
11
+ READ_SCOPE = 'file_requests.read'.freeze
12
+ ].freeze
13
+
14
+ def self.validate(value)
15
+ return false if value.nil?
16
+
17
+ O_AUTH_SCOPE_O_AUTH_ACG_ENUM.include?(value)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,110 @@
1
+ # multi_auth_sample
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module MultiAuthSample
7
+ # OAuth 2 Authorization endpoint response
8
+ class OAuthToken < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Access token
13
+ # @return [String]
14
+ attr_accessor :access_token
15
+
16
+ # Type of access token
17
+ # @return [String]
18
+ attr_accessor :token_type
19
+
20
+ # Time in seconds before the access token expires
21
+ # @return [Integer]
22
+ attr_accessor :expires_in
23
+
24
+ # List of scopes granted
25
+ # This is a space-delimited list of strings.
26
+ # @return [String]
27
+ attr_accessor :scope
28
+
29
+ # Time of token expiry as unix timestamp (UTC)
30
+ # @return [Integer]
31
+ attr_accessor :expiry
32
+
33
+ # Refresh token
34
+ # Used to get a new access token when it expires.
35
+ # @return [String]
36
+ attr_accessor :refresh_token
37
+
38
+ # A mapping from model property names to API property names.
39
+ def self.names
40
+ @_hash = {} if @_hash.nil?
41
+ @_hash['access_token'] = 'access_token'
42
+ @_hash['token_type'] = 'token_type'
43
+ @_hash['expires_in'] = 'expires_in'
44
+ @_hash['scope'] = 'scope'
45
+ @_hash['expiry'] = 'expiry'
46
+ @_hash['refresh_token'] = 'refresh_token'
47
+ @_hash
48
+ end
49
+
50
+ # An array for optional fields
51
+ def self.optionals
52
+ %w[
53
+ expires_in
54
+ scope
55
+ expiry
56
+ refresh_token
57
+ ]
58
+ end
59
+
60
+ # An array for nullable fields
61
+ def self.nullables
62
+ []
63
+ end
64
+
65
+ def initialize(access_token = nil,
66
+ token_type = nil,
67
+ expires_in = SKIP,
68
+ scope = SKIP,
69
+ expiry = SKIP,
70
+ refresh_token = SKIP,
71
+ additional_properties = {})
72
+ @access_token = access_token
73
+ @token_type = token_type
74
+ @expires_in = expires_in unless expires_in == SKIP
75
+ @scope = scope unless scope == SKIP
76
+ @expiry = expiry unless expiry == SKIP
77
+ @refresh_token = refresh_token unless refresh_token == SKIP
78
+
79
+ # Add additional model properties to the instance.
80
+ additional_properties.each do |_name, _value|
81
+ instance_variable_set("@#{_name}", _value)
82
+ end
83
+ end
84
+
85
+ # Creates an instance of the object from a hash.
86
+ def self.from_hash(hash)
87
+ return nil unless hash
88
+
89
+ # Extract variables from the hash.
90
+ access_token = hash.key?('access_token') ? hash['access_token'] : nil
91
+ token_type = hash.key?('token_type') ? hash['token_type'] : nil
92
+ expires_in = hash.key?('expires_in') ? hash['expires_in'] : SKIP
93
+ scope = hash.key?('scope') ? hash['scope'] : SKIP
94
+ expiry = hash.key?('expiry') ? hash['expiry'] : SKIP
95
+ refresh_token = hash.key?('refresh_token') ? hash['refresh_token'] : SKIP
96
+
97
+ # Clean out expected properties from Hash.
98
+ names.each_value { |k| hash.delete(k) }
99
+
100
+ # Create object from extracted values.
101
+ OAuthToken.new(access_token,
102
+ token_type,
103
+ expires_in,
104
+ scope,
105
+ expiry,
106
+ refresh_token,
107
+ hash)
108
+ end
109
+ end
110
+ end
@@ -0,0 +1,129 @@
1
+ # multi_auth_sample
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module MultiAuthSample
7
+ # ServiceStatus Model.
8
+ class ServiceStatus < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [String]
14
+ attr_accessor :app
15
+
16
+ # TODO: Write general description for this method
17
+ # @return [String]
18
+ attr_accessor :moto
19
+
20
+ # TODO: Write general description for this method
21
+ # @return [Integer]
22
+ attr_accessor :notes
23
+
24
+ # TODO: Write general description for this method
25
+ # @return [Integer]
26
+ attr_accessor :users
27
+
28
+ # TODO: Write general description for this method
29
+ # @return [String]
30
+ attr_accessor :time
31
+
32
+ # TODO: Write general description for this method
33
+ # @return [String]
34
+ attr_accessor :os
35
+
36
+ # TODO: Write general description for this method
37
+ # @return [String]
38
+ attr_accessor :php_version
39
+
40
+ # TODO: Write general description for this method
41
+ # @return [String]
42
+ attr_accessor :status
43
+
44
+ # A mapping from model property names to API property names.
45
+ def self.names
46
+ @_hash = {} if @_hash.nil?
47
+ @_hash['app'] = 'app'
48
+ @_hash['moto'] = 'moto'
49
+ @_hash['notes'] = 'notes'
50
+ @_hash['users'] = 'users'
51
+ @_hash['time'] = 'time'
52
+ @_hash['os'] = 'os'
53
+ @_hash['php_version'] = 'php_version'
54
+ @_hash['status'] = 'status'
55
+ @_hash
56
+ end
57
+
58
+ # An array for optional fields
59
+ def self.optionals
60
+ %w[
61
+ app
62
+ moto
63
+ notes
64
+ users
65
+ time
66
+ os
67
+ php_version
68
+ ]
69
+ end
70
+
71
+ # An array for nullable fields
72
+ def self.nullables
73
+ []
74
+ end
75
+
76
+ def initialize(status = nil,
77
+ app = SKIP,
78
+ moto = SKIP,
79
+ notes = SKIP,
80
+ users = SKIP,
81
+ time = SKIP,
82
+ os = SKIP,
83
+ php_version = SKIP,
84
+ additional_properties = {})
85
+ @app = app unless app == SKIP
86
+ @moto = moto unless moto == SKIP
87
+ @notes = notes unless notes == SKIP
88
+ @users = users unless users == SKIP
89
+ @time = time unless time == SKIP
90
+ @os = os unless os == SKIP
91
+ @php_version = php_version unless php_version == SKIP
92
+ @status = status
93
+
94
+ # Add additional model properties to the instance.
95
+ additional_properties.each do |_name, _value|
96
+ instance_variable_set("@#{_name}", _value)
97
+ end
98
+ end
99
+
100
+ # Creates an instance of the object from a hash.
101
+ def self.from_hash(hash)
102
+ return nil unless hash
103
+
104
+ # Extract variables from the hash.
105
+ status = hash.key?('status') ? hash['status'] : nil
106
+ app = hash.key?('app') ? hash['app'] : SKIP
107
+ moto = hash.key?('moto') ? hash['moto'] : SKIP
108
+ notes = hash.key?('notes') ? hash['notes'] : SKIP
109
+ users = hash.key?('users') ? hash['users'] : SKIP
110
+ time = hash.key?('time') ? hash['time'] : SKIP
111
+ os = hash.key?('os') ? hash['os'] : SKIP
112
+ php_version = hash.key?('php_version') ? hash['php_version'] : SKIP
113
+
114
+ # Clean out expected properties from Hash.
115
+ names.each_value { |k| hash.delete(k) }
116
+
117
+ # Create object from extracted values.
118
+ ServiceStatus.new(status,
119
+ app,
120
+ moto,
121
+ notes,
122
+ users,
123
+ time,
124
+ os,
125
+ php_version,
126
+ hash)
127
+ end
128
+ end
129
+ end