Skip to main content

hanzo_client/models/
clause_coverage.rs

1/*
2 * Hanzo Cloud API
3 *
4 * 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/.
5 *
6 * The version of the OpenAPI document: v1
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct ClauseCoverage {
16    /// Automated is how many clauses have an automated control behind them that something can fail on behalf of.
17    #[serde(rename = "automated", skip_serializing_if = "Option::is_none")]
18    pub automated: Option<i32>,
19    /// Clauses is every clause the standard publishes, with what stands behind it.
20    #[serde(rename = "clauses", skip_serializing_if = "Option::is_none")]
21    pub clauses: Option<Vec<models::ClauseRow>>,
22    /// Edition is which edition this clause list is taken from.
23    #[serde(rename = "edition", skip_serializing_if = "Option::is_none")]
24    pub edition: Option<String>,
25    /// Framework is the framework id — \"soc2\", \"iso27001\", \"nist80053\".
26    #[serde(rename = "framework", skip_serializing_if = "Option::is_none")]
27    pub framework: Option<String>,
28    /// Generated is when this was computed, unix milliseconds.
29    #[serde(rename = "generated", skip_serializing_if = "Option::is_none")]
30    pub generated: Option<i32>,
31    /// Name is the published standard's name.
32    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
33    pub name: Option<String>,
34    /// None is how many have nothing behind them.
35    #[serde(rename = "none", skip_serializing_if = "Option::is_none")]
36    pub none: Option<i32>,
37    /// Note is what this clause list is scoped to, when a count alone would misrepresent it.
38    #[serde(rename = "note", skip_serializing_if = "Option::is_none")]
39    pub note: Option<String>,
40    /// Partial is how many are answered in part.
41    #[serde(rename = "partial", skip_serializing_if = "Option::is_none")]
42    pub partial: Option<i32>,
43    /// Publisher is who publishes it — AICPA, ISO/IEC, NIST.
44    #[serde(rename = "publisher", skip_serializing_if = "Option::is_none")]
45    pub publisher: Option<String>,
46    /// Statement is the counts as one sentence, carrying the unit.
47    #[serde(rename = "statement", skip_serializing_if = "Option::is_none")]
48    pub statement: Option<String>,
49    /// Total is the framework's WHOLE published clause list — the denominator.
50    #[serde(rename = "total", skip_serializing_if = "Option::is_none")]
51    pub total: Option<i32>,
52    /// Unit is what ONE clause is — \"criterion\", \"control\", \"family\".
53    #[serde(rename = "unit", skip_serializing_if = "Option::is_none")]
54    pub unit: Option<String>,
55    /// Units is the plural of Unit, for rendering a sentence.
56    #[serde(rename = "units", skip_serializing_if = "Option::is_none")]
57    pub units: Option<String>,
58    /// Version is the embedded inventory's version.
59    #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
60    pub version: Option<String>,
61}
62
63impl ClauseCoverage {
64    pub fn new() -> ClauseCoverage {
65        ClauseCoverage {
66            automated: None,
67            clauses: None,
68            edition: None,
69            framework: None,
70            generated: None,
71            name: None,
72            none: None,
73            note: None,
74            partial: None,
75            publisher: None,
76            statement: None,
77            total: None,
78            unit: None,
79            units: None,
80            version: None,
81        }
82    }
83}
84