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
65
66
67
68
/*
* 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 LeaderboardView {
/// Available is false when the usage warehouse is not connected or its rollup is not ready. Rows is then empty because nothing could be read — not because nobody used anything. Show that difference; never render an unavailable board as a real one.
#[serde(rename = "available", skip_serializing_if = "Option::is_none")]
pub available: Option<bool>,
/// End is the EXCLUSIVE upper bound of the window, \"2006-01-02\" — the day after the last one counted. A board through today reports tomorrow's date here.
#[serde(rename = "end", skip_serializing_if = "Option::is_none")]
pub end: Option<String>,
/// Metric echoes the value ranked: tokens|requests|cost.
#[serde(rename = "metric", skip_serializing_if = "Option::is_none")]
pub metric: Option<String>,
/// Period is the window's canonical label: day|week|month|all. The server resolves aliases (7d, 30d, today, …) to these, so this may differ from what was sent.
#[serde(rename = "period", skip_serializing_if = "Option::is_none")]
pub period: Option<String>,
/// Rows are the ranked subjects, best first, at most the requested limit of them. Always a list, never null: an empty one means nothing was read, not an error.
#[serde(rename = "rows", skip_serializing_if = "Option::is_none")]
pub rows: Option<Vec<models::LeaderboardRow>>,
/// Scope echoes the board that was served: personal|org|global.
#[serde(rename = "scope", skip_serializing_if = "Option::is_none")]
pub scope: Option<String>,
/// Self is the caller's own standing, reported even when they fall outside Rows. Absent when the caller's ledger identity cannot be resolved, or when the query behind it failed — never faked to keep the shape tidy.
#[serde(rename = "self", skip_serializing_if = "Option::is_none")]
pub param_self: Option<Box<models::SelfRank>>,
/// Source names the table these numbers were aggregated from (the derived daily rollup, hanzo.usage_rollup_daily), so an operator can tell exactly what was read.
#[serde(rename = "source", skip_serializing_if = "Option::is_none")]
pub source: Option<String>,
/// Start is the first day counted, \"2006-01-02\" inclusive. Empty for period=all, which has no lower bound at all.
#[serde(rename = "start", skip_serializing_if = "Option::is_none")]
pub start: Option<String>,
/// Subject is what the rows stand for — \"user\" on a personal or org board, \"org\" on the global one. It tells a client whether Handle names a person or a company.
#[serde(rename = "subject", skip_serializing_if = "Option::is_none")]
pub subject: Option<String>,
/// Total is how many subjects were ranked in the window — the org's active users, or the active/opted-in orgs on the global board. It is the universe the ranks are out of, so it is normally larger than len(rows).
#[serde(rename = "total", skip_serializing_if = "Option::is_none")]
pub total: Option<i32>,
}
impl LeaderboardView {
pub fn new() -> LeaderboardView {
LeaderboardView {
available: None,
end: None,
metric: None,
period: None,
rows: None,
scope: None,
param_self: None,
source: None,
start: None,
subject: None,
total: None,
}
}
}