seatschart 0.2.0 → 0.4.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 (117) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +199 -19
  3. data/lib/seatschart/api/audit_api.rb +2 -2
  4. data/lib/seatschart/api/auth_api.rb +81 -4
  5. data/lib/seatschart/api/billing_api.rb +4 -0
  6. data/lib/seatschart/api/charts_api.rb +810 -77
  7. data/lib/seatschart/api/embed_api.rb +5 -5
  8. data/lib/seatschart/api/embed_origins_api.rb +63 -2
  9. data/lib/seatschart/api/event_log_api.rb +2 -2
  10. data/lib/seatschart/api/events_api.rb +1491 -175
  11. data/lib/seatschart/api/health_api.rb +244 -0
  12. data/lib/seatschart/api/map_designer_api.rb +11 -9
  13. data/lib/seatschart/api/public_api.rb +356 -6
  14. data/lib/seatschart/api/sandboxes_api.rb +672 -0
  15. data/lib/seatschart/api/seasons_api.rb +344 -36
  16. data/lib/seatschart/api/seats_api.rb +10 -10
  17. data/lib/seatschart/api/usage_api.rb +18 -15
  18. data/lib/seatschart/api/webhooks_api.rb +2 -2
  19. data/lib/seatschart/api/workspace_api.rb +1815 -363
  20. data/lib/seatschart/models/api_error.rb +4 -4
  21. data/lib/seatschart/models/delete_api_sandboxes_by_sandbox_id200_response.rb +255 -0
  22. data/lib/seatschart/models/delete_api_workspaces_by_workspace_id_keys_by_key_id200_response.rb +237 -0
  23. data/lib/seatschart/models/get_api_monitoring_requests200_response.rb +62 -4
  24. data/lib/seatschart/models/get_api_monitoring_requests200_response_points_inner.rb +21 -4
  25. data/lib/seatschart/models/get_api_sandboxes200_response.rb +239 -0
  26. data/lib/seatschart/models/get_api_sandboxes200_response_items_inner.rb +431 -0
  27. data/lib/seatschart/models/get_api_sandboxes200_response_items_inner_rate_limits.rb +270 -0
  28. data/lib/seatschart/models/get_api_sandboxes200_response_items_inner_usage.rb +287 -0
  29. data/lib/seatschart/models/get_api_status200_response.rb +387 -0
  30. data/lib/seatschart/models/get_api_status200_response_components_inner.rb +330 -0
  31. data/lib/seatschart/models/get_api_status200_response_components_inner_days_inner.rb +301 -0
  32. data/lib/seatschart/models/get_api_status200_response_incidents_inner.rb +374 -0
  33. data/lib/seatschart/models/get_api_status200_response_maintenance_inner.rb +350 -0
  34. data/lib/seatschart/models/get_api_status503_response.rb +271 -0
  35. data/lib/seatschart/models/get_api_workspace_buyer_extra_data200_response.rb +241 -0
  36. data/lib/seatschart/models/get_api_workspace_defaults200_response.rb +254 -0
  37. data/lib/seatschart/models/get_api_workspace_defaults200_response_renderer.rb +246 -0
  38. data/lib/seatschart/models/get_api_workspace_defaults200_response_renderer_built_in.rb +270 -0
  39. data/lib/seatschart/models/get_api_workspaces200_response_items_inner.rb +80 -5
  40. data/lib/seatschart/models/get_api_workspaces_by_workspace_id_keys200_response.rb +239 -0
  41. data/lib/seatschart/models/get_api_workspaces_by_workspace_id_keys200_response_api_keys_inner.rb +321 -0
  42. data/lib/seatschart/models/get_api_workspaces_created_by_api_parameter.rb +103 -0
  43. data/lib/seatschart/models/get_api_workspaces_overview_created_by_api_parameter.rb +103 -0
  44. data/lib/seatschart/models/patch_api_events_by_event_id_request.rb +12 -2
  45. data/lib/seatschart/models/patch_api_seasons_by_season_id_request.rb +15 -5
  46. data/lib/seatschart/models/patch_api_workspace_chart_validation_request_severities.rb +25 -4
  47. data/lib/seatschart/models/patch_api_workspace_defaults_request.rb +224 -0
  48. data/lib/seatschart/models/patch_api_workspace_defaults_request_renderer.rb +249 -0
  49. data/lib/seatschart/models/patch_api_workspace_settings_request.rb +6 -6
  50. data/lib/seatschart/models/patch_api_workspaces_by_workspace_id_keys_by_key_id200_response.rb +221 -0
  51. data/lib/seatschart/models/patch_api_workspaces_by_workspace_id_keys_by_key_id_request.rb +292 -0
  52. data/lib/seatschart/models/patch_api_workspaces_by_workspace_id_request.rb +288 -0
  53. data/lib/seatschart/models/post_api_auth_new_workspace_request.rb +294 -0
  54. data/lib/seatschart/models/post_api_charts_by_chart_id_actions_copy_to_workspace_request.rb +39 -1
  55. data/lib/seatschart/models/post_api_charts_by_chart_id_actions_validate_request.rb +1 -0
  56. data/lib/seatschart/models/post_api_charts_by_chart_id_map_publish422_response_issues_inner.rb +64 -6
  57. data/lib/seatschart/models/post_api_charts_by_chart_id_map_publish_request.rb +1 -1
  58. data/lib/seatschart/models/post_api_embed_tokens_request.rb +18 -15
  59. data/lib/seatschart/models/post_api_embed_tokens_request_safe_mode_options.rb +226 -0
  60. data/lib/seatschart/models/post_api_events_actions_edit_for_sale_config_request.rb +251 -0
  61. data/lib/seatschart/models/post_api_events_actions_edit_for_sale_config_request_events_inner.rb +322 -0
  62. data/lib/seatschart/models/post_api_events_bulk_request_events_inner.rb +42 -1
  63. data/lib/seatschart/models/post_api_events_by_event_id_actions_edit_for_sale_config_request.rb +277 -0
  64. data/lib/seatschart/models/post_api_events_by_event_id_actions_edit_for_sale_config_request_for_sale_inner.rb +319 -0
  65. data/lib/seatschart/models/post_api_events_by_event_id_map_publish_request.rb +215 -0
  66. data/lib/seatschart/models/post_api_events_request.rb +42 -1
  67. data/lib/seatschart/models/{patch_api_events_by_event_id_request_categories_inner.rb → post_api_events_request_categories_inner.rb} +3 -3
  68. data/lib/seatschart/models/post_api_extract_seats200_response.rb +459 -0
  69. data/lib/seatschart/models/post_api_extract_seats200_response_seats_inner.rb +323 -0
  70. data/lib/seatschart/models/post_api_extract_seats200_response_suggested_inner.rb +320 -0
  71. data/lib/seatschart/models/post_api_extract_seats_request.rb +124 -4
  72. data/lib/seatschart/models/post_api_extract_seats_request_examples.rb +105 -0
  73. data/lib/seatschart/models/post_api_extract_seats_request_examples_any_of_inner.rb +293 -0
  74. data/lib/seatschart/models/post_api_extract_seats_request_negatives.rb +105 -0
  75. data/lib/seatschart/models/post_api_extract_seats_request_region.rb +105 -0
  76. data/lib/seatschart/models/{put_api_charts_by_chart_id_map_draft_request.rb → post_api_extract_seats_request_region_any_of.rb} +111 -96
  77. data/lib/seatschart/models/post_api_sandboxes201_response.rb +245 -0
  78. data/lib/seatschart/models/post_api_sandboxes201_response_admin_key.rb +286 -0
  79. data/lib/seatschart/models/post_api_sandboxes201_response_copied.rb +313 -0
  80. data/lib/seatschart/models/post_api_sandboxes201_response_copied_charts_inner.rb +281 -0
  81. data/lib/seatschart/models/post_api_sandboxes201_response_copied_events_inner.rb +281 -0
  82. data/lib/seatschart/models/post_api_sandboxes201_response_copied_events_with_own_map_inner.rb +265 -0
  83. data/lib/seatschart/models/post_api_sandboxes201_response_copied_key_conflicts_inner.rb +287 -0
  84. data/lib/seatschart/models/post_api_sandboxes201_response_copied_seasons_inner.rb +312 -0
  85. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_copy_from_production200_response.rb +313 -0
  86. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_copy_from_production_request.rb +255 -0
  87. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_join200_response.rb +271 -0
  88. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_reset200_response.rb +268 -0
  89. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_reset_request.rb +225 -0
  90. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_admin_key201_response.rb +253 -0
  91. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_admin_key201_response_api_key.rb +286 -0
  92. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_admin_key_request.rb +252 -0
  93. data/lib/seatschart/models/post_api_sandboxes_request.rb +319 -0
  94. data/lib/seatschart/models/post_api_seasons_request.rb +14 -4
  95. data/lib/seatschart/models/post_api_seats_confirm_request.rb +5 -5
  96. data/lib/seatschart/models/post_api_seats_release_request.rb +5 -5
  97. data/lib/seatschart/models/post_api_seats_reserve_request.rb +5 -5
  98. data/lib/seatschart/models/post_api_workspaces200_response.rb +468 -0
  99. data/lib/seatschart/models/post_api_workspaces200_response_api_key.rb +332 -0
  100. data/lib/seatschart/models/post_api_workspaces200_response_template.rb +260 -0
  101. data/lib/seatschart/models/post_api_workspaces200_response_template_webhooks_inner.rb +284 -0
  102. data/lib/seatschart/models/post_api_workspaces_by_workspace_id_actions_delete200_response.rb +319 -0
  103. data/lib/seatschart/models/post_api_workspaces_by_workspace_id_actions_delete_request.rb +281 -0
  104. data/lib/seatschart/models/post_api_workspaces_by_workspace_id_invitations_request.rb +300 -0
  105. data/lib/seatschart/models/post_api_workspaces_by_workspace_id_keys201_response.rb +237 -0
  106. data/lib/seatschart/models/post_api_workspaces_by_workspace_id_keys201_response_api_key.rb +338 -0
  107. data/lib/seatschart/models/post_api_workspaces_by_workspace_id_keys_request.rb +299 -0
  108. data/lib/seatschart/models/post_api_workspaces_request.rb +101 -5
  109. data/lib/seatschart/models/post_api_workspaces_request_issue_key.rb +294 -0
  110. data/lib/seatschart/models/put_api_workspace_buyer_extra_data_request.rb +260 -0
  111. data/lib/seatschart/models/put_internal_status_notices_request.rb +242 -0
  112. data/lib/seatschart/models/put_internal_status_notices_request_notices_inner.rb +445 -0
  113. data/lib/seatschart/retry.rb +106 -7
  114. data/lib/seatschart/version.rb +1 -1
  115. data/lib/seatschart.rb +73 -3
  116. metadata +75 -5
  117. data/lib/seatschart/api/default_api.rb +0 -763
@@ -19,8 +19,8 @@ module SeatsChart
19
19
  def initialize(api_client = ApiClient.default)
20
20
  @api_client = api_client
21
21
  end
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`).
22
+ # Deactivate a workspace (legacy DELETE)
23
+ # Kept for compatibility: DELETE is exactly POST /workspaces/{workspaceId}/actions/deactivate (reversible with …/actions/activate). To delete a workspace for good from the product, use POST /workspaces/{workspaceId}/actions/delete. 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`). `{workspaceId}` may also be the external id of a workspace you administer (one workspace per organizer).
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.
@@ -30,8 +30,8 @@ module SeatsChart
30
30
  data
31
31
  end
32
32
 
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`).
33
+ # Deactivate a workspace (legacy DELETE)
34
+ # Kept for compatibility: DELETE is exactly POST /workspaces/{workspaceId}/actions/deactivate (reversible with …/actions/activate). To delete a workspace for good from the product, use POST /workspaces/{workspaceId}/actions/delete. 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`). `{workspaceId}` may also be the external id of a workspace you administer (one workspace per organizer).
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.
@@ -101,31 +101,62 @@ module SeatsChart
101
101
  return data, status_code, headers
102
102
  end
103
103
 
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.
104
+ # Revoke a pending invitation of a workspace you administer
105
+ # Audited (`team.invitation_revoked`).
106
+ # @param workspace_id [String] Workspace id or its external id.
107
+ # @param invitation_id [String]
106
108
  # @param [Hash] opts the optional parameters
109
+ # @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.
107
110
  # @return [nil]
108
- def get_api_workspace(opts = {})
109
- get_api_workspace_with_http_info(opts)
111
+ def delete_api_workspaces_by_workspace_id_invitations_by_invitation_id(workspace_id, invitation_id, opts = {})
112
+ delete_api_workspaces_by_workspace_id_invitations_by_invitation_id_with_http_info(workspace_id, invitation_id, opts)
110
113
  nil
111
114
  end
112
115
 
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.
116
+ # Revoke a pending invitation of a workspace you administer
117
+ # Audited (`team.invitation_revoked`).
118
+ # @param workspace_id [String] Workspace id or its external id.
119
+ # @param invitation_id [String]
115
120
  # @param [Hash] opts the optional parameters
121
+ # @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.
116
122
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
117
- def get_api_workspace_with_http_info(opts = {})
123
+ def delete_api_workspaces_by_workspace_id_invitations_by_invitation_id_with_http_info(workspace_id, invitation_id, opts = {})
118
124
  if @api_client.config.debugging
119
- @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspace ...'
125
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.delete_api_workspaces_by_workspace_id_invitations_by_invitation_id ...'
126
+ end
127
+ # verify the required parameter 'workspace_id' is set
128
+ if @api_client.config.client_side_validation && workspace_id.nil?
129
+ fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.delete_api_workspaces_by_workspace_id_invitations_by_invitation_id"
130
+ end
131
+ if @api_client.config.client_side_validation && workspace_id.to_s.length > 128
132
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.delete_api_workspaces_by_workspace_id_invitations_by_invitation_id, the character length must be smaller than or equal to 128.'
133
+ end
134
+
135
+ if @api_client.config.client_side_validation && workspace_id.to_s.length < 1
136
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.delete_api_workspaces_by_workspace_id_invitations_by_invitation_id, the character length must be great than or equal to 1.'
120
137
  end
138
+
139
+ # verify the required parameter 'invitation_id' is set
140
+ if @api_client.config.client_side_validation && invitation_id.nil?
141
+ fail ArgumentError, "Missing the required parameter 'invitation_id' when calling WorkspaceApi.delete_api_workspaces_by_workspace_id_invitations_by_invitation_id"
142
+ end
143
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
144
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.delete_api_workspaces_by_workspace_id_invitations_by_invitation_id, the character length must be smaller than or equal to 255.'
145
+ end
146
+
147
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
148
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.delete_api_workspaces_by_workspace_id_invitations_by_invitation_id, the character length must be great than or equal to 1.'
149
+ end
150
+
121
151
  # resource path
122
- local_var_path = '/api/workspace'
152
+ local_var_path = '/api/workspaces/{workspaceId}/invitations/{invitationId}'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s)).sub('{' + 'invitationId' + '}', CGI.escape(invitation_id.to_s))
123
153
 
124
154
  # query parameters
125
155
  query_params = opts[:query_params] || {}
126
156
 
127
157
  # header parameters
128
158
  header_params = opts[:header_params] || {}
159
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
129
160
 
130
161
  # form parameters
131
162
  form_params = opts[:form_params] || {}
@@ -140,7 +171,7 @@ module SeatsChart
140
171
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
141
172
 
142
173
  new_options = opts.merge(
143
- :operation => :"WorkspaceApi.get_api_workspace",
174
+ :operation => :"WorkspaceApi.delete_api_workspaces_by_workspace_id_invitations_by_invitation_id",
144
175
  :header_params => header_params,
145
176
  :query_params => query_params,
146
177
  :form_params => form_params,
@@ -149,38 +180,71 @@ module SeatsChart
149
180
  :return_type => return_type
150
181
  )
151
182
 
152
- data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
183
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
153
184
  if @api_client.config.debugging
154
- @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspace\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
185
+ @api_client.config.logger.debug "API called: WorkspaceApi#delete_api_workspaces_by_workspace_id_invitations_by_invitation_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
155
186
  end
156
187
  return data, status_code, headers
157
188
  end
158
189
 
159
- # 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).
190
+ # Revoke a key of a workspace you administer
191
+ # The key stops working at once on every API instance (idempotent: `alreadyRevoked`). Workspace admin keys answer 403 `ERR_ADMIN_KEY_DASHBOARD_ONLY`. Audited (`api_key.revoked`).
192
+ # @param workspace_id [String] Workspace id or its external id.
193
+ # @param key_id [String]
161
194
  # @param [Hash] opts the optional parameters
162
- # @return [nil]
163
- def get_api_workspace_chart_validation(opts = {})
164
- get_api_workspace_chart_validation_with_http_info(opts)
165
- nil
195
+ # @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.
196
+ # @return [DeleteApiWorkspacesByWorkspaceIdKeysByKeyId200Response]
197
+ def delete_api_workspaces_by_workspace_id_keys_by_key_id(workspace_id, key_id, opts = {})
198
+ data, _status_code, _headers = delete_api_workspaces_by_workspace_id_keys_by_key_id_with_http_info(workspace_id, key_id, opts)
199
+ data
166
200
  end
167
201
 
168
- # 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).
202
+ # Revoke a key of a workspace you administer
203
+ # The key stops working at once on every API instance (idempotent: &#x60;alreadyRevoked&#x60;). Workspace admin keys answer 403 &#x60;ERR_ADMIN_KEY_DASHBOARD_ONLY&#x60;. Audited (&#x60;api_key.revoked&#x60;).
204
+ # @param workspace_id [String] Workspace id or its external id.
205
+ # @param key_id [String]
170
206
  # @param [Hash] opts the optional parameters
171
- # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
172
- def get_api_workspace_chart_validation_with_http_info(opts = {})
207
+ # @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.
208
+ # @return [Array<(DeleteApiWorkspacesByWorkspaceIdKeysByKeyId200Response, Integer, Hash)>] DeleteApiWorkspacesByWorkspaceIdKeysByKeyId200Response data, response status code and response headers
209
+ def delete_api_workspaces_by_workspace_id_keys_by_key_id_with_http_info(workspace_id, key_id, opts = {})
173
210
  if @api_client.config.debugging
174
- @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspace_chart_validation ...'
211
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.delete_api_workspaces_by_workspace_id_keys_by_key_id ...'
212
+ end
213
+ # verify the required parameter 'workspace_id' is set
214
+ if @api_client.config.client_side_validation && workspace_id.nil?
215
+ fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.delete_api_workspaces_by_workspace_id_keys_by_key_id"
216
+ end
217
+ if @api_client.config.client_side_validation && workspace_id.to_s.length > 128
218
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.delete_api_workspaces_by_workspace_id_keys_by_key_id, the character length must be smaller than or equal to 128.'
219
+ end
220
+
221
+ if @api_client.config.client_side_validation && workspace_id.to_s.length < 1
222
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.delete_api_workspaces_by_workspace_id_keys_by_key_id, the character length must be great than or equal to 1.'
223
+ end
224
+
225
+ # verify the required parameter 'key_id' is set
226
+ if @api_client.config.client_side_validation && key_id.nil?
227
+ fail ArgumentError, "Missing the required parameter 'key_id' when calling WorkspaceApi.delete_api_workspaces_by_workspace_id_keys_by_key_id"
228
+ end
229
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
230
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.delete_api_workspaces_by_workspace_id_keys_by_key_id, the character length must be smaller than or equal to 255.'
231
+ end
232
+
233
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
234
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.delete_api_workspaces_by_workspace_id_keys_by_key_id, the character length must be great than or equal to 1.'
175
235
  end
236
+
176
237
  # resource path
177
- local_var_path = '/api/workspace/chart-validation'
238
+ local_var_path = '/api/workspaces/{workspaceId}/keys/{keyId}'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s)).sub('{' + 'keyId' + '}', CGI.escape(key_id.to_s))
178
239
 
179
240
  # query parameters
180
241
  query_params = opts[:query_params] || {}
181
242
 
182
243
  # header parameters
183
244
  header_params = opts[:header_params] || {}
245
+ # HTTP header 'Accept' (if needed)
246
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
247
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
184
248
 
185
249
  # form parameters
186
250
  form_params = opts[:form_params] || {}
@@ -189,13 +253,13 @@ module SeatsChart
189
253
  post_body = opts[:debug_body]
190
254
 
191
255
  # return_type
192
- return_type = opts[:debug_return_type]
256
+ return_type = opts[:debug_return_type] || 'DeleteApiWorkspacesByWorkspaceIdKeysByKeyId200Response'
193
257
 
194
258
  # auth_names
195
259
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
196
260
 
197
261
  new_options = opts.merge(
198
- :operation => :"WorkspaceApi.get_api_workspace_chart_validation",
262
+ :operation => :"WorkspaceApi.delete_api_workspaces_by_workspace_id_keys_by_key_id",
199
263
  :header_params => header_params,
200
264
  :query_params => query_params,
201
265
  :form_params => form_params,
@@ -204,40 +268,69 @@ module SeatsChart
204
268
  :return_type => return_type
205
269
  )
206
270
 
207
- data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
271
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
208
272
  if @api_client.config.debugging
209
- @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspace_chart_validation\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
273
+ @api_client.config.logger.debug "API called: WorkspaceApi#delete_api_workspaces_by_workspace_id_keys_by_key_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
210
274
  end
211
275
  return data, status_code, headers
212
276
  end
213
277
 
214
- # Get the workspace integration mode (pricing source)
215
- # `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.
278
+ # Remove a member from a workspace you administer
279
+ # Revokes the member's dashboard sessions there at once (and in the workspace's sandboxes). The last admin and the caller itself cannot be removed (409). Audited (`team.member_removed`).
280
+ # @param workspace_id [String] Workspace id or its external id.
281
+ # @param user_id [String]
216
282
  # @param [Hash] opts the optional parameters
217
- # @return [GetApiWorkspaceIntegration200Response]
218
- def get_api_workspace_integration(opts = {})
219
- data, _status_code, _headers = get_api_workspace_integration_with_http_info(opts)
220
- data
283
+ # @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.
284
+ # @return [nil]
285
+ def delete_api_workspaces_by_workspace_id_members_by_user_id(workspace_id, user_id, opts = {})
286
+ delete_api_workspaces_by_workspace_id_members_by_user_id_with_http_info(workspace_id, user_id, opts)
287
+ nil
221
288
  end
222
289
 
223
- # Get the workspace integration mode (pricing source)
224
- # &#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.
290
+ # Remove a member from a workspace you administer
291
+ # Revokes the member&#39;s dashboard sessions there at once (and in the workspace&#39;s sandboxes). The last admin and the caller itself cannot be removed (409). Audited (&#x60;team.member_removed&#x60;).
292
+ # @param workspace_id [String] Workspace id or its external id.
293
+ # @param user_id [String]
225
294
  # @param [Hash] opts the optional parameters
226
- # @return [Array<(GetApiWorkspaceIntegration200Response, Integer, Hash)>] GetApiWorkspaceIntegration200Response data, response status code and response headers
227
- def get_api_workspace_integration_with_http_info(opts = {})
295
+ # @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.
296
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
297
+ def delete_api_workspaces_by_workspace_id_members_by_user_id_with_http_info(workspace_id, user_id, opts = {})
228
298
  if @api_client.config.debugging
229
- @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspace_integration ...'
299
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.delete_api_workspaces_by_workspace_id_members_by_user_id ...'
300
+ end
301
+ # verify the required parameter 'workspace_id' is set
302
+ if @api_client.config.client_side_validation && workspace_id.nil?
303
+ fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.delete_api_workspaces_by_workspace_id_members_by_user_id"
304
+ end
305
+ if @api_client.config.client_side_validation && workspace_id.to_s.length > 128
306
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.delete_api_workspaces_by_workspace_id_members_by_user_id, the character length must be smaller than or equal to 128.'
307
+ end
308
+
309
+ if @api_client.config.client_side_validation && workspace_id.to_s.length < 1
310
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.delete_api_workspaces_by_workspace_id_members_by_user_id, the character length must be great than or equal to 1.'
311
+ end
312
+
313
+ # verify the required parameter 'user_id' is set
314
+ if @api_client.config.client_side_validation && user_id.nil?
315
+ fail ArgumentError, "Missing the required parameter 'user_id' when calling WorkspaceApi.delete_api_workspaces_by_workspace_id_members_by_user_id"
316
+ end
317
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
318
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.delete_api_workspaces_by_workspace_id_members_by_user_id, the character length must be smaller than or equal to 255.'
319
+ end
320
+
321
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
322
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.delete_api_workspaces_by_workspace_id_members_by_user_id, the character length must be great than or equal to 1.'
230
323
  end
324
+
231
325
  # resource path
232
- local_var_path = '/api/workspace/integration'
326
+ local_var_path = '/api/workspaces/{workspaceId}/members/{userId}'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s)).sub('{' + 'userId' + '}', CGI.escape(user_id.to_s))
233
327
 
234
328
  # query parameters
235
329
  query_params = opts[:query_params] || {}
236
330
 
237
331
  # header parameters
238
332
  header_params = opts[:header_params] || {}
239
- # HTTP header 'Accept' (if needed)
240
- header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
333
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
241
334
 
242
335
  # form parameters
243
336
  form_params = opts[:form_params] || {}
@@ -246,13 +339,13 @@ module SeatsChart
246
339
  post_body = opts[:debug_body]
247
340
 
248
341
  # return_type
249
- return_type = opts[:debug_return_type] || 'GetApiWorkspaceIntegration200Response'
342
+ return_type = opts[:debug_return_type]
250
343
 
251
344
  # auth_names
252
345
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
253
346
 
254
347
  new_options = opts.merge(
255
- :operation => :"WorkspaceApi.get_api_workspace_integration",
348
+ :operation => :"WorkspaceApi.delete_api_workspaces_by_workspace_id_members_by_user_id",
256
349
  :header_params => header_params,
257
350
  :query_params => query_params,
258
351
  :form_params => form_params,
@@ -261,40 +354,38 @@ module SeatsChart
261
354
  :return_type => return_type
262
355
  )
263
356
 
264
- data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
357
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
265
358
  if @api_client.config.debugging
266
- @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspace_integration\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
359
+ @api_client.config.logger.debug "API called: WorkspaceApi#delete_api_workspaces_by_workspace_id_members_by_user_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
267
360
  end
268
361
  return data, status_code, headers
269
362
  end
270
363
 
271
- # 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.
364
+ # Get workspace profile for the authenticated tenant
365
+ # 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`.
273
366
  # @param [Hash] opts the optional parameters
274
- # @return [GetApiWorkspaceSettings200Response]
275
- def get_api_workspace_settings(opts = {})
276
- data, _status_code, _headers = get_api_workspace_settings_with_http_info(opts)
277
- data
367
+ # @return [nil]
368
+ def get_api_workspace(opts = {})
369
+ get_api_workspace_with_http_info(opts)
370
+ nil
278
371
  end
279
372
 
280
- # 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.
373
+ # Get workspace profile for the authenticated tenant
374
+ # Includes &#x60;publicKey&#x60; (&#x60;pub_…&#x60;) for &#x60;?workspaceKey&#x3D;&#x60; on the viewer. The public key is not authentication — Bearer JWT or embed token is still required. &#x60;kind&#x60; is &#x60;sandbox&#x60; for a sandbox (&#x60;isTest: true&#x60;, see &#x60;/sandboxes&#x60;), with its production workspace in &#x60;parentWorkspaceId&#x60; and its last reset in &#x60;lastResetAt&#x60;.
282
375
  # @param [Hash] opts the optional parameters
283
- # @return [Array<(GetApiWorkspaceSettings200Response, Integer, Hash)>] GetApiWorkspaceSettings200Response data, response status code and response headers
284
- def get_api_workspace_settings_with_http_info(opts = {})
376
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
377
+ def get_api_workspace_with_http_info(opts = {})
285
378
  if @api_client.config.debugging
286
- @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspace_settings ...'
379
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspace ...'
287
380
  end
288
381
  # resource path
289
- local_var_path = '/api/workspace/settings'
382
+ local_var_path = '/api/workspace'
290
383
 
291
384
  # query parameters
292
385
  query_params = opts[:query_params] || {}
293
386
 
294
387
  # header parameters
295
388
  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
389
 
299
390
  # form parameters
300
391
  form_params = opts[:form_params] || {}
@@ -303,13 +394,13 @@ module SeatsChart
303
394
  post_body = opts[:debug_body]
304
395
 
305
396
  # return_type
306
- return_type = opts[:debug_return_type] || 'GetApiWorkspaceSettings200Response'
397
+ return_type = opts[:debug_return_type]
307
398
 
308
399
  # auth_names
309
400
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
310
401
 
311
402
  new_options = opts.merge(
312
- :operation => :"WorkspaceApi.get_api_workspace_settings",
403
+ :operation => :"WorkspaceApi.get_api_workspace",
313
404
  :header_params => header_params,
314
405
  :query_params => query_params,
315
406
  :form_params => form_params,
@@ -320,30 +411,30 @@ module SeatsChart
320
411
 
321
412
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
322
413
  if @api_client.config.debugging
323
- @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspace_settings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
414
+ @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspace\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
324
415
  end
325
416
  return data, status_code, headers
326
417
  end
327
418
 
328
- # 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`.
419
+ # Get the buyer extraData publication (opt-in, allow-listed keys)
420
+ # 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.
330
421
  # @param [Hash] opts the optional parameters
331
- # @return [GetApiWorkspaces200Response]
332
- def get_api_workspaces(opts = {})
333
- data, _status_code, _headers = get_api_workspaces_with_http_info(opts)
422
+ # @return [GetApiWorkspaceBuyerExtraData200Response]
423
+ def get_api_workspace_buyer_extra_data(opts = {})
424
+ data, _status_code, _headers = get_api_workspace_buyer_extra_data_with_http_info(opts)
334
425
  data
335
426
  end
336
427
 
337
- # 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;.
428
+ # Get the buyer extraData publication (opt-in, allow-listed keys)
429
+ # 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.
339
430
  # @param [Hash] opts the optional parameters
340
- # @return [Array<(GetApiWorkspaces200Response, Integer, Hash)>] GetApiWorkspaces200Response data, response status code and response headers
341
- def get_api_workspaces_with_http_info(opts = {})
431
+ # @return [Array<(GetApiWorkspaceBuyerExtraData200Response, Integer, Hash)>] GetApiWorkspaceBuyerExtraData200Response data, response status code and response headers
432
+ def get_api_workspace_buyer_extra_data_with_http_info(opts = {})
342
433
  if @api_client.config.debugging
343
- @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspaces ...'
434
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspace_buyer_extra_data ...'
344
435
  end
345
436
  # resource path
346
- local_var_path = '/api/workspaces'
437
+ local_var_path = '/api/workspace/buyer-extra-data'
347
438
 
348
439
  # query parameters
349
440
  query_params = opts[:query_params] || {}
@@ -360,13 +451,13 @@ module SeatsChart
360
451
  post_body = opts[:debug_body]
361
452
 
362
453
  # return_type
363
- return_type = opts[:debug_return_type] || 'GetApiWorkspaces200Response'
454
+ return_type = opts[:debug_return_type] || 'GetApiWorkspaceBuyerExtraData200Response'
364
455
 
365
456
  # auth_names
366
457
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
367
458
 
368
459
  new_options = opts.merge(
369
- :operation => :"WorkspaceApi.get_api_workspaces",
460
+ :operation => :"WorkspaceApi.get_api_workspace_buyer_extra_data",
370
461
  :header_params => header_params,
371
462
  :query_params => query_params,
372
463
  :form_params => form_params,
@@ -377,52 +468,36 @@ module SeatsChart
377
468
 
378
469
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
379
470
  if @api_client.config.debugging
380
- @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspaces\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
471
+ @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspace_buyer_extra_data\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
381
472
  end
382
473
  return data, status_code, headers
383
474
  end
384
475
 
385
- # Get one of my workspaces
386
- # Same item as GET /workspaces for one workspace the caller is a member of (404 otherwise). Dashboard session or a **workspace admin API key** (other API keys: 403 `ERR_PARTNER_SCOPE`).
387
- # @param workspace_id [String]
476
+ # Get chart validation severities
477
+ # 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).
388
478
  # @param [Hash] opts the optional parameters
389
- # @return [GetApiWorkspaces200ResponseItemsInner]
390
- def get_api_workspaces_by_workspace_id(workspace_id, opts = {})
391
- data, _status_code, _headers = get_api_workspaces_by_workspace_id_with_http_info(workspace_id, opts)
392
- data
479
+ # @return [nil]
480
+ def get_api_workspace_chart_validation(opts = {})
481
+ get_api_workspace_chart_validation_with_http_info(opts)
482
+ nil
393
483
  end
394
484
 
395
- # Get one of my workspaces
396
- # Same item as GET /workspaces for one workspace the caller is a member of (404 otherwise). Dashboard session or a **workspace admin API key** (other API keys: 403 &#x60;ERR_PARTNER_SCOPE&#x60;).
397
- # @param workspace_id [String]
485
+ # Get chart validation severities
486
+ # 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).
398
487
  # @param [Hash] opts the optional parameters
399
- # @return [Array<(GetApiWorkspaces200ResponseItemsInner, Integer, Hash)>] GetApiWorkspaces200ResponseItemsInner data, response status code and response headers
400
- def get_api_workspaces_by_workspace_id_with_http_info(workspace_id, opts = {})
488
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
489
+ def get_api_workspace_chart_validation_with_http_info(opts = {})
401
490
  if @api_client.config.debugging
402
- @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspaces_by_workspace_id ...'
403
- end
404
- # verify the required parameter 'workspace_id' is set
405
- if @api_client.config.client_side_validation && workspace_id.nil?
406
- fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.get_api_workspaces_by_workspace_id"
407
- end
408
- if @api_client.config.client_side_validation && workspace_id.to_s.length > 128
409
- fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.get_api_workspaces_by_workspace_id, the character length must be smaller than or equal to 128.'
410
- end
411
-
412
- if @api_client.config.client_side_validation && workspace_id.to_s.length < 1
413
- fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.get_api_workspaces_by_workspace_id, the character length must be great than or equal to 1.'
491
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspace_chart_validation ...'
414
492
  end
415
-
416
493
  # resource path
417
- local_var_path = '/api/workspaces/{workspaceId}'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s))
494
+ local_var_path = '/api/workspace/chart-validation'
418
495
 
419
496
  # query parameters
420
497
  query_params = opts[:query_params] || {}
421
498
 
422
499
  # header parameters
423
500
  header_params = opts[:header_params] || {}
424
- # HTTP header 'Accept' (if needed)
425
- header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
426
501
 
427
502
  # form parameters
428
503
  form_params = opts[:form_params] || {}
@@ -431,13 +506,13 @@ module SeatsChart
431
506
  post_body = opts[:debug_body]
432
507
 
433
508
  # return_type
434
- return_type = opts[:debug_return_type] || 'GetApiWorkspaces200ResponseItemsInner'
509
+ return_type = opts[:debug_return_type]
435
510
 
436
511
  # auth_names
437
512
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
438
513
 
439
514
  new_options = opts.merge(
440
- :operation => :"WorkspaceApi.get_api_workspaces_by_workspace_id",
515
+ :operation => :"WorkspaceApi.get_api_workspace_chart_validation",
441
516
  :header_params => header_params,
442
517
  :query_params => query_params,
443
518
  :form_params => form_params,
@@ -448,71 +523,53 @@ module SeatsChart
448
523
 
449
524
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
450
525
  if @api_client.config.debugging
451
- @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspaces_by_workspace_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
526
+ @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspace_chart_validation\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
452
527
  end
453
528
  return data, status_code, headers
454
529
  end
455
530
 
456
- # Update workspace display name
457
- # @param patch_api_workspace_request [PatchApiWorkspaceRequest]
531
+ # Get the workspace defaults (renderer settings, draft chart drawings)
532
+ # 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`).
458
533
  # @param [Hash] opts the optional parameters
459
- # @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.
460
- # @return [nil]
461
- def patch_api_workspace(patch_api_workspace_request, opts = {})
462
- patch_api_workspace_with_http_info(patch_api_workspace_request, opts)
463
- nil
534
+ # @return [GetApiWorkspaceDefaults200Response]
535
+ def get_api_workspace_defaults(opts = {})
536
+ data, _status_code, _headers = get_api_workspace_defaults_with_http_info(opts)
537
+ data
464
538
  end
465
539
 
466
- # Update workspace display name
467
- # @param patch_api_workspace_request [PatchApiWorkspaceRequest]
540
+ # Get the workspace defaults (renderer settings, draft chart drawings)
541
+ # 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;).
468
542
  # @param [Hash] opts the optional parameters
469
- # @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.
470
- # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
471
- def patch_api_workspace_with_http_info(patch_api_workspace_request, opts = {})
543
+ # @return [Array<(GetApiWorkspaceDefaults200Response, Integer, Hash)>] GetApiWorkspaceDefaults200Response data, response status code and response headers
544
+ def get_api_workspace_defaults_with_http_info(opts = {})
472
545
  if @api_client.config.debugging
473
- @api_client.config.logger.debug 'Calling API: WorkspaceApi.patch_api_workspace ...'
474
- end
475
- # verify the required parameter 'patch_api_workspace_request' is set
476
- if @api_client.config.client_side_validation && patch_api_workspace_request.nil?
477
- fail ArgumentError, "Missing the required parameter 'patch_api_workspace_request' when calling WorkspaceApi.patch_api_workspace"
478
- end
479
- if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
480
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspace, the character length must be smaller than or equal to 255.'
481
- end
482
-
483
- if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
484
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspace, the character length must be great than or equal to 1.'
546
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspace_defaults ...'
485
547
  end
486
-
487
548
  # resource path
488
- local_var_path = '/api/workspace'
549
+ local_var_path = '/api/workspace/defaults'
489
550
 
490
551
  # query parameters
491
552
  query_params = opts[:query_params] || {}
492
553
 
493
554
  # header parameters
494
555
  header_params = opts[:header_params] || {}
495
- # HTTP header 'Content-Type'
496
- content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
497
- if !content_type.nil?
498
- header_params['Content-Type'] = content_type
499
- end
500
- header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
556
+ # HTTP header 'Accept' (if needed)
557
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
501
558
 
502
559
  # form parameters
503
560
  form_params = opts[:form_params] || {}
504
561
 
505
562
  # http body (model)
506
- post_body = opts[:debug_body] || @api_client.object_to_http_body(patch_api_workspace_request)
563
+ post_body = opts[:debug_body]
507
564
 
508
565
  # return_type
509
- return_type = opts[:debug_return_type]
566
+ return_type = opts[:debug_return_type] || 'GetApiWorkspaceDefaults200Response'
510
567
 
511
568
  # auth_names
512
569
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
513
570
 
514
571
  new_options = opts.merge(
515
- :operation => :"WorkspaceApi.patch_api_workspace",
572
+ :operation => :"WorkspaceApi.get_api_workspace_defaults",
516
573
  :header_params => header_params,
517
574
  :query_params => query_params,
518
575
  :form_params => form_params,
@@ -521,54 +578,1153 @@ module SeatsChart
521
578
  :return_type => return_type
522
579
  )
523
580
 
524
- data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
581
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
525
582
  if @api_client.config.debugging
526
- @api_client.config.logger.debug "API called: WorkspaceApi#patch_api_workspace\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
583
+ @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspace_defaults\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
527
584
  end
528
585
  return data, status_code, headers
529
586
  end
530
587
 
531
- # 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).
533
- # @param patch_api_workspace_chart_validation_request [PatchApiWorkspaceChartValidationRequest]
588
+ # Get the workspace integration mode (pricing source)
589
+ # `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.
534
590
  # @param [Hash] opts the optional parameters
535
- # @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.
536
- # @return [nil]
537
- def patch_api_workspace_chart_validation(patch_api_workspace_chart_validation_request, opts = {})
538
- patch_api_workspace_chart_validation_with_http_info(patch_api_workspace_chart_validation_request, opts)
539
- nil
591
+ # @return [GetApiWorkspaceIntegration200Response]
592
+ def get_api_workspace_integration(opts = {})
593
+ data, _status_code, _headers = get_api_workspace_integration_with_http_info(opts)
594
+ data
540
595
  end
541
596
 
542
- # 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).
544
- # @param patch_api_workspace_chart_validation_request [PatchApiWorkspaceChartValidationRequest]
597
+ # Get the workspace integration mode (pricing source)
598
+ # &#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.
545
599
  # @param [Hash] opts the optional parameters
546
- # @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.
547
- # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
548
- def patch_api_workspace_chart_validation_with_http_info(patch_api_workspace_chart_validation_request, opts = {})
549
- if @api_client.config.debugging
600
+ # @return [Array<(GetApiWorkspaceIntegration200Response, Integer, Hash)>] GetApiWorkspaceIntegration200Response data, response status code and response headers
601
+ def get_api_workspace_integration_with_http_info(opts = {})
602
+ if @api_client.config.debugging
603
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspace_integration ...'
604
+ end
605
+ # resource path
606
+ local_var_path = '/api/workspace/integration'
607
+
608
+ # query parameters
609
+ query_params = opts[:query_params] || {}
610
+
611
+ # header parameters
612
+ header_params = opts[:header_params] || {}
613
+ # HTTP header 'Accept' (if needed)
614
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
615
+
616
+ # form parameters
617
+ form_params = opts[:form_params] || {}
618
+
619
+ # http body (model)
620
+ post_body = opts[:debug_body]
621
+
622
+ # return_type
623
+ return_type = opts[:debug_return_type] || 'GetApiWorkspaceIntegration200Response'
624
+
625
+ # auth_names
626
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
627
+
628
+ new_options = opts.merge(
629
+ :operation => :"WorkspaceApi.get_api_workspace_integration",
630
+ :header_params => header_params,
631
+ :query_params => query_params,
632
+ :form_params => form_params,
633
+ :body => post_body,
634
+ :auth_names => auth_names,
635
+ :return_type => return_type
636
+ )
637
+
638
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
639
+ if @api_client.config.debugging
640
+ @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspace_integration\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
641
+ end
642
+ return data, status_code, headers
643
+ end
644
+
645
+ # Get workspace settings (effective value and source)
646
+ # 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.
647
+ # @param [Hash] opts the optional parameters
648
+ # @return [GetApiWorkspaceSettings200Response]
649
+ def get_api_workspace_settings(opts = {})
650
+ data, _status_code, _headers = get_api_workspace_settings_with_http_info(opts)
651
+ data
652
+ end
653
+
654
+ # Get workspace settings (effective value and source)
655
+ # 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.
656
+ # @param [Hash] opts the optional parameters
657
+ # @return [Array<(GetApiWorkspaceSettings200Response, Integer, Hash)>] GetApiWorkspaceSettings200Response data, response status code and response headers
658
+ def get_api_workspace_settings_with_http_info(opts = {})
659
+ if @api_client.config.debugging
660
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspace_settings ...'
661
+ end
662
+ # resource path
663
+ local_var_path = '/api/workspace/settings'
664
+
665
+ # query parameters
666
+ query_params = opts[:query_params] || {}
667
+
668
+ # header parameters
669
+ header_params = opts[:header_params] || {}
670
+ # HTTP header 'Accept' (if needed)
671
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
672
+
673
+ # form parameters
674
+ form_params = opts[:form_params] || {}
675
+
676
+ # http body (model)
677
+ post_body = opts[:debug_body]
678
+
679
+ # return_type
680
+ return_type = opts[:debug_return_type] || 'GetApiWorkspaceSettings200Response'
681
+
682
+ # auth_names
683
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
684
+
685
+ new_options = opts.merge(
686
+ :operation => :"WorkspaceApi.get_api_workspace_settings",
687
+ :header_params => header_params,
688
+ :query_params => query_params,
689
+ :form_params => form_params,
690
+ :body => post_body,
691
+ :auth_names => auth_names,
692
+ :return_type => return_type
693
+ )
694
+
695
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
696
+ if @api_client.config.debugging
697
+ @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspace_settings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
698
+ end
699
+ return data, status_code, headers
700
+ end
701
+
702
+ # List my workspaces
703
+ # 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`.
704
+ # @param [Hash] opts the optional parameters
705
+ # @option opts [String] :filter Case-insensitive substring of the workspace name or id (seats.io &#x60;filter&#x60;).
706
+ # @option opts [String] :status &#x60;active&#x60; (seats.io listActive), &#x60;inactive&#x60; (deactivated; seats.io listInactive) or &#x60;all&#x60; (default).
707
+ # @option opts [String] :external_id Only the workspace with this external id (your organizer id; exact match).
708
+ # @option opts [GetApiWorkspacesCreatedByApiParameter] :created_by_api &#x60;true&#x60;: only workspaces provisioned by a workspace admin key; &#x60;false&#x60;: only the others.
709
+ # @return [GetApiWorkspaces200Response]
710
+ def get_api_workspaces(opts = {})
711
+ data, _status_code, _headers = get_api_workspaces_with_http_info(opts)
712
+ data
713
+ end
714
+
715
+ # List my workspaces
716
+ # 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;.
717
+ # @param [Hash] opts the optional parameters
718
+ # @option opts [String] :filter Case-insensitive substring of the workspace name or id (seats.io &#x60;filter&#x60;).
719
+ # @option opts [String] :status &#x60;active&#x60; (seats.io listActive), &#x60;inactive&#x60; (deactivated; seats.io listInactive) or &#x60;all&#x60; (default).
720
+ # @option opts [String] :external_id Only the workspace with this external id (your organizer id; exact match).
721
+ # @option opts [GetApiWorkspacesCreatedByApiParameter] :created_by_api &#x60;true&#x60;: only workspaces provisioned by a workspace admin key; &#x60;false&#x60;: only the others.
722
+ # @return [Array<(GetApiWorkspaces200Response, Integer, Hash)>] GetApiWorkspaces200Response data, response status code and response headers
723
+ def get_api_workspaces_with_http_info(opts = {})
724
+ if @api_client.config.debugging
725
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspaces ...'
726
+ end
727
+ if @api_client.config.client_side_validation && !opts[:'filter'].nil? && opts[:'filter'].to_s.length > 128
728
+ fail ArgumentError, 'invalid value for "opts[:"filter"]" when calling WorkspaceApi.get_api_workspaces, the character length must be smaller than or equal to 128.'
729
+ end
730
+
731
+ if @api_client.config.client_side_validation && !opts[:'filter'].nil? && opts[:'filter'].to_s.length < 1
732
+ fail ArgumentError, 'invalid value for "opts[:"filter"]" when calling WorkspaceApi.get_api_workspaces, the character length must be great than or equal to 1.'
733
+ end
734
+
735
+ allowable_values = ["active", "inactive", "all"]
736
+ if @api_client.config.client_side_validation && opts[:'status'] && !allowable_values.include?(opts[:'status'])
737
+ fail ArgumentError, "invalid value for \"status\", must be one of #{allowable_values}"
738
+ end
739
+ if @api_client.config.client_side_validation && !opts[:'external_id'].nil? && opts[:'external_id'].to_s.length > 128
740
+ fail ArgumentError, 'invalid value for "opts[:"external_id"]" when calling WorkspaceApi.get_api_workspaces, the character length must be smaller than or equal to 128.'
741
+ end
742
+
743
+ if @api_client.config.client_side_validation && !opts[:'external_id'].nil? && opts[:'external_id'].to_s.length < 1
744
+ fail ArgumentError, 'invalid value for "opts[:"external_id"]" when calling WorkspaceApi.get_api_workspaces, the character length must be great than or equal to 1.'
745
+ end
746
+
747
+ pattern = Regexp.new(/^[A-Za-z0-9_.~-]{1,128}$/)
748
+ if @api_client.config.client_side_validation && !opts[:'external_id'].nil? && opts[:'external_id'] !~ pattern
749
+ fail ArgumentError, "invalid value for 'opts[:\"external_id\"]' when calling WorkspaceApi.get_api_workspaces, must conform to the pattern #{pattern}."
750
+ end
751
+
752
+ # resource path
753
+ local_var_path = '/api/workspaces'
754
+
755
+ # query parameters
756
+ query_params = opts[:query_params] || {}
757
+ query_params[:'filter'] = opts[:'filter'] if !opts[:'filter'].nil?
758
+ query_params[:'status'] = opts[:'status'] if !opts[:'status'].nil?
759
+ query_params[:'externalId'] = opts[:'external_id'] if !opts[:'external_id'].nil?
760
+ query_params[:'createdByApi'] = opts[:'created_by_api'] if !opts[:'created_by_api'].nil?
761
+
762
+ # header parameters
763
+ header_params = opts[:header_params] || {}
764
+ # HTTP header 'Accept' (if needed)
765
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
766
+
767
+ # form parameters
768
+ form_params = opts[:form_params] || {}
769
+
770
+ # http body (model)
771
+ post_body = opts[:debug_body]
772
+
773
+ # return_type
774
+ return_type = opts[:debug_return_type] || 'GetApiWorkspaces200Response'
775
+
776
+ # auth_names
777
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
778
+
779
+ new_options = opts.merge(
780
+ :operation => :"WorkspaceApi.get_api_workspaces",
781
+ :header_params => header_params,
782
+ :query_params => query_params,
783
+ :form_params => form_params,
784
+ :body => post_body,
785
+ :auth_names => auth_names,
786
+ :return_type => return_type
787
+ )
788
+
789
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
790
+ if @api_client.config.debugging
791
+ @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspaces\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
792
+ end
793
+ return data, status_code, headers
794
+ end
795
+
796
+ # Get one of my workspaces by its external id
797
+ # The workspace whose `externalId` (your organizer id, set at `POST /workspaces` or with `PATCH /workspaces/{workspaceId}`) is this value, among the workspaces the caller is a member of (404 otherwise: the call never reveals other accounts' workspaces). Same item as `GET /workspaces`. Dashboard session or a **workspace admin API key** (other API keys: 403 `ERR_PARTNER_SCOPE`).
798
+ # @param external_id [String]
799
+ # @param [Hash] opts the optional parameters
800
+ # @return [GetApiWorkspaces200ResponseItemsInner]
801
+ def get_api_workspaces_by_external_id_by_external_id(external_id, opts = {})
802
+ data, _status_code, _headers = get_api_workspaces_by_external_id_by_external_id_with_http_info(external_id, opts)
803
+ data
804
+ end
805
+
806
+ # Get one of my workspaces by its external id
807
+ # The workspace whose &#x60;externalId&#x60; (your organizer id, set at &#x60;POST /workspaces&#x60; or with &#x60;PATCH /workspaces/{workspaceId}&#x60;) is this value, among the workspaces the caller is a member of (404 otherwise: the call never reveals other accounts&#39; workspaces). Same item as &#x60;GET /workspaces&#x60;. Dashboard session or a **workspace admin API key** (other API keys: 403 &#x60;ERR_PARTNER_SCOPE&#x60;).
808
+ # @param external_id [String]
809
+ # @param [Hash] opts the optional parameters
810
+ # @return [Array<(GetApiWorkspaces200ResponseItemsInner, Integer, Hash)>] GetApiWorkspaces200ResponseItemsInner data, response status code and response headers
811
+ def get_api_workspaces_by_external_id_by_external_id_with_http_info(external_id, opts = {})
812
+ if @api_client.config.debugging
813
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspaces_by_external_id_by_external_id ...'
814
+ end
815
+ # verify the required parameter 'external_id' is set
816
+ if @api_client.config.client_side_validation && external_id.nil?
817
+ fail ArgumentError, "Missing the required parameter 'external_id' when calling WorkspaceApi.get_api_workspaces_by_external_id_by_external_id"
818
+ end
819
+ if @api_client.config.client_side_validation && external_id.to_s.length > 128
820
+ fail ArgumentError, 'invalid value for "external_id" when calling WorkspaceApi.get_api_workspaces_by_external_id_by_external_id, the character length must be smaller than or equal to 128.'
821
+ end
822
+
823
+ if @api_client.config.client_side_validation && external_id.to_s.length < 1
824
+ fail ArgumentError, 'invalid value for "external_id" when calling WorkspaceApi.get_api_workspaces_by_external_id_by_external_id, the character length must be great than or equal to 1.'
825
+ end
826
+
827
+ pattern = Regexp.new(/^[A-Za-z0-9_.~-]{1,128}$/)
828
+ if @api_client.config.client_side_validation && external_id !~ pattern
829
+ fail ArgumentError, "invalid value for 'external_id' when calling WorkspaceApi.get_api_workspaces_by_external_id_by_external_id, must conform to the pattern #{pattern}."
830
+ end
831
+
832
+ # resource path
833
+ local_var_path = '/api/workspaces/by-external-id/{externalId}'.sub('{' + 'externalId' + '}', CGI.escape(external_id.to_s))
834
+
835
+ # query parameters
836
+ query_params = opts[:query_params] || {}
837
+
838
+ # header parameters
839
+ header_params = opts[:header_params] || {}
840
+ # HTTP header 'Accept' (if needed)
841
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
842
+
843
+ # form parameters
844
+ form_params = opts[:form_params] || {}
845
+
846
+ # http body (model)
847
+ post_body = opts[:debug_body]
848
+
849
+ # return_type
850
+ return_type = opts[:debug_return_type] || 'GetApiWorkspaces200ResponseItemsInner'
851
+
852
+ # auth_names
853
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
854
+
855
+ new_options = opts.merge(
856
+ :operation => :"WorkspaceApi.get_api_workspaces_by_external_id_by_external_id",
857
+ :header_params => header_params,
858
+ :query_params => query_params,
859
+ :form_params => form_params,
860
+ :body => post_body,
861
+ :auth_names => auth_names,
862
+ :return_type => return_type
863
+ )
864
+
865
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
866
+ if @api_client.config.debugging
867
+ @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspaces_by_external_id_by_external_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
868
+ end
869
+ return data, status_code, headers
870
+ end
871
+
872
+ # Get one of my workspaces
873
+ # Same item as GET /workspaces for one workspace the caller is a member of (404 otherwise). Dashboard session or a **workspace admin API key** (other API keys: 403 `ERR_PARTNER_SCOPE`).
874
+ # @param workspace_id [String]
875
+ # @param [Hash] opts the optional parameters
876
+ # @return [GetApiWorkspaces200ResponseItemsInner]
877
+ def get_api_workspaces_by_workspace_id(workspace_id, opts = {})
878
+ data, _status_code, _headers = get_api_workspaces_by_workspace_id_with_http_info(workspace_id, opts)
879
+ data
880
+ end
881
+
882
+ # Get one of my workspaces
883
+ # Same item as GET /workspaces for one workspace the caller is a member of (404 otherwise). Dashboard session or a **workspace admin API key** (other API keys: 403 &#x60;ERR_PARTNER_SCOPE&#x60;).
884
+ # @param workspace_id [String]
885
+ # @param [Hash] opts the optional parameters
886
+ # @return [Array<(GetApiWorkspaces200ResponseItemsInner, Integer, Hash)>] GetApiWorkspaces200ResponseItemsInner data, response status code and response headers
887
+ def get_api_workspaces_by_workspace_id_with_http_info(workspace_id, opts = {})
888
+ if @api_client.config.debugging
889
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspaces_by_workspace_id ...'
890
+ end
891
+ # verify the required parameter 'workspace_id' is set
892
+ if @api_client.config.client_side_validation && workspace_id.nil?
893
+ fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.get_api_workspaces_by_workspace_id"
894
+ end
895
+ if @api_client.config.client_side_validation && workspace_id.to_s.length > 128
896
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.get_api_workspaces_by_workspace_id, the character length must be smaller than or equal to 128.'
897
+ end
898
+
899
+ if @api_client.config.client_side_validation && workspace_id.to_s.length < 1
900
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.get_api_workspaces_by_workspace_id, the character length must be great than or equal to 1.'
901
+ end
902
+
903
+ # resource path
904
+ local_var_path = '/api/workspaces/{workspaceId}'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s))
905
+
906
+ # query parameters
907
+ query_params = opts[:query_params] || {}
908
+
909
+ # header parameters
910
+ header_params = opts[:header_params] || {}
911
+ # HTTP header 'Accept' (if needed)
912
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
913
+
914
+ # form parameters
915
+ form_params = opts[:form_params] || {}
916
+
917
+ # http body (model)
918
+ post_body = opts[:debug_body]
919
+
920
+ # return_type
921
+ return_type = opts[:debug_return_type] || 'GetApiWorkspaces200ResponseItemsInner'
922
+
923
+ # auth_names
924
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
925
+
926
+ new_options = opts.merge(
927
+ :operation => :"WorkspaceApi.get_api_workspaces_by_workspace_id",
928
+ :header_params => header_params,
929
+ :query_params => query_params,
930
+ :form_params => form_params,
931
+ :body => post_body,
932
+ :auth_names => auth_names,
933
+ :return_type => return_type
934
+ )
935
+
936
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
937
+ if @api_client.config.debugging
938
+ @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspaces_by_workspace_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
939
+ end
940
+ return data, status_code, headers
941
+ end
942
+
943
+ # List the pending invitations of a workspace you administer
944
+ # @param workspace_id [String] Workspace id or its external id.
945
+ # @param [Hash] opts the optional parameters
946
+ # @return [nil]
947
+ def get_api_workspaces_by_workspace_id_invitations(workspace_id, opts = {})
948
+ get_api_workspaces_by_workspace_id_invitations_with_http_info(workspace_id, opts)
949
+ nil
950
+ end
951
+
952
+ # List the pending invitations of a workspace you administer
953
+ # @param workspace_id [String] Workspace id or its external id.
954
+ # @param [Hash] opts the optional parameters
955
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
956
+ def get_api_workspaces_by_workspace_id_invitations_with_http_info(workspace_id, opts = {})
957
+ if @api_client.config.debugging
958
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspaces_by_workspace_id_invitations ...'
959
+ end
960
+ # verify the required parameter 'workspace_id' is set
961
+ if @api_client.config.client_side_validation && workspace_id.nil?
962
+ fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.get_api_workspaces_by_workspace_id_invitations"
963
+ end
964
+ if @api_client.config.client_side_validation && workspace_id.to_s.length > 128
965
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.get_api_workspaces_by_workspace_id_invitations, the character length must be smaller than or equal to 128.'
966
+ end
967
+
968
+ if @api_client.config.client_side_validation && workspace_id.to_s.length < 1
969
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.get_api_workspaces_by_workspace_id_invitations, the character length must be great than or equal to 1.'
970
+ end
971
+
972
+ # resource path
973
+ local_var_path = '/api/workspaces/{workspaceId}/invitations'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s))
974
+
975
+ # query parameters
976
+ query_params = opts[:query_params] || {}
977
+
978
+ # header parameters
979
+ header_params = opts[:header_params] || {}
980
+
981
+ # form parameters
982
+ form_params = opts[:form_params] || {}
983
+
984
+ # http body (model)
985
+ post_body = opts[:debug_body]
986
+
987
+ # return_type
988
+ return_type = opts[:debug_return_type]
989
+
990
+ # auth_names
991
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
992
+
993
+ new_options = opts.merge(
994
+ :operation => :"WorkspaceApi.get_api_workspaces_by_workspace_id_invitations",
995
+ :header_params => header_params,
996
+ :query_params => query_params,
997
+ :form_params => form_params,
998
+ :body => post_body,
999
+ :auth_names => auth_names,
1000
+ :return_type => return_type
1001
+ )
1002
+
1003
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1004
+ if @api_client.config.debugging
1005
+ @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspaces_by_workspace_id_invitations\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1006
+ end
1007
+ return data, status_code, headers
1008
+ end
1009
+
1010
+ # List the API keys of a workspace you administer
1011
+ # Live keys of the workspace (prefix fingerprint only, never a secret), newest first. Dashboard session or a **workspace admin API key**; the caller (for a key: the admin it is bound to, re-checked on every call) must administer the workspace: 404 otherwise, also for another account's workspace.
1012
+ # @param workspace_id [String] Workspace id or its external id.
1013
+ # @param [Hash] opts the optional parameters
1014
+ # @return [GetApiWorkspacesByWorkspaceIdKeys200Response]
1015
+ def get_api_workspaces_by_workspace_id_keys(workspace_id, opts = {})
1016
+ data, _status_code, _headers = get_api_workspaces_by_workspace_id_keys_with_http_info(workspace_id, opts)
1017
+ data
1018
+ end
1019
+
1020
+ # List the API keys of a workspace you administer
1021
+ # Live keys of the workspace (prefix fingerprint only, never a secret), newest first. Dashboard session or a **workspace admin API key**; the caller (for a key: the admin it is bound to, re-checked on every call) must administer the workspace: 404 otherwise, also for another account&#39;s workspace.
1022
+ # @param workspace_id [String] Workspace id or its external id.
1023
+ # @param [Hash] opts the optional parameters
1024
+ # @return [Array<(GetApiWorkspacesByWorkspaceIdKeys200Response, Integer, Hash)>] GetApiWorkspacesByWorkspaceIdKeys200Response data, response status code and response headers
1025
+ def get_api_workspaces_by_workspace_id_keys_with_http_info(workspace_id, opts = {})
1026
+ if @api_client.config.debugging
1027
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspaces_by_workspace_id_keys ...'
1028
+ end
1029
+ # verify the required parameter 'workspace_id' is set
1030
+ if @api_client.config.client_side_validation && workspace_id.nil?
1031
+ fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.get_api_workspaces_by_workspace_id_keys"
1032
+ end
1033
+ if @api_client.config.client_side_validation && workspace_id.to_s.length > 128
1034
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.get_api_workspaces_by_workspace_id_keys, the character length must be smaller than or equal to 128.'
1035
+ end
1036
+
1037
+ if @api_client.config.client_side_validation && workspace_id.to_s.length < 1
1038
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.get_api_workspaces_by_workspace_id_keys, the character length must be great than or equal to 1.'
1039
+ end
1040
+
1041
+ # resource path
1042
+ local_var_path = '/api/workspaces/{workspaceId}/keys'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s))
1043
+
1044
+ # query parameters
1045
+ query_params = opts[:query_params] || {}
1046
+
1047
+ # header parameters
1048
+ header_params = opts[:header_params] || {}
1049
+ # HTTP header 'Accept' (if needed)
1050
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
1051
+
1052
+ # form parameters
1053
+ form_params = opts[:form_params] || {}
1054
+
1055
+ # http body (model)
1056
+ post_body = opts[:debug_body]
1057
+
1058
+ # return_type
1059
+ return_type = opts[:debug_return_type] || 'GetApiWorkspacesByWorkspaceIdKeys200Response'
1060
+
1061
+ # auth_names
1062
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
1063
+
1064
+ new_options = opts.merge(
1065
+ :operation => :"WorkspaceApi.get_api_workspaces_by_workspace_id_keys",
1066
+ :header_params => header_params,
1067
+ :query_params => query_params,
1068
+ :form_params => form_params,
1069
+ :body => post_body,
1070
+ :auth_names => auth_names,
1071
+ :return_type => return_type
1072
+ )
1073
+
1074
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1075
+ if @api_client.config.debugging
1076
+ @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspaces_by_workspace_id_keys\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1077
+ end
1078
+ return data, status_code, headers
1079
+ end
1080
+
1081
+ # List the members of a workspace you administer
1082
+ # Dashboard members with role, join date and `twoFactorEnabled`. Dashboard session or a workspace admin API key.
1083
+ # @param workspace_id [String] Workspace id or its external id.
1084
+ # @param [Hash] opts the optional parameters
1085
+ # @return [nil]
1086
+ def get_api_workspaces_by_workspace_id_members(workspace_id, opts = {})
1087
+ get_api_workspaces_by_workspace_id_members_with_http_info(workspace_id, opts)
1088
+ nil
1089
+ end
1090
+
1091
+ # List the members of a workspace you administer
1092
+ # Dashboard members with role, join date and &#x60;twoFactorEnabled&#x60;. Dashboard session or a workspace admin API key.
1093
+ # @param workspace_id [String] Workspace id or its external id.
1094
+ # @param [Hash] opts the optional parameters
1095
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
1096
+ def get_api_workspaces_by_workspace_id_members_with_http_info(workspace_id, opts = {})
1097
+ if @api_client.config.debugging
1098
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspaces_by_workspace_id_members ...'
1099
+ end
1100
+ # verify the required parameter 'workspace_id' is set
1101
+ if @api_client.config.client_side_validation && workspace_id.nil?
1102
+ fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.get_api_workspaces_by_workspace_id_members"
1103
+ end
1104
+ if @api_client.config.client_side_validation && workspace_id.to_s.length > 128
1105
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.get_api_workspaces_by_workspace_id_members, the character length must be smaller than or equal to 128.'
1106
+ end
1107
+
1108
+ if @api_client.config.client_side_validation && workspace_id.to_s.length < 1
1109
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.get_api_workspaces_by_workspace_id_members, the character length must be great than or equal to 1.'
1110
+ end
1111
+
1112
+ # resource path
1113
+ local_var_path = '/api/workspaces/{workspaceId}/members'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s))
1114
+
1115
+ # query parameters
1116
+ query_params = opts[:query_params] || {}
1117
+
1118
+ # header parameters
1119
+ header_params = opts[:header_params] || {}
1120
+
1121
+ # form parameters
1122
+ form_params = opts[:form_params] || {}
1123
+
1124
+ # http body (model)
1125
+ post_body = opts[:debug_body]
1126
+
1127
+ # return_type
1128
+ return_type = opts[:debug_return_type]
1129
+
1130
+ # auth_names
1131
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
1132
+
1133
+ new_options = opts.merge(
1134
+ :operation => :"WorkspaceApi.get_api_workspaces_by_workspace_id_members",
1135
+ :header_params => header_params,
1136
+ :query_params => query_params,
1137
+ :form_params => form_params,
1138
+ :body => post_body,
1139
+ :auth_names => auth_names,
1140
+ :return_type => return_type
1141
+ )
1142
+
1143
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1144
+ if @api_client.config.debugging
1145
+ @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspaces_by_workspace_id_members\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1146
+ end
1147
+ return data, status_code, headers
1148
+ end
1149
+
1150
+ # Consolidated overview of the organizer workspaces you administer
1151
+ # One call for the platform view: every production workspace the caller administers (for a workspace admin key: its admin), newest first, with charts (not archived), events, seats `sold` / `held` / `available` (numbered seats for sale plus general admission places; held = numbered seats under a hold now, read from Redis for current and upcoming events), `revenue` and the used objects of `month`, plus `totals` over every workspace matching the filters (not only this page). `revenue.cents` is the catalog price of the sold seats and is known only when the workspace takes prices from SeatsChart (`pricingSource: seatschart_catalog`); with partner or synced pricing the platform owns the amounts (`known: false`, `cents: null`; `totals.revenue.complete` says whether every workspace was known). Sold and available come from PostgreSQL, holds from Redis. Filters: `externalId`, `status`, `createdByApi`, creation date range `createdFrom` / `createdTo`. Paginated with `limit` / `nextCursor`. Dashboard session or a workspace admin API key.
1152
+ # @param [Hash] opts the optional parameters
1153
+ # @option opts [String] :external_id Only this organizer.
1154
+ # @option opts [String] :status Default &#x60;all&#x60;.
1155
+ # @option opts [GetApiWorkspacesOverviewCreatedByApiParameter] :created_by_api &#x60;true&#x60;: only workspaces provisioned by a workspace admin key.
1156
+ # @option opts [String] :created_from Workspaces created at or after this date / date-time (ISO 8601).
1157
+ # @option opts [String] :created_to Workspaces created at or before this date (whole UTC day) / date-time.
1158
+ # @option opts [String] :month Usage month &#x60;YYYY-MM&#x60; (default: the current UTC month).
1159
+ # @option opts [Float] :limit Page size (1..200, default 50).
1160
+ # @option opts [String] :cursor Opaque &#x60;nextCursor&#x60; of the previous page.
1161
+ # @return [nil]
1162
+ def get_api_workspaces_overview(opts = {})
1163
+ get_api_workspaces_overview_with_http_info(opts)
1164
+ nil
1165
+ end
1166
+
1167
+ # Consolidated overview of the organizer workspaces you administer
1168
+ # One call for the platform view: every production workspace the caller administers (for a workspace admin key: its admin), newest first, with charts (not archived), events, seats &#x60;sold&#x60; / &#x60;held&#x60; / &#x60;available&#x60; (numbered seats for sale plus general admission places; held &#x3D; numbered seats under a hold now, read from Redis for current and upcoming events), &#x60;revenue&#x60; and the used objects of &#x60;month&#x60;, plus &#x60;totals&#x60; over every workspace matching the filters (not only this page). &#x60;revenue.cents&#x60; is the catalog price of the sold seats and is known only when the workspace takes prices from SeatsChart (&#x60;pricingSource: seatschart_catalog&#x60;); with partner or synced pricing the platform owns the amounts (&#x60;known: false&#x60;, &#x60;cents: null&#x60;; &#x60;totals.revenue.complete&#x60; says whether every workspace was known). Sold and available come from PostgreSQL, holds from Redis. Filters: &#x60;externalId&#x60;, &#x60;status&#x60;, &#x60;createdByApi&#x60;, creation date range &#x60;createdFrom&#x60; / &#x60;createdTo&#x60;. Paginated with &#x60;limit&#x60; / &#x60;nextCursor&#x60;. Dashboard session or a workspace admin API key.
1169
+ # @param [Hash] opts the optional parameters
1170
+ # @option opts [String] :external_id Only this organizer.
1171
+ # @option opts [String] :status Default &#x60;all&#x60;.
1172
+ # @option opts [GetApiWorkspacesOverviewCreatedByApiParameter] :created_by_api &#x60;true&#x60;: only workspaces provisioned by a workspace admin key.
1173
+ # @option opts [String] :created_from Workspaces created at or after this date / date-time (ISO 8601).
1174
+ # @option opts [String] :created_to Workspaces created at or before this date (whole UTC day) / date-time.
1175
+ # @option opts [String] :month Usage month &#x60;YYYY-MM&#x60; (default: the current UTC month).
1176
+ # @option opts [Float] :limit Page size (1..200, default 50).
1177
+ # @option opts [String] :cursor Opaque &#x60;nextCursor&#x60; of the previous page.
1178
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
1179
+ def get_api_workspaces_overview_with_http_info(opts = {})
1180
+ if @api_client.config.debugging
1181
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspaces_overview ...'
1182
+ end
1183
+ if @api_client.config.client_side_validation && !opts[:'external_id'].nil? && opts[:'external_id'].to_s.length > 128
1184
+ fail ArgumentError, 'invalid value for "opts[:"external_id"]" when calling WorkspaceApi.get_api_workspaces_overview, the character length must be smaller than or equal to 128.'
1185
+ end
1186
+
1187
+ if @api_client.config.client_side_validation && !opts[:'external_id'].nil? && opts[:'external_id'].to_s.length < 1
1188
+ fail ArgumentError, 'invalid value for "opts[:"external_id"]" when calling WorkspaceApi.get_api_workspaces_overview, the character length must be great than or equal to 1.'
1189
+ end
1190
+
1191
+ pattern = Regexp.new(/^[A-Za-z0-9_.~-]{1,128}$/)
1192
+ if @api_client.config.client_side_validation && !opts[:'external_id'].nil? && opts[:'external_id'] !~ pattern
1193
+ fail ArgumentError, "invalid value for 'opts[:\"external_id\"]' when calling WorkspaceApi.get_api_workspaces_overview, must conform to the pattern #{pattern}."
1194
+ end
1195
+
1196
+ allowable_values = ["active", "inactive", "all"]
1197
+ if @api_client.config.client_side_validation && opts[:'status'] && !allowable_values.include?(opts[:'status'])
1198
+ fail ArgumentError, "invalid value for \"status\", must be one of #{allowable_values}"
1199
+ end
1200
+ if @api_client.config.client_side_validation && !opts[:'created_from'].nil? && opts[:'created_from'].to_s.length > 40
1201
+ fail ArgumentError, 'invalid value for "opts[:"created_from"]" when calling WorkspaceApi.get_api_workspaces_overview, the character length must be smaller than or equal to 40.'
1202
+ end
1203
+
1204
+ if @api_client.config.client_side_validation && !opts[:'created_from'].nil? && opts[:'created_from'].to_s.length < 10
1205
+ fail ArgumentError, 'invalid value for "opts[:"created_from"]" when calling WorkspaceApi.get_api_workspaces_overview, the character length must be great than or equal to 10.'
1206
+ end
1207
+
1208
+ if @api_client.config.client_side_validation && !opts[:'created_to'].nil? && opts[:'created_to'].to_s.length > 40
1209
+ fail ArgumentError, 'invalid value for "opts[:"created_to"]" when calling WorkspaceApi.get_api_workspaces_overview, the character length must be smaller than or equal to 40.'
1210
+ end
1211
+
1212
+ if @api_client.config.client_side_validation && !opts[:'created_to'].nil? && opts[:'created_to'].to_s.length < 10
1213
+ fail ArgumentError, 'invalid value for "opts[:"created_to"]" when calling WorkspaceApi.get_api_workspaces_overview, the character length must be great than or equal to 10.'
1214
+ end
1215
+
1216
+ pattern = Regexp.new(/^\d{4}-\d{2}$/)
1217
+ if @api_client.config.client_side_validation && !opts[:'month'].nil? && opts[:'month'] !~ pattern
1218
+ fail ArgumentError, "invalid value for 'opts[:\"month\"]' when calling WorkspaceApi.get_api_workspaces_overview, must conform to the pattern #{pattern}."
1219
+ end
1220
+
1221
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 200
1222
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling WorkspaceApi.get_api_workspaces_overview, must be smaller than or equal to 200.'
1223
+ end
1224
+
1225
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
1226
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling WorkspaceApi.get_api_workspaces_overview, must be greater than or equal to 1.'
1227
+ end
1228
+
1229
+ if @api_client.config.client_side_validation && !opts[:'cursor'].nil? && opts[:'cursor'].to_s.length > 64
1230
+ fail ArgumentError, 'invalid value for "opts[:"cursor"]" when calling WorkspaceApi.get_api_workspaces_overview, the character length must be smaller than or equal to 64.'
1231
+ end
1232
+
1233
+ if @api_client.config.client_side_validation && !opts[:'cursor'].nil? && opts[:'cursor'].to_s.length < 1
1234
+ fail ArgumentError, 'invalid value for "opts[:"cursor"]" when calling WorkspaceApi.get_api_workspaces_overview, the character length must be great than or equal to 1.'
1235
+ end
1236
+
1237
+ pattern = Regexp.new(/^[A-Za-z0-9_-]+$/)
1238
+ if @api_client.config.client_side_validation && !opts[:'cursor'].nil? && opts[:'cursor'] !~ pattern
1239
+ fail ArgumentError, "invalid value for 'opts[:\"cursor\"]' when calling WorkspaceApi.get_api_workspaces_overview, must conform to the pattern #{pattern}."
1240
+ end
1241
+
1242
+ # resource path
1243
+ local_var_path = '/api/workspaces/overview'
1244
+
1245
+ # query parameters
1246
+ query_params = opts[:query_params] || {}
1247
+ query_params[:'externalId'] = opts[:'external_id'] if !opts[:'external_id'].nil?
1248
+ query_params[:'status'] = opts[:'status'] if !opts[:'status'].nil?
1249
+ query_params[:'createdByApi'] = opts[:'created_by_api'] if !opts[:'created_by_api'].nil?
1250
+ query_params[:'createdFrom'] = opts[:'created_from'] if !opts[:'created_from'].nil?
1251
+ query_params[:'createdTo'] = opts[:'created_to'] if !opts[:'created_to'].nil?
1252
+ query_params[:'month'] = opts[:'month'] if !opts[:'month'].nil?
1253
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
1254
+ query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
1255
+
1256
+ # header parameters
1257
+ header_params = opts[:header_params] || {}
1258
+
1259
+ # form parameters
1260
+ form_params = opts[:form_params] || {}
1261
+
1262
+ # http body (model)
1263
+ post_body = opts[:debug_body]
1264
+
1265
+ # return_type
1266
+ return_type = opts[:debug_return_type]
1267
+
1268
+ # auth_names
1269
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
1270
+
1271
+ new_options = opts.merge(
1272
+ :operation => :"WorkspaceApi.get_api_workspaces_overview",
1273
+ :header_params => header_params,
1274
+ :query_params => query_params,
1275
+ :form_params => form_params,
1276
+ :body => post_body,
1277
+ :auth_names => auth_names,
1278
+ :return_type => return_type
1279
+ )
1280
+
1281
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1282
+ if @api_client.config.debugging
1283
+ @api_client.config.logger.debug "API called: WorkspaceApi#get_api_workspaces_overview\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1284
+ end
1285
+ return data, status_code, headers
1286
+ end
1287
+
1288
+ # Update workspace display name
1289
+ # @param patch_api_workspace_request [PatchApiWorkspaceRequest]
1290
+ # @param [Hash] opts the optional parameters
1291
+ # @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.
1292
+ # @return [nil]
1293
+ def patch_api_workspace(patch_api_workspace_request, opts = {})
1294
+ patch_api_workspace_with_http_info(patch_api_workspace_request, opts)
1295
+ nil
1296
+ end
1297
+
1298
+ # Update workspace display name
1299
+ # @param patch_api_workspace_request [PatchApiWorkspaceRequest]
1300
+ # @param [Hash] opts the optional parameters
1301
+ # @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.
1302
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
1303
+ def patch_api_workspace_with_http_info(patch_api_workspace_request, opts = {})
1304
+ if @api_client.config.debugging
1305
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.patch_api_workspace ...'
1306
+ end
1307
+ # verify the required parameter 'patch_api_workspace_request' is set
1308
+ if @api_client.config.client_side_validation && patch_api_workspace_request.nil?
1309
+ fail ArgumentError, "Missing the required parameter 'patch_api_workspace_request' when calling WorkspaceApi.patch_api_workspace"
1310
+ end
1311
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
1312
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspace, the character length must be smaller than or equal to 255.'
1313
+ end
1314
+
1315
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
1316
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspace, the character length must be great than or equal to 1.'
1317
+ end
1318
+
1319
+ # resource path
1320
+ local_var_path = '/api/workspace'
1321
+
1322
+ # query parameters
1323
+ query_params = opts[:query_params] || {}
1324
+
1325
+ # header parameters
1326
+ header_params = opts[:header_params] || {}
1327
+ # HTTP header 'Content-Type'
1328
+ content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
1329
+ if !content_type.nil?
1330
+ header_params['Content-Type'] = content_type
1331
+ end
1332
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
1333
+
1334
+ # form parameters
1335
+ form_params = opts[:form_params] || {}
1336
+
1337
+ # http body (model)
1338
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(patch_api_workspace_request)
1339
+
1340
+ # return_type
1341
+ return_type = opts[:debug_return_type]
1342
+
1343
+ # auth_names
1344
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
1345
+
1346
+ new_options = opts.merge(
1347
+ :operation => :"WorkspaceApi.patch_api_workspace",
1348
+ :header_params => header_params,
1349
+ :query_params => query_params,
1350
+ :form_params => form_params,
1351
+ :body => post_body,
1352
+ :auth_names => auth_names,
1353
+ :return_type => return_type
1354
+ )
1355
+
1356
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
1357
+ if @api_client.config.debugging
1358
+ @api_client.config.logger.debug "API called: WorkspaceApi#patch_api_workspace\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1359
+ end
1360
+ return data, status_code, headers
1361
+ end
1362
+
1363
+ # Update chart validation severities
1364
+ # 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).
1365
+ # @param patch_api_workspace_chart_validation_request [PatchApiWorkspaceChartValidationRequest]
1366
+ # @param [Hash] opts the optional parameters
1367
+ # @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.
1368
+ # @return [nil]
1369
+ def patch_api_workspace_chart_validation(patch_api_workspace_chart_validation_request, opts = {})
1370
+ patch_api_workspace_chart_validation_with_http_info(patch_api_workspace_chart_validation_request, opts)
1371
+ nil
1372
+ end
1373
+
1374
+ # Update chart validation severities
1375
+ # 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).
1376
+ # @param patch_api_workspace_chart_validation_request [PatchApiWorkspaceChartValidationRequest]
1377
+ # @param [Hash] opts the optional parameters
1378
+ # @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.
1379
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
1380
+ def patch_api_workspace_chart_validation_with_http_info(patch_api_workspace_chart_validation_request, opts = {})
1381
+ if @api_client.config.debugging
550
1382
  @api_client.config.logger.debug 'Calling API: WorkspaceApi.patch_api_workspace_chart_validation ...'
551
1383
  end
552
- # verify the required parameter 'patch_api_workspace_chart_validation_request' is set
553
- if @api_client.config.client_side_validation && patch_api_workspace_chart_validation_request.nil?
554
- fail ArgumentError, "Missing the required parameter 'patch_api_workspace_chart_validation_request' when calling WorkspaceApi.patch_api_workspace_chart_validation"
1384
+ # verify the required parameter 'patch_api_workspace_chart_validation_request' is set
1385
+ if @api_client.config.client_side_validation && patch_api_workspace_chart_validation_request.nil?
1386
+ fail ArgumentError, "Missing the required parameter 'patch_api_workspace_chart_validation_request' when calling WorkspaceApi.patch_api_workspace_chart_validation"
1387
+ end
1388
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
1389
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspace_chart_validation, the character length must be smaller than or equal to 255.'
1390
+ end
1391
+
1392
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
1393
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspace_chart_validation, the character length must be great than or equal to 1.'
1394
+ end
1395
+
1396
+ # resource path
1397
+ local_var_path = '/api/workspace/chart-validation'
1398
+
1399
+ # query parameters
1400
+ query_params = opts[:query_params] || {}
1401
+
1402
+ # header parameters
1403
+ header_params = opts[:header_params] || {}
1404
+ # HTTP header 'Content-Type'
1405
+ content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
1406
+ if !content_type.nil?
1407
+ header_params['Content-Type'] = content_type
1408
+ end
1409
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
1410
+
1411
+ # form parameters
1412
+ form_params = opts[:form_params] || {}
1413
+
1414
+ # http body (model)
1415
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(patch_api_workspace_chart_validation_request)
1416
+
1417
+ # return_type
1418
+ return_type = opts[:debug_return_type]
1419
+
1420
+ # auth_names
1421
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
1422
+
1423
+ new_options = opts.merge(
1424
+ :operation => :"WorkspaceApi.patch_api_workspace_chart_validation",
1425
+ :header_params => header_params,
1426
+ :query_params => query_params,
1427
+ :form_params => form_params,
1428
+ :body => post_body,
1429
+ :auth_names => auth_names,
1430
+ :return_type => return_type
1431
+ )
1432
+
1433
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
1434
+ if @api_client.config.debugging
1435
+ @api_client.config.logger.debug "API called: WorkspaceApi#patch_api_workspace_chart_validation\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1436
+ end
1437
+ return data, status_code, headers
1438
+ end
1439
+
1440
+ # Change the workspace defaults (renderer settings, draft chart drawings)
1441
+ # 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`).
1442
+ # @param patch_api_workspace_defaults_request [PatchApiWorkspaceDefaultsRequest]
1443
+ # @param [Hash] opts the optional parameters
1444
+ # @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.
1445
+ # @return [nil]
1446
+ def patch_api_workspace_defaults(patch_api_workspace_defaults_request, opts = {})
1447
+ patch_api_workspace_defaults_with_http_info(patch_api_workspace_defaults_request, opts)
1448
+ nil
1449
+ end
1450
+
1451
+ # Change the workspace defaults (renderer settings, draft chart drawings)
1452
+ # 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;).
1453
+ # @param patch_api_workspace_defaults_request [PatchApiWorkspaceDefaultsRequest]
1454
+ # @param [Hash] opts the optional parameters
1455
+ # @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.
1456
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
1457
+ def patch_api_workspace_defaults_with_http_info(patch_api_workspace_defaults_request, opts = {})
1458
+ if @api_client.config.debugging
1459
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.patch_api_workspace_defaults ...'
1460
+ end
1461
+ # verify the required parameter 'patch_api_workspace_defaults_request' is set
1462
+ if @api_client.config.client_side_validation && patch_api_workspace_defaults_request.nil?
1463
+ fail ArgumentError, "Missing the required parameter 'patch_api_workspace_defaults_request' when calling WorkspaceApi.patch_api_workspace_defaults"
1464
+ end
1465
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
1466
+ 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.'
1467
+ end
1468
+
1469
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
1470
+ 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.'
1471
+ end
1472
+
1473
+ # resource path
1474
+ local_var_path = '/api/workspace/defaults'
1475
+
1476
+ # query parameters
1477
+ query_params = opts[:query_params] || {}
1478
+
1479
+ # header parameters
1480
+ header_params = opts[:header_params] || {}
1481
+ # HTTP header 'Content-Type'
1482
+ content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
1483
+ if !content_type.nil?
1484
+ header_params['Content-Type'] = content_type
1485
+ end
1486
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
1487
+
1488
+ # form parameters
1489
+ form_params = opts[:form_params] || {}
1490
+
1491
+ # http body (model)
1492
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(patch_api_workspace_defaults_request)
1493
+
1494
+ # return_type
1495
+ return_type = opts[:debug_return_type]
1496
+
1497
+ # auth_names
1498
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
1499
+
1500
+ new_options = opts.merge(
1501
+ :operation => :"WorkspaceApi.patch_api_workspace_defaults",
1502
+ :header_params => header_params,
1503
+ :query_params => query_params,
1504
+ :form_params => form_params,
1505
+ :body => post_body,
1506
+ :auth_names => auth_names,
1507
+ :return_type => return_type
1508
+ )
1509
+
1510
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
1511
+ if @api_client.config.debugging
1512
+ @api_client.config.logger.debug "API called: WorkspaceApi#patch_api_workspace_defaults\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1513
+ end
1514
+ return data, status_code, headers
1515
+ end
1516
+
1517
+ # Change the workspace integration mode
1518
+ # 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.
1519
+ # @param patch_api_workspace_integration_request [PatchApiWorkspaceIntegrationRequest]
1520
+ # @param [Hash] opts the optional parameters
1521
+ # @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.
1522
+ # @return [nil]
1523
+ def patch_api_workspace_integration(patch_api_workspace_integration_request, opts = {})
1524
+ patch_api_workspace_integration_with_http_info(patch_api_workspace_integration_request, opts)
1525
+ nil
1526
+ end
1527
+
1528
+ # Change the workspace integration mode
1529
+ # 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.
1530
+ # @param patch_api_workspace_integration_request [PatchApiWorkspaceIntegrationRequest]
1531
+ # @param [Hash] opts the optional parameters
1532
+ # @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.
1533
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
1534
+ def patch_api_workspace_integration_with_http_info(patch_api_workspace_integration_request, opts = {})
1535
+ if @api_client.config.debugging
1536
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.patch_api_workspace_integration ...'
1537
+ end
1538
+ # verify the required parameter 'patch_api_workspace_integration_request' is set
1539
+ if @api_client.config.client_side_validation && patch_api_workspace_integration_request.nil?
1540
+ fail ArgumentError, "Missing the required parameter 'patch_api_workspace_integration_request' when calling WorkspaceApi.patch_api_workspace_integration"
1541
+ end
1542
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
1543
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspace_integration, the character length must be smaller than or equal to 255.'
1544
+ end
1545
+
1546
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
1547
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspace_integration, the character length must be great than or equal to 1.'
1548
+ end
1549
+
1550
+ # resource path
1551
+ local_var_path = '/api/workspace/integration'
1552
+
1553
+ # query parameters
1554
+ query_params = opts[:query_params] || {}
1555
+
1556
+ # header parameters
1557
+ header_params = opts[:header_params] || {}
1558
+ # HTTP header 'Content-Type'
1559
+ content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
1560
+ if !content_type.nil?
1561
+ header_params['Content-Type'] = content_type
1562
+ end
1563
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
1564
+
1565
+ # form parameters
1566
+ form_params = opts[:form_params] || {}
1567
+
1568
+ # http body (model)
1569
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(patch_api_workspace_integration_request)
1570
+
1571
+ # return_type
1572
+ return_type = opts[:debug_return_type]
1573
+
1574
+ # auth_names
1575
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
1576
+
1577
+ new_options = opts.merge(
1578
+ :operation => :"WorkspaceApi.patch_api_workspace_integration",
1579
+ :header_params => header_params,
1580
+ :query_params => query_params,
1581
+ :form_params => form_params,
1582
+ :body => post_body,
1583
+ :auth_names => auth_names,
1584
+ :return_type => return_type
1585
+ )
1586
+
1587
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
1588
+ if @api_client.config.debugging
1589
+ @api_client.config.logger.debug "API called: WorkspaceApi#patch_api_workspace_integration\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1590
+ end
1591
+ return data, status_code, headers
1592
+ end
1593
+
1594
+ # Override workspace settings or return them to the default
1595
+ # 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.
1596
+ # @param patch_api_workspace_settings_request [PatchApiWorkspaceSettingsRequest]
1597
+ # @param [Hash] opts the optional parameters
1598
+ # @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.
1599
+ # @return [nil]
1600
+ def patch_api_workspace_settings(patch_api_workspace_settings_request, opts = {})
1601
+ patch_api_workspace_settings_with_http_info(patch_api_workspace_settings_request, opts)
1602
+ nil
1603
+ end
1604
+
1605
+ # Override workspace settings or return them to the default
1606
+ # 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.
1607
+ # @param patch_api_workspace_settings_request [PatchApiWorkspaceSettingsRequest]
1608
+ # @param [Hash] opts the optional parameters
1609
+ # @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.
1610
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
1611
+ def patch_api_workspace_settings_with_http_info(patch_api_workspace_settings_request, opts = {})
1612
+ if @api_client.config.debugging
1613
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.patch_api_workspace_settings ...'
1614
+ end
1615
+ # verify the required parameter 'patch_api_workspace_settings_request' is set
1616
+ if @api_client.config.client_side_validation && patch_api_workspace_settings_request.nil?
1617
+ fail ArgumentError, "Missing the required parameter 'patch_api_workspace_settings_request' when calling WorkspaceApi.patch_api_workspace_settings"
1618
+ end
1619
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
1620
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspace_settings, the character length must be smaller than or equal to 255.'
1621
+ end
1622
+
1623
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
1624
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspace_settings, the character length must be great than or equal to 1.'
1625
+ end
1626
+
1627
+ # resource path
1628
+ local_var_path = '/api/workspace/settings'
1629
+
1630
+ # query parameters
1631
+ query_params = opts[:query_params] || {}
1632
+
1633
+ # header parameters
1634
+ header_params = opts[:header_params] || {}
1635
+ # HTTP header 'Content-Type'
1636
+ content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
1637
+ if !content_type.nil?
1638
+ header_params['Content-Type'] = content_type
1639
+ end
1640
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
1641
+
1642
+ # form parameters
1643
+ form_params = opts[:form_params] || {}
1644
+
1645
+ # http body (model)
1646
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(patch_api_workspace_settings_request)
1647
+
1648
+ # return_type
1649
+ return_type = opts[:debug_return_type]
1650
+
1651
+ # auth_names
1652
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
1653
+
1654
+ new_options = opts.merge(
1655
+ :operation => :"WorkspaceApi.patch_api_workspace_settings",
1656
+ :header_params => header_params,
1657
+ :query_params => query_params,
1658
+ :form_params => form_params,
1659
+ :body => post_body,
1660
+ :auth_names => auth_names,
1661
+ :return_type => return_type
1662
+ )
1663
+
1664
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
1665
+ if @api_client.config.debugging
1666
+ @api_client.config.logger.debug "API called: WorkspaceApi#patch_api_workspace_settings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1667
+ end
1668
+ return data, status_code, headers
1669
+ end
1670
+
1671
+ # Rename one of my workspaces or change its external id
1672
+ # Sets `displayName` (1–512 characters) and/or `externalId`. The caller (for a workspace admin key: the admin it is bound to) must be an **admin** of the target workspace (403 otherwise, 404 when not a member). Idempotent; written to the audit log (`workspace.rename`, `workspace.external_id.update`). A changed external id takes effect at once for `X-Workspace-Key` on every API instance (the old value stops resolving).
1673
+ # @param workspace_id [String]
1674
+ # @param patch_api_workspaces_by_workspace_id_request [PatchApiWorkspacesByWorkspaceIdRequest]
1675
+ # @param [Hash] opts the optional parameters
1676
+ # @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.
1677
+ # @return [GetApiWorkspaces200ResponseItemsInner]
1678
+ def patch_api_workspaces_by_workspace_id(workspace_id, patch_api_workspaces_by_workspace_id_request, opts = {})
1679
+ data, _status_code, _headers = patch_api_workspaces_by_workspace_id_with_http_info(workspace_id, patch_api_workspaces_by_workspace_id_request, opts)
1680
+ data
1681
+ end
1682
+
1683
+ # Rename one of my workspaces or change its external id
1684
+ # Sets &#x60;displayName&#x60; (1–512 characters) and/or &#x60;externalId&#x60;. The caller (for a workspace admin key: the admin it is bound to) must be an **admin** of the target workspace (403 otherwise, 404 when not a member). Idempotent; written to the audit log (&#x60;workspace.rename&#x60;, &#x60;workspace.external_id.update&#x60;). A changed external id takes effect at once for &#x60;X-Workspace-Key&#x60; on every API instance (the old value stops resolving).
1685
+ # @param workspace_id [String]
1686
+ # @param patch_api_workspaces_by_workspace_id_request [PatchApiWorkspacesByWorkspaceIdRequest]
1687
+ # @param [Hash] opts the optional parameters
1688
+ # @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.
1689
+ # @return [Array<(GetApiWorkspaces200ResponseItemsInner, Integer, Hash)>] GetApiWorkspaces200ResponseItemsInner data, response status code and response headers
1690
+ def patch_api_workspaces_by_workspace_id_with_http_info(workspace_id, patch_api_workspaces_by_workspace_id_request, opts = {})
1691
+ if @api_client.config.debugging
1692
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.patch_api_workspaces_by_workspace_id ...'
1693
+ end
1694
+ # verify the required parameter 'workspace_id' is set
1695
+ if @api_client.config.client_side_validation && workspace_id.nil?
1696
+ fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.patch_api_workspaces_by_workspace_id"
1697
+ end
1698
+ if @api_client.config.client_side_validation && workspace_id.to_s.length > 128
1699
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.patch_api_workspaces_by_workspace_id, the character length must be smaller than or equal to 128.'
1700
+ end
1701
+
1702
+ if @api_client.config.client_side_validation && workspace_id.to_s.length < 1
1703
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.patch_api_workspaces_by_workspace_id, the character length must be great than or equal to 1.'
1704
+ end
1705
+
1706
+ # verify the required parameter 'patch_api_workspaces_by_workspace_id_request' is set
1707
+ if @api_client.config.client_side_validation && patch_api_workspaces_by_workspace_id_request.nil?
1708
+ fail ArgumentError, "Missing the required parameter 'patch_api_workspaces_by_workspace_id_request' when calling WorkspaceApi.patch_api_workspaces_by_workspace_id"
555
1709
  end
556
1710
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
557
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspace_chart_validation, the character length must be smaller than or equal to 255.'
1711
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspaces_by_workspace_id, the character length must be smaller than or equal to 255.'
558
1712
  end
559
1713
 
560
1714
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
561
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspace_chart_validation, the character length must be great than or equal to 1.'
1715
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspaces_by_workspace_id, the character length must be great than or equal to 1.'
562
1716
  end
563
1717
 
564
1718
  # resource path
565
- local_var_path = '/api/workspace/chart-validation'
1719
+ local_var_path = '/api/workspaces/{workspaceId}'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s))
566
1720
 
567
1721
  # query parameters
568
1722
  query_params = opts[:query_params] || {}
569
1723
 
570
1724
  # header parameters
571
1725
  header_params = opts[:header_params] || {}
1726
+ # HTTP header 'Accept' (if needed)
1727
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
572
1728
  # HTTP header 'Content-Type'
573
1729
  content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
574
1730
  if !content_type.nil?
@@ -580,16 +1736,16 @@ module SeatsChart
580
1736
  form_params = opts[:form_params] || {}
581
1737
 
582
1738
  # http body (model)
583
- post_body = opts[:debug_body] || @api_client.object_to_http_body(patch_api_workspace_chart_validation_request)
1739
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(patch_api_workspaces_by_workspace_id_request)
584
1740
 
585
1741
  # return_type
586
- return_type = opts[:debug_return_type]
1742
+ return_type = opts[:debug_return_type] || 'GetApiWorkspaces200ResponseItemsInner'
587
1743
 
588
1744
  # auth_names
589
1745
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
590
1746
 
591
1747
  new_options = opts.merge(
592
- :operation => :"WorkspaceApi.patch_api_workspace_chart_validation",
1748
+ :operation => :"WorkspaceApi.patch_api_workspaces_by_workspace_id",
593
1749
  :header_params => header_params,
594
1750
  :query_params => query_params,
595
1751
  :form_params => form_params,
@@ -600,52 +1756,219 @@ module SeatsChart
600
1756
 
601
1757
  data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
602
1758
  if @api_client.config.debugging
603
- @api_client.config.logger.debug "API called: WorkspaceApi#patch_api_workspace_chart_validation\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1759
+ @api_client.config.logger.debug "API called: WorkspaceApi#patch_api_workspaces_by_workspace_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
604
1760
  end
605
1761
  return data, status_code, headers
606
1762
  end
607
1763
 
608
- # 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.
610
- # @param patch_api_workspace_integration_request [PatchApiWorkspaceIntegrationRequest]
1764
+ # Rename a key of a workspace you administer or change its scopes
1765
+ # Takes effect on the next request (the auth cache entry is dropped); the secret is unchanged. Workspace admin keys answer 403 `ERR_ADMIN_KEY_DASHBOARD_ONLY`. Audited (`api_key.updated`).
1766
+ # @param workspace_id [String] Workspace id or its external id.
1767
+ # @param key_id [String]
1768
+ # @param patch_api_workspaces_by_workspace_id_keys_by_key_id_request [PatchApiWorkspacesByWorkspaceIdKeysByKeyIdRequest]
1769
+ # @param [Hash] opts the optional parameters
1770
+ # @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.
1771
+ # @return [PatchApiWorkspacesByWorkspaceIdKeysByKeyId200Response]
1772
+ def patch_api_workspaces_by_workspace_id_keys_by_key_id(workspace_id, key_id, patch_api_workspaces_by_workspace_id_keys_by_key_id_request, opts = {})
1773
+ data, _status_code, _headers = patch_api_workspaces_by_workspace_id_keys_by_key_id_with_http_info(workspace_id, key_id, patch_api_workspaces_by_workspace_id_keys_by_key_id_request, opts)
1774
+ data
1775
+ end
1776
+
1777
+ # Rename a key of a workspace you administer or change its scopes
1778
+ # Takes effect on the next request (the auth cache entry is dropped); the secret is unchanged. Workspace admin keys answer 403 &#x60;ERR_ADMIN_KEY_DASHBOARD_ONLY&#x60;. Audited (&#x60;api_key.updated&#x60;).
1779
+ # @param workspace_id [String] Workspace id or its external id.
1780
+ # @param key_id [String]
1781
+ # @param patch_api_workspaces_by_workspace_id_keys_by_key_id_request [PatchApiWorkspacesByWorkspaceIdKeysByKeyIdRequest]
1782
+ # @param [Hash] opts the optional parameters
1783
+ # @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.
1784
+ # @return [Array<(PatchApiWorkspacesByWorkspaceIdKeysByKeyId200Response, Integer, Hash)>] PatchApiWorkspacesByWorkspaceIdKeysByKeyId200Response data, response status code and response headers
1785
+ def patch_api_workspaces_by_workspace_id_keys_by_key_id_with_http_info(workspace_id, key_id, patch_api_workspaces_by_workspace_id_keys_by_key_id_request, opts = {})
1786
+ if @api_client.config.debugging
1787
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.patch_api_workspaces_by_workspace_id_keys_by_key_id ...'
1788
+ end
1789
+ # verify the required parameter 'workspace_id' is set
1790
+ if @api_client.config.client_side_validation && workspace_id.nil?
1791
+ fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.patch_api_workspaces_by_workspace_id_keys_by_key_id"
1792
+ end
1793
+ if @api_client.config.client_side_validation && workspace_id.to_s.length > 128
1794
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.patch_api_workspaces_by_workspace_id_keys_by_key_id, the character length must be smaller than or equal to 128.'
1795
+ end
1796
+
1797
+ if @api_client.config.client_side_validation && workspace_id.to_s.length < 1
1798
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.patch_api_workspaces_by_workspace_id_keys_by_key_id, the character length must be great than or equal to 1.'
1799
+ end
1800
+
1801
+ # verify the required parameter 'key_id' is set
1802
+ if @api_client.config.client_side_validation && key_id.nil?
1803
+ fail ArgumentError, "Missing the required parameter 'key_id' when calling WorkspaceApi.patch_api_workspaces_by_workspace_id_keys_by_key_id"
1804
+ end
1805
+ # verify the required parameter 'patch_api_workspaces_by_workspace_id_keys_by_key_id_request' is set
1806
+ if @api_client.config.client_side_validation && patch_api_workspaces_by_workspace_id_keys_by_key_id_request.nil?
1807
+ fail ArgumentError, "Missing the required parameter 'patch_api_workspaces_by_workspace_id_keys_by_key_id_request' when calling WorkspaceApi.patch_api_workspaces_by_workspace_id_keys_by_key_id"
1808
+ end
1809
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
1810
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspaces_by_workspace_id_keys_by_key_id, the character length must be smaller than or equal to 255.'
1811
+ end
1812
+
1813
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
1814
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspaces_by_workspace_id_keys_by_key_id, the character length must be great than or equal to 1.'
1815
+ end
1816
+
1817
+ # resource path
1818
+ local_var_path = '/api/workspaces/{workspaceId}/keys/{keyId}'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s)).sub('{' + 'keyId' + '}', CGI.escape(key_id.to_s))
1819
+
1820
+ # query parameters
1821
+ query_params = opts[:query_params] || {}
1822
+
1823
+ # header parameters
1824
+ header_params = opts[:header_params] || {}
1825
+ # HTTP header 'Accept' (if needed)
1826
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
1827
+ # HTTP header 'Content-Type'
1828
+ content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
1829
+ if !content_type.nil?
1830
+ header_params['Content-Type'] = content_type
1831
+ end
1832
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
1833
+
1834
+ # form parameters
1835
+ form_params = opts[:form_params] || {}
1836
+
1837
+ # http body (model)
1838
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(patch_api_workspaces_by_workspace_id_keys_by_key_id_request)
1839
+
1840
+ # return_type
1841
+ return_type = opts[:debug_return_type] || 'PatchApiWorkspacesByWorkspaceIdKeysByKeyId200Response'
1842
+
1843
+ # auth_names
1844
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
1845
+
1846
+ new_options = opts.merge(
1847
+ :operation => :"WorkspaceApi.patch_api_workspaces_by_workspace_id_keys_by_key_id",
1848
+ :header_params => header_params,
1849
+ :query_params => query_params,
1850
+ :form_params => form_params,
1851
+ :body => post_body,
1852
+ :auth_names => auth_names,
1853
+ :return_type => return_type
1854
+ )
1855
+
1856
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
1857
+ if @api_client.config.debugging
1858
+ @api_client.config.logger.debug "API called: WorkspaceApi#patch_api_workspaces_by_workspace_id_keys_by_key_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1859
+ end
1860
+ return data, status_code, headers
1861
+ end
1862
+
1863
+ # Rotate the public workspace key
1864
+ # Issues a new `pub_…` key. Requires workspace_admin. The public key is not authentication — rotating it does not invalidate JWTs or API keys.
611
1865
  # @param [Hash] opts the optional parameters
612
1866
  # @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.
613
1867
  # @return [nil]
614
- def patch_api_workspace_integration(patch_api_workspace_integration_request, opts = {})
615
- patch_api_workspace_integration_with_http_info(patch_api_workspace_integration_request, opts)
1868
+ def post_api_workspace_public_key_rotate(opts = {})
1869
+ post_api_workspace_public_key_rotate_with_http_info(opts)
616
1870
  nil
617
1871
  end
618
1872
 
619
- # 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.
621
- # @param patch_api_workspace_integration_request [PatchApiWorkspaceIntegrationRequest]
1873
+ # Rotate the public workspace key
1874
+ # Issues a new &#x60;pub_…&#x60; key. Requires workspace_admin. The public key is not authentication — rotating it does not invalidate JWTs or API keys.
622
1875
  # @param [Hash] opts the optional parameters
623
1876
  # @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.
624
1877
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
625
- def patch_api_workspace_integration_with_http_info(patch_api_workspace_integration_request, opts = {})
1878
+ def post_api_workspace_public_key_rotate_with_http_info(opts = {})
626
1879
  if @api_client.config.debugging
627
- @api_client.config.logger.debug 'Calling API: WorkspaceApi.patch_api_workspace_integration ...'
1880
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.post_api_workspace_public_key_rotate ...'
628
1881
  end
629
- # verify the required parameter 'patch_api_workspace_integration_request' is set
630
- if @api_client.config.client_side_validation && patch_api_workspace_integration_request.nil?
631
- fail ArgumentError, "Missing the required parameter 'patch_api_workspace_integration_request' when calling WorkspaceApi.patch_api_workspace_integration"
1882
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
1883
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspace_public_key_rotate, the character length must be smaller than or equal to 255.'
1884
+ end
1885
+
1886
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
1887
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspace_public_key_rotate, the character length must be great than or equal to 1.'
1888
+ end
1889
+
1890
+ # resource path
1891
+ local_var_path = '/api/workspace/public-key/rotate'
1892
+
1893
+ # query parameters
1894
+ query_params = opts[:query_params] || {}
1895
+
1896
+ # header parameters
1897
+ header_params = opts[:header_params] || {}
1898
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
1899
+
1900
+ # form parameters
1901
+ form_params = opts[:form_params] || {}
1902
+
1903
+ # http body (model)
1904
+ post_body = opts[:debug_body]
1905
+
1906
+ # return_type
1907
+ return_type = opts[:debug_return_type]
1908
+
1909
+ # auth_names
1910
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
1911
+
1912
+ new_options = opts.merge(
1913
+ :operation => :"WorkspaceApi.post_api_workspace_public_key_rotate",
1914
+ :header_params => header_params,
1915
+ :query_params => query_params,
1916
+ :form_params => form_params,
1917
+ :body => post_body,
1918
+ :auth_names => auth_names,
1919
+ :return_type => return_type
1920
+ )
1921
+
1922
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
1923
+ if @api_client.config.debugging
1924
+ @api_client.config.logger.debug "API called: WorkspaceApi#post_api_workspace_public_key_rotate\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1925
+ end
1926
+ return data, status_code, headers
1927
+ end
1928
+
1929
+ # Create a workspace (provision an organizer)
1930
+ # Provisions a workspace and admin membership for the caller: a dashboard admin session, or a **full-access workspace admin API key** (`POST /api/keys` with `workspaceAdmin: true`), whose bound admin becomes the admin of the new workspace. Other API keys: 403 `ERR_PARTNER_SCOPE`. **Ticketing platforms (one workspace per organizer):** send `externalId` (your organizer id), `templateWorkspaceId` (a workspace whose integration settings, embed domains and webhooks to copy) and `issueKey` (mint the organizer's API key in the same call). A workspace created by a workspace admin key is marked `createdByApi`, starts on the platform account plan (`default_plan_id` of the admin, e.g. Ultra On-Demand) and is billed to the platform: its members never see checkout or upgrade prompts. Without a template it starts with partner pricing and the platform defaults. Then call any partner route in it with the same admin key and `X-Workspace-Key: <workspaceId or externalId>`. **Idempotency:** send `Idempotency-Key` (1–255 characters): the same key and body within 24 hours returns the first result with `idempotentReplay: true` and every secret `null` (secrets are never stored; rotate the key if the first response was lost). The same key with another body: 422 `idempotency_key_reused`; while the first call still runs: 409. `isTest: true` creates a test workspace linked to the current production workspace (`parentWorkspaceId`), optionally copying its charts (`copyCharts`). Written to the audit log of the current workspace (`workspace.create` / `workspace.create_test`) and, for a production workspace, of the new one. Returns a new `publicKey`: not a secret and not a Bearer substitute.
1931
+ # @param post_api_workspaces_request [PostApiWorkspacesRequest]
1932
+ # @param [Hash] opts the optional parameters
1933
+ # @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.
1934
+ # @return [PostApiWorkspaces200Response]
1935
+ def post_api_workspaces(post_api_workspaces_request, opts = {})
1936
+ data, _status_code, _headers = post_api_workspaces_with_http_info(post_api_workspaces_request, opts)
1937
+ data
1938
+ end
1939
+
1940
+ # Create a workspace (provision an organizer)
1941
+ # Provisions a workspace and admin membership for the caller: a dashboard admin session, or a **full-access workspace admin API key** (&#x60;POST /api/keys&#x60; with &#x60;workspaceAdmin: true&#x60;), whose bound admin becomes the admin of the new workspace. Other API keys: 403 &#x60;ERR_PARTNER_SCOPE&#x60;. **Ticketing platforms (one workspace per organizer):** send &#x60;externalId&#x60; (your organizer id), &#x60;templateWorkspaceId&#x60; (a workspace whose integration settings, embed domains and webhooks to copy) and &#x60;issueKey&#x60; (mint the organizer&#39;s API key in the same call). A workspace created by a workspace admin key is marked &#x60;createdByApi&#x60;, starts on the platform account plan (&#x60;default_plan_id&#x60; of the admin, e.g. Ultra On-Demand) and is billed to the platform: its members never see checkout or upgrade prompts. Without a template it starts with partner pricing and the platform defaults. Then call any partner route in it with the same admin key and &#x60;X-Workspace-Key: &lt;workspaceId or externalId&gt;&#x60;. **Idempotency:** send &#x60;Idempotency-Key&#x60; (1–255 characters): the same key and body within 24 hours returns the first result with &#x60;idempotentReplay: true&#x60; and every secret &#x60;null&#x60; (secrets are never stored; rotate the key if the first response was lost). The same key with another body: 422 &#x60;idempotency_key_reused&#x60;; while the first call still runs: 409. &#x60;isTest: true&#x60; creates a test workspace linked to the current production workspace (&#x60;parentWorkspaceId&#x60;), optionally copying its charts (&#x60;copyCharts&#x60;). Written to the audit log of the current workspace (&#x60;workspace.create&#x60; / &#x60;workspace.create_test&#x60;) and, for a production workspace, of the new one. Returns a new &#x60;publicKey&#x60;: not a secret and not a Bearer substitute.
1942
+ # @param post_api_workspaces_request [PostApiWorkspacesRequest]
1943
+ # @param [Hash] opts the optional parameters
1944
+ # @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.
1945
+ # @return [Array<(PostApiWorkspaces200Response, Integer, Hash)>] PostApiWorkspaces200Response data, response status code and response headers
1946
+ def post_api_workspaces_with_http_info(post_api_workspaces_request, opts = {})
1947
+ if @api_client.config.debugging
1948
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.post_api_workspaces ...'
1949
+ end
1950
+ # verify the required parameter 'post_api_workspaces_request' is set
1951
+ if @api_client.config.client_side_validation && post_api_workspaces_request.nil?
1952
+ fail ArgumentError, "Missing the required parameter 'post_api_workspaces_request' when calling WorkspaceApi.post_api_workspaces"
632
1953
  end
633
1954
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
634
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspace_integration, the character length must be smaller than or equal to 255.'
1955
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces, the character length must be smaller than or equal to 255.'
635
1956
  end
636
1957
 
637
1958
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
638
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspace_integration, the character length must be great than or equal to 1.'
1959
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces, the character length must be great than or equal to 1.'
639
1960
  end
640
1961
 
641
1962
  # resource path
642
- local_var_path = '/api/workspace/integration'
1963
+ local_var_path = '/api/workspaces'
643
1964
 
644
1965
  # query parameters
645
1966
  query_params = opts[:query_params] || {}
646
1967
 
647
1968
  # header parameters
648
1969
  header_params = opts[:header_params] || {}
1970
+ # HTTP header 'Accept' (if needed)
1971
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
649
1972
  # HTTP header 'Content-Type'
650
1973
  content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
651
1974
  if !content_type.nil?
@@ -657,16 +1980,98 @@ module SeatsChart
657
1980
  form_params = opts[:form_params] || {}
658
1981
 
659
1982
  # http body (model)
660
- post_body = opts[:debug_body] || @api_client.object_to_http_body(patch_api_workspace_integration_request)
1983
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(post_api_workspaces_request)
1984
+
1985
+ # return_type
1986
+ return_type = opts[:debug_return_type] || 'PostApiWorkspaces200Response'
1987
+
1988
+ # auth_names
1989
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
1990
+
1991
+ new_options = opts.merge(
1992
+ :operation => :"WorkspaceApi.post_api_workspaces",
1993
+ :header_params => header_params,
1994
+ :query_params => query_params,
1995
+ :form_params => form_params,
1996
+ :body => post_body,
1997
+ :auth_names => auth_names,
1998
+ :return_type => return_type
1999
+ )
2000
+
2001
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
2002
+ if @api_client.config.debugging
2003
+ @api_client.config.logger.debug "API called: WorkspaceApi#post_api_workspaces\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2004
+ end
2005
+ return data, status_code, headers
2006
+ end
2007
+
2008
+ # Reactivate a workspace
2009
+ # 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`). `{workspaceId}` may also be the external id of a workspace you administer (one workspace per organizer).
2010
+ # @param workspace_id [String]
2011
+ # @param [Hash] opts the optional parameters
2012
+ # @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.
2013
+ # @return [DeleteApiWorkspacesByWorkspaceId200Response]
2014
+ def post_api_workspaces_by_workspace_id_actions_activate(workspace_id, opts = {})
2015
+ data, _status_code, _headers = post_api_workspaces_by_workspace_id_actions_activate_with_http_info(workspace_id, opts)
2016
+ data
2017
+ end
2018
+
2019
+ # Reactivate a workspace
2020
+ # 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;). &#x60;{workspaceId}&#x60; may also be the external id of a workspace you administer (one workspace per organizer).
2021
+ # @param workspace_id [String]
2022
+ # @param [Hash] opts the optional parameters
2023
+ # @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.
2024
+ # @return [Array<(DeleteApiWorkspacesByWorkspaceId200Response, Integer, Hash)>] DeleteApiWorkspacesByWorkspaceId200Response data, response status code and response headers
2025
+ def post_api_workspaces_by_workspace_id_actions_activate_with_http_info(workspace_id, opts = {})
2026
+ if @api_client.config.debugging
2027
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.post_api_workspaces_by_workspace_id_actions_activate ...'
2028
+ end
2029
+ # verify the required parameter 'workspace_id' is set
2030
+ if @api_client.config.client_side_validation && workspace_id.nil?
2031
+ fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_activate"
2032
+ end
2033
+ if @api_client.config.client_side_validation && workspace_id.to_s.length > 128
2034
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_activate, the character length must be smaller than or equal to 128.'
2035
+ end
2036
+
2037
+ if @api_client.config.client_side_validation && workspace_id.to_s.length < 1
2038
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_activate, the character length must be great than or equal to 1.'
2039
+ end
2040
+
2041
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
2042
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_activate, the character length must be smaller than or equal to 255.'
2043
+ end
2044
+
2045
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
2046
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_activate, the character length must be great than or equal to 1.'
2047
+ end
2048
+
2049
+ # resource path
2050
+ local_var_path = '/api/workspaces/{workspaceId}/actions/activate'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s))
2051
+
2052
+ # query parameters
2053
+ query_params = opts[:query_params] || {}
2054
+
2055
+ # header parameters
2056
+ header_params = opts[:header_params] || {}
2057
+ # HTTP header 'Accept' (if needed)
2058
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
2059
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
2060
+
2061
+ # form parameters
2062
+ form_params = opts[:form_params] || {}
2063
+
2064
+ # http body (model)
2065
+ post_body = opts[:debug_body]
661
2066
 
662
2067
  # return_type
663
- return_type = opts[:debug_return_type]
2068
+ return_type = opts[:debug_return_type] || 'DeleteApiWorkspacesByWorkspaceId200Response'
664
2069
 
665
2070
  # auth_names
666
2071
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
667
2072
 
668
2073
  new_options = opts.merge(
669
- :operation => :"WorkspaceApi.patch_api_workspace_integration",
2074
+ :operation => :"WorkspaceApi.post_api_workspaces_by_workspace_id_actions_activate",
670
2075
  :header_params => header_params,
671
2076
  :query_params => query_params,
672
2077
  :form_params => form_params,
@@ -675,75 +2080,80 @@ module SeatsChart
675
2080
  :return_type => return_type
676
2081
  )
677
2082
 
678
- data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
2083
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
679
2084
  if @api_client.config.debugging
680
- @api_client.config.logger.debug "API called: WorkspaceApi#patch_api_workspace_integration\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2085
+ @api_client.config.logger.debug "API called: WorkspaceApi#post_api_workspaces_by_workspace_id_actions_activate\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
681
2086
  end
682
2087
  return data, status_code, headers
683
2088
  end
684
2089
 
685
- # 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.
687
- # @param patch_api_workspace_settings_request [PatchApiWorkspaceSettingsRequest]
2090
+ # Deactivate a workspace
2091
+ # 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`). `{workspaceId}` may also be the external id of a workspace you administer (one workspace per organizer). You cannot deactivate your last active workspace (409 `last_active_workspace`).
2092
+ # @param workspace_id [String]
688
2093
  # @param [Hash] opts the optional parameters
689
2094
  # @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.
690
- # @return [nil]
691
- def patch_api_workspace_settings(patch_api_workspace_settings_request, opts = {})
692
- patch_api_workspace_settings_with_http_info(patch_api_workspace_settings_request, opts)
693
- nil
2095
+ # @return [DeleteApiWorkspacesByWorkspaceId200Response]
2096
+ def post_api_workspaces_by_workspace_id_actions_deactivate(workspace_id, opts = {})
2097
+ data, _status_code, _headers = post_api_workspaces_by_workspace_id_actions_deactivate_with_http_info(workspace_id, opts)
2098
+ data
694
2099
  end
695
2100
 
696
- # 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.
698
- # @param patch_api_workspace_settings_request [PatchApiWorkspaceSettingsRequest]
2101
+ # Deactivate a workspace
2102
+ # 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;). &#x60;{workspaceId}&#x60; may also be the external id of a workspace you administer (one workspace per organizer). You cannot deactivate your last active workspace (409 &#x60;last_active_workspace&#x60;).
2103
+ # @param workspace_id [String]
699
2104
  # @param [Hash] opts the optional parameters
700
2105
  # @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.
701
- # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
702
- def patch_api_workspace_settings_with_http_info(patch_api_workspace_settings_request, opts = {})
2106
+ # @return [Array<(DeleteApiWorkspacesByWorkspaceId200Response, Integer, Hash)>] DeleteApiWorkspacesByWorkspaceId200Response data, response status code and response headers
2107
+ def post_api_workspaces_by_workspace_id_actions_deactivate_with_http_info(workspace_id, opts = {})
703
2108
  if @api_client.config.debugging
704
- @api_client.config.logger.debug 'Calling API: WorkspaceApi.patch_api_workspace_settings ...'
2109
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.post_api_workspaces_by_workspace_id_actions_deactivate ...'
705
2110
  end
706
- # verify the required parameter 'patch_api_workspace_settings_request' is set
707
- if @api_client.config.client_side_validation && patch_api_workspace_settings_request.nil?
708
- fail ArgumentError, "Missing the required parameter 'patch_api_workspace_settings_request' when calling WorkspaceApi.patch_api_workspace_settings"
2111
+ # verify the required parameter 'workspace_id' is set
2112
+ if @api_client.config.client_side_validation && workspace_id.nil?
2113
+ fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_deactivate"
2114
+ end
2115
+ if @api_client.config.client_side_validation && workspace_id.to_s.length > 128
2116
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_deactivate, the character length must be smaller than or equal to 128.'
2117
+ end
2118
+
2119
+ if @api_client.config.client_side_validation && workspace_id.to_s.length < 1
2120
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_deactivate, the character length must be great than or equal to 1.'
709
2121
  end
2122
+
710
2123
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
711
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspace_settings, the character length must be smaller than or equal to 255.'
2124
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_deactivate, the character length must be smaller than or equal to 255.'
712
2125
  end
713
2126
 
714
2127
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
715
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspace_settings, the character length must be great than or equal to 1.'
2128
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_deactivate, the character length must be great than or equal to 1.'
716
2129
  end
717
2130
 
718
2131
  # resource path
719
- local_var_path = '/api/workspace/settings'
2132
+ local_var_path = '/api/workspaces/{workspaceId}/actions/deactivate'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s))
720
2133
 
721
2134
  # query parameters
722
2135
  query_params = opts[:query_params] || {}
723
2136
 
724
2137
  # header parameters
725
2138
  header_params = opts[:header_params] || {}
726
- # HTTP header 'Content-Type'
727
- content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
728
- if !content_type.nil?
729
- header_params['Content-Type'] = content_type
730
- end
2139
+ # HTTP header 'Accept' (if needed)
2140
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
731
2141
  header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
732
2142
 
733
2143
  # form parameters
734
2144
  form_params = opts[:form_params] || {}
735
2145
 
736
2146
  # http body (model)
737
- post_body = opts[:debug_body] || @api_client.object_to_http_body(patch_api_workspace_settings_request)
2147
+ post_body = opts[:debug_body]
738
2148
 
739
2149
  # return_type
740
- return_type = opts[:debug_return_type]
2150
+ return_type = opts[:debug_return_type] || 'DeleteApiWorkspacesByWorkspaceId200Response'
741
2151
 
742
2152
  # auth_names
743
2153
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
744
2154
 
745
2155
  new_options = opts.merge(
746
- :operation => :"WorkspaceApi.patch_api_workspace_settings",
2156
+ :operation => :"WorkspaceApi.post_api_workspaces_by_workspace_id_actions_deactivate",
747
2157
  :header_params => header_params,
748
2158
  :query_params => query_params,
749
2159
  :form_params => form_params,
@@ -752,62 +2162,62 @@ module SeatsChart
752
2162
  :return_type => return_type
753
2163
  )
754
2164
 
755
- data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
2165
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
756
2166
  if @api_client.config.debugging
757
- @api_client.config.logger.debug "API called: WorkspaceApi#patch_api_workspace_settings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2167
+ @api_client.config.logger.debug "API called: WorkspaceApi#post_api_workspaces_by_workspace_id_actions_deactivate\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
758
2168
  end
759
2169
  return data, status_code, headers
760
2170
  end
761
2171
 
762
- # Rename one of my workspaces
763
- # Sets `displayName` (1–512 characters). The caller (for a workspace admin key: the admin it is bound to) must be an **admin** of the target workspace (403 otherwise, 404 when not a member). Idempotent; written to the audit log (`workspace.rename`).
2172
+ # Delete a workspace
2173
+ # Soft delete: the workspace and every chart, event, order and audit entry stay in the database, but it leaves every list and switcher (including GET /workspaces), its members lose access, and its API keys, embed and viewer tokens and public reads are refused like a deactivated workspace (403 `workspace_deactivated`, at once on every API instance); `X-Workspace-Key` calls to it answer 404. Its sandboxes are deleted with it. It cannot be reactivated from the product (restoring is a support request). Dashboard session, or a **workspace admin API key** (offboarding an organizer; it cannot delete its own workspace: 409 `own_workspace`); other API keys: 403 `ERR_PARTNER_SCOPE`. The caller must be an **admin** of the workspace (403 `ERR_FORBIDDEN_ROLE`; 404 when not a member or already deleted). Send `confirmName` (the workspace name) or `confirmWorkspaceId` (its id); a mismatch answers 400 `confirmation_mismatch`. Refused while a paid subscription is active (409 `subscription_active`: cancel it in Billing first), for your only remaining workspace (409 `last_workspace`) and for a sandbox (409 `sandbox_workspace`). When it is the workspace of the calling session, `switchTo` names the workspace to switch to. Written to the audit log (`workspace.delete`) of the deleted workspace and of the one the session switches to.
764
2174
  # @param workspace_id [String]
765
- # @param patch_api_workspace_request [PatchApiWorkspaceRequest]
2175
+ # @param post_api_workspaces_by_workspace_id_actions_delete_request [PostApiWorkspacesByWorkspaceIdActionsDeleteRequest]
766
2176
  # @param [Hash] opts the optional parameters
767
2177
  # @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.
768
- # @return [GetApiWorkspaces200ResponseItemsInner]
769
- def patch_api_workspaces_by_workspace_id(workspace_id, patch_api_workspace_request, opts = {})
770
- data, _status_code, _headers = patch_api_workspaces_by_workspace_id_with_http_info(workspace_id, patch_api_workspace_request, opts)
2178
+ # @return [PostApiWorkspacesByWorkspaceIdActionsDelete200Response]
2179
+ def post_api_workspaces_by_workspace_id_actions_delete(workspace_id, post_api_workspaces_by_workspace_id_actions_delete_request, opts = {})
2180
+ data, _status_code, _headers = post_api_workspaces_by_workspace_id_actions_delete_with_http_info(workspace_id, post_api_workspaces_by_workspace_id_actions_delete_request, opts)
771
2181
  data
772
2182
  end
773
2183
 
774
- # Rename one of my workspaces
775
- # Sets &#x60;displayName&#x60; (1–512 characters). The caller (for a workspace admin key: the admin it is bound to) must be an **admin** of the target workspace (403 otherwise, 404 when not a member). Idempotent; written to the audit log (&#x60;workspace.rename&#x60;).
2184
+ # Delete a workspace
2185
+ # Soft delete: the workspace and every chart, event, order and audit entry stay in the database, but it leaves every list and switcher (including GET /workspaces), its members lose access, and its API keys, embed and viewer tokens and public reads are refused like a deactivated workspace (403 &#x60;workspace_deactivated&#x60;, at once on every API instance); &#x60;X-Workspace-Key&#x60; calls to it answer 404. Its sandboxes are deleted with it. It cannot be reactivated from the product (restoring is a support request). Dashboard session, or a **workspace admin API key** (offboarding an organizer; it cannot delete its own workspace: 409 &#x60;own_workspace&#x60;); other API keys: 403 &#x60;ERR_PARTNER_SCOPE&#x60;. The caller must be an **admin** of the workspace (403 &#x60;ERR_FORBIDDEN_ROLE&#x60;; 404 when not a member or already deleted). Send &#x60;confirmName&#x60; (the workspace name) or &#x60;confirmWorkspaceId&#x60; (its id); a mismatch answers 400 &#x60;confirmation_mismatch&#x60;. Refused while a paid subscription is active (409 &#x60;subscription_active&#x60;: cancel it in Billing first), for your only remaining workspace (409 &#x60;last_workspace&#x60;) and for a sandbox (409 &#x60;sandbox_workspace&#x60;). When it is the workspace of the calling session, &#x60;switchTo&#x60; names the workspace to switch to. Written to the audit log (&#x60;workspace.delete&#x60;) of the deleted workspace and of the one the session switches to.
776
2186
  # @param workspace_id [String]
777
- # @param patch_api_workspace_request [PatchApiWorkspaceRequest]
2187
+ # @param post_api_workspaces_by_workspace_id_actions_delete_request [PostApiWorkspacesByWorkspaceIdActionsDeleteRequest]
778
2188
  # @param [Hash] opts the optional parameters
779
2189
  # @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.
780
- # @return [Array<(GetApiWorkspaces200ResponseItemsInner, Integer, Hash)>] GetApiWorkspaces200ResponseItemsInner data, response status code and response headers
781
- def patch_api_workspaces_by_workspace_id_with_http_info(workspace_id, patch_api_workspace_request, opts = {})
2190
+ # @return [Array<(PostApiWorkspacesByWorkspaceIdActionsDelete200Response, Integer, Hash)>] PostApiWorkspacesByWorkspaceIdActionsDelete200Response data, response status code and response headers
2191
+ def post_api_workspaces_by_workspace_id_actions_delete_with_http_info(workspace_id, post_api_workspaces_by_workspace_id_actions_delete_request, opts = {})
782
2192
  if @api_client.config.debugging
783
- @api_client.config.logger.debug 'Calling API: WorkspaceApi.patch_api_workspaces_by_workspace_id ...'
2193
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.post_api_workspaces_by_workspace_id_actions_delete ...'
784
2194
  end
785
2195
  # verify the required parameter 'workspace_id' is set
786
2196
  if @api_client.config.client_side_validation && workspace_id.nil?
787
- fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.patch_api_workspaces_by_workspace_id"
2197
+ fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_delete"
788
2198
  end
789
2199
  if @api_client.config.client_side_validation && workspace_id.to_s.length > 128
790
- fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.patch_api_workspaces_by_workspace_id, the character length must be smaller than or equal to 128.'
2200
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_delete, the character length must be smaller than or equal to 128.'
791
2201
  end
792
2202
 
793
2203
  if @api_client.config.client_side_validation && workspace_id.to_s.length < 1
794
- fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.patch_api_workspaces_by_workspace_id, the character length must be great than or equal to 1.'
2204
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_delete, the character length must be great than or equal to 1.'
795
2205
  end
796
2206
 
797
- # verify the required parameter 'patch_api_workspace_request' is set
798
- if @api_client.config.client_side_validation && patch_api_workspace_request.nil?
799
- fail ArgumentError, "Missing the required parameter 'patch_api_workspace_request' when calling WorkspaceApi.patch_api_workspaces_by_workspace_id"
2207
+ # verify the required parameter 'post_api_workspaces_by_workspace_id_actions_delete_request' is set
2208
+ if @api_client.config.client_side_validation && post_api_workspaces_by_workspace_id_actions_delete_request.nil?
2209
+ fail ArgumentError, "Missing the required parameter 'post_api_workspaces_by_workspace_id_actions_delete_request' when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_delete"
800
2210
  end
801
2211
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
802
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspaces_by_workspace_id, the character length must be smaller than or equal to 255.'
2212
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_delete, the character length must be smaller than or equal to 255.'
803
2213
  end
804
2214
 
805
2215
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
806
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.patch_api_workspaces_by_workspace_id, the character length must be great than or equal to 1.'
2216
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_delete, the character length must be great than or equal to 1.'
807
2217
  end
808
2218
 
809
2219
  # resource path
810
- local_var_path = '/api/workspaces/{workspaceId}'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s))
2220
+ local_var_path = '/api/workspaces/{workspaceId}/actions/delete'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s))
811
2221
 
812
2222
  # query parameters
813
2223
  query_params = opts[:query_params] || {}
@@ -827,16 +2237,16 @@ module SeatsChart
827
2237
  form_params = opts[:form_params] || {}
828
2238
 
829
2239
  # http body (model)
830
- post_body = opts[:debug_body] || @api_client.object_to_http_body(patch_api_workspace_request)
2240
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(post_api_workspaces_by_workspace_id_actions_delete_request)
831
2241
 
832
2242
  # return_type
833
- return_type = opts[:debug_return_type] || 'GetApiWorkspaces200ResponseItemsInner'
2243
+ return_type = opts[:debug_return_type] || 'PostApiWorkspacesByWorkspaceIdActionsDelete200Response'
834
2244
 
835
2245
  # auth_names
836
2246
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
837
2247
 
838
2248
  new_options = opts.merge(
839
- :operation => :"WorkspaceApi.patch_api_workspaces_by_workspace_id",
2249
+ :operation => :"WorkspaceApi.post_api_workspaces_by_workspace_id_actions_delete",
840
2250
  :header_params => header_params,
841
2251
  :query_params => query_params,
842
2252
  :form_params => form_params,
@@ -845,48 +2255,64 @@ module SeatsChart
845
2255
  :return_type => return_type
846
2256
  )
847
2257
 
848
- data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
2258
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
849
2259
  if @api_client.config.debugging
850
- @api_client.config.logger.debug "API called: WorkspaceApi#patch_api_workspaces_by_workspace_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2260
+ @api_client.config.logger.debug "API called: WorkspaceApi#post_api_workspaces_by_workspace_id_actions_delete\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
851
2261
  end
852
2262
  return data, status_code, headers
853
2263
  end
854
2264
 
855
- # Rotate the public workspace key
856
- # Issues a new `pub_…` key. Requires workspace_admin. The public key is not authentication — rotating it does not invalidate JWTs or API keys.
2265
+ # Set my default workspace
2266
+ # Makes this workspace the default of the calling user (for a **workspace admin API key**: of the admin it is bound to): dashboard sign-in opens it, and `GET /workspaces` marks it `isDefault`. Any role may set a workspace it is a member of (404 otherwise); a deactivated workspace cannot be the default (409 `workspace_deactivated`). Idempotent; written to the audit log of that workspace (`workspace.set_default`). Other API keys: 403 `ERR_PARTNER_SCOPE`.
2267
+ # @param workspace_id [String]
857
2268
  # @param [Hash] opts the optional parameters
858
2269
  # @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.
859
- # @return [nil]
860
- def post_api_workspace_public_key_rotate(opts = {})
861
- post_api_workspace_public_key_rotate_with_http_info(opts)
862
- nil
2270
+ # @return [GetApiWorkspaces200ResponseItemsInner]
2271
+ def post_api_workspaces_by_workspace_id_actions_set_default(workspace_id, opts = {})
2272
+ data, _status_code, _headers = post_api_workspaces_by_workspace_id_actions_set_default_with_http_info(workspace_id, opts)
2273
+ data
863
2274
  end
864
2275
 
865
- # Rotate the public workspace key
866
- # Issues a new &#x60;pub_…&#x60; key. Requires workspace_admin. The public key is not authentication — rotating it does not invalidate JWTs or API keys.
2276
+ # Set my default workspace
2277
+ # Makes this workspace the default of the calling user (for a **workspace admin API key**: of the admin it is bound to): dashboard sign-in opens it, and &#x60;GET /workspaces&#x60; marks it &#x60;isDefault&#x60;. Any role may set a workspace it is a member of (404 otherwise); a deactivated workspace cannot be the default (409 &#x60;workspace_deactivated&#x60;). Idempotent; written to the audit log of that workspace (&#x60;workspace.set_default&#x60;). Other API keys: 403 &#x60;ERR_PARTNER_SCOPE&#x60;.
2278
+ # @param workspace_id [String]
867
2279
  # @param [Hash] opts the optional parameters
868
2280
  # @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.
869
- # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
870
- def post_api_workspace_public_key_rotate_with_http_info(opts = {})
2281
+ # @return [Array<(GetApiWorkspaces200ResponseItemsInner, Integer, Hash)>] GetApiWorkspaces200ResponseItemsInner data, response status code and response headers
2282
+ def post_api_workspaces_by_workspace_id_actions_set_default_with_http_info(workspace_id, opts = {})
871
2283
  if @api_client.config.debugging
872
- @api_client.config.logger.debug 'Calling API: WorkspaceApi.post_api_workspace_public_key_rotate ...'
2284
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.post_api_workspaces_by_workspace_id_actions_set_default ...'
2285
+ end
2286
+ # verify the required parameter 'workspace_id' is set
2287
+ if @api_client.config.client_side_validation && workspace_id.nil?
2288
+ fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_set_default"
2289
+ end
2290
+ if @api_client.config.client_side_validation && workspace_id.to_s.length > 128
2291
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_set_default, the character length must be smaller than or equal to 128.'
2292
+ end
2293
+
2294
+ if @api_client.config.client_side_validation && workspace_id.to_s.length < 1
2295
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_set_default, the character length must be great than or equal to 1.'
873
2296
  end
2297
+
874
2298
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
875
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspace_public_key_rotate, the character length must be smaller than or equal to 255.'
2299
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_set_default, the character length must be smaller than or equal to 255.'
876
2300
  end
877
2301
 
878
2302
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
879
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspace_public_key_rotate, the character length must be great than or equal to 1.'
2303
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_set_default, the character length must be great than or equal to 1.'
880
2304
  end
881
2305
 
882
2306
  # resource path
883
- local_var_path = '/api/workspace/public-key/rotate'
2307
+ local_var_path = '/api/workspaces/{workspaceId}/actions/set-default'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s))
884
2308
 
885
2309
  # query parameters
886
2310
  query_params = opts[:query_params] || {}
887
2311
 
888
2312
  # header parameters
889
2313
  header_params = opts[:header_params] || {}
2314
+ # HTTP header 'Accept' (if needed)
2315
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
890
2316
  header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
891
2317
 
892
2318
  # form parameters
@@ -896,13 +2322,13 @@ module SeatsChart
896
2322
  post_body = opts[:debug_body]
897
2323
 
898
2324
  # return_type
899
- return_type = opts[:debug_return_type]
2325
+ return_type = opts[:debug_return_type] || 'GetApiWorkspaces200ResponseItemsInner'
900
2326
 
901
2327
  # auth_names
902
2328
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
903
2329
 
904
2330
  new_options = opts.merge(
905
- :operation => :"WorkspaceApi.post_api_workspace_public_key_rotate",
2331
+ :operation => :"WorkspaceApi.post_api_workspaces_by_workspace_id_actions_set_default",
906
2332
  :header_params => header_params,
907
2333
  :query_params => query_params,
908
2334
  :form_params => form_params,
@@ -913,46 +2339,60 @@ module SeatsChart
913
2339
 
914
2340
  data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
915
2341
  if @api_client.config.debugging
916
- @api_client.config.logger.debug "API called: WorkspaceApi#post_api_workspace_public_key_rotate\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2342
+ @api_client.config.logger.debug "API called: WorkspaceApi#post_api_workspaces_by_workspace_id_actions_set_default\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
917
2343
  end
918
2344
  return data, status_code, headers
919
2345
  end
920
2346
 
921
- # Create an additional workspace
922
- # Provisions a free-plan tenant and admin membership for the caller: a dashboard admin session, or a **workspace admin API key** (`POST /api/keys` with `workspaceAdmin: true`; it must be a full-access key), whose bound admin becomes the admin of the new workspace. Other API keys: 403 `ERR_PARTNER_SCOPE`. `isTest: true` creates a test workspace linked to the current production workspace (`parentWorkspaceId`), optionally copying its charts (`copyCharts`). Written to the audit log of the current workspace (`workspace.create` / `workspace.create_test`). Returns a new `publicKey` — not a secret and not a Bearer substitute.
923
- # @param post_api_workspaces_request [PostApiWorkspacesRequest]
2347
+ # Invite a person to a workspace you administer
2348
+ # Gives an organizer's team access to the SeatsChart dashboard of this workspace only (optional per organizer). Same invitation flow and e-mail as the dashboard: a pending invitation (7 days) and a one-time `inviteToken` for the accept link (`/accept-invite?token=…`), returned once so you may send your own e-mail. Accepting creates or joins the account and opens this workspace; the person sees only the workspaces they are a member of. 409 when already a member or invited. Audited (`team.invitation_created`).
2349
+ # @param workspace_id [String] Workspace id or its external id.
2350
+ # @param post_api_workspaces_by_workspace_id_invitations_request [PostApiWorkspacesByWorkspaceIdInvitationsRequest]
924
2351
  # @param [Hash] opts the optional parameters
925
2352
  # @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.
926
2353
  # @return [nil]
927
- def post_api_workspaces(post_api_workspaces_request, opts = {})
928
- post_api_workspaces_with_http_info(post_api_workspaces_request, opts)
2354
+ def post_api_workspaces_by_workspace_id_invitations(workspace_id, post_api_workspaces_by_workspace_id_invitations_request, opts = {})
2355
+ post_api_workspaces_by_workspace_id_invitations_with_http_info(workspace_id, post_api_workspaces_by_workspace_id_invitations_request, opts)
929
2356
  nil
930
2357
  end
931
2358
 
932
- # Create an additional workspace
933
- # Provisions a free-plan tenant and admin membership for the caller: a dashboard admin session, or a **workspace admin API key** (&#x60;POST /api/keys&#x60; with &#x60;workspaceAdmin: true&#x60;; it must be a full-access key), whose bound admin becomes the admin of the new workspace. Other API keys: 403 &#x60;ERR_PARTNER_SCOPE&#x60;. &#x60;isTest: true&#x60; creates a test workspace linked to the current production workspace (&#x60;parentWorkspaceId&#x60;), optionally copying its charts (&#x60;copyCharts&#x60;). Written to the audit log of the current workspace (&#x60;workspace.create&#x60; / &#x60;workspace.create_test&#x60;). Returns a new &#x60;publicKey&#x60; — not a secret and not a Bearer substitute.
934
- # @param post_api_workspaces_request [PostApiWorkspacesRequest]
2359
+ # Invite a person to a workspace you administer
2360
+ # Gives an organizer&#39;s team access to the SeatsChart dashboard of this workspace only (optional per organizer). Same invitation flow and e-mail as the dashboard: a pending invitation (7 days) and a one-time &#x60;inviteToken&#x60; for the accept link (&#x60;/accept-invite?token&#x3D;…&#x60;), returned once so you may send your own e-mail. Accepting creates or joins the account and opens this workspace; the person sees only the workspaces they are a member of. 409 when already a member or invited. Audited (&#x60;team.invitation_created&#x60;).
2361
+ # @param workspace_id [String] Workspace id or its external id.
2362
+ # @param post_api_workspaces_by_workspace_id_invitations_request [PostApiWorkspacesByWorkspaceIdInvitationsRequest]
935
2363
  # @param [Hash] opts the optional parameters
936
2364
  # @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.
937
2365
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
938
- def post_api_workspaces_with_http_info(post_api_workspaces_request, opts = {})
2366
+ def post_api_workspaces_by_workspace_id_invitations_with_http_info(workspace_id, post_api_workspaces_by_workspace_id_invitations_request, opts = {})
939
2367
  if @api_client.config.debugging
940
- @api_client.config.logger.debug 'Calling API: WorkspaceApi.post_api_workspaces ...'
2368
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.post_api_workspaces_by_workspace_id_invitations ...'
941
2369
  end
942
- # verify the required parameter 'post_api_workspaces_request' is set
943
- if @api_client.config.client_side_validation && post_api_workspaces_request.nil?
944
- fail ArgumentError, "Missing the required parameter 'post_api_workspaces_request' when calling WorkspaceApi.post_api_workspaces"
2370
+ # verify the required parameter 'workspace_id' is set
2371
+ if @api_client.config.client_side_validation && workspace_id.nil?
2372
+ fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.post_api_workspaces_by_workspace_id_invitations"
2373
+ end
2374
+ if @api_client.config.client_side_validation && workspace_id.to_s.length > 128
2375
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_invitations, the character length must be smaller than or equal to 128.'
2376
+ end
2377
+
2378
+ if @api_client.config.client_side_validation && workspace_id.to_s.length < 1
2379
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_invitations, the character length must be great than or equal to 1.'
2380
+ end
2381
+
2382
+ # verify the required parameter 'post_api_workspaces_by_workspace_id_invitations_request' is set
2383
+ if @api_client.config.client_side_validation && post_api_workspaces_by_workspace_id_invitations_request.nil?
2384
+ fail ArgumentError, "Missing the required parameter 'post_api_workspaces_by_workspace_id_invitations_request' when calling WorkspaceApi.post_api_workspaces_by_workspace_id_invitations"
945
2385
  end
946
2386
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
947
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces, the character length must be smaller than or equal to 255.'
2387
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_invitations, the character length must be smaller than or equal to 255.'
948
2388
  end
949
2389
 
950
2390
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
951
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces, the character length must be great than or equal to 1.'
2391
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_invitations, the character length must be great than or equal to 1.'
952
2392
  end
953
2393
 
954
2394
  # resource path
955
- local_var_path = '/api/workspaces'
2395
+ local_var_path = '/api/workspaces/{workspaceId}/invitations'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s))
956
2396
 
957
2397
  # query parameters
958
2398
  query_params = opts[:query_params] || {}
@@ -970,7 +2410,7 @@ module SeatsChart
970
2410
  form_params = opts[:form_params] || {}
971
2411
 
972
2412
  # http body (model)
973
- post_body = opts[:debug_body] || @api_client.object_to_http_body(post_api_workspaces_request)
2413
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(post_api_workspaces_by_workspace_id_invitations_request)
974
2414
 
975
2415
  # return_type
976
2416
  return_type = opts[:debug_return_type]
@@ -979,7 +2419,7 @@ module SeatsChart
979
2419
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
980
2420
 
981
2421
  new_options = opts.merge(
982
- :operation => :"WorkspaceApi.post_api_workspaces",
2422
+ :operation => :"WorkspaceApi.post_api_workspaces_by_workspace_id_invitations",
983
2423
  :header_params => header_params,
984
2424
  :query_params => query_params,
985
2425
  :form_params => form_params,
@@ -990,54 +2430,60 @@ module SeatsChart
990
2430
 
991
2431
  data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
992
2432
  if @api_client.config.debugging
993
- @api_client.config.logger.debug "API called: WorkspaceApi#post_api_workspaces\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2433
+ @api_client.config.logger.debug "API called: WorkspaceApi#post_api_workspaces_by_workspace_id_invitations\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
994
2434
  end
995
2435
  return data, status_code, headers
996
2436
  end
997
2437
 
998
- # 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`).
1000
- # @param workspace_id [String]
2438
+ # Mint an API key in a workspace you administer
2439
+ # An ordinary `sk_live_` key of the workspace (full access by default, or the `scopes` given); the `secret` is returned once and stored as a SHA-256 hash only. Never a workspace admin key (those are minted in the dashboard). Audited in the workspace (`api_key.created`, `via: admin_key` for a workspace admin key). A sandbox answers 409 `sandbox_workspace`.
2440
+ # @param workspace_id [String] Workspace id or its external id.
2441
+ # @param post_api_workspaces_by_workspace_id_keys_request [PostApiWorkspacesByWorkspaceIdKeysRequest]
1001
2442
  # @param [Hash] opts the optional parameters
1002
2443
  # @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.
1003
- # @return [DeleteApiWorkspacesByWorkspaceId200Response]
1004
- def post_api_workspaces_by_workspace_id_actions_activate(workspace_id, opts = {})
1005
- data, _status_code, _headers = post_api_workspaces_by_workspace_id_actions_activate_with_http_info(workspace_id, opts)
2444
+ # @return [PostApiWorkspacesByWorkspaceIdKeys201Response]
2445
+ def post_api_workspaces_by_workspace_id_keys(workspace_id, post_api_workspaces_by_workspace_id_keys_request, opts = {})
2446
+ data, _status_code, _headers = post_api_workspaces_by_workspace_id_keys_with_http_info(workspace_id, post_api_workspaces_by_workspace_id_keys_request, opts)
1006
2447
  data
1007
2448
  end
1008
2449
 
1009
- # 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;).
1011
- # @param workspace_id [String]
2450
+ # Mint an API key in a workspace you administer
2451
+ # An ordinary &#x60;sk_live_&#x60; key of the workspace (full access by default, or the &#x60;scopes&#x60; given); the &#x60;secret&#x60; is returned once and stored as a SHA-256 hash only. Never a workspace admin key (those are minted in the dashboard). Audited in the workspace (&#x60;api_key.created&#x60;, &#x60;via: admin_key&#x60; for a workspace admin key). A sandbox answers 409 &#x60;sandbox_workspace&#x60;.
2452
+ # @param workspace_id [String] Workspace id or its external id.
2453
+ # @param post_api_workspaces_by_workspace_id_keys_request [PostApiWorkspacesByWorkspaceIdKeysRequest]
1012
2454
  # @param [Hash] opts the optional parameters
1013
2455
  # @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.
1014
- # @return [Array<(DeleteApiWorkspacesByWorkspaceId200Response, Integer, Hash)>] DeleteApiWorkspacesByWorkspaceId200Response data, response status code and response headers
1015
- def post_api_workspaces_by_workspace_id_actions_activate_with_http_info(workspace_id, opts = {})
2456
+ # @return [Array<(PostApiWorkspacesByWorkspaceIdKeys201Response, Integer, Hash)>] PostApiWorkspacesByWorkspaceIdKeys201Response data, response status code and response headers
2457
+ def post_api_workspaces_by_workspace_id_keys_with_http_info(workspace_id, post_api_workspaces_by_workspace_id_keys_request, opts = {})
1016
2458
  if @api_client.config.debugging
1017
- @api_client.config.logger.debug 'Calling API: WorkspaceApi.post_api_workspaces_by_workspace_id_actions_activate ...'
2459
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.post_api_workspaces_by_workspace_id_keys ...'
1018
2460
  end
1019
2461
  # verify the required parameter 'workspace_id' is set
1020
2462
  if @api_client.config.client_side_validation && workspace_id.nil?
1021
- fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_activate"
2463
+ fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.post_api_workspaces_by_workspace_id_keys"
1022
2464
  end
1023
2465
  if @api_client.config.client_side_validation && workspace_id.to_s.length > 128
1024
- fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_activate, the character length must be smaller than or equal to 128.'
2466
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_keys, the character length must be smaller than or equal to 128.'
1025
2467
  end
1026
2468
 
1027
2469
  if @api_client.config.client_side_validation && workspace_id.to_s.length < 1
1028
- fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_activate, the character length must be great than or equal to 1.'
2470
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_keys, the character length must be great than or equal to 1.'
1029
2471
  end
1030
2472
 
2473
+ # verify the required parameter 'post_api_workspaces_by_workspace_id_keys_request' is set
2474
+ if @api_client.config.client_side_validation && post_api_workspaces_by_workspace_id_keys_request.nil?
2475
+ fail ArgumentError, "Missing the required parameter 'post_api_workspaces_by_workspace_id_keys_request' when calling WorkspaceApi.post_api_workspaces_by_workspace_id_keys"
2476
+ end
1031
2477
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
1032
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_activate, the character length must be smaller than or equal to 255.'
2478
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_keys, the character length must be smaller than or equal to 255.'
1033
2479
  end
1034
2480
 
1035
2481
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
1036
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_activate, the character length must be great than or equal to 1.'
2482
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_keys, the character length must be great than or equal to 1.'
1037
2483
  end
1038
2484
 
1039
2485
  # resource path
1040
- local_var_path = '/api/workspaces/{workspaceId}/actions/activate'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s))
2486
+ local_var_path = '/api/workspaces/{workspaceId}/keys'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s))
1041
2487
 
1042
2488
  # query parameters
1043
2489
  query_params = opts[:query_params] || {}
@@ -1046,22 +2492,27 @@ module SeatsChart
1046
2492
  header_params = opts[:header_params] || {}
1047
2493
  # HTTP header 'Accept' (if needed)
1048
2494
  header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
2495
+ # HTTP header 'Content-Type'
2496
+ content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
2497
+ if !content_type.nil?
2498
+ header_params['Content-Type'] = content_type
2499
+ end
1049
2500
  header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
1050
2501
 
1051
2502
  # form parameters
1052
2503
  form_params = opts[:form_params] || {}
1053
2504
 
1054
2505
  # http body (model)
1055
- post_body = opts[:debug_body]
2506
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(post_api_workspaces_by_workspace_id_keys_request)
1056
2507
 
1057
2508
  # return_type
1058
- return_type = opts[:debug_return_type] || 'DeleteApiWorkspacesByWorkspaceId200Response'
2509
+ return_type = opts[:debug_return_type] || 'PostApiWorkspacesByWorkspaceIdKeys201Response'
1059
2510
 
1060
2511
  # auth_names
1061
2512
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
1062
2513
 
1063
2514
  new_options = opts.merge(
1064
- :operation => :"WorkspaceApi.post_api_workspaces_by_workspace_id_actions_activate",
2515
+ :operation => :"WorkspaceApi.post_api_workspaces_by_workspace_id_keys",
1065
2516
  :header_params => header_params,
1066
2517
  :query_params => query_params,
1067
2518
  :form_params => form_params,
@@ -1072,54 +2523,60 @@ module SeatsChart
1072
2523
 
1073
2524
  data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
1074
2525
  if @api_client.config.debugging
1075
- @api_client.config.logger.debug "API called: WorkspaceApi#post_api_workspaces_by_workspace_id_actions_activate\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2526
+ @api_client.config.logger.debug "API called: WorkspaceApi#post_api_workspaces_by_workspace_id_keys\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1076
2527
  end
1077
2528
  return data, status_code, headers
1078
2529
  end
1079
2530
 
1080
- # 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`).
1082
- # @param workspace_id [String]
2531
+ # Rotate the secret of a key of a workspace you administer
2532
+ # Issues a new secret for the same key (same id, name and scopes) and returns it once; the old secret stops working at once on every API instance. Workspace admin keys answer 403 `ERR_ADMIN_KEY_DASHBOARD_ONLY`. Audited (`api_key.rotated`).
2533
+ # @param workspace_id [String] Workspace id or its external id.
2534
+ # @param key_id [String]
1083
2535
  # @param [Hash] opts the optional parameters
1084
2536
  # @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.
1085
- # @return [DeleteApiWorkspacesByWorkspaceId200Response]
1086
- def post_api_workspaces_by_workspace_id_actions_deactivate(workspace_id, opts = {})
1087
- data, _status_code, _headers = post_api_workspaces_by_workspace_id_actions_deactivate_with_http_info(workspace_id, opts)
2537
+ # @return [PostApiWorkspacesByWorkspaceIdKeys201Response]
2538
+ def post_api_workspaces_by_workspace_id_keys_by_key_id_actions_rotate(workspace_id, key_id, opts = {})
2539
+ data, _status_code, _headers = post_api_workspaces_by_workspace_id_keys_by_key_id_actions_rotate_with_http_info(workspace_id, key_id, opts)
1088
2540
  data
1089
2541
  end
1090
2542
 
1091
- # 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;).
1093
- # @param workspace_id [String]
2543
+ # Rotate the secret of a key of a workspace you administer
2544
+ # Issues a new secret for the same key (same id, name and scopes) and returns it once; the old secret stops working at once on every API instance. Workspace admin keys answer 403 &#x60;ERR_ADMIN_KEY_DASHBOARD_ONLY&#x60;. Audited (&#x60;api_key.rotated&#x60;).
2545
+ # @param workspace_id [String] Workspace id or its external id.
2546
+ # @param key_id [String]
1094
2547
  # @param [Hash] opts the optional parameters
1095
2548
  # @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.
1096
- # @return [Array<(DeleteApiWorkspacesByWorkspaceId200Response, Integer, Hash)>] DeleteApiWorkspacesByWorkspaceId200Response data, response status code and response headers
1097
- def post_api_workspaces_by_workspace_id_actions_deactivate_with_http_info(workspace_id, opts = {})
2549
+ # @return [Array<(PostApiWorkspacesByWorkspaceIdKeys201Response, Integer, Hash)>] PostApiWorkspacesByWorkspaceIdKeys201Response data, response status code and response headers
2550
+ def post_api_workspaces_by_workspace_id_keys_by_key_id_actions_rotate_with_http_info(workspace_id, key_id, opts = {})
1098
2551
  if @api_client.config.debugging
1099
- @api_client.config.logger.debug 'Calling API: WorkspaceApi.post_api_workspaces_by_workspace_id_actions_deactivate ...'
2552
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.post_api_workspaces_by_workspace_id_keys_by_key_id_actions_rotate ...'
1100
2553
  end
1101
2554
  # verify the required parameter 'workspace_id' is set
1102
2555
  if @api_client.config.client_side_validation && workspace_id.nil?
1103
- fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_deactivate"
2556
+ fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.post_api_workspaces_by_workspace_id_keys_by_key_id_actions_rotate"
1104
2557
  end
1105
2558
  if @api_client.config.client_side_validation && workspace_id.to_s.length > 128
1106
- fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_deactivate, the character length must be smaller than or equal to 128.'
2559
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_keys_by_key_id_actions_rotate, the character length must be smaller than or equal to 128.'
1107
2560
  end
1108
2561
 
1109
2562
  if @api_client.config.client_side_validation && workspace_id.to_s.length < 1
1110
- fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_deactivate, the character length must be great than or equal to 1.'
2563
+ fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_keys_by_key_id_actions_rotate, the character length must be great than or equal to 1.'
1111
2564
  end
1112
2565
 
2566
+ # verify the required parameter 'key_id' is set
2567
+ if @api_client.config.client_side_validation && key_id.nil?
2568
+ fail ArgumentError, "Missing the required parameter 'key_id' when calling WorkspaceApi.post_api_workspaces_by_workspace_id_keys_by_key_id_actions_rotate"
2569
+ end
1113
2570
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
1114
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_deactivate, the character length must be smaller than or equal to 255.'
2571
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_keys_by_key_id_actions_rotate, the character length must be smaller than or equal to 255.'
1115
2572
  end
1116
2573
 
1117
2574
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
1118
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_deactivate, the character length must be great than or equal to 1.'
2575
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_keys_by_key_id_actions_rotate, the character length must be great than or equal to 1.'
1119
2576
  end
1120
2577
 
1121
2578
  # resource path
1122
- local_var_path = '/api/workspaces/{workspaceId}/actions/deactivate'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s))
2579
+ local_var_path = '/api/workspaces/{workspaceId}/keys/{keyId}/actions/rotate'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s)).sub('{' + 'keyId' + '}', CGI.escape(key_id.to_s))
1123
2580
 
1124
2581
  # query parameters
1125
2582
  query_params = opts[:query_params] || {}
@@ -1137,13 +2594,13 @@ module SeatsChart
1137
2594
  post_body = opts[:debug_body]
1138
2595
 
1139
2596
  # return_type
1140
- return_type = opts[:debug_return_type] || 'DeleteApiWorkspacesByWorkspaceId200Response'
2597
+ return_type = opts[:debug_return_type] || 'PostApiWorkspacesByWorkspaceIdKeys201Response'
1141
2598
 
1142
2599
  # auth_names
1143
2600
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
1144
2601
 
1145
2602
  new_options = opts.merge(
1146
- :operation => :"WorkspaceApi.post_api_workspaces_by_workspace_id_actions_deactivate",
2603
+ :operation => :"WorkspaceApi.post_api_workspaces_by_workspace_id_keys_by_key_id_actions_rotate",
1147
2604
  :header_params => header_params,
1148
2605
  :query_params => query_params,
1149
2606
  :form_params => form_params,
@@ -1154,78 +2611,73 @@ module SeatsChart
1154
2611
 
1155
2612
  data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
1156
2613
  if @api_client.config.debugging
1157
- @api_client.config.logger.debug "API called: WorkspaceApi#post_api_workspaces_by_workspace_id_actions_deactivate\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2614
+ @api_client.config.logger.debug "API called: WorkspaceApi#post_api_workspaces_by_workspace_id_keys_by_key_id_actions_rotate\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1158
2615
  end
1159
2616
  return data, status_code, headers
1160
2617
  end
1161
2618
 
1162
- # Set my default workspace
1163
- # Makes this workspace the default of the calling user (for a **workspace admin API key**: of the admin it is bound to): dashboard sign-in opens it, and `GET /workspaces` marks it `isDefault`. Any role may set a workspace it is a member of (404 otherwise); a deactivated workspace cannot be the default (409 `workspace_deactivated`). Idempotent; written to the audit log of that workspace (`workspace.set_default`). Other API keys: 403 `ERR_PARTNER_SCOPE`.
1164
- # @param workspace_id [String]
2619
+ # Publish selected extraData keys to buyers (or stop)
2620
+ # 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.
2621
+ # @param put_api_workspace_buyer_extra_data_request [PutApiWorkspaceBuyerExtraDataRequest]
1165
2622
  # @param [Hash] opts the optional parameters
1166
2623
  # @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.
1167
- # @return [GetApiWorkspaces200ResponseItemsInner]
1168
- def post_api_workspaces_by_workspace_id_actions_set_default(workspace_id, opts = {})
1169
- data, _status_code, _headers = post_api_workspaces_by_workspace_id_actions_set_default_with_http_info(workspace_id, opts)
1170
- data
2624
+ # @return [nil]
2625
+ def put_api_workspace_buyer_extra_data(put_api_workspace_buyer_extra_data_request, opts = {})
2626
+ put_api_workspace_buyer_extra_data_with_http_info(put_api_workspace_buyer_extra_data_request, opts)
2627
+ nil
1171
2628
  end
1172
2629
 
1173
- # Set my default workspace
1174
- # Makes this workspace the default of the calling user (for a **workspace admin API key**: of the admin it is bound to): dashboard sign-in opens it, and &#x60;GET /workspaces&#x60; marks it &#x60;isDefault&#x60;. Any role may set a workspace it is a member of (404 otherwise); a deactivated workspace cannot be the default (409 &#x60;workspace_deactivated&#x60;). Idempotent; written to the audit log of that workspace (&#x60;workspace.set_default&#x60;). Other API keys: 403 &#x60;ERR_PARTNER_SCOPE&#x60;.
1175
- # @param workspace_id [String]
2630
+ # Publish selected extraData keys to buyers (or stop)
2631
+ # 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.
2632
+ # @param put_api_workspace_buyer_extra_data_request [PutApiWorkspaceBuyerExtraDataRequest]
1176
2633
  # @param [Hash] opts the optional parameters
1177
2634
  # @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.
1178
- # @return [Array<(GetApiWorkspaces200ResponseItemsInner, Integer, Hash)>] GetApiWorkspaces200ResponseItemsInner data, response status code and response headers
1179
- def post_api_workspaces_by_workspace_id_actions_set_default_with_http_info(workspace_id, opts = {})
2635
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
2636
+ def put_api_workspace_buyer_extra_data_with_http_info(put_api_workspace_buyer_extra_data_request, opts = {})
1180
2637
  if @api_client.config.debugging
1181
- @api_client.config.logger.debug 'Calling API: WorkspaceApi.post_api_workspaces_by_workspace_id_actions_set_default ...'
1182
- end
1183
- # verify the required parameter 'workspace_id' is set
1184
- if @api_client.config.client_side_validation && workspace_id.nil?
1185
- fail ArgumentError, "Missing the required parameter 'workspace_id' when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_set_default"
1186
- end
1187
- if @api_client.config.client_side_validation && workspace_id.to_s.length > 128
1188
- fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_set_default, the character length must be smaller than or equal to 128.'
2638
+ @api_client.config.logger.debug 'Calling API: WorkspaceApi.put_api_workspace_buyer_extra_data ...'
1189
2639
  end
1190
-
1191
- if @api_client.config.client_side_validation && workspace_id.to_s.length < 1
1192
- fail ArgumentError, 'invalid value for "workspace_id" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_set_default, the character length must be great than or equal to 1.'
2640
+ # verify the required parameter 'put_api_workspace_buyer_extra_data_request' is set
2641
+ if @api_client.config.client_side_validation && put_api_workspace_buyer_extra_data_request.nil?
2642
+ fail ArgumentError, "Missing the required parameter 'put_api_workspace_buyer_extra_data_request' when calling WorkspaceApi.put_api_workspace_buyer_extra_data"
1193
2643
  end
1194
-
1195
2644
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
1196
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_set_default, the character length must be smaller than or equal to 255.'
2645
+ 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.'
1197
2646
  end
1198
2647
 
1199
2648
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
1200
- fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling WorkspaceApi.post_api_workspaces_by_workspace_id_actions_set_default, the character length must be great than or equal to 1.'
2649
+ 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.'
1201
2650
  end
1202
2651
 
1203
2652
  # resource path
1204
- local_var_path = '/api/workspaces/{workspaceId}/actions/set-default'.sub('{' + 'workspaceId' + '}', CGI.escape(workspace_id.to_s))
2653
+ local_var_path = '/api/workspace/buyer-extra-data'
1205
2654
 
1206
2655
  # query parameters
1207
2656
  query_params = opts[:query_params] || {}
1208
2657
 
1209
2658
  # header parameters
1210
2659
  header_params = opts[:header_params] || {}
1211
- # HTTP header 'Accept' (if needed)
1212
- header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
2660
+ # HTTP header 'Content-Type'
2661
+ content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
2662
+ if !content_type.nil?
2663
+ header_params['Content-Type'] = content_type
2664
+ end
1213
2665
  header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
1214
2666
 
1215
2667
  # form parameters
1216
2668
  form_params = opts[:form_params] || {}
1217
2669
 
1218
2670
  # http body (model)
1219
- post_body = opts[:debug_body]
2671
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(put_api_workspace_buyer_extra_data_request)
1220
2672
 
1221
2673
  # return_type
1222
- return_type = opts[:debug_return_type] || 'GetApiWorkspaces200ResponseItemsInner'
2674
+ return_type = opts[:debug_return_type]
1223
2675
 
1224
2676
  # auth_names
1225
2677
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
1226
2678
 
1227
2679
  new_options = opts.merge(
1228
- :operation => :"WorkspaceApi.post_api_workspaces_by_workspace_id_actions_set_default",
2680
+ :operation => :"WorkspaceApi.put_api_workspace_buyer_extra_data",
1229
2681
  :header_params => header_params,
1230
2682
  :query_params => query_params,
1231
2683
  :form_params => form_params,
@@ -1234,9 +2686,9 @@ module SeatsChart
1234
2686
  :return_type => return_type
1235
2687
  )
1236
2688
 
1237
- data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
2689
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
1238
2690
  if @api_client.config.debugging
1239
- @api_client.config.logger.debug "API called: WorkspaceApi#post_api_workspaces_by_workspace_id_actions_set_default\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2691
+ @api_client.config.logger.debug "API called: WorkspaceApi#put_api_workspace_buyer_extra_data\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1240
2692
  end
1241
2693
  return data, status_code, headers
1242
2694
  end