couchbase 3.3.0 → 3.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 (2221) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +37 -13
  3. data/ext/couchbase/CMakeLists.txt +367 -86
  4. data/ext/couchbase/cmake/CompilerWarnings.cmake +11 -4
  5. data/ext/couchbase/cmake/Documentation.cmake +35 -0
  6. data/ext/couchbase/cmake/OpenSSL.cmake +23 -0
  7. data/ext/couchbase/cmake/Testing.cmake +61 -0
  8. data/ext/couchbase/cmake/ThirdPartyDependencies.cmake +1 -0
  9. data/ext/couchbase/cmake/VersionInfo.cmake +13 -1
  10. data/ext/couchbase/cmake/build_version.hxx.in +3 -0
  11. data/ext/couchbase/core/CMakeLists.txt +0 -0
  12. data/ext/couchbase/core/agent.cxx +556 -0
  13. data/ext/couchbase/core/agent.hxx +165 -0
  14. data/ext/couchbase/core/agent_config.cxx +36 -0
  15. data/ext/couchbase/core/agent_config.hxx +44 -0
  16. data/ext/couchbase/core/agent_group.cxx +219 -0
  17. data/ext/couchbase/core/agent_group.hxx +79 -0
  18. data/ext/couchbase/core/agent_group_config.cxx +35 -0
  19. data/ext/couchbase/core/agent_group_config.hxx +45 -0
  20. data/ext/couchbase/core/agent_unit_test_api.hxx +37 -0
  21. data/ext/couchbase/core/analytics_query_options.cxx +72 -0
  22. data/ext/couchbase/core/analytics_query_options.hxx +74 -0
  23. data/ext/couchbase/core/analytics_scan_consistency.hxx +26 -0
  24. data/ext/couchbase/core/bucket.cxx +891 -0
  25. data/ext/couchbase/core/bucket.hxx +172 -0
  26. data/ext/couchbase/core/capella_ca.hxx +43 -0
  27. data/ext/couchbase/core/cluster.cxx +181 -0
  28. data/ext/couchbase/core/cluster.hxx +496 -0
  29. data/ext/couchbase/core/cluster_agent.cxx +36 -0
  30. data/ext/couchbase/core/cluster_agent.hxx +34 -0
  31. data/ext/couchbase/core/cluster_agent_config.cxx +35 -0
  32. data/ext/couchbase/core/cluster_agent_config.hxx +43 -0
  33. data/ext/couchbase/core/cluster_options.cxx +50 -0
  34. data/ext/couchbase/core/cluster_options.hxx +93 -0
  35. data/ext/couchbase/core/cluster_state.hxx +25 -0
  36. data/ext/couchbase/core/collection_id_cache_entry.hxx +37 -0
  37. data/ext/couchbase/core/collections_component.cxx +439 -0
  38. data/ext/couchbase/core/collections_component.hxx +81 -0
  39. data/ext/couchbase/core/collections_component_unit_test_api.hxx +36 -0
  40. data/ext/couchbase/core/collections_options.hxx +87 -0
  41. data/ext/couchbase/core/config_listener.hxx +31 -0
  42. data/ext/couchbase/core/config_profile.cxx +25 -0
  43. data/ext/couchbase/core/config_profile.hxx +92 -0
  44. data/ext/couchbase/core/core_sdk_shim.cxx +28 -0
  45. data/ext/couchbase/core/core_sdk_shim.hxx +30 -0
  46. data/ext/couchbase/core/crud_component.cxx +367 -0
  47. data/ext/couchbase/core/crud_component.hxx +60 -0
  48. data/ext/couchbase/core/crud_options.hxx +574 -0
  49. data/ext/couchbase/core/crypto/CMakeLists.txt +12 -0
  50. data/ext/couchbase/core/crypto/cbcrypto.cc +897 -0
  51. data/ext/couchbase/core/crypto/cbcrypto.h +88 -0
  52. data/ext/couchbase/core/design_document_namespace.hxx +26 -0
  53. data/ext/couchbase/core/design_document_namespace_fmt.hxx +47 -0
  54. data/ext/couchbase/core/diagnostics.hxx +97 -0
  55. data/ext/couchbase/core/diagnostics_fmt.hxx +113 -0
  56. data/ext/couchbase/core/diagnostics_json.hxx +100 -0
  57. data/ext/couchbase/core/diagntostics_options.hxx +55 -0
  58. data/ext/couchbase/core/dispatcher.cxx +37 -0
  59. data/ext/couchbase/core/dispatcher.hxx +43 -0
  60. data/ext/couchbase/core/document_id.cxx +102 -0
  61. data/ext/couchbase/core/document_id.hxx +119 -0
  62. data/ext/couchbase/core/document_id_fmt.hxx +37 -0
  63. data/ext/couchbase/core/durability_options.hxx +110 -0
  64. data/ext/couchbase/core/error_context/analytics.hxx +52 -0
  65. data/ext/couchbase/core/error_context/http.hxx +48 -0
  66. data/ext/couchbase/core/error_context/key_value.cxx +58 -0
  67. data/ext/couchbase/core/error_context/key_value.hxx +83 -0
  68. data/ext/couchbase/core/error_context/query.hxx +52 -0
  69. data/ext/couchbase/core/error_context/search.hxx +51 -0
  70. data/ext/couchbase/core/error_context/view.hxx +52 -0
  71. data/ext/couchbase/core/free_form_http_request.cxx +81 -0
  72. data/ext/couchbase/core/free_form_http_request.hxx +90 -0
  73. data/ext/couchbase/core/impl/analytics_error_category.cxx +62 -0
  74. data/ext/couchbase/core/impl/append.cxx +87 -0
  75. data/ext/couchbase/core/impl/best_effort_retry_strategy.cxx +109 -0
  76. data/ext/couchbase/core/impl/bootstrap_state_listener.hxx +39 -0
  77. data/ext/couchbase/core/impl/build_deferred_query_indexes.cxx +92 -0
  78. data/ext/couchbase/core/impl/cluster.cxx +185 -0
  79. data/ext/couchbase/core/impl/collection_query_index_manager.cxx +93 -0
  80. data/ext/couchbase/core/impl/common_error_category.cxx +88 -0
  81. data/ext/couchbase/core/impl/configuration_profiles_registry.cxx +73 -0
  82. data/ext/couchbase/core/impl/create_query_index.cxx +119 -0
  83. data/ext/couchbase/core/impl/decrement.cxx +96 -0
  84. data/ext/couchbase/core/impl/dns_srv_tracker.cxx +147 -0
  85. data/ext/couchbase/core/impl/dns_srv_tracker.hxx +68 -0
  86. data/ext/couchbase/core/impl/drop_query_index.cxx +108 -0
  87. data/ext/couchbase/core/impl/exists.cxx +47 -0
  88. data/ext/couchbase/core/impl/expiry.cxx +99 -0
  89. data/ext/couchbase/core/impl/fail_fast_retry_strategy.cxx +41 -0
  90. data/ext/couchbase/core/impl/field_level_encryption_error_category.cxx +63 -0
  91. data/ext/couchbase/core/impl/get.cxx +68 -0
  92. data/ext/couchbase/core/impl/get_all_query_indexes.cxx +76 -0
  93. data/ext/couchbase/core/impl/get_all_replicas.cxx +145 -0
  94. data/ext/couchbase/core/impl/get_all_replicas.hxx +79 -0
  95. data/ext/couchbase/core/impl/get_and_lock.cxx +49 -0
  96. data/ext/couchbase/core/impl/get_and_touch.cxx +49 -0
  97. data/ext/couchbase/core/impl/get_any_replica.cxx +134 -0
  98. data/ext/couchbase/core/impl/get_any_replica.hxx +76 -0
  99. data/ext/couchbase/core/impl/get_replica.cxx +44 -0
  100. data/ext/couchbase/core/impl/get_replica.hxx +52 -0
  101. data/ext/couchbase/core/impl/increment.cxx +96 -0
  102. data/ext/couchbase/core/impl/insert.cxx +90 -0
  103. data/ext/couchbase/core/impl/key_value_error_category.cxx +105 -0
  104. data/ext/couchbase/core/impl/lookup_in.cxx +68 -0
  105. data/ext/couchbase/core/impl/management_error_category.cxx +75 -0
  106. data/ext/couchbase/core/impl/mutate_in.cxx +125 -0
  107. data/ext/couchbase/core/impl/network_error_category.cxx +73 -0
  108. data/ext/couchbase/core/impl/observe_poll.cxx +355 -0
  109. data/ext/couchbase/core/impl/observe_poll.hxx +49 -0
  110. data/ext/couchbase/core/impl/observe_seqno.cxx +47 -0
  111. data/ext/couchbase/core/impl/observe_seqno.hxx +63 -0
  112. data/ext/couchbase/core/impl/prepend.cxx +87 -0
  113. data/ext/couchbase/core/impl/query.cxx +245 -0
  114. data/ext/couchbase/core/impl/query_error_category.cxx +55 -0
  115. data/ext/couchbase/core/impl/remove.cxx +86 -0
  116. data/ext/couchbase/core/impl/replace.cxx +102 -0
  117. data/ext/couchbase/core/impl/retry_action.cxx +39 -0
  118. data/ext/couchbase/core/impl/retry_reason.cxx +85 -0
  119. data/ext/couchbase/core/impl/search_error_category.cxx +51 -0
  120. data/ext/couchbase/core/impl/streaming_json_lexter_error_category.cxx +102 -0
  121. data/ext/couchbase/core/impl/subdoc/array_add_unique.cxx +36 -0
  122. data/ext/couchbase/core/impl/subdoc/array_append.cxx +37 -0
  123. data/ext/couchbase/core/impl/subdoc/array_insert.cxx +37 -0
  124. data/ext/couchbase/core/impl/subdoc/array_prepend.cxx +37 -0
  125. data/ext/couchbase/core/impl/subdoc/command.hxx +41 -0
  126. data/ext/couchbase/core/impl/subdoc/command_bundle.hxx +42 -0
  127. data/ext/couchbase/core/impl/subdoc/count.cxx +36 -0
  128. data/ext/couchbase/core/impl/subdoc/counter.cxx +37 -0
  129. data/ext/couchbase/core/impl/subdoc/exists.cxx +36 -0
  130. data/ext/couchbase/core/impl/subdoc/get.cxx +36 -0
  131. data/ext/couchbase/core/impl/subdoc/insert.cxx +36 -0
  132. data/ext/couchbase/core/impl/subdoc/join_values.cxx +56 -0
  133. data/ext/couchbase/core/impl/subdoc/join_values.hxx +27 -0
  134. data/ext/couchbase/core/impl/subdoc/lookup_in_macro.cxx +117 -0
  135. data/ext/couchbase/core/impl/subdoc/lookup_in_specs.cxx +42 -0
  136. data/ext/couchbase/core/impl/subdoc/mutate_in_macro.cxx +77 -0
  137. data/ext/couchbase/core/impl/subdoc/mutate_in_specs.cxx +42 -0
  138. data/ext/couchbase/core/impl/subdoc/opcode.hxx +47 -0
  139. data/ext/couchbase/core/impl/subdoc/path_flags.hxx +77 -0
  140. data/ext/couchbase/core/impl/subdoc/remove.cxx +36 -0
  141. data/ext/couchbase/core/impl/subdoc/replace.cxx +36 -0
  142. data/ext/couchbase/core/impl/subdoc/upsert.cxx +36 -0
  143. data/ext/couchbase/core/impl/touch.cxx +49 -0
  144. data/ext/couchbase/core/impl/transaction_error_category.cxx +54 -0
  145. data/ext/couchbase/core/impl/transaction_op_error_category.cxx +90 -0
  146. data/ext/couchbase/core/impl/unlock.cxx +47 -0
  147. data/ext/couchbase/core/impl/upsert.cxx +100 -0
  148. data/ext/couchbase/core/impl/view_error_category.cxx +50 -0
  149. data/ext/couchbase/core/impl/watch_query_indexes.cxx +168 -0
  150. data/ext/couchbase/core/impl/with_legacy_durability.hxx +65 -0
  151. data/ext/couchbase/core/io/dns_client.hxx +224 -0
  152. data/ext/couchbase/core/io/dns_codec.hxx +207 -0
  153. data/ext/couchbase/core/io/dns_config.cxx +157 -0
  154. data/ext/couchbase/core/io/dns_config.hxx +68 -0
  155. data/ext/couchbase/core/io/dns_message.hxx +555 -0
  156. data/ext/couchbase/core/io/http_command.hxx +182 -0
  157. data/ext/couchbase/core/io/http_context.hxx +40 -0
  158. data/ext/couchbase/core/io/http_message.hxx +116 -0
  159. data/ext/couchbase/core/io/http_parser.cxx +141 -0
  160. data/ext/couchbase/core/io/http_parser.hxx +55 -0
  161. data/ext/couchbase/core/io/http_session.hxx +552 -0
  162. data/ext/couchbase/core/io/http_session_manager.hxx +388 -0
  163. data/ext/couchbase/core/io/http_traits.hxx +38 -0
  164. data/ext/couchbase/core/io/ip_protocol.hxx +28 -0
  165. data/ext/couchbase/core/io/mcbp_command.hxx +317 -0
  166. data/ext/couchbase/core/io/mcbp_context.hxx +40 -0
  167. data/ext/couchbase/core/io/mcbp_message.cxx +39 -0
  168. data/ext/couchbase/core/io/mcbp_message.hxx +60 -0
  169. data/ext/couchbase/core/io/mcbp_parser.cxx +88 -0
  170. data/ext/couchbase/core/io/mcbp_parser.hxx +45 -0
  171. data/ext/couchbase/core/io/mcbp_session.cxx +1690 -0
  172. data/ext/couchbase/core/io/mcbp_session.hxx +130 -0
  173. data/ext/couchbase/core/io/mcbp_traits.hxx +38 -0
  174. data/ext/couchbase/core/io/query_cache.hxx +71 -0
  175. data/ext/couchbase/core/io/retry_context.hxx +89 -0
  176. data/ext/couchbase/core/io/retry_orchestrator.hxx +97 -0
  177. data/ext/couchbase/core/io/streams.hxx +258 -0
  178. data/ext/couchbase/core/json_string.hxx +82 -0
  179. data/ext/couchbase/core/key_value_config.cxx +35 -0
  180. data/ext/couchbase/core/key_value_config.hxx +40 -0
  181. data/ext/couchbase/core/logger/CMakeLists.txt +9 -0
  182. data/ext/couchbase/core/logger/configuration.hxx +60 -0
  183. data/ext/couchbase/core/logger/custom_rotating_file_sink.cxx +157 -0
  184. data/ext/couchbase/{couchbase → core}/logger/custom_rotating_file_sink.hxx +0 -0
  185. data/ext/couchbase/core/logger/level.hxx +21 -0
  186. data/ext/couchbase/core/logger/logger.cxx +340 -0
  187. data/ext/couchbase/core/logger/logger.hxx +240 -0
  188. data/ext/couchbase/core/management/analytics_dataset.hxx +30 -0
  189. data/ext/couchbase/core/management/analytics_index.hxx +30 -0
  190. data/ext/couchbase/core/management/analytics_link.hxx +22 -0
  191. data/ext/couchbase/core/management/analytics_link_azure_blob_external.cxx +68 -0
  192. data/ext/couchbase/core/management/analytics_link_azure_blob_external.hxx +76 -0
  193. data/ext/couchbase/core/management/analytics_link_azure_blob_external_json.hxx +52 -0
  194. data/ext/couchbase/core/management/analytics_link_couchbase_remote.cxx +105 -0
  195. data/ext/couchbase/core/management/analytics_link_couchbase_remote.hxx +107 -0
  196. data/ext/couchbase/core/management/analytics_link_couchbase_remote_json.hxx +63 -0
  197. data/ext/couchbase/core/management/analytics_link_s3_external.cxx +58 -0
  198. data/ext/couchbase/core/management/analytics_link_s3_external.hxx +69 -0
  199. data/ext/couchbase/core/management/analytics_link_s3_external_json.hxx +47 -0
  200. data/ext/couchbase/core/management/bucket_settings.hxx +134 -0
  201. data/ext/couchbase/core/management/bucket_settings_json.hxx +123 -0
  202. data/ext/couchbase/core/management/design_document.hxx +41 -0
  203. data/ext/couchbase/core/management/eventing_function.hxx +188 -0
  204. data/ext/couchbase/core/management/eventing_function_json.hxx +212 -0
  205. data/ext/couchbase/core/management/eventing_status.hxx +84 -0
  206. data/ext/couchbase/core/management/eventing_status_json.hxx +77 -0
  207. data/ext/couchbase/core/management/rbac.hxx +77 -0
  208. data/ext/couchbase/core/management/rbac_fmt.hxx +49 -0
  209. data/ext/couchbase/core/management/rbac_json.hxx +179 -0
  210. data/ext/couchbase/core/management/search_index.hxx +38 -0
  211. data/ext/couchbase/core/management/search_index_json.hxx +58 -0
  212. data/ext/couchbase/core/mcbp/barrier_frame.hxx +27 -0
  213. data/ext/couchbase/core/mcbp/big_endian.cxx +73 -0
  214. data/ext/couchbase/core/mcbp/big_endian.hxx +46 -0
  215. data/ext/couchbase/core/mcbp/buffer_writer.cxx +78 -0
  216. data/ext/couchbase/core/mcbp/buffer_writer.hxx +38 -0
  217. data/ext/couchbase/core/mcbp/codec.cxx +501 -0
  218. data/ext/couchbase/core/mcbp/codec.hxx +52 -0
  219. data/ext/couchbase/core/mcbp/command_code.cxx +77 -0
  220. data/ext/couchbase/core/mcbp/command_code.hxx +33 -0
  221. data/ext/couchbase/core/mcbp/completion_token.hxx +69 -0
  222. data/ext/couchbase/core/mcbp/datatype.hxx +40 -0
  223. data/ext/couchbase/core/mcbp/durability_level.hxx +35 -0
  224. data/ext/couchbase/core/mcbp/durability_level_frame.hxx +28 -0
  225. data/ext/couchbase/core/mcbp/durability_timeout_frame.hxx +29 -0
  226. data/ext/couchbase/core/mcbp/frame_type.hxx +41 -0
  227. data/ext/couchbase/core/mcbp/open_tracing_frame.hxx +29 -0
  228. data/ext/couchbase/core/mcbp/operation_consumer.cxx +47 -0
  229. data/ext/couchbase/core/mcbp/operation_consumer.hxx +42 -0
  230. data/ext/couchbase/core/mcbp/operation_queue.cxx +158 -0
  231. data/ext/couchbase/core/mcbp/operation_queue.hxx +57 -0
  232. data/ext/couchbase/core/mcbp/packet.cxx +92 -0
  233. data/ext/couchbase/core/mcbp/packet.hxx +71 -0
  234. data/ext/couchbase/core/mcbp/preserve_expiry_frame.hxx +26 -0
  235. data/ext/couchbase/core/mcbp/queue_callback.hxx +34 -0
  236. data/ext/couchbase/core/mcbp/queue_request.cxx +174 -0
  237. data/ext/couchbase/core/mcbp/queue_request.hxx +120 -0
  238. data/ext/couchbase/core/mcbp/queue_request_connection_info.hxx +29 -0
  239. data/ext/couchbase/core/mcbp/queue_response.hxx +37 -0
  240. data/ext/couchbase/core/mcbp/read_units_frame.hxx +28 -0
  241. data/ext/couchbase/core/mcbp/server_duration.cxx +40 -0
  242. data/ext/couchbase/core/mcbp/server_duration.hxx +32 -0
  243. data/ext/couchbase/core/mcbp/server_duration_frame.hxx +28 -0
  244. data/ext/couchbase/core/mcbp/stream_id_frame.hxx +28 -0
  245. data/ext/couchbase/core/mcbp/unsupported_frame.hxx +32 -0
  246. data/ext/couchbase/core/mcbp/user_impersonation_frame.hxx +30 -0
  247. data/ext/couchbase/core/mcbp/write_units_frame.hxx +29 -0
  248. data/ext/couchbase/core/meta/CMakeLists.txt +17 -0
  249. data/ext/couchbase/core/meta/features.hxx +31 -0
  250. data/ext/couchbase/core/meta/version.cxx +264 -0
  251. data/ext/couchbase/core/meta/version.hxx +56 -0
  252. data/ext/couchbase/core/metrics/CMakeLists.txt +13 -0
  253. data/ext/couchbase/core/metrics/logging_meter.cxx +235 -0
  254. data/ext/couchbase/core/metrics/logging_meter.hxx +60 -0
  255. data/ext/couchbase/core/metrics/logging_meter_options.hxx +28 -0
  256. data/ext/couchbase/core/metrics/noop_meter.hxx +47 -0
  257. data/ext/couchbase/core/n1ql_query_options.cxx +94 -0
  258. data/ext/couchbase/core/n1ql_query_options.hxx +78 -0
  259. data/ext/couchbase/core/operation_map.hxx +36 -0
  260. data/ext/couchbase/core/operations/document_analytics.cxx +221 -0
  261. data/ext/couchbase/core/operations/document_analytics.hxx +113 -0
  262. data/ext/couchbase/core/operations/document_append.cxx +45 -0
  263. data/ext/couchbase/core/operations/document_append.hxx +78 -0
  264. data/ext/couchbase/core/operations/document_decrement.cxx +53 -0
  265. data/ext/couchbase/core/operations/document_decrement.hxx +81 -0
  266. data/ext/couchbase/core/operations/document_exists.cxx +50 -0
  267. data/ext/couchbase/core/operations/document_exists.hxx +72 -0
  268. data/ext/couchbase/core/operations/document_get.cxx +44 -0
  269. data/ext/couchbase/core/operations/document_get.hxx +62 -0
  270. data/ext/couchbase/core/operations/document_get_all_replicas.hxx +143 -0
  271. data/ext/couchbase/core/operations/document_get_and_lock.cxx +45 -0
  272. data/ext/couchbase/core/operations/document_get_and_lock.hxx +64 -0
  273. data/ext/couchbase/core/operations/document_get_and_touch.cxx +45 -0
  274. data/ext/couchbase/core/operations/document_get_and_touch.hxx +65 -0
  275. data/ext/couchbase/core/operations/document_get_any_replica.hxx +133 -0
  276. data/ext/couchbase/core/operations/document_get_projected.cxx +238 -0
  277. data/ext/couchbase/core/operations/document_get_projected.hxx +68 -0
  278. data/ext/couchbase/core/operations/document_increment.cxx +53 -0
  279. data/ext/couchbase/core/operations/document_increment.hxx +81 -0
  280. data/ext/couchbase/core/operations/document_insert.cxx +51 -0
  281. data/ext/couchbase/core/operations/document_insert.hxx +80 -0
  282. data/ext/couchbase/core/operations/document_lookup_in.cxx +97 -0
  283. data/ext/couchbase/core/operations/document_lookup_in.hxx +77 -0
  284. data/ext/couchbase/core/operations/document_mutate_in.cxx +118 -0
  285. data/ext/couchbase/core/operations/document_mutate_in.hxx +95 -0
  286. data/ext/couchbase/core/operations/document_prepend.cxx +45 -0
  287. data/ext/couchbase/core/operations/document_prepend.hxx +78 -0
  288. data/ext/couchbase/core/operations/document_query.cxx +386 -0
  289. data/ext/couchbase/core/operations/document_query.hxx +128 -0
  290. data/ext/couchbase/core/operations/document_remove.cxx +45 -0
  291. data/ext/couchbase/core/operations/document_remove.hxx +78 -0
  292. data/ext/couchbase/core/operations/document_replace.cxx +55 -0
  293. data/ext/couchbase/core/operations/document_replace.hxx +82 -0
  294. data/ext/couchbase/core/operations/document_search.cxx +312 -0
  295. data/ext/couchbase/core/operations/document_search.hxx +163 -0
  296. data/ext/couchbase/core/operations/document_touch.cxx +43 -0
  297. data/ext/couchbase/core/operations/document_touch.hxx +61 -0
  298. data/ext/couchbase/core/operations/document_unlock.cxx +43 -0
  299. data/ext/couchbase/core/operations/document_unlock.hxx +61 -0
  300. data/ext/couchbase/core/operations/document_upsert.cxx +54 -0
  301. data/ext/couchbase/core/operations/document_upsert.hxx +81 -0
  302. data/ext/couchbase/core/operations/document_view.cxx +197 -0
  303. data/ext/couchbase/core/operations/document_view.hxx +109 -0
  304. data/ext/couchbase/core/operations/http_noop.cxx +64 -0
  305. data/ext/couchbase/core/operations/http_noop.hxx +48 -0
  306. data/ext/couchbase/core/operations/management/CMakeLists.txt +80 -0
  307. data/ext/couchbase/core/operations/management/analytics.hxx +34 -0
  308. data/ext/couchbase/core/operations/management/analytics_dataset_create.cxx +93 -0
  309. data/ext/couchbase/core/operations/management/analytics_dataset_create.hxx +57 -0
  310. data/ext/couchbase/core/operations/management/analytics_dataset_drop.cxx +82 -0
  311. data/ext/couchbase/core/operations/management/analytics_dataset_drop.hxx +54 -0
  312. data/ext/couchbase/core/operations/management/analytics_dataset_get_all.cxx +78 -0
  313. data/ext/couchbase/core/operations/management/analytics_dataset_get_all.hxx +52 -0
  314. data/ext/couchbase/core/operations/management/analytics_dataverse_create.cxx +81 -0
  315. data/ext/couchbase/core/operations/management/analytics_dataverse_create.hxx +53 -0
  316. data/ext/couchbase/core/operations/management/analytics_dataverse_drop.cxx +81 -0
  317. data/ext/couchbase/core/operations/management/analytics_dataverse_drop.hxx +53 -0
  318. data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.cxx +69 -0
  319. data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.hxx +52 -0
  320. data/ext/couchbase/core/operations/management/analytics_index_create.cxx +105 -0
  321. data/ext/couchbase/core/operations/management/analytics_index_create.hxx +56 -0
  322. data/ext/couchbase/core/operations/management/analytics_index_drop.cxx +89 -0
  323. data/ext/couchbase/core/operations/management/analytics_index_drop.hxx +55 -0
  324. data/ext/couchbase/core/operations/management/analytics_index_get_all.cxx +79 -0
  325. data/ext/couchbase/core/operations/management/analytics_index_get_all.hxx +52 -0
  326. data/ext/couchbase/core/operations/management/analytics_link_connect.cxx +81 -0
  327. data/ext/couchbase/core/operations/management/analytics_link_connect.hxx +57 -0
  328. data/ext/couchbase/core/operations/management/analytics_link_create.cxx +86 -0
  329. data/ext/couchbase/core/operations/management/analytics_link_create.hxx +77 -0
  330. data/ext/couchbase/core/operations/management/analytics_link_disconnect.cxx +79 -0
  331. data/ext/couchbase/core/operations/management/analytics_link_disconnect.hxx +56 -0
  332. data/ext/couchbase/core/operations/management/analytics_link_drop.cxx +102 -0
  333. data/ext/couchbase/core/operations/management/analytics_link_drop.hxx +56 -0
  334. data/ext/couchbase/core/operations/management/analytics_link_get_all.cxx +128 -0
  335. data/ext/couchbase/core/operations/management/analytics_link_get_all.hxx +63 -0
  336. data/ext/couchbase/core/operations/management/analytics_link_replace.cxx +86 -0
  337. data/ext/couchbase/core/operations/management/analytics_link_replace.hxx +78 -0
  338. data/ext/couchbase/core/operations/management/analytics_link_utils.hxx +37 -0
  339. data/ext/couchbase/core/operations/management/analytics_problem.hxx +31 -0
  340. data/ext/couchbase/core/operations/management/bucket.hxx +25 -0
  341. data/ext/couchbase/core/operations/management/bucket_create.cxx +171 -0
  342. data/ext/couchbase/core/operations/management/bucket_create.hxx +52 -0
  343. data/ext/couchbase/core/operations/management/bucket_describe.cxx +98 -0
  344. data/ext/couchbase/core/operations/management/bucket_describe.hxx +64 -0
  345. data/ext/couchbase/core/operations/management/bucket_drop.cxx +51 -0
  346. data/ext/couchbase/core/operations/management/bucket_drop.hxx +49 -0
  347. data/ext/couchbase/core/operations/management/bucket_flush.cxx +58 -0
  348. data/ext/couchbase/core/operations/management/bucket_flush.hxx +49 -0
  349. data/ext/couchbase/core/operations/management/bucket_get.cxx +58 -0
  350. data/ext/couchbase/core/operations/management/bucket_get.hxx +51 -0
  351. data/ext/couchbase/core/operations/management/bucket_get_all.cxx +58 -0
  352. data/ext/couchbase/core/operations/management/bucket_get_all.hxx +49 -0
  353. data/ext/couchbase/core/operations/management/bucket_update.cxx +130 -0
  354. data/ext/couchbase/core/operations/management/bucket_update.hxx +52 -0
  355. data/ext/couchbase/core/operations/management/change_password.cxx +55 -0
  356. data/ext/couchbase/core/operations/management/change_password.hxx +50 -0
  357. data/ext/couchbase/core/operations/management/cluster_describe.cxx +89 -0
  358. data/ext/couchbase/core/operations/management/cluster_describe.hxx +72 -0
  359. data/ext/couchbase/core/operations/management/cluster_developer_preview_enable.cxx +43 -0
  360. data/ext/couchbase/core/operations/management/cluster_developer_preview_enable.hxx +48 -0
  361. data/ext/couchbase/core/operations/management/collection_create.cxx +82 -0
  362. data/ext/couchbase/core/operations/management/collection_create.hxx +53 -0
  363. data/ext/couchbase/core/operations/management/collection_drop.cxx +72 -0
  364. data/ext/couchbase/core/operations/management/collection_drop.hxx +52 -0
  365. data/ext/couchbase/core/operations/management/collections.hxx +25 -0
  366. data/ext/couchbase/core/operations/management/collections_manifest_get.cxx +40 -0
  367. data/ext/couchbase/core/operations/management/collections_manifest_get.hxx +53 -0
  368. data/ext/couchbase/core/operations/management/error_utils.cxx +267 -0
  369. data/ext/couchbase/core/operations/management/error_utils.hxx +49 -0
  370. data/ext/couchbase/core/operations/management/eventing.hxx +28 -0
  371. data/ext/couchbase/core/operations/management/eventing_deploy_function.cxx +55 -0
  372. data/ext/couchbase/core/operations/management/eventing_deploy_function.hxx +52 -0
  373. data/ext/couchbase/core/operations/management/eventing_drop_function.cxx +56 -0
  374. data/ext/couchbase/core/operations/management/eventing_drop_function.hxx +52 -0
  375. data/ext/couchbase/core/operations/management/eventing_get_all_functions.cxx +63 -0
  376. data/ext/couchbase/core/operations/management/eventing_get_all_functions.hxx +51 -0
  377. data/ext/couchbase/core/operations/management/eventing_get_function.cxx +55 -0
  378. data/ext/couchbase/core/operations/management/eventing_get_function.hxx +53 -0
  379. data/ext/couchbase/core/operations/management/eventing_get_status.cxx +55 -0
  380. data/ext/couchbase/core/operations/management/eventing_get_status.hxx +53 -0
  381. data/ext/couchbase/core/operations/management/eventing_pause_function.cxx +55 -0
  382. data/ext/couchbase/core/operations/management/eventing_pause_function.hxx +52 -0
  383. data/ext/couchbase/core/operations/management/eventing_problem.hxx +32 -0
  384. data/ext/couchbase/core/operations/management/eventing_resume_function.cxx +55 -0
  385. data/ext/couchbase/core/operations/management/eventing_resume_function.hxx +52 -0
  386. data/ext/couchbase/core/operations/management/eventing_undeploy_function.cxx +55 -0
  387. data/ext/couchbase/core/operations/management/eventing_undeploy_function.hxx +52 -0
  388. data/ext/couchbase/core/operations/management/eventing_upsert_function.cxx +340 -0
  389. data/ext/couchbase/core/operations/management/eventing_upsert_function.hxx +52 -0
  390. data/ext/couchbase/core/operations/management/freeform.cxx +54 -0
  391. data/ext/couchbase/core/operations/management/freeform.hxx +55 -0
  392. data/ext/couchbase/core/operations/management/group_drop.cxx +50 -0
  393. data/ext/couchbase/core/operations/management/group_drop.hxx +49 -0
  394. data/ext/couchbase/core/operations/management/group_get.cxx +59 -0
  395. data/ext/couchbase/core/operations/management/group_get.hxx +50 -0
  396. data/ext/couchbase/core/operations/management/group_get_all.cxx +57 -0
  397. data/ext/couchbase/core/operations/management/group_get_all.hxx +49 -0
  398. data/ext/couchbase/core/operations/management/group_upsert.cxx +95 -0
  399. data/ext/couchbase/core/operations/management/group_upsert.hxx +51 -0
  400. data/ext/couchbase/core/operations/management/query.hxx +25 -0
  401. data/ext/couchbase/core/operations/management/query_index_build.cxx +92 -0
  402. data/ext/couchbase/core/operations/management/query_index_build.hxx +62 -0
  403. data/ext/couchbase/core/operations/management/query_index_build_deferred.hxx +116 -0
  404. data/ext/couchbase/core/operations/management/query_index_create.cxx +146 -0
  405. data/ext/couchbase/core/operations/management/query_index_create.hxx +67 -0
  406. data/ext/couchbase/core/operations/management/query_index_drop.cxx +127 -0
  407. data/ext/couchbase/core/operations/management/query_index_drop.hxx +63 -0
  408. data/ext/couchbase/core/operations/management/query_index_get_all.cxx +129 -0
  409. data/ext/couchbase/core/operations/management/query_index_get_all.hxx +56 -0
  410. data/ext/couchbase/core/operations/management/query_index_get_all_deferred.cxx +96 -0
  411. data/ext/couchbase/core/operations/management/query_index_get_all_deferred.hxx +57 -0
  412. data/ext/couchbase/core/operations/management/role_get_all.cxx +57 -0
  413. data/ext/couchbase/core/operations/management/role_get_all.hxx +49 -0
  414. data/ext/couchbase/core/operations/management/scope_create.cxx +74 -0
  415. data/ext/couchbase/core/operations/management/scope_create.hxx +51 -0
  416. data/ext/couchbase/core/operations/management/scope_drop.cxx +69 -0
  417. data/ext/couchbase/core/operations/management/scope_drop.hxx +51 -0
  418. data/ext/couchbase/core/operations/management/scope_get_all.cxx +61 -0
  419. data/ext/couchbase/core/operations/management/scope_get_all.hxx +51 -0
  420. data/ext/couchbase/core/operations/management/search.hxx +30 -0
  421. data/ext/couchbase/core/operations/management/search_get_stats.cxx +41 -0
  422. data/ext/couchbase/core/operations/management/search_get_stats.hxx +48 -0
  423. data/ext/couchbase/core/operations/management/search_index_analyze_document.cxx +84 -0
  424. data/ext/couchbase/core/operations/management/search_index_analyze_document.hxx +54 -0
  425. data/ext/couchbase/core/operations/management/search_index_control_ingest.cxx +72 -0
  426. data/ext/couchbase/core/operations/management/search_index_control_ingest.hxx +52 -0
  427. data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.cxx +72 -0
  428. data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.hxx +57 -0
  429. data/ext/couchbase/core/operations/management/search_index_control_query.cxx +72 -0
  430. data/ext/couchbase/core/operations/management/search_index_control_query.hxx +52 -0
  431. data/ext/couchbase/core/operations/management/search_index_drop.cxx +71 -0
  432. data/ext/couchbase/core/operations/management/search_index_drop.hxx +51 -0
  433. data/ext/couchbase/core/operations/management/search_index_get.cxx +74 -0
  434. data/ext/couchbase/core/operations/management/search_index_get.hxx +54 -0
  435. data/ext/couchbase/core/operations/management/search_index_get_all.cxx +66 -0
  436. data/ext/couchbase/core/operations/management/search_index_get_all.hxx +51 -0
  437. data/ext/couchbase/core/operations/management/search_index_get_documents_count.cxx +78 -0
  438. data/ext/couchbase/core/operations/management/search_index_get_documents_count.hxx +53 -0
  439. data/ext/couchbase/core/operations/management/search_index_get_stats.cxx +70 -0
  440. data/ext/couchbase/core/operations/management/search_index_get_stats.hxx +52 -0
  441. data/ext/couchbase/core/operations/management/search_index_upsert.cxx +114 -0
  442. data/ext/couchbase/core/operations/management/search_index_upsert.hxx +54 -0
  443. data/ext/couchbase/core/operations/management/user.hxx +29 -0
  444. data/ext/couchbase/core/operations/management/user_drop.cxx +51 -0
  445. data/ext/couchbase/core/operations/management/user_drop.hxx +51 -0
  446. data/ext/couchbase/core/operations/management/user_get.cxx +60 -0
  447. data/ext/couchbase/core/operations/management/user_get.hxx +52 -0
  448. data/ext/couchbase/core/operations/management/user_get_all.cxx +58 -0
  449. data/ext/couchbase/core/operations/management/user_get_all.hxx +51 -0
  450. data/ext/couchbase/core/operations/management/user_upsert.cxx +100 -0
  451. data/ext/couchbase/core/operations/management/user_upsert.hxx +52 -0
  452. data/ext/couchbase/core/operations/management/view.hxx +23 -0
  453. data/ext/couchbase/core/operations/management/view_index_drop.cxx +45 -0
  454. data/ext/couchbase/core/operations/management/view_index_drop.hxx +52 -0
  455. data/ext/couchbase/core/operations/management/view_index_get.cxx +73 -0
  456. data/ext/couchbase/core/operations/management/view_index_get.hxx +53 -0
  457. data/ext/couchbase/core/operations/management/view_index_get_all.cxx +107 -0
  458. data/ext/couchbase/core/operations/management/view_index_get_all.hxx +52 -0
  459. data/ext/couchbase/core/operations/management/view_index_upsert.cxx +70 -0
  460. data/ext/couchbase/core/operations/management/view_index_upsert.hxx +51 -0
  461. data/ext/couchbase/core/operations/mcbp_noop.cxx +38 -0
  462. data/ext/couchbase/core/operations/mcbp_noop.hxx +49 -0
  463. data/ext/couchbase/core/operations/operation_traits.hxx +31 -0
  464. data/ext/couchbase/core/operations.hxx +44 -0
  465. data/ext/couchbase/core/origin.hxx +195 -0
  466. data/ext/couchbase/core/pending_operation.hxx +26 -0
  467. data/ext/couchbase/core/ping_collector.hxx +32 -0
  468. data/ext/couchbase/core/ping_options.hxx +86 -0
  469. data/ext/couchbase/core/ping_reporter.hxx +30 -0
  470. data/ext/couchbase/core/platform/CMakeLists.txt +16 -0
  471. data/ext/couchbase/core/platform/backtrace.c +189 -0
  472. data/ext/couchbase/{couchbase → core}/platform/backtrace.h +0 -0
  473. data/ext/couchbase/core/platform/base64.cc +253 -0
  474. data/ext/couchbase/core/platform/base64.h +52 -0
  475. data/ext/couchbase/core/platform/dirutils.cc +123 -0
  476. data/ext/couchbase/core/platform/dirutils.h +43 -0
  477. data/ext/couchbase/core/platform/random.cc +120 -0
  478. data/ext/couchbase/core/platform/random.h +39 -0
  479. data/ext/couchbase/core/platform/string_hex.cc +101 -0
  480. data/ext/couchbase/core/platform/string_hex.h +50 -0
  481. data/ext/couchbase/core/platform/terminate_handler.cc +125 -0
  482. data/ext/couchbase/core/platform/terminate_handler.h +36 -0
  483. data/ext/couchbase/core/platform/uuid.cc +102 -0
  484. data/ext/couchbase/core/platform/uuid.h +56 -0
  485. data/ext/couchbase/core/protocol/client_opcode.hxx +369 -0
  486. data/ext/couchbase/core/protocol/client_opcode_fmt.hxx +325 -0
  487. data/ext/couchbase/core/protocol/client_request.cxx +38 -0
  488. data/ext/couchbase/core/protocol/client_request.hxx +167 -0
  489. data/ext/couchbase/core/protocol/client_response.cxx +75 -0
  490. data/ext/couchbase/core/protocol/client_response.hxx +210 -0
  491. data/ext/couchbase/core/protocol/cmd_append.cxx +74 -0
  492. data/ext/couchbase/core/protocol/cmd_append.hxx +107 -0
  493. data/ext/couchbase/core/protocol/cmd_cluster_map_change_notification.cxx +53 -0
  494. data/ext/couchbase/core/protocol/cmd_cluster_map_change_notification.hxx +57 -0
  495. data/ext/couchbase/core/protocol/cmd_decrement.cxx +96 -0
  496. data/ext/couchbase/core/protocol/cmd_decrement.hxx +130 -0
  497. data/ext/couchbase/core/protocol/cmd_get.cxx +59 -0
  498. data/ext/couchbase/core/protocol/cmd_get.hxx +96 -0
  499. data/ext/couchbase/core/protocol/cmd_get_and_lock.cxx +66 -0
  500. data/ext/couchbase/core/protocol/cmd_get_and_lock.hxx +112 -0
  501. data/ext/couchbase/core/protocol/cmd_get_and_touch.cxx +66 -0
  502. data/ext/couchbase/core/protocol/cmd_get_and_touch.hxx +112 -0
  503. data/ext/couchbase/core/protocol/cmd_get_cluster_config.cxx +85 -0
  504. data/ext/couchbase/core/protocol/cmd_get_cluster_config.hxx +89 -0
  505. data/ext/couchbase/core/protocol/cmd_get_collection_id.cxx +60 -0
  506. data/ext/couchbase/core/protocol/cmd_get_collection_id.hxx +95 -0
  507. data/ext/couchbase/core/protocol/cmd_get_collections_manifest.cxx +51 -0
  508. data/ext/couchbase/core/protocol/cmd_get_collections_manifest.hxx +84 -0
  509. data/ext/couchbase/core/protocol/cmd_get_error_map.cxx +61 -0
  510. data/ext/couchbase/core/protocol/cmd_get_error_map.hxx +103 -0
  511. data/ext/couchbase/core/protocol/cmd_get_meta.cxx +70 -0
  512. data/ext/couchbase/core/protocol/cmd_get_meta.hxx +117 -0
  513. data/ext/couchbase/core/protocol/cmd_get_replica.cxx +71 -0
  514. data/ext/couchbase/core/protocol/cmd_get_replica.hxx +88 -0
  515. data/ext/couchbase/core/protocol/cmd_hello.cxx +76 -0
  516. data/ext/couchbase/core/protocol/cmd_hello.hxx +140 -0
  517. data/ext/couchbase/core/protocol/cmd_increment.cxx +98 -0
  518. data/ext/couchbase/core/protocol/cmd_increment.hxx +130 -0
  519. data/ext/couchbase/core/protocol/cmd_info.hxx +30 -0
  520. data/ext/couchbase/core/protocol/cmd_insert.cxx +83 -0
  521. data/ext/couchbase/core/protocol/cmd_insert.hxx +124 -0
  522. data/ext/couchbase/core/protocol/cmd_lookup_in.cxx +108 -0
  523. data/ext/couchbase/core/protocol/cmd_lookup_in.hxx +139 -0
  524. data/ext/couchbase/core/protocol/cmd_mutate_in.cxx +163 -0
  525. data/ext/couchbase/core/protocol/cmd_mutate_in.hxx +216 -0
  526. data/ext/couchbase/core/protocol/cmd_noop.cxx +36 -0
  527. data/ext/couchbase/core/protocol/cmd_noop.hxx +75 -0
  528. data/ext/couchbase/core/protocol/cmd_observe_seqno.cxx +92 -0
  529. data/ext/couchbase/core/protocol/cmd_observe_seqno.hxx +132 -0
  530. data/ext/couchbase/core/protocol/cmd_prepend.cxx +73 -0
  531. data/ext/couchbase/core/protocol/cmd_prepend.hxx +103 -0
  532. data/ext/couchbase/core/protocol/cmd_remove.cxx +74 -0
  533. data/ext/couchbase/core/protocol/cmd_remove.hxx +94 -0
  534. data/ext/couchbase/core/protocol/cmd_replace.cxx +92 -0
  535. data/ext/couchbase/core/protocol/cmd_replace.hxx +131 -0
  536. data/ext/couchbase/core/protocol/cmd_sasl_auth.cxx +61 -0
  537. data/ext/couchbase/core/protocol/cmd_sasl_auth.hxx +91 -0
  538. data/ext/couchbase/core/protocol/cmd_sasl_list_mechs.cxx +53 -0
  539. data/ext/couchbase/core/protocol/cmd_sasl_list_mechs.hxx +82 -0
  540. data/ext/couchbase/core/protocol/cmd_sasl_step.cxx +61 -0
  541. data/ext/couchbase/core/protocol/cmd_sasl_step.hxx +91 -0
  542. data/ext/couchbase/core/protocol/cmd_select_bucket.cxx +45 -0
  543. data/ext/couchbase/core/protocol/cmd_select_bucket.hxx +79 -0
  544. data/ext/couchbase/core/protocol/cmd_touch.cxx +53 -0
  545. data/ext/couchbase/core/protocol/cmd_touch.hxx +84 -0
  546. data/ext/couchbase/core/protocol/cmd_unlock.cxx +44 -0
  547. data/ext/couchbase/core/protocol/cmd_unlock.hxx +81 -0
  548. data/ext/couchbase/core/protocol/cmd_upsert.cxx +92 -0
  549. data/ext/couchbase/core/protocol/cmd_upsert.hxx +126 -0
  550. data/ext/couchbase/core/protocol/datatype.hxx +48 -0
  551. data/ext/couchbase/core/protocol/enhanced_error_info.hxx +23 -0
  552. data/ext/couchbase/core/protocol/frame_info_id.hxx +142 -0
  553. data/ext/couchbase/core/protocol/frame_info_id_fmt.hxx +79 -0
  554. data/ext/couchbase/core/protocol/frame_info_utils.cxx +59 -0
  555. data/ext/couchbase/core/protocol/frame_info_utils.hxx +52 -0
  556. data/ext/couchbase/core/protocol/hello_feature.hxx +193 -0
  557. data/ext/couchbase/core/protocol/hello_feature_fmt.hxx +112 -0
  558. data/ext/couchbase/core/protocol/magic.hxx +53 -0
  559. data/ext/couchbase/core/protocol/magic_fmt.hxx +58 -0
  560. data/ext/couchbase/core/protocol/server_opcode.hxx +39 -0
  561. data/ext/couchbase/core/protocol/server_opcode_fmt.hxx +46 -0
  562. data/ext/couchbase/core/protocol/server_request.hxx +121 -0
  563. data/ext/couchbase/core/protocol/status.cxx +202 -0
  564. data/ext/couchbase/core/protocol/status.hxx +118 -0
  565. data/ext/couchbase/core/query_context.hxx +79 -0
  566. data/ext/couchbase/core/range_scan_options.cxx +57 -0
  567. data/ext/couchbase/core/range_scan_options.hxx +139 -0
  568. data/ext/couchbase/core/range_scan_orchestrator.cxx +495 -0
  569. data/ext/couchbase/core/range_scan_orchestrator.hxx +54 -0
  570. data/ext/couchbase/core/range_scan_orchestrator_options.hxx +54 -0
  571. data/ext/couchbase/core/resource_units.hxx +26 -0
  572. data/ext/couchbase/core/response_handler.hxx +49 -0
  573. data/ext/couchbase/core/retry_orchestrator.cxx +52 -0
  574. data/ext/couchbase/core/retry_orchestrator.hxx +35 -0
  575. data/ext/couchbase/core/sasl/CMakeLists.txt +16 -0
  576. data/ext/couchbase/core/sasl/client.cc +50 -0
  577. data/ext/couchbase/core/sasl/client.h +127 -0
  578. data/ext/couchbase/core/sasl/context.cc +34 -0
  579. data/ext/couchbase/core/sasl/context.h +52 -0
  580. data/ext/couchbase/core/sasl/error.h +28 -0
  581. data/ext/couchbase/core/sasl/error_fmt.h +70 -0
  582. data/ext/couchbase/core/sasl/mechanism.cc +45 -0
  583. data/ext/couchbase/core/sasl/mechanism.h +52 -0
  584. data/ext/couchbase/core/sasl/plain/plain.cc +39 -0
  585. data/ext/couchbase/core/sasl/plain/plain.h +54 -0
  586. data/ext/couchbase/core/sasl/scram-sha/scram-sha.cc +372 -0
  587. data/ext/couchbase/core/sasl/scram-sha/scram-sha.h +184 -0
  588. data/ext/couchbase/core/sasl/scram-sha/stringutils.cc +82 -0
  589. data/ext/couchbase/core/sasl/scram-sha/stringutils.h +48 -0
  590. data/ext/couchbase/core/scan_options.hxx +63 -0
  591. data/ext/couchbase/core/scan_result.cxx +71 -0
  592. data/ext/couchbase/core/scan_result.hxx +59 -0
  593. data/ext/couchbase/core/search_highlight_style.hxx +23 -0
  594. data/ext/couchbase/core/search_query_options.cxx +72 -0
  595. data/ext/couchbase/core/search_query_options.hxx +74 -0
  596. data/ext/couchbase/core/search_scan_consistency.hxx +23 -0
  597. data/ext/couchbase/core/seed_config.cxx +39 -0
  598. data/ext/couchbase/core/seed_config.hxx +39 -0
  599. data/ext/couchbase/core/service_type.hxx +31 -0
  600. data/ext/couchbase/core/service_type_fmt.hxx +61 -0
  601. data/ext/couchbase/core/stats_options.hxx +61 -0
  602. data/ext/couchbase/core/subdoc_options.hxx +124 -0
  603. data/ext/couchbase/core/timeout_defaults.hxx +45 -0
  604. data/ext/couchbase/core/topology/capabilities.hxx +43 -0
  605. data/ext/couchbase/core/topology/capabilities_fmt.hxx +106 -0
  606. data/ext/couchbase/core/topology/collections_manifest.hxx +43 -0
  607. data/ext/couchbase/core/topology/collections_manifest_fmt.hxx +52 -0
  608. data/ext/couchbase/core/topology/collections_manifest_json.hxx +53 -0
  609. data/ext/couchbase/core/topology/configuration.cxx +256 -0
  610. data/ext/couchbase/core/topology/configuration.hxx +144 -0
  611. data/ext/couchbase/core/topology/configuration_fmt.hxx +166 -0
  612. data/ext/couchbase/core/topology/configuration_json.hxx +259 -0
  613. data/ext/couchbase/core/topology/error_map.hxx +35 -0
  614. data/ext/couchbase/core/topology/error_map_fmt.hxx +94 -0
  615. data/ext/couchbase/core/topology/error_map_json.hxx +89 -0
  616. data/ext/couchbase/core/tracing/CMakeLists.txt +11 -0
  617. data/ext/couchbase/core/tracing/constants.hxx +286 -0
  618. data/ext/couchbase/core/tracing/noop_tracer.hxx +56 -0
  619. data/ext/couchbase/core/tracing/threshold_logging_options.hxx +68 -0
  620. data/ext/couchbase/core/tracing/threshold_logging_tracer.cxx +438 -0
  621. data/ext/couchbase/core/tracing/threshold_logging_tracer.hxx +52 -0
  622. data/ext/couchbase/core/transactions/active_transaction_record.hxx +180 -0
  623. data/ext/couchbase/core/transactions/async_attempt_context.hxx +175 -0
  624. data/ext/couchbase/core/transactions/atr_cleanup_entry.cxx +460 -0
  625. data/ext/couchbase/core/transactions/atr_ids.cxx +225 -0
  626. data/ext/couchbase/core/transactions/atr_ids.hxx +32 -0
  627. data/ext/couchbase/core/transactions/attempt_context.hxx +195 -0
  628. data/ext/couchbase/core/transactions/attempt_context_impl.cxx +2382 -0
  629. data/ext/couchbase/core/transactions/attempt_context_impl.hxx +608 -0
  630. data/ext/couchbase/core/transactions/attempt_context_testing_hooks.hxx +145 -0
  631. data/ext/couchbase/core/transactions/attempt_state.hxx +112 -0
  632. data/ext/couchbase/core/transactions/binary.cxx +26 -0
  633. data/ext/couchbase/core/transactions/cleanup_testing_hooks.hxx +69 -0
  634. data/ext/couchbase/core/transactions/document_metadata.hxx +106 -0
  635. data/ext/couchbase/core/transactions/durability_level.hxx +91 -0
  636. data/ext/couchbase/core/transactions/error_class.hxx +35 -0
  637. data/ext/couchbase/core/transactions/error_list.hxx +54 -0
  638. data/ext/couchbase/core/transactions/exceptions.cxx +160 -0
  639. data/ext/couchbase/core/transactions/exceptions.hxx +209 -0
  640. data/ext/couchbase/core/transactions/forward_compat.hxx +250 -0
  641. data/ext/couchbase/core/transactions/internal/atr_cleanup_entry.hxx +164 -0
  642. data/ext/couchbase/core/transactions/internal/atr_entry.hxx +178 -0
  643. data/ext/couchbase/core/transactions/internal/binary.hxx +26 -0
  644. data/ext/couchbase/core/transactions/internal/client_record.hxx +85 -0
  645. data/ext/couchbase/core/transactions/internal/doc_record.hxx +99 -0
  646. data/ext/couchbase/core/transactions/internal/exceptions_internal.hxx +393 -0
  647. data/ext/couchbase/core/transactions/internal/logging.hxx +62 -0
  648. data/ext/couchbase/core/transactions/internal/transaction_attempt.hxx +30 -0
  649. data/ext/couchbase/core/transactions/internal/transaction_context.hxx +197 -0
  650. data/ext/couchbase/core/transactions/internal/transaction_fields.hxx +71 -0
  651. data/ext/couchbase/core/transactions/internal/transactions_cleanup.hxx +159 -0
  652. data/ext/couchbase/core/transactions/internal/utils.hxx +311 -0
  653. data/ext/couchbase/core/transactions/result.cxx +79 -0
  654. data/ext/couchbase/core/transactions/result.hxx +296 -0
  655. data/ext/couchbase/core/transactions/staged_mutation.cxx +416 -0
  656. data/ext/couchbase/core/transactions/staged_mutation.hxx +126 -0
  657. data/ext/couchbase/core/transactions/transaction_attempt.cxx +29 -0
  658. data/ext/couchbase/core/transactions/transaction_context.cxx +307 -0
  659. data/ext/couchbase/core/transactions/transaction_get_result.cxx +218 -0
  660. data/ext/couchbase/core/transactions/transaction_get_result.hxx +289 -0
  661. data/ext/couchbase/core/transactions/transaction_links.cxx +27 -0
  662. data/ext/couchbase/core/transactions/transaction_links.hxx +252 -0
  663. data/ext/couchbase/core/transactions/transaction_options.cxx +38 -0
  664. data/ext/couchbase/core/transactions/transactions.cxx +184 -0
  665. data/ext/couchbase/core/transactions/transactions_cleanup.cxx +592 -0
  666. data/ext/couchbase/core/transactions/transactions_config.cxx +81 -0
  667. data/ext/couchbase/core/transactions/uid_generator.cxx +27 -0
  668. data/ext/couchbase/core/transactions/uid_generator.hxx +29 -0
  669. data/ext/couchbase/core/transactions/utils.cxx +123 -0
  670. data/ext/couchbase/core/transactions/waitable_op_list.hxx +189 -0
  671. data/ext/couchbase/core/transactions.hxx +255 -0
  672. data/ext/couchbase/core/utils/binary.cxx +27 -0
  673. data/ext/couchbase/core/utils/binary.hxx +57 -0
  674. data/ext/couchbase/core/utils/byteswap.hxx +49 -0
  675. data/ext/couchbase/core/utils/connection_string.cxx +430 -0
  676. data/ext/couchbase/core/utils/connection_string.hxx +76 -0
  677. data/ext/couchbase/core/utils/crc32.hxx +56 -0
  678. data/ext/couchbase/core/utils/duration_parser.cxx +193 -0
  679. data/ext/couchbase/core/utils/duration_parser.hxx +45 -0
  680. data/ext/couchbase/core/utils/join_strings.hxx +65 -0
  681. data/ext/couchbase/core/utils/json.cxx +291 -0
  682. data/ext/couchbase/core/utils/json.hxx +43 -0
  683. data/ext/couchbase/core/utils/json_stream_control.hxx +32 -0
  684. data/ext/couchbase/core/utils/json_streaming_lexer.cxx +398 -0
  685. data/ext/couchbase/core/utils/json_streaming_lexer.hxx +60 -0
  686. data/ext/couchbase/core/utils/keyspace.hxx +55 -0
  687. data/ext/couchbase/core/utils/movable_function.hxx +121 -0
  688. data/ext/couchbase/core/utils/mutation_token.cxx +33 -0
  689. data/ext/couchbase/core/utils/mutation_token.hxx +29 -0
  690. data/ext/couchbase/core/utils/name_codec.hxx +41 -0
  691. data/ext/couchbase/core/utils/split_string.cxx +35 -0
  692. data/ext/couchbase/core/utils/split_string.hxx +27 -0
  693. data/ext/couchbase/core/utils/unsigned_leb128.hxx +183 -0
  694. data/ext/couchbase/core/utils/url_codec.cxx +405 -0
  695. data/ext/couchbase/core/utils/url_codec.hxx +72 -0
  696. data/ext/couchbase/core/view_on_error.hxx +27 -0
  697. data/ext/couchbase/core/view_query_options.cxx +72 -0
  698. data/ext/couchbase/core/view_query_options.hxx +78 -0
  699. data/ext/couchbase/core/view_scan_consistency.hxx +27 -0
  700. data/ext/couchbase/core/view_sort_order.hxx +23 -0
  701. data/ext/couchbase/core/wait_until_ready_options.hxx +52 -0
  702. data/ext/couchbase/couchbase/append_options.hxx +123 -0
  703. data/ext/couchbase/couchbase/behavior_options.hxx +79 -0
  704. data/ext/couchbase/couchbase/best_effort_retry_strategy.hxx +64 -0
  705. data/ext/couchbase/couchbase/binary_collection.hxx +327 -0
  706. data/ext/couchbase/couchbase/bucket.hxx +55 -494
  707. data/ext/couchbase/couchbase/build_query_index_options.hxx +99 -0
  708. data/ext/couchbase/couchbase/cas.hxx +74 -8
  709. data/ext/couchbase/couchbase/certificate_authenticator.hxx +39 -0
  710. data/ext/couchbase/couchbase/cluster.hxx +156 -370
  711. data/ext/couchbase/couchbase/cluster_options.hxx +315 -51
  712. data/ext/couchbase/couchbase/codec/binary_noop_serializer.hxx +47 -0
  713. data/ext/couchbase/couchbase/codec/codec_flags.hxx +145 -0
  714. data/ext/couchbase/couchbase/codec/default_json_transcoder.hxx +36 -0
  715. data/ext/couchbase/couchbase/codec/encoded_value.hxx +31 -0
  716. data/ext/couchbase/couchbase/codec/json_transcoder.hxx +49 -0
  717. data/ext/couchbase/couchbase/codec/raw_binary_transcoder.hxx +54 -0
  718. data/ext/couchbase/couchbase/codec/serializer_traits.hxx +31 -0
  719. data/ext/couchbase/couchbase/codec/tao_json_serializer.hxx +81 -0
  720. data/ext/couchbase/couchbase/codec/transcoder_traits.hxx +31 -0
  721. data/ext/couchbase/couchbase/collection.hxx +1031 -0
  722. data/ext/couchbase/couchbase/collection_query_index_manager.hxx +218 -0
  723. data/ext/couchbase/couchbase/common_durability_options.hxx +108 -0
  724. data/ext/couchbase/couchbase/common_options.hxx +112 -0
  725. data/ext/couchbase/couchbase/compression_options.hxx +65 -0
  726. data/ext/couchbase/couchbase/configuration_profile.hxx +44 -0
  727. data/ext/couchbase/couchbase/configuration_profiles_registry.hxx +61 -0
  728. data/ext/couchbase/couchbase/counter_result.hxx +73 -0
  729. data/ext/couchbase/couchbase/create_primary_query_index_options.hxx +166 -0
  730. data/ext/couchbase/couchbase/create_query_index_options.hxx +172 -0
  731. data/ext/couchbase/couchbase/decrement_options.hxx +166 -0
  732. data/ext/couchbase/couchbase/dns_options.hxx +65 -0
  733. data/ext/couchbase/couchbase/drop_primary_query_index_options.hxx +129 -0
  734. data/ext/couchbase/couchbase/drop_query_index_options.hxx +116 -0
  735. data/ext/couchbase/couchbase/durability_level.hxx +64 -0
  736. data/ext/couchbase/couchbase/error_codes.hxx +1223 -0
  737. data/ext/couchbase/couchbase/error_context.hxx +173 -0
  738. data/ext/couchbase/couchbase/exists_options.hxx +97 -0
  739. data/ext/couchbase/couchbase/exists_result.hxx +72 -0
  740. data/ext/couchbase/couchbase/expiry.hxx +55 -0
  741. data/ext/couchbase/couchbase/fail_fast_retry_strategy.hxx +37 -0
  742. data/ext/couchbase/couchbase/fmt/cas.hxx +37 -0
  743. data/ext/couchbase/couchbase/fmt/durability_level.hxx +52 -0
  744. data/ext/couchbase/couchbase/fmt/key_value_extended_error_info.hxx +46 -0
  745. data/ext/couchbase/couchbase/fmt/key_value_status_code.hxx +258 -0
  746. data/ext/couchbase/couchbase/fmt/mutation_token.hxx +38 -0
  747. data/ext/couchbase/couchbase/fmt/query_scan_consistency.hxx +46 -0
  748. data/ext/couchbase/couchbase/fmt/query_status.hxx +70 -0
  749. data/ext/couchbase/couchbase/fmt/retry_reason.hxx +103 -0
  750. data/ext/couchbase/couchbase/fmt/tls_verify_mode.hxx +46 -0
  751. data/ext/couchbase/couchbase/get_all_query_indexes_options.hxx +100 -0
  752. data/ext/couchbase/couchbase/get_all_replicas_options.hxx +102 -0
  753. data/ext/couchbase/couchbase/get_and_lock_options.hxx +94 -0
  754. data/ext/couchbase/couchbase/get_and_touch_options.hxx +94 -0
  755. data/ext/couchbase/couchbase/get_any_replica_options.hxx +93 -0
  756. data/ext/couchbase/couchbase/get_options.hxx +137 -0
  757. data/ext/couchbase/couchbase/get_replica_result.hxx +117 -0
  758. data/ext/couchbase/couchbase/get_result.hxx +126 -0
  759. data/ext/couchbase/couchbase/increment_options.hxx +166 -0
  760. data/ext/couchbase/couchbase/insert_options.hxx +136 -0
  761. data/ext/couchbase/couchbase/ip_protocol.hxx +27 -0
  762. data/ext/couchbase/couchbase/key_value_error_context.hxx +224 -0
  763. data/ext/couchbase/couchbase/key_value_error_map_attribute.hxx +124 -0
  764. data/ext/couchbase/couchbase/key_value_error_map_info.hxx +138 -0
  765. data/ext/couchbase/couchbase/key_value_extended_error_info.hxx +86 -0
  766. data/ext/couchbase/couchbase/key_value_status_code.hxx +107 -0
  767. data/ext/couchbase/couchbase/lookup_in_options.hxx +119 -0
  768. data/ext/couchbase/couchbase/lookup_in_result.hxx +255 -0
  769. data/ext/couchbase/couchbase/lookup_in_specs.hxx +147 -0
  770. data/ext/couchbase/couchbase/manager_error_context.hxx +136 -0
  771. data/ext/couchbase/couchbase/metrics/meter.hxx +16 -0
  772. data/ext/couchbase/couchbase/metrics/otel_meter.hxx +131 -0
  773. data/ext/couchbase/couchbase/metrics_options.hxx +71 -0
  774. data/ext/couchbase/couchbase/mutate_in_options.hxx +233 -0
  775. data/ext/couchbase/couchbase/mutate_in_result.hxx +173 -0
  776. data/ext/couchbase/couchbase/mutate_in_specs.hxx +528 -0
  777. data/ext/couchbase/couchbase/mutation_result.hxx +73 -0
  778. data/ext/couchbase/couchbase/mutation_state.hxx +73 -0
  779. data/ext/couchbase/couchbase/mutation_token.hxx +93 -6
  780. data/ext/couchbase/couchbase/network_options.hxx +114 -0
  781. data/ext/couchbase/couchbase/password_authenticator.hxx +47 -0
  782. data/ext/couchbase/couchbase/persist_to.hxx +73 -0
  783. data/ext/couchbase/couchbase/prepend_options.hxx +124 -0
  784. data/ext/couchbase/couchbase/query_error_context.hxx +143 -0
  785. data/ext/couchbase/couchbase/query_index_manager.hxx +254 -0
  786. data/ext/couchbase/couchbase/query_meta_data.hxx +171 -0
  787. data/ext/couchbase/couchbase/query_metrics.hxx +179 -0
  788. data/ext/couchbase/couchbase/query_options.hxx +575 -0
  789. data/ext/couchbase/couchbase/query_profile.hxx +52 -0
  790. data/ext/couchbase/couchbase/query_result.hxx +102 -0
  791. data/ext/couchbase/couchbase/query_scan_consistency.hxx +25 -2
  792. data/ext/couchbase/couchbase/query_status.hxx +42 -0
  793. data/ext/couchbase/couchbase/query_warning.hxx +115 -0
  794. data/ext/couchbase/couchbase/remove_options.hxx +123 -0
  795. data/ext/couchbase/couchbase/replace_options.hxx +184 -0
  796. data/ext/couchbase/couchbase/replicate_to.hxx +55 -0
  797. data/ext/couchbase/couchbase/result.hxx +66 -0
  798. data/ext/couchbase/couchbase/retry_action.hxx +41 -0
  799. data/ext/couchbase/couchbase/retry_reason.hxx +107 -0
  800. data/ext/couchbase/couchbase/retry_request.hxx +39 -0
  801. data/ext/couchbase/couchbase/retry_strategy.hxx +35 -0
  802. data/ext/couchbase/couchbase/scope.hxx +149 -0
  803. data/ext/couchbase/couchbase/security_options.hxx +68 -0
  804. data/ext/couchbase/couchbase/store_semantics.hxx +63 -0
  805. data/ext/couchbase/couchbase/subdoc/array_add_unique.hxx +105 -0
  806. data/ext/couchbase/couchbase/subdoc/array_append.hxx +89 -0
  807. data/ext/couchbase/couchbase/subdoc/array_insert.hxx +90 -0
  808. data/ext/couchbase/couchbase/subdoc/array_prepend.hxx +90 -0
  809. data/ext/couchbase/couchbase/subdoc/count.hxx +70 -0
  810. data/ext/couchbase/couchbase/subdoc/counter.hxx +88 -0
  811. data/ext/couchbase/couchbase/subdoc/exists.hxx +70 -0
  812. data/ext/couchbase/couchbase/subdoc/fwd/command.hxx +25 -0
  813. data/ext/couchbase/couchbase/subdoc/fwd/command_bundle.hxx +25 -0
  814. data/ext/couchbase/couchbase/subdoc/get.hxx +78 -0
  815. data/ext/couchbase/couchbase/subdoc/insert.hxx +105 -0
  816. data/ext/couchbase/couchbase/subdoc/lookup_in_macro.hxx +66 -0
  817. data/ext/couchbase/couchbase/subdoc/mutate_in_macro.hxx +54 -0
  818. data/ext/couchbase/couchbase/subdoc/remove.hxx +70 -0
  819. data/ext/couchbase/couchbase/subdoc/replace.hxx +89 -0
  820. data/ext/couchbase/couchbase/subdoc/upsert.hxx +105 -0
  821. data/ext/couchbase/couchbase/subdocument_error_context.hxx +144 -0
  822. data/ext/couchbase/couchbase/timeout_options.hxx +141 -0
  823. data/ext/couchbase/couchbase/tls_verify_mode.hxx +26 -0
  824. data/ext/couchbase/couchbase/touch_options.hxx +94 -0
  825. data/ext/couchbase/couchbase/tracing/otel_tracer.hxx +85 -0
  826. data/ext/couchbase/couchbase/tracing/request_tracer.hxx +17 -2
  827. data/ext/couchbase/couchbase/tracing_options.hxx +174 -0
  828. data/ext/couchbase/couchbase/transaction_error_context.hxx +49 -0
  829. data/ext/couchbase/couchbase/transaction_op_error_context.hxx +76 -0
  830. data/ext/couchbase/couchbase/transactions/async_attempt_context.hxx +78 -0
  831. data/ext/couchbase/couchbase/transactions/attempt_context.hxx +79 -0
  832. data/ext/couchbase/couchbase/transactions/transaction_get_result.hxx +133 -0
  833. data/ext/couchbase/couchbase/transactions/transaction_keyspace.hxx +101 -0
  834. data/ext/couchbase/couchbase/transactions/transaction_options.hxx +115 -0
  835. data/ext/couchbase/couchbase/transactions/transaction_query_options.hxx +159 -0
  836. data/ext/couchbase/couchbase/transactions/transaction_query_result.hxx +36 -0
  837. data/ext/couchbase/couchbase/transactions/transaction_result.hxx +34 -0
  838. data/ext/couchbase/couchbase/transactions/transactions_cleanup_config.hxx +140 -0
  839. data/ext/couchbase/couchbase/transactions/transactions_config.hxx +255 -0
  840. data/ext/couchbase/couchbase/transactions/transactions_query_config.hxx +61 -0
  841. data/ext/couchbase/couchbase/transactions.hxx +43 -0
  842. data/ext/couchbase/couchbase/unlock_options.hxx +97 -0
  843. data/ext/couchbase/couchbase/upsert_options.hxx +158 -0
  844. data/ext/couchbase/couchbase/wan_development_configuration_profile.hxx +44 -0
  845. data/ext/couchbase/couchbase/watch_query_indexes_options.hxx +115 -0
  846. data/ext/couchbase/test/CMakeLists.txt +19 -0
  847. data/ext/couchbase/test/another_simple_object.hxx +50 -0
  848. data/ext/couchbase/test/benchmark_integration_get.cxx +5 -6
  849. data/ext/couchbase/test/profile.hxx +62 -0
  850. data/ext/couchbase/test/simple_object.hxx +53 -0
  851. data/ext/couchbase/test/test_helper.hxx +8 -0
  852. data/ext/couchbase/test/test_helper_integration.hxx +1 -1
  853. data/ext/couchbase/test/test_integration_analytics.cxx +261 -0
  854. data/ext/couchbase/test/test_integration_arithmetic.cxx +119 -20
  855. data/ext/couchbase/test/test_integration_binary_operations.cxx +26 -39
  856. data/ext/couchbase/test/test_integration_collections.cxx +43 -45
  857. data/ext/couchbase/test/test_integration_connect.cxx +35 -25
  858. data/ext/couchbase/test/test_integration_crud.cxx +403 -187
  859. data/ext/couchbase/test/test_integration_diagnostics.cxx +119 -48
  860. data/ext/couchbase/test/test_integration_durability.cxx +171 -26
  861. data/ext/couchbase/test/test_integration_management.cxx +1474 -849
  862. data/ext/couchbase/test/test_integration_meter.cxx +182 -0
  863. data/ext/couchbase/test/test_integration_query.cxx +266 -86
  864. data/ext/couchbase/test/test_integration_range_scan.cxx +1067 -0
  865. data/ext/couchbase/test/test_integration_read_replica.cxx +232 -0
  866. data/ext/couchbase/test/test_integration_subdoc.cxx +337 -306
  867. data/ext/couchbase/test/test_integration_tracer.cxx +306 -0
  868. data/ext/couchbase/test/test_integration_transcoders.cxx +588 -0
  869. data/ext/couchbase/test/test_transaction_transaction_context.cxx +550 -0
  870. data/ext/couchbase/test/test_transaction_transaction_public_async_api.cxx +393 -0
  871. data/ext/couchbase/test/test_transaction_transaction_public_blocking_api.cxx +653 -0
  872. data/ext/couchbase/test/test_transaction_transaction_simple.cxx +899 -0
  873. data/ext/couchbase/test/test_transaction_transaction_simple_async.cxx +972 -0
  874. data/ext/couchbase/test/test_unit_config_profiles.cxx +132 -0
  875. data/ext/couchbase/test/test_unit_connection_string.cxx +170 -165
  876. data/ext/couchbase/test/test_unit_json_streaming_lexer.cxx +129 -9
  877. data/ext/couchbase/test/test_unit_json_transcoder.cxx +212 -0
  878. data/ext/couchbase/test/test_unit_jsonsl.cxx +1 -1
  879. data/ext/couchbase/test/test_unit_options.cxx +57 -0
  880. data/ext/couchbase/test/test_unit_transaction_logging.cxx +130 -0
  881. data/ext/couchbase/test/test_unit_transaction_utils.cxx +261 -0
  882. data/ext/couchbase/test/test_unit_utils.cxx +166 -29
  883. data/ext/couchbase/test/test_unit_waitable_op_list.cxx +132 -0
  884. data/ext/couchbase/third_party/asio/asio/include/asio/any_io_executor.hpp +4 -2
  885. data/ext/couchbase/third_party/asio/asio/include/asio/append.hpp +78 -0
  886. data/ext/couchbase/third_party/asio/asio/include/asio/as_tuple.hpp +139 -0
  887. data/ext/couchbase/third_party/asio/asio/include/asio/associated_allocator.hpp +4 -4
  888. data/ext/couchbase/third_party/asio/asio/include/asio/associated_cancellation_slot.hpp +4 -3
  889. data/ext/couchbase/third_party/asio/asio/include/asio/associated_executor.hpp +4 -4
  890. data/ext/couchbase/third_party/asio/asio/include/asio/associator.hpp +1 -1
  891. data/ext/couchbase/third_party/asio/asio/include/asio/async_result.hpp +357 -1
  892. data/ext/couchbase/third_party/asio/asio/include/asio/awaitable.hpp +10 -1
  893. data/ext/couchbase/third_party/asio/asio/include/asio/basic_datagram_socket.hpp +208 -115
  894. data/ext/couchbase/third_party/asio/asio/include/asio/basic_deadline_timer.hpp +28 -16
  895. data/ext/couchbase/third_party/asio/asio/include/asio/basic_file.hpp +2 -2
  896. data/ext/couchbase/third_party/asio/asio/include/asio/basic_io_object.hpp +1 -1
  897. data/ext/couchbase/third_party/asio/asio/include/asio/basic_random_access_file.hpp +51 -27
  898. data/ext/couchbase/third_party/asio/asio/include/asio/basic_raw_socket.hpp +210 -117
  899. data/ext/couchbase/third_party/asio/asio/include/asio/basic_readable_pipe.hpp +127 -15
  900. data/ext/couchbase/third_party/asio/asio/include/asio/basic_seq_packet_socket.hpp +84 -47
  901. data/ext/couchbase/third_party/asio/asio/include/asio/basic_serial_port.hpp +120 -27
  902. data/ext/couchbase/third_party/asio/asio/include/asio/basic_signal_set.hpp +36 -14
  903. data/ext/couchbase/third_party/asio/asio/include/asio/basic_socket.hpp +50 -26
  904. data/ext/couchbase/third_party/asio/asio/include/asio/basic_socket_acceptor.hpp +295 -150
  905. data/ext/couchbase/third_party/asio/asio/include/asio/basic_socket_iostream.hpp +1 -1
  906. data/ext/couchbase/third_party/asio/asio/include/asio/basic_socket_streambuf.hpp +1 -1
  907. data/ext/couchbase/third_party/asio/asio/include/asio/basic_stream_file.hpp +51 -27
  908. data/ext/couchbase/third_party/asio/asio/include/asio/basic_stream_socket.hpp +153 -84
  909. data/ext/couchbase/third_party/asio/asio/include/asio/basic_streambuf.hpp +1 -1
  910. data/ext/couchbase/third_party/asio/asio/include/asio/basic_streambuf_fwd.hpp +1 -1
  911. data/ext/couchbase/third_party/asio/asio/include/asio/basic_waitable_timer.hpp +28 -16
  912. data/ext/couchbase/third_party/asio/asio/include/asio/basic_writable_pipe.hpp +127 -15
  913. data/ext/couchbase/third_party/asio/asio/include/asio/bind_allocator.hpp +722 -0
  914. data/ext/couchbase/third_party/asio/asio/include/asio/bind_cancellation_slot.hpp +11 -8
  915. data/ext/couchbase/third_party/asio/asio/include/asio/bind_executor.hpp +36 -20
  916. data/ext/couchbase/third_party/asio/asio/include/asio/buffer.hpp +222 -42
  917. data/ext/couchbase/third_party/asio/asio/include/asio/buffer_registration.hpp +2 -1
  918. data/ext/couchbase/third_party/asio/asio/include/asio/buffered_read_stream.hpp +38 -6
  919. data/ext/couchbase/third_party/asio/asio/include/asio/buffered_read_stream_fwd.hpp +1 -1
  920. data/ext/couchbase/third_party/asio/asio/include/asio/buffered_stream.hpp +34 -5
  921. data/ext/couchbase/third_party/asio/asio/include/asio/buffered_stream_fwd.hpp +1 -1
  922. data/ext/couchbase/third_party/asio/asio/include/asio/buffered_write_stream.hpp +38 -6
  923. data/ext/couchbase/third_party/asio/asio/include/asio/buffered_write_stream_fwd.hpp +1 -1
  924. data/ext/couchbase/third_party/asio/asio/include/asio/buffers_iterator.hpp +1 -1
  925. data/ext/couchbase/third_party/asio/asio/include/asio/cancellation_signal.hpp +1 -1
  926. data/ext/couchbase/third_party/asio/asio/include/asio/cancellation_state.hpp +1 -1
  927. data/ext/couchbase/third_party/asio/asio/include/asio/cancellation_type.hpp +1 -1
  928. data/ext/couchbase/third_party/asio/asio/include/asio/co_spawn.hpp +33 -9
  929. data/ext/couchbase/third_party/asio/asio/include/asio/completion_condition.hpp +1 -1
  930. data/ext/couchbase/third_party/asio/asio/include/asio/compose.hpp +682 -12
  931. data/ext/couchbase/third_party/asio/asio/include/asio/connect.hpp +132 -61
  932. data/ext/couchbase/third_party/asio/asio/include/asio/connect_pipe.hpp +1 -1
  933. data/ext/couchbase/third_party/asio/asio/include/asio/coroutine.hpp +1 -1
  934. data/ext/couchbase/third_party/asio/asio/include/asio/deadline_timer.hpp +1 -1
  935. data/ext/couchbase/third_party/asio/asio/include/asio/defer.hpp +128 -42
  936. data/ext/couchbase/third_party/asio/asio/include/asio/deferred.hpp +675 -0
  937. data/ext/couchbase/third_party/asio/asio/include/asio/detached.hpp +6 -5
  938. data/ext/couchbase/third_party/asio/asio/include/asio/detail/array.hpp +1 -1
  939. data/ext/couchbase/third_party/asio/asio/include/asio/detail/array_fwd.hpp +1 -1
  940. data/ext/couchbase/third_party/asio/asio/include/asio/detail/assert.hpp +1 -1
  941. data/ext/couchbase/third_party/asio/asio/include/asio/detail/atomic_count.hpp +1 -1
  942. data/ext/couchbase/third_party/asio/asio/include/asio/detail/base_from_cancellation_state.hpp +1 -1
  943. data/ext/couchbase/third_party/asio/asio/include/asio/detail/base_from_completion_cond.hpp +1 -1
  944. data/ext/couchbase/third_party/asio/asio/include/asio/detail/bind_handler.hpp +1 -1
  945. data/ext/couchbase/third_party/asio/asio/include/asio/detail/blocking_executor_op.hpp +1 -1
  946. data/ext/couchbase/third_party/asio/asio/include/asio/detail/buffer_resize_guard.hpp +1 -1
  947. data/ext/couchbase/third_party/asio/asio/include/asio/detail/buffer_sequence_adapter.hpp +1 -1
  948. data/ext/couchbase/third_party/asio/asio/include/asio/detail/buffered_stream_storage.hpp +1 -1
  949. data/ext/couchbase/third_party/asio/asio/include/asio/detail/bulk_executor_op.hpp +1 -1
  950. data/ext/couchbase/third_party/asio/asio/include/asio/detail/call_stack.hpp +1 -1
  951. data/ext/couchbase/third_party/asio/asio/include/asio/detail/chrono.hpp +1 -1
  952. data/ext/couchbase/third_party/asio/asio/include/asio/detail/chrono_time_traits.hpp +1 -1
  953. data/ext/couchbase/third_party/asio/asio/include/asio/detail/completion_handler.hpp +1 -1
  954. data/ext/couchbase/third_party/asio/asio/include/asio/detail/concurrency_hint.hpp +1 -1
  955. data/ext/couchbase/third_party/asio/asio/include/asio/detail/conditionally_enabled_event.hpp +1 -1
  956. data/ext/couchbase/third_party/asio/asio/include/asio/detail/conditionally_enabled_mutex.hpp +1 -1
  957. data/ext/couchbase/third_party/asio/asio/include/asio/detail/config.hpp +201 -11
  958. data/ext/couchbase/third_party/asio/asio/include/asio/detail/consuming_buffers.hpp +1 -1
  959. data/ext/couchbase/third_party/asio/asio/include/asio/detail/cstddef.hpp +1 -1
  960. data/ext/couchbase/third_party/asio/asio/include/asio/detail/cstdint.hpp +1 -1
  961. data/ext/couchbase/third_party/asio/asio/include/asio/detail/date_time_fwd.hpp +1 -1
  962. data/ext/couchbase/third_party/asio/asio/include/asio/detail/deadline_timer_service.hpp +1 -1
  963. data/ext/couchbase/third_party/asio/asio/include/asio/detail/dependent_type.hpp +1 -1
  964. data/ext/couchbase/third_party/asio/asio/include/asio/detail/descriptor_ops.hpp +2 -2
  965. data/ext/couchbase/third_party/asio/asio/include/asio/detail/descriptor_read_op.hpp +3 -1
  966. data/ext/couchbase/third_party/asio/asio/include/asio/detail/descriptor_write_op.hpp +3 -1
  967. data/ext/couchbase/third_party/asio/asio/include/asio/detail/dev_poll_reactor.hpp +1 -1
  968. data/ext/couchbase/third_party/asio/asio/include/asio/detail/epoll_reactor.hpp +1 -1
  969. data/ext/couchbase/third_party/asio/asio/include/asio/detail/event.hpp +1 -1
  970. data/ext/couchbase/third_party/asio/asio/include/asio/detail/eventfd_select_interrupter.hpp +1 -1
  971. data/ext/couchbase/third_party/asio/asio/include/asio/detail/exception.hpp +40 -0
  972. data/ext/couchbase/third_party/asio/asio/include/asio/detail/executor_function.hpp +1 -1
  973. data/ext/couchbase/third_party/asio/asio/include/asio/detail/executor_op.hpp +1 -1
  974. data/ext/couchbase/third_party/asio/asio/include/asio/detail/fd_set_adapter.hpp +1 -1
  975. data/ext/couchbase/third_party/asio/asio/include/asio/detail/fenced_block.hpp +1 -1
  976. data/ext/couchbase/third_party/asio/asio/include/asio/detail/functional.hpp +1 -1
  977. data/ext/couchbase/third_party/asio/asio/include/asio/detail/future.hpp +1 -1
  978. data/ext/couchbase/third_party/asio/asio/include/asio/detail/gcc_arm_fenced_block.hpp +1 -1
  979. data/ext/couchbase/third_party/asio/asio/include/asio/detail/gcc_hppa_fenced_block.hpp +1 -1
  980. data/ext/couchbase/third_party/asio/asio/include/asio/detail/gcc_sync_fenced_block.hpp +1 -1
  981. data/ext/couchbase/third_party/asio/asio/include/asio/detail/gcc_x86_fenced_block.hpp +2 -2
  982. data/ext/couchbase/third_party/asio/asio/include/asio/detail/global.hpp +1 -1
  983. data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_alloc_helpers.hpp +1 -1
  984. data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_cont_helpers.hpp +1 -1
  985. data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_invoke_helpers.hpp +1 -1
  986. data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_tracking.hpp +1 -1
  987. data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_type_requirements.hpp +1 -1
  988. data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_work.hpp +1 -1
  989. data/ext/couchbase/third_party/asio/asio/include/asio/detail/hash_map.hpp +1 -1
  990. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp +1 -1
  991. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/descriptor_ops.ipp +9 -9
  992. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.hpp +1 -1
  993. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.ipp +1 -1
  994. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.hpp +1 -1
  995. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.ipp +1 -1
  996. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp +1 -1
  997. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/handler_tracking.ipp +1 -1
  998. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_descriptor_service.ipp +4 -1
  999. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_file_service.ipp +10 -1
  1000. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_service.hpp +1 -1
  1001. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_service.ipp +8 -7
  1002. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_socket_service_base.ipp +1 -1
  1003. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.hpp +1 -1
  1004. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.ipp +1 -1
  1005. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/null_event.ipp +1 -1
  1006. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/pipe_select_interrupter.ipp +1 -1
  1007. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_event.ipp +1 -1
  1008. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_mutex.ipp +1 -1
  1009. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_serial_port_service.ipp +21 -2
  1010. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_thread.ipp +1 -1
  1011. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_tss_ptr.ipp +1 -1
  1012. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/reactive_descriptor_service.ipp +6 -1
  1013. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/reactive_socket_service_base.ipp +3 -3
  1014. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/resolver_service_base.ipp +1 -1
  1015. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/scheduler.ipp +1 -1
  1016. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/select_reactor.hpp +1 -1
  1017. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/select_reactor.ipp +36 -1
  1018. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/service_registry.hpp +1 -1
  1019. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/service_registry.ipp +1 -1
  1020. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/signal_set_service.ipp +28 -1
  1021. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/socket_ops.ipp +126 -121
  1022. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/socket_select_interrupter.ipp +4 -4
  1023. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.hpp +1 -1
  1024. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.ipp +1 -1
  1025. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/strand_service.hpp +1 -1
  1026. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/strand_service.ipp +1 -1
  1027. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/thread_context.ipp +1 -1
  1028. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/throw_error.ipp +13 -9
  1029. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/timer_queue_ptime.ipp +1 -1
  1030. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/timer_queue_set.ipp +1 -1
  1031. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_event.ipp +1 -1
  1032. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_file_service.ipp +21 -7
  1033. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_handle_service.ipp +94 -1
  1034. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.hpp +1 -1
  1035. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.ipp +1 -1
  1036. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp +9 -1
  1037. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp +11 -11
  1038. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_mutex.ipp +1 -1
  1039. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_object_handle_service.ipp +5 -1
  1040. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_static_mutex.ipp +1 -1
  1041. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_thread.ipp +1 -1
  1042. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_tss_ptr.ipp +1 -1
  1043. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp +4 -4
  1044. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp +1 -1
  1045. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp +1 -1
  1046. data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/winsock_init.ipp +1 -1
  1047. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_control.hpp +1 -1
  1048. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_object_impl.hpp +11 -2
  1049. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_read_at_op.hpp +3 -1
  1050. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_read_op.hpp +3 -1
  1051. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_service.hpp +26 -8
  1052. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_write_at_op.hpp +3 -1
  1053. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_write_op.hpp +3 -1
  1054. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_file_service.hpp +12 -1
  1055. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_null_buffers_op.hpp +3 -1
  1056. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_operation.hpp +1 -1
  1057. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_service.hpp +2 -2
  1058. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_accept_op.hpp +5 -1
  1059. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_connect_op.hpp +3 -1
  1060. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_recv_op.hpp +3 -1
  1061. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_recvfrom_op.hpp +4 -2
  1062. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_recvmsg_op.hpp +3 -1
  1063. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_send_op.hpp +3 -1
  1064. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_sendto_op.hpp +3 -1
  1065. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_service.hpp +31 -13
  1066. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_service_base.hpp +1 -1
  1067. data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_wait_op.hpp +3 -1
  1068. data/ext/couchbase/third_party/asio/asio/include/asio/detail/is_buffer_sequence.hpp +1 -1
  1069. data/ext/couchbase/third_party/asio/asio/include/asio/detail/is_executor.hpp +1 -1
  1070. data/ext/couchbase/third_party/asio/asio/include/asio/detail/keyword_tss_ptr.hpp +1 -1
  1071. data/ext/couchbase/third_party/asio/asio/include/asio/detail/kqueue_reactor.hpp +1 -1
  1072. data/ext/couchbase/third_party/asio/asio/include/asio/detail/local_free_on_block_exit.hpp +1 -1
  1073. data/ext/couchbase/third_party/asio/asio/include/asio/detail/macos_fenced_block.hpp +1 -1
  1074. data/ext/couchbase/third_party/asio/asio/include/asio/detail/memory.hpp +17 -1
  1075. data/ext/couchbase/third_party/asio/asio/include/asio/detail/mutex.hpp +1 -1
  1076. data/ext/couchbase/third_party/asio/asio/include/asio/detail/non_const_lvalue.hpp +1 -1
  1077. data/ext/couchbase/third_party/asio/asio/include/asio/detail/noncopyable.hpp +1 -1
  1078. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_event.hpp +1 -1
  1079. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_fenced_block.hpp +1 -1
  1080. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_global.hpp +1 -1
  1081. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_mutex.hpp +1 -1
  1082. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_reactor.hpp +1 -1
  1083. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_signal_blocker.hpp +1 -1
  1084. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_socket_service.hpp +1 -1
  1085. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_static_mutex.hpp +1 -1
  1086. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_thread.hpp +1 -1
  1087. data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_tss_ptr.hpp +1 -1
  1088. data/ext/couchbase/third_party/asio/asio/include/asio/detail/object_pool.hpp +1 -1
  1089. data/ext/couchbase/third_party/asio/asio/include/asio/detail/old_win_sdk_compat.hpp +1 -1
  1090. data/ext/couchbase/third_party/asio/asio/include/asio/detail/op_queue.hpp +1 -1
  1091. data/ext/couchbase/third_party/asio/asio/include/asio/detail/operation.hpp +1 -1
  1092. data/ext/couchbase/third_party/asio/asio/include/asio/detail/pipe_select_interrupter.hpp +1 -1
  1093. data/ext/couchbase/third_party/asio/asio/include/asio/detail/pop_options.hpp +5 -1
  1094. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_event.hpp +1 -1
  1095. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_fd_set_adapter.hpp +1 -1
  1096. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_global.hpp +1 -1
  1097. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_mutex.hpp +1 -1
  1098. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_serial_port_service.hpp +2 -1
  1099. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_signal_blocker.hpp +1 -1
  1100. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_static_mutex.hpp +1 -1
  1101. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_thread.hpp +1 -1
  1102. data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_tss_ptr.hpp +1 -1
  1103. data/ext/couchbase/third_party/asio/asio/include/asio/detail/push_options.hpp +11 -2
  1104. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_descriptor_service.hpp +26 -7
  1105. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_null_buffers_op.hpp +1 -1
  1106. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_accept_op.hpp +5 -1
  1107. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_connect_op.hpp +3 -1
  1108. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_recv_op.hpp +3 -1
  1109. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +3 -1
  1110. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +3 -1
  1111. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_send_op.hpp +3 -1
  1112. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_sendto_op.hpp +3 -1
  1113. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_service.hpp +38 -12
  1114. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_service_base.hpp +2 -3
  1115. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_wait_op.hpp +1 -1
  1116. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactor.hpp +1 -1
  1117. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactor_op.hpp +1 -1
  1118. data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactor_op_queue.hpp +1 -1
  1119. data/ext/couchbase/third_party/asio/asio/include/asio/detail/recycling_allocator.hpp +1 -1
  1120. data/ext/couchbase/third_party/asio/asio/include/asio/detail/regex_fwd.hpp +1 -1
  1121. data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolve_endpoint_op.hpp +1 -1
  1122. data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolve_op.hpp +1 -1
  1123. data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolve_query_op.hpp +1 -1
  1124. data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolver_service.hpp +3 -1
  1125. data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolver_service_base.hpp +1 -1
  1126. data/ext/couchbase/third_party/asio/asio/include/asio/detail/scheduler.hpp +1 -1
  1127. data/ext/couchbase/third_party/asio/asio/include/asio/detail/scheduler_operation.hpp +1 -1
  1128. data/ext/couchbase/third_party/asio/asio/include/asio/detail/scheduler_task.hpp +1 -1
  1129. data/ext/couchbase/third_party/asio/asio/include/asio/detail/scheduler_thread_info.hpp +1 -1
  1130. data/ext/couchbase/third_party/asio/asio/include/asio/detail/scoped_lock.hpp +1 -1
  1131. data/ext/couchbase/third_party/asio/asio/include/asio/detail/scoped_ptr.hpp +1 -1
  1132. data/ext/couchbase/third_party/asio/asio/include/asio/detail/select_interrupter.hpp +1 -1
  1133. data/ext/couchbase/third_party/asio/asio/include/asio/detail/select_reactor.hpp +23 -1
  1134. data/ext/couchbase/third_party/asio/asio/include/asio/detail/service_registry.hpp +1 -1
  1135. data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_blocker.hpp +1 -1
  1136. data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_handler.hpp +1 -1
  1137. data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_init.hpp +1 -1
  1138. data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_op.hpp +5 -1
  1139. data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_set_service.hpp +43 -1
  1140. data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_holder.hpp +1 -1
  1141. data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_ops.hpp +37 -45
  1142. data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_option.hpp +1 -1
  1143. data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_select_interrupter.hpp +1 -1
  1144. data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_types.hpp +1 -1
  1145. data/ext/couchbase/third_party/asio/asio/include/asio/detail/solaris_fenced_block.hpp +1 -1
  1146. data/ext/couchbase/third_party/asio/asio/include/asio/detail/source_location.hpp +1 -1
  1147. data/ext/couchbase/third_party/asio/asio/include/asio/detail/static_mutex.hpp +1 -1
  1148. data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_event.hpp +1 -1
  1149. data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_fenced_block.hpp +1 -1
  1150. data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_global.hpp +1 -1
  1151. data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_mutex.hpp +1 -1
  1152. data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_static_mutex.hpp +1 -1
  1153. data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_thread.hpp +1 -1
  1154. data/ext/couchbase/third_party/asio/asio/include/asio/detail/strand_executor_service.hpp +1 -1
  1155. data/ext/couchbase/third_party/asio/asio/include/asio/detail/strand_service.hpp +1 -1
  1156. data/ext/couchbase/third_party/asio/asio/include/asio/detail/string_view.hpp +1 -1
  1157. data/ext/couchbase/third_party/asio/asio/include/asio/detail/thread.hpp +1 -1
  1158. data/ext/couchbase/third_party/asio/asio/include/asio/detail/thread_context.hpp +1 -1
  1159. data/ext/couchbase/third_party/asio/asio/include/asio/detail/thread_group.hpp +1 -1
  1160. data/ext/couchbase/third_party/asio/asio/include/asio/detail/thread_info_base.hpp +1 -1
  1161. data/ext/couchbase/third_party/asio/asio/include/asio/detail/throw_error.hpp +18 -9
  1162. data/ext/couchbase/third_party/asio/asio/include/asio/detail/throw_exception.hpp +7 -3
  1163. data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_queue.hpp +1 -1
  1164. data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_queue_base.hpp +1 -1
  1165. data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_queue_ptime.hpp +1 -1
  1166. data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_queue_set.hpp +1 -1
  1167. data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_scheduler.hpp +1 -1
  1168. data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_scheduler_fwd.hpp +1 -1
  1169. data/ext/couchbase/third_party/asio/asio/include/asio/detail/tss_ptr.hpp +1 -1
  1170. data/ext/couchbase/third_party/asio/asio/include/asio/detail/type_traits.hpp +9 -1
  1171. data/ext/couchbase/third_party/asio/asio/include/asio/detail/utility.hpp +84 -0
  1172. data/ext/couchbase/third_party/asio/asio/include/asio/detail/variadic_templates.hpp +1 -1
  1173. data/ext/couchbase/third_party/asio/asio/include/asio/detail/wait_handler.hpp +1 -1
  1174. data/ext/couchbase/third_party/asio/asio/include/asio/detail/wait_op.hpp +1 -1
  1175. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_event.hpp +1 -1
  1176. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_fd_set_adapter.hpp +1 -1
  1177. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_fenced_block.hpp +1 -1
  1178. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_global.hpp +1 -1
  1179. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_file_service.hpp +8 -1
  1180. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_handle_read_op.hpp +3 -1
  1181. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_handle_service.hpp +29 -1
  1182. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_handle_write_op.hpp +6 -2
  1183. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_io_context.hpp +1 -1
  1184. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +3 -1
  1185. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_operation.hpp +1 -1
  1186. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_op.hpp +6 -2
  1187. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +1 -1
  1188. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_serial_port_service.hpp +2 -1
  1189. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +5 -1
  1190. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +3 -1
  1191. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +3 -1
  1192. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +3 -1
  1193. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +3 -1
  1194. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_send_op.hpp +3 -1
  1195. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_service.hpp +32 -8
  1196. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_service_base.hpp +6 -8
  1197. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_thread_info.hpp +1 -1
  1198. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_wait_op.hpp +3 -1
  1199. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_mutex.hpp +1 -1
  1200. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_object_handle_service.hpp +1 -1
  1201. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_static_mutex.hpp +1 -1
  1202. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_thread.hpp +1 -1
  1203. data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_tss_ptr.hpp +1 -1
  1204. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winapp_thread.hpp +1 -1
  1205. data/ext/couchbase/third_party/asio/asio/include/asio/detail/wince_thread.hpp +1 -1
  1206. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_async_manager.hpp +1 -1
  1207. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_async_op.hpp +1 -1
  1208. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_resolve_op.hpp +1 -1
  1209. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_resolver_service.hpp +1 -1
  1210. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_socket_connect_op.hpp +1 -1
  1211. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_socket_recv_op.hpp +1 -1
  1212. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_socket_send_op.hpp +1 -1
  1213. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_ssocket_service.hpp +1 -1
  1214. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_ssocket_service_base.hpp +1 -1
  1215. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_timer_scheduler.hpp +1 -1
  1216. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_utils.hpp +1 -1
  1217. data/ext/couchbase/third_party/asio/asio/include/asio/detail/winsock_init.hpp +1 -1
  1218. data/ext/couchbase/third_party/asio/asio/include/asio/detail/work_dispatcher.hpp +4 -2
  1219. data/ext/couchbase/third_party/asio/asio/include/asio/detail/wrapped_handler.hpp +1 -1
  1220. data/ext/couchbase/third_party/asio/asio/include/asio/dispatch.hpp +126 -42
  1221. data/ext/couchbase/third_party/asio/asio/include/asio/error.hpp +36 -1
  1222. data/ext/couchbase/third_party/asio/asio/include/asio/error_code.hpp +1 -1
  1223. data/ext/couchbase/third_party/asio/asio/include/asio/execution/allocator.hpp +1 -1
  1224. data/ext/couchbase/third_party/asio/asio/include/asio/execution/any_executor.hpp +1 -1
  1225. data/ext/couchbase/third_party/asio/asio/include/asio/execution/bad_executor.hpp +1 -1
  1226. data/ext/couchbase/third_party/asio/asio/include/asio/execution/blocking.hpp +1 -1
  1227. data/ext/couchbase/third_party/asio/asio/include/asio/execution/blocking_adaptation.hpp +1 -1
  1228. data/ext/couchbase/third_party/asio/asio/include/asio/execution/bulk_execute.hpp +1 -1
  1229. data/ext/couchbase/third_party/asio/asio/include/asio/execution/bulk_guarantee.hpp +1 -1
  1230. data/ext/couchbase/third_party/asio/asio/include/asio/execution/connect.hpp +1 -1
  1231. data/ext/couchbase/third_party/asio/asio/include/asio/execution/context.hpp +1 -1
  1232. data/ext/couchbase/third_party/asio/asio/include/asio/execution/context_as.hpp +1 -1
  1233. data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/as_invocable.hpp +1 -1
  1234. data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/as_operation.hpp +1 -1
  1235. data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/as_receiver.hpp +1 -1
  1236. data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/bulk_sender.hpp +1 -1
  1237. data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/submit_receiver.hpp +1 -1
  1238. data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/void_receiver.hpp +1 -1
  1239. data/ext/couchbase/third_party/asio/asio/include/asio/execution/execute.hpp +1 -1
  1240. data/ext/couchbase/third_party/asio/asio/include/asio/execution/executor.hpp +1 -1
  1241. data/ext/couchbase/third_party/asio/asio/include/asio/execution/impl/bad_executor.ipp +1 -1
  1242. data/ext/couchbase/third_party/asio/asio/include/asio/execution/impl/receiver_invocation_error.ipp +1 -1
  1243. data/ext/couchbase/third_party/asio/asio/include/asio/execution/invocable_archetype.hpp +1 -1
  1244. data/ext/couchbase/third_party/asio/asio/include/asio/execution/mapping.hpp +1 -1
  1245. data/ext/couchbase/third_party/asio/asio/include/asio/execution/occupancy.hpp +1 -1
  1246. data/ext/couchbase/third_party/asio/asio/include/asio/execution/operation_state.hpp +1 -1
  1247. data/ext/couchbase/third_party/asio/asio/include/asio/execution/outstanding_work.hpp +1 -1
  1248. data/ext/couchbase/third_party/asio/asio/include/asio/execution/prefer_only.hpp +1 -1
  1249. data/ext/couchbase/third_party/asio/asio/include/asio/execution/receiver.hpp +1 -1
  1250. data/ext/couchbase/third_party/asio/asio/include/asio/execution/receiver_invocation_error.hpp +1 -1
  1251. data/ext/couchbase/third_party/asio/asio/include/asio/execution/relationship.hpp +1 -1
  1252. data/ext/couchbase/third_party/asio/asio/include/asio/execution/schedule.hpp +1 -1
  1253. data/ext/couchbase/third_party/asio/asio/include/asio/execution/scheduler.hpp +1 -1
  1254. data/ext/couchbase/third_party/asio/asio/include/asio/execution/sender.hpp +1 -1
  1255. data/ext/couchbase/third_party/asio/asio/include/asio/execution/set_done.hpp +1 -1
  1256. data/ext/couchbase/third_party/asio/asio/include/asio/execution/set_error.hpp +1 -1
  1257. data/ext/couchbase/third_party/asio/asio/include/asio/execution/set_value.hpp +1 -1
  1258. data/ext/couchbase/third_party/asio/asio/include/asio/execution/start.hpp +1 -1
  1259. data/ext/couchbase/third_party/asio/asio/include/asio/execution/submit.hpp +1 -1
  1260. data/ext/couchbase/third_party/asio/asio/include/asio/execution.hpp +1 -1
  1261. data/ext/couchbase/third_party/asio/asio/include/asio/execution_context.hpp +1 -1
  1262. data/ext/couchbase/third_party/asio/asio/include/asio/executor.hpp +1 -1
  1263. data/ext/couchbase/third_party/asio/asio/include/asio/executor_work_guard.hpp +100 -32
  1264. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/append.hpp +6 -41
  1265. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/as_single.hpp +6 -5
  1266. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/as_tuple.hpp +6 -101
  1267. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/awaitable_operators.hpp +14 -14
  1268. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/basic_channel.hpp +78 -2
  1269. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/basic_concurrent_channel.hpp +69 -2
  1270. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/cancellation_condition.hpp +1 -1
  1271. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/channel.hpp +1 -1
  1272. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/channel_error.hpp +1 -1
  1273. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/channel_traits.hpp +1 -1
  1274. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/co_spawn.hpp +12 -16
  1275. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/concurrent_channel.hpp +1 -1
  1276. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/coro.hpp +4 -4
  1277. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/coro_traits.hpp +2 -2
  1278. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/deferred.hpp +6 -575
  1279. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_handler.hpp +1 -1
  1280. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_message.hpp +1 -1
  1281. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_operation.hpp +1 -1
  1282. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_payload.hpp +1 -1
  1283. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_receive_op.hpp +1 -1
  1284. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_send_functions.hpp +2 -1
  1285. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_send_op.hpp +1 -1
  1286. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_service.hpp +1 -1
  1287. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/completion_handler_erasure.hpp +82 -46
  1288. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/coro_promise_allocator.hpp +2 -2
  1289. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/has_signature.hpp +1 -1
  1290. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/impl/channel_service.hpp +6 -8
  1291. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/partial_promise.hpp +2 -2
  1292. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/as_single.hpp +1 -1
  1293. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/channel_error.ipp +1 -1
  1294. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/coro.hpp +47 -56
  1295. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/parallel_group.hpp +14 -28
  1296. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/promise.hpp +2 -2
  1297. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/use_coro.hpp +3 -2
  1298. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/parallel_group.hpp +27 -37
  1299. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/prepend.hpp +6 -41
  1300. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/promise.hpp +23 -405
  1301. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/use_coro.hpp +5 -5
  1302. data/ext/couchbase/third_party/asio/asio/include/asio/file_base.hpp +9 -3
  1303. data/ext/couchbase/third_party/asio/asio/include/asio/generic/basic_endpoint.hpp +1 -1
  1304. data/ext/couchbase/third_party/asio/asio/include/asio/generic/datagram_protocol.hpp +1 -1
  1305. data/ext/couchbase/third_party/asio/asio/include/asio/generic/detail/endpoint.hpp +1 -1
  1306. data/ext/couchbase/third_party/asio/asio/include/asio/generic/detail/impl/endpoint.ipp +1 -1
  1307. data/ext/couchbase/third_party/asio/asio/include/asio/generic/raw_protocol.hpp +1 -1
  1308. data/ext/couchbase/third_party/asio/asio/include/asio/generic/seq_packet_protocol.hpp +1 -1
  1309. data/ext/couchbase/third_party/asio/asio/include/asio/generic/stream_protocol.hpp +1 -1
  1310. data/ext/couchbase/third_party/asio/asio/include/asio/handler_alloc_hook.hpp +1 -1
  1311. data/ext/couchbase/third_party/asio/asio/include/asio/handler_continuation_hook.hpp +1 -1
  1312. data/ext/couchbase/third_party/asio/asio/include/asio/handler_invoke_hook.hpp +1 -1
  1313. data/ext/couchbase/third_party/asio/asio/include/asio/high_resolution_timer.hpp +1 -1
  1314. data/ext/couchbase/third_party/asio/asio/include/asio/impl/any_io_executor.ipp +6 -1
  1315. data/ext/couchbase/third_party/asio/asio/include/asio/impl/append.hpp +216 -0
  1316. data/ext/couchbase/third_party/asio/asio/include/asio/impl/as_tuple.hpp +244 -0
  1317. data/ext/couchbase/third_party/asio/asio/include/asio/impl/awaitable.hpp +400 -5
  1318. data/ext/couchbase/third_party/asio/asio/include/asio/impl/buffered_read_stream.hpp +13 -3
  1319. data/ext/couchbase/third_party/asio/asio/include/asio/impl/buffered_write_stream.hpp +13 -3
  1320. data/ext/couchbase/third_party/asio/asio/include/asio/impl/cancellation_signal.ipp +1 -1
  1321. data/ext/couchbase/third_party/asio/asio/include/asio/impl/co_spawn.hpp +71 -7
  1322. data/ext/couchbase/third_party/asio/asio/include/asio/impl/connect.hpp +63 -31
  1323. data/ext/couchbase/third_party/asio/asio/include/asio/impl/connect_pipe.hpp +1 -1
  1324. data/ext/couchbase/third_party/asio/asio/include/asio/impl/connect_pipe.ipp +2 -2
  1325. data/ext/couchbase/third_party/asio/asio/include/asio/impl/defer.hpp +23 -13
  1326. data/ext/couchbase/third_party/asio/asio/include/asio/impl/deferred.hpp +95 -0
  1327. data/ext/couchbase/third_party/asio/asio/include/asio/impl/detached.hpp +1 -1
  1328. data/ext/couchbase/third_party/asio/asio/include/asio/impl/dispatch.hpp +23 -13
  1329. data/ext/couchbase/third_party/asio/asio/include/asio/impl/error.ipp +1 -1
  1330. data/ext/couchbase/third_party/asio/asio/include/asio/impl/error_code.ipp +1 -1
  1331. data/ext/couchbase/third_party/asio/asio/include/asio/impl/execution_context.hpp +1 -1
  1332. data/ext/couchbase/third_party/asio/asio/include/asio/impl/execution_context.ipp +1 -1
  1333. data/ext/couchbase/third_party/asio/asio/include/asio/impl/executor.hpp +1 -1
  1334. data/ext/couchbase/third_party/asio/asio/include/asio/impl/executor.ipp +1 -1
  1335. data/ext/couchbase/third_party/asio/asio/include/asio/impl/handler_alloc_hook.ipp +1 -1
  1336. data/ext/couchbase/third_party/asio/asio/include/asio/impl/io_context.hpp +9 -3
  1337. data/ext/couchbase/third_party/asio/asio/include/asio/impl/io_context.ipp +1 -1
  1338. data/ext/couchbase/third_party/asio/asio/include/asio/impl/multiple_exceptions.ipp +1 -1
  1339. data/ext/couchbase/third_party/asio/asio/include/asio/impl/post.hpp +23 -13
  1340. data/ext/couchbase/third_party/asio/asio/include/asio/impl/prepend.hpp +216 -0
  1341. data/ext/couchbase/third_party/asio/asio/include/asio/impl/read.hpp +97 -51
  1342. data/ext/couchbase/third_party/asio/asio/include/asio/impl/read_at.hpp +51 -31
  1343. data/ext/couchbase/third_party/asio/asio/include/asio/impl/read_until.hpp +119 -59
  1344. data/ext/couchbase/third_party/asio/asio/include/asio/impl/redirect_error.hpp +1 -1
  1345. data/ext/couchbase/third_party/asio/asio/include/asio/impl/serial_port_base.hpp +1 -1
  1346. data/ext/couchbase/third_party/asio/asio/include/asio/impl/serial_port_base.ipp +1 -1
  1347. data/ext/couchbase/third_party/asio/asio/include/asio/impl/spawn.hpp +1321 -277
  1348. data/ext/couchbase/third_party/asio/asio/include/asio/impl/src.hpp +1 -1
  1349. data/ext/couchbase/third_party/asio/asio/include/asio/impl/system_context.hpp +1 -1
  1350. data/ext/couchbase/third_party/asio/asio/include/asio/impl/system_context.ipp +1 -1
  1351. data/ext/couchbase/third_party/asio/asio/include/asio/impl/system_executor.hpp +1 -1
  1352. data/ext/couchbase/third_party/asio/asio/include/asio/impl/thread_pool.hpp +1 -1
  1353. data/ext/couchbase/third_party/asio/asio/include/asio/impl/thread_pool.ipp +1 -1
  1354. data/ext/couchbase/third_party/asio/asio/include/asio/impl/use_awaitable.hpp +18 -8
  1355. data/ext/couchbase/third_party/asio/asio/include/asio/impl/use_future.hpp +1 -1
  1356. data/ext/couchbase/third_party/asio/asio/include/asio/impl/write.hpp +95 -50
  1357. data/ext/couchbase/third_party/asio/asio/include/asio/impl/write_at.hpp +53 -31
  1358. data/ext/couchbase/third_party/asio/asio/include/asio/io_context.hpp +25 -38
  1359. data/ext/couchbase/third_party/asio/asio/include/asio/io_context_strand.hpp +15 -3
  1360. data/ext/couchbase/third_party/asio/asio/include/asio/io_service.hpp +1 -1
  1361. data/ext/couchbase/third_party/asio/asio/include/asio/io_service_strand.hpp +1 -1
  1362. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address.hpp +1 -1
  1363. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v4.hpp +75 -1
  1364. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v4_iterator.hpp +1 -1
  1365. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v4_range.hpp +1 -1
  1366. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v6.hpp +35 -1
  1367. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v6_iterator.hpp +1 -1
  1368. data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v6_range.hpp +1 -1
  1369. data/ext/couchbase/third_party/asio/asio/include/asio/ip/bad_address_cast.hpp +1 -1
  1370. data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_endpoint.hpp +1 -1
  1371. data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver.hpp +130 -64
  1372. data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver_entry.hpp +1 -1
  1373. data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver_iterator.hpp +1 -1
  1374. data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver_query.hpp +1 -1
  1375. data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver_results.hpp +1 -1
  1376. data/ext/couchbase/third_party/asio/asio/include/asio/ip/detail/endpoint.hpp +1 -1
  1377. data/ext/couchbase/third_party/asio/asio/include/asio/ip/detail/impl/endpoint.ipp +1 -1
  1378. data/ext/couchbase/third_party/asio/asio/include/asio/ip/detail/socket_option.hpp +1 -1
  1379. data/ext/couchbase/third_party/asio/asio/include/asio/ip/host_name.hpp +1 -1
  1380. data/ext/couchbase/third_party/asio/asio/include/asio/ip/icmp.hpp +1 -1
  1381. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address.hpp +1 -1
  1382. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address.ipp +1 -1
  1383. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address_v4.hpp +1 -1
  1384. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address_v4.ipp +1 -1
  1385. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address_v6.hpp +1 -1
  1386. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address_v6.ipp +1 -1
  1387. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/basic_endpoint.hpp +1 -1
  1388. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/host_name.ipp +1 -1
  1389. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/network_v4.hpp +1 -1
  1390. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/network_v4.ipp +1 -1
  1391. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/network_v6.hpp +1 -1
  1392. data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/network_v6.ipp +1 -1
  1393. data/ext/couchbase/third_party/asio/asio/include/asio/ip/multicast.hpp +1 -1
  1394. data/ext/couchbase/third_party/asio/asio/include/asio/ip/network_v4.hpp +1 -1
  1395. data/ext/couchbase/third_party/asio/asio/include/asio/ip/network_v6.hpp +1 -1
  1396. data/ext/couchbase/third_party/asio/asio/include/asio/ip/resolver_base.hpp +1 -1
  1397. data/ext/couchbase/third_party/asio/asio/include/asio/ip/resolver_query_base.hpp +1 -1
  1398. data/ext/couchbase/third_party/asio/asio/include/asio/ip/tcp.hpp +1 -1
  1399. data/ext/couchbase/third_party/asio/asio/include/asio/ip/udp.hpp +1 -1
  1400. data/ext/couchbase/third_party/asio/asio/include/asio/ip/unicast.hpp +1 -1
  1401. data/ext/couchbase/third_party/asio/asio/include/asio/ip/v6_only.hpp +2 -2
  1402. data/ext/couchbase/third_party/asio/asio/include/asio/is_applicable_property.hpp +1 -1
  1403. data/ext/couchbase/third_party/asio/asio/include/asio/is_contiguous_iterator.hpp +45 -0
  1404. data/ext/couchbase/third_party/asio/asio/include/asio/is_executor.hpp +1 -1
  1405. data/ext/couchbase/third_party/asio/asio/include/asio/is_read_buffered.hpp +1 -1
  1406. data/ext/couchbase/third_party/asio/asio/include/asio/is_write_buffered.hpp +1 -1
  1407. data/ext/couchbase/third_party/asio/asio/include/asio/local/basic_endpoint.hpp +1 -1
  1408. data/ext/couchbase/third_party/asio/asio/include/asio/local/connect_pair.hpp +1 -1
  1409. data/ext/couchbase/third_party/asio/asio/include/asio/local/datagram_protocol.hpp +1 -1
  1410. data/ext/couchbase/third_party/asio/asio/include/asio/local/detail/endpoint.hpp +1 -1
  1411. data/ext/couchbase/third_party/asio/asio/include/asio/local/detail/impl/endpoint.ipp +1 -1
  1412. data/ext/couchbase/third_party/asio/asio/include/asio/local/stream_protocol.hpp +1 -1
  1413. data/ext/couchbase/third_party/asio/asio/include/asio/multiple_exceptions.hpp +1 -1
  1414. data/ext/couchbase/third_party/asio/asio/include/asio/packaged_task.hpp +1 -1
  1415. data/ext/couchbase/third_party/asio/asio/include/asio/placeholders.hpp +1 -1
  1416. data/ext/couchbase/third_party/asio/asio/include/asio/posix/basic_descriptor.hpp +74 -13
  1417. data/ext/couchbase/third_party/asio/asio/include/asio/posix/basic_stream_descriptor.hpp +95 -27
  1418. data/ext/couchbase/third_party/asio/asio/include/asio/posix/descriptor.hpp +1 -1
  1419. data/ext/couchbase/third_party/asio/asio/include/asio/posix/descriptor_base.hpp +1 -1
  1420. data/ext/couchbase/third_party/asio/asio/include/asio/posix/stream_descriptor.hpp +1 -1
  1421. data/ext/couchbase/third_party/asio/asio/include/asio/post.hpp +128 -42
  1422. data/ext/couchbase/third_party/asio/asio/include/asio/prefer.hpp +1 -1
  1423. data/ext/couchbase/third_party/asio/asio/include/asio/prepend.hpp +78 -0
  1424. data/ext/couchbase/third_party/asio/asio/include/asio/query.hpp +1 -1
  1425. data/ext/couchbase/third_party/asio/asio/include/asio/random_access_file.hpp +1 -1
  1426. data/ext/couchbase/third_party/asio/asio/include/asio/read.hpp +245 -153
  1427. data/ext/couchbase/third_party/asio/asio/include/asio/read_at.hpp +110 -53
  1428. data/ext/couchbase/third_party/asio/asio/include/asio/read_until.hpp +301 -166
  1429. data/ext/couchbase/third_party/asio/asio/include/asio/readable_pipe.hpp +1 -1
  1430. data/ext/couchbase/third_party/asio/asio/include/asio/recycling_allocator.hpp +138 -0
  1431. data/ext/couchbase/third_party/asio/asio/include/asio/redirect_error.hpp +3 -3
  1432. data/ext/couchbase/third_party/asio/asio/include/asio/registered_buffer.hpp +1 -1
  1433. data/ext/couchbase/third_party/asio/asio/include/asio/require.hpp +1 -1
  1434. data/ext/couchbase/third_party/asio/asio/include/asio/require_concept.hpp +1 -1
  1435. data/ext/couchbase/third_party/asio/asio/include/asio/serial_port.hpp +1 -1
  1436. data/ext/couchbase/third_party/asio/asio/include/asio/serial_port_base.hpp +1 -1
  1437. data/ext/couchbase/third_party/asio/asio/include/asio/signal_set.hpp +1 -1
  1438. data/ext/couchbase/third_party/asio/asio/include/asio/socket_base.hpp +1 -1
  1439. data/ext/couchbase/third_party/asio/asio/include/asio/spawn.hpp +647 -87
  1440. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/context.hpp +4 -1
  1441. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/context_base.hpp +1 -1
  1442. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +1 -1
  1443. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/engine.hpp +4 -1
  1444. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/handshake_op.hpp +1 -1
  1445. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/impl/engine.ipp +19 -1
  1446. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/impl/openssl_init.ipp +7 -3
  1447. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/io.hpp +1 -1
  1448. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/openssl_init.hpp +1 -1
  1449. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/openssl_types.hpp +1 -1
  1450. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/password_callback.hpp +1 -1
  1451. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/read_op.hpp +1 -1
  1452. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/shutdown_op.hpp +1 -1
  1453. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/stream_core.hpp +16 -1
  1454. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/verify_callback.hpp +1 -1
  1455. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/write_op.hpp +1 -1
  1456. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/error.hpp +1 -1
  1457. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/host_name_verification.hpp +1 -1
  1458. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/context.hpp +1 -1
  1459. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/context.ipp +140 -64
  1460. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/error.ipp +25 -3
  1461. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/host_name_verification.ipp +1 -1
  1462. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/rfc2818_verification.ipp +1 -1
  1463. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/src.hpp +1 -1
  1464. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/rfc2818_verification.hpp +1 -1
  1465. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/stream.hpp +154 -53
  1466. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/stream_base.hpp +1 -1
  1467. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/verify_context.hpp +1 -1
  1468. data/ext/couchbase/third_party/asio/asio/include/asio/ssl/verify_mode.hpp +1 -1
  1469. data/ext/couchbase/third_party/asio/asio/include/asio/ssl.hpp +1 -1
  1470. data/ext/couchbase/third_party/asio/asio/include/asio/static_thread_pool.hpp +1 -1
  1471. data/ext/couchbase/third_party/asio/asio/include/asio/steady_timer.hpp +1 -1
  1472. data/ext/couchbase/third_party/asio/asio/include/asio/strand.hpp +12 -1
  1473. data/ext/couchbase/third_party/asio/asio/include/asio/stream_file.hpp +1 -1
  1474. data/ext/couchbase/third_party/asio/asio/include/asio/streambuf.hpp +1 -1
  1475. data/ext/couchbase/third_party/asio/asio/include/asio/system_context.hpp +1 -1
  1476. data/ext/couchbase/third_party/asio/asio/include/asio/system_error.hpp +1 -1
  1477. data/ext/couchbase/third_party/asio/asio/include/asio/system_executor.hpp +1 -1
  1478. data/ext/couchbase/third_party/asio/asio/include/asio/system_timer.hpp +1 -1
  1479. data/ext/couchbase/third_party/asio/asio/include/asio/this_coro.hpp +4 -4
  1480. data/ext/couchbase/third_party/asio/asio/include/asio/thread.hpp +1 -1
  1481. data/ext/couchbase/third_party/asio/asio/include/asio/thread_pool.hpp +1 -1
  1482. data/ext/couchbase/third_party/asio/asio/include/asio/time_traits.hpp +1 -1
  1483. data/ext/couchbase/third_party/asio/asio/include/asio/traits/bulk_execute_free.hpp +1 -1
  1484. data/ext/couchbase/third_party/asio/asio/include/asio/traits/bulk_execute_member.hpp +1 -1
  1485. data/ext/couchbase/third_party/asio/asio/include/asio/traits/connect_free.hpp +1 -1
  1486. data/ext/couchbase/third_party/asio/asio/include/asio/traits/connect_member.hpp +1 -1
  1487. data/ext/couchbase/third_party/asio/asio/include/asio/traits/equality_comparable.hpp +1 -1
  1488. data/ext/couchbase/third_party/asio/asio/include/asio/traits/execute_free.hpp +1 -1
  1489. data/ext/couchbase/third_party/asio/asio/include/asio/traits/execute_member.hpp +1 -1
  1490. data/ext/couchbase/third_party/asio/asio/include/asio/traits/prefer_free.hpp +1 -1
  1491. data/ext/couchbase/third_party/asio/asio/include/asio/traits/prefer_member.hpp +1 -1
  1492. data/ext/couchbase/third_party/asio/asio/include/asio/traits/query_free.hpp +1 -1
  1493. data/ext/couchbase/third_party/asio/asio/include/asio/traits/query_member.hpp +1 -1
  1494. data/ext/couchbase/third_party/asio/asio/include/asio/traits/query_static_constexpr_member.hpp +1 -1
  1495. data/ext/couchbase/third_party/asio/asio/include/asio/traits/require_concept_free.hpp +1 -1
  1496. data/ext/couchbase/third_party/asio/asio/include/asio/traits/require_concept_member.hpp +1 -1
  1497. data/ext/couchbase/third_party/asio/asio/include/asio/traits/require_free.hpp +1 -1
  1498. data/ext/couchbase/third_party/asio/asio/include/asio/traits/require_member.hpp +1 -1
  1499. data/ext/couchbase/third_party/asio/asio/include/asio/traits/schedule_free.hpp +1 -1
  1500. data/ext/couchbase/third_party/asio/asio/include/asio/traits/schedule_member.hpp +1 -1
  1501. data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_done_free.hpp +1 -1
  1502. data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_done_member.hpp +1 -1
  1503. data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_error_free.hpp +1 -1
  1504. data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_error_member.hpp +1 -1
  1505. data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_value_free.hpp +1 -1
  1506. data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_value_member.hpp +1 -1
  1507. data/ext/couchbase/third_party/asio/asio/include/asio/traits/start_free.hpp +1 -1
  1508. data/ext/couchbase/third_party/asio/asio/include/asio/traits/start_member.hpp +1 -1
  1509. data/ext/couchbase/third_party/asio/asio/include/asio/traits/static_query.hpp +1 -1
  1510. data/ext/couchbase/third_party/asio/asio/include/asio/traits/static_require.hpp +1 -1
  1511. data/ext/couchbase/third_party/asio/asio/include/asio/traits/static_require_concept.hpp +1 -1
  1512. data/ext/couchbase/third_party/asio/asio/include/asio/traits/submit_free.hpp +1 -1
  1513. data/ext/couchbase/third_party/asio/asio/include/asio/traits/submit_member.hpp +1 -1
  1514. data/ext/couchbase/third_party/asio/asio/include/asio/ts/buffer.hpp +1 -1
  1515. data/ext/couchbase/third_party/asio/asio/include/asio/ts/executor.hpp +1 -1
  1516. data/ext/couchbase/third_party/asio/asio/include/asio/ts/internet.hpp +1 -1
  1517. data/ext/couchbase/third_party/asio/asio/include/asio/ts/io_context.hpp +1 -1
  1518. data/ext/couchbase/third_party/asio/asio/include/asio/ts/net.hpp +1 -1
  1519. data/ext/couchbase/third_party/asio/asio/include/asio/ts/netfwd.hpp +1 -1
  1520. data/ext/couchbase/third_party/asio/asio/include/asio/ts/socket.hpp +1 -1
  1521. data/ext/couchbase/third_party/asio/asio/include/asio/ts/timer.hpp +1 -1
  1522. data/ext/couchbase/third_party/asio/asio/include/asio/unyield.hpp +1 -1
  1523. data/ext/couchbase/third_party/asio/asio/include/asio/use_awaitable.hpp +4 -3
  1524. data/ext/couchbase/third_party/asio/asio/include/asio/use_future.hpp +10 -7
  1525. data/ext/couchbase/third_party/asio/asio/include/asio/uses_executor.hpp +1 -1
  1526. data/ext/couchbase/third_party/asio/asio/include/asio/version.hpp +2 -2
  1527. data/ext/couchbase/third_party/asio/asio/include/asio/wait_traits.hpp +1 -1
  1528. data/ext/couchbase/third_party/asio/asio/include/asio/windows/basic_object_handle.hpp +70 -12
  1529. data/ext/couchbase/third_party/asio/asio/include/asio/windows/basic_overlapped_handle.hpp +100 -1
  1530. data/ext/couchbase/third_party/asio/asio/include/asio/windows/basic_random_access_handle.hpp +98 -29
  1531. data/ext/couchbase/third_party/asio/asio/include/asio/windows/basic_stream_handle.hpp +95 -28
  1532. data/ext/couchbase/third_party/asio/asio/include/asio/windows/object_handle.hpp +1 -1
  1533. data/ext/couchbase/third_party/asio/asio/include/asio/windows/overlapped_handle.hpp +1 -1
  1534. data/ext/couchbase/third_party/asio/asio/include/asio/windows/overlapped_ptr.hpp +1 -1
  1535. data/ext/couchbase/third_party/asio/asio/include/asio/windows/random_access_handle.hpp +1 -1
  1536. data/ext/couchbase/third_party/asio/asio/include/asio/windows/stream_handle.hpp +1 -1
  1537. data/ext/couchbase/third_party/asio/asio/include/asio/writable_pipe.hpp +1 -1
  1538. data/ext/couchbase/third_party/asio/asio/include/asio/write.hpp +242 -150
  1539. data/ext/couchbase/third_party/asio/asio/include/asio/write_at.hpp +112 -53
  1540. data/ext/couchbase/third_party/asio/asio/include/asio/yield.hpp +1 -1
  1541. data/ext/couchbase/third_party/asio/asio/include/asio.hpp +8 -1
  1542. data/ext/couchbase/third_party/expected/COPYING +121 -0
  1543. data/ext/couchbase/third_party/expected/include/tl/expected.hpp +2571 -0
  1544. data/ext/couchbase/third_party/json/CMakeLists.txt +3 -0
  1545. data/ext/couchbase/third_party/json/external/PEGTL/LICENSE +1 -1
  1546. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/apply_mode.hpp +1 -1
  1547. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/argv_input.hpp +1 -1
  1548. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/ascii.hpp +1 -1
  1549. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/buffer_input.hpp +2 -2
  1550. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_action.hpp +1 -1
  1551. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_action_and_state.hpp +1 -1
  1552. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_action_and_states.hpp +1 -1
  1553. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_control.hpp +1 -1
  1554. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_state.hpp +1 -1
  1555. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_states.hpp +1 -1
  1556. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/config.hpp +1 -1
  1557. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/abnf.hpp +1 -1
  1558. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/add_state.hpp +1 -1
  1559. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/alphabet.hpp +1 -1
  1560. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/analyze.hpp +1 -1
  1561. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/analyze_traits.hpp +1 -1
  1562. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/check_bytes.hpp +1 -1
  1563. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/control_action.hpp +13 -1
  1564. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/coverage.hpp +1 -1
  1565. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/forward.hpp +1 -1
  1566. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/function.hpp +1 -1
  1567. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/http.hpp +1 -1
  1568. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/icu/internal.hpp +1 -1
  1569. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/icu/utf16.hpp +1 -1
  1570. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/icu/utf32.hpp +1 -1
  1571. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/icu/utf8.hpp +1 -1
  1572. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/if_then.hpp +1 -1
  1573. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/instantiate.hpp +1 -1
  1574. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/integer.hpp +1 -1
  1575. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/endian.hpp +1 -1
  1576. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/endian_gcc.hpp +1 -1
  1577. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/endian_win.hpp +1 -1
  1578. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_mask_uint.hpp +1 -1
  1579. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_mask_uint8.hpp +1 -1
  1580. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_uint.hpp +1 -1
  1581. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_uint8.hpp +1 -1
  1582. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_utf16.hpp +1 -1
  1583. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_utf32.hpp +1 -1
  1584. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/read_uint.hpp +1 -1
  1585. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/set_stack_guard.hpp +1 -1
  1586. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/vector_stack_guard.hpp +1 -1
  1587. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/iri.hpp +1 -1
  1588. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/json.hpp +1 -1
  1589. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/json_pointer.hpp +1 -1
  1590. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/limit_bytes.hpp +1 -1
  1591. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/limit_depth.hpp +1 -1
  1592. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/parse_tree.hpp +17 -8
  1593. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/parse_tree_to_dot.hpp +1 -1
  1594. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/peg.hpp +1 -1
  1595. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/predicates.hpp +1 -1
  1596. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/print.hpp +1 -1
  1597. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/print_coverage.hpp +1 -1
  1598. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/proto3.hpp +1 -1
  1599. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/raw_string.hpp +1 -1
  1600. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/remove_first_state.hpp +1 -1
  1601. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/remove_last_states.hpp +1 -1
  1602. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/rep_one_min_max.hpp +1 -1
  1603. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/rep_string.hpp +1 -1
  1604. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/separated_seq.hpp +1 -1
  1605. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/shuffle_states.hpp +1 -1
  1606. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/state_control.hpp +1 -1
  1607. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/to_string.hpp +1 -1
  1608. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/trace.hpp +1 -1
  1609. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uint16.hpp +1 -1
  1610. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uint32.hpp +1 -1
  1611. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uint64.hpp +1 -1
  1612. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uint8.hpp +1 -1
  1613. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/unescape.hpp +1 -1
  1614. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uri.hpp +1 -1
  1615. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/utf16.hpp +1 -1
  1616. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/utf32.hpp +1 -1
  1617. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/cstream_input.hpp +1 -1
  1618. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/demangle.hpp +19 -11
  1619. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/disable_action.hpp +1 -1
  1620. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/discard_input.hpp +1 -1
  1621. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/discard_input_on_failure.hpp +1 -1
  1622. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/discard_input_on_success.hpp +1 -1
  1623. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/enable_action.hpp +1 -1
  1624. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/eol.hpp +1 -1
  1625. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/eol_pair.hpp +1 -1
  1626. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/file_input.hpp +1 -1
  1627. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/action.hpp +1 -1
  1628. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/action_input.hpp +1 -1
  1629. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/any.hpp +1 -1
  1630. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/apply.hpp +1 -1
  1631. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/apply0.hpp +1 -1
  1632. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/apply0_single.hpp +1 -1
  1633. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/apply_single.hpp +1 -1
  1634. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/at.hpp +1 -1
  1635. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bof.hpp +1 -1
  1636. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bol.hpp +1 -1
  1637. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bump.hpp +1 -1
  1638. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bump_help.hpp +1 -1
  1639. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bytes.hpp +1 -1
  1640. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/control.hpp +1 -1
  1641. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/cr_crlf_eol.hpp +1 -1
  1642. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/cr_eol.hpp +1 -1
  1643. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/crlf_eol.hpp +1 -1
  1644. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/cstream_reader.hpp +1 -1
  1645. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/cstring_reader.hpp +1 -1
  1646. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/dependent_false.hpp +1 -1
  1647. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/disable.hpp +1 -1
  1648. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/discard.hpp +1 -1
  1649. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/enable.hpp +1 -1
  1650. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/enable_control.hpp +1 -1
  1651. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/eof.hpp +1 -1
  1652. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/eol.hpp +1 -1
  1653. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/eolf.hpp +1 -1
  1654. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/failure.hpp +1 -1
  1655. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/file_mapper_posix.hpp +1 -1
  1656. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/file_mapper_win32.hpp +1 -1
  1657. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/file_reader.hpp +1 -1
  1658. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/filesystem.hpp +1 -1
  1659. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/has_apply.hpp +1 -1
  1660. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/has_apply0.hpp +1 -1
  1661. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/has_match.hpp +1 -1
  1662. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/has_unwind.hpp +1 -1
  1663. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/identifier.hpp +1 -1
  1664. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/if_apply.hpp +1 -1
  1665. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/if_must.hpp +1 -1
  1666. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/if_must_else.hpp +1 -1
  1667. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/if_then_else.hpp +1 -1
  1668. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/input_pair.hpp +1 -1
  1669. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/istream_reader.hpp +1 -1
  1670. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/istring.hpp +1 -1
  1671. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/iterator.hpp +1 -1
  1672. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/lf_crlf_eol.hpp +1 -1
  1673. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/lf_eol.hpp +1 -1
  1674. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/list.hpp +1 -1
  1675. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/list_must.hpp +1 -1
  1676. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/list_tail.hpp +1 -1
  1677. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/list_tail_pad.hpp +1 -1
  1678. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/marker.hpp +1 -1
  1679. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/minus.hpp +1 -1
  1680. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/missing_apply.hpp +1 -1
  1681. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/missing_apply0.hpp +1 -1
  1682. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/must.hpp +1 -1
  1683. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/not_at.hpp +1 -1
  1684. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/one.hpp +1 -1
  1685. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/opt.hpp +1 -1
  1686. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/pad.hpp +1 -1
  1687. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/pad_opt.hpp +1 -1
  1688. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/path_to_string.hpp +1 -1
  1689. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/peek_char.hpp +1 -1
  1690. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/peek_utf8.hpp +1 -1
  1691. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/pegtl_string.hpp +1 -1
  1692. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/plus.hpp +1 -1
  1693. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/raise.hpp +1 -1
  1694. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/range.hpp +1 -1
  1695. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/ranges.hpp +1 -1
  1696. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rematch.hpp +1 -1
  1697. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rep.hpp +1 -1
  1698. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rep_min.hpp +1 -1
  1699. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rep_min_max.hpp +1 -1
  1700. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rep_opt.hpp +1 -1
  1701. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/require.hpp +1 -1
  1702. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/result_on_found.hpp +1 -1
  1703. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rules.hpp +1 -1
  1704. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/seq.hpp +1 -1
  1705. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/sor.hpp +1 -1
  1706. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/star.hpp +1 -1
  1707. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/star_must.hpp +1 -1
  1708. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/state.hpp +1 -1
  1709. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/string.hpp +1 -1
  1710. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/success.hpp +1 -1
  1711. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/try_catch_type.hpp +1 -1
  1712. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/until.hpp +1 -1
  1713. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/istream_input.hpp +1 -1
  1714. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/match.hpp +1 -1
  1715. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/memory_input.hpp +1 -1
  1716. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/mmap_input.hpp +1 -1
  1717. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/must_if.hpp +1 -1
  1718. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/normal.hpp +1 -1
  1719. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/nothing.hpp +1 -1
  1720. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/parse.hpp +1 -1
  1721. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/parse_error.hpp +1 -1
  1722. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/position.hpp +1 -1
  1723. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/read_input.hpp +1 -1
  1724. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/require_apply.hpp +1 -1
  1725. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/require_apply0.hpp +1 -1
  1726. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/rewind_mode.hpp +1 -1
  1727. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/rules.hpp +1 -1
  1728. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/string_input.hpp +1 -1
  1729. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/tracking_mode.hpp +1 -1
  1730. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/type_list.hpp +1 -1
  1731. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/utf8.hpp +1 -1
  1732. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/version.hpp +2 -2
  1733. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/visit.hpp +1 -1
  1734. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl.hpp +1 -1
  1735. data/ext/couchbase/third_party/json/include/tao/json/binary_view.hpp +14 -0
  1736. data/ext/couchbase/third_party/json/include/tao/json/contrib/from_nlohmann.hpp +67 -0
  1737. data/ext/couchbase/third_party/json/include/tao/json/contrib/to_nlohmann.hpp +122 -0
  1738. data/ext/couchbase/third_party/json/include/tao/json/events/capture.hpp +482 -0
  1739. data/ext/couchbase/third_party/json/include/tao/json/events/from_value.hpp +3 -3
  1740. data/ext/couchbase/third_party/json/include/tao/json/events/produce.hpp +3 -95
  1741. data/ext/couchbase/third_party/json/include/tao/json/events/set_value.hpp +142 -0
  1742. data/ext/couchbase/third_party/json/include/tao/json/events/to_value.hpp +5 -112
  1743. data/ext/couchbase/third_party/json/include/tao/json/events/virtualize.hpp +27 -0
  1744. data/ext/couchbase/third_party/json/include/tao/json/events.hpp +3 -0
  1745. data/ext/couchbase/third_party/json/include/tao/json/traits.hpp +1 -1
  1746. data/ext/couchbase.cxx +2391 -1597
  1747. data/ext/extconf.rb +2 -0
  1748. data/ext/revisions.rb +2 -2
  1749. data/lib/couchbase/bucket.rb +2 -2
  1750. data/lib/couchbase/cluster.rb +12 -6
  1751. data/lib/couchbase/cluster_registry.rb +44 -0
  1752. data/lib/couchbase/collection.rb +61 -35
  1753. data/lib/couchbase/collection_options.rb +51 -95
  1754. data/lib/couchbase/config_profiles.rb +55 -0
  1755. data/lib/couchbase/logger.rb +44 -1
  1756. data/lib/couchbase/management/analytics_index_manager.rb +12 -12
  1757. data/lib/couchbase/management/query_index_manager.rb +5 -7
  1758. data/lib/couchbase/management/user_manager.rb +19 -0
  1759. data/lib/couchbase/options.rb +404 -56
  1760. data/lib/couchbase/query_options.rb +4 -4
  1761. data/lib/couchbase/scope.rb +3 -3
  1762. data/lib/couchbase/search_options.rb +7 -8
  1763. data/lib/couchbase/utils/generic_logger_adapter.rb +38 -0
  1764. data/lib/couchbase/utils/stdlib_logger_adapter.rb +65 -0
  1765. data/lib/couchbase/utils/time.rb +6 -6
  1766. data/lib/couchbase/version.rb +4 -18
  1767. metadata +880 -464
  1768. data/ext/couchbase/couchbase/analytics_scan_consistency.hxx +0 -26
  1769. data/ext/couchbase/couchbase/capella_ca.hxx +0 -43
  1770. data/ext/couchbase/couchbase/cas_fmt.hxx +0 -37
  1771. data/ext/couchbase/couchbase/cluster.cxx +0 -111
  1772. data/ext/couchbase/couchbase/cluster_options.cxx +0 -45
  1773. data/ext/couchbase/couchbase/crypto/CMakeLists.txt +0 -12
  1774. data/ext/couchbase/couchbase/crypto/cbcrypto.cc +0 -887
  1775. data/ext/couchbase/couchbase/crypto/cbcrypto.h +0 -88
  1776. data/ext/couchbase/couchbase/design_document_namespace.hxx +0 -26
  1777. data/ext/couchbase/couchbase/design_document_namespace_fmt.hxx +0 -47
  1778. data/ext/couchbase/couchbase/diagnostics.hxx +0 -97
  1779. data/ext/couchbase/couchbase/diagnostics_fmt.hxx +0 -113
  1780. data/ext/couchbase/couchbase/diagnostics_json.hxx +0 -100
  1781. data/ext/couchbase/couchbase/document_id.cxx +0 -89
  1782. data/ext/couchbase/couchbase/document_id.hxx +0 -102
  1783. data/ext/couchbase/couchbase/document_id_fmt.hxx +0 -37
  1784. data/ext/couchbase/couchbase/error_context/analytics.hxx +0 -51
  1785. data/ext/couchbase/couchbase/error_context/http.hxx +0 -47
  1786. data/ext/couchbase/couchbase/error_context/key_value.hxx +0 -50
  1787. data/ext/couchbase/couchbase/error_context/query.hxx +0 -51
  1788. data/ext/couchbase/couchbase/error_context/search.hxx +0 -50
  1789. data/ext/couchbase/couchbase/error_context/view.hxx +0 -51
  1790. data/ext/couchbase/couchbase/errors.hxx +0 -1038
  1791. data/ext/couchbase/couchbase/io/CMakeLists.txt +0 -12
  1792. data/ext/couchbase/couchbase/io/dns_client.hxx +0 -217
  1793. data/ext/couchbase/couchbase/io/dns_codec.hxx +0 -206
  1794. data/ext/couchbase/couchbase/io/dns_config.hxx +0 -115
  1795. data/ext/couchbase/couchbase/io/dns_message.hxx +0 -555
  1796. data/ext/couchbase/couchbase/io/http_command.hxx +0 -174
  1797. data/ext/couchbase/couchbase/io/http_context.hxx +0 -40
  1798. data/ext/couchbase/couchbase/io/http_message.hxx +0 -116
  1799. data/ext/couchbase/couchbase/io/http_parser.cxx +0 -141
  1800. data/ext/couchbase/couchbase/io/http_parser.hxx +0 -55
  1801. data/ext/couchbase/couchbase/io/http_session.hxx +0 -544
  1802. data/ext/couchbase/couchbase/io/http_session_manager.hxx +0 -377
  1803. data/ext/couchbase/couchbase/io/http_traits.hxx +0 -30
  1804. data/ext/couchbase/couchbase/io/ip_protocol.hxx +0 -28
  1805. data/ext/couchbase/couchbase/io/mcbp_command.hxx +0 -300
  1806. data/ext/couchbase/couchbase/io/mcbp_context.hxx +0 -39
  1807. data/ext/couchbase/couchbase/io/mcbp_message.cxx +0 -39
  1808. data/ext/couchbase/couchbase/io/mcbp_message.hxx +0 -55
  1809. data/ext/couchbase/couchbase/io/mcbp_parser.cxx +0 -86
  1810. data/ext/couchbase/couchbase/io/mcbp_parser.hxx +0 -45
  1811. data/ext/couchbase/couchbase/io/mcbp_session.hxx +0 -1317
  1812. data/ext/couchbase/couchbase/io/mcbp_traits.hxx +0 -30
  1813. data/ext/couchbase/couchbase/io/query_cache.hxx +0 -61
  1814. data/ext/couchbase/couchbase/io/retry_action.hxx +0 -30
  1815. data/ext/couchbase/couchbase/io/retry_context.hxx +0 -38
  1816. data/ext/couchbase/couchbase/io/retry_orchestrator.hxx +0 -112
  1817. data/ext/couchbase/couchbase/io/retry_reason.hxx +0 -158
  1818. data/ext/couchbase/couchbase/io/retry_reason_fmt.hxx +0 -103
  1819. data/ext/couchbase/couchbase/io/retry_strategy.hxx +0 -152
  1820. data/ext/couchbase/couchbase/io/streams.hxx +0 -253
  1821. data/ext/couchbase/couchbase/json_string.hxx +0 -48
  1822. data/ext/couchbase/couchbase/logger/CMakeLists.txt +0 -9
  1823. data/ext/couchbase/couchbase/logger/configuration.hxx +0 -52
  1824. data/ext/couchbase/couchbase/logger/custom_rotating_file_sink.cxx +0 -157
  1825. data/ext/couchbase/couchbase/logger/logger.cxx +0 -337
  1826. data/ext/couchbase/couchbase/logger/logger.hxx +0 -235
  1827. data/ext/couchbase/couchbase/management/CMakeLists.txt +0 -13
  1828. data/ext/couchbase/couchbase/management/analytics_dataset.hxx +0 -30
  1829. data/ext/couchbase/couchbase/management/analytics_index.hxx +0 -30
  1830. data/ext/couchbase/couchbase/management/analytics_link.hxx +0 -22
  1831. data/ext/couchbase/couchbase/management/analytics_link_azure_blob_external.cxx +0 -67
  1832. data/ext/couchbase/couchbase/management/analytics_link_azure_blob_external.hxx +0 -76
  1833. data/ext/couchbase/couchbase/management/analytics_link_azure_blob_external_json.hxx +0 -52
  1834. data/ext/couchbase/couchbase/management/analytics_link_couchbase_remote.cxx +0 -104
  1835. data/ext/couchbase/couchbase/management/analytics_link_couchbase_remote.hxx +0 -107
  1836. data/ext/couchbase/couchbase/management/analytics_link_couchbase_remote_json.hxx +0 -63
  1837. data/ext/couchbase/couchbase/management/analytics_link_s3_external.cxx +0 -57
  1838. data/ext/couchbase/couchbase/management/analytics_link_s3_external.hxx +0 -69
  1839. data/ext/couchbase/couchbase/management/analytics_link_s3_external_json.hxx +0 -47
  1840. data/ext/couchbase/couchbase/management/bucket_settings.hxx +0 -134
  1841. data/ext/couchbase/couchbase/management/bucket_settings_json.hxx +0 -123
  1842. data/ext/couchbase/couchbase/management/design_document.hxx +0 -41
  1843. data/ext/couchbase/couchbase/management/eventing_function.hxx +0 -188
  1844. data/ext/couchbase/couchbase/management/eventing_function_json.hxx +0 -212
  1845. data/ext/couchbase/couchbase/management/eventing_status.hxx +0 -84
  1846. data/ext/couchbase/couchbase/management/eventing_status_json.hxx +0 -77
  1847. data/ext/couchbase/couchbase/management/rbac.hxx +0 -77
  1848. data/ext/couchbase/couchbase/management/rbac_fmt.hxx +0 -49
  1849. data/ext/couchbase/couchbase/management/rbac_json.hxx +0 -179
  1850. data/ext/couchbase/couchbase/management/search_index.hxx +0 -38
  1851. data/ext/couchbase/couchbase/management/search_index_json.hxx +0 -58
  1852. data/ext/couchbase/couchbase/meta/CMakeLists.txt +0 -15
  1853. data/ext/couchbase/couchbase/meta/version.cxx +0 -181
  1854. data/ext/couchbase/couchbase/meta/version.hxx +0 -45
  1855. data/ext/couchbase/couchbase/metrics/CMakeLists.txt +0 -11
  1856. data/ext/couchbase/couchbase/metrics/logging_meter.cxx +0 -194
  1857. data/ext/couchbase/couchbase/metrics/logging_meter.hxx +0 -74
  1858. data/ext/couchbase/couchbase/metrics/logging_meter_options.hxx +0 -28
  1859. data/ext/couchbase/couchbase/metrics/noop_meter.hxx +0 -47
  1860. data/ext/couchbase/couchbase/mutation_token_fmt.hxx +0 -37
  1861. data/ext/couchbase/couchbase/operations/CMakeLists.txt +0 -35
  1862. data/ext/couchbase/couchbase/operations/document_analytics.cxx +0 -195
  1863. data/ext/couchbase/couchbase/operations/document_analytics.hxx +0 -92
  1864. data/ext/couchbase/couchbase/operations/document_append.cxx +0 -46
  1865. data/ext/couchbase/couchbase/operations/document_append.hxx +0 -63
  1866. data/ext/couchbase/couchbase/operations/document_decrement.cxx +0 -57
  1867. data/ext/couchbase/couchbase/operations/document_decrement.hxx +0 -67
  1868. data/ext/couchbase/couchbase/operations/document_exists.cxx +0 -49
  1869. data/ext/couchbase/couchbase/operations/document_exists.hxx +0 -61
  1870. data/ext/couchbase/couchbase/operations/document_get.cxx +0 -44
  1871. data/ext/couchbase/couchbase/operations/document_get.hxx +0 -53
  1872. data/ext/couchbase/couchbase/operations/document_get_and_lock.cxx +0 -45
  1873. data/ext/couchbase/couchbase/operations/document_get_and_lock.hxx +0 -54
  1874. data/ext/couchbase/couchbase/operations/document_get_and_touch.cxx +0 -45
  1875. data/ext/couchbase/couchbase/operations/document_get_and_touch.hxx +0 -54
  1876. data/ext/couchbase/couchbase/operations/document_get_projected.cxx +0 -227
  1877. data/ext/couchbase/couchbase/operations/document_get_projected.hxx +0 -58
  1878. data/ext/couchbase/couchbase/operations/document_increment.cxx +0 -57
  1879. data/ext/couchbase/couchbase/operations/document_increment.hxx +0 -67
  1880. data/ext/couchbase/couchbase/operations/document_insert.cxx +0 -48
  1881. data/ext/couchbase/couchbase/operations/document_insert.hxx +0 -65
  1882. data/ext/couchbase/couchbase/operations/document_lookup_in.cxx +0 -81
  1883. data/ext/couchbase/couchbase/operations/document_lookup_in.hxx +0 -64
  1884. data/ext/couchbase/couchbase/operations/document_mutate_in.cxx +0 -104
  1885. data/ext/couchbase/couchbase/operations/document_mutate_in.hxx +0 -82
  1886. data/ext/couchbase/couchbase/operations/document_prepend.cxx +0 -46
  1887. data/ext/couchbase/couchbase/operations/document_prepend.hxx +0 -63
  1888. data/ext/couchbase/couchbase/operations/document_query.cxx +0 -370
  1889. data/ext/couchbase/couchbase/operations/document_query.hxx +0 -123
  1890. data/ext/couchbase/couchbase/operations/document_remove.cxx +0 -46
  1891. data/ext/couchbase/couchbase/operations/document_remove.hxx +0 -63
  1892. data/ext/couchbase/couchbase/operations/document_replace.cxx +0 -52
  1893. data/ext/couchbase/couchbase/operations/document_replace.hxx +0 -67
  1894. data/ext/couchbase/couchbase/operations/document_search.cxx +0 -311
  1895. data/ext/couchbase/couchbase/operations/document_search.hxx +0 -153
  1896. data/ext/couchbase/couchbase/operations/document_touch.cxx +0 -43
  1897. data/ext/couchbase/couchbase/operations/document_touch.hxx +0 -52
  1898. data/ext/couchbase/couchbase/operations/document_unlock.cxx +0 -43
  1899. data/ext/couchbase/couchbase/operations/document_unlock.hxx +0 -52
  1900. data/ext/couchbase/couchbase/operations/document_upsert.cxx +0 -52
  1901. data/ext/couchbase/couchbase/operations/document_upsert.hxx +0 -66
  1902. data/ext/couchbase/couchbase/operations/document_view.cxx +0 -183
  1903. data/ext/couchbase/couchbase/operations/document_view.hxx +0 -97
  1904. data/ext/couchbase/couchbase/operations/http_noop.cxx +0 -60
  1905. data/ext/couchbase/couchbase/operations/http_noop.hxx +0 -48
  1906. data/ext/couchbase/couchbase/operations/management/CMakeLists.txt +0 -79
  1907. data/ext/couchbase/couchbase/operations/management/analytics.hxx +0 -34
  1908. data/ext/couchbase/couchbase/operations/management/analytics_dataset_create.cxx +0 -94
  1909. data/ext/couchbase/couchbase/operations/management/analytics_dataset_create.hxx +0 -57
  1910. data/ext/couchbase/couchbase/operations/management/analytics_dataset_drop.cxx +0 -83
  1911. data/ext/couchbase/couchbase/operations/management/analytics_dataset_drop.hxx +0 -54
  1912. data/ext/couchbase/couchbase/operations/management/analytics_dataset_get_all.cxx +0 -80
  1913. data/ext/couchbase/couchbase/operations/management/analytics_dataset_get_all.hxx +0 -52
  1914. data/ext/couchbase/couchbase/operations/management/analytics_dataverse_create.cxx +0 -82
  1915. data/ext/couchbase/couchbase/operations/management/analytics_dataverse_create.hxx +0 -53
  1916. data/ext/couchbase/couchbase/operations/management/analytics_dataverse_drop.cxx +0 -82
  1917. data/ext/couchbase/couchbase/operations/management/analytics_dataverse_drop.hxx +0 -53
  1918. data/ext/couchbase/couchbase/operations/management/analytics_get_pending_mutations.cxx +0 -70
  1919. data/ext/couchbase/couchbase/operations/management/analytics_get_pending_mutations.hxx +0 -52
  1920. data/ext/couchbase/couchbase/operations/management/analytics_index_create.cxx +0 -106
  1921. data/ext/couchbase/couchbase/operations/management/analytics_index_create.hxx +0 -56
  1922. data/ext/couchbase/couchbase/operations/management/analytics_index_drop.cxx +0 -90
  1923. data/ext/couchbase/couchbase/operations/management/analytics_index_drop.hxx +0 -55
  1924. data/ext/couchbase/couchbase/operations/management/analytics_index_get_all.cxx +0 -80
  1925. data/ext/couchbase/couchbase/operations/management/analytics_index_get_all.hxx +0 -52
  1926. data/ext/couchbase/couchbase/operations/management/analytics_link_connect.cxx +0 -82
  1927. data/ext/couchbase/couchbase/operations/management/analytics_link_connect.hxx +0 -57
  1928. data/ext/couchbase/couchbase/operations/management/analytics_link_create.cxx +0 -87
  1929. data/ext/couchbase/couchbase/operations/management/analytics_link_create.hxx +0 -77
  1930. data/ext/couchbase/couchbase/operations/management/analytics_link_disconnect.cxx +0 -80
  1931. data/ext/couchbase/couchbase/operations/management/analytics_link_disconnect.hxx +0 -56
  1932. data/ext/couchbase/couchbase/operations/management/analytics_link_drop.cxx +0 -103
  1933. data/ext/couchbase/couchbase/operations/management/analytics_link_drop.hxx +0 -56
  1934. data/ext/couchbase/couchbase/operations/management/analytics_link_get_all.cxx +0 -130
  1935. data/ext/couchbase/couchbase/operations/management/analytics_link_get_all.hxx +0 -63
  1936. data/ext/couchbase/couchbase/operations/management/analytics_link_replace.cxx +0 -87
  1937. data/ext/couchbase/couchbase/operations/management/analytics_link_replace.hxx +0 -78
  1938. data/ext/couchbase/couchbase/operations/management/analytics_link_utils.hxx +0 -37
  1939. data/ext/couchbase/couchbase/operations/management/analytics_problem.hxx +0 -30
  1940. data/ext/couchbase/couchbase/operations/management/bucket.hxx +0 -25
  1941. data/ext/couchbase/couchbase/operations/management/bucket_create.cxx +0 -171
  1942. data/ext/couchbase/couchbase/operations/management/bucket_create.hxx +0 -52
  1943. data/ext/couchbase/couchbase/operations/management/bucket_describe.cxx +0 -67
  1944. data/ext/couchbase/couchbase/operations/management/bucket_describe.hxx +0 -61
  1945. data/ext/couchbase/couchbase/operations/management/bucket_drop.cxx +0 -52
  1946. data/ext/couchbase/couchbase/operations/management/bucket_drop.hxx +0 -49
  1947. data/ext/couchbase/couchbase/operations/management/bucket_flush.cxx +0 -59
  1948. data/ext/couchbase/couchbase/operations/management/bucket_flush.hxx +0 -49
  1949. data/ext/couchbase/couchbase/operations/management/bucket_get.cxx +0 -59
  1950. data/ext/couchbase/couchbase/operations/management/bucket_get.hxx +0 -51
  1951. data/ext/couchbase/couchbase/operations/management/bucket_get_all.cxx +0 -59
  1952. data/ext/couchbase/couchbase/operations/management/bucket_get_all.hxx +0 -49
  1953. data/ext/couchbase/couchbase/operations/management/bucket_update.cxx +0 -130
  1954. data/ext/couchbase/couchbase/operations/management/bucket_update.hxx +0 -52
  1955. data/ext/couchbase/couchbase/operations/management/cluster_describe.cxx +0 -90
  1956. data/ext/couchbase/couchbase/operations/management/cluster_describe.hxx +0 -72
  1957. data/ext/couchbase/couchbase/operations/management/cluster_developer_preview_enable.cxx +0 -44
  1958. data/ext/couchbase/couchbase/operations/management/cluster_developer_preview_enable.hxx +0 -48
  1959. data/ext/couchbase/couchbase/operations/management/collection_create.cxx +0 -83
  1960. data/ext/couchbase/couchbase/operations/management/collection_create.hxx +0 -53
  1961. data/ext/couchbase/couchbase/operations/management/collection_drop.cxx +0 -73
  1962. data/ext/couchbase/couchbase/operations/management/collection_drop.hxx +0 -52
  1963. data/ext/couchbase/couchbase/operations/management/collections.hxx +0 -25
  1964. data/ext/couchbase/couchbase/operations/management/collections_manifest_get.cxx +0 -40
  1965. data/ext/couchbase/couchbase/operations/management/collections_manifest_get.hxx +0 -53
  1966. data/ext/couchbase/couchbase/operations/management/error_utils.cxx +0 -265
  1967. data/ext/couchbase/couchbase/operations/management/error_utils.hxx +0 -48
  1968. data/ext/couchbase/couchbase/operations/management/eventing.hxx +0 -28
  1969. data/ext/couchbase/couchbase/operations/management/eventing_deploy_function.cxx +0 -56
  1970. data/ext/couchbase/couchbase/operations/management/eventing_deploy_function.hxx +0 -52
  1971. data/ext/couchbase/couchbase/operations/management/eventing_drop_function.cxx +0 -57
  1972. data/ext/couchbase/couchbase/operations/management/eventing_drop_function.hxx +0 -52
  1973. data/ext/couchbase/couchbase/operations/management/eventing_get_all_functions.cxx +0 -64
  1974. data/ext/couchbase/couchbase/operations/management/eventing_get_all_functions.hxx +0 -51
  1975. data/ext/couchbase/couchbase/operations/management/eventing_get_function.cxx +0 -56
  1976. data/ext/couchbase/couchbase/operations/management/eventing_get_function.hxx +0 -53
  1977. data/ext/couchbase/couchbase/operations/management/eventing_get_status.cxx +0 -56
  1978. data/ext/couchbase/couchbase/operations/management/eventing_get_status.hxx +0 -53
  1979. data/ext/couchbase/couchbase/operations/management/eventing_pause_function.cxx +0 -56
  1980. data/ext/couchbase/couchbase/operations/management/eventing_pause_function.hxx +0 -52
  1981. data/ext/couchbase/couchbase/operations/management/eventing_problem.hxx +0 -31
  1982. data/ext/couchbase/couchbase/operations/management/eventing_resume_function.cxx +0 -56
  1983. data/ext/couchbase/couchbase/operations/management/eventing_resume_function.hxx +0 -52
  1984. data/ext/couchbase/couchbase/operations/management/eventing_undeploy_function.cxx +0 -56
  1985. data/ext/couchbase/couchbase/operations/management/eventing_undeploy_function.hxx +0 -52
  1986. data/ext/couchbase/couchbase/operations/management/eventing_upsert_function.cxx +0 -341
  1987. data/ext/couchbase/couchbase/operations/management/eventing_upsert_function.hxx +0 -52
  1988. data/ext/couchbase/couchbase/operations/management/freeform.cxx +0 -55
  1989. data/ext/couchbase/couchbase/operations/management/freeform.hxx +0 -55
  1990. data/ext/couchbase/couchbase/operations/management/group_drop.cxx +0 -51
  1991. data/ext/couchbase/couchbase/operations/management/group_drop.hxx +0 -49
  1992. data/ext/couchbase/couchbase/operations/management/group_get.cxx +0 -60
  1993. data/ext/couchbase/couchbase/operations/management/group_get.hxx +0 -50
  1994. data/ext/couchbase/couchbase/operations/management/group_get_all.cxx +0 -58
  1995. data/ext/couchbase/couchbase/operations/management/group_get_all.hxx +0 -49
  1996. data/ext/couchbase/couchbase/operations/management/group_upsert.cxx +0 -96
  1997. data/ext/couchbase/couchbase/operations/management/group_upsert.hxx +0 -51
  1998. data/ext/couchbase/couchbase/operations/management/query.hxx +0 -23
  1999. data/ext/couchbase/couchbase/operations/management/query_index_build_deferred.cxx +0 -88
  2000. data/ext/couchbase/couchbase/operations/management/query_index_build_deferred.hxx +0 -61
  2001. data/ext/couchbase/couchbase/operations/management/query_index_create.cxx +0 -149
  2002. data/ext/couchbase/couchbase/operations/management/query_index_create.hxx +0 -65
  2003. data/ext/couchbase/couchbase/operations/management/query_index_drop.cxx +0 -128
  2004. data/ext/couchbase/couchbase/operations/management/query_index_drop.hxx +0 -61
  2005. data/ext/couchbase/couchbase/operations/management/query_index_get_all.cxx +0 -126
  2006. data/ext/couchbase/couchbase/operations/management/query_index_get_all.hxx +0 -54
  2007. data/ext/couchbase/couchbase/operations/management/role_get_all.cxx +0 -58
  2008. data/ext/couchbase/couchbase/operations/management/role_get_all.hxx +0 -49
  2009. data/ext/couchbase/couchbase/operations/management/scope_create.cxx +0 -75
  2010. data/ext/couchbase/couchbase/operations/management/scope_create.hxx +0 -51
  2011. data/ext/couchbase/couchbase/operations/management/scope_drop.cxx +0 -70
  2012. data/ext/couchbase/couchbase/operations/management/scope_drop.hxx +0 -51
  2013. data/ext/couchbase/couchbase/operations/management/scope_get_all.cxx +0 -62
  2014. data/ext/couchbase/couchbase/operations/management/scope_get_all.hxx +0 -51
  2015. data/ext/couchbase/couchbase/operations/management/search.hxx +0 -30
  2016. data/ext/couchbase/couchbase/operations/management/search_get_stats.cxx +0 -41
  2017. data/ext/couchbase/couchbase/operations/management/search_get_stats.hxx +0 -48
  2018. data/ext/couchbase/couchbase/operations/management/search_index_analyze_document.cxx +0 -85
  2019. data/ext/couchbase/couchbase/operations/management/search_index_analyze_document.hxx +0 -54
  2020. data/ext/couchbase/couchbase/operations/management/search_index_control_ingest.cxx +0 -73
  2021. data/ext/couchbase/couchbase/operations/management/search_index_control_ingest.hxx +0 -52
  2022. data/ext/couchbase/couchbase/operations/management/search_index_control_plan_freeze.cxx +0 -73
  2023. data/ext/couchbase/couchbase/operations/management/search_index_control_plan_freeze.hxx +0 -57
  2024. data/ext/couchbase/couchbase/operations/management/search_index_control_query.cxx +0 -73
  2025. data/ext/couchbase/couchbase/operations/management/search_index_control_query.hxx +0 -52
  2026. data/ext/couchbase/couchbase/operations/management/search_index_drop.cxx +0 -72
  2027. data/ext/couchbase/couchbase/operations/management/search_index_drop.hxx +0 -51
  2028. data/ext/couchbase/couchbase/operations/management/search_index_get.cxx +0 -75
  2029. data/ext/couchbase/couchbase/operations/management/search_index_get.hxx +0 -54
  2030. data/ext/couchbase/couchbase/operations/management/search_index_get_all.cxx +0 -67
  2031. data/ext/couchbase/couchbase/operations/management/search_index_get_all.hxx +0 -51
  2032. data/ext/couchbase/couchbase/operations/management/search_index_get_documents_count.cxx +0 -79
  2033. data/ext/couchbase/couchbase/operations/management/search_index_get_documents_count.hxx +0 -53
  2034. data/ext/couchbase/couchbase/operations/management/search_index_get_stats.cxx +0 -71
  2035. data/ext/couchbase/couchbase/operations/management/search_index_get_stats.hxx +0 -52
  2036. data/ext/couchbase/couchbase/operations/management/search_index_upsert.cxx +0 -108
  2037. data/ext/couchbase/couchbase/operations/management/search_index_upsert.hxx +0 -52
  2038. data/ext/couchbase/couchbase/operations/management/user.hxx +0 -28
  2039. data/ext/couchbase/couchbase/operations/management/user_drop.cxx +0 -52
  2040. data/ext/couchbase/couchbase/operations/management/user_drop.hxx +0 -51
  2041. data/ext/couchbase/couchbase/operations/management/user_get.cxx +0 -61
  2042. data/ext/couchbase/couchbase/operations/management/user_get.hxx +0 -52
  2043. data/ext/couchbase/couchbase/operations/management/user_get_all.cxx +0 -59
  2044. data/ext/couchbase/couchbase/operations/management/user_get_all.hxx +0 -51
  2045. data/ext/couchbase/couchbase/operations/management/user_upsert.cxx +0 -101
  2046. data/ext/couchbase/couchbase/operations/management/user_upsert.hxx +0 -52
  2047. data/ext/couchbase/couchbase/operations/management/view.hxx +0 -23
  2048. data/ext/couchbase/couchbase/operations/management/view_index_drop.cxx +0 -46
  2049. data/ext/couchbase/couchbase/operations/management/view_index_drop.hxx +0 -52
  2050. data/ext/couchbase/couchbase/operations/management/view_index_get.cxx +0 -74
  2051. data/ext/couchbase/couchbase/operations/management/view_index_get.hxx +0 -53
  2052. data/ext/couchbase/couchbase/operations/management/view_index_get_all.cxx +0 -108
  2053. data/ext/couchbase/couchbase/operations/management/view_index_get_all.hxx +0 -52
  2054. data/ext/couchbase/couchbase/operations/management/view_index_upsert.cxx +0 -71
  2055. data/ext/couchbase/couchbase/operations/management/view_index_upsert.hxx +0 -51
  2056. data/ext/couchbase/couchbase/operations/mcbp_noop.cxx +0 -38
  2057. data/ext/couchbase/couchbase/operations/mcbp_noop.hxx +0 -49
  2058. data/ext/couchbase/couchbase/operations.hxx +0 -42
  2059. data/ext/couchbase/couchbase/origin.hxx +0 -185
  2060. data/ext/couchbase/couchbase/platform/CMakeLists.txt +0 -16
  2061. data/ext/couchbase/couchbase/platform/backtrace.c +0 -189
  2062. data/ext/couchbase/couchbase/platform/base64.cc +0 -234
  2063. data/ext/couchbase/couchbase/platform/base64.h +0 -44
  2064. data/ext/couchbase/couchbase/platform/dirutils.cc +0 -123
  2065. data/ext/couchbase/couchbase/platform/dirutils.h +0 -43
  2066. data/ext/couchbase/couchbase/platform/random.cc +0 -120
  2067. data/ext/couchbase/couchbase/platform/random.h +0 -39
  2068. data/ext/couchbase/couchbase/platform/string_hex.cc +0 -99
  2069. data/ext/couchbase/couchbase/platform/string_hex.h +0 -50
  2070. data/ext/couchbase/couchbase/platform/terminate_handler.cc +0 -125
  2071. data/ext/couchbase/couchbase/platform/terminate_handler.h +0 -36
  2072. data/ext/couchbase/couchbase/platform/uuid.cc +0 -98
  2073. data/ext/couchbase/couchbase/platform/uuid.h +0 -56
  2074. data/ext/couchbase/couchbase/protocol/CMakeLists.txt +0 -42
  2075. data/ext/couchbase/couchbase/protocol/client_opcode.hxx +0 -359
  2076. data/ext/couchbase/couchbase/protocol/client_opcode_fmt.hxx +0 -316
  2077. data/ext/couchbase/couchbase/protocol/client_request.cxx +0 -37
  2078. data/ext/couchbase/couchbase/protocol/client_request.hxx +0 -157
  2079. data/ext/couchbase/couchbase/protocol/client_response.cxx +0 -74
  2080. data/ext/couchbase/couchbase/protocol/client_response.hxx +0 -211
  2081. data/ext/couchbase/couchbase/protocol/cmd_append.cxx +0 -82
  2082. data/ext/couchbase/couchbase/protocol/cmd_append.hxx +0 -107
  2083. data/ext/couchbase/couchbase/protocol/cmd_cluster_map_change_notification.cxx +0 -51
  2084. data/ext/couchbase/couchbase/protocol/cmd_cluster_map_change_notification.hxx +0 -57
  2085. data/ext/couchbase/couchbase/protocol/cmd_decrement.cxx +0 -112
  2086. data/ext/couchbase/couchbase/protocol/cmd_decrement.hxx +0 -131
  2087. data/ext/couchbase/couchbase/protocol/cmd_exists.cxx +0 -92
  2088. data/ext/couchbase/couchbase/protocol/cmd_exists.hxx +0 -121
  2089. data/ext/couchbase/couchbase/protocol/cmd_get.cxx +0 -63
  2090. data/ext/couchbase/couchbase/protocol/cmd_get.hxx +0 -101
  2091. data/ext/couchbase/couchbase/protocol/cmd_get_and_lock.cxx +0 -68
  2092. data/ext/couchbase/couchbase/protocol/cmd_get_and_lock.hxx +0 -117
  2093. data/ext/couchbase/couchbase/protocol/cmd_get_and_touch.cxx +0 -70
  2094. data/ext/couchbase/couchbase/protocol/cmd_get_and_touch.hxx +0 -117
  2095. data/ext/couchbase/couchbase/protocol/cmd_get_cluster_config.cxx +0 -84
  2096. data/ext/couchbase/couchbase/protocol/cmd_get_cluster_config.hxx +0 -89
  2097. data/ext/couchbase/couchbase/protocol/cmd_get_collection_id.cxx +0 -50
  2098. data/ext/couchbase/couchbase/protocol/cmd_get_collection_id.hxx +0 -98
  2099. data/ext/couchbase/couchbase/protocol/cmd_get_collections_manifest.cxx +0 -44
  2100. data/ext/couchbase/couchbase/protocol/cmd_get_collections_manifest.hxx +0 -84
  2101. data/ext/couchbase/couchbase/protocol/cmd_get_error_map.cxx +0 -59
  2102. data/ext/couchbase/couchbase/protocol/cmd_get_error_map.hxx +0 -103
  2103. data/ext/couchbase/couchbase/protocol/cmd_get_meta.cxx +0 -74
  2104. data/ext/couchbase/couchbase/protocol/cmd_get_meta.hxx +0 -119
  2105. data/ext/couchbase/couchbase/protocol/cmd_hello.cxx +0 -66
  2106. data/ext/couchbase/couchbase/protocol/cmd_hello.hxx +0 -144
  2107. data/ext/couchbase/couchbase/protocol/cmd_increment.cxx +0 -117
  2108. data/ext/couchbase/couchbase/protocol/cmd_increment.hxx +0 -131
  2109. data/ext/couchbase/couchbase/protocol/cmd_info.hxx +0 -29
  2110. data/ext/couchbase/couchbase/protocol/cmd_insert.cxx +0 -92
  2111. data/ext/couchbase/couchbase/protocol/cmd_insert.hxx +0 -123
  2112. data/ext/couchbase/couchbase/protocol/cmd_lookup_in.cxx +0 -109
  2113. data/ext/couchbase/couchbase/protocol/cmd_lookup_in.hxx +0 -165
  2114. data/ext/couchbase/couchbase/protocol/cmd_mutate_in.cxx +0 -174
  2115. data/ext/couchbase/couchbase/protocol/cmd_mutate_in.hxx +0 -311
  2116. data/ext/couchbase/couchbase/protocol/cmd_noop.cxx +0 -36
  2117. data/ext/couchbase/couchbase/protocol/cmd_noop.hxx +0 -75
  2118. data/ext/couchbase/couchbase/protocol/cmd_prepend.cxx +0 -82
  2119. data/ext/couchbase/couchbase/protocol/cmd_prepend.hxx +0 -102
  2120. data/ext/couchbase/couchbase/protocol/cmd_remove.cxx +0 -83
  2121. data/ext/couchbase/couchbase/protocol/cmd_remove.hxx +0 -93
  2122. data/ext/couchbase/couchbase/protocol/cmd_replace.cxx +0 -105
  2123. data/ext/couchbase/couchbase/protocol/cmd_replace.hxx +0 -130
  2124. data/ext/couchbase/couchbase/protocol/cmd_sasl_auth.cxx +0 -40
  2125. data/ext/couchbase/couchbase/protocol/cmd_sasl_auth.hxx +0 -97
  2126. data/ext/couchbase/couchbase/protocol/cmd_sasl_list_mechs.cxx +0 -48
  2127. data/ext/couchbase/couchbase/protocol/cmd_sasl_list_mechs.hxx +0 -82
  2128. data/ext/couchbase/couchbase/protocol/cmd_sasl_step.cxx +0 -40
  2129. data/ext/couchbase/couchbase/protocol/cmd_sasl_step.hxx +0 -97
  2130. data/ext/couchbase/couchbase/protocol/cmd_select_bucket.cxx +0 -36
  2131. data/ext/couchbase/couchbase/protocol/cmd_select_bucket.hxx +0 -82
  2132. data/ext/couchbase/couchbase/protocol/cmd_touch.cxx +0 -57
  2133. data/ext/couchbase/couchbase/protocol/cmd_touch.hxx +0 -84
  2134. data/ext/couchbase/couchbase/protocol/cmd_unlock.cxx +0 -48
  2135. data/ext/couchbase/couchbase/protocol/cmd_unlock.hxx +0 -81
  2136. data/ext/couchbase/couchbase/protocol/cmd_upsert.cxx +0 -104
  2137. data/ext/couchbase/couchbase/protocol/cmd_upsert.hxx +0 -125
  2138. data/ext/couchbase/couchbase/protocol/datatype.hxx +0 -48
  2139. data/ext/couchbase/couchbase/protocol/durability_level.hxx +0 -59
  2140. data/ext/couchbase/couchbase/protocol/durability_level_fmt.hxx +0 -52
  2141. data/ext/couchbase/couchbase/protocol/enhanced_error_info.hxx +0 -28
  2142. data/ext/couchbase/couchbase/protocol/enhanced_error_info_fmt.hxx +0 -44
  2143. data/ext/couchbase/couchbase/protocol/frame_info_id.hxx +0 -142
  2144. data/ext/couchbase/couchbase/protocol/frame_info_id_fmt.hxx +0 -79
  2145. data/ext/couchbase/couchbase/protocol/hello_feature.hxx +0 -186
  2146. data/ext/couchbase/couchbase/protocol/hello_feature_fmt.hxx +0 -106
  2147. data/ext/couchbase/couchbase/protocol/magic.hxx +0 -53
  2148. data/ext/couchbase/couchbase/protocol/magic_fmt.hxx +0 -58
  2149. data/ext/couchbase/couchbase/protocol/server_opcode.hxx +0 -39
  2150. data/ext/couchbase/couchbase/protocol/server_opcode_fmt.hxx +0 -46
  2151. data/ext/couchbase/couchbase/protocol/server_request.hxx +0 -121
  2152. data/ext/couchbase/couchbase/protocol/status.cxx +0 -187
  2153. data/ext/couchbase/couchbase/protocol/status.hxx +0 -180
  2154. data/ext/couchbase/couchbase/protocol/status_fmt.hxx +0 -241
  2155. data/ext/couchbase/couchbase/query_profile_mode.hxx +0 -27
  2156. data/ext/couchbase/couchbase/sasl/CMakeLists.txt +0 -16
  2157. data/ext/couchbase/couchbase/sasl/client.cc +0 -50
  2158. data/ext/couchbase/couchbase/sasl/client.h +0 -128
  2159. data/ext/couchbase/couchbase/sasl/context.cc +0 -34
  2160. data/ext/couchbase/couchbase/sasl/context.h +0 -52
  2161. data/ext/couchbase/couchbase/sasl/error.h +0 -28
  2162. data/ext/couchbase/couchbase/sasl/error_fmt.h +0 -70
  2163. data/ext/couchbase/couchbase/sasl/mechanism.cc +0 -45
  2164. data/ext/couchbase/couchbase/sasl/mechanism.h +0 -52
  2165. data/ext/couchbase/couchbase/sasl/plain/plain.cc +0 -39
  2166. data/ext/couchbase/couchbase/sasl/plain/plain.h +0 -54
  2167. data/ext/couchbase/couchbase/sasl/scram-sha/scram-sha.cc +0 -372
  2168. data/ext/couchbase/couchbase/sasl/scram-sha/scram-sha.h +0 -184
  2169. data/ext/couchbase/couchbase/sasl/scram-sha/stringutils.cc +0 -82
  2170. data/ext/couchbase/couchbase/sasl/scram-sha/stringutils.h +0 -48
  2171. data/ext/couchbase/couchbase/search_highlight_style.hxx +0 -23
  2172. data/ext/couchbase/couchbase/search_scan_consistency.hxx +0 -23
  2173. data/ext/couchbase/couchbase/service_type.hxx +0 -31
  2174. data/ext/couchbase/couchbase/service_type_fmt.hxx +0 -61
  2175. data/ext/couchbase/couchbase/timeout_defaults.hxx +0 -42
  2176. data/ext/couchbase/couchbase/topology/CMakeLists.txt +0 -9
  2177. data/ext/couchbase/couchbase/topology/capabilities.hxx +0 -43
  2178. data/ext/couchbase/couchbase/topology/capabilities_fmt.hxx +0 -106
  2179. data/ext/couchbase/couchbase/topology/collections_manifest.hxx +0 -42
  2180. data/ext/couchbase/couchbase/topology/collections_manifest_fmt.hxx +0 -52
  2181. data/ext/couchbase/couchbase/topology/collections_manifest_json.hxx +0 -50
  2182. data/ext/couchbase/couchbase/topology/configuration.cxx +0 -223
  2183. data/ext/couchbase/couchbase/topology/configuration.hxx +0 -120
  2184. data/ext/couchbase/couchbase/topology/configuration_fmt.hxx +0 -166
  2185. data/ext/couchbase/couchbase/topology/configuration_json.hxx +0 -259
  2186. data/ext/couchbase/couchbase/topology/error_map.hxx +0 -149
  2187. data/ext/couchbase/couchbase/topology/error_map_fmt.hxx +0 -94
  2188. data/ext/couchbase/couchbase/topology/error_map_json.hxx +0 -88
  2189. data/ext/couchbase/couchbase/tracing/CMakeLists.txt +0 -9
  2190. data/ext/couchbase/couchbase/tracing/constants.hxx +0 -274
  2191. data/ext/couchbase/couchbase/tracing/noop_tracer.hxx +0 -55
  2192. data/ext/couchbase/couchbase/tracing/threshold_logging_options.hxx +0 -68
  2193. data/ext/couchbase/couchbase/tracing/threshold_logging_tracer.cxx +0 -422
  2194. data/ext/couchbase/couchbase/tracing/threshold_logging_tracer.hxx +0 -49
  2195. data/ext/couchbase/couchbase/utils/CMakeLists.txt +0 -17
  2196. data/ext/couchbase/couchbase/utils/byteswap.cxx +0 -45
  2197. data/ext/couchbase/couchbase/utils/byteswap.hxx +0 -49
  2198. data/ext/couchbase/couchbase/utils/connection_string.cxx +0 -420
  2199. data/ext/couchbase/couchbase/utils/connection_string.hxx +0 -76
  2200. data/ext/couchbase/couchbase/utils/crc32.hxx +0 -48
  2201. data/ext/couchbase/couchbase/utils/duration_parser.cxx +0 -193
  2202. data/ext/couchbase/couchbase/utils/duration_parser.hxx +0 -45
  2203. data/ext/couchbase/couchbase/utils/join_strings.hxx +0 -65
  2204. data/ext/couchbase/couchbase/utils/json.cxx +0 -71
  2205. data/ext/couchbase/couchbase/utils/json.hxx +0 -37
  2206. data/ext/couchbase/couchbase/utils/json_stream_control.hxx +0 -32
  2207. data/ext/couchbase/couchbase/utils/json_streaming_lexer.cxx +0 -394
  2208. data/ext/couchbase/couchbase/utils/json_streaming_lexer.hxx +0 -58
  2209. data/ext/couchbase/couchbase/utils/movable_function.hxx +0 -110
  2210. data/ext/couchbase/couchbase/utils/name_codec.hxx +0 -41
  2211. data/ext/couchbase/couchbase/utils/unsigned_leb128.hxx +0 -181
  2212. data/ext/couchbase/couchbase/utils/url_codec.cxx +0 -404
  2213. data/ext/couchbase/couchbase/utils/url_codec.hxx +0 -72
  2214. data/ext/couchbase/couchbase/view_scan_consistency.hxx +0 -27
  2215. data/ext/couchbase/couchbase/view_sort_order.hxx +0 -23
  2216. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/append.hpp +0 -217
  2217. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/as_tuple.hpp +0 -246
  2218. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/deferred.hpp +0 -104
  2219. data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/prepend.hpp +0 -217
  2220. data/ext/couchbase/third_party/asio/asio/include/asio/impl/compose.hpp +0 -707
  2221. data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/dependent_true.hpp +0 -16
@@ -17,21 +17,26 @@
17
17
 
18
18
  #include "test_helper_integration.hxx"
19
19
 
20
- #include <couchbase/management/analytics_link.hxx>
21
- #include <couchbase/operations/management/analytics.hxx>
22
- #include <couchbase/operations/management/bucket.hxx>
23
- #include <couchbase/operations/management/collections.hxx>
24
- #include <couchbase/operations/management/eventing.hxx>
25
- #include <couchbase/operations/management/freeform.hxx>
26
- #include <couchbase/operations/management/query.hxx>
27
- #include <couchbase/operations/management/search.hxx>
28
- #include <couchbase/operations/management/user.hxx>
29
-
30
- static couchbase::operations::management::bucket_get_response
20
+ #include "core/management/analytics_link.hxx"
21
+ #include "core/operations/management/analytics.hxx"
22
+ #include "core/operations/management/bucket.hxx"
23
+ #include "core/operations/management/collections.hxx"
24
+ #include "core/operations/management/eventing.hxx"
25
+ #include "core/operations/management/freeform.hxx"
26
+ #include "core/operations/management/query.hxx"
27
+ #include "core/operations/management/search.hxx"
28
+ #include "core/operations/management/user.hxx"
29
+ #include "couchbase/cluster.hxx"
30
+ #include "couchbase/create_primary_query_index_options.hxx"
31
+ #include "couchbase/create_query_index_options.hxx"
32
+ #include "couchbase/drop_query_index_options.hxx"
33
+ #include "couchbase/watch_query_indexes_options.hxx"
34
+
35
+ static couchbase::core::operations::management::bucket_get_response
31
36
  wait_for_bucket_created(test::utils::integration_test_guard& integration, const std::string& bucket_name)
32
37
  {
33
38
  test::utils::wait_until_bucket_healthy(integration.cluster, bucket_name);
34
- couchbase::operations::management::bucket_get_request req{ bucket_name };
39
+ couchbase::core::operations::management::bucket_get_request req{ bucket_name };
35
40
  auto resp = test::utils::execute(integration.cluster, req);
36
41
  return resp;
37
42
  }
@@ -53,6 +58,10 @@ TEST_CASE("integration: bucket management", "[integration]")
53
58
  {
54
59
  test::utils::integration_test_guard integration;
55
60
 
61
+ if (!integration.cluster_version().supports_bucket_management()) {
62
+ return;
63
+ }
64
+
56
65
  if (!integration.cluster_version().supports_gcccp()) {
57
66
  test::utils::open_bucket(integration.cluster, integration.ctx.bucket);
58
67
  }
@@ -61,30 +70,30 @@ TEST_CASE("integration: bucket management", "[integration]")
61
70
 
62
71
  SECTION("crud")
63
72
  {
64
- couchbase::management::cluster::bucket_settings bucket_settings;
73
+ couchbase::core::management::cluster::bucket_settings bucket_settings;
65
74
  bucket_settings.name = bucket_name;
66
75
  bucket_settings.ram_quota_mb = 100;
67
76
  bucket_settings.num_replicas = 1;
68
- bucket_settings.bucket_type = couchbase::management::cluster::bucket_type::couchbase;
69
- bucket_settings.eviction_policy = couchbase::management::cluster::bucket_eviction_policy::value_only;
77
+ bucket_settings.bucket_type = couchbase::core::management::cluster::bucket_type::couchbase;
78
+ bucket_settings.eviction_policy = couchbase::core::management::cluster::bucket_eviction_policy::value_only;
70
79
  bucket_settings.flush_enabled = true;
71
80
  if (integration.cluster_version().is_enterprise()) {
72
81
  bucket_settings.max_expiry = 10;
73
- bucket_settings.compression_mode = couchbase::management::cluster::bucket_compression::active;
82
+ bucket_settings.compression_mode = couchbase::core::management::cluster::bucket_compression::active;
74
83
  }
75
84
  bucket_settings.replica_indexes = true;
76
- bucket_settings.conflict_resolution_type = couchbase::management::cluster::bucket_conflict_resolution::sequence_number;
85
+ bucket_settings.conflict_resolution_type = couchbase::core::management::cluster::bucket_conflict_resolution::sequence_number;
77
86
 
78
87
  {
79
- couchbase::operations::management::bucket_create_request req;
88
+ couchbase::core::operations::management::bucket_create_request req;
80
89
  req.bucket = bucket_settings;
81
90
  auto resp = test::utils::execute(integration.cluster, req);
82
- REQUIRE_FALSE(resp.ctx.ec);
91
+ REQUIRE_SUCCESS(resp.ctx.ec);
83
92
  }
84
93
 
85
94
  {
86
95
  auto resp = wait_for_bucket_created(integration, bucket_name);
87
- REQUIRE_FALSE(resp.ctx.ec);
96
+ REQUIRE_SUCCESS(resp.ctx.ec);
88
97
  REQUIRE(bucket_settings.bucket_type == resp.bucket.bucket_type);
89
98
  REQUIRE(bucket_settings.name == resp.bucket.name);
90
99
  REQUIRE(Approx(bucket_settings.ram_quota_mb).margin(5) == resp.bucket.ram_quota_mb);
@@ -97,10 +106,10 @@ TEST_CASE("integration: bucket management", "[integration]")
97
106
  }
98
107
  std::uint64_t old_quota_mb{ 0 };
99
108
  {
100
- couchbase::operations::management::bucket_get_all_request req{};
109
+ couchbase::core::operations::management::bucket_get_all_request req{};
101
110
  auto resp = test::utils::execute(integration.cluster, req);
102
111
  INFO(resp.ctx.http_body)
103
- REQUIRE_FALSE(resp.ctx.ec);
112
+ REQUIRE_SUCCESS(resp.ctx.ec);
104
113
  bool found = false;
105
114
  for (const auto& bucket : resp.buckets) {
106
115
  if (bucket.name != bucket_name) {
@@ -124,38 +133,38 @@ TEST_CASE("integration: bucket management", "[integration]")
124
133
 
125
134
  {
126
135
  bucket_settings.ram_quota_mb = old_quota_mb + 20;
127
- couchbase::operations::management::bucket_update_request req;
136
+ couchbase::core::operations::management::bucket_update_request req;
128
137
  req.bucket = bucket_settings;
129
138
  auto resp = test::utils::execute(integration.cluster, req);
130
- REQUIRE_FALSE(resp.ctx.ec);
139
+ REQUIRE_SUCCESS(resp.ctx.ec);
131
140
  }
132
141
 
133
142
  auto ram_quota_updated = test::utils::wait_until([&integration, &bucket_name, old_quota_mb]() {
134
- couchbase::operations::management::bucket_get_request req{ bucket_name };
143
+ couchbase::core::operations::management::bucket_get_request req{ bucket_name };
135
144
  auto resp = test::utils::execute(integration.cluster, req);
136
145
  return !resp.ctx.ec && resp.bucket.ram_quota_mb > old_quota_mb;
137
146
  });
138
147
  REQUIRE(ram_quota_updated);
139
148
 
140
149
  {
141
- couchbase::operations::management::bucket_drop_request req{ bucket_name };
150
+ couchbase::core::operations::management::bucket_drop_request req{ bucket_name };
142
151
  auto resp = test::utils::execute(integration.cluster, req);
143
- REQUIRE_FALSE(resp.ctx.ec);
152
+ REQUIRE_SUCCESS(resp.ctx.ec);
144
153
  }
145
154
 
146
155
  {
147
- couchbase::operations::management::bucket_get_request req{ bucket_name };
156
+ couchbase::core::operations::management::bucket_get_request req{ bucket_name };
148
157
  auto resp = retry_on_error(integration, req, {});
149
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::bucket_not_found);
158
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::bucket_not_found);
150
159
  }
151
160
 
152
161
  {
153
- couchbase::operations::management::bucket_get_all_request req;
162
+ couchbase::core::operations::management::bucket_get_all_request req;
154
163
  auto resp = test::utils::execute(integration.cluster, req);
155
- REQUIRE_FALSE(resp.ctx.ec);
164
+ REQUIRE_SUCCESS(resp.ctx.ec);
156
165
  REQUIRE(!resp.buckets.empty());
157
166
  auto known_buckets =
158
- std::count_if(resp.buckets.begin(), resp.buckets.end(), [bucket_name](auto& entry) { return entry.name == bucket_name; });
167
+ std::count_if(resp.buckets.begin(), resp.buckets.end(), [&bucket_name](auto& entry) { return entry.name == bucket_name; });
159
168
  REQUIRE(known_buckets == 0);
160
169
  }
161
170
  }
@@ -164,14 +173,14 @@ TEST_CASE("integration: bucket management", "[integration]")
164
173
  {
165
174
  SECTION("flush item")
166
175
  {
167
- couchbase::document_id id{ bucket_name, "_default", "_default", test::utils::uniq_id("foo") };
176
+ couchbase::core::document_id id{ bucket_name, "_default", "_default", test::utils::uniq_id("foo") };
168
177
 
169
178
  {
170
- couchbase::operations::management::bucket_create_request req;
179
+ couchbase::core::operations::management::bucket_create_request req;
171
180
  req.bucket.name = bucket_name;
172
181
  req.bucket.flush_enabled = true;
173
182
  auto resp = test::utils::execute(integration.cluster, req);
174
- REQUIRE_FALSE(resp.ctx.ec);
183
+ REQUIRE_SUCCESS(resp.ctx.ec);
175
184
  }
176
185
 
177
186
  REQUIRE(test::utils::wait_until_bucket_healthy(integration.cluster, bucket_name));
@@ -182,114 +191,115 @@ TEST_CASE("integration: bucket management", "[integration]")
182
191
  const tao::json::value value = {
183
192
  { "a", 1.0 },
184
193
  };
185
- couchbase::operations::insert_request req{ id, couchbase::utils::json::generate(value) };
194
+ couchbase::core::operations::insert_request req{ id, couchbase::core::utils::json::generate_binary(value) };
186
195
  auto resp = test::utils::execute(integration.cluster, req);
187
- REQUIRE_FALSE(resp.ctx.ec);
196
+ REQUIRE_SUCCESS(resp.ctx.ec());
188
197
  }
189
198
 
190
199
  {
191
- couchbase::operations::get_request req{ id };
200
+ couchbase::core::operations::get_request req{ id };
192
201
  auto resp = test::utils::execute(integration.cluster, req);
193
- REQUIRE_FALSE(resp.ctx.ec);
202
+ REQUIRE_SUCCESS(resp.ctx.ec());
194
203
  }
195
204
 
196
205
  {
197
- couchbase::operations::management::bucket_flush_request req{ bucket_name };
206
+ couchbase::core::operations::management::bucket_flush_request req{ bucket_name };
198
207
  auto resp = test::utils::execute(integration.cluster, req);
199
- REQUIRE_FALSE(resp.ctx.ec);
208
+ REQUIRE_SUCCESS(resp.ctx.ec);
200
209
  }
201
210
 
202
211
  auto flushed = test::utils::wait_until([&integration, id]() {
203
- couchbase::operations::get_request req{ id };
212
+ couchbase::core::operations::get_request req{ id };
204
213
  auto resp = test::utils::execute(integration.cluster, req);
205
- return resp.ctx.ec == couchbase::error::key_value_errc::document_not_found;
214
+ return resp.ctx.ec() == couchbase::errc::key_value::document_not_found;
206
215
  });
207
216
  REQUIRE(flushed);
208
217
  }
209
218
 
210
219
  SECTION("no bucket")
211
220
  {
212
- couchbase::operations::management::bucket_flush_request req{ bucket_name };
221
+ couchbase::core::operations::management::bucket_flush_request req{ bucket_name };
213
222
  auto resp = test::utils::execute(integration.cluster, req);
214
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::bucket_not_found);
223
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::bucket_not_found);
215
224
  }
216
225
 
217
226
  SECTION("flush disabled")
218
227
  {
219
228
  {
220
- couchbase::operations::management::bucket_create_request req;
229
+ couchbase::core::operations::management::bucket_create_request req;
221
230
  req.bucket.name = bucket_name;
222
231
  req.bucket.flush_enabled = false;
223
232
  auto resp = test::utils::execute(integration.cluster, req);
224
- REQUIRE_FALSE(resp.ctx.ec);
233
+ REQUIRE_SUCCESS(resp.ctx.ec);
225
234
  }
226
235
 
227
236
  REQUIRE(test::utils::wait_until_bucket_healthy(integration.cluster, bucket_name));
228
237
 
229
238
  {
230
- couchbase::operations::management::bucket_flush_request req{ bucket_name };
239
+ couchbase::core::operations::management::bucket_flush_request req{ bucket_name };
231
240
  auto resp = test::utils::execute(integration.cluster, req);
232
- REQUIRE(resp.ctx.ec == couchbase::error::management_errc::bucket_not_flushable);
241
+ REQUIRE(resp.ctx.ec == couchbase::errc::management::bucket_not_flushable);
233
242
  }
234
243
  }
235
244
  }
236
245
 
237
- SECTION("memcached")
238
- {
246
+ if (integration.cluster_version().supports_memcached_buckets()) {
247
+ SECTION("memcached")
239
248
  {
240
- couchbase::management::cluster::bucket_settings bucket_settings;
241
- bucket_settings.name = bucket_name;
242
- bucket_settings.bucket_type = couchbase::management::cluster::bucket_type::memcached;
243
- bucket_settings.num_replicas = 0;
244
- couchbase::operations::management::bucket_create_request req{ bucket_settings };
245
- auto resp = test::utils::execute(integration.cluster, req);
246
- REQUIRE_FALSE(resp.ctx.ec);
247
- }
249
+ {
250
+ couchbase::core::management::cluster::bucket_settings bucket_settings;
251
+ bucket_settings.name = bucket_name;
252
+ bucket_settings.bucket_type = couchbase::core::management::cluster::bucket_type::memcached;
253
+ bucket_settings.num_replicas = 0;
254
+ couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
255
+ auto resp = test::utils::execute(integration.cluster, req);
256
+ REQUIRE_SUCCESS(resp.ctx.ec);
257
+ }
248
258
 
249
- {
250
- auto resp = wait_for_bucket_created(integration, bucket_name);
251
- REQUIRE_FALSE(resp.ctx.ec);
252
- REQUIRE(resp.bucket.bucket_type == couchbase::management::cluster::bucket_type::memcached);
259
+ {
260
+ auto resp = wait_for_bucket_created(integration, bucket_name);
261
+ REQUIRE_SUCCESS(resp.ctx.ec);
262
+ REQUIRE(resp.bucket.bucket_type == couchbase::core::management::cluster::bucket_type::memcached);
263
+ }
253
264
  }
254
265
  }
255
266
 
256
267
  SECTION("ephemeral")
257
268
  {
258
- couchbase::management::cluster::bucket_settings bucket_settings;
269
+ couchbase::core::management::cluster::bucket_settings bucket_settings;
259
270
  bucket_settings.name = bucket_name;
260
- bucket_settings.bucket_type = couchbase::management::cluster::bucket_type::ephemeral;
271
+ bucket_settings.bucket_type = couchbase::core::management::cluster::bucket_type::ephemeral;
261
272
 
262
273
  SECTION("default eviction")
263
274
  {
264
275
  {
265
- couchbase::operations::management::bucket_create_request req{ bucket_settings };
276
+ couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
266
277
  auto resp = test::utils::execute(integration.cluster, req);
267
- INFO(resp.error_message)
268
- REQUIRE_FALSE(resp.ctx.ec);
278
+ REQUIRE_SUCCESS(resp.ctx.ec);
269
279
  }
270
280
 
271
281
  {
272
282
  auto resp = wait_for_bucket_created(integration, bucket_name);
273
- REQUIRE_FALSE(resp.ctx.ec);
274
- REQUIRE(resp.bucket.bucket_type == couchbase::management::cluster::bucket_type::ephemeral);
275
- REQUIRE(resp.bucket.eviction_policy == couchbase::management::cluster::bucket_eviction_policy::no_eviction);
283
+ REQUIRE_SUCCESS(resp.ctx.ec);
284
+ REQUIRE(resp.bucket.bucket_type == couchbase::core::management::cluster::bucket_type::ephemeral);
285
+ REQUIRE(resp.bucket.eviction_policy == couchbase::core::management::cluster::bucket_eviction_policy::no_eviction);
276
286
  }
277
287
  }
278
288
 
279
289
  SECTION("nru eviction")
280
290
  {
281
291
  {
282
- bucket_settings.eviction_policy = couchbase::management::cluster::bucket_eviction_policy::not_recently_used;
283
- couchbase::operations::management::bucket_create_request req{ bucket_settings };
292
+ bucket_settings.eviction_policy = couchbase::core::management::cluster::bucket_eviction_policy::not_recently_used;
293
+ couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
284
294
  auto resp = test::utils::execute(integration.cluster, req);
285
- REQUIRE_FALSE(resp.ctx.ec);
295
+ REQUIRE_SUCCESS(resp.ctx.ec);
286
296
  }
287
297
 
288
298
  {
289
299
  auto resp = wait_for_bucket_created(integration, bucket_name);
290
- REQUIRE_FALSE(resp.ctx.ec);
291
- REQUIRE(resp.bucket.bucket_type == couchbase::management::cluster::bucket_type::ephemeral);
292
- REQUIRE(resp.bucket.eviction_policy == couchbase::management::cluster::bucket_eviction_policy::not_recently_used);
300
+ REQUIRE_SUCCESS(resp.ctx.ec);
301
+ REQUIRE(resp.bucket.bucket_type == couchbase::core::management::cluster::bucket_type::ephemeral);
302
+ REQUIRE(resp.bucket.eviction_policy == couchbase::core::management::cluster::bucket_eviction_policy::not_recently_used);
293
303
  }
294
304
  }
295
305
 
@@ -297,17 +307,17 @@ TEST_CASE("integration: bucket management", "[integration]")
297
307
  SECTION("storage backend")
298
308
  {
299
309
  {
300
- bucket_settings.storage_backend = couchbase::management::cluster::bucket_storage_backend::couchstore;
301
- couchbase::operations::management::bucket_create_request req{ bucket_settings };
310
+ bucket_settings.storage_backend = couchbase::core::management::cluster::bucket_storage_backend::couchstore;
311
+ couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
302
312
  auto resp = test::utils::execute(integration.cluster, req);
303
- REQUIRE_FALSE(resp.ctx.ec);
313
+ REQUIRE_SUCCESS(resp.ctx.ec);
304
314
  }
305
315
 
306
316
  {
307
317
  auto resp = wait_for_bucket_created(integration, bucket_name);
308
- REQUIRE_FALSE(resp.ctx.ec);
309
- REQUIRE(resp.bucket.bucket_type == couchbase::management::cluster::bucket_type::ephemeral);
310
- REQUIRE(resp.bucket.storage_backend == couchbase::management::cluster::bucket_storage_backend::unknown);
318
+ REQUIRE_SUCCESS(resp.ctx.ec);
319
+ REQUIRE(resp.bucket.bucket_type == couchbase::core::management::cluster::bucket_type::ephemeral);
320
+ REQUIRE(resp.bucket.storage_backend == couchbase::core::management::cluster::bucket_storage_backend::unknown);
311
321
  }
312
322
  }
313
323
  }
@@ -315,42 +325,41 @@ TEST_CASE("integration: bucket management", "[integration]")
315
325
 
316
326
  SECTION("couchbase")
317
327
  {
318
- couchbase::management::cluster::bucket_settings bucket_settings;
328
+ couchbase::core::management::cluster::bucket_settings bucket_settings;
319
329
  bucket_settings.name = bucket_name;
320
- bucket_settings.bucket_type = couchbase::management::cluster::bucket_type::couchbase;
330
+ bucket_settings.bucket_type = couchbase::core::management::cluster::bucket_type::couchbase;
321
331
 
322
332
  SECTION("default eviction")
323
333
  {
324
334
  {
325
335
 
326
- couchbase::operations::management::bucket_create_request req{ bucket_settings };
336
+ couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
327
337
  auto resp = test::utils::execute(integration.cluster, req);
328
- INFO(resp.error_message)
329
- REQUIRE_FALSE(resp.ctx.ec);
338
+ REQUIRE_SUCCESS(resp.ctx.ec);
330
339
  }
331
340
 
332
341
  {
333
342
  auto resp = wait_for_bucket_created(integration, bucket_name);
334
- REQUIRE_FALSE(resp.ctx.ec);
335
- REQUIRE(resp.bucket.bucket_type == couchbase::management::cluster::bucket_type::couchbase);
336
- REQUIRE(resp.bucket.eviction_policy == couchbase::management::cluster::bucket_eviction_policy::value_only);
343
+ REQUIRE_SUCCESS(resp.ctx.ec);
344
+ REQUIRE(resp.bucket.bucket_type == couchbase::core::management::cluster::bucket_type::couchbase);
345
+ REQUIRE(resp.bucket.eviction_policy == couchbase::core::management::cluster::bucket_eviction_policy::value_only);
337
346
  }
338
347
  }
339
348
 
340
349
  SECTION("full eviction")
341
350
  {
342
351
  {
343
- bucket_settings.eviction_policy = couchbase::management::cluster::bucket_eviction_policy::full;
344
- couchbase::operations::management::bucket_create_request req{ bucket_settings };
352
+ bucket_settings.eviction_policy = couchbase::core::management::cluster::bucket_eviction_policy::full;
353
+ couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
345
354
  auto resp = test::utils::execute(integration.cluster, req);
346
- REQUIRE_FALSE(resp.ctx.ec);
355
+ REQUIRE_SUCCESS(resp.ctx.ec);
347
356
  }
348
357
 
349
358
  {
350
359
  auto resp = wait_for_bucket_created(integration, bucket_name);
351
- REQUIRE_FALSE(resp.ctx.ec);
352
- REQUIRE(resp.bucket.bucket_type == couchbase::management::cluster::bucket_type::couchbase);
353
- REQUIRE(resp.bucket.eviction_policy == couchbase::management::cluster::bucket_eviction_policy::full);
360
+ REQUIRE_SUCCESS(resp.ctx.ec);
361
+ REQUIRE(resp.bucket.bucket_type == couchbase::core::management::cluster::bucket_type::couchbase);
362
+ REQUIRE(resp.bucket.eviction_policy == couchbase::core::management::cluster::bucket_eviction_policy::full);
354
363
  }
355
364
  }
356
365
 
@@ -360,35 +369,35 @@ TEST_CASE("integration: bucket management", "[integration]")
360
369
  SECTION("couchstore")
361
370
  {
362
371
  {
363
- bucket_settings.storage_backend = couchbase::management::cluster::bucket_storage_backend::couchstore;
364
- couchbase::operations::management::bucket_create_request req{ bucket_settings };
372
+ bucket_settings.storage_backend = couchbase::core::management::cluster::bucket_storage_backend::couchstore;
373
+ couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
365
374
  auto resp = test::utils::execute(integration.cluster, req);
366
- REQUIRE_FALSE(resp.ctx.ec);
375
+ REQUIRE_SUCCESS(resp.ctx.ec);
367
376
  }
368
377
 
369
378
  {
370
379
  auto resp = wait_for_bucket_created(integration, bucket_name);
371
- REQUIRE_FALSE(resp.ctx.ec);
372
- REQUIRE(resp.bucket.bucket_type == couchbase::management::cluster::bucket_type::couchbase);
373
- REQUIRE(resp.bucket.storage_backend == couchbase::management::cluster::bucket_storage_backend::couchstore);
380
+ REQUIRE_SUCCESS(resp.ctx.ec);
381
+ REQUIRE(resp.bucket.bucket_type == couchbase::core::management::cluster::bucket_type::couchbase);
382
+ REQUIRE(resp.bucket.storage_backend == couchbase::core::management::cluster::bucket_storage_backend::couchstore);
374
383
  }
375
384
  }
376
385
 
377
386
  SECTION("magma")
378
387
  {
379
388
  {
380
- bucket_settings.ram_quota_mb = 256;
381
- bucket_settings.storage_backend = couchbase::management::cluster::bucket_storage_backend::magma;
382
- couchbase::operations::management::bucket_create_request req{ bucket_settings };
389
+ bucket_settings.ram_quota_mb = integration.cluster_version().is_neo() ? 1'024 : 256;
390
+ bucket_settings.storage_backend = couchbase::core::management::cluster::bucket_storage_backend::magma;
391
+ couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
383
392
  auto resp = test::utils::execute(integration.cluster, req);
384
- REQUIRE_FALSE(resp.ctx.ec);
393
+ REQUIRE_SUCCESS(resp.ctx.ec);
385
394
  }
386
395
 
387
396
  {
388
397
  auto resp = wait_for_bucket_created(integration, bucket_name);
389
- REQUIRE_FALSE(resp.ctx.ec);
390
- REQUIRE(resp.bucket.bucket_type == couchbase::management::cluster::bucket_type::couchbase);
391
- REQUIRE(resp.bucket.storage_backend == couchbase::management::cluster::bucket_storage_backend::magma);
398
+ REQUIRE_SUCCESS(resp.ctx.ec);
399
+ REQUIRE(resp.bucket.bucket_type == couchbase::core::management::cluster::bucket_type::couchbase);
400
+ REQUIRE(resp.bucket.storage_backend == couchbase::core::management::cluster::bucket_storage_backend::magma);
392
401
  }
393
402
  }
394
403
  }
@@ -398,32 +407,32 @@ TEST_CASE("integration: bucket management", "[integration]")
398
407
  SECTION("update no bucket")
399
408
  {
400
409
 
401
- couchbase::management::cluster::bucket_settings bucket_settings;
410
+ couchbase::core::management::cluster::bucket_settings bucket_settings;
402
411
  bucket_settings.name = bucket_name;
403
- couchbase::operations::management::bucket_update_request req;
412
+ couchbase::core::operations::management::bucket_update_request req;
404
413
  req.bucket = bucket_settings;
405
414
  auto resp = test::utils::execute(integration.cluster, req);
406
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::bucket_not_found);
415
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::bucket_not_found);
407
416
  }
408
417
 
409
418
  if (integration.cluster_version().supports_minimum_durability_level()) {
410
419
  SECTION("minimum durability level")
411
420
  {
412
- couchbase::management::cluster::bucket_settings bucket_settings;
421
+ couchbase::core::management::cluster::bucket_settings bucket_settings;
413
422
  bucket_settings.name = bucket_name;
414
423
 
415
424
  SECTION("default")
416
425
  {
417
426
  {
418
- couchbase::operations::management::bucket_create_request req{ bucket_settings };
427
+ couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
419
428
  auto resp = test::utils::execute(integration.cluster, req);
420
- REQUIRE_FALSE(resp.ctx.ec);
429
+ REQUIRE_SUCCESS(resp.ctx.ec);
421
430
  }
422
431
 
423
432
  {
424
433
  auto resp = wait_for_bucket_created(integration, bucket_name);
425
- REQUIRE_FALSE(resp.ctx.ec);
426
- REQUIRE(resp.bucket.minimum_durability_level == couchbase::protocol::durability_level::none);
434
+ REQUIRE_SUCCESS(resp.ctx.ec);
435
+ REQUIRE(resp.bucket.minimum_durability_level == couchbase::durability_level::none);
427
436
  }
428
437
  }
429
438
 
@@ -431,17 +440,16 @@ TEST_CASE("integration: bucket management", "[integration]")
431
440
  SECTION("majority")
432
441
  {
433
442
  {
434
- bucket_settings.minimum_durability_level = couchbase::protocol::durability_level::majority;
435
- couchbase::operations::management::bucket_create_request req{ bucket_settings };
443
+ bucket_settings.minimum_durability_level = couchbase::durability_level::majority;
444
+ couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
436
445
  auto resp = test::utils::execute(integration.cluster, req);
437
- INFO(resp.error_message)
438
- REQUIRE_FALSE(resp.ctx.ec);
446
+ REQUIRE_SUCCESS(resp.ctx.ec);
439
447
  }
440
448
 
441
449
  {
442
450
  auto resp = wait_for_bucket_created(integration, bucket_name);
443
- REQUIRE_FALSE(resp.ctx.ec);
444
- REQUIRE(resp.bucket.minimum_durability_level == couchbase::protocol::durability_level::majority);
451
+ REQUIRE_SUCCESS(resp.ctx.ec);
452
+ REQUIRE(resp.bucket.minimum_durability_level == couchbase::durability_level::majority);
445
453
  }
446
454
  }
447
455
  }
@@ -452,37 +460,37 @@ TEST_CASE("integration: bucket management", "[integration]")
452
460
 
453
461
  // drop bucket if not already dropped
454
462
  {
455
- couchbase::operations::management::bucket_drop_request req{ bucket_name };
463
+ couchbase::core::operations::management::bucket_drop_request req{ bucket_name };
456
464
  test::utils::execute(integration.cluster, req);
457
465
  }
458
466
  }
459
467
 
460
- bool
461
- collection_exists(std::shared_ptr<couchbase::cluster> cluster,
462
- const std::string& bucket_name,
463
- const std::string& scope_name,
464
- const std::string& collection_name)
468
+ std::optional<couchbase::core::topology::collections_manifest::collection>
469
+ get_collection(std::shared_ptr<couchbase::core::cluster> cluster,
470
+ const std::string& bucket_name,
471
+ const std::string& scope_name,
472
+ const std::string& collection_name)
465
473
  {
466
- couchbase::operations::management::scope_get_all_request req{ bucket_name };
474
+ couchbase::core::operations::management::scope_get_all_request req{ bucket_name };
467
475
  auto resp = test::utils::execute(cluster, req);
468
476
  if (!resp.ctx.ec) {
469
477
  for (const auto& scope : resp.manifest.scopes) {
470
478
  if (scope.name == scope_name) {
471
479
  for (const auto& collection : scope.collections) {
472
480
  if (collection.name == collection_name) {
473
- return true;
481
+ return collection;
474
482
  }
475
483
  }
476
484
  }
477
485
  }
478
486
  }
479
- return false;
487
+ return std::nullopt;
480
488
  }
481
489
 
482
490
  bool
483
- scope_exists(std::shared_ptr<couchbase::cluster> cluster, const std::string& bucket_name, const std::string& scope_name)
491
+ scope_exists(std::shared_ptr<couchbase::core::cluster> cluster, const std::string& bucket_name, const std::string& scope_name)
484
492
  {
485
- couchbase::operations::management::scope_get_all_request req{ bucket_name };
493
+ couchbase::core::operations::management::scope_get_all_request req{ bucket_name };
486
494
  auto resp = test::utils::execute(cluster, req);
487
495
  if (!resp.ctx.ec) {
488
496
  for (const auto& scope : resp.manifest.scopes) {
@@ -497,6 +505,7 @@ scope_exists(std::shared_ptr<couchbase::cluster> cluster, const std::string& buc
497
505
  TEST_CASE("integration: collection management", "[integration]")
498
506
  {
499
507
  test::utils::integration_test_guard integration;
508
+ test::utils::open_bucket(integration.cluster, integration.ctx.bucket);
500
509
 
501
510
  if (!integration.cluster_version().supports_collections()) {
502
511
  return;
@@ -504,11 +513,14 @@ TEST_CASE("integration: collection management", "[integration]")
504
513
 
505
514
  auto scope_name = test::utils::uniq_id("scope");
506
515
  auto collection_name = test::utils::uniq_id("collection");
516
+ std::uint32_t max_expiry = 5;
507
517
 
508
518
  {
509
- couchbase::operations::management::scope_create_request req{ integration.ctx.bucket, scope_name };
519
+ couchbase::core::operations::management::scope_create_request req{ integration.ctx.bucket, scope_name };
510
520
  auto resp = test::utils::execute(integration.cluster, req);
511
- REQUIRE_FALSE(resp.ctx.ec);
521
+ REQUIRE_SUCCESS(resp.ctx.ec);
522
+ auto created = test::utils::wait_until_collection_manifest_propagated(integration.cluster, integration.ctx.bucket, resp.uid);
523
+ REQUIRE(created);
512
524
  }
513
525
 
514
526
  {
@@ -517,56 +529,66 @@ TEST_CASE("integration: collection management", "[integration]")
517
529
  }
518
530
 
519
531
  {
520
- couchbase::operations::management::scope_create_request req{ integration.ctx.bucket, scope_name };
532
+ couchbase::core::operations::management::scope_create_request req{ integration.ctx.bucket, scope_name };
521
533
  auto resp = test::utils::execute(integration.cluster, req);
522
- REQUIRE(resp.ctx.ec == couchbase::error::management_errc::scope_exists);
534
+ REQUIRE(resp.ctx.ec == couchbase::errc::management::scope_exists);
523
535
  }
524
536
 
525
537
  {
526
- couchbase::operations::management::collection_create_request req{ integration.ctx.bucket, scope_name, collection_name };
538
+ couchbase::core::operations::management::collection_create_request req{ integration.ctx.bucket, scope_name, collection_name };
527
539
  if (integration.cluster_version().is_enterprise()) {
528
- req.max_expiry = 5;
540
+ req.max_expiry = max_expiry;
529
541
  }
530
542
  auto resp = test::utils::execute(integration.cluster, req);
531
- REQUIRE_FALSE(resp.ctx.ec);
543
+ REQUIRE_SUCCESS(resp.ctx.ec);
544
+ auto created = test::utils::wait_until_collection_manifest_propagated(integration.cluster, integration.ctx.bucket, resp.uid);
545
+ REQUIRE(created);
532
546
  }
533
547
 
534
548
  {
535
- auto created = test::utils::wait_until(
536
- [&]() { return collection_exists(integration.cluster, integration.ctx.bucket, scope_name, collection_name); });
549
+ couchbase::core::topology::collections_manifest::collection collection;
550
+ auto created = test::utils::wait_until([&]() {
551
+ auto coll = get_collection(integration.cluster, integration.ctx.bucket, scope_name, collection_name);
552
+ if (coll) {
553
+ collection = *coll;
554
+ return true;
555
+ }
556
+ return false;
557
+ });
537
558
  REQUIRE(created);
559
+ if (integration.cluster_version().is_enterprise()) {
560
+ REQUIRE(collection.max_expiry == max_expiry);
561
+ }
538
562
  }
539
563
 
540
- // TODO: Check collection was created with correct max expiry when supported
541
-
542
564
  {
543
- couchbase::operations::management::collection_create_request req{ integration.ctx.bucket, scope_name, collection_name };
565
+ couchbase::core::operations::management::collection_create_request req{ integration.ctx.bucket, scope_name, collection_name };
544
566
  auto resp = test::utils::execute(integration.cluster, req);
545
- REQUIRE(resp.ctx.ec == couchbase::error::management_errc::collection_exists);
567
+ REQUIRE(resp.ctx.ec == couchbase::errc::management::collection_exists);
546
568
  }
547
569
 
548
570
  {
549
- couchbase::operations::management::collection_drop_request req{ integration.ctx.bucket, scope_name, collection_name };
571
+ couchbase::core::operations::management::collection_drop_request req{ integration.ctx.bucket, scope_name, collection_name };
550
572
  auto resp = test::utils::execute(integration.cluster, req);
551
- REQUIRE_FALSE(resp.ctx.ec);
573
+ REQUIRE_SUCCESS(resp.ctx.ec);
552
574
  }
553
575
 
554
576
  {
555
577
  auto dropped = test::utils::wait_until(
556
- [&]() { return !collection_exists(integration.cluster, integration.ctx.bucket, scope_name, collection_name); });
578
+ [&]() { return !get_collection(integration.cluster, integration.ctx.bucket, scope_name, collection_name).has_value(); });
557
579
  REQUIRE(dropped);
558
580
  }
559
581
 
560
582
  {
561
- couchbase::operations::management::collection_drop_request req{ integration.ctx.bucket, scope_name, collection_name };
583
+ couchbase::core::operations::management::collection_drop_request req{ integration.ctx.bucket, scope_name, collection_name };
562
584
  auto resp = test::utils::execute(integration.cluster, req);
563
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::collection_not_found);
585
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::collection_not_found);
564
586
  }
565
587
 
566
588
  {
567
- couchbase::operations::management::scope_drop_request req{ integration.ctx.bucket, scope_name };
589
+ couchbase::core::operations::management::scope_drop_request req{ integration.ctx.bucket, scope_name };
568
590
  auto resp = test::utils::execute(integration.cluster, req);
569
- REQUIRE_FALSE(resp.ctx.ec);
591
+ REQUIRE_SUCCESS(resp.ctx.ec);
570
592
  }
571
593
 
572
594
  {
@@ -575,15 +597,15 @@ TEST_CASE("integration: collection management", "[integration]")
575
597
  }
576
598
 
577
599
  {
578
- couchbase::operations::management::scope_drop_request req{ integration.ctx.bucket, scope_name };
600
+ couchbase::core::operations::management::scope_drop_request req{ integration.ctx.bucket, scope_name };
579
601
  auto resp = test::utils::execute(integration.cluster, req);
580
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::scope_not_found);
602
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::scope_not_found);
581
603
  }
582
604
  }
583
605
 
584
606
  void
585
- assert_user_and_metadata(const couchbase::management::rbac::user_and_metadata& user,
586
- const couchbase::management::rbac::user_and_metadata& expected)
607
+ assert_user_and_metadata(const couchbase::core::management::rbac::user_and_metadata& user,
608
+ const couchbase::core::management::rbac::user_and_metadata& expected)
587
609
  {
588
610
  REQUIRE(user.username == expected.username);
589
611
  REQUIRE(user.groups == expected.groups);
@@ -634,23 +656,23 @@ TEST_CASE("integration: user groups management", "[integration]")
634
656
  auto group_name_1 = test::utils::uniq_id("group");
635
657
  auto group_name_2 = test::utils::uniq_id("group");
636
658
 
637
- couchbase::management::rbac::group group{};
659
+ couchbase::core::management::rbac::group group{};
638
660
  group.name = group_name_1;
639
661
  group.description = "this is a test";
640
- group.roles = { couchbase::management::rbac::role{ "replication_target", integration.ctx.bucket },
641
- couchbase::management::rbac::role{ "replication_admin" } };
662
+ group.roles = { couchbase::core::management::rbac::role{ "replication_target", integration.ctx.bucket },
663
+ couchbase::core::management::rbac::role{ "replication_admin" } };
642
664
  group.ldap_group_reference = "asda=price";
643
665
 
644
666
  {
645
- couchbase::operations::management::group_upsert_request req{ group };
667
+ couchbase::core::operations::management::group_upsert_request req{ group };
646
668
  auto resp = test::utils::execute(integration.cluster, req);
647
- REQUIRE_FALSE(resp.ctx.ec);
669
+ REQUIRE_SUCCESS(resp.ctx.ec);
648
670
  }
649
671
 
650
672
  {
651
- couchbase::operations::management::group_get_request req{ group_name_1 };
652
- auto resp = retry_on_error(integration, req, couchbase::error::management_errc::group_not_found);
653
- REQUIRE_FALSE(resp.ctx.ec);
673
+ couchbase::core::operations::management::group_get_request req{ group_name_1 };
674
+ auto resp = retry_on_error(integration, req, couchbase::errc::management::group_not_found);
675
+ REQUIRE_SUCCESS(resp.ctx.ec);
654
676
  REQUIRE(resp.group.name == group.name);
655
677
  REQUIRE(resp.group.description == group.description);
656
678
  REQUIRE(resp.group.ldap_group_reference == group.ldap_group_reference);
@@ -658,15 +680,15 @@ TEST_CASE("integration: user groups management", "[integration]")
658
680
 
659
681
  {
660
682
  group.description = "this is still a test";
661
- group.roles.push_back(couchbase::management::rbac::role{ "query_system_catalog" });
662
- couchbase::operations::management::group_upsert_request req{ group };
683
+ group.roles.push_back(couchbase::core::management::rbac::role{ "query_system_catalog" });
684
+ couchbase::core::operations::management::group_upsert_request req{ group };
663
685
  auto resp = test::utils::execute(integration.cluster, req);
664
- REQUIRE_FALSE(resp.ctx.ec);
686
+ REQUIRE_SUCCESS(resp.ctx.ec);
665
687
  }
666
688
 
667
689
  {
668
690
  auto updated = test::utils::wait_until([&]() {
669
- couchbase::operations::management::group_get_request req{ group_name_1 };
691
+ couchbase::core::operations::management::group_get_request req{ group_name_1 };
670
692
  auto resp = test::utils::execute(integration.cluster, req);
671
693
  return !resp.ctx.ec && resp.group.description == group.description;
672
694
  });
@@ -675,53 +697,53 @@ TEST_CASE("integration: user groups management", "[integration]")
675
697
 
676
698
  {
677
699
  group.name = group_name_2;
678
- couchbase::operations::management::group_upsert_request req{ group };
700
+ couchbase::core::operations::management::group_upsert_request req{ group };
679
701
  auto resp = test::utils::execute(integration.cluster, req);
680
- REQUIRE_FALSE(resp.ctx.ec);
702
+ REQUIRE_SUCCESS(resp.ctx.ec);
681
703
  }
682
704
 
683
705
  {
684
706
  auto created = test::utils::wait_until([&]() {
685
- couchbase::operations::management::group_get_all_request req{ group_name_2 };
707
+ couchbase::core::operations::management::group_get_all_request req{ group_name_2 };
686
708
  auto resp = test::utils::execute(integration.cluster, req);
687
- REQUIRE_FALSE(resp.ctx.ec);
709
+ REQUIRE_SUCCESS(resp.ctx.ec);
688
710
  return resp.groups.size() == 2;
689
711
  });
690
712
  REQUIRE(created);
691
713
  }
692
714
 
693
715
  {
694
- couchbase::operations::management::role_get_all_request req{};
716
+ couchbase::core::operations::management::role_get_all_request req{};
695
717
  auto resp = test::utils::execute(integration.cluster, req);
696
- REQUIRE_FALSE(resp.ctx.ec);
718
+ REQUIRE_SUCCESS(resp.ctx.ec);
697
719
  REQUIRE(resp.roles.size() > 0);
698
720
  }
699
721
 
700
722
  {
701
- couchbase::operations::management::group_drop_request req{ group_name_1 };
723
+ couchbase::core::operations::management::group_drop_request req{ group_name_1 };
702
724
  auto resp = test::utils::execute(integration.cluster, req);
703
- REQUIRE_FALSE(resp.ctx.ec);
725
+ REQUIRE_SUCCESS(resp.ctx.ec);
704
726
  }
705
727
 
706
728
  {
707
- couchbase::operations::management::group_drop_request req{ group_name_2 };
729
+ couchbase::core::operations::management::group_drop_request req{ group_name_2 };
708
730
  auto resp = test::utils::execute(integration.cluster, req);
709
- REQUIRE_FALSE(resp.ctx.ec);
731
+ REQUIRE_SUCCESS(resp.ctx.ec);
710
732
  }
711
733
  }
712
734
 
713
735
  SECTION("get missing group")
714
736
  {
715
- couchbase::operations::management::group_get_request req{ test::utils::uniq_id("group") };
737
+ couchbase::core::operations::management::group_get_request req{ test::utils::uniq_id("group") };
716
738
  auto resp = test::utils::execute(integration.cluster, req);
717
- REQUIRE(resp.ctx.ec == couchbase::error::management_errc::group_not_found);
739
+ REQUIRE(resp.ctx.ec == couchbase::errc::management::group_not_found);
718
740
  }
719
741
 
720
742
  SECTION("drop missing group")
721
743
  {
722
- couchbase::operations::management::group_drop_request req{ test::utils::uniq_id("group") };
744
+ couchbase::core::operations::management::group_drop_request req{ test::utils::uniq_id("group") };
723
745
  auto resp = test::utils::execute(integration.cluster, req);
724
- REQUIRE(resp.ctx.ec == couchbase::error::management_errc::group_not_found);
746
+ REQUIRE(resp.ctx.ec == couchbase::errc::management::group_not_found);
725
747
  }
726
748
 
727
749
  SECTION("user and groups crud")
@@ -729,60 +751,60 @@ TEST_CASE("integration: user groups management", "[integration]")
729
751
  auto group_name = test::utils::uniq_id("group");
730
752
  auto user_name = test::utils::uniq_id("user");
731
753
 
732
- couchbase::management::rbac::group group{};
754
+ couchbase::core::management::rbac::group group{};
733
755
  group.name = group_name;
734
756
  group.description = "this is a test";
735
- group.roles = { couchbase::management::rbac::role{ "replication_target", integration.ctx.bucket },
736
- couchbase::management::rbac::role{ "replication_admin" } };
757
+ group.roles = { couchbase::core::management::rbac::role{ "replication_target", integration.ctx.bucket },
758
+ couchbase::core::management::rbac::role{ "replication_admin" } };
737
759
 
738
760
  {
739
- couchbase::operations::management::group_upsert_request req{ group };
761
+ couchbase::core::operations::management::group_upsert_request req{ group };
740
762
  auto resp = test::utils::execute(integration.cluster, req);
741
- REQUIRE_FALSE(resp.ctx.ec);
763
+ REQUIRE_SUCCESS(resp.ctx.ec);
742
764
  }
743
765
 
744
- couchbase::management::rbac::user user{ user_name };
766
+ couchbase::core::management::rbac::user user{ user_name };
745
767
  user.display_name = "display_name";
746
768
  user.password = "password";
747
769
  user.roles = {
748
- couchbase::management::rbac::role{ "bucket_admin", integration.ctx.bucket },
770
+ couchbase::core::management::rbac::role{ "bucket_admin", integration.ctx.bucket },
749
771
  };
750
772
  user.groups = { group_name };
751
773
 
752
774
  {
753
- couchbase::operations::management::user_upsert_request req{};
775
+ couchbase::core::operations::management::user_upsert_request req{};
754
776
  req.user = user;
755
- auto resp = retry_on_error(integration, req, couchbase::error::common_errc::invalid_argument);
756
- REQUIRE_FALSE(resp.ctx.ec);
777
+ auto resp = retry_on_error(integration, req, couchbase::errc::common::invalid_argument);
778
+ REQUIRE_SUCCESS(resp.ctx.ec);
757
779
  }
758
780
 
759
- couchbase::management::rbac::user_and_metadata expected{};
781
+ couchbase::core::management::rbac::user_and_metadata expected{};
760
782
  expected.username = user.username;
761
783
  expected.display_name = user.display_name;
762
784
  expected.roles = user.roles;
763
785
  expected.groups = user.groups;
764
- expected.domain = couchbase::management::rbac::auth_domain::local;
786
+ expected.domain = couchbase::core::management::rbac::auth_domain::local;
765
787
 
766
- couchbase::management::rbac::role_and_origins expected_role_1{};
788
+ couchbase::core::management::rbac::role_and_origins expected_role_1{};
767
789
  expected_role_1.name = "bucket_admin";
768
790
  expected_role_1.bucket = integration.ctx.bucket;
769
- expected_role_1.origins = { couchbase::management::rbac::origin{ "user" } };
791
+ expected_role_1.origins = { couchbase::core::management::rbac::origin{ "user" } };
770
792
 
771
- couchbase::management::rbac::role_and_origins expected_role_2{};
793
+ couchbase::core::management::rbac::role_and_origins expected_role_2{};
772
794
  expected_role_2.name = "replication_target";
773
795
  expected_role_2.bucket = integration.ctx.bucket;
774
- expected_role_2.origins = { couchbase::management::rbac::origin{ "group", group_name } };
796
+ expected_role_2.origins = { couchbase::core::management::rbac::origin{ "group", group_name } };
775
797
 
776
- couchbase::management::rbac::role_and_origins expected_role_3{};
798
+ couchbase::core::management::rbac::role_and_origins expected_role_3{};
777
799
  expected_role_3.name = "replication_admin";
778
- expected_role_3.origins = { couchbase::management::rbac::origin{ "group", group_name } };
800
+ expected_role_3.origins = { couchbase::core::management::rbac::origin{ "group", group_name } };
779
801
 
780
802
  expected.effective_roles = { expected_role_1, expected_role_2, expected_role_3 };
781
803
 
782
804
  {
783
- couchbase::operations::management::user_get_request req{ user_name };
784
- auto resp = retry_on_error(integration, req, couchbase::error::management_errc::user_not_found);
785
- REQUIRE_FALSE(resp.ctx.ec);
805
+ couchbase::core::operations::management::user_get_request req{ user_name };
806
+ auto resp = retry_on_error(integration, req, couchbase::errc::management::user_not_found);
807
+ REQUIRE_SUCCESS(resp.ctx.ec);
786
808
  assert_user_and_metadata(resp.user, expected);
787
809
  }
788
810
 
@@ -790,27 +812,27 @@ TEST_CASE("integration: user groups management", "[integration]")
790
812
  expected.display_name = "different_display_name";
791
813
 
792
814
  {
793
- couchbase::operations::management::user_upsert_request req{};
815
+ couchbase::core::operations::management::user_upsert_request req{};
794
816
  req.user = user;
795
817
  auto resp = test::utils::execute(integration.cluster, req);
796
- REQUIRE_FALSE(resp.ctx.ec);
818
+ REQUIRE_SUCCESS(resp.ctx.ec);
797
819
  }
798
820
 
799
821
  {
800
- couchbase::operations::management::user_get_response resp;
822
+ couchbase::core::operations::management::user_get_response resp;
801
823
  test::utils::wait_until([&]() {
802
- couchbase::operations::management::user_get_request req{ user.username };
824
+ couchbase::core::operations::management::user_get_request req{ user.username };
803
825
  resp = test::utils::execute(integration.cluster, req);
804
826
  return !resp.ctx.ec && resp.user.display_name == user.display_name;
805
827
  });
806
- REQUIRE_FALSE(resp.ctx.ec);
828
+ REQUIRE_SUCCESS(resp.ctx.ec);
807
829
  assert_user_and_metadata(resp.user, expected);
808
830
  }
809
831
 
810
832
  {
811
- couchbase::operations::management::user_get_all_request req{};
833
+ couchbase::core::operations::management::user_get_all_request req{};
812
834
  auto resp = test::utils::execute(integration.cluster, req);
813
- REQUIRE_FALSE(resp.ctx.ec);
835
+ REQUIRE_SUCCESS(resp.ctx.ec);
814
836
  REQUIRE_FALSE(resp.users.empty());
815
837
  auto upserted_user =
816
838
  std::find_if(resp.users.begin(), resp.users.end(), [&user_name](const auto& u) { return u.username == user_name; });
@@ -819,15 +841,15 @@ TEST_CASE("integration: user groups management", "[integration]")
819
841
  }
820
842
 
821
843
  {
822
- couchbase::operations::management::user_drop_request req{ user_name };
844
+ couchbase::core::operations::management::user_drop_request req{ user_name };
823
845
  auto resp = test::utils::execute(integration.cluster, req);
824
- REQUIRE_FALSE(resp.ctx.ec);
846
+ REQUIRE_SUCCESS(resp.ctx.ec);
825
847
  }
826
848
 
827
849
  {
828
- couchbase::operations::management::group_drop_request req{ group_name };
850
+ couchbase::core::operations::management::group_drop_request req{ group_name };
829
851
  auto resp = test::utils::execute(integration.cluster, req);
830
- REQUIRE_FALSE(resp.ctx.ec);
852
+ REQUIRE_SUCCESS(resp.ctx.ec);
831
853
  }
832
854
  }
833
855
  }
@@ -836,31 +858,98 @@ TEST_CASE("integration: user management", "[integration]")
836
858
  {
837
859
  test::utils::integration_test_guard integration;
838
860
 
861
+ if (!integration.cluster_version().supports_user_management()) {
862
+ return;
863
+ }
864
+
839
865
  if (!integration.cluster_version().supports_gcccp()) {
840
866
  test::utils::open_bucket(integration.cluster, integration.ctx.bucket);
841
867
  }
842
868
 
843
869
  SECTION("get missing user")
844
870
  {
845
- couchbase::operations::management::user_get_request req{ test::utils::uniq_id("user") };
871
+ couchbase::core::operations::management::user_get_request req{ test::utils::uniq_id("user") };
846
872
  auto resp = test::utils::execute(integration.cluster, req);
847
- REQUIRE(resp.ctx.ec == couchbase::error::management_errc::user_not_found);
873
+ REQUIRE(resp.ctx.ec == couchbase::errc::management::user_not_found);
848
874
  }
849
875
 
850
876
  SECTION("drop missing user")
851
877
  {
852
- couchbase::operations::management::user_drop_request req{ test::utils::uniq_id("user") };
878
+ couchbase::core::operations::management::user_drop_request req{ test::utils::uniq_id("user") };
853
879
  auto resp = test::utils::execute(integration.cluster, req);
854
- REQUIRE(resp.ctx.ec == couchbase::error::management_errc::user_not_found);
880
+ REQUIRE(resp.ctx.ec == couchbase::errc::management::user_not_found);
855
881
  }
856
882
 
857
883
  SECTION("get roles")
858
884
  {
859
- couchbase::operations::management::role_get_all_request req{};
885
+ couchbase::core::operations::management::role_get_all_request req{};
860
886
  auto resp = test::utils::execute(integration.cluster, req);
861
- REQUIRE_FALSE(resp.ctx.ec);
887
+ REQUIRE_SUCCESS(resp.ctx.ec);
862
888
  REQUIRE(resp.roles.size() > 0);
863
889
  }
890
+
891
+ if (integration.cluster_version().is_enterprise()) {
892
+
893
+ SECTION("change user password")
894
+ {
895
+ asio::io_context io;
896
+ auto guard = asio::make_work_guard(io);
897
+ std::thread io_thread([&io]() { io.run(); });
898
+ auto user_name = test::utils::uniq_id("newUser");
899
+
900
+ // Create options
901
+ auto options_original = couchbase::cluster_options(integration.ctx.username, integration.ctx.password);
902
+ auto options_outdated = couchbase::cluster_options(user_name, integration.ctx.password);
903
+ auto options_updated = couchbase::cluster_options(user_name, "newPassword");
904
+
905
+ // Create new user and upsert
906
+ couchbase::core::management::rbac::user new_user{ user_name };
907
+ new_user.display_name = "change_password_user";
908
+ new_user.password = integration.ctx.password;
909
+ new_user.roles = {
910
+ couchbase::core::management::rbac::role{ "admin" },
911
+ };
912
+ auto [cluster, ec] = couchbase::cluster::connect(io, integration.ctx.connection_string, options_original).get();
913
+ auto coreCluster = cluster.core();
914
+ couchbase::core::operations::management::user_upsert_request upsertReq{};
915
+ upsertReq.user = new_user;
916
+ auto upsertResp = test::utils::execute(coreCluster, upsertReq);
917
+ REQUIRE_SUCCESS(upsertResp.ctx.ec);
918
+ test::utils::wait_until_user_present(integration.cluster, user_name);
919
+ cluster.close();
920
+ guard.reset();
921
+ io_thread.join();
922
+
923
+ // Connect with new credentials and change password
924
+ asio::io_context io2;
925
+ auto guard2 = asio::make_work_guard(io2);
926
+ std::thread io_thread2([&io2]() { io2.run(); });
927
+ auto [cluster_new, ec_new] = couchbase::cluster::connect(io2, integration.ctx.connection_string, options_outdated).get();
928
+ auto coreCluster_new = cluster_new.core();
929
+ couchbase::core::operations::management::change_password_request changePasswordReq{};
930
+ changePasswordReq.newPassword = "newPassword";
931
+ auto changePasswordResp = test::utils::execute(coreCluster_new, changePasswordReq);
932
+ REQUIRE_SUCCESS(changePasswordResp.ctx.ec);
933
+ test::utils::wait_until_cluster_connected(user_name, changePasswordReq.newPassword, integration.ctx.connection_string);
934
+ cluster_new.close();
935
+ guard2.reset();
936
+ io_thread2.join();
937
+
938
+ // Connect with old credentials, should fail
939
+ asio::io_context io3;
940
+ auto guard3 = asio::make_work_guard(io3);
941
+ std::thread io_thread3([&io3]() { io3.run(); });
942
+ auto [cluster_fail, ec_fail] = couchbase::cluster::connect(io3, integration.ctx.connection_string, options_outdated).get();
943
+ REQUIRE(ec_fail == couchbase::errc::common::authentication_failure);
944
+
945
+ // Make connection with new credentials, should succeed
946
+ auto [cluster_success, ec_success] = couchbase::cluster::connect(io3, integration.ctx.connection_string, options_updated).get();
947
+ REQUIRE_SUCCESS(ec_success);
948
+ cluster_success.close();
949
+ guard3.reset();
950
+ io_thread3.join();
951
+ }
952
+ }
864
953
  }
865
954
 
866
955
  TEST_CASE("integration: user management collections roles", "[integration]")
@@ -868,7 +957,8 @@ TEST_CASE("integration: user management collections roles", "[integration]")
868
957
  test::utils::integration_test_guard integration;
869
958
  test::utils::open_bucket(integration.cluster, integration.ctx.bucket);
870
959
 
871
- if (!integration.cluster_version().supports_collections() || integration.cluster_version().is_community()) {
960
+ if (!integration.cluster_version().supports_user_management() || !integration.cluster_version().supports_collections() ||
961
+ integration.cluster_version().is_community()) {
872
962
  return;
873
963
  }
874
964
 
@@ -877,39 +967,39 @@ TEST_CASE("integration: user management collections roles", "[integration]")
877
967
  auto user_name = test::utils::uniq_id("user");
878
968
 
879
969
  {
880
- couchbase::operations::management::scope_create_request req{ integration.ctx.bucket, scope_name };
970
+ couchbase::core::operations::management::scope_create_request req{ integration.ctx.bucket, scope_name };
881
971
  auto resp = test::utils::execute(integration.cluster, req);
882
- REQUIRE_FALSE(resp.ctx.ec);
972
+ REQUIRE_SUCCESS(resp.ctx.ec);
883
973
  auto created = test::utils::wait_until_collection_manifest_propagated(integration.cluster, integration.ctx.bucket, resp.uid);
884
974
  REQUIRE(created);
885
975
  }
886
976
 
887
977
  {
888
- couchbase::operations::management::collection_create_request req{ integration.ctx.bucket, scope_name, collection_name };
978
+ couchbase::core::operations::management::collection_create_request req{ integration.ctx.bucket, scope_name, collection_name };
889
979
  auto resp = test::utils::execute(integration.cluster, req);
890
- REQUIRE_FALSE(resp.ctx.ec);
980
+ REQUIRE_SUCCESS(resp.ctx.ec);
891
981
  auto created = test::utils::wait_until_collection_manifest_propagated(integration.cluster, integration.ctx.bucket, resp.uid);
892
982
  REQUIRE(created);
893
983
  }
894
984
 
895
- couchbase::management::rbac::user user{ user_name };
985
+ couchbase::core::management::rbac::user user{ user_name };
896
986
  user.display_name = "display_name";
897
987
  user.password = "password";
898
988
  user.roles = {
899
- couchbase::management::rbac::role{ "data_reader", integration.ctx.bucket, scope_name },
989
+ couchbase::core::management::rbac::role{ "data_reader", integration.ctx.bucket, scope_name },
900
990
  };
901
991
 
902
992
  {
903
- couchbase::operations::management::user_upsert_request req{};
993
+ couchbase::core::operations::management::user_upsert_request req{};
904
994
  req.user = user;
905
995
  auto resp = test::utils::execute(integration.cluster, req);
906
- REQUIRE_FALSE(resp.ctx.ec);
996
+ REQUIRE_SUCCESS(resp.ctx.ec);
907
997
  }
908
998
 
909
999
  {
910
- couchbase::operations::management::user_get_request req{ user_name };
911
- auto resp = retry_on_error(integration, req, couchbase::error::management_errc::user_not_found);
912
- REQUIRE_FALSE(resp.ctx.ec);
1000
+ couchbase::core::operations::management::user_get_request req{ user_name };
1001
+ auto resp = retry_on_error(integration, req, couchbase::errc::management::user_not_found);
1002
+ REQUIRE_SUCCESS(resp.ctx.ec);
913
1003
  REQUIRE(resp.user.roles.size() == 1);
914
1004
  REQUIRE(resp.user.roles[0].name == "data_reader");
915
1005
  REQUIRE(resp.user.roles[0].bucket == integration.ctx.bucket);
@@ -917,20 +1007,20 @@ TEST_CASE("integration: user management collections roles", "[integration]")
917
1007
  }
918
1008
 
919
1009
  user.roles = {
920
- couchbase::management::rbac::role{ "data_reader", integration.ctx.bucket, scope_name, collection_name },
1010
+ couchbase::core::management::rbac::role{ "data_reader", integration.ctx.bucket, scope_name, collection_name },
921
1011
  };
922
1012
 
923
1013
  {
924
- couchbase::operations::management::user_upsert_request req{};
1014
+ couchbase::core::operations::management::user_upsert_request req{};
925
1015
  req.user = user;
926
1016
  auto resp = test::utils::execute(integration.cluster, req);
927
- REQUIRE_FALSE(resp.ctx.ec);
1017
+ REQUIRE_SUCCESS(resp.ctx.ec);
928
1018
  }
929
1019
 
930
1020
  {
931
- couchbase::operations::management::user_get_request req{ user_name };
1021
+ couchbase::core::operations::management::user_get_request req{ user_name };
932
1022
  auto resp = test::utils::execute(integration.cluster, req);
933
- REQUIRE_FALSE(resp.ctx.ec);
1023
+ REQUIRE_SUCCESS(resp.ctx.ec);
934
1024
  REQUIRE(resp.user.roles.size() == 1);
935
1025
  REQUIRE(resp.user.roles[0].name == "data_reader");
936
1026
  REQUIRE(resp.user.roles[0].bucket == integration.ctx.bucket);
@@ -943,191 +1033,406 @@ TEST_CASE("integration: query index management", "[integration]")
943
1033
  {
944
1034
  test::utils::integration_test_guard integration;
945
1035
 
946
- if (!integration.cluster_version().supports_query_index_management()) {
947
- return;
948
- }
1036
+ if (integration.cluster_version().supports_bucket_management()) {
1037
+ SECTION("primary index")
1038
+ {
1039
+ auto bucket_name = test::utils::uniq_id("bucket");
949
1040
 
950
- auto bucket_name = test::utils::uniq_id("bucket");
951
- auto index_name = test::utils::uniq_id("index");
1041
+ {
1042
+ couchbase::core::operations::management::bucket_create_request req;
1043
+ req.bucket.name = bucket_name;
1044
+ req.bucket.bucket_type = couchbase::core::management::cluster::bucket_type::couchbase;
1045
+ req.bucket.num_replicas = 0;
1046
+ auto resp = test::utils::execute(integration.cluster, req);
1047
+ }
952
1048
 
953
- {
954
- couchbase::operations::management::bucket_create_request req;
955
- req.bucket.name = bucket_name;
956
- req.bucket.bucket_type = couchbase::management::cluster::bucket_type::couchbase;
957
- req.bucket.num_replicas = 0;
958
- auto resp = test::utils::execute(integration.cluster, req);
959
- }
1049
+ REQUIRE(!wait_for_bucket_created(integration, bucket_name).ctx.ec);
1050
+ SECTION("core API")
1051
+ {
960
1052
 
961
- REQUIRE(!wait_for_bucket_created(integration, bucket_name).ctx.ec);
1053
+ {
1054
+ couchbase::core::operations::management::query_index_create_response resp;
1055
+ bool operation_completed = test::utils::wait_until([&integration, &bucket_name, &resp]() {
1056
+ couchbase::core::operations::management::query_index_create_request req{};
1057
+ req.bucket_name = bucket_name;
1058
+ req.is_primary = true;
1059
+ resp = test::utils::execute(integration.cluster, req);
1060
+ return resp.ctx.ec != couchbase::errc::common::bucket_not_found;
1061
+ });
1062
+ REQUIRE(operation_completed);
1063
+ REQUIRE_SUCCESS(resp.ctx.ec);
1064
+ }
962
1065
 
963
- SECTION("primary index")
964
- {
965
- {
966
- couchbase::operations::management::query_index_create_response resp;
967
- bool operation_completed = test::utils::wait_until([&integration, &bucket_name, &resp]() {
968
- couchbase::operations::management::query_index_create_request req{};
969
- req.bucket_name = bucket_name;
970
- req.is_primary = true;
971
- resp = test::utils::execute(integration.cluster, req);
972
- return resp.ctx.ec != couchbase::error::common_errc::bucket_not_found;
973
- });
974
- REQUIRE(operation_completed);
975
- REQUIRE_FALSE(resp.ctx.ec);
976
- }
1066
+ {
1067
+ couchbase::core::operations::management::query_index_get_all_request req{};
1068
+ req.bucket_name = bucket_name;
1069
+ auto resp = test::utils::execute(integration.cluster, req);
1070
+ REQUIRE_SUCCESS(resp.ctx.ec);
1071
+ REQUIRE(resp.indexes.size() == 1);
1072
+ REQUIRE(resp.indexes[0].name == "#primary");
1073
+ REQUIRE(resp.indexes[0].is_primary);
1074
+ }
977
1075
 
978
- {
979
- couchbase::operations::management::query_index_get_all_request req{};
980
- req.bucket_name = bucket_name;
981
- auto resp = test::utils::execute(integration.cluster, req);
982
- REQUIRE_FALSE(resp.ctx.ec);
983
- REQUIRE(resp.indexes.size() == 1);
984
- REQUIRE(resp.indexes[0].name == "#primary");
985
- REQUIRE(resp.indexes[0].is_primary);
1076
+ {
1077
+ couchbase::core::operations::management::bucket_drop_request req{ bucket_name };
1078
+ test::utils::execute(integration.cluster, req);
1079
+ }
1080
+ }
1081
+ SECTION("public api")
1082
+ {
1083
+ couchbase::cluster c(integration.cluster);
1084
+ {
1085
+ std::error_code ec;
1086
+ bool operation_completed = test::utils::wait_until([&bucket_name, &ec, &c]() {
1087
+ auto ctx = c.query_indexes().create_primary_index(bucket_name, {}).get();
1088
+ ec = ctx.ec();
1089
+ return ec != couchbase::errc::common::bucket_not_found;
1090
+ });
1091
+ REQUIRE(operation_completed);
1092
+ REQUIRE_SUCCESS(ec);
1093
+ }
1094
+ {
1095
+ auto [ctx, indexes] = c.query_indexes().get_all_indexes(bucket_name, {}).get();
1096
+ REQUIRE_SUCCESS(ctx.ec());
1097
+ REQUIRE(indexes.size() == 1);
1098
+ REQUIRE(indexes[0].name == "#primary");
1099
+ REQUIRE(indexes[0].is_primary);
1100
+ }
1101
+ {
1102
+ auto ctx =
1103
+ c.query_indexes().watch_indexes(bucket_name, {}, couchbase::watch_query_indexes_options().watch_primary(true)).get();
1104
+ REQUIRE_SUCCESS(ctx.ec());
1105
+ }
1106
+ {
1107
+ auto ctx = c.query_indexes().drop_primary_index(bucket_name, {}).get();
1108
+ REQUIRE_SUCCESS(ctx.ec());
1109
+ }
1110
+ }
986
1111
  }
987
1112
  }
988
1113
 
989
1114
  SECTION("non primary index")
990
1115
  {
1116
+ SECTION("core API")
991
1117
  {
992
- couchbase::operations::management::query_index_create_response resp;
993
- bool operation_completed = test::utils::wait_until([&integration, &bucket_name, &index_name, &resp]() {
994
- couchbase::operations::management::query_index_create_request req{};
995
- req.bucket_name = bucket_name;
1118
+ auto index_name = test::utils::uniq_id("index");
1119
+ {
1120
+ couchbase::core::operations::management::query_index_create_response resp;
1121
+ bool operation_completed = test::utils::wait_until([&integration, &index_name, &resp]() {
1122
+ couchbase::core::operations::management::query_index_create_request req{};
1123
+ req.bucket_name = integration.ctx.bucket;
1124
+ req.index_name = index_name;
1125
+ req.fields = { "field", "field2 DESC", "`two words` DESC" };
1126
+ resp = test::utils::execute(integration.cluster, req);
1127
+ return resp.ctx.ec != couchbase::errc::common::bucket_not_found;
1128
+ });
1129
+ REQUIRE(operation_completed);
1130
+ REQUIRE_SUCCESS(resp.ctx.ec);
1131
+ }
1132
+
1133
+ {
1134
+ couchbase::core::operations::management::query_index_create_request req{};
1135
+ req.bucket_name = integration.ctx.bucket;
996
1136
  req.index_name = index_name;
997
1137
  req.fields = { "field" };
998
- resp = test::utils::execute(integration.cluster, req);
999
- return resp.ctx.ec != couchbase::error::common_errc::bucket_not_found;
1000
- });
1001
- REQUIRE(operation_completed);
1002
- REQUIRE_FALSE(resp.ctx.ec);
1003
- }
1138
+ auto resp = test::utils::execute(integration.cluster, req);
1139
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::index_exists);
1140
+ }
1004
1141
 
1005
- {
1006
- couchbase::operations::management::query_index_create_request req{};
1007
- req.bucket_name = bucket_name;
1008
- req.index_name = index_name;
1009
- req.fields = { "field" };
1010
- auto resp = test::utils::execute(integration.cluster, req);
1011
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::index_exists);
1012
- }
1142
+ {
1143
+ couchbase::core::operations::management::query_index_create_request req{};
1144
+ req.bucket_name = integration.ctx.bucket;
1145
+ req.index_name = index_name;
1146
+ req.fields = { "field" };
1147
+ req.ignore_if_exists = true;
1148
+ auto resp = test::utils::execute(integration.cluster, req);
1149
+ REQUIRE_SUCCESS(resp.ctx.ec);
1150
+ }
1013
1151
 
1014
- {
1015
- couchbase::operations::management::query_index_create_request req{};
1016
- req.bucket_name = bucket_name;
1017
- req.index_name = index_name;
1018
- req.fields = { "field" };
1019
- req.ignore_if_exists = true;
1020
- auto resp = test::utils::execute(integration.cluster, req);
1021
- REQUIRE_FALSE(resp.ctx.ec);
1022
- }
1152
+ {
1153
+ couchbase::core::operations::management::query_index_get_all_request req{};
1154
+ req.bucket_name = integration.ctx.bucket;
1155
+ auto resp = test::utils::execute(integration.cluster, req);
1156
+ REQUIRE_SUCCESS(resp.ctx.ec);
1157
+ auto index = std::find_if(
1158
+ resp.indexes.begin(), resp.indexes.end(), [&index_name](const auto& exp_index) { return exp_index.name == index_name; });
1159
+ REQUIRE(index != resp.indexes.end());
1160
+ REQUIRE(index->name == index_name);
1161
+ REQUIRE_FALSE(index->is_primary);
1162
+ REQUIRE(index->index_key.size() == 3);
1163
+ REQUIRE(index->index_key[0] == "`field`");
1164
+ REQUIRE(index->index_key[1] == "`field2` DESC");
1165
+ REQUIRE(index->index_key[2] == "`two words` DESC");
1166
+ REQUIRE(index->bucket_name == integration.ctx.bucket);
1167
+ REQUIRE(index->state == "online");
1168
+ }
1169
+ {
1170
+ couchbase::core::operations::management::query_index_drop_request req{};
1171
+ req.bucket_name = integration.ctx.bucket;
1172
+ req.index_name = index_name;
1173
+ auto resp = test::utils::execute(integration.cluster, req);
1174
+ REQUIRE_SUCCESS(resp.ctx.ec);
1175
+ }
1023
1176
 
1024
- {
1025
- couchbase::operations::management::query_index_get_all_request req{};
1026
- req.bucket_name = bucket_name;
1027
- auto resp = test::utils::execute(integration.cluster, req);
1028
- REQUIRE_FALSE(resp.ctx.ec);
1029
- REQUIRE(resp.indexes.size() == 1);
1030
- REQUIRE(resp.indexes[0].name == index_name);
1031
- REQUIRE_FALSE(resp.indexes[0].is_primary);
1032
- REQUIRE(resp.indexes[0].index_key.size() == 1);
1033
- REQUIRE(resp.indexes[0].index_key[0] == "`field`");
1034
- REQUIRE(resp.indexes[0].bucket_name == bucket_name);
1035
- REQUIRE(resp.indexes[0].state == "online");
1177
+ {
1178
+ couchbase::core::operations::management::query_index_drop_request req{};
1179
+ req.bucket_name = integration.ctx.bucket;
1180
+ req.index_name = index_name;
1181
+ auto resp = test::utils::execute(integration.cluster, req);
1182
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::index_not_found);
1183
+ }
1036
1184
  }
1037
-
1185
+ SECTION("public API")
1038
1186
  {
1039
- couchbase::operations::management::query_index_drop_request req{};
1040
- req.bucket_name = bucket_name;
1041
- req.index_name = index_name;
1042
- auto resp = test::utils::execute(integration.cluster, req);
1043
- REQUIRE_FALSE(resp.ctx.ec);
1044
- }
1187
+ couchbase::cluster c(integration.cluster);
1188
+ auto index_name = test::utils::uniq_id("index");
1189
+ {
1190
+ std::error_code ec;
1191
+ bool operation_completed = test::utils::wait_until([&integration, &index_name, c, &ec]() {
1192
+ auto ctx = c.query_indexes()
1193
+ .create_index(integration.ctx.bucket, index_name, { "field", "field2 DESC", "`two words` DESC" }, {})
1194
+ .get();
1195
+ ec = ctx.ec();
1196
+ return ec != couchbase::errc::common::bucket_not_found;
1197
+ });
1198
+ REQUIRE(operation_completed);
1199
+ REQUIRE_SUCCESS(ec);
1200
+ }
1201
+ {
1202
+ auto ctx = c.query_indexes().watch_indexes(integration.ctx.bucket, { index_name }, {}).get();
1203
+ REQUIRE_SUCCESS(ctx.ec());
1204
+ }
1045
1205
 
1046
- {
1047
- couchbase::operations::management::query_index_drop_request req{};
1048
- req.bucket_name = bucket_name;
1049
- req.index_name = index_name;
1050
- auto resp = test::utils::execute(integration.cluster, req);
1051
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::index_not_found);
1206
+ {
1207
+ auto ctx = c.query_indexes().create_index(integration.ctx.bucket, index_name, { "field" }, {}).get();
1208
+ REQUIRE(ctx.ec() == couchbase::errc::common::index_exists);
1209
+ }
1210
+
1211
+ {
1212
+ auto ctx =
1213
+ c.query_indexes()
1214
+ .create_index(
1215
+ integration.ctx.bucket, index_name, { "field" }, couchbase::create_query_index_options().ignore_if_exists(true))
1216
+ .get();
1217
+ REQUIRE_SUCCESS(ctx.ec());
1218
+ }
1219
+
1220
+ {
1221
+ auto [ctx, indexes] = c.query_indexes().get_all_indexes(integration.ctx.bucket, {}).get();
1222
+ auto index = std::find_if(
1223
+ indexes.begin(), indexes.end(), [&index_name](const auto& exp_index) { return exp_index.name == index_name; });
1224
+ REQUIRE(index != indexes.end());
1225
+ REQUIRE(index->name == index_name);
1226
+ REQUIRE_FALSE(index->is_primary);
1227
+ REQUIRE(index->index_key.size() == 3);
1228
+ REQUIRE(index->index_key[0] == "`field`");
1229
+ REQUIRE(index->index_key[1] == "`field2` DESC");
1230
+ REQUIRE(index->index_key[2] == "`two words` DESC");
1231
+ REQUIRE(index->bucket_name == integration.ctx.bucket);
1232
+ REQUIRE(index->state == "online");
1233
+ }
1234
+ {
1235
+ auto ctx = c.query_indexes().drop_index(integration.ctx.bucket, index_name, {}).get();
1236
+ couchbase::core::operations::management::query_index_drop_request req{};
1237
+ REQUIRE_SUCCESS(ctx.ec());
1238
+ }
1239
+
1240
+ {
1241
+ auto ctx = c.query_indexes().drop_index(integration.ctx.bucket, index_name, {}).get();
1242
+ couchbase::core::operations::management::query_index_drop_request req{};
1243
+ REQUIRE(ctx.ec() == couchbase::errc::common::index_not_found);
1244
+ }
1245
+ {
1246
+ auto ctx =
1247
+ c.query_indexes()
1248
+ .drop_index(integration.ctx.bucket, index_name, couchbase::drop_query_index_options().ignore_if_not_exists(true))
1249
+ .get();
1250
+ couchbase::core::operations::management::query_index_drop_request req{};
1251
+ REQUIRE_SUCCESS(ctx.ec());
1252
+ }
1052
1253
  }
1053
1254
  }
1054
1255
 
1055
1256
  SECTION("deferred index")
1056
1257
  {
1258
+ SECTION("public API")
1057
1259
  {
1058
- couchbase::operations::management::query_index_create_response resp;
1059
- bool operation_completed = test::utils::wait_until([&integration, &bucket_name, &index_name, &resp]() {
1060
- couchbase::operations::management::query_index_create_request req{};
1061
- req.bucket_name = bucket_name;
1062
- req.index_name = index_name;
1063
- req.fields = { "field" };
1064
- req.deferred = true;
1065
- resp = test::utils::execute(integration.cluster, req);
1066
- return resp.ctx.ec != couchbase::error::common_errc::bucket_not_found;
1067
- });
1068
- REQUIRE(operation_completed);
1069
- REQUIRE_FALSE(resp.ctx.ec);
1070
- }
1260
+ couchbase::cluster c(integration.cluster);
1261
+ auto index_name = test::utils::uniq_id("index");
1262
+ {
1263
+ std::error_code ec;
1264
+ bool operation_completed = test::utils::wait_until([c, &ec, &index_name, &integration]() {
1265
+ auto ctx =
1266
+ c.query_indexes()
1267
+ .create_index(
1268
+ integration.ctx.bucket, index_name, { "field" }, couchbase::create_query_index_options().build_deferred(true))
1269
+ .get();
1270
+ ec = ctx.ec();
1271
+ return ec != couchbase::errc::common::bucket_not_found;
1272
+ });
1273
+ REQUIRE(operation_completed);
1274
+ REQUIRE_SUCCESS(ec);
1275
+ }
1071
1276
 
1072
- {
1073
- couchbase::operations::management::query_index_get_all_request req{};
1074
- req.bucket_name = bucket_name;
1075
- auto resp = test::utils::execute(integration.cluster, req);
1076
- REQUIRE_FALSE(resp.ctx.ec);
1077
- REQUIRE(resp.indexes.size() == 1);
1078
- REQUIRE(resp.indexes[0].name == index_name);
1079
- REQUIRE(resp.indexes[0].state == "deferred");
1277
+ {
1278
+ auto [ctx, indexes] = c.query_indexes().get_all_indexes(integration.ctx.bucket, {}).get();
1279
+ REQUIRE_SUCCESS(ctx.ec());
1280
+ auto index = std::find_if(
1281
+ indexes.begin(), indexes.end(), [&index_name](const auto& exp_index) { return exp_index.name == index_name; });
1282
+ REQUIRE(index != indexes.end());
1283
+ REQUIRE(index->name == index_name);
1284
+ REQUIRE(index->state == "deferred");
1285
+ }
1286
+
1287
+ {
1288
+ auto manager = couchbase::cluster(integration.cluster).query_indexes();
1289
+ auto ctx = manager.build_deferred_indexes(integration.ctx.bucket, {}).get();
1290
+ REQUIRE_SUCCESS(ctx.ec());
1291
+ }
1292
+ {
1293
+ // now wait till it is online before proceeding
1294
+ auto operation_completed = test::utils::wait_until([&integration, &index_name, c]() {
1295
+ auto [ctx, indexes] = c.query_indexes().get_all_indexes(integration.ctx.bucket, {}).get();
1296
+ if (indexes.empty()) {
1297
+ return false;
1298
+ }
1299
+ auto index = std::find_if(
1300
+ indexes.begin(), indexes.end(), [&index_name](const auto& exp_index) { return exp_index.name == index_name; });
1301
+ return index->state == "online";
1302
+ });
1303
+ REQUIRE(operation_completed);
1304
+ }
1080
1305
  }
1081
1306
 
1307
+ SECTION("core API")
1082
1308
  {
1083
- couchbase::operations::management::query_index_build_deferred_request req{};
1084
- req.bucket_name = bucket_name;
1085
- auto resp = test::utils::execute(integration.cluster, req);
1086
- REQUIRE_FALSE(resp.ctx.ec);
1087
- }
1309
+ auto index_name = test::utils::uniq_id("index");
1310
+ {
1311
+ couchbase::core::operations::management::query_index_create_response resp;
1312
+ bool operation_completed = test::utils::wait_until([&integration, &index_name, &resp]() {
1313
+ couchbase::core::operations::management::query_index_create_request req{};
1314
+ req.bucket_name = integration.ctx.bucket;
1315
+ req.index_name = index_name;
1316
+ req.fields = { "field" };
1317
+ req.deferred = true;
1318
+ resp = test::utils::execute(integration.cluster, req);
1319
+ return resp.ctx.ec != couchbase::errc::common::bucket_not_found;
1320
+ });
1321
+ REQUIRE(operation_completed);
1322
+ REQUIRE_SUCCESS(resp.ctx.ec);
1323
+ }
1324
+ {
1325
+ couchbase::core::operations::management::query_index_build_deferred_request req{};
1326
+ req.bucket_name = integration.ctx.bucket;
1327
+ auto resp = test::utils::execute(integration.cluster, req);
1328
+ REQUIRE_SUCCESS(resp.ctx.ec);
1329
+ }
1088
1330
 
1089
- test::utils::wait_until([&integration, bucket_name]() {
1090
- couchbase::operations::management::query_index_get_all_request req{};
1091
- req.bucket_name = bucket_name;
1092
- auto resp = test::utils::execute(integration.cluster, req);
1093
- if (resp.indexes.empty()) {
1094
- return false;
1331
+ {
1332
+ test::utils::wait_until([&integration, &index_name]() {
1333
+ couchbase::core::operations::management::query_index_get_all_request req{};
1334
+ req.bucket_name = integration.ctx.bucket;
1335
+ auto resp = test::utils::execute(integration.cluster, req);
1336
+ if (resp.indexes.empty()) {
1337
+ return false;
1338
+ }
1339
+ auto index = std::find_if(resp.indexes.begin(), resp.indexes.end(), [&index_name](const auto& exp_index) {
1340
+ return exp_index.name == index_name;
1341
+ });
1342
+ return index->state == "online";
1343
+ });
1095
1344
  }
1096
- return resp.indexes[0].state == "online";
1097
- });
1345
+ }
1098
1346
  }
1099
1347
 
1100
1348
  SECTION("create missing bucket")
1101
1349
  {
1102
- couchbase::operations::management::query_index_create_request req{};
1103
- req.bucket_name = "missing_bucket";
1104
- req.is_primary = true;
1105
- auto resp = test::utils::execute(integration.cluster, req);
1106
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::bucket_not_found);
1350
+ SECTION("core API")
1351
+ {
1352
+ couchbase::core::operations::management::query_index_create_request req{};
1353
+ req.bucket_name = "missing_bucket";
1354
+ req.is_primary = true;
1355
+ auto resp = test::utils::execute(integration.cluster, req);
1356
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::bucket_not_found);
1357
+ }
1358
+ SECTION("public API")
1359
+ {
1360
+ couchbase::cluster c(integration.cluster);
1361
+ auto ctx = c.query_indexes().create_primary_index("missing_bucket", {}).get();
1362
+ REQUIRE(ctx.ec() == couchbase::errc::common::bucket_not_found);
1363
+ }
1107
1364
  }
1108
1365
 
1109
1366
  SECTION("get missing bucket")
1110
1367
  {
1111
- couchbase::operations::management::query_index_get_all_request req{};
1112
- req.bucket_name = "missing_bucket";
1113
- auto resp = test::utils::execute(integration.cluster, req);
1114
- REQUIRE_FALSE(resp.ctx.ec);
1115
- REQUIRE(resp.indexes.empty());
1368
+ SECTION("core API")
1369
+ {
1370
+ couchbase::core::operations::management::query_index_get_all_request req{};
1371
+ req.bucket_name = "missing_bucket";
1372
+ auto resp = test::utils::execute(integration.cluster, req);
1373
+ REQUIRE_SUCCESS(resp.ctx.ec);
1374
+ REQUIRE(resp.indexes.empty());
1375
+ }
1376
+ SECTION("public API")
1377
+ {
1378
+ couchbase::cluster c(integration.cluster);
1379
+ auto [ctx, indexes] = c.query_indexes().get_all_indexes("missing_bucket", {}).get();
1380
+ REQUIRE_SUCCESS(ctx.ec());
1381
+ REQUIRE(indexes.empty());
1382
+ }
1116
1383
  }
1117
1384
 
1118
1385
  SECTION("drop missing bucket")
1119
1386
  {
1120
- couchbase::operations::management::query_index_drop_request req{};
1121
- req.bucket_name = "missing_bucket";
1122
- req.is_primary = true;
1123
- auto resp = test::utils::execute(integration.cluster, req);
1124
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::bucket_not_found);
1387
+ SECTION("core API")
1388
+ {
1389
+ couchbase::core::operations::management::query_index_drop_request req{};
1390
+ req.bucket_name = "missing_bucket";
1391
+ req.is_primary = true;
1392
+ auto resp = test::utils::execute(integration.cluster, req);
1393
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::bucket_not_found);
1394
+ }
1395
+ SECTION("public API")
1396
+ {
1397
+ couchbase::cluster c(integration.cluster);
1398
+ auto ctx = c.query_indexes().drop_primary_index("missing_bucket", {}).get();
1399
+ REQUIRE(ctx.ec() == couchbase::errc::common::bucket_not_found);
1400
+ }
1125
1401
  }
1126
1402
 
1127
- // drop any buckets that haven't already been dropped
1403
+ SECTION("watch missing index")
1128
1404
  {
1129
- couchbase::operations::management::bucket_drop_request req{ bucket_name };
1130
- test::utils::execute(integration.cluster, req);
1405
+ SECTION("public API")
1406
+ {
1407
+ couchbase::cluster c(integration.cluster);
1408
+ auto start = std::chrono::steady_clock::now();
1409
+ auto ctx = c.query_indexes()
1410
+ .watch_indexes(integration.ctx.bucket,
1411
+ { "idontexist", "neitherdoI" },
1412
+ couchbase::watch_query_indexes_options()
1413
+ .timeout(std::chrono::milliseconds(10000))
1414
+ .polling_interval(std::chrono::milliseconds(1000)))
1415
+ .get();
1416
+ REQUIRE(ctx.ec() == couchbase::errc::common::ambiguous_timeout);
1417
+ REQUIRE(std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now() - start).count() >= 10000);
1418
+ }
1419
+ }
1420
+ SECTION("watch missing bucket")
1421
+ {
1422
+ SECTION("public API")
1423
+ {
1424
+ couchbase::cluster c(integration.cluster);
1425
+ auto start = std::chrono::steady_clock::now();
1426
+ auto ctx = c.query_indexes()
1427
+ .watch_indexes("missing_buckeet",
1428
+ { "idontexist", "neitherdoI" },
1429
+ couchbase::watch_query_indexes_options()
1430
+ .timeout(std::chrono::milliseconds(10000))
1431
+ .polling_interval(std::chrono::milliseconds(1000)))
1432
+ .get();
1433
+ REQUIRE(ctx.ec() == couchbase::errc::common::ambiguous_timeout);
1434
+ REQUIRE(std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now() - start).count() >= 10000);
1435
+ }
1131
1436
  }
1132
1437
  }
1133
1438
 
@@ -1135,265 +1440,515 @@ TEST_CASE("integration: collections query index management", "[integration]")
1135
1440
  {
1136
1441
  test::utils::integration_test_guard integration;
1137
1442
 
1138
- if (!integration.cluster_version().supports_query_index_management()) {
1139
- return;
1140
- }
1141
1443
  if (!integration.cluster_version().supports_collections()) {
1142
1444
  return;
1143
1445
  }
1144
1446
 
1145
- auto bucket_name = test::utils::uniq_id("collections_bucket");
1146
1447
  auto index_name = test::utils::uniq_id("collections_index");
1147
1448
  auto scope_name = test::utils::uniq_id("indexscope");
1148
1449
  auto collection_name = test::utils::uniq_id("indexcollection");
1149
1450
 
1150
- {
1151
- couchbase::operations::management::bucket_create_request req;
1152
- req.bucket.name = bucket_name;
1153
- req.bucket.bucket_type = couchbase::management::cluster::bucket_type::couchbase;
1154
- req.bucket.num_replicas = 0;
1155
- auto resp = test::utils::execute(integration.cluster, req);
1156
- }
1157
-
1158
- REQUIRE(!wait_for_bucket_created(integration, bucket_name).ctx.ec);
1451
+ test::utils::open_bucket(integration.cluster, integration.ctx.bucket);
1159
1452
 
1160
1453
  // create the scope and collection that we'll do index management on.
1161
1454
  {
1162
- couchbase::operations::management::scope_create_request req{ bucket_name, scope_name };
1455
+ couchbase::core::operations::management::scope_create_request req{ integration.ctx.bucket, scope_name };
1163
1456
  auto resp = test::utils::execute(integration.cluster, req);
1164
- REQUIRE_FALSE(resp.ctx.ec);
1457
+ REQUIRE_SUCCESS(resp.ctx.ec);
1458
+ auto created = test::utils::wait_until_collection_manifest_propagated(integration.cluster, integration.ctx.bucket, resp.uid);
1459
+ REQUIRE(created);
1165
1460
  }
1166
1461
 
1167
1462
  {
1168
- couchbase::operations::management::collection_create_request req{ bucket_name, scope_name, collection_name };
1463
+ couchbase::core::operations::management::collection_create_request req{ integration.ctx.bucket, scope_name, collection_name };
1169
1464
  auto resp = test::utils::execute(integration.cluster, req);
1170
- REQUIRE_FALSE(resp.ctx.ec);
1465
+ REQUIRE_SUCCESS(resp.ctx.ec);
1466
+ auto created = test::utils::wait_until_collection_manifest_propagated(integration.cluster, integration.ctx.bucket, resp.uid);
1467
+ REQUIRE(created);
1171
1468
  }
1172
1469
 
1470
+ auto manager =
1471
+ couchbase::cluster(integration.cluster).bucket(integration.ctx.bucket).scope(scope_name).collection(collection_name).query_indexes();
1472
+
1173
1473
  SECTION("primary index")
1174
1474
  {
1475
+ SECTION("core API")
1175
1476
  {
1176
- couchbase::operations::management::query_index_create_response resp;
1177
- bool operation_completed = test::utils::wait_until([&integration, &bucket_name, &scope_name, &collection_name, &resp]() {
1178
- couchbase::operations::management::query_index_create_request req{};
1179
- req.bucket_name = bucket_name;
1477
+ {
1478
+ couchbase::core::operations::management::query_index_create_response resp;
1479
+ bool operation_completed = test::utils::wait_until([&integration, &scope_name, &collection_name, &resp]() {
1480
+ couchbase::core::operations::management::query_index_create_request req{};
1481
+ req.bucket_name = integration.ctx.bucket;
1482
+ req.scope_name = scope_name;
1483
+ req.collection_name = collection_name;
1484
+ req.is_primary = true;
1485
+ resp = test::utils::execute(integration.cluster, req);
1486
+ return resp.ctx.ec != couchbase::errc::common::bucket_not_found;
1487
+ });
1488
+ REQUIRE(operation_completed);
1489
+ REQUIRE_SUCCESS(resp.ctx.ec);
1490
+ }
1491
+
1492
+ {
1493
+ couchbase::core::operations::management::query_index_get_all_request req{};
1494
+ req.bucket_name = integration.ctx.bucket;
1180
1495
  req.scope_name = scope_name;
1181
1496
  req.collection_name = collection_name;
1182
- req.is_primary = true;
1183
- resp = test::utils::execute(integration.cluster, req);
1184
- return resp.ctx.ec != couchbase::error::common_errc::bucket_not_found;
1185
- });
1186
- REQUIRE(operation_completed);
1187
- REQUIRE_FALSE(resp.ctx.ec);
1497
+ auto resp = test::utils::execute(integration.cluster, req);
1498
+ REQUIRE_SUCCESS(resp.ctx.ec);
1499
+ REQUIRE(resp.indexes.size() == 1);
1500
+ REQUIRE(resp.indexes[0].name == "#primary");
1501
+ REQUIRE(resp.indexes[0].is_primary);
1502
+ }
1188
1503
  }
1189
-
1504
+ SECTION("public API")
1190
1505
  {
1191
- couchbase::operations::management::query_index_get_all_request req{};
1192
- req.bucket_name = bucket_name;
1193
- req.scope_name = scope_name;
1194
- req.collection_name = collection_name;
1195
- auto resp = test::utils::execute(integration.cluster, req);
1196
- REQUIRE_FALSE(resp.ctx.ec);
1197
- REQUIRE(resp.indexes.size() == 1);
1198
- REQUIRE(resp.indexes[0].name == "#primary");
1199
- REQUIRE(resp.indexes[0].is_primary);
1506
+ {
1507
+ std::error_code ec;
1508
+ bool operation_completed = test::utils::wait_until([&manager, &ec]() {
1509
+ auto ctx = manager.create_primary_index({}).get();
1510
+ ec = ctx.ec();
1511
+ return ctx.ec() != couchbase::errc::common::bucket_not_found;
1512
+ });
1513
+
1514
+ REQUIRE(operation_completed);
1515
+ REQUIRE_SUCCESS(ec);
1516
+ }
1517
+ {
1518
+ auto [ctx, indexes] = manager.get_all_indexes({}).get();
1519
+ REQUIRE_SUCCESS(ctx.ec());
1520
+ REQUIRE(indexes.size() == 1);
1521
+ REQUIRE(indexes[0].name == "#primary");
1522
+ REQUIRE(indexes[0].is_primary);
1523
+ }
1200
1524
  }
1201
1525
  }
1202
1526
 
1203
- SECTION("non primary index")
1527
+ SECTION("named primary index")
1204
1528
  {
1529
+ SECTION("core API")
1205
1530
  {
1206
- couchbase::operations::management::query_index_create_response resp;
1207
- bool operation_completed =
1208
- test::utils::wait_until([&integration, &bucket_name, &index_name, &scope_name, &collection_name, &resp]() {
1209
- couchbase::operations::management::query_index_create_request req{};
1210
- req.bucket_name = bucket_name;
1211
- req.index_name = index_name;
1212
- req.scope_name = scope_name;
1213
- req.collection_name = collection_name;
1214
- req.fields = { "field" };
1215
- resp = test::utils::execute(integration.cluster, req);
1216
- return resp.ctx.ec != couchbase::error::common_errc::bucket_not_found;
1217
- });
1218
- REQUIRE(operation_completed);
1219
- REQUIRE_FALSE(resp.ctx.ec);
1220
- }
1531
+ {
1532
+ couchbase::core::operations::management::query_index_create_response resp;
1533
+ bool operation_completed = test::utils::wait_until([&integration, &index_name, &scope_name, &collection_name, &resp]() {
1534
+ couchbase::core::operations::management::query_index_create_request req{};
1535
+ req.bucket_name = integration.ctx.bucket;
1536
+ req.scope_name = scope_name;
1537
+ req.collection_name = collection_name;
1538
+ req.index_name = index_name;
1539
+ req.is_primary = true;
1540
+ resp = test::utils::execute(integration.cluster, req);
1541
+ return resp.ctx.ec != couchbase::errc::common::bucket_not_found;
1542
+ });
1543
+ REQUIRE(operation_completed);
1544
+ REQUIRE_SUCCESS(resp.ctx.ec);
1545
+ }
1221
1546
 
1222
- {
1223
- couchbase::operations::management::query_index_create_request req{};
1224
- req.bucket_name = bucket_name;
1225
- req.index_name = index_name;
1226
- req.scope_name = scope_name;
1227
- req.collection_name = collection_name;
1228
- req.fields = { "field" };
1229
- auto resp = test::utils::execute(integration.cluster, req);
1230
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::index_exists);
1231
- }
1547
+ {
1548
+ couchbase::core::operations::management::query_index_get_all_request req{};
1549
+ req.bucket_name = integration.ctx.bucket;
1550
+ req.scope_name = scope_name;
1551
+ req.collection_name = collection_name;
1552
+ auto resp = test::utils::execute(integration.cluster, req);
1553
+ REQUIRE_SUCCESS(resp.ctx.ec);
1554
+ REQUIRE(resp.indexes.size() == 1);
1555
+ REQUIRE(resp.indexes[0].name == index_name);
1556
+ REQUIRE(resp.indexes[0].is_primary);
1557
+ }
1232
1558
 
1233
- {
1234
- couchbase::operations::management::query_index_create_request req{};
1235
- req.bucket_name = bucket_name;
1236
- req.index_name = index_name;
1237
- req.scope_name = scope_name;
1238
- req.collection_name = collection_name;
1239
- req.fields = { "field" };
1240
- req.ignore_if_exists = true;
1241
- auto resp = test::utils::execute(integration.cluster, req);
1242
- REQUIRE_FALSE(resp.ctx.ec);
1559
+ {
1560
+ couchbase::core::operations::management::query_index_drop_request req{};
1561
+ req.bucket_name = integration.ctx.bucket;
1562
+ req.index_name = index_name;
1563
+ req.scope_name = scope_name;
1564
+ req.is_primary = true;
1565
+ req.collection_name = collection_name;
1566
+ auto resp = test::utils::execute(integration.cluster, req);
1567
+ REQUIRE_SUCCESS(resp.ctx.ec);
1568
+ }
1243
1569
  }
1244
-
1570
+ SECTION("public API")
1245
1571
  {
1246
- couchbase::operations::management::query_index_get_all_request req{};
1247
- req.bucket_name = bucket_name;
1248
- req.scope_name = scope_name;
1249
- req.collection_name = collection_name;
1250
- auto resp = test::utils::execute(integration.cluster, req);
1251
- REQUIRE_FALSE(resp.ctx.ec);
1252
- REQUIRE(resp.indexes.size() == 1);
1253
- REQUIRE(resp.indexes[0].name == index_name);
1254
- REQUIRE_FALSE(resp.indexes[0].is_primary);
1255
- REQUIRE(resp.indexes[0].index_key.size() == 1);
1256
- REQUIRE(resp.indexes[0].index_key[0] == "`field`");
1257
- REQUIRE(resp.indexes[0].collection_name == collection_name);
1258
- REQUIRE(resp.indexes[0].scope_name == scope_name);
1259
- REQUIRE(resp.indexes[0].bucket_name == bucket_name);
1260
- REQUIRE(resp.indexes[0].state == "online");
1572
+ {
1573
+ std::error_code ec;
1574
+ auto operation_completed = test::utils::wait_until([&index_name, &manager, &ec]() {
1575
+ auto ctx = manager.create_primary_index(couchbase::create_primary_query_index_options().index_name(index_name)).get();
1576
+ ec = ctx.ec();
1577
+ return ec != couchbase::errc::common::bucket_not_found;
1578
+ });
1579
+ REQUIRE(operation_completed);
1580
+ REQUIRE_SUCCESS(ec);
1581
+ }
1582
+ {
1583
+ auto [ctx, indexes] = manager.get_all_indexes({}).get();
1584
+ REQUIRE_SUCCESS(ctx.ec());
1585
+ REQUIRE(indexes.size() == 1);
1586
+ REQUIRE(indexes[0].name == index_name);
1587
+ REQUIRE(indexes[0].is_primary);
1588
+ }
1589
+ {
1590
+ auto ctx = manager.watch_indexes({ index_name }, {}).get();
1591
+ REQUIRE_SUCCESS(ctx.ec());
1592
+ }
1593
+ {
1594
+ auto ctx = manager.drop_index(index_name, {}).get();
1595
+ REQUIRE_SUCCESS(ctx.ec());
1596
+ }
1261
1597
  }
1598
+ }
1262
1599
 
1600
+ SECTION("non primary index")
1601
+ {
1602
+ SECTION("core API")
1263
1603
  {
1264
- couchbase::operations::management::query_index_drop_request req{};
1265
- req.bucket_name = bucket_name;
1266
- req.index_name = index_name;
1267
- req.scope_name = scope_name;
1268
- req.collection_name = collection_name;
1269
- auto resp = test::utils::execute(integration.cluster, req);
1270
- REQUIRE_FALSE(resp.ctx.ec);
1271
- }
1272
1604
 
1605
+ {
1606
+ couchbase::core::operations::management::query_index_create_response resp;
1607
+ bool operation_completed = test::utils::wait_until([&integration, &index_name, &scope_name, &collection_name, &resp]() {
1608
+ couchbase::core::operations::management::query_index_create_request req{};
1609
+ req.bucket_name = integration.ctx.bucket;
1610
+ req.index_name = index_name;
1611
+ req.scope_name = scope_name;
1612
+ req.collection_name = collection_name;
1613
+ req.fields = { "field" };
1614
+ resp = test::utils::execute(integration.cluster, req);
1615
+ return resp.ctx.ec != couchbase::errc::common::bucket_not_found;
1616
+ });
1617
+ REQUIRE(operation_completed);
1618
+ REQUIRE_SUCCESS(resp.ctx.ec);
1619
+ }
1620
+
1621
+ {
1622
+ couchbase::core::operations::management::query_index_create_request req{};
1623
+ req.bucket_name = integration.ctx.bucket;
1624
+ req.index_name = index_name;
1625
+ req.scope_name = scope_name;
1626
+ req.collection_name = collection_name;
1627
+ req.fields = { "field" };
1628
+ auto resp = test::utils::execute(integration.cluster, req);
1629
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::index_exists);
1630
+ }
1631
+
1632
+ {
1633
+ couchbase::core::operations::management::query_index_create_request req{};
1634
+ req.bucket_name = integration.ctx.bucket;
1635
+ req.index_name = index_name;
1636
+ req.scope_name = scope_name;
1637
+ req.collection_name = collection_name;
1638
+ req.fields = { "field" };
1639
+ req.ignore_if_exists = true;
1640
+ auto resp = test::utils::execute(integration.cluster, req);
1641
+ REQUIRE_SUCCESS(resp.ctx.ec);
1642
+ }
1643
+
1644
+ {
1645
+ couchbase::core::operations::management::query_index_get_all_request req{};
1646
+ req.bucket_name = integration.ctx.bucket;
1647
+ req.scope_name = scope_name;
1648
+ req.collection_name = collection_name;
1649
+ auto resp = test::utils::execute(integration.cluster, req);
1650
+ REQUIRE_SUCCESS(resp.ctx.ec);
1651
+ REQUIRE(resp.indexes.size() == 1);
1652
+ REQUIRE(resp.indexes[0].name == index_name);
1653
+ REQUIRE_FALSE(resp.indexes[0].is_primary);
1654
+ REQUIRE(resp.indexes[0].index_key.size() == 1);
1655
+ REQUIRE(resp.indexes[0].index_key[0] == "`field`");
1656
+ REQUIRE(resp.indexes[0].collection_name == collection_name);
1657
+ REQUIRE(resp.indexes[0].scope_name == scope_name);
1658
+ REQUIRE(resp.indexes[0].bucket_name == integration.ctx.bucket);
1659
+ REQUIRE(resp.indexes[0].state == "online");
1660
+ }
1661
+
1662
+ {
1663
+ couchbase::core::operations::management::query_index_drop_request req{};
1664
+ req.bucket_name = integration.ctx.bucket;
1665
+ req.index_name = index_name;
1666
+ req.scope_name = scope_name;
1667
+ req.collection_name = collection_name;
1668
+ auto resp = test::utils::execute(integration.cluster, req);
1669
+ REQUIRE_SUCCESS(resp.ctx.ec);
1670
+ }
1671
+
1672
+ {
1673
+ couchbase::core::operations::management::query_index_drop_request req{};
1674
+ req.bucket_name = integration.ctx.bucket;
1675
+ req.index_name = index_name;
1676
+ req.scope_name = scope_name;
1677
+ req.collection_name = collection_name;
1678
+ auto resp = test::utils::execute(integration.cluster, req);
1679
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::index_not_found);
1680
+ }
1681
+ }
1682
+ SECTION("public API")
1273
1683
  {
1274
- couchbase::operations::management::query_index_drop_request req{};
1275
- req.bucket_name = bucket_name;
1276
- req.index_name = index_name;
1277
- req.scope_name = scope_name;
1278
- req.collection_name = collection_name;
1279
- auto resp = test::utils::execute(integration.cluster, req);
1280
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::index_not_found);
1684
+ {
1685
+ std::error_code ec;
1686
+ auto operation_complete = test::utils::wait_until([&manager, &ec, &index_name]() {
1687
+ ec = manager.create_index(index_name, { "field" }, {}).get().ec();
1688
+ return ec != couchbase::errc::common::bucket_not_found;
1689
+ });
1690
+ REQUIRE(operation_complete);
1691
+ REQUIRE_SUCCESS(ec);
1692
+ }
1693
+ {
1694
+ REQUIRE(manager.create_index(index_name, { "field" }, {}).get().ec() == couchbase::errc::common::index_exists);
1695
+ }
1696
+ {
1697
+ REQUIRE_SUCCESS(
1698
+ manager.create_index(index_name, { "field" }, couchbase::create_query_index_options().ignore_if_exists(true)).get().ec());
1699
+ }
1700
+ {
1701
+ REQUIRE_SUCCESS(manager.watch_indexes({ index_name }, {}).get().ec());
1702
+ auto [ctx, indexes] = manager.get_all_indexes({}).get();
1703
+ REQUIRE_SUCCESS(ctx.ec());
1704
+ REQUIRE(indexes.size() == 1);
1705
+ REQUIRE(indexes[0].name == index_name);
1706
+ REQUIRE_FALSE(indexes[0].is_primary);
1707
+ REQUIRE(indexes[0].index_key.size() == 1);
1708
+ REQUIRE(indexes[0].index_key[0] == "`field`");
1709
+ REQUIRE(indexes[0].collection_name == collection_name);
1710
+ REQUIRE(indexes[0].scope_name == scope_name);
1711
+ REQUIRE(indexes[0].bucket_name == integration.ctx.bucket);
1712
+ REQUIRE(indexes[0].state == "online");
1713
+ }
1714
+ {
1715
+ auto ctx = manager.drop_index(index_name, {}).get();
1716
+ REQUIRE_SUCCESS(ctx.ec());
1717
+ }
1718
+ {
1719
+ REQUIRE(manager.drop_index(index_name, {}).get().ec() == couchbase::errc::common::index_not_found);
1720
+ }
1721
+ {
1722
+ REQUIRE_SUCCESS(
1723
+ manager.drop_index(index_name, couchbase::drop_query_index_options().ignore_if_not_exists(true)).get().ec());
1724
+ }
1281
1725
  }
1282
1726
  }
1283
1727
 
1284
1728
  SECTION("deferred index")
1285
1729
  {
1286
- {
1287
- couchbase::operations::management::query_index_create_response resp;
1288
- bool operation_completed =
1289
- test::utils::wait_until([&integration, &bucket_name, &index_name, &scope_name, &collection_name, &resp]() {
1290
- couchbase::operations::management::query_index_create_request req{};
1291
- req.bucket_name = bucket_name;
1292
- req.index_name = index_name;
1293
- req.scope_name = scope_name;
1294
- req.collection_name = collection_name;
1295
- req.fields = { "field" };
1296
- req.deferred = true;
1297
- resp = test::utils::execute(integration.cluster, req);
1298
- return resp.ctx.ec != couchbase::error::common_errc::bucket_not_found;
1299
- });
1300
- REQUIRE(operation_completed);
1301
- REQUIRE_FALSE(resp.ctx.ec);
1302
- }
1303
1730
 
1731
+ SECTION("public API")
1304
1732
  {
1305
- couchbase::operations::management::query_index_get_all_request req{};
1306
- req.bucket_name = bucket_name;
1307
- req.scope_name = scope_name;
1308
- req.collection_name = collection_name;
1309
- auto resp = test::utils::execute(integration.cluster, req);
1310
- REQUIRE_FALSE(resp.ctx.ec);
1311
- REQUIRE(resp.indexes.size() == 1);
1312
- REQUIRE(resp.indexes[0].name == index_name);
1313
- REQUIRE(resp.indexes[0].state == "deferred");
1733
+ {
1734
+ auto ctx =
1735
+ manager.create_index(index_name, { "field" }, couchbase::create_query_index_options().build_deferred(true)).get();
1736
+ REQUIRE_SUCCESS(ctx.ec());
1737
+ }
1738
+ {
1739
+ auto [ctx, indexes] = manager.get_all_indexes({}).get();
1740
+ REQUIRE_SUCCESS(ctx.ec());
1741
+ REQUIRE(indexes.size() == 1);
1742
+ REQUIRE(indexes[0].name == index_name);
1743
+ REQUIRE(indexes[0].state == "deferred");
1744
+ }
1745
+ {
1746
+ auto ctx = manager.build_deferred_indexes({}).get();
1747
+ REQUIRE_SUCCESS(ctx.ec());
1748
+ }
1749
+ {
1750
+ auto ctx = manager.watch_indexes({ index_name }, {}).get();
1751
+ REQUIRE_SUCCESS(ctx.ec());
1752
+ }
1314
1753
  }
1315
1754
 
1755
+ SECTION("core API")
1316
1756
  {
1317
- couchbase::operations::management::query_index_build_deferred_request req{};
1318
- req.bucket_name = bucket_name;
1319
- req.scope_name = scope_name;
1320
- req.collection_name = collection_name;
1321
- auto resp = test::utils::execute(integration.cluster, req);
1322
- REQUIRE_FALSE(resp.ctx.ec);
1323
- }
1757
+ {
1758
+ couchbase::core::operations::management::query_index_create_response resp;
1759
+ bool operation_completed = test::utils::wait_until([&integration, &index_name, &scope_name, &collection_name, &resp]() {
1760
+ couchbase::core::operations::management::query_index_create_request req{};
1761
+ req.bucket_name = integration.ctx.bucket;
1762
+ req.index_name = index_name;
1763
+ req.scope_name = scope_name;
1764
+ req.collection_name = collection_name;
1765
+ req.fields = { "field" };
1766
+ req.deferred = true;
1767
+ resp = test::utils::execute(integration.cluster, req);
1768
+ return resp.ctx.ec != couchbase::errc::common::bucket_not_found;
1769
+ });
1770
+ REQUIRE(operation_completed);
1771
+ REQUIRE_SUCCESS(resp.ctx.ec);
1772
+ }
1324
1773
 
1325
- test::utils::wait_until([&integration, bucket_name, scope_name, collection_name]() {
1326
- couchbase::operations::management::query_index_get_all_request req{};
1327
- req.bucket_name = bucket_name;
1328
- req.scope_name = scope_name;
1329
- req.collection_name = collection_name;
1330
- auto resp = test::utils::execute(integration.cluster, req);
1331
- if (resp.indexes.empty()) {
1332
- return false;
1774
+ {
1775
+ couchbase::core::operations::management::query_index_get_all_request req{};
1776
+ req.bucket_name = integration.ctx.bucket;
1777
+ req.scope_name = scope_name;
1778
+ req.collection_name = collection_name;
1779
+ auto resp = test::utils::execute(integration.cluster, req);
1780
+ REQUIRE_SUCCESS(resp.ctx.ec);
1781
+ REQUIRE(resp.indexes.size() == 1);
1782
+ REQUIRE(resp.indexes[0].name == index_name);
1783
+ REQUIRE(resp.indexes[0].state == "deferred");
1333
1784
  }
1334
- return resp.indexes[0].state == "online";
1335
- });
1785
+ {
1786
+ couchbase::core::operations::management::query_index_build_deferred_request req{};
1787
+ req.bucket_name = integration.ctx.bucket;
1788
+ req.scope_name = scope_name;
1789
+ req.collection_name = collection_name;
1790
+ auto resp = test::utils::execute(integration.cluster, req);
1791
+ REQUIRE_SUCCESS(resp.ctx.ec);
1792
+ }
1793
+
1794
+ test::utils::wait_until([&integration, scope_name, collection_name]() {
1795
+ couchbase::core::operations::management::query_index_get_all_request req{};
1796
+ req.bucket_name = integration.ctx.bucket;
1797
+ req.scope_name = scope_name;
1798
+ req.collection_name = collection_name;
1799
+ auto resp = test::utils::execute(integration.cluster, req);
1800
+ if (resp.indexes.empty()) {
1801
+ return false;
1802
+ }
1803
+ return resp.indexes[0].state == "online";
1804
+ });
1805
+ }
1336
1806
  }
1337
1807
 
1338
1808
  SECTION("create missing collection")
1339
1809
  {
1340
- couchbase::operations::management::query_index_create_request req{};
1341
- req.bucket_name = bucket_name;
1342
- req.scope_name = scope_name;
1343
- req.collection_name = "missing_collection";
1344
- req.is_primary = true;
1345
- auto resp = test::utils::execute(integration.cluster, req);
1346
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::collection_not_found);
1810
+ SECTION("core API")
1811
+ {
1812
+ couchbase::core::operations::management::query_index_create_request req{};
1813
+ req.bucket_name = integration.ctx.bucket;
1814
+ req.scope_name = scope_name;
1815
+ req.collection_name = "missing_collection";
1816
+ req.is_primary = true;
1817
+ auto resp = test::utils::execute(integration.cluster, req);
1818
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::collection_not_found);
1819
+ }
1820
+ SECTION("public API")
1821
+ {
1822
+ couchbase::cluster c(integration.cluster);
1823
+ auto coll = c.bucket(integration.ctx.bucket).scope(scope_name).collection("missing_collection");
1824
+ REQUIRE(coll.query_indexes().create_primary_index({}).get().ec() == couchbase::errc::common::collection_not_found);
1825
+ }
1347
1826
  }
1348
1827
 
1349
1828
  SECTION("create missing scope")
1350
1829
  {
1351
- couchbase::operations::management::query_index_create_request req{};
1352
- req.bucket_name = bucket_name;
1353
- req.scope_name = "missing_scope";
1354
- req.collection_name = collection_name;
1355
- req.is_primary = true;
1356
- auto resp = test::utils::execute(integration.cluster, req);
1357
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::scope_not_found);
1830
+ SECTION("core API")
1831
+ {
1832
+ couchbase::core::operations::management::query_index_create_request req{};
1833
+ req.bucket_name = integration.ctx.bucket;
1834
+ req.scope_name = "missing_scope";
1835
+ req.collection_name = collection_name;
1836
+ req.is_primary = true;
1837
+ auto resp = test::utils::execute(integration.cluster, req);
1838
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::scope_not_found);
1839
+ }
1840
+ SECTION("public API")
1841
+ {
1842
+ couchbase::cluster c(integration.cluster);
1843
+ auto coll = c.bucket(integration.ctx.bucket).scope("missing scope").collection(collection_name);
1844
+ REQUIRE(coll.query_indexes().create_primary_index({}).get().ec() == couchbase::errc::common::scope_not_found);
1845
+ }
1358
1846
  }
1359
1847
 
1360
1848
  SECTION("get missing collection")
1361
1849
  {
1362
- couchbase::operations::management::query_index_get_all_request req{};
1363
- req.bucket_name = bucket_name;
1364
- req.scope_name = scope_name;
1365
- req.collection_name = "missing_collection";
1366
- auto resp = test::utils::execute(integration.cluster, req);
1367
- REQUIRE_FALSE(resp.ctx.ec);
1368
- REQUIRE(resp.indexes.empty());
1850
+ SECTION("core API")
1851
+ {
1852
+ couchbase::core::operations::management::query_index_get_all_request req{};
1853
+ req.bucket_name = integration.ctx.bucket;
1854
+ req.scope_name = scope_name;
1855
+ req.collection_name = "missing_collection";
1856
+ auto resp = test::utils::execute(integration.cluster, req);
1857
+ REQUIRE_SUCCESS(resp.ctx.ec);
1858
+ REQUIRE(resp.indexes.empty());
1859
+ }
1860
+ SECTION("public API")
1861
+ {
1862
+ couchbase::cluster c(integration.cluster);
1863
+ auto coll = c.bucket(integration.ctx.bucket).scope(scope_name).collection("missing_collection");
1864
+ auto [ctx, indexes] = coll.query_indexes().get_all_indexes({}).get();
1865
+ REQUIRE_SUCCESS(ctx.ec());
1866
+ REQUIRE(indexes.empty());
1867
+ }
1868
+ }
1869
+ SECTION("get missing scope")
1870
+ {
1871
+ SECTION("core API")
1872
+ {
1873
+ couchbase::core::operations::management::query_index_get_all_request req{};
1874
+ req.bucket_name = integration.ctx.bucket;
1875
+ req.scope_name = "missing_scope";
1876
+ req.collection_name = collection_name;
1877
+ auto resp = test::utils::execute(integration.cluster, req);
1878
+ REQUIRE_SUCCESS(resp.ctx.ec);
1879
+ REQUIRE(resp.indexes.empty());
1880
+ }
1881
+ SECTION("public API")
1882
+ {
1883
+ couchbase::cluster c(integration.cluster);
1884
+ auto coll = c.bucket(integration.ctx.bucket).scope("missing_scope").collection(collection_name);
1885
+ auto [ctx, indexes] = coll.query_indexes().get_all_indexes({}).get();
1886
+ REQUIRE_SUCCESS(ctx.ec());
1887
+ REQUIRE(indexes.empty());
1888
+ }
1369
1889
  }
1370
1890
 
1371
1891
  SECTION("drop missing collection")
1372
1892
  {
1373
- couchbase::operations::management::query_index_drop_request req{};
1374
- req.bucket_name = bucket_name;
1375
- req.scope_name = scope_name;
1376
- req.collection_name = "missing_collection";
1377
- req.is_primary = true;
1378
- auto resp = test::utils::execute(integration.cluster, req);
1379
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::collection_not_found);
1893
+ SECTION("core API")
1894
+ {
1895
+ couchbase::core::operations::management::query_index_drop_request req{};
1896
+ req.bucket_name = integration.ctx.bucket;
1897
+ req.scope_name = scope_name;
1898
+ req.collection_name = "missing_collection";
1899
+ req.is_primary = true;
1900
+ auto resp = test::utils::execute(integration.cluster, req);
1901
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::collection_not_found);
1902
+ }
1903
+ SECTION("public API")
1904
+ {
1905
+ couchbase::cluster c(integration.cluster);
1906
+ auto coll = c.bucket(integration.ctx.bucket).scope(scope_name).collection("missing_collection");
1907
+ REQUIRE(coll.query_indexes().drop_index(index_name, {}).get().ec() == couchbase::errc::common::collection_not_found);
1908
+ }
1380
1909
  }
1381
-
1382
1910
  SECTION("drop missing scope")
1383
1911
  {
1384
- couchbase::operations::management::query_index_drop_request req{};
1385
- req.bucket_name = bucket_name;
1386
- req.scope_name = "missing_scope";
1387
- req.collection_name = collection_name;
1388
- req.is_primary = true;
1389
- auto resp = test::utils::execute(integration.cluster, req);
1390
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::scope_not_found);
1912
+ SECTION("core API")
1913
+ {
1914
+ couchbase::core::operations::management::query_index_drop_request req{};
1915
+ req.bucket_name = integration.ctx.bucket;
1916
+ req.scope_name = "missing_scope";
1917
+ req.collection_name = collection_name;
1918
+ req.is_primary = true;
1919
+ auto resp = test::utils::execute(integration.cluster, req);
1920
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::scope_not_found);
1921
+ }
1922
+ SECTION("public API")
1923
+ {
1924
+ couchbase::cluster c(integration.cluster);
1925
+ auto coll = c.bucket(integration.ctx.bucket).scope("missing_scope").collection(collection_name);
1926
+ REQUIRE(coll.query_indexes().drop_index(index_name, {}).get().ec() == couchbase::errc::common::scope_not_found);
1927
+ }
1391
1928
  }
1392
-
1393
- // drop any buckets that haven't already been dropped
1929
+ SECTION("watch missing scope")
1394
1930
  {
1395
- couchbase::operations::management::bucket_drop_request req{ bucket_name };
1396
- test::utils::execute(integration.cluster, req);
1931
+ SECTION("public API")
1932
+ {
1933
+ couchbase::cluster c(integration.cluster);
1934
+ auto coll = c.bucket(integration.ctx.bucket).scope("missing_scope").collection(collection_name);
1935
+ REQUIRE(coll.query_indexes()
1936
+ .watch_indexes({ index_name }, couchbase::watch_query_indexes_options().timeout(std::chrono::seconds(5)))
1937
+ .get()
1938
+ .ec() == couchbase::errc::common::ambiguous_timeout);
1939
+ }
1940
+ }
1941
+ SECTION("watch missing collection")
1942
+ {
1943
+ SECTION("public API")
1944
+ {
1945
+ couchbase::cluster c(integration.cluster);
1946
+ auto coll = c.bucket(integration.ctx.bucket).scope(scope_name).collection("missing_collection");
1947
+ REQUIRE(coll.query_indexes()
1948
+ .watch_indexes({ index_name }, couchbase::watch_query_indexes_options().timeout(std::chrono::seconds(5)))
1949
+ .get()
1950
+ .ec() == couchbase::errc::common::ambiguous_timeout);
1951
+ }
1397
1952
  }
1398
1953
  }
1399
1954
 
@@ -1406,7 +1961,7 @@ TEST_CASE("integration: analytics index management", "[integration]")
1406
1961
  }
1407
1962
 
1408
1963
  // MB-47718
1409
- if (integration.storage_backend() == couchbase::management::cluster::bucket_storage_backend::magma) {
1964
+ if (integration.storage_backend() == couchbase::core::management::cluster::bucket_storage_backend::magma) {
1410
1965
  return;
1411
1966
  }
1412
1967
 
@@ -1417,98 +1972,98 @@ TEST_CASE("integration: analytics index management", "[integration]")
1417
1972
  auto index_name = test::utils::uniq_id("index");
1418
1973
 
1419
1974
  {
1420
- couchbase::operations::management::analytics_dataverse_create_request req{};
1975
+ couchbase::core::operations::management::analytics_dataverse_create_request req{};
1421
1976
  req.dataverse_name = dataverse_name;
1422
1977
  auto resp = test::utils::execute(integration.cluster, req);
1423
- REQUIRE_FALSE(resp.ctx.ec);
1978
+ REQUIRE_SUCCESS(resp.ctx.ec);
1424
1979
  }
1425
1980
 
1426
1981
  {
1427
- couchbase::operations::management::analytics_dataverse_create_request req{};
1982
+ couchbase::core::operations::management::analytics_dataverse_create_request req{};
1428
1983
  req.dataverse_name = dataverse_name;
1429
1984
  auto resp = test::utils::execute(integration.cluster, req);
1430
- REQUIRE(resp.ctx.ec == couchbase::error::analytics_errc::dataverse_exists);
1985
+ REQUIRE(resp.ctx.ec == couchbase::errc::analytics::dataverse_exists);
1431
1986
  }
1432
1987
 
1433
1988
  {
1434
- couchbase::operations::management::analytics_dataverse_create_request req{};
1989
+ couchbase::core::operations::management::analytics_dataverse_create_request req{};
1435
1990
  req.dataverse_name = dataverse_name;
1436
1991
  req.ignore_if_exists = true;
1437
1992
  auto resp = test::utils::execute(integration.cluster, req);
1438
- REQUIRE_FALSE(resp.ctx.ec);
1993
+ REQUIRE_SUCCESS(resp.ctx.ec);
1439
1994
  }
1440
1995
 
1441
1996
  {
1442
- couchbase::operations::management::analytics_dataset_create_request req{};
1997
+ couchbase::core::operations::management::analytics_dataset_create_request req{};
1443
1998
  req.dataset_name = dataset_name;
1444
1999
  req.bucket_name = integration.ctx.bucket;
1445
2000
  req.dataverse_name = dataverse_name;
1446
2001
  auto resp = test::utils::execute(integration.cluster, req);
1447
- REQUIRE_FALSE(resp.ctx.ec);
2002
+ REQUIRE_SUCCESS(resp.ctx.ec);
1448
2003
  }
1449
2004
 
1450
2005
  {
1451
- couchbase::operations::management::analytics_dataset_create_request req{};
2006
+ couchbase::core::operations::management::analytics_dataset_create_request req{};
1452
2007
  req.dataset_name = dataset_name;
1453
2008
  req.bucket_name = integration.ctx.bucket;
1454
2009
  req.dataverse_name = dataverse_name;
1455
2010
  auto resp = test::utils::execute(integration.cluster, req);
1456
- REQUIRE(resp.ctx.ec == couchbase::error::analytics_errc::dataset_exists);
2011
+ REQUIRE(resp.ctx.ec == couchbase::errc::analytics::dataset_exists);
1457
2012
  }
1458
2013
 
1459
2014
  {
1460
- couchbase::operations::management::analytics_dataset_create_request req{};
2015
+ couchbase::core::operations::management::analytics_dataset_create_request req{};
1461
2016
  req.dataset_name = dataset_name;
1462
2017
  req.bucket_name = integration.ctx.bucket;
1463
2018
  req.dataverse_name = dataverse_name;
1464
2019
  req.ignore_if_exists = true;
1465
2020
  auto resp = test::utils::execute(integration.cluster, req);
1466
- REQUIRE_FALSE(resp.ctx.ec);
2021
+ REQUIRE_SUCCESS(resp.ctx.ec);
1467
2022
  }
1468
2023
 
1469
2024
  {
1470
- couchbase::operations::management::analytics_index_create_request req{};
2025
+ couchbase::core::operations::management::analytics_index_create_request req{};
1471
2026
  req.dataverse_name = dataverse_name;
1472
2027
  req.dataset_name = dataset_name;
1473
2028
  req.index_name = index_name;
1474
2029
  req.fields["testkey"] = "string";
1475
2030
  auto resp = test::utils::execute(integration.cluster, req);
1476
- REQUIRE_FALSE(resp.ctx.ec);
2031
+ REQUIRE_SUCCESS(resp.ctx.ec);
1477
2032
  }
1478
2033
 
1479
2034
  {
1480
- couchbase::operations::management::analytics_index_create_request req{};
2035
+ couchbase::core::operations::management::analytics_index_create_request req{};
1481
2036
  req.dataverse_name = dataverse_name;
1482
2037
  req.dataset_name = dataset_name;
1483
2038
  req.index_name = index_name;
1484
2039
  req.fields["testkey"] = "string";
1485
2040
  auto resp = test::utils::execute(integration.cluster, req);
1486
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::index_exists);
2041
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::index_exists);
1487
2042
  }
1488
2043
 
1489
2044
  {
1490
- couchbase::operations::management::analytics_index_create_request req{};
2045
+ couchbase::core::operations::management::analytics_index_create_request req{};
1491
2046
  req.dataverse_name = dataverse_name;
1492
2047
  req.dataset_name = dataset_name;
1493
2048
  req.index_name = index_name;
1494
2049
  req.fields["testkey"] = "string";
1495
2050
  req.ignore_if_exists = true;
1496
2051
  auto resp = test::utils::execute(integration.cluster, req);
1497
- REQUIRE_FALSE(resp.ctx.ec);
2052
+ REQUIRE_SUCCESS(resp.ctx.ec);
1498
2053
  }
1499
2054
 
1500
2055
  {
1501
- couchbase::operations::management::analytics_link_connect_request req{};
2056
+ couchbase::core::operations::management::analytics_link_connect_request req{};
1502
2057
  auto resp = test::utils::execute(integration.cluster, req);
1503
- REQUIRE_FALSE(resp.ctx.ec);
2058
+ REQUIRE_SUCCESS(resp.ctx.ec);
1504
2059
  }
1505
2060
 
1506
2061
  {
1507
- couchbase::operations::management::analytics_dataset_get_all_request req{};
2062
+ couchbase::core::operations::management::analytics_dataset_get_all_request req{};
1508
2063
  auto resp = test::utils::execute(integration.cluster, req);
1509
- REQUIRE_FALSE(resp.ctx.ec);
2064
+ REQUIRE_SUCCESS(resp.ctx.ec);
1510
2065
  REQUIRE_FALSE(resp.datasets.empty());
1511
- auto dataset = std::find_if(resp.datasets.begin(), resp.datasets.end(), [dataset_name](const auto& exp_dataset) {
2066
+ auto dataset = std::find_if(resp.datasets.begin(), resp.datasets.end(), [&dataset_name](const auto& exp_dataset) {
1512
2067
  return exp_dataset.name == dataset_name;
1513
2068
  });
1514
2069
  REQUIRE(dataset != resp.datasets.end());
@@ -1518,12 +2073,12 @@ TEST_CASE("integration: analytics index management", "[integration]")
1518
2073
  }
1519
2074
 
1520
2075
  {
1521
- couchbase::operations::management::analytics_index_get_all_request req{};
2076
+ couchbase::core::operations::management::analytics_index_get_all_request req{};
1522
2077
  auto resp = test::utils::execute(integration.cluster, req);
1523
- REQUIRE_FALSE(resp.ctx.ec);
2078
+ REQUIRE_SUCCESS(resp.ctx.ec);
1524
2079
  REQUIRE_FALSE(resp.indexes.empty());
1525
2080
  auto index = std::find_if(
1526
- resp.indexes.begin(), resp.indexes.end(), [index_name](const auto& exp_index) { return exp_index.name == index_name; });
2081
+ resp.indexes.begin(), resp.indexes.end(), [&index_name](const auto& exp_index) { return exp_index.name == index_name; });
1527
2082
  REQUIRE(index != resp.indexes.end());
1528
2083
  REQUIRE(index->dataverse_name == dataverse_name);
1529
2084
  REQUIRE(index->dataset_name == dataset_name);
@@ -1531,91 +2086,91 @@ TEST_CASE("integration: analytics index management", "[integration]")
1531
2086
  }
1532
2087
 
1533
2088
  if (integration.cluster_version().supports_analytics_pending_mutations()) {
1534
- couchbase::operations::management::analytics_get_pending_mutations_request req{};
2089
+ couchbase::core::operations::management::analytics_get_pending_mutations_request req{};
1535
2090
  auto resp = test::utils::execute(integration.cluster, req);
1536
- REQUIRE_FALSE(resp.ctx.ec);
2091
+ REQUIRE_SUCCESS(resp.ctx.ec);
1537
2092
  REQUIRE(resp.stats[index_name] == 0);
1538
2093
  }
1539
2094
 
1540
2095
  {
1541
- couchbase::operations::management::analytics_link_disconnect_request req{};
2096
+ couchbase::core::operations::management::analytics_link_disconnect_request req{};
1542
2097
  auto resp = test::utils::execute(integration.cluster, req);
1543
- REQUIRE_FALSE(resp.ctx.ec);
2098
+ REQUIRE_SUCCESS(resp.ctx.ec);
1544
2099
  }
1545
2100
 
1546
2101
  {
1547
- couchbase::operations::management::analytics_index_drop_request req{};
2102
+ couchbase::core::operations::management::analytics_index_drop_request req{};
1548
2103
  req.index_name = index_name;
1549
2104
  req.dataverse_name = dataverse_name;
1550
2105
  req.dataset_name = dataset_name;
1551
2106
  auto resp = test::utils::execute(integration.cluster, req);
1552
- REQUIRE_FALSE(resp.ctx.ec);
2107
+ REQUIRE_SUCCESS(resp.ctx.ec);
1553
2108
  }
1554
2109
 
1555
2110
  {
1556
- couchbase::operations::management::analytics_index_drop_request req{};
2111
+ couchbase::core::operations::management::analytics_index_drop_request req{};
1557
2112
  req.index_name = index_name;
1558
2113
  req.dataverse_name = dataverse_name;
1559
2114
  req.dataset_name = dataset_name;
1560
2115
  auto resp = test::utils::execute(integration.cluster, req);
1561
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::index_not_found);
2116
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::index_not_found);
1562
2117
  }
1563
2118
 
1564
2119
  {
1565
- couchbase::operations::management::analytics_index_drop_request req{};
2120
+ couchbase::core::operations::management::analytics_index_drop_request req{};
1566
2121
  req.index_name = index_name;
1567
2122
  req.dataverse_name = dataverse_name;
1568
2123
  req.dataset_name = dataset_name;
1569
2124
  req.ignore_if_does_not_exist = true;
1570
2125
  auto resp = test::utils::execute(integration.cluster, req);
1571
- REQUIRE_FALSE(resp.ctx.ec);
2126
+ REQUIRE_SUCCESS(resp.ctx.ec);
1572
2127
  }
1573
2128
 
1574
2129
  {
1575
- couchbase::operations::management::analytics_dataset_drop_request req{};
2130
+ couchbase::core::operations::management::analytics_dataset_drop_request req{};
1576
2131
  req.dataverse_name = dataverse_name;
1577
2132
  req.dataset_name = dataset_name;
1578
2133
  auto resp = test::utils::execute(integration.cluster, req);
1579
- REQUIRE_FALSE(resp.ctx.ec);
2134
+ REQUIRE_SUCCESS(resp.ctx.ec);
1580
2135
  }
1581
2136
 
1582
2137
  {
1583
- couchbase::operations::management::analytics_dataset_drop_request req{};
2138
+ couchbase::core::operations::management::analytics_dataset_drop_request req{};
1584
2139
  req.dataverse_name = dataverse_name;
1585
2140
  req.dataset_name = dataset_name;
1586
2141
  auto resp = test::utils::execute(integration.cluster, req);
1587
- REQUIRE(resp.ctx.ec == couchbase::error::analytics_errc::dataset_not_found);
2142
+ REQUIRE(resp.ctx.ec == couchbase::errc::analytics::dataset_not_found);
1588
2143
  }
1589
2144
 
1590
2145
  {
1591
- couchbase::operations::management::analytics_dataset_drop_request req{};
2146
+ couchbase::core::operations::management::analytics_dataset_drop_request req{};
1592
2147
  req.dataverse_name = dataverse_name;
1593
2148
  req.dataset_name = dataset_name;
1594
2149
  req.ignore_if_does_not_exist = true;
1595
2150
  auto resp = test::utils::execute(integration.cluster, req);
1596
- REQUIRE_FALSE(resp.ctx.ec);
2151
+ REQUIRE_SUCCESS(resp.ctx.ec);
1597
2152
  }
1598
2153
 
1599
2154
  {
1600
- couchbase::operations::management::analytics_dataverse_drop_request req{};
2155
+ couchbase::core::operations::management::analytics_dataverse_drop_request req{};
1601
2156
  req.dataverse_name = dataverse_name;
1602
2157
  auto resp = test::utils::execute(integration.cluster, req);
1603
- REQUIRE_FALSE(resp.ctx.ec);
2158
+ REQUIRE_SUCCESS(resp.ctx.ec);
1604
2159
  }
1605
2160
 
1606
2161
  {
1607
- couchbase::operations::management::analytics_dataverse_drop_request req{};
2162
+ couchbase::core::operations::management::analytics_dataverse_drop_request req{};
1608
2163
  req.dataverse_name = dataverse_name;
1609
2164
  auto resp = test::utils::execute(integration.cluster, req);
1610
- REQUIRE(resp.ctx.ec == couchbase::error::analytics_errc::dataverse_not_found);
2165
+ REQUIRE(resp.ctx.ec == couchbase::errc::analytics::dataverse_not_found);
1611
2166
  }
1612
2167
 
1613
2168
  {
1614
- couchbase::operations::management::analytics_dataverse_drop_request req{};
2169
+ couchbase::core::operations::management::analytics_dataverse_drop_request req{};
1615
2170
  req.dataverse_name = dataverse_name;
1616
2171
  req.ignore_if_does_not_exist = true;
1617
2172
  auto resp = test::utils::execute(integration.cluster, req);
1618
- REQUIRE_FALSE(resp.ctx.ec);
2173
+ REQUIRE_SUCCESS(resp.ctx.ec);
1619
2174
  }
1620
2175
  }
1621
2176
 
@@ -1627,115 +2182,117 @@ TEST_CASE("integration: analytics index management", "[integration]")
1627
2182
  auto index_name = test::utils::uniq_id("index");
1628
2183
 
1629
2184
  {
1630
- couchbase::operations::management::analytics_dataverse_create_request req{};
2185
+ couchbase::core::operations::management::analytics_dataverse_create_request req{};
1631
2186
  req.dataverse_name = dataverse_name;
1632
2187
  auto resp = test::utils::execute(integration.cluster, req);
1633
- REQUIRE_FALSE(resp.ctx.ec);
2188
+ REQUIRE_SUCCESS(resp.ctx.ec);
1634
2189
  }
1635
2190
 
1636
2191
  {
1637
- couchbase::operations::management::analytics_dataset_create_request req{};
2192
+ couchbase::core::operations::management::analytics_dataset_create_request req{};
1638
2193
  req.bucket_name = integration.ctx.bucket;
1639
2194
  req.dataverse_name = dataverse_name;
1640
2195
  req.dataset_name = dataset_name;
1641
2196
  auto resp = test::utils::execute(integration.cluster, req);
1642
- REQUIRE_FALSE(resp.ctx.ec);
2197
+ REQUIRE_SUCCESS(resp.ctx.ec);
1643
2198
  }
1644
2199
 
1645
2200
  {
1646
- couchbase::operations::management::analytics_index_create_request req{};
2201
+ couchbase::core::operations::management::analytics_index_create_request req{};
1647
2202
  req.dataverse_name = dataverse_name;
1648
2203
  req.dataset_name = dataset_name;
1649
2204
  req.index_name = index_name;
1650
2205
  req.fields["testkey"] = "string";
1651
2206
  auto resp = test::utils::execute(integration.cluster, req);
1652
- REQUIRE_FALSE(resp.ctx.ec);
2207
+ REQUIRE_SUCCESS(resp.ctx.ec);
1653
2208
  }
1654
2209
 
1655
2210
  {
1656
- couchbase::operations::management::analytics_link_connect_request req{};
2211
+ couchbase::core::operations::management::analytics_link_connect_request req{};
1657
2212
  req.dataverse_name = dataverse_name;
1658
2213
  auto resp = test::utils::execute(integration.cluster, req);
1659
- REQUIRE_FALSE(resp.ctx.ec);
2214
+ REQUIRE_SUCCESS(resp.ctx.ec);
1660
2215
  }
1661
2216
 
1662
2217
  {
1663
- couchbase::operations::management::analytics_link_disconnect_request req{};
2218
+ couchbase::core::operations::management::analytics_link_disconnect_request req{};
1664
2219
  req.dataverse_name = dataverse_name;
1665
2220
  auto resp = test::utils::execute(integration.cluster, req);
1666
- REQUIRE_FALSE(resp.ctx.ec);
2221
+ REQUIRE_SUCCESS(resp.ctx.ec);
1667
2222
  }
1668
2223
 
1669
2224
  {
1670
- couchbase::operations::management::analytics_index_drop_request req{};
2225
+ couchbase::core::operations::management::analytics_index_drop_request req{};
1671
2226
  req.dataverse_name = dataverse_name;
1672
2227
  req.dataset_name = dataset_name;
1673
2228
  req.index_name = index_name;
1674
2229
  auto resp = test::utils::execute(integration.cluster, req);
1675
- REQUIRE_FALSE(resp.ctx.ec);
2230
+ REQUIRE_SUCCESS(resp.ctx.ec);
1676
2231
  }
1677
2232
 
1678
2233
  {
1679
- couchbase::operations::management::analytics_dataset_drop_request req{};
2234
+ couchbase::core::operations::management::analytics_dataset_drop_request req{};
1680
2235
  req.dataverse_name = dataverse_name;
1681
2236
  req.dataset_name = dataset_name;
1682
2237
  auto resp = test::utils::execute(integration.cluster, req);
1683
- REQUIRE_FALSE(resp.ctx.ec);
2238
+ REQUIRE_SUCCESS(resp.ctx.ec);
1684
2239
  }
1685
2240
 
1686
2241
  {
1687
- couchbase::operations::management::analytics_dataverse_drop_request req{};
2242
+ couchbase::core::operations::management::analytics_dataverse_drop_request req{};
1688
2243
  req.dataverse_name = dataverse_name;
1689
2244
  auto resp = test::utils::execute(integration.cluster, req);
1690
- REQUIRE_FALSE(resp.ctx.ec);
2245
+ REQUIRE_SUCCESS(resp.ctx.ec);
1691
2246
  }
1692
2247
  }
1693
2248
  }
1694
2249
  }
1695
2250
 
1696
2251
  void
1697
- run_s3_link_test(test::utils::integration_test_guard& integration, std::string dataverse_name, std::string link_name)
2252
+ run_s3_link_test(test::utils::integration_test_guard& integration, const std::string& dataverse_name, const std::string& link_name)
1698
2253
  {
1699
2254
  {
1700
- couchbase::operations::management::analytics_dataverse_create_request req{};
2255
+ couchbase::core::operations::management::analytics_dataverse_create_request req{};
1701
2256
  req.dataverse_name = dataverse_name;
1702
2257
  auto resp = test::utils::execute(integration.cluster, req);
1703
- REQUIRE_FALSE(resp.ctx.ec);
2258
+ REQUIRE_SUCCESS(resp.ctx.ec);
1704
2259
  }
1705
2260
 
1706
2261
  {
1707
- couchbase::management::analytics::s3_external_link link{};
2262
+ couchbase::core::management::analytics::s3_external_link link{};
1708
2263
  link.dataverse = dataverse_name;
1709
2264
  link.access_key_id = "access_key";
1710
2265
  link.secret_access_key = "secret_access_key";
1711
2266
  link.region = "us-east-1";
1712
2267
  link.service_endpoint = "service_endpoint";
1713
2268
  link.link_name = link_name;
1714
- couchbase::operations::management::analytics_link_create_request<couchbase::management::analytics::s3_external_link> req{};
2269
+ couchbase::core::operations::management::analytics_link_create_request<couchbase::core::management::analytics::s3_external_link>
2270
+ req{};
1715
2271
  req.link = link;
1716
2272
  auto resp = test::utils::execute(integration.cluster, req);
1717
- REQUIRE_FALSE(resp.ctx.ec);
2273
+ REQUIRE_SUCCESS(resp.ctx.ec);
1718
2274
  }
1719
2275
 
1720
2276
  {
1721
- couchbase::management::analytics::s3_external_link link{};
2277
+ couchbase::core::management::analytics::s3_external_link link{};
1722
2278
  link.dataverse = dataverse_name;
1723
2279
  link.access_key_id = "access_key";
1724
2280
  link.secret_access_key = "secret_access_key";
1725
2281
  link.region = "us-east-1";
1726
2282
  link.service_endpoint = "service_endpoint";
1727
2283
  link.link_name = link_name;
1728
- couchbase::operations::management::analytics_link_create_request<couchbase::management::analytics::s3_external_link> req{};
2284
+ couchbase::core::operations::management::analytics_link_create_request<couchbase::core::management::analytics::s3_external_link>
2285
+ req{};
1729
2286
  req.link = link;
1730
2287
  auto resp = test::utils::execute(integration.cluster, req);
1731
- REQUIRE(resp.ctx.ec == couchbase::error::analytics_errc::link_exists);
2288
+ REQUIRE(resp.ctx.ec == couchbase::errc::analytics::link_exists);
1732
2289
  }
1733
2290
 
1734
2291
  {
1735
- couchbase::operations::management::analytics_link_get_all_request req{};
2292
+ couchbase::core::operations::management::analytics_link_get_all_request req{};
1736
2293
  req.dataverse_name = dataverse_name;
1737
2294
  auto resp = test::utils::execute(integration.cluster, req);
1738
- REQUIRE_FALSE(resp.ctx.ec);
2295
+ REQUIRE_SUCCESS(resp.ctx.ec);
1739
2296
  REQUIRE(resp.s3.size() == 1);
1740
2297
  REQUIRE(resp.s3[0].link_name == link_name);
1741
2298
  REQUIRE(resp.s3[0].dataverse == dataverse_name);
@@ -1746,108 +2303,113 @@ run_s3_link_test(test::utils::integration_test_guard& integration, std::string d
1746
2303
  }
1747
2304
 
1748
2305
  {
1749
- couchbase::operations::management::analytics_link_get_all_request req{};
2306
+ couchbase::core::operations::management::analytics_link_get_all_request req{};
1750
2307
  req.link_type = "s3";
1751
2308
  req.dataverse_name = dataverse_name;
1752
2309
  auto resp = test::utils::execute(integration.cluster, req);
1753
- REQUIRE_FALSE(resp.ctx.ec);
2310
+ REQUIRE_SUCCESS(resp.ctx.ec);
1754
2311
  REQUIRE(resp.s3.size() == 1);
1755
2312
  REQUIRE(resp.azure_blob.empty());
1756
2313
  REQUIRE(resp.couchbase.empty());
1757
2314
  }
1758
2315
 
1759
2316
  {
1760
- couchbase::operations::management::analytics_link_get_all_request req{};
2317
+ couchbase::core::operations::management::analytics_link_get_all_request req{};
1761
2318
  req.link_type = "couchbase";
1762
2319
  req.dataverse_name = dataverse_name;
1763
2320
  auto resp = test::utils::execute(integration.cluster, req);
1764
- REQUIRE_FALSE(resp.ctx.ec);
2321
+ REQUIRE_SUCCESS(resp.ctx.ec);
1765
2322
  REQUIRE(resp.s3.empty());
1766
2323
  REQUIRE(resp.azure_blob.empty());
1767
2324
  REQUIRE(resp.couchbase.empty());
1768
2325
  }
1769
2326
 
1770
2327
  {
1771
- couchbase::management::analytics::s3_external_link link{};
2328
+ couchbase::core::management::analytics::s3_external_link link{};
1772
2329
  link.dataverse = dataverse_name;
1773
2330
  link.access_key_id = "access_key";
1774
2331
  link.secret_access_key = "secret_access_key";
1775
2332
  link.region = "eu-west-1";
1776
2333
  link.service_endpoint = "service_endpoint";
1777
2334
  link.link_name = link_name;
1778
- couchbase::operations::management::analytics_link_replace_request<couchbase::management::analytics::s3_external_link> req{};
2335
+ couchbase::core::operations::management::analytics_link_replace_request<couchbase::core::management::analytics::s3_external_link>
2336
+ req{};
1779
2337
  req.link = link;
1780
2338
  auto resp = test::utils::execute(integration.cluster, req);
1781
- REQUIRE_FALSE(resp.ctx.ec);
2339
+ REQUIRE_SUCCESS(resp.ctx.ec);
1782
2340
  }
1783
2341
 
1784
2342
  {
1785
- couchbase::operations::management::analytics_link_get_all_request req{};
2343
+ couchbase::core::operations::management::analytics_link_get_all_request req{};
1786
2344
  req.dataverse_name = dataverse_name;
1787
2345
  auto resp = test::utils::execute(integration.cluster, req);
1788
- REQUIRE_FALSE(resp.ctx.ec);
2346
+ REQUIRE_SUCCESS(resp.ctx.ec);
1789
2347
  REQUIRE(resp.s3.size() == 1);
1790
2348
  REQUIRE(resp.s3[0].region == "eu-west-1");
1791
2349
  }
1792
2350
 
1793
2351
  {
1794
- couchbase::operations::management::analytics_link_drop_request req{};
2352
+ couchbase::core::operations::management::analytics_link_drop_request req{};
1795
2353
  req.dataverse_name = dataverse_name;
1796
2354
  req.link_name = link_name;
1797
2355
  auto resp = test::utils::execute(integration.cluster, req);
1798
- REQUIRE_FALSE(resp.ctx.ec);
2356
+ REQUIRE_SUCCESS(resp.ctx.ec);
1799
2357
  }
1800
2358
 
1801
2359
  {
1802
- couchbase::operations::management::analytics_link_drop_request req{};
2360
+ couchbase::core::operations::management::analytics_link_drop_request req{};
1803
2361
  req.dataverse_name = dataverse_name;
1804
2362
  req.link_name = link_name;
1805
2363
  auto resp = test::utils::execute(integration.cluster, req);
1806
- REQUIRE(resp.ctx.ec == couchbase::error::analytics_errc::link_not_found);
2364
+ REQUIRE(resp.ctx.ec == couchbase::errc::analytics::link_not_found);
1807
2365
  }
1808
2366
  }
1809
2367
 
1810
2368
  void
1811
- run_azure_link_test(test::utils::integration_test_guard& integration, std::string dataverse_name, std::string link_name)
2369
+ run_azure_link_test(test::utils::integration_test_guard& integration, const std::string& dataverse_name, const std::string& link_name)
1812
2370
  {
1813
2371
  {
1814
- couchbase::operations::management::analytics_dataverse_create_request req{};
2372
+ couchbase::core::operations::management::analytics_dataverse_create_request req{};
1815
2373
  req.dataverse_name = dataverse_name;
1816
2374
  auto resp = test::utils::execute(integration.cluster, req);
1817
- REQUIRE_FALSE(resp.ctx.ec);
2375
+ REQUIRE_SUCCESS(resp.ctx.ec);
1818
2376
  }
1819
2377
 
1820
2378
  {
1821
- couchbase::management::analytics::azure_blob_external_link link{};
2379
+ couchbase::core::management::analytics::azure_blob_external_link link{};
1822
2380
  link.dataverse = dataverse_name;
1823
2381
  link.connection_string = "connection_string";
1824
2382
  link.blob_endpoint = "blob_endpoint";
1825
2383
  link.endpoint_suffix = "endpoint_suffix";
1826
2384
  link.link_name = link_name;
1827
- couchbase::operations::management::analytics_link_create_request<couchbase::management::analytics::azure_blob_external_link> req{};
2385
+ couchbase::core::operations::management::analytics_link_create_request<
2386
+ couchbase::core::management::analytics::azure_blob_external_link>
2387
+ req{};
1828
2388
  req.link = link;
1829
2389
  auto resp = test::utils::execute(integration.cluster, req);
1830
- REQUIRE_FALSE(resp.ctx.ec);
2390
+ REQUIRE_SUCCESS(resp.ctx.ec);
1831
2391
  }
1832
2392
 
1833
2393
  {
1834
- couchbase::management::analytics::azure_blob_external_link link{};
2394
+ couchbase::core::management::analytics::azure_blob_external_link link{};
1835
2395
  link.dataverse = dataverse_name;
1836
2396
  link.connection_string = "connection_string";
1837
2397
  link.blob_endpoint = "blob_endpoint";
1838
2398
  link.endpoint_suffix = "endpoint_suffix";
1839
2399
  link.link_name = link_name;
1840
- couchbase::operations::management::analytics_link_create_request<couchbase::management::analytics::azure_blob_external_link> req{};
2400
+ couchbase::core::operations::management::analytics_link_create_request<
2401
+ couchbase::core::management::analytics::azure_blob_external_link>
2402
+ req{};
1841
2403
  req.link = link;
1842
2404
  auto resp = test::utils::execute(integration.cluster, req);
1843
- REQUIRE(resp.ctx.ec == couchbase::error::analytics_errc::link_exists);
2405
+ REQUIRE(resp.ctx.ec == couchbase::errc::analytics::link_exists);
1844
2406
  }
1845
2407
 
1846
2408
  {
1847
- couchbase::operations::management::analytics_link_get_all_request req{};
2409
+ couchbase::core::operations::management::analytics_link_get_all_request req{};
1848
2410
  req.dataverse_name = dataverse_name;
1849
2411
  auto resp = test::utils::execute(integration.cluster, req);
1850
- REQUIRE_FALSE(resp.ctx.ec);
2412
+ REQUIRE_SUCCESS(resp.ctx.ec);
1851
2413
  REQUIRE(resp.azure_blob.size() == 1);
1852
2414
  REQUIRE(resp.azure_blob[0].link_name == link_name);
1853
2415
  REQUIRE(resp.azure_blob[0].dataverse == dataverse_name);
@@ -1860,63 +2422,65 @@ run_azure_link_test(test::utils::integration_test_guard& integration, std::strin
1860
2422
  }
1861
2423
 
1862
2424
  {
1863
- couchbase::operations::management::analytics_link_get_all_request req{};
2425
+ couchbase::core::operations::management::analytics_link_get_all_request req{};
1864
2426
  req.link_type = "azureblob";
1865
2427
  req.dataverse_name = dataverse_name;
1866
2428
  auto resp = test::utils::execute(integration.cluster, req);
1867
- REQUIRE_FALSE(resp.ctx.ec);
2429
+ REQUIRE_SUCCESS(resp.ctx.ec);
1868
2430
  REQUIRE(resp.azure_blob.size() == 1);
1869
2431
  REQUIRE(resp.s3.empty());
1870
2432
  REQUIRE(resp.couchbase.empty());
1871
2433
  }
1872
2434
 
1873
2435
  {
1874
- couchbase::operations::management::analytics_link_get_all_request req{};
2436
+ couchbase::core::operations::management::analytics_link_get_all_request req{};
1875
2437
  req.link_type = "couchbase";
1876
2438
  req.dataverse_name = dataverse_name;
1877
2439
  auto resp = test::utils::execute(integration.cluster, req);
1878
- REQUIRE_FALSE(resp.ctx.ec);
2440
+ REQUIRE_SUCCESS(resp.ctx.ec);
1879
2441
  REQUIRE(resp.s3.empty());
1880
2442
  REQUIRE(resp.azure_blob.empty());
1881
2443
  REQUIRE(resp.couchbase.empty());
1882
2444
  }
1883
2445
 
1884
2446
  {
1885
- couchbase::management::analytics::azure_blob_external_link link{};
2447
+ couchbase::core::management::analytics::azure_blob_external_link link{};
1886
2448
  link.dataverse = dataverse_name;
1887
2449
  link.connection_string = "connection_string";
1888
2450
  link.blob_endpoint = "new_blob_endpoint";
1889
2451
  link.endpoint_suffix = "endpoint_suffix";
1890
2452
  link.link_name = link_name;
1891
- couchbase::operations::management::analytics_link_replace_request<couchbase::management::analytics::azure_blob_external_link> req{};
2453
+ couchbase::core::operations::management::analytics_link_replace_request<
2454
+ couchbase::core::management::analytics::azure_blob_external_link>
2455
+ req{};
1892
2456
  req.link = link;
1893
2457
  auto resp = test::utils::execute(integration.cluster, req);
1894
- REQUIRE_FALSE(resp.ctx.ec);
2458
+ REQUIRE_SUCCESS(resp.ctx.ec);
1895
2459
  }
1896
2460
 
1897
2461
  {
1898
- couchbase::operations::management::analytics_link_get_all_request req{};
2462
+ couchbase::core::operations::management::analytics_link_get_all_request req{};
1899
2463
  req.dataverse_name = dataverse_name;
1900
2464
  auto resp = test::utils::execute(integration.cluster, req);
1901
- REQUIRE_FALSE(resp.ctx.ec);
2465
+ REQUIRE_SUCCESS(resp.ctx.ec);
1902
2466
  REQUIRE(resp.azure_blob.size() == 1);
1903
2467
  REQUIRE(resp.azure_blob[0].blob_endpoint == "new_blob_endpoint");
1904
2468
  }
1905
2469
 
1906
2470
  {
1907
- couchbase::operations::management::analytics_link_drop_request req{};
2471
+ couchbase::core::operations::management::analytics_link_drop_request req{};
1908
2472
  req.dataverse_name = dataverse_name;
1909
2473
  req.link_name = link_name;
1910
2474
  auto resp = test::utils::execute(integration.cluster, req);
1911
- REQUIRE_FALSE(resp.ctx.ec);
2475
+ REQUIRE_SUCCESS(resp.ctx.ec);
1912
2476
  }
1913
2477
 
1914
2478
  {
1915
- couchbase::operations::management::analytics_link_drop_request req{};
2479
+ couchbase::core::operations::management::analytics_link_drop_request req{};
1916
2480
  req.dataverse_name = dataverse_name;
1917
2481
  req.link_name = link_name;
1918
2482
  auto resp = test::utils::execute(integration.cluster, req);
1919
- REQUIRE(resp.ctx.ec == couchbase::error::analytics_errc::link_not_found);
2483
+ REQUIRE(resp.ctx.ec == couchbase::errc::analytics::link_not_found);
1920
2484
  }
1921
2485
  }
1922
2486
 
@@ -1929,7 +2493,7 @@ TEST_CASE("integration: analytics external link management", "[integration]")
1929
2493
  }
1930
2494
 
1931
2495
  // MB-47718
1932
- if (integration.storage_backend() == couchbase::management::cluster::bucket_storage_backend::magma) {
2496
+ if (integration.storage_backend() == couchbase::core::management::cluster::bucket_storage_backend::magma) {
1933
2497
  return;
1934
2498
  }
1935
2499
 
@@ -1944,7 +2508,7 @@ TEST_CASE("integration: analytics external link management", "[integration]")
1944
2508
 
1945
2509
  SECTION("missing dataverse")
1946
2510
  {
1947
- couchbase::management::analytics::s3_external_link link{};
2511
+ couchbase::core::management::analytics::s3_external_link link{};
1948
2512
  link.dataverse = "missing_dataverse";
1949
2513
  link.access_key_id = "access_key";
1950
2514
  link.secret_access_key = "secret_access_key";
@@ -1953,19 +2517,21 @@ TEST_CASE("integration: analytics external link management", "[integration]")
1953
2517
  link.link_name = link_name;
1954
2518
 
1955
2519
  {
1956
- couchbase::operations::management::analytics_link_create_request<couchbase::management::analytics::s3_external_link> req{};
2520
+ couchbase::core::operations::management::analytics_link_create_request<couchbase::core::management::analytics::s3_external_link>
2521
+ req{};
1957
2522
  req.link = link;
1958
2523
  auto resp = test::utils::execute(integration.cluster, req);
1959
- REQUIRE(resp.ctx.ec == couchbase::error::analytics_errc::dataverse_not_found);
2524
+ REQUIRE(resp.ctx.ec == couchbase::errc::analytics::dataverse_not_found);
1960
2525
  }
1961
2526
  }
1962
2527
 
1963
2528
  SECTION("missing argument")
1964
2529
  {
1965
- couchbase::operations::management::analytics_link_create_request<couchbase::management::analytics::s3_external_link> req{};
1966
- req.link = couchbase::management::analytics::s3_external_link{};
2530
+ couchbase::core::operations::management::analytics_link_create_request<couchbase::core::management::analytics::s3_external_link>
2531
+ req{};
2532
+ req.link = couchbase::core::management::analytics::s3_external_link{};
1967
2533
  auto resp = test::utils::execute(integration.cluster, req);
1968
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::invalid_argument);
2534
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::invalid_argument);
1969
2535
  }
1970
2536
 
1971
2537
  SECTION("link crud")
@@ -1991,9 +2557,9 @@ TEST_CASE("integration: analytics external link management", "[integration]")
1991
2557
  auto scope_name = test::utils::uniq_id("scope");
1992
2558
 
1993
2559
  {
1994
- couchbase::operations::management::scope_create_request req{ integration.ctx.bucket, scope_name };
2560
+ couchbase::core::operations::management::scope_create_request req{ integration.ctx.bucket, scope_name };
1995
2561
  auto resp = test::utils::execute(integration.cluster, req);
1996
- REQUIRE_FALSE(resp.ctx.ec);
2562
+ REQUIRE_SUCCESS(resp.ctx.ec);
1997
2563
  auto created =
1998
2564
  test::utils::wait_until_collection_manifest_propagated(integration.cluster, integration.ctx.bucket, resp.uid);
1999
2565
  REQUIRE(created);
@@ -2016,6 +2582,9 @@ TEST_CASE("integration: analytics external link management", "[integration]")
2016
2582
  }
2017
2583
  }
2018
2584
 
2585
+ // serverless requires 1 partition and 1 replica
2586
+ const std::string serverless_plan_params = R"({ "indexPartition": 1, "numReplicas": 1 })";
2587
+
2019
2588
  TEST_CASE("integration: search index management", "[integration]")
2020
2589
  {
2021
2590
  test::utils::integration_test_guard integration;
@@ -2026,121 +2595,166 @@ TEST_CASE("integration: search index management", "[integration]")
2026
2595
 
2027
2596
  SECTION("search indexes crud")
2028
2597
  {
2029
- auto index1_name = test::utils::uniq_id("index");
2030
- auto index2_name = test::utils::uniq_id("index");
2598
+ auto index1_name = test::utils::uniq_id("index1");
2599
+ auto index2_name = test::utils::uniq_id("index2");
2031
2600
  auto alias_name = test::utils::uniq_id("alias");
2032
2601
 
2033
2602
  {
2034
- couchbase::management::search::index index;
2603
+ couchbase::core::management::search::index index;
2035
2604
  index.name = index1_name;
2036
2605
  index.type = "fulltext-index";
2037
2606
  index.source_type = "couchbase";
2038
2607
  index.source_name = integration.ctx.bucket;
2039
- couchbase::operations::management::search_index_upsert_request req{};
2608
+ if (integration.cluster_version().is_serverless_config_profile()) {
2609
+ index.plan_params_json = serverless_plan_params;
2610
+ }
2611
+ couchbase::core::operations::management::search_index_upsert_request req{};
2040
2612
  req.index = index;
2041
2613
  auto resp = test::utils::execute(integration.cluster, req);
2042
- REQUIRE_FALSE(resp.ctx.ec);
2614
+ REQUIRE_SUCCESS(resp.ctx.ec);
2043
2615
  }
2044
2616
 
2045
2617
  {
2046
- couchbase::management::search::index index;
2618
+ couchbase::core::management::search::index index;
2047
2619
  index.name = index1_name;
2048
2620
  index.type = "fulltext-index";
2049
2621
  index.source_type = "couchbase";
2050
2622
  index.source_name = integration.ctx.bucket;
2051
- couchbase::operations::management::search_index_upsert_request req{};
2623
+ if (integration.cluster_version().is_serverless_config_profile()) {
2624
+ index.plan_params_json = serverless_plan_params;
2625
+ }
2626
+ couchbase::core::operations::management::search_index_upsert_request req{};
2052
2627
  req.index = index;
2053
2628
  auto resp = test::utils::execute(integration.cluster, req);
2054
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::index_exists);
2629
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::index_exists);
2055
2630
  }
2056
2631
 
2057
2632
  {
2058
- couchbase::management::search::index index;
2633
+ couchbase::core::management::search::index index;
2059
2634
  index.name = index2_name;
2060
2635
  index.type = "fulltext-index";
2061
2636
  index.source_type = "couchbase";
2062
2637
  index.source_name = integration.ctx.bucket;
2063
2638
  index.plan_params_json = R"({ "indexPartition": 3 })";
2639
+ if (integration.cluster_version().is_serverless_config_profile()) {
2640
+ index.plan_params_json = serverless_plan_params;
2641
+ }
2064
2642
  index.params_json = R"({ "store": { "indexType": "upside_down", "kvStoreName": "moss" }})";
2065
- couchbase::operations::management::search_index_upsert_request req{};
2643
+ couchbase::core::operations::management::search_index_upsert_request req{};
2066
2644
  req.index = index;
2067
2645
  auto resp = test::utils::execute(integration.cluster, req);
2068
- REQUIRE_FALSE(resp.ctx.ec);
2646
+ REQUIRE_SUCCESS(resp.ctx.ec);
2647
+ if (resp.name != index2_name) {
2648
+ // FIXME: server 7.2 might automatically prepend "{scope}.{collection}." in front of the index name
2649
+ // to workaround it, we "patch" our variable with the name returned by the server
2650
+ index2_name = resp.name;
2651
+ }
2069
2652
  }
2070
2653
 
2071
2654
  {
2072
- couchbase::management::search::index index;
2655
+ couchbase::core::management::search::index index;
2073
2656
  index.name = alias_name;
2074
2657
  index.type = "fulltext-alias";
2075
2658
  index.source_type = "nil";
2076
- index.params_json = couchbase::utils::json::generate(
2659
+ index.params_json = couchbase::core::utils::json::generate(
2077
2660
  tao::json::value{ { "targets", { { index1_name, tao::json::empty_object }, { index2_name, tao::json::empty_object } } } });
2078
- couchbase::operations::management::search_index_upsert_request req{};
2661
+ if (integration.cluster_version().is_serverless_config_profile()) {
2662
+ index.plan_params_json = serverless_plan_params;
2663
+ }
2664
+ couchbase::core::operations::management::search_index_upsert_request req{};
2079
2665
  req.index = index;
2080
2666
  auto resp = test::utils::execute(integration.cluster, req);
2081
- REQUIRE_FALSE(resp.ctx.ec);
2667
+ REQUIRE_SUCCESS(resp.ctx.ec);
2082
2668
  }
2083
2669
 
2084
2670
  {
2085
- couchbase::operations::management::search_index_get_request req{};
2671
+ couchbase::core::operations::management::search_index_get_request req{};
2086
2672
  req.index_name = index1_name;
2087
2673
  auto resp = test::utils::execute(integration.cluster, req);
2088
- REQUIRE_FALSE(resp.ctx.ec);
2674
+ REQUIRE_SUCCESS(resp.ctx.ec);
2089
2675
  REQUIRE(resp.index.name == index1_name);
2090
2676
  REQUIRE(resp.index.type == "fulltext-index");
2091
2677
  }
2092
2678
 
2093
2679
  {
2094
- couchbase::operations::management::search_index_get_request req{};
2680
+ couchbase::core::operations::management::search_index_get_request req{};
2681
+ req.index_name = index2_name;
2682
+ auto resp = test::utils::execute(integration.cluster, req);
2683
+ REQUIRE_SUCCESS(resp.ctx.ec);
2684
+ REQUIRE(resp.index.name == index2_name);
2685
+ REQUIRE(resp.index.type == "fulltext-index");
2686
+ }
2687
+
2688
+ {
2689
+ couchbase::core::operations::management::search_index_get_request req{};
2690
+ req.index_name = alias_name;
2691
+ auto resp = test::utils::execute(integration.cluster, req);
2692
+ REQUIRE_SUCCESS(resp.ctx.ec);
2693
+ REQUIRE(resp.index.name == alias_name);
2694
+ REQUIRE(resp.index.type == "fulltext-alias");
2695
+ }
2696
+
2697
+ {
2698
+ couchbase::core::operations::management::search_index_get_request req{};
2095
2699
  req.index_name = "missing_index";
2096
2700
  auto resp = test::utils::execute(integration.cluster, req);
2097
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::index_not_found);
2701
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::index_not_found);
2098
2702
  }
2099
2703
 
2100
2704
  {
2101
- couchbase::operations::management::search_index_get_all_request req{};
2705
+ couchbase::core::operations::management::search_index_get_all_request req{};
2102
2706
  auto resp = test::utils::execute(integration.cluster, req);
2103
- REQUIRE_FALSE(resp.ctx.ec);
2707
+ REQUIRE_SUCCESS(resp.ctx.ec);
2104
2708
  REQUIRE_FALSE(resp.indexes.empty());
2709
+
2710
+ REQUIRE(1 == std::count_if(
2711
+ resp.indexes.begin(), resp.indexes.end(), [&index1_name](const auto& i) { return i.name == index1_name; }));
2712
+ REQUIRE(1 == std::count_if(
2713
+ resp.indexes.begin(), resp.indexes.end(), [&index2_name](const auto& i) { return i.name == index2_name; }));
2714
+ REQUIRE(1 ==
2715
+ std::count_if(resp.indexes.begin(), resp.indexes.end(), [&alias_name](const auto& i) { return i.name == alias_name; }));
2105
2716
  }
2106
2717
 
2107
2718
  {
2108
- couchbase::operations::management::search_index_drop_request req{};
2719
+ couchbase::core::operations::management::search_index_drop_request req{};
2109
2720
  req.index_name = index1_name;
2110
2721
  auto resp = test::utils::execute(integration.cluster, req);
2111
- REQUIRE_FALSE(resp.ctx.ec);
2722
+ REQUIRE_SUCCESS(resp.ctx.ec);
2112
2723
  }
2113
2724
 
2114
2725
  {
2115
- couchbase::operations::management::search_index_drop_request req{};
2726
+ couchbase::core::operations::management::search_index_drop_request req{};
2116
2727
  req.index_name = index2_name;
2117
2728
  auto resp = test::utils::execute(integration.cluster, req);
2118
- REQUIRE_FALSE(resp.ctx.ec);
2729
+ REQUIRE_SUCCESS(resp.ctx.ec);
2119
2730
  }
2120
2731
 
2121
2732
  {
2122
- couchbase::operations::management::search_index_drop_request req{};
2733
+ couchbase::core::operations::management::search_index_drop_request req{};
2123
2734
  req.index_name = alias_name;
2124
2735
  auto resp = test::utils::execute(integration.cluster, req);
2125
- REQUIRE_FALSE(resp.ctx.ec);
2736
+ REQUIRE_SUCCESS(resp.ctx.ec);
2126
2737
  }
2127
2738
 
2128
- couchbase::operations::management::search_index_drop_request req{};
2739
+ couchbase::core::operations::management::search_index_drop_request req{};
2129
2740
  req.index_name = "missing_index";
2130
2741
  auto resp = test::utils::execute(integration.cluster, req);
2131
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::index_not_found);
2742
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::index_not_found);
2132
2743
  }
2133
2744
 
2134
2745
  SECTION("upsert index no name")
2135
2746
  {
2136
- couchbase::management::search::index index;
2747
+ couchbase::core::management::search::index index;
2137
2748
  index.type = "fulltext-index";
2138
2749
  index.source_type = "couchbase";
2139
2750
  index.source_name = integration.ctx.bucket;
2140
- couchbase::operations::management::search_index_upsert_request req{};
2751
+ if (integration.cluster_version().is_serverless_config_profile()) {
2752
+ index.plan_params_json = serverless_plan_params;
2753
+ }
2754
+ couchbase::core::operations::management::search_index_upsert_request req{};
2141
2755
  req.index = index;
2142
2756
  auto resp = test::utils::execute(integration.cluster, req);
2143
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::invalid_argument);
2757
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::invalid_argument);
2144
2758
  }
2145
2759
 
2146
2760
  SECTION("control")
@@ -2148,78 +2762,81 @@ TEST_CASE("integration: search index management", "[integration]")
2148
2762
  auto index_name = test::utils::uniq_id("index");
2149
2763
 
2150
2764
  {
2151
- couchbase::management::search::index index;
2765
+ couchbase::core::management::search::index index;
2152
2766
  index.name = index_name;
2153
2767
  index.type = "fulltext-index";
2154
2768
  index.source_type = "couchbase";
2155
2769
  index.source_name = integration.ctx.bucket;
2156
- couchbase::operations::management::search_index_upsert_request req{};
2770
+ if (integration.cluster_version().is_serverless_config_profile()) {
2771
+ index.plan_params_json = serverless_plan_params;
2772
+ }
2773
+ couchbase::core::operations::management::search_index_upsert_request req{};
2157
2774
  req.index = index;
2158
2775
  auto resp = test::utils::execute(integration.cluster, req);
2159
- REQUIRE_FALSE(resp.ctx.ec);
2776
+ REQUIRE_SUCCESS(resp.ctx.ec);
2160
2777
  }
2161
2778
 
2162
2779
  SECTION("ingest control")
2163
2780
  {
2164
2781
  {
2165
- couchbase::operations::management::search_index_control_ingest_request req{};
2782
+ couchbase::core::operations::management::search_index_control_ingest_request req{};
2166
2783
  req.index_name = index_name;
2167
2784
  req.pause = true;
2168
2785
  auto resp = test::utils::execute(integration.cluster, req);
2169
- REQUIRE_FALSE(resp.ctx.ec);
2786
+ REQUIRE_SUCCESS(resp.ctx.ec);
2170
2787
  }
2171
2788
 
2172
2789
  {
2173
- couchbase::operations::management::search_index_control_ingest_request req{};
2790
+ couchbase::core::operations::management::search_index_control_ingest_request req{};
2174
2791
  req.index_name = index_name;
2175
2792
  req.pause = false;
2176
2793
  auto resp = test::utils::execute(integration.cluster, req);
2177
- REQUIRE_FALSE(resp.ctx.ec);
2794
+ REQUIRE_SUCCESS(resp.ctx.ec);
2178
2795
  }
2179
2796
  }
2180
2797
 
2181
2798
  SECTION("query control")
2182
2799
  {
2183
2800
  {
2184
- couchbase::operations::management::search_index_control_query_request req{};
2801
+ couchbase::core::operations::management::search_index_control_query_request req{};
2185
2802
  req.index_name = index_name;
2186
2803
  req.allow = true;
2187
2804
  auto resp = test::utils::execute(integration.cluster, req);
2188
- REQUIRE_FALSE(resp.ctx.ec);
2805
+ REQUIRE_SUCCESS(resp.ctx.ec);
2189
2806
  }
2190
2807
 
2191
2808
  {
2192
- couchbase::operations::management::search_index_control_query_request req{};
2809
+ couchbase::core::operations::management::search_index_control_query_request req{};
2193
2810
  req.index_name = index_name;
2194
2811
  req.allow = false;
2195
2812
  auto resp = test::utils::execute(integration.cluster, req);
2196
- REQUIRE_FALSE(resp.ctx.ec);
2813
+ REQUIRE_SUCCESS(resp.ctx.ec);
2197
2814
  }
2198
2815
  }
2199
2816
 
2200
2817
  SECTION("partition control")
2201
2818
  {
2202
2819
  {
2203
- couchbase::operations::management::search_index_control_plan_freeze_request req{};
2820
+ couchbase::core::operations::management::search_index_control_plan_freeze_request req{};
2204
2821
  req.index_name = index_name;
2205
2822
  req.freeze = true;
2206
2823
  auto resp = test::utils::execute(integration.cluster, req);
2207
- REQUIRE_FALSE(resp.ctx.ec);
2824
+ REQUIRE_SUCCESS(resp.ctx.ec);
2208
2825
  }
2209
2826
 
2210
2827
  {
2211
- couchbase::operations::management::search_index_control_plan_freeze_request req{};
2828
+ couchbase::core::operations::management::search_index_control_plan_freeze_request req{};
2212
2829
  req.index_name = index_name;
2213
2830
  req.freeze = false;
2214
2831
  auto resp = test::utils::execute(integration.cluster, req);
2215
- REQUIRE_FALSE(resp.ctx.ec);
2832
+ REQUIRE_SUCCESS(resp.ctx.ec);
2216
2833
  }
2217
2834
  }
2218
2835
 
2219
- couchbase::operations::management::search_index_drop_request req{};
2836
+ couchbase::core::operations::management::search_index_drop_request req{};
2220
2837
  req.index_name = index_name;
2221
2838
  auto resp = test::utils::execute(integration.cluster, req);
2222
- REQUIRE_FALSE(resp.ctx.ec);
2839
+ REQUIRE_SUCCESS(resp.ctx.ec);
2223
2840
  }
2224
2841
  }
2225
2842
 
@@ -2228,12 +2845,12 @@ wait_for_search_pindexes_ready(test::utils::integration_test_guard& integration,
2228
2845
  {
2229
2846
  return test::utils::wait_until(
2230
2847
  [&integration, &index_name]() {
2231
- couchbase::operations::management::search_index_stats_request req{};
2848
+ couchbase::core::operations::management::search_index_stats_request req{};
2232
2849
  auto resp = test::utils::execute(integration.cluster, req);
2233
2850
  if (resp.ctx.ec || resp.stats.empty()) {
2234
2851
  return false;
2235
2852
  }
2236
- auto stats = couchbase::utils::json::parse(resp.stats);
2853
+ auto stats = couchbase::core::utils::json::parse(resp.stats);
2237
2854
  const auto* num_pindexes_actual = stats.find(fmt::format("{}:{}:num_pindexes_actual", integration.ctx.bucket, index_name));
2238
2855
  if (num_pindexes_actual == nullptr || !num_pindexes_actual->is_number()) {
2239
2856
  return false;
@@ -2258,29 +2875,32 @@ TEST_CASE("integration: search index management analyze document", "[integration
2258
2875
  auto index_name = test::utils::uniq_id("index");
2259
2876
 
2260
2877
  {
2261
- couchbase::management::search::index index;
2878
+ couchbase::core::management::search::index index;
2262
2879
  index.name = index_name;
2263
2880
  index.type = "fulltext-index";
2264
2881
  index.source_type = "couchbase";
2265
2882
  index.source_name = integration.ctx.bucket;
2266
- couchbase::operations::management::search_index_upsert_request req{};
2883
+ if (integration.cluster_version().is_serverless_config_profile()) {
2884
+ index.plan_params_json = serverless_plan_params;
2885
+ }
2886
+ couchbase::core::operations::management::search_index_upsert_request req{};
2267
2887
  req.index = index;
2268
2888
  auto resp = test::utils::execute(integration.cluster, req);
2269
- REQUIRE_FALSE(resp.ctx.ec);
2889
+ REQUIRE_SUCCESS(resp.ctx.ec);
2270
2890
  }
2271
2891
 
2272
2892
  REQUIRE(wait_for_search_pindexes_ready(integration, index_name));
2273
2893
 
2274
- couchbase::operations::management::search_index_analyze_document_response resp;
2894
+ couchbase::core::operations::management::search_index_analyze_document_response resp;
2275
2895
  bool operation_completed = test::utils::wait_until([&integration, &index_name, &resp]() {
2276
- couchbase::operations::management::search_index_analyze_document_request req{};
2896
+ couchbase::core::operations::management::search_index_analyze_document_request req{};
2277
2897
  req.index_name = index_name;
2278
2898
  req.encoded_document = R"({ "name": "hello world" })";
2279
2899
  resp = test::utils::execute(integration.cluster, req);
2280
- return resp.ctx.ec != couchbase::error::common_errc::internal_server_failure;
2900
+ return resp.ctx.ec != couchbase::errc::common::internal_server_failure;
2281
2901
  });
2282
2902
  REQUIRE(operation_completed);
2283
- REQUIRE_FALSE(resp.ctx.ec);
2903
+ REQUIRE_SUCCESS(resp.ctx.ec);
2284
2904
  REQUIRE_FALSE(resp.analysis.empty());
2285
2905
  }
2286
2906
 
@@ -2294,37 +2914,37 @@ TEST_CASE("integration: freeform HTTP request", "[integration]")
2294
2914
 
2295
2915
  SECTION("key_value")
2296
2916
  {
2297
- couchbase::operations::management::freeform_request req{};
2298
- req.type = couchbase::service_type::key_value;
2917
+ couchbase::core::operations::management::freeform_request req{};
2918
+ req.type = couchbase::core::service_type::key_value;
2299
2919
  auto resp = test::utils::execute(integration.cluster, req);
2300
- REQUIRE(resp.ctx.ec == couchbase::error::common_errc::invalid_argument);
2920
+ REQUIRE(resp.ctx.ec == couchbase::errc::common::invalid_argument);
2301
2921
  }
2302
2922
 
2303
2923
  if (integration.cluster_version().supports_analytics() && integration.has_analytics_service()) {
2304
2924
  SECTION("analytics")
2305
2925
  {
2306
- couchbase::operations::management::freeform_request req{};
2307
- req.type = couchbase::service_type::analytics;
2926
+ couchbase::core::operations::management::freeform_request req{};
2927
+ req.type = couchbase::core::service_type::analytics;
2308
2928
  req.method = "GET";
2309
2929
  req.path = "/admin/ping";
2310
2930
  auto resp = test::utils::execute(integration.cluster, req);
2311
- REQUIRE_FALSE(resp.ctx.ec);
2931
+ REQUIRE_SUCCESS(resp.ctx.ec);
2312
2932
  REQUIRE(resp.status == 200);
2313
2933
  REQUIRE_FALSE(resp.body.empty());
2314
2934
  INFO(resp.body)
2315
- auto result = couchbase::utils::json::parse(resp.body);
2935
+ auto result = couchbase::core::utils::json::parse(resp.body);
2316
2936
  REQUIRE(result.is_object());
2317
2937
  }
2318
2938
  }
2319
2939
 
2320
2940
  SECTION("search")
2321
2941
  {
2322
- couchbase::operations::management::freeform_request req{};
2323
- req.type = couchbase::service_type::search;
2942
+ couchbase::core::operations::management::freeform_request req{};
2943
+ req.type = couchbase::core::service_type::search;
2324
2944
  req.method = "GET";
2325
2945
  req.path = "/api/ping";
2326
2946
  auto resp = test::utils::execute(integration.cluster, req);
2327
- REQUIRE_FALSE(resp.ctx.ec);
2947
+ REQUIRE_SUCCESS(resp.ctx.ec);
2328
2948
  REQUIRE(resp.status == 200);
2329
2949
  REQUIRE(resp.body.empty());
2330
2950
  REQUIRE_FALSE(resp.headers.empty());
@@ -2333,49 +2953,51 @@ TEST_CASE("integration: freeform HTTP request", "[integration]")
2333
2953
 
2334
2954
  SECTION("query")
2335
2955
  {
2336
- couchbase::operations::management::freeform_request req{};
2337
- req.type = couchbase::service_type::query;
2956
+ couchbase::core::operations::management::freeform_request req{};
2957
+ req.type = couchbase::core::service_type::query;
2338
2958
  req.method = "GET";
2339
2959
  req.path = "/admin/ping";
2340
2960
  auto resp = test::utils::execute(integration.cluster, req);
2341
- REQUIRE_FALSE(resp.ctx.ec);
2961
+ REQUIRE_SUCCESS(resp.ctx.ec);
2342
2962
  REQUIRE(resp.status == 200);
2343
2963
  REQUIRE_FALSE(resp.body.empty());
2344
2964
  INFO(resp.body)
2345
- auto result = couchbase::utils::json::parse(resp.body);
2965
+ auto result = couchbase::core::utils::json::parse(resp.body);
2346
2966
  REQUIRE(result.is_object());
2347
2967
  }
2348
2968
 
2349
- SECTION("view")
2350
- {
2351
- auto document_name = test::utils::uniq_id("design_document");
2352
- auto view_name = test::utils::uniq_id("view");
2969
+ if (integration.cluster_version().supports_views()) {
2970
+ SECTION("view")
2971
+ {
2972
+ auto document_name = test::utils::uniq_id("design_document");
2973
+ auto view_name = test::utils::uniq_id("view");
2353
2974
 
2354
- couchbase::operations::management::freeform_request req{};
2355
- req.type = couchbase::service_type::view;
2356
- req.method = "POST";
2357
- req.path = fmt::format("/{}/_design/{}/_view/{}", integration.ctx.bucket, document_name, view_name);
2358
- req.body = R"({"keys":["foo","bar"]})";
2359
- auto resp = test::utils::execute(integration.cluster, req);
2360
- REQUIRE_FALSE(resp.ctx.ec);
2361
- REQUIRE(resp.status == 404);
2362
- REQUIRE_FALSE(resp.body.empty());
2363
- auto result = couchbase::utils::json::parse(resp.body);
2364
- INFO(resp.body)
2365
- REQUIRE(result["error"].get_string() == "not_found");
2975
+ couchbase::core::operations::management::freeform_request req{};
2976
+ req.type = couchbase::core::service_type::view;
2977
+ req.method = "POST";
2978
+ req.path = fmt::format("/{}/_design/{}/_view/{}", integration.ctx.bucket, document_name, view_name);
2979
+ req.body = R"({"keys":["foo","bar"]})";
2980
+ auto resp = test::utils::execute(integration.cluster, req);
2981
+ REQUIRE_SUCCESS(resp.ctx.ec);
2982
+ REQUIRE(resp.status == 404);
2983
+ REQUIRE_FALSE(resp.body.empty());
2984
+ auto result = couchbase::core::utils::json::parse(resp.body);
2985
+ INFO(resp.body)
2986
+ REQUIRE(result["error"].get_string() == "not_found");
2987
+ }
2366
2988
  }
2367
2989
 
2368
2990
  SECTION("management")
2369
2991
  {
2370
- couchbase::operations::management::freeform_request req{};
2371
- req.type = couchbase::service_type::management;
2992
+ couchbase::core::operations::management::freeform_request req{};
2993
+ req.type = couchbase::core::service_type::management;
2372
2994
  req.method = "GET";
2373
2995
  req.path = "/pools";
2374
2996
  auto resp = test::utils::execute(integration.cluster, req);
2375
- REQUIRE_FALSE(resp.ctx.ec);
2997
+ REQUIRE_SUCCESS(resp.ctx.ec);
2376
2998
  REQUIRE(resp.status == 200);
2377
2999
  REQUIRE_FALSE(resp.body.empty());
2378
- auto result = couchbase::utils::json::parse(resp.body);
3000
+ auto result = couchbase::core::utils::json::parse(resp.body);
2379
3001
  INFO(resp.body)
2380
3002
  REQUIRE(result.find("uuid") != nullptr);
2381
3003
  }
@@ -2385,18 +3007,18 @@ TEST_CASE("integration: freeform HTTP request", "[integration]")
2385
3007
  {
2386
3008
  auto scope_name = test::utils::uniq_id("freeform_scope");
2387
3009
 
2388
- couchbase::operations::management::freeform_request req{};
2389
- req.type = couchbase::service_type::management;
3010
+ couchbase::core::operations::management::freeform_request req{};
3011
+ req.type = couchbase::core::service_type::management;
2390
3012
  req.method = "POST";
2391
3013
  req.path = fmt::format("/pools/default/buckets/{}/scopes", integration.ctx.bucket);
2392
3014
  req.headers["content-type"] = "application/x-www-form-urlencoded";
2393
- req.body = fmt::format("name={}", couchbase::utils::string_codec::form_encode(scope_name));
3015
+ req.body = fmt::format("name={}", couchbase::core::utils::string_codec::form_encode(scope_name));
2394
3016
  auto resp = test::utils::execute(integration.cluster, req);
2395
- REQUIRE_FALSE(resp.ctx.ec);
3017
+ REQUIRE_SUCCESS(resp.ctx.ec);
2396
3018
  REQUIRE(resp.status == 200);
2397
3019
  REQUIRE_FALSE(resp.headers.empty());
2398
3020
  REQUIRE(resp.headers["content-type"].find("application/json") != std::string::npos);
2399
- auto result = couchbase::utils::json::parse(resp.body);
3021
+ auto result = couchbase::core::utils::json::parse(resp.body);
2400
3022
  REQUIRE(result.is_object());
2401
3023
  REQUIRE(result.find("uid") != nullptr);
2402
3024
  }
@@ -2406,27 +3028,27 @@ TEST_CASE("integration: freeform HTTP request", "[integration]")
2406
3028
  SECTION("eventing")
2407
3029
  {
2408
3030
 
2409
- couchbase::operations::management::freeform_request req{};
2410
- req.type = couchbase::service_type::eventing;
3031
+ couchbase::core::operations::management::freeform_request req{};
3032
+ req.type = couchbase::core::service_type::eventing;
2411
3033
  req.method = "GET";
2412
3034
  req.path = "/api/v1/functions";
2413
3035
  auto resp = test::utils::execute(integration.cluster, req);
2414
- REQUIRE_FALSE(resp.ctx.ec);
3036
+ REQUIRE_SUCCESS(resp.ctx.ec);
2415
3037
  REQUIRE(resp.status == 200);
2416
3038
  REQUIRE_FALSE(resp.body.empty());
2417
- auto result = couchbase::utils::json::parse(resp.body);
3039
+ auto result = couchbase::core::utils::json::parse(resp.body);
2418
3040
  INFO(resp.body)
2419
3041
  REQUIRE(result.is_array());
2420
3042
  }
2421
3043
  }
2422
3044
  }
2423
3045
 
2424
- static couchbase::operations::management::eventing_get_function_response
3046
+ static couchbase::core::operations::management::eventing_get_function_response
2425
3047
  wait_for_function_created(test::utils::integration_test_guard& integration, const std::string& function_name)
2426
3048
  {
2427
- couchbase::operations::management::eventing_get_function_response resp{};
3049
+ couchbase::core::operations::management::eventing_get_function_response resp{};
2428
3050
  test::utils::wait_until([&integration, &resp, function_name]() {
2429
- couchbase::operations::management::eventing_get_function_request req{ function_name };
3051
+ couchbase::core::operations::management::eventing_get_function_request req{ function_name };
2430
3052
  resp = test::utils::execute(integration.cluster, req);
2431
3053
  return !resp.ctx.ec;
2432
3054
  });
@@ -2436,11 +3058,11 @@ wait_for_function_created(test::utils::integration_test_guard& integration, cons
2436
3058
  static bool
2437
3059
  wait_for_function_reach_status(test::utils::integration_test_guard& integration,
2438
3060
  const std::string& function_name,
2439
- couchbase::management::eventing::function_status status)
3061
+ couchbase::core::management::eventing::function_status status)
2440
3062
  {
2441
3063
  return test::utils::wait_until(
2442
3064
  [&integration, function_name, status]() {
2443
- couchbase::operations::management::eventing_get_status_request req{};
3065
+ couchbase::core::operations::management::eventing_get_status_request req{};
2444
3066
  auto resp = test::utils::execute(integration.cluster, req);
2445
3067
  if (resp.ctx.ec) {
2446
3068
  return false;
@@ -2473,39 +3095,39 @@ TEST_CASE("integration: eventing functions management", "[integration]")
2473
3095
  auto function_name = test::utils::uniq_id("name");
2474
3096
 
2475
3097
  {
2476
- couchbase::operations::management::eventing_drop_function_request req{ function_name };
3098
+ couchbase::core::operations::management::eventing_drop_function_request req{ function_name };
2477
3099
  auto resp = test::utils::execute(integration.cluster, req);
2478
3100
  if (integration.cluster_version().is_cheshire_cat()) {
2479
- REQUIRE(resp.ctx.ec == couchbase::error::management_errc::eventing_function_not_deployed);
3101
+ REQUIRE(resp.ctx.ec == couchbase::errc::management::eventing_function_not_deployed);
2480
3102
  } else {
2481
- REQUIRE(resp.ctx.ec == couchbase::error::management_errc::eventing_function_not_found);
3103
+ REQUIRE(resp.ctx.ec == couchbase::errc::management::eventing_function_not_found);
2482
3104
  }
2483
3105
  }
2484
3106
 
2485
3107
  {
2486
- couchbase::operations::management::eventing_get_function_request req{ function_name };
3108
+ couchbase::core::operations::management::eventing_get_function_request req{ function_name };
2487
3109
  auto resp = test::utils::execute(integration.cluster, req);
2488
- REQUIRE(resp.ctx.ec == couchbase::error::management_errc::eventing_function_not_found);
3110
+ REQUIRE(resp.ctx.ec == couchbase::errc::management::eventing_function_not_found);
2489
3111
  }
2490
3112
 
2491
3113
  auto meta_bucket_name = test::utils::uniq_id("meta");
2492
3114
  {
2493
3115
 
2494
- couchbase::management::cluster::bucket_settings bucket_settings;
3116
+ couchbase::core::management::cluster::bucket_settings bucket_settings;
2495
3117
  bucket_settings.name = meta_bucket_name;
2496
3118
  bucket_settings.ram_quota_mb = 256;
2497
3119
 
2498
3120
  {
2499
- couchbase::operations::management::bucket_create_request req;
3121
+ couchbase::core::operations::management::bucket_create_request req;
2500
3122
  req.bucket = bucket_settings;
2501
3123
  auto resp = test::utils::execute(integration.cluster, req);
2502
- REQUIRE_FALSE(resp.ctx.ec);
3124
+ REQUIRE_SUCCESS(resp.ctx.ec);
2503
3125
  }
2504
3126
  }
2505
3127
 
2506
3128
  {
2507
3129
  auto resp = wait_for_bucket_created(integration, meta_bucket_name);
2508
- REQUIRE_FALSE(resp.ctx.ec);
3130
+ REQUIRE_SUCCESS(resp.ctx.ec);
2509
3131
  }
2510
3132
 
2511
3133
  std::string source_code = R"(
@@ -2519,38 +3141,38 @@ function OnDelete(meta, options) {
2519
3141
  )";
2520
3142
 
2521
3143
  {
2522
- couchbase::operations::management::eventing_upsert_function_request req{};
3144
+ couchbase::core::operations::management::eventing_upsert_function_request req{};
2523
3145
  req.function.source_keyspace.bucket = integration.ctx.bucket;
2524
3146
  req.function.metadata_keyspace.bucket = meta_bucket_name;
2525
3147
  req.function.name = function_name;
2526
3148
  req.function.code = source_code;
2527
3149
  req.function.settings.handler_headers = { "// generated by Couchbase C++ SDK" };
2528
- req.function.constant_bindings.emplace_back(couchbase::management::eventing::function_constant_binding{ "PI", "3.14" });
2529
- req.function.bucket_bindings.emplace_back(couchbase::management::eventing::function_bucket_binding{
2530
- "data", { integration.ctx.bucket }, couchbase::management::eventing::function_bucket_access::read_write });
3150
+ req.function.constant_bindings.emplace_back(couchbase::core::management::eventing::function_constant_binding{ "PI", "3.14" });
3151
+ req.function.bucket_bindings.emplace_back(couchbase::core::management::eventing::function_bucket_binding{
3152
+ "data", { integration.ctx.bucket }, couchbase::core::management::eventing::function_bucket_access::read_write });
2531
3153
  req.function.url_bindings.emplace_back(
2532
- couchbase::management::eventing::function_url_binding{ "home", "https://couchbase.com" });
3154
+ couchbase::core::management::eventing::function_url_binding{ "home", "https://couchbase.com" });
2533
3155
  auto resp = test::utils::execute(integration.cluster, req);
2534
- REQUIRE_FALSE(resp.ctx.ec);
3156
+ REQUIRE_SUCCESS(resp.ctx.ec);
2535
3157
  }
2536
3158
 
2537
3159
  {
2538
3160
  auto resp = wait_for_function_created(integration, function_name);
2539
- REQUIRE_FALSE(resp.ctx.ec);
3161
+ REQUIRE_SUCCESS(resp.ctx.ec);
2540
3162
  }
2541
3163
 
2542
3164
  {
2543
- couchbase::operations::management::eventing_get_all_functions_request req{};
3165
+ couchbase::core::operations::management::eventing_get_all_functions_request req{};
2544
3166
  auto resp = test::utils::execute(integration.cluster, req);
2545
- REQUIRE_FALSE(resp.ctx.ec);
3167
+ REQUIRE_SUCCESS(resp.ctx.ec);
2546
3168
  auto function = std::find_if(
2547
- resp.functions.begin(), resp.functions.end(), [function_name](const auto& fun) { return function_name == fun.name; });
3169
+ resp.functions.begin(), resp.functions.end(), [&function_name](const auto& fun) { return function_name == fun.name; });
2548
3170
  REQUIRE(function != resp.functions.end());
2549
3171
  REQUIRE(function->code == source_code);
2550
3172
  REQUIRE(function->source_keyspace.bucket == integration.ctx.bucket);
2551
3173
  REQUIRE(function->metadata_keyspace.bucket == meta_bucket_name);
2552
- REQUIRE(function->settings.deployment_status == couchbase::management::eventing::function_deployment_status::undeployed);
2553
- REQUIRE(function->settings.processing_status == couchbase::management::eventing::function_processing_status::paused);
3174
+ REQUIRE(function->settings.deployment_status == couchbase::core::management::eventing::function_deployment_status::undeployed);
3175
+ REQUIRE(function->settings.processing_status == couchbase::core::management::eventing::function_processing_status::paused);
2554
3176
  REQUIRE(!function->settings.handler_headers.empty());
2555
3177
  REQUIRE(function->settings.handler_headers[0] == "// generated by Couchbase C++ SDK");
2556
3178
  REQUIRE(!function->constant_bindings.empty());
@@ -2559,99 +3181,102 @@ function OnDelete(meta, options) {
2559
3181
  REQUIRE(!function->bucket_bindings.empty());
2560
3182
  REQUIRE(function->bucket_bindings[0].alias == "data");
2561
3183
  REQUIRE(function->bucket_bindings[0].name.bucket == "default");
2562
- REQUIRE(function->bucket_bindings[0].access == couchbase::management::eventing::function_bucket_access::read_write);
3184
+ REQUIRE(function->bucket_bindings[0].access == couchbase::core::management::eventing::function_bucket_access::read_write);
2563
3185
  REQUIRE(!function->url_bindings.empty());
2564
3186
  REQUIRE(function->url_bindings[0].alias == "home");
2565
3187
  REQUIRE(function->url_bindings[0].hostname == "https://couchbase.com");
2566
- REQUIRE(std::holds_alternative<couchbase::management::eventing::function_url_no_auth>(function->url_bindings[0].auth));
3188
+ REQUIRE(std::holds_alternative<couchbase::core::management::eventing::function_url_no_auth>(function->url_bindings[0].auth));
2567
3189
  }
2568
3190
 
2569
3191
  {
2570
- couchbase::operations::management::eventing_get_status_request req{};
3192
+ couchbase::core::operations::management::eventing_get_status_request req{};
2571
3193
  auto resp = test::utils::execute(integration.cluster, req);
2572
- REQUIRE_FALSE(resp.ctx.ec);
3194
+ REQUIRE_SUCCESS(resp.ctx.ec);
2573
3195
  REQUIRE(resp.status.num_eventing_nodes > 0);
2574
- auto function = std::find_if(resp.status.functions.begin(), resp.status.functions.end(), [function_name](const auto& fun) {
3196
+ auto function = std::find_if(resp.status.functions.begin(), resp.status.functions.end(), [&function_name](const auto& fun) {
2575
3197
  return function_name == fun.name;
2576
3198
  });
2577
3199
  REQUIRE(function != resp.status.functions.end());
2578
- REQUIRE(function->status == couchbase::management::eventing::function_status::undeployed);
2579
- REQUIRE(function->deployment_status == couchbase::management::eventing::function_deployment_status::undeployed);
2580
- REQUIRE(function->processing_status == couchbase::management::eventing::function_processing_status::paused);
3200
+ REQUIRE(function->status == couchbase::core::management::eventing::function_status::undeployed);
3201
+ REQUIRE(function->deployment_status == couchbase::core::management::eventing::function_deployment_status::undeployed);
3202
+ REQUIRE(function->processing_status == couchbase::core::management::eventing::function_processing_status::paused);
2581
3203
  }
2582
3204
 
2583
3205
  {
2584
- couchbase::operations::management::eventing_undeploy_function_request req{ function_name };
3206
+ couchbase::core::operations::management::eventing_undeploy_function_request req{ function_name };
2585
3207
  auto resp = test::utils::execute(integration.cluster, req);
2586
- REQUIRE(resp.ctx.ec == couchbase::error::management_errc::eventing_function_not_deployed);
3208
+ REQUIRE(resp.ctx.ec == couchbase::errc::management::eventing_function_not_deployed);
2587
3209
  }
2588
3210
 
2589
3211
  {
2590
- couchbase::operations::management::eventing_deploy_function_request req{ function_name };
3212
+ couchbase::core::operations::management::eventing_deploy_function_request req{ function_name };
2591
3213
  auto resp = test::utils::execute(integration.cluster, req);
2592
- REQUIRE_FALSE(resp.ctx.ec);
3214
+ REQUIRE_SUCCESS(resp.ctx.ec);
2593
3215
  }
2594
3216
 
2595
- REQUIRE(wait_for_function_reach_status(integration, function_name, couchbase::management::eventing::function_status::deployed));
3217
+ REQUIRE(
3218
+ wait_for_function_reach_status(integration, function_name, couchbase::core::management::eventing::function_status::deployed));
2596
3219
 
2597
3220
  {
2598
- couchbase::operations::management::eventing_drop_function_request req{ function_name };
3221
+ couchbase::core::operations::management::eventing_drop_function_request req{ function_name };
2599
3222
  auto resp = test::utils::execute(integration.cluster, req);
2600
- REQUIRE(resp.ctx.ec == couchbase::error::management_errc::eventing_function_deployed);
3223
+ REQUIRE(resp.ctx.ec == couchbase::errc::management::eventing_function_deployed);
2601
3224
  }
2602
3225
 
2603
3226
  {
2604
- couchbase::operations::management::eventing_resume_function_request req{ function_name };
3227
+ couchbase::core::operations::management::eventing_resume_function_request req{ function_name };
2605
3228
  auto resp = test::utils::execute(integration.cluster, req);
2606
- REQUIRE(resp.ctx.ec == couchbase::error::management_errc::eventing_function_deployed);
3229
+ REQUIRE(resp.ctx.ec == couchbase::errc::management::eventing_function_deployed);
2607
3230
  }
2608
3231
 
2609
3232
  {
2610
- couchbase::operations::management::eventing_pause_function_request req{ function_name };
3233
+ couchbase::core::operations::management::eventing_pause_function_request req{ function_name };
2611
3234
  auto resp = test::utils::execute(integration.cluster, req);
2612
- REQUIRE_FALSE(resp.ctx.ec);
3235
+ REQUIRE_SUCCESS(resp.ctx.ec);
2613
3236
  }
2614
3237
 
2615
- REQUIRE(wait_for_function_reach_status(integration, function_name, couchbase::management::eventing::function_status::paused));
3238
+ REQUIRE(wait_for_function_reach_status(integration, function_name, couchbase::core::management::eventing::function_status::paused));
2616
3239
 
2617
3240
  {
2618
- couchbase::operations::management::eventing_pause_function_request req{ function_name };
3241
+ couchbase::core::operations::management::eventing_pause_function_request req{ function_name };
2619
3242
  auto resp = test::utils::execute(integration.cluster, req);
2620
- REQUIRE(resp.ctx.ec == couchbase::error::management_errc::eventing_function_paused);
3243
+ REQUIRE(resp.ctx.ec == couchbase::errc::management::eventing_function_paused);
2621
3244
  }
2622
3245
 
2623
3246
  {
2624
- couchbase::operations::management::eventing_resume_function_request req{ function_name };
3247
+ couchbase::core::operations::management::eventing_resume_function_request req{ function_name };
2625
3248
  auto resp = test::utils::execute(integration.cluster, req);
2626
- REQUIRE_FALSE(resp.ctx.ec);
3249
+ REQUIRE_SUCCESS(resp.ctx.ec);
2627
3250
  }
2628
3251
 
2629
- REQUIRE(wait_for_function_reach_status(integration, function_name, couchbase::management::eventing::function_status::deployed));
3252
+ REQUIRE(
3253
+ wait_for_function_reach_status(integration, function_name, couchbase::core::management::eventing::function_status::deployed));
2630
3254
 
2631
3255
  {
2632
- couchbase::operations::management::eventing_undeploy_function_request req{ function_name };
3256
+ couchbase::core::operations::management::eventing_undeploy_function_request req{ function_name };
2633
3257
  auto resp = test::utils::execute(integration.cluster, req);
2634
- REQUIRE_FALSE(resp.ctx.ec);
3258
+ REQUIRE_SUCCESS(resp.ctx.ec);
2635
3259
  }
2636
3260
 
2637
- REQUIRE(wait_for_function_reach_status(integration, function_name, couchbase::management::eventing::function_status::undeployed));
3261
+ REQUIRE(
3262
+ wait_for_function_reach_status(integration, function_name, couchbase::core::management::eventing::function_status::undeployed));
2638
3263
 
2639
3264
  {
2640
- couchbase::operations::management::eventing_drop_function_request req{ function_name };
3265
+ couchbase::core::operations::management::eventing_drop_function_request req{ function_name };
2641
3266
  auto resp = test::utils::execute(integration.cluster, req);
2642
- REQUIRE_FALSE(resp.ctx.ec);
3267
+ REQUIRE_SUCCESS(resp.ctx.ec);
2643
3268
  }
2644
3269
 
2645
3270
  {
2646
- couchbase::operations::management::eventing_get_function_request req{ function_name };
3271
+ couchbase::core::operations::management::eventing_get_function_request req{ function_name };
2647
3272
  auto resp = test::utils::execute(integration.cluster, req);
2648
- REQUIRE(resp.ctx.ec == couchbase::error::management_errc::eventing_function_not_found);
3273
+ REQUIRE(resp.ctx.ec == couchbase::errc::management::eventing_function_not_found);
2649
3274
  }
2650
3275
 
2651
3276
  {
2652
- couchbase::operations::management::bucket_drop_request req{ meta_bucket_name };
3277
+ couchbase::core::operations::management::bucket_drop_request req{ meta_bucket_name };
2653
3278
  auto resp = test::utils::execute(integration.cluster, req);
2654
- REQUIRE_FALSE(resp.ctx.ec);
3279
+ REQUIRE_SUCCESS(resp.ctx.ec);
2655
3280
  }
2656
3281
  }
2657
3282
  }