Skip to main content

nominal_api/conjure/objects/scout/webhook/template/api/
test_webhook_response.rs

1/// Result of test webhook delivery
2#[derive(
3    Debug,
4    Clone,
5    conjure_object::serde::Serialize,
6    conjure_object::serde::Deserialize,
7    PartialEq,
8    Eq,
9    PartialOrd,
10    Ord,
11    Hash
12)]
13#[serde(crate = "conjure_object::serde")]
14#[conjure_object::private::staged_builder::staged_builder]
15#[builder(crate = conjure_object::private::staged_builder, update, inline)]
16pub struct TestWebhookResponse {
17    #[serde(rename = "success")]
18    success: bool,
19    #[serde(rename = "statusCode")]
20    status_code: i32,
21    #[builder(default, into)]
22    #[serde(rename = "responseBody", skip_serializing_if = "Option::is_none", default)]
23    response_body: Option<String>,
24    #[builder(default, into)]
25    #[serde(rename = "errorMessage", skip_serializing_if = "Option::is_none", default)]
26    error_message: Option<String>,
27    #[builder(default, into)]
28    #[serde(
29        rename = "evaluatedPayload",
30        skip_serializing_if = "Option::is_none",
31        default
32    )]
33    evaluated_payload: Option<String>,
34    #[serde(rename = "latencyMillis")]
35    latency_millis: conjure_object::SafeLong,
36}
37impl TestWebhookResponse {
38    /// Constructs a new instance of the type.
39    #[inline]
40    pub fn new(
41        success: bool,
42        status_code: i32,
43        latency_millis: conjure_object::SafeLong,
44    ) -> Self {
45        Self::builder()
46            .success(success)
47            .status_code(status_code)
48            .latency_millis(latency_millis)
49            .build()
50    }
51    /// Whether the webhook was delivered successfully
52    #[inline]
53    pub fn success(&self) -> bool {
54        self.success
55    }
56    /// HTTP status code from the webhook endpoint, or 0 if delivery failed before any HTTP request was sent (for example due to template errors, invalid JSON, or URL validation failures).
57    #[inline]
58    pub fn status_code(&self) -> i32 {
59        self.status_code
60    }
61    /// Response body from webhook endpoint
62    #[inline]
63    pub fn response_body(&self) -> Option<&str> {
64        self.response_body.as_ref().map(|o| &**o)
65    }
66    /// Error message if delivery failed
67    #[inline]
68    pub fn error_message(&self) -> Option<&str> {
69        self.error_message.as_ref().map(|o| &**o)
70    }
71    /// The actual JSON payload that was sent
72    #[inline]
73    pub fn evaluated_payload(&self) -> Option<&str> {
74        self.evaluated_payload.as_ref().map(|o| &**o)
75    }
76    /// Time taken to deliver webhook in milliseconds
77    #[inline]
78    pub fn latency_millis(&self) -> conjure_object::SafeLong {
79        self.latency_millis
80    }
81}