Skip to main content

nominal_api/conjure/objects/scout/integrations/api/
webhook_delivery_config.rs

1/// Retry parameters serve as integration-level defaults that can be overridden at runtime.
2///
3/// Server-side validation enforces:
4/// - defaultRequestTimeoutSeconds maximum of 120
5/// - defaultMaxRetryIntervalSeconds must be >= defaultRetryIntervalSeconds when both are provided
6#[derive(
7    Debug,
8    Clone,
9    conjure_object::serde::Serialize,
10    conjure_object::serde::Deserialize,
11    PartialEq,
12    Eq,
13    PartialOrd,
14    Ord,
15    Hash,
16    Copy
17)]
18#[serde(crate = "conjure_object::serde")]
19#[conjure_object::private::staged_builder::staged_builder]
20#[builder(crate = conjure_object::private::staged_builder, update, inline)]
21pub struct WebhookDeliveryConfig {
22    #[builder(default, into)]
23    #[serde(
24        rename = "defaultRequestTimeoutSeconds",
25        skip_serializing_if = "Option::is_none",
26        default
27    )]
28    default_request_timeout_seconds: Option<i32>,
29    #[builder(default, into)]
30    #[serde(
31        rename = "defaultMaxRetries",
32        skip_serializing_if = "Option::is_none",
33        default
34    )]
35    default_max_retries: Option<i32>,
36    #[builder(default, into)]
37    #[serde(
38        rename = "defaultRetryIntervalSeconds",
39        skip_serializing_if = "Option::is_none",
40        default
41    )]
42    default_retry_interval_seconds: Option<i32>,
43    #[builder(default, into)]
44    #[serde(
45        rename = "defaultExponentialBackoff",
46        skip_serializing_if = "Option::is_none",
47        default
48    )]
49    default_exponential_backoff: Option<bool>,
50    #[builder(default, into)]
51    #[serde(
52        rename = "defaultMaxRetryIntervalSeconds",
53        skip_serializing_if = "Option::is_none",
54        default
55    )]
56    default_max_retry_interval_seconds: Option<i32>,
57    #[builder(default, into)]
58    #[serde(
59        rename = "defaultDeliveryTimeoutSeconds",
60        skip_serializing_if = "Option::is_none",
61        default
62    )]
63    default_delivery_timeout_seconds: Option<i32>,
64}
65impl WebhookDeliveryConfig {
66    /// Constructs a new instance of the type.
67    #[inline]
68    pub fn new() -> Self {
69        Self::builder().build()
70    }
71    /// Default HTTP request timeout in seconds (server default 10, range 5-120)
72    #[inline]
73    pub fn default_request_timeout_seconds(&self) -> Option<i32> {
74        self.default_request_timeout_seconds.as_ref().map(|o| *o)
75    }
76    /// Default maximum delivery attempts before failing (server default 3, range 0-10)
77    #[inline]
78    pub fn default_max_retries(&self) -> Option<i32> {
79        self.default_max_retries.as_ref().map(|o| *o)
80    }
81    /// Default initial interval between retry attempts in seconds (server default 15, range 5-300)
82    #[inline]
83    pub fn default_retry_interval_seconds(&self) -> Option<i32> {
84        self.default_retry_interval_seconds.as_ref().map(|o| *o)
85    }
86    /// Whether to apply exponential backoff to retry intervals (server default true)
87    #[inline]
88    pub fn default_exponential_backoff(&self) -> Option<bool> {
89        self.default_exponential_backoff.as_ref().map(|o| *o)
90    }
91    /// Default maximum interval between retries when using exponential backoff in seconds (server default 300, range 5-3600)
92    #[inline]
93    pub fn default_max_retry_interval_seconds(&self) -> Option<i32> {
94        self.default_max_retry_interval_seconds.as_ref().map(|o| *o)
95    }
96    /// Default overall delivery timeout in seconds before giving up (server default 600, range 10-86400)
97    #[inline]
98    pub fn default_delivery_timeout_seconds(&self) -> Option<i32> {
99        self.default_delivery_timeout_seconds.as_ref().map(|o| *o)
100    }
101}