45 static Result<Endpoint> Make(HttpMethod method, std::string_view path);
52 static Result<Endpoint> FromString(std::string_view str);
55 constexpr HttpMethod
method()
const {
return method_; }
58 std::string_view
path()
const {
return path_; }
61 std::string ToString()
const;
63 constexpr bool operator==(
const Endpoint& other)
const {
64 return method_ == other.method_ && path_ == other.path_;
68 static Endpoint ListNamespaces() {
69 return {HttpMethod::kGet,
"/v1/{prefix}/namespaces"};
71 static Endpoint GetNamespaceProperties() {
72 return {HttpMethod::kGet,
"/v1/{prefix}/namespaces/{namespace}"};
74 static Endpoint NamespaceExists() {
75 return {HttpMethod::kHead,
"/v1/{prefix}/namespaces/{namespace}"};
77 static Endpoint CreateNamespace() {
78 return {HttpMethod::kPost,
"/v1/{prefix}/namespaces"};
80 static Endpoint UpdateNamespace() {
81 return {HttpMethod::kPost,
"/v1/{prefix}/namespaces/{namespace}/properties"};
83 static Endpoint DropNamespace() {
84 return {HttpMethod::kDelete,
"/v1/{prefix}/namespaces/{namespace}"};
88 static Endpoint ListTables() {
89 return {HttpMethod::kGet,
"/v1/{prefix}/namespaces/{namespace}/tables"};
91 static Endpoint LoadTable() {
92 return {HttpMethod::kGet,
"/v1/{prefix}/namespaces/{namespace}/tables/{table}"};
94 static Endpoint TableExists() {
95 return {HttpMethod::kHead,
"/v1/{prefix}/namespaces/{namespace}/tables/{table}"};
97 static Endpoint CreateTable() {
98 return {HttpMethod::kPost,
"/v1/{prefix}/namespaces/{namespace}/tables"};
100 static Endpoint UpdateTable() {
101 return {HttpMethod::kPost,
"/v1/{prefix}/namespaces/{namespace}/tables/{table}"};
103 static Endpoint DeleteTable() {
104 return {HttpMethod::kDelete,
"/v1/{prefix}/namespaces/{namespace}/tables/{table}"};
106 static Endpoint RenameTable() {
107 return {HttpMethod::kPost,
"/v1/{prefix}/tables/rename"};
109 static Endpoint RegisterTable() {
110 return {HttpMethod::kPost,
"/v1/{prefix}/namespaces/{namespace}/register"};
112 static Endpoint ReportMetrics() {
113 return {HttpMethod::kPost,
114 "/v1/{prefix}/namespaces/{namespace}/tables/{table}/metrics"};
116 static Endpoint TableCredentials() {
117 return {HttpMethod::kGet,
118 "/v1/{prefix}/namespaces/{namespace}/tables/{table}/credentials"};
122 static Endpoint CommitTransaction() {
123 return {HttpMethod::kPost,
"/v1/{prefix}/transactions/commit"};
127 static Endpoint PlanTableScan() {
128 return {HttpMethod::kPost,
"/v1/{prefix}/namespaces/{namespace}/tables/{table}/plan"};
131 static Endpoint FetchPlanningResult() {
132 return {HttpMethod::kGet,
133 "/v1/{prefix}/namespaces/{namespace}/tables/{table}/plan/{plan-id}"};
136 static Endpoint CancelPlanning() {
137 return {HttpMethod::kDelete,
138 "/v1/{prefix}/namespaces/{namespace}/tables/{table}/plan/{plan-id}"};
141 static Endpoint FetchScanTasks() {
142 return {HttpMethod::kPost,
143 "/v1/{prefix}/namespaces/{namespace}/tables/{table}/tasks"};
147 Endpoint(HttpMethod method, std::string_view path) : method_(method), path_(path) {}