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
/*
* 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 RiskResolveOut {
/// Horizon is the maturity horizon this answer was computed under, IN DAYS — the caller's, or 120 when it stated none. Each event's as-of is its own `at` plus this many days, and that as-of is what decides which assertions were visible to it; an event whose as-of falls after Now is not resolved at all and is counted in Unmatured instead.
#[serde(rename = "horizon", skip_serializing_if = "Option::is_none")]
pub horizon: Option<i32>,
/// Labels is one entry per named event that BOTH matured and had at least one assertion knowable by its own as-of, in the order the events were named. The three outcomes partition the ask: len(labels) + Unmatured + Unlabelled is the number of DISTINCT events named, an event named twice having been answered once.
#[serde(rename = "labels", skip_serializing_if = "Option::is_none")]
pub labels: Option<Vec<models::RiskResolved>>,
/// Now and Horizon echo the observation this answer was computed under. A resolved label without them is a claim nobody can check.
#[serde(rename = "now", skip_serializing_if = "Option::is_none")]
pub now: Option<String>,
/// Unlabelled is how many matured events had no assertion knowable by their own as-of. That is the ordinary state of most traffic and it is reported rather than answered as unproductive: manufacturing negatives is how a fraud model comes to describe the incumbent block list.
#[serde(rename = "unlabelled", skip_serializing_if = "Option::is_none")]
pub unlabelled: Option<i32>,
/// Unmatured is how many named events had not aged past the horizon. They are not unlabelled — they are not yet ASKABLE, and a supervised training set must exclude them rather than treat them as negatives.
#[serde(rename = "unmatured", skip_serializing_if = "Option::is_none")]
pub unmatured: Option<i32>,
}
impl RiskResolveOut {
pub fn new() -> RiskResolveOut {
RiskResolveOut {
horizon: None,
labels: None,
now: None,
unlabelled: None,
unmatured: None,
}
}
}