From 619414d4f1970a3bedf2ec4e5497350d37d3fad2 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Thu, 7 Mar 2024 10:45:33 +0100 Subject: [PATCH] proxmox-acme: add api-types feature Because AccountData is exposed via our API (currently as type Object). Signed-off-by: Dietmar Maurer --- proxmox-acme/Cargo.toml | 3 +++ proxmox-acme/src/account.rs | 7 +++++++ proxmox-acme/src/eab.rs | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/proxmox-acme/Cargo.toml b/proxmox-acme/Cargo.toml index 8f8f6e1c..857c61d9 100644 --- a/proxmox-acme/Cargo.toml +++ b/proxmox-acme/Cargo.toml @@ -19,6 +19,8 @@ openssl.workspace = true # For the client native-tls = { workspace = true, optional = true } +proxmox-schema = { workspace = true, optional = true, features = [ "api-macro", "api-types" ] } + [dependencies.ureq] optional = true version = "2.4" @@ -27,6 +29,7 @@ features = [ "native-tls", "gzip" ] [features] default = [] +api-types = [ "dep:proxmox-schema" ] client = ["ureq", "native-tls"] [dev-dependencies] diff --git a/proxmox-acme/src/account.rs b/proxmox-acme/src/account.rs index 9f3af264..e244c092 100644 --- a/proxmox-acme/src/account.rs +++ b/proxmox-acme/src/account.rs @@ -279,6 +279,7 @@ impl CertificateRevocation<'_> { } /// Status of an ACME account. +#[cfg_attr(feature="api-types", proxmox_schema::api())] #[derive(Clone, Copy, Eq, PartialEq, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub enum AccountStatus { @@ -309,6 +310,12 @@ impl AccountStatus { } } +#[cfg_attr(feature="api-types", proxmox_schema::api( + properties: { + extra: { type: Object, properties: {}, additional_properties: true }, + contact: { type: Array, items: { type: String, description: "Contact Info." }} + } +))] /// ACME Account data. This is the part of the account returned from and possibly sent to the ACME /// provider. Some fields may be uptdated by the user via a request to the account location, others /// may not be changed. diff --git a/proxmox-acme/src/eab.rs b/proxmox-acme/src/eab.rs index a4c06424..f006a3f2 100644 --- a/proxmox-acme/src/eab.rs +++ b/proxmox-acme/src/eab.rs @@ -14,11 +14,16 @@ struct Protected { kid: String, } +#[cfg_attr(feature="api-types", proxmox_schema::api())] +/// External Account Bindings #[derive(Debug, Serialize, Deserialize, Clone)] #[serde(rename_all = "camelCase")] pub struct ExternalAccountBinding { + /// JOSE Header (see RFC 7515) protected: String, + /// Payload payload: String, + /// HMAC signature signature: String, } -- 2.39.2