seatschart 0.2.0 → 0.3.0

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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +162 -15
  3. data/lib/seatschart/api/audit_api.rb +2 -2
  4. data/lib/seatschart/api/charts_api.rb +799 -66
  5. data/lib/seatschart/api/embed_api.rb +5 -5
  6. data/lib/seatschart/api/embed_origins_api.rb +63 -2
  7. data/lib/seatschart/api/event_log_api.rb +2 -2
  8. data/lib/seatschart/api/events_api.rb +1471 -155
  9. data/lib/seatschart/api/health_api.rb +244 -0
  10. data/lib/seatschart/api/map_designer_api.rb +11 -9
  11. data/lib/seatschart/api/public_api.rb +350 -0
  12. data/lib/seatschart/api/sandboxes_api.rb +672 -0
  13. data/lib/seatschart/api/seasons_api.rb +344 -36
  14. data/lib/seatschart/api/seats_api.rb +10 -10
  15. data/lib/seatschart/api/usage_api.rb +18 -15
  16. data/lib/seatschart/api/webhooks_api.rb +2 -2
  17. data/lib/seatschart/api/workspace_api.rb +306 -20
  18. data/lib/seatschart/models/api_error.rb +4 -4
  19. data/lib/seatschart/models/delete_api_sandboxes_by_sandbox_id200_response.rb +255 -0
  20. data/lib/seatschart/models/get_api_monitoring_requests200_response.rb +62 -4
  21. data/lib/seatschart/models/get_api_monitoring_requests200_response_points_inner.rb +21 -4
  22. data/lib/seatschart/models/get_api_sandboxes200_response.rb +239 -0
  23. data/lib/seatschart/models/get_api_sandboxes200_response_items_inner.rb +431 -0
  24. data/lib/seatschart/models/get_api_sandboxes200_response_items_inner_rate_limits.rb +270 -0
  25. data/lib/seatschart/models/get_api_sandboxes200_response_items_inner_usage.rb +287 -0
  26. data/lib/seatschart/models/get_api_status200_response.rb +387 -0
  27. data/lib/seatschart/models/get_api_status200_response_components_inner.rb +330 -0
  28. data/lib/seatschart/models/get_api_status200_response_components_inner_days_inner.rb +301 -0
  29. data/lib/seatschart/models/get_api_status200_response_incidents_inner.rb +374 -0
  30. data/lib/seatschart/models/get_api_status200_response_maintenance_inner.rb +350 -0
  31. data/lib/seatschart/models/get_api_status503_response.rb +271 -0
  32. data/lib/seatschart/models/get_api_workspace_buyer_extra_data200_response.rb +241 -0
  33. data/lib/seatschart/models/get_api_workspace_defaults200_response.rb +254 -0
  34. data/lib/seatschart/models/get_api_workspace_defaults200_response_renderer.rb +246 -0
  35. data/lib/seatschart/models/get_api_workspace_defaults200_response_renderer_built_in.rb +270 -0
  36. data/lib/seatschart/models/get_api_workspaces200_response_items_inner.rb +34 -5
  37. data/lib/seatschart/models/patch_api_events_by_event_id_request.rb +16 -6
  38. data/lib/seatschart/models/patch_api_seasons_by_season_id_request.rb +15 -5
  39. data/lib/seatschart/models/patch_api_workspace_chart_validation_request_severities.rb +25 -4
  40. data/lib/seatschart/models/patch_api_workspace_defaults_request.rb +224 -0
  41. data/lib/seatschart/models/patch_api_workspace_defaults_request_renderer.rb +249 -0
  42. data/lib/seatschart/models/patch_api_workspace_settings_request.rb +6 -6
  43. data/lib/seatschart/models/post_api_charts_by_chart_id_actions_copy_to_workspace_request.rb +39 -1
  44. data/lib/seatschart/models/post_api_charts_by_chart_id_actions_validate_request.rb +1 -0
  45. data/lib/seatschart/models/post_api_charts_by_chart_id_map_publish422_response_issues_inner.rb +64 -6
  46. data/lib/seatschart/models/post_api_charts_by_chart_id_map_publish_request.rb +1 -1
  47. data/lib/seatschart/models/post_api_embed_tokens_request.rb +18 -15
  48. data/lib/seatschart/models/post_api_embed_tokens_request_safe_mode_options.rb +226 -0
  49. data/lib/seatschart/models/post_api_events_actions_edit_for_sale_config_request.rb +251 -0
  50. data/lib/seatschart/models/post_api_events_actions_edit_for_sale_config_request_events_inner.rb +322 -0
  51. data/lib/seatschart/models/post_api_events_bulk_request_events_inner.rb +42 -1
  52. data/lib/seatschart/models/post_api_events_by_event_id_actions_edit_for_sale_config_request.rb +277 -0
  53. data/lib/seatschart/models/post_api_events_by_event_id_actions_edit_for_sale_config_request_for_sale_inner.rb +319 -0
  54. data/lib/seatschart/models/post_api_events_by_event_id_map_publish_request.rb +215 -0
  55. data/lib/seatschart/models/post_api_events_request.rb +42 -1
  56. data/lib/seatschart/models/{patch_api_events_by_event_id_request_categories_inner.rb → post_api_events_request_categories_inner.rb} +3 -3
  57. data/lib/seatschart/models/post_api_extract_seats200_response.rb +459 -0
  58. data/lib/seatschart/models/post_api_extract_seats200_response_seats_inner.rb +323 -0
  59. data/lib/seatschart/models/post_api_extract_seats200_response_suggested_inner.rb +320 -0
  60. data/lib/seatschart/models/post_api_extract_seats_request.rb +124 -4
  61. data/lib/seatschart/models/post_api_extract_seats_request_examples.rb +105 -0
  62. data/lib/seatschart/models/post_api_extract_seats_request_examples_any_of_inner.rb +293 -0
  63. data/lib/seatschart/models/post_api_extract_seats_request_negatives.rb +105 -0
  64. data/lib/seatschart/models/post_api_extract_seats_request_region.rb +105 -0
  65. data/lib/seatschart/models/post_api_extract_seats_request_region_any_of.rb +363 -0
  66. data/lib/seatschart/models/post_api_sandboxes201_response.rb +245 -0
  67. data/lib/seatschart/models/post_api_sandboxes201_response_admin_key.rb +286 -0
  68. data/lib/seatschart/models/post_api_sandboxes201_response_copied.rb +313 -0
  69. data/lib/seatschart/models/post_api_sandboxes201_response_copied_charts_inner.rb +281 -0
  70. data/lib/seatschart/models/post_api_sandboxes201_response_copied_events_inner.rb +281 -0
  71. data/lib/seatschart/models/post_api_sandboxes201_response_copied_events_with_own_map_inner.rb +265 -0
  72. data/lib/seatschart/models/post_api_sandboxes201_response_copied_key_conflicts_inner.rb +287 -0
  73. data/lib/seatschart/models/post_api_sandboxes201_response_copied_seasons_inner.rb +312 -0
  74. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_copy_from_production200_response.rb +313 -0
  75. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_copy_from_production_request.rb +255 -0
  76. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_join200_response.rb +271 -0
  77. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_reset200_response.rb +268 -0
  78. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_reset_request.rb +225 -0
  79. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_admin_key201_response.rb +253 -0
  80. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_admin_key201_response_api_key.rb +286 -0
  81. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_admin_key_request.rb +252 -0
  82. data/lib/seatschart/models/post_api_sandboxes_request.rb +319 -0
  83. data/lib/seatschart/models/post_api_seasons_request.rb +14 -4
  84. data/lib/seatschart/models/post_api_seats_confirm_request.rb +5 -5
  85. data/lib/seatschart/models/post_api_seats_release_request.rb +5 -5
  86. data/lib/seatschart/models/post_api_seats_reserve_request.rb +5 -5
  87. data/lib/seatschart/models/post_api_workspaces_request.rb +1 -1
  88. data/lib/seatschart/models/put_api_charts_by_chart_id_map_draft_request.rb +1 -0
  89. data/lib/seatschart/models/put_api_workspace_buyer_extra_data_request.rb +260 -0
  90. data/lib/seatschart/models/put_internal_status_notices_request.rb +242 -0
  91. data/lib/seatschart/models/put_internal_status_notices_request_notices_inner.rb +445 -0
  92. data/lib/seatschart/retry.rb +106 -7
  93. data/lib/seatschart/version.rb +1 -1
  94. data/lib/seatschart.rb +53 -2
  95. metadata +55 -4
  96. data/lib/seatschart/api/default_api.rb +0 -763
@@ -20,7 +20,7 @@ module SeatsChart
20
20
  @api_client = api_client
21
21
  end
22
22
  # Delete (soft) a workspace
23
- # Workspaces are never hard-deleted: their charts, events, orders and audit history are kept for accounting and reconciliation. DELETE is a **soft delete** — exactly POST /workspaces/{workspaceId}/actions/deactivate (reversible with …/actions/activate). Dashboard session or a **workspace admin API key** (other API keys: 403 `ERR_PARTNER_SCOPE`); the caller (for a key: the admin it is bound to) must be an **admin** of the target workspace (403 otherwise, 404 when not a member). Idempotent. A deactivated workspace keeps all its data; its API keys, viewer/embed JWTs and public CDN reads are refused with 403 `workspace_deactivated` (effective on every API instance within 5 seconds), while dashboard members can still sign in so an admin can reactivate it. An admin key cannot deactivate its own workspace (409 `own_workspace`).
23
+ # Workspaces are never hard-deleted: their charts, events, orders and audit history are kept for accounting and reconciliation. DELETE is a **soft delete** — exactly POST /workspaces/{workspaceId}/actions/deactivate (reversible with …/actions/activate). Dashboard session or a **workspace admin API key** (other API keys: 403 `ERR_PARTNER_SCOPE`); the caller (for a key: the admin it is bound to) must be an **admin** of the target workspace (403 otherwise, 404 when not a member). Idempotent. A deactivated workspace keeps all its data; its API keys, viewer/embed JWTs and public CDN reads are refused with 403 `workspace_deactivated` (effective at once on every API instance through a Redis invalidation message, 5 seconds at most if it is lost), while dashboard members can still sign in so an admin can reactivate it. An admin key cannot deactivate its own workspace (409 `own_workspace`).
24
24
  # @param workspace_id [String]
25
25
  # @param [Hash] opts the optional parameters
26
26
  # @option opts [String] :idempotency_key Required on transactional routes. Reuse the same key for every retry of one logical operation; the API replays the stored outcome.
@@ -31,7 +31,7 @@ module SeatsChart
31
31
  end
32
32
 
33
33
  # Delete (soft) a workspace
34
- # Workspaces are never hard-deleted: their charts, events, orders and audit history are kept for accounting and reconciliation. DELETE is a **soft delete** — exactly POST /workspaces/{workspaceId}/actions/deactivate (reversible with …/actions/activate). Dashboard session or a **workspace admin API key** (other API keys: 403 `ERR_PARTNER_SCOPE`); the caller (for a key: the admin it is bound to) must be an **admin** of the target workspace (403 otherwise, 404 when not a member). Idempotent. A deactivated workspace keeps all its data; its API keys, viewer/embed JWTs and public CDN reads are refused with 403 `workspace_deactivated` (effective on every API instance within 5 seconds), while dashboard members can still sign in so an admin can reactivate it. An admin key cannot deactivate its own workspace (409 `own_workspace`).
34
+ # Workspaces are never hard-deleted: their charts, events, orders and audit history are kept for accounting and reconciliation. DELETE is a **soft delete** — exactly POST /workspaces/{workspaceId}/actions/deactivate (reversible with …/actions/activate). Dashboard session or a **workspace admin API key** (other API keys: 403 `ERR_PARTNER_SCOPE`); the caller (for a key: the admin it is bound to) must be an **admin** of the target workspace (403 otherwise, 404 when not a member). Idempotent. A deactivated workspace keeps all its data; its API keys, viewer/embed JWTs and public CDN reads are refused with 403 `workspace_deactivated` (effective at once on every API instance through a Redis invalidation message, 5 seconds at most if it is lost), while dashboard members can still sign in so an admin can reactivate it. An admin key cannot deactivate its own workspace (409 `own_workspace`).
35
35
  # @param workspace_id [String]
36
36
  # @param [Hash] opts the optional parameters
37
37
  # @option opts [String] :idempotency_key Required on transactional routes. Reuse the same key for every retry of one logical operation; the API replays the stored outcome.
@@ -102,7 +102,7 @@ module SeatsChart
102
102
  end
103
103
 
104
104
  # Get workspace profile for the authenticated tenant
105
- # Includes `publicKey` (`pub_…`) for `?workspaceKey=` on the viewer. The public key is not authentication — Bearer JWT or embed token is still required.
105
+ # Includes `publicKey` (`pub_…`) for `?workspaceKey=` on the viewer. The public key is not authentication — Bearer JWT or embed token is still required. `kind` is `sandbox` for a sandbox (`isTest: true`, see `/sandboxes`), with its production workspace in `parentWorkspaceId` and its last reset in `lastResetAt`.
106
106
  # @param [Hash] opts the optional parameters
107
107
  # @return [nil]
108
108
  def get_api_workspace(opts = {})
@@ -111,7 +111,7 @@ module SeatsChart
111
111
  end
112
112
 
113
113
  # Get workspace profile for the authenticated tenant
114
- # Includes `publicKey` (`pub_…`) for `?workspaceKey=` on the viewer. The public key is not authentication — Bearer JWT or embed token is still required.
114
+ # Includes `publicKey` (`pub_…`) for `?workspaceKey=` on the viewer. The public key is not authentication — Bearer JWT or embed token is still required. `kind` is `sandbox` for a sandbox (`isTest: true`, see `/sandboxes`), with its production workspace in `parentWorkspaceId` and its last reset in `lastResetAt`.
115
115
  # @param [Hash] opts the optional parameters
116
116
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
117
117
  def get_api_workspace_with_http_info(opts = {})
@@ -156,8 +156,65 @@ module SeatsChart
156
156
  return data, status_code, headers
157
157
  end
158
158
 
159
+ # Get the buyer extraData publication (opt-in, allow-listed keys)
160
+ # Object `extraData` is private by default (server, Event Manager, reports). With `enabled` and a non-empty `keys` allow-list (at most 16 keys of letters, digits, `_`, `-`, `.` and `:`), only those keys, with scalar values (strings up to 256 characters, numbers, booleans, null), are published for this workspace's events by `GET /api/public/{publicKey}/events/{eventId}/extra-data` and read by the renderer (rules `match.extraData`, templates `{extraData.key}`, host objects). Never part of the compact state. `resalePriceCents` is never published. The key list is kept while disabled.
161
+ # @param [Hash] opts the optional parameters
162
+ # @return [GetApiWorkspaceBuyerExtraData200Response]
163
+ def get_api_workspace_buyer_extra_data(opts = {})
164
+ data, _status_code, _headers = get_api_workspace_buyer_extra_data_with_http_info(opts)
165
+ data
166
+ end
167
+
168
+ # Get the buyer extraData publication (opt-in, allow-listed keys)
169
+ # Object &#x60;extraData&#x60; is private by default (server, Event Manager, reports). With &#x60;enabled&#x60; and a non-empty &#x60;keys&#x60; allow-list (at most 16 keys of letters, digits, &#x60;_&#x60;, &#x60;-&#x60;, &#x60;.&#x60; and &#x60;:&#x60;), only those keys, with scalar values (strings up to 256 characters, numbers, booleans, null), are published for this workspace&#39;s events by &#x60;GET /api/public/{publicKey}/events/{eventId}/extra-data&#x60; and read by the renderer (rules &#x60;match.extraData&#x60;, templates &#x60;{extraData.key}&#x60;, host objects). Never part of the compact state. &#x60;resalePriceCents&#x60; is never published. The key list is kept while disabled.
170
+ # @param [Hash] opts the optional parameters
171
+ # @return [Array<(GetApiWorkspaceBuyerExtraData200Response, Integer, Hash)>] GetApiWorkspaceBuyerExtraData200Response data, response status code and response headers
172
+ def get_api_workspace_buyer_extra_data_with_http_info(opts = {})
173
+ if @api_client.config.debugging
174
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspace_buyer_extra_data ...'
175
+ end
176
+ # resource path
177
+ local_var_path = '/api/workspace/buyer-extra-data'
178
+
179
+ # query parameters
180
+ query_params = opts[:query_params] || {}
181
+
182
+ # header parameters
183
+ header_params = opts[:header_params] || {}
184
+ # HTTP header 'Accept' (if needed)
185
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
186
+
187
+ # form parameters
188
+ form_params = opts[:form_params] || {}
189
+
190
+ # http body (model)
191
+ post_body = opts[:debug_body]
192
+
193
+ # return_type
194
+ return_type = opts[:debug_return_type] || 'GetApiWorkspaceBuyerExtraData200Response'
195
+
196
+ # auth_names
197
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
198
+
199
+ new_options = opts.merge(
200
+ :operation => :"WorkspaceApi.get_api_workspace_buyer_extra_data",
201
+ :header_params => header_params,
202
+ :query_params => query_params,
203
+ :form_params => form_params,
204
+ :body => post_body,
205
+ :auth_names => auth_names,
206
+ :return_type => return_type
207
+ )
208
+
209
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
210
+ if @api_client.config.debugging
211
+ @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspace_buyer_extra_data\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
212
+ end
213
+ return data, status_code, headers
214
+ end
215
+
159
216
  # Get chart validation severities
160
- # Level of every chart validation rule for this workspace (`off`, `warning` or `error`) plus the product defaults. The designer, `POST /charts/{chartId}/map/publish`, `POST /charts/{chartId}/actions/validate` and event creation all apply these levels. Rules: `no_objects` (no seats or GA areas), `empty_label` (unlabeled seats / GA areas), `duplicate_label` (same label in a section), `uncategorized` (objects without a category once categories exist), `overlap`, `table_too_small` (< 2 seats), `ga_invalid_capacity` (GA capacity missing or outside 1–100000), `empty_floor` (multi-floor maps), `empty_section`, `outside_section` (seat outside its section outline), `multiple_object_types` (one category used by seats, table seats and GA areas), `missing_focal_point`, `zone_missing_focal_point`, `orphan_gap` (one-seat gap in a row), `ga_table_capacity` (GA tables in an area hold more places than its capacity).
217
+ # Level of every chart validation rule for this workspace (`off`, `warning` or `error`) plus the product defaults. The designer, `POST /charts/{chartId}/map/publish`, `POST /charts/{chartId}/actions/validate` and event creation all apply these levels. Rules: `no_objects` (no seats or GA areas), `empty_label` (unlabeled seats / GA areas), `duplicate_label` (same label in a section), `uncategorized` (objects without a category once categories exist), `overlap`, `table_too_small` (< 2 seats), `ga_invalid_capacity` (GA capacity missing or outside 1–100000), `empty_floor` (multi-floor maps), `empty_section`, `outside_section` (seat outside its section outline), `multiple_object_types` (one category used by seats, table seats and GA areas), `missing_focal_point`, `zone_missing_focal_point`, `orphan_gap` (one-seat gap in a row), `ga_table_capacity` (GA tables in an area hold more places than its capacity), `images_size` (the chart's images download more than 2,048 KB in total).
161
218
  # @param [Hash] opts the optional parameters
162
219
  # @return [nil]
163
220
  def get_api_workspace_chart_validation(opts = {})
@@ -166,7 +223,7 @@ module SeatsChart
166
223
  end
167
224
 
168
225
  # Get chart validation severities
169
- # Level of every chart validation rule for this workspace (&#x60;off&#x60;, &#x60;warning&#x60; or &#x60;error&#x60;) plus the product defaults. The designer, &#x60;POST /charts/{chartId}/map/publish&#x60;, &#x60;POST /charts/{chartId}/actions/validate&#x60; and event creation all apply these levels. Rules: &#x60;no_objects&#x60; (no seats or GA areas), &#x60;empty_label&#x60; (unlabeled seats / GA areas), &#x60;duplicate_label&#x60; (same label in a section), &#x60;uncategorized&#x60; (objects without a category once categories exist), &#x60;overlap&#x60;, &#x60;table_too_small&#x60; (&lt; 2 seats), &#x60;ga_invalid_capacity&#x60; (GA capacity missing or outside 1–100000), &#x60;empty_floor&#x60; (multi-floor maps), &#x60;empty_section&#x60;, &#x60;outside_section&#x60; (seat outside its section outline), &#x60;multiple_object_types&#x60; (one category used by seats, table seats and GA areas), &#x60;missing_focal_point&#x60;, &#x60;zone_missing_focal_point&#x60;, &#x60;orphan_gap&#x60; (one-seat gap in a row), &#x60;ga_table_capacity&#x60; (GA tables in an area hold more places than its capacity).
226
+ # Level of every chart validation rule for this workspace (&#x60;off&#x60;, &#x60;warning&#x60; or &#x60;error&#x60;) plus the product defaults. The designer, &#x60;POST /charts/{chartId}/map/publish&#x60;, &#x60;POST /charts/{chartId}/actions/validate&#x60; and event creation all apply these levels. Rules: &#x60;no_objects&#x60; (no seats or GA areas), &#x60;empty_label&#x60; (unlabeled seats / GA areas), &#x60;duplicate_label&#x60; (same label in a section), &#x60;uncategorized&#x60; (objects without a category once categories exist), &#x60;overlap&#x60;, &#x60;table_too_small&#x60; (&lt; 2 seats), &#x60;ga_invalid_capacity&#x60; (GA capacity missing or outside 1–100000), &#x60;empty_floor&#x60; (multi-floor maps), &#x60;empty_section&#x60;, &#x60;outside_section&#x60; (seat outside its section outline), &#x60;multiple_object_types&#x60; (one category used by seats, table seats and GA areas), &#x60;missing_focal_point&#x60;, &#x60;zone_missing_focal_point&#x60;, &#x60;orphan_gap&#x60; (one-seat gap in a row), &#x60;ga_table_capacity&#x60; (GA tables in an area hold more places than its capacity), &#x60;images_size&#x60; (the chart&#39;s images download more than 2,048 KB in total).
170
227
  # @param [Hash] opts the optional parameters
171
228
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
172
229
  def get_api_workspace_chart_validation_with_http_info(opts = {})
@@ -211,6 +268,63 @@ module SeatsChart
211
268
  return data, status_code, headers
212
269
  end
213
270
 
271
+ # Get the workspace defaults (renderer settings, draft chart drawings)
272
+ # seats.io account `defaultRendererSettings`, `holdOnSelectForGAs` and draft chart drawings. `renderer` lists the defaults this workspace sets for its buyer seat maps (an absent option uses `rendererBuiltIn`): `multiSelectEnabled`, `showFullScreenButton`, `companionSeatValidationEnabled` (the companion-seat selection validator) and `holdOnSelectForGAs`. Resolution per option: explicit embed / host config > workspace default > built-in default. The defaults are served with the cached embed policy (`GET /api/events/{eventId}/embed-policy` → `rendererDefaults`; no per-request query). `draftChartDrawingsEnabled` (default true): with `false` the designer publishes every save directly, also for charts that already have events (auto-publish is no longer refused with 409 `ERR_AUTO_PUBLISH_CHART_HAS_EVENTS`).
273
+ # @param [Hash] opts the optional parameters
274
+ # @return [GetApiWorkspaceDefaults200Response]
275
+ def get_api_workspace_defaults(opts = {})
276
+ data, _status_code, _headers = get_api_workspace_defaults_with_http_info(opts)
277
+ data
278
+ end
279
+
280
+ # Get the workspace defaults (renderer settings, draft chart drawings)
281
+ # seats.io account &#x60;defaultRendererSettings&#x60;, &#x60;holdOnSelectForGAs&#x60; and draft chart drawings. &#x60;renderer&#x60; lists the defaults this workspace sets for its buyer seat maps (an absent option uses &#x60;rendererBuiltIn&#x60;): &#x60;multiSelectEnabled&#x60;, &#x60;showFullScreenButton&#x60;, &#x60;companionSeatValidationEnabled&#x60; (the companion-seat selection validator) and &#x60;holdOnSelectForGAs&#x60;. Resolution per option: explicit embed / host config &gt; workspace default &gt; built-in default. The defaults are served with the cached embed policy (&#x60;GET /api/events/{eventId}/embed-policy&#x60; → &#x60;rendererDefaults&#x60;; no per-request query). &#x60;draftChartDrawingsEnabled&#x60; (default true): with &#x60;false&#x60; the designer publishes every save directly, also for charts that already have events (auto-publish is no longer refused with 409 &#x60;ERR_AUTO_PUBLISH_CHART_HAS_EVENTS&#x60;).
282
+ # @param [Hash] opts the optional parameters
283
+ # @return [Array<(GetApiWorkspaceDefaults200Response, Integer, Hash)>] GetApiWorkspaceDefaults200Response data, response status code and response headers
284
+ def get_api_workspace_defaults_with_http_info(opts = {})
285
+ if @api_client.config.debugging
286
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspace_defaults ...'
287
+ end
288
+ # resource path
289
+ local_var_path = '/api/workspace/defaults'
290
+
291
+ # query parameters
292
+ query_params = opts[:query_params] || {}
293
+
294
+ # header parameters
295
+ header_params = opts[:header_params] || {}
296
+ # HTTP header 'Accept' (if needed)
297
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
298
+
299
+ # form parameters
300
+ form_params = opts[:form_params] || {}
301
+
302
+ # http body (model)
303
+ post_body = opts[:debug_body]
304
+
305
+ # return_type
306
+ return_type = opts[:debug_return_type] || 'GetApiWorkspaceDefaults200Response'
307
+
308
+ # auth_names
309
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
310
+
311
+ new_options = opts.merge(
312
+ :operation => :"WorkspaceApi.get_api_workspace_defaults",
313
+ :header_params => header_params,
314
+ :query_params => query_params,
315
+ :form_params => form_params,
316
+ :body => post_body,
317
+ :auth_names => auth_names,
318
+ :return_type => return_type
319
+ )
320
+
321
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
322
+ if @api_client.config.debugging
323
+ @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspace_defaults\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
324
+ end
325
+ return data, status_code, headers
326
+ end
327
+
214
328
  # Get the workspace integration mode (pricing source)
215
329
  # `pricingSource`: where prices come from for events without their own override — `partner` (the ticketing platform passes prices to the renderer and declares amounts at confirm; no quote required), `synced_catalog` (the platform pushes a price table with PUT /events/{eventId}/pricing; confirmations are validated against it) or `seatschart_catalog` (prices from the designer catalog; a quote is required before every confirm). New workspaces start with `partner`; workspaces created before pricing modes keep `seatschart_catalog`. `ownCatalog`: show the direct-selling tools (event prices, box office) in the dashboard although prices come from the platform.
216
330
  # @param [Hash] opts the optional parameters
@@ -269,7 +383,7 @@ module SeatsChart
269
383
  end
270
384
 
271
385
  # Get workspace settings (effective value and source)
272
- # Effective value of every workspace setting, the default it inherits and whether it is overridden. Settings: `holdPeriodMinutes` (1–120; default `SEAT_HOLD_TTL_SEC`, 10 min) — TTL of new and renewed seat/GA holds; `maxSeatsPerHoldToken` (1–64; default 64) — seats one hold token may hold across appends; `ticketBuyerValidation` (default off) — buyer tokens are minted only for a registered ticket buyer id (`POST /ticket-buyers`) and bind it, buyer holds must carry it; `gaPlacesToChannels` (default on) — inventory channels may receive GA place quotas (`areaPlaces`); `newEventsNotForSale` (default off) — new events start with every seat and GA area not for sale (seats.io workspace for-sale mode; an explicit `forSaleConfig` at creation wins, season members still follow the season source). Each setting either uses the platform default or is overridden for this workspace; `sources` says which.
386
+ # Effective value of every workspace setting, the default it inherits and whether it is overridden. Settings: `holdPeriodMinutes` (1–120; default `SEAT_HOLD_TTL_SEC`, 10 min) — TTL of new and renewed seat/GA holds; `maxSeatsPerHoldToken` (1–1000; default 64) — seats one hold token may hold across appends; above 64 the workspace opts into large group holds: one atomic reserve request holds up to this many seats of one event and the sales-channel defaults (web 8, box office 20, partner 64) step aside, while the organizer booking limits still apply; `ticketBuyerValidation` (default off) — buyer tokens are minted only for a registered ticket buyer id (`POST /ticket-buyers`) and bind it, buyer holds must carry it; `gaPlacesToChannels` (default on) — inventory channels may receive GA place quotas (`areaPlaces`); `newEventsNotForSale` (default off) — new events start with every seat and GA area not for sale (seats.io workspace for-sale mode; an explicit `forSaleConfig` at creation wins, season members still follow the season source). Each setting either uses the platform default or is overridden for this workspace; `sources` says which.
273
387
  # @param [Hash] opts the optional parameters
274
388
  # @return [GetApiWorkspaceSettings200Response]
275
389
  def get_api_workspace_settings(opts = {})
@@ -278,7 +392,7 @@ module SeatsChart
278
392
  end
279
393
 
280
394
  # Get workspace settings (effective value and source)
281
- # Effective value of every workspace setting, the default it inherits and whether it is overridden. Settings: &#x60;holdPeriodMinutes&#x60; (1–120; default &#x60;SEAT_HOLD_TTL_SEC&#x60;, 10 min) — TTL of new and renewed seat/GA holds; &#x60;maxSeatsPerHoldToken&#x60; (1–64; default 64) — seats one hold token may hold across appends; &#x60;ticketBuyerValidation&#x60; (default off) — buyer tokens are minted only for a registered ticket buyer id (&#x60;POST /ticket-buyers&#x60;) and bind it, buyer holds must carry it; &#x60;gaPlacesToChannels&#x60; (default on) — inventory channels may receive GA place quotas (&#x60;areaPlaces&#x60;); &#x60;newEventsNotForSale&#x60; (default off) — new events start with every seat and GA area not for sale (seats.io workspace for-sale mode; an explicit &#x60;forSaleConfig&#x60; at creation wins, season members still follow the season source). Each setting either uses the platform default or is overridden for this workspace; &#x60;sources&#x60; says which.
395
+ # Effective value of every workspace setting, the default it inherits and whether it is overridden. Settings: &#x60;holdPeriodMinutes&#x60; (1–120; default &#x60;SEAT_HOLD_TTL_SEC&#x60;, 10 min) — TTL of new and renewed seat/GA holds; &#x60;maxSeatsPerHoldToken&#x60; (1–1000; default 64) — seats one hold token may hold across appends; above 64 the workspace opts into large group holds: one atomic reserve request holds up to this many seats of one event and the sales-channel defaults (web 8, box office 20, partner 64) step aside, while the organizer booking limits still apply; &#x60;ticketBuyerValidation&#x60; (default off) — buyer tokens are minted only for a registered ticket buyer id (&#x60;POST /ticket-buyers&#x60;) and bind it, buyer holds must carry it; &#x60;gaPlacesToChannels&#x60; (default on) — inventory channels may receive GA place quotas (&#x60;areaPlaces&#x60;); &#x60;newEventsNotForSale&#x60; (default off) — new events start with every seat and GA area not for sale (seats.io workspace for-sale mode; an explicit &#x60;forSaleConfig&#x60; at creation wins, season members still follow the season source). Each setting either uses the platform default or is overridden for this workspace; &#x60;sources&#x60; says which.
282
396
  # @param [Hash] opts the optional parameters
283
397
  # @return [Array<(GetApiWorkspaceSettings200Response, Integer, Hash)>] GetApiWorkspaceSettings200Response data, response status code and response headers
284
398
  def get_api_workspace_settings_with_http_info(opts = {})
@@ -326,8 +440,10 @@ module SeatsChart
326
440
  end
327
441
 
328
442
  # List my workspaces
329
- # Every workspace the signed-in dashboard user belongs to, with role, effective plan, subscription status, activation status and `isCurrent`. Dashboard session, or a **workspace admin API key** (`POST /api/keys` with `workspaceAdmin: true`): it lists the workspaces of the admin it is bound to. Other API keys: 403 `ERR_PARTNER_SCOPE`.
443
+ # Every workspace the signed-in dashboard user belongs to, with role, effective plan, subscription status, activation status and `isCurrent`. `?filter=` keeps the workspaces whose name or id contains the text; `?status=active|inactive` keeps the active or the deactivated ones. Dashboard session, or a **workspace admin API key** (`POST /api/keys` with `workspaceAdmin: true`): it lists the workspaces of the admin it is bound to. Other API keys: 403 `ERR_PARTNER_SCOPE`.
330
444
  # @param [Hash] opts the optional parameters
445
+ # @option opts [String] :filter Case-insensitive substring of the workspace name or id (seats.io &#x60;filter&#x60;).
446
+ # @option opts [String] :status &#x60;active&#x60; (seats.io listActive), &#x60;inactive&#x60; (deactivated; seats.io listInactive) or &#x60;all&#x60; (default).
331
447
  # @return [GetApiWorkspaces200Response]
332
448
  def get_api_workspaces(opts = {})
333
449
  data, _status_code, _headers = get_api_workspaces_with_http_info(opts)
@@ -335,18 +451,34 @@ module SeatsChart
335
451
  end
336
452
 
337
453
  # List my workspaces
338
- # Every workspace the signed-in dashboard user belongs to, with role, effective plan, subscription status, activation status and &#x60;isCurrent&#x60;. Dashboard session, or a **workspace admin API key** (&#x60;POST /api/keys&#x60; with &#x60;workspaceAdmin: true&#x60;): it lists the workspaces of the admin it is bound to. Other API keys: 403 &#x60;ERR_PARTNER_SCOPE&#x60;.
454
+ # Every workspace the signed-in dashboard user belongs to, with role, effective plan, subscription status, activation status and &#x60;isCurrent&#x60;. &#x60;?filter&#x3D;&#x60; keeps the workspaces whose name or id contains the text; &#x60;?status&#x3D;active|inactive&#x60; keeps the active or the deactivated ones. Dashboard session, or a **workspace admin API key** (&#x60;POST /api/keys&#x60; with &#x60;workspaceAdmin: true&#x60;): it lists the workspaces of the admin it is bound to. Other API keys: 403 &#x60;ERR_PARTNER_SCOPE&#x60;.
339
455
  # @param [Hash] opts the optional parameters
456
+ # @option opts [String] :filter Case-insensitive substring of the workspace name or id (seats.io &#x60;filter&#x60;).
457
+ # @option opts [String] :status &#x60;active&#x60; (seats.io listActive), &#x60;inactive&#x60; (deactivated; seats.io listInactive) or &#x60;all&#x60; (default).
340
458
  # @return [Array<(GetApiWorkspaces200Response, Integer, Hash)>] GetApiWorkspaces200Response data, response status code and response headers
341
459
  def get_api_workspaces_with_http_info(opts = {})
342
460
  if @api_client.config.debugging
343
461
  @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspaces ...'
344
462
  end
463
+ if @api_client.config.client_side_validation && !opts[:'filter'].nil? && opts[:'filter'].to_s.length > 128
464
+ fail ArgumentError, 'invalid value for "opts[:"filter"]" when calling WorkspaceApi.get_api_workspaces, the character length must be smaller than or equal to 128.'
465
+ end
466
+
467
+ if @api_client.config.client_side_validation && !opts[:'filter'].nil? && opts[:'filter'].to_s.length < 1
468
+ fail ArgumentError, 'invalid value for "opts[:"filter"]" when calling WorkspaceApi.get_api_workspaces, the character length must be great than or equal to 1.'
469
+ end
470
+
471
+ allowable_values = ["active", "inactive", "all"]
472
+ if @api_client.config.client_side_validation && opts[:'status'] && !allowable_values.include?(opts[:'status'])
473
+ fail ArgumentError, "invalid value for \"status\", must be one of #{allowable_values}"
474
+ end
345
475
  # resource path
346
476
  local_var_path = '/api/workspaces'
347
477
 
348
478
  # query parameters
349
479
  query_params = opts[:query_params] || {}
480
+ query_params[:'filter'] = opts[:'filter'] if !opts[:'filter'].nil?
481
+ query_params[:'status'] = opts[:'status'] if !opts[:'status'].nil?
350
482
 
351
483
  # header parameters
352
484
  header_params = opts[:header_params] || {}
@@ -529,7 +661,7 @@ module SeatsChart
529
661
  end
530
662
 
531
663
  # Update chart validation severities
532
- # Workspace admins only. Merges `severities` into the stored levels (only differences from the defaults are kept); `reset: true` restores the defaults first. Takes effect immediately in the designer and the API (other API replicas within 5 seconds). Charts are not re-validated: stored per-rule counts are re-read under the new levels. Every change is written to the audit log (`workspace.chart_validation.update`). Rules: `no_objects` (no seats or GA areas), `empty_label` (unlabeled seats / GA areas), `duplicate_label` (same label in a section), `uncategorized` (objects without a category once categories exist), `overlap`, `table_too_small` (< 2 seats), `ga_invalid_capacity` (GA capacity missing or outside 1–100000), `empty_floor` (multi-floor maps), `empty_section`, `outside_section` (seat outside its section outline), `multiple_object_types` (one category used by seats, table seats and GA areas), `missing_focal_point`, `zone_missing_focal_point`, `orphan_gap` (one-seat gap in a row), `ga_table_capacity` (GA tables in an area hold more places than its capacity).
664
+ # Workspace admins only. Merges `severities` into the stored levels (only differences from the defaults are kept); `reset: true` restores the defaults first. Takes effect immediately in the designer and the API (other API replicas within milliseconds through a Redis invalidation message, 5 seconds at most if it is lost). Charts are not re-validated: stored per-rule counts are re-read under the new levels. Every change is written to the audit log (`workspace.chart_validation.update`). Rules: `no_objects` (no seats or GA areas), `empty_label` (unlabeled seats / GA areas), `duplicate_label` (same label in a section), `uncategorized` (objects without a category once categories exist), `overlap`, `table_too_small` (< 2 seats), `ga_invalid_capacity` (GA capacity missing or outside 1–100000), `empty_floor` (multi-floor maps), `empty_section`, `outside_section` (seat outside its section outline), `multiple_object_types` (one category used by seats, table seats and GA areas), `missing_focal_point`, `zone_missing_focal_point`, `orphan_gap` (one-seat gap in a row), `ga_table_capacity` (GA tables in an area hold more places than its capacity), `images_size` (the chart's images download more than 2,048 KB in total).
533
665
  # @param patch_api_workspace_chart_validation_request [PatchApiWorkspaceChartValidationRequest]
534
666
  # @param [Hash] opts the optional parameters
535
667
  # @option opts [String] :idempotency_key Required on transactional routes. Reuse the same key for every retry of one logical operation; the API replays the stored outcome.
@@ -540,7 +672,7 @@ module SeatsChart
540
672
  end
541
673
 
542
674
  # Update chart validation severities
543
- # Workspace admins only. Merges &#x60;severities&#x60; into the stored levels (only differences from the defaults are kept); &#x60;reset: true&#x60; restores the defaults first. Takes effect immediately in the designer and the API (other API replicas within 5 seconds). Charts are not re-validated: stored per-rule counts are re-read under the new levels. Every change is written to the audit log (&#x60;workspace.chart_validation.update&#x60;). Rules: &#x60;no_objects&#x60; (no seats or GA areas), &#x60;empty_label&#x60; (unlabeled seats / GA areas), &#x60;duplicate_label&#x60; (same label in a section), &#x60;uncategorized&#x60; (objects without a category once categories exist), &#x60;overlap&#x60;, &#x60;table_too_small&#x60; (&lt; 2 seats), &#x60;ga_invalid_capacity&#x60; (GA capacity missing or outside 1–100000), &#x60;empty_floor&#x60; (multi-floor maps), &#x60;empty_section&#x60;, &#x60;outside_section&#x60; (seat outside its section outline), &#x60;multiple_object_types&#x60; (one category used by seats, table seats and GA areas), &#x60;missing_focal_point&#x60;, &#x60;zone_missing_focal_point&#x60;, &#x60;orphan_gap&#x60; (one-seat gap in a row), &#x60;ga_table_capacity&#x60; (GA tables in an area hold more places than its capacity).
675
+ # Workspace admins only. Merges &#x60;severities&#x60; into the stored levels (only differences from the defaults are kept); &#x60;reset: true&#x60; restores the defaults first. Takes effect immediately in the designer and the API (other API replicas within milliseconds through a Redis invalidation message, 5 seconds at most if it is lost). Charts are not re-validated: stored per-rule counts are re-read under the new levels. Every change is written to the audit log (&#x60;workspace.chart_validation.update&#x60;). Rules: &#x60;no_objects&#x60; (no seats or GA areas), &#x60;empty_label&#x60; (unlabeled seats / GA areas), &#x60;duplicate_label&#x60; (same label in a section), &#x60;uncategorized&#x60; (objects without a category once categories exist), &#x60;overlap&#x60;, &#x60;table_too_small&#x60; (&lt; 2 seats), &#x60;ga_invalid_capacity&#x60; (GA capacity missing or outside 1–100000), &#x60;empty_floor&#x60; (multi-floor maps), &#x60;empty_section&#x60;, &#x60;outside_section&#x60; (seat outside its section outline), &#x60;multiple_object_types&#x60; (one category used by seats, table seats and GA areas), &#x60;missing_focal_point&#x60;, &#x60;zone_missing_focal_point&#x60;, &#x60;orphan_gap&#x60; (one-seat gap in a row), &#x60;ga_table_capacity&#x60; (GA tables in an area hold more places than its capacity), &#x60;images_size&#x60; (the chart&#39;s images download more than 2,048 KB in total).
544
676
  # @param patch_api_workspace_chart_validation_request [PatchApiWorkspaceChartValidationRequest]
545
677
  # @param [Hash] opts the optional parameters
546
678
  # @option opts [String] :idempotency_key Required on transactional routes. Reuse the same key for every retry of one logical operation; the API replays the stored outcome.
@@ -605,8 +737,85 @@ module SeatsChart
605
737
  return data, status_code, headers
606
738
  end
607
739
 
740
+ # Change the workspace defaults (renderer settings, draft chart drawings)
741
+ # Workspace admins only (dashboard session; API keys can read, not change: 403). A boolean sets a renderer default, `null` returns it to the built-in default, omitted options are unchanged. Takes effect within seconds on every API instance (tenant config cache invalidation) and within a minute on buyer pages (the viewer caches the embed policy). Audited (`workspace.defaults.update`). seats.io account `defaultRendererSettings`, `holdOnSelectForGAs` and draft chart drawings. `renderer` lists the defaults this workspace sets for its buyer seat maps (an absent option uses `rendererBuiltIn`): `multiSelectEnabled`, `showFullScreenButton`, `companionSeatValidationEnabled` (the companion-seat selection validator) and `holdOnSelectForGAs`. Resolution per option: explicit embed / host config > workspace default > built-in default. The defaults are served with the cached embed policy (`GET /api/events/{eventId}/embed-policy` → `rendererDefaults`; no per-request query). `draftChartDrawingsEnabled` (default true): with `false` the designer publishes every save directly, also for charts that already have events (auto-publish is no longer refused with 409 `ERR_AUTO_PUBLISH_CHART_HAS_EVENTS`).
742
+ # @param patch_api_workspace_defaults_request [PatchApiWorkspaceDefaultsRequest]
743
+ # @param [Hash] opts the optional parameters
744
+ # @option opts [String] :idempotency_key Required on transactional routes. Reuse the same key for every retry of one logical operation; the API replays the stored outcome.
745
+ # @return [nil]
746
+ def patch_api_workspace_defaults(patch_api_workspace_defaults_request, opts = {})
747
+ patch_api_workspace_defaults_with_http_info(patch_api_workspace_defaults_request, opts)
748
+ nil
749
+ end
750
+
751
+ # Change the workspace defaults (renderer settings, draft chart drawings)
752
+ # Workspace admins only (dashboard session; API keys can read, not change: 403). A boolean sets a renderer default, &#x60;null&#x60; returns it to the built-in default, omitted options are unchanged. Takes effect within seconds on every API instance (tenant config cache invalidation) and within a minute on buyer pages (the viewer caches the embed policy). Audited (&#x60;workspace.defaults.update&#x60;). seats.io account &#x60;defaultRendererSettings&#x60;, &#x60;holdOnSelectForGAs&#x60; and draft chart drawings. &#x60;renderer&#x60; lists the defaults this workspace sets for its buyer seat maps (an absent option uses &#x60;rendererBuiltIn&#x60;): &#x60;multiSelectEnabled&#x60;, &#x60;showFullScreenButton&#x60;, &#x60;companionSeatValidationEnabled&#x60; (the companion-seat selection validator) and &#x60;holdOnSelectForGAs&#x60;. Resolution per option: explicit embed / host config &gt; workspace default &gt; built-in default. The defaults are served with the cached embed policy (&#x60;GET /api/events/{eventId}/embed-policy&#x60; → &#x60;rendererDefaults&#x60;; no per-request query). &#x60;draftChartDrawingsEnabled&#x60; (default true): with &#x60;false&#x60; the designer publishes every save directly, also for charts that already have events (auto-publish is no longer refused with 409 &#x60;ERR_AUTO_PUBLISH_CHART_HAS_EVENTS&#x60;).
753
+ # @param patch_api_workspace_defaults_request [PatchApiWorkspaceDefaultsRequest]
754
+ # @param [Hash] opts the optional parameters
755
+ # @option opts [String] :idempotency_key Required on transactional routes. Reuse the same key for every retry of one logical operation; the API replays the stored outcome.
756
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
757
+ def patch_api_workspace_defaults_with_http_info(patch_api_workspace_defaults_request, opts = {})
758
+ if @api_client.config.debugging
759
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.patch_api_workspace_defaults ...'
760
+ end
761
+ # verify the required parameter 'patch_api_workspace_defaults_request' is set
762
+ if @api_client.config.client_side_validation && patch_api_workspace_defaults_request.nil?
763
+ fail ArgumentError, "Missing the required parameter 'patch_api_workspace_defaults_request' when calling WorkspaceApi.patch_api_workspace_defaults"
764
+ end
765
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
766
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspace_defaults, the character length must be smaller than or equal to 255.'
767
+ end
768
+
769
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
770
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspace_defaults, the character length must be great than or equal to 1.'
771
+ end
772
+
773
+ # resource path
774
+ local_var_path = '/api/workspace/defaults'
775
+
776
+ # query parameters
777
+ query_params = opts[:query_params] || {}
778
+
779
+ # header parameters
780
+ header_params = opts[:header_params] || {}
781
+ # HTTP header 'Content-Type'
782
+ content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
783
+ if !content_type.nil?
784
+ header_params['Content-Type'] = content_type
785
+ end
786
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
787
+
788
+ # form parameters
789
+ form_params = opts[:form_params] || {}
790
+
791
+ # http body (model)
792
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(patch_api_workspace_defaults_request)
793
+
794
+ # return_type
795
+ return_type = opts[:debug_return_type]
796
+
797
+ # auth_names
798
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
799
+
800
+ new_options = opts.merge(
801
+ :operation => :"WorkspaceApi.patch_api_workspace_defaults",
802
+ :header_params => header_params,
803
+ :query_params => query_params,
804
+ :form_params => form_params,
805
+ :body => post_body,
806
+ :auth_names => auth_names,
807
+ :return_type => return_type
808
+ )
809
+
810
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
811
+ if @api_client.config.debugging
812
+ @api_client.config.logger.debug "API called: WorkspaceApi#patch_api_workspace_defaults\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
813
+ end
814
+ return data, status_code, headers
815
+ end
816
+
608
817
  # Change the workspace integration mode
609
- # Workspace admins only (dashboard session). Takes effect within 5 seconds on every API instance. Audited (`workspace.integration.update`). `pricingSource`: where prices come from for events without their own override — `partner` (the ticketing platform passes prices to the renderer and declares amounts at confirm; no quote required), `synced_catalog` (the platform pushes a price table with PUT /events/{eventId}/pricing; confirmations are validated against it) or `seatschart_catalog` (prices from the designer catalog; a quote is required before every confirm). New workspaces start with `partner`; workspaces created before pricing modes keep `seatschart_catalog`. `ownCatalog`: show the direct-selling tools (event prices, box office) in the dashboard although prices come from the platform.
818
+ # Workspace admins only (dashboard session). Takes effect at once on every API instance (Redis invalidation message; 5 seconds at most if it is lost). Audited (`workspace.integration.update`). `pricingSource`: where prices come from for events without their own override — `partner` (the ticketing platform passes prices to the renderer and declares amounts at confirm; no quote required), `synced_catalog` (the platform pushes a price table with PUT /events/{eventId}/pricing; confirmations are validated against it) or `seatschart_catalog` (prices from the designer catalog; a quote is required before every confirm). New workspaces start with `partner`; workspaces created before pricing modes keep `seatschart_catalog`. `ownCatalog`: show the direct-selling tools (event prices, box office) in the dashboard although prices come from the platform.
610
819
  # @param patch_api_workspace_integration_request [PatchApiWorkspaceIntegrationRequest]
611
820
  # @param [Hash] opts the optional parameters
612
821
  # @option opts [String] :idempotency_key Required on transactional routes. Reuse the same key for every retry of one logical operation; the API replays the stored outcome.
@@ -617,7 +826,7 @@ module SeatsChart
617
826
  end
618
827
 
619
828
  # Change the workspace integration mode
620
- # Workspace admins only (dashboard session). Takes effect within 5 seconds on every API instance. Audited (&#x60;workspace.integration.update&#x60;). &#x60;pricingSource&#x60;: where prices come from for events without their own override — &#x60;partner&#x60; (the ticketing platform passes prices to the renderer and declares amounts at confirm; no quote required), &#x60;synced_catalog&#x60; (the platform pushes a price table with PUT /events/{eventId}/pricing; confirmations are validated against it) or &#x60;seatschart_catalog&#x60; (prices from the designer catalog; a quote is required before every confirm). New workspaces start with &#x60;partner&#x60;; workspaces created before pricing modes keep &#x60;seatschart_catalog&#x60;. &#x60;ownCatalog&#x60;: show the direct-selling tools (event prices, box office) in the dashboard although prices come from the platform.
829
+ # Workspace admins only (dashboard session). Takes effect at once on every API instance (Redis invalidation message; 5 seconds at most if it is lost). Audited (&#x60;workspace.integration.update&#x60;). &#x60;pricingSource&#x60;: where prices come from for events without their own override — &#x60;partner&#x60; (the ticketing platform passes prices to the renderer and declares amounts at confirm; no quote required), &#x60;synced_catalog&#x60; (the platform pushes a price table with PUT /events/{eventId}/pricing; confirmations are validated against it) or &#x60;seatschart_catalog&#x60; (prices from the designer catalog; a quote is required before every confirm). New workspaces start with &#x60;partner&#x60;; workspaces created before pricing modes keep &#x60;seatschart_catalog&#x60;. &#x60;ownCatalog&#x60;: show the direct-selling tools (event prices, box office) in the dashboard although prices come from the platform.
621
830
  # @param patch_api_workspace_integration_request [PatchApiWorkspaceIntegrationRequest]
622
831
  # @param [Hash] opts the optional parameters
623
832
  # @option opts [String] :idempotency_key Required on transactional routes. Reuse the same key for every retry of one logical operation; the API replays the stored outcome.
@@ -683,7 +892,7 @@ module SeatsChart
683
892
  end
684
893
 
685
894
  # Override workspace settings or return them to the default
686
- # Workspace admins only (dashboard session). A value overrides the default for this workspace; `null` returns the setting to the default; omitted settings are unchanged. Takes effect immediately on this API instance and within 5 seconds on the others (read from the tenant config cache; no per-request query). Every change is audited (`workspace.settings.update`). Settings: `holdPeriodMinutes` (1–120; default `SEAT_HOLD_TTL_SEC`, 10 min) — TTL of new and renewed seat/GA holds; `maxSeatsPerHoldToken` (1–64; default 64) — seats one hold token may hold across appends; `ticketBuyerValidation` (default off) — buyer tokens are minted only for a registered ticket buyer id (`POST /ticket-buyers`) and bind it, buyer holds must carry it; `gaPlacesToChannels` (default on) — inventory channels may receive GA place quotas (`areaPlaces`); `newEventsNotForSale` (default off) — new events start with every seat and GA area not for sale (seats.io workspace for-sale mode; an explicit `forSaleConfig` at creation wins, season members still follow the season source). Each setting either uses the platform default or is overridden for this workspace; `sources` says which.
895
+ # Workspace admins only (dashboard session). A value overrides the default for this workspace; `null` returns the setting to the default; omitted settings are unchanged. Takes effect immediately on this API instance and within milliseconds on the others through a Redis invalidation message, 5 seconds at most if it is lost (read from the tenant config cache; no per-request query). Every change is audited (`workspace.settings.update`). Settings: `holdPeriodMinutes` (1–120; default `SEAT_HOLD_TTL_SEC`, 10 min) — TTL of new and renewed seat/GA holds; `maxSeatsPerHoldToken` (1–1000; default 64) — seats one hold token may hold across appends; above 64 the workspace opts into large group holds: one atomic reserve request holds up to this many seats of one event and the sales-channel defaults (web 8, box office 20, partner 64) step aside, while the organizer booking limits still apply; `ticketBuyerValidation` (default off) — buyer tokens are minted only for a registered ticket buyer id (`POST /ticket-buyers`) and bind it, buyer holds must carry it; `gaPlacesToChannels` (default on) — inventory channels may receive GA place quotas (`areaPlaces`); `newEventsNotForSale` (default off) — new events start with every seat and GA area not for sale (seats.io workspace for-sale mode; an explicit `forSaleConfig` at creation wins, season members still follow the season source). Each setting either uses the platform default or is overridden for this workspace; `sources` says which.
687
896
  # @param patch_api_workspace_settings_request [PatchApiWorkspaceSettingsRequest]
688
897
  # @param [Hash] opts the optional parameters
689
898
  # @option opts [String] :idempotency_key Required on transactional routes. Reuse the same key for every retry of one logical operation; the API replays the stored outcome.
@@ -694,7 +903,7 @@ module SeatsChart
694
903
  end
695
904
 
696
905
  # Override workspace settings or return them to the default
697
- # Workspace admins only (dashboard session). A value overrides the default for this workspace; &#x60;null&#x60; returns the setting to the default; omitted settings are unchanged. Takes effect immediately on this API instance and within 5 seconds on the others (read from the tenant config cache; no per-request query). Every change is audited (&#x60;workspace.settings.update&#x60;). Settings: &#x60;holdPeriodMinutes&#x60; (1–120; default &#x60;SEAT_HOLD_TTL_SEC&#x60;, 10 min) — TTL of new and renewed seat/GA holds; &#x60;maxSeatsPerHoldToken&#x60; (1–64; default 64) — seats one hold token may hold across appends; &#x60;ticketBuyerValidation&#x60; (default off) — buyer tokens are minted only for a registered ticket buyer id (&#x60;POST /ticket-buyers&#x60;) and bind it, buyer holds must carry it; &#x60;gaPlacesToChannels&#x60; (default on) — inventory channels may receive GA place quotas (&#x60;areaPlaces&#x60;); &#x60;newEventsNotForSale&#x60; (default off) — new events start with every seat and GA area not for sale (seats.io workspace for-sale mode; an explicit &#x60;forSaleConfig&#x60; at creation wins, season members still follow the season source). Each setting either uses the platform default or is overridden for this workspace; &#x60;sources&#x60; says which.
906
+ # Workspace admins only (dashboard session). A value overrides the default for this workspace; &#x60;null&#x60; returns the setting to the default; omitted settings are unchanged. Takes effect immediately on this API instance and within milliseconds on the others through a Redis invalidation message, 5 seconds at most if it is lost (read from the tenant config cache; no per-request query). Every change is audited (&#x60;workspace.settings.update&#x60;). Settings: &#x60;holdPeriodMinutes&#x60; (1–120; default &#x60;SEAT_HOLD_TTL_SEC&#x60;, 10 min) — TTL of new and renewed seat/GA holds; &#x60;maxSeatsPerHoldToken&#x60; (1–1000; default 64) — seats one hold token may hold across appends; above 64 the workspace opts into large group holds: one atomic reserve request holds up to this many seats of one event and the sales-channel defaults (web 8, box office 20, partner 64) step aside, while the organizer booking limits still apply; &#x60;ticketBuyerValidation&#x60; (default off) — buyer tokens are minted only for a registered ticket buyer id (&#x60;POST /ticket-buyers&#x60;) and bind it, buyer holds must carry it; &#x60;gaPlacesToChannels&#x60; (default on) — inventory channels may receive GA place quotas (&#x60;areaPlaces&#x60;); &#x60;newEventsNotForSale&#x60; (default off) — new events start with every seat and GA area not for sale (seats.io workspace for-sale mode; an explicit &#x60;forSaleConfig&#x60; at creation wins, season members still follow the season source). Each setting either uses the platform default or is overridden for this workspace; &#x60;sources&#x60; says which.
698
907
  # @param patch_api_workspace_settings_request [PatchApiWorkspaceSettingsRequest]
699
908
  # @param [Hash] opts the optional parameters
700
909
  # @option opts [String] :idempotency_key Required on transactional routes. Reuse the same key for every retry of one logical operation; the API replays the stored outcome.
@@ -996,7 +1205,7 @@ module SeatsChart
996
1205
  end
997
1206
 
998
1207
  # Reactivate a workspace
999
- # Dashboard session or a **workspace admin API key** (other API keys: 403 `ERR_PARTNER_SCOPE`); the caller (for a key: the admin it is bound to) must be an **admin** of the target workspace (403 otherwise, 404 when not a member). Idempotent. A deactivated workspace keeps all its data; its API keys, viewer/embed JWTs and public CDN reads are refused with 403 `workspace_deactivated` (effective on every API instance within 5 seconds), while dashboard members can still sign in so an admin can reactivate it. An admin key cannot deactivate its own workspace (409 `own_workspace`).
1208
+ # Dashboard session or a **workspace admin API key** (other API keys: 403 `ERR_PARTNER_SCOPE`); the caller (for a key: the admin it is bound to) must be an **admin** of the target workspace (403 otherwise, 404 when not a member). Idempotent. A deactivated workspace keeps all its data; its API keys, viewer/embed JWTs and public CDN reads are refused with 403 `workspace_deactivated` (effective at once on every API instance through a Redis invalidation message, 5 seconds at most if it is lost), while dashboard members can still sign in so an admin can reactivate it. An admin key cannot deactivate its own workspace (409 `own_workspace`).
1000
1209
  # @param workspace_id [String]
1001
1210
  # @param [Hash] opts the optional parameters
1002
1211
  # @option opts [String] :idempotency_key Required on transactional routes. Reuse the same key for every retry of one logical operation; the API replays the stored outcome.
@@ -1007,7 +1216,7 @@ module SeatsChart
1007
1216
  end
1008
1217
 
1009
1218
  # Reactivate a workspace
1010
- # Dashboard session or a **workspace admin API key** (other API keys: 403 &#x60;ERR_PARTNER_SCOPE&#x60;); the caller (for a key: the admin it is bound to) must be an **admin** of the target workspace (403 otherwise, 404 when not a member). Idempotent. A deactivated workspace keeps all its data; its API keys, viewer/embed JWTs and public CDN reads are refused with 403 &#x60;workspace_deactivated&#x60; (effective on every API instance within 5 seconds), while dashboard members can still sign in so an admin can reactivate it. An admin key cannot deactivate its own workspace (409 &#x60;own_workspace&#x60;).
1219
+ # Dashboard session or a **workspace admin API key** (other API keys: 403 &#x60;ERR_PARTNER_SCOPE&#x60;); the caller (for a key: the admin it is bound to) must be an **admin** of the target workspace (403 otherwise, 404 when not a member). Idempotent. A deactivated workspace keeps all its data; its API keys, viewer/embed JWTs and public CDN reads are refused with 403 &#x60;workspace_deactivated&#x60; (effective at once on every API instance through a Redis invalidation message, 5 seconds at most if it is lost), while dashboard members can still sign in so an admin can reactivate it. An admin key cannot deactivate its own workspace (409 &#x60;own_workspace&#x60;).
1011
1220
  # @param workspace_id [String]
1012
1221
  # @param [Hash] opts the optional parameters
1013
1222
  # @option opts [String] :idempotency_key Required on transactional routes. Reuse the same key for every retry of one logical operation; the API replays the stored outcome.
@@ -1078,7 +1287,7 @@ module SeatsChart
1078
1287
  end
1079
1288
 
1080
1289
  # Deactivate a workspace
1081
- # Dashboard session or a **workspace admin API key** (other API keys: 403 `ERR_PARTNER_SCOPE`); the caller (for a key: the admin it is bound to) must be an **admin** of the target workspace (403 otherwise, 404 when not a member). Idempotent. A deactivated workspace keeps all its data; its API keys, viewer/embed JWTs and public CDN reads are refused with 403 `workspace_deactivated` (effective on every API instance within 5 seconds), while dashboard members can still sign in so an admin can reactivate it. An admin key cannot deactivate its own workspace (409 `own_workspace`). You cannot deactivate your last active workspace (409 `last_active_workspace`).
1290
+ # Dashboard session or a **workspace admin API key** (other API keys: 403 `ERR_PARTNER_SCOPE`); the caller (for a key: the admin it is bound to) must be an **admin** of the target workspace (403 otherwise, 404 when not a member). Idempotent. A deactivated workspace keeps all its data; its API keys, viewer/embed JWTs and public CDN reads are refused with 403 `workspace_deactivated` (effective at once on every API instance through a Redis invalidation message, 5 seconds at most if it is lost), while dashboard members can still sign in so an admin can reactivate it. An admin key cannot deactivate its own workspace (409 `own_workspace`). You cannot deactivate your last active workspace (409 `last_active_workspace`).
1082
1291
  # @param workspace_id [String]
1083
1292
  # @param [Hash] opts the optional parameters
1084
1293
  # @option opts [String] :idempotency_key Required on transactional routes. Reuse the same key for every retry of one logical operation; the API replays the stored outcome.
@@ -1089,7 +1298,7 @@ module SeatsChart
1089
1298
  end
1090
1299
 
1091
1300
  # Deactivate a workspace
1092
- # Dashboard session or a **workspace admin API key** (other API keys: 403 &#x60;ERR_PARTNER_SCOPE&#x60;); the caller (for a key: the admin it is bound to) must be an **admin** of the target workspace (403 otherwise, 404 when not a member). Idempotent. A deactivated workspace keeps all its data; its API keys, viewer/embed JWTs and public CDN reads are refused with 403 &#x60;workspace_deactivated&#x60; (effective on every API instance within 5 seconds), while dashboard members can still sign in so an admin can reactivate it. An admin key cannot deactivate its own workspace (409 &#x60;own_workspace&#x60;). You cannot deactivate your last active workspace (409 &#x60;last_active_workspace&#x60;).
1301
+ # Dashboard session or a **workspace admin API key** (other API keys: 403 &#x60;ERR_PARTNER_SCOPE&#x60;); the caller (for a key: the admin it is bound to) must be an **admin** of the target workspace (403 otherwise, 404 when not a member). Idempotent. A deactivated workspace keeps all its data; its API keys, viewer/embed JWTs and public CDN reads are refused with 403 &#x60;workspace_deactivated&#x60; (effective at once on every API instance through a Redis invalidation message, 5 seconds at most if it is lost), while dashboard members can still sign in so an admin can reactivate it. An admin key cannot deactivate its own workspace (409 &#x60;own_workspace&#x60;). You cannot deactivate your last active workspace (409 &#x60;last_active_workspace&#x60;).
1093
1302
  # @param workspace_id [String]
1094
1303
  # @param [Hash] opts the optional parameters
1095
1304
  # @option opts [String] :idempotency_key Required on transactional routes. Reuse the same key for every retry of one logical operation; the API replays the stored outcome.
@@ -1240,5 +1449,82 @@ module SeatsChart
1240
1449
  end
1241
1450
  return data, status_code, headers
1242
1451
  end
1452
+
1453
+ # Publish selected extraData keys to buyers (or stop)
1454
+ # Workspace admins only (dashboard session). Replaces the setting; takes effect within seconds on every API instance (tenant config cache invalidation) and on CDN copies of the public read (max-age 5 s). Audited (`workspace.buyer_extra_data.update`). Object `extraData` is private by default (server, Event Manager, reports). With `enabled` and a non-empty `keys` allow-list (at most 16 keys of letters, digits, `_`, `-`, `.` and `:`), only those keys, with scalar values (strings up to 256 characters, numbers, booleans, null), are published for this workspace's events by `GET /api/public/{publicKey}/events/{eventId}/extra-data` and read by the renderer (rules `match.extraData`, templates `{extraData.key}`, host objects). Never part of the compact state. `resalePriceCents` is never published. The key list is kept while disabled.
1455
+ # @param put_api_workspace_buyer_extra_data_request [PutApiWorkspaceBuyerExtraDataRequest]
1456
+ # @param [Hash] opts the optional parameters
1457
+ # @option opts [String] :idempotency_key Required on transactional routes. Reuse the same key for every retry of one logical operation; the API replays the stored outcome.
1458
+ # @return [nil]
1459
+ def put_api_workspace_buyer_extra_data(put_api_workspace_buyer_extra_data_request, opts = {})
1460
+ put_api_workspace_buyer_extra_data_with_http_info(put_api_workspace_buyer_extra_data_request, opts)
1461
+ nil
1462
+ end
1463
+
1464
+ # Publish selected extraData keys to buyers (or stop)
1465
+ # Workspace admins only (dashboard session). Replaces the setting; takes effect within seconds on every API instance (tenant config cache invalidation) and on CDN copies of the public read (max-age 5 s). Audited (&#x60;workspace.buyer_extra_data.update&#x60;). Object &#x60;extraData&#x60; is private by default (server, Event Manager, reports). With &#x60;enabled&#x60; and a non-empty &#x60;keys&#x60; allow-list (at most 16 keys of letters, digits, &#x60;_&#x60;, &#x60;-&#x60;, &#x60;.&#x60; and &#x60;:&#x60;), only those keys, with scalar values (strings up to 256 characters, numbers, booleans, null), are published for this workspace&#39;s events by &#x60;GET /api/public/{publicKey}/events/{eventId}/extra-data&#x60; and read by the renderer (rules &#x60;match.extraData&#x60;, templates &#x60;{extraData.key}&#x60;, host objects). Never part of the compact state. &#x60;resalePriceCents&#x60; is never published. The key list is kept while disabled.
1466
+ # @param put_api_workspace_buyer_extra_data_request [PutApiWorkspaceBuyerExtraDataRequest]
1467
+ # @param [Hash] opts the optional parameters
1468
+ # @option opts [String] :idempotency_key Required on transactional routes. Reuse the same key for every retry of one logical operation; the API replays the stored outcome.
1469
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
1470
+ def put_api_workspace_buyer_extra_data_with_http_info(put_api_workspace_buyer_extra_data_request, opts = {})
1471
+ if @api_client.config.debugging
1472
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.put_api_workspace_buyer_extra_data ...'
1473
+ end
1474
+ # verify the required parameter 'put_api_workspace_buyer_extra_data_request' is set
1475
+ if @api_client.config.client_side_validation && put_api_workspace_buyer_extra_data_request.nil?
1476
+ fail ArgumentError, "Missing the required parameter 'put_api_workspace_buyer_extra_data_request' when calling WorkspaceApi.put_api_workspace_buyer_extra_data"
1477
+ end
1478
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
1479
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.put_api_workspace_buyer_extra_data, the character length must be smaller than or equal to 255.'
1480
+ end
1481
+
1482
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
1483
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.put_api_workspace_buyer_extra_data, the character length must be great than or equal to 1.'
1484
+ end
1485
+
1486
+ # resource path
1487
+ local_var_path = '/api/workspace/buyer-extra-data'
1488
+
1489
+ # query parameters
1490
+ query_params = opts[:query_params] || {}
1491
+
1492
+ # header parameters
1493
+ header_params = opts[:header_params] || {}
1494
+ # HTTP header 'Content-Type'
1495
+ content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
1496
+ if !content_type.nil?
1497
+ header_params['Content-Type'] = content_type
1498
+ end
1499
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
1500
+
1501
+ # form parameters
1502
+ form_params = opts[:form_params] || {}
1503
+
1504
+ # http body (model)
1505
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(put_api_workspace_buyer_extra_data_request)
1506
+
1507
+ # return_type
1508
+ return_type = opts[:debug_return_type]
1509
+
1510
+ # auth_names
1511
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
1512
+
1513
+ new_options = opts.merge(
1514
+ :operation => :"WorkspaceApi.put_api_workspace_buyer_extra_data",
1515
+ :header_params => header_params,
1516
+ :query_params => query_params,
1517
+ :form_params => form_params,
1518
+ :body => post_body,
1519
+ :auth_names => auth_names,
1520
+ :return_type => return_type
1521
+ )
1522
+
1523
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
1524
+ if @api_client.config.debugging
1525
+ @api_client.config.logger.debug "API called: WorkspaceApi#put_api_workspace_buyer_extra_data\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1526
+ end
1527
+ return data, status_code, headers
1528
+ end
1243
1529
  end
1244
1530
  end