snaptrade 2.0.31 → 2.0.32

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 (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