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
@@ -802,7 +802,7 @@ module SeatsChart
802
802
  end
803
803
 
804
804
  # Sign in with email and password
805
- # Returns tokens, or a second step: `{ twoFactorRequired: true, pendingToken }` when the account has two-factor authentication (finish with `POST /auth/2fa/verify`), or `{ twoFactorEnrollmentRequired: true, pendingToken }` when the workspace requires 2FA and the account has none yet (`POST /auth/2fa/enroll/start` then `/enroll/confirm`). No session exists until the second step succeeds.
805
+ # Returns tokens, or a second step: `{ twoFactorRequired: true, pendingToken }` when the account has two-factor authentication (finish with `POST /auth/2fa/verify`), or `{ twoFactorEnrollmentRequired: true, pendingToken }` when the workspace requires 2FA and the account has none yet (`POST /auth/2fa/enroll/start` then `/enroll/confirm`). No session exists until the second step succeeds. An account that belongs to no workspace any more gets 403 `ERR_NO_WORKSPACE` with a single-use `newWorkspaceToken` (after its two-factor code, if it has 2FA): `POST /auth/new-workspace` starts a new workspace.
806
806
  # @param post_api_auth_login_request [PostApiAuthLoginRequest]
807
807
  # @param [Hash] opts the optional parameters
808
808
  # @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.
@@ -813,7 +813,7 @@ module SeatsChart
813
813
  end
814
814
 
815
815
  # Sign in with email and password
816
- # Returns tokens, or a second step: `{ twoFactorRequired: true, pendingToken }` when the account has two-factor authentication (finish with `POST /auth/2fa/verify`), or `{ twoFactorEnrollmentRequired: true, pendingToken }` when the workspace requires 2FA and the account has none yet (`POST /auth/2fa/enroll/start` then `/enroll/confirm`). No session exists until the second step succeeds.
816
+ # Returns tokens, or a second step: `{ twoFactorRequired: true, pendingToken }` when the account has two-factor authentication (finish with `POST /auth/2fa/verify`), or `{ twoFactorEnrollmentRequired: true, pendingToken }` when the workspace requires 2FA and the account has none yet (`POST /auth/2fa/enroll/start` then `/enroll/confirm`). No session exists until the second step succeeds. An account that belongs to no workspace any more gets 403 `ERR_NO_WORKSPACE` with a single-use `newWorkspaceToken` (after its two-factor code, if it has 2FA): `POST /auth/new-workspace` starts a new workspace.
817
817
  # @param post_api_auth_login_request [PostApiAuthLoginRequest]
818
818
  # @param [Hash] opts the optional parameters
819
819
  # @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.
@@ -953,8 +953,85 @@ module SeatsChart
953
953
  return data, status_code, headers
954
954
  end
955
955
 
956
+ # Create a new workspace for an account that belongs to none
957
+ # An account removed from its last workspace signs in with the right password (and its two-factor code, if any) and gets 403 `ERR_NO_WORKSPACE` with a single-use `newWorkspaceToken` (5 minutes). This creates a new workspace with the account as its only admin and returns the session tokens. It never restores access to a former workspace; 409 when the account belongs to a workspace again. Written to the new workspace's audit log (`workspace.create`, `reason: no_workspace_left`).
958
+ # @param post_api_auth_new_workspace_request [PostApiAuthNewWorkspaceRequest]
959
+ # @param [Hash] opts the optional parameters
960
+ # @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.
961
+ # @return [nil]
962
+ def post_api_auth_new_workspace(post_api_auth_new_workspace_request, opts = {})
963
+ post_api_auth_new_workspace_with_http_info(post_api_auth_new_workspace_request, opts)
964
+ nil
965
+ end
966
+
967
+ # Create a new workspace for an account that belongs to none
968
+ # An account removed from its last workspace signs in with the right password (and its two-factor code, if any) and gets 403 `ERR_NO_WORKSPACE` with a single-use `newWorkspaceToken` (5 minutes). This creates a new workspace with the account as its only admin and returns the session tokens. It never restores access to a former workspace; 409 when the account belongs to a workspace again. Written to the new workspace's audit log (`workspace.create`, `reason: no_workspace_left`).
969
+ # @param post_api_auth_new_workspace_request [PostApiAuthNewWorkspaceRequest]
970
+ # @param [Hash] opts the optional parameters
971
+ # @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.
972
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
973
+ def post_api_auth_new_workspace_with_http_info(post_api_auth_new_workspace_request, opts = {})
974
+ if @api_client.config.debugging
975
+ @api_client.config.logger.debug 'Calling API: AuthApi.post_api_auth_new_workspace ...'
976
+ end
977
+ # verify the required parameter 'post_api_auth_new_workspace_request' is set
978
+ if @api_client.config.client_side_validation && post_api_auth_new_workspace_request.nil?
979
+ fail ArgumentError, "Missing the required parameter 'post_api_auth_new_workspace_request' when calling AuthApi.post_api_auth_new_workspace"
980
+ end
981
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
982
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling AuthApi.post_api_auth_new_workspace, the character length must be smaller than or equal to 255.'
983
+ end
984
+
985
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
986
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling AuthApi.post_api_auth_new_workspace, the character length must be great than or equal to 1.'
987
+ end
988
+
989
+ # resource path
990
+ local_var_path = '/api/auth/new-workspace'
991
+
992
+ # query parameters
993
+ query_params = opts[:query_params] || {}
994
+
995
+ # header parameters
996
+ header_params = opts[:header_params] || {}
997
+ # HTTP header 'Content-Type'
998
+ content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
999
+ if !content_type.nil?
1000
+ header_params['Content-Type'] = content_type
1001
+ end
1002
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
1003
+
1004
+ # form parameters
1005
+ form_params = opts[:form_params] || {}
1006
+
1007
+ # http body (model)
1008
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(post_api_auth_new_workspace_request)
1009
+
1010
+ # return_type
1011
+ return_type = opts[:debug_return_type]
1012
+
1013
+ # auth_names
1014
+ auth_names = opts[:debug_auth_names] || []
1015
+
1016
+ new_options = opts.merge(
1017
+ :operation => :"AuthApi.post_api_auth_new_workspace",
1018
+ :header_params => header_params,
1019
+ :query_params => query_params,
1020
+ :form_params => form_params,
1021
+ :body => post_body,
1022
+ :auth_names => auth_names,
1023
+ :return_type => return_type
1024
+ )
1025
+
1026
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
1027
+ if @api_client.config.debugging
1028
+ @api_client.config.logger.debug "API called: AuthApi#post_api_auth_new_workspace\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1029
+ end
1030
+ return data, status_code, headers
1031
+ end
1032
+
956
1033
  # Rotate refresh token and issue new access JWT
957
- # Consumes a one-time refresh token (Redis), revokes it, and returns a new refresh + access pair. Use `audience: viewer` for B2C embed tokens.
1034
+ # Consumes a one-time refresh token (Redis), revokes it, and returns a new refresh + access pair. Use `audience: viewer` for B2C embed tokens. Dashboard access tokens live one hour (`expiresIn`, seconds) and viewer tokens two hours; the refresh token lives 30 days and every renewal checks workspace membership and the 2FA policy again.
958
1035
  # @param post_api_auth_refresh_request [PostApiAuthRefreshRequest]
959
1036
  # @param [Hash] opts the optional parameters
960
1037
  # @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.
@@ -965,7 +1042,7 @@ module SeatsChart
965
1042
  end
966
1043
 
967
1044
  # Rotate refresh token and issue new access JWT
968
- # Consumes a one-time refresh token (Redis), revokes it, and returns a new refresh + access pair. Use &#x60;audience: viewer&#x60; for B2C embed tokens.
1045
+ # Consumes a one-time refresh token (Redis), revokes it, and returns a new refresh + access pair. Use &#x60;audience: viewer&#x60; for B2C embed tokens. Dashboard access tokens live one hour (&#x60;expiresIn&#x60;, seconds) and viewer tokens two hours; the refresh token lives 30 days and every renewal checks workspace membership and the 2FA policy again.
969
1046
  # @param post_api_auth_refresh_request [PostApiAuthRefreshRequest]
970
1047
  # @param [Hash] opts the optional parameters
971
1048
  # @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.
@@ -20,6 +20,7 @@ module SeatsChart
20
20
  @api_client = api_client
21
21
  end
22
22
  # Get billing status and plan usage
23
+ # Plan, subscription, usage against the limits and the plan catalogue. `managedByPlatform` is true for a workspace a ticketing platform provisioned with its workspace admin key: it is billed to the platform account, so only that platform admin may open checkout or the billing portal (`canManageBilling`); everyone else gets 403 `billing_managed_by_platform` there, and plan-limit refusals carry `billingManagedByPlatform: true` instead of an upgrade prompt.
23
24
  # @param [Hash] opts the optional parameters
24
25
  # @return [nil]
25
26
  def get_api_billing(opts = {})
@@ -28,6 +29,7 @@ module SeatsChart
28
29
  end
29
30
 
30
31
  # Get billing status and plan usage
32
+ # Plan, subscription, usage against the limits and the plan catalogue. &#x60;managedByPlatform&#x60; is true for a workspace a ticketing platform provisioned with its workspace admin key: it is billed to the platform account, so only that platform admin may open checkout or the billing portal (&#x60;canManageBilling&#x60;); everyone else gets 403 &#x60;billing_managed_by_platform&#x60; there, and plan-limit refusals carry &#x60;billingManagedByPlatform: true&#x60; instead of an upgrade prompt.
31
33
  # @param [Hash] opts the optional parameters
32
34
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
33
35
  def get_api_billing_with_http_info(opts = {})
@@ -73,6 +75,7 @@ module SeatsChart
73
75
  end
74
76
 
75
77
  # Create Stripe Checkout session for a paid plan
78
+ # Returns `{ url }` of a Stripe Checkout for `planId` (`starter` | `pro`). 409 `ERR_SUBSCRIPTION_EXISTS` when the workspace already has a live subscription (change plans in the billing portal: `POST /billing/portal-session`), 409 `test_workspace_not_billable` in a test workspace, 400 `plan_requires_sales` for `ultra` (Ultra On-Demand is arranged with the SeatsChart team), 409 `plan_managed_by_sales` on an Ultra On-Demand workspace,503 `stripe_not_configured` when billing is not set up.
76
79
  # @param post_api_billing_checkout_session_request [PostApiBillingCheckoutSessionRequest]
77
80
  # @param [Hash] opts the optional parameters
78
81
  # @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.
@@ -83,6 +86,7 @@ module SeatsChart
83
86
  end
84
87
 
85
88
  # Create Stripe Checkout session for a paid plan
89
+ # Returns &#x60;{ url }&#x60; of a Stripe Checkout for &#x60;planId&#x60; (&#x60;starter&#x60; | &#x60;pro&#x60;). 409 &#x60;ERR_SUBSCRIPTION_EXISTS&#x60; when the workspace already has a live subscription (change plans in the billing portal: &#x60;POST /billing/portal-session&#x60;), 409 &#x60;test_workspace_not_billable&#x60; in a test workspace, 400 &#x60;plan_requires_sales&#x60; for &#x60;ultra&#x60; (Ultra On-Demand is arranged with the SeatsChart team), 409 &#x60;plan_managed_by_sales&#x60; on an Ultra On-Demand workspace,503 &#x60;stripe_not_configured&#x60; when billing is not set up.
86
90
  # @param post_api_billing_checkout_session_request [PostApiBillingCheckoutSessionRequest]
87
91
  # @param [Hash] opts the optional parameters
88
92
  # @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.