hanzo-client 8.5.156

Generated client for the Hanzo API — every service, one crate.
Documentation
/*
 * Hanzo Cloud API
 *
 * The Hanzo Cloud API as a customer calls it: every operation under /v1/ except the operator's admin product, relay routes, legacy spellings and capabilities still reached by flag. Tagged by product: the first path segment after /v1/.
 *
 * The version of the OpenAPI document: v1
 * 
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct McpListing {
    /// Description is the publisher's one-line summary.
    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    /// Featured puts the listing on the front of the shelf. Curation.
    #[serde(rename = "featured", skip_serializing_if = "Option::is_none")]
    pub featured: Option<bool>,
    /// Hidden keeps the listing out of the org-visible catalog. Curation: a sync never changes it. Only a SuperAdmin sets it, and only a SuperAdmin sees a hidden entry listed.
    #[serde(rename = "hidden", skip_serializing_if = "Option::is_none")]
    pub hidden: Option<bool>,
    /// ID addresses the listing in a URL. It is the reverse-DNS NAME with its one slash written as an underscore — reversible, because a namespace never contains an underscore — so the id is readable and stable rather than a hash that means nothing to whoever reads a link.
    #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
    pub id: Option<String>,
    /// Logo is the brand mark to render for the listing — the publisher's icon when the entry carries one, or the one an admin set. Curation.
    #[serde(rename = "logo", skip_serializing_if = "Option::is_none")]
    pub logo: Option<String>,
    /// Name is the publisher's reverse-DNS name, e.g. \"com.stripe/mcp\".
    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    /// Official is whether this is the vendor's OWN server rather than someone else's copy of it. Derived on every sync (see isOfficial) until a SuperAdmin sets it explicitly, after which the admin's answer stands.
    #[serde(rename = "official", skip_serializing_if = "Option::is_none")]
    pub official: Option<bool>,
    /// Packages are the runnable package forms — npm, pypi, oci — each with the runtime that launches it and the transport it then speaks.
    #[serde(rename = "packages", skip_serializing_if = "Option::is_none")]
    pub packages: Option<Vec<models::McpPackage>>,
    /// Registry is the upstream this row was synced from.
    #[serde(rename = "registry", skip_serializing_if = "Option::is_none")]
    pub registry: Option<String>,
    /// Remotes are the hosted endpoints the publisher serves the server at.
    #[serde(rename = "remotes", skip_serializing_if = "Option::is_none")]
    pub remotes: Option<Vec<models::McpRemote>>,
    /// Repo is the source repository URL, when the entry names one.
    #[serde(rename = "repo", skip_serializing_if = "Option::is_none")]
    pub repo: Option<String>,
    /// Site is the project's homepage, when the entry names one.
    #[serde(rename = "site", skip_serializing_if = "Option::is_none")]
    pub site: Option<String>,
    /// Synced is when this row was last confirmed against upstream, Unix seconds.
    #[serde(rename = "synced", skip_serializing_if = "Option::is_none")]
    pub synced: Option<i32>,
    /// Title is the human-readable display name, when the entry carries one.
    #[serde(rename = "title", skip_serializing_if = "Option::is_none")]
    pub title: Option<String>,
    /// Transports are the distinct transports this server can be reached over, sorted: some of \"stdio\", \"streamable-http\", \"sse\". A listing with \"streamable-http\" is one an org can enable here and now; a listing that is only \"stdio\" needs a process to run it.
    #[serde(rename = "transports", skip_serializing_if = "Option::is_none")]
    pub transports: Option<Vec<String>>,
    /// Vendor is the namespace half of Name — the publisher, e.g. \"com.stripe\".
    #[serde(rename = "vendor", skip_serializing_if = "Option::is_none")]
    pub vendor: Option<String>,
    /// Version is the published version of this listing.
    #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
    pub version: Option<String>,
}

impl McpListing {
    pub fn new() -> McpListing {
        McpListing {
            description: None,
            featured: None,
            hidden: None,
            id: None,
            logo: None,
            name: None,
            official: None,
            packages: None,
            registry: None,
            remotes: None,
            repo: None,
            site: None,
            synced: None,
            title: None,
            transports: None,
            vendor: None,
            version: None,
        }
    }
}