/*
 * photon-indexer
 *
 * Solana indexer for general compression
 *
 * The version of the OpenAPI document: 0.50.0
 *
 * Generated by: https://openapi-generator.tech
 */

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct GetQueueInfoPostRequest {
    /// An ID to identify the request.
    #[serde(rename = "id")]
    pub id: i32,
    /// The version of the JSON-RPC protocol.
    #[serde(rename = "jsonrpc")]
    pub jsonrpc: Jsonrpc,
    /// The name of the method to invoke.
    #[serde(rename = "method")]
    pub method: Method,
    #[serde(rename = "params")]
    pub params: GetQueueInfoParams,
}

impl GetQueueInfoPostRequest {
    pub fn new(id: i32, jsonrpc: Jsonrpc, method: Method) -> GetQueueInfoPostRequest {
        GetQueueInfoPostRequest {
            id,
            jsonrpc,
            method,
            params: GetQueueInfoParams::default(),
        }
    }
}

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct GetQueueInfoParams {}

/// The version of the JSON-RPC protocol.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Jsonrpc {
    #[serde(rename = "2.0")]
    Variant2Period0,
}

impl Default for Jsonrpc {
    fn default() -> Jsonrpc {
        Self::Variant2Period0
    }
}

/// The name of the method to invoke.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Method {
    #[serde(rename = "getQueueInfo")]
    GetQueueInfo,
}

impl Default for Method {
    fn default() -> Method {
        Self::GetQueueInfo
    }
}
