Skip to main content

nominal_api/conjure/clients/scout/integrations/api/
integrations_service.rs

1use conjure_http::endpoint;
2/// Service for managing integrations with external services.
3#[conjure_http::conjure_client(name = "IntegrationsService")]
4pub trait IntegrationsService<
5    #[response_body]
6    I: Iterator<
7            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
8        >,
9> {
10    /// Generates link to request permissions for Slack bot to join workspaces and use a webhook.
11    #[endpoint(
12        method = GET,
13        path = "/scout/v2/integrations/slack-oauth/init-webhook",
14        name = "generateSlackWebhookLink",
15        accept = conjure_http::client::StdResponseDeserializer
16    )]
17    fn generate_slack_webhook_link(
18        &self,
19        #[auth]
20        auth_: &conjure_object::BearerToken,
21        #[query(
22            name = "workspace",
23            encoder = conjure_http::client::conjure::PlainSeqEncoder
24        )]
25        workspace: Option<
26            &super::super::super::super::super::objects::api::rids::WorkspaceRid,
27        >,
28        #[query(
29            name = "isGovSlack",
30            encoder = conjure_http::client::conjure::PlainSeqEncoder
31        )]
32        is_gov_slack: Option<bool>,
33    ) -> Result<
34        super::super::super::super::super::objects::scout::integrations::api::GenerateSlackWebhookResponse,
35        conjure_http::private::Error,
36    >;
37    /// Creates a new Slack integration. Called internally after Slack authorization.
38    #[endpoint(
39        method = GET,
40        path = "/scout/v2/integrations/slack-oauth/redirect",
41        name = "createSlackWebhook",
42        accept = conjure_http::client::conjure::EmptyResponseDeserializer
43    )]
44    fn create_slack_webhook(
45        &self,
46        #[auth]
47        auth_: &conjure_object::BearerToken,
48        #[query(name = "code", encoder = conjure_http::client::conjure::PlainEncoder)]
49        code: &str,
50        #[query(name = "state", encoder = conjure_http::client::conjure::PlainEncoder)]
51        state: &str,
52    ) -> Result<(), conjure_http::private::Error>;
53    /// Creates a new integration.
54    #[endpoint(
55        method = POST,
56        path = "/scout/v2/integrations",
57        name = "createIntegration",
58        accept = conjure_http::client::StdResponseDeserializer
59    )]
60    fn create_integration(
61        &self,
62        #[auth]
63        auth_: &conjure_object::BearerToken,
64        #[body(serializer = conjure_http::client::StdRequestSerializer)]
65        create_integration_request: &super::super::super::super::super::objects::scout::integrations::api::CreateIntegrationRequest,
66    ) -> Result<
67        super::super::super::super::super::objects::scout::integrations::api::Integration,
68        conjure_http::private::Error,
69    >;
70    /// Creates a new webhook integration with HMAC signing.
71    /// Returns the integration and the server-generated signing key.
72    /// The signing key is only returned once — store it securely.
73    #[endpoint(
74        method = POST,
75        path = "/scout/v2/integrations/internal/secure-webhook",
76        name = "createSecureWebhookIntegration",
77        accept = conjure_http::client::StdResponseDeserializer
78    )]
79    fn create_secure_webhook_integration(
80        &self,
81        #[auth]
82        auth_: &conjure_object::BearerToken,
83        #[body(serializer = conjure_http::client::StdRequestSerializer)]
84        request: &super::super::super::super::super::objects::scout::integrations::api::CreateSecureWebhookIntegrationRequest,
85    ) -> Result<
86        super::super::super::super::super::objects::scout::integrations::api::CreateSecureWebhookIntegrationResponse,
87        conjure_http::private::Error,
88    >;
89    /// Sends a message to a secure webhook integration with HMAC-SHA256 signature.
90    /// Implements retry logic with exponential backoff based on merged delivery configuration.
91    /// Request configuration overrides take precedence over integration's stored configuration.
92    #[endpoint(
93        method = POST,
94        path = "/scout/v2/integrations/internal/secure-webhook/{integrationRid}",
95        name = "sendSecureWebhookMessage",
96        accept = conjure_http::client::StdResponseDeserializer
97    )]
98    fn send_secure_webhook_message(
99        &self,
100        #[auth]
101        auth_: &conjure_object::BearerToken,
102        #[path(
103            name = "integrationRid",
104            encoder = conjure_http::client::conjure::PlainEncoder
105        )]
106        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
107        #[body(serializer = conjure_http::client::StdRequestSerializer)]
108        request: &super::super::super::super::super::objects::scout::integrations::api::SendSecureWebhookMessageRequest,
109    ) -> Result<
110        super::super::super::super::super::objects::scout::integrations::api::SendSecureWebhookMessageResponse,
111        conjure_http::private::Error,
112    >;
113    /// Deletes an integration by archiving.
114    #[endpoint(
115        method = DELETE,
116        path = "/scout/v2/integrations/{integrationRid}",
117        name = "deleteIntegration",
118        accept = conjure_http::client::conjure::EmptyResponseDeserializer
119    )]
120    fn delete_integration(
121        &self,
122        #[auth]
123        auth_: &conjure_object::BearerToken,
124        #[path(
125            name = "integrationRid",
126            encoder = conjure_http::client::conjure::PlainEncoder
127        )]
128        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
129    ) -> Result<(), conjure_http::private::Error>;
130    /// Updates the metadata of an integration.
131    #[endpoint(
132        method = PUT,
133        path = "/scout/v2/integrations/{integrationRid}",
134        name = "updateIntegrationMetadata",
135        accept = conjure_http::client::StdResponseDeserializer
136    )]
137    fn update_integration_metadata(
138        &self,
139        #[auth]
140        auth_: &conjure_object::BearerToken,
141        #[path(
142            name = "integrationRid",
143            encoder = conjure_http::client::conjure::PlainEncoder
144        )]
145        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
146        #[body(serializer = conjure_http::client::StdRequestSerializer)]
147        request: &super::super::super::super::super::objects::scout::integrations::api::UpdateIntegrationRequest,
148    ) -> Result<
149        super::super::super::super::super::objects::scout::integrations::api::Integration,
150        conjure_http::private::Error,
151    >;
152    /// Updates the integration details for an integration.
153    /// Intended to allow changing webhooks or rotating API keys.
154    #[endpoint(
155        method = PUT,
156        path = "/scout/v2/integrations/{integrationRid}/details",
157        name = "updateIntegrationDetails",
158        accept = conjure_http::client::StdResponseDeserializer
159    )]
160    fn update_integration_details(
161        &self,
162        #[auth]
163        auth_: &conjure_object::BearerToken,
164        #[path(
165            name = "integrationRid",
166            encoder = conjure_http::client::conjure::PlainEncoder
167        )]
168        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
169        #[body(serializer = conjure_http::client::StdRequestSerializer)]
170        request: &super::super::super::super::super::objects::scout::integrations::api::UpdateIntegrationDetailsRequest,
171    ) -> Result<
172        super::super::super::super::super::objects::scout::integrations::api::Integration,
173        conjure_http::private::Error,
174    >;
175    /// Retrieves an integration with the specified integration RID.
176    #[endpoint(
177        method = GET,
178        path = "/scout/v2/integrations/{integrationRid}",
179        name = "getIntegration",
180        accept = conjure_http::client::StdResponseDeserializer
181    )]
182    fn get_integration(
183        &self,
184        #[auth]
185        auth_: &conjure_object::BearerToken,
186        #[path(
187            name = "integrationRid",
188            encoder = conjure_http::client::conjure::PlainEncoder
189        )]
190        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
191    ) -> Result<
192        super::super::super::super::super::objects::scout::integrations::api::Integration,
193        conjure_http::private::Error,
194    >;
195    /// Lists all integrations. Archived integrations are not included.
196    #[endpoint(
197        method = GET,
198        path = "/scout/v2/integrations/list",
199        name = "listIntegrations",
200        accept = conjure_http::client::conjure::CollectionResponseDeserializer
201    )]
202    fn list_integrations(
203        &self,
204        #[auth]
205        auth_: &conjure_object::BearerToken,
206        #[query(
207            name = "workspaces",
208            encoder = conjure_http::client::conjure::PlainSeqEncoder
209        )]
210        workspaces: &std::collections::BTreeSet<
211            super::super::super::super::super::objects::api::rids::WorkspaceRid,
212        >,
213    ) -> Result<
214        Vec<
215            super::super::super::super::super::objects::scout::integrations::api::Integration,
216        >,
217        conjure_http::private::Error,
218    >;
219    /// Sends a string message to the specified integration from a checklist execution.
220    #[endpoint(
221        method = POST,
222        path = "/scout/v2/integrations/send-message",
223        name = "sendMessage",
224        accept = conjure_http::client::conjure::EmptyResponseDeserializer
225    )]
226    fn send_message(
227        &self,
228        #[auth]
229        auth_: &conjure_object::BearerToken,
230        #[body(serializer = conjure_http::client::StdRequestSerializer)]
231        request: &super::super::super::super::super::objects::scout::integrations::api::SendMessageRequest,
232    ) -> Result<(), conjure_http::private::Error>;
233    /// Rotates the HMAC signing key for a webhook integration.
234    /// The old key is immediately invalidated and a new key is generated and returned.
235    /// This is the only way to retrieve the signing key after initial creation.
236    #[endpoint(
237        method = POST,
238        path = "/scout/v2/integrations/internal/{integrationRid}/rotate-signing-key",
239        name = "rotateSecureWebhookIntegrationSigningKey",
240        accept = conjure_http::client::StdResponseDeserializer
241    )]
242    fn rotate_secure_webhook_integration_signing_key(
243        &self,
244        #[auth]
245        auth_: &conjure_object::BearerToken,
246        #[path(
247            name = "integrationRid",
248            encoder = conjure_http::client::conjure::PlainEncoder
249        )]
250        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
251    ) -> Result<
252        super::super::super::super::super::objects::scout::integrations::api::RotateWebhookSigningKeyResponse,
253        conjure_http::private::Error,
254    >;
255}
256/// Service for managing integrations with external services.
257#[conjure_http::conjure_client(name = "IntegrationsService")]
258pub trait AsyncIntegrationsService<
259    #[response_body]
260    I: conjure_http::private::Stream<
261            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
262        >,
263> {
264    /// Generates link to request permissions for Slack bot to join workspaces and use a webhook.
265    #[endpoint(
266        method = GET,
267        path = "/scout/v2/integrations/slack-oauth/init-webhook",
268        name = "generateSlackWebhookLink",
269        accept = conjure_http::client::StdResponseDeserializer
270    )]
271    async fn generate_slack_webhook_link(
272        &self,
273        #[auth]
274        auth_: &conjure_object::BearerToken,
275        #[query(
276            name = "workspace",
277            encoder = conjure_http::client::conjure::PlainSeqEncoder
278        )]
279        workspace: Option<
280            &super::super::super::super::super::objects::api::rids::WorkspaceRid,
281        >,
282        #[query(
283            name = "isGovSlack",
284            encoder = conjure_http::client::conjure::PlainSeqEncoder
285        )]
286        is_gov_slack: Option<bool>,
287    ) -> Result<
288        super::super::super::super::super::objects::scout::integrations::api::GenerateSlackWebhookResponse,
289        conjure_http::private::Error,
290    >;
291    /// Creates a new Slack integration. Called internally after Slack authorization.
292    #[endpoint(
293        method = GET,
294        path = "/scout/v2/integrations/slack-oauth/redirect",
295        name = "createSlackWebhook",
296        accept = conjure_http::client::conjure::EmptyResponseDeserializer
297    )]
298    async fn create_slack_webhook(
299        &self,
300        #[auth]
301        auth_: &conjure_object::BearerToken,
302        #[query(name = "code", encoder = conjure_http::client::conjure::PlainEncoder)]
303        code: &str,
304        #[query(name = "state", encoder = conjure_http::client::conjure::PlainEncoder)]
305        state: &str,
306    ) -> Result<(), conjure_http::private::Error>;
307    /// Creates a new integration.
308    #[endpoint(
309        method = POST,
310        path = "/scout/v2/integrations",
311        name = "createIntegration",
312        accept = conjure_http::client::StdResponseDeserializer
313    )]
314    async fn create_integration(
315        &self,
316        #[auth]
317        auth_: &conjure_object::BearerToken,
318        #[body(serializer = conjure_http::client::StdRequestSerializer)]
319        create_integration_request: &super::super::super::super::super::objects::scout::integrations::api::CreateIntegrationRequest,
320    ) -> Result<
321        super::super::super::super::super::objects::scout::integrations::api::Integration,
322        conjure_http::private::Error,
323    >;
324    /// Creates a new webhook integration with HMAC signing.
325    /// Returns the integration and the server-generated signing key.
326    /// The signing key is only returned once — store it securely.
327    #[endpoint(
328        method = POST,
329        path = "/scout/v2/integrations/internal/secure-webhook",
330        name = "createSecureWebhookIntegration",
331        accept = conjure_http::client::StdResponseDeserializer
332    )]
333    async fn create_secure_webhook_integration(
334        &self,
335        #[auth]
336        auth_: &conjure_object::BearerToken,
337        #[body(serializer = conjure_http::client::StdRequestSerializer)]
338        request: &super::super::super::super::super::objects::scout::integrations::api::CreateSecureWebhookIntegrationRequest,
339    ) -> Result<
340        super::super::super::super::super::objects::scout::integrations::api::CreateSecureWebhookIntegrationResponse,
341        conjure_http::private::Error,
342    >;
343    /// Sends a message to a secure webhook integration with HMAC-SHA256 signature.
344    /// Implements retry logic with exponential backoff based on merged delivery configuration.
345    /// Request configuration overrides take precedence over integration's stored configuration.
346    #[endpoint(
347        method = POST,
348        path = "/scout/v2/integrations/internal/secure-webhook/{integrationRid}",
349        name = "sendSecureWebhookMessage",
350        accept = conjure_http::client::StdResponseDeserializer
351    )]
352    async fn send_secure_webhook_message(
353        &self,
354        #[auth]
355        auth_: &conjure_object::BearerToken,
356        #[path(
357            name = "integrationRid",
358            encoder = conjure_http::client::conjure::PlainEncoder
359        )]
360        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
361        #[body(serializer = conjure_http::client::StdRequestSerializer)]
362        request: &super::super::super::super::super::objects::scout::integrations::api::SendSecureWebhookMessageRequest,
363    ) -> Result<
364        super::super::super::super::super::objects::scout::integrations::api::SendSecureWebhookMessageResponse,
365        conjure_http::private::Error,
366    >;
367    /// Deletes an integration by archiving.
368    #[endpoint(
369        method = DELETE,
370        path = "/scout/v2/integrations/{integrationRid}",
371        name = "deleteIntegration",
372        accept = conjure_http::client::conjure::EmptyResponseDeserializer
373    )]
374    async fn delete_integration(
375        &self,
376        #[auth]
377        auth_: &conjure_object::BearerToken,
378        #[path(
379            name = "integrationRid",
380            encoder = conjure_http::client::conjure::PlainEncoder
381        )]
382        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
383    ) -> Result<(), conjure_http::private::Error>;
384    /// Updates the metadata of an integration.
385    #[endpoint(
386        method = PUT,
387        path = "/scout/v2/integrations/{integrationRid}",
388        name = "updateIntegrationMetadata",
389        accept = conjure_http::client::StdResponseDeserializer
390    )]
391    async fn update_integration_metadata(
392        &self,
393        #[auth]
394        auth_: &conjure_object::BearerToken,
395        #[path(
396            name = "integrationRid",
397            encoder = conjure_http::client::conjure::PlainEncoder
398        )]
399        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
400        #[body(serializer = conjure_http::client::StdRequestSerializer)]
401        request: &super::super::super::super::super::objects::scout::integrations::api::UpdateIntegrationRequest,
402    ) -> Result<
403        super::super::super::super::super::objects::scout::integrations::api::Integration,
404        conjure_http::private::Error,
405    >;
406    /// Updates the integration details for an integration.
407    /// Intended to allow changing webhooks or rotating API keys.
408    #[endpoint(
409        method = PUT,
410        path = "/scout/v2/integrations/{integrationRid}/details",
411        name = "updateIntegrationDetails",
412        accept = conjure_http::client::StdResponseDeserializer
413    )]
414    async fn update_integration_details(
415        &self,
416        #[auth]
417        auth_: &conjure_object::BearerToken,
418        #[path(
419            name = "integrationRid",
420            encoder = conjure_http::client::conjure::PlainEncoder
421        )]
422        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
423        #[body(serializer = conjure_http::client::StdRequestSerializer)]
424        request: &super::super::super::super::super::objects::scout::integrations::api::UpdateIntegrationDetailsRequest,
425    ) -> Result<
426        super::super::super::super::super::objects::scout::integrations::api::Integration,
427        conjure_http::private::Error,
428    >;
429    /// Retrieves an integration with the specified integration RID.
430    #[endpoint(
431        method = GET,
432        path = "/scout/v2/integrations/{integrationRid}",
433        name = "getIntegration",
434        accept = conjure_http::client::StdResponseDeserializer
435    )]
436    async fn get_integration(
437        &self,
438        #[auth]
439        auth_: &conjure_object::BearerToken,
440        #[path(
441            name = "integrationRid",
442            encoder = conjure_http::client::conjure::PlainEncoder
443        )]
444        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
445    ) -> Result<
446        super::super::super::super::super::objects::scout::integrations::api::Integration,
447        conjure_http::private::Error,
448    >;
449    /// Lists all integrations. Archived integrations are not included.
450    #[endpoint(
451        method = GET,
452        path = "/scout/v2/integrations/list",
453        name = "listIntegrations",
454        accept = conjure_http::client::conjure::CollectionResponseDeserializer
455    )]
456    async fn list_integrations(
457        &self,
458        #[auth]
459        auth_: &conjure_object::BearerToken,
460        #[query(
461            name = "workspaces",
462            encoder = conjure_http::client::conjure::PlainSeqEncoder
463        )]
464        workspaces: &std::collections::BTreeSet<
465            super::super::super::super::super::objects::api::rids::WorkspaceRid,
466        >,
467    ) -> Result<
468        Vec<
469            super::super::super::super::super::objects::scout::integrations::api::Integration,
470        >,
471        conjure_http::private::Error,
472    >;
473    /// Sends a string message to the specified integration from a checklist execution.
474    #[endpoint(
475        method = POST,
476        path = "/scout/v2/integrations/send-message",
477        name = "sendMessage",
478        accept = conjure_http::client::conjure::EmptyResponseDeserializer
479    )]
480    async fn send_message(
481        &self,
482        #[auth]
483        auth_: &conjure_object::BearerToken,
484        #[body(serializer = conjure_http::client::StdRequestSerializer)]
485        request: &super::super::super::super::super::objects::scout::integrations::api::SendMessageRequest,
486    ) -> Result<(), conjure_http::private::Error>;
487    /// Rotates the HMAC signing key for a webhook integration.
488    /// The old key is immediately invalidated and a new key is generated and returned.
489    /// This is the only way to retrieve the signing key after initial creation.
490    #[endpoint(
491        method = POST,
492        path = "/scout/v2/integrations/internal/{integrationRid}/rotate-signing-key",
493        name = "rotateSecureWebhookIntegrationSigningKey",
494        accept = conjure_http::client::StdResponseDeserializer
495    )]
496    async fn rotate_secure_webhook_integration_signing_key(
497        &self,
498        #[auth]
499        auth_: &conjure_object::BearerToken,
500        #[path(
501            name = "integrationRid",
502            encoder = conjure_http::client::conjure::PlainEncoder
503        )]
504        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
505    ) -> Result<
506        super::super::super::super::super::objects::scout::integrations::api::RotateWebhookSigningKeyResponse,
507        conjure_http::private::Error,
508    >;
509}
510/// Service for managing integrations with external services.
511#[conjure_http::conjure_client(name = "IntegrationsService", local)]
512pub trait LocalAsyncIntegrationsService<
513    #[response_body]
514    I: conjure_http::private::Stream<
515            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
516        >,
517> {
518    /// Generates link to request permissions for Slack bot to join workspaces and use a webhook.
519    #[endpoint(
520        method = GET,
521        path = "/scout/v2/integrations/slack-oauth/init-webhook",
522        name = "generateSlackWebhookLink",
523        accept = conjure_http::client::StdResponseDeserializer
524    )]
525    async fn generate_slack_webhook_link(
526        &self,
527        #[auth]
528        auth_: &conjure_object::BearerToken,
529        #[query(
530            name = "workspace",
531            encoder = conjure_http::client::conjure::PlainSeqEncoder
532        )]
533        workspace: Option<
534            &super::super::super::super::super::objects::api::rids::WorkspaceRid,
535        >,
536        #[query(
537            name = "isGovSlack",
538            encoder = conjure_http::client::conjure::PlainSeqEncoder
539        )]
540        is_gov_slack: Option<bool>,
541    ) -> Result<
542        super::super::super::super::super::objects::scout::integrations::api::GenerateSlackWebhookResponse,
543        conjure_http::private::Error,
544    >;
545    /// Creates a new Slack integration. Called internally after Slack authorization.
546    #[endpoint(
547        method = GET,
548        path = "/scout/v2/integrations/slack-oauth/redirect",
549        name = "createSlackWebhook",
550        accept = conjure_http::client::conjure::EmptyResponseDeserializer
551    )]
552    async fn create_slack_webhook(
553        &self,
554        #[auth]
555        auth_: &conjure_object::BearerToken,
556        #[query(name = "code", encoder = conjure_http::client::conjure::PlainEncoder)]
557        code: &str,
558        #[query(name = "state", encoder = conjure_http::client::conjure::PlainEncoder)]
559        state: &str,
560    ) -> Result<(), conjure_http::private::Error>;
561    /// Creates a new integration.
562    #[endpoint(
563        method = POST,
564        path = "/scout/v2/integrations",
565        name = "createIntegration",
566        accept = conjure_http::client::StdResponseDeserializer
567    )]
568    async fn create_integration(
569        &self,
570        #[auth]
571        auth_: &conjure_object::BearerToken,
572        #[body(serializer = conjure_http::client::StdRequestSerializer)]
573        create_integration_request: &super::super::super::super::super::objects::scout::integrations::api::CreateIntegrationRequest,
574    ) -> Result<
575        super::super::super::super::super::objects::scout::integrations::api::Integration,
576        conjure_http::private::Error,
577    >;
578    /// Creates a new webhook integration with HMAC signing.
579    /// Returns the integration and the server-generated signing key.
580    /// The signing key is only returned once — store it securely.
581    #[endpoint(
582        method = POST,
583        path = "/scout/v2/integrations/internal/secure-webhook",
584        name = "createSecureWebhookIntegration",
585        accept = conjure_http::client::StdResponseDeserializer
586    )]
587    async fn create_secure_webhook_integration(
588        &self,
589        #[auth]
590        auth_: &conjure_object::BearerToken,
591        #[body(serializer = conjure_http::client::StdRequestSerializer)]
592        request: &super::super::super::super::super::objects::scout::integrations::api::CreateSecureWebhookIntegrationRequest,
593    ) -> Result<
594        super::super::super::super::super::objects::scout::integrations::api::CreateSecureWebhookIntegrationResponse,
595        conjure_http::private::Error,
596    >;
597    /// Sends a message to a secure webhook integration with HMAC-SHA256 signature.
598    /// Implements retry logic with exponential backoff based on merged delivery configuration.
599    /// Request configuration overrides take precedence over integration's stored configuration.
600    #[endpoint(
601        method = POST,
602        path = "/scout/v2/integrations/internal/secure-webhook/{integrationRid}",
603        name = "sendSecureWebhookMessage",
604        accept = conjure_http::client::StdResponseDeserializer
605    )]
606    async fn send_secure_webhook_message(
607        &self,
608        #[auth]
609        auth_: &conjure_object::BearerToken,
610        #[path(
611            name = "integrationRid",
612            encoder = conjure_http::client::conjure::PlainEncoder
613        )]
614        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
615        #[body(serializer = conjure_http::client::StdRequestSerializer)]
616        request: &super::super::super::super::super::objects::scout::integrations::api::SendSecureWebhookMessageRequest,
617    ) -> Result<
618        super::super::super::super::super::objects::scout::integrations::api::SendSecureWebhookMessageResponse,
619        conjure_http::private::Error,
620    >;
621    /// Deletes an integration by archiving.
622    #[endpoint(
623        method = DELETE,
624        path = "/scout/v2/integrations/{integrationRid}",
625        name = "deleteIntegration",
626        accept = conjure_http::client::conjure::EmptyResponseDeserializer
627    )]
628    async fn delete_integration(
629        &self,
630        #[auth]
631        auth_: &conjure_object::BearerToken,
632        #[path(
633            name = "integrationRid",
634            encoder = conjure_http::client::conjure::PlainEncoder
635        )]
636        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
637    ) -> Result<(), conjure_http::private::Error>;
638    /// Updates the metadata of an integration.
639    #[endpoint(
640        method = PUT,
641        path = "/scout/v2/integrations/{integrationRid}",
642        name = "updateIntegrationMetadata",
643        accept = conjure_http::client::StdResponseDeserializer
644    )]
645    async fn update_integration_metadata(
646        &self,
647        #[auth]
648        auth_: &conjure_object::BearerToken,
649        #[path(
650            name = "integrationRid",
651            encoder = conjure_http::client::conjure::PlainEncoder
652        )]
653        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
654        #[body(serializer = conjure_http::client::StdRequestSerializer)]
655        request: &super::super::super::super::super::objects::scout::integrations::api::UpdateIntegrationRequest,
656    ) -> Result<
657        super::super::super::super::super::objects::scout::integrations::api::Integration,
658        conjure_http::private::Error,
659    >;
660    /// Updates the integration details for an integration.
661    /// Intended to allow changing webhooks or rotating API keys.
662    #[endpoint(
663        method = PUT,
664        path = "/scout/v2/integrations/{integrationRid}/details",
665        name = "updateIntegrationDetails",
666        accept = conjure_http::client::StdResponseDeserializer
667    )]
668    async fn update_integration_details(
669        &self,
670        #[auth]
671        auth_: &conjure_object::BearerToken,
672        #[path(
673            name = "integrationRid",
674            encoder = conjure_http::client::conjure::PlainEncoder
675        )]
676        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
677        #[body(serializer = conjure_http::client::StdRequestSerializer)]
678        request: &super::super::super::super::super::objects::scout::integrations::api::UpdateIntegrationDetailsRequest,
679    ) -> Result<
680        super::super::super::super::super::objects::scout::integrations::api::Integration,
681        conjure_http::private::Error,
682    >;
683    /// Retrieves an integration with the specified integration RID.
684    #[endpoint(
685        method = GET,
686        path = "/scout/v2/integrations/{integrationRid}",
687        name = "getIntegration",
688        accept = conjure_http::client::StdResponseDeserializer
689    )]
690    async fn get_integration(
691        &self,
692        #[auth]
693        auth_: &conjure_object::BearerToken,
694        #[path(
695            name = "integrationRid",
696            encoder = conjure_http::client::conjure::PlainEncoder
697        )]
698        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
699    ) -> Result<
700        super::super::super::super::super::objects::scout::integrations::api::Integration,
701        conjure_http::private::Error,
702    >;
703    /// Lists all integrations. Archived integrations are not included.
704    #[endpoint(
705        method = GET,
706        path = "/scout/v2/integrations/list",
707        name = "listIntegrations",
708        accept = conjure_http::client::conjure::CollectionResponseDeserializer
709    )]
710    async fn list_integrations(
711        &self,
712        #[auth]
713        auth_: &conjure_object::BearerToken,
714        #[query(
715            name = "workspaces",
716            encoder = conjure_http::client::conjure::PlainSeqEncoder
717        )]
718        workspaces: &std::collections::BTreeSet<
719            super::super::super::super::super::objects::api::rids::WorkspaceRid,
720        >,
721    ) -> Result<
722        Vec<
723            super::super::super::super::super::objects::scout::integrations::api::Integration,
724        >,
725        conjure_http::private::Error,
726    >;
727    /// Sends a string message to the specified integration from a checklist execution.
728    #[endpoint(
729        method = POST,
730        path = "/scout/v2/integrations/send-message",
731        name = "sendMessage",
732        accept = conjure_http::client::conjure::EmptyResponseDeserializer
733    )]
734    async fn send_message(
735        &self,
736        #[auth]
737        auth_: &conjure_object::BearerToken,
738        #[body(serializer = conjure_http::client::StdRequestSerializer)]
739        request: &super::super::super::super::super::objects::scout::integrations::api::SendMessageRequest,
740    ) -> Result<(), conjure_http::private::Error>;
741    /// Rotates the HMAC signing key for a webhook integration.
742    /// The old key is immediately invalidated and a new key is generated and returned.
743    /// This is the only way to retrieve the signing key after initial creation.
744    #[endpoint(
745        method = POST,
746        path = "/scout/v2/integrations/internal/{integrationRid}/rotate-signing-key",
747        name = "rotateSecureWebhookIntegrationSigningKey",
748        accept = conjure_http::client::StdResponseDeserializer
749    )]
750    async fn rotate_secure_webhook_integration_signing_key(
751        &self,
752        #[auth]
753        auth_: &conjure_object::BearerToken,
754        #[path(
755            name = "integrationRid",
756            encoder = conjure_http::client::conjure::PlainEncoder
757        )]
758        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
759    ) -> Result<
760        super::super::super::super::super::objects::scout::integrations::api::RotateWebhookSigningKeyResponse,
761        conjure_http::private::Error,
762    >;
763}