stadar 0.1.25

Rust SDK for the stadar.net esports data API.
/*
 * Stadar Esports Data API
 *
 * Read-only esports data across all major competitive titles. Flat-tier pricing (no per-game gates), monthly subscriptions, sandbox keys for evaluation. See https://stadar.net for tier pricing. All endpoints under `/v1/...`. The version in `info.version` matches the URL prefix; non-breaking field additions ship in `/v1`, breaking changes get a `/v2`. We commit to 24 months of `/v1` support after `/v2` ships. Times are UTC end-to-end (RFC 3339). Localization is the client's problem. Cursors are opaque base64 strings; treat them as such. 
 *
 * The version of the OpenAPI document: v1
 * Contact: api@stadar.net
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct UsageTimeseriesData {
    /// Contiguous hour buckets ordered from oldest to newest. Always exactly `window_hours` items long — empty hours are explicit zero-count rows. 
    #[serde(rename = "buckets", skip_serializing_if = "Option::is_none")]
    pub buckets: Option<Vec<models::UsageTimeseriesBucket>>,
    #[serde(rename = "total_2xx_in_window", skip_serializing_if = "Option::is_none")]
    pub total_2xx_in_window: Option<i32>,
    #[serde(rename = "total_4xx_in_window", skip_serializing_if = "Option::is_none")]
    pub total_4xx_in_window: Option<i32>,
    #[serde(rename = "total_5xx_in_window", skip_serializing_if = "Option::is_none")]
    pub total_5xx_in_window: Option<i32>,
    #[serde(rename = "window_hours", skip_serializing_if = "Option::is_none")]
    pub window_hours: Option<i32>,
}

impl UsageTimeseriesData {
    pub fn new() -> UsageTimeseriesData {
        UsageTimeseriesData {
            buckets: None,
            total_2xx_in_window: None,
            total_4xx_in_window: None,
            total_5xx_in_window: None,
            window_hours: None,
        }
    }
}