ocm-types 0.2.1

Types required to implement the OpenCloudMesh filesharing protocol
Documentation
// SPDX-FileCopyrightText: 2026 Matthias Kraus <info@opengeomesh.org>
//
// SPDX-License-Identifier: LGPL-3.0-or-later

use serde::{Deserialize, Serialize};

use super::AccessType;
use super::default_access_types;

#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SshProperties {
    /// The type of access being granted to the remote resource.
    /// If omitted, it defaults to `['remote']`.
    #[serde(
        skip_serializing_if = "Vec::is_empty",
        default = "default_access_types"
    )]
    pub access_types: Vec<AccessType>,
    /// The full address to be used for ssh or scp access, in the 
    /// `username@host.fqdn:port/resource/path`, where authentication 
    /// expected to take place via public/private key.
    pub uri: String,
}