fuse_client 0.3.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +70 -0
  3. data/LICENSE +21 -0
  4. data/README.md +1 -258
  5. data/docs/Aggregator.md +15 -0
  6. data/docs/CreateAssetReportRequest.md +3 -1
  7. data/docs/CreateEntityRequest.md +24 -0
  8. data/docs/CreateEntityResponse.md +24 -0
  9. data/docs/CreateLinkTokenRequest.md +5 -5
  10. data/docs/CreateLinkTokenRequestMx.md +1 -1
  11. data/docs/CreateLinkTokenRequestPlaid.md +1 -1
  12. data/docs/CreateSessionRequest.md +3 -5
  13. data/docs/FinancialConnectionsAccountDetails.md +1 -3
  14. data/docs/FinancialConnectionsHolding.md +2 -0
  15. data/docs/FuseApi.md +307 -1
  16. data/docs/GetEntityResponse.md +24 -0
  17. data/docs/GetInvestmentHoldingsRequest.md +3 -1
  18. data/docs/GetInvestmentHoldingsResponse.md +1 -3
  19. data/docs/GetInvestmentTransactionsResponse.md +1 -3
  20. data/docs/GetLiabilitiesResponse.md +1 -3
  21. data/docs/GetTransactionsResponseDataInner.md +1 -3
  22. data/docs/Product.md +15 -0
  23. data/docs/RefreshAssetReportRequest.md +22 -0
  24. data/docs/UpdateEntityRequest.md +22 -0
  25. data/docs/UpdateEntityResponse.md +24 -0
  26. data/fuse_client-0.3.4.gem +0 -0
  27. data/lib/fuse_client/api/fuse_api.rb +261 -0
  28. data/lib/fuse_client/configuration.rb +2 -2
  29. data/lib/fuse_client/models/aggregator.rb +42 -0
  30. data/lib/fuse_client/models/create_asset_report_request.rb +16 -4
  31. data/lib/fuse_client/models/{create_session_request_mx.rb → create_entity_request.rb} +50 -29
  32. data/lib/fuse_client/models/create_entity_response.rb +268 -0
  33. data/lib/fuse_client/models/create_link_token_request.rb +21 -20
  34. data/lib/fuse_client/models/create_link_token_request_mx.rb +1 -1
  35. data/lib/fuse_client/models/create_link_token_request_plaid.rb +3 -2
  36. data/lib/fuse_client/models/create_session_request.rb +36 -39
  37. data/lib/fuse_client/models/financial_connections_account_details.rb +4 -14
  38. data/lib/fuse_client/models/financial_connections_holding.rb +11 -1
  39. data/lib/fuse_client/models/{create_link_token_request_plaid_config.rb → get_entity_response.rb} +57 -14
  40. data/lib/fuse_client/models/get_investment_holdings_request.rb +14 -4
  41. data/lib/fuse_client/models/get_investment_holdings_response.rb +4 -14
  42. data/lib/fuse_client/models/get_investment_transactions_response.rb +4 -14
  43. data/lib/fuse_client/models/get_liabilities_response.rb +4 -14
  44. data/lib/fuse_client/models/get_transactions_response_data_inner.rb +4 -14
  45. data/lib/fuse_client/models/product.rb +44 -0
  46. data/lib/fuse_client/models/refresh_asset_report_request.rb +275 -0
  47. data/lib/fuse_client/models/{create_session_request_plaid.rb → update_entity_request.rb} +41 -21
  48. data/lib/fuse_client/models/update_entity_response.rb +268 -0
  49. data/lib/fuse_client/version.rb +1 -1
  50. data/lib/fuse_client.rb +8 -3
  51. data/spec/api/fuse_api_spec.rb +45 -0
  52. data/spec/configuration_spec.rb +3 -3
  53. data/spec/models/aggregator_spec.rb +28 -0
  54. data/spec/models/create_asset_report_request_spec.rb +6 -0
  55. data/spec/models/{create_session_request_mx_spec.rb → create_entity_request_spec.rb} +10 -10
  56. data/spec/models/create_entity_response_spec.rb +52 -0
  57. data/spec/models/create_link_token_request_spec.rb +5 -5
  58. data/spec/models/create_session_request_spec.rb +1 -11
  59. data/spec/models/financial_connections_account_details_spec.rb +0 -6
  60. data/spec/models/financial_connections_holding_spec.rb +6 -0
  61. data/spec/models/get_entity_response_spec.rb +52 -0
  62. data/spec/models/get_investment_holdings_request_spec.rb +6 -0
  63. data/spec/models/get_investment_holdings_response_spec.rb +0 -6
  64. data/spec/models/get_investment_transactions_response_spec.rb +0 -6
  65. data/spec/models/get_liabilities_response_spec.rb +0 -6
  66. data/spec/models/get_transactions_response_data_inner_spec.rb +0 -6
  67. data/spec/models/product_spec.rb +28 -0
  68. data/spec/models/refresh_asset_report_request_spec.rb +46 -0
  69. data/spec/models/update_entity_request_spec.rb +46 -0
  70. data/spec/models/update_entity_response_spec.rb +52 -0
  71. metadata +37 -14
  72. data/docs/CreateLinkTokenRequestPlaidConfig.md +0 -18
  73. data/docs/CreateSessionRequestMx.md +0 -24
  74. data/docs/CreateSessionRequestPlaid.md +0 -18
  75. data/spec/models/create_link_token_request_plaid_config_spec.rb +0 -34
  76. data/spec/models/create_session_request_plaid_spec.rb +0 -34
@@ -14,14 +14,25 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module FuseClient
17
- # Follows the same schema as Plaid's Link Token Create Schema(https://plaid.com/docs/api/tokens/#linktokencreate). This parameter takes a stringified version of the config. 'products', 'client_id', 'secret', 'client_user_id', 'webhook', 'institution_data' and 'country_codes' (only US supported right now) will be set by Fuse and override any values you set.
18
- class CreateLinkTokenRequestPlaidConfig
19
- attr_accessor :client_name
17
+ class GetEntityResponse
18
+ # Id of the entity
19
+ attr_accessor :id
20
+
21
+ # Email of the entity
22
+ attr_accessor :email
23
+
24
+ # These will force the user to connect through all of these aggregators
25
+ attr_accessor :aggregators
26
+
27
+ attr_accessor :institution_ids
20
28
 
21
29
  # Attribute mapping from ruby-style variable name to JSON key.
22
30
  def self.attribute_map
23
31
  {
24
- :'client_name' => :'client_name'
32
+ :'id' => :'id',
33
+ :'email' => :'email',
34
+ :'aggregators' => :'aggregators',
35
+ :'institution_ids' => :'institution_ids'
25
36
  }
26
37
  end
27
38
 
@@ -33,7 +44,10 @@ module FuseClient
33
44
  # Attribute type mapping.
34
45
  def self.openapi_types
35
46
  {
36
- :'client_name' => :'String'
47
+ :'id' => :'String',
48
+ :'email' => :'String',
49
+ :'aggregators' => :'Array<Aggregator>',
50
+ :'institution_ids' => :'Array<String>'
37
51
  }
38
52
  end
39
53
 
@@ -47,19 +61,35 @@ module FuseClient
47
61
  # @param [Hash] attributes Model attributes in the form of hash
48
62
  def initialize(attributes = {})
49
63
  if (!attributes.is_a?(Hash))
50
- fail ArgumentError, "The input argument (attributes) must be a hash in `FuseClient::CreateLinkTokenRequestPlaidConfig` initialize method"
64
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FuseClient::GetEntityResponse` initialize method"
51
65
  end
52
66
 
53
67
  # check to see if the attribute exists and convert string to symbol for hash key
54
68
  attributes = attributes.each_with_object({}) { |(k, v), h|
55
69
  if (!self.class.attribute_map.key?(k.to_sym))
56
- fail ArgumentError, "`#{k}` is not a valid attribute in `FuseClient::CreateLinkTokenRequestPlaidConfig`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
70
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FuseClient::GetEntityResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
57
71
  end
58
72
  h[k.to_sym] = v
59
73
  }
60
74
 
61
- if attributes.key?(:'client_name')
62
- self.client_name = attributes[:'client_name']
75
+ if attributes.key?(:'id')
76
+ self.id = attributes[:'id']
77
+ end
78
+
79
+ if attributes.key?(:'email')
80
+ self.email = attributes[:'email']
81
+ end
82
+
83
+ if attributes.key?(:'aggregators')
84
+ if (value = attributes[:'aggregators']).is_a?(Array)
85
+ self.aggregators = value
86
+ end
87
+ end
88
+
89
+ if attributes.key?(:'institution_ids')
90
+ if (value = attributes[:'institution_ids']).is_a?(Array)
91
+ self.institution_ids = value
92
+ end
63
93
  end
64
94
  end
65
95
 
@@ -67,8 +97,8 @@ module FuseClient
67
97
  # @return Array for valid properties with the reasons
68
98
  def list_invalid_properties
69
99
  invalid_properties = Array.new
70
- if @client_name.nil?
71
- invalid_properties.push('invalid value for "client_name", client_name cannot be nil.')
100
+ if !@aggregators.nil? && @aggregators.length < 1
101
+ invalid_properties.push('invalid value for "aggregators", number of items must be greater than or equal to 1.')
72
102
  end
73
103
 
74
104
  invalid_properties
@@ -77,16 +107,29 @@ module FuseClient
77
107
  # Check to see if the all the properties in the model are valid
78
108
  # @return true if the model is valid
79
109
  def valid?
80
- return false if @client_name.nil?
110
+ return false if !@aggregators.nil? && @aggregators.length < 1
81
111
  true
82
112
  end
83
113
 
114
+ # Custom attribute writer method with validation
115
+ # @param [Object] aggregators Value to be assigned
116
+ def aggregators=(aggregators)
117
+ if !aggregators.nil? && aggregators.length < 1
118
+ fail ArgumentError, 'invalid value for "aggregators", number of items must be greater than or equal to 1.'
119
+ end
120
+
121
+ @aggregators = aggregators
122
+ end
123
+
84
124
  # Checks equality by comparing each attribute.
85
125
  # @param [Object] Object to be compared
86
126
  def ==(o)
87
127
  return true if self.equal?(o)
88
128
  self.class == o.class &&
89
- client_name == o.client_name
129
+ id == o.id &&
130
+ email == o.email &&
131
+ aggregators == o.aggregators &&
132
+ institution_ids == o.institution_ids
90
133
  end
91
134
 
92
135
  # @see the `==` method
@@ -98,7 +141,7 @@ module FuseClient
98
141
  # Calculates hash code according to all attributes.
99
142
  # @return [Integer] Hash code
100
143
  def hash
101
- [client_name].hash
144
+ [id, email, aggregators, institution_ids].hash
102
145
  end
103
146
 
104
147
  # Builds the object from hash
@@ -18,10 +18,14 @@ module FuseClient
18
18
  # Access token for authentication
19
19
  attr_accessor :access_token
20
20
 
21
+ # The ISO-4217 currency code to convert the holding to.
22
+ attr_accessor :iso_currency_code
23
+
21
24
  # Attribute mapping from ruby-style variable name to JSON key.
22
25
  def self.attribute_map
23
26
  {
24
- :'access_token' => :'access_token'
27
+ :'access_token' => :'access_token',
28
+ :'iso_currency_code' => :'iso_currency_code'
25
29
  }
26
30
  end
27
31
 
@@ -33,7 +37,8 @@ module FuseClient
33
37
  # Attribute type mapping.
34
38
  def self.openapi_types
35
39
  {
36
- :'access_token' => :'String'
40
+ :'access_token' => :'String',
41
+ :'iso_currency_code' => :'String'
37
42
  }
38
43
  end
39
44
 
@@ -61,6 +66,10 @@ module FuseClient
61
66
  if attributes.key?(:'access_token')
62
67
  self.access_token = attributes[:'access_token']
63
68
  end
69
+
70
+ if attributes.key?(:'iso_currency_code')
71
+ self.iso_currency_code = attributes[:'iso_currency_code']
72
+ end
64
73
  end
65
74
 
66
75
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -86,7 +95,8 @@ module FuseClient
86
95
  def ==(o)
87
96
  return true if self.equal?(o)
88
97
  self.class == o.class &&
89
- access_token == o.access_token
98
+ access_token == o.access_token &&
99
+ iso_currency_code == o.iso_currency_code
90
100
  end
91
101
 
92
102
  # @see the `==` method
@@ -98,7 +108,7 @@ module FuseClient
98
108
  # Calculates hash code according to all attributes.
99
109
  # @return [Integer] Hash code
100
110
  def hash
101
- [access_token].hash
111
+ [access_token, iso_currency_code].hash
102
112
  end
103
113
 
104
114
  # Builds the object from hash
@@ -21,16 +21,12 @@ module FuseClient
21
21
 
22
22
  attr_accessor :securities
23
23
 
24
- # The exact data from the aggregator (ie plaid) that we retrieved the information from.
25
- attr_accessor :remote_data
26
-
27
24
  # Attribute mapping from ruby-style variable name to JSON key.
28
25
  def self.attribute_map
29
26
  {
30
27
  :'accounts' => :'accounts',
31
28
  :'holdings' => :'holdings',
32
- :'securities' => :'securities',
33
- :'remote_data' => :'remote_data'
29
+ :'securities' => :'securities'
34
30
  }
35
31
  end
36
32
 
@@ -44,8 +40,7 @@ module FuseClient
44
40
  {
45
41
  :'accounts' => :'Array<FinancialConnectionsInvestmentAccount>',
46
42
  :'holdings' => :'Array<FinancialConnectionsHolding>',
47
- :'securities' => :'Array<FinancialConnectionsInvestmentSecurity>',
48
- :'remote_data' => :'Object'
43
+ :'securities' => :'Array<FinancialConnectionsInvestmentSecurity>'
49
44
  }
50
45
  end
51
46
 
@@ -87,10 +82,6 @@ module FuseClient
87
82
  self.securities = value
88
83
  end
89
84
  end
90
-
91
- if attributes.key?(:'remote_data')
92
- self.remote_data = attributes[:'remote_data']
93
- end
94
85
  end
95
86
 
96
87
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -113,8 +104,7 @@ module FuseClient
113
104
  self.class == o.class &&
114
105
  accounts == o.accounts &&
115
106
  holdings == o.holdings &&
116
- securities == o.securities &&
117
- remote_data == o.remote_data
107
+ securities == o.securities
118
108
  end
119
109
 
120
110
  # @see the `==` method
@@ -126,7 +116,7 @@ module FuseClient
126
116
  # Calculates hash code according to all attributes.
127
117
  # @return [Integer] Hash code
128
118
  def hash
129
- [accounts, holdings, securities, remote_data].hash
119
+ [accounts, holdings, securities].hash
130
120
  end
131
121
 
132
122
  # Builds the object from hash
@@ -21,16 +21,12 @@ module FuseClient
21
21
 
22
22
  attr_accessor :securities
23
23
 
24
- # The exact data from the aggregator (ie plaid) that we retrieved the information from.
25
- attr_accessor :remote_data
26
-
27
24
  # Attribute mapping from ruby-style variable name to JSON key.
28
25
  def self.attribute_map
29
26
  {
30
27
  :'accounts' => :'accounts',
31
28
  :'investment_transactions' => :'investment_transactions',
32
- :'securities' => :'securities',
33
- :'remote_data' => :'remote_data'
29
+ :'securities' => :'securities'
34
30
  }
35
31
  end
36
32
 
@@ -44,8 +40,7 @@ module FuseClient
44
40
  {
45
41
  :'accounts' => :'Array<FinancialConnectionsInvestmentAccount>',
46
42
  :'investment_transactions' => :'Array<FinancialConnectionsInvestmentTransaction>',
47
- :'securities' => :'Array<FinancialConnectionsInvestmentSecurity>',
48
- :'remote_data' => :'Object'
43
+ :'securities' => :'Array<FinancialConnectionsInvestmentSecurity>'
49
44
  }
50
45
  end
51
46
 
@@ -87,10 +82,6 @@ module FuseClient
87
82
  self.securities = value
88
83
  end
89
84
  end
90
-
91
- if attributes.key?(:'remote_data')
92
- self.remote_data = attributes[:'remote_data']
93
- end
94
85
  end
95
86
 
96
87
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -113,8 +104,7 @@ module FuseClient
113
104
  self.class == o.class &&
114
105
  accounts == o.accounts &&
115
106
  investment_transactions == o.investment_transactions &&
116
- securities == o.securities &&
117
- remote_data == o.remote_data
107
+ securities == o.securities
118
108
  end
119
109
 
120
110
  # @see the `==` method
@@ -126,7 +116,7 @@ module FuseClient
126
116
  # Calculates hash code according to all attributes.
127
117
  # @return [Integer] Hash code
128
118
  def hash
129
- [accounts, investment_transactions, securities, remote_data].hash
119
+ [accounts, investment_transactions, securities].hash
130
120
  end
131
121
 
132
122
  # Builds the object from hash
@@ -17,14 +17,10 @@ module FuseClient
17
17
  class GetLiabilitiesResponse
18
18
  attr_accessor :liabilities
19
19
 
20
- # The exact data from the aggregator (ie plaid) that we retrieved the information from.
21
- attr_accessor :remote_data
22
-
23
20
  # Attribute mapping from ruby-style variable name to JSON key.
24
21
  def self.attribute_map
25
22
  {
26
- :'liabilities' => :'liabilities',
27
- :'remote_data' => :'remote_data'
23
+ :'liabilities' => :'liabilities'
28
24
  }
29
25
  end
30
26
 
@@ -36,8 +32,7 @@ module FuseClient
36
32
  # Attribute type mapping.
37
33
  def self.openapi_types
38
34
  {
39
- :'liabilities' => :'Array<FinancialConnectionsAccountLiability>',
40
- :'remote_data' => :'Object'
35
+ :'liabilities' => :'Array<FinancialConnectionsAccountLiability>'
41
36
  }
42
37
  end
43
38
 
@@ -67,10 +62,6 @@ module FuseClient
67
62
  self.liabilities = value
68
63
  end
69
64
  end
70
-
71
- if attributes.key?(:'remote_data')
72
- self.remote_data = attributes[:'remote_data']
73
- end
74
65
  end
75
66
 
76
67
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -91,8 +82,7 @@ module FuseClient
91
82
  def ==(o)
92
83
  return true if self.equal?(o)
93
84
  self.class == o.class &&
94
- liabilities == o.liabilities &&
95
- remote_data == o.remote_data
85
+ liabilities == o.liabilities
96
86
  end
97
87
 
98
88
  # @see the `==` method
@@ -104,7 +94,7 @@ module FuseClient
104
94
  # Calculates hash code according to all attributes.
105
95
  # @return [Integer] Hash code
106
96
  def hash
107
- [liabilities, remote_data].hash
97
+ [liabilities].hash
108
98
  end
109
99
 
110
100
  # Builds the object from hash
@@ -44,9 +44,6 @@ module FuseClient
44
44
  # Type of the transaction, ie adjustment
45
45
  attr_accessor :type
46
46
 
47
- # The exact data from the aggregator (ie plaid) that we retrieved the information from
48
- attr_accessor :remote_data
49
-
50
47
  # Attribute mapping from ruby-style variable name to JSON key.
51
48
  def self.attribute_map
52
49
  {
@@ -59,8 +56,7 @@ module FuseClient
59
56
  :'category' => :'category',
60
57
  :'merchant' => :'merchant',
61
58
  :'status' => :'status',
62
- :'type' => :'type',
63
- :'remote_data' => :'remote_data'
59
+ :'type' => :'type'
64
60
  }
65
61
  end
66
62
 
@@ -81,8 +77,7 @@ module FuseClient
81
77
  :'category' => :'Array<String>',
82
78
  :'merchant' => :'GetTransactionsResponseDataInnerMerchant',
83
79
  :'status' => :'String',
84
- :'type' => :'String',
85
- :'remote_data' => :'Object'
80
+ :'type' => :'String'
86
81
  }
87
82
  end
88
83
 
@@ -148,10 +143,6 @@ module FuseClient
148
143
  if attributes.key?(:'type')
149
144
  self.type = attributes[:'type']
150
145
  end
151
-
152
- if attributes.key?(:'remote_data')
153
- self.remote_data = attributes[:'remote_data']
154
- end
155
146
  end
156
147
 
157
148
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -181,8 +172,7 @@ module FuseClient
181
172
  category == o.category &&
182
173
  merchant == o.merchant &&
183
174
  status == o.status &&
184
- type == o.type &&
185
- remote_data == o.remote_data
175
+ type == o.type
186
176
  end
187
177
 
188
178
  # @see the `==` method
@@ -194,7 +184,7 @@ module FuseClient
194
184
  # Calculates hash code according to all attributes.
195
185
  # @return [Integer] Hash code
196
186
  def hash
197
- [id, remote_id, remote_account_id, amount, date, description, category, merchant, status, type, remote_data].hash
187
+ [id, remote_id, remote_account_id, amount, date, description, category, merchant, status, type].hash
198
188
  end
199
189
 
200
190
  # Builds the object from hash
@@ -0,0 +1,44 @@
1
+ =begin
2
+ #Fuse
3
+
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 6.2.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module FuseClient
17
+ class Product
18
+ ACCOUNT_DETAILS = "account_details".freeze
19
+ BALANCE = "balance".freeze
20
+ OWNERSHIP = "ownership".freeze
21
+ TRANSACTIONS = "transactions".freeze
22
+ LIABILITIES = "liabilities".freeze
23
+ INVESTMENTS = "investments".freeze
24
+
25
+ def self.all_vars
26
+ @all_vars ||= [ACCOUNT_DETAILS, BALANCE, OWNERSHIP, TRANSACTIONS, LIABILITIES, INVESTMENTS].freeze
27
+ end
28
+
29
+ # Builds the enum from string
30
+ # @param [String] The enum value in the form of the string
31
+ # @return [String] The enum value
32
+ def self.build_from_hash(value)
33
+ new.build_from_hash(value)
34
+ end
35
+
36
+ # Builds the enum from string
37
+ # @param [String] The enum value in the form of the string
38
+ # @return [String] The enum value
39
+ def build_from_hash(value)
40
+ return value if Product.all_vars.include?(value)
41
+ raise "Invalid ENUM value #{value} for class #Product"
42
+ end
43
+ end
44
+ end