81 return bytes_.empty();
83 std::span<const std::uint8_t>
bytes() const noexcept {
89 std::vector<
std::uint8_t> bytes_;
95 std::span<const
std::uint8_t> bytes,
96 std::chrono::system_clock::time_point now =
std::chrono::system_clock::now(),
109 std::chrono::system_clock::time_point now = std::chrono::system_clock::now(),
Definition control_host_bootstrap.hpp:70
ControlHostBootstrapBytes(const ControlHostBootstrapBytes &)=delete
std::span< const std::uint8_t > bytes() const noexcept
Definition control_host_bootstrap.hpp:83
ControlHostBootstrapBytes(std::vector< std::uint8_t > bytes)
ControlHostBootstrapBytes()=default
~ControlHostBootstrapBytes()
ControlHostBootstrapBytes(ControlHostBootstrapBytes &&) noexcept
ControlHostBootstrapBytes & operator=(const ControlHostBootstrapBytes &)=delete
bool empty() const noexcept
Definition control_host_bootstrap.hpp:80
One-shot inherited authority material.
Definition control_host_bootstrap.hpp:46
ControlHostBootstrapRecord(const ControlHostBootstrapRecord &)=delete
ControlHostBootstrapRecord()=default
std::uint32_t version
Definition control_host_bootstrap.hpp:49
std::string admission_id
Exactly one credential form is valid: admission plus registration, or enrollment alone.
Definition control_host_bootstrap.hpp:55
std::string schema
Definition control_host_bootstrap.hpp:48
std::string enrollment_id
Definition control_host_bootstrap.hpp:57
ControlPeerExpectation expected_broker
Definition control_host_bootstrap.hpp:51
ControlRegistrationId registration_id
Definition control_host_bootstrap.hpp:56
std::int64_t expires_at_unix_ms
Definition control_host_bootstrap.hpp:58
ControlHostBootstrapRecord(ControlHostBootstrapRecord &&) noexcept
ControlHostBootstrapRecord & operator=(const ControlHostBootstrapRecord &)=delete
~ControlHostBootstrapRecord()
std::filesystem::path endpoint_path
Definition control_host_bootstrap.hpp:50
Definition agent_context.hpp:7
ControlHostBootstrapHandle inherited_control_host_bootstrap_handle() noexcept
Claims the private inherited standard-input handle.
ControlHostBootstrapBytes encode_control_host_bootstrap(const ControlHostBootstrapRecord &record)
constexpr std::size_t kControlHostBootstrapMaximumBytes
Definition control_host_bootstrap.hpp:25
std::optional< ControlHostBootstrapRecord > decode_control_host_bootstrap(std::span< const std::uint8_t > bytes, std::chrono::system_clock::time_point now=std::chrono::system_clock::now(), ControlHostBootstrapDiagnostics *diagnostics=nullptr)
constexpr std::string_view kControlHostBootstrapSchema
Definition control_host_bootstrap.hpp:24
@ Expired
Definition audit.hpp:68
@ Accepted
Definition audit.hpp:65
int ControlHostBootstrapHandle
Definition control_host_bootstrap.hpp:102
ControlHostBootstrapStatus
Definition control_host_bootstrap.hpp:27
@ UnsupportedVersion
Definition control_host_bootstrap.hpp:33
@ Truncated
Definition control_host_bootstrap.hpp:30
@ Oversize
Definition control_host_bootstrap.hpp:31
@ ReadFailed
Definition control_host_bootstrap.hpp:35
@ InvalidRecord
Definition control_host_bootstrap.hpp:32
@ Absent
Definition control_host_bootstrap.hpp:29
std::optional< ControlHostBootstrapRecord > read_control_host_bootstrap(ControlHostBootstrapHandle handle, std::chrono::milliseconds timeout=std::chrono::seconds(3), std::chrono::system_clock::time_point now=std::chrono::system_clock::now(), ControlHostBootstrapDiagnostics *diagnostics=nullptr)
Reads one bounded document to EOF, closes the inherited handle, and wipes the temporary encoded bytes...
constexpr std::uint32_t kControlHostBootstrapVersion
Transport primitives for a record already minted by broker-owned enrollment.
Definition control_host_bootstrap.hpp:23
Definition control_host_bootstrap.hpp:38
std::string explanation
Definition control_host_bootstrap.hpp:40
ControlHostBootstrapStatus status
Definition control_host_bootstrap.hpp:39
Exact broker-owned peer expectation.
Definition control_peer.hpp:12
Definition control_identity.hpp:36