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 ClauseCoverage {
    /// Automated is how many clauses have an automated control behind them that something can fail on behalf of.
    #[serde(rename = "automated", skip_serializing_if = "Option::is_none")]
    pub automated: Option<i32>,
    /// Clauses is every clause the standard publishes, with what stands behind it.
    #[serde(rename = "clauses", skip_serializing_if = "Option::is_none")]
    pub clauses: Option<Vec<models::ClauseRow>>,
    /// Edition is which edition this clause list is taken from.
    #[serde(rename = "edition", skip_serializing_if = "Option::is_none")]
    pub edition: Option<String>,
    /// Framework is the framework id — \"soc2\", \"iso27001\", \"nist80053\".
    #[serde(rename = "framework", skip_serializing_if = "Option::is_none")]
    pub framework: Option<String>,
    /// Generated is when this was computed, unix milliseconds.
    #[serde(rename = "generated", skip_serializing_if = "Option::is_none")]
    pub generated: Option<i32>,
    /// Name is the published standard's name.
    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    /// None is how many have nothing behind them.
    #[serde(rename = "none", skip_serializing_if = "Option::is_none")]
    pub none: Option<i32>,
    /// Note is what this clause list is scoped to, when a count alone would misrepresent it.
    #[serde(rename = "note", skip_serializing_if = "Option::is_none")]
    pub note: Option<String>,
    /// Partial is how many are answered in part.
    #[serde(rename = "partial", skip_serializing_if = "Option::is_none")]
    pub partial: Option<i32>,
    /// Publisher is who publishes it — AICPA, ISO/IEC, NIST.
    #[serde(rename = "publisher", skip_serializing_if = "Option::is_none")]
    pub publisher: Option<String>,
    /// Statement is the counts as one sentence, carrying the unit.
    #[serde(rename = "statement", skip_serializing_if = "Option::is_none")]
    pub statement: Option<String>,
    /// Total is the framework's WHOLE published clause list — the denominator.
    #[serde(rename = "total", skip_serializing_if = "Option::is_none")]
    pub total: Option<i32>,
    /// Unit is what ONE clause is — \"criterion\", \"control\", \"family\".
    #[serde(rename = "unit", skip_serializing_if = "Option::is_none")]
    pub unit: Option<String>,
    /// Units is the plural of Unit, for rendering a sentence.
    #[serde(rename = "units", skip_serializing_if = "Option::is_none")]
    pub units: Option<String>,
    /// Version is the embedded inventory's version.
    #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
    pub version: Option<String>,
}

impl ClauseCoverage {
    pub fn new() -> ClauseCoverage {
        ClauseCoverage {
            automated: None,
            clauses: None,
            edition: None,
            framework: None,
            generated: None,
            name: None,
            none: None,
            note: None,
            partial: None,
            publisher: None,
            statement: None,
            total: None,
            unit: None,
            units: None,
            version: None,
        }
    }
}