seatschart 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +191 -16
  3. data/lib/seatschart/api/audit_api.rb +2 -2
  4. data/lib/seatschart/api/charts_api.rb +808 -75
  5. data/lib/seatschart/api/embed_api.rb +18 -7
  6. data/lib/seatschart/api/embed_origins_api.rb +63 -2
  7. data/lib/seatschart/api/event_log_api.rb +2 -2
  8. data/lib/seatschart/api/events_api.rb +1594 -112
  9. data/lib/seatschart/api/health_api.rb +244 -0
  10. data/lib/seatschart/api/listings_api.rb +884 -0
  11. data/lib/seatschart/api/map_designer_api.rb +11 -9
  12. data/lib/seatschart/api/object_status_api.rb +2 -2
  13. data/lib/seatschart/api/public_api.rb +350 -0
  14. data/lib/seatschart/api/sandboxes_api.rb +672 -0
  15. data/lib/seatschart/api/seasons_api.rb +455 -42
  16. data/lib/seatschart/api/seats_api.rb +13 -32
  17. data/lib/seatschart/api/usage_api.rb +20 -17
  18. data/lib/seatschart/api/webhooks_api.rb +2 -2
  19. data/lib/seatschart/api/workspace_api.rb +306 -20
  20. data/lib/seatschart/models/api_error.rb +307 -0
  21. data/lib/seatschart/models/api_error_params_value.rb +105 -0
  22. data/lib/seatschart/models/delete_api_sandboxes_by_sandbox_id200_response.rb +255 -0
  23. data/lib/seatschart/models/get_api_monitoring_requests200_response.rb +78 -4
  24. data/lib/seatschart/models/get_api_monitoring_requests200_response_concurrency.rb +318 -0
  25. data/lib/seatschart/models/get_api_monitoring_requests200_response_concurrency_api_keys_inner.rb +297 -0
  26. data/lib/seatschart/models/get_api_monitoring_requests200_response_points_inner.rb +38 -4
  27. data/lib/seatschart/models/get_api_sandboxes200_response.rb +239 -0
  28. data/lib/seatschart/models/get_api_sandboxes200_response_items_inner.rb +431 -0
  29. data/lib/seatschart/models/get_api_sandboxes200_response_items_inner_rate_limits.rb +270 -0
  30. data/lib/seatschart/models/get_api_sandboxes200_response_items_inner_usage.rb +287 -0
  31. data/lib/seatschart/models/get_api_status200_response.rb +387 -0
  32. data/lib/seatschart/models/get_api_status200_response_components_inner.rb +330 -0
  33. data/lib/seatschart/models/get_api_status200_response_components_inner_days_inner.rb +301 -0
  34. data/lib/seatschart/models/get_api_status200_response_incidents_inner.rb +374 -0
  35. data/lib/seatschart/models/get_api_status200_response_maintenance_inner.rb +350 -0
  36. data/lib/seatschart/models/get_api_status503_response.rb +271 -0
  37. data/lib/seatschart/models/get_api_workspace_buyer_extra_data200_response.rb +241 -0
  38. data/lib/seatschart/models/get_api_workspace_defaults200_response.rb +254 -0
  39. data/lib/seatschart/models/get_api_workspace_defaults200_response_renderer.rb +246 -0
  40. data/lib/seatschart/models/get_api_workspace_defaults200_response_renderer_built_in.rb +270 -0
  41. data/lib/seatschart/models/get_api_workspace_settings200_response_effective.rb +20 -4
  42. data/lib/seatschart/models/get_api_workspace_settings200_response_overrides.rb +13 -4
  43. data/lib/seatschart/models/get_api_workspace_settings200_response_sources.rb +32 -4
  44. data/lib/seatschart/models/get_api_workspaces200_response_items_inner.rb +34 -5
  45. data/lib/seatschart/models/patch_api_events_by_event_id_listings_by_listing_id_request.rb +379 -0
  46. data/lib/seatschart/models/patch_api_events_by_event_id_request.rb +16 -6
  47. data/lib/seatschart/models/patch_api_listing_types_by_key_request.rb +376 -0
  48. data/lib/seatschart/models/patch_api_seasons_by_season_id_partial_seasons_by_partial_season_id_request.rb +268 -0
  49. data/lib/seatschart/models/patch_api_seasons_by_season_id_request.rb +41 -5
  50. data/lib/seatschart/models/patch_api_webhooks_by_id_request.rb +1 -1
  51. data/lib/seatschart/models/patch_api_workspace_chart_validation_request_severities.rb +25 -4
  52. data/lib/seatschart/models/patch_api_workspace_defaults_request.rb +224 -0
  53. data/lib/seatschart/models/patch_api_workspace_defaults_request_renderer.rb +249 -0
  54. data/lib/seatschart/models/patch_api_workspace_settings_request.rb +18 -7
  55. data/lib/seatschart/models/post_api_charts_by_chart_id_actions_copy_to_workspace_request.rb +39 -1
  56. data/lib/seatschart/models/post_api_charts_by_chart_id_actions_validate_request.rb +1 -0
  57. data/lib/seatschart/models/post_api_charts_by_chart_id_actions_validate_request_seats_inner_accessibility.rb +6 -6
  58. data/lib/seatschart/models/post_api_charts_by_chart_id_map_publish422_response_issues_inner.rb +64 -6
  59. data/lib/seatschart/models/post_api_charts_by_chart_id_map_publish_request.rb +1 -1
  60. data/lib/seatschart/models/post_api_embed_tokens_request.rb +18 -15
  61. data/lib/seatschart/models/post_api_embed_tokens_request_safe_mode_options.rb +226 -0
  62. data/lib/seatschart/models/post_api_events_actions_change_object_status_request_status_changes_inner.rb +0 -11
  63. data/lib/seatschart/models/post_api_events_actions_edit_for_sale_config_request.rb +251 -0
  64. data/lib/seatschart/models/post_api_events_actions_edit_for_sale_config_request_events_inner.rb +322 -0
  65. data/lib/seatschart/models/post_api_events_bulk_request_events_inner.rb +42 -1
  66. data/lib/seatschart/models/post_api_events_by_event_id_actions_change_object_status_request.rb +13 -26
  67. data/lib/seatschart/models/post_api_events_by_event_id_actions_change_object_status_request_listing.rb +392 -0
  68. data/lib/seatschart/models/post_api_events_by_event_id_actions_edit_for_sale_config_request.rb +277 -0
  69. data/lib/seatschart/models/post_api_events_by_event_id_actions_edit_for_sale_config_request_for_sale_inner.rb +319 -0
  70. data/lib/seatschart/models/post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request.rb +215 -0
  71. data/lib/seatschart/models/post_api_events_by_event_id_listings_by_listing_id_actions_mark_sold_request.rb +243 -0
  72. data/lib/seatschart/models/post_api_events_by_event_id_listings_request.rb +435 -0
  73. data/lib/seatschart/models/post_api_events_by_event_id_listings_request_objects_inner.rb +104 -0
  74. data/lib/seatschart/models/post_api_events_by_event_id_listings_request_objects_inner_any_of.rb +325 -0
  75. data/lib/seatschart/models/post_api_events_by_event_id_map_publish_request.rb +215 -0
  76. data/lib/seatschart/models/post_api_events_request.rb +42 -1
  77. data/lib/seatschart/models/{patch_api_events_by_event_id_request_categories_inner.rb → post_api_events_request_categories_inner.rb} +3 -3
  78. data/lib/seatschart/models/post_api_extract_seats200_response.rb +459 -0
  79. data/lib/seatschart/models/post_api_extract_seats200_response_seats_inner.rb +323 -0
  80. data/lib/seatschart/models/post_api_extract_seats200_response_suggested_inner.rb +320 -0
  81. data/lib/seatschart/models/post_api_extract_seats_request.rb +124 -4
  82. data/lib/seatschart/models/post_api_extract_seats_request_examples.rb +105 -0
  83. data/lib/seatschart/models/post_api_extract_seats_request_examples_any_of_inner.rb +293 -0
  84. data/lib/seatschart/models/post_api_extract_seats_request_negatives.rb +105 -0
  85. data/lib/seatschart/models/post_api_extract_seats_request_region.rb +105 -0
  86. data/lib/seatschart/models/post_api_extract_seats_request_region_any_of.rb +363 -0
  87. data/lib/seatschart/models/post_api_ga_confirm_request.rb +0 -44
  88. data/lib/seatschart/models/post_api_ga_release_request.rb +0 -11
  89. data/lib/seatschart/models/post_api_ga_reserve_request.rb +0 -33
  90. data/lib/seatschart/models/post_api_hold_tokens_request.rb +0 -22
  91. data/lib/seatschart/models/post_api_listing_types_request.rb +439 -0
  92. data/lib/seatschart/models/post_api_quotes_request.rb +0 -22
  93. data/lib/seatschart/models/post_api_sandboxes201_response.rb +245 -0
  94. data/lib/seatschart/models/post_api_sandboxes201_response_admin_key.rb +286 -0
  95. data/lib/seatschart/models/post_api_sandboxes201_response_copied.rb +313 -0
  96. data/lib/seatschart/models/post_api_sandboxes201_response_copied_charts_inner.rb +281 -0
  97. data/lib/seatschart/models/post_api_sandboxes201_response_copied_events_inner.rb +281 -0
  98. data/lib/seatschart/models/post_api_sandboxes201_response_copied_events_with_own_map_inner.rb +265 -0
  99. data/lib/seatschart/models/post_api_sandboxes201_response_copied_key_conflicts_inner.rb +287 -0
  100. data/lib/seatschart/models/post_api_sandboxes201_response_copied_seasons_inner.rb +312 -0
  101. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_copy_from_production200_response.rb +313 -0
  102. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_copy_from_production_request.rb +255 -0
  103. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_join200_response.rb +271 -0
  104. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_reset200_response.rb +268 -0
  105. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_reset_request.rb +225 -0
  106. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_admin_key201_response.rb +253 -0
  107. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_admin_key201_response_api_key.rb +286 -0
  108. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_admin_key_request.rb +252 -0
  109. data/lib/seatschart/models/post_api_sandboxes_request.rb +319 -0
  110. data/lib/seatschart/models/post_api_seasons_by_season_id_partial_seasons_request.rb +27 -1
  111. data/lib/seatschart/models/post_api_seasons_request.rb +40 -4
  112. data/lib/seatschart/models/post_api_seats_best_available_request.rb +0 -11
  113. data/lib/seatschart/models/post_api_seats_confirm_request.rb +5 -49
  114. data/lib/seatschart/models/post_api_seats_release_request.rb +5 -16
  115. data/lib/seatschart/models/post_api_seats_reserve_request.rb +5 -27
  116. data/lib/seatschart/models/post_api_viewer_tokens_request.rb +0 -11
  117. data/lib/seatschart/models/post_api_webhooks_request.rb +1 -1
  118. data/lib/seatschart/models/post_api_workspaces_request.rb +1 -1
  119. data/lib/seatschart/models/put_api_charts_by_chart_id_map_draft_request.rb +349 -0
  120. data/lib/seatschart/models/put_api_workspace_buyer_extra_data_request.rb +260 -0
  121. data/lib/seatschart/models/put_internal_status_notices_request.rb +242 -0
  122. data/lib/seatschart/models/put_internal_status_notices_request_notices_inner.rb +445 -0
  123. data/lib/seatschart/retry.rb +106 -7
  124. data/lib/seatschart/version.rb +1 -1
  125. data/lib/seatschart.rb +69 -2
  126. metadata +71 -4
  127. data/lib/seatschart/api/default_api.rb +0 -763
@@ -479,6 +479,139 @@ module SeatsChart
479
479
  return data, status_code, headers
480
480
  end
481
481
 
482
+ # Objects of my inventory channels (renderer channel-only selection)
483
+ # Every seat id and GA area id in the channels of the keys sent in `x-channel-key` (comma-separated for several). The renderer reads it once when `objectWithoutChannelSelectable: false` (seats.io `channels` without `NO_CHANNEL`) to keep public objects unselectable. Only channels whose key you send are answered, so buyer tokens can ask too; without a valid key both lists are empty. Two indexed reads; not cached (`private, no-store`).
484
+ # @param event_id [String]
485
+ # @param [Hash] opts the optional parameters
486
+ # @return [nil]
487
+ def get_api_events_by_event_id_channel_objects(event_id, opts = {})
488
+ get_api_events_by_event_id_channel_objects_with_http_info(event_id, opts)
489
+ nil
490
+ end
491
+
492
+ # Objects of my inventory channels (renderer channel-only selection)
493
+ # Every seat id and GA area id in the channels of the keys sent in `x-channel-key` (comma-separated for several). The renderer reads it once when `objectWithoutChannelSelectable: false` (seats.io `channels` without `NO_CHANNEL`) to keep public objects unselectable. Only channels whose key you send are answered, so buyer tokens can ask too; without a valid key both lists are empty. Two indexed reads; not cached (`private, no-store`).
494
+ # @param event_id [String]
495
+ # @param [Hash] opts the optional parameters
496
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
497
+ def get_api_events_by_event_id_channel_objects_with_http_info(event_id, opts = {})
498
+ if @api_client.config.debugging
499
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_channel_objects ...'
500
+ end
501
+ # verify the required parameter 'event_id' is set
502
+ if @api_client.config.client_side_validation && event_id.nil?
503
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_channel_objects"
504
+ end
505
+ # resource path
506
+ local_var_path = '/api/events/{eventId}/channel-objects'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
507
+
508
+ # query parameters
509
+ query_params = opts[:query_params] || {}
510
+
511
+ # header parameters
512
+ header_params = opts[:header_params] || {}
513
+
514
+ # form parameters
515
+ form_params = opts[:form_params] || {}
516
+
517
+ # http body (model)
518
+ post_body = opts[:debug_body]
519
+
520
+ # return_type
521
+ return_type = opts[:debug_return_type]
522
+
523
+ # auth_names
524
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
525
+
526
+ new_options = opts.merge(
527
+ :operation => :"EventsApi.get_api_events_by_event_id_channel_objects",
528
+ :header_params => header_params,
529
+ :query_params => query_params,
530
+ :form_params => form_params,
531
+ :body => post_body,
532
+ :auth_names => auth_names,
533
+ :return_type => return_type
534
+ )
535
+
536
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
537
+ if @api_client.config.debugging
538
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_channel_objects\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
539
+ end
540
+ return data, status_code, headers
541
+ end
542
+
543
+ # Published geometry (content-addressed)
544
+ # Immutable map geometry addressed by the SHA-256 hash from the manifest. Brotli or gzip when `Accept-Encoding` allows (`Content-Encoding` set), else identity JSON. Strong ETag per hash and coding; `If-None-Match` returns 304. `Cache-Control: private, max-age=31536000, immutable`; 404 `not_found` (never cached) when the hash is not a published geometry of this event. Authenticated on every request.
545
+ # @param event_id [String]
546
+ # @param hash [String]
547
+ # @param [Hash] opts the optional parameters
548
+ # @return [nil]
549
+ def get_api_events_by_event_id_geometry_by_hash(event_id, hash, opts = {})
550
+ get_api_events_by_event_id_geometry_by_hash_with_http_info(event_id, hash, opts)
551
+ nil
552
+ end
553
+
554
+ # Published geometry (content-addressed)
555
+ # Immutable map geometry addressed by the SHA-256 hash from the manifest. Brotli or gzip when &#x60;Accept-Encoding&#x60; allows (&#x60;Content-Encoding&#x60; set), else identity JSON. Strong ETag per hash and coding; &#x60;If-None-Match&#x60; returns 304. &#x60;Cache-Control: private, max-age&#x3D;31536000, immutable&#x60;; 404 &#x60;not_found&#x60; (never cached) when the hash is not a published geometry of this event. Authenticated on every request.
556
+ # @param event_id [String]
557
+ # @param hash [String]
558
+ # @param [Hash] opts the optional parameters
559
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
560
+ def get_api_events_by_event_id_geometry_by_hash_with_http_info(event_id, hash, opts = {})
561
+ if @api_client.config.debugging
562
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_geometry_by_hash ...'
563
+ end
564
+ # verify the required parameter 'event_id' is set
565
+ if @api_client.config.client_side_validation && event_id.nil?
566
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_geometry_by_hash"
567
+ end
568
+ # verify the required parameter 'hash' is set
569
+ if @api_client.config.client_side_validation && hash.nil?
570
+ fail ArgumentError, "Missing the required parameter 'hash' when calling EventsApi.get_api_events_by_event_id_geometry_by_hash"
571
+ end
572
+ pattern = Regexp.new(/^[a-f0-9]{64}$/)
573
+ if @api_client.config.client_side_validation && hash !~ pattern
574
+ fail ArgumentError, "invalid value for 'hash' when calling EventsApi.get_api_events_by_event_id_geometry_by_hash, must conform to the pattern #{pattern}."
575
+ end
576
+
577
+ # resource path
578
+ local_var_path = '/api/events/{eventId}/geometry/{hash}'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s)).sub('{' + 'hash' + '}', CGI.escape(hash.to_s))
579
+
580
+ # query parameters
581
+ query_params = opts[:query_params] || {}
582
+
583
+ # header parameters
584
+ header_params = opts[:header_params] || {}
585
+
586
+ # form parameters
587
+ form_params = opts[:form_params] || {}
588
+
589
+ # http body (model)
590
+ post_body = opts[:debug_body]
591
+
592
+ # return_type
593
+ return_type = opts[:debug_return_type]
594
+
595
+ # auth_names
596
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
597
+
598
+ new_options = opts.merge(
599
+ :operation => :"EventsApi.get_api_events_by_event_id_geometry_by_hash",
600
+ :header_params => header_params,
601
+ :query_params => query_params,
602
+ :form_params => form_params,
603
+ :body => post_body,
604
+ :auth_names => auth_names,
605
+ :return_type => return_type
606
+ )
607
+
608
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
609
+ if @api_client.config.debugging
610
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_geometry_by_hash\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
611
+ end
612
+ return data, status_code, headers
613
+ end
614
+
482
615
  # List inventory channels (ops)
483
616
  # Returns id, name, color, and keyPrefix — never the full channelKey secret. Not the same as GET /channels (salesChannel order limits).
484
617
  # @param event_id [String]
@@ -548,6 +681,67 @@ module SeatsChart
548
681
  return data, status_code, headers
549
682
  end
550
683
 
684
+ # Published geometry manifest
685
+ # Manifest of the published map (`mapRevision`, `geometryHash` and `geometryUrl` of the geometry served by `GET /api/events/{eventId}/geometry/{hash}`, `seatCount`, `gaCount`) plus the event `currency`, the static `sales` description when the event has sales rules or an external price source, and `testWorkspace: true` in test workspaces. ETag covers the revision, the currency and the sales rules; `If-None-Match` returns 304. 404 `not_found` for an unknown event, 409 `geometry_not_published` before the first publish. `Cache-Control: private, no-cache`.
686
+ # @param event_id [String]
687
+ # @param [Hash] opts the optional parameters
688
+ # @return [nil]
689
+ def get_api_events_by_event_id_manifest(event_id, opts = {})
690
+ get_api_events_by_event_id_manifest_with_http_info(event_id, opts)
691
+ nil
692
+ end
693
+
694
+ # Published geometry manifest
695
+ # Manifest of the published map (&#x60;mapRevision&#x60;, &#x60;geometryHash&#x60; and &#x60;geometryUrl&#x60; of the geometry served by &#x60;GET /api/events/{eventId}/geometry/{hash}&#x60;, &#x60;seatCount&#x60;, &#x60;gaCount&#x60;) plus the event &#x60;currency&#x60;, the static &#x60;sales&#x60; description when the event has sales rules or an external price source, and &#x60;testWorkspace: true&#x60; in test workspaces. ETag covers the revision, the currency and the sales rules; &#x60;If-None-Match&#x60; returns 304. 404 &#x60;not_found&#x60; for an unknown event, 409 &#x60;geometry_not_published&#x60; before the first publish. &#x60;Cache-Control: private, no-cache&#x60;.
696
+ # @param event_id [String]
697
+ # @param [Hash] opts the optional parameters
698
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
699
+ def get_api_events_by_event_id_manifest_with_http_info(event_id, opts = {})
700
+ if @api_client.config.debugging
701
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_manifest ...'
702
+ end
703
+ # verify the required parameter 'event_id' is set
704
+ if @api_client.config.client_side_validation && event_id.nil?
705
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_manifest"
706
+ end
707
+ # resource path
708
+ local_var_path = '/api/events/{eventId}/manifest'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
709
+
710
+ # query parameters
711
+ query_params = opts[:query_params] || {}
712
+
713
+ # header parameters
714
+ header_params = opts[:header_params] || {}
715
+
716
+ # form parameters
717
+ form_params = opts[:form_params] || {}
718
+
719
+ # http body (model)
720
+ post_body = opts[:debug_body]
721
+
722
+ # return_type
723
+ return_type = opts[:debug_return_type]
724
+
725
+ # auth_names
726
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
727
+
728
+ new_options = opts.merge(
729
+ :operation => :"EventsApi.get_api_events_by_event_id_manifest",
730
+ :header_params => header_params,
731
+ :query_params => query_params,
732
+ :form_params => form_params,
733
+ :body => post_body,
734
+ :auth_names => auth_names,
735
+ :return_type => return_type
736
+ )
737
+
738
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
739
+ if @api_client.config.debugging
740
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_manifest\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
741
+ end
742
+ return data, status_code, headers
743
+ end
744
+
551
745
  # Load map draft for designer
552
746
  # Returns unpublished draft when present; otherwise bootstraps from the published map. Does not affect the B2C viewer.
553
747
  # @param event_id [String]
@@ -866,7 +1060,7 @@ module SeatsChart
866
1060
  end
867
1061
 
868
1062
  # Retrieve one object (seat or GA area)
869
- # Looks the object up by id, then by exact label (409 when the label is not unique). Returns label, category, price (cents), durable `dbStatus`, `visualStatus` (Postgres status merged with live Redis hold presence), `ticketBuyerId` of the current state, `forSale`, the object status overlay (`objectStatus`, `orderId`, `extraData`) and `section` when the seat lies inside a named section guide, and `zone` / `zoneId` (layout zone: explicit assignment, then the section zone, then the zone outline; null outside every zone), and `entrance` (the most specific of seat, row, table and section; GA areas use their own). Seats add `rowLabel`, `displayedLabel`, `accessibility` (stored form: the four original flags as booleans, newer flags in the `amenities` bitmask, `seatType`), `amenityFlags` (every set flag by name) and `seatType` (default chair). GA areas add capacity, soldCount, heldCount and availableCount. `channelKeyId` is returned to partner API keys and workspace admins only. Requires content_write.
1063
+ # Looks the object up by id, then by exact label (409 when the label is not unique). Returns label, category, price (cents), durable `dbStatus`, `visualStatus` (Postgres status merged with live Redis hold presence), `ticketBuyerId` of the current state, `forSale`, the object status overlay (`objectStatus`, `orderId`, `extraData`) and `section` when the seat lies inside a named section guide, and `zone` / `zoneId` (layout zone: explicit assignment, then the section zone, then the zone outline; null outside every zone), and `entrance` (the most specific of seat, row, table and section; GA areas use their own). Seats add `rowLabel`, `displayedLabel`, `accessibility` (stored form: the four original flags as booleans, newer flags in the `amenities` bitmask, `seatType`), `amenityFlags` (every set flag by name) and `seatType` (default chair). GA areas add capacity, soldCount, heldCount and availableCount; areas sold as a whole add the seats.io `areaType` (`fixedOccupancy` / `variableOccupancy`), `bookAsAWhole: true` and, for variable occupancy, `minOccupancy` / `maxOccupancy` (their `availableCount` is the capacity or 0: never part of the area). `channelKeyId` is returned to partner API keys and workspace admins only. Requires content_write.
870
1064
  # @param event_id [String]
871
1065
  # @param object_id [String] Seat or GA area id (UUID), or its exact label / GA name.
872
1066
  # @param [Hash] opts the optional parameters
@@ -877,7 +1071,7 @@ module SeatsChart
877
1071
  end
878
1072
 
879
1073
  # Retrieve one object (seat or GA area)
880
- # Looks the object up by id, then by exact label (409 when the label is not unique). Returns label, category, price (cents), durable &#x60;dbStatus&#x60;, &#x60;visualStatus&#x60; (Postgres status merged with live Redis hold presence), &#x60;ticketBuyerId&#x60; of the current state, &#x60;forSale&#x60;, the object status overlay (&#x60;objectStatus&#x60;, &#x60;orderId&#x60;, &#x60;extraData&#x60;) and &#x60;section&#x60; when the seat lies inside a named section guide, and &#x60;zone&#x60; / &#x60;zoneId&#x60; (layout zone: explicit assignment, then the section zone, then the zone outline; null outside every zone), and &#x60;entrance&#x60; (the most specific of seat, row, table and section; GA areas use their own). Seats add &#x60;rowLabel&#x60;, &#x60;displayedLabel&#x60;, &#x60;accessibility&#x60; (stored form: the four original flags as booleans, newer flags in the &#x60;amenities&#x60; bitmask, &#x60;seatType&#x60;), &#x60;amenityFlags&#x60; (every set flag by name) and &#x60;seatType&#x60; (default chair). GA areas add capacity, soldCount, heldCount and availableCount. &#x60;channelKeyId&#x60; is returned to partner API keys and workspace admins only. Requires content_write.
1074
+ # Looks the object up by id, then by exact label (409 when the label is not unique). Returns label, category, price (cents), durable &#x60;dbStatus&#x60;, &#x60;visualStatus&#x60; (Postgres status merged with live Redis hold presence), &#x60;ticketBuyerId&#x60; of the current state, &#x60;forSale&#x60;, the object status overlay (&#x60;objectStatus&#x60;, &#x60;orderId&#x60;, &#x60;extraData&#x60;) and &#x60;section&#x60; when the seat lies inside a named section guide, and &#x60;zone&#x60; / &#x60;zoneId&#x60; (layout zone: explicit assignment, then the section zone, then the zone outline; null outside every zone), and &#x60;entrance&#x60; (the most specific of seat, row, table and section; GA areas use their own). Seats add &#x60;rowLabel&#x60;, &#x60;displayedLabel&#x60;, &#x60;accessibility&#x60; (stored form: the four original flags as booleans, newer flags in the &#x60;amenities&#x60; bitmask, &#x60;seatType&#x60;), &#x60;amenityFlags&#x60; (every set flag by name) and &#x60;seatType&#x60; (default chair). GA areas add capacity, soldCount, heldCount and availableCount; areas sold as a whole add the seats.io &#x60;areaType&#x60; (&#x60;fixedOccupancy&#x60; / &#x60;variableOccupancy&#x60;), &#x60;bookAsAWhole: true&#x60; and, for variable occupancy, &#x60;minOccupancy&#x60; / &#x60;maxOccupancy&#x60; (their &#x60;availableCount&#x60; is the capacity or 0: never part of the area). &#x60;channelKeyId&#x60; is returned to partner API keys and workspace admins only. Requires content_write.
881
1075
  # @param event_id [String]
882
1076
  # @param object_id [String] Seat or GA area id (UUID), or its exact label / GA name.
883
1077
  # @param [Hash] opts the optional parameters
@@ -1163,7 +1357,7 @@ module SeatsChart
1163
1357
  end
1164
1358
 
1165
1359
  # Detailed report grouped by availability (available / not_available) (CSV)
1166
- # Buckets `available` and `not_available`; each row carries `availabilityReason`. Optional `?availability=`. GA areas with at least one free place are `available`. Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1360
+ # Buckets `available` and `not_available`; each row carries `availabilityReason`. Optional `?availability=`. GA areas with at least one free place are `available`. Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add `areaType` (`fixedOccupancy` | `variableOccupancy`), `bookAsAWhole: true` and, for variable occupancy, `minOccupancy` / `maxOccupancy`; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1167
1361
  # @param event_id [String]
1168
1362
  # @param [Hash] opts the optional parameters
1169
1363
  # @option opts [String] :availability Only this availability bucket.
@@ -1175,7 +1369,7 @@ module SeatsChart
1175
1369
  end
1176
1370
 
1177
1371
  # Detailed report grouped by availability (available / not_available) (CSV)
1178
- # Buckets &#x60;available&#x60; and &#x60;not_available&#x60;; each row carries &#x60;availabilityReason&#x60;. Optional &#x60;?availability&#x3D;&#x60;. GA areas with at least one free place are &#x60;available&#x60;. Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1372
+ # Buckets &#x60;available&#x60; and &#x60;not_available&#x60;; each row carries &#x60;availabilityReason&#x60;. Optional &#x60;?availability&#x3D;&#x60;. GA areas with at least one free place are &#x60;available&#x60;. Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add &#x60;areaType&#x60; (&#x60;fixedOccupancy&#x60; | &#x60;variableOccupancy&#x60;), &#x60;bookAsAWhole: true&#x60; and, for variable occupancy, &#x60;minOccupancy&#x60; / &#x60;maxOccupancy&#x60;; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1179
1373
  # @param event_id [String]
1180
1374
  # @param [Hash] opts the optional parameters
1181
1375
  # @option opts [String] :availability Only this availability bucket.
@@ -1247,7 +1441,7 @@ module SeatsChart
1247
1441
  end
1248
1442
 
1249
1443
  # Detailed report grouped by availability (available / not_available)
1250
- # Buckets `available` and `not_available`; each row carries `availabilityReason`. Optional `?availability=`. GA areas with at least one free place are `available`. Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1444
+ # Buckets `available` and `not_available`; each row carries `availabilityReason`. Optional `?availability=`. GA areas with at least one free place are `available`. Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add `areaType` (`fixedOccupancy` | `variableOccupancy`), `bookAsAWhole: true` and, for variable occupancy, `minOccupancy` / `maxOccupancy`; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1251
1445
  # @param event_id [String]
1252
1446
  # @param [Hash] opts the optional parameters
1253
1447
  # @option opts [String] :availability Only this availability bucket.
@@ -1259,7 +1453,7 @@ module SeatsChart
1259
1453
  end
1260
1454
 
1261
1455
  # Detailed report grouped by availability (available / not_available)
1262
- # Buckets &#x60;available&#x60; and &#x60;not_available&#x60;; each row carries &#x60;availabilityReason&#x60;. Optional &#x60;?availability&#x3D;&#x60;. GA areas with at least one free place are &#x60;available&#x60;. Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1456
+ # Buckets &#x60;available&#x60; and &#x60;not_available&#x60;; each row carries &#x60;availabilityReason&#x60;. Optional &#x60;?availability&#x3D;&#x60;. GA areas with at least one free place are &#x60;available&#x60;. Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add &#x60;areaType&#x60; (&#x60;fixedOccupancy&#x60; | &#x60;variableOccupancy&#x60;), &#x60;bookAsAWhole: true&#x60; and, for variable occupancy, &#x60;minOccupancy&#x60; / &#x60;maxOccupancy&#x60;; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1263
1457
  # @param event_id [String]
1264
1458
  # @param [Hash] opts the optional parameters
1265
1459
  # @option opts [String] :availability Only this availability bucket.
@@ -1331,10 +1525,11 @@ module SeatsChart
1331
1525
  end
1332
1526
 
1333
1527
  # Detailed report grouped by availability reason (CSV)
1334
- # Buckets available, resale, booked, held, custom_status, not_for_sale. GA areas use their primary reason (available when any place is free). Optional `?reason=`. Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1528
+ # Buckets available, resale, booked, held, custom_status, not_for_sale. GA areas use their primary reason (available when any place is free). Optional `?reason=` (or `?availabilityReason=`). Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add `areaType` (`fixedOccupancy` | `variableOccupancy`), `bookAsAWhole: true` and, for variable occupancy, `minOccupancy` / `maxOccupancy`; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1335
1529
  # @param event_id [String]
1336
1530
  # @param [Hash] opts the optional parameters
1337
1531
  # @option opts [String] :reason Only this reason bucket.
1532
+ # @option opts [String] :availability_reason Same as &#x60;reason&#x60;.
1338
1533
  # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
1339
1534
  # @return [nil]
1340
1535
  def get_api_events_by_event_id_reports_by_availability_reason_csv(event_id, opts = {})
@@ -1343,10 +1538,11 @@ module SeatsChart
1343
1538
  end
1344
1539
 
1345
1540
  # Detailed report grouped by availability reason (CSV)
1346
- # Buckets available, resale, booked, held, custom_status, not_for_sale. GA areas use their primary reason (available when any place is free). Optional &#x60;?reason&#x3D;&#x60;. Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1541
+ # Buckets available, resale, booked, held, custom_status, not_for_sale. GA areas use their primary reason (available when any place is free). Optional &#x60;?reason&#x3D;&#x60; (or &#x60;?availabilityReason&#x3D;&#x60;). Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add &#x60;areaType&#x60; (&#x60;fixedOccupancy&#x60; | &#x60;variableOccupancy&#x60;), &#x60;bookAsAWhole: true&#x60; and, for variable occupancy, &#x60;minOccupancy&#x60; / &#x60;maxOccupancy&#x60;; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1347
1542
  # @param event_id [String]
1348
1543
  # @param [Hash] opts the optional parameters
1349
1544
  # @option opts [String] :reason Only this reason bucket.
1545
+ # @option opts [String] :availability_reason Same as &#x60;reason&#x60;.
1350
1546
  # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
1351
1547
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
1352
1548
  def get_api_events_by_event_id_reports_by_availability_reason_csv_with_http_info(event_id, opts = {})
@@ -1370,6 +1566,14 @@ module SeatsChart
1370
1566
  fail ArgumentError, 'invalid value for "opts[:"reason"]" when calling EventsApi.get_api_events_by_event_id_reports_by_availability_reason_csv, the character length must be great than or equal to 1.'
1371
1567
  end
1372
1568
 
1569
+ if @api_client.config.client_side_validation && !opts[:'availability_reason'].nil? && opts[:'availability_reason'].to_s.length > 128
1570
+ fail ArgumentError, 'invalid value for "opts[:"availability_reason"]" when calling EventsApi.get_api_events_by_event_id_reports_by_availability_reason_csv, the character length must be smaller than or equal to 128.'
1571
+ end
1572
+
1573
+ if @api_client.config.client_side_validation && !opts[:'availability_reason'].nil? && opts[:'availability_reason'].to_s.length < 1
1574
+ fail ArgumentError, 'invalid value for "opts[:"availability_reason"]" when calling EventsApi.get_api_events_by_event_id_reports_by_availability_reason_csv, the character length must be great than or equal to 1.'
1575
+ end
1576
+
1373
1577
  allowable_values = ["true", "false"]
1374
1578
  if @api_client.config.client_side_validation && opts[:'live_holds'] && !allowable_values.include?(opts[:'live_holds'])
1375
1579
  fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
@@ -1380,6 +1584,7 @@ module SeatsChart
1380
1584
  # query parameters
1381
1585
  query_params = opts[:query_params] || {}
1382
1586
  query_params[:'reason'] = opts[:'reason'] if !opts[:'reason'].nil?
1587
+ query_params[:'availabilityReason'] = opts[:'availability_reason'] if !opts[:'availability_reason'].nil?
1383
1588
  query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
1384
1589
 
1385
1590
  # header parameters
@@ -1415,10 +1620,11 @@ module SeatsChart
1415
1620
  end
1416
1621
 
1417
1622
  # Detailed report grouped by availability reason
1418
- # Buckets available, resale, booked, held, custom_status, not_for_sale. GA areas use their primary reason (available when any place is free). Optional `?reason=`. Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1623
+ # Buckets available, resale, booked, held, custom_status, not_for_sale. GA areas use their primary reason (available when any place is free). Optional `?reason=` (or `?availabilityReason=`). Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add `areaType` (`fixedOccupancy` | `variableOccupancy`), `bookAsAWhole: true` and, for variable occupancy, `minOccupancy` / `maxOccupancy`; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1419
1624
  # @param event_id [String]
1420
1625
  # @param [Hash] opts the optional parameters
1421
1626
  # @option opts [String] :reason Only this reason bucket.
1627
+ # @option opts [String] :availability_reason Same as &#x60;reason&#x60;.
1422
1628
  # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
1423
1629
  # @return [nil]
1424
1630
  def get_api_events_by_event_id_reports_by_availability_reason_json(event_id, opts = {})
@@ -1427,10 +1633,11 @@ module SeatsChart
1427
1633
  end
1428
1634
 
1429
1635
  # Detailed report grouped by availability reason
1430
- # Buckets available, resale, booked, held, custom_status, not_for_sale. GA areas use their primary reason (available when any place is free). Optional &#x60;?reason&#x3D;&#x60;. Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1636
+ # Buckets available, resale, booked, held, custom_status, not_for_sale. GA areas use their primary reason (available when any place is free). Optional &#x60;?reason&#x3D;&#x60; (or &#x60;?availabilityReason&#x3D;&#x60;). Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add &#x60;areaType&#x60; (&#x60;fixedOccupancy&#x60; | &#x60;variableOccupancy&#x60;), &#x60;bookAsAWhole: true&#x60; and, for variable occupancy, &#x60;minOccupancy&#x60; / &#x60;maxOccupancy&#x60;; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1431
1637
  # @param event_id [String]
1432
1638
  # @param [Hash] opts the optional parameters
1433
1639
  # @option opts [String] :reason Only this reason bucket.
1640
+ # @option opts [String] :availability_reason Same as &#x60;reason&#x60;.
1434
1641
  # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
1435
1642
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
1436
1643
  def get_api_events_by_event_id_reports_by_availability_reason_json_with_http_info(event_id, opts = {})
@@ -1454,6 +1661,14 @@ module SeatsChart
1454
1661
  fail ArgumentError, 'invalid value for "opts[:"reason"]" when calling EventsApi.get_api_events_by_event_id_reports_by_availability_reason_json, the character length must be great than or equal to 1.'
1455
1662
  end
1456
1663
 
1664
+ if @api_client.config.client_side_validation && !opts[:'availability_reason'].nil? && opts[:'availability_reason'].to_s.length > 128
1665
+ fail ArgumentError, 'invalid value for "opts[:"availability_reason"]" when calling EventsApi.get_api_events_by_event_id_reports_by_availability_reason_json, the character length must be smaller than or equal to 128.'
1666
+ end
1667
+
1668
+ if @api_client.config.client_side_validation && !opts[:'availability_reason'].nil? && opts[:'availability_reason'].to_s.length < 1
1669
+ fail ArgumentError, 'invalid value for "opts[:"availability_reason"]" when calling EventsApi.get_api_events_by_event_id_reports_by_availability_reason_json, the character length must be great than or equal to 1.'
1670
+ end
1671
+
1457
1672
  allowable_values = ["true", "false"]
1458
1673
  if @api_client.config.client_side_validation && opts[:'live_holds'] && !allowable_values.include?(opts[:'live_holds'])
1459
1674
  fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
@@ -1464,6 +1679,7 @@ module SeatsChart
1464
1679
  # query parameters
1465
1680
  query_params = opts[:query_params] || {}
1466
1681
  query_params[:'reason'] = opts[:'reason'] if !opts[:'reason'].nil?
1682
+ query_params[:'availabilityReason'] = opts[:'availability_reason'] if !opts[:'availability_reason'].nil?
1467
1683
  query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
1468
1684
 
1469
1685
  # header parameters
@@ -1566,7 +1782,7 @@ module SeatsChart
1566
1782
  end
1567
1783
 
1568
1784
  # Detailed report grouped by category key (CSV)
1569
- # Seats.io byCategoryKey: buckets are the category keys (chart category id, or the event category key of an event-only category); a category value no category defines is its own key; objects without a category → NO_CATEGORY. Rows carry `categoryKey` next to `category` (the label). Optional `?categoryKey=`. Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1785
+ # Seats.io byCategoryKey: buckets are the category keys (chart category id, or the event category key of an event-only category); a category value no category defines is its own key; objects without a category → NO_CATEGORY. Rows carry `categoryKey` next to `category` (the label). Optional `?categoryKey=`. Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add `areaType` (`fixedOccupancy` | `variableOccupancy`), `bookAsAWhole: true` and, for variable occupancy, `minOccupancy` / `maxOccupancy`; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1570
1786
  # @param event_id [String]
1571
1787
  # @param [Hash] opts the optional parameters
1572
1788
  # @option opts [String] :category_key Only this categoryKey bucket.
@@ -1578,7 +1794,7 @@ module SeatsChart
1578
1794
  end
1579
1795
 
1580
1796
  # Detailed report grouped by category key (CSV)
1581
- # Seats.io byCategoryKey: buckets are the category keys (chart category id, or the event category key of an event-only category); a category value no category defines is its own key; objects without a category → NO_CATEGORY. Rows carry &#x60;categoryKey&#x60; next to &#x60;category&#x60; (the label). Optional &#x60;?categoryKey&#x3D;&#x60;. Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1797
+ # Seats.io byCategoryKey: buckets are the category keys (chart category id, or the event category key of an event-only category); a category value no category defines is its own key; objects without a category → NO_CATEGORY. Rows carry &#x60;categoryKey&#x60; next to &#x60;category&#x60; (the label). Optional &#x60;?categoryKey&#x3D;&#x60;. Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add &#x60;areaType&#x60; (&#x60;fixedOccupancy&#x60; | &#x60;variableOccupancy&#x60;), &#x60;bookAsAWhole: true&#x60; and, for variable occupancy, &#x60;minOccupancy&#x60; / &#x60;maxOccupancy&#x60;; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1582
1798
  # @param event_id [String]
1583
1799
  # @param [Hash] opts the optional parameters
1584
1800
  # @option opts [String] :category_key Only this categoryKey bucket.
@@ -1650,7 +1866,7 @@ module SeatsChart
1650
1866
  end
1651
1867
 
1652
1868
  # Detailed report grouped by category key
1653
- # Seats.io byCategoryKey: buckets are the category keys (chart category id, or the event category key of an event-only category); a category value no category defines is its own key; objects without a category → NO_CATEGORY. Rows carry `categoryKey` next to `category` (the label). Optional `?categoryKey=`. Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1869
+ # Seats.io byCategoryKey: buckets are the category keys (chart category id, or the event category key of an event-only category); a category value no category defines is its own key; objects without a category → NO_CATEGORY. Rows carry `categoryKey` next to `category` (the label). Optional `?categoryKey=`. Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add `areaType` (`fixedOccupancy` | `variableOccupancy`), `bookAsAWhole: true` and, for variable occupancy, `minOccupancy` / `maxOccupancy`; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1654
1870
  # @param event_id [String]
1655
1871
  # @param [Hash] opts the optional parameters
1656
1872
  # @option opts [String] :category_key Only this categoryKey bucket.
@@ -1662,7 +1878,7 @@ module SeatsChart
1662
1878
  end
1663
1879
 
1664
1880
  # Detailed report grouped by category key
1665
- # Seats.io byCategoryKey: buckets are the category keys (chart category id, or the event category key of an event-only category); a category value no category defines is its own key; objects without a category → NO_CATEGORY. Rows carry &#x60;categoryKey&#x60; next to &#x60;category&#x60; (the label). Optional &#x60;?categoryKey&#x3D;&#x60;. Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1881
+ # Seats.io byCategoryKey: buckets are the category keys (chart category id, or the event category key of an event-only category); a category value no category defines is its own key; objects without a category → NO_CATEGORY. Rows carry &#x60;categoryKey&#x60; next to &#x60;category&#x60; (the label). Optional &#x60;?categoryKey&#x3D;&#x60;. Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add &#x60;areaType&#x60; (&#x60;fixedOccupancy&#x60; | &#x60;variableOccupancy&#x60;), &#x60;bookAsAWhole: true&#x60; and, for variable occupancy, &#x60;minOccupancy&#x60; / &#x60;maxOccupancy&#x60;; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1666
1882
  # @param event_id [String]
1667
1883
  # @param [Hash] opts the optional parameters
1668
1884
  # @option opts [String] :category_key Only this categoryKey bucket.
@@ -1734,10 +1950,11 @@ module SeatsChart
1734
1950
  end
1735
1951
 
1736
1952
  # Detailed report grouped by category label (CSV)
1737
- # Seats.io byCategoryLabel: buckets are the category labels (the objects' `category` value, as in the legacy by-category report); objects without a category → NO_CATEGORY. Optional `?categoryLabel=`. Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1953
+ # Seats.io byCategoryLabel: buckets are the category labels (the objects' `category` value, as in the legacy by-category report); objects without a category → NO_CATEGORY. Optional `?categoryLabel=` (or `?category=`). Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add `areaType` (`fixedOccupancy` | `variableOccupancy`), `bookAsAWhole: true` and, for variable occupancy, `minOccupancy` / `maxOccupancy`; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1738
1954
  # @param event_id [String]
1739
1955
  # @param [Hash] opts the optional parameters
1740
1956
  # @option opts [String] :category_label Only this categoryLabel bucket.
1957
+ # @option opts [String] :category Same as &#x60;categoryLabel&#x60;.
1741
1958
  # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
1742
1959
  # @return [nil]
1743
1960
  def get_api_events_by_event_id_reports_by_category_label_csv(event_id, opts = {})
@@ -1746,10 +1963,11 @@ module SeatsChart
1746
1963
  end
1747
1964
 
1748
1965
  # Detailed report grouped by category label (CSV)
1749
- # Seats.io byCategoryLabel: buckets are the category labels (the objects&#39; &#x60;category&#x60; value, as in the legacy by-category report); objects without a category → NO_CATEGORY. Optional &#x60;?categoryLabel&#x3D;&#x60;. Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1966
+ # Seats.io byCategoryLabel: buckets are the category labels (the objects&#39; &#x60;category&#x60; value, as in the legacy by-category report); objects without a category → NO_CATEGORY. Optional &#x60;?categoryLabel&#x3D;&#x60; (or &#x60;?category&#x3D;&#x60;). Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add &#x60;areaType&#x60; (&#x60;fixedOccupancy&#x60; | &#x60;variableOccupancy&#x60;), &#x60;bookAsAWhole: true&#x60; and, for variable occupancy, &#x60;minOccupancy&#x60; / &#x60;maxOccupancy&#x60;; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1750
1967
  # @param event_id [String]
1751
1968
  # @param [Hash] opts the optional parameters
1752
1969
  # @option opts [String] :category_label Only this categoryLabel bucket.
1970
+ # @option opts [String] :category Same as &#x60;categoryLabel&#x60;.
1753
1971
  # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
1754
1972
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
1755
1973
  def get_api_events_by_event_id_reports_by_category_label_csv_with_http_info(event_id, opts = {})
@@ -1773,6 +1991,14 @@ module SeatsChart
1773
1991
  fail ArgumentError, 'invalid value for "opts[:"category_label"]" when calling EventsApi.get_api_events_by_event_id_reports_by_category_label_csv, the character length must be great than or equal to 1.'
1774
1992
  end
1775
1993
 
1994
+ if @api_client.config.client_side_validation && !opts[:'category'].nil? && opts[:'category'].to_s.length > 128
1995
+ fail ArgumentError, 'invalid value for "opts[:"category"]" when calling EventsApi.get_api_events_by_event_id_reports_by_category_label_csv, the character length must be smaller than or equal to 128.'
1996
+ end
1997
+
1998
+ if @api_client.config.client_side_validation && !opts[:'category'].nil? && opts[:'category'].to_s.length < 1
1999
+ fail ArgumentError, 'invalid value for "opts[:"category"]" when calling EventsApi.get_api_events_by_event_id_reports_by_category_label_csv, the character length must be great than or equal to 1.'
2000
+ end
2001
+
1776
2002
  allowable_values = ["true", "false"]
1777
2003
  if @api_client.config.client_side_validation && opts[:'live_holds'] && !allowable_values.include?(opts[:'live_holds'])
1778
2004
  fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
@@ -1783,6 +2009,7 @@ module SeatsChart
1783
2009
  # query parameters
1784
2010
  query_params = opts[:query_params] || {}
1785
2011
  query_params[:'categoryLabel'] = opts[:'category_label'] if !opts[:'category_label'].nil?
2012
+ query_params[:'category'] = opts[:'category'] if !opts[:'category'].nil?
1786
2013
  query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
1787
2014
 
1788
2015
  # header parameters
@@ -1818,10 +2045,11 @@ module SeatsChart
1818
2045
  end
1819
2046
 
1820
2047
  # Detailed report grouped by category label
1821
- # Seats.io byCategoryLabel: buckets are the category labels (the objects' `category` value, as in the legacy by-category report); objects without a category → NO_CATEGORY. Optional `?categoryLabel=`. Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
2048
+ # Seats.io byCategoryLabel: buckets are the category labels (the objects' `category` value, as in the legacy by-category report); objects without a category → NO_CATEGORY. Optional `?categoryLabel=` (or `?category=`). Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add `areaType` (`fixedOccupancy` | `variableOccupancy`), `bookAsAWhole: true` and, for variable occupancy, `minOccupancy` / `maxOccupancy`; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1822
2049
  # @param event_id [String]
1823
2050
  # @param [Hash] opts the optional parameters
1824
2051
  # @option opts [String] :category_label Only this categoryLabel bucket.
2052
+ # @option opts [String] :category Same as &#x60;categoryLabel&#x60;.
1825
2053
  # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
1826
2054
  # @return [nil]
1827
2055
  def get_api_events_by_event_id_reports_by_category_label_json(event_id, opts = {})
@@ -1830,10 +2058,11 @@ module SeatsChart
1830
2058
  end
1831
2059
 
1832
2060
  # Detailed report grouped by category label
1833
- # Seats.io byCategoryLabel: buckets are the category labels (the objects&#39; &#x60;category&#x60; value, as in the legacy by-category report); objects without a category → NO_CATEGORY. Optional &#x60;?categoryLabel&#x3D;&#x60;. Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
2061
+ # Seats.io byCategoryLabel: buckets are the category labels (the objects&#39; &#x60;category&#x60; value, as in the legacy by-category report); objects without a category → NO_CATEGORY. Optional &#x60;?categoryLabel&#x3D;&#x60; (or &#x60;?category&#x3D;&#x60;). Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add &#x60;areaType&#x60; (&#x60;fixedOccupancy&#x60; | &#x60;variableOccupancy&#x60;), &#x60;bookAsAWhole: true&#x60; and, for variable occupancy, &#x60;minOccupancy&#x60; / &#x60;maxOccupancy&#x60;; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
1834
2062
  # @param event_id [String]
1835
2063
  # @param [Hash] opts the optional parameters
1836
2064
  # @option opts [String] :category_label Only this categoryLabel bucket.
2065
+ # @option opts [String] :category Same as &#x60;categoryLabel&#x60;.
1837
2066
  # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
1838
2067
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
1839
2068
  def get_api_events_by_event_id_reports_by_category_label_json_with_http_info(event_id, opts = {})
@@ -1857,6 +2086,14 @@ module SeatsChart
1857
2086
  fail ArgumentError, 'invalid value for "opts[:"category_label"]" when calling EventsApi.get_api_events_by_event_id_reports_by_category_label_json, the character length must be great than or equal to 1.'
1858
2087
  end
1859
2088
 
2089
+ if @api_client.config.client_side_validation && !opts[:'category'].nil? && opts[:'category'].to_s.length > 128
2090
+ fail ArgumentError, 'invalid value for "opts[:"category"]" when calling EventsApi.get_api_events_by_event_id_reports_by_category_label_json, the character length must be smaller than or equal to 128.'
2091
+ end
2092
+
2093
+ if @api_client.config.client_side_validation && !opts[:'category'].nil? && opts[:'category'].to_s.length < 1
2094
+ fail ArgumentError, 'invalid value for "opts[:"category"]" when calling EventsApi.get_api_events_by_event_id_reports_by_category_label_json, the character length must be great than or equal to 1.'
2095
+ end
2096
+
1860
2097
  allowable_values = ["true", "false"]
1861
2098
  if @api_client.config.client_side_validation && opts[:'live_holds'] && !allowable_values.include?(opts[:'live_holds'])
1862
2099
  fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
@@ -1867,6 +2104,7 @@ module SeatsChart
1867
2104
  # query parameters
1868
2105
  query_params = opts[:query_params] || {}
1869
2106
  query_params[:'categoryLabel'] = opts[:'category_label'] if !opts[:'category_label'].nil?
2107
+ query_params[:'category'] = opts[:'category'] if !opts[:'category'].nil?
1870
2108
  query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
1871
2109
 
1872
2110
  # header parameters
@@ -2053,40 +2291,57 @@ module SeatsChart
2053
2291
  return data, status_code, headers
2054
2292
  end
2055
2293
 
2056
- # Detailed report grouped by object type (seat|ga)
2294
+ # Detailed report grouped by object status (CSV)
2295
+ # seats.io detailed byStatus: buckets are the object statuses (`available`, `locked`, `sold`, a custom object status, `resale`, …), each with its objects. `GET /events/{eventId}/reports/by-status.json` keeps returning counts only. Optional `?status=` returns only that status (seats.io `byStatus(event, status)`). Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add `areaType` (`fixedOccupancy` | `variableOccupancy`), `bookAsAWhole: true` and, for variable occupancy, `minOccupancy` / `maxOccupancy`; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
2057
2296
  # @param event_id [String]
2058
2297
  # @param [Hash] opts the optional parameters
2298
+ # @option opts [String] :status Only this status bucket.
2299
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
2059
2300
  # @return [nil]
2060
- def get_api_events_by_event_id_reports_by_object_type_json(event_id, opts = {})
2061
- get_api_events_by_event_id_reports_by_object_type_json_with_http_info(event_id, opts)
2301
+ def get_api_events_by_event_id_reports_by_object_status_csv(event_id, opts = {})
2302
+ get_api_events_by_event_id_reports_by_object_status_csv_with_http_info(event_id, opts)
2062
2303
  nil
2063
2304
  end
2064
2305
 
2065
- # Detailed report grouped by object type (seat|ga)
2306
+ # Detailed report grouped by object status (CSV)
2307
+ # seats.io detailed byStatus: buckets are the object statuses (&#x60;available&#x60;, &#x60;locked&#x60;, &#x60;sold&#x60;, a custom object status, &#x60;resale&#x60;, …), each with its objects. &#x60;GET /events/{eventId}/reports/by-status.json&#x60; keeps returning counts only. Optional &#x60;?status&#x3D;&#x60; returns only that status (seats.io &#x60;byStatus(event, status)&#x60;). Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add &#x60;areaType&#x60; (&#x60;fixedOccupancy&#x60; | &#x60;variableOccupancy&#x60;), &#x60;bookAsAWhole: true&#x60; and, for variable occupancy, &#x60;minOccupancy&#x60; / &#x60;maxOccupancy&#x60;; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
2066
2308
  # @param event_id [String]
2067
2309
  # @param [Hash] opts the optional parameters
2310
+ # @option opts [String] :status Only this status bucket.
2311
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
2068
2312
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
2069
- def get_api_events_by_event_id_reports_by_object_type_json_with_http_info(event_id, opts = {})
2313
+ def get_api_events_by_event_id_reports_by_object_status_csv_with_http_info(event_id, opts = {})
2070
2314
  if @api_client.config.debugging
2071
- @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_by_object_type_json ...'
2315
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_by_object_status_csv ...'
2072
2316
  end
2073
2317
  # verify the required parameter 'event_id' is set
2074
2318
  if @api_client.config.client_side_validation && event_id.nil?
2075
- fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_object_type_json"
2319
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_object_status_csv"
2076
2320
  end
2077
- if @api_client.config.client_side_validation && event_id.to_s.length > 36
2078
- fail ArgumentError, 'invalid value for "event_id" when calling EventsApi.get_api_events_by_event_id_reports_by_object_type_json, the character length must be smaller than or equal to 36.'
2321
+ pattern = Regexp.new(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)
2322
+ if @api_client.config.client_side_validation && event_id !~ pattern
2323
+ fail ArgumentError, "invalid value for 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_object_status_csv, must conform to the pattern #{pattern}."
2079
2324
  end
2080
2325
 
2081
- if @api_client.config.client_side_validation && event_id.to_s.length < 36
2082
- fail ArgumentError, 'invalid value for "event_id" when calling EventsApi.get_api_events_by_event_id_reports_by_object_type_json, the character length must be great than or equal to 36.'
2326
+ if @api_client.config.client_side_validation && !opts[:'status'].nil? && opts[:'status'].to_s.length > 128
2327
+ fail ArgumentError, 'invalid value for "opts[:"status"]" when calling EventsApi.get_api_events_by_event_id_reports_by_object_status_csv, the character length must be smaller than or equal to 128.'
2328
+ end
2329
+
2330
+ if @api_client.config.client_side_validation && !opts[:'status'].nil? && opts[:'status'].to_s.length < 1
2331
+ fail ArgumentError, 'invalid value for "opts[:"status"]" when calling EventsApi.get_api_events_by_event_id_reports_by_object_status_csv, the character length must be great than or equal to 1.'
2083
2332
  end
2084
2333
 
2334
+ allowable_values = ["true", "false"]
2335
+ if @api_client.config.client_side_validation && opts[:'live_holds'] && !allowable_values.include?(opts[:'live_holds'])
2336
+ fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
2337
+ end
2085
2338
  # resource path
2086
- local_var_path = '/api/events/{eventId}/reports/by-object-type.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2339
+ local_var_path = '/api/events/{eventId}/reports/by-object-status.csv'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2087
2340
 
2088
2341
  # query parameters
2089
2342
  query_params = opts[:query_params] || {}
2343
+ query_params[:'status'] = opts[:'status'] if !opts[:'status'].nil?
2344
+ query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
2090
2345
 
2091
2346
  # header parameters
2092
2347
  header_params = opts[:header_params] || {}
@@ -2104,7 +2359,7 @@ module SeatsChart
2104
2359
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
2105
2360
 
2106
2361
  new_options = opts.merge(
2107
- :operation => :"EventsApi.get_api_events_by_event_id_reports_by_object_type_json",
2362
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_by_object_status_csv",
2108
2363
  :header_params => header_params,
2109
2364
  :query_params => query_params,
2110
2365
  :form_params => form_params,
@@ -2115,54 +2370,62 @@ module SeatsChart
2115
2370
 
2116
2371
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
2117
2372
  if @api_client.config.debugging
2118
- @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_by_object_type_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2373
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_by_object_status_csv\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2119
2374
  end
2120
2375
  return data, status_code, headers
2121
2376
  end
2122
2377
 
2123
- # Detailed report grouped by orderId (Postgres)
2124
- # Uses object_statuses.order_id. Missing order → bucket NO_ORDER_ID. Optional `?orderId=`.
2378
+ # Detailed report grouped by object status
2379
+ # seats.io detailed byStatus: buckets are the object statuses (`available`, `locked`, `sold`, a custom object status, `resale`, …), each with its objects. `GET /events/{eventId}/reports/by-status.json` keeps returning counts only. Optional `?status=` returns only that status (seats.io `byStatus(event, status)`). Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add `areaType` (`fixedOccupancy` | `variableOccupancy`), `bookAsAWhole: true` and, for variable occupancy, `minOccupancy` / `maxOccupancy`; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
2125
2380
  # @param event_id [String]
2126
2381
  # @param [Hash] opts the optional parameters
2127
- # @option opts [String] :order_id
2382
+ # @option opts [String] :status Only this status bucket.
2383
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
2128
2384
  # @return [nil]
2129
- def get_api_events_by_event_id_reports_by_order_id_json(event_id, opts = {})
2130
- get_api_events_by_event_id_reports_by_order_id_json_with_http_info(event_id, opts)
2385
+ def get_api_events_by_event_id_reports_by_object_status_json(event_id, opts = {})
2386
+ get_api_events_by_event_id_reports_by_object_status_json_with_http_info(event_id, opts)
2131
2387
  nil
2132
2388
  end
2133
2389
 
2134
- # Detailed report grouped by orderId (Postgres)
2135
- # Uses object_statuses.order_id. Missing order → bucket NO_ORDER_ID. Optional &#x60;?orderId&#x3D;&#x60;.
2390
+ # Detailed report grouped by object status
2391
+ # seats.io detailed byStatus: buckets are the object statuses (&#x60;available&#x60;, &#x60;locked&#x60;, &#x60;sold&#x60;, a custom object status, &#x60;resale&#x60;, …), each with its objects. &#x60;GET /events/{eventId}/reports/by-status.json&#x60; keeps returning counts only. Optional &#x60;?status&#x3D;&#x60; returns only that status (seats.io &#x60;byStatus(event, status)&#x60;). Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add &#x60;areaType&#x60; (&#x60;fixedOccupancy&#x60; | &#x60;variableOccupancy&#x60;), &#x60;bookAsAWhole: true&#x60; and, for variable occupancy, &#x60;minOccupancy&#x60; / &#x60;maxOccupancy&#x60;; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
2136
2392
  # @param event_id [String]
2137
2393
  # @param [Hash] opts the optional parameters
2138
- # @option opts [String] :order_id
2394
+ # @option opts [String] :status Only this status bucket.
2395
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
2139
2396
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
2140
- def get_api_events_by_event_id_reports_by_order_id_json_with_http_info(event_id, opts = {})
2397
+ def get_api_events_by_event_id_reports_by_object_status_json_with_http_info(event_id, opts = {})
2141
2398
  if @api_client.config.debugging
2142
- @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_by_order_id_json ...'
2399
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_by_object_status_json ...'
2143
2400
  end
2144
2401
  # verify the required parameter 'event_id' is set
2145
2402
  if @api_client.config.client_side_validation && event_id.nil?
2146
- fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_order_id_json"
2403
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_object_status_json"
2147
2404
  end
2148
- if @api_client.config.client_side_validation && event_id.to_s.length > 36
2149
- fail ArgumentError, 'invalid value for "event_id" when calling EventsApi.get_api_events_by_event_id_reports_by_order_id_json, the character length must be smaller than or equal to 36.'
2405
+ pattern = Regexp.new(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)
2406
+ if @api_client.config.client_side_validation && event_id !~ pattern
2407
+ fail ArgumentError, "invalid value for 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_object_status_json, must conform to the pattern #{pattern}."
2150
2408
  end
2151
2409
 
2152
- if @api_client.config.client_side_validation && event_id.to_s.length < 36
2153
- fail ArgumentError, 'invalid value for "event_id" when calling EventsApi.get_api_events_by_event_id_reports_by_order_id_json, the character length must be great than or equal to 36.'
2410
+ if @api_client.config.client_side_validation && !opts[:'status'].nil? && opts[:'status'].to_s.length > 128
2411
+ fail ArgumentError, 'invalid value for "opts[:"status"]" when calling EventsApi.get_api_events_by_event_id_reports_by_object_status_json, the character length must be smaller than or equal to 128.'
2154
2412
  end
2155
2413
 
2156
- if @api_client.config.client_side_validation && !opts[:'order_id'].nil? && opts[:'order_id'].to_s.length > 255
2157
- fail ArgumentError, 'invalid value for "opts[:"order_id"]" when calling EventsApi.get_api_events_by_event_id_reports_by_order_id_json, the character length must be smaller than or equal to 255.'
2414
+ if @api_client.config.client_side_validation && !opts[:'status'].nil? && opts[:'status'].to_s.length < 1
2415
+ fail ArgumentError, 'invalid value for "opts[:"status"]" when calling EventsApi.get_api_events_by_event_id_reports_by_object_status_json, the character length must be great than or equal to 1.'
2158
2416
  end
2159
2417
 
2418
+ allowable_values = ["true", "false"]
2419
+ if @api_client.config.client_side_validation && opts[:'live_holds'] && !allowable_values.include?(opts[:'live_holds'])
2420
+ fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
2421
+ end
2160
2422
  # resource path
2161
- local_var_path = '/api/events/{eventId}/reports/by-order-id.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2423
+ local_var_path = '/api/events/{eventId}/reports/by-object-status.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2162
2424
 
2163
2425
  # query parameters
2164
2426
  query_params = opts[:query_params] || {}
2165
- query_params[:'orderId'] = opts[:'order_id'] if !opts[:'order_id'].nil?
2427
+ query_params[:'status'] = opts[:'status'] if !opts[:'status'].nil?
2428
+ query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
2166
2429
 
2167
2430
  # header parameters
2168
2431
  header_params = opts[:header_params] || {}
@@ -2180,7 +2443,7 @@ module SeatsChart
2180
2443
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
2181
2444
 
2182
2445
  new_options = opts.merge(
2183
- :operation => :"EventsApi.get_api_events_by_event_id_reports_by_order_id_json",
2446
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_by_object_status_json",
2184
2447
  :header_params => header_params,
2185
2448
  :query_params => query_params,
2186
2449
  :form_params => form_params,
@@ -2191,54 +2454,54 @@ module SeatsChart
2191
2454
 
2192
2455
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
2193
2456
  if @api_client.config.debugging
2194
- @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_by_order_id_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2457
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_by_object_status_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2195
2458
  end
2196
2459
  return data, status_code, headers
2197
2460
  end
2198
2461
 
2199
- # Detailed report grouped by section
2200
- # Groups seats by layout sectionGuide name (geometry join via pos_x/pos_y). Seats outside all guides and GA areas → NO_SECTION.
2462
+ # Detailed report grouped by object type (seat|ga)
2463
+ # Buckets `seat` and `ga` with their objects (Postgres). Optional `?objectType=seat|ga` returns only that bucket.
2201
2464
  # @param event_id [String]
2202
2465
  # @param [Hash] opts the optional parameters
2203
- # @option opts [String] :section
2466
+ # @option opts [String] :object_type Only this object type (seats.io &#x60;byObjectType(event, type)&#x60;).
2204
2467
  # @return [nil]
2205
- def get_api_events_by_event_id_reports_by_section_json(event_id, opts = {})
2206
- get_api_events_by_event_id_reports_by_section_json_with_http_info(event_id, opts)
2468
+ def get_api_events_by_event_id_reports_by_object_type_json(event_id, opts = {})
2469
+ get_api_events_by_event_id_reports_by_object_type_json_with_http_info(event_id, opts)
2207
2470
  nil
2208
2471
  end
2209
2472
 
2210
- # Detailed report grouped by section
2211
- # Groups seats by layout sectionGuide name (geometry join via pos_x/pos_y). Seats outside all guides and GA areas → NO_SECTION.
2473
+ # Detailed report grouped by object type (seat|ga)
2474
+ # Buckets &#x60;seat&#x60; and &#x60;ga&#x60; with their objects (Postgres). Optional &#x60;?objectType&#x3D;seat|ga&#x60; returns only that bucket.
2212
2475
  # @param event_id [String]
2213
2476
  # @param [Hash] opts the optional parameters
2214
- # @option opts [String] :section
2477
+ # @option opts [String] :object_type Only this object type (seats.io &#x60;byObjectType(event, type)&#x60;).
2215
2478
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
2216
- def get_api_events_by_event_id_reports_by_section_json_with_http_info(event_id, opts = {})
2479
+ def get_api_events_by_event_id_reports_by_object_type_json_with_http_info(event_id, opts = {})
2217
2480
  if @api_client.config.debugging
2218
- @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_by_section_json ...'
2481
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_by_object_type_json ...'
2219
2482
  end
2220
2483
  # verify the required parameter 'event_id' is set
2221
2484
  if @api_client.config.client_side_validation && event_id.nil?
2222
- fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_section_json"
2485
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_object_type_json"
2223
2486
  end
2224
2487
  if @api_client.config.client_side_validation && event_id.to_s.length > 36
2225
- fail ArgumentError, 'invalid value for "event_id" when calling EventsApi.get_api_events_by_event_id_reports_by_section_json, the character length must be smaller than or equal to 36.'
2488
+ fail ArgumentError, 'invalid value for "event_id" when calling EventsApi.get_api_events_by_event_id_reports_by_object_type_json, the character length must be smaller than or equal to 36.'
2226
2489
  end
2227
2490
 
2228
2491
  if @api_client.config.client_side_validation && event_id.to_s.length < 36
2229
- fail ArgumentError, 'invalid value for "event_id" when calling EventsApi.get_api_events_by_event_id_reports_by_section_json, the character length must be great than or equal to 36.'
2492
+ fail ArgumentError, 'invalid value for "event_id" when calling EventsApi.get_api_events_by_event_id_reports_by_object_type_json, the character length must be great than or equal to 36.'
2230
2493
  end
2231
2494
 
2232
- if @api_client.config.client_side_validation && !opts[:'section'].nil? && opts[:'section'].to_s.length > 128
2233
- fail ArgumentError, 'invalid value for "opts[:"section"]" when calling EventsApi.get_api_events_by_event_id_reports_by_section_json, the character length must be smaller than or equal to 128.'
2495
+ allowable_values = ["seat", "ga"]
2496
+ if @api_client.config.client_side_validation && opts[:'object_type'] && !allowable_values.include?(opts[:'object_type'])
2497
+ fail ArgumentError, "invalid value for \"object_type\", must be one of #{allowable_values}"
2234
2498
  end
2235
-
2236
2499
  # resource path
2237
- local_var_path = '/api/events/{eventId}/reports/by-section.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2500
+ local_var_path = '/api/events/{eventId}/reports/by-object-type.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2238
2501
 
2239
2502
  # query parameters
2240
2503
  query_params = opts[:query_params] || {}
2241
- query_params[:'section'] = opts[:'section'] if !opts[:'section'].nil?
2504
+ query_params[:'objectType'] = opts[:'object_type'] if !opts[:'object_type'].nil?
2242
2505
 
2243
2506
  # header parameters
2244
2507
  header_params = opts[:header_params] || {}
@@ -2256,7 +2519,7 @@ module SeatsChart
2256
2519
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
2257
2520
 
2258
2521
  new_options = opts.merge(
2259
- :operation => :"EventsApi.get_api_events_by_event_id_reports_by_section_json",
2522
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_by_object_type_json",
2260
2523
  :header_params => header_params,
2261
2524
  :query_params => query_params,
2262
2525
  :form_params => form_params,
@@ -2267,12 +2530,164 @@ module SeatsChart
2267
2530
 
2268
2531
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
2269
2532
  if @api_client.config.debugging
2270
- @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_by_section_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2533
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_by_object_type_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2271
2534
  end
2272
2535
  return data, status_code, headers
2273
2536
  end
2274
2537
 
2275
- # Seat counts by Postgres status
2538
+ # Detailed report grouped by orderId (Postgres)
2539
+ # Uses object_statuses.order_id. Missing order → bucket NO_ORDER_ID. Optional `?orderId=`.
2540
+ # @param event_id [String]
2541
+ # @param [Hash] opts the optional parameters
2542
+ # @option opts [String] :order_id
2543
+ # @return [nil]
2544
+ def get_api_events_by_event_id_reports_by_order_id_json(event_id, opts = {})
2545
+ get_api_events_by_event_id_reports_by_order_id_json_with_http_info(event_id, opts)
2546
+ nil
2547
+ end
2548
+
2549
+ # Detailed report grouped by orderId (Postgres)
2550
+ # Uses object_statuses.order_id. Missing order → bucket NO_ORDER_ID. Optional &#x60;?orderId&#x3D;&#x60;.
2551
+ # @param event_id [String]
2552
+ # @param [Hash] opts the optional parameters
2553
+ # @option opts [String] :order_id
2554
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
2555
+ def get_api_events_by_event_id_reports_by_order_id_json_with_http_info(event_id, opts = {})
2556
+ if @api_client.config.debugging
2557
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_by_order_id_json ...'
2558
+ end
2559
+ # verify the required parameter 'event_id' is set
2560
+ if @api_client.config.client_side_validation && event_id.nil?
2561
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_order_id_json"
2562
+ end
2563
+ if @api_client.config.client_side_validation && event_id.to_s.length > 36
2564
+ fail ArgumentError, 'invalid value for "event_id" when calling EventsApi.get_api_events_by_event_id_reports_by_order_id_json, the character length must be smaller than or equal to 36.'
2565
+ end
2566
+
2567
+ if @api_client.config.client_side_validation && event_id.to_s.length < 36
2568
+ fail ArgumentError, 'invalid value for "event_id" when calling EventsApi.get_api_events_by_event_id_reports_by_order_id_json, the character length must be great than or equal to 36.'
2569
+ end
2570
+
2571
+ if @api_client.config.client_side_validation && !opts[:'order_id'].nil? && opts[:'order_id'].to_s.length > 255
2572
+ fail ArgumentError, 'invalid value for "opts[:"order_id"]" when calling EventsApi.get_api_events_by_event_id_reports_by_order_id_json, the character length must be smaller than or equal to 255.'
2573
+ end
2574
+
2575
+ # resource path
2576
+ local_var_path = '/api/events/{eventId}/reports/by-order-id.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2577
+
2578
+ # query parameters
2579
+ query_params = opts[:query_params] || {}
2580
+ query_params[:'orderId'] = opts[:'order_id'] if !opts[:'order_id'].nil?
2581
+
2582
+ # header parameters
2583
+ header_params = opts[:header_params] || {}
2584
+
2585
+ # form parameters
2586
+ form_params = opts[:form_params] || {}
2587
+
2588
+ # http body (model)
2589
+ post_body = opts[:debug_body]
2590
+
2591
+ # return_type
2592
+ return_type = opts[:debug_return_type]
2593
+
2594
+ # auth_names
2595
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
2596
+
2597
+ new_options = opts.merge(
2598
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_by_order_id_json",
2599
+ :header_params => header_params,
2600
+ :query_params => query_params,
2601
+ :form_params => form_params,
2602
+ :body => post_body,
2603
+ :auth_names => auth_names,
2604
+ :return_type => return_type
2605
+ )
2606
+
2607
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
2608
+ if @api_client.config.debugging
2609
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_by_order_id_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2610
+ end
2611
+ return data, status_code, headers
2612
+ end
2613
+
2614
+ # Detailed report grouped by section
2615
+ # Groups seats by layout sectionGuide name (geometry join via pos_x/pos_y). Seats outside all guides and GA areas → NO_SECTION.
2616
+ # @param event_id [String]
2617
+ # @param [Hash] opts the optional parameters
2618
+ # @option opts [String] :section
2619
+ # @return [nil]
2620
+ def get_api_events_by_event_id_reports_by_section_json(event_id, opts = {})
2621
+ get_api_events_by_event_id_reports_by_section_json_with_http_info(event_id, opts)
2622
+ nil
2623
+ end
2624
+
2625
+ # Detailed report grouped by section
2626
+ # Groups seats by layout sectionGuide name (geometry join via pos_x/pos_y). Seats outside all guides and GA areas → NO_SECTION.
2627
+ # @param event_id [String]
2628
+ # @param [Hash] opts the optional parameters
2629
+ # @option opts [String] :section
2630
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
2631
+ def get_api_events_by_event_id_reports_by_section_json_with_http_info(event_id, opts = {})
2632
+ if @api_client.config.debugging
2633
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_by_section_json ...'
2634
+ end
2635
+ # verify the required parameter 'event_id' is set
2636
+ if @api_client.config.client_side_validation && event_id.nil?
2637
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_section_json"
2638
+ end
2639
+ if @api_client.config.client_side_validation && event_id.to_s.length > 36
2640
+ fail ArgumentError, 'invalid value for "event_id" when calling EventsApi.get_api_events_by_event_id_reports_by_section_json, the character length must be smaller than or equal to 36.'
2641
+ end
2642
+
2643
+ if @api_client.config.client_side_validation && event_id.to_s.length < 36
2644
+ fail ArgumentError, 'invalid value for "event_id" when calling EventsApi.get_api_events_by_event_id_reports_by_section_json, the character length must be great than or equal to 36.'
2645
+ end
2646
+
2647
+ if @api_client.config.client_side_validation && !opts[:'section'].nil? && opts[:'section'].to_s.length > 128
2648
+ fail ArgumentError, 'invalid value for "opts[:"section"]" when calling EventsApi.get_api_events_by_event_id_reports_by_section_json, the character length must be smaller than or equal to 128.'
2649
+ end
2650
+
2651
+ # resource path
2652
+ local_var_path = '/api/events/{eventId}/reports/by-section.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2653
+
2654
+ # query parameters
2655
+ query_params = opts[:query_params] || {}
2656
+ query_params[:'section'] = opts[:'section'] if !opts[:'section'].nil?
2657
+
2658
+ # header parameters
2659
+ header_params = opts[:header_params] || {}
2660
+
2661
+ # form parameters
2662
+ form_params = opts[:form_params] || {}
2663
+
2664
+ # http body (model)
2665
+ post_body = opts[:debug_body]
2666
+
2667
+ # return_type
2668
+ return_type = opts[:debug_return_type]
2669
+
2670
+ # auth_names
2671
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
2672
+
2673
+ new_options = opts.merge(
2674
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_by_section_json",
2675
+ :header_params => header_params,
2676
+ :query_params => query_params,
2677
+ :form_params => form_params,
2678
+ :body => post_body,
2679
+ :auth_names => auth_names,
2680
+ :return_type => return_type
2681
+ )
2682
+
2683
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
2684
+ if @api_client.config.debugging
2685
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_by_section_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2686
+ end
2687
+ return data, status_code, headers
2688
+ end
2689
+
2690
+ # Seat counts by Postgres status
2276
2691
  # @param event_id [String]
2277
2692
  # @param [Hash] opts the optional parameters
2278
2693
  # @return [nil]
@@ -2340,7 +2755,7 @@ module SeatsChart
2340
2755
  end
2341
2756
 
2342
2757
  # Detailed report grouped by zone (CSV)
2343
- # Zones are `zone` layout shapes. Seats resolve explicit assignment (layoutMeta.seatZones) → their section's zone → the zone outline containing them; GA areas use `zoneId` or their centre. Others → NO_ZONE. Optional `?zone=` (zone name). The response lists the layout `zones`. Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
2758
+ # Zones are `zone` layout shapes. Seats resolve explicit assignment (layoutMeta.seatZones) → their section's zone → the zone outline containing them; GA areas use `zoneId` or their centre. Others → NO_ZONE. Optional `?zone=` (zone name). The response lists the layout `zones`. Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add `areaType` (`fixedOccupancy` | `variableOccupancy`), `bookAsAWhole: true` and, for variable occupancy, `minOccupancy` / `maxOccupancy`; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
2344
2759
  # @param event_id [String]
2345
2760
  # @param [Hash] opts the optional parameters
2346
2761
  # @option opts [String] :zone Only this zone bucket.
@@ -2352,7 +2767,7 @@ module SeatsChart
2352
2767
  end
2353
2768
 
2354
2769
  # Detailed report grouped by zone (CSV)
2355
- # Zones are &#x60;zone&#x60; layout shapes. Seats resolve explicit assignment (layoutMeta.seatZones) → their section&#39;s zone → the zone outline containing them; GA areas use &#x60;zoneId&#x60; or their centre. Others → NO_ZONE. Optional &#x60;?zone&#x3D;&#x60; (zone name). The response lists the layout &#x60;zones&#x60;. Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
2770
+ # Zones are &#x60;zone&#x60; layout shapes. Seats resolve explicit assignment (layoutMeta.seatZones) → their section&#39;s zone → the zone outline containing them; GA areas use &#x60;zoneId&#x60; or their centre. Others → NO_ZONE. Optional &#x60;?zone&#x3D;&#x60; (zone name). The response lists the layout &#x60;zones&#x60;. Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add &#x60;areaType&#x60; (&#x60;fixedOccupancy&#x60; | &#x60;variableOccupancy&#x60;), &#x60;bookAsAWhole: true&#x60; and, for variable occupancy, &#x60;minOccupancy&#x60; / &#x60;maxOccupancy&#x60;; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
2356
2771
  # @param event_id [String]
2357
2772
  # @param [Hash] opts the optional parameters
2358
2773
  # @option opts [String] :zone Only this zone bucket.
@@ -2424,7 +2839,7 @@ module SeatsChart
2424
2839
  end
2425
2840
 
2426
2841
  # Detailed report grouped by zone
2427
- # Zones are `zone` layout shapes. Seats resolve explicit assignment (layoutMeta.seatZones) → their section's zone → the zone outline containing them; GA areas use `zoneId` or their centre. Others → NO_ZONE. Optional `?zone=` (zone name). The response lists the layout `zones`. Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
2842
+ # Zones are `zone` layout shapes. Seats resolve explicit assignment (layoutMeta.seatZones) → their section's zone → the zone outline containing them; GA areas use `zoneId` or their centre. Others → NO_ZONE. Optional `?zone=` (zone name). The response lists the layout `zones`. Rows: `objectId`, `label`, `objectType` (seat|ga), `status` (durable status or object status overlay), `category`, `section`, `zone`, `forSale`, `channelKeyId`, `orderId`, `availability` (available|not_available) and `availabilityReason` (available|resale|booked|held|custom_status|not_for_sale). GA rows add `capacity`, `soldCount`, `heldCount`, `availableCount` and `places` (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. `liveHolds` tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add `areaType` (`fixedOccupancy` | `variableOccupancy`), `bookAsAWhole: true` and, for variable occupancy, `minOccupancy` / `maxOccupancy`; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The `.csv` variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
2428
2843
  # @param event_id [String]
2429
2844
  # @param [Hash] opts the optional parameters
2430
2845
  # @option opts [String] :zone Only this zone bucket.
@@ -2436,7 +2851,7 @@ module SeatsChart
2436
2851
  end
2437
2852
 
2438
2853
  # Detailed report grouped by zone
2439
- # Zones are &#x60;zone&#x60; layout shapes. Seats resolve explicit assignment (layoutMeta.seatZones) → their section&#39;s zone → the zone outline containing them; GA areas use &#x60;zoneId&#x60; or their centre. Others → NO_ZONE. Optional &#x60;?zone&#x3D;&#x60; (zone name). The response lists the layout &#x60;zones&#x60;. Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
2854
+ # Zones are &#x60;zone&#x60; layout shapes. Seats resolve explicit assignment (layoutMeta.seatZones) → their section&#39;s zone → the zone outline containing them; GA areas use &#x60;zoneId&#x60; or their centre. Others → NO_ZONE. Optional &#x60;?zone&#x3D;&#x60; (zone name). The response lists the layout &#x60;zones&#x60;. Rows: &#x60;objectId&#x60;, &#x60;label&#x60;, &#x60;objectType&#x60; (seat|ga), &#x60;status&#x60; (durable status or object status overlay), &#x60;category&#x60;, &#x60;section&#x60;, &#x60;zone&#x60;, &#x60;forSale&#x60;, &#x60;channelKeyId&#x60;, &#x60;orderId&#x60;, &#x60;availability&#x60; (available|not_available) and &#x60;availabilityReason&#x60; (available|resale|booked|held|custom_status|not_for_sale). GA rows add &#x60;capacity&#x60;, &#x60;soldCount&#x60;, &#x60;heldCount&#x60;, &#x60;availableCount&#x60; and &#x60;places&#x60; (places per reason). Availability: custom object status → custom_status; sold → booked (resale overlay → resale, still available); durable or live hold → held; not for sale → not_for_sale. &#x60;liveHolds&#x60; tells whether active buyer holds were merged (false when skipped or Redis is unavailable). GA areas sold as a whole add &#x60;areaType&#x60; (&#x60;fixedOccupancy&#x60; | &#x60;variableOccupancy&#x60;), &#x60;bookAsAWhole: true&#x60; and, for variable occupancy, &#x60;minOccupancy&#x60; / &#x60;maxOccupancy&#x60;; their places are available all together or not at all (a partly withheld whole area is not_for_sale). The &#x60;.csv&#x60; variant returns the same data as RFC 4180 CSV (one line per object, or per group for summaries). Requires content_write (or a partner API key with the reports scope).
2440
2855
  # @param event_id [String]
2441
2856
  # @param [Hash] opts the optional parameters
2442
2857
  # @option opts [String] :zone Only this zone bucket.
@@ -2468,11 +2883,741 @@ module SeatsChart
2468
2883
  fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
2469
2884
  end
2470
2885
  # resource path
2471
- local_var_path = '/api/events/{eventId}/reports/by-zone.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2886
+ local_var_path = '/api/events/{eventId}/reports/by-zone.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2887
+
2888
+ # query parameters
2889
+ query_params = opts[:query_params] || {}
2890
+ query_params[:'zone'] = opts[:'zone'] if !opts[:'zone'].nil?
2891
+ query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
2892
+
2893
+ # header parameters
2894
+ header_params = opts[:header_params] || {}
2895
+
2896
+ # form parameters
2897
+ form_params = opts[:form_params] || {}
2898
+
2899
+ # http body (model)
2900
+ post_body = opts[:debug_body]
2901
+
2902
+ # return_type
2903
+ return_type = opts[:debug_return_type]
2904
+
2905
+ # auth_names
2906
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
2907
+
2908
+ new_options = opts.merge(
2909
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_by_zone_json",
2910
+ :header_params => header_params,
2911
+ :query_params => query_params,
2912
+ :form_params => form_params,
2913
+ :body => post_body,
2914
+ :auth_names => auth_names,
2915
+ :return_type => return_type
2916
+ )
2917
+
2918
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
2919
+ if @api_client.config.debugging
2920
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_by_zone_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2921
+ end
2922
+ return data, status_code, headers
2923
+ end
2924
+
2925
+ # Deep summary report by availability
2926
+ # seats.io deep summary by availability: the buckets of the summary by availability, each with `deep` — one full summary bucket per section (named in `deepBy`). Each bucket: `count` (places — 1 per seat, capacity per GA area), `objects`, `seats`, `gaPlaces`, and nested `byStatus`, `byAvailability`, `byAvailabilityReason`, `byCategory`, `bySection`, `byZone`, `byChannel`, `byObjectType`. GA areas are split by place, so one area can contribute to several availability buckets. `totals` sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
2927
+ # @param event_id [String]
2928
+ # @param [Hash] opts the optional parameters
2929
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
2930
+ # @return [nil]
2931
+ def get_api_events_by_event_id_reports_deep_summary_by_availability_json(event_id, opts = {})
2932
+ get_api_events_by_event_id_reports_deep_summary_by_availability_json_with_http_info(event_id, opts)
2933
+ nil
2934
+ end
2935
+
2936
+ # Deep summary report by availability
2937
+ # seats.io deep summary by availability: the buckets of the summary by availability, each with &#x60;deep&#x60; — one full summary bucket per section (named in &#x60;deepBy&#x60;). Each bucket: &#x60;count&#x60; (places — 1 per seat, capacity per GA area), &#x60;objects&#x60;, &#x60;seats&#x60;, &#x60;gaPlaces&#x60;, and nested &#x60;byStatus&#x60;, &#x60;byAvailability&#x60;, &#x60;byAvailabilityReason&#x60;, &#x60;byCategory&#x60;, &#x60;bySection&#x60;, &#x60;byZone&#x60;, &#x60;byChannel&#x60;, &#x60;byObjectType&#x60;. GA areas are split by place, so one area can contribute to several availability buckets. &#x60;totals&#x60; sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
2938
+ # @param event_id [String]
2939
+ # @param [Hash] opts the optional parameters
2940
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
2941
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
2942
+ def get_api_events_by_event_id_reports_deep_summary_by_availability_json_with_http_info(event_id, opts = {})
2943
+ if @api_client.config.debugging
2944
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_deep_summary_by_availability_json ...'
2945
+ end
2946
+ # verify the required parameter 'event_id' is set
2947
+ if @api_client.config.client_side_validation && event_id.nil?
2948
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_availability_json"
2949
+ end
2950
+ pattern = Regexp.new(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)
2951
+ if @api_client.config.client_side_validation && event_id !~ pattern
2952
+ fail ArgumentError, "invalid value for 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_availability_json, must conform to the pattern #{pattern}."
2953
+ end
2954
+
2955
+ allowable_values = ["true", "false"]
2956
+ if @api_client.config.client_side_validation && opts[:'live_holds'] && !allowable_values.include?(opts[:'live_holds'])
2957
+ fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
2958
+ end
2959
+ # resource path
2960
+ local_var_path = '/api/events/{eventId}/reports/deep-summary/by-availability.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2961
+
2962
+ # query parameters
2963
+ query_params = opts[:query_params] || {}
2964
+ query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
2965
+
2966
+ # header parameters
2967
+ header_params = opts[:header_params] || {}
2968
+
2969
+ # form parameters
2970
+ form_params = opts[:form_params] || {}
2971
+
2972
+ # http body (model)
2973
+ post_body = opts[:debug_body]
2974
+
2975
+ # return_type
2976
+ return_type = opts[:debug_return_type]
2977
+
2978
+ # auth_names
2979
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
2980
+
2981
+ new_options = opts.merge(
2982
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_deep_summary_by_availability_json",
2983
+ :header_params => header_params,
2984
+ :query_params => query_params,
2985
+ :form_params => form_params,
2986
+ :body => post_body,
2987
+ :auth_names => auth_names,
2988
+ :return_type => return_type
2989
+ )
2990
+
2991
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
2992
+ if @api_client.config.debugging
2993
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_deep_summary_by_availability_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2994
+ end
2995
+ return data, status_code, headers
2996
+ end
2997
+
2998
+ # Deep summary report by availability reason
2999
+ # seats.io deep summary by availabilityReason: the buckets of the summary by availabilityReason, each with `deep` — one full summary bucket per section (named in `deepBy`). Each bucket: `count` (places — 1 per seat, capacity per GA area), `objects`, `seats`, `gaPlaces`, and nested `byStatus`, `byAvailability`, `byAvailabilityReason`, `byCategory`, `bySection`, `byZone`, `byChannel`, `byObjectType`. GA areas are split by place, so one area can contribute to several availability buckets. `totals` sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
3000
+ # @param event_id [String]
3001
+ # @param [Hash] opts the optional parameters
3002
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
3003
+ # @return [nil]
3004
+ def get_api_events_by_event_id_reports_deep_summary_by_availability_reason_json(event_id, opts = {})
3005
+ get_api_events_by_event_id_reports_deep_summary_by_availability_reason_json_with_http_info(event_id, opts)
3006
+ nil
3007
+ end
3008
+
3009
+ # Deep summary report by availability reason
3010
+ # seats.io deep summary by availabilityReason: the buckets of the summary by availabilityReason, each with &#x60;deep&#x60; — one full summary bucket per section (named in &#x60;deepBy&#x60;). Each bucket: &#x60;count&#x60; (places — 1 per seat, capacity per GA area), &#x60;objects&#x60;, &#x60;seats&#x60;, &#x60;gaPlaces&#x60;, and nested &#x60;byStatus&#x60;, &#x60;byAvailability&#x60;, &#x60;byAvailabilityReason&#x60;, &#x60;byCategory&#x60;, &#x60;bySection&#x60;, &#x60;byZone&#x60;, &#x60;byChannel&#x60;, &#x60;byObjectType&#x60;. GA areas are split by place, so one area can contribute to several availability buckets. &#x60;totals&#x60; sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
3011
+ # @param event_id [String]
3012
+ # @param [Hash] opts the optional parameters
3013
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
3014
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
3015
+ def get_api_events_by_event_id_reports_deep_summary_by_availability_reason_json_with_http_info(event_id, opts = {})
3016
+ if @api_client.config.debugging
3017
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_deep_summary_by_availability_reason_json ...'
3018
+ end
3019
+ # verify the required parameter 'event_id' is set
3020
+ if @api_client.config.client_side_validation && event_id.nil?
3021
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_availability_reason_json"
3022
+ end
3023
+ pattern = Regexp.new(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)
3024
+ if @api_client.config.client_side_validation && event_id !~ pattern
3025
+ fail ArgumentError, "invalid value for 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_availability_reason_json, must conform to the pattern #{pattern}."
3026
+ end
3027
+
3028
+ allowable_values = ["true", "false"]
3029
+ if @api_client.config.client_side_validation && opts[:'live_holds'] && !allowable_values.include?(opts[:'live_holds'])
3030
+ fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
3031
+ end
3032
+ # resource path
3033
+ local_var_path = '/api/events/{eventId}/reports/deep-summary/by-availability-reason.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
3034
+
3035
+ # query parameters
3036
+ query_params = opts[:query_params] || {}
3037
+ query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
3038
+
3039
+ # header parameters
3040
+ header_params = opts[:header_params] || {}
3041
+
3042
+ # form parameters
3043
+ form_params = opts[:form_params] || {}
3044
+
3045
+ # http body (model)
3046
+ post_body = opts[:debug_body]
3047
+
3048
+ # return_type
3049
+ return_type = opts[:debug_return_type]
3050
+
3051
+ # auth_names
3052
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
3053
+
3054
+ new_options = opts.merge(
3055
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_deep_summary_by_availability_reason_json",
3056
+ :header_params => header_params,
3057
+ :query_params => query_params,
3058
+ :form_params => form_params,
3059
+ :body => post_body,
3060
+ :auth_names => auth_names,
3061
+ :return_type => return_type
3062
+ )
3063
+
3064
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
3065
+ if @api_client.config.debugging
3066
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_deep_summary_by_availability_reason_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3067
+ end
3068
+ return data, status_code, headers
3069
+ end
3070
+
3071
+ # Deep summary report by category
3072
+ # seats.io deep summary by category: the buckets of the summary by category, each with `deep` — one full summary bucket per section (named in `deepBy`). Each bucket: `count` (places — 1 per seat, capacity per GA area), `objects`, `seats`, `gaPlaces`, and nested `byStatus`, `byAvailability`, `byAvailabilityReason`, `byCategory`, `bySection`, `byZone`, `byChannel`, `byObjectType`. GA areas are split by place, so one area can contribute to several availability buckets. `totals` sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
3073
+ # @param event_id [String]
3074
+ # @param [Hash] opts the optional parameters
3075
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
3076
+ # @return [nil]
3077
+ def get_api_events_by_event_id_reports_deep_summary_by_category_json(event_id, opts = {})
3078
+ get_api_events_by_event_id_reports_deep_summary_by_category_json_with_http_info(event_id, opts)
3079
+ nil
3080
+ end
3081
+
3082
+ # Deep summary report by category
3083
+ # seats.io deep summary by category: the buckets of the summary by category, each with &#x60;deep&#x60; — one full summary bucket per section (named in &#x60;deepBy&#x60;). Each bucket: &#x60;count&#x60; (places — 1 per seat, capacity per GA area), &#x60;objects&#x60;, &#x60;seats&#x60;, &#x60;gaPlaces&#x60;, and nested &#x60;byStatus&#x60;, &#x60;byAvailability&#x60;, &#x60;byAvailabilityReason&#x60;, &#x60;byCategory&#x60;, &#x60;bySection&#x60;, &#x60;byZone&#x60;, &#x60;byChannel&#x60;, &#x60;byObjectType&#x60;. GA areas are split by place, so one area can contribute to several availability buckets. &#x60;totals&#x60; sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
3084
+ # @param event_id [String]
3085
+ # @param [Hash] opts the optional parameters
3086
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
3087
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
3088
+ def get_api_events_by_event_id_reports_deep_summary_by_category_json_with_http_info(event_id, opts = {})
3089
+ if @api_client.config.debugging
3090
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_deep_summary_by_category_json ...'
3091
+ end
3092
+ # verify the required parameter 'event_id' is set
3093
+ if @api_client.config.client_side_validation && event_id.nil?
3094
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_category_json"
3095
+ end
3096
+ pattern = Regexp.new(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)
3097
+ if @api_client.config.client_side_validation && event_id !~ pattern
3098
+ fail ArgumentError, "invalid value for 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_category_json, must conform to the pattern #{pattern}."
3099
+ end
3100
+
3101
+ allowable_values = ["true", "false"]
3102
+ if @api_client.config.client_side_validation && opts[:'live_holds'] && !allowable_values.include?(opts[:'live_holds'])
3103
+ fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
3104
+ end
3105
+ # resource path
3106
+ local_var_path = '/api/events/{eventId}/reports/deep-summary/by-category.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
3107
+
3108
+ # query parameters
3109
+ query_params = opts[:query_params] || {}
3110
+ query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
3111
+
3112
+ # header parameters
3113
+ header_params = opts[:header_params] || {}
3114
+
3115
+ # form parameters
3116
+ form_params = opts[:form_params] || {}
3117
+
3118
+ # http body (model)
3119
+ post_body = opts[:debug_body]
3120
+
3121
+ # return_type
3122
+ return_type = opts[:debug_return_type]
3123
+
3124
+ # auth_names
3125
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
3126
+
3127
+ new_options = opts.merge(
3128
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_deep_summary_by_category_json",
3129
+ :header_params => header_params,
3130
+ :query_params => query_params,
3131
+ :form_params => form_params,
3132
+ :body => post_body,
3133
+ :auth_names => auth_names,
3134
+ :return_type => return_type
3135
+ )
3136
+
3137
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
3138
+ if @api_client.config.debugging
3139
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_deep_summary_by_category_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3140
+ end
3141
+ return data, status_code, headers
3142
+ end
3143
+
3144
+ # Deep summary report by category key
3145
+ # seats.io deep summary by categoryKey: the buckets of the summary by categoryKey, each with `deep` — one full summary bucket per section (named in `deepBy`). Each bucket: `count` (places — 1 per seat, capacity per GA area), `objects`, `seats`, `gaPlaces`, and nested `byStatus`, `byAvailability`, `byAvailabilityReason`, `byCategory`, `bySection`, `byZone`, `byChannel`, `byObjectType`. GA areas are split by place, so one area can contribute to several availability buckets. `totals` sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
3146
+ # @param event_id [String]
3147
+ # @param [Hash] opts the optional parameters
3148
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
3149
+ # @return [nil]
3150
+ def get_api_events_by_event_id_reports_deep_summary_by_category_key_json(event_id, opts = {})
3151
+ get_api_events_by_event_id_reports_deep_summary_by_category_key_json_with_http_info(event_id, opts)
3152
+ nil
3153
+ end
3154
+
3155
+ # Deep summary report by category key
3156
+ # seats.io deep summary by categoryKey: the buckets of the summary by categoryKey, each with &#x60;deep&#x60; — one full summary bucket per section (named in &#x60;deepBy&#x60;). Each bucket: &#x60;count&#x60; (places — 1 per seat, capacity per GA area), &#x60;objects&#x60;, &#x60;seats&#x60;, &#x60;gaPlaces&#x60;, and nested &#x60;byStatus&#x60;, &#x60;byAvailability&#x60;, &#x60;byAvailabilityReason&#x60;, &#x60;byCategory&#x60;, &#x60;bySection&#x60;, &#x60;byZone&#x60;, &#x60;byChannel&#x60;, &#x60;byObjectType&#x60;. GA areas are split by place, so one area can contribute to several availability buckets. &#x60;totals&#x60; sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
3157
+ # @param event_id [String]
3158
+ # @param [Hash] opts the optional parameters
3159
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
3160
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
3161
+ def get_api_events_by_event_id_reports_deep_summary_by_category_key_json_with_http_info(event_id, opts = {})
3162
+ if @api_client.config.debugging
3163
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_deep_summary_by_category_key_json ...'
3164
+ end
3165
+ # verify the required parameter 'event_id' is set
3166
+ if @api_client.config.client_side_validation && event_id.nil?
3167
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_category_key_json"
3168
+ end
3169
+ pattern = Regexp.new(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)
3170
+ if @api_client.config.client_side_validation && event_id !~ pattern
3171
+ fail ArgumentError, "invalid value for 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_category_key_json, must conform to the pattern #{pattern}."
3172
+ end
3173
+
3174
+ allowable_values = ["true", "false"]
3175
+ if @api_client.config.client_side_validation && opts[:'live_holds'] && !allowable_values.include?(opts[:'live_holds'])
3176
+ fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
3177
+ end
3178
+ # resource path
3179
+ local_var_path = '/api/events/{eventId}/reports/deep-summary/by-category-key.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
3180
+
3181
+ # query parameters
3182
+ query_params = opts[:query_params] || {}
3183
+ query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
3184
+
3185
+ # header parameters
3186
+ header_params = opts[:header_params] || {}
3187
+
3188
+ # form parameters
3189
+ form_params = opts[:form_params] || {}
3190
+
3191
+ # http body (model)
3192
+ post_body = opts[:debug_body]
3193
+
3194
+ # return_type
3195
+ return_type = opts[:debug_return_type]
3196
+
3197
+ # auth_names
3198
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
3199
+
3200
+ new_options = opts.merge(
3201
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_deep_summary_by_category_key_json",
3202
+ :header_params => header_params,
3203
+ :query_params => query_params,
3204
+ :form_params => form_params,
3205
+ :body => post_body,
3206
+ :auth_names => auth_names,
3207
+ :return_type => return_type
3208
+ )
3209
+
3210
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
3211
+ if @api_client.config.debugging
3212
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_deep_summary_by_category_key_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3213
+ end
3214
+ return data, status_code, headers
3215
+ end
3216
+
3217
+ # Deep summary report by category label
3218
+ # seats.io deep summary by categoryLabel: the buckets of the summary by categoryLabel, each with `deep` — one full summary bucket per section (named in `deepBy`). Each bucket: `count` (places — 1 per seat, capacity per GA area), `objects`, `seats`, `gaPlaces`, and nested `byStatus`, `byAvailability`, `byAvailabilityReason`, `byCategory`, `bySection`, `byZone`, `byChannel`, `byObjectType`. GA areas are split by place, so one area can contribute to several availability buckets. `totals` sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
3219
+ # @param event_id [String]
3220
+ # @param [Hash] opts the optional parameters
3221
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
3222
+ # @return [nil]
3223
+ def get_api_events_by_event_id_reports_deep_summary_by_category_label_json(event_id, opts = {})
3224
+ get_api_events_by_event_id_reports_deep_summary_by_category_label_json_with_http_info(event_id, opts)
3225
+ nil
3226
+ end
3227
+
3228
+ # Deep summary report by category label
3229
+ # seats.io deep summary by categoryLabel: the buckets of the summary by categoryLabel, each with &#x60;deep&#x60; — one full summary bucket per section (named in &#x60;deepBy&#x60;). Each bucket: &#x60;count&#x60; (places — 1 per seat, capacity per GA area), &#x60;objects&#x60;, &#x60;seats&#x60;, &#x60;gaPlaces&#x60;, and nested &#x60;byStatus&#x60;, &#x60;byAvailability&#x60;, &#x60;byAvailabilityReason&#x60;, &#x60;byCategory&#x60;, &#x60;bySection&#x60;, &#x60;byZone&#x60;, &#x60;byChannel&#x60;, &#x60;byObjectType&#x60;. GA areas are split by place, so one area can contribute to several availability buckets. &#x60;totals&#x60; sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
3230
+ # @param event_id [String]
3231
+ # @param [Hash] opts the optional parameters
3232
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
3233
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
3234
+ def get_api_events_by_event_id_reports_deep_summary_by_category_label_json_with_http_info(event_id, opts = {})
3235
+ if @api_client.config.debugging
3236
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_deep_summary_by_category_label_json ...'
3237
+ end
3238
+ # verify the required parameter 'event_id' is set
3239
+ if @api_client.config.client_side_validation && event_id.nil?
3240
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_category_label_json"
3241
+ end
3242
+ pattern = Regexp.new(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)
3243
+ if @api_client.config.client_side_validation && event_id !~ pattern
3244
+ fail ArgumentError, "invalid value for 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_category_label_json, must conform to the pattern #{pattern}."
3245
+ end
3246
+
3247
+ allowable_values = ["true", "false"]
3248
+ if @api_client.config.client_side_validation && opts[:'live_holds'] && !allowable_values.include?(opts[:'live_holds'])
3249
+ fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
3250
+ end
3251
+ # resource path
3252
+ local_var_path = '/api/events/{eventId}/reports/deep-summary/by-category-label.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
3253
+
3254
+ # query parameters
3255
+ query_params = opts[:query_params] || {}
3256
+ query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
3257
+
3258
+ # header parameters
3259
+ header_params = opts[:header_params] || {}
3260
+
3261
+ # form parameters
3262
+ form_params = opts[:form_params] || {}
3263
+
3264
+ # http body (model)
3265
+ post_body = opts[:debug_body]
3266
+
3267
+ # return_type
3268
+ return_type = opts[:debug_return_type]
3269
+
3270
+ # auth_names
3271
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
3272
+
3273
+ new_options = opts.merge(
3274
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_deep_summary_by_category_label_json",
3275
+ :header_params => header_params,
3276
+ :query_params => query_params,
3277
+ :form_params => form_params,
3278
+ :body => post_body,
3279
+ :auth_names => auth_names,
3280
+ :return_type => return_type
3281
+ )
3282
+
3283
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
3284
+ if @api_client.config.debugging
3285
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_deep_summary_by_category_label_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3286
+ end
3287
+ return data, status_code, headers
3288
+ end
3289
+
3290
+ # Deep summary report by channel
3291
+ # seats.io deep summary by channel: the buckets of the summary by channel, each with `deep` — one full summary bucket per section (named in `deepBy`). Each bucket: `count` (places — 1 per seat, capacity per GA area), `objects`, `seats`, `gaPlaces`, and nested `byStatus`, `byAvailability`, `byAvailabilityReason`, `byCategory`, `bySection`, `byZone`, `byChannel`, `byObjectType`. GA areas are split by place, so one area can contribute to several availability buckets. `totals` sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
3292
+ # @param event_id [String]
3293
+ # @param [Hash] opts the optional parameters
3294
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
3295
+ # @return [nil]
3296
+ def get_api_events_by_event_id_reports_deep_summary_by_channel_json(event_id, opts = {})
3297
+ get_api_events_by_event_id_reports_deep_summary_by_channel_json_with_http_info(event_id, opts)
3298
+ nil
3299
+ end
3300
+
3301
+ # Deep summary report by channel
3302
+ # seats.io deep summary by channel: the buckets of the summary by channel, each with &#x60;deep&#x60; — one full summary bucket per section (named in &#x60;deepBy&#x60;). Each bucket: &#x60;count&#x60; (places — 1 per seat, capacity per GA area), &#x60;objects&#x60;, &#x60;seats&#x60;, &#x60;gaPlaces&#x60;, and nested &#x60;byStatus&#x60;, &#x60;byAvailability&#x60;, &#x60;byAvailabilityReason&#x60;, &#x60;byCategory&#x60;, &#x60;bySection&#x60;, &#x60;byZone&#x60;, &#x60;byChannel&#x60;, &#x60;byObjectType&#x60;. GA areas are split by place, so one area can contribute to several availability buckets. &#x60;totals&#x60; sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
3303
+ # @param event_id [String]
3304
+ # @param [Hash] opts the optional parameters
3305
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
3306
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
3307
+ def get_api_events_by_event_id_reports_deep_summary_by_channel_json_with_http_info(event_id, opts = {})
3308
+ if @api_client.config.debugging
3309
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_deep_summary_by_channel_json ...'
3310
+ end
3311
+ # verify the required parameter 'event_id' is set
3312
+ if @api_client.config.client_side_validation && event_id.nil?
3313
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_channel_json"
3314
+ end
3315
+ pattern = Regexp.new(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)
3316
+ if @api_client.config.client_side_validation && event_id !~ pattern
3317
+ fail ArgumentError, "invalid value for 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_channel_json, must conform to the pattern #{pattern}."
3318
+ end
3319
+
3320
+ allowable_values = ["true", "false"]
3321
+ if @api_client.config.client_side_validation && opts[:'live_holds'] && !allowable_values.include?(opts[:'live_holds'])
3322
+ fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
3323
+ end
3324
+ # resource path
3325
+ local_var_path = '/api/events/{eventId}/reports/deep-summary/by-channel.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
3326
+
3327
+ # query parameters
3328
+ query_params = opts[:query_params] || {}
3329
+ query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
3330
+
3331
+ # header parameters
3332
+ header_params = opts[:header_params] || {}
3333
+
3334
+ # form parameters
3335
+ form_params = opts[:form_params] || {}
3336
+
3337
+ # http body (model)
3338
+ post_body = opts[:debug_body]
3339
+
3340
+ # return_type
3341
+ return_type = opts[:debug_return_type]
3342
+
3343
+ # auth_names
3344
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
3345
+
3346
+ new_options = opts.merge(
3347
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_deep_summary_by_channel_json",
3348
+ :header_params => header_params,
3349
+ :query_params => query_params,
3350
+ :form_params => form_params,
3351
+ :body => post_body,
3352
+ :auth_names => auth_names,
3353
+ :return_type => return_type
3354
+ )
3355
+
3356
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
3357
+ if @api_client.config.debugging
3358
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_deep_summary_by_channel_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3359
+ end
3360
+ return data, status_code, headers
3361
+ end
3362
+
3363
+ # Deep summary report by object type
3364
+ # seats.io deep summary by objectType: the buckets of the summary by objectType, each with `deep` — one full summary bucket per section (named in `deepBy`). Each bucket: `count` (places — 1 per seat, capacity per GA area), `objects`, `seats`, `gaPlaces`, and nested `byStatus`, `byAvailability`, `byAvailabilityReason`, `byCategory`, `bySection`, `byZone`, `byChannel`, `byObjectType`. GA areas are split by place, so one area can contribute to several availability buckets. `totals` sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
3365
+ # @param event_id [String]
3366
+ # @param [Hash] opts the optional parameters
3367
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
3368
+ # @return [nil]
3369
+ def get_api_events_by_event_id_reports_deep_summary_by_object_type_json(event_id, opts = {})
3370
+ get_api_events_by_event_id_reports_deep_summary_by_object_type_json_with_http_info(event_id, opts)
3371
+ nil
3372
+ end
3373
+
3374
+ # Deep summary report by object type
3375
+ # seats.io deep summary by objectType: the buckets of the summary by objectType, each with &#x60;deep&#x60; — one full summary bucket per section (named in &#x60;deepBy&#x60;). Each bucket: &#x60;count&#x60; (places — 1 per seat, capacity per GA area), &#x60;objects&#x60;, &#x60;seats&#x60;, &#x60;gaPlaces&#x60;, and nested &#x60;byStatus&#x60;, &#x60;byAvailability&#x60;, &#x60;byAvailabilityReason&#x60;, &#x60;byCategory&#x60;, &#x60;bySection&#x60;, &#x60;byZone&#x60;, &#x60;byChannel&#x60;, &#x60;byObjectType&#x60;. GA areas are split by place, so one area can contribute to several availability buckets. &#x60;totals&#x60; sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
3376
+ # @param event_id [String]
3377
+ # @param [Hash] opts the optional parameters
3378
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
3379
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
3380
+ def get_api_events_by_event_id_reports_deep_summary_by_object_type_json_with_http_info(event_id, opts = {})
3381
+ if @api_client.config.debugging
3382
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_deep_summary_by_object_type_json ...'
3383
+ end
3384
+ # verify the required parameter 'event_id' is set
3385
+ if @api_client.config.client_side_validation && event_id.nil?
3386
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_object_type_json"
3387
+ end
3388
+ pattern = Regexp.new(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)
3389
+ if @api_client.config.client_side_validation && event_id !~ pattern
3390
+ fail ArgumentError, "invalid value for 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_object_type_json, must conform to the pattern #{pattern}."
3391
+ end
3392
+
3393
+ allowable_values = ["true", "false"]
3394
+ if @api_client.config.client_side_validation && opts[:'live_holds'] && !allowable_values.include?(opts[:'live_holds'])
3395
+ fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
3396
+ end
3397
+ # resource path
3398
+ local_var_path = '/api/events/{eventId}/reports/deep-summary/by-object-type.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
3399
+
3400
+ # query parameters
3401
+ query_params = opts[:query_params] || {}
3402
+ query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
3403
+
3404
+ # header parameters
3405
+ header_params = opts[:header_params] || {}
3406
+
3407
+ # form parameters
3408
+ form_params = opts[:form_params] || {}
3409
+
3410
+ # http body (model)
3411
+ post_body = opts[:debug_body]
3412
+
3413
+ # return_type
3414
+ return_type = opts[:debug_return_type]
3415
+
3416
+ # auth_names
3417
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
3418
+
3419
+ new_options = opts.merge(
3420
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_deep_summary_by_object_type_json",
3421
+ :header_params => header_params,
3422
+ :query_params => query_params,
3423
+ :form_params => form_params,
3424
+ :body => post_body,
3425
+ :auth_names => auth_names,
3426
+ :return_type => return_type
3427
+ )
3428
+
3429
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
3430
+ if @api_client.config.debugging
3431
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_deep_summary_by_object_type_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3432
+ end
3433
+ return data, status_code, headers
3434
+ end
3435
+
3436
+ # Deep summary report by section
3437
+ # seats.io deep summary by section: the buckets of the summary by section, each with `deep` — one full summary bucket per status (named in `deepBy`). Each bucket: `count` (places — 1 per seat, capacity per GA area), `objects`, `seats`, `gaPlaces`, and nested `byStatus`, `byAvailability`, `byAvailabilityReason`, `byCategory`, `bySection`, `byZone`, `byChannel`, `byObjectType`. GA areas are split by place, so one area can contribute to several availability buckets. `totals` sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
3438
+ # @param event_id [String]
3439
+ # @param [Hash] opts the optional parameters
3440
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
3441
+ # @return [nil]
3442
+ def get_api_events_by_event_id_reports_deep_summary_by_section_json(event_id, opts = {})
3443
+ get_api_events_by_event_id_reports_deep_summary_by_section_json_with_http_info(event_id, opts)
3444
+ nil
3445
+ end
3446
+
3447
+ # Deep summary report by section
3448
+ # seats.io deep summary by section: the buckets of the summary by section, each with &#x60;deep&#x60; — one full summary bucket per status (named in &#x60;deepBy&#x60;). Each bucket: &#x60;count&#x60; (places — 1 per seat, capacity per GA area), &#x60;objects&#x60;, &#x60;seats&#x60;, &#x60;gaPlaces&#x60;, and nested &#x60;byStatus&#x60;, &#x60;byAvailability&#x60;, &#x60;byAvailabilityReason&#x60;, &#x60;byCategory&#x60;, &#x60;bySection&#x60;, &#x60;byZone&#x60;, &#x60;byChannel&#x60;, &#x60;byObjectType&#x60;. GA areas are split by place, so one area can contribute to several availability buckets. &#x60;totals&#x60; sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
3449
+ # @param event_id [String]
3450
+ # @param [Hash] opts the optional parameters
3451
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
3452
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
3453
+ def get_api_events_by_event_id_reports_deep_summary_by_section_json_with_http_info(event_id, opts = {})
3454
+ if @api_client.config.debugging
3455
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_deep_summary_by_section_json ...'
3456
+ end
3457
+ # verify the required parameter 'event_id' is set
3458
+ if @api_client.config.client_side_validation && event_id.nil?
3459
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_section_json"
3460
+ end
3461
+ pattern = Regexp.new(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)
3462
+ if @api_client.config.client_side_validation && event_id !~ pattern
3463
+ fail ArgumentError, "invalid value for 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_section_json, must conform to the pattern #{pattern}."
3464
+ end
3465
+
3466
+ allowable_values = ["true", "false"]
3467
+ if @api_client.config.client_side_validation && opts[:'live_holds'] && !allowable_values.include?(opts[:'live_holds'])
3468
+ fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
3469
+ end
3470
+ # resource path
3471
+ local_var_path = '/api/events/{eventId}/reports/deep-summary/by-section.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
3472
+
3473
+ # query parameters
3474
+ query_params = opts[:query_params] || {}
3475
+ query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
3476
+
3477
+ # header parameters
3478
+ header_params = opts[:header_params] || {}
3479
+
3480
+ # form parameters
3481
+ form_params = opts[:form_params] || {}
3482
+
3483
+ # http body (model)
3484
+ post_body = opts[:debug_body]
3485
+
3486
+ # return_type
3487
+ return_type = opts[:debug_return_type]
3488
+
3489
+ # auth_names
3490
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
3491
+
3492
+ new_options = opts.merge(
3493
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_deep_summary_by_section_json",
3494
+ :header_params => header_params,
3495
+ :query_params => query_params,
3496
+ :form_params => form_params,
3497
+ :body => post_body,
3498
+ :auth_names => auth_names,
3499
+ :return_type => return_type
3500
+ )
3501
+
3502
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
3503
+ if @api_client.config.debugging
3504
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_deep_summary_by_section_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3505
+ end
3506
+ return data, status_code, headers
3507
+ end
3508
+
3509
+ # Deep summary report by status
3510
+ # seats.io deep summary by status: the buckets of the summary by status, each with `deep` — one full summary bucket per section (named in `deepBy`). Each bucket: `count` (places — 1 per seat, capacity per GA area), `objects`, `seats`, `gaPlaces`, and nested `byStatus`, `byAvailability`, `byAvailabilityReason`, `byCategory`, `bySection`, `byZone`, `byChannel`, `byObjectType`. GA areas are split by place, so one area can contribute to several availability buckets. `totals` sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
3511
+ # @param event_id [String]
3512
+ # @param [Hash] opts the optional parameters
3513
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
3514
+ # @return [nil]
3515
+ def get_api_events_by_event_id_reports_deep_summary_by_status_json(event_id, opts = {})
3516
+ get_api_events_by_event_id_reports_deep_summary_by_status_json_with_http_info(event_id, opts)
3517
+ nil
3518
+ end
3519
+
3520
+ # Deep summary report by status
3521
+ # seats.io deep summary by status: the buckets of the summary by status, each with &#x60;deep&#x60; — one full summary bucket per section (named in &#x60;deepBy&#x60;). Each bucket: &#x60;count&#x60; (places — 1 per seat, capacity per GA area), &#x60;objects&#x60;, &#x60;seats&#x60;, &#x60;gaPlaces&#x60;, and nested &#x60;byStatus&#x60;, &#x60;byAvailability&#x60;, &#x60;byAvailabilityReason&#x60;, &#x60;byCategory&#x60;, &#x60;bySection&#x60;, &#x60;byZone&#x60;, &#x60;byChannel&#x60;, &#x60;byObjectType&#x60;. GA areas are split by place, so one area can contribute to several availability buckets. &#x60;totals&#x60; sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
3522
+ # @param event_id [String]
3523
+ # @param [Hash] opts the optional parameters
3524
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
3525
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
3526
+ def get_api_events_by_event_id_reports_deep_summary_by_status_json_with_http_info(event_id, opts = {})
3527
+ if @api_client.config.debugging
3528
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_deep_summary_by_status_json ...'
3529
+ end
3530
+ # verify the required parameter 'event_id' is set
3531
+ if @api_client.config.client_side_validation && event_id.nil?
3532
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_status_json"
3533
+ end
3534
+ pattern = Regexp.new(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)
3535
+ if @api_client.config.client_side_validation && event_id !~ pattern
3536
+ fail ArgumentError, "invalid value for 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_status_json, must conform to the pattern #{pattern}."
3537
+ end
3538
+
3539
+ allowable_values = ["true", "false"]
3540
+ if @api_client.config.client_side_validation && opts[:'live_holds'] && !allowable_values.include?(opts[:'live_holds'])
3541
+ fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
3542
+ end
3543
+ # resource path
3544
+ local_var_path = '/api/events/{eventId}/reports/deep-summary/by-status.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
3545
+
3546
+ # query parameters
3547
+ query_params = opts[:query_params] || {}
3548
+ query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
3549
+
3550
+ # header parameters
3551
+ header_params = opts[:header_params] || {}
3552
+
3553
+ # form parameters
3554
+ form_params = opts[:form_params] || {}
3555
+
3556
+ # http body (model)
3557
+ post_body = opts[:debug_body]
3558
+
3559
+ # return_type
3560
+ return_type = opts[:debug_return_type]
3561
+
3562
+ # auth_names
3563
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
3564
+
3565
+ new_options = opts.merge(
3566
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_deep_summary_by_status_json",
3567
+ :header_params => header_params,
3568
+ :query_params => query_params,
3569
+ :form_params => form_params,
3570
+ :body => post_body,
3571
+ :auth_names => auth_names,
3572
+ :return_type => return_type
3573
+ )
3574
+
3575
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
3576
+ if @api_client.config.debugging
3577
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_deep_summary_by_status_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3578
+ end
3579
+ return data, status_code, headers
3580
+ end
3581
+
3582
+ # Deep summary report by zone
3583
+ # seats.io deep summary by zone: the buckets of the summary by zone, each with `deep` — one full summary bucket per section (named in `deepBy`). Each bucket: `count` (places — 1 per seat, capacity per GA area), `objects`, `seats`, `gaPlaces`, and nested `byStatus`, `byAvailability`, `byAvailabilityReason`, `byCategory`, `bySection`, `byZone`, `byChannel`, `byObjectType`. GA areas are split by place, so one area can contribute to several availability buckets. `totals` sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
3584
+ # @param event_id [String]
3585
+ # @param [Hash] opts the optional parameters
3586
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
3587
+ # @return [nil]
3588
+ def get_api_events_by_event_id_reports_deep_summary_by_zone_json(event_id, opts = {})
3589
+ get_api_events_by_event_id_reports_deep_summary_by_zone_json_with_http_info(event_id, opts)
3590
+ nil
3591
+ end
3592
+
3593
+ # Deep summary report by zone
3594
+ # seats.io deep summary by zone: the buckets of the summary by zone, each with &#x60;deep&#x60; — one full summary bucket per section (named in &#x60;deepBy&#x60;). Each bucket: &#x60;count&#x60; (places — 1 per seat, capacity per GA area), &#x60;objects&#x60;, &#x60;seats&#x60;, &#x60;gaPlaces&#x60;, and nested &#x60;byStatus&#x60;, &#x60;byAvailability&#x60;, &#x60;byAvailabilityReason&#x60;, &#x60;byCategory&#x60;, &#x60;bySection&#x60;, &#x60;byZone&#x60;, &#x60;byChannel&#x60;, &#x60;byObjectType&#x60;. GA areas are split by place, so one area can contribute to several availability buckets. &#x60;totals&#x60; sums every bucket. Missing keys use NO_CATEGORY / NO_SECTION / NO_ZONE / NO_CHANNEL. Requires content_write (or a partner API key with the reports scope).
3595
+ # @param event_id [String]
3596
+ # @param [Hash] opts the optional parameters
3597
+ # @option opts [String] :live_holds Merge active buyer holds from the per-event hold index (default &#x60;true&#x60;). &#x60;false&#x60; &#x3D; Postgres only.
3598
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
3599
+ def get_api_events_by_event_id_reports_deep_summary_by_zone_json_with_http_info(event_id, opts = {})
3600
+ if @api_client.config.debugging
3601
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_deep_summary_by_zone_json ...'
3602
+ end
3603
+ # verify the required parameter 'event_id' is set
3604
+ if @api_client.config.client_side_validation && event_id.nil?
3605
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_zone_json"
3606
+ end
3607
+ pattern = Regexp.new(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/)
3608
+ if @api_client.config.client_side_validation && event_id !~ pattern
3609
+ fail ArgumentError, "invalid value for 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_zone_json, must conform to the pattern #{pattern}."
3610
+ end
3611
+
3612
+ allowable_values = ["true", "false"]
3613
+ if @api_client.config.client_side_validation && opts[:'live_holds'] && !allowable_values.include?(opts[:'live_holds'])
3614
+ fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
3615
+ end
3616
+ # resource path
3617
+ local_var_path = '/api/events/{eventId}/reports/deep-summary/by-zone.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2472
3618
 
2473
3619
  # query parameters
2474
3620
  query_params = opts[:query_params] || {}
2475
- query_params[:'zone'] = opts[:'zone'] if !opts[:'zone'].nil?
2476
3621
  query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
2477
3622
 
2478
3623
  # header parameters
@@ -2491,7 +3636,7 @@ module SeatsChart
2491
3636
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
2492
3637
 
2493
3638
  new_options = opts.merge(
2494
- :operation => :"EventsApi.get_api_events_by_event_id_reports_by_zone_json",
3639
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_deep_summary_by_zone_json",
2495
3640
  :header_params => header_params,
2496
3641
  :query_params => query_params,
2497
3642
  :form_params => form_params,
@@ -2502,7 +3647,7 @@ module SeatsChart
2502
3647
 
2503
3648
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
2504
3649
  if @api_client.config.debugging
2505
- @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_by_zone_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3650
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_deep_summary_by_zone_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2506
3651
  end
2507
3652
  return data, status_code, headers
2508
3653
  end
@@ -4435,7 +5580,7 @@ module SeatsChart
4435
5580
  end
4436
5581
 
4437
5582
  # List seats for an event
4438
- # Returns the seat map (`dbStatus` from Postgres, `visualStatus` merged with live Redis locks) only when the event belongs to the authenticated tenant. Cache-aside key `event:{tenantId}:{eventId}:map` skips the Postgres scan on hits (`X-Seat-Map-Cache: hit|miss`) and merges live TTL locks into each build. Builds are shared per (tenant, event, view, channel cohort) and reused while the inventory version is unchanged, for at most 1 s (`X-Seat-Map-Microcache: hit|shared|miss|bypass`). Responses carry a weak `ETag` (If-None-Match → 304) and are br/gzip-encoded when accepted. Optional header **`x-channel-key`** authorizes an inventory partition (not salesChannel); several comma-separated keys (max 16) authorize every listed channel (renderer `channelKeys`), on reads, holds and best available alike. Buyers receive a masked payload (no channelKeyId); restricted seats without a matching key are non-bookable. channelKey→id resolution uses Redis memo `event:…:channel-keys` (no PG on cache hit when memo is warm). Optional `resalePriceCents` is merged at cache build from the overlay table — the seats SELECT list is unchanged.
5583
+ # Returns the seat map (`dbStatus` from Postgres, `visualStatus` merged with live Redis locks) only when the event belongs to the authenticated tenant. Cache-aside key `event:{tenantId}:{eventId}:map` skips the Postgres scan on hits (`X-Seat-Map-Cache: hit|miss`) and merges live TTL locks into each build. Builds are shared per (tenant, event, view, channel cohort) and reused while the inventory version is unchanged, for at most 1 s (`X-Seat-Map-Microcache: hit|shared|miss|bypass`). Responses carry a weak `ETag` (If-None-Match → 304) and are br/gzip-encoded when accepted. Optional header **`x-channel-key`** authorizes an inventory partition (not salesChannel); several comma-separated keys (max 16) authorize every listed channel (renderer `channelKeys`), on reads, holds and best available alike. Buyers receive a masked payload (no channelKeyId); restricted seats without a matching key are non-bookable. channelKey→id resolution uses Redis memo `event:…:channel-keys` (no PG on cache hit when memo is warm). Optional `resalePriceCents` is merged at cache build from the overlay table — the seats SELECT list is unchanged. `forSale` is the effective flag, the same one holds, confirmations and the viewer state use: a seat that is not for sale on its own but is in an active resale listing of a season member whose for-sale configuration does not follow the season (`forSalePropagated: false`) is reported with `forSale: true` and the additive marker `forSaleViaResale: true` (absent on every other seat). Both are decided at cache build from the event row and the cached listing context (no extra query on cache hits); listing and season for-sale changes invalidate the cached map.
4439
5584
  # @param event_id [String]
4440
5585
  # @param [Hash] opts the optional parameters
4441
5586
  # @return [nil]
@@ -4445,7 +5590,7 @@ module SeatsChart
4445
5590
  end
4446
5591
 
4447
5592
  # List seats for an event
4448
- # Returns the seat map (&#x60;dbStatus&#x60; from Postgres, &#x60;visualStatus&#x60; merged with live Redis locks) only when the event belongs to the authenticated tenant. Cache-aside key &#x60;event:{tenantId}:{eventId}:map&#x60; skips the Postgres scan on hits (&#x60;X-Seat-Map-Cache: hit|miss&#x60;) and merges live TTL locks into each build. Builds are shared per (tenant, event, view, channel cohort) and reused while the inventory version is unchanged, for at most 1 s (&#x60;X-Seat-Map-Microcache: hit|shared|miss|bypass&#x60;). Responses carry a weak &#x60;ETag&#x60; (If-None-Match → 304) and are br/gzip-encoded when accepted. Optional header **&#x60;x-channel-key&#x60;** authorizes an inventory partition (not salesChannel); several comma-separated keys (max 16) authorize every listed channel (renderer &#x60;channelKeys&#x60;), on reads, holds and best available alike. Buyers receive a masked payload (no channelKeyId); restricted seats without a matching key are non-bookable. channelKey→id resolution uses Redis memo &#x60;event:…:channel-keys&#x60; (no PG on cache hit when memo is warm). Optional &#x60;resalePriceCents&#x60; is merged at cache build from the overlay table — the seats SELECT list is unchanged.
5593
+ # Returns the seat map (&#x60;dbStatus&#x60; from Postgres, &#x60;visualStatus&#x60; merged with live Redis locks) only when the event belongs to the authenticated tenant. Cache-aside key &#x60;event:{tenantId}:{eventId}:map&#x60; skips the Postgres scan on hits (&#x60;X-Seat-Map-Cache: hit|miss&#x60;) and merges live TTL locks into each build. Builds are shared per (tenant, event, view, channel cohort) and reused while the inventory version is unchanged, for at most 1 s (&#x60;X-Seat-Map-Microcache: hit|shared|miss|bypass&#x60;). Responses carry a weak &#x60;ETag&#x60; (If-None-Match → 304) and are br/gzip-encoded when accepted. Optional header **&#x60;x-channel-key&#x60;** authorizes an inventory partition (not salesChannel); several comma-separated keys (max 16) authorize every listed channel (renderer &#x60;channelKeys&#x60;), on reads, holds and best available alike. Buyers receive a masked payload (no channelKeyId); restricted seats without a matching key are non-bookable. channelKey→id resolution uses Redis memo &#x60;event:…:channel-keys&#x60; (no PG on cache hit when memo is warm). Optional &#x60;resalePriceCents&#x60; is merged at cache build from the overlay table — the seats SELECT list is unchanged. &#x60;forSale&#x60; is the effective flag, the same one holds, confirmations and the viewer state use: a seat that is not for sale on its own but is in an active resale listing of a season member whose for-sale configuration does not follow the season (&#x60;forSalePropagated: false&#x60;) is reported with &#x60;forSale: true&#x60; and the additive marker &#x60;forSaleViaResale: true&#x60; (absent on every other seat). Both are decided at cache build from the event row and the cached listing context (no extra query on cache hits); listing and season for-sale changes invalidate the cached map.
4449
5594
  # @param event_id [String]
4450
5595
  # @param [Hash] opts the optional parameters
4451
5596
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
@@ -4786,7 +5931,7 @@ module SeatsChart
4786
5931
  end
4787
5932
 
4788
5933
  # Patch event: name, date, currency, overrides (isInThePast is irreversible)
4789
- # All fields optional. `date` is an ISO-8601 timestamp. `tableBookingConfig` overrides the chart table booking mode for this event only (`all_by_seat`, `all_by_table`, or `custom` with `tables: { tableId: by_seat | by_table }`); seat-to-table membership stays from the chart. `null` clears the override. Applied by reserve and in the published commercial layout. `categoryOverrides` **replaces** the per-event override map (keys = seat/GA `category` values; `null` clears all): `priceCents` sets the base price of every seat in the category (clearing it restores the chart price by seat label; ticket-type prices from the chart still take precedence), `tint` (#RRGGBB) recolors the category in this event's published geometry (republished atomically), `forSale: false` takes the category off sale (removing it puts it back on sale; retired seats stay off sale). `forSalePerCategory` (`{ category: boolean }`) toggles category availability without storing an override. Prices already accepted in orders never change. `key` sets, renames or clears (`null`) the event key (409 `event_key_taken`). **Chart switch** (`chartId`): moves the event to another published, non-archived chart of the workspace in **one transaction** with the event row and every seat/GA row locked in the commercial lock order. Seats are matched by `label`, GA areas by `name`: matched objects keep their ids (so holds, sales, orders and status history stay valid) and take the new geometry and category; sold/held/pending seats keep their price, other seats take the new chart price (or the category override). Unmatched objects without commercial state are removed, new chart objects are added (closed categories start not for sale), the event map draft is discarded and the geometry is republished atomically. Refused with **409 `chart_switch_conflict`** and nothing changed when a sold, held, pending or historical object has no counterpart, or a GA area would have less capacity than sold + held + withheld places: `objects: [{ objectId, label, objectType, reason: sold|held|pending|history|capacity, required?, capacity? }]`. Other refusals: 404 (chart), 409 `chart_not_published`, `chart_archived`, `season_chart_mismatch`. Emits `event.updated` with `changed_fields`. **Event categories** (seats.io event `categories` / `objectCategories`): `categories` **replaces** the event-only categories (`[{ key, label, color, accessible? }]`, max 128; keys and labels unique, and neither may reuse a chart category id or name: 400 `category_conflict`). They are added to this event's published layout categories (`{ id: key, name: label, tint, accessible }`), so the renderer, legend and filters show them. `objectCategories` **replaces** the object → category map (object label = seat label or GA area name; value = event category key, chart category id or chart category name; max 10000; unknown references: 400 `unknown_category` with `labels`). Assignments are resolved once, in this transaction: the objects' `category` becomes the category label (removing an assignment restores the previous category), reassigned seats take the price override of their new category (else the chart price) and close with a closed category, and the geometry is republished. Best available (`categories` filter), quotes, synced price tables (keyed by the label), sales rules, reports and the section aggregates of the renderer all see the event category. Events that use neither keep their geometry hash. Changes emit `event.categories_updated` (event log and admin webhook) and `event.updated` with `changed_fields` `categories` / `objectCategories`. Response: `{ id, key, name, date, currency, isInThePast, chartId, categoryOverrides, tableBookingConfig, categories, objectCategories, forSaleUpdated?, chartSwitch?: { previousChartId, chartId, keptSeats, addedSeats, removedSeats, keptGaAreas, addedGaAreas, removedGaAreas } }`.
5934
+ # All fields optional. `date` is an ISO-8601 timestamp. `tableBookingConfig` overrides the chart table booking mode for this event only (`all_by_seat`, `all_by_table`, or `custom` with `tables: { tableId: by_seat | by_table }`); seat-to-table membership stays from the chart. `null` clears the override. Applied by reserve and in the published commercial layout. `categoryOverrides` **replaces** the per-event override map (keys = seat/GA `category` values; `null` clears all): `priceCents` sets the base price of every seat in the category (clearing it restores the chart price by seat label; ticket-type prices from the chart still take precedence), `tint` (#RRGGBB) recolors the category in this event's published geometry (republished atomically), `forSale: false` takes the category off sale (removing it puts it back on sale; retired seats stay off sale). `forSalePerCategory` (`{ category: boolean }`) toggles category availability without storing an override. Prices already accepted in orders never change. `key` sets, renames or clears (`null`) the event key (409 `event_key_taken`). **Chart switch** (`chartId`): moves the event to another published, non-archived chart of the workspace in **one transaction** with the event row and every seat/GA row locked in the commercial lock order. Seats are matched by `label`, GA areas by `name`: matched objects keep their ids (so holds, sales, orders and status history stay valid) and take the new geometry and category; sold/held/pending seats keep their price, other seats take the new chart price (or the category override). Unmatched objects without commercial state are removed, new chart objects are added (closed categories start not for sale), the event map draft is discarded and the geometry is republished atomically. Refused with **409 `chart_switch_conflict`** and nothing changed when a sold, held, pending or historical object has no counterpart, a GA area would have less capacity than sold + held + withheld places, or a GA area with sold or held places would change how it is sold (`occupancy`: regular / fixed / variable occupancy, or the capacity / minimum of a whole area): `objects: [{ objectId, label, objectType, reason: sold|held|pending|history|capacity|occupancy, required?, capacity? }]`. Other refusals: 404 (chart), 409 `chart_not_published`, `chart_archived`, `season_chart_mismatch`. Emits `event.updated` with `changed_fields`. A switch that removes objects of active listings is refused with 409 `listing_objects_removed` (`listings`: id, key, `removedObjects`) unless `withdrawAffectedListings: true` withdraws them in the same transaction (409 `listing_has_holds` while held); `chartSwitch.withdrawnListings` lists them. **Event categories** (seats.io event `categories` / `objectCategories`): `categories` **replaces** the event-only categories (`[{ key, label, color, accessible? }]`, max 128; keys and labels unique, and neither may reuse a chart category id or name: 400 `category_conflict`). They are added to this event's published layout categories (`{ id: key, name: label, tint, accessible }`), so the renderer, legend and filters show them. `objectCategories` **replaces** the object → category map (object label = seat label or GA area name; value = event category key, chart category id or chart category name; max 10000; unknown references: 400 `unknown_category` with `labels`). Assignments are resolved once, in this transaction: the objects' `category` becomes the category label (removing an assignment restores the previous category), reassigned seats take the price override of their new category (else the chart price) and close with a closed category, and the geometry is republished. Best available (`categories` filter), quotes, synced price tables (keyed by the label), sales rules, reports and the section aggregates of the renderer all see the event category. Events that use neither keep their geometry hash. Changes emit `event.categories_updated` (event log and admin webhook) and `event.updated` with `changed_fields` `categories` / `objectCategories`. Response: `{ id, key, name, date, currency, isInThePast, chartId, categoryOverrides, tableBookingConfig, categories, objectCategories, forSaleUpdated?, chartSwitch?: { previousChartId, chartId, keptSeats, addedSeats, removedSeats, keptGaAreas, addedGaAreas, removedGaAreas } }`.
4790
5935
  # @param event_id [String]
4791
5936
  # @param patch_api_events_by_event_id_request [PatchApiEventsByEventIdRequest]
4792
5937
  # @param [Hash] opts the optional parameters
@@ -4798,7 +5943,7 @@ module SeatsChart
4798
5943
  end
4799
5944
 
4800
5945
  # Patch event: name, date, currency, overrides (isInThePast is irreversible)
4801
- # All fields optional. &#x60;date&#x60; is an ISO-8601 timestamp. &#x60;tableBookingConfig&#x60; overrides the chart table booking mode for this event only (&#x60;all_by_seat&#x60;, &#x60;all_by_table&#x60;, or &#x60;custom&#x60; with &#x60;tables: { tableId: by_seat | by_table }&#x60;); seat-to-table membership stays from the chart. &#x60;null&#x60; clears the override. Applied by reserve and in the published commercial layout. &#x60;categoryOverrides&#x60; **replaces** the per-event override map (keys &#x3D; seat/GA &#x60;category&#x60; values; &#x60;null&#x60; clears all): &#x60;priceCents&#x60; sets the base price of every seat in the category (clearing it restores the chart price by seat label; ticket-type prices from the chart still take precedence), &#x60;tint&#x60; (#RRGGBB) recolors the category in this event&#39;s published geometry (republished atomically), &#x60;forSale: false&#x60; takes the category off sale (removing it puts it back on sale; retired seats stay off sale). &#x60;forSalePerCategory&#x60; (&#x60;{ category: boolean }&#x60;) toggles category availability without storing an override. Prices already accepted in orders never change. &#x60;key&#x60; sets, renames or clears (&#x60;null&#x60;) the event key (409 &#x60;event_key_taken&#x60;). **Chart switch** (&#x60;chartId&#x60;): moves the event to another published, non-archived chart of the workspace in **one transaction** with the event row and every seat/GA row locked in the commercial lock order. Seats are matched by &#x60;label&#x60;, GA areas by &#x60;name&#x60;: matched objects keep their ids (so holds, sales, orders and status history stay valid) and take the new geometry and category; sold/held/pending seats keep their price, other seats take the new chart price (or the category override). Unmatched objects without commercial state are removed, new chart objects are added (closed categories start not for sale), the event map draft is discarded and the geometry is republished atomically. Refused with **409 &#x60;chart_switch_conflict&#x60;** and nothing changed when a sold, held, pending or historical object has no counterpart, or a GA area would have less capacity than sold + held + withheld places: &#x60;objects: [{ objectId, label, objectType, reason: sold|held|pending|history|capacity, required?, capacity? }]&#x60;. Other refusals: 404 (chart), 409 &#x60;chart_not_published&#x60;, &#x60;chart_archived&#x60;, &#x60;season_chart_mismatch&#x60;. Emits &#x60;event.updated&#x60; with &#x60;changed_fields&#x60;. **Event categories** (seats.io event &#x60;categories&#x60; / &#x60;objectCategories&#x60;): &#x60;categories&#x60; **replaces** the event-only categories (&#x60;[{ key, label, color, accessible? }]&#x60;, max 128; keys and labels unique, and neither may reuse a chart category id or name: 400 &#x60;category_conflict&#x60;). They are added to this event&#39;s published layout categories (&#x60;{ id: key, name: label, tint, accessible }&#x60;), so the renderer, legend and filters show them. &#x60;objectCategories&#x60; **replaces** the object → category map (object label &#x3D; seat label or GA area name; value &#x3D; event category key, chart category id or chart category name; max 10000; unknown references: 400 &#x60;unknown_category&#x60; with &#x60;labels&#x60;). Assignments are resolved once, in this transaction: the objects&#39; &#x60;category&#x60; becomes the category label (removing an assignment restores the previous category), reassigned seats take the price override of their new category (else the chart price) and close with a closed category, and the geometry is republished. Best available (&#x60;categories&#x60; filter), quotes, synced price tables (keyed by the label), sales rules, reports and the section aggregates of the renderer all see the event category. Events that use neither keep their geometry hash. Changes emit &#x60;event.categories_updated&#x60; (event log and admin webhook) and &#x60;event.updated&#x60; with &#x60;changed_fields&#x60; &#x60;categories&#x60; / &#x60;objectCategories&#x60;. Response: &#x60;{ id, key, name, date, currency, isInThePast, chartId, categoryOverrides, tableBookingConfig, categories, objectCategories, forSaleUpdated?, chartSwitch?: { previousChartId, chartId, keptSeats, addedSeats, removedSeats, keptGaAreas, addedGaAreas, removedGaAreas } }&#x60;.
5946
+ # All fields optional. &#x60;date&#x60; is an ISO-8601 timestamp. &#x60;tableBookingConfig&#x60; overrides the chart table booking mode for this event only (&#x60;all_by_seat&#x60;, &#x60;all_by_table&#x60;, or &#x60;custom&#x60; with &#x60;tables: { tableId: by_seat | by_table }&#x60;); seat-to-table membership stays from the chart. &#x60;null&#x60; clears the override. Applied by reserve and in the published commercial layout. &#x60;categoryOverrides&#x60; **replaces** the per-event override map (keys &#x3D; seat/GA &#x60;category&#x60; values; &#x60;null&#x60; clears all): &#x60;priceCents&#x60; sets the base price of every seat in the category (clearing it restores the chart price by seat label; ticket-type prices from the chart still take precedence), &#x60;tint&#x60; (#RRGGBB) recolors the category in this event&#39;s published geometry (republished atomically), &#x60;forSale: false&#x60; takes the category off sale (removing it puts it back on sale; retired seats stay off sale). &#x60;forSalePerCategory&#x60; (&#x60;{ category: boolean }&#x60;) toggles category availability without storing an override. Prices already accepted in orders never change. &#x60;key&#x60; sets, renames or clears (&#x60;null&#x60;) the event key (409 &#x60;event_key_taken&#x60;). **Chart switch** (&#x60;chartId&#x60;): moves the event to another published, non-archived chart of the workspace in **one transaction** with the event row and every seat/GA row locked in the commercial lock order. Seats are matched by &#x60;label&#x60;, GA areas by &#x60;name&#x60;: matched objects keep their ids (so holds, sales, orders and status history stay valid) and take the new geometry and category; sold/held/pending seats keep their price, other seats take the new chart price (or the category override). Unmatched objects without commercial state are removed, new chart objects are added (closed categories start not for sale), the event map draft is discarded and the geometry is republished atomically. Refused with **409 &#x60;chart_switch_conflict&#x60;** and nothing changed when a sold, held, pending or historical object has no counterpart, a GA area would have less capacity than sold + held + withheld places, or a GA area with sold or held places would change how it is sold (&#x60;occupancy&#x60;: regular / fixed / variable occupancy, or the capacity / minimum of a whole area): &#x60;objects: [{ objectId, label, objectType, reason: sold|held|pending|history|capacity|occupancy, required?, capacity? }]&#x60;. Other refusals: 404 (chart), 409 &#x60;chart_not_published&#x60;, &#x60;chart_archived&#x60;, &#x60;season_chart_mismatch&#x60;. Emits &#x60;event.updated&#x60; with &#x60;changed_fields&#x60;. A switch that removes objects of active listings is refused with 409 &#x60;listing_objects_removed&#x60; (&#x60;listings&#x60;: id, key, &#x60;removedObjects&#x60;) unless &#x60;withdrawAffectedListings: true&#x60; withdraws them in the same transaction (409 &#x60;listing_has_holds&#x60; while held); &#x60;chartSwitch.withdrawnListings&#x60; lists them. **Event categories** (seats.io event &#x60;categories&#x60; / &#x60;objectCategories&#x60;): &#x60;categories&#x60; **replaces** the event-only categories (&#x60;[{ key, label, color, accessible? }]&#x60;, max 128; keys and labels unique, and neither may reuse a chart category id or name: 400 &#x60;category_conflict&#x60;). They are added to this event&#39;s published layout categories (&#x60;{ id: key, name: label, tint, accessible }&#x60;), so the renderer, legend and filters show them. &#x60;objectCategories&#x60; **replaces** the object → category map (object label &#x3D; seat label or GA area name; value &#x3D; event category key, chart category id or chart category name; max 10000; unknown references: 400 &#x60;unknown_category&#x60; with &#x60;labels&#x60;). Assignments are resolved once, in this transaction: the objects&#39; &#x60;category&#x60; becomes the category label (removing an assignment restores the previous category), reassigned seats take the price override of their new category (else the chart price) and close with a closed category, and the geometry is republished. Best available (&#x60;categories&#x60; filter), quotes, synced price tables (keyed by the label), sales rules, reports and the section aggregates of the renderer all see the event category. Events that use neither keep their geometry hash. Changes emit &#x60;event.categories_updated&#x60; (event log and admin webhook) and &#x60;event.updated&#x60; with &#x60;changed_fields&#x60; &#x60;categories&#x60; / &#x60;objectCategories&#x60;. Response: &#x60;{ id, key, name, date, currency, isInThePast, chartId, categoryOverrides, tableBookingConfig, categories, objectCategories, forSaleUpdated?, chartSwitch?: { previousChartId, chartId, keptSeats, addedSeats, removedSeats, keptGaAreas, addedGaAreas, removedGaAreas } }&#x60;.
4802
5947
  # @param event_id [String]
4803
5948
  # @param patch_api_events_by_event_id_request [PatchApiEventsByEventIdRequest]
4804
5949
  # @param [Hash] opts the optional parameters
@@ -4982,7 +6127,7 @@ module SeatsChart
4982
6127
  end
4983
6128
 
4984
6129
  # Create event
4985
- # Creates a new event scoped to the workspace. Optional `chartId` clones the published chart seat/GA templates into event inventory. A chart whose published map has error-level validation issues (workspace severity, see `GET /api/workspace/chart-validation`) is refused with 409 `chart_invalid` `{ chartId, issues: [{ code, severity, count, message }] }`; fix the chart in the designer and publish again. Optional `key` (unique per workspace, URL-safe, not UUID-shaped) can be used instead of the id in every event route; 409 `event_key_taken`. Creation-time configuration is applied **in the creation transaction** (all or nothing): `tableBookingConfig` and `categoryOverrides` (same semantics as PATCH), `channels` (inventory channels with their objects and GA `areaPlaces`; each `channelKey` secret is returned once) and `forSaleConfig` (`forSale: false` = listed objects/categories not for sale and `areaPlaces` withheld; `forSale: true` = only the listed ones for sale). Objects are seat labels/UUIDs or GA area names/UUIDs; unknown ones return 400 `objects_not_found`. Optional `seasonId` attaches the event afterwards and syncs NFS + channelKey from the season source. Optional `currency` (ISO 4217, two-decimal) sets the catalog currency used by quotes and the viewer. Emits the `event.created` webhook.
6130
+ # Creates a new event scoped to the workspace. Optional `chartId` clones the published chart seat/GA templates into event inventory. A chart whose published map has error-level validation issues (workspace severity, see `GET /api/workspace/chart-validation`) is refused with 409 `chart_invalid` `{ chartId, issues: [{ code, severity, count, message }] }`; fix the chart in the designer and publish again. Optional `key` (unique per workspace, URL-safe, not UUID-shaped) can be used instead of the id in every event route; 409 `event_key_taken`. Creation-time configuration is applied **in the creation transaction** (all or nothing): `categories` / `objectCategories` (seats.io event categories: event-only categories and object assignments, validated and materialized exactly as on PATCH /events/{eventId}, applied first so the other settings see them; 400 `category_conflict` / `unknown_category`), `tableBookingConfig` and `categoryOverrides` (same semantics as PATCH), `channels` (inventory channels with their objects and GA `areaPlaces`; each `channelKey` secret is returned once) and `forSaleConfig` (`forSale: false` = listed objects/categories not for sale and `areaPlaces` withheld; `forSale: true` = only the listed ones for sale; without it, the workspace setting `newEventsNotForSale` starts every object off sale). Objects are seat labels/UUIDs or GA area names/UUIDs; unknown ones return 400 `objects_not_found`. GA areas sold as a whole (fixed or variable occupancy) go on or off sale whole: for-sale `areaPlaces` on them, or a channel quota below their capacity, return 400 `ga_area_whole` `{ areas: [{ areaId, label, capacity }] }`. Optional `seasonId` attaches the event afterwards and syncs NFS + channelKey from the season source. Optional `currency` (ISO 4217, two-decimal) sets the catalog currency used by quotes and the viewer. Emits the `event.created` webhook.
4986
6131
  # @param post_api_events_request [PostApiEventsRequest]
4987
6132
  # @param [Hash] opts the optional parameters
4988
6133
  # @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.
@@ -4993,7 +6138,7 @@ module SeatsChart
4993
6138
  end
4994
6139
 
4995
6140
  # Create event
4996
- # Creates a new event scoped to the workspace. Optional &#x60;chartId&#x60; clones the published chart seat/GA templates into event inventory. A chart whose published map has error-level validation issues (workspace severity, see &#x60;GET /api/workspace/chart-validation&#x60;) is refused with 409 &#x60;chart_invalid&#x60; &#x60;{ chartId, issues: [{ code, severity, count, message }] }&#x60;; fix the chart in the designer and publish again. Optional &#x60;key&#x60; (unique per workspace, URL-safe, not UUID-shaped) can be used instead of the id in every event route; 409 &#x60;event_key_taken&#x60;. Creation-time configuration is applied **in the creation transaction** (all or nothing): &#x60;tableBookingConfig&#x60; and &#x60;categoryOverrides&#x60; (same semantics as PATCH), &#x60;channels&#x60; (inventory channels with their objects and GA &#x60;areaPlaces&#x60;; each &#x60;channelKey&#x60; secret is returned once) and &#x60;forSaleConfig&#x60; (&#x60;forSale: false&#x60; &#x3D; listed objects/categories not for sale and &#x60;areaPlaces&#x60; withheld; &#x60;forSale: true&#x60; &#x3D; only the listed ones for sale). Objects are seat labels/UUIDs or GA area names/UUIDs; unknown ones return 400 &#x60;objects_not_found&#x60;. Optional &#x60;seasonId&#x60; attaches the event afterwards and syncs NFS + channelKey from the season source. Optional &#x60;currency&#x60; (ISO 4217, two-decimal) sets the catalog currency used by quotes and the viewer. Emits the &#x60;event.created&#x60; webhook.
6141
+ # Creates a new event scoped to the workspace. Optional &#x60;chartId&#x60; clones the published chart seat/GA templates into event inventory. A chart whose published map has error-level validation issues (workspace severity, see &#x60;GET /api/workspace/chart-validation&#x60;) is refused with 409 &#x60;chart_invalid&#x60; &#x60;{ chartId, issues: [{ code, severity, count, message }] }&#x60;; fix the chart in the designer and publish again. Optional &#x60;key&#x60; (unique per workspace, URL-safe, not UUID-shaped) can be used instead of the id in every event route; 409 &#x60;event_key_taken&#x60;. Creation-time configuration is applied **in the creation transaction** (all or nothing): &#x60;categories&#x60; / &#x60;objectCategories&#x60; (seats.io event categories: event-only categories and object assignments, validated and materialized exactly as on PATCH /events/{eventId}, applied first so the other settings see them; 400 &#x60;category_conflict&#x60; / &#x60;unknown_category&#x60;), &#x60;tableBookingConfig&#x60; and &#x60;categoryOverrides&#x60; (same semantics as PATCH), &#x60;channels&#x60; (inventory channels with their objects and GA &#x60;areaPlaces&#x60;; each &#x60;channelKey&#x60; secret is returned once) and &#x60;forSaleConfig&#x60; (&#x60;forSale: false&#x60; &#x3D; listed objects/categories not for sale and &#x60;areaPlaces&#x60; withheld; &#x60;forSale: true&#x60; &#x3D; only the listed ones for sale; without it, the workspace setting &#x60;newEventsNotForSale&#x60; starts every object off sale). Objects are seat labels/UUIDs or GA area names/UUIDs; unknown ones return 400 &#x60;objects_not_found&#x60;. GA areas sold as a whole (fixed or variable occupancy) go on or off sale whole: for-sale &#x60;areaPlaces&#x60; on them, or a channel quota below their capacity, return 400 &#x60;ga_area_whole&#x60; &#x60;{ areas: [{ areaId, label, capacity }] }&#x60;. Optional &#x60;seasonId&#x60; attaches the event afterwards and syncs NFS + channelKey from the season source. Optional &#x60;currency&#x60; (ISO 4217, two-decimal) sets the catalog currency used by quotes and the viewer. Emits the &#x60;event.created&#x60; webhook.
4997
6142
  # @param post_api_events_request [PostApiEventsRequest]
4998
6143
  # @param [Hash] opts the optional parameters
4999
6144
  # @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.
@@ -5058,6 +6203,83 @@ module SeatsChart
5058
6203
  return data, status_code, headers
5059
6204
  end
5060
6205
 
6206
+ # Edit the for-sale configuration of several events (all or nothing)
6207
+ # Seats.io `editForSaleConfigForEvents`: `events[]` (1–100, each event once, at most 20000 items overall) with `event` (UUID or key), `forSale`, `notForSale` and `cascadeSeason`, applied to every event in **one SQL transaction**: either every event changes or none does (events are locked in id order, so overlapping calls serialize). Per event: Incremental: only the listed objects, GA places and categories change, everything else keeps its state, and both lists are applied in **one SQL transaction** (all or nothing; the event row lock serializes it with the replace and mark-everything calls). Items are `{ object }` (seat UUID or label, GA area UUID or name), `{ object, quantity }` (GA places: `notForSale` withholds that many more places, checked under the GA row lock against sold and held places — 409 `insufficient_free_places`; `forSale` returns that many withheld places) or `{ category }`. An explicit object wins over its category; retired seats never go back on sale; sold seats stay sold (only their flag changes). The same object or category in both lists is 400 `for_sale_edit_conflict`; unknown objects 404 `objects_not_found`; a label that names several objects 409 `ambiguous_label`. After COMMIT the holds on objects that went off sale are released, the seat-map cache is invalidated once and `for_sale` realtime messages are published (GA place changes as GA updates); a confirmation racing the change never sells an object that went off sale (the SQL decision re-checks under the seat row lock). Audited as `inventory.for_sale.edit` (event log and `event.for_sale_changed` webhook, alias `event.for.sale.config.updated`). On a season member that is not the source, the membership's `forSalePropagated` becomes false, as with the other for-sale calls. Optional `Idempotency-Key`. Not rate limited per event (seats.io allows 10 calls per event and day in its RATE_LIMITED for-sale mode). Response `{ ok, results: [{ index, event, eventId, forSaleConfig, changedSeats, …, seasonCascade }], realtime }` in request order. On any refusal nothing is written and the status is that of the failing event, with its `index` and `event` in the body.
6208
+ # @param post_api_events_actions_edit_for_sale_config_request [PostApiEventsActionsEditForSaleConfigRequest]
6209
+ # @param [Hash] opts the optional parameters
6210
+ # @option opts [String] :idempotency_key Optional. A replay with the same key and body returns the stored response (24 h); a different body under the same key is 409 &#x60;idempotency_conflict&#x60;.
6211
+ # @return [nil]
6212
+ def post_api_events_actions_edit_for_sale_config(post_api_events_actions_edit_for_sale_config_request, opts = {})
6213
+ post_api_events_actions_edit_for_sale_config_with_http_info(post_api_events_actions_edit_for_sale_config_request, opts)
6214
+ nil
6215
+ end
6216
+
6217
+ # Edit the for-sale configuration of several events (all or nothing)
6218
+ # Seats.io &#x60;editForSaleConfigForEvents&#x60;: &#x60;events[]&#x60; (1–100, each event once, at most 20000 items overall) with &#x60;event&#x60; (UUID or key), &#x60;forSale&#x60;, &#x60;notForSale&#x60; and &#x60;cascadeSeason&#x60;, applied to every event in **one SQL transaction**: either every event changes or none does (events are locked in id order, so overlapping calls serialize). Per event: Incremental: only the listed objects, GA places and categories change, everything else keeps its state, and both lists are applied in **one SQL transaction** (all or nothing; the event row lock serializes it with the replace and mark-everything calls). Items are &#x60;{ object }&#x60; (seat UUID or label, GA area UUID or name), &#x60;{ object, quantity }&#x60; (GA places: &#x60;notForSale&#x60; withholds that many more places, checked under the GA row lock against sold and held places — 409 &#x60;insufficient_free_places&#x60;; &#x60;forSale&#x60; returns that many withheld places) or &#x60;{ category }&#x60;. An explicit object wins over its category; retired seats never go back on sale; sold seats stay sold (only their flag changes). The same object or category in both lists is 400 &#x60;for_sale_edit_conflict&#x60;; unknown objects 404 &#x60;objects_not_found&#x60;; a label that names several objects 409 &#x60;ambiguous_label&#x60;. After COMMIT the holds on objects that went off sale are released, the seat-map cache is invalidated once and &#x60;for_sale&#x60; realtime messages are published (GA place changes as GA updates); a confirmation racing the change never sells an object that went off sale (the SQL decision re-checks under the seat row lock). Audited as &#x60;inventory.for_sale.edit&#x60; (event log and &#x60;event.for_sale_changed&#x60; webhook, alias &#x60;event.for.sale.config.updated&#x60;). On a season member that is not the source, the membership&#39;s &#x60;forSalePropagated&#x60; becomes false, as with the other for-sale calls. Optional &#x60;Idempotency-Key&#x60;. Not rate limited per event (seats.io allows 10 calls per event and day in its RATE_LIMITED for-sale mode). Response &#x60;{ ok, results: [{ index, event, eventId, forSaleConfig, changedSeats, …, seasonCascade }], realtime }&#x60; in request order. On any refusal nothing is written and the status is that of the failing event, with its &#x60;index&#x60; and &#x60;event&#x60; in the body.
6219
+ # @param post_api_events_actions_edit_for_sale_config_request [PostApiEventsActionsEditForSaleConfigRequest]
6220
+ # @param [Hash] opts the optional parameters
6221
+ # @option opts [String] :idempotency_key Optional. A replay with the same key and body returns the stored response (24 h); a different body under the same key is 409 &#x60;idempotency_conflict&#x60;.
6222
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
6223
+ def post_api_events_actions_edit_for_sale_config_with_http_info(post_api_events_actions_edit_for_sale_config_request, opts = {})
6224
+ if @api_client.config.debugging
6225
+ @api_client.config.logger.debug 'Calling API: EventsApi.post_api_events_actions_edit_for_sale_config ...'
6226
+ end
6227
+ # verify the required parameter 'post_api_events_actions_edit_for_sale_config_request' is set
6228
+ if @api_client.config.client_side_validation && post_api_events_actions_edit_for_sale_config_request.nil?
6229
+ fail ArgumentError, "Missing the required parameter 'post_api_events_actions_edit_for_sale_config_request' when calling EventsApi.post_api_events_actions_edit_for_sale_config"
6230
+ end
6231
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
6232
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling EventsApi.post_api_events_actions_edit_for_sale_config, the character length must be smaller than or equal to 255.'
6233
+ end
6234
+
6235
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
6236
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling EventsApi.post_api_events_actions_edit_for_sale_config, the character length must be great than or equal to 1.'
6237
+ end
6238
+
6239
+ # resource path
6240
+ local_var_path = '/api/events/actions/edit-for-sale-config'
6241
+
6242
+ # query parameters
6243
+ query_params = opts[:query_params] || {}
6244
+
6245
+ # header parameters
6246
+ header_params = opts[:header_params] || {}
6247
+ # HTTP header 'Content-Type'
6248
+ content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
6249
+ if !content_type.nil?
6250
+ header_params['Content-Type'] = content_type
6251
+ end
6252
+ header_params[:'idempotency-key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
6253
+
6254
+ # form parameters
6255
+ form_params = opts[:form_params] || {}
6256
+
6257
+ # http body (model)
6258
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(post_api_events_actions_edit_for_sale_config_request)
6259
+
6260
+ # return_type
6261
+ return_type = opts[:debug_return_type]
6262
+
6263
+ # auth_names
6264
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
6265
+
6266
+ new_options = opts.merge(
6267
+ :operation => :"EventsApi.post_api_events_actions_edit_for_sale_config",
6268
+ :header_params => header_params,
6269
+ :query_params => query_params,
6270
+ :form_params => form_params,
6271
+ :body => post_body,
6272
+ :auth_names => auth_names,
6273
+ :return_type => return_type
6274
+ )
6275
+
6276
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
6277
+ if @api_client.config.debugging
6278
+ @api_client.config.logger.debug "API called: EventsApi#post_api_events_actions_edit_for_sale_config\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
6279
+ end
6280
+ return data, status_code, headers
6281
+ end
6282
+
5061
6283
  # Create up to 50 events for one chart
5062
6284
  # Creates every event (with its cloned seat/GA inventory and published geometry) in **one transaction**: either all events exist afterwards or none. The plan event limit is checked for the whole batch (402). Optional `seasonId` attaches each created event afterwards (like POST /events); `seasonId: null` in an item means that attachment failed. A chart with error-level validation issues is refused with 409 `chart_invalid` (`issues`, `index`) and nothing is created. Every item accepts the creation-time configuration of POST /events (`key`, `tableBookingConfig`, `categoryOverrides`, `channels`, `forSaleConfig`), applied in the same transaction; a rejected item returns its error with `index` and nothing is created. Keys must be unique in the batch and the workspace (409 `event_key_taken`). Emits one `event.created` webhook for the batch. Response `{ events: [{ id, key, name, date, chartId, clonedSeats, clonedGaAreas, seasonId, categoryOverrides, tableBookingConfig, channels, forSale }] }`.
5063
6285
  # @param post_api_events_bulk_request [PostApiEventsBulkRequest]
@@ -5135,6 +6357,255 @@ module SeatsChart
5135
6357
  return data, status_code, headers
5136
6358
  end
5137
6359
 
6360
+ # Edit the for-sale configuration (forSale and notForSale in one transaction)
6361
+ # Seats.io `editForSaleConfig`. Incremental: only the listed objects, GA places and categories change, everything else keeps its state, and both lists are applied in **one SQL transaction** (all or nothing; the event row lock serializes it with the replace and mark-everything calls). Items are `{ object }` (seat UUID or label, GA area UUID or name), `{ object, quantity }` (GA places: `notForSale` withholds that many more places, checked under the GA row lock against sold and held places — 409 `insufficient_free_places`; `forSale` returns that many withheld places) or `{ category }`. An explicit object wins over its category; retired seats never go back on sale; sold seats stay sold (only their flag changes). The same object or category in both lists is 400 `for_sale_edit_conflict`; unknown objects 404 `objects_not_found`; a label that names several objects 409 `ambiguous_label`. After COMMIT the holds on objects that went off sale are released, the seat-map cache is invalidated once and `for_sale` realtime messages are published (GA place changes as GA updates); a confirmation racing the change never sells an object that went off sale (the SQL decision re-checks under the seat row lock). Audited as `inventory.for_sale.edit` (event log and `event.for_sale_changed` webhook, alias `event.for.sale.config.updated`). On a season member that is not the source, the membership's `forSalePropagated` becomes false, as with the other for-sale calls. Optional `Idempotency-Key`. Not rate limited per event (seats.io allows 10 calls per event and day in its RATE_LIMITED for-sale mode). Response: `forSaleConfig` (the resulting configuration as seats.io returns it: `forSale: false`, `objects` (labels of the seats and names of the GA areas that are off sale), `categories` (categories whose every object is off sale; their objects are not repeated in `objects`) and `areaPlaces` (GA area name → withheld places of an area on sale)), `changedSeats`, `changedGaAreas`, `seatsNotForSale`, `gaAreasNotForSale`, `notForSalePlaces` (GA area id → withheld places of the areas changed by quantity), `releasedSeatHolds`, `clearedGaHoldAreas`, `seasonCascade`, `forSalePropagated` (false when this call detached a season member) and `realtime`.
6362
+ # @param event_id [String]
6363
+ # @param post_api_events_by_event_id_actions_edit_for_sale_config_request [PostApiEventsByEventIdActionsEditForSaleConfigRequest]
6364
+ # @param [Hash] opts the optional parameters
6365
+ # @option opts [String] :idempotency_key Optional. A replay with the same key and body returns the stored response (24 h); a different body under the same key is 409 &#x60;idempotency_conflict&#x60;.
6366
+ # @return [nil]
6367
+ def post_api_events_by_event_id_actions_edit_for_sale_config(event_id, post_api_events_by_event_id_actions_edit_for_sale_config_request, opts = {})
6368
+ post_api_events_by_event_id_actions_edit_for_sale_config_with_http_info(event_id, post_api_events_by_event_id_actions_edit_for_sale_config_request, opts)
6369
+ nil
6370
+ end
6371
+
6372
+ # Edit the for-sale configuration (forSale and notForSale in one transaction)
6373
+ # Seats.io &#x60;editForSaleConfig&#x60;. Incremental: only the listed objects, GA places and categories change, everything else keeps its state, and both lists are applied in **one SQL transaction** (all or nothing; the event row lock serializes it with the replace and mark-everything calls). Items are &#x60;{ object }&#x60; (seat UUID or label, GA area UUID or name), &#x60;{ object, quantity }&#x60; (GA places: &#x60;notForSale&#x60; withholds that many more places, checked under the GA row lock against sold and held places — 409 &#x60;insufficient_free_places&#x60;; &#x60;forSale&#x60; returns that many withheld places) or &#x60;{ category }&#x60;. An explicit object wins over its category; retired seats never go back on sale; sold seats stay sold (only their flag changes). The same object or category in both lists is 400 &#x60;for_sale_edit_conflict&#x60;; unknown objects 404 &#x60;objects_not_found&#x60;; a label that names several objects 409 &#x60;ambiguous_label&#x60;. After COMMIT the holds on objects that went off sale are released, the seat-map cache is invalidated once and &#x60;for_sale&#x60; realtime messages are published (GA place changes as GA updates); a confirmation racing the change never sells an object that went off sale (the SQL decision re-checks under the seat row lock). Audited as &#x60;inventory.for_sale.edit&#x60; (event log and &#x60;event.for_sale_changed&#x60; webhook, alias &#x60;event.for.sale.config.updated&#x60;). On a season member that is not the source, the membership&#39;s &#x60;forSalePropagated&#x60; becomes false, as with the other for-sale calls. Optional &#x60;Idempotency-Key&#x60;. Not rate limited per event (seats.io allows 10 calls per event and day in its RATE_LIMITED for-sale mode). Response: &#x60;forSaleConfig&#x60; (the resulting configuration as seats.io returns it: &#x60;forSale: false&#x60;, &#x60;objects&#x60; (labels of the seats and names of the GA areas that are off sale), &#x60;categories&#x60; (categories whose every object is off sale; their objects are not repeated in &#x60;objects&#x60;) and &#x60;areaPlaces&#x60; (GA area name → withheld places of an area on sale)), &#x60;changedSeats&#x60;, &#x60;changedGaAreas&#x60;, &#x60;seatsNotForSale&#x60;, &#x60;gaAreasNotForSale&#x60;, &#x60;notForSalePlaces&#x60; (GA area id → withheld places of the areas changed by quantity), &#x60;releasedSeatHolds&#x60;, &#x60;clearedGaHoldAreas&#x60;, &#x60;seasonCascade&#x60;, &#x60;forSalePropagated&#x60; (false when this call detached a season member) and &#x60;realtime&#x60;.
6374
+ # @param event_id [String]
6375
+ # @param post_api_events_by_event_id_actions_edit_for_sale_config_request [PostApiEventsByEventIdActionsEditForSaleConfigRequest]
6376
+ # @param [Hash] opts the optional parameters
6377
+ # @option opts [String] :idempotency_key Optional. A replay with the same key and body returns the stored response (24 h); a different body under the same key is 409 &#x60;idempotency_conflict&#x60;.
6378
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
6379
+ def post_api_events_by_event_id_actions_edit_for_sale_config_with_http_info(event_id, post_api_events_by_event_id_actions_edit_for_sale_config_request, opts = {})
6380
+ if @api_client.config.debugging
6381
+ @api_client.config.logger.debug 'Calling API: EventsApi.post_api_events_by_event_id_actions_edit_for_sale_config ...'
6382
+ end
6383
+ # verify the required parameter 'event_id' is set
6384
+ if @api_client.config.client_side_validation && event_id.nil?
6385
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.post_api_events_by_event_id_actions_edit_for_sale_config"
6386
+ end
6387
+ # verify the required parameter 'post_api_events_by_event_id_actions_edit_for_sale_config_request' is set
6388
+ if @api_client.config.client_side_validation && post_api_events_by_event_id_actions_edit_for_sale_config_request.nil?
6389
+ fail ArgumentError, "Missing the required parameter 'post_api_events_by_event_id_actions_edit_for_sale_config_request' when calling EventsApi.post_api_events_by_event_id_actions_edit_for_sale_config"
6390
+ end
6391
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
6392
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling EventsApi.post_api_events_by_event_id_actions_edit_for_sale_config, the character length must be smaller than or equal to 255.'
6393
+ end
6394
+
6395
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
6396
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling EventsApi.post_api_events_by_event_id_actions_edit_for_sale_config, the character length must be great than or equal to 1.'
6397
+ end
6398
+
6399
+ # resource path
6400
+ local_var_path = '/api/events/{eventId}/actions/edit-for-sale-config'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
6401
+
6402
+ # query parameters
6403
+ query_params = opts[:query_params] || {}
6404
+
6405
+ # header parameters
6406
+ header_params = opts[:header_params] || {}
6407
+ # HTTP header 'Content-Type'
6408
+ content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
6409
+ if !content_type.nil?
6410
+ header_params['Content-Type'] = content_type
6411
+ end
6412
+ header_params[:'idempotency-key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
6413
+
6414
+ # form parameters
6415
+ form_params = opts[:form_params] || {}
6416
+
6417
+ # http body (model)
6418
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(post_api_events_by_event_id_actions_edit_for_sale_config_request)
6419
+
6420
+ # return_type
6421
+ return_type = opts[:debug_return_type]
6422
+
6423
+ # auth_names
6424
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
6425
+
6426
+ new_options = opts.merge(
6427
+ :operation => :"EventsApi.post_api_events_by_event_id_actions_edit_for_sale_config",
6428
+ :header_params => header_params,
6429
+ :query_params => query_params,
6430
+ :form_params => form_params,
6431
+ :body => post_body,
6432
+ :auth_names => auth_names,
6433
+ :return_type => return_type
6434
+ )
6435
+
6436
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
6437
+ if @api_client.config.debugging
6438
+ @api_client.config.logger.debug "API called: EventsApi#post_api_events_by_event_id_actions_edit_for_sale_config\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
6439
+ end
6440
+ return data, status_code, headers
6441
+ end
6442
+
6443
+ # Put every object of the event back on sale
6444
+ # Seats.io `markEverythingAsForSale`: the inverse of mark-everything-as-not-for-sale, in one SQL transaction — every seat (except retired ones) and GA area goes on sale and withheld GA places are cleared. Audited (`inventory.for_sale.mark_everything_for_sale`), event log and webhook as above. Same response.
6445
+ # @param event_id [String]
6446
+ # @param post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request [PostApiEventsByEventIdActionsMarkEverythingAsNotForSaleRequest]
6447
+ # @param [Hash] opts the optional parameters
6448
+ # @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.
6449
+ # @return [nil]
6450
+ def post_api_events_by_event_id_actions_mark_everything_as_for_sale(event_id, post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request, opts = {})
6451
+ post_api_events_by_event_id_actions_mark_everything_as_for_sale_with_http_info(event_id, post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request, opts)
6452
+ nil
6453
+ end
6454
+
6455
+ # Put every object of the event back on sale
6456
+ # Seats.io &#x60;markEverythingAsForSale&#x60;: the inverse of mark-everything-as-not-for-sale, in one SQL transaction — every seat (except retired ones) and GA area goes on sale and withheld GA places are cleared. Audited (&#x60;inventory.for_sale.mark_everything_for_sale&#x60;), event log and webhook as above. Same response.
6457
+ # @param event_id [String]
6458
+ # @param post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request [PostApiEventsByEventIdActionsMarkEverythingAsNotForSaleRequest]
6459
+ # @param [Hash] opts the optional parameters
6460
+ # @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.
6461
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
6462
+ def post_api_events_by_event_id_actions_mark_everything_as_for_sale_with_http_info(event_id, post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request, opts = {})
6463
+ if @api_client.config.debugging
6464
+ @api_client.config.logger.debug 'Calling API: EventsApi.post_api_events_by_event_id_actions_mark_everything_as_for_sale ...'
6465
+ end
6466
+ # verify the required parameter 'event_id' is set
6467
+ if @api_client.config.client_side_validation && event_id.nil?
6468
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.post_api_events_by_event_id_actions_mark_everything_as_for_sale"
6469
+ end
6470
+ # verify the required parameter 'post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request' is set
6471
+ if @api_client.config.client_side_validation && post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request.nil?
6472
+ fail ArgumentError, "Missing the required parameter 'post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request' when calling EventsApi.post_api_events_by_event_id_actions_mark_everything_as_for_sale"
6473
+ end
6474
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
6475
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling EventsApi.post_api_events_by_event_id_actions_mark_everything_as_for_sale, the character length must be smaller than or equal to 255.'
6476
+ end
6477
+
6478
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
6479
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling EventsApi.post_api_events_by_event_id_actions_mark_everything_as_for_sale, the character length must be great than or equal to 1.'
6480
+ end
6481
+
6482
+ # resource path
6483
+ local_var_path = '/api/events/{eventId}/actions/mark-everything-as-for-sale'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
6484
+
6485
+ # query parameters
6486
+ query_params = opts[:query_params] || {}
6487
+
6488
+ # header parameters
6489
+ header_params = opts[:header_params] || {}
6490
+ # HTTP header 'Content-Type'
6491
+ content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
6492
+ if !content_type.nil?
6493
+ header_params['Content-Type'] = content_type
6494
+ end
6495
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
6496
+
6497
+ # form parameters
6498
+ form_params = opts[:form_params] || {}
6499
+
6500
+ # http body (model)
6501
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request)
6502
+
6503
+ # return_type
6504
+ return_type = opts[:debug_return_type]
6505
+
6506
+ # auth_names
6507
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
6508
+
6509
+ new_options = opts.merge(
6510
+ :operation => :"EventsApi.post_api_events_by_event_id_actions_mark_everything_as_for_sale",
6511
+ :header_params => header_params,
6512
+ :query_params => query_params,
6513
+ :form_params => form_params,
6514
+ :body => post_body,
6515
+ :auth_names => auth_names,
6516
+ :return_type => return_type
6517
+ )
6518
+
6519
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
6520
+ if @api_client.config.debugging
6521
+ @api_client.config.logger.debug "API called: EventsApi#post_api_events_by_event_id_actions_mark_everything_as_for_sale\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
6522
+ end
6523
+ return data, status_code, headers
6524
+ end
6525
+
6526
+ # Mark every object of the event not for sale
6527
+ # Seats.io `markEverythingAsNotForSale`: every seat and GA area of the event goes off sale in **one SQL transaction** (the event row lock serializes it with other for-sale changes; all or nothing). Holds on the objects are released after COMMIT, then one cache invalidate and one `for_sale` realtime message. Sold seats stay sold. Audited (`inventory.for_sale.mark_everything_not_for_sale`), in the event log and the `event.for_sale_changed` webhook (`event.for.sale.config.updated` alias). Season behaviour as POST …/for-sale/apply (`cascadeSeason`, `forSalePropagated`). Response as PUT …/inventory/for-sale (`changedSeats`, `changedGaAreas`, `seatsNotForSale`, `gaAreasNotForSale`, `releasedSeatHolds`, `clearedGaHoldAreas`).
6528
+ # @param event_id [String]
6529
+ # @param post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request [PostApiEventsByEventIdActionsMarkEverythingAsNotForSaleRequest]
6530
+ # @param [Hash] opts the optional parameters
6531
+ # @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.
6532
+ # @return [nil]
6533
+ def post_api_events_by_event_id_actions_mark_everything_as_not_for_sale(event_id, post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request, opts = {})
6534
+ post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_with_http_info(event_id, post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request, opts)
6535
+ nil
6536
+ end
6537
+
6538
+ # Mark every object of the event not for sale
6539
+ # Seats.io &#x60;markEverythingAsNotForSale&#x60;: every seat and GA area of the event goes off sale in **one SQL transaction** (the event row lock serializes it with other for-sale changes; all or nothing). Holds on the objects are released after COMMIT, then one cache invalidate and one &#x60;for_sale&#x60; realtime message. Sold seats stay sold. Audited (&#x60;inventory.for_sale.mark_everything_not_for_sale&#x60;), in the event log and the &#x60;event.for_sale_changed&#x60; webhook (&#x60;event.for.sale.config.updated&#x60; alias). Season behaviour as POST …/for-sale/apply (&#x60;cascadeSeason&#x60;, &#x60;forSalePropagated&#x60;). Response as PUT …/inventory/for-sale (&#x60;changedSeats&#x60;, &#x60;changedGaAreas&#x60;, &#x60;seatsNotForSale&#x60;, &#x60;gaAreasNotForSale&#x60;, &#x60;releasedSeatHolds&#x60;, &#x60;clearedGaHoldAreas&#x60;).
6540
+ # @param event_id [String]
6541
+ # @param post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request [PostApiEventsByEventIdActionsMarkEverythingAsNotForSaleRequest]
6542
+ # @param [Hash] opts the optional parameters
6543
+ # @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.
6544
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
6545
+ def post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_with_http_info(event_id, post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request, opts = {})
6546
+ if @api_client.config.debugging
6547
+ @api_client.config.logger.debug 'Calling API: EventsApi.post_api_events_by_event_id_actions_mark_everything_as_not_for_sale ...'
6548
+ end
6549
+ # verify the required parameter 'event_id' is set
6550
+ if @api_client.config.client_side_validation && event_id.nil?
6551
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.post_api_events_by_event_id_actions_mark_everything_as_not_for_sale"
6552
+ end
6553
+ # verify the required parameter 'post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request' is set
6554
+ if @api_client.config.client_side_validation && post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request.nil?
6555
+ fail ArgumentError, "Missing the required parameter 'post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request' when calling EventsApi.post_api_events_by_event_id_actions_mark_everything_as_not_for_sale"
6556
+ end
6557
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
6558
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling EventsApi.post_api_events_by_event_id_actions_mark_everything_as_not_for_sale, the character length must be smaller than or equal to 255.'
6559
+ end
6560
+
6561
+ if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length < 1
6562
+ fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling EventsApi.post_api_events_by_event_id_actions_mark_everything_as_not_for_sale, the character length must be great than or equal to 1.'
6563
+ end
6564
+
6565
+ # resource path
6566
+ local_var_path = '/api/events/{eventId}/actions/mark-everything-as-not-for-sale'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
6567
+
6568
+ # query parameters
6569
+ query_params = opts[:query_params] || {}
6570
+
6571
+ # header parameters
6572
+ header_params = opts[:header_params] || {}
6573
+ # HTTP header 'Content-Type'
6574
+ content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
6575
+ if !content_type.nil?
6576
+ header_params['Content-Type'] = content_type
6577
+ end
6578
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
6579
+
6580
+ # form parameters
6581
+ form_params = opts[:form_params] || {}
6582
+
6583
+ # http body (model)
6584
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request)
6585
+
6586
+ # return_type
6587
+ return_type = opts[:debug_return_type]
6588
+
6589
+ # auth_names
6590
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
6591
+
6592
+ new_options = opts.merge(
6593
+ :operation => :"EventsApi.post_api_events_by_event_id_actions_mark_everything_as_not_for_sale",
6594
+ :header_params => header_params,
6595
+ :query_params => query_params,
6596
+ :form_params => form_params,
6597
+ :body => post_body,
6598
+ :auth_names => auth_names,
6599
+ :return_type => return_type
6600
+ )
6601
+
6602
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
6603
+ if @api_client.config.debugging
6604
+ @api_client.config.logger.debug "API called: EventsApi#post_api_events_by_event_id_actions_mark_everything_as_not_for_sale\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
6605
+ end
6606
+ return data, status_code, headers
6607
+ end
6608
+
5138
6609
  # Move the event to a new copy of its chart
5139
6610
  # Copies the event's current chart (published seat/GA templates, layout and draft) into a new published chart and repoints the event to it in one transaction, so the event's map can be edited without affecting other events. Seats, holds, sales and orders are never touched (seat ids are unchanged). Refuses with 409 `structural_mismatch` (`orphanedObjects`: labels) when a sold, held or pending seat — or a GA area with sales — has no counterpart in the chart, and with 409 `chart_not_published` when there is nothing to copy. Counts against the plan chart limit. Response `{ eventId, previousChartId, chartId, chartName }`.
5140
6611
  # @param event_id [String]
@@ -5668,23 +7139,25 @@ module SeatsChart
5668
7139
  end
5669
7140
 
5670
7141
  # Publish draft map to live seats
5671
- # Promotes draft → `seats` + `event_layouts`, invalidates map cache. Blocks publish if draft removes sold seats. The draft is validated with the same rules the designer runs: duplicate seat labels within a section, seats without a category (when categories exist), empty labels, overlapping seats and tables with fewer than 2 seats are **errors** and return `422 { error: \"validation_failed\", issues: [{ code, severity, objectIds, message }] }`. Warnings (one-seat row gaps) do not block and are returned in `warnings`. Every successful publish appends an immutable version (`version`; `sameAsVersion` names an earlier version with identical content). The map that was live before the first recorded publish becomes the `baseline` version 1. See `GET /api/events/:eventId/map/versions`.
7142
+ # Promotes draft → `seats` + `event_layouts`, invalidates map cache. Blocks publish if draft removes sold seats. A draft that removes seats of active listings is refused with 409 `listing_objects_removed` (`listings`: id, key and `removedObjects` of each affected listing): withdraw or update those listings first, or publish with `withdrawAffectedListings: true` to withdraw them in the same transaction (409 `listing_has_holds` while any of their objects is held). Withdrawn listings are returned in `withdrawnListings` and recorded in the event log. The draft is validated with the same rules the designer runs: duplicate seat labels within a section, seats without a category (when categories exist), empty labels, overlapping seats and tables with fewer than 2 seats are **errors** and return `422 { error: \"validation_failed\", issues: [{ code, severity, objectIds, message }] }`. Warnings (one-seat row gaps) do not block and are returned in `warnings`. Every successful publish appends an immutable version (`version`; `sameAsVersion` names an earlier version with identical content). The map that was live before the first recorded publish becomes the `baseline` version 1. See `GET /api/events/:eventId/map/versions`.
5672
7143
  # @param event_id [String]
7144
+ # @param post_api_events_by_event_id_map_publish_request [PostApiEventsByEventIdMapPublishRequest]
5673
7145
  # @param [Hash] opts the optional parameters
5674
7146
  # @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.
5675
7147
  # @return [nil]
5676
- def post_api_events_by_event_id_map_publish(event_id, opts = {})
5677
- post_api_events_by_event_id_map_publish_with_http_info(event_id, opts)
7148
+ def post_api_events_by_event_id_map_publish(event_id, post_api_events_by_event_id_map_publish_request, opts = {})
7149
+ post_api_events_by_event_id_map_publish_with_http_info(event_id, post_api_events_by_event_id_map_publish_request, opts)
5678
7150
  nil
5679
7151
  end
5680
7152
 
5681
7153
  # Publish draft map to live seats
5682
- # Promotes draft → &#x60;seats&#x60; + &#x60;event_layouts&#x60;, invalidates map cache. Blocks publish if draft removes sold seats. The draft is validated with the same rules the designer runs: duplicate seat labels within a section, seats without a category (when categories exist), empty labels, overlapping seats and tables with fewer than 2 seats are **errors** and return &#x60;422 { error: \&quot;validation_failed\&quot;, issues: [{ code, severity, objectIds, message }] }&#x60;. Warnings (one-seat row gaps) do not block and are returned in &#x60;warnings&#x60;. Every successful publish appends an immutable version (&#x60;version&#x60;; &#x60;sameAsVersion&#x60; names an earlier version with identical content). The map that was live before the first recorded publish becomes the &#x60;baseline&#x60; version 1. See &#x60;GET /api/events/:eventId/map/versions&#x60;.
7154
+ # Promotes draft → &#x60;seats&#x60; + &#x60;event_layouts&#x60;, invalidates map cache. Blocks publish if draft removes sold seats. A draft that removes seats of active listings is refused with 409 &#x60;listing_objects_removed&#x60; (&#x60;listings&#x60;: id, key and &#x60;removedObjects&#x60; of each affected listing): withdraw or update those listings first, or publish with &#x60;withdrawAffectedListings: true&#x60; to withdraw them in the same transaction (409 &#x60;listing_has_holds&#x60; while any of their objects is held). Withdrawn listings are returned in &#x60;withdrawnListings&#x60; and recorded in the event log. The draft is validated with the same rules the designer runs: duplicate seat labels within a section, seats without a category (when categories exist), empty labels, overlapping seats and tables with fewer than 2 seats are **errors** and return &#x60;422 { error: \&quot;validation_failed\&quot;, issues: [{ code, severity, objectIds, message }] }&#x60;. Warnings (one-seat row gaps) do not block and are returned in &#x60;warnings&#x60;. Every successful publish appends an immutable version (&#x60;version&#x60;; &#x60;sameAsVersion&#x60; names an earlier version with identical content). The map that was live before the first recorded publish becomes the &#x60;baseline&#x60; version 1. See &#x60;GET /api/events/:eventId/map/versions&#x60;.
5683
7155
  # @param event_id [String]
7156
+ # @param post_api_events_by_event_id_map_publish_request [PostApiEventsByEventIdMapPublishRequest]
5684
7157
  # @param [Hash] opts the optional parameters
5685
7158
  # @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.
5686
7159
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
5687
- def post_api_events_by_event_id_map_publish_with_http_info(event_id, opts = {})
7160
+ def post_api_events_by_event_id_map_publish_with_http_info(event_id, post_api_events_by_event_id_map_publish_request, opts = {})
5688
7161
  if @api_client.config.debugging
5689
7162
  @api_client.config.logger.debug 'Calling API: EventsApi.post_api_events_by_event_id_map_publish ...'
5690
7163
  end
@@ -5700,6 +7173,10 @@ module SeatsChart
5700
7173
  fail ArgumentError, 'invalid value for "event_id" when calling EventsApi.post_api_events_by_event_id_map_publish, the character length must be great than or equal to 36.'
5701
7174
  end
5702
7175
 
7176
+ # verify the required parameter 'post_api_events_by_event_id_map_publish_request' is set
7177
+ if @api_client.config.client_side_validation && post_api_events_by_event_id_map_publish_request.nil?
7178
+ fail ArgumentError, "Missing the required parameter 'post_api_events_by_event_id_map_publish_request' when calling EventsApi.post_api_events_by_event_id_map_publish"
7179
+ end
5703
7180
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
5704
7181
  fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling EventsApi.post_api_events_by_event_id_map_publish, the character length must be smaller than or equal to 255.'
5705
7182
  end
@@ -5718,13 +7195,18 @@ module SeatsChart
5718
7195
  header_params = opts[:header_params] || {}
5719
7196
  # HTTP header 'Accept' (if needed)
5720
7197
  header_params['Accept'] = @api_client.select_header_accept(['application/json', 'multipart/form-data', 'text/plain']) unless header_params['Accept']
7198
+ # HTTP header 'Content-Type'
7199
+ content_type = @api_client.select_header_content_type(['application/json', 'multipart/form-data', 'text/plain'])
7200
+ if !content_type.nil?
7201
+ header_params['Content-Type'] = content_type
7202
+ end
5721
7203
  header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
5722
7204
 
5723
7205
  # form parameters
5724
7206
  form_params = opts[:form_params] || {}
5725
7207
 
5726
7208
  # http body (model)
5727
- post_body = opts[:debug_body]
7209
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(post_api_events_by_event_id_map_publish_request)
5728
7210
 
5729
7211
  # return_type
5730
7212
  return_type = opts[:debug_return_type]
@@ -6260,23 +7742,23 @@ module SeatsChart
6260
7742
  # Save map draft (legacy path)
6261
7743
  # Alias for **`PUT /map/draft`**. Does **not** publish to buyers — use **`POST /map/publish`**.
6262
7744
  # @param event_id [String]
6263
- # @param post_api_charts_by_chart_id_actions_validate_request [PostApiChartsByChartIdActionsValidateRequest]
7745
+ # @param put_api_charts_by_chart_id_map_draft_request [PutApiChartsByChartIdMapDraftRequest]
6264
7746
  # @param [Hash] opts the optional parameters
6265
7747
  # @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.
6266
7748
  # @return [nil]
6267
- def put_api_events_by_event_id_map(event_id, post_api_charts_by_chart_id_actions_validate_request, opts = {})
6268
- put_api_events_by_event_id_map_with_http_info(event_id, post_api_charts_by_chart_id_actions_validate_request, opts)
7749
+ def put_api_events_by_event_id_map(event_id, put_api_charts_by_chart_id_map_draft_request, opts = {})
7750
+ put_api_events_by_event_id_map_with_http_info(event_id, put_api_charts_by_chart_id_map_draft_request, opts)
6269
7751
  nil
6270
7752
  end
6271
7753
 
6272
7754
  # Save map draft (legacy path)
6273
7755
  # Alias for **&#x60;PUT /map/draft&#x60;**. Does **not** publish to buyers — use **&#x60;POST /map/publish&#x60;**.
6274
7756
  # @param event_id [String]
6275
- # @param post_api_charts_by_chart_id_actions_validate_request [PostApiChartsByChartIdActionsValidateRequest]
7757
+ # @param put_api_charts_by_chart_id_map_draft_request [PutApiChartsByChartIdMapDraftRequest]
6276
7758
  # @param [Hash] opts the optional parameters
6277
7759
  # @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.
6278
7760
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
6279
- def put_api_events_by_event_id_map_with_http_info(event_id, post_api_charts_by_chart_id_actions_validate_request, opts = {})
7761
+ def put_api_events_by_event_id_map_with_http_info(event_id, put_api_charts_by_chart_id_map_draft_request, opts = {})
6280
7762
  if @api_client.config.debugging
6281
7763
  @api_client.config.logger.debug 'Calling API: EventsApi.put_api_events_by_event_id_map ...'
6282
7764
  end
@@ -6292,9 +7774,9 @@ module SeatsChart
6292
7774
  fail ArgumentError, 'invalid value for "event_id" when calling EventsApi.put_api_events_by_event_id_map, the character length must be great than or equal to 36.'
6293
7775
  end
6294
7776
 
6295
- # verify the required parameter 'post_api_charts_by_chart_id_actions_validate_request' is set
6296
- if @api_client.config.client_side_validation && post_api_charts_by_chart_id_actions_validate_request.nil?
6297
- fail ArgumentError, "Missing the required parameter 'post_api_charts_by_chart_id_actions_validate_request' when calling EventsApi.put_api_events_by_event_id_map"
7777
+ # verify the required parameter 'put_api_charts_by_chart_id_map_draft_request' is set
7778
+ if @api_client.config.client_side_validation && put_api_charts_by_chart_id_map_draft_request.nil?
7779
+ fail ArgumentError, "Missing the required parameter 'put_api_charts_by_chart_id_map_draft_request' when calling EventsApi.put_api_events_by_event_id_map"
6298
7780
  end
6299
7781
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
6300
7782
  fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling EventsApi.put_api_events_by_event_id_map, the character length must be smaller than or equal to 255.'
@@ -6323,7 +7805,7 @@ module SeatsChart
6323
7805
  form_params = opts[:form_params] || {}
6324
7806
 
6325
7807
  # http body (model)
6326
- post_body = opts[:debug_body] || @api_client.object_to_http_body(post_api_charts_by_chart_id_actions_validate_request)
7808
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(put_api_charts_by_chart_id_map_draft_request)
6327
7809
 
6328
7810
  # return_type
6329
7811
  return_type = opts[:debug_return_type]
@@ -6351,23 +7833,23 @@ module SeatsChart
6351
7833
  # Save map draft (does not go live)
6352
7834
  # Persists designer changes to `event_map_drafts` only. B2C viewers keep reading the last published map until `POST .../map/publish`. With `baseDraftUpdatedAt` the save is conflict-safe: 409 `draft_conflict` (with the current `draftUpdatedAt`) when the draft changed since that version (designer autosave).
6353
7835
  # @param event_id [String]
6354
- # @param post_api_charts_by_chart_id_actions_validate_request [PostApiChartsByChartIdActionsValidateRequest]
7836
+ # @param put_api_charts_by_chart_id_map_draft_request [PutApiChartsByChartIdMapDraftRequest]
6355
7837
  # @param [Hash] opts the optional parameters
6356
7838
  # @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.
6357
7839
  # @return [nil]
6358
- def put_api_events_by_event_id_map_draft(event_id, post_api_charts_by_chart_id_actions_validate_request, opts = {})
6359
- put_api_events_by_event_id_map_draft_with_http_info(event_id, post_api_charts_by_chart_id_actions_validate_request, opts)
7840
+ def put_api_events_by_event_id_map_draft(event_id, put_api_charts_by_chart_id_map_draft_request, opts = {})
7841
+ put_api_events_by_event_id_map_draft_with_http_info(event_id, put_api_charts_by_chart_id_map_draft_request, opts)
6360
7842
  nil
6361
7843
  end
6362
7844
 
6363
7845
  # Save map draft (does not go live)
6364
7846
  # Persists designer changes to &#x60;event_map_drafts&#x60; only. B2C viewers keep reading the last published map until &#x60;POST .../map/publish&#x60;. With &#x60;baseDraftUpdatedAt&#x60; the save is conflict-safe: 409 &#x60;draft_conflict&#x60; (with the current &#x60;draftUpdatedAt&#x60;) when the draft changed since that version (designer autosave).
6365
7847
  # @param event_id [String]
6366
- # @param post_api_charts_by_chart_id_actions_validate_request [PostApiChartsByChartIdActionsValidateRequest]
7848
+ # @param put_api_charts_by_chart_id_map_draft_request [PutApiChartsByChartIdMapDraftRequest]
6367
7849
  # @param [Hash] opts the optional parameters
6368
7850
  # @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.
6369
7851
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
6370
- def put_api_events_by_event_id_map_draft_with_http_info(event_id, post_api_charts_by_chart_id_actions_validate_request, opts = {})
7852
+ def put_api_events_by_event_id_map_draft_with_http_info(event_id, put_api_charts_by_chart_id_map_draft_request, opts = {})
6371
7853
  if @api_client.config.debugging
6372
7854
  @api_client.config.logger.debug 'Calling API: EventsApi.put_api_events_by_event_id_map_draft ...'
6373
7855
  end
@@ -6383,9 +7865,9 @@ module SeatsChart
6383
7865
  fail ArgumentError, 'invalid value for "event_id" when calling EventsApi.put_api_events_by_event_id_map_draft, the character length must be great than or equal to 36.'
6384
7866
  end
6385
7867
 
6386
- # verify the required parameter 'post_api_charts_by_chart_id_actions_validate_request' is set
6387
- if @api_client.config.client_side_validation && post_api_charts_by_chart_id_actions_validate_request.nil?
6388
- fail ArgumentError, "Missing the required parameter 'post_api_charts_by_chart_id_actions_validate_request' when calling EventsApi.put_api_events_by_event_id_map_draft"
7868
+ # verify the required parameter 'put_api_charts_by_chart_id_map_draft_request' is set
7869
+ if @api_client.config.client_side_validation && put_api_charts_by_chart_id_map_draft_request.nil?
7870
+ fail ArgumentError, "Missing the required parameter 'put_api_charts_by_chart_id_map_draft_request' when calling EventsApi.put_api_events_by_event_id_map_draft"
6389
7871
  end
6390
7872
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
6391
7873
  fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling EventsApi.put_api_events_by_event_id_map_draft, the character length must be smaller than or equal to 255.'
@@ -6414,7 +7896,7 @@ module SeatsChart
6414
7896
  form_params = opts[:form_params] || {}
6415
7897
 
6416
7898
  # http body (model)
6417
- post_body = opts[:debug_body] || @api_client.object_to_http_body(post_api_charts_by_chart_id_actions_validate_request)
7899
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(put_api_charts_by_chart_id_map_draft_request)
6418
7900
 
6419
7901
  # return_type
6420
7902
  return_type = opts[:debug_return_type]