use conjure_http::endpoint;
/// Service for managing integrations with external services.
#[conjure_http::conjure_client(name = "IntegrationsService")]
pub trait IntegrationsService<
    #[response_body]
    I: Iterator<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Generates link to request permissions for Slack bot to join workspaces and use a webhook.
    #[endpoint(
        method = GET,
        path = "/scout/v2/integrations/slack-oauth/init-webhook",
        name = "generateSlackWebhookLink",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn generate_slack_webhook_link(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[query(
            name = "workspace",
            encoder = conjure_http::client::conjure::PlainSeqEncoder
        )]
        workspace: Option<&conjure_object::ResourceIdentifier>,
        #[query(
            name = "isGovSlack",
            encoder = conjure_http::client::conjure::PlainSeqEncoder
        )]
        is_gov_slack: Option<bool>,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::GenerateSlackWebhookResponse,
        conjure_http::private::Error,
    >;
    /// Creates a new Slack integration. Called internally after Slack authorization.
    #[endpoint(
        method = GET,
        path = "/scout/v2/integrations/slack-oauth/redirect",
        name = "createSlackWebhook",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    fn create_slack_webhook(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[query(name = "code", encoder = conjure_http::client::conjure::PlainEncoder)]
        code: &str,
        #[query(name = "state", encoder = conjure_http::client::conjure::PlainEncoder)]
        state: &str,
    ) -> Result<(), conjure_http::private::Error>;
    /// Creates a new integration.
    #[endpoint(
        method = POST,
        path = "/scout/v2/integrations",
        name = "createIntegration",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn create_integration(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        create_integration_request: &super::super::super::super::super::objects::scout::integrations::api::CreateIntegrationRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::Integration,
        conjure_http::private::Error,
    >;
    /// Creates a new webhook integration with HMAC signing.
    /// Returns the integration and the server-generated signing key.
    /// The signing key is only returned once — store it securely.
    #[endpoint(
        method = POST,
        path = "/scout/v2/integrations/internal/secure-webhook",
        name = "createSecureWebhookIntegration",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn create_secure_webhook_integration(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::integrations::api::CreateSecureWebhookIntegrationRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::CreateSecureWebhookIntegrationResponse,
        conjure_http::private::Error,
    >;
    /// Sends a message to a secure webhook integration with HMAC-SHA256 signature.
    /// Implements retry logic with exponential backoff based on merged delivery configuration.
    /// Request configuration overrides take precedence over integration's stored configuration.
    #[endpoint(
        method = POST,
        path = "/scout/v2/integrations/internal/secure-webhook/{integrationRid}",
        name = "sendSecureWebhookMessage",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn send_secure_webhook_message(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "integrationRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::integrations::api::SendSecureWebhookMessageRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::SendSecureWebhookMessageResponse,
        conjure_http::private::Error,
    >;
    /// Deletes an integration by archiving.
    #[endpoint(
        method = DELETE,
        path = "/scout/v2/integrations/{integrationRid}",
        name = "deleteIntegration",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    fn delete_integration(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "integrationRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
    ) -> Result<(), conjure_http::private::Error>;
    /// Updates the metadata of an integration.
    #[endpoint(
        method = PUT,
        path = "/scout/v2/integrations/{integrationRid}",
        name = "updateIntegrationMetadata",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn update_integration_metadata(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "integrationRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::integrations::api::UpdateIntegrationRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::Integration,
        conjure_http::private::Error,
    >;
    /// Updates the integration details for an integration.
    /// Intended to allow changing webhooks or rotating API keys.
    #[endpoint(
        method = PUT,
        path = "/scout/v2/integrations/{integrationRid}/details",
        name = "updateIntegrationDetails",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn update_integration_details(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "integrationRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::integrations::api::UpdateIntegrationDetailsRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::Integration,
        conjure_http::private::Error,
    >;
    /// Retrieves an integration with the specified integration RID.
    #[endpoint(
        method = GET,
        path = "/scout/v2/integrations/{integrationRid}",
        name = "getIntegration",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn get_integration(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "integrationRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::Integration,
        conjure_http::private::Error,
    >;
    /// Lists all integrations. Archived integrations are not included.
    #[endpoint(
        method = GET,
        path = "/scout/v2/integrations/list",
        name = "listIntegrations",
        accept = conjure_http::client::conjure::CollectionResponseDeserializer
    )]
    fn list_integrations(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[query(
            name = "workspaces",
            encoder = conjure_http::client::conjure::PlainSeqEncoder
        )]
        workspaces: &std::collections::BTreeSet<conjure_object::ResourceIdentifier>,
    ) -> Result<
        Vec<
            super::super::super::super::super::objects::scout::integrations::api::Integration,
        >,
        conjure_http::private::Error,
    >;
    /// Sends a string message to the specified integration from a checklist execution.
    #[endpoint(
        method = POST,
        path = "/scout/v2/integrations/send-message",
        name = "sendMessage",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    fn send_message(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::integrations::api::SendMessageRequest,
    ) -> Result<(), conjure_http::private::Error>;
    /// Rotates the HMAC signing key for a webhook integration.
    /// The old key is immediately invalidated and a new key is generated and returned.
    /// This is the only way to retrieve the signing key after initial creation.
    #[endpoint(
        method = POST,
        path = "/scout/v2/integrations/internal/{integrationRid}/rotate-signing-key",
        name = "rotateSecureWebhookIntegrationSigningKey",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn rotate_secure_webhook_integration_signing_key(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "integrationRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::RotateWebhookSigningKeyResponse,
        conjure_http::private::Error,
    >;
}
/// Service for managing integrations with external services.
#[conjure_http::conjure_client(name = "IntegrationsService")]
pub trait AsyncIntegrationsService<
    #[response_body]
    I: conjure_http::private::Stream<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Generates link to request permissions for Slack bot to join workspaces and use a webhook.
    #[endpoint(
        method = GET,
        path = "/scout/v2/integrations/slack-oauth/init-webhook",
        name = "generateSlackWebhookLink",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn generate_slack_webhook_link(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[query(
            name = "workspace",
            encoder = conjure_http::client::conjure::PlainSeqEncoder
        )]
        workspace: Option<&conjure_object::ResourceIdentifier>,
        #[query(
            name = "isGovSlack",
            encoder = conjure_http::client::conjure::PlainSeqEncoder
        )]
        is_gov_slack: Option<bool>,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::GenerateSlackWebhookResponse,
        conjure_http::private::Error,
    >;
    /// Creates a new Slack integration. Called internally after Slack authorization.
    #[endpoint(
        method = GET,
        path = "/scout/v2/integrations/slack-oauth/redirect",
        name = "createSlackWebhook",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    async fn create_slack_webhook(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[query(name = "code", encoder = conjure_http::client::conjure::PlainEncoder)]
        code: &str,
        #[query(name = "state", encoder = conjure_http::client::conjure::PlainEncoder)]
        state: &str,
    ) -> Result<(), conjure_http::private::Error>;
    /// Creates a new integration.
    #[endpoint(
        method = POST,
        path = "/scout/v2/integrations",
        name = "createIntegration",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn create_integration(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        create_integration_request: &super::super::super::super::super::objects::scout::integrations::api::CreateIntegrationRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::Integration,
        conjure_http::private::Error,
    >;
    /// Creates a new webhook integration with HMAC signing.
    /// Returns the integration and the server-generated signing key.
    /// The signing key is only returned once — store it securely.
    #[endpoint(
        method = POST,
        path = "/scout/v2/integrations/internal/secure-webhook",
        name = "createSecureWebhookIntegration",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn create_secure_webhook_integration(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::integrations::api::CreateSecureWebhookIntegrationRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::CreateSecureWebhookIntegrationResponse,
        conjure_http::private::Error,
    >;
    /// Sends a message to a secure webhook integration with HMAC-SHA256 signature.
    /// Implements retry logic with exponential backoff based on merged delivery configuration.
    /// Request configuration overrides take precedence over integration's stored configuration.
    #[endpoint(
        method = POST,
        path = "/scout/v2/integrations/internal/secure-webhook/{integrationRid}",
        name = "sendSecureWebhookMessage",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn send_secure_webhook_message(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "integrationRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::integrations::api::SendSecureWebhookMessageRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::SendSecureWebhookMessageResponse,
        conjure_http::private::Error,
    >;
    /// Deletes an integration by archiving.
    #[endpoint(
        method = DELETE,
        path = "/scout/v2/integrations/{integrationRid}",
        name = "deleteIntegration",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    async fn delete_integration(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "integrationRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
    ) -> Result<(), conjure_http::private::Error>;
    /// Updates the metadata of an integration.
    #[endpoint(
        method = PUT,
        path = "/scout/v2/integrations/{integrationRid}",
        name = "updateIntegrationMetadata",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn update_integration_metadata(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "integrationRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::integrations::api::UpdateIntegrationRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::Integration,
        conjure_http::private::Error,
    >;
    /// Updates the integration details for an integration.
    /// Intended to allow changing webhooks or rotating API keys.
    #[endpoint(
        method = PUT,
        path = "/scout/v2/integrations/{integrationRid}/details",
        name = "updateIntegrationDetails",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn update_integration_details(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "integrationRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::integrations::api::UpdateIntegrationDetailsRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::Integration,
        conjure_http::private::Error,
    >;
    /// Retrieves an integration with the specified integration RID.
    #[endpoint(
        method = GET,
        path = "/scout/v2/integrations/{integrationRid}",
        name = "getIntegration",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn get_integration(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "integrationRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::Integration,
        conjure_http::private::Error,
    >;
    /// Lists all integrations. Archived integrations are not included.
    #[endpoint(
        method = GET,
        path = "/scout/v2/integrations/list",
        name = "listIntegrations",
        accept = conjure_http::client::conjure::CollectionResponseDeserializer
    )]
    async fn list_integrations(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[query(
            name = "workspaces",
            encoder = conjure_http::client::conjure::PlainSeqEncoder
        )]
        workspaces: &std::collections::BTreeSet<conjure_object::ResourceIdentifier>,
    ) -> Result<
        Vec<
            super::super::super::super::super::objects::scout::integrations::api::Integration,
        >,
        conjure_http::private::Error,
    >;
    /// Sends a string message to the specified integration from a checklist execution.
    #[endpoint(
        method = POST,
        path = "/scout/v2/integrations/send-message",
        name = "sendMessage",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    async fn send_message(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::integrations::api::SendMessageRequest,
    ) -> Result<(), conjure_http::private::Error>;
    /// Rotates the HMAC signing key for a webhook integration.
    /// The old key is immediately invalidated and a new key is generated and returned.
    /// This is the only way to retrieve the signing key after initial creation.
    #[endpoint(
        method = POST,
        path = "/scout/v2/integrations/internal/{integrationRid}/rotate-signing-key",
        name = "rotateSecureWebhookIntegrationSigningKey",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn rotate_secure_webhook_integration_signing_key(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "integrationRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::RotateWebhookSigningKeyResponse,
        conjure_http::private::Error,
    >;
}
/// Service for managing integrations with external services.
#[conjure_http::conjure_client(name = "IntegrationsService", local)]
pub trait LocalAsyncIntegrationsService<
    #[response_body]
    I: conjure_http::private::Stream<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Generates link to request permissions for Slack bot to join workspaces and use a webhook.
    #[endpoint(
        method = GET,
        path = "/scout/v2/integrations/slack-oauth/init-webhook",
        name = "generateSlackWebhookLink",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn generate_slack_webhook_link(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[query(
            name = "workspace",
            encoder = conjure_http::client::conjure::PlainSeqEncoder
        )]
        workspace: Option<&conjure_object::ResourceIdentifier>,
        #[query(
            name = "isGovSlack",
            encoder = conjure_http::client::conjure::PlainSeqEncoder
        )]
        is_gov_slack: Option<bool>,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::GenerateSlackWebhookResponse,
        conjure_http::private::Error,
    >;
    /// Creates a new Slack integration. Called internally after Slack authorization.
    #[endpoint(
        method = GET,
        path = "/scout/v2/integrations/slack-oauth/redirect",
        name = "createSlackWebhook",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    async fn create_slack_webhook(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[query(name = "code", encoder = conjure_http::client::conjure::PlainEncoder)]
        code: &str,
        #[query(name = "state", encoder = conjure_http::client::conjure::PlainEncoder)]
        state: &str,
    ) -> Result<(), conjure_http::private::Error>;
    /// Creates a new integration.
    #[endpoint(
        method = POST,
        path = "/scout/v2/integrations",
        name = "createIntegration",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn create_integration(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        create_integration_request: &super::super::super::super::super::objects::scout::integrations::api::CreateIntegrationRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::Integration,
        conjure_http::private::Error,
    >;
    /// Creates a new webhook integration with HMAC signing.
    /// Returns the integration and the server-generated signing key.
    /// The signing key is only returned once — store it securely.
    #[endpoint(
        method = POST,
        path = "/scout/v2/integrations/internal/secure-webhook",
        name = "createSecureWebhookIntegration",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn create_secure_webhook_integration(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::integrations::api::CreateSecureWebhookIntegrationRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::CreateSecureWebhookIntegrationResponse,
        conjure_http::private::Error,
    >;
    /// Sends a message to a secure webhook integration with HMAC-SHA256 signature.
    /// Implements retry logic with exponential backoff based on merged delivery configuration.
    /// Request configuration overrides take precedence over integration's stored configuration.
    #[endpoint(
        method = POST,
        path = "/scout/v2/integrations/internal/secure-webhook/{integrationRid}",
        name = "sendSecureWebhookMessage",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn send_secure_webhook_message(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "integrationRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::integrations::api::SendSecureWebhookMessageRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::SendSecureWebhookMessageResponse,
        conjure_http::private::Error,
    >;
    /// Deletes an integration by archiving.
    #[endpoint(
        method = DELETE,
        path = "/scout/v2/integrations/{integrationRid}",
        name = "deleteIntegration",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    async fn delete_integration(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "integrationRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
    ) -> Result<(), conjure_http::private::Error>;
    /// Updates the metadata of an integration.
    #[endpoint(
        method = PUT,
        path = "/scout/v2/integrations/{integrationRid}",
        name = "updateIntegrationMetadata",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn update_integration_metadata(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "integrationRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::integrations::api::UpdateIntegrationRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::Integration,
        conjure_http::private::Error,
    >;
    /// Updates the integration details for an integration.
    /// Intended to allow changing webhooks or rotating API keys.
    #[endpoint(
        method = PUT,
        path = "/scout/v2/integrations/{integrationRid}/details",
        name = "updateIntegrationDetails",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn update_integration_details(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "integrationRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::integrations::api::UpdateIntegrationDetailsRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::Integration,
        conjure_http::private::Error,
    >;
    /// Retrieves an integration with the specified integration RID.
    #[endpoint(
        method = GET,
        path = "/scout/v2/integrations/{integrationRid}",
        name = "getIntegration",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn get_integration(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "integrationRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::Integration,
        conjure_http::private::Error,
    >;
    /// Lists all integrations. Archived integrations are not included.
    #[endpoint(
        method = GET,
        path = "/scout/v2/integrations/list",
        name = "listIntegrations",
        accept = conjure_http::client::conjure::CollectionResponseDeserializer
    )]
    async fn list_integrations(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[query(
            name = "workspaces",
            encoder = conjure_http::client::conjure::PlainSeqEncoder
        )]
        workspaces: &std::collections::BTreeSet<conjure_object::ResourceIdentifier>,
    ) -> Result<
        Vec<
            super::super::super::super::super::objects::scout::integrations::api::Integration,
        >,
        conjure_http::private::Error,
    >;
    /// Sends a string message to the specified integration from a checklist execution.
    #[endpoint(
        method = POST,
        path = "/scout/v2/integrations/send-message",
        name = "sendMessage",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    async fn send_message(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::integrations::api::SendMessageRequest,
    ) -> Result<(), conjure_http::private::Error>;
    /// Rotates the HMAC signing key for a webhook integration.
    /// The old key is immediately invalidated and a new key is generated and returned.
    /// This is the only way to retrieve the signing key after initial creation.
    #[endpoint(
        method = POST,
        path = "/scout/v2/integrations/internal/{integrationRid}/rotate-signing-key",
        name = "rotateSecureWebhookIntegrationSigningKey",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn rotate_secure_webhook_integration_signing_key(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "integrationRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        integration_rid: &super::super::super::super::super::objects::scout::integrations::api::IntegrationRid,
    ) -> Result<
        super::super::super::super::super::objects::scout::integrations::api::RotateWebhookSigningKeyResponse,
        conjure_http::private::Error,
    >;
}
