spartera_api_sdk 1.0.81 → 1.0.83

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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -4
  3. data/docs/Assets.md +7 -3
  4. data/docs/AssetsApi.md +12 -12
  5. data/docs/AssetsInput.md +7 -3
  6. data/docs/AssetsUpdate.md +7 -3
  7. data/docs/Connections.md +1 -1
  8. data/docs/ConnectionsApi.md +72 -0
  9. data/docs/ConnectionsInput.md +1 -1
  10. data/docs/ConnectionsUpdate.md +1 -1
  11. data/docs/Endpoints.md +23 -7
  12. data/docs/EndpointsApi.md +146 -0
  13. data/docs/EndpointsInput.md +23 -7
  14. data/docs/EndpointsUpdate.md +23 -7
  15. data/lib/spartera_api_sdk/api/assets_api.rb +20 -20
  16. data/lib/spartera_api_sdk/api/connections_api.rb +93 -0
  17. data/lib/spartera_api_sdk/api/endpoints_api.rb +197 -0
  18. data/lib/spartera_api_sdk/models/assets.rb +33 -13
  19. data/lib/spartera_api_sdk/models/assets_input.rb +33 -13
  20. data/lib/spartera_api_sdk/models/assets_update.rb +33 -13
  21. data/lib/spartera_api_sdk/models/connections.rb +3 -3
  22. data/lib/spartera_api_sdk/models/connections_input.rb +3 -3
  23. data/lib/spartera_api_sdk/models/connections_update.rb +3 -3
  24. data/lib/spartera_api_sdk/models/endpoints.rb +149 -45
  25. data/lib/spartera_api_sdk/models/endpoints_input.rb +132 -28
  26. data/lib/spartera_api_sdk/models/endpoints_update.rb +132 -28
  27. data/lib/spartera_api_sdk/version.rb +1 -1
  28. data/spec/api/assets_api_spec.rb +2 -2
  29. data/spec/api/connections_api_spec.rb +12 -0
  30. data/spec/api/endpoints_api_spec.rb +25 -0
  31. data/spec/models/assets_input_spec.rb +19 -7
  32. data/spec/models/assets_spec.rb +19 -7
  33. data/spec/models/assets_update_spec.rb +19 -7
  34. data/spec/models/connections_input_spec.rb +1 -1
  35. data/spec/models/connections_spec.rb +1 -1
  36. data/spec/models/connections_update_spec.rb +1 -1
  37. data/spec/models/endpoints_input_spec.rb +65 -9
  38. data/spec/models/endpoints_spec.rb +65 -9
  39. data/spec/models/endpoints_update_spec.rb +65 -9
  40. metadata +140 -140
@@ -247,6 +247,110 @@ module SparteraApiSdk
247
247
  return data, status_code, headers
248
248
  end
249
249
 
250
+ # POST /companies/{company_id}/endpoints/{endpoint_id}/scan_column
251
+ # @param company_id [String] Unique identifier for the Company
252
+ # @param endpoint_id [String] Unique identifier for the Endpoint
253
+ # @param endpoints_input [EndpointsInput]
254
+ # @param [Hash] opts the optional parameters
255
+ # @return [CreateEndpoints200Response]
256
+ def create_endpoints_scan_column(company_id, endpoint_id, endpoints_input, opts = {})
257
+ data, _status_code, _headers = create_endpoints_scan_column_with_http_info(company_id, endpoint_id, endpoints_input, opts)
258
+ data
259
+ end
260
+
261
+ # POST /companies/{company_id}/endpoints/{endpoint_id}/scan_column
262
+ # @param company_id [String] Unique identifier for the Company
263
+ # @param endpoint_id [String] Unique identifier for the Endpoint
264
+ # @param endpoints_input [EndpointsInput]
265
+ # @param [Hash] opts the optional parameters
266
+ # @return [Array<(CreateEndpoints200Response, Integer, Hash)>] CreateEndpoints200Response data, response status code and response headers
267
+ def create_endpoints_scan_column_with_http_info(company_id, endpoint_id, endpoints_input, opts = {})
268
+ if @api_client.config.debugging
269
+ @api_client.config.logger.debug 'Calling API: EndpointsApi.create_endpoints_scan_column ...'
270
+ end
271
+ # verify the required parameter 'company_id' is set
272
+ if @api_client.config.client_side_validation && company_id.nil?
273
+ fail ArgumentError, "Missing the required parameter 'company_id' when calling EndpointsApi.create_endpoints_scan_column"
274
+ end
275
+ if @api_client.config.client_side_validation && company_id.to_s.length > 255
276
+ fail ArgumentError, 'invalid value for "company_id" when calling EndpointsApi.create_endpoints_scan_column, the character length must be smaller than or equal to 255.'
277
+ end
278
+
279
+ if @api_client.config.client_side_validation && company_id.to_s.length < 1
280
+ fail ArgumentError, 'invalid value for "company_id" when calling EndpointsApi.create_endpoints_scan_column, the character length must be greater than or equal to 1.'
281
+ end
282
+
283
+ pattern = Regexp.new(/^[a-zA-Z0-9_-]+$/)
284
+ if @api_client.config.client_side_validation && company_id !~ pattern
285
+ fail ArgumentError, "invalid value for 'company_id' when calling EndpointsApi.create_endpoints_scan_column, must conform to the pattern #{pattern}."
286
+ end
287
+
288
+ # verify the required parameter 'endpoint_id' is set
289
+ if @api_client.config.client_side_validation && endpoint_id.nil?
290
+ fail ArgumentError, "Missing the required parameter 'endpoint_id' when calling EndpointsApi.create_endpoints_scan_column"
291
+ end
292
+ if @api_client.config.client_side_validation && endpoint_id.to_s.length > 255
293
+ fail ArgumentError, 'invalid value for "endpoint_id" when calling EndpointsApi.create_endpoints_scan_column, the character length must be smaller than or equal to 255.'
294
+ end
295
+
296
+ if @api_client.config.client_side_validation && endpoint_id.to_s.length < 1
297
+ fail ArgumentError, 'invalid value for "endpoint_id" when calling EndpointsApi.create_endpoints_scan_column, the character length must be greater than or equal to 1.'
298
+ end
299
+
300
+ pattern = Regexp.new(/^[a-zA-Z0-9_-]+$/)
301
+ if @api_client.config.client_side_validation && endpoint_id !~ pattern
302
+ fail ArgumentError, "invalid value for 'endpoint_id' when calling EndpointsApi.create_endpoints_scan_column, must conform to the pattern #{pattern}."
303
+ end
304
+
305
+ # verify the required parameter 'endpoints_input' is set
306
+ if @api_client.config.client_side_validation && endpoints_input.nil?
307
+ fail ArgumentError, "Missing the required parameter 'endpoints_input' when calling EndpointsApi.create_endpoints_scan_column"
308
+ end
309
+ # resource path
310
+ local_var_path = '/companies/{company_id}/endpoints/{endpoint_id}/scan_column'.sub('{' + 'company_id' + '}', CGI.escape(company_id.to_s)).sub('{' + 'endpoint_id' + '}', CGI.escape(endpoint_id.to_s))
311
+
312
+ # query parameters
313
+ query_params = opts[:query_params] || {}
314
+
315
+ # header parameters
316
+ header_params = opts[:header_params] || {}
317
+ # HTTP header 'Accept' (if needed)
318
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
319
+ # HTTP header 'Content-Type'
320
+ content_type = @api_client.select_header_content_type(['application/json'])
321
+ if !content_type.nil?
322
+ header_params['Content-Type'] = content_type
323
+ end
324
+
325
+ # form parameters
326
+ form_params = opts[:form_params] || {}
327
+
328
+ # http body (model)
329
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(endpoints_input)
330
+
331
+ # return_type
332
+ return_type = opts[:debug_return_type] || 'CreateEndpoints200Response'
333
+
334
+ # auth_names
335
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth']
336
+
337
+ new_options = opts.merge(
338
+ :operation => :"EndpointsApi.create_endpoints_scan_column",
339
+ :header_params => header_params,
340
+ :query_params => query_params,
341
+ :form_params => form_params,
342
+ :body => post_body,
343
+ :auth_names => auth_names,
344
+ :return_type => return_type
345
+ )
346
+
347
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
348
+ if @api_client.config.debugging
349
+ @api_client.config.logger.debug "API called: EndpointsApi#create_endpoints_scan_column\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
350
+ end
351
+ return data, status_code, headers
352
+ end
353
+
250
354
  # Delete single endpoint by ID
251
355
  # @param company_id [String] Unique identifier for the Company
252
356
  # @param endpoint_id [String] Unique identifier for the Endpoint
@@ -917,6 +1021,99 @@ module SparteraApiSdk
917
1021
  return data, status_code, headers
918
1022
  end
919
1023
 
1024
+ # GET /companies/{company_id}/endpoints/{endpoint_id}/recommendations
1025
+ # @param company_id [String] Unique identifier for the Company
1026
+ # @param endpoint_id [String] Unique identifier for the Endpoint
1027
+ # @param [Hash] opts the optional parameters
1028
+ # @return [GetEndpointsByIdConnectionsDescribe200Response]
1029
+ def get_endpoints_by_id_recommendations(company_id, endpoint_id, opts = {})
1030
+ data, _status_code, _headers = get_endpoints_by_id_recommendations_with_http_info(company_id, endpoint_id, opts)
1031
+ data
1032
+ end
1033
+
1034
+ # GET /companies/{company_id}/endpoints/{endpoint_id}/recommendations
1035
+ # @param company_id [String] Unique identifier for the Company
1036
+ # @param endpoint_id [String] Unique identifier for the Endpoint
1037
+ # @param [Hash] opts the optional parameters
1038
+ # @return [Array<(GetEndpointsByIdConnectionsDescribe200Response, Integer, Hash)>] GetEndpointsByIdConnectionsDescribe200Response data, response status code and response headers
1039
+ def get_endpoints_by_id_recommendations_with_http_info(company_id, endpoint_id, opts = {})
1040
+ if @api_client.config.debugging
1041
+ @api_client.config.logger.debug 'Calling API: EndpointsApi.get_endpoints_by_id_recommendations ...'
1042
+ end
1043
+ # verify the required parameter 'company_id' is set
1044
+ if @api_client.config.client_side_validation && company_id.nil?
1045
+ fail ArgumentError, "Missing the required parameter 'company_id' when calling EndpointsApi.get_endpoints_by_id_recommendations"
1046
+ end
1047
+ if @api_client.config.client_side_validation && company_id.to_s.length > 255
1048
+ fail ArgumentError, 'invalid value for "company_id" when calling EndpointsApi.get_endpoints_by_id_recommendations, the character length must be smaller than or equal to 255.'
1049
+ end
1050
+
1051
+ if @api_client.config.client_side_validation && company_id.to_s.length < 1
1052
+ fail ArgumentError, 'invalid value for "company_id" when calling EndpointsApi.get_endpoints_by_id_recommendations, the character length must be greater than or equal to 1.'
1053
+ end
1054
+
1055
+ pattern = Regexp.new(/^[a-zA-Z0-9_-]+$/)
1056
+ if @api_client.config.client_side_validation && company_id !~ pattern
1057
+ fail ArgumentError, "invalid value for 'company_id' when calling EndpointsApi.get_endpoints_by_id_recommendations, must conform to the pattern #{pattern}."
1058
+ end
1059
+
1060
+ # verify the required parameter 'endpoint_id' is set
1061
+ if @api_client.config.client_side_validation && endpoint_id.nil?
1062
+ fail ArgumentError, "Missing the required parameter 'endpoint_id' when calling EndpointsApi.get_endpoints_by_id_recommendations"
1063
+ end
1064
+ if @api_client.config.client_side_validation && endpoint_id.to_s.length > 255
1065
+ fail ArgumentError, 'invalid value for "endpoint_id" when calling EndpointsApi.get_endpoints_by_id_recommendations, the character length must be smaller than or equal to 255.'
1066
+ end
1067
+
1068
+ if @api_client.config.client_side_validation && endpoint_id.to_s.length < 1
1069
+ fail ArgumentError, 'invalid value for "endpoint_id" when calling EndpointsApi.get_endpoints_by_id_recommendations, the character length must be greater than or equal to 1.'
1070
+ end
1071
+
1072
+ pattern = Regexp.new(/^[a-zA-Z0-9_-]+$/)
1073
+ if @api_client.config.client_side_validation && endpoint_id !~ pattern
1074
+ fail ArgumentError, "invalid value for 'endpoint_id' when calling EndpointsApi.get_endpoints_by_id_recommendations, must conform to the pattern #{pattern}."
1075
+ end
1076
+
1077
+ # resource path
1078
+ local_var_path = '/companies/{company_id}/endpoints/{endpoint_id}/recommendations'.sub('{' + 'company_id' + '}', CGI.escape(company_id.to_s)).sub('{' + 'endpoint_id' + '}', CGI.escape(endpoint_id.to_s))
1079
+
1080
+ # query parameters
1081
+ query_params = opts[:query_params] || {}
1082
+
1083
+ # header parameters
1084
+ header_params = opts[:header_params] || {}
1085
+ # HTTP header 'Accept' (if needed)
1086
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1087
+
1088
+ # form parameters
1089
+ form_params = opts[:form_params] || {}
1090
+
1091
+ # http body (model)
1092
+ post_body = opts[:debug_body]
1093
+
1094
+ # return_type
1095
+ return_type = opts[:debug_return_type] || 'GetEndpointsByIdConnectionsDescribe200Response'
1096
+
1097
+ # auth_names
1098
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth']
1099
+
1100
+ new_options = opts.merge(
1101
+ :operation => :"EndpointsApi.get_endpoints_by_id_recommendations",
1102
+ :header_params => header_params,
1103
+ :query_params => query_params,
1104
+ :form_params => form_params,
1105
+ :body => post_body,
1106
+ :auth_names => auth_names,
1107
+ :return_type => return_type
1108
+ )
1109
+
1110
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1111
+ if @api_client.config.debugging
1112
+ @api_client.config.logger.debug "API called: EndpointsApi#get_endpoints_by_id_recommendations\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1113
+ end
1114
+ return data, status_code, headers
1115
+ end
1116
+
920
1117
  # Get usage statistics for an endpoint Query parameters: days: Number of days to analyze (default: 30)
921
1118
  # @param company_id [String] Unique identifier for the Company
922
1119
  # @param endpoint_id [String] Unique identifier for the Endpoint
@@ -88,6 +88,9 @@ module SparteraApiSdk
88
88
  # Optional.
89
89
  attr_accessor :tags
90
90
 
91
+ # Top 3 questions this asset can help answer, in English. Stored as JSON array of strings (1-3 items, 15-200 chars each). Required for marketplace assets.
92
+ attr_accessor :top_questions
93
+
91
94
  # Short code for tera.ac URL shortener (e.g., 'f78zq1')
92
95
  attr_accessor :short_code
93
96
 
@@ -109,6 +112,9 @@ module SparteraApiSdk
109
112
  # Whether this asset requires customization before use
110
113
  attr_accessor :require_customization
111
114
 
115
+ # Plotly figure JSON describing the visualization. Authored via the visual editor or via API. When populated, takes precedence over the legacy viz_* fields. Shape follows Plotly's figure schema: {data: [{type: '...', xsrc: '...', ...}], layout: {...}}. Column references use *src keys (xsrc, ysrc, labelssrc, etc.) and are hydrated with actual data at render time.
116
+ attr_accessor :viz_spec
117
+
112
118
  # Optional. One of: PLOTLY, MATPLOTLIB, SEABORN.
113
119
  attr_accessor :viz_chart_library
114
120
 
@@ -178,6 +184,9 @@ module SparteraApiSdk
178
184
  # End date of the data time period covered
179
185
  attr_accessor :data_time_period_end
180
186
 
187
+ # When the seller began actively collecting this data. Distinct from data_time_period_start, which describes when the records themselves begin. Backfilled historical data will have date_collection_start > data_time_period_start.
188
+ attr_accessor :date_collection_start
189
+
181
190
  # Type of geographic coverage
182
191
  attr_accessor :geographic_coverage_type
183
192
 
@@ -187,9 +196,6 @@ module SparteraApiSdk
187
196
  # How often the source data is refreshed
188
197
  attr_accessor :data_source_refresh_frequency
189
198
 
190
- # When the source data was last refreshed
191
- attr_accessor :data_source_last_refreshed
192
-
193
199
  # Number of requests allowed per period (e.g., 100)
194
200
  attr_accessor :rate_limit_number
195
201
 
@@ -248,6 +254,7 @@ module SparteraApiSdk
248
254
  :'asset_schema' => :'asset_schema',
249
255
  :'visibility' => :'visibility',
250
256
  :'tags' => :'tags',
257
+ :'top_questions' => :'top_questions',
251
258
  :'short_code' => :'short_code',
252
259
  :'restricted_domains' => :'restricted_domains',
253
260
  :'sql_logic' => :'sql_logic',
@@ -255,6 +262,7 @@ module SparteraApiSdk
255
262
  :'source_table_name' => :'source_table_name',
256
263
  :'sell_in_marketplace' => :'sell_in_marketplace',
257
264
  :'require_customization' => :'require_customization',
265
+ :'viz_spec' => :'viz_spec',
258
266
  :'viz_chart_library' => :'viz_chart_library',
259
267
  :'viz_chart_type' => :'viz_chart_type',
260
268
  :'viz_dep_var_col_name' => :'viz_dep_var_col_name',
@@ -278,10 +286,10 @@ module SparteraApiSdk
278
286
  :'next_run' => :'next_run',
279
287
  :'data_time_period_start' => :'data_time_period_start',
280
288
  :'data_time_period_end' => :'data_time_period_end',
289
+ :'date_collection_start' => :'date_collection_start',
281
290
  :'geographic_coverage_type' => :'geographic_coverage_type',
282
291
  :'geographic_coverage_details' => :'geographic_coverage_details',
283
292
  :'data_source_refresh_frequency' => :'data_source_refresh_frequency',
284
- :'data_source_last_refreshed' => :'data_source_last_refreshed',
285
293
  :'rate_limit_number' => :'rate_limit_number',
286
294
  :'rate_limit_period' => :'rate_limit_period',
287
295
  :'rate_limit_granularity' => :'rate_limit_granularity'
@@ -325,6 +333,7 @@ module SparteraApiSdk
325
333
  :'asset_schema' => :'Object',
326
334
  :'visibility' => :'String',
327
335
  :'tags' => :'String',
336
+ :'top_questions' => :'String',
328
337
  :'short_code' => :'String',
329
338
  :'restricted_domains' => :'String',
330
339
  :'sql_logic' => :'String',
@@ -332,6 +341,7 @@ module SparteraApiSdk
332
341
  :'source_table_name' => :'String',
333
342
  :'sell_in_marketplace' => :'Boolean',
334
343
  :'require_customization' => :'Boolean',
344
+ :'viz_spec' => :'Object',
335
345
  :'viz_chart_library' => :'String',
336
346
  :'viz_chart_type' => :'String',
337
347
  :'viz_dep_var_col_name' => :'String',
@@ -355,10 +365,10 @@ module SparteraApiSdk
355
365
  :'next_run' => :'Time',
356
366
  :'data_time_period_start' => :'Time',
357
367
  :'data_time_period_end' => :'Time',
368
+ :'date_collection_start' => :'Time',
358
369
  :'geographic_coverage_type' => :'String',
359
370
  :'geographic_coverage_details' => :'String',
360
371
  :'data_source_refresh_frequency' => :'String',
361
- :'data_source_last_refreshed' => :'Time',
362
372
  :'rate_limit_number' => :'Integer',
363
373
  :'rate_limit_period' => :'String',
364
374
  :'rate_limit_granularity' => :'String'
@@ -489,6 +499,10 @@ module SparteraApiSdk
489
499
  self.tags = attributes[:'tags']
490
500
  end
491
501
 
502
+ if attributes.key?(:'top_questions')
503
+ self.top_questions = attributes[:'top_questions']
504
+ end
505
+
492
506
  if attributes.key?(:'short_code')
493
507
  self.short_code = attributes[:'short_code']
494
508
  end
@@ -521,6 +535,10 @@ module SparteraApiSdk
521
535
  self.require_customization = nil
522
536
  end
523
537
 
538
+ if attributes.key?(:'viz_spec')
539
+ self.viz_spec = attributes[:'viz_spec']
540
+ end
541
+
524
542
  if attributes.key?(:'viz_chart_library')
525
543
  self.viz_chart_library = attributes[:'viz_chart_library']
526
544
  end
@@ -617,6 +635,10 @@ module SparteraApiSdk
617
635
  self.data_time_period_end = attributes[:'data_time_period_end']
618
636
  end
619
637
 
638
+ if attributes.key?(:'date_collection_start')
639
+ self.date_collection_start = attributes[:'date_collection_start']
640
+ end
641
+
620
642
  if attributes.key?(:'geographic_coverage_type')
621
643
  self.geographic_coverage_type = attributes[:'geographic_coverage_type']
622
644
  end
@@ -629,10 +651,6 @@ module SparteraApiSdk
629
651
  self.data_source_refresh_frequency = attributes[:'data_source_refresh_frequency']
630
652
  end
631
653
 
632
- if attributes.key?(:'data_source_last_refreshed')
633
- self.data_source_last_refreshed = attributes[:'data_source_last_refreshed']
634
- end
635
-
636
654
  if attributes.key?(:'rate_limit_number')
637
655
  self.rate_limit_number = attributes[:'rate_limit_number']
638
656
  end
@@ -715,7 +733,7 @@ module SparteraApiSdk
715
733
  return false if @accept_terms.nil?
716
734
  geographic_coverage_type_validator = EnumAttributeValidator.new('String', ["GLOBAL", "CONTINENTAL", "REGIONAL", "NATIONAL", "STATE", "LOCAL", "CUSTOM", "UNKNOWN"])
717
735
  return false unless geographic_coverage_type_validator.valid?(@geographic_coverage_type)
718
- data_source_refresh_frequency_validator = EnumAttributeValidator.new('String', ["REAL_TIME", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "QUARTERLY", "ANNUAL", "ONE_TIME", "CUSTOM", "UNKNOWN"])
736
+ data_source_refresh_frequency_validator = EnumAttributeValidator.new('String', ["EVERY_SECOND", "EVERY_MINUTE", "EVERY_HOUR", "EVERY_DAY", "EVERY_WEEK", "EVERY_MONTH", "EVERY_QUARTER", "EVERY_YEAR", "NEVER", "UNKNOWN"])
719
737
  return false unless data_source_refresh_frequency_validator.valid?(@data_source_refresh_frequency)
720
738
  rate_limit_period_validator = EnumAttributeValidator.new('String', ["SECOND", "MINUTE", "HOUR", "DAY"])
721
739
  return false unless rate_limit_period_validator.valid?(@rate_limit_period)
@@ -897,7 +915,7 @@ module SparteraApiSdk
897
915
  # Custom attribute writer method checking allowed values (enum).
898
916
  # @param [Object] data_source_refresh_frequency Object to be assigned
899
917
  def data_source_refresh_frequency=(data_source_refresh_frequency)
900
- validator = EnumAttributeValidator.new('String', ["REAL_TIME", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "QUARTERLY", "ANNUAL", "ONE_TIME", "CUSTOM", "UNKNOWN"])
918
+ validator = EnumAttributeValidator.new('String', ["EVERY_SECOND", "EVERY_MINUTE", "EVERY_HOUR", "EVERY_DAY", "EVERY_WEEK", "EVERY_MONTH", "EVERY_QUARTER", "EVERY_YEAR", "NEVER", "UNKNOWN"])
901
919
  unless validator.valid?(data_source_refresh_frequency)
902
920
  fail ArgumentError, "invalid value for \"data_source_refresh_frequency\", must be one of #{validator.allowable_values}."
903
921
  end
@@ -953,6 +971,7 @@ module SparteraApiSdk
953
971
  asset_schema == o.asset_schema &&
954
972
  visibility == o.visibility &&
955
973
  tags == o.tags &&
974
+ top_questions == o.top_questions &&
956
975
  short_code == o.short_code &&
957
976
  restricted_domains == o.restricted_domains &&
958
977
  sql_logic == o.sql_logic &&
@@ -960,6 +979,7 @@ module SparteraApiSdk
960
979
  source_table_name == o.source_table_name &&
961
980
  sell_in_marketplace == o.sell_in_marketplace &&
962
981
  require_customization == o.require_customization &&
982
+ viz_spec == o.viz_spec &&
963
983
  viz_chart_library == o.viz_chart_library &&
964
984
  viz_chart_type == o.viz_chart_type &&
965
985
  viz_dep_var_col_name == o.viz_dep_var_col_name &&
@@ -983,10 +1003,10 @@ module SparteraApiSdk
983
1003
  next_run == o.next_run &&
984
1004
  data_time_period_start == o.data_time_period_start &&
985
1005
  data_time_period_end == o.data_time_period_end &&
1006
+ date_collection_start == o.date_collection_start &&
986
1007
  geographic_coverage_type == o.geographic_coverage_type &&
987
1008
  geographic_coverage_details == o.geographic_coverage_details &&
988
1009
  data_source_refresh_frequency == o.data_source_refresh_frequency &&
989
- data_source_last_refreshed == o.data_source_last_refreshed &&
990
1010
  rate_limit_number == o.rate_limit_number &&
991
1011
  rate_limit_period == o.rate_limit_period &&
992
1012
  rate_limit_granularity == o.rate_limit_granularity
@@ -1001,7 +1021,7 @@ module SparteraApiSdk
1001
1021
  # Calculates hash code according to all attributes.
1002
1022
  # @return [Integer] Hash code
1003
1023
  def hash
1004
- [date_created, last_updated, asset_id, user_id, company_id, connection_id, llm_connection_id, snippet_id, industry_id, ai_job_id, auc_id, function_id, approval_status, approved_by_user_id, approved_at, name, slug, description, detailed_description, source, asset_type, asset_schema, visibility, tags, short_code, restricted_domains, sql_logic, source_schema_name, source_table_name, sell_in_marketplace, require_customization, viz_chart_library, viz_chart_type, viz_dep_var_col_name, viz_indep_var_col_name, viz_size_col_name, viz_color_col_name, viz_data_aggregation, viz_sort_direction, viz_data_limit, viz_color_scheme, viz_show_legend, viz_show_grid, viz_show_trendline, viz_line_smoothing, viz_bar_stacked, viz_filter_direction, allow_params, accept_terms, cached, schedule, next_run, data_time_period_start, data_time_period_end, geographic_coverage_type, geographic_coverage_details, data_source_refresh_frequency, data_source_last_refreshed, rate_limit_number, rate_limit_period, rate_limit_granularity].hash
1024
+ [date_created, last_updated, asset_id, user_id, company_id, connection_id, llm_connection_id, snippet_id, industry_id, ai_job_id, auc_id, function_id, approval_status, approved_by_user_id, approved_at, name, slug, description, detailed_description, source, asset_type, asset_schema, visibility, tags, top_questions, short_code, restricted_domains, sql_logic, source_schema_name, source_table_name, sell_in_marketplace, require_customization, viz_spec, viz_chart_library, viz_chart_type, viz_dep_var_col_name, viz_indep_var_col_name, viz_size_col_name, viz_color_col_name, viz_data_aggregation, viz_sort_direction, viz_data_limit, viz_color_scheme, viz_show_legend, viz_show_grid, viz_show_trendline, viz_line_smoothing, viz_bar_stacked, viz_filter_direction, allow_params, accept_terms, cached, schedule, next_run, data_time_period_start, data_time_period_end, date_collection_start, geographic_coverage_type, geographic_coverage_details, data_source_refresh_frequency, rate_limit_number, rate_limit_period, rate_limit_granularity].hash
1005
1025
  end
1006
1026
 
1007
1027
  # Builds the object from hash
@@ -67,6 +67,9 @@ module SparteraApiSdk
67
67
  # Optional.
68
68
  attr_accessor :tags
69
69
 
70
+ # Top 3 questions this asset can help answer, in English. Stored as JSON array of strings (1-3 items, 15-200 chars each). Required for marketplace assets.
71
+ attr_accessor :top_questions
72
+
70
73
  # Short code for tera.ac URL shortener (e.g., 'f78zq1')
71
74
  attr_accessor :short_code
72
75
 
@@ -88,6 +91,9 @@ module SparteraApiSdk
88
91
  # Whether this asset requires customization before use
89
92
  attr_accessor :require_customization
90
93
 
94
+ # Plotly figure JSON describing the visualization. Authored via the visual editor or via API. When populated, takes precedence over the legacy viz_* fields. Shape follows Plotly's figure schema: {data: [{type: '...', xsrc: '...', ...}], layout: {...}}. Column references use *src keys (xsrc, ysrc, labelssrc, etc.) and are hydrated with actual data at render time.
95
+ attr_accessor :viz_spec
96
+
91
97
  # Optional. One of: PLOTLY, MATPLOTLIB, SEABORN.
92
98
  attr_accessor :viz_chart_library
93
99
 
@@ -157,6 +163,9 @@ module SparteraApiSdk
157
163
  # End date of the data time period covered
158
164
  attr_accessor :data_time_period_end
159
165
 
166
+ # When the seller began actively collecting this data. Distinct from data_time_period_start, which describes when the records themselves begin. Backfilled historical data will have date_collection_start > data_time_period_start.
167
+ attr_accessor :date_collection_start
168
+
160
169
  # Type of geographic coverage
161
170
  attr_accessor :geographic_coverage_type
162
171
 
@@ -166,9 +175,6 @@ module SparteraApiSdk
166
175
  # How often the source data is refreshed
167
176
  attr_accessor :data_source_refresh_frequency
168
177
 
169
- # When the source data was last refreshed
170
- attr_accessor :data_source_last_refreshed
171
-
172
178
  # Number of requests allowed per period (e.g., 100)
173
179
  attr_accessor :rate_limit_number
174
180
 
@@ -220,6 +226,7 @@ module SparteraApiSdk
220
226
  :'asset_type' => :'asset_type',
221
227
  :'asset_schema' => :'asset_schema',
222
228
  :'tags' => :'tags',
229
+ :'top_questions' => :'top_questions',
223
230
  :'short_code' => :'short_code',
224
231
  :'restricted_domains' => :'restricted_domains',
225
232
  :'sql_logic' => :'sql_logic',
@@ -227,6 +234,7 @@ module SparteraApiSdk
227
234
  :'source_table_name' => :'source_table_name',
228
235
  :'sell_in_marketplace' => :'sell_in_marketplace',
229
236
  :'require_customization' => :'require_customization',
237
+ :'viz_spec' => :'viz_spec',
230
238
  :'viz_chart_library' => :'viz_chart_library',
231
239
  :'viz_chart_type' => :'viz_chart_type',
232
240
  :'viz_dep_var_col_name' => :'viz_dep_var_col_name',
@@ -250,10 +258,10 @@ module SparteraApiSdk
250
258
  :'next_run' => :'next_run',
251
259
  :'data_time_period_start' => :'data_time_period_start',
252
260
  :'data_time_period_end' => :'data_time_period_end',
261
+ :'date_collection_start' => :'date_collection_start',
253
262
  :'geographic_coverage_type' => :'geographic_coverage_type',
254
263
  :'geographic_coverage_details' => :'geographic_coverage_details',
255
264
  :'data_source_refresh_frequency' => :'data_source_refresh_frequency',
256
- :'data_source_last_refreshed' => :'data_source_last_refreshed',
257
265
  :'rate_limit_number' => :'rate_limit_number',
258
266
  :'rate_limit_period' => :'rate_limit_period',
259
267
  :'rate_limit_granularity' => :'rate_limit_granularity'
@@ -290,6 +298,7 @@ module SparteraApiSdk
290
298
  :'asset_type' => :'String',
291
299
  :'asset_schema' => :'Object',
292
300
  :'tags' => :'String',
301
+ :'top_questions' => :'String',
293
302
  :'short_code' => :'String',
294
303
  :'restricted_domains' => :'String',
295
304
  :'sql_logic' => :'String',
@@ -297,6 +306,7 @@ module SparteraApiSdk
297
306
  :'source_table_name' => :'String',
298
307
  :'sell_in_marketplace' => :'Boolean',
299
308
  :'require_customization' => :'Boolean',
309
+ :'viz_spec' => :'Object',
300
310
  :'viz_chart_library' => :'String',
301
311
  :'viz_chart_type' => :'String',
302
312
  :'viz_dep_var_col_name' => :'String',
@@ -320,10 +330,10 @@ module SparteraApiSdk
320
330
  :'next_run' => :'Time',
321
331
  :'data_time_period_start' => :'Time',
322
332
  :'data_time_period_end' => :'Time',
333
+ :'date_collection_start' => :'Time',
323
334
  :'geographic_coverage_type' => :'String',
324
335
  :'geographic_coverage_details' => :'String',
325
336
  :'data_source_refresh_frequency' => :'String',
326
- :'data_source_last_refreshed' => :'Time',
327
337
  :'rate_limit_number' => :'Integer',
328
338
  :'rate_limit_period' => :'String',
329
339
  :'rate_limit_granularity' => :'String'
@@ -426,6 +436,10 @@ module SparteraApiSdk
426
436
  self.tags = attributes[:'tags']
427
437
  end
428
438
 
439
+ if attributes.key?(:'top_questions')
440
+ self.top_questions = attributes[:'top_questions']
441
+ end
442
+
429
443
  if attributes.key?(:'short_code')
430
444
  self.short_code = attributes[:'short_code']
431
445
  end
@@ -454,6 +468,10 @@ module SparteraApiSdk
454
468
  self.require_customization = attributes[:'require_customization']
455
469
  end
456
470
 
471
+ if attributes.key?(:'viz_spec')
472
+ self.viz_spec = attributes[:'viz_spec']
473
+ end
474
+
457
475
  if attributes.key?(:'viz_chart_library')
458
476
  self.viz_chart_library = attributes[:'viz_chart_library']
459
477
  end
@@ -546,6 +564,10 @@ module SparteraApiSdk
546
564
  self.data_time_period_end = attributes[:'data_time_period_end']
547
565
  end
548
566
 
567
+ if attributes.key?(:'date_collection_start')
568
+ self.date_collection_start = attributes[:'date_collection_start']
569
+ end
570
+
549
571
  if attributes.key?(:'geographic_coverage_type')
550
572
  self.geographic_coverage_type = attributes[:'geographic_coverage_type']
551
573
  end
@@ -558,10 +580,6 @@ module SparteraApiSdk
558
580
  self.data_source_refresh_frequency = attributes[:'data_source_refresh_frequency']
559
581
  end
560
582
 
561
- if attributes.key?(:'data_source_last_refreshed')
562
- self.data_source_last_refreshed = attributes[:'data_source_last_refreshed']
563
- end
564
-
565
583
  if attributes.key?(:'rate_limit_number')
566
584
  self.rate_limit_number = attributes[:'rate_limit_number']
567
585
  end
@@ -622,7 +640,7 @@ module SparteraApiSdk
622
640
  return false unless viz_filter_direction_validator.valid?(@viz_filter_direction)
623
641
  geographic_coverage_type_validator = EnumAttributeValidator.new('String', ["GLOBAL", "CONTINENTAL", "REGIONAL", "NATIONAL", "STATE", "LOCAL", "CUSTOM", "UNKNOWN"])
624
642
  return false unless geographic_coverage_type_validator.valid?(@geographic_coverage_type)
625
- data_source_refresh_frequency_validator = EnumAttributeValidator.new('String', ["REAL_TIME", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "QUARTERLY", "ANNUAL", "ONE_TIME", "CUSTOM", "UNKNOWN"])
643
+ data_source_refresh_frequency_validator = EnumAttributeValidator.new('String', ["EVERY_SECOND", "EVERY_MINUTE", "EVERY_HOUR", "EVERY_DAY", "EVERY_WEEK", "EVERY_MONTH", "EVERY_QUARTER", "EVERY_YEAR", "NEVER", "UNKNOWN"])
626
644
  return false unless data_source_refresh_frequency_validator.valid?(@data_source_refresh_frequency)
627
645
  rate_limit_period_validator = EnumAttributeValidator.new('String', ["SECOND", "MINUTE", "HOUR", "DAY"])
628
646
  return false unless rate_limit_period_validator.valid?(@rate_limit_period)
@@ -754,7 +772,7 @@ module SparteraApiSdk
754
772
  # Custom attribute writer method checking allowed values (enum).
755
773
  # @param [Object] data_source_refresh_frequency Object to be assigned
756
774
  def data_source_refresh_frequency=(data_source_refresh_frequency)
757
- validator = EnumAttributeValidator.new('String', ["REAL_TIME", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "QUARTERLY", "ANNUAL", "ONE_TIME", "CUSTOM", "UNKNOWN"])
775
+ validator = EnumAttributeValidator.new('String', ["EVERY_SECOND", "EVERY_MINUTE", "EVERY_HOUR", "EVERY_DAY", "EVERY_WEEK", "EVERY_MONTH", "EVERY_QUARTER", "EVERY_YEAR", "NEVER", "UNKNOWN"])
758
776
  unless validator.valid?(data_source_refresh_frequency)
759
777
  fail ArgumentError, "invalid value for \"data_source_refresh_frequency\", must be one of #{validator.allowable_values}."
760
778
  end
@@ -803,6 +821,7 @@ module SparteraApiSdk
803
821
  asset_type == o.asset_type &&
804
822
  asset_schema == o.asset_schema &&
805
823
  tags == o.tags &&
824
+ top_questions == o.top_questions &&
806
825
  short_code == o.short_code &&
807
826
  restricted_domains == o.restricted_domains &&
808
827
  sql_logic == o.sql_logic &&
@@ -810,6 +829,7 @@ module SparteraApiSdk
810
829
  source_table_name == o.source_table_name &&
811
830
  sell_in_marketplace == o.sell_in_marketplace &&
812
831
  require_customization == o.require_customization &&
832
+ viz_spec == o.viz_spec &&
813
833
  viz_chart_library == o.viz_chart_library &&
814
834
  viz_chart_type == o.viz_chart_type &&
815
835
  viz_dep_var_col_name == o.viz_dep_var_col_name &&
@@ -833,10 +853,10 @@ module SparteraApiSdk
833
853
  next_run == o.next_run &&
834
854
  data_time_period_start == o.data_time_period_start &&
835
855
  data_time_period_end == o.data_time_period_end &&
856
+ date_collection_start == o.date_collection_start &&
836
857
  geographic_coverage_type == o.geographic_coverage_type &&
837
858
  geographic_coverage_details == o.geographic_coverage_details &&
838
859
  data_source_refresh_frequency == o.data_source_refresh_frequency &&
839
- data_source_last_refreshed == o.data_source_last_refreshed &&
840
860
  rate_limit_number == o.rate_limit_number &&
841
861
  rate_limit_period == o.rate_limit_period &&
842
862
  rate_limit_granularity == o.rate_limit_granularity
@@ -851,7 +871,7 @@ module SparteraApiSdk
851
871
  # Calculates hash code according to all attributes.
852
872
  # @return [Integer] Hash code
853
873
  def hash
854
- [user_id, company_id, connection_id, industry_id, auc_id, function_id, approval_status, approved_by_user_id, approved_at, name, slug, description, detailed_description, source, asset_type, asset_schema, tags, short_code, restricted_domains, sql_logic, source_schema_name, source_table_name, sell_in_marketplace, require_customization, viz_chart_library, viz_chart_type, viz_dep_var_col_name, viz_indep_var_col_name, viz_size_col_name, viz_color_col_name, viz_data_aggregation, viz_sort_direction, viz_data_limit, viz_color_scheme, viz_show_legend, viz_show_grid, viz_show_trendline, viz_line_smoothing, viz_bar_stacked, viz_filter_direction, allow_params, accept_terms, cached, schedule, next_run, data_time_period_start, data_time_period_end, geographic_coverage_type, geographic_coverage_details, data_source_refresh_frequency, data_source_last_refreshed, rate_limit_number, rate_limit_period, rate_limit_granularity].hash
874
+ [user_id, company_id, connection_id, industry_id, auc_id, function_id, approval_status, approved_by_user_id, approved_at, name, slug, description, detailed_description, source, asset_type, asset_schema, tags, top_questions, short_code, restricted_domains, sql_logic, source_schema_name, source_table_name, sell_in_marketplace, require_customization, viz_spec, viz_chart_library, viz_chart_type, viz_dep_var_col_name, viz_indep_var_col_name, viz_size_col_name, viz_color_col_name, viz_data_aggregation, viz_sort_direction, viz_data_limit, viz_color_scheme, viz_show_legend, viz_show_grid, viz_show_trendline, viz_line_smoothing, viz_bar_stacked, viz_filter_direction, allow_params, accept_terms, cached, schedule, next_run, data_time_period_start, data_time_period_end, date_collection_start, geographic_coverage_type, geographic_coverage_details, data_source_refresh_frequency, rate_limit_number, rate_limit_period, rate_limit_granularity].hash
855
875
  end
856
876
 
857
877
  # Builds the object from hash