seatschart 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +199 -19
  3. data/lib/seatschart/api/audit_api.rb +2 -2
  4. data/lib/seatschart/api/auth_api.rb +81 -4
  5. data/lib/seatschart/api/billing_api.rb +4 -0
  6. data/lib/seatschart/api/charts_api.rb +810 -77
  7. data/lib/seatschart/api/embed_api.rb +5 -5
  8. data/lib/seatschart/api/embed_origins_api.rb +63 -2
  9. data/lib/seatschart/api/event_log_api.rb +2 -2
  10. data/lib/seatschart/api/events_api.rb +1491 -175
  11. data/lib/seatschart/api/health_api.rb +244 -0
  12. data/lib/seatschart/api/map_designer_api.rb +11 -9
  13. data/lib/seatschart/api/public_api.rb +356 -6
  14. data/lib/seatschart/api/sandboxes_api.rb +672 -0
  15. data/lib/seatschart/api/seasons_api.rb +344 -36
  16. data/lib/seatschart/api/seats_api.rb +10 -10
  17. data/lib/seatschart/api/usage_api.rb +18 -15
  18. data/lib/seatschart/api/webhooks_api.rb +2 -2
  19. data/lib/seatschart/api/workspace_api.rb +1815 -363
  20. data/lib/seatschart/models/api_error.rb +4 -4
  21. data/lib/seatschart/models/delete_api_sandboxes_by_sandbox_id200_response.rb +255 -0
  22. data/lib/seatschart/models/delete_api_workspaces_by_workspace_id_keys_by_key_id200_response.rb +237 -0
  23. data/lib/seatschart/models/get_api_monitoring_requests200_response.rb +62 -4
  24. data/lib/seatschart/models/get_api_monitoring_requests200_response_points_inner.rb +21 -4
  25. data/lib/seatschart/models/get_api_sandboxes200_response.rb +239 -0
  26. data/lib/seatschart/models/get_api_sandboxes200_response_items_inner.rb +431 -0
  27. data/lib/seatschart/models/get_api_sandboxes200_response_items_inner_rate_limits.rb +270 -0
  28. data/lib/seatschart/models/get_api_sandboxes200_response_items_inner_usage.rb +287 -0
  29. data/lib/seatschart/models/get_api_status200_response.rb +387 -0
  30. data/lib/seatschart/models/get_api_status200_response_components_inner.rb +330 -0
  31. data/lib/seatschart/models/get_api_status200_response_components_inner_days_inner.rb +301 -0
  32. data/lib/seatschart/models/get_api_status200_response_incidents_inner.rb +374 -0
  33. data/lib/seatschart/models/get_api_status200_response_maintenance_inner.rb +350 -0
  34. data/lib/seatschart/models/get_api_status503_response.rb +271 -0
  35. data/lib/seatschart/models/get_api_workspace_buyer_extra_data200_response.rb +241 -0
  36. data/lib/seatschart/models/get_api_workspace_defaults200_response.rb +254 -0
  37. data/lib/seatschart/models/get_api_workspace_defaults200_response_renderer.rb +246 -0
  38. data/lib/seatschart/models/get_api_workspace_defaults200_response_renderer_built_in.rb +270 -0
  39. data/lib/seatschart/models/get_api_workspaces200_response_items_inner.rb +80 -5
  40. data/lib/seatschart/models/get_api_workspaces_by_workspace_id_keys200_response.rb +239 -0
  41. data/lib/seatschart/models/get_api_workspaces_by_workspace_id_keys200_response_api_keys_inner.rb +321 -0
  42. data/lib/seatschart/models/get_api_workspaces_created_by_api_parameter.rb +103 -0
  43. data/lib/seatschart/models/get_api_workspaces_overview_created_by_api_parameter.rb +103 -0
  44. data/lib/seatschart/models/patch_api_events_by_event_id_request.rb +12 -2
  45. data/lib/seatschart/models/patch_api_seasons_by_season_id_request.rb +15 -5
  46. data/lib/seatschart/models/patch_api_workspace_chart_validation_request_severities.rb +25 -4
  47. data/lib/seatschart/models/patch_api_workspace_defaults_request.rb +224 -0
  48. data/lib/seatschart/models/patch_api_workspace_defaults_request_renderer.rb +249 -0
  49. data/lib/seatschart/models/patch_api_workspace_settings_request.rb +6 -6
  50. data/lib/seatschart/models/patch_api_workspaces_by_workspace_id_keys_by_key_id200_response.rb +221 -0
  51. data/lib/seatschart/models/patch_api_workspaces_by_workspace_id_keys_by_key_id_request.rb +292 -0
  52. data/lib/seatschart/models/patch_api_workspaces_by_workspace_id_request.rb +288 -0
  53. data/lib/seatschart/models/post_api_auth_new_workspace_request.rb +294 -0
  54. data/lib/seatschart/models/post_api_charts_by_chart_id_actions_copy_to_workspace_request.rb +39 -1
  55. data/lib/seatschart/models/post_api_charts_by_chart_id_actions_validate_request.rb +1 -0
  56. data/lib/seatschart/models/post_api_charts_by_chart_id_map_publish422_response_issues_inner.rb +64 -6
  57. data/lib/seatschart/models/post_api_charts_by_chart_id_map_publish_request.rb +1 -1
  58. data/lib/seatschart/models/post_api_embed_tokens_request.rb +18 -15
  59. data/lib/seatschart/models/post_api_embed_tokens_request_safe_mode_options.rb +226 -0
  60. data/lib/seatschart/models/post_api_events_actions_edit_for_sale_config_request.rb +251 -0
  61. data/lib/seatschart/models/post_api_events_actions_edit_for_sale_config_request_events_inner.rb +322 -0
  62. data/lib/seatschart/models/post_api_events_bulk_request_events_inner.rb +42 -1
  63. data/lib/seatschart/models/post_api_events_by_event_id_actions_edit_for_sale_config_request.rb +277 -0
  64. data/lib/seatschart/models/post_api_events_by_event_id_actions_edit_for_sale_config_request_for_sale_inner.rb +319 -0
  65. data/lib/seatschart/models/post_api_events_by_event_id_map_publish_request.rb +215 -0
  66. data/lib/seatschart/models/post_api_events_request.rb +42 -1
  67. data/lib/seatschart/models/{patch_api_events_by_event_id_request_categories_inner.rb → post_api_events_request_categories_inner.rb} +3 -3
  68. data/lib/seatschart/models/post_api_extract_seats200_response.rb +459 -0
  69. data/lib/seatschart/models/post_api_extract_seats200_response_seats_inner.rb +323 -0
  70. data/lib/seatschart/models/post_api_extract_seats200_response_suggested_inner.rb +320 -0
  71. data/lib/seatschart/models/post_api_extract_seats_request.rb +124 -4
  72. data/lib/seatschart/models/post_api_extract_seats_request_examples.rb +105 -0
  73. data/lib/seatschart/models/post_api_extract_seats_request_examples_any_of_inner.rb +293 -0
  74. data/lib/seatschart/models/post_api_extract_seats_request_negatives.rb +105 -0
  75. data/lib/seatschart/models/post_api_extract_seats_request_region.rb +105 -0
  76. data/lib/seatschart/models/{put_api_charts_by_chart_id_map_draft_request.rb → post_api_extract_seats_request_region_any_of.rb} +111 -96
  77. data/lib/seatschart/models/post_api_sandboxes201_response.rb +245 -0
  78. data/lib/seatschart/models/post_api_sandboxes201_response_admin_key.rb +286 -0
  79. data/lib/seatschart/models/post_api_sandboxes201_response_copied.rb +313 -0
  80. data/lib/seatschart/models/post_api_sandboxes201_response_copied_charts_inner.rb +281 -0
  81. data/lib/seatschart/models/post_api_sandboxes201_response_copied_events_inner.rb +281 -0
  82. data/lib/seatschart/models/post_api_sandboxes201_response_copied_events_with_own_map_inner.rb +265 -0
  83. data/lib/seatschart/models/post_api_sandboxes201_response_copied_key_conflicts_inner.rb +287 -0
  84. data/lib/seatschart/models/post_api_sandboxes201_response_copied_seasons_inner.rb +312 -0
  85. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_copy_from_production200_response.rb +313 -0
  86. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_copy_from_production_request.rb +255 -0
  87. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_join200_response.rb +271 -0
  88. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_reset200_response.rb +268 -0
  89. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_actions_reset_request.rb +225 -0
  90. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_admin_key201_response.rb +253 -0
  91. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_admin_key201_response_api_key.rb +286 -0
  92. data/lib/seatschart/models/post_api_sandboxes_by_sandbox_id_admin_key_request.rb +252 -0
  93. data/lib/seatschart/models/post_api_sandboxes_request.rb +319 -0
  94. data/lib/seatschart/models/post_api_seasons_request.rb +14 -4
  95. data/lib/seatschart/models/post_api_seats_confirm_request.rb +5 -5
  96. data/lib/seatschart/models/post_api_seats_release_request.rb +5 -5
  97. data/lib/seatschart/models/post_api_seats_reserve_request.rb +5 -5
  98. data/lib/seatschart/models/post_api_workspaces200_response.rb +468 -0
  99. data/lib/seatschart/models/post_api_workspaces200_response_api_key.rb +332 -0
  100. data/lib/seatschart/models/post_api_workspaces200_response_template.rb +260 -0
  101. data/lib/seatschart/models/post_api_workspaces200_response_template_webhooks_inner.rb +284 -0
  102. data/lib/seatschart/models/post_api_workspaces_by_workspace_id_actions_delete200_response.rb +319 -0
  103. data/lib/seatschart/models/post_api_workspaces_by_workspace_id_actions_delete_request.rb +281 -0
  104. data/lib/seatschart/models/post_api_workspaces_by_workspace_id_invitations_request.rb +300 -0
  105. data/lib/seatschart/models/post_api_workspaces_by_workspace_id_keys201_response.rb +237 -0
  106. data/lib/seatschart/models/post_api_workspaces_by_workspace_id_keys201_response_api_key.rb +338 -0
  107. data/lib/seatschart/models/post_api_workspaces_by_workspace_id_keys_request.rb +299 -0
  108. data/lib/seatschart/models/post_api_workspaces_request.rb +101 -5
  109. data/lib/seatschart/models/post_api_workspaces_request_issue_key.rb +294 -0
  110. data/lib/seatschart/models/put_api_workspace_buyer_extra_data_request.rb +260 -0
  111. data/lib/seatschart/models/put_internal_status_notices_request.rb +242 -0
  112. data/lib/seatschart/models/put_internal_status_notices_request_notices_inner.rb +445 -0
  113. data/lib/seatschart/retry.rb +106 -7
  114. data/lib/seatschart/version.rb +1 -1
  115. data/lib/seatschart.rb +73 -3
  116. metadata +75 -5
  117. data/lib/seatschart/api/default_api.rb +0 -763
@@ -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,969 @@ 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))
2340
+
2341
+ # query parameters
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?
2345
+
2346
+ # header parameters
2347
+ header_params = opts[:header_params] || {}
2348
+
2349
+ # form parameters
2350
+ form_params = opts[:form_params] || {}
2351
+
2352
+ # http body (model)
2353
+ post_body = opts[:debug_body]
2354
+
2355
+ # return_type
2356
+ return_type = opts[:debug_return_type]
2357
+
2358
+ # auth_names
2359
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
2360
+
2361
+ new_options = opts.merge(
2362
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_by_object_status_csv",
2363
+ :header_params => header_params,
2364
+ :query_params => query_params,
2365
+ :form_params => form_params,
2366
+ :body => post_body,
2367
+ :auth_names => auth_names,
2368
+ :return_type => return_type
2369
+ )
2370
+
2371
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
2372
+ if @api_client.config.debugging
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}"
2374
+ end
2375
+ return data, status_code, headers
2376
+ end
2377
+
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).
2380
+ # @param event_id [String]
2381
+ # @param [Hash] opts the optional parameters
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.
2384
+ # @return [nil]
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)
2387
+ nil
2388
+ end
2389
+
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).
2392
+ # @param event_id [String]
2393
+ # @param [Hash] opts the optional parameters
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.
2396
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
2397
+ def get_api_events_by_event_id_reports_by_object_status_json_with_http_info(event_id, opts = {})
2398
+ if @api_client.config.debugging
2399
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_by_object_status_json ...'
2400
+ end
2401
+ # verify the required parameter 'event_id' is set
2402
+ if @api_client.config.client_side_validation && event_id.nil?
2403
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_object_status_json"
2404
+ end
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}."
2408
+ end
2409
+
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.'
2412
+ end
2413
+
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.'
2416
+ end
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
2422
+ # resource path
2423
+ local_var_path = '/api/events/{eventId}/reports/by-object-status.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2424
+
2425
+ # query parameters
2426
+ query_params = opts[:query_params] || {}
2427
+ query_params[:'status'] = opts[:'status'] if !opts[:'status'].nil?
2428
+ query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
2429
+
2430
+ # header parameters
2431
+ header_params = opts[:header_params] || {}
2432
+
2433
+ # form parameters
2434
+ form_params = opts[:form_params] || {}
2435
+
2436
+ # http body (model)
2437
+ post_body = opts[:debug_body]
2438
+
2439
+ # return_type
2440
+ return_type = opts[:debug_return_type]
2441
+
2442
+ # auth_names
2443
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
2444
+
2445
+ new_options = opts.merge(
2446
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_by_object_status_json",
2447
+ :header_params => header_params,
2448
+ :query_params => query_params,
2449
+ :form_params => form_params,
2450
+ :body => post_body,
2451
+ :auth_names => auth_names,
2452
+ :return_type => return_type
2453
+ )
2454
+
2455
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
2456
+ if @api_client.config.debugging
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}"
2458
+ end
2459
+ return data, status_code, headers
2460
+ end
2461
+
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.
2464
+ # @param event_id [String]
2465
+ # @param [Hash] opts the optional parameters
2466
+ # @option opts [String] :object_type Only this object type (seats.io &#x60;byObjectType(event, type)&#x60;).
2467
+ # @return [nil]
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)
2470
+ nil
2471
+ end
2472
+
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.
2475
+ # @param event_id [String]
2476
+ # @param [Hash] opts the optional parameters
2477
+ # @option opts [String] :object_type Only this object type (seats.io &#x60;byObjectType(event, type)&#x60;).
2478
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
2479
+ def get_api_events_by_event_id_reports_by_object_type_json_with_http_info(event_id, opts = {})
2480
+ if @api_client.config.debugging
2481
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_by_object_type_json ...'
2482
+ end
2483
+ # verify the required parameter 'event_id' is set
2484
+ if @api_client.config.client_side_validation && event_id.nil?
2485
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_object_type_json"
2486
+ end
2487
+ if @api_client.config.client_side_validation && event_id.to_s.length > 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.'
2489
+ end
2490
+
2491
+ if @api_client.config.client_side_validation && event_id.to_s.length < 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.'
2493
+ end
2494
+
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}"
2498
+ end
2499
+ # resource path
2500
+ local_var_path = '/api/events/{eventId}/reports/by-object-type.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2501
+
2502
+ # query parameters
2503
+ query_params = opts[:query_params] || {}
2504
+ query_params[:'objectType'] = opts[:'object_type'] if !opts[:'object_type'].nil?
2505
+
2506
+ # header parameters
2507
+ header_params = opts[:header_params] || {}
2508
+
2509
+ # form parameters
2510
+ form_params = opts[:form_params] || {}
2511
+
2512
+ # http body (model)
2513
+ post_body = opts[:debug_body]
2514
+
2515
+ # return_type
2516
+ return_type = opts[:debug_return_type]
2517
+
2518
+ # auth_names
2519
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
2520
+
2521
+ new_options = opts.merge(
2522
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_by_object_type_json",
2523
+ :header_params => header_params,
2524
+ :query_params => query_params,
2525
+ :form_params => form_params,
2526
+ :body => post_body,
2527
+ :auth_names => auth_names,
2528
+ :return_type => return_type
2529
+ )
2530
+
2531
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
2532
+ if @api_client.config.debugging
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}"
2534
+ end
2535
+ return data, status_code, headers
2536
+ end
2537
+
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
2691
+ # @param event_id [String]
2692
+ # @param [Hash] opts the optional parameters
2693
+ # @return [nil]
2694
+ def get_api_events_by_event_id_reports_by_status_json(event_id, opts = {})
2695
+ get_api_events_by_event_id_reports_by_status_json_with_http_info(event_id, opts)
2696
+ nil
2697
+ end
2698
+
2699
+ # Seat counts by Postgres status
2700
+ # @param event_id [String]
2701
+ # @param [Hash] opts the optional parameters
2702
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
2703
+ def get_api_events_by_event_id_reports_by_status_json_with_http_info(event_id, opts = {})
2704
+ if @api_client.config.debugging
2705
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_by_status_json ...'
2706
+ end
2707
+ # verify the required parameter 'event_id' is set
2708
+ if @api_client.config.client_side_validation && event_id.nil?
2709
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_status_json"
2710
+ end
2711
+ if @api_client.config.client_side_validation && event_id.to_s.length > 36
2712
+ fail ArgumentError, 'invalid value for "event_id" when calling EventsApi.get_api_events_by_event_id_reports_by_status_json, the character length must be smaller than or equal to 36.'
2713
+ end
2714
+
2715
+ if @api_client.config.client_side_validation && event_id.to_s.length < 36
2716
+ fail ArgumentError, 'invalid value for "event_id" when calling EventsApi.get_api_events_by_event_id_reports_by_status_json, the character length must be great than or equal to 36.'
2717
+ end
2718
+
2719
+ # resource path
2720
+ local_var_path = '/api/events/{eventId}/reports/by-status.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2721
+
2722
+ # query parameters
2723
+ query_params = opts[:query_params] || {}
2724
+
2725
+ # header parameters
2726
+ header_params = opts[:header_params] || {}
2727
+
2728
+ # form parameters
2729
+ form_params = opts[:form_params] || {}
2730
+
2731
+ # http body (model)
2732
+ post_body = opts[:debug_body]
2733
+
2734
+ # return_type
2735
+ return_type = opts[:debug_return_type]
2736
+
2737
+ # auth_names
2738
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
2739
+
2740
+ new_options = opts.merge(
2741
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_by_status_json",
2742
+ :header_params => header_params,
2743
+ :query_params => query_params,
2744
+ :form_params => form_params,
2745
+ :body => post_body,
2746
+ :auth_names => auth_names,
2747
+ :return_type => return_type
2748
+ )
2749
+
2750
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
2751
+ if @api_client.config.debugging
2752
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_by_status_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2753
+ end
2754
+ return data, status_code, headers
2755
+ end
2756
+
2757
+ # Detailed report grouped by zone (CSV)
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).
2759
+ # @param event_id [String]
2760
+ # @param [Hash] opts the optional parameters
2761
+ # @option opts [String] :zone Only this zone bucket.
2762
+ # @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.
2763
+ # @return [nil]
2764
+ def get_api_events_by_event_id_reports_by_zone_csv(event_id, opts = {})
2765
+ get_api_events_by_event_id_reports_by_zone_csv_with_http_info(event_id, opts)
2766
+ nil
2767
+ end
2768
+
2769
+ # Detailed report grouped by zone (CSV)
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).
2771
+ # @param event_id [String]
2772
+ # @param [Hash] opts the optional parameters
2773
+ # @option opts [String] :zone Only this zone bucket.
2774
+ # @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.
2775
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
2776
+ def get_api_events_by_event_id_reports_by_zone_csv_with_http_info(event_id, opts = {})
2777
+ if @api_client.config.debugging
2778
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_by_zone_csv ...'
2779
+ end
2780
+ # verify the required parameter 'event_id' is set
2781
+ if @api_client.config.client_side_validation && event_id.nil?
2782
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_zone_csv"
2783
+ end
2784
+ 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}$/)
2785
+ if @api_client.config.client_side_validation && event_id !~ pattern
2786
+ fail ArgumentError, "invalid value for 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_zone_csv, must conform to the pattern #{pattern}."
2787
+ end
2788
+
2789
+ if @api_client.config.client_side_validation && !opts[:'zone'].nil? && opts[:'zone'].to_s.length > 128
2790
+ fail ArgumentError, 'invalid value for "opts[:"zone"]" when calling EventsApi.get_api_events_by_event_id_reports_by_zone_csv, the character length must be smaller than or equal to 128.'
2791
+ end
2792
+
2793
+ if @api_client.config.client_side_validation && !opts[:'zone'].nil? && opts[:'zone'].to_s.length < 1
2794
+ fail ArgumentError, 'invalid value for "opts[:"zone"]" when calling EventsApi.get_api_events_by_event_id_reports_by_zone_csv, the character length must be great than or equal to 1.'
2795
+ end
2796
+
2797
+ allowable_values = ["true", "false"]
2798
+ if @api_client.config.client_side_validation && opts[:'live_holds'] && !allowable_values.include?(opts[:'live_holds'])
2799
+ fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
2800
+ end
2801
+ # resource path
2802
+ local_var_path = '/api/events/{eventId}/reports/by-zone.csv'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2803
+
2804
+ # query parameters
2805
+ query_params = opts[:query_params] || {}
2806
+ query_params[:'zone'] = opts[:'zone'] if !opts[:'zone'].nil?
2807
+ query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
2808
+
2809
+ # header parameters
2810
+ header_params = opts[:header_params] || {}
2811
+
2812
+ # form parameters
2813
+ form_params = opts[:form_params] || {}
2814
+
2815
+ # http body (model)
2816
+ post_body = opts[:debug_body]
2817
+
2818
+ # return_type
2819
+ return_type = opts[:debug_return_type]
2820
+
2821
+ # auth_names
2822
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
2823
+
2824
+ new_options = opts.merge(
2825
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_by_zone_csv",
2826
+ :header_params => header_params,
2827
+ :query_params => query_params,
2828
+ :form_params => form_params,
2829
+ :body => post_body,
2830
+ :auth_names => auth_names,
2831
+ :return_type => return_type
2832
+ )
2833
+
2834
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
2835
+ if @api_client.config.debugging
2836
+ @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_by_zone_csv\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2837
+ end
2838
+ return data, status_code, headers
2839
+ end
2840
+
2841
+ # Detailed report grouped by zone
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).
2843
+ # @param event_id [String]
2844
+ # @param [Hash] opts the optional parameters
2845
+ # @option opts [String] :zone Only this zone bucket.
2846
+ # @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.
2847
+ # @return [nil]
2848
+ def get_api_events_by_event_id_reports_by_zone_json(event_id, opts = {})
2849
+ get_api_events_by_event_id_reports_by_zone_json_with_http_info(event_id, opts)
2850
+ nil
2851
+ end
2852
+
2853
+ # Detailed report grouped by zone
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).
2855
+ # @param event_id [String]
2856
+ # @param [Hash] opts the optional parameters
2857
+ # @option opts [String] :zone Only this zone bucket.
2858
+ # @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.
2859
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
2860
+ def get_api_events_by_event_id_reports_by_zone_json_with_http_info(event_id, opts = {})
2861
+ if @api_client.config.debugging
2862
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_by_zone_json ...'
2863
+ end
2864
+ # verify the required parameter 'event_id' is set
2865
+ if @api_client.config.client_side_validation && event_id.nil?
2866
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_zone_json"
2867
+ end
2868
+ 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}$/)
2869
+ if @api_client.config.client_side_validation && event_id !~ pattern
2870
+ fail ArgumentError, "invalid value for 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_zone_json, must conform to the pattern #{pattern}."
2871
+ end
2872
+
2873
+ if @api_client.config.client_side_validation && !opts[:'zone'].nil? && opts[:'zone'].to_s.length > 128
2874
+ fail ArgumentError, 'invalid value for "opts[:"zone"]" when calling EventsApi.get_api_events_by_event_id_reports_by_zone_json, the character length must be smaller than or equal to 128.'
2875
+ end
2876
+
2877
+ if @api_client.config.client_side_validation && !opts[:'zone'].nil? && opts[:'zone'].to_s.length < 1
2878
+ fail ArgumentError, 'invalid value for "opts[:"zone"]" when calling EventsApi.get_api_events_by_event_id_reports_by_zone_json, the character length must be great than or equal to 1.'
2879
+ end
2880
+
2881
+ allowable_values = ["true", "false"]
2882
+ if @api_client.config.client_side_validation && opts[:'live_holds'] && !allowable_values.include?(opts[:'live_holds'])
2883
+ fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
2884
+ end
2885
+ # resource path
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))
2087
3253
 
2088
3254
  # query parameters
2089
3255
  query_params = opts[:query_params] || {}
3256
+ query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
2090
3257
 
2091
3258
  # header parameters
2092
3259
  header_params = opts[:header_params] || {}
@@ -2104,7 +3271,7 @@ module SeatsChart
2104
3271
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
2105
3272
 
2106
3273
  new_options = opts.merge(
2107
- :operation => :"EventsApi.get_api_events_by_event_id_reports_by_object_type_json",
3274
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_deep_summary_by_category_label_json",
2108
3275
  :header_params => header_params,
2109
3276
  :query_params => query_params,
2110
3277
  :form_params => form_params,
@@ -2115,54 +3282,51 @@ module SeatsChart
2115
3282
 
2116
3283
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
2117
3284
  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}"
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}"
2119
3286
  end
2120
3287
  return data, status_code, headers
2121
3288
  end
2122
3289
 
2123
- # Detailed report grouped by orderId (Postgres)
2124
- # Uses object_statuses.order_id. Missing order → bucket NO_ORDER_ID. Optional `?orderId=`.
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).
2125
3292
  # @param event_id [String]
2126
3293
  # @param [Hash] opts the optional parameters
2127
- # @option opts [String] :order_id
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.
2128
3295
  # @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)
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)
2131
3298
  nil
2132
3299
  end
2133
3300
 
2134
- # Detailed report grouped by orderId (Postgres)
2135
- # Uses object_statuses.order_id. Missing order → bucket NO_ORDER_ID. Optional &#x60;?orderId&#x3D;&#x60;.
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).
2136
3303
  # @param event_id [String]
2137
3304
  # @param [Hash] opts the optional parameters
2138
- # @option opts [String] :order_id
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.
2139
3306
  # @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 = {})
3307
+ def get_api_events_by_event_id_reports_deep_summary_by_channel_json_with_http_info(event_id, opts = {})
2141
3308
  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 ...'
3309
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_deep_summary_by_channel_json ...'
2143
3310
  end
2144
3311
  # verify the required parameter 'event_id' is set
2145
3312
  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"
3313
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_channel_json"
2147
3314
  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.'
2150
- end
2151
-
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.'
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}."
2154
3318
  end
2155
3319
 
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.'
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}"
2158
3323
  end
2159
-
2160
3324
  # resource path
2161
- local_var_path = '/api/events/{eventId}/reports/by-order-id.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
3325
+ local_var_path = '/api/events/{eventId}/reports/deep-summary/by-channel.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2162
3326
 
2163
3327
  # query parameters
2164
3328
  query_params = opts[:query_params] || {}
2165
- query_params[:'orderId'] = opts[:'order_id'] if !opts[:'order_id'].nil?
3329
+ query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
2166
3330
 
2167
3331
  # header parameters
2168
3332
  header_params = opts[:header_params] || {}
@@ -2180,7 +3344,7 @@ module SeatsChart
2180
3344
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
2181
3345
 
2182
3346
  new_options = opts.merge(
2183
- :operation => :"EventsApi.get_api_events_by_event_id_reports_by_order_id_json",
3347
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_deep_summary_by_channel_json",
2184
3348
  :header_params => header_params,
2185
3349
  :query_params => query_params,
2186
3350
  :form_params => form_params,
@@ -2191,54 +3355,51 @@ module SeatsChart
2191
3355
 
2192
3356
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
2193
3357
  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}"
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}"
2195
3359
  end
2196
3360
  return data, status_code, headers
2197
3361
  end
2198
3362
 
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.
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).
2201
3365
  # @param event_id [String]
2202
3366
  # @param [Hash] opts the optional parameters
2203
- # @option opts [String] :section
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.
2204
3368
  # @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)
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)
2207
3371
  nil
2208
3372
  end
2209
3373
 
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.
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).
2212
3376
  # @param event_id [String]
2213
3377
  # @param [Hash] opts the optional parameters
2214
- # @option opts [String] :section
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.
2215
3379
  # @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 = {})
3380
+ def get_api_events_by_event_id_reports_deep_summary_by_object_type_json_with_http_info(event_id, opts = {})
2217
3381
  if @api_client.config.debugging
2218
- @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_by_section_json ...'
3382
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_deep_summary_by_object_type_json ...'
2219
3383
  end
2220
3384
  # verify the required parameter 'event_id' is set
2221
3385
  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"
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"
2223
3387
  end
2224
- 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.'
2226
- end
2227
-
2228
- 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.'
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}."
2230
3391
  end
2231
3392
 
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.'
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}"
2234
3396
  end
2235
-
2236
3397
  # resource path
2237
- local_var_path = '/api/events/{eventId}/reports/by-section.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
3398
+ local_var_path = '/api/events/{eventId}/reports/deep-summary/by-object-type.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2238
3399
 
2239
3400
  # query parameters
2240
3401
  query_params = opts[:query_params] || {}
2241
- query_params[:'section'] = opts[:'section'] if !opts[:'section'].nil?
3402
+ query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
2242
3403
 
2243
3404
  # header parameters
2244
3405
  header_params = opts[:header_params] || {}
@@ -2256,7 +3417,7 @@ module SeatsChart
2256
3417
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
2257
3418
 
2258
3419
  new_options = opts.merge(
2259
- :operation => :"EventsApi.get_api_events_by_event_id_reports_by_section_json",
3420
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_deep_summary_by_object_type_json",
2260
3421
  :header_params => header_params,
2261
3422
  :query_params => query_params,
2262
3423
  :form_params => form_params,
@@ -2267,45 +3428,51 @@ module SeatsChart
2267
3428
 
2268
3429
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
2269
3430
  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}"
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}"
2271
3432
  end
2272
3433
  return data, status_code, headers
2273
3434
  end
2274
3435
 
2275
- # Seat counts by Postgres status
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).
2276
3438
  # @param event_id [String]
2277
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.
2278
3441
  # @return [nil]
2279
- def get_api_events_by_event_id_reports_by_status_json(event_id, opts = {})
2280
- get_api_events_by_event_id_reports_by_status_json_with_http_info(event_id, opts)
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)
2281
3444
  nil
2282
3445
  end
2283
3446
 
2284
- # Seat counts by Postgres status
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).
2285
3449
  # @param event_id [String]
2286
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.
2287
3452
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
2288
- def get_api_events_by_event_id_reports_by_status_json_with_http_info(event_id, opts = {})
3453
+ def get_api_events_by_event_id_reports_deep_summary_by_section_json_with_http_info(event_id, opts = {})
2289
3454
  if @api_client.config.debugging
2290
- @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_by_status_json ...'
3455
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_deep_summary_by_section_json ...'
2291
3456
  end
2292
3457
  # verify the required parameter 'event_id' is set
2293
3458
  if @api_client.config.client_side_validation && event_id.nil?
2294
- fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_status_json"
3459
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_section_json"
2295
3460
  end
2296
- if @api_client.config.client_side_validation && event_id.to_s.length > 36
2297
- fail ArgumentError, 'invalid value for "event_id" when calling EventsApi.get_api_events_by_event_id_reports_by_status_json, the character length must be smaller than or equal to 36.'
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}."
2298
3464
  end
2299
3465
 
2300
- if @api_client.config.client_side_validation && event_id.to_s.length < 36
2301
- fail ArgumentError, 'invalid value for "event_id" when calling EventsApi.get_api_events_by_event_id_reports_by_status_json, the character length must be great than or equal to 36.'
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}"
2302
3469
  end
2303
-
2304
3470
  # resource path
2305
- local_var_path = '/api/events/{eventId}/reports/by-status.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
3471
+ local_var_path = '/api/events/{eventId}/reports/deep-summary/by-section.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2306
3472
 
2307
3473
  # query parameters
2308
3474
  query_params = opts[:query_params] || {}
3475
+ query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
2309
3476
 
2310
3477
  # header parameters
2311
3478
  header_params = opts[:header_params] || {}
@@ -2323,7 +3490,7 @@ module SeatsChart
2323
3490
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
2324
3491
 
2325
3492
  new_options = opts.merge(
2326
- :operation => :"EventsApi.get_api_events_by_event_id_reports_by_status_json",
3493
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_deep_summary_by_section_json",
2327
3494
  :header_params => header_params,
2328
3495
  :query_params => query_params,
2329
3496
  :form_params => form_params,
@@ -2334,49 +3501,39 @@ module SeatsChart
2334
3501
 
2335
3502
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
2336
3503
  if @api_client.config.debugging
2337
- @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_by_status_json\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
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}"
2338
3505
  end
2339
3506
  return data, status_code, headers
2340
3507
  end
2341
3508
 
2342
- # 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).
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).
2344
3511
  # @param event_id [String]
2345
3512
  # @param [Hash] opts the optional parameters
2346
- # @option opts [String] :zone Only this zone bucket.
2347
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.
2348
3514
  # @return [nil]
2349
- def get_api_events_by_event_id_reports_by_zone_csv(event_id, opts = {})
2350
- get_api_events_by_event_id_reports_by_zone_csv_with_http_info(event_id, opts)
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)
2351
3517
  nil
2352
3518
  end
2353
3519
 
2354
- # 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).
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).
2356
3522
  # @param event_id [String]
2357
3523
  # @param [Hash] opts the optional parameters
2358
- # @option opts [String] :zone Only this zone bucket.
2359
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.
2360
3525
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
2361
- def get_api_events_by_event_id_reports_by_zone_csv_with_http_info(event_id, opts = {})
3526
+ def get_api_events_by_event_id_reports_deep_summary_by_status_json_with_http_info(event_id, opts = {})
2362
3527
  if @api_client.config.debugging
2363
- @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_by_zone_csv ...'
3528
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_deep_summary_by_status_json ...'
2364
3529
  end
2365
3530
  # verify the required parameter 'event_id' is set
2366
3531
  if @api_client.config.client_side_validation && event_id.nil?
2367
- fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_zone_csv"
3532
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_status_json"
2368
3533
  end
2369
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}$/)
2370
3535
  if @api_client.config.client_side_validation && event_id !~ pattern
2371
- fail ArgumentError, "invalid value for 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_zone_csv, must conform to the pattern #{pattern}."
2372
- end
2373
-
2374
- if @api_client.config.client_side_validation && !opts[:'zone'].nil? && opts[:'zone'].to_s.length > 128
2375
- fail ArgumentError, 'invalid value for "opts[:"zone"]" when calling EventsApi.get_api_events_by_event_id_reports_by_zone_csv, the character length must be smaller than or equal to 128.'
2376
- end
2377
-
2378
- if @api_client.config.client_side_validation && !opts[:'zone'].nil? && opts[:'zone'].to_s.length < 1
2379
- fail ArgumentError, 'invalid value for "opts[:"zone"]" when calling EventsApi.get_api_events_by_event_id_reports_by_zone_csv, the character length must be great than or equal to 1.'
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}."
2380
3537
  end
2381
3538
 
2382
3539
  allowable_values = ["true", "false"]
@@ -2384,11 +3541,10 @@ module SeatsChart
2384
3541
  fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
2385
3542
  end
2386
3543
  # resource path
2387
- local_var_path = '/api/events/{eventId}/reports/by-zone.csv'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
3544
+ local_var_path = '/api/events/{eventId}/reports/deep-summary/by-status.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
2388
3545
 
2389
3546
  # query parameters
2390
3547
  query_params = opts[:query_params] || {}
2391
- query_params[:'zone'] = opts[:'zone'] if !opts[:'zone'].nil?
2392
3548
  query_params[:'liveHolds'] = opts[:'live_holds'] if !opts[:'live_holds'].nil?
2393
3549
 
2394
3550
  # header parameters
@@ -2407,7 +3563,7 @@ module SeatsChart
2407
3563
  auth_names = opts[:debug_auth_names] || ['ApiKeyAuth', 'BearerAuth']
2408
3564
 
2409
3565
  new_options = opts.merge(
2410
- :operation => :"EventsApi.get_api_events_by_event_id_reports_by_zone_csv",
3566
+ :operation => :"EventsApi.get_api_events_by_event_id_reports_deep_summary_by_status_json",
2411
3567
  :header_params => header_params,
2412
3568
  :query_params => query_params,
2413
3569
  :form_params => form_params,
@@ -2418,49 +3574,39 @@ module SeatsChart
2418
3574
 
2419
3575
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
2420
3576
  if @api_client.config.debugging
2421
- @api_client.config.logger.debug "API called: EventsApi#get_api_events_by_event_id_reports_by_zone_csv\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
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}"
2422
3578
  end
2423
3579
  return data, status_code, headers
2424
3580
  end
2425
3581
 
2426
- # 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).
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).
2428
3584
  # @param event_id [String]
2429
3585
  # @param [Hash] opts the optional parameters
2430
- # @option opts [String] :zone Only this zone bucket.
2431
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.
2432
3587
  # @return [nil]
2433
- def get_api_events_by_event_id_reports_by_zone_json(event_id, opts = {})
2434
- get_api_events_by_event_id_reports_by_zone_json_with_http_info(event_id, opts)
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)
2435
3590
  nil
2436
3591
  end
2437
3592
 
2438
- # 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).
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).
2440
3595
  # @param event_id [String]
2441
3596
  # @param [Hash] opts the optional parameters
2442
- # @option opts [String] :zone Only this zone bucket.
2443
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.
2444
3598
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
2445
- def get_api_events_by_event_id_reports_by_zone_json_with_http_info(event_id, opts = {})
3599
+ def get_api_events_by_event_id_reports_deep_summary_by_zone_json_with_http_info(event_id, opts = {})
2446
3600
  if @api_client.config.debugging
2447
- @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_by_zone_json ...'
3601
+ @api_client.config.logger.debug 'Calling API: EventsApi.get_api_events_by_event_id_reports_deep_summary_by_zone_json ...'
2448
3602
  end
2449
3603
  # verify the required parameter 'event_id' is set
2450
3604
  if @api_client.config.client_side_validation && event_id.nil?
2451
- fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_zone_json"
3605
+ fail ArgumentError, "Missing the required parameter 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_deep_summary_by_zone_json"
2452
3606
  end
2453
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}$/)
2454
3608
  if @api_client.config.client_side_validation && event_id !~ pattern
2455
- fail ArgumentError, "invalid value for 'event_id' when calling EventsApi.get_api_events_by_event_id_reports_by_zone_json, must conform to the pattern #{pattern}."
2456
- end
2457
-
2458
- if @api_client.config.client_side_validation && !opts[:'zone'].nil? && opts[:'zone'].to_s.length > 128
2459
- fail ArgumentError, 'invalid value for "opts[:"zone"]" when calling EventsApi.get_api_events_by_event_id_reports_by_zone_json, the character length must be smaller than or equal to 128.'
2460
- end
2461
-
2462
- if @api_client.config.client_side_validation && !opts[:'zone'].nil? && opts[:'zone'].to_s.length < 1
2463
- fail ArgumentError, 'invalid value for "opts[:"zone"]" when calling EventsApi.get_api_events_by_event_id_reports_by_zone_json, the character length must be great than or equal to 1.'
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}."
2464
3610
  end
2465
3611
 
2466
3612
  allowable_values = ["true", "false"]
@@ -2468,11 +3614,10 @@ module SeatsChart
2468
3614
  fail ArgumentError, "invalid value for \"live_holds\", must be one of #{allowable_values}"
2469
3615
  end
2470
3616
  # resource path
2471
- local_var_path = '/api/events/{eventId}/reports/by-zone.json'.sub('{' + 'eventId' + '}', CGI.escape(event_id.to_s))
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; 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`. 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; 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;. 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,89 @@ 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
+
5138
6443
  # Put every object of the event back on sale
5139
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.
5140
6445
  # @param event_id [String]
@@ -5393,7 +6698,7 @@ module SeatsChart
5393
6698
  end
5394
6699
 
5395
6700
  # Duplicate event
5396
- # Creates a new event with copied seat and GA inventory (all available), including inventory_channels (same secrets) and remapped channel_key_id + for_sale. Reservations are not copied.
6701
+ # Creates a new event with copied seat and GA inventory (all available), including inventory_channels (same secrets) and remapped channel_key_id + for_sale. Reservations are not copied. Counts against the plan event limit (402 `plan_limit_exceeded`).
5397
6702
  # @param event_id [String]
5398
6703
  # @param post_api_events_by_event_id_duplicate_request [PostApiEventsByEventIdDuplicateRequest]
5399
6704
  # @param [Hash] opts the optional parameters
@@ -5405,7 +6710,7 @@ module SeatsChart
5405
6710
  end
5406
6711
 
5407
6712
  # Duplicate event
5408
- # Creates a new event with copied seat and GA inventory (all available), including inventory_channels (same secrets) and remapped channel_key_id + for_sale. Reservations are not copied.
6713
+ # Creates a new event with copied seat and GA inventory (all available), including inventory_channels (same secrets) and remapped channel_key_id + for_sale. Reservations are not copied. Counts against the plan event limit (402 &#x60;plan_limit_exceeded&#x60;).
5409
6714
  # @param event_id [String]
5410
6715
  # @param post_api_events_by_event_id_duplicate_request [PostApiEventsByEventIdDuplicateRequest]
5411
6716
  # @param [Hash] opts the optional parameters
@@ -5834,23 +7139,25 @@ module SeatsChart
5834
7139
  end
5835
7140
 
5836
7141
  # Publish draft map to live seats
5837
- # 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`.
5838
7143
  # @param event_id [String]
7144
+ # @param post_api_events_by_event_id_map_publish_request [PostApiEventsByEventIdMapPublishRequest]
5839
7145
  # @param [Hash] opts the optional parameters
5840
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.
5841
7147
  # @return [nil]
5842
- def post_api_events_by_event_id_map_publish(event_id, opts = {})
5843
- 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)
5844
7150
  nil
5845
7151
  end
5846
7152
 
5847
7153
  # Publish draft map to live seats
5848
- # 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;.
5849
7155
  # @param event_id [String]
7156
+ # @param post_api_events_by_event_id_map_publish_request [PostApiEventsByEventIdMapPublishRequest]
5850
7157
  # @param [Hash] opts the optional parameters
5851
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.
5852
7159
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
5853
- 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 = {})
5854
7161
  if @api_client.config.debugging
5855
7162
  @api_client.config.logger.debug 'Calling API: EventsApi.post_api_events_by_event_id_map_publish ...'
5856
7163
  end
@@ -5866,6 +7173,10 @@ module SeatsChart
5866
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.'
5867
7174
  end
5868
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
5869
7180
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
5870
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.'
5871
7182
  end
@@ -5884,13 +7195,18 @@ module SeatsChart
5884
7195
  header_params = opts[:header_params] || {}
5885
7196
  # HTTP header 'Accept' (if needed)
5886
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
5887
7203
  header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
5888
7204
 
5889
7205
  # form parameters
5890
7206
  form_params = opts[:form_params] || {}
5891
7207
 
5892
7208
  # http body (model)
5893
- 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)
5894
7210
 
5895
7211
  # return_type
5896
7212
  return_type = opts[:debug_return_type]
@@ -6426,23 +7742,23 @@ module SeatsChart
6426
7742
  # Save map draft (legacy path)
6427
7743
  # Alias for **`PUT /map/draft`**. Does **not** publish to buyers — use **`POST /map/publish`**.
6428
7744
  # @param event_id [String]
6429
- # @param put_api_charts_by_chart_id_map_draft_request [PutApiChartsByChartIdMapDraftRequest]
7745
+ # @param post_api_charts_by_chart_id_actions_validate_request [PostApiChartsByChartIdActionsValidateRequest]
6430
7746
  # @param [Hash] opts the optional parameters
6431
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.
6432
7748
  # @return [nil]
6433
- def put_api_events_by_event_id_map(event_id, put_api_charts_by_chart_id_map_draft_request, opts = {})
6434
- put_api_events_by_event_id_map_with_http_info(event_id, put_api_charts_by_chart_id_map_draft_request, opts)
7749
+ def put_api_events_by_event_id_map(event_id, post_api_charts_by_chart_id_actions_validate_request, opts = {})
7750
+ put_api_events_by_event_id_map_with_http_info(event_id, post_api_charts_by_chart_id_actions_validate_request, opts)
6435
7751
  nil
6436
7752
  end
6437
7753
 
6438
7754
  # Save map draft (legacy path)
6439
7755
  # Alias for **&#x60;PUT /map/draft&#x60;**. Does **not** publish to buyers — use **&#x60;POST /map/publish&#x60;**.
6440
7756
  # @param event_id [String]
6441
- # @param put_api_charts_by_chart_id_map_draft_request [PutApiChartsByChartIdMapDraftRequest]
7757
+ # @param post_api_charts_by_chart_id_actions_validate_request [PostApiChartsByChartIdActionsValidateRequest]
6442
7758
  # @param [Hash] opts the optional parameters
6443
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.
6444
7760
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
6445
- def put_api_events_by_event_id_map_with_http_info(event_id, put_api_charts_by_chart_id_map_draft_request, opts = {})
7761
+ def put_api_events_by_event_id_map_with_http_info(event_id, post_api_charts_by_chart_id_actions_validate_request, opts = {})
6446
7762
  if @api_client.config.debugging
6447
7763
  @api_client.config.logger.debug 'Calling API: EventsApi.put_api_events_by_event_id_map ...'
6448
7764
  end
@@ -6458,9 +7774,9 @@ module SeatsChart
6458
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.'
6459
7775
  end
6460
7776
 
6461
- # verify the required parameter 'put_api_charts_by_chart_id_map_draft_request' is set
6462
- if @api_client.config.client_side_validation && put_api_charts_by_chart_id_map_draft_request.nil?
6463
- 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"
7777
+ # verify the required parameter 'post_api_charts_by_chart_id_actions_validate_request' is set
7778
+ if @api_client.config.client_side_validation && post_api_charts_by_chart_id_actions_validate_request.nil?
7779
+ 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"
6464
7780
  end
6465
7781
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
6466
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.'
@@ -6489,7 +7805,7 @@ module SeatsChart
6489
7805
  form_params = opts[:form_params] || {}
6490
7806
 
6491
7807
  # http body (model)
6492
- post_body = opts[:debug_body] || @api_client.object_to_http_body(put_api_charts_by_chart_id_map_draft_request)
7808
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(post_api_charts_by_chart_id_actions_validate_request)
6493
7809
 
6494
7810
  # return_type
6495
7811
  return_type = opts[:debug_return_type]
@@ -6517,23 +7833,23 @@ module SeatsChart
6517
7833
  # Save map draft (does not go live)
6518
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).
6519
7835
  # @param event_id [String]
6520
- # @param put_api_charts_by_chart_id_map_draft_request [PutApiChartsByChartIdMapDraftRequest]
7836
+ # @param post_api_charts_by_chart_id_actions_validate_request [PostApiChartsByChartIdActionsValidateRequest]
6521
7837
  # @param [Hash] opts the optional parameters
6522
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.
6523
7839
  # @return [nil]
6524
- def put_api_events_by_event_id_map_draft(event_id, put_api_charts_by_chart_id_map_draft_request, opts = {})
6525
- put_api_events_by_event_id_map_draft_with_http_info(event_id, put_api_charts_by_chart_id_map_draft_request, opts)
7840
+ def put_api_events_by_event_id_map_draft(event_id, post_api_charts_by_chart_id_actions_validate_request, opts = {})
7841
+ put_api_events_by_event_id_map_draft_with_http_info(event_id, post_api_charts_by_chart_id_actions_validate_request, opts)
6526
7842
  nil
6527
7843
  end
6528
7844
 
6529
7845
  # Save map draft (does not go live)
6530
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).
6531
7847
  # @param event_id [String]
6532
- # @param put_api_charts_by_chart_id_map_draft_request [PutApiChartsByChartIdMapDraftRequest]
7848
+ # @param post_api_charts_by_chart_id_actions_validate_request [PostApiChartsByChartIdActionsValidateRequest]
6533
7849
  # @param [Hash] opts the optional parameters
6534
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.
6535
7851
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
6536
- def put_api_events_by_event_id_map_draft_with_http_info(event_id, put_api_charts_by_chart_id_map_draft_request, opts = {})
7852
+ def put_api_events_by_event_id_map_draft_with_http_info(event_id, post_api_charts_by_chart_id_actions_validate_request, opts = {})
6537
7853
  if @api_client.config.debugging
6538
7854
  @api_client.config.logger.debug 'Calling API: EventsApi.put_api_events_by_event_id_map_draft ...'
6539
7855
  end
@@ -6549,9 +7865,9 @@ module SeatsChart
6549
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.'
6550
7866
  end
6551
7867
 
6552
- # verify the required parameter 'put_api_charts_by_chart_id_map_draft_request' is set
6553
- if @api_client.config.client_side_validation && put_api_charts_by_chart_id_map_draft_request.nil?
6554
- 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"
7868
+ # verify the required parameter 'post_api_charts_by_chart_id_actions_validate_request' is set
7869
+ if @api_client.config.client_side_validation && post_api_charts_by_chart_id_actions_validate_request.nil?
7870
+ 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"
6555
7871
  end
6556
7872
  if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
6557
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.'
@@ -6580,7 +7896,7 @@ module SeatsChart
6580
7896
  form_params = opts[:form_params] || {}
6581
7897
 
6582
7898
  # http body (model)
6583
- post_body = opts[:debug_body] || @api_client.object_to_http_body(put_api_charts_by_chart_id_map_draft_request)
7899
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(post_api_charts_by_chart_id_actions_validate_request)
6584
7900
 
6585
7901
  # return_type
6586
7902
  return_type = opts[:debug_return_type]