algolia 3.43.0 → 3.46.1

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 (180) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/issue.yml +6 -4
  3. data/.github/workflows/release.yml +3 -3
  4. data/AGENTS.md +0 -24
  5. data/CHANGELOG.md +50 -0
  6. data/Gemfile.lock +1 -1
  7. data/lib/algolia/api/abtesting_client.rb +20 -13
  8. data/lib/algolia/api/abtesting_v3_client.rb +198 -8
  9. data/lib/algolia/api/agent_studio_client.rb +246 -7
  10. data/lib/algolia/api/analytics_client.rb +12 -11
  11. data/lib/algolia/api/composition_client.rb +2 -1
  12. data/lib/algolia/api/ingestion_client.rb +2 -1
  13. data/lib/algolia/api/insights_client.rb +2 -1
  14. data/lib/algolia/api/monitoring_client.rb +2 -1
  15. data/lib/algolia/api/personalization_client.rb +2 -1
  16. data/lib/algolia/api/query_suggestions_client.rb +2 -1
  17. data/lib/algolia/api/recommend_client.rb +4 -3
  18. data/lib/algolia/api/search_client.rb +141 -23
  19. data/lib/algolia/api_client.rb +10 -2
  20. data/lib/algolia/chunked_helper_options.rb +1 -0
  21. data/lib/algolia/configuration.rb +18 -2
  22. data/lib/algolia/defaults.rb +8 -0
  23. data/lib/algolia/error.rb +20 -3
  24. data/lib/algolia/models/abtesting-v3/ab_test.rb +13 -11
  25. data/lib/algolia/models/abtesting-v3/ab_test_configuration.rb +22 -4
  26. data/lib/algolia/models/abtesting-v3/ab_test_settings_response.rb +224 -0
  27. data/lib/algolia/models/abtesting-v3/add_ab_tests_request.rb +11 -1
  28. data/lib/algolia/models/abtesting-v3/analysis_method.rb +34 -0
  29. data/lib/algolia/models/abtesting-v3/bayesian_metric_result.rb +237 -0
  30. data/lib/algolia/models/abtesting-v3/evidence_status.rb +37 -0
  31. data/lib/algolia/models/abtesting-v3/feature_settings.rb +224 -0
  32. data/lib/algolia/models/abtesting-v3/metric_evidence.rb +209 -0
  33. data/lib/algolia/models/abtesting-v3/metric_metadata.rb +1 -1
  34. data/lib/algolia/models/abtesting-v3/metric_name.rb +7 -1
  35. data/lib/algolia/models/abtesting-v3/metric_result.rb +18 -8
  36. data/lib/algolia/models/abtesting-v3/minimum_detectable_effect.rb +1 -1
  37. data/lib/algolia/models/abtesting-v3/primary_metric.rb +37 -0
  38. data/lib/algolia/models/abtesting-v3/save_settings_request.rb +208 -0
  39. data/lib/algolia/models/abtesting-v3/variant_settings.rb +293 -0
  40. data/lib/algolia/models/agent-studio/agent_completion_algolia_params.rb +16 -4
  41. data/lib/algolia/models/agent-studio/agent_completion_request.rb +1 -3
  42. data/lib/algolia/models/agent-studio/agent_completion_request_union.rb +108 -0
  43. data/lib/algolia/models/agent-studio/agent_test_configuration.rb +1 -1
  44. data/lib/algolia/models/agent-studio/agent_with_version_response.rb +1 -1
  45. data/lib/algolia/models/agent-studio/agui_completion_request.rb +265 -0
  46. data/lib/algolia/models/agent-studio/agui_resume.rb +231 -0
  47. data/lib/algolia/models/agent-studio/algolia_grouped_results_compat_tool_config.rb +268 -0
  48. data/lib/algolia/models/agent-studio/{algolia_display_results_tool_config.rb → algolia_grouped_results_tool_config.rb} +30 -16
  49. data/lib/algolia/models/agent-studio/{algolia_recommend_tool_config_input.rb → algolia_recommend_tool_config.rb} +3 -3
  50. data/lib/algolia/models/agent-studio/algolia_search_tool_config.rb +22 -4
  51. data/lib/algolia/models/agent-studio/assistant_message_agui.rb +280 -0
  52. data/lib/algolia/models/agent-studio/assistant_message_v4.rb +1 -0
  53. data/lib/algolia/models/agent-studio/assistant_message_v5.rb +3 -1
  54. data/lib/algolia/models/agent-studio/assistant_part_v5.rb +2 -0
  55. data/lib/algolia/models/agent-studio/azure_open_ai_provider_input.rb +1 -1
  56. data/lib/algolia/models/agent-studio/boolean_param.rb +220 -0
  57. data/lib/algolia/models/agent-studio/client_side_tool_config.rb +14 -4
  58. data/lib/algolia/models/agent-studio/compaction_stats.rb +271 -0
  59. data/lib/algolia/models/agent-studio/compatibility_mode.rb +2 -1
  60. data/lib/algolia/models/agent-studio/context_compact_request.rb +263 -0
  61. data/lib/algolia/models/agent-studio/context_response.rb +231 -0
  62. data/lib/algolia/models/agent-studio/context_stats.rb +258 -0
  63. data/lib/algolia/models/agent-studio/context_trim_request.rb +239 -0
  64. data/lib/algolia/models/agent-studio/conversation_base_response.rb +16 -5
  65. data/lib/algolia/models/agent-studio/conversation_full_response.rb +26 -5
  66. data/lib/algolia/models/agent-studio/data_guardrail_violation_part_v5.rb +218 -0
  67. data/lib/algolia/models/agent-studio/data_part_v5.rb +220 -0
  68. data/lib/algolia/models/agent-studio/facet_filters_union_search_parameters_overrides.rb +108 -0
  69. data/lib/algolia/models/agent-studio/feedback_update_request.rb +253 -0
  70. data/lib/algolia/models/agent-studio/forwarded_props.rb +226 -0
  71. data/lib/algolia/models/agent-studio/function_call_agui.rb +219 -0
  72. data/lib/algolia/models/agent-studio/guardrail_outcome.rb +231 -0
  73. data/lib/algolia/models/agent-studio/guardrail_violation_data_v5.rb +230 -0
  74. data/lib/algolia/models/agent-studio/impact_analytics.rb +242 -0
  75. data/lib/algolia/models/agent-studio/index_search_parameters.rb +11 -1
  76. data/lib/algolia/models/agent-studio/input_union.rb +113 -0
  77. data/lib/algolia/models/agent-studio/items_union.rb +132 -0
  78. data/lib/algolia/models/agent-studio/items_union_agui_completion_request.rb +123 -0
  79. data/lib/algolia/models/agent-studio/managed_provider_response_input.rb +209 -0
  80. data/lib/algolia/models/agent-studio/mcp_server_tool_config.rb +1 -1
  81. data/lib/algolia/models/agent-studio/memory_record.rb +4 -4
  82. data/lib/algolia/models/agent-studio/message_event.rb +231 -0
  83. data/lib/algolia/models/agent-studio/message_part_assistant_message_agui.rb +123 -0
  84. data/lib/algolia/models/agent-studio/message_response.rb +87 -5
  85. data/lib/algolia/models/agent-studio/mode_enum.rb +34 -0
  86. data/lib/algolia/models/agent-studio/one_of_enum.rb +34 -0
  87. data/lib/algolia/models/agent-studio/open_ai_compatible_provider_input.rb +1 -1
  88. data/lib/algolia/models/agent-studio/paginated_conversations_response.rb +13 -4
  89. data/lib/algolia/models/agent-studio/provider_authentication_response.rb +14 -5
  90. data/lib/algolia/models/agent-studio/provider_input.rb +2 -1
  91. data/lib/algolia/models/agent-studio/provider_input_nullable.rb +2 -1
  92. data/lib/algolia/models/agent-studio/provider_name.rb +2 -1
  93. data/lib/algolia/models/agent-studio/reasoning_message_agui.rb +239 -0
  94. data/lib/algolia/models/agent-studio/reasoning_part_agui.rb +228 -0
  95. data/lib/algolia/models/agent-studio/search_parameters.rb +1 -1
  96. data/lib/algolia/models/agent-studio/search_parameters_overrides.rb +80 -5
  97. data/lib/algolia/models/agent-studio/status_enum.rb +34 -0
  98. data/lib/algolia/models/agent-studio/task_kind.rb +33 -0
  99. data/lib/algolia/models/agent-studio/task_request.rb +240 -0
  100. data/lib/algolia/models/agent-studio/task_response.rb +211 -0
  101. data/lib/algolia/models/agent-studio/text_part_agui.rb +219 -0
  102. data/lib/algolia/models/agent-studio/tool_approval_agui.rb +228 -0
  103. data/lib/algolia/models/agent-studio/tool_approval_request_part.rb +15 -5
  104. data/lib/algolia/models/agent-studio/tool_call_agui.rb +237 -0
  105. data/lib/algolia/models/agent-studio/tool_call_part.rb +13 -1
  106. data/lib/algolia/models/agent-studio/tool_call_part_agui.rb +272 -0
  107. data/lib/algolia/models/agent-studio/tool_call_result_part_agui.rb +250 -0
  108. data/lib/algolia/models/agent-studio/tool_config_input.rb +2 -5
  109. data/lib/algolia/models/agent-studio/{tool_config.rb → tool_config_or_boolean_union.rb} +1 -1
  110. data/lib/algolia/models/agent-studio/tool_config_output.rb +126 -0
  111. data/lib/algolia/models/agent-studio/tool_invocation_v4.rb +10 -2
  112. data/lib/algolia/models/agent-studio/tool_message_agui.rb +259 -0
  113. data/lib/algolia/models/agent-studio/tool_part_v5.rb +47 -2
  114. data/lib/algolia/models/agent-studio/tool_result_part.rb +57 -5
  115. data/lib/algolia/models/agent-studio/unknown_tool_config.rb +1 -1
  116. data/lib/algolia/models/agent-studio/user_message_agui.rb +261 -0
  117. data/lib/algolia/models/agent-studio/user_message_metadata_agui.rb +208 -0
  118. data/lib/algolia/models/agent-studio/user_message_metadata_v5.rb +4 -2
  119. data/lib/algolia/models/agent-studio/user_message_v4.rb +4 -1
  120. data/lib/algolia/models/agent-studio/user_message_v5.rb +4 -1
  121. data/lib/algolia/models/agent-studio/validation_error.rb +5 -25
  122. data/lib/algolia/models/agent-studio/xai_provider_input.rb +220 -0
  123. data/lib/algolia/models/analytics/catalog_entry.rb +1 -1
  124. data/lib/algolia/models/composition/base_injection_query_parameters.rb +18 -18
  125. data/lib/algolia/models/composition/distinct.rb +1 -1
  126. data/lib/algolia/models/composition/external_provider.rb +209 -0
  127. data/lib/algolia/models/composition/external_provider_ordering.rb +34 -0
  128. data/lib/algolia/models/composition/hit_metadata.rb +2 -2
  129. data/lib/algolia/models/composition/injected_item_external.rb +21 -14
  130. data/lib/algolia/models/composition/injected_item_external_provider.rb +258 -0
  131. data/lib/algolia/models/composition/injected_item_external_provider_source.rb +216 -0
  132. data/lib/algolia/models/composition/injected_item_hits_metadata.rb +1 -1
  133. data/lib/algolia/models/composition/{recommend.rb → injected_item_recommend.rb} +10 -3
  134. data/lib/algolia/models/composition/injected_item_recommend_source.rb +1 -1
  135. data/lib/algolia/models/composition/injected_item_search.rb +8 -1
  136. data/lib/algolia/models/composition/injected_item_source.rb +1 -0
  137. data/lib/algolia/models/composition/injection_main_external_provider.rb +258 -0
  138. data/lib/algolia/models/composition/injection_main_external_provider_source.rb +216 -0
  139. data/lib/algolia/models/composition/{main_recommend.rb → injection_main_recommend.rb} +10 -3
  140. data/lib/algolia/models/composition/injection_main_recommend_source.rb +1 -1
  141. data/lib/algolia/models/composition/{main_search.rb → injection_main_search.rb} +11 -4
  142. data/lib/algolia/models/composition/injection_main_search_source.rb +1 -1
  143. data/lib/algolia/models/composition/injection_main_source.rb +1 -0
  144. data/lib/algolia/models/composition/main_injection_query_parameters.rb +22 -22
  145. data/lib/algolia/models/composition/optional_words.rb +1 -1
  146. data/lib/algolia/models/composition/params.rb +6 -6
  147. data/lib/algolia/models/composition/processing_error.rb +209 -0
  148. data/lib/algolia/models/composition/request_body.rb +13 -4
  149. data/lib/algolia/models/composition/result_card.rb +208 -0
  150. data/lib/algolia/models/composition/search_response.rb +16 -4
  151. data/lib/algolia/models/composition/widgets.rb +13 -4
  152. data/lib/algolia/models/ingestion/source_update_commercetools.rb +11 -0
  153. data/lib/algolia/models/recommend/distinct.rb +1 -1
  154. data/lib/algolia/models/recommend/fallback_params.rb +26 -26
  155. data/lib/algolia/models/recommend/optional_words.rb +1 -1
  156. data/lib/algolia/models/recommend/recommend_search_params.rb +26 -26
  157. data/lib/algolia/models/recommend/result_card.rb +208 -0
  158. data/lib/algolia/models/recommend/widgets.rb +13 -4
  159. data/lib/algolia/models/search/api_key.rb +2 -2
  160. data/lib/algolia/models/search/attribute_criteria_computed_by.rb +35 -0
  161. data/lib/algolia/models/search/browse_params_object.rb +35 -25
  162. data/lib/algolia/models/search/consequence_params.rb +35 -25
  163. data/lib/algolia/models/search/distinct.rb +1 -1
  164. data/lib/algolia/models/search/get_api_key_response.rb +2 -2
  165. data/lib/algolia/models/search/index_settings.rb +28 -18
  166. data/lib/algolia/models/search/log.rb +11 -0
  167. data/lib/algolia/models/search/optional_words.rb +1 -1
  168. data/lib/algolia/models/search/result_card.rb +208 -0
  169. data/lib/algolia/models/search/search_for_facets.rb +35 -25
  170. data/lib/algolia/models/search/search_for_hits.rb +35 -25
  171. data/lib/algolia/models/search/search_params_object.rb +35 -25
  172. data/lib/algolia/models/search/secured_api_key_restrictions.rb +1 -1
  173. data/lib/algolia/models/search/settings_response.rb +28 -18
  174. data/lib/algolia/models/search/widgets.rb +13 -4
  175. data/lib/algolia/transport/http/http_requester.rb +2 -2
  176. data/lib/algolia/transport/request_id.rb +49 -0
  177. data/lib/algolia/transport/transport.rb +161 -18
  178. data/lib/algolia/version.rb +1 -1
  179. data/lib/algolia.rb +1 -0
  180. metadata +73 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 26e15a7a80471a7a68cf607c70e21c52f1a0f5d12b3a93888d3865f5bc02a257
4
- data.tar.gz: 0c45427919aef09a76d67b2320ad80908268fb5e9d96a6e9f1510c25b8fab6bf
3
+ metadata.gz: 328e8475c7136afd5c3ecb2e096a3c7cbeeaccc7fe1f00e46ef1f0d761ba5371
4
+ data.tar.gz: 6191e28670fce3448e29aa71b1d348ff9fa033e726101e5e7d67a024bd9592e6
5
5
  SHA512:
6
- metadata.gz: 8f2f198904f5afb8bc656d3d6f4eadfb37330db685656144c978443b0614aa5faf64718124200fcde6d19234b18e48aa960b173ab9e5222cb04ccc7d1dd2fed7
7
- data.tar.gz: a4971f5c0ffc4fbddba53281df8763082e659a39f67cb53ffc1b5f76898b8269f4e544575727742d8e048ae4dea79d1b2cfc60639550a38d74203d94572099b9
6
+ metadata.gz: 164520f8480480fd77846475b8fbe0c71d61b9180564f132835ef7d9a7ca471ab82f6737ca354f7bba0d0c4a4b8fcab5149874c5b8fd4a26bef7fb6aba14e26f
7
+ data.tar.gz: 9e4c5bfd50ce5ec2e98efe1a7fbe55316ff640e542035871085bb92903bbd89d55f8ade740a4ae8a470ee066c102a6c5589fe2fbde8e12610548969075627c6b
@@ -3,9 +3,8 @@ on:
3
3
  issues:
4
4
  types: [opened]
5
5
 
6
- permissions:
7
- issues: write
8
- contents: read
6
+ # the sync script only reads the event payload and calls the Jira API with its own token
7
+ permissions: {}
9
8
 
10
9
  jobs:
11
10
  sync:
@@ -13,6 +12,9 @@ jobs:
13
12
  steps:
14
13
  - name: Create ticket
15
14
  uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
15
+ env:
16
+ # env indirection so the secret is never materialized into the composed script
17
+ JIRA_TOKEN: ${{ secrets.JIRA_TOKEN }}
16
18
  with:
17
19
  script: |
18
20
  const action = context.payload.action;
@@ -27,7 +29,7 @@ jobs:
27
29
  headers: {
28
30
  'Accept': 'application/json',
29
31
  'Content-Type': 'application/json',
30
- 'Authorization': `Basic ${{ secrets.JIRA_TOKEN }}`
32
+ 'Authorization': `Basic ${process.env.JIRA_TOKEN}`
31
33
  },
32
34
  body: JSON.stringify({
33
35
  fields: {
@@ -19,11 +19,11 @@ jobs:
19
19
  - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
20
20
 
21
21
  - name: Install Ruby
22
- uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
22
+ uses: ruby/setup-ruby@651ff0d62c5c79bed6d53ec518387aae20e72c1a # v1.329.0
23
23
  with:
24
- ruby-version: 4.0.6
24
+ ruby-version: 4.0.7
25
25
  bundler-cache: true
26
26
 
27
- - uses: rubygems/release-gem@052cc82692552de3ef2b81fd670e41d13cba8092 # v1.4.0
27
+ - uses: rubygems/release-gem@7f9650160c1a4e7989fdc9855807bdbd421d8b6b # v1.4.1
28
28
  with:
29
29
  await-release: false
data/AGENTS.md CHANGED
@@ -122,18 +122,6 @@ response['hits'] # Works
122
122
  response.hits # Works if using model objects
123
123
  ```
124
124
 
125
- ### Block Syntax
126
-
127
- ```ruby
128
- # Use do..end for multi-line, braces for single-line
129
- client.search { |r| r.query = 'test' }
130
-
131
- client.search do |params|
132
- params.query = 'test'
133
- params.hits_per_page = 10
134
- end
135
- ```
136
-
137
125
  ### Error Handling
138
126
 
139
127
  ```ruby
@@ -148,18 +136,6 @@ rescue Algolia::ApiError => e
148
136
  end
149
137
  ```
150
138
 
151
- ### Nil Safety
152
-
153
- ```ruby
154
- # Use safe navigation
155
- result&.hits&.first&.object_id
156
-
157
- # Or explicit checks
158
- if result && result.hits && result.hits.any?
159
- result.hits.first.object_id
160
- end
161
- ```
162
-
163
139
  ### Deprecated Operations
164
140
 
165
141
  Some operations in `ingestion_client.rb` and `search_client.rb` are deprecated. Check method documentation before use.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,53 @@
1
+ ## [3.46.1](https://github.com/algolia/algoliasearch-client-ruby/compare/3.46.0...3.46.1)
2
+
3
+ - [f2854eb518](https://github.com/algolia/api-clients-automation/commit/f2854eb518) chore(ci): bump ruby/setup-ruby to v1.329.0 to support Ruby 4.0.7 ([#7142](https://github.com/algolia/api-clients-automation/pull/7142)) by [@Fluf22](https://github.com/Fluf22/)
4
+
5
+ ## [3.46.0](https://github.com/algolia/algoliasearch-client-ruby/compare/3.45.0...3.46.0)
6
+
7
+ BREAKING CHANGES: this minor version includes breaking changes (A/B Testing V3 API, Agent Studio API). See below for more details.
8
+
9
+ - [ba46df188a](https://github.com/algolia/api-clients-automation/commit/ba46df188a) feat(clients): wait and retry on 429 with Retry-After ([#7062](https://github.com/algolia/api-clients-automation/pull/7062)) by [@MarioAlexandruDan](https://github.com/MarioAlexandruDan/)
10
+ - [41ed59956a](https://github.com/algolia/api-clients-automation/commit/41ed59956a) fix(specs): clarify when _extra and _injectedItemKey are present on hits ([#7031](https://github.com/algolia/api-clients-automation/pull/7031)) by [@charlottetaylor-oss](https://github.com/charlottetaylor-oss/)
11
+ - [987444f36d](https://github.com/algolia/api-clients-automation/commit/987444f36d) fix(specs): clarify addItemKey description in injectedItem metadata ([#7029](https://github.com/algolia/api-clients-automation/pull/7029)) by [@charlottetaylor-oss](https://github.com/charlottetaylor-oss/)
12
+ - [f6a0478eec](https://github.com/algolia/api-clients-automation/commit/f6a0478eec) docs(specs): update analytics catalog entitlement example ([#7028](https://github.com/algolia/api-clients-automation/pull/7028)) by [@cdhawke](https://github.com/cdhawke/)
13
+ - [5da059b7ae](https://github.com/algolia/api-clients-automation/commit/5da059b7ae) feat(specs): add A/B test settings endpoints to abtesting-v3 ([#6786](https://github.com/algolia/api-clients-automation/pull/6786)) by [@stevenMevans](https://github.com/stevenMevans/)
14
+ - [f89fe94db5](https://github.com/algolia/api-clients-automation/commit/f89fe94db5) fix(clients): send request bodies with Content-Length instead of chunked encoding ([#7069](https://github.com/algolia/api-clients-automation/pull/7069)) by [@Fluf22](https://github.com/Fluf22/)
15
+ - [461575c4a4](https://github.com/algolia/api-clients-automation/commit/461575c4a4) feat(specs): add A/B testing hypothesis ([#6829](https://github.com/algolia/api-clients-automation/pull/6829)) by [@leonardogavaudan](https://github.com/leonardogavaudan/)
16
+ - [b58c40832b](https://github.com/algolia/api-clients-automation/commit/b58c40832b) fix(specs): BREAKING CHANGE - make AB test pValue optional ([#7066](https://github.com/algolia/api-clients-automation/pull/7066)) by [@stevenMevans](https://github.com/stevenMevans/)
17
+ - `pValue` is now optional in the A/B test models. Update code that reads it as a required value.
18
+ - [4cab83c8b1](https://github.com/algolia/api-clients-automation/commit/4cab83c8b1) feat(specs): add `externalProvider` source for CompAPI client ([#7073](https://github.com/algolia/api-clients-automation/pull/7073)) by [@ClaraMuller](https://github.com/ClaraMuller/)
19
+ - [b6cd822bfb](https://github.com/algolia/api-clients-automation/commit/b6cd822bfb) feat(specs): add resultCard to renderingContent widgets ([#7084](https://github.com/algolia/api-clients-automation/pull/7084)) by [@FabienMotte](https://github.com/FabienMotte/)
20
+ - [63c591d078](https://github.com/algolia/api-clients-automation/commit/63c591d078) refactor(specs): extract source object from behaviour object ([#7074](https://github.com/algolia/api-clients-automation/pull/7074)) by [@ClaraMuller](https://github.com/ClaraMuller/)
21
+ - [2ae63dbdfc](https://github.com/algolia/api-clients-automation/commit/2ae63dbdfc) docs: improve AGENTS.md agent context ([#7085](https://github.com/algolia/api-clients-automation/pull/7085)) by [@Fluf22](https://github.com/Fluf22/)
22
+ - [07c1b2ea15](https://github.com/algolia/api-clients-automation/commit/07c1b2ea15) fix(specs): BREAKING CHANGE – sync agent-studio OpenAPI from conversational-ai ([#6967](https://github.com/algolia/api-clients-automation/pull/6967)) by [@algolia-api-clients-automation-bot[bot]](https://github.com/apps/algolia-api-clients-automation-bot)
23
+ - The Agent Studio specs were updated to match the API behaviour, which may require updating your implementation:
24
+ - `createAgentCompletion`: the body type changed from `AgentCompletionRequest` to `AgentCompletionRequestUnion`.
25
+ - `createAgent`, `updateAgent`, `getAgent`: tool config models were renamed or merged (`AlgoliaDisplayResultsToolConfig` is now `AlgoliaGroupedResultsToolConfig`, `AlgoliaRecommendToolConfigInput`/`Output` are now `AlgoliaRecommendToolConfig`, `ToolConfig` is now `ToolConfigOrBooleanUnion`).
26
+ - The memory request models `MessagesUnionAgentConsolidateRequest`, `MessagesUnionAgentMemorizeRequest` and `MessagesUnionAgentPonderRequest` were removed.
27
+ - [a41727d2e1](https://github.com/algolia/api-clients-automation/commit/a41727d2e1) chore(deps): dependencies 2026-09-21 ([#7068](https://github.com/algolia/api-clients-automation/pull/7068)) by [@algolia-api-clients-automation-bot[bot]](https://github.com/apps/algolia-api-clients-automation-bot)
28
+ - [9a6faf38f6](https://github.com/algolia/api-clients-automation/commit/9a6faf38f6) fix(specs): correct links to Algolia docs ([#7134](https://github.com/algolia/api-clients-automation/pull/7134)) by [@kai687](https://github.com/kai687/)
29
+ - [329efbae3b](https://github.com/algolia/api-clients-automation/commit/329efbae3b) fix(specs): update allowed value for externalProvider source ordering field ([#7131](https://github.com/algolia/api-clients-automation/pull/7131)) by [@aiordache](https://github.com/aiordache/)
30
+
31
+ ## [3.45.0](https://github.com/algolia/algoliasearch-client-ruby/compare/3.44.0...3.45.0)
32
+
33
+ BREAKING CHANGES: this minor version includes breaking changes in the A/B Testing V3 API. See below for more details.
34
+
35
+ - [c974374aff](https://github.com/algolia/api-clients-automation/commit/c974374aff) feat(ruby): Request-ID and Correlation-ID support ([#6877](https://github.com/algolia/api-clients-automation/pull/6877)) by [@MarioAlexandruDan](https://github.com/MarioAlexandruDan/)
36
+ - [e4a6ab510a](https://github.com/algolia/api-clients-automation/commit/e4a6ab510a) chore(ci): fail CI if a personal access token secret is referenced ([#6919](https://github.com/algolia/api-clients-automation/pull/6919)) by [@eric-zaharia](https://github.com/eric-zaharia/)
37
+ - [085364de00](https://github.com/algolia/api-clients-automation/commit/085364de00) feat(specs): deprecates /2 abtests endpoints ([#6921](https://github.com/algolia/api-clients-automation/pull/6921)) by [@Niamsy](https://github.com/Niamsy/)
38
+ - [32c1aaa192](https://github.com/algolia/api-clients-automation/commit/32c1aaa192) chore(deps): dependencies 2026-08-24 ([#6922](https://github.com/algolia/api-clients-automation/pull/6922)) by [@algolia-api-clients-automation-bot[bot]](https://github.com/apps/algolia-api-clients-automation-bot)
39
+ - [28aa13de2e](https://github.com/algolia/api-clients-automation/commit/28aa13de2e) fix(clients): support guzzlehttp/psr7 v3 ([#6945](https://github.com/algolia/api-clients-automation/pull/6945)) by [@eric-zaharia](https://github.com/eric-zaharia/)
40
+ - [b4c4109163](https://github.com/algolia/api-clients-automation/commit/b4c4109163) fix(specs): flag analytics patterns endpoints with x-beta ([#6954](https://github.com/algolia/api-clients-automation/pull/6954)) by [@cdhawke](https://github.com/cdhawke/)
41
+ - [8317b3a8ef](https://github.com/algolia/api-clients-automation/commit/8317b3a8ef) feat(specs): BREAKING CHANGE – remove migratedAbTestID from abtesting-v3 ([#6883](https://github.com/algolia/api-clients-automation/pull/6883)) by [@cdhawke](https://github.com/cdhawke/)
42
+ - [808f5ebcea](https://github.com/algolia/api-clients-automation/commit/808f5ebcea) fix(ruby): keep millisecond precision when converting timeouts to seconds ([#6946](https://github.com/algolia/api-clients-automation/pull/6946)) by [@MarioAlexandruDan](https://github.com/MarioAlexandruDan/)
43
+
44
+ ## [3.44.0](https://github.com/algolia/algoliasearch-client-ruby/compare/3.43.0...3.44.0)
45
+
46
+ - [c974374aff](https://github.com/algolia/api-clients-automation/commit/c974374aff) feat(ruby): Request-ID and Correlation-ID support ([#6877](https://github.com/algolia/api-clients-automation/pull/6877)) by [@MarioAlexandruDan](https://github.com/MarioAlexandruDan/)
47
+ - [e4a6ab510a](https://github.com/algolia/api-clients-automation/commit/e4a6ab510a) chore(ci): fail CI if a personal access token secret is referenced ([#6919](https://github.com/algolia/api-clients-automation/pull/6919)) by [@eric-zaharia](https://github.com/eric-zaharia/)
48
+ - [085364de00](https://github.com/algolia/api-clients-automation/commit/085364de00) feat(specs): deprecates /2 abtests endpoints ([#6921](https://github.com/algolia/api-clients-automation/pull/6921)) by [@Niamsy](https://github.com/Niamsy/)
49
+ - [32c1aaa192](https://github.com/algolia/api-clients-automation/commit/32c1aaa192) chore(deps): dependencies 2026-08-24 ([#6922](https://github.com/algolia/api-clients-automation/pull/6922)) by [@algolia-api-clients-automation-bot[bot]](https://github.com/apps/algolia-api-clients-automation-bot)
50
+
1
51
  ## [3.43.0](https://github.com/algolia/algoliasearch-client-ruby/compare/3.42.3...3.43.0)
2
52
 
3
53
  - [3bee6d1dee](https://github.com/algolia/api-clients-automation/commit/3bee6d1dee) chore(ci): pin all GitHub Action refs to commit SHAs (API-475) ([#6819](https://github.com/algolia/api-clients-automation/pull/6819)) by [@MarioAlexandruDan](https://github.com/MarioAlexandruDan/)
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- algolia (3.43.0)
4
+ algolia (3.46.1)
5
5
  base64 (>= 0.2.0, < 1)
6
6
  faraday (>= 1.0.1, < 3.0)
7
7
  faraday-net_http_persistent (>= 0.15, < 3)
@@ -23,7 +23,8 @@ module Algolia
23
23
  config.write_timeout = 30000
24
24
  end
25
25
 
26
- @api_client = Algolia::ApiClient.new(config)
26
+ # Per-client capability; an explicit config.request_id_enabled always wins.
27
+ @api_client = Algolia::ApiClient.new(config, request_id_support: false)
27
28
  end
28
29
 
29
30
  def self.create(app_id, api_key, region = nil, opts = {})
@@ -69,10 +70,11 @@ module Algolia
69
70
  self
70
71
  end
71
72
 
72
- # Creates a new A/B test.
73
+ # This endpoint is deprecated. Use the A/B Testing API v3 instead. Replaced by `POST /3/abtests`. Creates a new A/B test.
73
74
  #
74
75
  # Required API Key ACLs:
75
76
  # - editSettings
77
+ # THIS OPERATION IS DEPRECATED
76
78
  # @param add_ab_tests_request [AddABTestsRequest] (required)
77
79
  # @param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
78
80
  # @return [Http::Response] the response
@@ -101,7 +103,7 @@ module Algolia
101
103
  @api_client.call_api(:POST, path, new_options)
102
104
  end
103
105
 
104
- # Creates a new A/B test.
106
+ # This endpoint is deprecated. Use the A/B Testing API v3 instead. Replaced by `POST /3/abtests`. Creates a new A/B test.
105
107
  #
106
108
  # Required API Key ACLs:
107
109
  # - editSettings
@@ -305,10 +307,11 @@ module Algolia
305
307
  @api_client.deserialize(response.body, request_options[:debug_return_type] || "Object")
306
308
  end
307
309
 
308
- # Deletes an A/B test by its ID.
310
+ # This endpoint is deprecated. Use the A/B Testing API v3 instead. Replaced by `DELETE /3/abtests/{id}`. Deletes an A/B test by its ID.
309
311
  #
310
312
  # Required API Key ACLs:
311
313
  # - editSettings
314
+ # THIS OPERATION IS DEPRECATED
312
315
  # @param id [Integer] Unique A/B test identifier. (required)
313
316
  # @param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
314
317
  # @return [Http::Response] the response
@@ -337,7 +340,7 @@ module Algolia
337
340
  @api_client.call_api(:DELETE, path, new_options)
338
341
  end
339
342
 
340
- # Deletes an A/B test by its ID.
343
+ # This endpoint is deprecated. Use the A/B Testing API v3 instead. Replaced by `DELETE /3/abtests/{id}`. Deletes an A/B test by its ID.
341
344
  #
342
345
  # Required API Key ACLs:
343
346
  # - editSettings
@@ -349,10 +352,11 @@ module Algolia
349
352
  @api_client.deserialize(response.body, request_options[:debug_return_type] || "Abtesting::ABTestResponse")
350
353
  end
351
354
 
352
- # Given the traffic percentage and the expected effect size, this endpoint estimates the sample size and duration of an A/B test based on historical traffic.
355
+ # This endpoint is deprecated. Use the A/B Testing API v3 instead. Replaced by `POST /3/abtests/estimate`. Given the traffic percentage and the expected effect size, this endpoint estimates the sample size and duration of an A/B test based on historical traffic.
353
356
  #
354
357
  # Required API Key ACLs:
355
358
  # - analytics
359
+ # THIS OPERATION IS DEPRECATED
356
360
  # @param estimate_ab_test_request [EstimateABTestRequest] (required)
357
361
  # @param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
358
362
  # @return [Http::Response] the response
@@ -381,7 +385,7 @@ module Algolia
381
385
  @api_client.call_api(:POST, path, new_options)
382
386
  end
383
387
 
384
- # Given the traffic percentage and the expected effect size, this endpoint estimates the sample size and duration of an A/B test based on historical traffic.
388
+ # This endpoint is deprecated. Use the A/B Testing API v3 instead. Replaced by `POST /3/abtests/estimate`. Given the traffic percentage and the expected effect size, this endpoint estimates the sample size and duration of an A/B test based on historical traffic.
385
389
  #
386
390
  # Required API Key ACLs:
387
391
  # - analytics
@@ -393,10 +397,11 @@ module Algolia
393
397
  @api_client.deserialize(response.body, request_options[:debug_return_type] || "Abtesting::EstimateABTestResponse")
394
398
  end
395
399
 
396
- # Retrieves the details for an A/B test by its ID.
400
+ # This endpoint is deprecated. Use the A/B Testing API v3 instead. Replaced by `GET /3/abtests/{id}`. Retrieves the details for an A/B test by its ID.
397
401
  #
398
402
  # Required API Key ACLs:
399
403
  # - analytics
404
+ # THIS OPERATION IS DEPRECATED
400
405
  # @param id [Integer] Unique A/B test identifier. (required)
401
406
  # @param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
402
407
  # @return [Http::Response] the response
@@ -425,7 +430,7 @@ module Algolia
425
430
  @api_client.call_api(:GET, path, new_options)
426
431
  end
427
432
 
428
- # Retrieves the details for an A/B test by its ID.
433
+ # This endpoint is deprecated. Use the A/B Testing API v3 instead. Replaced by `GET /3/abtests/{id}`. Retrieves the details for an A/B test by its ID.
429
434
  #
430
435
  # Required API Key ACLs:
431
436
  # - analytics
@@ -437,10 +442,11 @@ module Algolia
437
442
  @api_client.deserialize(response.body, request_options[:debug_return_type] || "Abtesting::ABTest")
438
443
  end
439
444
 
440
- # Lists all A/B tests you configured for this application.
445
+ # This endpoint is deprecated. Use the A/B Testing API v3 instead. Replaced by `GET /3/abtests`. Lists all A/B tests you configured for this application.
441
446
  #
442
447
  # Required API Key ACLs:
443
448
  # - analytics
449
+ # THIS OPERATION IS DEPRECATED
444
450
  # @param offset [Integer] Position of the first item to return. (default to 0)
445
451
  # @param limit [Integer] Number of items to return. (default to 10)
446
452
  # @param index_prefix [String] Index name prefix. Only A/B tests for indices starting with this string are included in the response.
@@ -477,7 +483,7 @@ module Algolia
477
483
  @api_client.call_api(:GET, path, new_options)
478
484
  end
479
485
 
480
- # Lists all A/B tests you configured for this application.
486
+ # This endpoint is deprecated. Use the A/B Testing API v3 instead. Replaced by `GET /3/abtests`. Lists all A/B tests you configured for this application.
481
487
  #
482
488
  # Required API Key ACLs:
483
489
  # - analytics
@@ -492,10 +498,11 @@ module Algolia
492
498
  @api_client.deserialize(response.body, request_options[:debug_return_type] || "Abtesting::ListABTestsResponse")
493
499
  end
494
500
 
495
- # Stops an A/B test by its ID. You can't restart stopped A/B tests.
501
+ # This endpoint is deprecated. Use the A/B Testing API v3 instead. Replaced by `POST /3/abtests/{id}/stop`. Stops an A/B test by its ID. You can't restart stopped A/B tests.
496
502
  #
497
503
  # Required API Key ACLs:
498
504
  # - editSettings
505
+ # THIS OPERATION IS DEPRECATED
499
506
  # @param id [Integer] Unique A/B test identifier. (required)
500
507
  # @param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
501
508
  # @return [Http::Response] the response
@@ -524,7 +531,7 @@ module Algolia
524
531
  @api_client.call_api(:POST, path, new_options)
525
532
  end
526
533
 
527
- # Stops an A/B test by its ID. You can't restart stopped A/B tests.
534
+ # This endpoint is deprecated. Use the A/B Testing API v3 instead. Replaced by `POST /3/abtests/{id}/stop`. Stops an A/B test by its ID. You can't restart stopped A/B tests.
528
535
  #
529
536
  # Required API Key ACLs:
530
537
  # - editSettings
@@ -23,7 +23,8 @@ module Algolia
23
23
  config.write_timeout = 30000
24
24
  end
25
25
 
26
- @api_client = Algolia::ApiClient.new(config)
26
+ # Per-client capability; an explicit config.request_id_enabled always wins.
27
+ @api_client = Algolia::ApiClient.new(config, request_id_support: false)
27
28
  end
28
29
 
29
30
  def self.create(app_id, api_key, region = nil, opts = {})
@@ -113,6 +114,61 @@ module Algolia
113
114
  @api_client.deserialize(response.body, request_options[:debug_return_type] || "AbtestingV3::ABTestResponse")
114
115
  end
115
116
 
117
+ # Applies the captured settings of the given variant to the control index. The settings must first be captured with the `saveVariantSettings` operation. To revert previously applied settings on the control index, use this operation with the control variant (variant 1). Settings can be applied up to 14 days after the A/B test ends, and reverted up to 15 days after. Later requests return `400`. Each set of captured settings can only be applied once, and settings that were reverted can't be applied again. Both cases return `400`. The control index must not be in use by an active A/B test. Otherwise, the request returns `422`.
118
+ #
119
+ # Required API Key ACLs:
120
+ # - analytics
121
+ # - editSettings
122
+ # @param id [Integer] Unique A/B test identifier. (required)
123
+ # @param variant_id [Integer] One-based index of the A/B test variant. The control is variant 1. (required)
124
+ # @param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
125
+ # @return [Http::Response] the response
126
+ def apply_variant_settings_with_http_info(id, variant_id, request_options = {})
127
+ # verify the required parameter 'id' is set
128
+ if @api_client.config.client_side_validation && id.nil?
129
+ raise ArgumentError, "Parameter `id` is required when calling `apply_variant_settings`."
130
+ end
131
+ # verify the required parameter 'variant_id' is set
132
+ if @api_client.config.client_side_validation && variant_id.nil?
133
+ raise ArgumentError, "Parameter `variant_id` is required when calling `apply_variant_settings`."
134
+ end
135
+
136
+ path = "/3/abtests/{id}/settings/{variantId}/apply".sub("{" + "id" + "}", Transport.encode_uri(id.to_s)).sub(
137
+ "{" + "variantId" + "}",
138
+ Transport.encode_uri(variant_id.to_s)
139
+ )
140
+ query_params = {}
141
+ query_params = query_params.merge(request_options[:query_params]) unless request_options[:query_params].nil?
142
+ header_params = {}
143
+ header_params = header_params.merge(request_options[:header_params]) unless request_options[:header_params].nil?
144
+
145
+ post_body = request_options[:debug_body]
146
+
147
+ new_options = request_options.merge(
148
+ :operation => :"AbtestingV3Client.apply_variant_settings",
149
+ :header_params => header_params,
150
+ :query_params => query_params,
151
+ :body => post_body,
152
+ :use_read_transporter => false
153
+ )
154
+
155
+ @api_client.call_api(:POST, path, new_options)
156
+ end
157
+
158
+ # Applies the captured settings of the given variant to the control index. The settings must first be captured with the `saveVariantSettings` operation. To revert previously applied settings on the control index, use this operation with the control variant (variant 1). Settings can be applied up to 14 days after the A/B test ends, and reverted up to 15 days after. Later requests return `400`. Each set of captured settings can only be applied once, and settings that were reverted can't be applied again. Both cases return `400`. The control index must not be in use by an active A/B test. Otherwise, the request returns `422`.
159
+ #
160
+ # Required API Key ACLs:
161
+ # - analytics
162
+ # - editSettings
163
+ # @param id [Integer] Unique A/B test identifier. (required)
164
+ # @param variant_id [Integer] One-based index of the A/B test variant. The control is variant 1. (required)
165
+ # @param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
166
+ # @return [nil]
167
+ def apply_variant_settings(id, variant_id, request_options = {})
168
+ apply_variant_settings_with_http_info(id, variant_id, request_options)
169
+ nil
170
+ end
171
+
116
172
  # This method lets you send requests to the Algolia REST API.
117
173
 
118
174
  # @param path [String] Path of the endpoint, for example `1/newFeature`. (required)
@@ -401,9 +457,10 @@ module Algolia
401
457
  # Required API Key ACLs:
402
458
  # - analytics
403
459
  # @param id [Integer] Unique A/B test identifier. (required)
460
+ # @param methods [Array<AnalysisMethod>] Statistical analysis results to include, as a comma-separated list. When omitted, each test uses its configured method, or `frequentist` if no method is configured. Request both methods to include both sets of available results. This doesn't change the test configuration or compute missing results. Duplicate values aren't allowed.
404
461
  # @param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
405
462
  # @return [Http::Response] the response
406
- def get_ab_test_with_http_info(id, request_options = {})
463
+ def get_ab_test_with_http_info(id, methods = nil, request_options = {})
407
464
  # verify the required parameter 'id' is set
408
465
  if @api_client.config.client_side_validation && id.nil?
409
466
  raise ArgumentError, "Parameter `id` is required when calling `get_ab_test`."
@@ -411,6 +468,7 @@ module Algolia
411
468
 
412
469
  path = "/3/abtests/{id}".sub("{" + "id" + "}", Transport.encode_uri(id.to_s))
413
470
  query_params = {}
471
+ query_params[:methods] = @api_client.build_collection_param(methods, :csv) unless methods.nil?
414
472
  query_params = query_params.merge(request_options[:query_params]) unless request_options[:query_params].nil?
415
473
  header_params = {}
416
474
  header_params = header_params.merge(request_options[:header_params]) unless request_options[:header_params].nil?
@@ -433,13 +491,61 @@ module Algolia
433
491
  # Required API Key ACLs:
434
492
  # - analytics
435
493
  # @param id [Integer] Unique A/B test identifier. (required)
494
+ # @param methods [Array<AnalysisMethod>] Statistical analysis results to include, as a comma-separated list. When omitted, each test uses its configured method, or `frequentist` if no method is configured. Request both methods to include both sets of available results. This doesn't change the test configuration or compute missing results. Duplicate values aren't allowed.
436
495
  # @param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
437
496
  # @return [ABTest]
438
- def get_ab_test(id, request_options = {})
439
- response = get_ab_test_with_http_info(id, request_options)
497
+ def get_ab_test(id, methods = nil, request_options = {})
498
+ response = get_ab_test_with_http_info(id, methods, request_options)
440
499
  @api_client.deserialize(response.body, request_options[:debug_return_type] || "AbtestingV3::ABTest")
441
500
  end
442
501
 
502
+ # Retrieves the settings captured for each variant of an A/B test, and whether another active A/B test is using the control index. Settings are captured by the `saveVariantSettings` operation. The response includes an entry for the control (variant 1) alongside the captured variant, so the control's original configuration can be restored later. Returns `404` if the A/B test doesn't exist or no settings have been captured for it.
503
+ #
504
+ # Required API Key ACLs:
505
+ # - analytics
506
+ # @param id [Integer] Unique A/B test identifier. (required)
507
+ # @param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
508
+ # @return [Http::Response] the response
509
+ def get_ab_test_settings_with_http_info(id, request_options = {})
510
+ # verify the required parameter 'id' is set
511
+ if @api_client.config.client_side_validation && id.nil?
512
+ raise ArgumentError, "Parameter `id` is required when calling `get_ab_test_settings`."
513
+ end
514
+
515
+ path = "/3/abtests/{id}/settings".sub("{" + "id" + "}", Transport.encode_uri(id.to_s))
516
+ query_params = {}
517
+ query_params = query_params.merge(request_options[:query_params]) unless request_options[:query_params].nil?
518
+ header_params = {}
519
+ header_params = header_params.merge(request_options[:header_params]) unless request_options[:header_params].nil?
520
+
521
+ post_body = request_options[:debug_body]
522
+
523
+ new_options = request_options.merge(
524
+ :operation => :"AbtestingV3Client.get_ab_test_settings",
525
+ :header_params => header_params,
526
+ :query_params => query_params,
527
+ :body => post_body,
528
+ :use_read_transporter => false
529
+ )
530
+
531
+ @api_client.call_api(:GET, path, new_options)
532
+ end
533
+
534
+ # Retrieves the settings captured for each variant of an A/B test, and whether another active A/B test is using the control index. Settings are captured by the `saveVariantSettings` operation. The response includes an entry for the control (variant 1) alongside the captured variant, so the control's original configuration can be restored later. Returns `404` if the A/B test doesn't exist or no settings have been captured for it.
535
+ #
536
+ # Required API Key ACLs:
537
+ # - analytics
538
+ # @param id [Integer] Unique A/B test identifier. (required)
539
+ # @param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
540
+ # @return [ABTestSettingsResponse]
541
+ def get_ab_test_settings(id, request_options = {})
542
+ response = get_ab_test_settings_with_http_info(id, request_options)
543
+ @api_client.deserialize(
544
+ response.body,
545
+ request_options[:debug_return_type] || "AbtestingV3::ABTestSettingsResponse"
546
+ )
547
+ end
548
+
443
549
  # Retrieves timeseries for an A/B test by its ID.
444
550
  #
445
551
  # Required API Key ACLs:
@@ -448,9 +554,17 @@ module Algolia
448
554
  # @param start_date [String] Start date of the period to analyze, in `YYYY-MM-DD` format.
449
555
  # @param end_date [String] End date of the period to analyze, in `YYYY-MM-DD` format.
450
556
  # @param metric [Array<MetricName>] List of metrics to retrieve. If not specified, all metrics are returned.
557
+ # @param methods [Array<AnalysisMethod>] Statistical analysis results to include, as a comma-separated list. When omitted, each test uses its configured method, or `frequentist` if no method is configured. Request both methods to include both sets of available results. This doesn't change the test configuration or compute missing results. Duplicate values aren't allowed.
451
558
  # @param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
452
559
  # @return [Http::Response] the response
453
- def get_timeseries_with_http_info(id, start_date = nil, end_date = nil, metric = nil, request_options = {})
560
+ def get_timeseries_with_http_info(
561
+ id,
562
+ start_date = nil,
563
+ end_date = nil,
564
+ metric = nil,
565
+ methods = nil,
566
+ request_options = {}
567
+ )
454
568
  # verify the required parameter 'id' is set
455
569
  if @api_client.config.client_side_validation && id.nil?
456
570
  raise ArgumentError, "Parameter `id` is required when calling `get_timeseries`."
@@ -461,6 +575,7 @@ module Algolia
461
575
  query_params[:startDate] = start_date unless start_date.nil?
462
576
  query_params[:endDate] = end_date unless end_date.nil?
463
577
  query_params[:metric] = @api_client.build_collection_param(metric, :multi) unless metric.nil?
578
+ query_params[:methods] = @api_client.build_collection_param(methods, :csv) unless methods.nil?
464
579
  query_params = query_params.merge(request_options[:query_params]) unless request_options[:query_params].nil?
465
580
  header_params = {}
466
581
  header_params = header_params.merge(request_options[:header_params]) unless request_options[:header_params].nil?
@@ -486,10 +601,11 @@ module Algolia
486
601
  # @param start_date [String] Start date of the period to analyze, in `YYYY-MM-DD` format.
487
602
  # @param end_date [String] End date of the period to analyze, in `YYYY-MM-DD` format.
488
603
  # @param metric [Array<MetricName>] List of metrics to retrieve. If not specified, all metrics are returned.
604
+ # @param methods [Array<AnalysisMethod>] Statistical analysis results to include, as a comma-separated list. When omitted, each test uses its configured method, or `frequentist` if no method is configured. Request both methods to include both sets of available results. This doesn't change the test configuration or compute missing results. Duplicate values aren't allowed.
489
605
  # @param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
490
606
  # @return [Timeseries]
491
- def get_timeseries(id, start_date = nil, end_date = nil, metric = nil, request_options = {})
492
- response = get_timeseries_with_http_info(id, start_date, end_date, metric, request_options)
607
+ def get_timeseries(id, start_date = nil, end_date = nil, metric = nil, methods = nil, request_options = {})
608
+ response = get_timeseries_with_http_info(id, start_date, end_date, metric, methods, request_options)
493
609
  @api_client.deserialize(response.body, request_options[:debug_return_type] || "AbtestingV3::Timeseries")
494
610
  end
495
611
 
@@ -502,6 +618,7 @@ module Algolia
502
618
  # @param index_prefix [String] Index name prefix. Only A/B tests for indices starting with this string are included in the response.
503
619
  # @param index_suffix [String] Index name suffix. Only A/B tests for indices ending with this string are included in the response.
504
620
  # @param direction [Direction] Sort order for A/B tests by start date. Use 'asc' for ascending or 'desc' for descending. Active A/B tests are always listed first.
621
+ # @param methods [Array<AnalysisMethod>] Statistical analysis results to include, as a comma-separated list. When omitted, each test uses its configured method, or `frequentist` if no method is configured. Request both methods to include both sets of available results. This doesn't change the test configuration or compute missing results. Duplicate values aren't allowed.
505
622
  # @param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
506
623
  # @return [Http::Response] the response
507
624
  def list_ab_tests_with_http_info(
@@ -510,6 +627,7 @@ module Algolia
510
627
  index_prefix = nil,
511
628
  index_suffix = nil,
512
629
  direction = nil,
630
+ methods = nil,
513
631
  request_options = {}
514
632
  )
515
633
  path = "/3/abtests"
@@ -519,6 +637,7 @@ module Algolia
519
637
  query_params[:indexPrefix] = index_prefix unless index_prefix.nil?
520
638
  query_params[:indexSuffix] = index_suffix unless index_suffix.nil?
521
639
  query_params[:direction] = direction unless direction.nil?
640
+ query_params[:methods] = @api_client.build_collection_param(methods, :csv) unless methods.nil?
522
641
  query_params = query_params.merge(request_options[:query_params]) unless request_options[:query_params].nil?
523
642
  header_params = {}
524
643
  header_params = header_params.merge(request_options[:header_params]) unless request_options[:header_params].nil?
@@ -545,6 +664,7 @@ module Algolia
545
664
  # @param index_prefix [String] Index name prefix. Only A/B tests for indices starting with this string are included in the response.
546
665
  # @param index_suffix [String] Index name suffix. Only A/B tests for indices ending with this string are included in the response.
547
666
  # @param direction [Direction] Sort order for A/B tests by start date. Use 'asc' for ascending or 'desc' for descending. Active A/B tests are always listed first.
667
+ # @param methods [Array<AnalysisMethod>] Statistical analysis results to include, as a comma-separated list. When omitted, each test uses its configured method, or `frequentist` if no method is configured. Request both methods to include both sets of available results. This doesn't change the test configuration or compute missing results. Duplicate values aren't allowed.
548
668
  # @param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
549
669
  # @return [ListABTestsResponse]
550
670
  def list_ab_tests(
@@ -553,12 +673,82 @@ module Algolia
553
673
  index_prefix = nil,
554
674
  index_suffix = nil,
555
675
  direction = nil,
676
+ methods = nil,
556
677
  request_options = {}
557
678
  )
558
- response = list_ab_tests_with_http_info(offset, limit, index_prefix, index_suffix, direction, request_options)
679
+ response = list_ab_tests_with_http_info(
680
+ offset,
681
+ limit,
682
+ index_prefix,
683
+ index_suffix,
684
+ direction,
685
+ methods,
686
+ request_options
687
+ )
559
688
  @api_client.deserialize(response.body, request_options[:debug_return_type] || "AbtestingV3::ListABTestsResponse")
560
689
  end
561
690
 
691
+ # Captures the settings of the given variant and of the control, then stops the A/B test. The captured settings can later be applied to the control index with the `applyVariantSettings` operation, and read back with the `getABTestSettings` operation. The A/B test must have reached 80% of its planned duration. Earlier requests return `400`. Settings can only be captured once per A/B test. A second request returns `409`. `synonyms` and `enableRules` are not captured, so applying the captured settings never changes them on the control index.
692
+ #
693
+ # Required API Key ACLs:
694
+ # - analytics
695
+ # - editSettings
696
+ # @param id [Integer] Unique A/B test identifier. (required)
697
+ # @param variant_id [Integer] One-based index of the A/B test variant. The control is variant 1. (required)
698
+ # @param save_settings_request [SaveSettingsRequest] (required)
699
+ # @param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
700
+ # @return [Http::Response] the response
701
+ def save_variant_settings_with_http_info(id, variant_id, save_settings_request, request_options = {})
702
+ # verify the required parameter 'id' is set
703
+ if @api_client.config.client_side_validation && id.nil?
704
+ raise ArgumentError, "Parameter `id` is required when calling `save_variant_settings`."
705
+ end
706
+ # verify the required parameter 'variant_id' is set
707
+ if @api_client.config.client_side_validation && variant_id.nil?
708
+ raise ArgumentError, "Parameter `variant_id` is required when calling `save_variant_settings`."
709
+ end
710
+ # verify the required parameter 'save_settings_request' is set
711
+ if @api_client.config.client_side_validation && save_settings_request.nil?
712
+ raise ArgumentError, "Parameter `save_settings_request` is required when calling `save_variant_settings`."
713
+ end
714
+
715
+ path = "/3/abtests/{id}/settings/{variantId}".sub("{" + "id" + "}", Transport.encode_uri(id.to_s)).sub(
716
+ "{" + "variantId" + "}",
717
+ Transport.encode_uri(variant_id.to_s)
718
+ )
719
+ query_params = {}
720
+ query_params = query_params.merge(request_options[:query_params]) unless request_options[:query_params].nil?
721
+ header_params = {}
722
+ header_params = header_params.merge(request_options[:header_params]) unless request_options[:header_params].nil?
723
+
724
+ post_body = request_options[:debug_body] || @api_client.object_to_http_body(save_settings_request)
725
+
726
+ new_options = request_options.merge(
727
+ :operation => :"AbtestingV3Client.save_variant_settings",
728
+ :header_params => header_params,
729
+ :query_params => query_params,
730
+ :body => post_body,
731
+ :use_read_transporter => false
732
+ )
733
+
734
+ @api_client.call_api(:POST, path, new_options)
735
+ end
736
+
737
+ # Captures the settings of the given variant and of the control, then stops the A/B test. The captured settings can later be applied to the control index with the `applyVariantSettings` operation, and read back with the `getABTestSettings` operation. The A/B test must have reached 80% of its planned duration. Earlier requests return `400`. Settings can only be captured once per A/B test. A second request returns `409`. `synonyms` and `enableRules` are not captured, so applying the captured settings never changes them on the control index.
738
+ #
739
+ # Required API Key ACLs:
740
+ # - analytics
741
+ # - editSettings
742
+ # @param id [Integer] Unique A/B test identifier. (required)
743
+ # @param variant_id [Integer] One-based index of the A/B test variant. The control is variant 1. (required)
744
+ # @param save_settings_request [SaveSettingsRequest] (required)
745
+ # @param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
746
+ # @return [nil]
747
+ def save_variant_settings(id, variant_id, save_settings_request, request_options = {})
748
+ save_variant_settings_with_http_info(id, variant_id, save_settings_request, request_options)
749
+ nil
750
+ end
751
+
562
752
  # Stops an A/B test by its ID. You can't restart stopped A/B tests.
563
753
  #
564
754
  # Required API Key ACLs: