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
@@ -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'
@@ -420,6 +430,10 @@ module SparteraApiSdk
420
430
  self.tags = attributes[:'tags']
421
431
  end
422
432
 
433
+ if attributes.key?(:'top_questions')
434
+ self.top_questions = attributes[:'top_questions']
435
+ end
436
+
423
437
  if attributes.key?(:'short_code')
424
438
  self.short_code = attributes[:'short_code']
425
439
  end
@@ -448,6 +462,10 @@ module SparteraApiSdk
448
462
  self.require_customization = attributes[:'require_customization']
449
463
  end
450
464
 
465
+ if attributes.key?(:'viz_spec')
466
+ self.viz_spec = attributes[:'viz_spec']
467
+ end
468
+
451
469
  if attributes.key?(:'viz_chart_library')
452
470
  self.viz_chart_library = attributes[:'viz_chart_library']
453
471
  end
@@ -540,6 +558,10 @@ module SparteraApiSdk
540
558
  self.data_time_period_end = attributes[:'data_time_period_end']
541
559
  end
542
560
 
561
+ if attributes.key?(:'date_collection_start')
562
+ self.date_collection_start = attributes[:'date_collection_start']
563
+ end
564
+
543
565
  if attributes.key?(:'geographic_coverage_type')
544
566
  self.geographic_coverage_type = attributes[:'geographic_coverage_type']
545
567
  end
@@ -552,10 +574,6 @@ module SparteraApiSdk
552
574
  self.data_source_refresh_frequency = attributes[:'data_source_refresh_frequency']
553
575
  end
554
576
 
555
- if attributes.key?(:'data_source_last_refreshed')
556
- self.data_source_last_refreshed = attributes[:'data_source_last_refreshed']
557
- end
558
-
559
577
  if attributes.key?(:'rate_limit_number')
560
578
  self.rate_limit_number = attributes[:'rate_limit_number']
561
579
  end
@@ -601,7 +619,7 @@ module SparteraApiSdk
601
619
  return false unless viz_filter_direction_validator.valid?(@viz_filter_direction)
602
620
  geographic_coverage_type_validator = EnumAttributeValidator.new('String', ["GLOBAL", "CONTINENTAL", "REGIONAL", "NATIONAL", "STATE", "LOCAL", "CUSTOM", "UNKNOWN"])
603
621
  return false unless geographic_coverage_type_validator.valid?(@geographic_coverage_type)
604
- data_source_refresh_frequency_validator = EnumAttributeValidator.new('String', ["REAL_TIME", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "QUARTERLY", "ANNUAL", "ONE_TIME", "CUSTOM", "UNKNOWN"])
622
+ 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"])
605
623
  return false unless data_source_refresh_frequency_validator.valid?(@data_source_refresh_frequency)
606
624
  rate_limit_period_validator = EnumAttributeValidator.new('String', ["SECOND", "MINUTE", "HOUR", "DAY"])
607
625
  return false unless rate_limit_period_validator.valid?(@rate_limit_period)
@@ -713,7 +731,7 @@ module SparteraApiSdk
713
731
  # Custom attribute writer method checking allowed values (enum).
714
732
  # @param [Object] data_source_refresh_frequency Object to be assigned
715
733
  def data_source_refresh_frequency=(data_source_refresh_frequency)
716
- validator = EnumAttributeValidator.new('String', ["REAL_TIME", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "QUARTERLY", "ANNUAL", "ONE_TIME", "CUSTOM", "UNKNOWN"])
734
+ validator = EnumAttributeValidator.new('String', ["EVERY_SECOND", "EVERY_MINUTE", "EVERY_HOUR", "EVERY_DAY", "EVERY_WEEK", "EVERY_MONTH", "EVERY_QUARTER", "EVERY_YEAR", "NEVER", "UNKNOWN"])
717
735
  unless validator.valid?(data_source_refresh_frequency)
718
736
  fail ArgumentError, "invalid value for \"data_source_refresh_frequency\", must be one of #{validator.allowable_values}."
719
737
  end
@@ -762,6 +780,7 @@ module SparteraApiSdk
762
780
  asset_type == o.asset_type &&
763
781
  asset_schema == o.asset_schema &&
764
782
  tags == o.tags &&
783
+ top_questions == o.top_questions &&
765
784
  short_code == o.short_code &&
766
785
  restricted_domains == o.restricted_domains &&
767
786
  sql_logic == o.sql_logic &&
@@ -769,6 +788,7 @@ module SparteraApiSdk
769
788
  source_table_name == o.source_table_name &&
770
789
  sell_in_marketplace == o.sell_in_marketplace &&
771
790
  require_customization == o.require_customization &&
791
+ viz_spec == o.viz_spec &&
772
792
  viz_chart_library == o.viz_chart_library &&
773
793
  viz_chart_type == o.viz_chart_type &&
774
794
  viz_dep_var_col_name == o.viz_dep_var_col_name &&
@@ -792,10 +812,10 @@ module SparteraApiSdk
792
812
  next_run == o.next_run &&
793
813
  data_time_period_start == o.data_time_period_start &&
794
814
  data_time_period_end == o.data_time_period_end &&
815
+ date_collection_start == o.date_collection_start &&
795
816
  geographic_coverage_type == o.geographic_coverage_type &&
796
817
  geographic_coverage_details == o.geographic_coverage_details &&
797
818
  data_source_refresh_frequency == o.data_source_refresh_frequency &&
798
- data_source_last_refreshed == o.data_source_last_refreshed &&
799
819
  rate_limit_number == o.rate_limit_number &&
800
820
  rate_limit_period == o.rate_limit_period &&
801
821
  rate_limit_granularity == o.rate_limit_granularity
@@ -810,7 +830,7 @@ module SparteraApiSdk
810
830
  # Calculates hash code according to all attributes.
811
831
  # @return [Integer] Hash code
812
832
  def hash
813
- [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
833
+ [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
814
834
  end
815
835
 
816
836
  # Builds the object from hash
@@ -34,7 +34,7 @@ module SparteraApiSdk
34
34
  # References companies.company_id — A Spartera seller or buyer company account. See GET /companies for valid values. Required.
35
35
  attr_accessor :company_id
36
36
 
37
- # Optional. One of: SERVICE_ACCOUNT, USERNAME_PASSWORD, API_KEY, SERVICE_IDENTITY, ACCESS_KEY, … (8 total).
37
+ # Optional. One of: SERVICE_ACCOUNT, USERNAME_PASSWORD, API_KEY, SERVICE_IDENTITY, ACCESS_KEY, … (10 total).
38
38
  attr_accessor :credential_type
39
39
 
40
40
  # Optional.
@@ -208,7 +208,7 @@ module SparteraApiSdk
208
208
  warn '[DEPRECATED] the `valid?` method is obsolete'
209
209
  return false if @engine_id.nil?
210
210
  return false if @company_id.nil?
211
- credential_type_validator = EnumAttributeValidator.new('String', ["SERVICE_ACCOUNT", "USERNAME_PASSWORD", "API_KEY", "SERVICE_IDENTITY", "ACCESS_KEY", "NONE", "OAUTH", "JSON"])
211
+ credential_type_validator = EnumAttributeValidator.new('String', ["SERVICE_ACCOUNT", "USERNAME_PASSWORD", "API_KEY", "SERVICE_IDENTITY", "ACCESS_KEY", "NONE", "OAUTH", "JSON", "KEY_PAIR", "CLIENT_SECRET"])
212
212
  return false unless credential_type_validator.valid?(@credential_type)
213
213
  true
214
214
  end
@@ -236,7 +236,7 @@ module SparteraApiSdk
236
236
  # Custom attribute writer method checking allowed values (enum).
237
237
  # @param [Object] credential_type Object to be assigned
238
238
  def credential_type=(credential_type)
239
- validator = EnumAttributeValidator.new('String', ["SERVICE_ACCOUNT", "USERNAME_PASSWORD", "API_KEY", "SERVICE_IDENTITY", "ACCESS_KEY", "NONE", "OAUTH", "JSON"])
239
+ validator = EnumAttributeValidator.new('String', ["SERVICE_ACCOUNT", "USERNAME_PASSWORD", "API_KEY", "SERVICE_IDENTITY", "ACCESS_KEY", "NONE", "OAUTH", "JSON", "KEY_PAIR", "CLIENT_SECRET"])
240
240
  unless validator.valid?(credential_type)
241
241
  fail ArgumentError, "invalid value for \"credential_type\", must be one of #{validator.allowable_values}."
242
242
  end
@@ -25,7 +25,7 @@ module SparteraApiSdk
25
25
  # References companies.company_id — A Spartera seller or buyer company account. See GET /companies for valid values. Required.
26
26
  attr_accessor :company_id
27
27
 
28
- # Optional. One of: SERVICE_ACCOUNT, USERNAME_PASSWORD, API_KEY, SERVICE_IDENTITY, ACCESS_KEY, … (8 total).
28
+ # Optional. One of: SERVICE_ACCOUNT, USERNAME_PASSWORD, API_KEY, SERVICE_IDENTITY, ACCESS_KEY, … (10 total).
29
29
  attr_accessor :credential_type
30
30
 
31
31
  # Optional.
@@ -181,7 +181,7 @@ module SparteraApiSdk
181
181
  warn '[DEPRECATED] the `valid?` method is obsolete'
182
182
  return false if @engine_id.nil?
183
183
  return false if @company_id.nil?
184
- credential_type_validator = EnumAttributeValidator.new('String', ["SERVICE_ACCOUNT", "USERNAME_PASSWORD", "API_KEY", "SERVICE_IDENTITY", "ACCESS_KEY", "NONE", "OAUTH", "JSON"])
184
+ credential_type_validator = EnumAttributeValidator.new('String', ["SERVICE_ACCOUNT", "USERNAME_PASSWORD", "API_KEY", "SERVICE_IDENTITY", "ACCESS_KEY", "NONE", "OAUTH", "JSON", "KEY_PAIR", "CLIENT_SECRET"])
185
185
  return false unless credential_type_validator.valid?(@credential_type)
186
186
  true
187
187
  end
@@ -209,7 +209,7 @@ module SparteraApiSdk
209
209
  # Custom attribute writer method checking allowed values (enum).
210
210
  # @param [Object] credential_type Object to be assigned
211
211
  def credential_type=(credential_type)
212
- validator = EnumAttributeValidator.new('String', ["SERVICE_ACCOUNT", "USERNAME_PASSWORD", "API_KEY", "SERVICE_IDENTITY", "ACCESS_KEY", "NONE", "OAUTH", "JSON"])
212
+ validator = EnumAttributeValidator.new('String', ["SERVICE_ACCOUNT", "USERNAME_PASSWORD", "API_KEY", "SERVICE_IDENTITY", "ACCESS_KEY", "NONE", "OAUTH", "JSON", "KEY_PAIR", "CLIENT_SECRET"])
213
213
  unless validator.valid?(credential_type)
214
214
  fail ArgumentError, "invalid value for \"credential_type\", must be one of #{validator.allowable_values}."
215
215
  end
@@ -25,7 +25,7 @@ module SparteraApiSdk
25
25
  # References companies.company_id — A Spartera seller or buyer company account. See GET /companies for valid values. Required.
26
26
  attr_accessor :company_id
27
27
 
28
- # Optional. One of: SERVICE_ACCOUNT, USERNAME_PASSWORD, API_KEY, SERVICE_IDENTITY, ACCESS_KEY, … (8 total).
28
+ # Optional. One of: SERVICE_ACCOUNT, USERNAME_PASSWORD, API_KEY, SERVICE_IDENTITY, ACCESS_KEY, … (10 total).
29
29
  attr_accessor :credential_type
30
30
 
31
31
  # Optional.
@@ -167,7 +167,7 @@ module SparteraApiSdk
167
167
  # @return true if the model is valid
168
168
  def valid?
169
169
  warn '[DEPRECATED] the `valid?` method is obsolete'
170
- credential_type_validator = EnumAttributeValidator.new('String', ["SERVICE_ACCOUNT", "USERNAME_PASSWORD", "API_KEY", "SERVICE_IDENTITY", "ACCESS_KEY", "NONE", "OAUTH", "JSON"])
170
+ credential_type_validator = EnumAttributeValidator.new('String', ["SERVICE_ACCOUNT", "USERNAME_PASSWORD", "API_KEY", "SERVICE_IDENTITY", "ACCESS_KEY", "NONE", "OAUTH", "JSON", "KEY_PAIR", "CLIENT_SECRET"])
171
171
  return false unless credential_type_validator.valid?(@credential_type)
172
172
  true
173
173
  end
@@ -175,7 +175,7 @@ module SparteraApiSdk
175
175
  # Custom attribute writer method checking allowed values (enum).
176
176
  # @param [Object] credential_type Object to be assigned
177
177
  def credential_type=(credential_type)
178
- validator = EnumAttributeValidator.new('String', ["SERVICE_ACCOUNT", "USERNAME_PASSWORD", "API_KEY", "SERVICE_IDENTITY", "ACCESS_KEY", "NONE", "OAUTH", "JSON"])
178
+ validator = EnumAttributeValidator.new('String', ["SERVICE_ACCOUNT", "USERNAME_PASSWORD", "API_KEY", "SERVICE_IDENTITY", "ACCESS_KEY", "NONE", "OAUTH", "JSON", "KEY_PAIR", "CLIENT_SECRET"])
179
179
  unless validator.valid?(credential_type)
180
180
  fail ArgumentError, "invalid value for \"credential_type\", must be one of #{validator.allowable_values}."
181
181
  end
@@ -52,9 +52,6 @@ module SparteraApiSdk
52
52
  # Whether this endpoint appears in the public marketplace
53
53
  attr_accessor :sell_in_marketplace
54
54
 
55
- # Credits deducted from the buyer's pool per successful (200 OK) request. Same credit pool as assets. price_usd kept for billing records / dashboards.
56
- attr_accessor :price_credits
57
-
58
55
  # Human-readable name for the endpoint
59
56
  attr_accessor :name
60
57
 
@@ -64,23 +61,26 @@ module SparteraApiSdk
64
61
  # Description of what this endpoint provides
65
62
  attr_accessor :description
66
63
 
64
+ # Long-form HTML description for product pages and SEO
65
+ attr_accessor :detailed_description
66
+
67
+ # Top 3 questions this endpoint can help answer, in English. Stored as JSON array of strings (1-3 items, 15-200 chars each). Strongly encouraged for marketplace endpoints but not required — nudge via UI completeness score, not hard validation.
68
+ attr_accessor :top_questions
69
+
67
70
  # Schema/database name where the table resides
68
71
  attr_accessor :source_schema_name
69
72
 
70
73
  # Table name to query from
71
74
  attr_accessor :source_table_name
72
75
 
73
- # Named customer for B2B deals (marketplace uses price_credits instead)
76
+ # Named customer for B2B deals (pricing handled via asset_price_history)
74
77
  attr_accessor :customer_name
75
78
 
76
- # USD reference price for billing records and seller dashboards
77
- attr_accessor :price_usd
78
-
79
79
  # Column configurations including aggregations, filters, and visibility. Format: {columns: [{name, type, aggregation, filter, is_hidden, alias, ...}]}. This is the source of truth — SQL is generated at runtime from this configuration.
80
80
  attr_accessor :endpoint_schema
81
81
 
82
82
  # Number of requests allowed per rate_limit_period
83
- attr_accessor :rate_limit_requests
83
+ attr_accessor :rate_limit_number
84
84
 
85
85
  # Time period for rate limiting (HOUR, DAY, MONTH)
86
86
  attr_accessor :rate_limit_period
@@ -97,6 +97,24 @@ module SparteraApiSdk
97
97
  # Current status of the endpoint (ACTIVE, INACTIVE, DEPRECATED)
98
98
  attr_accessor :status
99
99
 
100
+ # Start date of the data time period covered
101
+ attr_accessor :data_time_period_start
102
+
103
+ # End date of the data time period covered
104
+ attr_accessor :data_time_period_end
105
+
106
+ # 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.
107
+ attr_accessor :date_collection_start
108
+
109
+ # Type of geographic coverage
110
+ attr_accessor :geographic_coverage_type
111
+
112
+ # Specific regions/countries covered (e.g., 'United States, Canada, Mexico')
113
+ attr_accessor :geographic_coverage_details
114
+
115
+ # How often the source data is refreshed
116
+ attr_accessor :data_source_refresh_frequency
117
+
100
118
  # Comma-separated tags for organizing endpoints
101
119
  attr_accessor :tags
102
120
 
@@ -106,6 +124,12 @@ module SparteraApiSdk
106
124
  # Seller-enforced row cap per request. Buyers cannot exceed this. Default 1000.
107
125
  attr_accessor :max_records_per_request
108
126
 
127
+ # Whether this endpoint supports bulk export to GCS. When True, buyers can request delivery=gcs with format=csv|parquet. Independent of max_records_per_request, which only governs inline JSON.
128
+ attr_accessor :export_enabled
129
+
130
+ # Hard ceiling on rows returned per GCS export. Separate from max_records_per_request so sellers can offer larger downloads via file delivery without expanding inline JSON responses.
131
+ attr_accessor :max_records_per_export
132
+
109
133
  # Last successful {spartera, request, response} envelope. Saved on each successful marketplace run. Displayed as preview on product page load.
110
134
  attr_accessor :sample_response
111
135
 
@@ -149,24 +173,32 @@ module SparteraApiSdk
149
173
  :'approved_by_user_id' => :'approved_by_user_id',
150
174
  :'approved_at' => :'approved_at',
151
175
  :'sell_in_marketplace' => :'sell_in_marketplace',
152
- :'price_credits' => :'price_credits',
153
176
  :'name' => :'name',
154
177
  :'slug' => :'slug',
155
178
  :'description' => :'description',
179
+ :'detailed_description' => :'detailed_description',
180
+ :'top_questions' => :'top_questions',
156
181
  :'source_schema_name' => :'source_schema_name',
157
182
  :'source_table_name' => :'source_table_name',
158
183
  :'customer_name' => :'customer_name',
159
- :'price_usd' => :'price_usd',
160
184
  :'endpoint_schema' => :'endpoint_schema',
161
- :'rate_limit_requests' => :'rate_limit_requests',
185
+ :'rate_limit_number' => :'rate_limit_number',
162
186
  :'rate_limit_period' => :'rate_limit_period',
163
187
  :'rate_limit_granularity' => :'rate_limit_granularity',
164
188
  :'access_method' => :'access_method',
165
189
  :'access_whitelist' => :'access_whitelist',
166
190
  :'status' => :'status',
191
+ :'data_time_period_start' => :'data_time_period_start',
192
+ :'data_time_period_end' => :'data_time_period_end',
193
+ :'date_collection_start' => :'date_collection_start',
194
+ :'geographic_coverage_type' => :'geographic_coverage_type',
195
+ :'geographic_coverage_details' => :'geographic_coverage_details',
196
+ :'data_source_refresh_frequency' => :'data_source_refresh_frequency',
167
197
  :'tags' => :'tags',
168
198
  :'last_accessed' => :'last_accessed',
169
199
  :'max_records_per_request' => :'max_records_per_request',
200
+ :'export_enabled' => :'export_enabled',
201
+ :'max_records_per_export' => :'max_records_per_export',
170
202
  :'sample_response' => :'sample_response',
171
203
  :'active' => :'active'
172
204
  }
@@ -197,24 +229,32 @@ module SparteraApiSdk
197
229
  :'approved_by_user_id' => :'String',
198
230
  :'approved_at' => :'Time',
199
231
  :'sell_in_marketplace' => :'Boolean',
200
- :'price_credits' => :'Integer',
201
232
  :'name' => :'String',
202
233
  :'slug' => :'String',
203
234
  :'description' => :'String',
235
+ :'detailed_description' => :'String',
236
+ :'top_questions' => :'String',
204
237
  :'source_schema_name' => :'String',
205
238
  :'source_table_name' => :'String',
206
239
  :'customer_name' => :'String',
207
- :'price_usd' => :'Float',
208
240
  :'endpoint_schema' => :'Object',
209
- :'rate_limit_requests' => :'Integer',
241
+ :'rate_limit_number' => :'Integer',
210
242
  :'rate_limit_period' => :'String',
211
243
  :'rate_limit_granularity' => :'String',
212
244
  :'access_method' => :'String',
213
245
  :'access_whitelist' => :'Object',
214
246
  :'status' => :'String',
247
+ :'data_time_period_start' => :'Time',
248
+ :'data_time_period_end' => :'Time',
249
+ :'date_collection_start' => :'Time',
250
+ :'geographic_coverage_type' => :'String',
251
+ :'geographic_coverage_details' => :'String',
252
+ :'data_source_refresh_frequency' => :'String',
215
253
  :'tags' => :'String',
216
254
  :'last_accessed' => :'Time',
217
255
  :'max_records_per_request' => :'Integer',
256
+ :'export_enabled' => :'Boolean',
257
+ :'max_records_per_export' => :'Integer',
218
258
  :'sample_response' => :'Object',
219
259
  :'active' => :'Boolean'
220
260
  }
@@ -300,12 +340,6 @@ module SparteraApiSdk
300
340
  self.sell_in_marketplace = nil
301
341
  end
302
342
 
303
- if attributes.key?(:'price_credits')
304
- self.price_credits = attributes[:'price_credits']
305
- else
306
- self.price_credits = nil
307
- end
308
-
309
343
  if attributes.key?(:'name')
310
344
  self.name = attributes[:'name']
311
345
  else
@@ -320,6 +354,14 @@ module SparteraApiSdk
320
354
  self.description = attributes[:'description']
321
355
  end
322
356
 
357
+ if attributes.key?(:'detailed_description')
358
+ self.detailed_description = attributes[:'detailed_description']
359
+ end
360
+
361
+ if attributes.key?(:'top_questions')
362
+ self.top_questions = attributes[:'top_questions']
363
+ end
364
+
323
365
  if attributes.key?(:'source_schema_name')
324
366
  self.source_schema_name = attributes[:'source_schema_name']
325
367
  end
@@ -332,16 +374,12 @@ module SparteraApiSdk
332
374
  self.customer_name = attributes[:'customer_name']
333
375
  end
334
376
 
335
- if attributes.key?(:'price_usd')
336
- self.price_usd = attributes[:'price_usd']
337
- end
338
-
339
377
  if attributes.key?(:'endpoint_schema')
340
378
  self.endpoint_schema = attributes[:'endpoint_schema']
341
379
  end
342
380
 
343
- if attributes.key?(:'rate_limit_requests')
344
- self.rate_limit_requests = attributes[:'rate_limit_requests']
381
+ if attributes.key?(:'rate_limit_number')
382
+ self.rate_limit_number = attributes[:'rate_limit_number']
345
383
  end
346
384
 
347
385
  if attributes.key?(:'rate_limit_period')
@@ -366,6 +404,30 @@ module SparteraApiSdk
366
404
  self.status = nil
367
405
  end
368
406
 
407
+ if attributes.key?(:'data_time_period_start')
408
+ self.data_time_period_start = attributes[:'data_time_period_start']
409
+ end
410
+
411
+ if attributes.key?(:'data_time_period_end')
412
+ self.data_time_period_end = attributes[:'data_time_period_end']
413
+ end
414
+
415
+ if attributes.key?(:'date_collection_start')
416
+ self.date_collection_start = attributes[:'date_collection_start']
417
+ end
418
+
419
+ if attributes.key?(:'geographic_coverage_type')
420
+ self.geographic_coverage_type = attributes[:'geographic_coverage_type']
421
+ end
422
+
423
+ if attributes.key?(:'geographic_coverage_details')
424
+ self.geographic_coverage_details = attributes[:'geographic_coverage_details']
425
+ end
426
+
427
+ if attributes.key?(:'data_source_refresh_frequency')
428
+ self.data_source_refresh_frequency = attributes[:'data_source_refresh_frequency']
429
+ end
430
+
369
431
  if attributes.key?(:'tags')
370
432
  self.tags = attributes[:'tags']
371
433
  end
@@ -378,6 +440,16 @@ module SparteraApiSdk
378
440
  self.max_records_per_request = attributes[:'max_records_per_request']
379
441
  end
380
442
 
443
+ if attributes.key?(:'export_enabled')
444
+ self.export_enabled = attributes[:'export_enabled']
445
+ else
446
+ self.export_enabled = nil
447
+ end
448
+
449
+ if attributes.key?(:'max_records_per_export')
450
+ self.max_records_per_export = attributes[:'max_records_per_export']
451
+ end
452
+
381
453
  if attributes.key?(:'sample_response')
382
454
  self.sample_response = attributes[:'sample_response']
383
455
  end
@@ -414,10 +486,6 @@ module SparteraApiSdk
414
486
  invalid_properties.push('invalid value for "sell_in_marketplace", sell_in_marketplace cannot be nil.')
415
487
  end
416
488
 
417
- if @price_credits.nil?
418
- invalid_properties.push('invalid value for "price_credits", price_credits cannot be nil.')
419
- end
420
-
421
489
  if @name.nil?
422
490
  invalid_properties.push('invalid value for "name", name cannot be nil.')
423
491
  end
@@ -426,6 +494,10 @@ module SparteraApiSdk
426
494
  invalid_properties.push('invalid value for "status", status cannot be nil.')
427
495
  end
428
496
 
497
+ if @export_enabled.nil?
498
+ invalid_properties.push('invalid value for "export_enabled", export_enabled cannot be nil.')
499
+ end
500
+
429
501
  if @active.nil?
430
502
  invalid_properties.push('invalid value for "active", active cannot be nil.')
431
503
  end
@@ -444,7 +516,6 @@ module SparteraApiSdk
444
516
  approval_status_validator = EnumAttributeValidator.new('String', ["PENDING", "APPROVED", "REJECTED", "NEEDS_REVISION"])
445
517
  return false unless approval_status_validator.valid?(@approval_status)
446
518
  return false if @sell_in_marketplace.nil?
447
- return false if @price_credits.nil?
448
519
  return false if @name.nil?
449
520
  rate_limit_period_validator = EnumAttributeValidator.new('String', ["SECOND", "MINUTE", "HOUR", "DAY"])
450
521
  return false unless rate_limit_period_validator.valid?(@rate_limit_period)
@@ -455,6 +526,11 @@ module SparteraApiSdk
455
526
  return false if @status.nil?
456
527
  status_validator = EnumAttributeValidator.new('String', ["ACTIVE", "INACTIVE", "DEPRECATED"])
457
528
  return false unless status_validator.valid?(@status)
529
+ geographic_coverage_type_validator = EnumAttributeValidator.new('String', ["GLOBAL", "CONTINENTAL", "REGIONAL", "NATIONAL", "STATE", "LOCAL", "CUSTOM", "UNKNOWN"])
530
+ return false unless geographic_coverage_type_validator.valid?(@geographic_coverage_type)
531
+ 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"])
532
+ return false unless data_source_refresh_frequency_validator.valid?(@data_source_refresh_frequency)
533
+ return false if @export_enabled.nil?
458
534
  return false if @active.nil?
459
535
  true
460
536
  end
@@ -519,16 +595,6 @@ module SparteraApiSdk
519
595
  @sell_in_marketplace = sell_in_marketplace
520
596
  end
521
597
 
522
- # Custom attribute writer method with validation
523
- # @param [Object] price_credits Value to be assigned
524
- def price_credits=(price_credits)
525
- if price_credits.nil?
526
- fail ArgumentError, 'price_credits cannot be nil'
527
- end
528
-
529
- @price_credits = price_credits
530
- end
531
-
532
598
  # Custom attribute writer method with validation
533
599
  # @param [Object] name Value to be assigned
534
600
  def name=(name)
@@ -579,6 +645,36 @@ module SparteraApiSdk
579
645
  @status = status
580
646
  end
581
647
 
648
+ # Custom attribute writer method checking allowed values (enum).
649
+ # @param [Object] geographic_coverage_type Object to be assigned
650
+ def geographic_coverage_type=(geographic_coverage_type)
651
+ validator = EnumAttributeValidator.new('String', ["GLOBAL", "CONTINENTAL", "REGIONAL", "NATIONAL", "STATE", "LOCAL", "CUSTOM", "UNKNOWN"])
652
+ unless validator.valid?(geographic_coverage_type)
653
+ fail ArgumentError, "invalid value for \"geographic_coverage_type\", must be one of #{validator.allowable_values}."
654
+ end
655
+ @geographic_coverage_type = geographic_coverage_type
656
+ end
657
+
658
+ # Custom attribute writer method checking allowed values (enum).
659
+ # @param [Object] data_source_refresh_frequency Object to be assigned
660
+ def data_source_refresh_frequency=(data_source_refresh_frequency)
661
+ validator = EnumAttributeValidator.new('String', ["EVERY_SECOND", "EVERY_MINUTE", "EVERY_HOUR", "EVERY_DAY", "EVERY_WEEK", "EVERY_MONTH", "EVERY_QUARTER", "EVERY_YEAR", "NEVER", "UNKNOWN"])
662
+ unless validator.valid?(data_source_refresh_frequency)
663
+ fail ArgumentError, "invalid value for \"data_source_refresh_frequency\", must be one of #{validator.allowable_values}."
664
+ end
665
+ @data_source_refresh_frequency = data_source_refresh_frequency
666
+ end
667
+
668
+ # Custom attribute writer method with validation
669
+ # @param [Object] export_enabled Value to be assigned
670
+ def export_enabled=(export_enabled)
671
+ if export_enabled.nil?
672
+ fail ArgumentError, 'export_enabled cannot be nil'
673
+ end
674
+
675
+ @export_enabled = export_enabled
676
+ end
677
+
582
678
  # Custom attribute writer method with validation
583
679
  # @param [Object] active Value to be assigned
584
680
  def active=(active)
@@ -606,24 +702,32 @@ module SparteraApiSdk
606
702
  approved_by_user_id == o.approved_by_user_id &&
607
703
  approved_at == o.approved_at &&
608
704
  sell_in_marketplace == o.sell_in_marketplace &&
609
- price_credits == o.price_credits &&
610
705
  name == o.name &&
611
706
  slug == o.slug &&
612
707
  description == o.description &&
708
+ detailed_description == o.detailed_description &&
709
+ top_questions == o.top_questions &&
613
710
  source_schema_name == o.source_schema_name &&
614
711
  source_table_name == o.source_table_name &&
615
712
  customer_name == o.customer_name &&
616
- price_usd == o.price_usd &&
617
713
  endpoint_schema == o.endpoint_schema &&
618
- rate_limit_requests == o.rate_limit_requests &&
714
+ rate_limit_number == o.rate_limit_number &&
619
715
  rate_limit_period == o.rate_limit_period &&
620
716
  rate_limit_granularity == o.rate_limit_granularity &&
621
717
  access_method == o.access_method &&
622
718
  access_whitelist == o.access_whitelist &&
623
719
  status == o.status &&
720
+ data_time_period_start == o.data_time_period_start &&
721
+ data_time_period_end == o.data_time_period_end &&
722
+ date_collection_start == o.date_collection_start &&
723
+ geographic_coverage_type == o.geographic_coverage_type &&
724
+ geographic_coverage_details == o.geographic_coverage_details &&
725
+ data_source_refresh_frequency == o.data_source_refresh_frequency &&
624
726
  tags == o.tags &&
625
727
  last_accessed == o.last_accessed &&
626
728
  max_records_per_request == o.max_records_per_request &&
729
+ export_enabled == o.export_enabled &&
730
+ max_records_per_export == o.max_records_per_export &&
627
731
  sample_response == o.sample_response &&
628
732
  active == o.active
629
733
  end
@@ -637,7 +741,7 @@ module SparteraApiSdk
637
741
  # Calculates hash code according to all attributes.
638
742
  # @return [Integer] Hash code
639
743
  def hash
640
- [date_created, last_updated, endpoint_id, user_id, company_id, connection_id, industry_id, auc_id, approval_status, approved_by_user_id, approved_at, sell_in_marketplace, price_credits, name, slug, description, source_schema_name, source_table_name, customer_name, price_usd, endpoint_schema, rate_limit_requests, rate_limit_period, rate_limit_granularity, access_method, access_whitelist, status, tags, last_accessed, max_records_per_request, sample_response, active].hash
744
+ [date_created, last_updated, endpoint_id, user_id, company_id, connection_id, industry_id, auc_id, approval_status, approved_by_user_id, approved_at, sell_in_marketplace, name, slug, description, detailed_description, top_questions, source_schema_name, source_table_name, customer_name, endpoint_schema, rate_limit_number, rate_limit_period, rate_limit_granularity, access_method, access_whitelist, status, data_time_period_start, data_time_period_end, date_collection_start, geographic_coverage_type, geographic_coverage_details, data_source_refresh_frequency, tags, last_accessed, max_records_per_request, export_enabled, max_records_per_export, sample_response, active].hash
641
745
  end
642
746
 
643
747
  # Builds the object from hash