1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/*
* 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 Strategy {
/// Action is the tactic itself: the thing to go and do, stated imperatively.
#[serde(rename = "action", skip_serializing_if = "Option::is_none")]
pub action: Option<String>,
/// Blog is the tactic's long-form explainer; absent for tactics that have none.
#[serde(rename = "blog", skip_serializing_if = "Option::is_none")]
pub blog: Option<Box<models::Blog>>,
/// Category is the growth discipline the tactic belongs to — the axis `?category=` narrows the corpus on, and one of the facets a caller browses by.
#[serde(rename = "category", skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
/// Enabled is the admin lever. Absent reads as ON; an explicit false drops the tactic from every org-facing corpus read while leaving it in the document.
#[serde(rename = "enabled", skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
/// Era separates an AI-era tactic (`modern`) from a classical one (`heritage`).
#[serde(rename = "era", skip_serializing_if = "Option::is_none")]
pub era: Option<String>,
/// ID is the tactic's stable slug, unique across the corpus.
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
/// Principle is the spine slug this tactic files under (a Principle.Slug).
#[serde(rename = "principle", skip_serializing_if = "Option::is_none")]
pub principle: Option<String>,
/// Source is where the tactic came from — the attribution a reader is owed.
#[serde(rename = "source", skip_serializing_if = "Option::is_none")]
pub source: Option<String>,
/// Tags are PRECONDITIONS, not labels — every one must be satisfied by the org's observed profile before the tactic surfaces, so an untagged tactic is universally applicable. Two vocabularies: `stage:<research|formed|launched| activated|scaling>` reads the org's growth stage, `has:<capability>` reads an observed signal.
#[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
/// Workload is how much effort running the tactic costs, so a corpus can be narrowed to what an org has the hands for right now.
#[serde(rename = "workload", skip_serializing_if = "Option::is_none")]
pub workload: Option<String>,
}
impl Strategy {
pub fn new() -> Strategy {
Strategy {
action: None,
blog: None,
category: None,
enabled: None,
era: None,
id: None,
principle: None,
source: None,
tags: None,
workload: None,
}
}
}