couchbase 3.5.1 → 3.5.2

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 (1166) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/ext/0001-fix-build-for-mingw-w64-ucrt-x86_64-toolchain.patch +40 -0
  4. data/ext/CMakeLists.txt +22 -2
  5. data/ext/cache/extconf_include.rb +3 -3
  6. data/ext/cache/mozilla-ca-bundle.crt +19 -32
  7. data/ext/cache/mozilla-ca-bundle.sha256 +1 -1
  8. data/ext/couchbase/CMakeLists.txt +16 -9
  9. data/ext/couchbase/cmake/0001-fix-build-for-mingw-w64-ucrt-x86_64-toolchain.patch +3 -4
  10. data/ext/couchbase/cmake/CompilerWarnings.cmake +2 -1
  11. data/ext/couchbase/cmake/Packaging.cmake +41 -0
  12. data/ext/couchbase/cmake/Sanitizers.cmake +1 -0
  13. data/ext/couchbase/cmake/VersionInfo.cmake +5 -5
  14. data/ext/couchbase/cmake/build_version.hxx.in +1 -0
  15. data/ext/couchbase/cmake/couchbase-cxx-client.pc.in +10 -0
  16. data/ext/couchbase/cmake/test_boringssl.cxx +1 -1
  17. data/ext/couchbase/cmake/test_openssl.cxx +1 -1
  18. data/ext/couchbase/core/agent.cxx +353 -304
  19. data/ext/couchbase/core/agent.hxx +94 -76
  20. data/ext/couchbase/core/agent_config.cxx +9 -8
  21. data/ext/couchbase/core/agent_config.hxx +7 -7
  22. data/ext/couchbase/core/agent_group.cxx +132 -120
  23. data/ext/couchbase/core/agent_group.hxx +26 -22
  24. data/ext/couchbase/core/agent_group_config.cxx +8 -7
  25. data/ext/couchbase/core/agent_group_config.hxx +6 -6
  26. data/ext/couchbase/core/agent_unit_test_api.hxx +6 -6
  27. data/ext/couchbase/core/analytics_query_options.cxx +21 -21
  28. data/ext/couchbase/core/analytics_query_options.hxx +19 -18
  29. data/ext/couchbase/core/analytics_scan_consistency.hxx +2 -2
  30. data/ext/couchbase/core/bucket.cxx +848 -776
  31. data/ext/couchbase/core/bucket.hxx +151 -139
  32. data/ext/couchbase/core/capella_ca.hxx +20 -19
  33. data/ext/couchbase/core/cluster.cxx +1240 -927
  34. data/ext/couchbase/core/cluster.hxx +254 -167
  35. data/ext/couchbase/core/cluster_agent.cxx +7 -7
  36. data/ext/couchbase/core/cluster_agent.hxx +4 -4
  37. data/ext/couchbase/core/cluster_agent_config.cxx +8 -7
  38. data/ext/couchbase/core/cluster_agent_config.hxx +6 -6
  39. data/ext/couchbase/core/cluster_options.cxx +17 -17
  40. data/ext/couchbase/core/cluster_options.hxx +50 -47
  41. data/ext/couchbase/core/cluster_state.hxx +3 -3
  42. data/ext/couchbase/core/collection_id_cache_entry.hxx +5 -4
  43. data/ext/couchbase/core/collections_component.cxx +372 -329
  44. data/ext/couchbase/core/collections_component.hxx +17 -13
  45. data/ext/couchbase/core/collections_component_unit_test_api.hxx +6 -6
  46. data/ext/couchbase/core/collections_options.hxx +29 -27
  47. data/ext/couchbase/core/config_listener.hxx +3 -3
  48. data/ext/couchbase/core/config_profile.hxx +3 -3
  49. data/ext/couchbase/core/config_profiles.cxx +31 -31
  50. data/ext/couchbase/core/config_profiles.hxx +19 -19
  51. data/ext/couchbase/core/core_sdk_shim.cxx +2 -1
  52. data/ext/couchbase/core/core_sdk_shim.hxx +2 -2
  53. data/ext/couchbase/core/crud_component.cxx +310 -276
  54. data/ext/couchbase/core/crud_component.hxx +21 -15
  55. data/ext/couchbase/core/crud_options.hxx +361 -354
  56. data/ext/couchbase/core/crypto/cbcrypto.cc +732 -627
  57. data/ext/couchbase/core/crypto/cbcrypto.h +12 -3
  58. data/ext/couchbase/core/design_document_namespace.hxx +2 -2
  59. data/ext/couchbase/core/design_document_namespace_fmt.hxx +18 -18
  60. data/ext/couchbase/core/diagnostics.hxx +44 -44
  61. data/ext/couchbase/core/diagnostics_fmt.hxx +76 -76
  62. data/ext/couchbase/core/diagnostics_json.hxx +61 -60
  63. data/ext/couchbase/core/diagntostics_options.hxx +14 -14
  64. data/ext/couchbase/core/dispatcher.cxx +4 -3
  65. data/ext/couchbase/core/dispatcher.hxx +8 -7
  66. data/ext/couchbase/core/document_id.cxx +37 -34
  67. data/ext/couchbase/core/document_id.hxx +87 -86
  68. data/ext/couchbase/core/document_id_fmt.hxx +10 -10
  69. data/ext/couchbase/core/durability_options.hxx +50 -49
  70. data/ext/couchbase/core/error_context/analytics.hxx +18 -18
  71. data/ext/couchbase/core/error_context/analytics_json.hxx +115 -0
  72. data/ext/couchbase/core/error_context/base_error_context.hxx +184 -0
  73. data/ext/couchbase/core/error_context/http.hxx +14 -14
  74. data/ext/couchbase/core/error_context/http_json.hxx +90 -0
  75. data/ext/couchbase/core/error_context/internal_tof_metadata_json.hxx +36 -0
  76. data/ext/couchbase/core/error_context/key_value.cxx +27 -27
  77. data/ext/couchbase/core/error_context/key_value.hxx +41 -38
  78. data/ext/couchbase/core/error_context/key_value_error_context.hxx +235 -0
  79. data/ext/couchbase/core/error_context/key_value_error_map_attribute.hxx +142 -0
  80. data/ext/couchbase/core/error_context/key_value_error_map_info.hxx +139 -0
  81. data/ext/couchbase/core/error_context/key_value_extended_error_info.hxx +86 -0
  82. data/ext/couchbase/core/error_context/key_value_json.hxx +83 -0
  83. data/ext/couchbase/core/error_context/key_value_status_code.hxx +109 -0
  84. data/ext/couchbase/core/error_context/query.hxx +18 -18
  85. data/ext/couchbase/core/error_context/query_error_context.hxx +150 -0
  86. data/ext/couchbase/core/error_context/query_json.hxx +114 -0
  87. data/ext/couchbase/core/error_context/query_public_json.hxx +84 -0
  88. data/ext/couchbase/core/error_context/search.hxx +17 -17
  89. data/ext/couchbase/core/error_context/search_json.hxx +101 -0
  90. data/ext/couchbase/core/error_context/subdocument_error_context.hxx +147 -0
  91. data/ext/couchbase/core/error_context/subdocument_json.hxx +48 -0
  92. data/ext/couchbase/{couchbase → core/error_context}/transaction_error_context.hxx +22 -22
  93. data/ext/couchbase/core/error_context/transaction_op_error_context.hxx +79 -0
  94. data/ext/couchbase/core/error_context/view.hxx +17 -17
  95. data/ext/couchbase/core/fmt/key_value_error_map_attribute.hxx +100 -0
  96. data/ext/couchbase/{couchbase → core}/fmt/key_value_extended_error_info.hxx +20 -20
  97. data/ext/couchbase/core/fmt/key_value_status_code.hxx +269 -0
  98. data/ext/couchbase/core/free_form_http_request.cxx +26 -26
  99. data/ext/couchbase/core/free_form_http_request.hxx +34 -33
  100. data/ext/couchbase/core/impl/analytics.cxx +111 -131
  101. data/ext/couchbase/core/impl/analytics.hxx +5 -7
  102. data/ext/couchbase/core/impl/analytics_error_category.cxx +29 -28
  103. data/ext/couchbase/core/impl/analytics_index_manager.cxx +615 -516
  104. data/ext/couchbase/core/impl/best_effort_retry_strategy.cxx +53 -50
  105. data/ext/couchbase/core/impl/binary_collection.cxx +346 -285
  106. data/ext/couchbase/core/impl/boolean_field_query.cxx +10 -10
  107. data/ext/couchbase/core/impl/boolean_query.cxx +27 -27
  108. data/ext/couchbase/core/impl/bootstrap_state_listener.hxx +6 -6
  109. data/ext/couchbase/core/impl/bucket.cxx +39 -34
  110. data/ext/couchbase/core/impl/bucket_manager.cxx +354 -313
  111. data/ext/couchbase/core/impl/cluster.cxx +430 -325
  112. data/ext/couchbase/core/impl/collection.cxx +1033 -1187
  113. data/ext/couchbase/core/impl/collection_manager.cxx +201 -170
  114. data/ext/couchbase/core/impl/common_error_category.cxx +58 -55
  115. data/ext/couchbase/core/impl/configuration_profiles_registry.cxx +46 -32
  116. data/ext/couchbase/core/impl/conjunction_query.cxx +17 -17
  117. data/ext/couchbase/core/impl/date_range.cxx +24 -20
  118. data/ext/couchbase/core/impl/date_range_facet.cxx +22 -22
  119. data/ext/couchbase/core/impl/date_range_facet_result.cxx +6 -6
  120. data/ext/couchbase/core/impl/date_range_query.cxx +50 -48
  121. data/ext/couchbase/core/impl/diagnostics.cxx +211 -198
  122. data/ext/couchbase/core/impl/diagnostics.hxx +7 -6
  123. data/ext/couchbase/core/impl/disjunction_query.cxx +18 -17
  124. data/ext/couchbase/core/impl/dns_srv_tracker.cxx +92 -75
  125. data/ext/couchbase/core/impl/dns_srv_tracker.hxx +24 -20
  126. data/ext/couchbase/core/impl/doc_id_query.cxx +9 -9
  127. data/ext/couchbase/core/impl/encoded_search_facet.hxx +2 -2
  128. data/ext/couchbase/core/impl/encoded_search_query.hxx +2 -2
  129. data/ext/couchbase/core/impl/encoded_search_sort.hxx +2 -2
  130. data/ext/couchbase/core/impl/error.cxx +171 -0
  131. data/ext/couchbase/core/impl/error.hxx +64 -0
  132. data/ext/couchbase/core/impl/error_context.cxx +56 -0
  133. data/ext/couchbase/core/impl/expiry.cxx +66 -53
  134. data/ext/couchbase/core/impl/fail_fast_retry_strategy.cxx +5 -4
  135. data/ext/couchbase/core/impl/field_level_encryption_error_category.cxx +30 -28
  136. data/ext/couchbase/core/impl/geo_bounding_box_query.cxx +17 -17
  137. data/ext/couchbase/core/impl/geo_distance_query.cxx +14 -14
  138. data/ext/couchbase/core/impl/geo_polygon_query.cxx +17 -17
  139. data/ext/couchbase/core/impl/get_all_replicas.hxx +26 -22
  140. data/ext/couchbase/core/impl/get_any_replica.hxx +25 -23
  141. data/ext/couchbase/core/impl/get_replica.cxx +18 -15
  142. data/ext/couchbase/core/impl/get_replica.hxx +23 -18
  143. data/ext/couchbase/core/impl/internal_date_range_facet_result.cxx +16 -14
  144. data/ext/couchbase/core/impl/internal_date_range_facet_result.hxx +16 -15
  145. data/ext/couchbase/core/impl/internal_error_context.cxx +79 -0
  146. data/ext/couchbase/core/impl/internal_error_context.hxx +52 -0
  147. data/ext/couchbase/core/impl/internal_numeric_range_facet_result.cxx +18 -15
  148. data/ext/couchbase/core/impl/internal_numeric_range_facet_result.hxx +16 -15
  149. data/ext/couchbase/core/impl/internal_scan_result.hxx +7 -7
  150. data/ext/couchbase/core/impl/internal_search_error_context.cxx +25 -22
  151. data/ext/couchbase/core/impl/internal_search_error_context.hxx +32 -31
  152. data/ext/couchbase/core/impl/internal_search_meta_data.cxx +15 -13
  153. data/ext/couchbase/core/impl/internal_search_meta_data.hxx +10 -9
  154. data/ext/couchbase/core/impl/internal_search_result.cxx +30 -22
  155. data/ext/couchbase/core/impl/internal_search_result.hxx +10 -9
  156. data/ext/couchbase/core/impl/internal_search_row.cxx +10 -10
  157. data/ext/couchbase/core/impl/internal_search_row.hxx +16 -16
  158. data/ext/couchbase/core/impl/internal_search_row_location.hxx +2 -2
  159. data/ext/couchbase/core/impl/internal_search_row_locations.cxx +68 -65
  160. data/ext/couchbase/core/impl/internal_search_row_locations.hxx +16 -13
  161. data/ext/couchbase/core/impl/internal_term_facet_result.cxx +16 -14
  162. data/ext/couchbase/core/impl/internal_term_facet_result.hxx +15 -15
  163. data/ext/couchbase/core/impl/key_value_error_category.cxx +73 -72
  164. data/ext/couchbase/core/impl/key_value_error_context.cxx +65 -65
  165. data/ext/couchbase/core/impl/logger.cxx +91 -0
  166. data/ext/couchbase/core/impl/lookup_in_all_replicas.hxx +32 -29
  167. data/ext/couchbase/core/impl/lookup_in_any_replica.hxx +33 -29
  168. data/ext/couchbase/core/impl/lookup_in_replica.cxx +75 -68
  169. data/ext/couchbase/core/impl/lookup_in_replica.hxx +30 -26
  170. data/ext/couchbase/core/impl/management_error_category.cxx +41 -40
  171. data/ext/couchbase/core/impl/match_all_query.cxx +6 -6
  172. data/ext/couchbase/core/impl/match_none_query.cxx +6 -6
  173. data/ext/couchbase/core/impl/match_phrase_query.cxx +13 -13
  174. data/ext/couchbase/core/impl/match_query.cxx +28 -28
  175. data/ext/couchbase/core/impl/network_error_category.cxx +39 -38
  176. data/ext/couchbase/core/impl/numeric_range.cxx +6 -6
  177. data/ext/couchbase/core/impl/numeric_range_facet.cxx +22 -22
  178. data/ext/couchbase/core/impl/numeric_range_facet_result.cxx +6 -6
  179. data/ext/couchbase/core/impl/numeric_range_query.cxx +22 -22
  180. data/ext/couchbase/core/impl/observe_poll.cxx +294 -277
  181. data/ext/couchbase/core/impl/observe_poll.hxx +1 -1
  182. data/ext/couchbase/core/impl/observe_seqno.cxx +21 -18
  183. data/ext/couchbase/core/impl/observe_seqno.hxx +31 -26
  184. data/ext/couchbase/core/impl/phrase_query.cxx +10 -10
  185. data/ext/couchbase/core/impl/prefix_query.cxx +10 -10
  186. data/ext/couchbase/core/impl/query.cxx +163 -154
  187. data/ext/couchbase/core/impl/query.hxx +6 -7
  188. data/ext/couchbase/core/impl/query_error_category.cxx +22 -21
  189. data/ext/couchbase/core/impl/query_error_context.cxx +45 -45
  190. data/ext/couchbase/core/impl/query_index_manager.cxx +488 -408
  191. data/ext/couchbase/core/impl/query_string_query.cxx +7 -7
  192. data/ext/couchbase/core/impl/regexp_query.cxx +10 -10
  193. data/ext/couchbase/core/impl/replica_utils.cxx +66 -0
  194. data/ext/couchbase/core/impl/replica_utils.hxx +48 -0
  195. data/ext/couchbase/core/impl/retry_action.cxx +3 -3
  196. data/ext/couchbase/core/impl/retry_reason.cxx +129 -56
  197. data/ext/couchbase/core/impl/retry_reason.hxx +28 -0
  198. data/ext/couchbase/core/impl/scan_result.cxx +53 -49
  199. data/ext/couchbase/core/impl/scope.cxx +103 -94
  200. data/ext/couchbase/core/impl/search.cxx +139 -130
  201. data/ext/couchbase/core/impl/search.hxx +4 -4
  202. data/ext/couchbase/core/impl/search_error_category.cxx +18 -17
  203. data/ext/couchbase/core/impl/search_index_manager.cxx +492 -390
  204. data/ext/couchbase/core/impl/search_meta_data.cxx +3 -3
  205. data/ext/couchbase/core/impl/search_request.cxx +78 -78
  206. data/ext/couchbase/core/impl/search_result.cxx +5 -5
  207. data/ext/couchbase/core/impl/search_row.cxx +7 -7
  208. data/ext/couchbase/core/impl/search_row_location.cxx +9 -8
  209. data/ext/couchbase/core/impl/search_row_locations.cxx +8 -7
  210. data/ext/couchbase/core/impl/search_sort_field.cxx +53 -53
  211. data/ext/couchbase/core/impl/search_sort_geo_distance.cxx +49 -48
  212. data/ext/couchbase/core/impl/search_sort_id.cxx +10 -10
  213. data/ext/couchbase/core/impl/search_sort_score.cxx +10 -10
  214. data/ext/couchbase/core/impl/streaming_json_lexer_error_category.cxx +70 -68
  215. data/ext/couchbase/core/impl/subdoc/array_add_unique.cxx +6 -6
  216. data/ext/couchbase/core/impl/subdoc/array_append.cxx +6 -6
  217. data/ext/couchbase/core/impl/subdoc/array_insert.cxx +6 -6
  218. data/ext/couchbase/core/impl/subdoc/array_prepend.cxx +6 -6
  219. data/ext/couchbase/core/impl/subdoc/command.hxx +5 -5
  220. data/ext/couchbase/core/impl/subdoc/command_bundle.hxx +11 -11
  221. data/ext/couchbase/core/impl/subdoc/count.cxx +6 -6
  222. data/ext/couchbase/core/impl/subdoc/counter.cxx +6 -6
  223. data/ext/couchbase/core/impl/subdoc/exists.cxx +6 -6
  224. data/ext/couchbase/core/impl/subdoc/get.cxx +6 -6
  225. data/ext/couchbase/core/impl/subdoc/insert.cxx +6 -6
  226. data/ext/couchbase/core/impl/subdoc/join_values.cxx +25 -25
  227. data/ext/couchbase/core/impl/subdoc/lookup_in_macro.cxx +61 -60
  228. data/ext/couchbase/core/impl/subdoc/lookup_in_specs.cxx +9 -9
  229. data/ext/couchbase/core/impl/subdoc/mutate_in_macro.cxx +48 -39
  230. data/ext/couchbase/core/impl/subdoc/mutate_in_specs.cxx +9 -9
  231. data/ext/couchbase/core/impl/subdoc/opcode.hxx +16 -16
  232. data/ext/couchbase/core/impl/subdoc/path_flags.hxx +40 -17
  233. data/ext/couchbase/core/impl/subdoc/remove.cxx +6 -6
  234. data/ext/couchbase/core/impl/subdoc/replace.cxx +6 -6
  235. data/ext/couchbase/core/impl/subdoc/upsert.cxx +6 -6
  236. data/ext/couchbase/core/impl/term_facet.cxx +8 -8
  237. data/ext/couchbase/core/impl/term_facet_result.cxx +6 -6
  238. data/ext/couchbase/core/impl/term_query.cxx +25 -25
  239. data/ext/couchbase/core/impl/term_range_query.cxx +22 -22
  240. data/ext/couchbase/core/impl/transaction_error_category.cxx +21 -20
  241. data/ext/couchbase/core/impl/transaction_get_result.cxx +41 -30
  242. data/ext/couchbase/core/impl/transaction_op_error_category.cxx +55 -56
  243. data/ext/couchbase/core/impl/vector_query.cxx +15 -10
  244. data/ext/couchbase/core/impl/vector_search.cxx +9 -9
  245. data/ext/couchbase/core/impl/view_error_category.cxx +17 -16
  246. data/ext/couchbase/core/impl/wildcard_query.cxx +10 -10
  247. data/ext/couchbase/core/impl/with_legacy_durability.hxx +30 -29
  248. data/ext/couchbase/core/io/dns_client.cxx +257 -232
  249. data/ext/couchbase/core/io/dns_client.hxx +19 -18
  250. data/ext/couchbase/core/io/dns_codec.hxx +156 -154
  251. data/ext/couchbase/core/io/dns_config.cxx +114 -109
  252. data/ext/couchbase/core/io/dns_config.hxx +15 -13
  253. data/ext/couchbase/core/io/dns_message.hxx +365 -342
  254. data/ext/couchbase/core/io/http_command.hxx +155 -134
  255. data/ext/couchbase/core/io/http_context.hxx +5 -5
  256. data/ext/couchbase/core/io/http_message.hxx +75 -71
  257. data/ext/couchbase/core/io/http_parser.cxx +70 -67
  258. data/ext/couchbase/core/io/http_parser.hxx +18 -18
  259. data/ext/couchbase/core/io/http_session.hxx +620 -520
  260. data/ext/couchbase/core/io/http_session_manager.hxx +406 -315
  261. data/ext/couchbase/core/io/http_traits.hxx +7 -0
  262. data/ext/couchbase/core/io/ip_protocol.hxx +3 -3
  263. data/ext/couchbase/core/io/mcbp_command.hxx +298 -278
  264. data/ext/couchbase/core/io/mcbp_context.hxx +7 -6
  265. data/ext/couchbase/core/io/mcbp_message.cxx +8 -8
  266. data/ext/couchbase/core/io/mcbp_message.hxx +19 -19
  267. data/ext/couchbase/core/io/mcbp_parser.cxx +60 -51
  268. data/ext/couchbase/core/io/mcbp_parser.hxx +21 -17
  269. data/ext/couchbase/core/io/mcbp_session.cxx +1769 -1616
  270. data/ext/couchbase/core/io/mcbp_session.hxx +63 -57
  271. data/ext/couchbase/core/io/query_cache.hxx +34 -34
  272. data/ext/couchbase/core/io/retry_context.hxx +45 -45
  273. data/ext/couchbase/core/io/retry_orchestrator.hxx +52 -42
  274. data/ext/couchbase/core/io/streams.hxx +210 -193
  275. data/ext/couchbase/core/json_string.hxx +47 -47
  276. data/ext/couchbase/core/key_value_config.cxx +8 -8
  277. data/ext/couchbase/core/key_value_config.hxx +12 -11
  278. data/ext/couchbase/core/logger/configuration.hxx +35 -35
  279. data/ext/couchbase/core/logger/custom_rotating_file_sink.cxx +73 -72
  280. data/ext/couchbase/core/logger/custom_rotating_file_sink.hxx +20 -18
  281. data/ext/couchbase/core/logger/level.hxx +9 -1
  282. data/ext/couchbase/core/logger/logger.cxx +279 -252
  283. data/ext/couchbase/core/logger/logger.hxx +110 -58
  284. data/ext/couchbase/core/management/analytics_dataset.hxx +4 -4
  285. data/ext/couchbase/core/management/analytics_index.hxx +4 -4
  286. data/ext/couchbase/core/management/analytics_link_azure_blob_external.cxx +35 -33
  287. data/ext/couchbase/core/management/analytics_link_azure_blob_external.hxx +36 -35
  288. data/ext/couchbase/core/management/analytics_link_azure_blob_external_json.hxx +24 -20
  289. data/ext/couchbase/core/management/analytics_link_couchbase_remote.cxx +66 -65
  290. data/ext/couchbase/core/management/analytics_link_couchbase_remote.hxx +77 -70
  291. data/ext/couchbase/core/management/analytics_link_couchbase_remote_json.hxx +38 -32
  292. data/ext/couchbase/core/management/analytics_link_s3_external.cxx +26 -25
  293. data/ext/couchbase/core/management/analytics_link_s3_external.hxx +30 -30
  294. data/ext/couchbase/core/management/analytics_link_s3_external_json.hxx +18 -16
  295. data/ext/couchbase/core/management/bucket_settings.hxx +109 -91
  296. data/ext/couchbase/core/management/bucket_settings_json.hxx +112 -94
  297. data/ext/couchbase/core/management/design_document.hxx +9 -9
  298. data/ext/couchbase/core/management/eventing_function.hxx +124 -121
  299. data/ext/couchbase/core/management/eventing_function_json.hxx +228 -184
  300. data/ext/couchbase/core/management/eventing_status.hxx +41 -41
  301. data/ext/couchbase/core/management/eventing_status_json.hxx +53 -45
  302. data/ext/couchbase/core/management/rbac.hxx +33 -28
  303. data/ext/couchbase/core/management/rbac_fmt.hxx +21 -21
  304. data/ext/couchbase/core/management/rbac_json.hxx +132 -125
  305. data/ext/couchbase/core/management/search_index.cxx +79 -0
  306. data/ext/couchbase/core/management/search_index.hxx +11 -10
  307. data/ext/couchbase/core/management/search_index_json.hxx +27 -26
  308. data/ext/couchbase/core/mcbp/barrier_frame.hxx +4 -3
  309. data/ext/couchbase/core/mcbp/big_endian.cxx +22 -22
  310. data/ext/couchbase/core/mcbp/buffer_writer.cxx +22 -19
  311. data/ext/couchbase/core/mcbp/buffer_writer.hxx +9 -9
  312. data/ext/couchbase/core/mcbp/codec.cxx +419 -397
  313. data/ext/couchbase/core/mcbp/codec.hxx +14 -12
  314. data/ext/couchbase/core/mcbp/command_code.cxx +48 -48
  315. data/ext/couchbase/core/mcbp/completion_token.hxx +33 -33
  316. data/ext/couchbase/core/mcbp/datatype.hxx +3 -3
  317. data/ext/couchbase/core/mcbp/durability_level.hxx +8 -7
  318. data/ext/couchbase/core/mcbp/durability_level_frame.hxx +3 -2
  319. data/ext/couchbase/core/mcbp/durability_timeout_frame.hxx +4 -3
  320. data/ext/couchbase/core/mcbp/open_tracing_frame.hxx +3 -2
  321. data/ext/couchbase/core/mcbp/operation_consumer.cxx +3 -3
  322. data/ext/couchbase/core/mcbp/operation_consumer.hxx +9 -9
  323. data/ext/couchbase/core/mcbp/operation_queue.cxx +76 -70
  324. data/ext/couchbase/core/mcbp/operation_queue.hxx +18 -17
  325. data/ext/couchbase/core/mcbp/packet.cxx +65 -51
  326. data/ext/couchbase/core/mcbp/packet.hxx +25 -25
  327. data/ext/couchbase/core/mcbp/preserve_expiry_frame.hxx +4 -2
  328. data/ext/couchbase/core/mcbp/queue_callback.hxx +3 -2
  329. data/ext/couchbase/core/mcbp/queue_request.cxx +65 -62
  330. data/ext/couchbase/core/mcbp/queue_request.hxx +54 -52
  331. data/ext/couchbase/core/mcbp/queue_request_connection_info.hxx +3 -3
  332. data/ext/couchbase/core/mcbp/queue_response.hxx +7 -7
  333. data/ext/couchbase/core/mcbp/read_units_frame.hxx +3 -2
  334. data/ext/couchbase/core/mcbp/server_duration.cxx +7 -7
  335. data/ext/couchbase/core/mcbp/server_duration_frame.hxx +3 -2
  336. data/ext/couchbase/core/mcbp/stream_id_frame.hxx +3 -2
  337. data/ext/couchbase/core/mcbp/unsupported_frame.hxx +4 -3
  338. data/ext/couchbase/core/mcbp/user_impersonation_frame.hxx +1 -1
  339. data/ext/couchbase/core/mcbp/write_units_frame.hxx +3 -2
  340. data/ext/couchbase/core/meta/features.hxx +58 -0
  341. data/ext/couchbase/core/meta/version.cxx +255 -204
  342. data/ext/couchbase/core/meta/version.hxx +31 -20
  343. data/ext/couchbase/core/metrics/logging_meter.cxx +160 -154
  344. data/ext/couchbase/core/metrics/logging_meter.hxx +16 -15
  345. data/ext/couchbase/core/metrics/logging_meter_options.hxx +1 -1
  346. data/ext/couchbase/core/metrics/noop_meter.hxx +14 -13
  347. data/ext/couchbase/core/mozilla_ca_bundle.hxx +2 -2
  348. data/ext/couchbase/core/n1ql_query_options.cxx +31 -31
  349. data/ext/couchbase/core/n1ql_query_options.hxx +22 -21
  350. data/ext/couchbase/core/operation_map.hxx +3 -3
  351. data/ext/couchbase/core/operations/document_analytics.cxx +187 -176
  352. data/ext/couchbase/core/operations/document_analytics.hxx +79 -71
  353. data/ext/couchbase/core/operations/document_append.cxx +18 -15
  354. data/ext/couchbase/core/operations/document_append.hxx +18 -16
  355. data/ext/couchbase/core/operations/document_decrement.cxx +26 -23
  356. data/ext/couchbase/core/operations/document_decrement.hxx +24 -20
  357. data/ext/couchbase/core/operations/document_exists.cxx +23 -21
  358. data/ext/couchbase/core/operations/document_exists.hxx +25 -23
  359. data/ext/couchbase/core/operations/document_get.cxx +17 -15
  360. data/ext/couchbase/core/operations/document_get.hxx +17 -15
  361. data/ext/couchbase/core/operations/document_get_all_replicas.hxx +121 -92
  362. data/ext/couchbase/core/operations/document_get_and_lock.cxx +19 -16
  363. data/ext/couchbase/core/operations/document_get_and_lock.hxx +21 -17
  364. data/ext/couchbase/core/operations/document_get_and_touch.cxx +19 -16
  365. data/ext/couchbase/core/operations/document_get_and_touch.hxx +22 -18
  366. data/ext/couchbase/core/operations/document_get_any_replica.hxx +111 -82
  367. data/ext/couchbase/core/operations/document_get_projected.cxx +193 -184
  368. data/ext/couchbase/core/operations/document_get_projected.hxx +25 -21
  369. data/ext/couchbase/core/operations/document_increment.cxx +26 -23
  370. data/ext/couchbase/core/operations/document_increment.hxx +24 -20
  371. data/ext/couchbase/core/operations/document_insert.cxx +23 -20
  372. data/ext/couchbase/core/operations/document_insert.hxx +20 -18
  373. data/ext/couchbase/core/operations/document_lookup_in.cxx +80 -67
  374. data/ext/couchbase/core/operations/document_lookup_in.hxx +31 -27
  375. data/ext/couchbase/core/operations/document_lookup_in_all_replicas.hxx +187 -149
  376. data/ext/couchbase/core/operations/document_lookup_in_any_replica.hxx +190 -145
  377. data/ext/couchbase/core/operations/document_mutate_in.cxx +98 -80
  378. data/ext/couchbase/core/operations/document_mutate_in.hxx +38 -33
  379. data/ext/couchbase/core/operations/document_prepend.cxx +18 -15
  380. data/ext/couchbase/core/operations/document_prepend.hxx +18 -16
  381. data/ext/couchbase/core/operations/document_query.cxx +367 -356
  382. data/ext/couchbase/core/operations/document_query.hxx +83 -79
  383. data/ext/couchbase/core/operations/document_remove.cxx +18 -15
  384. data/ext/couchbase/core/operations/document_remove.hxx +18 -16
  385. data/ext/couchbase/core/operations/document_replace.cxx +27 -24
  386. data/ext/couchbase/core/operations/document_replace.hxx +22 -20
  387. data/ext/couchbase/core/operations/document_search.cxx +322 -308
  388. data/ext/couchbase/core/operations/document_search.hxx +125 -121
  389. data/ext/couchbase/core/operations/document_touch.cxx +16 -14
  390. data/ext/couchbase/core/operations/document_touch.hxx +19 -17
  391. data/ext/couchbase/core/operations/document_unlock.cxx +16 -14
  392. data/ext/couchbase/core/operations/document_unlock.hxx +19 -17
  393. data/ext/couchbase/core/operations/document_upsert.cxx +26 -23
  394. data/ext/couchbase/core/operations/document_upsert.hxx +21 -19
  395. data/ext/couchbase/core/operations/document_view.cxx +169 -159
  396. data/ext/couchbase/core/operations/document_view.hxx +68 -65
  397. data/ext/couchbase/core/operations/http_noop.cxx +38 -35
  398. data/ext/couchbase/core/operations/http_noop.hxx +12 -10
  399. data/ext/couchbase/core/operations/management/analytics_dataset_create.cxx +58 -56
  400. data/ext/couchbase/core/operations/management/analytics_dataset_create.hxx +20 -17
  401. data/ext/couchbase/core/operations/management/analytics_dataset_drop.cxx +49 -44
  402. data/ext/couchbase/core/operations/management/analytics_dataset_drop.hxx +18 -15
  403. data/ext/couchbase/core/operations/management/analytics_dataset_get_all.cxx +46 -43
  404. data/ext/couchbase/core/operations/management/analytics_dataset_get_all.hxx +16 -13
  405. data/ext/couchbase/core/operations/management/analytics_dataverse_create.cxx +48 -43
  406. data/ext/couchbase/core/operations/management/analytics_dataverse_create.hxx +17 -14
  407. data/ext/couchbase/core/operations/management/analytics_dataverse_drop.cxx +48 -43
  408. data/ext/couchbase/core/operations/management/analytics_dataverse_drop.hxx +17 -14
  409. data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.cxx +38 -35
  410. data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.hxx +16 -14
  411. data/ext/couchbase/core/operations/management/analytics_index_create.cxx +68 -66
  412. data/ext/couchbase/core/operations/management/analytics_index_create.hxx +20 -17
  413. data/ext/couchbase/core/operations/management/analytics_index_drop.cxx +56 -51
  414. data/ext/couchbase/core/operations/management/analytics_index_drop.hxx +19 -16
  415. data/ext/couchbase/core/operations/management/analytics_index_get_all.cxx +44 -42
  416. data/ext/couchbase/core/operations/management/analytics_index_get_all.hxx +16 -13
  417. data/ext/couchbase/core/operations/management/analytics_link_connect.cxx +49 -43
  418. data/ext/couchbase/core/operations/management/analytics_link_connect.hxx +23 -20
  419. data/ext/couchbase/core/operations/management/analytics_link_create.cxx +52 -51
  420. data/ext/couchbase/core/operations/management/analytics_link_create.hxx +33 -30
  421. data/ext/couchbase/core/operations/management/analytics_link_disconnect.cxx +46 -42
  422. data/ext/couchbase/core/operations/management/analytics_link_disconnect.hxx +22 -19
  423. data/ext/couchbase/core/operations/management/analytics_link_drop.cxx +70 -67
  424. data/ext/couchbase/core/operations/management/analytics_link_drop.hxx +22 -19
  425. data/ext/couchbase/core/operations/management/analytics_link_get_all.cxx +92 -85
  426. data/ext/couchbase/core/operations/management/analytics_link_get_all.hxx +27 -24
  427. data/ext/couchbase/core/operations/management/analytics_link_replace.cxx +52 -51
  428. data/ext/couchbase/core/operations/management/analytics_link_replace.hxx +33 -30
  429. data/ext/couchbase/core/operations/management/analytics_link_utils.hxx +6 -4
  430. data/ext/couchbase/core/operations/management/analytics_problem.hxx +2 -2
  431. data/ext/couchbase/core/operations/management/bucket_create.cxx +158 -149
  432. data/ext/couchbase/core/operations/management/bucket_create.hxx +14 -12
  433. data/ext/couchbase/core/operations/management/bucket_describe.cxx +118 -42
  434. data/ext/couchbase/core/operations/management/bucket_describe.hxx +47 -22
  435. data/ext/couchbase/core/operations/management/bucket_drop.cxx +19 -18
  436. data/ext/couchbase/core/operations/management/bucket_drop.hxx +13 -11
  437. data/ext/couchbase/core/operations/management/bucket_flush.cxx +25 -24
  438. data/ext/couchbase/core/operations/management/bucket_flush.hxx +13 -11
  439. data/ext/couchbase/core/operations/management/bucket_get.cxx +24 -22
  440. data/ext/couchbase/core/operations/management/bucket_get.hxx +14 -12
  441. data/ext/couchbase/core/operations/management/bucket_get_all.cxx +25 -23
  442. data/ext/couchbase/core/operations/management/bucket_get_all.hxx +13 -11
  443. data/ext/couchbase/core/operations/management/bucket_update.cxx +112 -107
  444. data/ext/couchbase/core/operations/management/bucket_update.hxx +15 -13
  445. data/ext/couchbase/core/operations/management/change_password.cxx +22 -20
  446. data/ext/couchbase/core/operations/management/change_password.hxx +13 -11
  447. data/ext/couchbase/core/operations/management/cluster_describe.cxx +52 -50
  448. data/ext/couchbase/core/operations/management/cluster_describe.hxx +31 -29
  449. data/ext/couchbase/core/operations/management/cluster_developer_preview_enable.cxx +14 -12
  450. data/ext/couchbase/core/operations/management/cluster_developer_preview_enable.hxx +13 -11
  451. data/ext/couchbase/core/operations/management/collection_create.cxx +48 -46
  452. data/ext/couchbase/core/operations/management/collection_create.hxx +19 -16
  453. data/ext/couchbase/core/operations/management/collection_drop.cxx +37 -35
  454. data/ext/couchbase/core/operations/management/collection_drop.hxx +16 -14
  455. data/ext/couchbase/core/operations/management/collection_update.cxx +49 -47
  456. data/ext/couchbase/core/operations/management/collection_update.hxx +19 -16
  457. data/ext/couchbase/core/operations/management/collections_manifest_get.cxx +11 -9
  458. data/ext/couchbase/core/operations/management/collections_manifest_get.hxx +17 -13
  459. data/ext/couchbase/core/operations/management/error_utils.cxx +210 -198
  460. data/ext/couchbase/core/operations/management/error_utils.hxx +3 -1
  461. data/ext/couchbase/core/operations/management/eventing_deploy_function.cxx +30 -28
  462. data/ext/couchbase/core/operations/management/eventing_deploy_function.hxx +17 -14
  463. data/ext/couchbase/core/operations/management/eventing_drop_function.cxx +31 -29
  464. data/ext/couchbase/core/operations/management/eventing_drop_function.hxx +17 -14
  465. data/ext/couchbase/core/operations/management/eventing_get_all_functions.cxx +49 -43
  466. data/ext/couchbase/core/operations/management/eventing_get_all_functions.hxx +17 -14
  467. data/ext/couchbase/core/operations/management/eventing_get_function.cxx +29 -27
  468. data/ext/couchbase/core/operations/management/eventing_get_function.hxx +18 -15
  469. data/ext/couchbase/core/operations/management/eventing_get_status.cxx +45 -39
  470. data/ext/couchbase/core/operations/management/eventing_get_status.hxx +17 -14
  471. data/ext/couchbase/core/operations/management/eventing_pause_function.cxx +30 -28
  472. data/ext/couchbase/core/operations/management/eventing_pause_function.hxx +17 -14
  473. data/ext/couchbase/core/operations/management/eventing_problem.hxx +3 -3
  474. data/ext/couchbase/core/operations/management/eventing_resume_function.cxx +30 -28
  475. data/ext/couchbase/core/operations/management/eventing_resume_function.hxx +17 -14
  476. data/ext/couchbase/core/operations/management/eventing_undeploy_function.cxx +30 -28
  477. data/ext/couchbase/core/operations/management/eventing_undeploy_function.hxx +17 -14
  478. data/ext/couchbase/core/operations/management/eventing_upsert_function.cxx +328 -318
  479. data/ext/couchbase/core/operations/management/eventing_upsert_function.hxx +17 -14
  480. data/ext/couchbase/core/operations/management/freeform.cxx +23 -22
  481. data/ext/couchbase/core/operations/management/freeform.hxx +19 -17
  482. data/ext/couchbase/core/operations/management/group_drop.cxx +18 -17
  483. data/ext/couchbase/core/operations/management/group_drop.hxx +13 -11
  484. data/ext/couchbase/core/operations/management/group_get.cxx +25 -23
  485. data/ext/couchbase/core/operations/management/group_get.hxx +14 -12
  486. data/ext/couchbase/core/operations/management/group_get_all.cxx +23 -22
  487. data/ext/couchbase/core/operations/management/group_get_all.hxx +13 -11
  488. data/ext/couchbase/core/operations/management/group_upsert.cxx +58 -55
  489. data/ext/couchbase/core/operations/management/group_upsert.hxx +14 -12
  490. data/ext/couchbase/core/operations/management/query_index_build.cxx +53 -48
  491. data/ext/couchbase/core/operations/management/query_index_build.hxx +25 -22
  492. data/ext/couchbase/core/operations/management/query_index_build_deferred.hxx +75 -67
  493. data/ext/couchbase/core/operations/management/query_index_create.cxx +128 -122
  494. data/ext/couchbase/core/operations/management/query_index_create.hxx +31 -28
  495. data/ext/couchbase/core/operations/management/query_index_drop.cxx +95 -93
  496. data/ext/couchbase/core/operations/management/query_index_drop.hxx +26 -24
  497. data/ext/couchbase/core/operations/management/query_index_get_all.cxx +97 -93
  498. data/ext/couchbase/core/operations/management/query_index_get_all.hxx +24 -21
  499. data/ext/couchbase/core/operations/management/query_index_get_all_deferred.cxx +66 -62
  500. data/ext/couchbase/core/operations/management/query_index_get_all_deferred.hxx +24 -22
  501. data/ext/couchbase/core/operations/management/role_get_all.cxx +24 -22
  502. data/ext/couchbase/core/operations/management/role_get_all.hxx +13 -11
  503. data/ext/couchbase/core/operations/management/scope_create.cxx +38 -36
  504. data/ext/couchbase/core/operations/management/scope_create.hxx +15 -13
  505. data/ext/couchbase/core/operations/management/scope_drop.cxx +33 -32
  506. data/ext/couchbase/core/operations/management/scope_drop.hxx +15 -13
  507. data/ext/couchbase/core/operations/management/scope_get_all.cxx +27 -25
  508. data/ext/couchbase/core/operations/management/scope_get_all.hxx +14 -12
  509. data/ext/couchbase/core/operations/management/search_get_stats.cxx +12 -10
  510. data/ext/couchbase/core/operations/management/search_get_stats.hxx +13 -11
  511. data/ext/couchbase/core/operations/management/search_index_analyze_document.cxx +72 -67
  512. data/ext/couchbase/core/operations/management/search_index_analyze_document.hxx +20 -18
  513. data/ext/couchbase/core/operations/management/search_index_control_ingest.cxx +62 -59
  514. data/ext/couchbase/core/operations/management/search_index_control_ingest.hxx +19 -16
  515. data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.cxx +62 -59
  516. data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.hxx +19 -17
  517. data/ext/couchbase/core/operations/management/search_index_control_query.cxx +62 -59
  518. data/ext/couchbase/core/operations/management/search_index_control_query.hxx +19 -16
  519. data/ext/couchbase/core/operations/management/search_index_drop.cxx +58 -55
  520. data/ext/couchbase/core/operations/management/search_index_drop.hxx +18 -15
  521. data/ext/couchbase/core/operations/management/search_index_get.cxx +59 -56
  522. data/ext/couchbase/core/operations/management/search_index_get.hxx +18 -16
  523. data/ext/couchbase/core/operations/management/search_index_get_all.cxx +51 -46
  524. data/ext/couchbase/core/operations/management/search_index_get_all.hxx +18 -15
  525. data/ext/couchbase/core/operations/management/search_index_get_documents_count.cxx +66 -61
  526. data/ext/couchbase/core/operations/management/search_index_get_documents_count.hxx +19 -17
  527. data/ext/couchbase/core/operations/management/search_index_get_stats.cxx +38 -36
  528. data/ext/couchbase/core/operations/management/search_index_get_stats.hxx +17 -14
  529. data/ext/couchbase/core/operations/management/search_index_upsert.cxx +98 -95
  530. data/ext/couchbase/core/operations/management/search_index_upsert.hxx +20 -17
  531. data/ext/couchbase/core/operations/management/user_drop.cxx +18 -17
  532. data/ext/couchbase/core/operations/management/user_drop.hxx +16 -12
  533. data/ext/couchbase/core/operations/management/user_get.cxx +25 -23
  534. data/ext/couchbase/core/operations/management/user_get.hxx +17 -13
  535. data/ext/couchbase/core/operations/management/user_get_all.cxx +24 -22
  536. data/ext/couchbase/core/operations/management/user_get_all.hxx +16 -12
  537. data/ext/couchbase/core/operations/management/user_upsert.cxx +63 -60
  538. data/ext/couchbase/core/operations/management/user_upsert.hxx +17 -13
  539. data/ext/couchbase/core/operations/management/view_index_drop.cxx +16 -12
  540. data/ext/couchbase/core/operations/management/view_index_drop.hxx +15 -13
  541. data/ext/couchbase/core/operations/management/view_index_get.cxx +40 -35
  542. data/ext/couchbase/core/operations/management/view_index_get.hxx +16 -14
  543. data/ext/couchbase/core/operations/management/view_index_get_all.cxx +73 -69
  544. data/ext/couchbase/core/operations/management/view_index_get_all.hxx +16 -13
  545. data/ext/couchbase/core/operations/management/view_index_upsert.cxx +39 -35
  546. data/ext/couchbase/core/operations/management/view_index_upsert.hxx +15 -12
  547. data/ext/couchbase/core/origin.cxx +259 -249
  548. data/ext/couchbase/core/origin.hxx +55 -49
  549. data/ext/couchbase/core/pending_operation.hxx +3 -3
  550. data/ext/couchbase/core/ping_collector.hxx +3 -3
  551. data/ext/couchbase/core/ping_options.hxx +30 -30
  552. data/ext/couchbase/core/ping_reporter.hxx +3 -3
  553. data/ext/couchbase/core/platform/backtrace.c +100 -91
  554. data/ext/couchbase/core/platform/base64.cc +135 -134
  555. data/ext/couchbase/core/platform/dirutils.cc +66 -63
  556. data/ext/couchbase/core/platform/random.cc +43 -42
  557. data/ext/couchbase/core/platform/random.h +4 -4
  558. data/ext/couchbase/core/platform/string_hex.cc +42 -40
  559. data/ext/couchbase/core/platform/terminate_handler.cc +54 -52
  560. data/ext/couchbase/core/platform/uuid.cc +47 -47
  561. data/ext/couchbase/core/protocol/client_opcode.hxx +336 -327
  562. data/ext/couchbase/core/protocol/client_opcode_fmt.hxx +291 -291
  563. data/ext/couchbase/core/protocol/client_request.cxx +13 -10
  564. data/ext/couchbase/core/protocol/client_request.hxx +133 -130
  565. data/ext/couchbase/core/protocol/client_response.cxx +40 -40
  566. data/ext/couchbase/core/protocol/client_response.hxx +153 -150
  567. data/ext/couchbase/core/protocol/cmd_append.cxx +24 -23
  568. data/ext/couchbase/core/protocol/cmd_append.hxx +65 -65
  569. data/ext/couchbase/core/protocol/cmd_cluster_map_change_notification.cxx +25 -21
  570. data/ext/couchbase/core/protocol/cmd_cluster_map_change_notification.hxx +33 -25
  571. data/ext/couchbase/core/protocol/cmd_decrement.cxx +38 -38
  572. data/ext/couchbase/core/protocol/cmd_decrement.hxx +87 -87
  573. data/ext/couchbase/core/protocol/cmd_get.cxx +17 -17
  574. data/ext/couchbase/core/protocol/cmd_get.hxx +59 -59
  575. data/ext/couchbase/core/protocol/cmd_get_and_lock.cxx +20 -20
  576. data/ext/couchbase/core/protocol/cmd_get_and_lock.hxx +72 -72
  577. data/ext/couchbase/core/protocol/cmd_get_and_touch.cxx +20 -20
  578. data/ext/couchbase/core/protocol/cmd_get_and_touch.hxx +72 -72
  579. data/ext/couchbase/core/protocol/cmd_get_cluster_config.cxx +46 -39
  580. data/ext/couchbase/core/protocol/cmd_get_cluster_config.hxx +57 -49
  581. data/ext/couchbase/core/protocol/cmd_get_collection_id.cxx +17 -17
  582. data/ext/couchbase/core/protocol/cmd_get_collection_id.hxx +59 -59
  583. data/ext/couchbase/core/protocol/cmd_get_collections_manifest.cxx +16 -14
  584. data/ext/couchbase/core/protocol/cmd_get_collections_manifest.hxx +39 -39
  585. data/ext/couchbase/core/protocol/cmd_get_error_map.cxx +18 -17
  586. data/ext/couchbase/core/protocol/cmd_get_error_map.hxx +62 -62
  587. data/ext/couchbase/core/protocol/cmd_get_meta.cxx +24 -23
  588. data/ext/couchbase/core/protocol/cmd_get_meta.hxx +81 -79
  589. data/ext/couchbase/core/protocol/cmd_get_replica.cxx +23 -23
  590. data/ext/couchbase/core/protocol/cmd_get_replica.hxx +44 -44
  591. data/ext/couchbase/core/protocol/cmd_hello.cxx +28 -27
  592. data/ext/couchbase/core/protocol/cmd_hello.hxx +106 -105
  593. data/ext/couchbase/core/protocol/cmd_increment.cxx +38 -38
  594. data/ext/couchbase/core/protocol/cmd_increment.hxx +87 -87
  595. data/ext/couchbase/core/protocol/cmd_info.hxx +3 -3
  596. data/ext/couchbase/core/protocol/cmd_insert.cxx +27 -27
  597. data/ext/couchbase/core/protocol/cmd_insert.hxx +81 -81
  598. data/ext/couchbase/core/protocol/cmd_lookup_in.cxx +54 -51
  599. data/ext/couchbase/core/protocol/cmd_lookup_in.hxx +90 -90
  600. data/ext/couchbase/core/protocol/cmd_lookup_in_replica.cxx +54 -51
  601. data/ext/couchbase/core/protocol/cmd_lookup_in_replica.hxx +88 -88
  602. data/ext/couchbase/core/protocol/cmd_mutate_in.cxx +105 -97
  603. data/ext/couchbase/core/protocol/cmd_mutate_in.hxx +161 -153
  604. data/ext/couchbase/core/protocol/cmd_noop.cxx +4 -4
  605. data/ext/couchbase/core/protocol/cmd_noop.hxx +32 -32
  606. data/ext/couchbase/core/protocol/cmd_observe_seqno.cxx +36 -34
  607. data/ext/couchbase/core/protocol/cmd_observe_seqno.hxx +89 -89
  608. data/ext/couchbase/core/protocol/cmd_prepend.cxx +22 -22
  609. data/ext/couchbase/core/protocol/cmd_prepend.hxx +63 -63
  610. data/ext/couchbase/core/protocol/cmd_remove.cxx +23 -23
  611. data/ext/couchbase/core/protocol/cmd_remove.hxx +54 -54
  612. data/ext/couchbase/core/protocol/cmd_replace.cxx +28 -28
  613. data/ext/couchbase/core/protocol/cmd_replace.hxx +88 -88
  614. data/ext/couchbase/core/protocol/cmd_sasl_auth.cxx +17 -15
  615. data/ext/couchbase/core/protocol/cmd_sasl_auth.hxx +56 -56
  616. data/ext/couchbase/core/protocol/cmd_sasl_list_mechs.cxx +24 -19
  617. data/ext/couchbase/core/protocol/cmd_sasl_list_mechs.hxx +39 -39
  618. data/ext/couchbase/core/protocol/cmd_sasl_step.cxx +17 -15
  619. data/ext/couchbase/core/protocol/cmd_sasl_step.hxx +56 -56
  620. data/ext/couchbase/core/protocol/cmd_select_bucket.cxx +6 -6
  621. data/ext/couchbase/core/protocol/cmd_select_bucket.hxx +36 -36
  622. data/ext/couchbase/core/protocol/cmd_touch.cxx +8 -8
  623. data/ext/couchbase/core/protocol/cmd_touch.hxx +38 -38
  624. data/ext/couchbase/core/protocol/cmd_unlock.cxx +5 -5
  625. data/ext/couchbase/core/protocol/cmd_unlock.hxx +36 -36
  626. data/ext/couchbase/core/protocol/cmd_upsert.cxx +28 -28
  627. data/ext/couchbase/core/protocol/cmd_upsert.hxx +83 -83
  628. data/ext/couchbase/core/protocol/datatype.hxx +19 -18
  629. data/ext/couchbase/core/protocol/frame_info_id.hxx +108 -103
  630. data/ext/couchbase/core/protocol/frame_info_id_fmt.hxx +45 -45
  631. data/ext/couchbase/core/protocol/frame_info_utils.cxx +24 -21
  632. data/ext/couchbase/core/protocol/frame_info_utils.hxx +3 -1
  633. data/ext/couchbase/core/protocol/hello_feature.hxx +211 -175
  634. data/ext/couchbase/core/protocol/hello_feature_fmt.hxx +93 -90
  635. data/ext/couchbase/core/protocol/magic.hxx +24 -24
  636. data/ext/couchbase/core/protocol/magic_fmt.hxx +30 -30
  637. data/ext/couchbase/core/protocol/server_opcode.hxx +11 -11
  638. data/ext/couchbase/core/protocol/server_opcode_fmt.hxx +18 -18
  639. data/ext/couchbase/core/protocol/server_request.hxx +90 -86
  640. data/ext/couchbase/core/protocol/status.cxx +138 -138
  641. data/ext/couchbase/core/protocol/status.hxx +86 -86
  642. data/ext/couchbase/core/query_context.hxx +44 -43
  643. data/ext/couchbase/core/range_scan_load_balancer.cxx +51 -50
  644. data/ext/couchbase/core/range_scan_load_balancer.hxx +26 -25
  645. data/ext/couchbase/core/range_scan_options.cxx +2 -2
  646. data/ext/couchbase/core/range_scan_options.hxx +62 -59
  647. data/ext/couchbase/core/range_scan_orchestrator.cxx +515 -470
  648. data/ext/couchbase/core/range_scan_orchestrator.hxx +23 -18
  649. data/ext/couchbase/core/range_scan_orchestrator_options.hxx +10 -10
  650. data/ext/couchbase/core/resource_units.hxx +2 -2
  651. data/ext/couchbase/core/response_handler.hxx +8 -8
  652. data/ext/couchbase/core/retry_orchestrator.cxx +27 -19
  653. data/ext/couchbase/core/retry_orchestrator.hxx +3 -2
  654. data/ext/couchbase/core/sasl/client.cc +22 -18
  655. data/ext/couchbase/core/sasl/client.h +66 -62
  656. data/ext/couchbase/core/sasl/context.cc +4 -4
  657. data/ext/couchbase/core/sasl/context.h +19 -19
  658. data/ext/couchbase/core/sasl/error.h +12 -1
  659. data/ext/couchbase/core/sasl/error_fmt.h +42 -42
  660. data/ext/couchbase/core/sasl/mechanism.cc +13 -10
  661. data/ext/couchbase/core/sasl/mechanism.h +8 -3
  662. data/ext/couchbase/core/sasl/plain/plain.cc +8 -8
  663. data/ext/couchbase/core/sasl/plain/plain.h +25 -24
  664. data/ext/couchbase/core/sasl/scram-sha/scram-sha.cc +225 -218
  665. data/ext/couchbase/core/sasl/scram-sha/scram-sha.h +133 -115
  666. data/ext/couchbase/core/sasl/scram-sha/stringutils.cc +20 -20
  667. data/ext/couchbase/core/scan_result.cxx +38 -38
  668. data/ext/couchbase/core/scan_result.hxx +16 -16
  669. data/ext/couchbase/core/search_highlight_style.hxx +4 -1
  670. data/ext/couchbase/core/search_query_options.cxx +21 -21
  671. data/ext/couchbase/core/search_query_options.hxx +19 -18
  672. data/ext/couchbase/core/search_scan_consistency.hxx +3 -1
  673. data/ext/couchbase/core/seed_config.cxx +10 -7
  674. data/ext/couchbase/core/seed_config.hxx +8 -8
  675. data/ext/couchbase/core/service_type.hxx +7 -7
  676. data/ext/couchbase/core/service_type_fmt.hxx +33 -33
  677. data/ext/couchbase/core/stats_options.hxx +13 -13
  678. data/ext/couchbase/core/subdoc_options.hxx +60 -58
  679. data/ext/couchbase/core/tls_verify_mode.hxx +2 -2
  680. data/ext/couchbase/core/topology/capabilities.hxx +83 -83
  681. data/ext/couchbase/core/topology/capabilities_fmt.hxx +111 -111
  682. data/ext/couchbase/core/topology/collections_manifest.hxx +14 -14
  683. data/ext/couchbase/core/topology/collections_manifest_fmt.hxx +23 -21
  684. data/ext/couchbase/core/topology/collections_manifest_json.hxx +26 -25
  685. data/ext/couchbase/core/topology/configuration.cxx +213 -192
  686. data/ext/couchbase/core/topology/configuration.hxx +104 -91
  687. data/ext/couchbase/core/topology/configuration_fmt.hxx +131 -128
  688. data/ext/couchbase/core/topology/configuration_json.hxx +276 -242
  689. data/ext/couchbase/core/topology/error_map.hxx +5 -5
  690. data/ext/couchbase/core/topology/error_map_json.hxx +65 -60
  691. data/ext/couchbase/core/tracing/constants.hxx +153 -153
  692. data/ext/couchbase/core/tracing/noop_tracer.hxx +29 -28
  693. data/ext/couchbase/core/tracing/threshold_logging_options.hxx +30 -30
  694. data/ext/couchbase/core/tracing/threshold_logging_tracer.cxx +354 -344
  695. data/ext/couchbase/core/tracing/threshold_logging_tracer.hxx +12 -12
  696. data/ext/couchbase/core/transactions/active_transaction_record.cxx +153 -33
  697. data/ext/couchbase/core/transactions/active_transaction_record.hxx +30 -118
  698. data/ext/couchbase/core/transactions/async_attempt_context.cxx +8 -2
  699. data/ext/couchbase/core/transactions/async_attempt_context.hxx +163 -127
  700. data/ext/couchbase/core/transactions/atr_cleanup_entry.cxx +358 -334
  701. data/ext/couchbase/core/transactions/atr_ids.cxx +270 -185
  702. data/ext/couchbase/core/transactions/atr_ids.hxx +4 -4
  703. data/ext/couchbase/core/transactions/attempt_context.cxx +9 -5
  704. data/ext/couchbase/core/transactions/attempt_context.hxx +194 -154
  705. data/ext/couchbase/core/transactions/attempt_context_impl.cxx +3278 -2159
  706. data/ext/couchbase/core/transactions/attempt_context_impl.hxx +446 -573
  707. data/ext/couchbase/core/transactions/attempt_context_testing_hooks.cxx +15 -10
  708. data/ext/couchbase/core/transactions/attempt_context_testing_hooks.hxx +58 -49
  709. data/ext/couchbase/core/transactions/attempt_state.hxx +72 -72
  710. data/ext/couchbase/core/transactions/binary.cxx +3 -3
  711. data/ext/couchbase/core/transactions/cleanup_testing_hooks.cxx +2 -2
  712. data/ext/couchbase/core/transactions/cleanup_testing_hooks.hxx +28 -24
  713. data/ext/couchbase/core/transactions/document_metadata.hxx +68 -68
  714. data/ext/couchbase/core/transactions/durability_level.hxx +53 -53
  715. data/ext/couchbase/core/transactions/error_class.hxx +12 -12
  716. data/ext/couchbase/core/transactions/error_list.hxx +22 -22
  717. data/ext/couchbase/core/transactions/exceptions.cxx +167 -114
  718. data/ext/couchbase/core/transactions/exceptions.hxx +170 -139
  719. data/ext/couchbase/core/transactions/exceptions_fmt.hxx +105 -0
  720. data/ext/couchbase/core/transactions/forward_compat.cxx +220 -0
  721. data/ext/couchbase/core/transactions/forward_compat.hxx +63 -207
  722. data/ext/couchbase/core/transactions/internal/atr_cleanup_entry.hxx +110 -102
  723. data/ext/couchbase/core/transactions/internal/atr_entry.hxx +144 -144
  724. data/ext/couchbase/core/transactions/internal/client_record.hxx +53 -50
  725. data/ext/couchbase/core/transactions/internal/doc_record.cxx +5 -5
  726. data/ext/couchbase/core/transactions/internal/doc_record.hxx +38 -35
  727. data/ext/couchbase/core/transactions/internal/doc_record_fmt.hxx +17 -16
  728. data/ext/couchbase/core/transactions/internal/exceptions_internal.hxx +238 -281
  729. data/ext/couchbase/core/transactions/internal/exceptions_internal_fmt.hxx +103 -0
  730. data/ext/couchbase/core/transactions/internal/logging.hxx +52 -29
  731. data/ext/couchbase/core/transactions/internal/transaction_attempt.hxx +3 -3
  732. data/ext/couchbase/core/transactions/internal/transaction_context.hxx +136 -120
  733. data/ext/couchbase/core/transactions/internal/transaction_fields.hxx +2 -1
  734. data/ext/couchbase/core/transactions/internal/transactions_cleanup.hxx +127 -122
  735. data/ext/couchbase/core/transactions/internal/utils.hxx +244 -219
  736. data/ext/couchbase/core/transactions/result.cxx +41 -40
  737. data/ext/couchbase/core/transactions/result.hxx +143 -141
  738. data/ext/couchbase/core/transactions/result_fmt.hxx +21 -20
  739. data/ext/couchbase/core/transactions/staged_mutation.cxx +759 -627
  740. data/ext/couchbase/core/transactions/staged_mutation.hxx +175 -156
  741. data/ext/couchbase/core/transactions/transaction_context.cxx +231 -179
  742. data/ext/couchbase/core/transactions/transaction_get_result.cxx +185 -198
  743. data/ext/couchbase/core/transactions/transaction_get_result.hxx +207 -222
  744. data/ext/couchbase/core/transactions/transaction_keyspace.cxx +15 -11
  745. data/ext/couchbase/core/transactions/transaction_links.cxx +11 -7
  746. data/ext/couchbase/core/transactions/transaction_links.hxx +222 -201
  747. data/ext/couchbase/core/transactions/transaction_options.cxx +44 -41
  748. data/ext/couchbase/core/transactions/transactions.cxx +167 -125
  749. data/ext/couchbase/core/transactions/transactions_cleanup.cxx +491 -424
  750. data/ext/couchbase/core/transactions/transactions_config.cxx +25 -19
  751. data/ext/couchbase/core/transactions/uid_generator.cxx +3 -3
  752. data/ext/couchbase/core/transactions/uid_generator.hxx +2 -2
  753. data/ext/couchbase/core/transactions/utils.cxx +82 -69
  754. data/ext/couchbase/core/transactions/waitable_op_list.hxx +154 -140
  755. data/ext/couchbase/core/transactions.hxx +184 -180
  756. data/ext/couchbase/core/utils/binary.cxx +3 -3
  757. data/ext/couchbase/core/utils/binary.hxx +19 -15
  758. data/ext/couchbase/core/utils/byteswap.hxx +17 -17
  759. data/ext/couchbase/core/utils/connection_string.cxx +395 -328
  760. data/ext/couchbase/core/utils/connection_string.hxx +37 -36
  761. data/ext/couchbase/core/utils/crc32.hxx +42 -34
  762. data/ext/couchbase/core/utils/duration_parser.cxx +142 -133
  763. data/ext/couchbase/core/utils/duration_parser.hxx +9 -9
  764. data/ext/couchbase/core/utils/join_strings.hxx +24 -24
  765. data/ext/couchbase/core/utils/json.cxx +234 -228
  766. data/ext/couchbase/core/utils/json.hxx +12 -12
  767. data/ext/couchbase/core/utils/json_stream_control.hxx +8 -8
  768. data/ext/couchbase/core/utils/json_streaming_lexer.cxx +288 -263
  769. data/ext/couchbase/core/utils/json_streaming_lexer.hxx +20 -17
  770. data/ext/couchbase/core/utils/keyspace.hxx +22 -21
  771. data/ext/couchbase/core/utils/movable_function.hxx +78 -76
  772. data/ext/couchbase/core/utils/mutation_token.cxx +7 -3
  773. data/ext/couchbase/core/utils/mutation_token.hxx +3 -1
  774. data/ext/couchbase/core/utils/name_codec.hxx +13 -13
  775. data/ext/couchbase/core/utils/split_string.cxx +9 -9
  776. data/ext/couchbase/core/utils/split_string.hxx +2 -2
  777. data/ext/couchbase/core/utils/unsigned_leb128.hxx +92 -88
  778. data/ext/couchbase/core/utils/url_codec.cxx +301 -297
  779. data/ext/couchbase/core/utils/url_codec.hxx +35 -35
  780. data/ext/couchbase/core/vector_query_combination.hxx +4 -1
  781. data/ext/couchbase/core/view_on_error.hxx +4 -3
  782. data/ext/couchbase/core/view_query_options.cxx +21 -21
  783. data/ext/couchbase/core/view_query_options.hxx +23 -22
  784. data/ext/couchbase/core/view_scan_consistency.hxx +3 -3
  785. data/ext/couchbase/core/view_sort_order.hxx +4 -1
  786. data/ext/couchbase/core/wait_until_ready_options.hxx +11 -10
  787. data/ext/couchbase/couchbase/allow_querying_search_index_options.hxx +11 -11
  788. data/ext/couchbase/couchbase/analytics_index_manager.hxx +423 -405
  789. data/ext/couchbase/couchbase/analytics_meta_data.hxx +105 -105
  790. data/ext/couchbase/couchbase/analytics_metrics.hxx +120 -118
  791. data/ext/couchbase/couchbase/analytics_options.hxx +318 -292
  792. data/ext/couchbase/couchbase/analytics_result.hxx +56 -55
  793. data/ext/couchbase/couchbase/analytics_scan_consistency.hxx +24 -21
  794. data/ext/couchbase/couchbase/analytics_status.hxx +10 -10
  795. data/ext/couchbase/couchbase/analytics_warning.hxx +44 -43
  796. data/ext/couchbase/couchbase/analyze_document_options.hxx +9 -9
  797. data/ext/couchbase/couchbase/append_options.hxx +51 -47
  798. data/ext/couchbase/couchbase/behavior_options.hxx +75 -69
  799. data/ext/couchbase/couchbase/best_effort_retry_strategy.hxx +12 -10
  800. data/ext/couchbase/couchbase/binary_collection.hxx +213 -183
  801. data/ext/couchbase/couchbase/boolean_field_query.hxx +38 -38
  802. data/ext/couchbase/couchbase/boolean_query.hxx +166 -157
  803. data/ext/couchbase/couchbase/bucket.hxx +69 -68
  804. data/ext/couchbase/couchbase/bucket_manager.hxx +97 -88
  805. data/ext/couchbase/couchbase/build_query_index_options.hxx +22 -21
  806. data/ext/couchbase/couchbase/cas.hxx +74 -73
  807. data/ext/couchbase/couchbase/certificate_authenticator.hxx +10 -10
  808. data/ext/couchbase/couchbase/cluster.hxx +266 -310
  809. data/ext/couchbase/couchbase/cluster_options.hxx +235 -241
  810. data/ext/couchbase/couchbase/codec/binary_noop_serializer.hxx +11 -11
  811. data/ext/couchbase/couchbase/codec/codec_flags.hxx +39 -35
  812. data/ext/couchbase/couchbase/codec/encoded_value.hxx +15 -2
  813. data/ext/couchbase/couchbase/codec/json_transcoder.hxx +17 -15
  814. data/ext/couchbase/couchbase/codec/raw_binary_transcoder.hxx +19 -17
  815. data/ext/couchbase/couchbase/codec/raw_json_transcoder.hxx +31 -24
  816. data/ext/couchbase/couchbase/codec/raw_string_transcoder.hxx +20 -18
  817. data/ext/couchbase/couchbase/codec/tao_json_serializer.hxx +38 -30
  818. data/ext/couchbase/couchbase/collection.hxx +1007 -902
  819. data/ext/couchbase/couchbase/collection_manager.hxx +115 -107
  820. data/ext/couchbase/couchbase/collection_query_index_manager.hxx +200 -188
  821. data/ext/couchbase/couchbase/common_durability_options.hxx +68 -62
  822. data/ext/couchbase/couchbase/common_options.hxx +67 -67
  823. data/ext/couchbase/couchbase/compression_options.hxx +33 -33
  824. data/ext/couchbase/couchbase/configuration_profile.hxx +12 -11
  825. data/ext/couchbase/couchbase/configuration_profiles_registry.hxx +24 -22
  826. data/ext/couchbase/couchbase/conjunction_query.hxx +47 -45
  827. data/ext/couchbase/couchbase/connect_link_analytics_options.hxx +74 -72
  828. data/ext/couchbase/couchbase/counter_result.hxx +32 -32
  829. data/ext/couchbase/couchbase/create_bucket_options.hxx +9 -10
  830. data/ext/couchbase/couchbase/create_collection_options.hxx +35 -34
  831. data/ext/couchbase/couchbase/create_dataset_analytics_options.hxx +76 -76
  832. data/ext/couchbase/couchbase/create_dataverse_analytics_options.hxx +44 -44
  833. data/ext/couchbase/couchbase/create_index_analytics_options.hxx +60 -60
  834. data/ext/couchbase/couchbase/create_link_analytics_options.hxx +25 -25
  835. data/ext/couchbase/couchbase/create_primary_query_index_options.hxx +95 -94
  836. data/ext/couchbase/couchbase/create_query_index_options.hxx +97 -96
  837. data/ext/couchbase/couchbase/create_scope_options.hxx +9 -9
  838. data/ext/couchbase/couchbase/date_range.hxx +29 -27
  839. data/ext/couchbase/couchbase/date_range_facet.hxx +20 -20
  840. data/ext/couchbase/couchbase/date_range_facet_result.hxx +14 -14
  841. data/ext/couchbase/couchbase/date_range_query.hxx +219 -205
  842. data/ext/couchbase/couchbase/decrement_options.hxx +93 -91
  843. data/ext/couchbase/couchbase/diagnostics_options.hxx +42 -41
  844. data/ext/couchbase/couchbase/diagnostics_result.hxx +82 -83
  845. data/ext/couchbase/couchbase/disallow_querying_search_index_options.hxx +11 -10
  846. data/ext/couchbase/couchbase/disconnect_link_analytics_options.hxx +62 -62
  847. data/ext/couchbase/couchbase/disjunction_query.hxx +61 -60
  848. data/ext/couchbase/couchbase/dns_options.hxx +30 -30
  849. data/ext/couchbase/couchbase/doc_id_query.hxx +69 -69
  850. data/ext/couchbase/couchbase/drop_bucket_options.hxx +9 -9
  851. data/ext/couchbase/couchbase/drop_collection_options.hxx +9 -9
  852. data/ext/couchbase/couchbase/drop_dataset_analytics_options.hxx +60 -60
  853. data/ext/couchbase/couchbase/drop_dataverse_analytics_options.hxx +44 -44
  854. data/ext/couchbase/couchbase/drop_index_analytics_options.hxx +60 -60
  855. data/ext/couchbase/couchbase/drop_link_analytics_options.hxx +25 -25
  856. data/ext/couchbase/couchbase/drop_primary_query_index_options.hxx +58 -58
  857. data/ext/couchbase/couchbase/drop_query_index_options.hxx +44 -44
  858. data/ext/couchbase/couchbase/drop_scope_options.hxx +9 -9
  859. data/ext/couchbase/couchbase/drop_search_index_options.hxx +9 -9
  860. data/ext/couchbase/couchbase/durability_level.hxx +32 -29
  861. data/ext/couchbase/couchbase/endpoint_diagnostics.hxx +171 -171
  862. data/ext/couchbase/couchbase/endpoint_ping_report.hxx +166 -169
  863. data/ext/couchbase/couchbase/error.hxx +51 -0
  864. data/ext/couchbase/couchbase/error_codes.hxx +975 -940
  865. data/ext/couchbase/couchbase/error_context.hxx +19 -152
  866. data/ext/couchbase/couchbase/exists_options.hxx +25 -24
  867. data/ext/couchbase/couchbase/exists_result.hxx +32 -32
  868. data/ext/couchbase/couchbase/fail_fast_retry_strategy.hxx +4 -4
  869. data/ext/couchbase/couchbase/flush_bucket_options.hxx +9 -9
  870. data/ext/couchbase/couchbase/fmt/analytics_scan_consistency.hxx +18 -18
  871. data/ext/couchbase/couchbase/fmt/analytics_status.hxx +42 -42
  872. data/ext/couchbase/couchbase/fmt/cas.hxx +10 -10
  873. data/ext/couchbase/couchbase/fmt/durability_level.hxx +24 -24
  874. data/ext/couchbase/couchbase/fmt/error.hxx +53 -0
  875. data/ext/couchbase/couchbase/fmt/error_context.hxx +43 -0
  876. data/ext/couchbase/couchbase/fmt/mutation_token.hxx +15 -11
  877. data/ext/couchbase/couchbase/fmt/query_profile.hxx +21 -21
  878. data/ext/couchbase/couchbase/fmt/query_scan_consistency.hxx +18 -18
  879. data/ext/couchbase/couchbase/fmt/query_status.hxx +42 -42
  880. data/ext/couchbase/couchbase/fmt/retry_reason.hxx +75 -75
  881. data/ext/couchbase/couchbase/fmt/search_scan_consistency.hxx +15 -15
  882. data/ext/couchbase/couchbase/fmt/tls_verify_mode.hxx +18 -18
  883. data/ext/couchbase/couchbase/fmt/transaction_keyspace.hxx +15 -11
  884. data/ext/couchbase/couchbase/fork_event.hxx +12 -12
  885. data/ext/couchbase/couchbase/freeze_plan_search_index_options.hxx +9 -9
  886. data/ext/couchbase/couchbase/geo_bounding_box_query.hxx +71 -64
  887. data/ext/couchbase/couchbase/geo_distance_query.hxx +73 -66
  888. data/ext/couchbase/couchbase/geo_point.hxx +2 -2
  889. data/ext/couchbase/couchbase/geo_polygon_query.hxx +40 -39
  890. data/ext/couchbase/couchbase/get_all_buckets_options.hxx +9 -9
  891. data/ext/couchbase/couchbase/get_all_datasets_analytics_options.hxx +25 -25
  892. data/ext/couchbase/couchbase/get_all_indexes_analytics_options.hxx +26 -25
  893. data/ext/couchbase/couchbase/get_all_query_indexes_options.hxx +27 -25
  894. data/ext/couchbase/couchbase/get_all_replicas_options.hxx +49 -26
  895. data/ext/couchbase/couchbase/get_all_scopes_options.hxx +9 -9
  896. data/ext/couchbase/couchbase/get_all_search_indexes_options.hxx +9 -9
  897. data/ext/couchbase/couchbase/get_and_lock_options.hxx +25 -24
  898. data/ext/couchbase/couchbase/get_and_touch_options.hxx +25 -24
  899. data/ext/couchbase/couchbase/get_any_replica_options.hxx +49 -26
  900. data/ext/couchbase/couchbase/get_bucket_options.hxx +9 -9
  901. data/ext/couchbase/couchbase/get_indexed_search_index_options.hxx +9 -9
  902. data/ext/couchbase/couchbase/get_links_analytics_options.hxx +74 -74
  903. data/ext/couchbase/couchbase/get_options.hxx +63 -60
  904. data/ext/couchbase/couchbase/get_pending_mutations_analytics_options.hxx +30 -28
  905. data/ext/couchbase/couchbase/get_replica_result.hxx +79 -75
  906. data/ext/couchbase/couchbase/get_result.hxx +86 -80
  907. data/ext/couchbase/couchbase/get_search_index_options.hxx +9 -9
  908. data/ext/couchbase/couchbase/highlight_style.hxx +14 -14
  909. data/ext/couchbase/couchbase/increment_options.hxx +94 -91
  910. data/ext/couchbase/couchbase/insert_options.hxx +62 -59
  911. data/ext/couchbase/couchbase/ip_protocol.hxx +3 -3
  912. data/ext/couchbase/couchbase/logger.hxx +51 -0
  913. data/ext/couchbase/couchbase/lookup_in_all_replicas_options.hxx +54 -43
  914. data/ext/couchbase/couchbase/lookup_in_any_replica_options.hxx +54 -44
  915. data/ext/couchbase/couchbase/lookup_in_options.hxx +40 -40
  916. data/ext/couchbase/couchbase/lookup_in_replica_result.hxx +38 -35
  917. data/ext/couchbase/couchbase/lookup_in_result.hxx +222 -216
  918. data/ext/couchbase/couchbase/lookup_in_specs.hxx +101 -101
  919. data/ext/couchbase/couchbase/management/analytics_dataset.hxx +16 -16
  920. data/ext/couchbase/couchbase/management/analytics_index.hxx +16 -16
  921. data/ext/couchbase/couchbase/management/analytics_link.hxx +193 -189
  922. data/ext/couchbase/couchbase/management/bucket_settings.hxx +91 -75
  923. data/ext/couchbase/couchbase/management/collection_spec.hxx +4 -4
  924. data/ext/couchbase/couchbase/management/query_index.hxx +10 -10
  925. data/ext/couchbase/couchbase/management/scope_spec.hxx +2 -2
  926. data/ext/couchbase/couchbase/management/search_index.hxx +9 -9
  927. data/ext/couchbase/couchbase/match_all_query.hxx +10 -9
  928. data/ext/couchbase/couchbase/match_none_query.hxx +10 -9
  929. data/ext/couchbase/couchbase/match_operator.hxx +15 -14
  930. data/ext/couchbase/couchbase/match_phrase_query.hxx +70 -65
  931. data/ext/couchbase/couchbase/match_query.hxx +115 -114
  932. data/ext/couchbase/couchbase/metrics/meter.hxx +33 -30
  933. data/ext/couchbase/couchbase/metrics/otel_meter.hxx +86 -74
  934. data/ext/couchbase/couchbase/metrics_options.hxx +34 -34
  935. data/ext/couchbase/couchbase/mutate_in_options.hxx +160 -149
  936. data/ext/couchbase/couchbase/mutate_in_result.hxx +130 -123
  937. data/ext/couchbase/couchbase/mutate_in_specs.hxx +473 -454
  938. data/ext/couchbase/couchbase/mutation_result.hxx +32 -32
  939. data/ext/couchbase/couchbase/mutation_state.hxx +35 -34
  940. data/ext/couchbase/couchbase/mutation_token.hxx +78 -78
  941. data/ext/couchbase/couchbase/network_options.hxx +101 -72
  942. data/ext/couchbase/couchbase/numeric_range.hxx +26 -26
  943. data/ext/couchbase/couchbase/numeric_range_facet.hxx +20 -20
  944. data/ext/couchbase/couchbase/numeric_range_facet_result.hxx +14 -14
  945. data/ext/couchbase/couchbase/numeric_range_query.hxx +97 -95
  946. data/ext/couchbase/couchbase/password_authenticator.hxx +17 -17
  947. data/ext/couchbase/couchbase/pause_ingest_search_index_options.hxx +11 -10
  948. data/ext/couchbase/couchbase/persist_to.hxx +45 -44
  949. data/ext/couchbase/couchbase/phrase_query.hxx +69 -65
  950. data/ext/couchbase/couchbase/ping_options.hxx +55 -54
  951. data/ext/couchbase/couchbase/ping_result.hxx +79 -77
  952. data/ext/couchbase/couchbase/prefix_query.hxx +43 -40
  953. data/ext/couchbase/couchbase/prepend_options.hxx +51 -47
  954. data/ext/couchbase/couchbase/query_index_manager.hxx +207 -199
  955. data/ext/couchbase/couchbase/query_meta_data.hxx +120 -120
  956. data/ext/couchbase/couchbase/query_metrics.hxx +135 -133
  957. data/ext/couchbase/couchbase/query_options.hxx +518 -493
  958. data/ext/couchbase/couchbase/query_profile.hxx +29 -26
  959. data/ext/couchbase/couchbase/query_result.hxx +56 -55
  960. data/ext/couchbase/couchbase/query_scan_consistency.hxx +24 -21
  961. data/ext/couchbase/couchbase/query_status.hxx +10 -10
  962. data/ext/couchbase/couchbase/query_string_query.hxx +34 -29
  963. data/ext/couchbase/couchbase/query_warning.hxx +75 -71
  964. data/ext/couchbase/couchbase/read_preference.hxx +58 -0
  965. data/ext/couchbase/couchbase/regexp_query.hxx +40 -39
  966. data/ext/couchbase/couchbase/remove_options.hxx +51 -47
  967. data/ext/couchbase/couchbase/replace_link_analytics_options.hxx +25 -25
  968. data/ext/couchbase/couchbase/replace_options.hxx +112 -104
  969. data/ext/couchbase/couchbase/replicate_to.hxx +28 -28
  970. data/ext/couchbase/couchbase/result.hxx +28 -28
  971. data/ext/couchbase/couchbase/resume_ingest_search_index_options.hxx +11 -10
  972. data/ext/couchbase/couchbase/retry_action.hxx +10 -10
  973. data/ext/couchbase/couchbase/retry_reason.hxx +53 -51
  974. data/ext/couchbase/couchbase/retry_request.hxx +7 -7
  975. data/ext/couchbase/couchbase/retry_strategy.hxx +4 -4
  976. data/ext/couchbase/couchbase/scan_options.hxx +114 -108
  977. data/ext/couchbase/couchbase/scan_result.hxx +97 -96
  978. data/ext/couchbase/couchbase/scan_result_item.hxx +120 -118
  979. data/ext/couchbase/couchbase/scan_type.hxx +237 -232
  980. data/ext/couchbase/couchbase/scope.hxx +164 -157
  981. data/ext/couchbase/couchbase/scope_search_index_manager.hxx +263 -238
  982. data/ext/couchbase/couchbase/search_date_range.hxx +32 -29
  983. data/ext/couchbase/couchbase/search_facet.hxx +25 -25
  984. data/ext/couchbase/couchbase/search_facet_result.hxx +11 -11
  985. data/ext/couchbase/couchbase/search_geo_distance_units.hxx +11 -1
  986. data/ext/couchbase/couchbase/search_index_manager.hxx +261 -238
  987. data/ext/couchbase/couchbase/search_meta_data.hxx +37 -37
  988. data/ext/couchbase/couchbase/search_metrics.hxx +84 -83
  989. data/ext/couchbase/couchbase/search_numeric_range.hxx +32 -32
  990. data/ext/couchbase/couchbase/search_options.hxx +449 -435
  991. data/ext/couchbase/couchbase/search_query.hxx +32 -30
  992. data/ext/couchbase/couchbase/search_request.hxx +69 -68
  993. data/ext/couchbase/couchbase/search_result.hxx +29 -26
  994. data/ext/couchbase/couchbase/search_row.hxx +52 -52
  995. data/ext/couchbase/couchbase/search_row_location.hxx +20 -20
  996. data/ext/couchbase/couchbase/search_row_locations.hxx +39 -38
  997. data/ext/couchbase/couchbase/search_scan_consistency.hxx +11 -10
  998. data/ext/couchbase/couchbase/search_sort.hxx +20 -20
  999. data/ext/couchbase/couchbase/search_sort_field.hxx +77 -71
  1000. data/ext/couchbase/couchbase/search_sort_field_missing.hxx +2 -2
  1001. data/ext/couchbase/couchbase/search_sort_field_mode.hxx +3 -3
  1002. data/ext/couchbase/couchbase/search_sort_field_type.hxx +4 -4
  1003. data/ext/couchbase/couchbase/search_sort_geo_distance.hxx +41 -41
  1004. data/ext/couchbase/couchbase/search_sort_id.hxx +23 -23
  1005. data/ext/couchbase/couchbase/search_sort_score.hxx +23 -23
  1006. data/ext/couchbase/couchbase/search_term_range.hxx +17 -17
  1007. data/ext/couchbase/couchbase/security_options.hxx +50 -50
  1008. data/ext/couchbase/couchbase/service_type.hxx +34 -34
  1009. data/ext/couchbase/couchbase/store_semantics.hxx +28 -28
  1010. data/ext/couchbase/couchbase/subdoc/array_add_unique.hxx +54 -54
  1011. data/ext/couchbase/couchbase/subdoc/array_append.hxx +40 -40
  1012. data/ext/couchbase/couchbase/subdoc/array_insert.hxx +41 -41
  1013. data/ext/couchbase/couchbase/subdoc/array_prepend.hxx +41 -41
  1014. data/ext/couchbase/couchbase/subdoc/count.hxx +24 -24
  1015. data/ext/couchbase/couchbase/subdoc/counter.hxx +41 -41
  1016. data/ext/couchbase/couchbase/subdoc/exists.hxx +24 -24
  1017. data/ext/couchbase/couchbase/subdoc/get.hxx +45 -29
  1018. data/ext/couchbase/couchbase/subdoc/insert.hxx +70 -54
  1019. data/ext/couchbase/couchbase/subdoc/lookup_in_macro.hxx +13 -12
  1020. data/ext/couchbase/couchbase/subdoc/mutate_in_macro.hxx +7 -2
  1021. data/ext/couchbase/couchbase/subdoc/remove.hxx +24 -24
  1022. data/ext/couchbase/couchbase/subdoc/replace.hxx +55 -39
  1023. data/ext/couchbase/couchbase/subdoc/upsert.hxx +70 -54
  1024. data/ext/couchbase/couchbase/term_facet.hxx +16 -16
  1025. data/ext/couchbase/couchbase/term_facet_result.hxx +14 -14
  1026. data/ext/couchbase/couchbase/term_query.hxx +107 -104
  1027. data/ext/couchbase/couchbase/term_range_query.hxx +99 -96
  1028. data/ext/couchbase/couchbase/timeout_options.hxx +118 -112
  1029. data/ext/couchbase/couchbase/tls_verify_mode.hxx +2 -2
  1030. data/ext/couchbase/couchbase/touch_options.hxx +25 -24
  1031. data/ext/couchbase/couchbase/tracing/otel_tracer.hxx +45 -44
  1032. data/ext/couchbase/couchbase/tracing/request_span.hxx +34 -34
  1033. data/ext/couchbase/couchbase/tracing/request_tracer.hxx +27 -25
  1034. data/ext/couchbase/couchbase/tracing_options.hxx +147 -142
  1035. data/ext/couchbase/couchbase/transactions/async_attempt_context.hxx +149 -115
  1036. data/ext/couchbase/couchbase/transactions/attempt_context.hxx +146 -95
  1037. data/ext/couchbase/couchbase/transactions/transaction_get_result.hxx +52 -80
  1038. data/ext/couchbase/couchbase/transactions/transaction_keyspace.hxx +33 -29
  1039. data/ext/couchbase/couchbase/transactions/transaction_options.hxx +101 -96
  1040. data/ext/couchbase/couchbase/transactions/transaction_query_options.hxx +228 -223
  1041. data/ext/couchbase/couchbase/transactions/transaction_query_result.hxx +11 -12
  1042. data/ext/couchbase/couchbase/transactions/transaction_result.hxx +2 -3
  1043. data/ext/couchbase/couchbase/transactions/transactions_cleanup_config.hxx +105 -104
  1044. data/ext/couchbase/couchbase/transactions/transactions_config.hxx +191 -187
  1045. data/ext/couchbase/couchbase/transactions/transactions_query_config.hxx +32 -32
  1046. data/ext/couchbase/couchbase/transactions.hxx +56 -37
  1047. data/ext/couchbase/couchbase/unfreeze_plan_search_index_options.hxx +11 -10
  1048. data/ext/couchbase/couchbase/unlock_options.hxx +25 -24
  1049. data/ext/couchbase/couchbase/update_bucket_options.hxx +9 -9
  1050. data/ext/couchbase/couchbase/update_collection_options.hxx +35 -34
  1051. data/ext/couchbase/couchbase/upsert_options.hxx +85 -80
  1052. data/ext/couchbase/couchbase/upsert_search_index_options.hxx +9 -9
  1053. data/ext/couchbase/couchbase/vector_query.hxx +82 -62
  1054. data/ext/couchbase/couchbase/vector_search.hxx +51 -47
  1055. data/ext/couchbase/couchbase/vector_search_options.hxx +45 -41
  1056. data/ext/couchbase/couchbase/wan_development_configuration_profile.hxx +13 -13
  1057. data/ext/couchbase/couchbase/watch_query_indexes_options.hxx +41 -41
  1058. data/ext/couchbase/couchbase/wildcard_query.hxx +42 -41
  1059. data/ext/couchbase/third_party/expected/include/tl/expected.hpp +1746 -1584
  1060. data/ext/couchbase/third_party/jsonsl/jsonsl.c +2664 -2638
  1061. data/ext/couchbase/third_party/jsonsl/jsonsl.h +359 -342
  1062. data/ext/couchbase.cxx +43 -9568
  1063. data/ext/extconf.rb +5 -0
  1064. data/ext/rcb_analytics.cxx +1195 -0
  1065. data/ext/rcb_analytics.hxx +29 -0
  1066. data/ext/rcb_backend.cxx +530 -0
  1067. data/ext/rcb_backend.hxx +46 -0
  1068. data/ext/rcb_buckets.cxx +624 -0
  1069. data/ext/rcb_buckets.hxx +29 -0
  1070. data/ext/rcb_collections.cxx +377 -0
  1071. data/ext/rcb_collections.hxx +29 -0
  1072. data/ext/rcb_crud.cxx +1544 -0
  1073. data/ext/rcb_crud.hxx +29 -0
  1074. data/ext/rcb_diagnostics.cxx +264 -0
  1075. data/ext/rcb_diagnostics.hxx +29 -0
  1076. data/ext/rcb_exceptions.cxx +963 -0
  1077. data/ext/rcb_exceptions.hxx +111 -0
  1078. data/ext/rcb_extras.cxx +394 -0
  1079. data/ext/rcb_extras.hxx +29 -0
  1080. data/ext/rcb_logger.cxx +319 -0
  1081. data/ext/rcb_logger.hxx +36 -0
  1082. data/ext/rcb_multi.cxx +343 -0
  1083. data/ext/rcb_multi.hxx +29 -0
  1084. data/ext/rcb_query.cxx +1316 -0
  1085. data/ext/rcb_query.hxx +29 -0
  1086. data/ext/rcb_range_scan.cxx +358 -0
  1087. data/ext/rcb_range_scan.hxx +29 -0
  1088. data/ext/rcb_search.cxx +1216 -0
  1089. data/ext/rcb_search.hxx +29 -0
  1090. data/ext/rcb_users.cxx +636 -0
  1091. data/ext/rcb_users.hxx +29 -0
  1092. data/ext/rcb_utils.cxx +590 -0
  1093. data/ext/rcb_utils.hxx +564 -0
  1094. data/ext/rcb_version.cxx +137 -0
  1095. data/ext/rcb_version.hxx +34 -0
  1096. data/ext/rcb_views.cxx +485 -0
  1097. data/ext/rcb_views.hxx +29 -0
  1098. data/lib/active_support/cache/couchbase_store.rb +4 -1
  1099. data/lib/couchbase/analytics_options.rb +2 -0
  1100. data/lib/couchbase/authenticator.rb +2 -0
  1101. data/lib/couchbase/binary_collection.rb +2 -0
  1102. data/lib/couchbase/binary_collection_options.rb +2 -0
  1103. data/lib/couchbase/bucket.rb +2 -0
  1104. data/lib/couchbase/cluster.rb +2 -0
  1105. data/lib/couchbase/collection.rb +3 -1
  1106. data/lib/couchbase/collection_options.rb +2 -0
  1107. data/lib/couchbase/config_profiles.rb +2 -0
  1108. data/lib/couchbase/configuration.rb +2 -0
  1109. data/lib/couchbase/datastructures/couchbase_list.rb +4 -4
  1110. data/lib/couchbase/datastructures/couchbase_map.rb +4 -4
  1111. data/lib/couchbase/datastructures/couchbase_queue.rb +4 -4
  1112. data/lib/couchbase/datastructures/couchbase_set.rb +4 -4
  1113. data/lib/couchbase/datastructures.rb +2 -0
  1114. data/lib/couchbase/diagnostics.rb +2 -0
  1115. data/lib/couchbase/errors.rb +46 -8
  1116. data/lib/couchbase/json_transcoder.rb +2 -0
  1117. data/lib/couchbase/key_value_scan.rb +2 -0
  1118. data/lib/couchbase/logger.rb +2 -0
  1119. data/lib/couchbase/management/analytics_index_manager.rb +2 -0
  1120. data/lib/couchbase/management/bucket_manager.rb +2 -0
  1121. data/lib/couchbase/management/collection_manager.rb +2 -0
  1122. data/lib/couchbase/management/collection_query_index_manager.rb +2 -0
  1123. data/lib/couchbase/management/query_index_manager.rb +2 -0
  1124. data/lib/couchbase/management/scope_search_index_manager.rb +2 -0
  1125. data/lib/couchbase/management/search_index_manager.rb +2 -0
  1126. data/lib/couchbase/management/user_manager.rb +2 -0
  1127. data/lib/couchbase/management/view_index_manager.rb +2 -0
  1128. data/lib/couchbase/management.rb +2 -0
  1129. data/lib/couchbase/mutation_state.rb +2 -0
  1130. data/lib/couchbase/options.rb +2 -0
  1131. data/lib/couchbase/protostellar/request_generator/kv.rb +1 -1
  1132. data/lib/couchbase/query_options.rb +2 -0
  1133. data/lib/couchbase/railtie.rb +2 -0
  1134. data/lib/couchbase/raw_binary_transcoder.rb +2 -0
  1135. data/lib/couchbase/raw_json_transcoder.rb +2 -0
  1136. data/lib/couchbase/raw_string_transcoder.rb +2 -0
  1137. data/lib/couchbase/scope.rb +2 -0
  1138. data/lib/couchbase/search_options.rb +91 -63
  1139. data/lib/couchbase/subdoc.rb +5 -3
  1140. data/lib/couchbase/transcoder_flags.rb +2 -0
  1141. data/lib/couchbase/utils/generic_logger_adapter.rb +3 -1
  1142. data/lib/couchbase/utils/stdlib_logger_adapter.rb +2 -0
  1143. data/lib/couchbase/utils/time.rb +3 -1
  1144. data/lib/couchbase/utils.rb +2 -0
  1145. data/lib/couchbase/version.rb +3 -1
  1146. data/lib/couchbase/view_options.rb +2 -0
  1147. data/lib/couchbase.rb +2 -0
  1148. data/lib/rails/generators/couchbase/config/config_generator.rb +2 -0
  1149. metadata +83 -26
  1150. data/ext/couchbase/core/impl/internal_manager_error_context.cxx +0 -113
  1151. data/ext/couchbase/core/impl/internal_manager_error_context.hxx +0 -60
  1152. data/ext/couchbase/core/impl/manager_error_context.cxx +0 -100
  1153. data/ext/couchbase/core/impl/search_error_context.cxx +0 -147
  1154. data/ext/couchbase/couchbase/analytics_error_context.hxx +0 -143
  1155. data/ext/couchbase/couchbase/fmt/key_value_error_map_attribute.hxx +0 -100
  1156. data/ext/couchbase/couchbase/fmt/key_value_status_code.hxx +0 -269
  1157. data/ext/couchbase/couchbase/key_value_error_context.hxx +0 -229
  1158. data/ext/couchbase/couchbase/key_value_error_map_attribute.hxx +0 -136
  1159. data/ext/couchbase/couchbase/key_value_error_map_info.hxx +0 -138
  1160. data/ext/couchbase/couchbase/key_value_extended_error_info.hxx +0 -86
  1161. data/ext/couchbase/couchbase/key_value_status_code.hxx +0 -109
  1162. data/ext/couchbase/couchbase/manager_error_context.hxx +0 -111
  1163. data/ext/couchbase/couchbase/query_error_context.hxx +0 -145
  1164. data/ext/couchbase/couchbase/search_error_context.hxx +0 -138
  1165. data/ext/couchbase/couchbase/subdocument_error_context.hxx +0 -147
  1166. data/ext/couchbase/couchbase/transaction_op_error_context.hxx +0 -76
@@ -33,7 +33,8 @@
33
33
  #include "core/operations/management/analytics_link_drop.hxx"
34
34
  #include "core/operations/management/analytics_link_get_all.hxx"
35
35
  #include "core/operations/management/analytics_link_replace.hxx"
36
- #include "internal_manager_error_context.hxx"
36
+
37
+ #include "core/impl/error.hxx"
37
38
 
38
39
  #include <couchbase/analytics_index_manager.hxx>
39
40
  #include <couchbase/management/analytics_link.hxx>
@@ -42,446 +43,492 @@ namespace couchbase
42
43
  {
43
44
  namespace
44
45
  {
45
- template<typename Response>
46
- manager_error_context
47
- build_context(Response& resp)
48
- {
49
- return manager_error_context{ internal_manager_error_context{ resp.ctx.ec,
50
- resp.ctx.last_dispatched_to,
51
- resp.ctx.last_dispatched_from,
52
- resp.ctx.retry_attempts,
53
- std::move(resp.ctx.retry_reasons),
54
- std::move(resp.ctx.client_context_id),
55
- resp.ctx.http_status,
56
- std::move(resp.ctx.http_body),
57
- std::move(resp.ctx.path) } };
58
- }
59
-
60
- core::management::analytics::couchbase_remote_link
46
+ auto
61
47
  to_core_couchbase_remote_link(const management::analytics_link& link)
62
- {
63
- auto cb_link = dynamic_cast<const management::couchbase_remote_analytics_link&>(link);
64
- core::management::analytics::couchbase_remote_link core_link{ cb_link.name,
65
- cb_link.dataverse_name,
66
- cb_link.hostname,
67
- cb_link.username,
68
- cb_link.password,
69
- core::management::analytics::couchbase_link_encryption_settings{
70
- {},
71
- cb_link.encryption.certificate,
72
- cb_link.encryption.client_certificate,
73
- cb_link.encryption.client_key,
74
- } };
75
- switch (cb_link.encryption.encryption_level) {
76
- case management::analytics_encryption_level::none:
77
- core_link.encryption.level = core::management::analytics::couchbase_link_encryption_level::none;
78
- break;
79
- case management::analytics_encryption_level::half:
80
- core_link.encryption.level = core::management::analytics::couchbase_link_encryption_level::half;
81
- break;
82
- case management::analytics_encryption_level::full:
83
- core_link.encryption.level = core::management::analytics::couchbase_link_encryption_level::full;
84
- break;
48
+ -> core::management::analytics::couchbase_remote_link
49
+ {
50
+ auto cb_link = dynamic_cast<const management::couchbase_remote_analytics_link&>(link);
51
+ core::management::analytics::couchbase_remote_link core_link{
52
+ cb_link.name,
53
+ cb_link.dataverse_name,
54
+ cb_link.hostname,
55
+ cb_link.username,
56
+ cb_link.password,
57
+ core::management::analytics::couchbase_link_encryption_settings{
58
+ {},
59
+ cb_link.encryption.certificate,
60
+ cb_link.encryption.client_certificate,
61
+ cb_link.encryption.client_key,
85
62
  }
86
- return core_link;
63
+ };
64
+ switch (cb_link.encryption.encryption_level) {
65
+ case management::analytics_encryption_level::none:
66
+ core_link.encryption.level =
67
+ core::management::analytics::couchbase_link_encryption_level::none;
68
+ break;
69
+ case management::analytics_encryption_level::half:
70
+ core_link.encryption.level =
71
+ core::management::analytics::couchbase_link_encryption_level::half;
72
+ break;
73
+ case management::analytics_encryption_level::full:
74
+ core_link.encryption.level =
75
+ core::management::analytics::couchbase_link_encryption_level::full;
76
+ break;
77
+ }
78
+ return core_link;
87
79
  }
88
80
 
89
- core::management::analytics::azure_blob_external_link
81
+ auto
90
82
  to_core_azure_blob_external_link(const management::analytics_link& link)
83
+ -> core::management::analytics::azure_blob_external_link
91
84
  {
92
- auto azure_link = dynamic_cast<const management::azure_blob_external_analytics_link&>(link);
93
- return core::management::analytics::azure_blob_external_link{
94
- azure_link.name, azure_link.dataverse_name, azure_link.connection_string, azure_link.account_name,
95
- azure_link.account_key, azure_link.shared_access_signature, azure_link.blob_endpoint, azure_link.endpoint_suffix,
96
- };
85
+ auto azure_link = dynamic_cast<const management::azure_blob_external_analytics_link&>(link);
86
+ return core::management::analytics::azure_blob_external_link{
87
+ azure_link.name, azure_link.dataverse_name, azure_link.connection_string,
88
+ azure_link.account_name, azure_link.account_key, azure_link.shared_access_signature,
89
+ azure_link.blob_endpoint, azure_link.endpoint_suffix,
90
+ };
97
91
  }
98
92
 
99
- core::management::analytics::s3_external_link
93
+ auto
100
94
  to_core_s3_external_link(const management::analytics_link& link)
101
- {
102
- auto s3_link = dynamic_cast<const management::s3_external_analytics_link&>(link);
103
- return core::management::analytics::s3_external_link{
104
- s3_link.name, s3_link.dataverse_name, s3_link.access_key_id, s3_link.secret_access_key,
105
- s3_link.session_token, s3_link.region, s3_link.service_endpoint,
106
- };
95
+ -> core::management::analytics::s3_external_link
96
+ {
97
+ auto s3_link = dynamic_cast<const management::s3_external_analytics_link&>(link);
98
+ return core::management::analytics::s3_external_link{
99
+ s3_link.name,
100
+ s3_link.dataverse_name,
101
+ s3_link.access_key_id,
102
+ s3_link.secret_access_key,
103
+ s3_link.session_token,
104
+ s3_link.region,
105
+ s3_link.service_endpoint,
106
+ };
107
107
  }
108
108
  } // namespace
109
109
 
110
- class analytics_index_manager_impl : public std::enable_shared_from_this<analytics_index_manager_impl>
111
- {
112
- public:
113
- explicit analytics_index_manager_impl(core::cluster core)
114
- : core_{ std::move(core) }
115
- {
116
- }
117
-
118
- void create_dataverse(const std::string& dataverse_name,
119
- const create_dataverse_analytics_options::built& options,
120
- create_dataverse_analytics_handler&& handler) const
121
- {
122
- return core_.execute(
123
- core::operations::management::analytics_dataverse_create_request{
124
- dataverse_name,
125
- options.ignore_if_exists,
126
- {},
127
- options.timeout,
128
- },
129
- [dataverse_name, handler = std::move(handler)](auto resp) {
130
- CB_LOG_DEBUG("Dataverse create for {} error code = {}", dataverse_name, resp.ctx.ec.value());
131
- handler(build_context(resp));
110
+ class analytics_index_manager_impl
111
+ : public std::enable_shared_from_this<analytics_index_manager_impl>
112
+ {
113
+ public:
114
+ explicit analytics_index_manager_impl(core::cluster core)
115
+ : core_{ std::move(core) }
116
+ {
117
+ }
118
+
119
+ void create_dataverse(const std::string& dataverse_name,
120
+ const create_dataverse_analytics_options::built& options,
121
+ create_dataverse_analytics_handler&& handler) const
122
+ {
123
+ return core_.execute(
124
+ core::operations::management::analytics_dataverse_create_request{
125
+ dataverse_name,
126
+ options.ignore_if_exists,
127
+ {},
128
+ options.timeout,
129
+ },
130
+ [dataverse_name, handler = std::move(handler)](auto resp) {
131
+ CB_LOG_DEBUG(
132
+ "Dataverse create for {} error code = {}", dataverse_name, resp.ctx.ec.value());
133
+ handler(core::impl::make_error(resp.ctx));
134
+ });
135
+ }
136
+
137
+ void drop_dataverse(const std::string& dataverse_name,
138
+ const drop_dataverse_analytics_options::built& options,
139
+ drop_dataverse_analytics_handler&& handler) const
140
+ {
141
+ return core_.execute(
142
+ core::operations::management::analytics_dataverse_drop_request{
143
+ dataverse_name,
144
+ options.ignore_if_not_exists,
145
+ {},
146
+ options.timeout,
147
+ },
148
+ [handler = std::move(handler)](auto resp) {
149
+ handler(core::impl::make_error(resp.ctx));
150
+ });
151
+ }
152
+
153
+ void create_dataset(const std::string& dataset_name,
154
+ const std::string& bucket_name,
155
+ const create_dataset_analytics_options::built& options,
156
+ create_dataset_analytics_handler&& handler) const
157
+ {
158
+ return core_.execute(
159
+ core::operations::management::analytics_dataset_create_request{
160
+ options.dataverse_name.value_or(DEFAULT_DATAVERSE_NAME),
161
+ dataset_name,
162
+ bucket_name,
163
+ options.condition,
164
+ {},
165
+ options.timeout,
166
+ options.ignore_if_exists,
167
+ },
168
+ [handler = std::move(handler)](auto resp) {
169
+ handler(core::impl::make_error(resp.ctx));
170
+ });
171
+ }
172
+
173
+ void drop_dataset(const std::string& dataset_name,
174
+ const drop_dataset_analytics_options::built& options,
175
+ drop_dataset_analytics_handler&& handler) const
176
+ {
177
+ return core_.execute(
178
+ core::operations::management::analytics_dataset_drop_request{
179
+ options.dataverse_name.value_or(DEFAULT_DATAVERSE_NAME),
180
+ dataset_name,
181
+ options.ignore_if_not_exists,
182
+ {},
183
+ options.timeout,
184
+ },
185
+ [handler = std::move(handler)](auto resp) {
186
+ handler(core::impl::make_error(resp.ctx));
187
+ });
188
+ }
189
+
190
+ void get_all_datasets(const get_all_datasets_analytics_options::built& options,
191
+ get_all_datasets_analytics_handler&& handler) const
192
+ {
193
+ return core_.execute(
194
+ core::operations::management::analytics_dataset_get_all_request{
195
+ {},
196
+ options.timeout,
197
+ },
198
+ [handler = std::move(handler)](
199
+ core::operations::management::analytics_dataset_get_all_response resp) {
200
+ if (resp.ctx.ec) {
201
+ return handler(core::impl::make_error(resp.ctx), {});
202
+ }
203
+ std::vector<management::analytics_dataset> datasets{};
204
+ datasets.reserve(resp.datasets.size());
205
+ for (const auto& d : resp.datasets) {
206
+ datasets.push_back(management::analytics_dataset{
207
+ d.name,
208
+ d.dataverse_name,
209
+ d.link_name,
210
+ d.bucket_name,
132
211
  });
133
- }
134
-
135
- void drop_dataverse(const std::string& dataverse_name,
136
- const drop_dataverse_analytics_options::built& options,
137
- drop_dataverse_analytics_handler&& handler) const
138
- {
139
- return core_.execute(
140
- core::operations::management::analytics_dataverse_drop_request{
141
- dataverse_name,
142
- options.ignore_if_not_exists,
143
- {},
144
- options.timeout,
145
- },
146
- [handler = std::move(handler)](auto resp) { handler(build_context(resp)); });
147
- }
212
+ }
213
+ handler(core::impl::make_error(resp.ctx), datasets);
214
+ });
215
+ }
148
216
 
149
- void create_dataset(const std::string& dataset_name,
150
- const std::string& bucket_name,
151
- const create_dataset_analytics_options::built& options,
152
- create_dataset_analytics_handler&& handler) const
153
- {
217
+ void create_index(const std::string& index_name,
218
+ const std::string& dataset_name,
219
+ const std::map<std::string, std::string>& fields,
220
+ const create_index_analytics_options::built& options,
221
+ create_index_analytics_handler&& handler) const
222
+ {
223
+ return core_.execute(
224
+ core::operations::management::analytics_index_create_request{
225
+ options.dataverse_name.value_or(DEFAULT_DATAVERSE_NAME),
226
+ dataset_name,
227
+ index_name,
228
+ fields,
229
+ options.ignore_if_exists,
230
+ {},
231
+ options.timeout,
232
+ },
233
+ [handler = std::move(handler)](auto resp) {
234
+ handler(core::impl::make_error(resp.ctx));
235
+ });
236
+ }
237
+
238
+ void drop_index(const std::string& index_name,
239
+ const std::string& dataset_name,
240
+ const drop_index_analytics_options::built& options,
241
+ drop_index_analytics_handler&& handler) const
242
+ {
243
+ return core_.execute(
244
+ core::operations::management::analytics_index_drop_request{
245
+ options.dataverse_name.value_or(DEFAULT_DATAVERSE_NAME),
246
+ dataset_name,
247
+ index_name,
248
+ options.ignore_if_not_exists,
249
+ {},
250
+ options.timeout,
251
+ },
252
+ [handler = std::move(handler)](auto resp) {
253
+ handler(core::impl::make_error(resp.ctx));
254
+ });
255
+ }
256
+
257
+ void get_all_indexes(const get_all_indexes_analytics_options::built& options,
258
+ get_all_indexes_analytics_handler&& handler) const
259
+ {
260
+ return core_.execute(
261
+ core::operations::management::analytics_index_get_all_request{
262
+ {},
263
+ options.timeout,
264
+ },
265
+ [handler =
266
+ std::move(handler)](core::operations::management::analytics_index_get_all_response resp) {
267
+ if (resp.ctx.ec) {
268
+ return handler(core::impl::make_error(resp.ctx), {});
269
+ }
270
+ std::vector<management::analytics_index> indexes{};
271
+ indexes.reserve(resp.indexes.size());
272
+ for (const auto& idx : resp.indexes) {
273
+ indexes.push_back(management::analytics_index{
274
+ idx.name,
275
+ idx.dataset_name,
276
+ idx.dataverse_name,
277
+ idx.is_primary,
278
+ });
279
+ }
280
+ handler(core::impl::make_error(resp.ctx), indexes);
281
+ });
282
+ }
283
+
284
+ void connect_link(const connect_link_analytics_options::built& options,
285
+ connect_link_analytics_handler&& handler) const
286
+ {
287
+ return core_.execute(
288
+ core::operations::management::analytics_link_connect_request{
289
+ options.dataverse_name.value_or(DEFAULT_DATAVERSE_NAME),
290
+ options.link_name.value_or(DEFAULT_LINK_NAME),
291
+ options.force,
292
+ {},
293
+ options.timeout,
294
+ },
295
+ [handler = std::move(handler)](auto resp) {
296
+ handler(core::impl::make_error(resp.ctx));
297
+ });
298
+ }
299
+
300
+ void disconnect_link(const disconnect_link_analytics_options::built& options,
301
+ disconnect_link_analytics_handler&& handler) const
302
+ {
303
+ return core_.execute(
304
+ core::operations::management::analytics_link_disconnect_request{
305
+ options.dataverse_name.value_or(DEFAULT_DATAVERSE_NAME),
306
+ options.link_name.value_or(DEFAULT_LINK_NAME),
307
+ {},
308
+ options.timeout,
309
+ },
310
+ [handler = std::move(handler)](auto resp) {
311
+ handler(core::impl::make_error(resp.ctx));
312
+ });
313
+ }
314
+
315
+ void get_pending_mutations(const get_pending_mutations_analytics_options::built& options,
316
+ get_pending_mutations_analytics_handler&& handler) const
317
+ {
318
+ return core_.execute(
319
+ core::operations::management::analytics_get_pending_mutations_request{
320
+ {},
321
+ options.timeout,
322
+ },
323
+ [handler = std::move(handler)](
324
+ core::operations::management::analytics_get_pending_mutations_response resp) {
325
+ if (resp.ctx.ec) {
326
+ return handler(core::impl::make_error(resp.ctx), {});
327
+ }
328
+ std::map<std::string, std::map<std::string, std::int64_t>> pending_mutations{};
329
+ const std::string separator{ "." };
330
+ for (const auto& [key, mutation_count] : resp.stats) {
331
+ // Keys are encoded as `dataverse.dataset`
332
+ auto separator_pos = key.find(separator);
333
+ auto dataverse_name = key.substr(0, separator_pos);
334
+ auto dataset_name = key.substr(separator_pos + 1, key.size() - separator_pos - 1);
335
+ if (pending_mutations.count(dataverse_name) == 0) {
336
+ pending_mutations.insert({ dataverse_name, {} });
337
+ }
338
+ pending_mutations.at(dataverse_name).insert({ dataset_name, mutation_count });
339
+ }
340
+ handler(core::impl::make_error(resp.ctx), pending_mutations);
341
+ });
342
+ }
343
+
344
+ void create_link(const management::analytics_link& link,
345
+ const create_link_analytics_options::built& options,
346
+ create_link_analytics_handler&& handler) const
347
+ {
348
+ switch (link.link_type()) {
349
+ case management::s3_external:
154
350
  return core_.execute(
155
- core::operations::management::analytics_dataset_create_request{
156
- options.dataverse_name.value_or(DEFAULT_DATAVERSE_NAME),
157
- dataset_name,
158
- bucket_name,
159
- options.condition,
351
+ core::operations::management::analytics_link_create_request<
352
+ core::management::analytics::s3_external_link>{
353
+ to_core_s3_external_link(link),
160
354
  {},
161
355
  options.timeout,
162
- options.ignore_if_exists,
163
356
  },
164
- [handler = std::move(handler)](auto resp) { handler(build_context(resp)); });
165
- }
357
+ [handler = std::move(handler)](auto resp) {
358
+ handler(core::impl::make_error(resp.ctx));
359
+ });
166
360
 
167
- void drop_dataset(const std::string& dataset_name,
168
- const drop_dataset_analytics_options::built& options,
169
- drop_dataset_analytics_handler&& handler) const
170
- {
361
+ case management::azure_external:
171
362
  return core_.execute(
172
- core::operations::management::analytics_dataset_drop_request{
173
- options.dataverse_name.value_or(DEFAULT_DATAVERSE_NAME),
174
- dataset_name,
175
- options.ignore_if_not_exists,
363
+ core::operations::management::analytics_link_create_request<
364
+ core::management::analytics::azure_blob_external_link>{
365
+ to_core_azure_blob_external_link(link),
176
366
  {},
177
367
  options.timeout,
178
368
  },
179
- [handler = std::move(handler)](auto resp) { handler(build_context(resp)); });
180
- }
369
+ [handler = std::move(handler)](auto resp) {
370
+ handler(core::impl::make_error(resp.ctx));
371
+ });
181
372
 
182
- void get_all_datasets(const get_all_datasets_analytics_options::built& options, get_all_datasets_analytics_handler&& handler) const
183
- {
373
+ case management::couchbase_remote:
184
374
  return core_.execute(
185
- core::operations::management::analytics_dataset_get_all_request{
375
+ core::operations::management::analytics_link_create_request<
376
+ core::management::analytics::couchbase_remote_link>{
377
+ to_core_couchbase_remote_link(link),
186
378
  {},
187
379
  options.timeout,
188
380
  },
189
- [handler = std::move(handler)](core::operations::management::analytics_dataset_get_all_response resp) {
190
- if (resp.ctx.ec) {
191
- return handler(build_context(resp), {});
192
- }
193
- std::vector<management::analytics_dataset> datasets{};
194
- datasets.reserve(resp.datasets.size());
195
- for (const auto& d : resp.datasets) {
196
- datasets.push_back(management::analytics_dataset{
197
- d.name,
198
- d.dataverse_name,
199
- d.link_name,
200
- d.bucket_name,
201
- });
202
- }
203
- handler(build_context(resp), datasets);
381
+ [handler = std::move(handler)](auto resp) {
382
+ handler(core::impl::make_error(resp.ctx));
204
383
  });
205
384
  }
206
-
207
- void create_index(const std::string& index_name,
208
- const std::string& dataset_name,
209
- const std::map<std::string, std::string>& fields,
210
- const create_index_analytics_options::built& options,
211
- create_index_analytics_handler&& handler) const
212
- {
385
+ }
386
+
387
+ void replace_link(const management::analytics_link& link,
388
+ const replace_link_analytics_options::built& options,
389
+ replace_link_analytics_handler&& handler) const
390
+ {
391
+ switch (link.link_type()) {
392
+ case management::s3_external:
213
393
  return core_.execute(
214
- core::operations::management::analytics_index_create_request{
215
- options.dataverse_name.value_or(DEFAULT_DATAVERSE_NAME),
216
- dataset_name,
217
- index_name,
218
- fields,
219
- options.ignore_if_exists,
394
+ core::operations::management::analytics_link_replace_request<
395
+ core::management::analytics::s3_external_link>{
396
+ to_core_s3_external_link(link),
220
397
  {},
221
398
  options.timeout,
222
399
  },
223
- [handler = std::move(handler)](auto resp) { handler(build_context(resp)); });
224
- }
400
+ [handler = std::move(handler)](auto resp) {
401
+ handler(core::impl::make_error(resp.ctx));
402
+ });
225
403
 
226
- void drop_index(const std::string& index_name,
227
- const std::string& dataset_name,
228
- const drop_index_analytics_options::built& options,
229
- drop_index_analytics_handler&& handler) const
230
- {
404
+ case management::azure_external:
231
405
  return core_.execute(
232
- core::operations::management::analytics_index_drop_request{
233
- options.dataverse_name.value_or(DEFAULT_DATAVERSE_NAME),
234
- dataset_name,
235
- index_name,
236
- options.ignore_if_not_exists,
406
+ core::operations::management::analytics_link_replace_request<
407
+ core::management::analytics::azure_blob_external_link>{
408
+ to_core_azure_blob_external_link(link),
237
409
  {},
238
410
  options.timeout,
239
411
  },
240
- [handler = std::move(handler)](auto resp) { handler(build_context(resp)); });
241
- }
412
+ [handler = std::move(handler)](auto resp) {
413
+ handler(core::impl::make_error(resp.ctx));
414
+ });
242
415
 
243
- void get_all_indexes(const get_all_indexes_analytics_options::built& options, get_all_indexes_analytics_handler&& handler) const
244
- {
416
+ case management::couchbase_remote:
245
417
  return core_.execute(
246
- core::operations::management::analytics_index_get_all_request{
418
+ core::operations::management::analytics_link_replace_request<
419
+ core::management::analytics::couchbase_remote_link>{
420
+ to_core_couchbase_remote_link(link),
247
421
  {},
248
422
  options.timeout,
249
423
  },
250
- [handler = std::move(handler)](core::operations::management::analytics_index_get_all_response resp) {
251
- if (resp.ctx.ec) {
252
- return handler(build_context(resp), {});
253
- }
254
- std::vector<management::analytics_index> indexes{};
255
- indexes.reserve(resp.indexes.size());
256
- for (const auto& idx : resp.indexes) {
257
- indexes.push_back(management::analytics_index{
258
- idx.name,
259
- idx.dataset_name,
260
- idx.dataverse_name,
261
- idx.is_primary,
262
- });
263
- }
264
- handler(build_context(resp), indexes);
424
+ [handler = std::move(handler)](auto resp) {
425
+ handler(core::impl::make_error(resp.ctx));
265
426
  });
266
427
  }
267
-
268
- void connect_link(const connect_link_analytics_options::built& options, connect_link_analytics_handler&& handler) const
269
- {
270
- return core_.execute(
271
- core::operations::management::analytics_link_connect_request{
272
- options.dataverse_name.value_or(DEFAULT_DATAVERSE_NAME),
273
- options.link_name.value_or(DEFAULT_LINK_NAME),
274
- options.force,
275
- {},
276
- options.timeout,
277
- },
278
- [handler = std::move(handler)](auto resp) { handler(build_context(resp)); });
428
+ }
429
+
430
+ void drop_link(const std::string& link_name,
431
+ const std::string& dataverse_name,
432
+ const drop_link_analytics_options::built& options,
433
+ drop_link_analytics_handler&& handler) const
434
+ {
435
+ return core_.execute(
436
+ core::operations::management::analytics_link_drop_request{
437
+ link_name,
438
+ dataverse_name,
439
+ {},
440
+ options.timeout,
441
+ },
442
+ [handler = std::move(handler)](auto resp) {
443
+ handler(core::impl::make_error(resp.ctx));
444
+ });
445
+ }
446
+
447
+ void get_links(const get_links_analytics_options::built& options,
448
+ get_links_analytics_handler&& handler) const
449
+ {
450
+ core::operations::management::analytics_link_get_all_request req{
451
+ {}, {}, {}, {}, options.timeout,
452
+ };
453
+ if (options.name.has_value()) {
454
+ req.link_name = options.name.value();
279
455
  }
280
-
281
- void disconnect_link(const disconnect_link_analytics_options::built& options, disconnect_link_analytics_handler&& handler) const
282
- {
283
- return core_.execute(
284
- core::operations::management::analytics_link_disconnect_request{
285
- options.dataverse_name.value_or(DEFAULT_DATAVERSE_NAME),
286
- options.link_name.value_or(DEFAULT_LINK_NAME),
287
- {},
288
- options.timeout,
289
- },
290
- [handler = std::move(handler)](auto resp) { handler(build_context(resp)); });
456
+ if (options.dataverse_name.has_value()) {
457
+ req.dataverse_name = options.dataverse_name.value();
291
458
  }
292
-
293
- void get_pending_mutations(const get_pending_mutations_analytics_options::built& options,
294
- get_pending_mutations_analytics_handler&& handler) const
295
- {
296
- return core_.execute(
297
- core::operations::management::analytics_get_pending_mutations_request{
298
- {},
299
- options.timeout,
300
- },
301
- [handler = std::move(handler)](core::operations::management::analytics_get_pending_mutations_response resp) {
302
- if (resp.ctx.ec) {
303
- return handler(build_context(resp), {});
304
- }
305
- std::map<std::string, std::map<std::string, std::int64_t>> pending_mutations{};
306
- const std::string separator{ "." };
307
- for (const auto& [key, mutation_count] : resp.stats) {
308
- // Keys are encoded as `dataverse.dataset`
309
- auto separator_pos = key.find(separator);
310
- auto dataverse_name = key.substr(0, separator_pos);
311
- auto dataset_name = key.substr(separator_pos + 1, key.size() - separator_pos - 1);
312
- if (pending_mutations.count(dataverse_name) == 0) {
313
- pending_mutations.insert({ dataverse_name, {} });
314
- }
315
- pending_mutations.at(dataverse_name).insert({ dataset_name, mutation_count });
316
- }
317
- handler(build_context(resp), pending_mutations);
318
- });
459
+ if (options.link_type.has_value()) {
460
+ switch (options.link_type.value()) {
461
+ case management::s3_external:
462
+ req.link_type = "s3";
463
+ break;
464
+ case management::azure_external:
465
+ req.link_type = "azureblob";
466
+ break;
467
+ case management::couchbase_remote:
468
+ req.link_type = "couchbase";
469
+ break;
470
+ }
319
471
  }
320
-
321
- void create_link(const management::analytics_link& link,
322
- const create_link_analytics_options::built& options,
323
- create_link_analytics_handler&& handler) const
324
- {
325
- switch (link.link_type()) {
326
- case management::s3_external:
327
- return core_.execute(
328
- core::operations::management::analytics_link_create_request<core::management::analytics::s3_external_link>{
329
- to_core_s3_external_link(link),
330
- {},
331
- options.timeout,
332
- },
333
- [handler = std::move(handler)](auto resp) { handler(build_context(resp)); });
334
-
335
- case management::azure_external:
336
- return core_.execute(
337
- core::operations::management::analytics_link_create_request<core::management::analytics::azure_blob_external_link>{
338
- to_core_azure_blob_external_link(link),
339
- {},
340
- options.timeout,
341
- },
342
- [handler = std::move(handler)](auto resp) { handler(build_context(resp)); });
343
-
344
- case management::couchbase_remote:
345
- return core_.execute(
346
- core::operations::management::analytics_link_create_request<core::management::analytics::couchbase_remote_link>{
347
- to_core_couchbase_remote_link(link),
348
- {},
349
- options.timeout,
350
- },
351
- [handler = std::move(handler)](auto resp) { handler(build_context(resp)); });
472
+ return core_.execute(
473
+ req,
474
+ [handler =
475
+ std::move(handler)](core::operations::management::analytics_link_get_all_response resp) {
476
+ if (resp.ctx.ec) {
477
+ return handler(core::impl::make_error(resp.ctx), {});
352
478
  }
353
- }
354
-
355
- void replace_link(const management::analytics_link& link,
356
- const replace_link_analytics_options::built& options,
357
- replace_link_analytics_handler&& handler) const
358
- {
359
- switch (link.link_type()) {
360
- case management::s3_external:
361
- return core_.execute(
362
- core::operations::management::analytics_link_replace_request<core::management::analytics::s3_external_link>{
363
- to_core_s3_external_link(link),
364
- {},
365
- options.timeout,
366
- },
367
- [handler = std::move(handler)](auto resp) { handler(build_context(resp)); });
368
-
369
- case management::azure_external:
370
- return core_.execute(
371
- core::operations::management::analytics_link_replace_request<core::management::analytics::azure_blob_external_link>{
372
- to_core_azure_blob_external_link(link),
373
- {},
374
- options.timeout,
375
- },
376
- [handler = std::move(handler)](auto resp) { handler(build_context(resp)); });
377
-
378
- case management::couchbase_remote:
379
- return core_.execute(
380
- core::operations::management::analytics_link_replace_request<core::management::analytics::couchbase_remote_link>{
381
- to_core_couchbase_remote_link(link),
382
- {},
383
- options.timeout,
384
- },
385
- [handler = std::move(handler)](auto resp) { handler(build_context(resp)); });
479
+ std::vector<std::unique_ptr<management::analytics_link>> links{};
480
+
481
+ for (const auto& link : resp.couchbase) {
482
+ auto cb_link = std::make_unique<management::couchbase_remote_analytics_link>();
483
+ cb_link->name = link.link_name;
484
+ cb_link->dataverse_name = link.dataverse;
485
+ cb_link->hostname = link.hostname;
486
+ switch (link.encryption.level) {
487
+ case core::management::analytics::couchbase_link_encryption_level::none:
488
+ cb_link->encryption.encryption_level = management::analytics_encryption_level::none;
489
+ break;
490
+ case core::management::analytics::couchbase_link_encryption_level::half:
491
+ cb_link->encryption.encryption_level = management::analytics_encryption_level::half;
492
+ break;
493
+ case core::management::analytics::couchbase_link_encryption_level::full:
494
+ cb_link->encryption.encryption_level = management::analytics_encryption_level::full;
495
+ break;
496
+ }
497
+ cb_link->encryption.certificate = link.encryption.certificate;
498
+ cb_link->encryption.client_certificate = link.encryption.client_certificate;
499
+ cb_link->username = link.username;
500
+ links.push_back(std::move(cb_link));
386
501
  }
387
- }
388
502
 
389
- void drop_link(const std::string& link_name,
390
- const std::string& dataverse_name,
391
- const drop_link_analytics_options::built& options,
392
- drop_link_analytics_handler&& handler) const
393
- {
394
- return core_.execute(
395
- core::operations::management::analytics_link_drop_request{
396
- link_name,
397
- dataverse_name,
398
- {},
399
- options.timeout,
400
- },
401
- [handler = std::move(handler)](auto resp) { handler(build_context(resp)); });
402
- }
403
-
404
- void get_links(const get_links_analytics_options::built& options, get_links_analytics_handler&& handler) const
405
- {
406
- core::operations::management::analytics_link_get_all_request req{
407
- {}, {}, {}, {}, options.timeout,
408
- };
409
- if (options.name.has_value()) {
410
- req.link_name = options.name.value();
411
- }
412
- if (options.dataverse_name.has_value()) {
413
- req.dataverse_name = options.dataverse_name.value();
503
+ for (const auto& link : resp.s3) {
504
+ auto s3_link = std::make_unique<management::s3_external_analytics_link>();
505
+ s3_link->name = link.link_name;
506
+ s3_link->dataverse_name = link.dataverse;
507
+ s3_link->access_key_id = link.access_key_id;
508
+ s3_link->region = link.region;
509
+ s3_link->service_endpoint = link.service_endpoint;
510
+ links.push_back(std::move(s3_link));
414
511
  }
415
- if (options.link_type.has_value()) {
416
- switch (options.link_type.value()) {
417
- case management::s3_external:
418
- req.link_type = "s3";
419
- break;
420
- case management::azure_external:
421
- req.link_type = "azureblob";
422
- break;
423
- case management::couchbase_remote:
424
- req.link_type = "couchbase";
425
- break;
426
- }
512
+
513
+ for (const auto& link : resp.azure_blob) {
514
+ auto azure_link = std::make_unique<management::azure_blob_external_analytics_link>();
515
+ azure_link->name = link.link_name;
516
+ azure_link->dataverse_name = link.dataverse;
517
+ azure_link->account_name = link.account_name;
518
+ azure_link->blob_endpoint = link.blob_endpoint;
519
+ azure_link->endpoint_suffix = link.endpoint_suffix;
520
+ links.push_back(std::move(azure_link));
427
521
  }
428
- return core_.execute(req, [handler = std::move(handler)](core::operations::management::analytics_link_get_all_response resp) {
429
- if (resp.ctx.ec) {
430
- return handler(build_context(resp), {});
431
- }
432
- std::vector<std::unique_ptr<management::analytics_link>> links{};
433
-
434
- for (const auto& link : resp.couchbase) {
435
- auto cb_link = std::make_unique<management::couchbase_remote_analytics_link>();
436
- cb_link->name = link.link_name;
437
- cb_link->dataverse_name = link.dataverse;
438
- cb_link->hostname = link.hostname;
439
- switch (link.encryption.level) {
440
- case core::management::analytics::couchbase_link_encryption_level::none:
441
- cb_link->encryption.encryption_level = management::analytics_encryption_level::none;
442
- break;
443
- case core::management::analytics::couchbase_link_encryption_level::half:
444
- cb_link->encryption.encryption_level = management::analytics_encryption_level::half;
445
- break;
446
- case core::management::analytics::couchbase_link_encryption_level::full:
447
- cb_link->encryption.encryption_level = management::analytics_encryption_level::full;
448
- break;
449
- }
450
- cb_link->encryption.certificate = link.encryption.certificate;
451
- cb_link->encryption.client_certificate = link.encryption.client_certificate;
452
- cb_link->username = link.username;
453
- links.push_back(std::move(cb_link));
454
- }
455
-
456
- for (const auto& link : resp.s3) {
457
- auto s3_link = std::make_unique<management::s3_external_analytics_link>();
458
- s3_link->name = link.link_name;
459
- s3_link->dataverse_name = link.dataverse;
460
- s3_link->access_key_id = link.access_key_id;
461
- s3_link->region = link.region;
462
- s3_link->service_endpoint = link.service_endpoint;
463
- links.push_back(std::move(s3_link));
464
- }
465
-
466
- for (const auto& link : resp.azure_blob) {
467
- auto azure_link = std::make_unique<management::azure_blob_external_analytics_link>();
468
- azure_link->name = link.link_name;
469
- azure_link->dataverse_name = link.dataverse;
470
- azure_link->account_name = link.account_name;
471
- azure_link->blob_endpoint = link.blob_endpoint;
472
- azure_link->endpoint_suffix = link.endpoint_suffix;
473
- links.push_back(std::move(azure_link));
474
- }
475
-
476
- handler(build_context(resp), std::move(links));
477
- });
478
- }
479
522
 
480
- private:
481
- static const inline std::string DEFAULT_DATAVERSE_NAME = "Default";
482
- static const inline std::string DEFAULT_LINK_NAME = "Local";
523
+ handler(core::impl::make_error(resp.ctx), std::move(links));
524
+ });
525
+ }
526
+
527
+ private:
528
+ static const inline std::string DEFAULT_DATAVERSE_NAME = "Default";
529
+ static const inline std::string DEFAULT_LINK_NAME = "Local";
483
530
 
484
- core::cluster core_;
531
+ core::cluster core_;
485
532
  };
486
533
 
487
534
  analytics_index_manager::analytics_index_manager(core::cluster core)
@@ -494,17 +541,20 @@ analytics_index_manager::create_dataverse(std::string dataverse_name,
494
541
  const create_dataverse_analytics_options& options,
495
542
  create_dataverse_analytics_handler&& handler) const
496
543
  {
497
- return impl_->create_dataverse(dataverse_name, options.build(), std::move(handler));
544
+ return impl_->create_dataverse(dataverse_name, options.build(), std::move(handler));
498
545
  }
499
546
 
500
547
  auto
501
- analytics_index_manager::create_dataverse(std::string dataverse_name, const create_dataverse_analytics_options& options) const
502
- -> std::future<manager_error_context>
548
+ analytics_index_manager::create_dataverse(std::string dataverse_name,
549
+ const create_dataverse_analytics_options& options) const
550
+ -> std::future<error>
503
551
  {
504
- auto barrier = std::make_shared<std::promise<manager_error_context>>();
505
- auto future = barrier->get_future();
506
- create_dataverse(std::move(dataverse_name), options, [barrier](auto ctx) mutable { barrier->set_value({ std::move(ctx) }); });
507
- return future;
552
+ auto barrier = std::make_shared<std::promise<error>>();
553
+ auto future = barrier->get_future();
554
+ create_dataverse(std::move(dataverse_name), options, [barrier](auto err) mutable {
555
+ barrier->set_value({ std::move(err) });
556
+ });
557
+ return future;
508
558
  }
509
559
 
510
560
  void
@@ -512,17 +562,20 @@ analytics_index_manager::drop_dataverse(std::string dataverse_name,
512
562
  const drop_dataverse_analytics_options& options,
513
563
  drop_dataverse_analytics_handler&& handler) const
514
564
  {
515
- return impl_->drop_dataverse(dataverse_name, options.build(), std::move(handler));
565
+ return impl_->drop_dataverse(dataverse_name, options.build(), std::move(handler));
516
566
  }
517
567
 
518
568
  auto
519
- analytics_index_manager::drop_dataverse(std::string dataverse_name, const drop_dataverse_analytics_options& options) const
520
- -> std::future<manager_error_context>
569
+ analytics_index_manager::drop_dataverse(std::string dataverse_name,
570
+ const drop_dataverse_analytics_options& options) const
571
+ -> std::future<error>
521
572
  {
522
- auto barrier = std::make_shared<std::promise<manager_error_context>>();
523
- auto future = barrier->get_future();
524
- drop_dataverse(std::move(dataverse_name), options, [barrier](auto ctx) mutable { barrier->set_value({ std::move(ctx) }); });
525
- return future;
573
+ auto barrier = std::make_shared<std::promise<error>>();
574
+ auto future = barrier->get_future();
575
+ drop_dataverse(std::move(dataverse_name), options, [barrier](auto err) mutable {
576
+ barrier->set_value({ std::move(err) });
577
+ });
578
+ return future;
526
579
  }
527
580
 
528
581
  void
@@ -531,19 +584,22 @@ analytics_index_manager::create_dataset(std::string dataset_name,
531
584
  const create_dataset_analytics_options& options,
532
585
  create_dataset_analytics_handler&& handler) const
533
586
  {
534
- return impl_->create_dataset(dataset_name, bucket_name, options.build(), std::move(handler));
587
+ return impl_->create_dataset(dataset_name, bucket_name, options.build(), std::move(handler));
535
588
  }
536
589
 
537
590
  auto
538
591
  analytics_index_manager::create_dataset(std::string dataset_name,
539
592
  std::string bucket_name,
540
- const create_dataset_analytics_options& options) const -> std::future<manager_error_context>
541
- {
542
- auto barrier = std::make_shared<std::promise<manager_error_context>>();
543
- auto future = barrier->get_future();
544
- create_dataset(
545
- std::move(dataset_name), std::move(bucket_name), options, [barrier](auto ctx) mutable { barrier->set_value({ std::move(ctx) }); });
546
- return future;
593
+ const create_dataset_analytics_options& options) const
594
+ -> std::future<error>
595
+ {
596
+ auto barrier = std::make_shared<std::promise<error>>();
597
+ auto future = barrier->get_future();
598
+ create_dataset(
599
+ std::move(dataset_name), std::move(bucket_name), options, [barrier](auto err) mutable {
600
+ barrier->set_value({ std::move(err) });
601
+ });
602
+ return future;
547
603
  }
548
604
 
549
605
  void
@@ -551,34 +607,40 @@ analytics_index_manager::drop_dataset(std::string dataset_name,
551
607
  const drop_dataset_analytics_options& options,
552
608
  drop_dataset_analytics_handler&& handler) const
553
609
  {
554
- return impl_->drop_dataset(dataset_name, options.build(), std::move(handler));
610
+ return impl_->drop_dataset(dataset_name, options.build(), std::move(handler));
555
611
  }
556
612
 
557
613
  auto
558
- analytics_index_manager::drop_dataset(std::string dataset_name, const drop_dataset_analytics_options& options) const
559
- -> std::future<manager_error_context>
614
+ analytics_index_manager::drop_dataset(std::string dataset_name,
615
+ const drop_dataset_analytics_options& options) const
616
+ -> std::future<error>
560
617
  {
561
- auto barrier = std::make_shared<std::promise<manager_error_context>>();
562
- auto future = barrier->get_future();
563
- drop_dataset(std::move(dataset_name), options, [barrier](auto ctx) mutable { barrier->set_value({ std::move(ctx) }); });
564
- return future;
618
+ auto barrier = std::make_shared<std::promise<error>>();
619
+ auto future = barrier->get_future();
620
+ drop_dataset(std::move(dataset_name), options, [barrier](auto err) mutable {
621
+ barrier->set_value({ std::move(err) });
622
+ });
623
+ return future;
565
624
  }
566
625
 
567
626
  void
568
627
  analytics_index_manager::get_all_datasets(const get_all_datasets_analytics_options& options,
569
628
  get_all_datasets_analytics_handler&& handler) const
570
629
  {
571
- return impl_->get_all_datasets(options.build(), std::move(handler));
630
+ return impl_->get_all_datasets(options.build(), std::move(handler));
572
631
  }
573
632
 
574
633
  auto
575
634
  analytics_index_manager::get_all_datasets(const get_all_datasets_analytics_options& options) const
576
- -> std::future<std::pair<manager_error_context, std::vector<management::analytics_dataset>>>
635
+ -> std::future<std::pair<error, std::vector<management::analytics_dataset>>>
577
636
  {
578
- auto barrier = std::make_shared<std::promise<std::pair<manager_error_context, std::vector<management::analytics_dataset>>>>();
579
- auto future = barrier->get_future();
580
- get_all_datasets(options, [barrier](auto ctx, auto resp) mutable { barrier->set_value({ std::move(ctx), std::move(resp) }); });
581
- return future;
637
+ auto barrier =
638
+ std::make_shared<std::promise<std::pair<error, std::vector<management::analytics_dataset>>>>();
639
+ auto future = barrier->get_future();
640
+ get_all_datasets(options, [barrier](auto err, auto resp) mutable {
641
+ barrier->set_value({ std::move(err), std::move(resp) });
642
+ });
643
+ return future;
582
644
  }
583
645
 
584
646
  void
@@ -588,21 +650,26 @@ analytics_index_manager::create_index(std::string index_name,
588
650
  const create_index_analytics_options& options,
589
651
  create_index_analytics_handler&& handler) const
590
652
  {
591
- return impl_->create_index(index_name, dataset_name, fields, options.build(), std::move(handler));
653
+ return impl_->create_index(index_name, dataset_name, fields, options.build(), std::move(handler));
592
654
  }
593
655
 
594
656
  auto
595
657
  analytics_index_manager::create_index(std::string index_name,
596
658
  std::string dataset_name,
597
659
  std::map<std::string, std::string> fields,
598
- const create_index_analytics_options& options) const -> std::future<manager_error_context>
660
+ const create_index_analytics_options& options) const
661
+ -> std::future<error>
599
662
  {
600
- auto barrier = std::make_shared<std::promise<manager_error_context>>();
601
- auto future = barrier->get_future();
602
- create_index(std::move(index_name), std::move(dataset_name), std::move(fields), options, [barrier](auto ctx) mutable {
603
- barrier->set_value({ std::move(ctx) });
604
- });
605
- return future;
663
+ auto barrier = std::make_shared<std::promise<error>>();
664
+ auto future = barrier->get_future();
665
+ create_index(std::move(index_name),
666
+ std::move(dataset_name),
667
+ std::move(fields),
668
+ options,
669
+ [barrier](auto err) mutable {
670
+ barrier->set_value({ std::move(err) });
671
+ });
672
+ return future;
606
673
  }
607
674
 
608
675
  void
@@ -611,84 +678,101 @@ analytics_index_manager::drop_index(std::string index_name,
611
678
  const drop_index_analytics_options& options,
612
679
  drop_index_analytics_handler&& handler) const
613
680
  {
614
- return impl_->drop_index(index_name, dataset_name, options.build(), std::move(handler));
681
+ return impl_->drop_index(index_name, dataset_name, options.build(), std::move(handler));
615
682
  }
616
683
 
617
684
  auto
618
- analytics_index_manager::drop_index(std::string index_name, std::string dataset_name, const drop_index_analytics_options& options) const
619
- -> std::future<manager_error_context>
685
+ analytics_index_manager::drop_index(std::string index_name,
686
+ std::string dataset_name,
687
+ const drop_index_analytics_options& options) const
688
+ -> std::future<error>
620
689
  {
621
- auto barrier = std::make_shared<std::promise<manager_error_context>>();
622
- auto future = barrier->get_future();
623
- drop_index(
624
- std::move(index_name), std::move(dataset_name), options, [barrier](auto ctx) mutable { barrier->set_value({ std::move(ctx) }); });
625
- return future;
690
+ auto barrier = std::make_shared<std::promise<error>>();
691
+ auto future = barrier->get_future();
692
+ drop_index(std::move(index_name), std::move(dataset_name), options, [barrier](auto err) mutable {
693
+ barrier->set_value({ std::move(err) });
694
+ });
695
+ return future;
626
696
  }
627
697
 
628
698
  void
629
699
  analytics_index_manager::get_all_indexes(const get_all_indexes_analytics_options& options,
630
700
  get_all_indexes_analytics_handler&& handler) const
631
701
  {
632
- return impl_->get_all_indexes(options.build(), std::move(handler));
702
+ return impl_->get_all_indexes(options.build(), std::move(handler));
633
703
  }
634
704
 
635
705
  auto
636
706
  analytics_index_manager::get_all_indexes(const get_all_indexes_analytics_options& options) const
637
- -> std::future<std::pair<manager_error_context, std::vector<management::analytics_index>>>
707
+ -> std::future<std::pair<error, std::vector<management::analytics_index>>>
638
708
  {
639
- auto barrier = std::make_shared<std::promise<std::pair<manager_error_context, std::vector<management::analytics_index>>>>();
640
- auto future = barrier->get_future();
641
- get_all_indexes(options, [barrier](auto ctx, auto resp) mutable { barrier->set_value({ std::move(ctx), std::move(resp) }); });
642
- return future;
709
+ auto barrier =
710
+ std::make_shared<std::promise<std::pair<error, std::vector<management::analytics_index>>>>();
711
+ auto future = barrier->get_future();
712
+ get_all_indexes(options, [barrier](auto err, auto resp) mutable {
713
+ barrier->set_value({ std::move(err), std::move(resp) });
714
+ });
715
+ return future;
643
716
  }
644
717
 
645
718
  void
646
- analytics_index_manager::connect_link(const connect_link_analytics_options& options, connect_link_analytics_handler&& handler) const
719
+ analytics_index_manager::connect_link(const connect_link_analytics_options& options,
720
+ connect_link_analytics_handler&& handler) const
647
721
  {
648
- return impl_->connect_link(options.build(), std::move(handler));
722
+ return impl_->connect_link(options.build(), std::move(handler));
649
723
  }
650
724
 
651
725
  auto
652
- analytics_index_manager::connect_link(const connect_link_analytics_options& options) const -> std::future<manager_error_context>
726
+ analytics_index_manager::connect_link(const connect_link_analytics_options& options) const
727
+ -> std::future<error>
653
728
  {
654
- auto barrier = std::make_shared<std::promise<manager_error_context>>();
655
- auto future = barrier->get_future();
656
- connect_link(options, [barrier](auto ctx) mutable { barrier->set_value({ std::move(ctx) }); });
657
- return future;
729
+ auto barrier = std::make_shared<std::promise<error>>();
730
+ auto future = barrier->get_future();
731
+ connect_link(options, [barrier](auto err) mutable {
732
+ barrier->set_value({ std::move(err) });
733
+ });
734
+ return future;
658
735
  }
659
736
 
660
737
  void
661
738
  analytics_index_manager::disconnect_link(const disconnect_link_analytics_options& options,
662
739
  disconnect_link_analytics_handler&& handler) const
663
740
  {
664
- return impl_->disconnect_link(options.build(), std::move(handler));
741
+ return impl_->disconnect_link(options.build(), std::move(handler));
665
742
  }
666
743
 
667
744
  auto
668
- analytics_index_manager::disconnect_link(const disconnect_link_analytics_options& options) const -> std::future<manager_error_context>
745
+ analytics_index_manager::disconnect_link(const disconnect_link_analytics_options& options) const
746
+ -> std::future<error>
669
747
  {
670
- auto barrier = std::make_shared<std::promise<manager_error_context>>();
671
- auto future = barrier->get_future();
672
- disconnect_link(options, [barrier](auto ctx) mutable { barrier->set_value({ std::move(ctx) }); });
673
- return future;
748
+ auto barrier = std::make_shared<std::promise<error>>();
749
+ auto future = barrier->get_future();
750
+ disconnect_link(options, [barrier](auto err) mutable {
751
+ barrier->set_value({ std::move(err) });
752
+ });
753
+ return future;
674
754
  }
675
755
 
676
756
  void
677
- analytics_index_manager::get_pending_mutations(const get_pending_mutations_analytics_options& options,
678
- get_pending_mutations_analytics_handler&& handler) const
757
+ analytics_index_manager::get_pending_mutations(
758
+ const get_pending_mutations_analytics_options& options,
759
+ get_pending_mutations_analytics_handler&& handler) const
679
760
  {
680
- return impl_->get_pending_mutations(options.build(), std::move(handler));
761
+ return impl_->get_pending_mutations(options.build(), std::move(handler));
681
762
  }
682
763
 
683
764
  auto
684
- analytics_index_manager::get_pending_mutations(const get_pending_mutations_analytics_options& options) const
685
- -> std::future<std::pair<couchbase::manager_error_context, std::map<std::string, std::map<std::string, std::int64_t>>>>
765
+ analytics_index_manager::get_pending_mutations(
766
+ const get_pending_mutations_analytics_options& options) const
767
+ -> std::future<std::pair<error, std::map<std::string, std::map<std::string, std::int64_t>>>>
686
768
  {
687
- auto barrier = std::make_shared<
688
- std::promise<std::pair<couchbase::manager_error_context, std::map<std::string, std::map<std::string, std::int64_t>>>>>();
689
- auto future = barrier->get_future();
690
- get_pending_mutations(options, [barrier](auto ctx, auto resp) mutable { barrier->set_value({ std::move(ctx), std::move(resp) }); });
691
- return future;
769
+ auto barrier = std::make_shared<
770
+ std::promise<std::pair<error, std::map<std::string, std::map<std::string, std::int64_t>>>>>();
771
+ auto future = barrier->get_future();
772
+ get_pending_mutations(options, [barrier](auto err, auto resp) mutable {
773
+ barrier->set_value({ std::move(err), std::move(resp) });
774
+ });
775
+ return future;
692
776
  }
693
777
 
694
778
  void
@@ -696,17 +780,20 @@ analytics_index_manager::create_link(const management::analytics_link& link,
696
780
  const create_link_analytics_options& options,
697
781
  create_link_analytics_handler&& handler) const
698
782
  {
699
- return impl_->create_link(link, options.build(), std::move(handler));
783
+ return impl_->create_link(link, options.build(), std::move(handler));
700
784
  }
701
785
 
702
786
  auto
703
- analytics_index_manager::create_link(const management::analytics_link& link, const create_link_analytics_options& options) const
704
- -> std::future<manager_error_context>
787
+ analytics_index_manager::create_link(const management::analytics_link& link,
788
+ const create_link_analytics_options& options) const
789
+ -> std::future<error>
705
790
  {
706
- auto barrier = std::make_shared<std::promise<manager_error_context>>();
707
- auto future = barrier->get_future();
708
- create_link(link, options, [barrier](auto ctx) mutable { barrier->set_value({ std::move(ctx) }); });
709
- return future;
791
+ auto barrier = std::make_shared<std::promise<error>>();
792
+ auto future = barrier->get_future();
793
+ create_link(link, options, [barrier](auto err) mutable {
794
+ barrier->set_value({ std::move(err) });
795
+ });
796
+ return future;
710
797
  }
711
798
 
712
799
  void
@@ -714,17 +801,20 @@ analytics_index_manager::replace_link(const management::analytics_link& link,
714
801
  const replace_link_analytics_options& options,
715
802
  replace_link_analytics_handler&& handler) const
716
803
  {
717
- return impl_->replace_link(link, options.build(), std::move(handler));
804
+ return impl_->replace_link(link, options.build(), std::move(handler));
718
805
  }
719
806
 
720
807
  auto
721
- analytics_index_manager::replace_link(const management::analytics_link& link, const replace_link_analytics_options& options) const
722
- -> std::future<manager_error_context>
808
+ analytics_index_manager::replace_link(const management::analytics_link& link,
809
+ const replace_link_analytics_options& options) const
810
+ -> std::future<error>
723
811
  {
724
- auto barrier = std::make_shared<std::promise<manager_error_context>>();
725
- auto future = barrier->get_future();
726
- replace_link(link, options, [barrier](auto ctx) mutable { barrier->set_value({ std::move(ctx) }); });
727
- return future;
812
+ auto barrier = std::make_shared<std::promise<error>>();
813
+ auto future = barrier->get_future();
814
+ replace_link(link, options, [barrier](auto err) mutable {
815
+ barrier->set_value({ std::move(err) });
816
+ });
817
+ return future;
728
818
  }
729
819
 
730
820
  void
@@ -733,35 +823,41 @@ analytics_index_manager::drop_link(std::string link_name,
733
823
  const drop_link_analytics_options& options,
734
824
  drop_link_analytics_handler&& handler) const
735
825
  {
736
- return impl_->drop_link(link_name, dataverse_name, options.build(), std::move(handler));
826
+ return impl_->drop_link(link_name, dataverse_name, options.build(), std::move(handler));
737
827
  }
738
828
 
739
829
  auto
740
- analytics_index_manager::drop_link(std::string link_name, std::string dataverse_name, const drop_link_analytics_options& options) const
741
- -> std::future<manager_error_context>
830
+ analytics_index_manager::drop_link(std::string link_name,
831
+ std::string dataverse_name,
832
+ const drop_link_analytics_options& options) const
833
+ -> std::future<error>
742
834
  {
743
- auto barrier = std::make_shared<std::promise<manager_error_context>>();
744
- auto future = barrier->get_future();
745
- drop_link(
746
- std::move(link_name), std::move(dataverse_name), options, [barrier](auto ctx) mutable { barrier->set_value({ std::move(ctx) }); });
747
- return future;
835
+ auto barrier = std::make_shared<std::promise<error>>();
836
+ auto future = barrier->get_future();
837
+ drop_link(std::move(link_name), std::move(dataverse_name), options, [barrier](auto err) mutable {
838
+ barrier->set_value({ std::move(err) });
839
+ });
840
+ return future;
748
841
  }
749
842
 
750
843
  void
751
- analytics_index_manager::get_links(const get_links_analytics_options& options, get_links_analytics_handler&& handler) const
844
+ analytics_index_manager::get_links(const get_links_analytics_options& options,
845
+ get_links_analytics_handler&& handler) const
752
846
  {
753
- return impl_->get_links(options.build(), std::move(handler));
847
+ return impl_->get_links(options.build(), std::move(handler));
754
848
  }
755
849
 
756
850
  auto
757
851
  analytics_index_manager::get_links(const get_links_analytics_options& options) const
758
- -> std::future<std::pair<manager_error_context, std::vector<std::unique_ptr<management::analytics_link>>>>
852
+ -> std::future<std::pair<error, std::vector<std::unique_ptr<management::analytics_link>>>>
759
853
  {
760
- auto barrier =
761
- std::make_shared<std::promise<std::pair<manager_error_context, std::vector<std::unique_ptr<management::analytics_link>>>>>();
762
- auto future = barrier->get_future();
763
- get_links(options, [barrier](auto ctx, auto resp) mutable { barrier->set_value({ std::move(ctx), std::move(resp) }); });
764
- return future;
854
+ auto barrier = std::make_shared<
855
+ std::promise<std::pair<error, std::vector<std::unique_ptr<management::analytics_link>>>>>();
856
+ auto future = barrier->get_future();
857
+ get_links(options, [barrier](auto err, auto resp) mutable {
858
+ barrier->set_value({ std::move(err), std::move(resp) });
859
+ });
860
+ return future;
765
861
  }
766
862
 
767
863
  management::analytics_link::analytics_link(std::string name, std::string dataverse_name)
@@ -770,12 +866,13 @@ management::analytics_link::analytics_link(std::string name, std::string dataver
770
866
  {
771
867
  }
772
868
 
773
- management::couchbase_remote_analytics_link::couchbase_remote_analytics_link(std::string name,
774
- std::string dataverse_name,
775
- std::string hostname,
776
- couchbase_analytics_encryption_settings encryption,
777
- std::optional<std::string> username,
778
- std::optional<std::string> password)
869
+ management::couchbase_remote_analytics_link::couchbase_remote_analytics_link(
870
+ std::string name,
871
+ std::string dataverse_name,
872
+ std::string hostname,
873
+ couchbase_analytics_encryption_settings encryption,
874
+ std::optional<std::string> username,
875
+ std::optional<std::string> password)
779
876
  : analytics_link(std::move(name), std::move(dataverse_name))
780
877
  , hostname(std::move(hostname))
781
878
  , encryption(std::move(encryption))
@@ -784,13 +881,14 @@ management::couchbase_remote_analytics_link::couchbase_remote_analytics_link(std
784
881
  {
785
882
  }
786
883
 
787
- management::s3_external_analytics_link::s3_external_analytics_link(std::string name,
788
- std::string dataverse_name,
789
- std::string access_key_id,
790
- std::string secret_access_key,
791
- std::string region,
792
- std::optional<std::string> session_token,
793
- std::optional<std::string> service_endpoint)
884
+ management::s3_external_analytics_link::s3_external_analytics_link(
885
+ std::string name,
886
+ std::string dataverse_name,
887
+ std::string access_key_id,
888
+ std::string secret_access_key,
889
+ std::string region,
890
+ std::optional<std::string> session_token,
891
+ std::optional<std::string> service_endpoint)
794
892
  : analytics_link(std::move(name), std::move(dataverse_name))
795
893
  , access_key_id(std::move(access_key_id))
796
894
  , secret_access_key(std::move(secret_access_key))
@@ -800,14 +898,15 @@ management::s3_external_analytics_link::s3_external_analytics_link(std::string n
800
898
  {
801
899
  }
802
900
 
803
- management::azure_blob_external_analytics_link::azure_blob_external_analytics_link(std::string name,
804
- std::string dataverse_name,
805
- std::optional<std::string> connection_string,
806
- std::optional<std::string> account_name,
807
- std::optional<std::string> account_key,
808
- std::optional<std::string> shared_access_signature,
809
- std::optional<std::string> blob_endpoint,
810
- std::optional<std::string> endpoint_suffix)
901
+ management::azure_blob_external_analytics_link::azure_blob_external_analytics_link(
902
+ std::string name,
903
+ std::string dataverse_name,
904
+ std::optional<std::string> connection_string,
905
+ std::optional<std::string> account_name,
906
+ std::optional<std::string> account_key,
907
+ std::optional<std::string> shared_access_signature,
908
+ std::optional<std::string> blob_endpoint,
909
+ std::optional<std::string> endpoint_suffix)
811
910
  : analytics_link(std::move(name), std::move(dataverse_name))
812
911
  , connection_string(std::move(connection_string))
813
912
  , account_name(std::move(account_name))