CCF
Loading...
Searching...
No Matches
base_endpoint_registry.h
Go to the documentation of this file.
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the Apache 2.0 License.
3#pragma once
4
5#include "ccf/crypto/pem.h"
6#include "ccf/ds/quote_info.h"
9#include "ccf/node_context.h"
10#include "ccf/tx_status.h"
11
12namespace ccf
13{
17 enum class ApiResult
18 {
20 OK = 0,
33 };
34
35 constexpr char const* api_result_to_str(ApiResult result)
36 {
37 switch (result)
38 {
39 case ApiResult::OK:
40 {
41 return "OK";
42 }
44 {
45 return "Uninitialised";
46 }
48 {
49 return "InvalidArgs";
50 }
52 {
53 return "NotFound";
54 }
56 {
57 return "InternalError";
58 }
59 default:
60 {
61 return "Unhandled ApiResult";
62 }
63 }
64 }
65
79
80 constexpr char const* invalid_args_reason_to_str(InvalidArgsReason reason)
81 {
82 switch (reason)
83 {
85 {
86 return "NoReason";
87 }
89 {
90 return "ViewSmallerThanOne";
91 }
93 {
94 return "ActionAlreadyApplied";
95 }
97 {
98 return "StaleActionCreatedTimestamp";
99 }
100 default:
101 {
102 return "Unhandled InvalidArgsReason";
103 }
104 }
105 }
106
121 {
122 protected:
124
125 public:
127 const std::string& method_prefix_, ccf::AbstractNodeContext& context_);
128
138 std::vector<ccf::TxID>& history, ccf::View since = 1);
139
149 std::vector<ccf::TxID>& history,
150 ccf::View since,
151 ccf::InvalidArgsReason& reason);
152
176
180
192 const std::string& title,
193 const std::string& description,
194 const std::string& document_version,
195 nlohmann::json& document);
196
200 ccf::kv::ReadOnlyTx& tx, QuoteInfo& quote_info);
201
205
210 ccf::kv::ReadOnlyTx& tx, std::map<NodeId, QuoteInfo>& quotes);
211
215
220 const UserId& user_id,
221 nlohmann::json& user_data);
222
227 const MemberId& member_id,
228 nlohmann::json& member_data);
229
234 const UserId& user_id,
235 ccf::crypto::Pem& user_cert_pem);
236
241 const MemberId& member_id,
242 ccf::crypto::Pem& member_cert_pem);
243
246 ApiResult get_untrusted_host_time_v1(::timespec& time);
247 };
248}
Definition base_endpoint_registry.h:121
ApiResult get_user_data_v1(ccf::kv::ReadOnlyTx &tx, const UserId &user_id, nlohmann::json &user_data)
Definition base_endpoint_registry.cpp:225
ApiResult get_view_history_v1(std::vector< ccf::TxID > &history, ccf::View since=1)
Definition base_endpoint_registry.cpp:57
ccf::AbstractNodeContext & context
Definition base_endpoint_registry.h:123
ApiResult get_member_data_v1(ccf::kv::ReadOnlyTx &tx, const MemberId &member_id, nlohmann::json &member_data)
Definition base_endpoint_registry.cpp:247
ApiResult get_status_for_txid_v1(ccf::View view, ccf::SeqNo seqno, ccf::TxStatus &tx_status)
Definition base_endpoint_registry.cpp:64
ApiResult get_view_for_seqno_v1(ccf::SeqNo seqno, ccf::View &view)
Definition base_endpoint_registry.cpp:201
ApiResult get_last_committed_txid_v1(ccf::View &view, ccf::SeqNo &seqno)
Definition base_endpoint_registry.cpp:92
ApiResult get_untrusted_host_time_v1(::timespec &time)
Definition base_endpoint_registry.cpp:319
ApiResult get_quote_for_this_node_v1(ccf::kv::ReadOnlyTx &tx, QuoteInfo &quote_info)
Definition base_endpoint_registry.cpp:137
ApiResult get_user_cert_v1(ccf::kv::ReadOnlyTx &tx, const UserId &user_id, ccf::crypto::Pem &user_cert_pem)
Definition base_endpoint_registry.cpp:271
ApiResult generate_openapi_document_v1(ccf::kv::ReadOnlyTx &tx, const std::string &title, const std::string &description, const std::string &document_version, nlohmann::json &document)
Definition base_endpoint_registry.cpp:116
ApiResult get_view_history_v2(std::vector< ccf::TxID > &history, ccf::View since, ccf::InvalidArgsReason &reason)
Definition base_endpoint_registry.cpp:19
ApiResult get_quotes_for_all_trusted_nodes_v1(ccf::kv::ReadOnlyTx &tx, std::map< NodeId, QuoteInfo > &quotes)
Definition base_endpoint_registry.cpp:176
ApiResult get_id_for_this_node_v1(NodeId &node_id)
Definition base_endpoint_registry.cpp:162
ApiResult get_member_cert_v1(ccf::kv::ReadOnlyTx &tx, const MemberId &member_id, ccf::crypto::Pem &member_cert_pem)
Definition base_endpoint_registry.cpp:295
Definition pem.h:18
Definition endpoint_registry.h:117
ccf::kv::TxHistory * history
Definition endpoint_registry.h:165
Definition tx.h:160
Definition app_interface.h:14
constexpr char const * api_result_to_str(ApiResult result)
Definition base_endpoint_registry.h:35
view
Definition signatures.h:54
constexpr char const * invalid_args_reason_to_str(InvalidArgsReason reason)
Definition base_endpoint_registry.h:80
InvalidArgsReason
Definition base_endpoint_registry.h:70
TxStatus
Definition tx_status.h:13
seqno
Definition signatures.h:54
uint64_t View
Definition tx_id.h:23
ApiResult
Definition base_endpoint_registry.h:18
uint64_t SeqNo
Definition tx_id.h:36
Definition node_context.h:12
Describes a quote (attestation) from trusted hardware.
Definition quote_info.h:26