snaptrade 2.0.31 → 2.0.32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +31 -29
  3. data/README.md +4 -2
  4. data/lib/snaptrade/api/account_information_api.rb +6 -2
  5. data/lib/snaptrade/models/account_holdings_account.rb +1 -1
  6. data/lib/snaptrade/models/account_order_record.rb +4 -2
  7. data/lib/snaptrade/models/exchange.rb +9 -1
  8. data/lib/snaptrade/models/figi_instrument.rb +3 -1
  9. data/lib/snaptrade/models/option_brokerage_symbol.rb +3 -1
  10. data/lib/snaptrade/models/options_position.rb +1 -1
  11. data/lib/snaptrade/models/options_position_currency.rb +1 -0
  12. data/lib/snaptrade/models/options_symbol.rb +12 -24
  13. data/lib/snaptrade/models/position_symbol.rb +6 -1
  14. data/lib/snaptrade/models/security_type.rb +5 -1
  15. data/lib/snaptrade/models/symbol_figi_instrument.rb +2 -0
  16. data/lib/snaptrade/models/underlying_symbol.rb +20 -5
  17. data/lib/snaptrade/models/{model_portfolio.rb → underlying_symbol_exchange.rb} +73 -12
  18. data/lib/snaptrade/models/{brokerage_symbol.rb → underlying_symbol_type.rb} +28 -38
  19. data/lib/snaptrade/models/universal_symbol.rb +9 -3
  20. data/lib/snaptrade/models/{model_asset_class.rb → universal_symbol_currency.rb} +24 -4
  21. data/lib/snaptrade/models/{portfolio_group.rb → universal_symbol_exchange.rb} +78 -7
  22. data/lib/snaptrade/version.rb +1 -1
  23. data/lib/snaptrade.rb +4 -36
  24. data/spec/api/account_information_api_spec.rb +1 -1
  25. data/spec/models/options_symbol_spec.rb +0 -12
  26. data/spec/models/{brokerage_symbol_option_symbol_spec.rb → underlying_symbol_exchange_spec.rb} +14 -14
  27. data/spec/models/underlying_symbol_spec.rb +6 -0
  28. data/spec/models/{trade_impact_spec.rb → underlying_symbol_type_spec.rb} +10 -16
  29. data/spec/models/{model_portfolio_spec.rb → universal_symbol_currency_spec.rb} +8 -8
  30. data/spec/models/{trade_spec.rb → universal_symbol_exchange_spec.rb} +13 -13
  31. metadata +113 -209
  32. data/lib/snaptrade/models/brokerage_authorization_type.rb +0 -216
  33. data/lib/snaptrade/models/brokerage_authorization_type_type.rb +0 -37
  34. data/lib/snaptrade/models/brokerage_symbol_option_symbol.rb +0 -325
  35. data/lib/snaptrade/models/brokerage_symbol_symbol.rb +0 -339
  36. data/lib/snaptrade/models/calculated_trade.rb +0 -228
  37. data/lib/snaptrade/models/excluded_asset.rb +0 -217
  38. data/lib/snaptrade/models/jwt.rb +0 -217
  39. data/lib/snaptrade/models/model_asset_class_details.rb +0 -227
  40. data/lib/snaptrade/models/model_asset_class_target.rb +0 -216
  41. data/lib/snaptrade/models/model_portfolio_asset_class.rb +0 -249
  42. data/lib/snaptrade/models/model_portfolio_details.rb +0 -238
  43. data/lib/snaptrade/models/model_portfolio_security.rb +0 -249
  44. data/lib/snaptrade/models/model_type.rb +0 -38
  45. data/lib/snaptrade/models/portfolio_group_info.rb +0 -325
  46. data/lib/snaptrade/models/portfolio_group_position.rb +0 -237
  47. data/lib/snaptrade/models/portfolio_group_settings.rb +0 -276
  48. data/lib/snaptrade/models/redirect_tokenand_pin.rb +0 -226
  49. data/lib/snaptrade/models/snap_trade_api_disclaimer_accept_status.rb +0 -226
  50. data/lib/snaptrade/models/state.rb +0 -40
  51. data/lib/snaptrade/models/strategy_impact.rb +0 -309
  52. data/lib/snaptrade/models/strategy_impact_legs_inner.rb +0 -270
  53. data/lib/snaptrade/models/strategy_order_place.rb +0 -228
  54. data/lib/snaptrade/models/strategy_order_place_orders_inner.rb +0 -596
  55. data/lib/snaptrade/models/strategy_order_place_orders_inner_legs_inner.rb +0 -270
  56. data/lib/snaptrade/models/target_asset.rb +0 -289
  57. data/lib/snaptrade/models/trade.rb +0 -280
  58. data/lib/snaptrade/models/trade_action.rb +0 -37
  59. data/lib/snaptrade/models/trade_execution_status.rb +0 -297
  60. data/lib/snaptrade/models/trade_execution_status_action.rb +0 -37
  61. data/lib/snaptrade/models/trade_impact.rb +0 -256
  62. data/lib/snaptrade/models/user_error_log.rb +0 -262
  63. data/lib/snaptrade/models/user_settings.rb +0 -298
  64. data/spec/models/brokerage_authorization_type_spec.rb +0 -29
  65. data/spec/models/brokerage_authorization_type_type_spec.rb +0 -23
  66. data/spec/models/brokerage_symbol_spec.rb +0 -59
  67. data/spec/models/brokerage_symbol_symbol_spec.rb +0 -83
  68. data/spec/models/calculated_trade_spec.rb +0 -35
  69. data/spec/models/excluded_asset_spec.rb +0 -29
  70. data/spec/models/jwt_spec.rb +0 -29
  71. data/spec/models/model_asset_class_details_spec.rb +0 -35
  72. data/spec/models/model_asset_class_spec.rb +0 -35
  73. data/spec/models/model_asset_class_target_spec.rb +0 -29
  74. data/spec/models/model_portfolio_asset_class_spec.rb +0 -35
  75. data/spec/models/model_portfolio_details_spec.rb +0 -41
  76. data/spec/models/model_portfolio_security_spec.rb +0 -35
  77. data/spec/models/model_type_spec.rb +0 -23
  78. data/spec/models/portfolio_group_info_spec.rb +0 -89
  79. data/spec/models/portfolio_group_position_spec.rb +0 -41
  80. data/spec/models/portfolio_group_settings_spec.rb +0 -53
  81. data/spec/models/portfolio_group_spec.rb +0 -35
  82. data/spec/models/redirect_tokenand_pin_spec.rb +0 -35
  83. data/spec/models/snap_trade_api_disclaimer_accept_status_spec.rb +0 -35
  84. data/spec/models/state_spec.rb +0 -23
  85. data/spec/models/strategy_impact_legs_inner_spec.rb +0 -65
  86. data/spec/models/strategy_impact_spec.rb +0 -89
  87. data/spec/models/strategy_order_place_orders_inner_legs_inner_spec.rb +0 -65
  88. data/spec/models/strategy_order_place_orders_inner_spec.rb +0 -281
  89. data/spec/models/strategy_order_place_spec.rb +0 -35
  90. data/spec/models/target_asset_spec.rb +0 -59
  91. data/spec/models/trade_action_spec.rb +0 -23
  92. data/spec/models/trade_execution_status_action_spec.rb +0 -23
  93. data/spec/models/trade_execution_status_spec.rb +0 -77
  94. data/spec/models/user_error_log_spec.rb +0 -59
  95. data/spec/models/user_settings_spec.rb +0 -83
@@ -11,19 +11,38 @@ require 'date'
11
11
  require 'time'
12
12
 
13
13
  module SnapTrade
14
- class ModelPortfolio
14
+ # The exchange on which the security is listed and traded.
15
+ class UnderlyingSymbolExchange
15
16
  attr_accessor :id
16
17
 
18
+ attr_accessor :code
19
+
20
+ attr_accessor :mic_code
21
+
17
22
  attr_accessor :name
18
23
 
19
- attr_accessor :model_type
24
+ attr_accessor :timezone
25
+
26
+ attr_accessor :start_time
27
+
28
+ attr_accessor :close_time
29
+
30
+ attr_accessor :suffix
31
+
32
+ attr_accessor :allows_cryptocurrency_symbols
20
33
 
21
34
  # Attribute mapping from ruby-style variable name to JSON key.
22
35
  def self.attribute_map
23
36
  {
24
37
  :'id' => :'id',
38
+ :'code' => :'code',
39
+ :'mic_code' => :'mic_code',
25
40
  :'name' => :'name',
26
- :'model_type' => :'model_type'
41
+ :'timezone' => :'timezone',
42
+ :'start_time' => :'start_time',
43
+ :'close_time' => :'close_time',
44
+ :'suffix' => :'suffix',
45
+ :'allows_cryptocurrency_symbols' => :'allows_cryptocurrency_symbols'
27
46
  }
28
47
  end
29
48
 
@@ -36,28 +55,42 @@ module SnapTrade
36
55
  def self.openapi_types
37
56
  {
38
57
  :'id' => :'String',
58
+ :'code' => :'String',
59
+ :'mic_code' => :'String',
39
60
  :'name' => :'String',
40
- :'model_type' => :'ModelType'
61
+ :'timezone' => :'String',
62
+ :'start_time' => :'String',
63
+ :'close_time' => :'String',
64
+ :'suffix' => :'String',
65
+ :'allows_cryptocurrency_symbols' => :'Boolean'
41
66
  }
42
67
  end
43
68
 
44
69
  # List of attributes with nullable: true
45
70
  def self.openapi_nullable
46
71
  Set.new([
72
+ :'suffix',
47
73
  ])
48
74
  end
49
75
 
76
+ # List of class defined in allOf (OpenAPI v3)
77
+ def self.openapi_all_of
78
+ [
79
+ :'USExchange'
80
+ ]
81
+ end
82
+
50
83
  # Initializes the object
51
84
  # @param [Hash] attributes Model attributes in the form of hash
52
85
  def initialize(attributes = {})
53
86
  if (!attributes.is_a?(Hash))
54
- fail ArgumentError, "The input argument (attributes) must be a hash in `SnapTrade::ModelPortfolio` initialize method"
87
+ fail ArgumentError, "The input argument (attributes) must be a hash in `SnapTrade::UnderlyingSymbolExchange` initialize method"
55
88
  end
56
89
 
57
90
  # check to see if the attribute exists and convert string to symbol for hash key
58
91
  attributes = attributes.each_with_object({}) { |(k, v), h|
59
92
  if (!self.class.attribute_map.key?(k.to_sym))
60
- fail ArgumentError, "`#{k}` is not a valid attribute in `SnapTrade::ModelPortfolio`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
93
+ fail ArgumentError, "`#{k}` is not a valid attribute in `SnapTrade::UnderlyingSymbolExchange`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
61
94
  end
62
95
  h[k.to_sym] = v
63
96
  }
@@ -66,14 +99,36 @@ module SnapTrade
66
99
  self.id = attributes[:'id']
67
100
  end
68
101
 
102
+ if attributes.key?(:'code')
103
+ self.code = attributes[:'code']
104
+ end
105
+
106
+ if attributes.key?(:'mic_code')
107
+ self.mic_code = attributes[:'mic_code']
108
+ end
109
+
69
110
  if attributes.key?(:'name')
70
111
  self.name = attributes[:'name']
71
112
  end
72
113
 
73
- if attributes.key?(:'model_type')
74
- self.model_type = attributes[:'model_type']
75
- else
76
- self.model_type = ModelType::NMINUS_1
114
+ if attributes.key?(:'timezone')
115
+ self.timezone = attributes[:'timezone']
116
+ end
117
+
118
+ if attributes.key?(:'start_time')
119
+ self.start_time = attributes[:'start_time']
120
+ end
121
+
122
+ if attributes.key?(:'close_time')
123
+ self.close_time = attributes[:'close_time']
124
+ end
125
+
126
+ if attributes.key?(:'suffix')
127
+ self.suffix = attributes[:'suffix']
128
+ end
129
+
130
+ if attributes.key?(:'allows_cryptocurrency_symbols')
131
+ self.allows_cryptocurrency_symbols = attributes[:'allows_cryptocurrency_symbols']
77
132
  end
78
133
  end
79
134
 
@@ -96,8 +151,14 @@ module SnapTrade
96
151
  return true if self.equal?(o)
97
152
  self.class == o.class &&
98
153
  id == o.id &&
154
+ code == o.code &&
155
+ mic_code == o.mic_code &&
99
156
  name == o.name &&
100
- model_type == o.model_type
157
+ timezone == o.timezone &&
158
+ start_time == o.start_time &&
159
+ close_time == o.close_time &&
160
+ suffix == o.suffix &&
161
+ allows_cryptocurrency_symbols == o.allows_cryptocurrency_symbols
101
162
  end
102
163
 
103
164
  # @see the `==` method
@@ -109,7 +170,7 @@ module SnapTrade
109
170
  # Calculates hash code according to all attributes.
110
171
  # @return [Integer] Hash code
111
172
  def hash
112
- [id, name, model_type].hash
173
+ [id, code, mic_code, name, timezone, start_time, close_time, suffix, allows_cryptocurrency_symbols].hash
113
174
  end
114
175
 
115
176
  # Builds the object from hash
@@ -11,29 +11,27 @@ require 'date'
11
11
  require 'time'
12
12
 
13
13
  module SnapTrade
14
- # Brokerage symbol
15
- class BrokerageSymbol
14
+ # The type of security. For example, \"Common Stock\" or \"ETF\".
15
+ class UnderlyingSymbolType
16
+ # Unique identifier for the security type within SnapTrade. This is the ID used to reference the security type in SnapTrade API calls.
16
17
  attr_accessor :id
17
18
 
18
- attr_accessor :symbol
19
-
20
- attr_accessor :brokerage_authorization
19
+ # A short code representing the security type. For example, \"cs\" for Common Stock. Here are some common values: ad - ADR bnd - Bond cs - Common Stock cef - Closed End Fund et - ETF oef - Open Ended Fund ps - Preferred Stock rt - Right struct - Structured Product ut - Unit wi - When Issued wt - Warrant
20
+ attr_accessor :code
21
21
 
22
+ # A human-readable description of the security type. For example, \"Common Stock\" or \"ETF\".
22
23
  attr_accessor :description
23
24
 
24
- attr_accessor :allows_fractional_units
25
-
26
- attr_accessor :option_symbol
25
+ # This field is deprecated and should not be used. Please reach out to SnapTrade support if you have a valid usecase for this.
26
+ attr_accessor :is_supported
27
27
 
28
28
  # Attribute mapping from ruby-style variable name to JSON key.
29
29
  def self.attribute_map
30
30
  {
31
31
  :'id' => :'id',
32
- :'symbol' => :'symbol',
33
- :'brokerage_authorization' => :'brokerage_authorization',
32
+ :'code' => :'code',
34
33
  :'description' => :'description',
35
- :'allows_fractional_units' => :'allows_fractional_units',
36
- :'option_symbol' => :'option_symbol'
34
+ :'is_supported' => :'is_supported'
37
35
  }
38
36
  end
39
37
 
@@ -46,34 +44,36 @@ module SnapTrade
46
44
  def self.openapi_types
47
45
  {
48
46
  :'id' => :'String',
49
- :'symbol' => :'BrokerageSymbolSymbol',
50
- :'brokerage_authorization' => :'BrokerageAuthorization',
47
+ :'code' => :'String',
51
48
  :'description' => :'String',
52
- :'allows_fractional_units' => :'Boolean',
53
- :'option_symbol' => :'BrokerageSymbolOptionSymbol'
49
+ :'is_supported' => :'Boolean'
54
50
  }
55
51
  end
56
52
 
57
53
  # List of attributes with nullable: true
58
54
  def self.openapi_nullable
59
55
  Set.new([
60
- :'symbol',
61
- :'allows_fractional_units',
62
- :'option_symbol'
63
56
  ])
64
57
  end
65
58
 
59
+ # List of class defined in allOf (OpenAPI v3)
60
+ def self.openapi_all_of
61
+ [
62
+ :'SecurityType'
63
+ ]
64
+ end
65
+
66
66
  # Initializes the object
67
67
  # @param [Hash] attributes Model attributes in the form of hash
68
68
  def initialize(attributes = {})
69
69
  if (!attributes.is_a?(Hash))
70
- fail ArgumentError, "The input argument (attributes) must be a hash in `SnapTrade::BrokerageSymbol` initialize method"
70
+ fail ArgumentError, "The input argument (attributes) must be a hash in `SnapTrade::UnderlyingSymbolType` initialize method"
71
71
  end
72
72
 
73
73
  # check to see if the attribute exists and convert string to symbol for hash key
74
74
  attributes = attributes.each_with_object({}) { |(k, v), h|
75
75
  if (!self.class.attribute_map.key?(k.to_sym))
76
- fail ArgumentError, "`#{k}` is not a valid attribute in `SnapTrade::BrokerageSymbol`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
76
+ fail ArgumentError, "`#{k}` is not a valid attribute in `SnapTrade::UnderlyingSymbolType`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
77
77
  end
78
78
  h[k.to_sym] = v
79
79
  }
@@ -82,24 +82,16 @@ module SnapTrade
82
82
  self.id = attributes[:'id']
83
83
  end
84
84
 
85
- if attributes.key?(:'symbol')
86
- self.symbol = attributes[:'symbol']
87
- end
88
-
89
- if attributes.key?(:'brokerage_authorization')
90
- self.brokerage_authorization = attributes[:'brokerage_authorization']
85
+ if attributes.key?(:'code')
86
+ self.code = attributes[:'code']
91
87
  end
92
88
 
93
89
  if attributes.key?(:'description')
94
90
  self.description = attributes[:'description']
95
91
  end
96
92
 
97
- if attributes.key?(:'allows_fractional_units')
98
- self.allows_fractional_units = attributes[:'allows_fractional_units']
99
- end
100
-
101
- if attributes.key?(:'option_symbol')
102
- self.option_symbol = attributes[:'option_symbol']
93
+ if attributes.key?(:'is_supported')
94
+ self.is_supported = attributes[:'is_supported']
103
95
  end
104
96
  end
105
97
 
@@ -122,11 +114,9 @@ module SnapTrade
122
114
  return true if self.equal?(o)
123
115
  self.class == o.class &&
124
116
  id == o.id &&
125
- symbol == o.symbol &&
126
- brokerage_authorization == o.brokerage_authorization &&
117
+ code == o.code &&
127
118
  description == o.description &&
128
- allows_fractional_units == o.allows_fractional_units &&
129
- option_symbol == o.option_symbol
119
+ is_supported == o.is_supported
130
120
  end
131
121
 
132
122
  # @see the `==` method
@@ -138,7 +128,7 @@ module SnapTrade
138
128
  # Calculates hash code according to all attributes.
139
129
  # @return [Integer] Hash code
140
130
  def hash
141
- [id, symbol, brokerage_authorization, description, allows_fractional_units, option_symbol].hash
131
+ [id, code, description, is_supported].hash
142
132
  end
143
133
 
144
134
  # Builds the object from hash
@@ -11,14 +11,18 @@ require 'date'
11
11
  require 'time'
12
12
 
13
13
  module SnapTrade
14
- # Universal symbol
14
+ # Uniquely describes a single security + exchange combination across all brokerages.
15
15
  class UniversalSymbol
16
+ # Unique identifier for the symbol within SnapTrade. This is the ID used to reference the symbol in SnapTrade API calls.
16
17
  attr_accessor :id
17
18
 
19
+ # The security's trading ticker symbol. For example \"AAPL\" for Apple Inc. We largely follow the [Yahoo Finance ticker format](https://help.yahoo.com/kb/SLN2310.html)(click on \"Yahoo Finance Market Coverage and Data Delays\"). For example, for securities traded on the Toronto Stock Exchange, the symbol has a '.TO' suffix. For securities traded on NASDAQ or NYSE, the symbol does not have a suffix.
18
20
  attr_accessor :symbol
19
21
 
22
+ # The raw symbol is `symbol` with the exchange suffix removed. For example, if `symbol` is \"VAB.TO\", then `raw_symbol` is \"VAB\".
20
23
  attr_accessor :raw_symbol
21
24
 
25
+ # A human-readable description of the security. This is usually the company name or ETF name.
22
26
  attr_accessor :description
23
27
 
24
28
  attr_accessor :currency
@@ -27,8 +31,10 @@ module SnapTrade
27
31
 
28
32
  attr_accessor :type
29
33
 
34
+ # This field is deprecated and should not be used. Please reach out to SnapTrade support if you have a valid usecase for this.
30
35
  attr_accessor :currencies
31
36
 
37
+ # This identifier is unique per security per trading venue. See section 1.4.1 of the [FIGI Standard](https://www.openfigi.com/assets/local/figi-allocation-rules.pdf) for more information. This value should be the same as the `figi_code` in the `figi_instrument` child property.
32
38
  attr_accessor :figi_code
33
39
 
34
40
  attr_accessor :figi_instrument
@@ -61,8 +67,8 @@ module SnapTrade
61
67
  :'symbol' => :'String',
62
68
  :'raw_symbol' => :'String',
63
69
  :'description' => :'String',
64
- :'currency' => :'Currency',
65
- :'exchange' => :'Exchange',
70
+ :'currency' => :'UniversalSymbolCurrency',
71
+ :'exchange' => :'UniversalSymbolExchange',
66
72
  :'type' => :'SecurityType',
67
73
  :'currencies' => :'Array<Currency>',
68
74
  :'figi_code' => :'String',
@@ -11,15 +11,22 @@ require 'date'
11
11
  require 'time'
12
12
 
13
13
  module SnapTrade
14
- class ModelAssetClass
14
+ # The currency in which the security is traded.
15
+ class UniversalSymbolCurrency
16
+ # Unique identifier for the currency. This is the UUID used to reference the currency in SnapTrade.
15
17
  attr_accessor :id
16
18
 
19
+ # The ISO-4217 currency code for the currency.
20
+ attr_accessor :code
21
+
22
+ # A human-friendly name of the currency.
17
23
  attr_accessor :name
18
24
 
19
25
  # Attribute mapping from ruby-style variable name to JSON key.
20
26
  def self.attribute_map
21
27
  {
22
28
  :'id' => :'id',
29
+ :'code' => :'code',
23
30
  :'name' => :'name'
24
31
  }
25
32
  end
@@ -33,6 +40,7 @@ module SnapTrade
33
40
  def self.openapi_types
34
41
  {
35
42
  :'id' => :'String',
43
+ :'code' => :'String',
36
44
  :'name' => :'String'
37
45
  }
38
46
  end
@@ -43,17 +51,24 @@ module SnapTrade
43
51
  ])
44
52
  end
45
53
 
54
+ # List of class defined in allOf (OpenAPI v3)
55
+ def self.openapi_all_of
56
+ [
57
+ :'Currency'
58
+ ]
59
+ end
60
+
46
61
  # Initializes the object
47
62
  # @param [Hash] attributes Model attributes in the form of hash
48
63
  def initialize(attributes = {})
49
64
  if (!attributes.is_a?(Hash))
50
- fail ArgumentError, "The input argument (attributes) must be a hash in `SnapTrade::ModelAssetClass` initialize method"
65
+ fail ArgumentError, "The input argument (attributes) must be a hash in `SnapTrade::UniversalSymbolCurrency` initialize method"
51
66
  end
52
67
 
53
68
  # check to see if the attribute exists and convert string to symbol for hash key
54
69
  attributes = attributes.each_with_object({}) { |(k, v), h|
55
70
  if (!self.class.attribute_map.key?(k.to_sym))
56
- fail ArgumentError, "`#{k}` is not a valid attribute in `SnapTrade::ModelAssetClass`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
71
+ fail ArgumentError, "`#{k}` is not a valid attribute in `SnapTrade::UniversalSymbolCurrency`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
57
72
  end
58
73
  h[k.to_sym] = v
59
74
  }
@@ -62,6 +77,10 @@ module SnapTrade
62
77
  self.id = attributes[:'id']
63
78
  end
64
79
 
80
+ if attributes.key?(:'code')
81
+ self.code = attributes[:'code']
82
+ end
83
+
65
84
  if attributes.key?(:'name')
66
85
  self.name = attributes[:'name']
67
86
  end
@@ -86,6 +105,7 @@ module SnapTrade
86
105
  return true if self.equal?(o)
87
106
  self.class == o.class &&
88
107
  id == o.id &&
108
+ code == o.code &&
89
109
  name == o.name
90
110
  end
91
111
 
@@ -98,7 +118,7 @@ module SnapTrade
98
118
  # Calculates hash code according to all attributes.
99
119
  # @return [Integer] Hash code
100
120
  def hash
101
- [id, name].hash
121
+ [id, code, name].hash
102
122
  end
103
123
 
104
124
  # Builds the object from hash
@@ -11,16 +11,43 @@ require 'date'
11
11
  require 'time'
12
12
 
13
13
  module SnapTrade
14
- class PortfolioGroup
14
+ # The exchange on which the security is listed and traded.
15
+ class UniversalSymbolExchange
16
+ # Unique ID for the exchange in SnapTrade.
15
17
  attr_accessor :id
16
18
 
19
+ # A short name for the exchange. For standardized exchange code, please us the `mic_code` field.
20
+ attr_accessor :code
21
+
22
+ # The [Market Identifier Code](https://en.wikipedia.org/wiki/Market_Identifier_Code) (MIC) for the exchange.
23
+ attr_accessor :mic_code
24
+
25
+ # The full name of the exchange.
17
26
  attr_accessor :name
18
27
 
28
+ # The timezone for the trading hours (`start_time` and `close_time`) of the exchange.
29
+ attr_accessor :timezone
30
+
31
+ # The time when the exchange opens for trading.
32
+ attr_accessor :start_time
33
+
34
+ # The time when the exchange closes for trading.
35
+ attr_accessor :close_time
36
+
37
+ # The suffix to be appended to the symbol when trading on this exchange. For example, the suffix for the Toronto Stock Exchange is `.TO`. See `UniversalSymbol->symbol` and `UniversalSymbol->raw_symbol` for more detail.
38
+ attr_accessor :suffix
39
+
19
40
  # Attribute mapping from ruby-style variable name to JSON key.
20
41
  def self.attribute_map
21
42
  {
22
43
  :'id' => :'id',
23
- :'name' => :'name'
44
+ :'code' => :'code',
45
+ :'mic_code' => :'mic_code',
46
+ :'name' => :'name',
47
+ :'timezone' => :'timezone',
48
+ :'start_time' => :'start_time',
49
+ :'close_time' => :'close_time',
50
+ :'suffix' => :'suffix'
24
51
  }
25
52
  end
26
53
 
@@ -33,27 +60,41 @@ module SnapTrade
33
60
  def self.openapi_types
34
61
  {
35
62
  :'id' => :'String',
36
- :'name' => :'String'
63
+ :'code' => :'String',
64
+ :'mic_code' => :'String',
65
+ :'name' => :'String',
66
+ :'timezone' => :'String',
67
+ :'start_time' => :'String',
68
+ :'close_time' => :'String',
69
+ :'suffix' => :'String'
37
70
  }
38
71
  end
39
72
 
40
73
  # List of attributes with nullable: true
41
74
  def self.openapi_nullable
42
75
  Set.new([
76
+ :'suffix'
43
77
  ])
44
78
  end
45
79
 
80
+ # List of class defined in allOf (OpenAPI v3)
81
+ def self.openapi_all_of
82
+ [
83
+ :'Exchange'
84
+ ]
85
+ end
86
+
46
87
  # Initializes the object
47
88
  # @param [Hash] attributes Model attributes in the form of hash
48
89
  def initialize(attributes = {})
49
90
  if (!attributes.is_a?(Hash))
50
- fail ArgumentError, "The input argument (attributes) must be a hash in `SnapTrade::PortfolioGroup` initialize method"
91
+ fail ArgumentError, "The input argument (attributes) must be a hash in `SnapTrade::UniversalSymbolExchange` initialize method"
51
92
  end
52
93
 
53
94
  # check to see if the attribute exists and convert string to symbol for hash key
54
95
  attributes = attributes.each_with_object({}) { |(k, v), h|
55
96
  if (!self.class.attribute_map.key?(k.to_sym))
56
- fail ArgumentError, "`#{k}` is not a valid attribute in `SnapTrade::PortfolioGroup`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
97
+ fail ArgumentError, "`#{k}` is not a valid attribute in `SnapTrade::UniversalSymbolExchange`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
57
98
  end
58
99
  h[k.to_sym] = v
59
100
  }
@@ -62,9 +103,33 @@ module SnapTrade
62
103
  self.id = attributes[:'id']
63
104
  end
64
105
 
106
+ if attributes.key?(:'code')
107
+ self.code = attributes[:'code']
108
+ end
109
+
110
+ if attributes.key?(:'mic_code')
111
+ self.mic_code = attributes[:'mic_code']
112
+ end
113
+
65
114
  if attributes.key?(:'name')
66
115
  self.name = attributes[:'name']
67
116
  end
117
+
118
+ if attributes.key?(:'timezone')
119
+ self.timezone = attributes[:'timezone']
120
+ end
121
+
122
+ if attributes.key?(:'start_time')
123
+ self.start_time = attributes[:'start_time']
124
+ end
125
+
126
+ if attributes.key?(:'close_time')
127
+ self.close_time = attributes[:'close_time']
128
+ end
129
+
130
+ if attributes.key?(:'suffix')
131
+ self.suffix = attributes[:'suffix']
132
+ end
68
133
  end
69
134
 
70
135
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -86,7 +151,13 @@ module SnapTrade
86
151
  return true if self.equal?(o)
87
152
  self.class == o.class &&
88
153
  id == o.id &&
89
- name == o.name
154
+ code == o.code &&
155
+ mic_code == o.mic_code &&
156
+ name == o.name &&
157
+ timezone == o.timezone &&
158
+ start_time == o.start_time &&
159
+ close_time == o.close_time &&
160
+ suffix == o.suffix
90
161
  end
91
162
 
92
163
  # @see the `==` method
@@ -98,7 +169,7 @@ module SnapTrade
98
169
  # Calculates hash code according to all attributes.
99
170
  # @return [Integer] Hash code
100
171
  def hash
101
- [id, name].hash
172
+ [id, code, mic_code, name, timezone, start_time, close_time, suffix].hash
102
173
  end
103
174
 
104
175
  # Builds the object from hash
@@ -8,5 +8,5 @@ Contact: api@snaptrade.com
8
8
  =end
9
9
 
10
10
  module SnapTrade
11
- VERSION = '2.0.31'
11
+ VERSION = '2.0.32'
12
12
  end
data/lib/snaptrade.rb CHANGED
@@ -34,16 +34,10 @@ require 'snaptrade/models/brokerage'
34
34
  require 'snaptrade/models/brokerage_authorization'
35
35
  require 'snaptrade/models/brokerage_authorization_disabled_confirmation'
36
36
  require 'snaptrade/models/brokerage_authorization_refresh_confirmation'
37
- require 'snaptrade/models/brokerage_authorization_type'
38
37
  require 'snaptrade/models/brokerage_authorization_type_read_only'
39
38
  require 'snaptrade/models/brokerage_authorization_type_read_only_brokerage'
40
39
  require 'snaptrade/models/brokerage_authorization_type_read_only_type'
41
- require 'snaptrade/models/brokerage_authorization_type_type'
42
- require 'snaptrade/models/brokerage_symbol'
43
- require 'snaptrade/models/brokerage_symbol_option_symbol'
44
- require 'snaptrade/models/brokerage_symbol_symbol'
45
40
  require 'snaptrade/models/brokerage_type'
46
- require 'snaptrade/models/calculated_trade'
47
41
  require 'snaptrade/models/cash_restriction'
48
42
  require 'snaptrade/models/connection_portal_version'
49
43
  require 'snaptrade/models/connection_type'
@@ -55,10 +49,8 @@ require 'snaptrade/models/encrypted_response'
55
49
  require 'snaptrade/models/encrypted_response_encrypted_message_data'
56
50
  require 'snaptrade/models/exchange'
57
51
  require 'snaptrade/models/exchange_rate_pairs'
58
- require 'snaptrade/models/excluded_asset'
59
52
  require 'snaptrade/models/figi_instrument'
60
53
  require 'snaptrade/models/holdings_status'
61
- require 'snaptrade/models/jwt'
62
54
  require 'snaptrade/models/login_redirect_uri'
63
55
  require 'snaptrade/models/manual_trade'
64
56
  require 'snaptrade/models/manual_trade_and_impact'
@@ -74,14 +66,6 @@ require 'snaptrade/models/model403_failed_request_response'
74
66
  require 'snaptrade/models/model403_feature_not_enabled_response'
75
67
  require 'snaptrade/models/model404_failed_request_response'
76
68
  require 'snaptrade/models/model500_unexpected_exception_response'
77
- require 'snaptrade/models/model_asset_class'
78
- require 'snaptrade/models/model_asset_class_details'
79
- require 'snaptrade/models/model_asset_class_target'
80
- require 'snaptrade/models/model_portfolio'
81
- require 'snaptrade/models/model_portfolio_asset_class'
82
- require 'snaptrade/models/model_portfolio_details'
83
- require 'snaptrade/models/model_portfolio_security'
84
- require 'snaptrade/models/model_type'
85
69
  require 'snaptrade/models/monthly_dividends'
86
70
  require 'snaptrade/models/net_contributions'
87
71
  require 'snaptrade/models/net_dividend'
@@ -104,30 +88,18 @@ require 'snaptrade/models/order_type_strict'
104
88
  require 'snaptrade/models/partner_data'
105
89
  require 'snaptrade/models/past_value'
106
90
  require 'snaptrade/models/performance_custom'
107
- require 'snaptrade/models/portfolio_group'
108
- require 'snaptrade/models/portfolio_group_info'
109
- require 'snaptrade/models/portfolio_group_position'
110
- require 'snaptrade/models/portfolio_group_settings'
111
91
  require 'snaptrade/models/position'
112
92
  require 'snaptrade/models/position_symbol'
113
- require 'snaptrade/models/redirect_tokenand_pin'
114
93
  require 'snaptrade/models/security_type'
115
94
  require 'snaptrade/models/session_event'
116
95
  require 'snaptrade/models/session_event_type'
117
- require 'snaptrade/models/snap_trade_api_disclaimer_accept_status'
118
96
  require 'snaptrade/models/snap_trade_holdings_account'
119
97
  require 'snaptrade/models/snap_trade_holdings_account_account_id'
120
98
  require 'snaptrade/models/snap_trade_holdings_account_account_id_balance'
121
99
  require 'snaptrade/models/snap_trade_holdings_total_value'
122
100
  require 'snaptrade/models/snap_trade_login_user_request_body'
123
101
  require 'snaptrade/models/snap_trade_register_user_request_body'
124
- require 'snaptrade/models/state'
125
102
  require 'snaptrade/models/status'
126
- require 'snaptrade/models/strategy_impact'
127
- require 'snaptrade/models/strategy_impact_legs_inner'
128
- require 'snaptrade/models/strategy_order_place'
129
- require 'snaptrade/models/strategy_order_place_orders_inner'
130
- require 'snaptrade/models/strategy_order_place_orders_inner_legs_inner'
131
103
  require 'snaptrade/models/strategy_order_record'
132
104
  require 'snaptrade/models/strategy_order_record_status'
133
105
  require 'snaptrade/models/strategy_quotes'
@@ -138,23 +110,19 @@ require 'snaptrade/models/symbol'
138
110
  require 'snaptrade/models/symbol_figi_instrument'
139
111
  require 'snaptrade/models/symbol_query'
140
112
  require 'snaptrade/models/symbols_quotes_inner'
141
- require 'snaptrade/models/target_asset'
142
113
  require 'snaptrade/models/time_in_force_strict'
143
- require 'snaptrade/models/trade'
144
- require 'snaptrade/models/trade_action'
145
- require 'snaptrade/models/trade_execution_status'
146
- require 'snaptrade/models/trade_execution_status_action'
147
- require 'snaptrade/models/trade_impact'
148
114
  require 'snaptrade/models/trading_cancel_user_account_order_request'
149
115
  require 'snaptrade/models/transactions_status'
150
116
  require 'snaptrade/models/type'
151
117
  require 'snaptrade/models/us_exchange'
152
118
  require 'snaptrade/models/underlying_symbol'
119
+ require 'snaptrade/models/underlying_symbol_exchange'
120
+ require 'snaptrade/models/underlying_symbol_type'
153
121
  require 'snaptrade/models/universal_activity'
154
122
  require 'snaptrade/models/universal_symbol'
155
- require 'snaptrade/models/user_error_log'
123
+ require 'snaptrade/models/universal_symbol_currency'
124
+ require 'snaptrade/models/universal_symbol_exchange'
156
125
  require 'snaptrade/models/user_i_dand_secret'
157
- require 'snaptrade/models/user_settings'
158
126
  require 'snaptrade/models/validated_trade_body'
159
127
 
160
128
  # APIs