seatschart 0.4.0 → 0.5.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.
- checksums.yaml +4 -4
- data/README.md +44 -9
- data/lib/seatschart/api/audit_api.rb +2 -2
- data/lib/seatschart/api/auth_api.rb +4 -4
- data/lib/seatschart/api/billing_api.rb +93 -12
- data/lib/seatschart/api/charts_api.rb +52 -52
- data/lib/seatschart/api/events_api.rb +110 -104
- data/lib/seatschart/api/seasons_api.rb +88 -88
- data/lib/seatschart/api/seats_api.rb +6 -6
- data/lib/seatschart/api/usage_api.rb +4 -4
- data/lib/seatschart/api/workspace_api.rb +52 -40
- data/lib/seatschart/models/{api_error.rb → api_error_body.rb} +7 -7
- data/lib/seatschart/models/delete_api_workspaces_by_workspace_id_members_by_user_id200_response.rb +221 -0
- data/lib/seatschart/models/get_api_workspaces_by_workspace_id_invitations200_response.rb +239 -0
- data/lib/seatschart/models/get_api_workspaces_by_workspace_id_invitations200_response_invitations_inner.rb +286 -0
- data/lib/seatschart/models/get_api_workspaces_by_workspace_id_members200_response.rb +239 -0
- data/lib/seatschart/models/get_api_workspaces_by_workspace_id_members200_response_members_inner.rb +288 -0
- data/lib/seatschart/models/get_api_workspaces_overview200_response.rb +288 -0
- data/lib/seatschart/models/get_api_workspaces_overview200_response_account.rb +270 -0
- data/lib/seatschart/models/get_api_workspaces_overview200_response_account_charts.rb +233 -0
- data/lib/seatschart/models/get_api_workspaces_overview200_response_account_plan.rb +237 -0
- data/lib/seatschart/models/get_api_workspaces_overview200_response_items_inner.rb +439 -0
- data/lib/seatschart/models/get_api_workspaces_overview200_response_items_inner_revenue.rb +234 -0
- data/lib/seatschart/models/get_api_workspaces_overview200_response_items_inner_usage.rb +271 -0
- data/lib/seatschart/models/get_api_workspaces_overview200_response_seats.rb +431 -0
- data/lib/seatschart/models/get_api_workspaces_overview200_response_seats_overage.rb +233 -0
- data/lib/seatschart/models/get_api_workspaces_overview200_response_seats_projected.rb +237 -0
- data/lib/seatschart/models/get_api_workspaces_overview200_response_totals.rb +318 -0
- data/lib/seatschart/models/get_api_workspaces_overview200_response_totals_revenue.rb +238 -0
- data/lib/seatschart/models/get_api_workspaces_overview200_response_totals_seats.rb +253 -0
- data/lib/seatschart/models/post_api_billing_actions_change_plan_request.rb +256 -0
- data/lib/seatschart/models/post_api_events_by_event_id_actions_update_extra_data_request_objects_inner.rb +0 -2
- data/lib/seatschart/models/post_api_sandboxes201_response.rb +0 -4
- data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_reset200_response.rb +0 -2
- data/lib/seatschart/models/post_api_workspaces200_response.rb +0 -4
- data/lib/seatschart/models/post_api_workspaces_by_workspace_id_invitations201_response.rb +238 -0
- data/lib/seatschart/models/post_api_workspaces_by_workspace_id_invitations201_response_invitation.rb +286 -0
- data/lib/seatschart/version.rb +1 -1
- data/lib/seatschart/workspaces.rb +172 -0
- data/lib/seatschart.rb +23 -3
- metadata +25 -5
- data/lib/seatschart/models/get_api_workspaces_created_by_api_parameter.rb +0 -103
- data/lib/seatschart/models/get_api_workspaces_overview_created_by_api_parameter.rb +0 -103
|
@@ -374,7 +374,7 @@ module SeatsChart
|
|
|
374
374
|
end
|
|
375
375
|
|
|
376
376
|
# Hold GA area capacity (Redis)
|
|
377
|
-
# Places a temporary hold on unnumbered GA capacity. **Idempotency-Key** is required; repeats within ~24h return the cached hold response. Optional `ticketBuyerId` is stored on the GA hold token and inherited by `POST /ga/confirm`. The organizer's booking limits cap `quantity` (designer *Max GA tickets per order*, else *Max seats per order*; strictest with the sales-channel default): 409 `booking_limit_exceeded` (`limit`, `current`, `requested`, `kind: \"ga\"`). GA tables sold as a whole (`shape.bookAs: \"whole\"`) take every place in one hold: any other `quantity` answers 409 `ga_table_whole` (`capacity`, `requested`). Areas sold as a whole (`areaType` `fixedOccupancy` / `variableOccupancy`) are held for one buyer in one piece: `quantity` is the number of people (fixed: exactly the capacity; variable: `minOccupancy`..capacity), every place of the area is held atomically and a second buyer can never hold part of it. Any other quantity answers 400 `ga_area_whole` (`areaType`, `capacity`, `minOccupancy`, `maxOccupancy`, `requested`); an area already held, sold or partly withheld answers 409 `conflict`. A whole area counts as one object against the booking limits (its capacity, at most 50, caps it); its people count against quotas, lots and per-buyer limits. The response adds `places`, `people` and `areaType`.
|
|
377
|
+
# Places a temporary hold on unnumbered GA capacity. **Idempotency-Key** is required; repeats within ~24h return the cached hold response. Optional `ticketBuyerId` is stored on the GA hold token and inherited by `POST /ga/confirm`. The organizer's booking limits cap `quantity` (designer *Max GA tickets per order*, else *Max seats per order*; strictest with the sales-channel default): 409 `booking_limit_exceeded` (`limit`, `current`, `requested`, `kind: \"ga\"`). **Free (test plan) out of seats:** once the workspace used its 50 seats of the month, new holds (appends included) answer 409 `holds_paused` with a neutral message until the next UTC month or an upgrade; holds already taken can still be confirmed. GA tables sold as a whole (`shape.bookAs: \"whole\"`) take every place in one hold: any other `quantity` answers 409 `ga_table_whole` (`capacity`, `requested`). Areas sold as a whole (`areaType` `fixedOccupancy` / `variableOccupancy`) are held for one buyer in one piece: `quantity` is the number of people (fixed: exactly the capacity; variable: `minOccupancy`..capacity), every place of the area is held atomically and a second buyer can never hold part of it. Any other quantity answers 400 `ga_area_whole` (`areaType`, `capacity`, `minOccupancy`, `maxOccupancy`, `requested`); an area already held, sold or partly withheld answers 409 `conflict`. A whole area counts as one object against the booking limits (its capacity, at most 50, caps it); its people count against quotas, lots and per-buyer limits. The response adds `places`, `people` and `areaType`.
|
|
378
378
|
# @param idempotency_key [String] Required. Reuse with the same request on retry; a different payload conflicts. Seat confirmation binds this key durably in PostgreSQL; hold mutations use bounded Redis receipts.
|
|
379
379
|
# @param post_api_ga_reserve_request [PostApiGaReserveRequest]
|
|
380
380
|
# @param [Hash] opts the optional parameters
|
|
@@ -385,7 +385,7 @@ module SeatsChart
|
|
|
385
385
|
end
|
|
386
386
|
|
|
387
387
|
# Hold GA area capacity (Redis)
|
|
388
|
-
# Places a temporary hold on unnumbered GA capacity. **Idempotency-Key** is required; repeats within ~24h return the cached hold response. Optional `ticketBuyerId` is stored on the GA hold token and inherited by `POST /ga/confirm`. The organizer's booking limits cap `quantity` (designer *Max GA tickets per order*, else *Max seats per order*; strictest with the sales-channel default): 409 `booking_limit_exceeded` (`limit`, `current`, `requested`, `kind: \"ga\"`). GA tables sold as a whole (`shape.bookAs: \"whole\"`) take every place in one hold: any other `quantity` answers 409 `ga_table_whole` (`capacity`, `requested`). Areas sold as a whole (`areaType` `fixedOccupancy` / `variableOccupancy`) are held for one buyer in one piece: `quantity` is the number of people (fixed: exactly the capacity; variable: `minOccupancy`..capacity), every place of the area is held atomically and a second buyer can never hold part of it. Any other quantity answers 400 `ga_area_whole` (`areaType`, `capacity`, `minOccupancy`, `maxOccupancy`, `requested`); an area already held, sold or partly withheld answers 409 `conflict`. A whole area counts as one object against the booking limits (its capacity, at most 50, caps it); its people count against quotas, lots and per-buyer limits. The response adds `places`, `people` and `areaType`.
|
|
388
|
+
# Places a temporary hold on unnumbered GA capacity. **Idempotency-Key** is required; repeats within ~24h return the cached hold response. Optional `ticketBuyerId` is stored on the GA hold token and inherited by `POST /ga/confirm`. The organizer's booking limits cap `quantity` (designer *Max GA tickets per order*, else *Max seats per order*; strictest with the sales-channel default): 409 `booking_limit_exceeded` (`limit`, `current`, `requested`, `kind: \"ga\"`). **Free (test plan) out of seats:** once the workspace used its 50 seats of the month, new holds (appends included) answer 409 `holds_paused` with a neutral message until the next UTC month or an upgrade; holds already taken can still be confirmed. GA tables sold as a whole (`shape.bookAs: \"whole\"`) take every place in one hold: any other `quantity` answers 409 `ga_table_whole` (`capacity`, `requested`). Areas sold as a whole (`areaType` `fixedOccupancy` / `variableOccupancy`) are held for one buyer in one piece: `quantity` is the number of people (fixed: exactly the capacity; variable: `minOccupancy`..capacity), every place of the area is held atomically and a second buyer can never hold part of it. Any other quantity answers 400 `ga_area_whole` (`areaType`, `capacity`, `minOccupancy`, `maxOccupancy`, `requested`); an area already held, sold or partly withheld answers 409 `conflict`. A whole area counts as one object against the booking limits (its capacity, at most 50, caps it); its people count against quotas, lots and per-buyer limits. The response adds `places`, `people` and `areaType`.
|
|
389
389
|
# @param idempotency_key [String] Required. Reuse with the same request on retry; a different payload conflicts. Seat confirmation binds this key durably in PostgreSQL; hold mutations use bounded Redis receipts.
|
|
390
390
|
# @param post_api_ga_reserve_request [PostApiGaReserveRequest]
|
|
391
391
|
# @param [Hash] opts the optional parameters
|
|
@@ -621,7 +621,7 @@ module SeatsChart
|
|
|
621
621
|
end
|
|
622
622
|
|
|
623
623
|
# Suggest or atomically hold best available seats
|
|
624
|
-
# Returns seat IDs for the requested quantity, preferring adjacent same-row groups near the map center. Filter the candidate pool by `category` (or ordered `categories`, max 10: windows of the first category are tried before the second, and so on), optional `sectionId` (layout section id or name) and optional `zone` (layout zone id or name; seats resolve explicit zone assignment, then their section zone, then the zone outline) before ranking. `tryToPreventOrphanSeats` (default **true**) skips adjacent windows that would leave a single empty seat at either end of the run, falling back to them only when nothing else fits. `ticketTypes` (`{ ticketTypeId: count }`) sets `quantity` to the sum, restricts the search to categories whose ticket catalog offers every requested type, and returns `ticketTypes` (seatId → ticketTypeId) ready to send as `seatTicketTypes` on confirm; events without ticket types reject it. `accessibleSeats` (N) only returns windows containing at least N seats flagged `accessibility.wheelchair` in the published seat structure (409 when no such window exists). `channel` is salesChannel order limits only. Pass **`x-channel-key`** for inventory partitions — do not send the secret in the body. **`hold: false` (default):** suggest only — does not lock. **`hold: true`:** ranks up to 32 candidate windows across the category preferences, locks the first fit in one Lua call each (all-or-nothing per window), then O(cart) PG gates (available/forSale/channel; seats that are not for sale are never picked, not even resale-listed ones of non-propagating season members: those are bought by holding the seats of the listing); on gate failure releases only the locks it added. Requires **Idempotency-Key**, and `userId` unless `holdToken` is given. `holdToken` appends the seats to that existing hold session (same expiry bound; 409 `hold_token_conflict` when the session is expired, foreign, confirming or full). `extraData` is stored on the held seats (requires hold). Returns `hold_token` for confirm. The organizer's booking limits (designer *Max seats per order*) cap `quantity` and, with `holdToken`, the seats already on the token: best-available never picks more than allowed (409 `booking_limit_exceeded` with `limit`, `current`, `requested`). `sections` (max 20 section ids or names, XOR with `sectionId`) ranks across the union of those sections. **API keys / dashboard sessions only:** `channelKeys` (channel secret keys or ids) restricts the pool to public seats plus those channels, `ignoreChannels: true` allows every channel (both replace `x-channel-key`; buyers get 403). `orderId` (with `hold`) is stored on the held seats as `extraData.orderId` and echoed in the response; pass it as `externalOrderId` on confirm. **`status: \"booked\"`** (API keys with the `bookings` scope, or dashboard sessions allowed to change object statuses; buyers get 403) books the best window directly instead of holding it: the same administrative booking as POST /events/{eventId}/actions/book (one SQL transaction under the seat row locks; a seat held by a buyer is never taken; when a ranked window was taken meanwhile the next one is tried). Requires **Idempotency-Key**: the booking order id is derived from it, so a retry returns the same booking. `ticketTypes` are recorded per seat, `extraData` and `orderId` (as `extraData.orderId`) are stored on the booked seats. Response: `status: \"booked\"`, `booked: true`, `bookingOrderId` (cancel with POST /orders/{orderId}/cancel) and `objects` (status, extraData, orderId, ticketType per seat). `status: \"reservedByToken\"` is the same as `hold: true`. **`keepExtraData: true`** (hold or booked) keeps the seats' stored extraData and merges `extraData` / `orderId` on top instead of replacing it.
|
|
624
|
+
# Returns seat IDs for the requested quantity, preferring adjacent same-row groups near the map center. **Free (test plan) out of seats:** once the workspace used its 50 seats of the month, new holds (appends included) answer 409 `holds_paused` with a neutral message until the next UTC month or an upgrade; holds already taken can still be confirmed. Filter the candidate pool by `category` (or ordered `categories`, max 10: windows of the first category are tried before the second, and so on), optional `sectionId` (layout section id or name) and optional `zone` (layout zone id or name; seats resolve explicit zone assignment, then their section zone, then the zone outline) before ranking. `tryToPreventOrphanSeats` (default **true**) skips adjacent windows that would leave a single empty seat at either end of the run, falling back to them only when nothing else fits. `ticketTypes` (`{ ticketTypeId: count }`) sets `quantity` to the sum, restricts the search to categories whose ticket catalog offers every requested type, and returns `ticketTypes` (seatId → ticketTypeId) ready to send as `seatTicketTypes` on confirm; events without ticket types reject it. `accessibleSeats` (N) only returns windows containing at least N seats flagged `accessibility.wheelchair` in the published seat structure (409 when no such window exists). `channel` is salesChannel order limits only. Pass **`x-channel-key`** for inventory partitions — do not send the secret in the body. **`hold: false` (default):** suggest only — does not lock. **`hold: true`:** ranks up to 32 candidate windows across the category preferences, locks the first fit in one Lua call each (all-or-nothing per window), then O(cart) PG gates (available/forSale/channel; seats that are not for sale are never picked, not even resale-listed ones of non-propagating season members: those are bought by holding the seats of the listing); on gate failure releases only the locks it added. Requires **Idempotency-Key**, and `userId` unless `holdToken` is given. `holdToken` appends the seats to that existing hold session (same expiry bound; 409 `hold_token_conflict` when the session is expired, foreign, confirming or full). `extraData` is stored on the held seats (requires hold). Returns `hold_token` for confirm. The organizer's booking limits (designer *Max seats per order*) cap `quantity` and, with `holdToken`, the seats already on the token: best-available never picks more than allowed (409 `booking_limit_exceeded` with `limit`, `current`, `requested`). `sections` (max 20 section ids or names, XOR with `sectionId`) ranks across the union of those sections. **API keys / dashboard sessions only:** `channelKeys` (channel secret keys or ids) restricts the pool to public seats plus those channels, `ignoreChannels: true` allows every channel (both replace `x-channel-key`; buyers get 403). `orderId` (with `hold`) is stored on the held seats as `extraData.orderId` and echoed in the response; pass it as `externalOrderId` on confirm. **`status: \"booked\"`** (API keys with the `bookings` scope, or dashboard sessions allowed to change object statuses; buyers get 403) books the best window directly instead of holding it: the same administrative booking as POST /events/{eventId}/actions/book (one SQL transaction under the seat row locks; a seat held by a buyer is never taken; when a ranked window was taken meanwhile the next one is tried). Requires **Idempotency-Key**: the booking order id is derived from it, so a retry returns the same booking. `ticketTypes` are recorded per seat, `extraData` and `orderId` (as `extraData.orderId`) are stored on the booked seats. Response: `status: \"booked\"`, `booked: true`, `bookingOrderId` (cancel with POST /orders/{orderId}/cancel) and `objects` (status, extraData, orderId, ticketType per seat). `status: \"reservedByToken\"` is the same as `hold: true`. **`keepExtraData: true`** (hold or booked) keeps the seats' stored extraData and merges `extraData` / `orderId` on top instead of replacing it.
|
|
625
625
|
# @param post_api_seats_best_available_request [PostApiSeatsBestAvailableRequest]
|
|
626
626
|
# @param [Hash] opts the optional parameters
|
|
627
627
|
# @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.
|
|
@@ -632,7 +632,7 @@ module SeatsChart
|
|
|
632
632
|
end
|
|
633
633
|
|
|
634
634
|
# Suggest or atomically hold best available seats
|
|
635
|
-
# Returns seat IDs for the requested quantity, preferring adjacent same-row groups near the map center. Filter the candidate pool by `category` (or ordered `categories`, max 10: windows of the first category are tried before the second, and so on), optional `sectionId` (layout section id or name) and optional `zone` (layout zone id or name; seats resolve explicit zone assignment, then their section zone, then the zone outline) before ranking. `tryToPreventOrphanSeats` (default **true**) skips adjacent windows that would leave a single empty seat at either end of the run, falling back to them only when nothing else fits. `ticketTypes` (`{ ticketTypeId: count }`) sets `quantity` to the sum, restricts the search to categories whose ticket catalog offers every requested type, and returns `ticketTypes` (seatId → ticketTypeId) ready to send as `seatTicketTypes` on confirm; events without ticket types reject it. `accessibleSeats` (N) only returns windows containing at least N seats flagged `accessibility.wheelchair` in the published seat structure (409 when no such window exists). `channel` is salesChannel order limits only. Pass **`x-channel-key`** for inventory partitions — do not send the secret in the body. **`hold: false` (default):** suggest only — does not lock. **`hold: true`:** ranks up to 32 candidate windows across the category preferences, locks the first fit in one Lua call each (all-or-nothing per window), then O(cart) PG gates (available/forSale/channel; seats that are not for sale are never picked, not even resale-listed ones of non-propagating season members: those are bought by holding the seats of the listing); on gate failure releases only the locks it added. Requires **Idempotency-Key**, and `userId` unless `holdToken` is given. `holdToken` appends the seats to that existing hold session (same expiry bound; 409 `hold_token_conflict` when the session is expired, foreign, confirming or full). `extraData` is stored on the held seats (requires hold). Returns `hold_token` for confirm. The organizer's booking limits (designer *Max seats per order*) cap `quantity` and, with `holdToken`, the seats already on the token: best-available never picks more than allowed (409 `booking_limit_exceeded` with `limit`, `current`, `requested`). `sections` (max 20 section ids or names, XOR with `sectionId`) ranks across the union of those sections. **API keys / dashboard sessions only:** `channelKeys` (channel secret keys or ids) restricts the pool to public seats plus those channels, `ignoreChannels: true` allows every channel (both replace `x-channel-key`; buyers get 403). `orderId` (with `hold`) is stored on the held seats as `extraData.orderId` and echoed in the response; pass it as `externalOrderId` on confirm. **`status: \"booked\"`** (API keys with the `bookings` scope, or dashboard sessions allowed to change object statuses; buyers get 403) books the best window directly instead of holding it: the same administrative booking as POST /events/{eventId}/actions/book (one SQL transaction under the seat row locks; a seat held by a buyer is never taken; when a ranked window was taken meanwhile the next one is tried). Requires **Idempotency-Key**: the booking order id is derived from it, so a retry returns the same booking. `ticketTypes` are recorded per seat, `extraData` and `orderId` (as `extraData.orderId`) are stored on the booked seats. Response: `status: \"booked\"`, `booked: true`, `bookingOrderId` (cancel with POST /orders/{orderId}/cancel) and `objects` (status, extraData, orderId, ticketType per seat). `status: \"reservedByToken\"` is the same as `hold: true`. **`keepExtraData: true`** (hold or booked) keeps the seats' stored extraData and merges `extraData` / `orderId` on top instead of replacing it.
|
|
635
|
+
# Returns seat IDs for the requested quantity, preferring adjacent same-row groups near the map center. **Free (test plan) out of seats:** once the workspace used its 50 seats of the month, new holds (appends included) answer 409 `holds_paused` with a neutral message until the next UTC month or an upgrade; holds already taken can still be confirmed. Filter the candidate pool by `category` (or ordered `categories`, max 10: windows of the first category are tried before the second, and so on), optional `sectionId` (layout section id or name) and optional `zone` (layout zone id or name; seats resolve explicit zone assignment, then their section zone, then the zone outline) before ranking. `tryToPreventOrphanSeats` (default **true**) skips adjacent windows that would leave a single empty seat at either end of the run, falling back to them only when nothing else fits. `ticketTypes` (`{ ticketTypeId: count }`) sets `quantity` to the sum, restricts the search to categories whose ticket catalog offers every requested type, and returns `ticketTypes` (seatId → ticketTypeId) ready to send as `seatTicketTypes` on confirm; events without ticket types reject it. `accessibleSeats` (N) only returns windows containing at least N seats flagged `accessibility.wheelchair` in the published seat structure (409 when no such window exists). `channel` is salesChannel order limits only. Pass **`x-channel-key`** for inventory partitions — do not send the secret in the body. **`hold: false` (default):** suggest only — does not lock. **`hold: true`:** ranks up to 32 candidate windows across the category preferences, locks the first fit in one Lua call each (all-or-nothing per window), then O(cart) PG gates (available/forSale/channel; seats that are not for sale are never picked, not even resale-listed ones of non-propagating season members: those are bought by holding the seats of the listing); on gate failure releases only the locks it added. Requires **Idempotency-Key**, and `userId` unless `holdToken` is given. `holdToken` appends the seats to that existing hold session (same expiry bound; 409 `hold_token_conflict` when the session is expired, foreign, confirming or full). `extraData` is stored on the held seats (requires hold). Returns `hold_token` for confirm. The organizer's booking limits (designer *Max seats per order*) cap `quantity` and, with `holdToken`, the seats already on the token: best-available never picks more than allowed (409 `booking_limit_exceeded` with `limit`, `current`, `requested`). `sections` (max 20 section ids or names, XOR with `sectionId`) ranks across the union of those sections. **API keys / dashboard sessions only:** `channelKeys` (channel secret keys or ids) restricts the pool to public seats plus those channels, `ignoreChannels: true` allows every channel (both replace `x-channel-key`; buyers get 403). `orderId` (with `hold`) is stored on the held seats as `extraData.orderId` and echoed in the response; pass it as `externalOrderId` on confirm. **`status: \"booked\"`** (API keys with the `bookings` scope, or dashboard sessions allowed to change object statuses; buyers get 403) books the best window directly instead of holding it: the same administrative booking as POST /events/{eventId}/actions/book (one SQL transaction under the seat row locks; a seat held by a buyer is never taken; when a ranked window was taken meanwhile the next one is tried). Requires **Idempotency-Key**: the booking order id is derived from it, so a retry returns the same booking. `ticketTypes` are recorded per seat, `extraData` and `orderId` (as `extraData.orderId`) are stored on the booked seats. Response: `status: \"booked\"`, `booked: true`, `bookingOrderId` (cancel with POST /orders/{orderId}/cancel) and `objects` (status, extraData, orderId, ticketType per seat). `status: \"reservedByToken\"` is the same as `hold: true`. **`keepExtraData: true`** (hold or booked) keeps the seats' stored extraData and merges `extraData` / `orderId` on top instead of replacing it.
|
|
636
636
|
# @param post_api_seats_best_available_request [PostApiSeatsBestAvailableRequest]
|
|
637
637
|
# @param [Hash] opts the optional parameters
|
|
638
638
|
# @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.
|
|
@@ -1006,7 +1006,7 @@ module SeatsChart
|
|
|
1006
1006
|
end
|
|
1007
1007
|
|
|
1008
1008
|
# Place a temporary Redis hold (Lua TTL) before payment
|
|
1009
|
-
# JSON body: `eventId`, `seatIds` (1–64 UUIDs, unique; up to the workspace `maxSeatsPerHoldToken` with large group holds), `userId`, optional `holdToken` capability to append seats to an existing session. `userId` is customer metadata, never ownership proof. Renew/append share a two-hour maximum session lifetime. Optional `ticketBuyerId` (opaque partner buyer id) is stored on a new hold token and inherited by its confirmation. `eventId` also accepts the event key. Headers: **x-api-key** (B2B) *or* **Authorization: Bearer** (HS256 JWT); optional **x-tenant-id**; **`Idempotency-Key` is required** (1–255 chars after trim; use a fresh UUID v4 per checkout attempt). Repeats with the same key within ~24h return the cached HTTP status and JSON without re-running the Lua lock. Applies Redis TTL locks (**default 600 s**, overridden by **`SEAT_HOLD_TTL_SEC`**, or by the workspace **hold period** setting — `PATCH /workspace/settings`) with SSE `seat` → **`locked`**; Postgres remains **`available`** until **`POST /api/seats/confirm`** persists **`sold`** via the reservation worker. A hold token holds at most the workspace `maxSeatsPerHoldToken` seats (409 `seat_limit`). **Large group holds (opt-in):** a workspace `maxSeatsPerHoldToken` above 64 (up to 1000, `PATCH /workspace/settings`) lets one request and one hold token hold that many seats of one event; the request is still one atomic lock — every seat of the group is held under the token, or none is (409 `SEAT_LOCKED` when any seat is taken, nothing locked). The sales-channel defaults (web 8, box office 20, partner 64) then step aside; the organizer's booking limits and the workspace cap still apply. Season and multi-event holds keep the 64-lock limit. **Booking limits:** the organizer's *Max seats per order* (designer → Booking limits, stored as `layoutMeta.bookingRules` of the published chart/event layout) caps the seats one hold token holds, appends included, checked in the same atomic call as the locks (parallel appends cannot exceed it); the strictest of the sales-channel default, this limit, the per-buyer limit and `maxSeatsPerHoldToken` wins. Refused with 409 `booking_limit_exceeded` (`limit`, `current` seats already on the token, `requested`, `kind: \"seats\"`). Holds placed before a lower limit was published keep their seats and stay confirmable; they only cannot grow. With ticket buyer validation on, buyer tokens must carry a bound ticket buyer id (403 `ticket_buyer_required` / `ticket_buyer_mismatch`). Seats that are not for sale are refused with 409 `SEAT_NOT_FOR_SALE`, except a seat with an active **resale** listing in a season member whose for-sale configuration does not propagate (`forSalePropagated: false`, e.g. a season-ticket seat its holder resells for one game); the confirmation and the order commit apply the same rule.
|
|
1009
|
+
# JSON body: `eventId`, `seatIds` (1–64 UUIDs, unique; up to the workspace `maxSeatsPerHoldToken` with large group holds), `userId`, optional `holdToken` capability to append seats to an existing session. `userId` is customer metadata, never ownership proof. Renew/append share a two-hour maximum session lifetime. Optional `ticketBuyerId` (opaque partner buyer id) is stored on a new hold token and inherited by its confirmation. `eventId` also accepts the event key. Headers: **x-api-key** (B2B) *or* **Authorization: Bearer** (HS256 JWT); optional **x-tenant-id**; **`Idempotency-Key` is required** (1–255 chars after trim; use a fresh UUID v4 per checkout attempt). Repeats with the same key within ~24h return the cached HTTP status and JSON without re-running the Lua lock. Applies Redis TTL locks (**default 600 s**, overridden by **`SEAT_HOLD_TTL_SEC`**, or by the workspace **hold period** setting — `PATCH /workspace/settings`) with SSE `seat` → **`locked`**; Postgres remains **`available`** until **`POST /api/seats/confirm`** persists **`sold`** via the reservation worker. A hold token holds at most the workspace `maxSeatsPerHoldToken` seats (409 `seat_limit`). **Free (test plan) out of seats:** once the workspace used its 50 seats of the month, new holds (appends included) answer 409 `holds_paused` with a neutral message until the next UTC month or an upgrade; holds already taken can still be confirmed. **Large group holds (opt-in):** a workspace `maxSeatsPerHoldToken` above 64 (up to 1000, `PATCH /workspace/settings`) lets one request and one hold token hold that many seats of one event; the request is still one atomic lock — every seat of the group is held under the token, or none is (409 `SEAT_LOCKED` when any seat is taken, nothing locked). The sales-channel defaults (web 8, box office 20, partner 64) then step aside; the organizer's booking limits and the workspace cap still apply. Season and multi-event holds keep the 64-lock limit. **Booking limits:** the organizer's *Max seats per order* (designer → Booking limits, stored as `layoutMeta.bookingRules` of the published chart/event layout) caps the seats one hold token holds, appends included, checked in the same atomic call as the locks (parallel appends cannot exceed it); the strictest of the sales-channel default, this limit, the per-buyer limit and `maxSeatsPerHoldToken` wins. Refused with 409 `booking_limit_exceeded` (`limit`, `current` seats already on the token, `requested`, `kind: \"seats\"`). Holds placed before a lower limit was published keep their seats and stay confirmable; they only cannot grow. With ticket buyer validation on, buyer tokens must carry a bound ticket buyer id (403 `ticket_buyer_required` / `ticket_buyer_mismatch`). Seats that are not for sale are refused with 409 `SEAT_NOT_FOR_SALE`, except a seat with an active **resale** listing in a season member whose for-sale configuration does not propagate (`forSalePropagated: false`, e.g. a season-ticket seat its holder resells for one game); the confirmation and the order commit apply the same rule.
|
|
1010
1010
|
# @param idempotency_key [String] Required deduplication key (max 255 chars after trim; UUID v4 recommended). 24h idempotent cache replay in Redis per tenant.
|
|
1011
1011
|
# @param post_api_seats_reserve_request [PostApiSeatsReserveRequest]
|
|
1012
1012
|
# @param [Hash] opts the optional parameters
|
|
@@ -1018,7 +1018,7 @@ module SeatsChart
|
|
|
1018
1018
|
end
|
|
1019
1019
|
|
|
1020
1020
|
# Place a temporary Redis hold (Lua TTL) before payment
|
|
1021
|
-
# JSON body: `eventId`, `seatIds` (1–64 UUIDs, unique; up to the workspace `maxSeatsPerHoldToken` with large group holds), `userId`, optional `holdToken` capability to append seats to an existing session. `userId` is customer metadata, never ownership proof. Renew/append share a two-hour maximum session lifetime. Optional `ticketBuyerId` (opaque partner buyer id) is stored on a new hold token and inherited by its confirmation. `eventId` also accepts the event key. Headers: **x-api-key** (B2B) *or* **Authorization: Bearer** (HS256 JWT); optional **x-tenant-id**; **`Idempotency-Key` is required** (1–255 chars after trim; use a fresh UUID v4 per checkout attempt). Repeats with the same key within ~24h return the cached HTTP status and JSON without re-running the Lua lock. Applies Redis TTL locks (**default 600 s**, overridden by **`SEAT_HOLD_TTL_SEC`**, or by the workspace **hold period** setting — `PATCH /workspace/settings`) with SSE `seat` → **`locked`**; Postgres remains **`available`** until **`POST /api/seats/confirm`** persists **`sold`** via the reservation worker. A hold token holds at most the workspace `maxSeatsPerHoldToken` seats (409 `seat_limit`). **Large group holds (opt-in):** a workspace `maxSeatsPerHoldToken` above 64 (up to 1000, `PATCH /workspace/settings`) lets one request and one hold token hold that many seats of one event; the request is still one atomic lock — every seat of the group is held under the token, or none is (409 `SEAT_LOCKED` when any seat is taken, nothing locked). The sales-channel defaults (web 8, box office 20, partner 64) then step aside; the organizer's booking limits and the workspace cap still apply. Season and multi-event holds keep the 64-lock limit. **Booking limits:** the organizer's *Max seats per order* (designer → Booking limits, stored as `layoutMeta.bookingRules` of the published chart/event layout) caps the seats one hold token holds, appends included, checked in the same atomic call as the locks (parallel appends cannot exceed it); the strictest of the sales-channel default, this limit, the per-buyer limit and `maxSeatsPerHoldToken` wins. Refused with 409 `booking_limit_exceeded` (`limit`, `current` seats already on the token, `requested`, `kind: \"seats\"`). Holds placed before a lower limit was published keep their seats and stay confirmable; they only cannot grow. With ticket buyer validation on, buyer tokens must carry a bound ticket buyer id (403 `ticket_buyer_required` / `ticket_buyer_mismatch`). Seats that are not for sale are refused with 409 `SEAT_NOT_FOR_SALE`, except a seat with an active **resale** listing in a season member whose for-sale configuration does not propagate (`forSalePropagated: false`, e.g. a season-ticket seat its holder resells for one game); the confirmation and the order commit apply the same rule.
|
|
1021
|
+
# JSON body: `eventId`, `seatIds` (1–64 UUIDs, unique; up to the workspace `maxSeatsPerHoldToken` with large group holds), `userId`, optional `holdToken` capability to append seats to an existing session. `userId` is customer metadata, never ownership proof. Renew/append share a two-hour maximum session lifetime. Optional `ticketBuyerId` (opaque partner buyer id) is stored on a new hold token and inherited by its confirmation. `eventId` also accepts the event key. Headers: **x-api-key** (B2B) *or* **Authorization: Bearer** (HS256 JWT); optional **x-tenant-id**; **`Idempotency-Key` is required** (1–255 chars after trim; use a fresh UUID v4 per checkout attempt). Repeats with the same key within ~24h return the cached HTTP status and JSON without re-running the Lua lock. Applies Redis TTL locks (**default 600 s**, overridden by **`SEAT_HOLD_TTL_SEC`**, or by the workspace **hold period** setting — `PATCH /workspace/settings`) with SSE `seat` → **`locked`**; Postgres remains **`available`** until **`POST /api/seats/confirm`** persists **`sold`** via the reservation worker. A hold token holds at most the workspace `maxSeatsPerHoldToken` seats (409 `seat_limit`). **Free (test plan) out of seats:** once the workspace used its 50 seats of the month, new holds (appends included) answer 409 `holds_paused` with a neutral message until the next UTC month or an upgrade; holds already taken can still be confirmed. **Large group holds (opt-in):** a workspace `maxSeatsPerHoldToken` above 64 (up to 1000, `PATCH /workspace/settings`) lets one request and one hold token hold that many seats of one event; the request is still one atomic lock — every seat of the group is held under the token, or none is (409 `SEAT_LOCKED` when any seat is taken, nothing locked). The sales-channel defaults (web 8, box office 20, partner 64) then step aside; the organizer's booking limits and the workspace cap still apply. Season and multi-event holds keep the 64-lock limit. **Booking limits:** the organizer's *Max seats per order* (designer → Booking limits, stored as `layoutMeta.bookingRules` of the published chart/event layout) caps the seats one hold token holds, appends included, checked in the same atomic call as the locks (parallel appends cannot exceed it); the strictest of the sales-channel default, this limit, the per-buyer limit and `maxSeatsPerHoldToken` wins. Refused with 409 `booking_limit_exceeded` (`limit`, `current` seats already on the token, `requested`, `kind: \"seats\"`). Holds placed before a lower limit was published keep their seats and stay confirmable; they only cannot grow. With ticket buyer validation on, buyer tokens must carry a bound ticket buyer id (403 `ticket_buyer_required` / `ticket_buyer_mismatch`). Seats that are not for sale are refused with 409 `SEAT_NOT_FOR_SALE`, except a seat with an active **resale** listing in a season member whose for-sale configuration does not propagate (`forSalePropagated: false`, e.g. a season-ticket seat its holder resells for one game); the confirmation and the order commit apply the same rule.
|
|
1022
1022
|
# @param idempotency_key [String] Required deduplication key (max 255 chars after trim; UUID v4 recommended). 24h idempotent cache replay in Redis per tenant.
|
|
1023
1023
|
# @param post_api_seats_reserve_request [PostApiSeatsReserveRequest]
|
|
1024
1024
|
# @param [Hash] opts the optional parameters
|
|
@@ -87,7 +87,7 @@ module SeatsChart
|
|
|
87
87
|
end
|
|
88
88
|
|
|
89
89
|
# Monthly usage: used objects, charts and events
|
|
90
|
-
# Sandboxes (`isTest: true`) are metered so their usage can be seen, but never billed and never held to plan limits (`limit: null`). `usedObjects.count` is the number of distinct objects booked in the UTC calendar month (seats.io-style billing unit): every seat that became booked counts once per month however often it is retried, released and re-booked; each sold general-admission place counts as one. Holds, test events and replays never count. Map-only renders (`bringYourOwnBackend`) count every object of the rendered chart once per chart and month (`byEvent` entry with the chart id and `mapOnly: true`). `history` has exactly 12 months ending at `month` (zero-filled); `byEvent` lists the top 100 events of the month. `charts`/`events` are current totals
|
|
90
|
+
# Sandboxes (`isTest: true`) are metered so their usage can be seen, but never billed and never held to plan limits (`limit: null`). `usedObjects.count` is the number of distinct objects booked in the UTC calendar month (seats.io-style billing unit): every seat that became booked counts once per month however often it is retried, released and re-booked; each sold general-admission place counts as one. Holds, test events and replays never count. Map-only renders (`bringYourOwnBackend`) count every object of the rendered chart once per chart and month (`byEvent` entry with the chart id and `mapOnly: true`). `history` has exactly 12 months ending at `month` (zero-filled); `byEvent` lists the top 100 events of the month. `charts`/`events` are this workspace's current totals; the plan limits count every production workspace of the billing account together (`account.charts` / `account.events`). `account`: the billing account the workspace belongs to (one plan for all its workspaces) with `ownerEmail`, `isOwner`, `workspaceCount` and the account totals `charts`, `events` and `usedSeats` of the month; `null` in a sandbox or without an account. `seats`: the used seats (the billing unit: one per event, object and month; the same seat sold in two events counts twice) of the billing account in the month — every production workspace of the account, an organizer workspace of a ticketing platform with the platform — with `includedSeats`, `mode` (`overage`: paid plan, extra seats billed per seat; `allowance`: Free, new events and putting events on sale pause above it; `on_demand`: Ultra On-Demand, every seat billed by the SeatsChart team), `overage` { seats, costCents } so far, `projected` (current month at the current pace) and `allowanceExceeded`; `null` in a test workspace. Dashboard JWT (any role) or an API key with the `reports` scope.
|
|
91
91
|
# @param [Hash] opts the optional parameters
|
|
92
92
|
# @option opts [String] :month UTC calendar month `YYYY-MM` (default: current month).
|
|
93
93
|
# @return [nil]
|
|
@@ -97,7 +97,7 @@ module SeatsChart
|
|
|
97
97
|
end
|
|
98
98
|
|
|
99
99
|
# Monthly usage: used objects, charts and events
|
|
100
|
-
# Sandboxes (`isTest: true`) are metered so their usage can be seen, but never billed and never held to plan limits (`limit: null`). `usedObjects.count` is the number of distinct objects booked in the UTC calendar month (seats.io-style billing unit): every seat that became booked counts once per month however often it is retried, released and re-booked; each sold general-admission place counts as one. Holds, test events and replays never count. Map-only renders (`bringYourOwnBackend`) count every object of the rendered chart once per chart and month (`byEvent` entry with the chart id and `mapOnly: true`). `history` has exactly 12 months ending at `month` (zero-filled); `byEvent` lists the top 100 events of the month. `charts`/`events` are current totals
|
|
100
|
+
# Sandboxes (`isTest: true`) are metered so their usage can be seen, but never billed and never held to plan limits (`limit: null`). `usedObjects.count` is the number of distinct objects booked in the UTC calendar month (seats.io-style billing unit): every seat that became booked counts once per month however often it is retried, released and re-booked; each sold general-admission place counts as one. Holds, test events and replays never count. Map-only renders (`bringYourOwnBackend`) count every object of the rendered chart once per chart and month (`byEvent` entry with the chart id and `mapOnly: true`). `history` has exactly 12 months ending at `month` (zero-filled); `byEvent` lists the top 100 events of the month. `charts`/`events` are this workspace's current totals; the plan limits count every production workspace of the billing account together (`account.charts` / `account.events`). `account`: the billing account the workspace belongs to (one plan for all its workspaces) with `ownerEmail`, `isOwner`, `workspaceCount` and the account totals `charts`, `events` and `usedSeats` of the month; `null` in a sandbox or without an account. `seats`: the used seats (the billing unit: one per event, object and month; the same seat sold in two events counts twice) of the billing account in the month — every production workspace of the account, an organizer workspace of a ticketing platform with the platform — with `includedSeats`, `mode` (`overage`: paid plan, extra seats billed per seat; `allowance`: Free, new events and putting events on sale pause above it; `on_demand`: Ultra On-Demand, every seat billed by the SeatsChart team), `overage` { seats, costCents } so far, `projected` (current month at the current pace) and `allowanceExceeded`; `null` in a test workspace. Dashboard JWT (any role) or an API key with the `reports` scope.
|
|
101
101
|
# @param [Hash] opts the optional parameters
|
|
102
102
|
# @option opts [String] :month UTC calendar month `YYYY-MM` (default: current month).
|
|
103
103
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
@@ -478,7 +478,7 @@ module SeatsChart
|
|
|
478
478
|
end
|
|
479
479
|
|
|
480
480
|
# Monthly used objects across my workspaces (admin view)
|
|
481
|
-
# Every workspace the caller administers (role admin), with its plan, status and used objects of the month against the plan limit (`null` for sandboxes, which are metered but never billed), plus the total of the production workspaces (`usedObjects`) and, separately, of the sandboxes (`sandboxUsedObjects`). Dashboard session, or a **workspace admin API key** (the admin it is bound to); other API keys: 403 `ERR_PARTNER_SCOPE`. One grouped read of the metering table.
|
|
481
|
+
# Every workspace the caller administers (role admin), with its plan, status and used objects of the month against the plan limit (`null` for sandboxes, which are metered but never billed), plus the total of the production workspaces (`usedObjects`) and, separately, of the sandboxes (`sandboxUsedObjects`). Each item names its billing account (`billingOwnerUserId`); `accounts` lists those accounts (the caller's own first) with the owner, the plan and the totals of every production workspace of the account (`workspaceCount`, `charts`, `events`, `usedObjects` against the plan's included seats), since one plan covers them all. Dashboard session, or a **workspace admin API key** (the admin it is bound to); other API keys: 403 `ERR_PARTNER_SCOPE`. One grouped read of the metering table.
|
|
482
482
|
# @param [Hash] opts the optional parameters
|
|
483
483
|
# @option opts [String] :month UTC calendar month `YYYY-MM` (default: current month).
|
|
484
484
|
# @return [nil]
|
|
@@ -488,7 +488,7 @@ module SeatsChart
|
|
|
488
488
|
end
|
|
489
489
|
|
|
490
490
|
# Monthly used objects across my workspaces (admin view)
|
|
491
|
-
# Every workspace the caller administers (role admin), with its plan, status and used objects of the month against the plan limit (`null` for sandboxes, which are metered but never billed), plus the total of the production workspaces (`usedObjects`) and, separately, of the sandboxes (`sandboxUsedObjects`). Dashboard session, or a **workspace admin API key** (the admin it is bound to); other API keys: 403 `ERR_PARTNER_SCOPE`. One grouped read of the metering table.
|
|
491
|
+
# Every workspace the caller administers (role admin), with its plan, status and used objects of the month against the plan limit (`null` for sandboxes, which are metered but never billed), plus the total of the production workspaces (`usedObjects`) and, separately, of the sandboxes (`sandboxUsedObjects`). Each item names its billing account (`billingOwnerUserId`); `accounts` lists those accounts (the caller's own first) with the owner, the plan and the totals of every production workspace of the account (`workspaceCount`, `charts`, `events`, `usedObjects` against the plan's included seats), since one plan covers them all. Dashboard session, or a **workspace admin API key** (the admin it is bound to); other API keys: 403 `ERR_PARTNER_SCOPE`. One grouped read of the metering table.
|
|
492
492
|
# @param [Hash] opts the optional parameters
|
|
493
493
|
# @option opts [String] :month UTC calendar month `YYYY-MM` (default: current month).
|
|
494
494
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
@@ -107,10 +107,10 @@ module SeatsChart
|
|
|
107
107
|
# @param invitation_id [String]
|
|
108
108
|
# @param [Hash] opts the optional parameters
|
|
109
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.
|
|
110
|
-
# @return [
|
|
110
|
+
# @return [DeleteApiWorkspacesByWorkspaceIdMembersByUserId200Response]
|
|
111
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)
|
|
113
|
-
|
|
112
|
+
data, _status_code, _headers = delete_api_workspaces_by_workspace_id_invitations_by_invitation_id_with_http_info(workspace_id, invitation_id, opts)
|
|
113
|
+
data
|
|
114
114
|
end
|
|
115
115
|
|
|
116
116
|
# Revoke a pending invitation of a workspace you administer
|
|
@@ -119,7 +119,7 @@ module SeatsChart
|
|
|
119
119
|
# @param invitation_id [String]
|
|
120
120
|
# @param [Hash] opts the optional parameters
|
|
121
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.
|
|
122
|
-
# @return [Array<(
|
|
122
|
+
# @return [Array<(DeleteApiWorkspacesByWorkspaceIdMembersByUserId200Response, Integer, Hash)>] DeleteApiWorkspacesByWorkspaceIdMembersByUserId200Response data, response status code and response headers
|
|
123
123
|
def delete_api_workspaces_by_workspace_id_invitations_by_invitation_id_with_http_info(workspace_id, invitation_id, opts = {})
|
|
124
124
|
if @api_client.config.debugging
|
|
125
125
|
@api_client.config.logger.debug 'Calling API: WorkspaceApi.delete_api_workspaces_by_workspace_id_invitations_by_invitation_id ...'
|
|
@@ -156,6 +156,8 @@ module SeatsChart
|
|
|
156
156
|
|
|
157
157
|
# header parameters
|
|
158
158
|
header_params = opts[:header_params] || {}
|
|
159
|
+
# HTTP header 'Accept' (if needed)
|
|
160
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
|
|
159
161
|
header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
|
|
160
162
|
|
|
161
163
|
# form parameters
|
|
@@ -165,7 +167,7 @@ module SeatsChart
|
|
|
165
167
|
post_body = opts[:debug_body]
|
|
166
168
|
|
|
167
169
|
# return_type
|
|
168
|
-
return_type = opts[:debug_return_type]
|
|
170
|
+
return_type = opts[:debug_return_type] || 'DeleteApiWorkspacesByWorkspaceIdMembersByUserId200Response'
|
|
169
171
|
|
|
170
172
|
# auth_names
|
|
171
173
|
auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
|
|
@@ -281,10 +283,10 @@ module SeatsChart
|
|
|
281
283
|
# @param user_id [String]
|
|
282
284
|
# @param [Hash] opts the optional parameters
|
|
283
285
|
# @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 [
|
|
286
|
+
# @return [DeleteApiWorkspacesByWorkspaceIdMembersByUserId200Response]
|
|
285
287
|
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
|
-
|
|
288
|
+
data, _status_code, _headers = delete_api_workspaces_by_workspace_id_members_by_user_id_with_http_info(workspace_id, user_id, opts)
|
|
289
|
+
data
|
|
288
290
|
end
|
|
289
291
|
|
|
290
292
|
# Remove a member from a workspace you administer
|
|
@@ -293,7 +295,7 @@ module SeatsChart
|
|
|
293
295
|
# @param user_id [String]
|
|
294
296
|
# @param [Hash] opts the optional parameters
|
|
295
297
|
# @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<(
|
|
298
|
+
# @return [Array<(DeleteApiWorkspacesByWorkspaceIdMembersByUserId200Response, Integer, Hash)>] DeleteApiWorkspacesByWorkspaceIdMembersByUserId200Response data, response status code and response headers
|
|
297
299
|
def delete_api_workspaces_by_workspace_id_members_by_user_id_with_http_info(workspace_id, user_id, opts = {})
|
|
298
300
|
if @api_client.config.debugging
|
|
299
301
|
@api_client.config.logger.debug 'Calling API: WorkspaceApi.delete_api_workspaces_by_workspace_id_members_by_user_id ...'
|
|
@@ -330,6 +332,8 @@ module SeatsChart
|
|
|
330
332
|
|
|
331
333
|
# header parameters
|
|
332
334
|
header_params = opts[:header_params] || {}
|
|
335
|
+
# HTTP header 'Accept' (if needed)
|
|
336
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
|
|
333
337
|
header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
|
|
334
338
|
|
|
335
339
|
# form parameters
|
|
@@ -339,7 +343,7 @@ module SeatsChart
|
|
|
339
343
|
post_body = opts[:debug_body]
|
|
340
344
|
|
|
341
345
|
# return_type
|
|
342
|
-
return_type = opts[:debug_return_type]
|
|
346
|
+
return_type = opts[:debug_return_type] || 'DeleteApiWorkspacesByWorkspaceIdMembersByUserId200Response'
|
|
343
347
|
|
|
344
348
|
# auth_names
|
|
345
349
|
auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
|
|
@@ -705,7 +709,7 @@ module SeatsChart
|
|
|
705
709
|
# @option opts [String] :filter Case-insensitive substring of the workspace name or id (seats.io `filter`).
|
|
706
710
|
# @option opts [String] :status `active` (seats.io listActive), `inactive` (deactivated; seats.io listInactive) or `all` (default).
|
|
707
711
|
# @option opts [String] :external_id Only the workspace with this external id (your organizer id; exact match).
|
|
708
|
-
# @option opts [
|
|
712
|
+
# @option opts [Boolean] :created_by_api `true`: only workspaces provisioned by a workspace admin key; `false`: only the others.
|
|
709
713
|
# @return [GetApiWorkspaces200Response]
|
|
710
714
|
def get_api_workspaces(opts = {})
|
|
711
715
|
data, _status_code, _headers = get_api_workspaces_with_http_info(opts)
|
|
@@ -718,7 +722,7 @@ module SeatsChart
|
|
|
718
722
|
# @option opts [String] :filter Case-insensitive substring of the workspace name or id (seats.io `filter`).
|
|
719
723
|
# @option opts [String] :status `active` (seats.io listActive), `inactive` (deactivated; seats.io listInactive) or `all` (default).
|
|
720
724
|
# @option opts [String] :external_id Only the workspace with this external id (your organizer id; exact match).
|
|
721
|
-
# @option opts [
|
|
725
|
+
# @option opts [Boolean] :created_by_api `true`: only workspaces provisioned by a workspace admin key; `false`: only the others.
|
|
722
726
|
# @return [Array<(GetApiWorkspaces200Response, Integer, Hash)>] GetApiWorkspaces200Response data, response status code and response headers
|
|
723
727
|
def get_api_workspaces_with_http_info(opts = {})
|
|
724
728
|
if @api_client.config.debugging
|
|
@@ -943,16 +947,16 @@ module SeatsChart
|
|
|
943
947
|
# List the pending invitations of a workspace you administer
|
|
944
948
|
# @param workspace_id [String] Workspace id or its external id.
|
|
945
949
|
# @param [Hash] opts the optional parameters
|
|
946
|
-
# @return [
|
|
950
|
+
# @return [GetApiWorkspacesByWorkspaceIdInvitations200Response]
|
|
947
951
|
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
|
-
|
|
952
|
+
data, _status_code, _headers = get_api_workspaces_by_workspace_id_invitations_with_http_info(workspace_id, opts)
|
|
953
|
+
data
|
|
950
954
|
end
|
|
951
955
|
|
|
952
956
|
# List the pending invitations of a workspace you administer
|
|
953
957
|
# @param workspace_id [String] Workspace id or its external id.
|
|
954
958
|
# @param [Hash] opts the optional parameters
|
|
955
|
-
# @return [Array<(
|
|
959
|
+
# @return [Array<(GetApiWorkspacesByWorkspaceIdInvitations200Response, Integer, Hash)>] GetApiWorkspacesByWorkspaceIdInvitations200Response data, response status code and response headers
|
|
956
960
|
def get_api_workspaces_by_workspace_id_invitations_with_http_info(workspace_id, opts = {})
|
|
957
961
|
if @api_client.config.debugging
|
|
958
962
|
@api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspaces_by_workspace_id_invitations ...'
|
|
@@ -977,6 +981,8 @@ module SeatsChart
|
|
|
977
981
|
|
|
978
982
|
# header parameters
|
|
979
983
|
header_params = opts[:header_params] || {}
|
|
984
|
+
# HTTP header 'Accept' (if needed)
|
|
985
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
|
|
980
986
|
|
|
981
987
|
# form parameters
|
|
982
988
|
form_params = opts[:form_params] || {}
|
|
@@ -985,7 +991,7 @@ module SeatsChart
|
|
|
985
991
|
post_body = opts[:debug_body]
|
|
986
992
|
|
|
987
993
|
# return_type
|
|
988
|
-
return_type = opts[:debug_return_type]
|
|
994
|
+
return_type = opts[:debug_return_type] || 'GetApiWorkspacesByWorkspaceIdInvitations200Response'
|
|
989
995
|
|
|
990
996
|
# auth_names
|
|
991
997
|
auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
|
|
@@ -1082,17 +1088,17 @@ module SeatsChart
|
|
|
1082
1088
|
# Dashboard members with role, join date and `twoFactorEnabled`. Dashboard session or a workspace admin API key.
|
|
1083
1089
|
# @param workspace_id [String] Workspace id or its external id.
|
|
1084
1090
|
# @param [Hash] opts the optional parameters
|
|
1085
|
-
# @return [
|
|
1091
|
+
# @return [GetApiWorkspacesByWorkspaceIdMembers200Response]
|
|
1086
1092
|
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
|
-
|
|
1093
|
+
data, _status_code, _headers = get_api_workspaces_by_workspace_id_members_with_http_info(workspace_id, opts)
|
|
1094
|
+
data
|
|
1089
1095
|
end
|
|
1090
1096
|
|
|
1091
1097
|
# List the members of a workspace you administer
|
|
1092
1098
|
# Dashboard members with role, join date and `twoFactorEnabled`. Dashboard session or a workspace admin API key.
|
|
1093
1099
|
# @param workspace_id [String] Workspace id or its external id.
|
|
1094
1100
|
# @param [Hash] opts the optional parameters
|
|
1095
|
-
# @return [Array<(
|
|
1101
|
+
# @return [Array<(GetApiWorkspacesByWorkspaceIdMembers200Response, Integer, Hash)>] GetApiWorkspacesByWorkspaceIdMembers200Response data, response status code and response headers
|
|
1096
1102
|
def get_api_workspaces_by_workspace_id_members_with_http_info(workspace_id, opts = {})
|
|
1097
1103
|
if @api_client.config.debugging
|
|
1098
1104
|
@api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspaces_by_workspace_id_members ...'
|
|
@@ -1117,6 +1123,8 @@ module SeatsChart
|
|
|
1117
1123
|
|
|
1118
1124
|
# header parameters
|
|
1119
1125
|
header_params = opts[:header_params] || {}
|
|
1126
|
+
# HTTP header 'Accept' (if needed)
|
|
1127
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
|
|
1120
1128
|
|
|
1121
1129
|
# form parameters
|
|
1122
1130
|
form_params = opts[:form_params] || {}
|
|
@@ -1125,7 +1133,7 @@ module SeatsChart
|
|
|
1125
1133
|
post_body = opts[:debug_body]
|
|
1126
1134
|
|
|
1127
1135
|
# return_type
|
|
1128
|
-
return_type = opts[:debug_return_type]
|
|
1136
|
+
return_type = opts[:debug_return_type] || 'GetApiWorkspacesByWorkspaceIdMembers200Response'
|
|
1129
1137
|
|
|
1130
1138
|
# auth_names
|
|
1131
1139
|
auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
|
|
@@ -1148,34 +1156,34 @@ module SeatsChart
|
|
|
1148
1156
|
end
|
|
1149
1157
|
|
|
1150
1158
|
# 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.
|
|
1159
|
+
# 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. `usage.usedSeats` is each workspace's used seats of the month (the billing unit) and `usage.projectedSeats` its projection at the current pace. `seats` is the seat billing of the caller's billing account for the month: the seats of every production workspace of the account (its own and the organizer workspaces it provisioned) together, against the account's plan (`includedSeats`, `overage` and `projected` with their cost); `account` holds the account's totals (`workspaceCount`, `plan`, `charts` and `events` against the plan caps, which count them together); both `null` when the caller has no billing account. Filters: `externalId`, `status`, `createdByApi`, creation date range `createdFrom` / `createdTo`. Paginated with `limit` / `nextCursor`. Dashboard session or a workspace admin API key.
|
|
1152
1160
|
# @param [Hash] opts the optional parameters
|
|
1153
1161
|
# @option opts [String] :external_id Only this organizer.
|
|
1154
1162
|
# @option opts [String] :status Default `all`.
|
|
1155
|
-
# @option opts [
|
|
1163
|
+
# @option opts [Boolean] :created_by_api `true`: only workspaces provisioned by a workspace admin key.
|
|
1156
1164
|
# @option opts [String] :created_from Workspaces created at or after this date / date-time (ISO 8601).
|
|
1157
1165
|
# @option opts [String] :created_to Workspaces created at or before this date (whole UTC day) / date-time.
|
|
1158
1166
|
# @option opts [String] :month Usage month `YYYY-MM` (default: the current UTC month).
|
|
1159
1167
|
# @option opts [Float] :limit Page size (1..200, default 50).
|
|
1160
1168
|
# @option opts [String] :cursor Opaque `nextCursor` of the previous page.
|
|
1161
|
-
# @return [
|
|
1169
|
+
# @return [GetApiWorkspacesOverview200Response]
|
|
1162
1170
|
def get_api_workspaces_overview(opts = {})
|
|
1163
|
-
get_api_workspaces_overview_with_http_info(opts)
|
|
1164
|
-
|
|
1171
|
+
data, _status_code, _headers = get_api_workspaces_overview_with_http_info(opts)
|
|
1172
|
+
data
|
|
1165
1173
|
end
|
|
1166
1174
|
|
|
1167
1175
|
# 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 `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.
|
|
1176
|
+
# 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. `usage.usedSeats` is each workspace's used seats of the month (the billing unit) and `usage.projectedSeats` its projection at the current pace. `seats` is the seat billing of the caller's billing account for the month: the seats of every production workspace of the account (its own and the organizer workspaces it provisioned) together, against the account's plan (`includedSeats`, `overage` and `projected` with their cost); `account` holds the account's totals (`workspaceCount`, `plan`, `charts` and `events` against the plan caps, which count them together); both `null` when the caller has no billing account. Filters: `externalId`, `status`, `createdByApi`, creation date range `createdFrom` / `createdTo`. Paginated with `limit` / `nextCursor`. Dashboard session or a workspace admin API key.
|
|
1169
1177
|
# @param [Hash] opts the optional parameters
|
|
1170
1178
|
# @option opts [String] :external_id Only this organizer.
|
|
1171
1179
|
# @option opts [String] :status Default `all`.
|
|
1172
|
-
# @option opts [
|
|
1180
|
+
# @option opts [Boolean] :created_by_api `true`: only workspaces provisioned by a workspace admin key.
|
|
1173
1181
|
# @option opts [String] :created_from Workspaces created at or after this date / date-time (ISO 8601).
|
|
1174
1182
|
# @option opts [String] :created_to Workspaces created at or before this date (whole UTC day) / date-time.
|
|
1175
1183
|
# @option opts [String] :month Usage month `YYYY-MM` (default: the current UTC month).
|
|
1176
1184
|
# @option opts [Float] :limit Page size (1..200, default 50).
|
|
1177
1185
|
# @option opts [String] :cursor Opaque `nextCursor` of the previous page.
|
|
1178
|
-
# @return [Array<(
|
|
1186
|
+
# @return [Array<(GetApiWorkspacesOverview200Response, Integer, Hash)>] GetApiWorkspacesOverview200Response data, response status code and response headers
|
|
1179
1187
|
def get_api_workspaces_overview_with_http_info(opts = {})
|
|
1180
1188
|
if @api_client.config.debugging
|
|
1181
1189
|
@api_client.config.logger.debug 'Calling API: WorkspaceApi.get_api_workspaces_overview ...'
|
|
@@ -1255,6 +1263,8 @@ module SeatsChart
|
|
|
1255
1263
|
|
|
1256
1264
|
# header parameters
|
|
1257
1265
|
header_params = opts[:header_params] || {}
|
|
1266
|
+
# HTTP header 'Accept' (if needed)
|
|
1267
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
|
|
1258
1268
|
|
|
1259
1269
|
# form parameters
|
|
1260
1270
|
form_params = opts[:form_params] || {}
|
|
@@ -1263,7 +1273,7 @@ module SeatsChart
|
|
|
1263
1273
|
post_body = opts[:debug_body]
|
|
1264
1274
|
|
|
1265
1275
|
# return_type
|
|
1266
|
-
return_type = opts[:debug_return_type]
|
|
1276
|
+
return_type = opts[:debug_return_type] || 'GetApiWorkspacesOverview200Response'
|
|
1267
1277
|
|
|
1268
1278
|
# auth_names
|
|
1269
1279
|
auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
|
|
@@ -1927,7 +1937,7 @@ module SeatsChart
|
|
|
1927
1937
|
end
|
|
1928
1938
|
|
|
1929
1939
|
# 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`,
|
|
1940
|
+
# 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`, joins the platform admin's billing account (one plan for every workspace of the account, e.g. Ultra On-Demand: its charts, events and seats count with the others) and is billed to the platform: its members never see checkout or upgrade prompts. A workspace created in the dashboard joins the creator's billing account the same way, and a sandbox its parent's. 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
1941
|
# @param post_api_workspaces_request [PostApiWorkspacesRequest]
|
|
1932
1942
|
# @param [Hash] opts the optional parameters
|
|
1933
1943
|
# @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.
|
|
@@ -1938,7 +1948,7 @@ module SeatsChart
|
|
|
1938
1948
|
end
|
|
1939
1949
|
|
|
1940
1950
|
# 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** (`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`,
|
|
1951
|
+
# 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`, joins the platform admin's billing account (one plan for every workspace of the account, e.g. Ultra On-Demand: its charts, events and seats count with the others) and is billed to the platform: its members never see checkout or upgrade prompts. A workspace created in the dashboard joins the creator's billing account the same way, and a sandbox its parent's. 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.
|
|
1942
1952
|
# @param post_api_workspaces_request [PostApiWorkspacesRequest]
|
|
1943
1953
|
# @param [Hash] opts the optional parameters
|
|
1944
1954
|
# @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.
|
|
@@ -2170,7 +2180,7 @@ module SeatsChart
|
|
|
2170
2180
|
end
|
|
2171
2181
|
|
|
2172
2182
|
# 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
|
|
2183
|
+
# 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 for the last workspace of a billing account whose 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.
|
|
2174
2184
|
# @param workspace_id [String]
|
|
2175
2185
|
# @param post_api_workspaces_by_workspace_id_actions_delete_request [PostApiWorkspacesByWorkspaceIdActionsDeleteRequest]
|
|
2176
2186
|
# @param [Hash] opts the optional parameters
|
|
@@ -2182,7 +2192,7 @@ module SeatsChart
|
|
|
2182
2192
|
end
|
|
2183
2193
|
|
|
2184
2194
|
# 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 `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
|
|
2195
|
+
# 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 for the last workspace of a billing account whose 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.
|
|
2186
2196
|
# @param workspace_id [String]
|
|
2187
2197
|
# @param post_api_workspaces_by_workspace_id_actions_delete_request [PostApiWorkspacesByWorkspaceIdActionsDeleteRequest]
|
|
2188
2198
|
# @param [Hash] opts the optional parameters
|
|
@@ -2350,10 +2360,10 @@ module SeatsChart
|
|
|
2350
2360
|
# @param post_api_workspaces_by_workspace_id_invitations_request [PostApiWorkspacesByWorkspaceIdInvitationsRequest]
|
|
2351
2361
|
# @param [Hash] opts the optional parameters
|
|
2352
2362
|
# @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.
|
|
2353
|
-
# @return [
|
|
2363
|
+
# @return [PostApiWorkspacesByWorkspaceIdInvitations201Response]
|
|
2354
2364
|
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)
|
|
2356
|
-
|
|
2365
|
+
data, _status_code, _headers = post_api_workspaces_by_workspace_id_invitations_with_http_info(workspace_id, post_api_workspaces_by_workspace_id_invitations_request, opts)
|
|
2366
|
+
data
|
|
2357
2367
|
end
|
|
2358
2368
|
|
|
2359
2369
|
# Invite a person to a workspace you administer
|
|
@@ -2362,7 +2372,7 @@ module SeatsChart
|
|
|
2362
2372
|
# @param post_api_workspaces_by_workspace_id_invitations_request [PostApiWorkspacesByWorkspaceIdInvitationsRequest]
|
|
2363
2373
|
# @param [Hash] opts the optional parameters
|
|
2364
2374
|
# @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.
|
|
2365
|
-
# @return [Array<(
|
|
2375
|
+
# @return [Array<(PostApiWorkspacesByWorkspaceIdInvitations201Response, Integer, Hash)>] PostApiWorkspacesByWorkspaceIdInvitations201Response data, response status code and response headers
|
|
2366
2376
|
def post_api_workspaces_by_workspace_id_invitations_with_http_info(workspace_id, post_api_workspaces_by_workspace_id_invitations_request, opts = {})
|
|
2367
2377
|
if @api_client.config.debugging
|
|
2368
2378
|
@api_client.config.logger.debug 'Calling API: WorkspaceApi.post_api_workspaces_by_workspace_id_invitations ...'
|
|
@@ -2399,6 +2409,8 @@ module SeatsChart
|
|
|
2399
2409
|
|
|
2400
2410
|
# header parameters
|
|
2401
2411
|
header_params = opts[:header_params] || {}
|
|
2412
|
+
# HTTP header 'Accept' (if needed)
|
|
2413
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
|
|
2402
2414
|
# HTTP header 'Content-Type'
|
|
2403
2415
|
content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
|
|
2404
2416
|
if !content_type.nil?
|
|
@@ -2413,7 +2425,7 @@ module SeatsChart
|
|
|
2413
2425
|
post_body = opts[:debug_body] || @api_client.object_to_http_body(post_api_workspaces_by_workspace_id_invitations_request)
|
|
2414
2426
|
|
|
2415
2427
|
# return_type
|
|
2416
|
-
return_type = opts[:debug_return_type]
|
|
2428
|
+
return_type = opts[:debug_return_type] || 'PostApiWorkspacesByWorkspaceIdInvitations201Response'
|
|
2417
2429
|
|
|
2418
2430
|
# auth_names
|
|
2419
2431
|
auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
|