Couchbase C++ SDK 1.0.1 (rev. 58d46d7)
Loading...
Searching...
No Matches
analytics_link.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2/*
3 * Copyright 2023-present Couchbase, Inc.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#pragma once
19
20#include <optional>
21#include <string>
22
24{
25
43
65
67 std::string name;
68 std::string dataverse_name;
69
70 virtual ~analytics_link() = default;
71
77 [[nodiscard]] virtual auto link_type() const -> analytics_link_type = 0;
78
79 analytics_link() = default;
80 analytics_link(std::string name, std::string dataverse_name);
81};
82
88
92 std::optional<std::string> certificate{};
93
98 std::optional<std::string> client_certificate{};
99
104 std::optional<std::string> client_key{};
105};
106
108 std::string hostname;
110 std::optional<std::string> username{};
111 std::optional<std::string> password{};
112
113 [[nodiscard]] auto link_type() const -> analytics_link_type override
114 {
115 return analytics_link_type::couchbase_remote;
116 }
117
125
145 std::string dataverse_name,
146 std::string hostname,
148 std::optional<std::string> username = {},
149 std::optional<std::string> password = {});
150};
151
153 std::string access_key_id;
154 std::string secret_access_key;
155 std::string region;
156 std::optional<std::string> session_token{};
157 std::optional<std::string> service_endpoint{};
158
159 [[nodiscard]] auto link_type() const -> analytics_link_type override
160 {
161 return analytics_link_type::s3_external;
162 }
163
171
187 std::string dataverse_name,
188 std::string access_key_id,
189 std::string secret_access_key,
190 std::string region,
191 std::optional<std::string> session_token = {},
192 std::optional<std::string> service_endpoint = {});
193};
194
196 std::optional<std::string> connection_string{};
197 std::optional<std::string> account_name{};
198 std::optional<std::string> account_key{};
199 std::optional<std::string> shared_access_signature{};
200 std::optional<std::string> blob_endpoint{};
201 std::optional<std::string> endpoint_suffix{};
202
203 [[nodiscard]] auto link_type() const -> analytics_link_type override
204 {
205 return analytics_link_type::azure_external;
206 }
207
215
234 std::string dataverse_name,
235 std::optional<std::string> connection_string = {},
236 std::optional<std::string> account_name = {},
237 std::optional<std::string> account_key = {},
238 std::optional<std::string> shared_access_signature = {},
239 std::optional<std::string> blob_endpoint = {},
240 std::optional<std::string> endpoint_suffix = {});
241};
242
243} // namespace couchbase::management
Definition analytics_dataset.hxx:23
analytics_encryption_level
Definition analytics_link.hxx:44
@ full
Connect to the remote Couchbase cluster using a channel secured by TLS.
Definition analytics_link.hxx:63
@ half
Connect to the remote Couchbase cluster using an unsecured channel.
Definition analytics_link.hxx:55
@ none
Connect to the remote Couchbase cluster using an unsecured channel.
Definition analytics_link.hxx:49
analytics_link_type
Definition analytics_link.hxx:26
@ couchbase_remote
A remote analytics link that uses a Couchbase data service that is not part of the same cluster as th...
Definition analytics_link.hxx:41
@ s3_external
S3 external analytics link.
Definition analytics_link.hxx:30
@ azure_external
Azure external analytics link.
Definition analytics_link.hxx:35