/*
 * Orvanta API
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 1.0.6
 * Contact: contact@orvanta.cloud
 * Generated by: https://openapi-generator.tech
 */

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

/// RetryExponential : Retry with exponential backoff (delay doubles each time)
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct RetryExponential {
    /// Number of retry attempts
    #[serde(rename = "attempts", skip_serializing_if = "Option::is_none")]
    pub attempts: Option<i32>,
    /// Multiplier for exponential backoff
    #[serde(rename = "multiplier", skip_serializing_if = "Option::is_none")]
    pub multiplier: Option<i32>,
    /// Initial delay in seconds
    #[serde(rename = "seconds", skip_serializing_if = "Option::is_none")]
    pub seconds: Option<i32>,
    /// Random jitter percentage (0-100) to avoid thundering herd
    #[serde(rename = "random_factor", skip_serializing_if = "Option::is_none")]
    pub random_factor: Option<i32>,
}

impl RetryExponential {
    /// Retry with exponential backoff (delay doubles each time)
    pub fn new() -> RetryExponential {
        RetryExponential {
            attempts: None,
            multiplier: None,
            seconds: None,
            random_factor: None,
        }
    }
}

