/*
* 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 ReferenceSource {
/// AsOf is when this publisher was current, RFC 3339.
#[serde(rename = "asOf", skip_serializing_if = "Option::is_none")]
pub as_of: Option<String>,
/// Basis is the KIND of permission this publisher's data reaches you under: licence (an explicit grant), registry (the registry of record publishing for anyone to consult), operator (an operator's own machine-readable statement about its own network, published for third parties to filter by — not a licence, and not claimed as one), own (computed here), or none (nothing reaches you: the membership is held by the component that screens against it). It is on the wire so the licence position is an audit you can run.
#[serde(rename = "basis", skip_serializing_if = "Option::is_none")]
pub basis: Option<String>,
/// Keys is how many members this publisher contributed.
#[serde(rename = "keys", skip_serializing_if = "Option::is_none")]
pub keys: Option<i32>,
/// Origin is exactly where it was taken from, so it can be taken again.
#[serde(rename = "origin", skip_serializing_if = "Option::is_none")]
pub origin: Option<String>,
/// Refusal is why this publisher's last take failed, if it did. The set keeps its previous version of this source and ages out visibly rather than silently shrinking.
#[serde(rename = "refusal", skip_serializing_if = "Option::is_none")]
pub refusal: Option<String>,
/// Source is the publisher.
#[serde(rename = "source", skip_serializing_if = "Option::is_none")]
pub source: Option<String>,
/// Terms is the CITATION that basis points at — the licence identifier, the registry, or the operator publication. A source with no stated terms is not in the catalog.
#[serde(rename = "terms", skip_serializing_if = "Option::is_none")]
pub terms: Option<String>,
/// Version is the content digest of what this publisher last supplied. Two refreshes that agree on it took the same data.
#[serde(rename = "version", skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
impl ReferenceSource {
pub fn new() -> ReferenceSource {
ReferenceSource {
as_of: None,
basis: None,
keys: None,
origin: None,
refusal: None,
source: None,
terms: None,
version: None,
}
}
}