use heapless::LinearMap;
use serde::{Deserialize, Serialize};
#[derive(Debug, PartialEq, Deserialize)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct ErrorResponse<'a> {
#[serde(rename = "statusCode")]
pub status_code: u16,
#[serde(rename = "errorCode")]
pub error_code: &'a str,
#[serde(rename = "errorMessage")]
pub error_message: &'a str,
}
#[derive(Debug, PartialEq, Serialize)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CreateCertificateFromCsrRequest<'a> {
#[serde(rename = "certificateSigningRequest")]
pub certificate_signing_request: &'a str,
}
#[derive(Debug, PartialEq, Deserialize)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CreateCertificateFromCsrResponse<'a> {
#[serde(rename = "certificateOwnershipToken")]
pub certificate_ownership_token: &'a str,
#[serde(rename = "certificateId")]
pub certificate_id: &'a str,
#[serde(rename = "certificatePem")]
pub certificate_pem: &'a str,
}
#[derive(Debug, PartialEq, Serialize)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CreateKeysAndCertificateRequest;
#[derive(Debug, PartialEq, Deserialize)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CreateKeysAndCertificateResponse<'a> {
#[serde(rename = "certificateId")]
pub certificate_id: &'a str,
#[serde(rename = "certificatePem")]
pub certificate_pem: &'a str,
#[serde(rename = "privateKey")]
pub private_key: &'a str,
#[serde(rename = "certificateOwnershipToken")]
pub certificate_ownership_token: &'a str,
}
#[derive(Debug, PartialEq, Serialize)]
pub struct RegisterThingRequest<'a, const P: usize> {
#[serde(rename = "certificateOwnershipToken")]
pub certificate_ownership_token: &'a str,
#[serde(rename = "parameters")]
pub parameters: Option<LinearMap<&'a str, &'a str, P>>,
}
#[derive(Debug, PartialEq, Deserialize)]
pub struct RegisterThingResponse<'a, const P: usize> {
#[serde(rename = "deviceConfiguration")]
pub device_configuration: LinearMap<&'a str, &'a str, P>,
#[serde(rename = "thingName")]
pub thing_name: &'a str,
}