aws-sdk-athena 0.24.0

AWS SDK for Amazon Athena
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateWorkGroupOutput {}
/// See [`UpdateWorkGroupOutput`](crate::output::UpdateWorkGroupOutput).
pub mod update_work_group_output {

    /// A builder for [`UpdateWorkGroupOutput`](crate::output::UpdateWorkGroupOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`UpdateWorkGroupOutput`](crate::output::UpdateWorkGroupOutput).
        pub fn build(self) -> crate::output::UpdateWorkGroupOutput {
            crate::output::UpdateWorkGroupOutput {}
        }
    }
}
impl UpdateWorkGroupOutput {
    /// Creates a new builder-style object to manufacture [`UpdateWorkGroupOutput`](crate::output::UpdateWorkGroupOutput).
    pub fn builder() -> crate::output::update_work_group_output::Builder {
        crate::output::update_work_group_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdatePreparedStatementOutput {}
/// See [`UpdatePreparedStatementOutput`](crate::output::UpdatePreparedStatementOutput).
pub mod update_prepared_statement_output {

    /// A builder for [`UpdatePreparedStatementOutput`](crate::output::UpdatePreparedStatementOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`UpdatePreparedStatementOutput`](crate::output::UpdatePreparedStatementOutput).
        pub fn build(self) -> crate::output::UpdatePreparedStatementOutput {
            crate::output::UpdatePreparedStatementOutput {}
        }
    }
}
impl UpdatePreparedStatementOutput {
    /// Creates a new builder-style object to manufacture [`UpdatePreparedStatementOutput`](crate::output::UpdatePreparedStatementOutput).
    pub fn builder() -> crate::output::update_prepared_statement_output::Builder {
        crate::output::update_prepared_statement_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateNotebookMetadataOutput {}
/// See [`UpdateNotebookMetadataOutput`](crate::output::UpdateNotebookMetadataOutput).
pub mod update_notebook_metadata_output {

    /// A builder for [`UpdateNotebookMetadataOutput`](crate::output::UpdateNotebookMetadataOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`UpdateNotebookMetadataOutput`](crate::output::UpdateNotebookMetadataOutput).
        pub fn build(self) -> crate::output::UpdateNotebookMetadataOutput {
            crate::output::UpdateNotebookMetadataOutput {}
        }
    }
}
impl UpdateNotebookMetadataOutput {
    /// Creates a new builder-style object to manufacture [`UpdateNotebookMetadataOutput`](crate::output::UpdateNotebookMetadataOutput).
    pub fn builder() -> crate::output::update_notebook_metadata_output::Builder {
        crate::output::update_notebook_metadata_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateNotebookOutput {}
/// See [`UpdateNotebookOutput`](crate::output::UpdateNotebookOutput).
pub mod update_notebook_output {

    /// A builder for [`UpdateNotebookOutput`](crate::output::UpdateNotebookOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`UpdateNotebookOutput`](crate::output::UpdateNotebookOutput).
        pub fn build(self) -> crate::output::UpdateNotebookOutput {
            crate::output::UpdateNotebookOutput {}
        }
    }
}
impl UpdateNotebookOutput {
    /// Creates a new builder-style object to manufacture [`UpdateNotebookOutput`](crate::output::UpdateNotebookOutput).
    pub fn builder() -> crate::output::update_notebook_output::Builder {
        crate::output::update_notebook_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateNamedQueryOutput {}
/// See [`UpdateNamedQueryOutput`](crate::output::UpdateNamedQueryOutput).
pub mod update_named_query_output {

    /// A builder for [`UpdateNamedQueryOutput`](crate::output::UpdateNamedQueryOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`UpdateNamedQueryOutput`](crate::output::UpdateNamedQueryOutput).
        pub fn build(self) -> crate::output::UpdateNamedQueryOutput {
            crate::output::UpdateNamedQueryOutput {}
        }
    }
}
impl UpdateNamedQueryOutput {
    /// Creates a new builder-style object to manufacture [`UpdateNamedQueryOutput`](crate::output::UpdateNamedQueryOutput).
    pub fn builder() -> crate::output::update_named_query_output::Builder {
        crate::output::update_named_query_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateDataCatalogOutput {}
/// See [`UpdateDataCatalogOutput`](crate::output::UpdateDataCatalogOutput).
pub mod update_data_catalog_output {

    /// A builder for [`UpdateDataCatalogOutput`](crate::output::UpdateDataCatalogOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`UpdateDataCatalogOutput`](crate::output::UpdateDataCatalogOutput).
        pub fn build(self) -> crate::output::UpdateDataCatalogOutput {
            crate::output::UpdateDataCatalogOutput {}
        }
    }
}
impl UpdateDataCatalogOutput {
    /// Creates a new builder-style object to manufacture [`UpdateDataCatalogOutput`](crate::output::UpdateDataCatalogOutput).
    pub fn builder() -> crate::output::update_data_catalog_output::Builder {
        crate::output::update_data_catalog_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UntagResourceOutput {}
/// See [`UntagResourceOutput`](crate::output::UntagResourceOutput).
pub mod untag_resource_output {

    /// A builder for [`UntagResourceOutput`](crate::output::UntagResourceOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`UntagResourceOutput`](crate::output::UntagResourceOutput).
        pub fn build(self) -> crate::output::UntagResourceOutput {
            crate::output::UntagResourceOutput {}
        }
    }
}
impl UntagResourceOutput {
    /// Creates a new builder-style object to manufacture [`UntagResourceOutput`](crate::output::UntagResourceOutput).
    pub fn builder() -> crate::output::untag_resource_output::Builder {
        crate::output::untag_resource_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct TerminateSessionOutput {
    /// <p>The state of the session. A description of each state follows.</p>
    /// <p> <code>CREATING</code> - The session is being started, including acquiring resources.</p>
    /// <p> <code>CREATED</code> - The session has been started.</p>
    /// <p> <code>IDLE</code> - The session is able to accept a calculation.</p>
    /// <p> <code>BUSY</code> - The session is processing another task and is unable to accept a calculation.</p>
    /// <p> <code>TERMINATING</code> - The session is in the process of shutting down.</p>
    /// <p> <code>TERMINATED</code> - The session and its resources are no longer running.</p>
    /// <p> <code>DEGRADED</code> - The session has no healthy coordinators.</p>
    /// <p> <code>FAILED</code> - Due to a failure, the session and its resources are no longer running.</p>
    #[doc(hidden)]
    pub state: std::option::Option<crate::model::SessionState>,
}
impl TerminateSessionOutput {
    /// <p>The state of the session. A description of each state follows.</p>
    /// <p> <code>CREATING</code> - The session is being started, including acquiring resources.</p>
    /// <p> <code>CREATED</code> - The session has been started.</p>
    /// <p> <code>IDLE</code> - The session is able to accept a calculation.</p>
    /// <p> <code>BUSY</code> - The session is processing another task and is unable to accept a calculation.</p>
    /// <p> <code>TERMINATING</code> - The session is in the process of shutting down.</p>
    /// <p> <code>TERMINATED</code> - The session and its resources are no longer running.</p>
    /// <p> <code>DEGRADED</code> - The session has no healthy coordinators.</p>
    /// <p> <code>FAILED</code> - Due to a failure, the session and its resources are no longer running.</p>
    pub fn state(&self) -> std::option::Option<&crate::model::SessionState> {
        self.state.as_ref()
    }
}
/// See [`TerminateSessionOutput`](crate::output::TerminateSessionOutput).
pub mod terminate_session_output {

    /// A builder for [`TerminateSessionOutput`](crate::output::TerminateSessionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) state: std::option::Option<crate::model::SessionState>,
    }
    impl Builder {
        /// <p>The state of the session. A description of each state follows.</p>
        /// <p> <code>CREATING</code> - The session is being started, including acquiring resources.</p>
        /// <p> <code>CREATED</code> - The session has been started.</p>
        /// <p> <code>IDLE</code> - The session is able to accept a calculation.</p>
        /// <p> <code>BUSY</code> - The session is processing another task and is unable to accept a calculation.</p>
        /// <p> <code>TERMINATING</code> - The session is in the process of shutting down.</p>
        /// <p> <code>TERMINATED</code> - The session and its resources are no longer running.</p>
        /// <p> <code>DEGRADED</code> - The session has no healthy coordinators.</p>
        /// <p> <code>FAILED</code> - Due to a failure, the session and its resources are no longer running.</p>
        pub fn state(mut self, input: crate::model::SessionState) -> Self {
            self.state = Some(input);
            self
        }
        /// <p>The state of the session. A description of each state follows.</p>
        /// <p> <code>CREATING</code> - The session is being started, including acquiring resources.</p>
        /// <p> <code>CREATED</code> - The session has been started.</p>
        /// <p> <code>IDLE</code> - The session is able to accept a calculation.</p>
        /// <p> <code>BUSY</code> - The session is processing another task and is unable to accept a calculation.</p>
        /// <p> <code>TERMINATING</code> - The session is in the process of shutting down.</p>
        /// <p> <code>TERMINATED</code> - The session and its resources are no longer running.</p>
        /// <p> <code>DEGRADED</code> - The session has no healthy coordinators.</p>
        /// <p> <code>FAILED</code> - Due to a failure, the session and its resources are no longer running.</p>
        pub fn set_state(mut self, input: std::option::Option<crate::model::SessionState>) -> Self {
            self.state = input;
            self
        }
        /// Consumes the builder and constructs a [`TerminateSessionOutput`](crate::output::TerminateSessionOutput).
        pub fn build(self) -> crate::output::TerminateSessionOutput {
            crate::output::TerminateSessionOutput { state: self.state }
        }
    }
}
impl TerminateSessionOutput {
    /// Creates a new builder-style object to manufacture [`TerminateSessionOutput`](crate::output::TerminateSessionOutput).
    pub fn builder() -> crate::output::terminate_session_output::Builder {
        crate::output::terminate_session_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct TagResourceOutput {}
/// See [`TagResourceOutput`](crate::output::TagResourceOutput).
pub mod tag_resource_output {

    /// A builder for [`TagResourceOutput`](crate::output::TagResourceOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`TagResourceOutput`](crate::output::TagResourceOutput).
        pub fn build(self) -> crate::output::TagResourceOutput {
            crate::output::TagResourceOutput {}
        }
    }
}
impl TagResourceOutput {
    /// Creates a new builder-style object to manufacture [`TagResourceOutput`](crate::output::TagResourceOutput).
    pub fn builder() -> crate::output::tag_resource_output::Builder {
        crate::output::tag_resource_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct StopQueryExecutionOutput {}
/// See [`StopQueryExecutionOutput`](crate::output::StopQueryExecutionOutput).
pub mod stop_query_execution_output {

    /// A builder for [`StopQueryExecutionOutput`](crate::output::StopQueryExecutionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`StopQueryExecutionOutput`](crate::output::StopQueryExecutionOutput).
        pub fn build(self) -> crate::output::StopQueryExecutionOutput {
            crate::output::StopQueryExecutionOutput {}
        }
    }
}
impl StopQueryExecutionOutput {
    /// Creates a new builder-style object to manufacture [`StopQueryExecutionOutput`](crate::output::StopQueryExecutionOutput).
    pub fn builder() -> crate::output::stop_query_execution_output::Builder {
        crate::output::stop_query_execution_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct StopCalculationExecutionOutput {
    /// <p> <code>CREATING</code> - The calculation is in the process of being created.</p>
    /// <p> <code>CREATED</code> - The calculation has been created and is ready to run.</p>
    /// <p> <code>QUEUED</code> - The calculation has been queued for processing.</p>
    /// <p> <code>RUNNING</code> - The calculation is running.</p>
    /// <p> <code>CANCELING</code> - A request to cancel the calculation has been received and the system is working to stop it.</p>
    /// <p> <code>CANCELED</code> - The calculation is no longer running as the result of a cancel request.</p>
    /// <p> <code>COMPLETED</code> - The calculation has completed without error.</p>
    /// <p> <code>FAILED</code> - The calculation failed and is no longer running.</p>
    #[doc(hidden)]
    pub state: std::option::Option<crate::model::CalculationExecutionState>,
}
impl StopCalculationExecutionOutput {
    /// <p> <code>CREATING</code> - The calculation is in the process of being created.</p>
    /// <p> <code>CREATED</code> - The calculation has been created and is ready to run.</p>
    /// <p> <code>QUEUED</code> - The calculation has been queued for processing.</p>
    /// <p> <code>RUNNING</code> - The calculation is running.</p>
    /// <p> <code>CANCELING</code> - A request to cancel the calculation has been received and the system is working to stop it.</p>
    /// <p> <code>CANCELED</code> - The calculation is no longer running as the result of a cancel request.</p>
    /// <p> <code>COMPLETED</code> - The calculation has completed without error.</p>
    /// <p> <code>FAILED</code> - The calculation failed and is no longer running.</p>
    pub fn state(&self) -> std::option::Option<&crate::model::CalculationExecutionState> {
        self.state.as_ref()
    }
}
/// See [`StopCalculationExecutionOutput`](crate::output::StopCalculationExecutionOutput).
pub mod stop_calculation_execution_output {

    /// A builder for [`StopCalculationExecutionOutput`](crate::output::StopCalculationExecutionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) state: std::option::Option<crate::model::CalculationExecutionState>,
    }
    impl Builder {
        /// <p> <code>CREATING</code> - The calculation is in the process of being created.</p>
        /// <p> <code>CREATED</code> - The calculation has been created and is ready to run.</p>
        /// <p> <code>QUEUED</code> - The calculation has been queued for processing.</p>
        /// <p> <code>RUNNING</code> - The calculation is running.</p>
        /// <p> <code>CANCELING</code> - A request to cancel the calculation has been received and the system is working to stop it.</p>
        /// <p> <code>CANCELED</code> - The calculation is no longer running as the result of a cancel request.</p>
        /// <p> <code>COMPLETED</code> - The calculation has completed without error.</p>
        /// <p> <code>FAILED</code> - The calculation failed and is no longer running.</p>
        pub fn state(mut self, input: crate::model::CalculationExecutionState) -> Self {
            self.state = Some(input);
            self
        }
        /// <p> <code>CREATING</code> - The calculation is in the process of being created.</p>
        /// <p> <code>CREATED</code> - The calculation has been created and is ready to run.</p>
        /// <p> <code>QUEUED</code> - The calculation has been queued for processing.</p>
        /// <p> <code>RUNNING</code> - The calculation is running.</p>
        /// <p> <code>CANCELING</code> - A request to cancel the calculation has been received and the system is working to stop it.</p>
        /// <p> <code>CANCELED</code> - The calculation is no longer running as the result of a cancel request.</p>
        /// <p> <code>COMPLETED</code> - The calculation has completed without error.</p>
        /// <p> <code>FAILED</code> - The calculation failed and is no longer running.</p>
        pub fn set_state(
            mut self,
            input: std::option::Option<crate::model::CalculationExecutionState>,
        ) -> Self {
            self.state = input;
            self
        }
        /// Consumes the builder and constructs a [`StopCalculationExecutionOutput`](crate::output::StopCalculationExecutionOutput).
        pub fn build(self) -> crate::output::StopCalculationExecutionOutput {
            crate::output::StopCalculationExecutionOutput { state: self.state }
        }
    }
}
impl StopCalculationExecutionOutput {
    /// Creates a new builder-style object to manufacture [`StopCalculationExecutionOutput`](crate::output::StopCalculationExecutionOutput).
    pub fn builder() -> crate::output::stop_calculation_execution_output::Builder {
        crate::output::stop_calculation_execution_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct StartSessionOutput {
    /// <p>The session ID.</p>
    #[doc(hidden)]
    pub session_id: std::option::Option<std::string::String>,
    /// <p>The state of the session. A description of each state follows.</p>
    /// <p> <code>CREATING</code> - The session is being started, including acquiring resources.</p>
    /// <p> <code>CREATED</code> - The session has been started.</p>
    /// <p> <code>IDLE</code> - The session is able to accept a calculation.</p>
    /// <p> <code>BUSY</code> - The session is processing another task and is unable to accept a calculation.</p>
    /// <p> <code>TERMINATING</code> - The session is in the process of shutting down.</p>
    /// <p> <code>TERMINATED</code> - The session and its resources are no longer running.</p>
    /// <p> <code>DEGRADED</code> - The session has no healthy coordinators.</p>
    /// <p> <code>FAILED</code> - Due to a failure, the session and its resources are no longer running.</p>
    #[doc(hidden)]
    pub state: std::option::Option<crate::model::SessionState>,
}
impl StartSessionOutput {
    /// <p>The session ID.</p>
    pub fn session_id(&self) -> std::option::Option<&str> {
        self.session_id.as_deref()
    }
    /// <p>The state of the session. A description of each state follows.</p>
    /// <p> <code>CREATING</code> - The session is being started, including acquiring resources.</p>
    /// <p> <code>CREATED</code> - The session has been started.</p>
    /// <p> <code>IDLE</code> - The session is able to accept a calculation.</p>
    /// <p> <code>BUSY</code> - The session is processing another task and is unable to accept a calculation.</p>
    /// <p> <code>TERMINATING</code> - The session is in the process of shutting down.</p>
    /// <p> <code>TERMINATED</code> - The session and its resources are no longer running.</p>
    /// <p> <code>DEGRADED</code> - The session has no healthy coordinators.</p>
    /// <p> <code>FAILED</code> - Due to a failure, the session and its resources are no longer running.</p>
    pub fn state(&self) -> std::option::Option<&crate::model::SessionState> {
        self.state.as_ref()
    }
}
/// See [`StartSessionOutput`](crate::output::StartSessionOutput).
pub mod start_session_output {

    /// A builder for [`StartSessionOutput`](crate::output::StartSessionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) session_id: std::option::Option<std::string::String>,
        pub(crate) state: std::option::Option<crate::model::SessionState>,
    }
    impl Builder {
        /// <p>The session ID.</p>
        pub fn session_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.session_id = Some(input.into());
            self
        }
        /// <p>The session ID.</p>
        pub fn set_session_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.session_id = input;
            self
        }
        /// <p>The state of the session. A description of each state follows.</p>
        /// <p> <code>CREATING</code> - The session is being started, including acquiring resources.</p>
        /// <p> <code>CREATED</code> - The session has been started.</p>
        /// <p> <code>IDLE</code> - The session is able to accept a calculation.</p>
        /// <p> <code>BUSY</code> - The session is processing another task and is unable to accept a calculation.</p>
        /// <p> <code>TERMINATING</code> - The session is in the process of shutting down.</p>
        /// <p> <code>TERMINATED</code> - The session and its resources are no longer running.</p>
        /// <p> <code>DEGRADED</code> - The session has no healthy coordinators.</p>
        /// <p> <code>FAILED</code> - Due to a failure, the session and its resources are no longer running.</p>
        pub fn state(mut self, input: crate::model::SessionState) -> Self {
            self.state = Some(input);
            self
        }
        /// <p>The state of the session. A description of each state follows.</p>
        /// <p> <code>CREATING</code> - The session is being started, including acquiring resources.</p>
        /// <p> <code>CREATED</code> - The session has been started.</p>
        /// <p> <code>IDLE</code> - The session is able to accept a calculation.</p>
        /// <p> <code>BUSY</code> - The session is processing another task and is unable to accept a calculation.</p>
        /// <p> <code>TERMINATING</code> - The session is in the process of shutting down.</p>
        /// <p> <code>TERMINATED</code> - The session and its resources are no longer running.</p>
        /// <p> <code>DEGRADED</code> - The session has no healthy coordinators.</p>
        /// <p> <code>FAILED</code> - Due to a failure, the session and its resources are no longer running.</p>
        pub fn set_state(mut self, input: std::option::Option<crate::model::SessionState>) -> Self {
            self.state = input;
            self
        }
        /// Consumes the builder and constructs a [`StartSessionOutput`](crate::output::StartSessionOutput).
        pub fn build(self) -> crate::output::StartSessionOutput {
            crate::output::StartSessionOutput {
                session_id: self.session_id,
                state: self.state,
            }
        }
    }
}
impl StartSessionOutput {
    /// Creates a new builder-style object to manufacture [`StartSessionOutput`](crate::output::StartSessionOutput).
    pub fn builder() -> crate::output::start_session_output::Builder {
        crate::output::start_session_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct StartQueryExecutionOutput {
    /// <p>The unique ID of the query that ran as a result of this request.</p>
    #[doc(hidden)]
    pub query_execution_id: std::option::Option<std::string::String>,
}
impl StartQueryExecutionOutput {
    /// <p>The unique ID of the query that ran as a result of this request.</p>
    pub fn query_execution_id(&self) -> std::option::Option<&str> {
        self.query_execution_id.as_deref()
    }
}
/// See [`StartQueryExecutionOutput`](crate::output::StartQueryExecutionOutput).
pub mod start_query_execution_output {

    /// A builder for [`StartQueryExecutionOutput`](crate::output::StartQueryExecutionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) query_execution_id: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The unique ID of the query that ran as a result of this request.</p>
        pub fn query_execution_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.query_execution_id = Some(input.into());
            self
        }
        /// <p>The unique ID of the query that ran as a result of this request.</p>
        pub fn set_query_execution_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.query_execution_id = input;
            self
        }
        /// Consumes the builder and constructs a [`StartQueryExecutionOutput`](crate::output::StartQueryExecutionOutput).
        pub fn build(self) -> crate::output::StartQueryExecutionOutput {
            crate::output::StartQueryExecutionOutput {
                query_execution_id: self.query_execution_id,
            }
        }
    }
}
impl StartQueryExecutionOutput {
    /// Creates a new builder-style object to manufacture [`StartQueryExecutionOutput`](crate::output::StartQueryExecutionOutput).
    pub fn builder() -> crate::output::start_query_execution_output::Builder {
        crate::output::start_query_execution_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct StartCalculationExecutionOutput {
    /// <p>The calculation execution UUID.</p>
    #[doc(hidden)]
    pub calculation_execution_id: std::option::Option<std::string::String>,
    /// <p> <code>CREATING</code> - The calculation is in the process of being created.</p>
    /// <p> <code>CREATED</code> - The calculation has been created and is ready to run.</p>
    /// <p> <code>QUEUED</code> - The calculation has been queued for processing.</p>
    /// <p> <code>RUNNING</code> - The calculation is running.</p>
    /// <p> <code>CANCELING</code> - A request to cancel the calculation has been received and the system is working to stop it.</p>
    /// <p> <code>CANCELED</code> - The calculation is no longer running as the result of a cancel request.</p>
    /// <p> <code>COMPLETED</code> - The calculation has completed without error.</p>
    /// <p> <code>FAILED</code> - The calculation failed and is no longer running.</p>
    #[doc(hidden)]
    pub state: std::option::Option<crate::model::CalculationExecutionState>,
}
impl StartCalculationExecutionOutput {
    /// <p>The calculation execution UUID.</p>
    pub fn calculation_execution_id(&self) -> std::option::Option<&str> {
        self.calculation_execution_id.as_deref()
    }
    /// <p> <code>CREATING</code> - The calculation is in the process of being created.</p>
    /// <p> <code>CREATED</code> - The calculation has been created and is ready to run.</p>
    /// <p> <code>QUEUED</code> - The calculation has been queued for processing.</p>
    /// <p> <code>RUNNING</code> - The calculation is running.</p>
    /// <p> <code>CANCELING</code> - A request to cancel the calculation has been received and the system is working to stop it.</p>
    /// <p> <code>CANCELED</code> - The calculation is no longer running as the result of a cancel request.</p>
    /// <p> <code>COMPLETED</code> - The calculation has completed without error.</p>
    /// <p> <code>FAILED</code> - The calculation failed and is no longer running.</p>
    pub fn state(&self) -> std::option::Option<&crate::model::CalculationExecutionState> {
        self.state.as_ref()
    }
}
/// See [`StartCalculationExecutionOutput`](crate::output::StartCalculationExecutionOutput).
pub mod start_calculation_execution_output {

    /// A builder for [`StartCalculationExecutionOutput`](crate::output::StartCalculationExecutionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) calculation_execution_id: std::option::Option<std::string::String>,
        pub(crate) state: std::option::Option<crate::model::CalculationExecutionState>,
    }
    impl Builder {
        /// <p>The calculation execution UUID.</p>
        pub fn calculation_execution_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.calculation_execution_id = Some(input.into());
            self
        }
        /// <p>The calculation execution UUID.</p>
        pub fn set_calculation_execution_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.calculation_execution_id = input;
            self
        }
        /// <p> <code>CREATING</code> - The calculation is in the process of being created.</p>
        /// <p> <code>CREATED</code> - The calculation has been created and is ready to run.</p>
        /// <p> <code>QUEUED</code> - The calculation has been queued for processing.</p>
        /// <p> <code>RUNNING</code> - The calculation is running.</p>
        /// <p> <code>CANCELING</code> - A request to cancel the calculation has been received and the system is working to stop it.</p>
        /// <p> <code>CANCELED</code> - The calculation is no longer running as the result of a cancel request.</p>
        /// <p> <code>COMPLETED</code> - The calculation has completed without error.</p>
        /// <p> <code>FAILED</code> - The calculation failed and is no longer running.</p>
        pub fn state(mut self, input: crate::model::CalculationExecutionState) -> Self {
            self.state = Some(input);
            self
        }
        /// <p> <code>CREATING</code> - The calculation is in the process of being created.</p>
        /// <p> <code>CREATED</code> - The calculation has been created and is ready to run.</p>
        /// <p> <code>QUEUED</code> - The calculation has been queued for processing.</p>
        /// <p> <code>RUNNING</code> - The calculation is running.</p>
        /// <p> <code>CANCELING</code> - A request to cancel the calculation has been received and the system is working to stop it.</p>
        /// <p> <code>CANCELED</code> - The calculation is no longer running as the result of a cancel request.</p>
        /// <p> <code>COMPLETED</code> - The calculation has completed without error.</p>
        /// <p> <code>FAILED</code> - The calculation failed and is no longer running.</p>
        pub fn set_state(
            mut self,
            input: std::option::Option<crate::model::CalculationExecutionState>,
        ) -> Self {
            self.state = input;
            self
        }
        /// Consumes the builder and constructs a [`StartCalculationExecutionOutput`](crate::output::StartCalculationExecutionOutput).
        pub fn build(self) -> crate::output::StartCalculationExecutionOutput {
            crate::output::StartCalculationExecutionOutput {
                calculation_execution_id: self.calculation_execution_id,
                state: self.state,
            }
        }
    }
}
impl StartCalculationExecutionOutput {
    /// Creates a new builder-style object to manufacture [`StartCalculationExecutionOutput`](crate::output::StartCalculationExecutionOutput).
    pub fn builder() -> crate::output::start_calculation_execution_output::Builder {
        crate::output::start_calculation_execution_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListWorkGroupsOutput {
    /// <p>A list of <code>WorkGroupSummary</code> objects that include the names, descriptions, creation times, and states for each workgroup.</p>
    #[doc(hidden)]
    pub work_groups: std::option::Option<std::vec::Vec<crate::model::WorkGroupSummary>>,
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListWorkGroupsOutput {
    /// <p>A list of <code>WorkGroupSummary</code> objects that include the names, descriptions, creation times, and states for each workgroup.</p>
    pub fn work_groups(&self) -> std::option::Option<&[crate::model::WorkGroupSummary]> {
        self.work_groups.as_deref()
    }
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListWorkGroupsOutput`](crate::output::ListWorkGroupsOutput).
pub mod list_work_groups_output {

    /// A builder for [`ListWorkGroupsOutput`](crate::output::ListWorkGroupsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) work_groups: std::option::Option<std::vec::Vec<crate::model::WorkGroupSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `work_groups`.
        ///
        /// To override the contents of this collection use [`set_work_groups`](Self::set_work_groups).
        ///
        /// <p>A list of <code>WorkGroupSummary</code> objects that include the names, descriptions, creation times, and states for each workgroup.</p>
        pub fn work_groups(mut self, input: crate::model::WorkGroupSummary) -> Self {
            let mut v = self.work_groups.unwrap_or_default();
            v.push(input);
            self.work_groups = Some(v);
            self
        }
        /// <p>A list of <code>WorkGroupSummary</code> objects that include the names, descriptions, creation times, and states for each workgroup.</p>
        pub fn set_work_groups(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::WorkGroupSummary>>,
        ) -> Self {
            self.work_groups = input;
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListWorkGroupsOutput`](crate::output::ListWorkGroupsOutput).
        pub fn build(self) -> crate::output::ListWorkGroupsOutput {
            crate::output::ListWorkGroupsOutput {
                work_groups: self.work_groups,
                next_token: self.next_token,
            }
        }
    }
}
impl ListWorkGroupsOutput {
    /// Creates a new builder-style object to manufacture [`ListWorkGroupsOutput`](crate::output::ListWorkGroupsOutput).
    pub fn builder() -> crate::output::list_work_groups_output::Builder {
        crate::output::list_work_groups_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListTagsForResourceOutput {
    /// <p>The list of tags associated with the specified resource.</p>
    #[doc(hidden)]
    pub tags: std::option::Option<std::vec::Vec<crate::model::Tag>>,
    /// <p>A token to be used by the next request if this request is truncated.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListTagsForResourceOutput {
    /// <p>The list of tags associated with the specified resource.</p>
    pub fn tags(&self) -> std::option::Option<&[crate::model::Tag]> {
        self.tags.as_deref()
    }
    /// <p>A token to be used by the next request if this request is truncated.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListTagsForResourceOutput`](crate::output::ListTagsForResourceOutput).
pub mod list_tags_for_resource_output {

    /// A builder for [`ListTagsForResourceOutput`](crate::output::ListTagsForResourceOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) tags: std::option::Option<std::vec::Vec<crate::model::Tag>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>The list of tags associated with the specified resource.</p>
        pub fn tags(mut self, input: crate::model::Tag) -> Self {
            let mut v = self.tags.unwrap_or_default();
            v.push(input);
            self.tags = Some(v);
            self
        }
        /// <p>The list of tags associated with the specified resource.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Tag>>,
        ) -> Self {
            self.tags = input;
            self
        }
        /// <p>A token to be used by the next request if this request is truncated.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token to be used by the next request if this request is truncated.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListTagsForResourceOutput`](crate::output::ListTagsForResourceOutput).
        pub fn build(self) -> crate::output::ListTagsForResourceOutput {
            crate::output::ListTagsForResourceOutput {
                tags: self.tags,
                next_token: self.next_token,
            }
        }
    }
}
impl ListTagsForResourceOutput {
    /// Creates a new builder-style object to manufacture [`ListTagsForResourceOutput`](crate::output::ListTagsForResourceOutput).
    pub fn builder() -> crate::output::list_tags_for_resource_output::Builder {
        crate::output::list_tags_for_resource_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListTableMetadataOutput {
    /// <p>A list of table metadata.</p>
    #[doc(hidden)]
    pub table_metadata_list: std::option::Option<std::vec::Vec<crate::model::TableMetadata>>,
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListTableMetadataOutput {
    /// <p>A list of table metadata.</p>
    pub fn table_metadata_list(&self) -> std::option::Option<&[crate::model::TableMetadata]> {
        self.table_metadata_list.as_deref()
    }
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListTableMetadataOutput`](crate::output::ListTableMetadataOutput).
pub mod list_table_metadata_output {

    /// A builder for [`ListTableMetadataOutput`](crate::output::ListTableMetadataOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) table_metadata_list:
            std::option::Option<std::vec::Vec<crate::model::TableMetadata>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `table_metadata_list`.
        ///
        /// To override the contents of this collection use [`set_table_metadata_list`](Self::set_table_metadata_list).
        ///
        /// <p>A list of table metadata.</p>
        pub fn table_metadata_list(mut self, input: crate::model::TableMetadata) -> Self {
            let mut v = self.table_metadata_list.unwrap_or_default();
            v.push(input);
            self.table_metadata_list = Some(v);
            self
        }
        /// <p>A list of table metadata.</p>
        pub fn set_table_metadata_list(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::TableMetadata>>,
        ) -> Self {
            self.table_metadata_list = input;
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListTableMetadataOutput`](crate::output::ListTableMetadataOutput).
        pub fn build(self) -> crate::output::ListTableMetadataOutput {
            crate::output::ListTableMetadataOutput {
                table_metadata_list: self.table_metadata_list,
                next_token: self.next_token,
            }
        }
    }
}
impl ListTableMetadataOutput {
    /// Creates a new builder-style object to manufacture [`ListTableMetadataOutput`](crate::output::ListTableMetadataOutput).
    pub fn builder() -> crate::output::list_table_metadata_output::Builder {
        crate::output::list_table_metadata_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListSessionsOutput {
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
    /// <p>A list of sessions.</p>
    #[doc(hidden)]
    pub sessions: std::option::Option<std::vec::Vec<crate::model::SessionSummary>>,
}
impl ListSessionsOutput {
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
    /// <p>A list of sessions.</p>
    pub fn sessions(&self) -> std::option::Option<&[crate::model::SessionSummary]> {
        self.sessions.as_deref()
    }
}
/// See [`ListSessionsOutput`](crate::output::ListSessionsOutput).
pub mod list_sessions_output {

    /// A builder for [`ListSessionsOutput`](crate::output::ListSessionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) next_token: std::option::Option<std::string::String>,
        pub(crate) sessions: std::option::Option<std::vec::Vec<crate::model::SessionSummary>>,
    }
    impl Builder {
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Appends an item to `sessions`.
        ///
        /// To override the contents of this collection use [`set_sessions`](Self::set_sessions).
        ///
        /// <p>A list of sessions.</p>
        pub fn sessions(mut self, input: crate::model::SessionSummary) -> Self {
            let mut v = self.sessions.unwrap_or_default();
            v.push(input);
            self.sessions = Some(v);
            self
        }
        /// <p>A list of sessions.</p>
        pub fn set_sessions(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::SessionSummary>>,
        ) -> Self {
            self.sessions = input;
            self
        }
        /// Consumes the builder and constructs a [`ListSessionsOutput`](crate::output::ListSessionsOutput).
        pub fn build(self) -> crate::output::ListSessionsOutput {
            crate::output::ListSessionsOutput {
                next_token: self.next_token,
                sessions: self.sessions,
            }
        }
    }
}
impl ListSessionsOutput {
    /// Creates a new builder-style object to manufacture [`ListSessionsOutput`](crate::output::ListSessionsOutput).
    pub fn builder() -> crate::output::list_sessions_output::Builder {
        crate::output::list_sessions_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListQueryExecutionsOutput {
    /// <p>The unique IDs of each query execution as an array of strings.</p>
    #[doc(hidden)]
    pub query_execution_ids: std::option::Option<std::vec::Vec<std::string::String>>,
    /// <p>A token to be used by the next request if this request is truncated.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListQueryExecutionsOutput {
    /// <p>The unique IDs of each query execution as an array of strings.</p>
    pub fn query_execution_ids(&self) -> std::option::Option<&[std::string::String]> {
        self.query_execution_ids.as_deref()
    }
    /// <p>A token to be used by the next request if this request is truncated.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListQueryExecutionsOutput`](crate::output::ListQueryExecutionsOutput).
pub mod list_query_executions_output {

    /// A builder for [`ListQueryExecutionsOutput`](crate::output::ListQueryExecutionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) query_execution_ids: std::option::Option<std::vec::Vec<std::string::String>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `query_execution_ids`.
        ///
        /// To override the contents of this collection use [`set_query_execution_ids`](Self::set_query_execution_ids).
        ///
        /// <p>The unique IDs of each query execution as an array of strings.</p>
        pub fn query_execution_ids(mut self, input: impl Into<std::string::String>) -> Self {
            let mut v = self.query_execution_ids.unwrap_or_default();
            v.push(input.into());
            self.query_execution_ids = Some(v);
            self
        }
        /// <p>The unique IDs of each query execution as an array of strings.</p>
        pub fn set_query_execution_ids(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.query_execution_ids = input;
            self
        }
        /// <p>A token to be used by the next request if this request is truncated.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token to be used by the next request if this request is truncated.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListQueryExecutionsOutput`](crate::output::ListQueryExecutionsOutput).
        pub fn build(self) -> crate::output::ListQueryExecutionsOutput {
            crate::output::ListQueryExecutionsOutput {
                query_execution_ids: self.query_execution_ids,
                next_token: self.next_token,
            }
        }
    }
}
impl ListQueryExecutionsOutput {
    /// Creates a new builder-style object to manufacture [`ListQueryExecutionsOutput`](crate::output::ListQueryExecutionsOutput).
    pub fn builder() -> crate::output::list_query_executions_output::Builder {
        crate::output::list_query_executions_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListPreparedStatementsOutput {
    /// <p>The list of prepared statements for the workgroup.</p>
    #[doc(hidden)]
    pub prepared_statements:
        std::option::Option<std::vec::Vec<crate::model::PreparedStatementSummary>>,
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListPreparedStatementsOutput {
    /// <p>The list of prepared statements for the workgroup.</p>
    pub fn prepared_statements(
        &self,
    ) -> std::option::Option<&[crate::model::PreparedStatementSummary]> {
        self.prepared_statements.as_deref()
    }
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListPreparedStatementsOutput`](crate::output::ListPreparedStatementsOutput).
pub mod list_prepared_statements_output {

    /// A builder for [`ListPreparedStatementsOutput`](crate::output::ListPreparedStatementsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) prepared_statements:
            std::option::Option<std::vec::Vec<crate::model::PreparedStatementSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `prepared_statements`.
        ///
        /// To override the contents of this collection use [`set_prepared_statements`](Self::set_prepared_statements).
        ///
        /// <p>The list of prepared statements for the workgroup.</p>
        pub fn prepared_statements(
            mut self,
            input: crate::model::PreparedStatementSummary,
        ) -> Self {
            let mut v = self.prepared_statements.unwrap_or_default();
            v.push(input);
            self.prepared_statements = Some(v);
            self
        }
        /// <p>The list of prepared statements for the workgroup.</p>
        pub fn set_prepared_statements(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::PreparedStatementSummary>>,
        ) -> Self {
            self.prepared_statements = input;
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListPreparedStatementsOutput`](crate::output::ListPreparedStatementsOutput).
        pub fn build(self) -> crate::output::ListPreparedStatementsOutput {
            crate::output::ListPreparedStatementsOutput {
                prepared_statements: self.prepared_statements,
                next_token: self.next_token,
            }
        }
    }
}
impl ListPreparedStatementsOutput {
    /// Creates a new builder-style object to manufacture [`ListPreparedStatementsOutput`](crate::output::ListPreparedStatementsOutput).
    pub fn builder() -> crate::output::list_prepared_statements_output::Builder {
        crate::output::list_prepared_statements_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListNotebookSessionsOutput {
    /// <p>A list of the sessions belonging to the notebook.</p>
    #[doc(hidden)]
    pub notebook_sessions_list:
        std::option::Option<std::vec::Vec<crate::model::NotebookSessionSummary>>,
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListNotebookSessionsOutput {
    /// <p>A list of the sessions belonging to the notebook.</p>
    pub fn notebook_sessions_list(
        &self,
    ) -> std::option::Option<&[crate::model::NotebookSessionSummary]> {
        self.notebook_sessions_list.as_deref()
    }
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListNotebookSessionsOutput`](crate::output::ListNotebookSessionsOutput).
pub mod list_notebook_sessions_output {

    /// A builder for [`ListNotebookSessionsOutput`](crate::output::ListNotebookSessionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) notebook_sessions_list:
            std::option::Option<std::vec::Vec<crate::model::NotebookSessionSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `notebook_sessions_list`.
        ///
        /// To override the contents of this collection use [`set_notebook_sessions_list`](Self::set_notebook_sessions_list).
        ///
        /// <p>A list of the sessions belonging to the notebook.</p>
        pub fn notebook_sessions_list(
            mut self,
            input: crate::model::NotebookSessionSummary,
        ) -> Self {
            let mut v = self.notebook_sessions_list.unwrap_or_default();
            v.push(input);
            self.notebook_sessions_list = Some(v);
            self
        }
        /// <p>A list of the sessions belonging to the notebook.</p>
        pub fn set_notebook_sessions_list(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::NotebookSessionSummary>>,
        ) -> Self {
            self.notebook_sessions_list = input;
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListNotebookSessionsOutput`](crate::output::ListNotebookSessionsOutput).
        pub fn build(self) -> crate::output::ListNotebookSessionsOutput {
            crate::output::ListNotebookSessionsOutput {
                notebook_sessions_list: self.notebook_sessions_list,
                next_token: self.next_token,
            }
        }
    }
}
impl ListNotebookSessionsOutput {
    /// Creates a new builder-style object to manufacture [`ListNotebookSessionsOutput`](crate::output::ListNotebookSessionsOutput).
    pub fn builder() -> crate::output::list_notebook_sessions_output::Builder {
        crate::output::list_notebook_sessions_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListNotebookMetadataOutput {
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
    /// <p>The list of notebook metadata for the specified workgroup.</p>
    #[doc(hidden)]
    pub notebook_metadata_list: std::option::Option<std::vec::Vec<crate::model::NotebookMetadata>>,
}
impl ListNotebookMetadataOutput {
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
    /// <p>The list of notebook metadata for the specified workgroup.</p>
    pub fn notebook_metadata_list(&self) -> std::option::Option<&[crate::model::NotebookMetadata]> {
        self.notebook_metadata_list.as_deref()
    }
}
/// See [`ListNotebookMetadataOutput`](crate::output::ListNotebookMetadataOutput).
pub mod list_notebook_metadata_output {

    /// A builder for [`ListNotebookMetadataOutput`](crate::output::ListNotebookMetadataOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) next_token: std::option::Option<std::string::String>,
        pub(crate) notebook_metadata_list:
            std::option::Option<std::vec::Vec<crate::model::NotebookMetadata>>,
    }
    impl Builder {
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Appends an item to `notebook_metadata_list`.
        ///
        /// To override the contents of this collection use [`set_notebook_metadata_list`](Self::set_notebook_metadata_list).
        ///
        /// <p>The list of notebook metadata for the specified workgroup.</p>
        pub fn notebook_metadata_list(mut self, input: crate::model::NotebookMetadata) -> Self {
            let mut v = self.notebook_metadata_list.unwrap_or_default();
            v.push(input);
            self.notebook_metadata_list = Some(v);
            self
        }
        /// <p>The list of notebook metadata for the specified workgroup.</p>
        pub fn set_notebook_metadata_list(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::NotebookMetadata>>,
        ) -> Self {
            self.notebook_metadata_list = input;
            self
        }
        /// Consumes the builder and constructs a [`ListNotebookMetadataOutput`](crate::output::ListNotebookMetadataOutput).
        pub fn build(self) -> crate::output::ListNotebookMetadataOutput {
            crate::output::ListNotebookMetadataOutput {
                next_token: self.next_token,
                notebook_metadata_list: self.notebook_metadata_list,
            }
        }
    }
}
impl ListNotebookMetadataOutput {
    /// Creates a new builder-style object to manufacture [`ListNotebookMetadataOutput`](crate::output::ListNotebookMetadataOutput).
    pub fn builder() -> crate::output::list_notebook_metadata_output::Builder {
        crate::output::list_notebook_metadata_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListNamedQueriesOutput {
    /// <p>The list of unique query IDs.</p>
    #[doc(hidden)]
    pub named_query_ids: std::option::Option<std::vec::Vec<std::string::String>>,
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListNamedQueriesOutput {
    /// <p>The list of unique query IDs.</p>
    pub fn named_query_ids(&self) -> std::option::Option<&[std::string::String]> {
        self.named_query_ids.as_deref()
    }
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListNamedQueriesOutput`](crate::output::ListNamedQueriesOutput).
pub mod list_named_queries_output {

    /// A builder for [`ListNamedQueriesOutput`](crate::output::ListNamedQueriesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) named_query_ids: std::option::Option<std::vec::Vec<std::string::String>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `named_query_ids`.
        ///
        /// To override the contents of this collection use [`set_named_query_ids`](Self::set_named_query_ids).
        ///
        /// <p>The list of unique query IDs.</p>
        pub fn named_query_ids(mut self, input: impl Into<std::string::String>) -> Self {
            let mut v = self.named_query_ids.unwrap_or_default();
            v.push(input.into());
            self.named_query_ids = Some(v);
            self
        }
        /// <p>The list of unique query IDs.</p>
        pub fn set_named_query_ids(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.named_query_ids = input;
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListNamedQueriesOutput`](crate::output::ListNamedQueriesOutput).
        pub fn build(self) -> crate::output::ListNamedQueriesOutput {
            crate::output::ListNamedQueriesOutput {
                named_query_ids: self.named_query_ids,
                next_token: self.next_token,
            }
        }
    }
}
impl ListNamedQueriesOutput {
    /// Creates a new builder-style object to manufacture [`ListNamedQueriesOutput`](crate::output::ListNamedQueriesOutput).
    pub fn builder() -> crate::output::list_named_queries_output::Builder {
        crate::output::list_named_queries_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListExecutorsOutput {
    /// <p>The session ID.</p>
    #[doc(hidden)]
    pub session_id: std::option::Option<std::string::String>,
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
    /// <p>Contains summary information about the executor.</p>
    #[doc(hidden)]
    pub executors_summary: std::option::Option<std::vec::Vec<crate::model::ExecutorsSummary>>,
}
impl ListExecutorsOutput {
    /// <p>The session ID.</p>
    pub fn session_id(&self) -> std::option::Option<&str> {
        self.session_id.as_deref()
    }
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
    /// <p>Contains summary information about the executor.</p>
    pub fn executors_summary(&self) -> std::option::Option<&[crate::model::ExecutorsSummary]> {
        self.executors_summary.as_deref()
    }
}
/// See [`ListExecutorsOutput`](crate::output::ListExecutorsOutput).
pub mod list_executors_output {

    /// A builder for [`ListExecutorsOutput`](crate::output::ListExecutorsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) session_id: std::option::Option<std::string::String>,
        pub(crate) next_token: std::option::Option<std::string::String>,
        pub(crate) executors_summary:
            std::option::Option<std::vec::Vec<crate::model::ExecutorsSummary>>,
    }
    impl Builder {
        /// <p>The session ID.</p>
        pub fn session_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.session_id = Some(input.into());
            self
        }
        /// <p>The session ID.</p>
        pub fn set_session_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.session_id = input;
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Appends an item to `executors_summary`.
        ///
        /// To override the contents of this collection use [`set_executors_summary`](Self::set_executors_summary).
        ///
        /// <p>Contains summary information about the executor.</p>
        pub fn executors_summary(mut self, input: crate::model::ExecutorsSummary) -> Self {
            let mut v = self.executors_summary.unwrap_or_default();
            v.push(input);
            self.executors_summary = Some(v);
            self
        }
        /// <p>Contains summary information about the executor.</p>
        pub fn set_executors_summary(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ExecutorsSummary>>,
        ) -> Self {
            self.executors_summary = input;
            self
        }
        /// Consumes the builder and constructs a [`ListExecutorsOutput`](crate::output::ListExecutorsOutput).
        pub fn build(self) -> crate::output::ListExecutorsOutput {
            crate::output::ListExecutorsOutput {
                session_id: self.session_id,
                next_token: self.next_token,
                executors_summary: self.executors_summary,
            }
        }
    }
}
impl ListExecutorsOutput {
    /// Creates a new builder-style object to manufacture [`ListExecutorsOutput`](crate::output::ListExecutorsOutput).
    pub fn builder() -> crate::output::list_executors_output::Builder {
        crate::output::list_executors_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListEngineVersionsOutput {
    /// <p>A list of engine versions that are available to choose from.</p>
    #[doc(hidden)]
    pub engine_versions: std::option::Option<std::vec::Vec<crate::model::EngineVersion>>,
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListEngineVersionsOutput {
    /// <p>A list of engine versions that are available to choose from.</p>
    pub fn engine_versions(&self) -> std::option::Option<&[crate::model::EngineVersion]> {
        self.engine_versions.as_deref()
    }
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListEngineVersionsOutput`](crate::output::ListEngineVersionsOutput).
pub mod list_engine_versions_output {

    /// A builder for [`ListEngineVersionsOutput`](crate::output::ListEngineVersionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) engine_versions: std::option::Option<std::vec::Vec<crate::model::EngineVersion>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `engine_versions`.
        ///
        /// To override the contents of this collection use [`set_engine_versions`](Self::set_engine_versions).
        ///
        /// <p>A list of engine versions that are available to choose from.</p>
        pub fn engine_versions(mut self, input: crate::model::EngineVersion) -> Self {
            let mut v = self.engine_versions.unwrap_or_default();
            v.push(input);
            self.engine_versions = Some(v);
            self
        }
        /// <p>A list of engine versions that are available to choose from.</p>
        pub fn set_engine_versions(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::EngineVersion>>,
        ) -> Self {
            self.engine_versions = input;
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListEngineVersionsOutput`](crate::output::ListEngineVersionsOutput).
        pub fn build(self) -> crate::output::ListEngineVersionsOutput {
            crate::output::ListEngineVersionsOutput {
                engine_versions: self.engine_versions,
                next_token: self.next_token,
            }
        }
    }
}
impl ListEngineVersionsOutput {
    /// Creates a new builder-style object to manufacture [`ListEngineVersionsOutput`](crate::output::ListEngineVersionsOutput).
    pub fn builder() -> crate::output::list_engine_versions_output::Builder {
        crate::output::list_engine_versions_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListDataCatalogsOutput {
    /// <p>A summary list of data catalogs.</p>
    #[doc(hidden)]
    pub data_catalogs_summary: std::option::Option<std::vec::Vec<crate::model::DataCatalogSummary>>,
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListDataCatalogsOutput {
    /// <p>A summary list of data catalogs.</p>
    pub fn data_catalogs_summary(
        &self,
    ) -> std::option::Option<&[crate::model::DataCatalogSummary]> {
        self.data_catalogs_summary.as_deref()
    }
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListDataCatalogsOutput`](crate::output::ListDataCatalogsOutput).
pub mod list_data_catalogs_output {

    /// A builder for [`ListDataCatalogsOutput`](crate::output::ListDataCatalogsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) data_catalogs_summary:
            std::option::Option<std::vec::Vec<crate::model::DataCatalogSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `data_catalogs_summary`.
        ///
        /// To override the contents of this collection use [`set_data_catalogs_summary`](Self::set_data_catalogs_summary).
        ///
        /// <p>A summary list of data catalogs.</p>
        pub fn data_catalogs_summary(mut self, input: crate::model::DataCatalogSummary) -> Self {
            let mut v = self.data_catalogs_summary.unwrap_or_default();
            v.push(input);
            self.data_catalogs_summary = Some(v);
            self
        }
        /// <p>A summary list of data catalogs.</p>
        pub fn set_data_catalogs_summary(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::DataCatalogSummary>>,
        ) -> Self {
            self.data_catalogs_summary = input;
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListDataCatalogsOutput`](crate::output::ListDataCatalogsOutput).
        pub fn build(self) -> crate::output::ListDataCatalogsOutput {
            crate::output::ListDataCatalogsOutput {
                data_catalogs_summary: self.data_catalogs_summary,
                next_token: self.next_token,
            }
        }
    }
}
impl ListDataCatalogsOutput {
    /// Creates a new builder-style object to manufacture [`ListDataCatalogsOutput`](crate::output::ListDataCatalogsOutput).
    pub fn builder() -> crate::output::list_data_catalogs_output::Builder {
        crate::output::list_data_catalogs_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListDatabasesOutput {
    /// <p>A list of databases from a data catalog.</p>
    #[doc(hidden)]
    pub database_list: std::option::Option<std::vec::Vec<crate::model::Database>>,
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListDatabasesOutput {
    /// <p>A list of databases from a data catalog.</p>
    pub fn database_list(&self) -> std::option::Option<&[crate::model::Database]> {
        self.database_list.as_deref()
    }
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListDatabasesOutput`](crate::output::ListDatabasesOutput).
pub mod list_databases_output {

    /// A builder for [`ListDatabasesOutput`](crate::output::ListDatabasesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) database_list: std::option::Option<std::vec::Vec<crate::model::Database>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `database_list`.
        ///
        /// To override the contents of this collection use [`set_database_list`](Self::set_database_list).
        ///
        /// <p>A list of databases from a data catalog.</p>
        pub fn database_list(mut self, input: crate::model::Database) -> Self {
            let mut v = self.database_list.unwrap_or_default();
            v.push(input);
            self.database_list = Some(v);
            self
        }
        /// <p>A list of databases from a data catalog.</p>
        pub fn set_database_list(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Database>>,
        ) -> Self {
            self.database_list = input;
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListDatabasesOutput`](crate::output::ListDatabasesOutput).
        pub fn build(self) -> crate::output::ListDatabasesOutput {
            crate::output::ListDatabasesOutput {
                database_list: self.database_list,
                next_token: self.next_token,
            }
        }
    }
}
impl ListDatabasesOutput {
    /// Creates a new builder-style object to manufacture [`ListDatabasesOutput`](crate::output::ListDatabasesOutput).
    pub fn builder() -> crate::output::list_databases_output::Builder {
        crate::output::list_databases_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListCalculationExecutionsOutput {
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
    /// <p>A list of <code>CalculationSummary</code> objects.</p>
    #[doc(hidden)]
    pub calculations: std::option::Option<std::vec::Vec<crate::model::CalculationSummary>>,
}
impl ListCalculationExecutionsOutput {
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
    /// <p>A list of <code>CalculationSummary</code> objects.</p>
    pub fn calculations(&self) -> std::option::Option<&[crate::model::CalculationSummary]> {
        self.calculations.as_deref()
    }
}
/// See [`ListCalculationExecutionsOutput`](crate::output::ListCalculationExecutionsOutput).
pub mod list_calculation_executions_output {

    /// A builder for [`ListCalculationExecutionsOutput`](crate::output::ListCalculationExecutionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) next_token: std::option::Option<std::string::String>,
        pub(crate) calculations:
            std::option::Option<std::vec::Vec<crate::model::CalculationSummary>>,
    }
    impl Builder {
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Appends an item to `calculations`.
        ///
        /// To override the contents of this collection use [`set_calculations`](Self::set_calculations).
        ///
        /// <p>A list of <code>CalculationSummary</code> objects.</p>
        pub fn calculations(mut self, input: crate::model::CalculationSummary) -> Self {
            let mut v = self.calculations.unwrap_or_default();
            v.push(input);
            self.calculations = Some(v);
            self
        }
        /// <p>A list of <code>CalculationSummary</code> objects.</p>
        pub fn set_calculations(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::CalculationSummary>>,
        ) -> Self {
            self.calculations = input;
            self
        }
        /// Consumes the builder and constructs a [`ListCalculationExecutionsOutput`](crate::output::ListCalculationExecutionsOutput).
        pub fn build(self) -> crate::output::ListCalculationExecutionsOutput {
            crate::output::ListCalculationExecutionsOutput {
                next_token: self.next_token,
                calculations: self.calculations,
            }
        }
    }
}
impl ListCalculationExecutionsOutput {
    /// Creates a new builder-style object to manufacture [`ListCalculationExecutionsOutput`](crate::output::ListCalculationExecutionsOutput).
    pub fn builder() -> crate::output::list_calculation_executions_output::Builder {
        crate::output::list_calculation_executions_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListApplicationDpuSizesOutput {
    /// <p>A list of the supported DPU sizes that the application runtime supports.</p>
    #[doc(hidden)]
    pub application_dpu_sizes:
        std::option::Option<std::vec::Vec<crate::model::ApplicationDpuSizes>>,
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListApplicationDpuSizesOutput {
    /// <p>A list of the supported DPU sizes that the application runtime supports.</p>
    pub fn application_dpu_sizes(
        &self,
    ) -> std::option::Option<&[crate::model::ApplicationDpuSizes]> {
        self.application_dpu_sizes.as_deref()
    }
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListApplicationDpuSizesOutput`](crate::output::ListApplicationDpuSizesOutput).
pub mod list_application_dpu_sizes_output {

    /// A builder for [`ListApplicationDpuSizesOutput`](crate::output::ListApplicationDpuSizesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) application_dpu_sizes:
            std::option::Option<std::vec::Vec<crate::model::ApplicationDpuSizes>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `application_dpu_sizes`.
        ///
        /// To override the contents of this collection use [`set_application_dpu_sizes`](Self::set_application_dpu_sizes).
        ///
        /// <p>A list of the supported DPU sizes that the application runtime supports.</p>
        pub fn application_dpu_sizes(mut self, input: crate::model::ApplicationDpuSizes) -> Self {
            let mut v = self.application_dpu_sizes.unwrap_or_default();
            v.push(input);
            self.application_dpu_sizes = Some(v);
            self
        }
        /// <p>A list of the supported DPU sizes that the application runtime supports.</p>
        pub fn set_application_dpu_sizes(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ApplicationDpuSizes>>,
        ) -> Self {
            self.application_dpu_sizes = input;
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListApplicationDpuSizesOutput`](crate::output::ListApplicationDpuSizesOutput).
        pub fn build(self) -> crate::output::ListApplicationDpuSizesOutput {
            crate::output::ListApplicationDpuSizesOutput {
                application_dpu_sizes: self.application_dpu_sizes,
                next_token: self.next_token,
            }
        }
    }
}
impl ListApplicationDpuSizesOutput {
    /// Creates a new builder-style object to manufacture [`ListApplicationDpuSizesOutput`](crate::output::ListApplicationDpuSizesOutput).
    pub fn builder() -> crate::output::list_application_dpu_sizes_output::Builder {
        crate::output::list_application_dpu_sizes_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ImportNotebookOutput {
    /// <p>The ID of the notebook to import.</p>
    #[doc(hidden)]
    pub notebook_id: std::option::Option<std::string::String>,
}
impl ImportNotebookOutput {
    /// <p>The ID of the notebook to import.</p>
    pub fn notebook_id(&self) -> std::option::Option<&str> {
        self.notebook_id.as_deref()
    }
}
/// See [`ImportNotebookOutput`](crate::output::ImportNotebookOutput).
pub mod import_notebook_output {

    /// A builder for [`ImportNotebookOutput`](crate::output::ImportNotebookOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) notebook_id: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ID of the notebook to import.</p>
        pub fn notebook_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.notebook_id = Some(input.into());
            self
        }
        /// <p>The ID of the notebook to import.</p>
        pub fn set_notebook_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.notebook_id = input;
            self
        }
        /// Consumes the builder and constructs a [`ImportNotebookOutput`](crate::output::ImportNotebookOutput).
        pub fn build(self) -> crate::output::ImportNotebookOutput {
            crate::output::ImportNotebookOutput {
                notebook_id: self.notebook_id,
            }
        }
    }
}
impl ImportNotebookOutput {
    /// Creates a new builder-style object to manufacture [`ImportNotebookOutput`](crate::output::ImportNotebookOutput).
    pub fn builder() -> crate::output::import_notebook_output::Builder {
        crate::output::import_notebook_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetWorkGroupOutput {
    /// <p>Information about the workgroup.</p>
    #[doc(hidden)]
    pub work_group: std::option::Option<crate::model::WorkGroup>,
}
impl GetWorkGroupOutput {
    /// <p>Information about the workgroup.</p>
    pub fn work_group(&self) -> std::option::Option<&crate::model::WorkGroup> {
        self.work_group.as_ref()
    }
}
/// See [`GetWorkGroupOutput`](crate::output::GetWorkGroupOutput).
pub mod get_work_group_output {

    /// A builder for [`GetWorkGroupOutput`](crate::output::GetWorkGroupOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) work_group: std::option::Option<crate::model::WorkGroup>,
    }
    impl Builder {
        /// <p>Information about the workgroup.</p>
        pub fn work_group(mut self, input: crate::model::WorkGroup) -> Self {
            self.work_group = Some(input);
            self
        }
        /// <p>Information about the workgroup.</p>
        pub fn set_work_group(
            mut self,
            input: std::option::Option<crate::model::WorkGroup>,
        ) -> Self {
            self.work_group = input;
            self
        }
        /// Consumes the builder and constructs a [`GetWorkGroupOutput`](crate::output::GetWorkGroupOutput).
        pub fn build(self) -> crate::output::GetWorkGroupOutput {
            crate::output::GetWorkGroupOutput {
                work_group: self.work_group,
            }
        }
    }
}
impl GetWorkGroupOutput {
    /// Creates a new builder-style object to manufacture [`GetWorkGroupOutput`](crate::output::GetWorkGroupOutput).
    pub fn builder() -> crate::output::get_work_group_output::Builder {
        crate::output::get_work_group_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetTableMetadataOutput {
    /// <p>An object that contains table metadata.</p>
    #[doc(hidden)]
    pub table_metadata: std::option::Option<crate::model::TableMetadata>,
}
impl GetTableMetadataOutput {
    /// <p>An object that contains table metadata.</p>
    pub fn table_metadata(&self) -> std::option::Option<&crate::model::TableMetadata> {
        self.table_metadata.as_ref()
    }
}
/// See [`GetTableMetadataOutput`](crate::output::GetTableMetadataOutput).
pub mod get_table_metadata_output {

    /// A builder for [`GetTableMetadataOutput`](crate::output::GetTableMetadataOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) table_metadata: std::option::Option<crate::model::TableMetadata>,
    }
    impl Builder {
        /// <p>An object that contains table metadata.</p>
        pub fn table_metadata(mut self, input: crate::model::TableMetadata) -> Self {
            self.table_metadata = Some(input);
            self
        }
        /// <p>An object that contains table metadata.</p>
        pub fn set_table_metadata(
            mut self,
            input: std::option::Option<crate::model::TableMetadata>,
        ) -> Self {
            self.table_metadata = input;
            self
        }
        /// Consumes the builder and constructs a [`GetTableMetadataOutput`](crate::output::GetTableMetadataOutput).
        pub fn build(self) -> crate::output::GetTableMetadataOutput {
            crate::output::GetTableMetadataOutput {
                table_metadata: self.table_metadata,
            }
        }
    }
}
impl GetTableMetadataOutput {
    /// Creates a new builder-style object to manufacture [`GetTableMetadataOutput`](crate::output::GetTableMetadataOutput).
    pub fn builder() -> crate::output::get_table_metadata_output::Builder {
        crate::output::get_table_metadata_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetSessionStatusOutput {
    /// <p>The session ID.</p>
    #[doc(hidden)]
    pub session_id: std::option::Option<std::string::String>,
    /// <p>Contains information about the status of the session.</p>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::SessionStatus>,
}
impl GetSessionStatusOutput {
    /// <p>The session ID.</p>
    pub fn session_id(&self) -> std::option::Option<&str> {
        self.session_id.as_deref()
    }
    /// <p>Contains information about the status of the session.</p>
    pub fn status(&self) -> std::option::Option<&crate::model::SessionStatus> {
        self.status.as_ref()
    }
}
/// See [`GetSessionStatusOutput`](crate::output::GetSessionStatusOutput).
pub mod get_session_status_output {

    /// A builder for [`GetSessionStatusOutput`](crate::output::GetSessionStatusOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) session_id: std::option::Option<std::string::String>,
        pub(crate) status: std::option::Option<crate::model::SessionStatus>,
    }
    impl Builder {
        /// <p>The session ID.</p>
        pub fn session_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.session_id = Some(input.into());
            self
        }
        /// <p>The session ID.</p>
        pub fn set_session_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.session_id = input;
            self
        }
        /// <p>Contains information about the status of the session.</p>
        pub fn status(mut self, input: crate::model::SessionStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p>Contains information about the status of the session.</p>
        pub fn set_status(
            mut self,
            input: std::option::Option<crate::model::SessionStatus>,
        ) -> Self {
            self.status = input;
            self
        }
        /// Consumes the builder and constructs a [`GetSessionStatusOutput`](crate::output::GetSessionStatusOutput).
        pub fn build(self) -> crate::output::GetSessionStatusOutput {
            crate::output::GetSessionStatusOutput {
                session_id: self.session_id,
                status: self.status,
            }
        }
    }
}
impl GetSessionStatusOutput {
    /// Creates a new builder-style object to manufacture [`GetSessionStatusOutput`](crate::output::GetSessionStatusOutput).
    pub fn builder() -> crate::output::get_session_status_output::Builder {
        crate::output::get_session_status_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetSessionOutput {
    /// <p>The session ID.</p>
    #[doc(hidden)]
    pub session_id: std::option::Option<std::string::String>,
    /// <p>The session description.</p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p>The workgroup to which the session belongs.</p>
    #[doc(hidden)]
    pub work_group: std::option::Option<std::string::String>,
    /// <p>The engine version used by the session (for example, <code>PySpark engine version 3</code>). You can get a list of engine versions by calling <code>ListEngineVersions</code>.</p>
    #[doc(hidden)]
    pub engine_version: std::option::Option<std::string::String>,
    /// <p>Contains engine configuration information like DPU usage.</p>
    #[doc(hidden)]
    pub engine_configuration: std::option::Option<crate::model::EngineConfiguration>,
    /// <p>The notebook version.</p>
    #[doc(hidden)]
    pub notebook_version: std::option::Option<std::string::String>,
    /// <p>Contains the workgroup configuration information used by the session.</p>
    #[doc(hidden)]
    pub session_configuration: std::option::Option<crate::model::SessionConfiguration>,
    /// <p>Contains information about the status of the session.</p>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::SessionStatus>,
    /// <p>Contains the DPU execution time.</p>
    #[doc(hidden)]
    pub statistics: std::option::Option<crate::model::SessionStatistics>,
}
impl GetSessionOutput {
    /// <p>The session ID.</p>
    pub fn session_id(&self) -> std::option::Option<&str> {
        self.session_id.as_deref()
    }
    /// <p>The session description.</p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>The workgroup to which the session belongs.</p>
    pub fn work_group(&self) -> std::option::Option<&str> {
        self.work_group.as_deref()
    }
    /// <p>The engine version used by the session (for example, <code>PySpark engine version 3</code>). You can get a list of engine versions by calling <code>ListEngineVersions</code>.</p>
    pub fn engine_version(&self) -> std::option::Option<&str> {
        self.engine_version.as_deref()
    }
    /// <p>Contains engine configuration information like DPU usage.</p>
    pub fn engine_configuration(&self) -> std::option::Option<&crate::model::EngineConfiguration> {
        self.engine_configuration.as_ref()
    }
    /// <p>The notebook version.</p>
    pub fn notebook_version(&self) -> std::option::Option<&str> {
        self.notebook_version.as_deref()
    }
    /// <p>Contains the workgroup configuration information used by the session.</p>
    pub fn session_configuration(
        &self,
    ) -> std::option::Option<&crate::model::SessionConfiguration> {
        self.session_configuration.as_ref()
    }
    /// <p>Contains information about the status of the session.</p>
    pub fn status(&self) -> std::option::Option<&crate::model::SessionStatus> {
        self.status.as_ref()
    }
    /// <p>Contains the DPU execution time.</p>
    pub fn statistics(&self) -> std::option::Option<&crate::model::SessionStatistics> {
        self.statistics.as_ref()
    }
}
/// See [`GetSessionOutput`](crate::output::GetSessionOutput).
pub mod get_session_output {

    /// A builder for [`GetSessionOutput`](crate::output::GetSessionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) session_id: std::option::Option<std::string::String>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) work_group: std::option::Option<std::string::String>,
        pub(crate) engine_version: std::option::Option<std::string::String>,
        pub(crate) engine_configuration: std::option::Option<crate::model::EngineConfiguration>,
        pub(crate) notebook_version: std::option::Option<std::string::String>,
        pub(crate) session_configuration: std::option::Option<crate::model::SessionConfiguration>,
        pub(crate) status: std::option::Option<crate::model::SessionStatus>,
        pub(crate) statistics: std::option::Option<crate::model::SessionStatistics>,
    }
    impl Builder {
        /// <p>The session ID.</p>
        pub fn session_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.session_id = Some(input.into());
            self
        }
        /// <p>The session ID.</p>
        pub fn set_session_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.session_id = input;
            self
        }
        /// <p>The session description.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p>The session description.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// <p>The workgroup to which the session belongs.</p>
        pub fn work_group(mut self, input: impl Into<std::string::String>) -> Self {
            self.work_group = Some(input.into());
            self
        }
        /// <p>The workgroup to which the session belongs.</p>
        pub fn set_work_group(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.work_group = input;
            self
        }
        /// <p>The engine version used by the session (for example, <code>PySpark engine version 3</code>). You can get a list of engine versions by calling <code>ListEngineVersions</code>.</p>
        pub fn engine_version(mut self, input: impl Into<std::string::String>) -> Self {
            self.engine_version = Some(input.into());
            self
        }
        /// <p>The engine version used by the session (for example, <code>PySpark engine version 3</code>). You can get a list of engine versions by calling <code>ListEngineVersions</code>.</p>
        pub fn set_engine_version(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.engine_version = input;
            self
        }
        /// <p>Contains engine configuration information like DPU usage.</p>
        pub fn engine_configuration(mut self, input: crate::model::EngineConfiguration) -> Self {
            self.engine_configuration = Some(input);
            self
        }
        /// <p>Contains engine configuration information like DPU usage.</p>
        pub fn set_engine_configuration(
            mut self,
            input: std::option::Option<crate::model::EngineConfiguration>,
        ) -> Self {
            self.engine_configuration = input;
            self
        }
        /// <p>The notebook version.</p>
        pub fn notebook_version(mut self, input: impl Into<std::string::String>) -> Self {
            self.notebook_version = Some(input.into());
            self
        }
        /// <p>The notebook version.</p>
        pub fn set_notebook_version(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.notebook_version = input;
            self
        }
        /// <p>Contains the workgroup configuration information used by the session.</p>
        pub fn session_configuration(mut self, input: crate::model::SessionConfiguration) -> Self {
            self.session_configuration = Some(input);
            self
        }
        /// <p>Contains the workgroup configuration information used by the session.</p>
        pub fn set_session_configuration(
            mut self,
            input: std::option::Option<crate::model::SessionConfiguration>,
        ) -> Self {
            self.session_configuration = input;
            self
        }
        /// <p>Contains information about the status of the session.</p>
        pub fn status(mut self, input: crate::model::SessionStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p>Contains information about the status of the session.</p>
        pub fn set_status(
            mut self,
            input: std::option::Option<crate::model::SessionStatus>,
        ) -> Self {
            self.status = input;
            self
        }
        /// <p>Contains the DPU execution time.</p>
        pub fn statistics(mut self, input: crate::model::SessionStatistics) -> Self {
            self.statistics = Some(input);
            self
        }
        /// <p>Contains the DPU execution time.</p>
        pub fn set_statistics(
            mut self,
            input: std::option::Option<crate::model::SessionStatistics>,
        ) -> Self {
            self.statistics = input;
            self
        }
        /// Consumes the builder and constructs a [`GetSessionOutput`](crate::output::GetSessionOutput).
        pub fn build(self) -> crate::output::GetSessionOutput {
            crate::output::GetSessionOutput {
                session_id: self.session_id,
                description: self.description,
                work_group: self.work_group,
                engine_version: self.engine_version,
                engine_configuration: self.engine_configuration,
                notebook_version: self.notebook_version,
                session_configuration: self.session_configuration,
                status: self.status,
                statistics: self.statistics,
            }
        }
    }
}
impl GetSessionOutput {
    /// Creates a new builder-style object to manufacture [`GetSessionOutput`](crate::output::GetSessionOutput).
    pub fn builder() -> crate::output::get_session_output::Builder {
        crate::output::get_session_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetQueryRuntimeStatisticsOutput {
    /// <p>Runtime statistics about the query execution.</p>
    #[doc(hidden)]
    pub query_runtime_statistics: std::option::Option<crate::model::QueryRuntimeStatistics>,
}
impl GetQueryRuntimeStatisticsOutput {
    /// <p>Runtime statistics about the query execution.</p>
    pub fn query_runtime_statistics(
        &self,
    ) -> std::option::Option<&crate::model::QueryRuntimeStatistics> {
        self.query_runtime_statistics.as_ref()
    }
}
/// See [`GetQueryRuntimeStatisticsOutput`](crate::output::GetQueryRuntimeStatisticsOutput).
pub mod get_query_runtime_statistics_output {

    /// A builder for [`GetQueryRuntimeStatisticsOutput`](crate::output::GetQueryRuntimeStatisticsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) query_runtime_statistics:
            std::option::Option<crate::model::QueryRuntimeStatistics>,
    }
    impl Builder {
        /// <p>Runtime statistics about the query execution.</p>
        pub fn query_runtime_statistics(
            mut self,
            input: crate::model::QueryRuntimeStatistics,
        ) -> Self {
            self.query_runtime_statistics = Some(input);
            self
        }
        /// <p>Runtime statistics about the query execution.</p>
        pub fn set_query_runtime_statistics(
            mut self,
            input: std::option::Option<crate::model::QueryRuntimeStatistics>,
        ) -> Self {
            self.query_runtime_statistics = input;
            self
        }
        /// Consumes the builder and constructs a [`GetQueryRuntimeStatisticsOutput`](crate::output::GetQueryRuntimeStatisticsOutput).
        pub fn build(self) -> crate::output::GetQueryRuntimeStatisticsOutput {
            crate::output::GetQueryRuntimeStatisticsOutput {
                query_runtime_statistics: self.query_runtime_statistics,
            }
        }
    }
}
impl GetQueryRuntimeStatisticsOutput {
    /// Creates a new builder-style object to manufacture [`GetQueryRuntimeStatisticsOutput`](crate::output::GetQueryRuntimeStatisticsOutput).
    pub fn builder() -> crate::output::get_query_runtime_statistics_output::Builder {
        crate::output::get_query_runtime_statistics_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetQueryResultsOutput {
    /// <p>The number of rows inserted with a <code>CREATE TABLE AS SELECT</code> statement. </p>
    #[doc(hidden)]
    pub update_count: std::option::Option<i64>,
    /// <p>The results of the query execution.</p>
    #[doc(hidden)]
    pub result_set: std::option::Option<crate::model::ResultSet>,
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl GetQueryResultsOutput {
    /// <p>The number of rows inserted with a <code>CREATE TABLE AS SELECT</code> statement. </p>
    pub fn update_count(&self) -> std::option::Option<i64> {
        self.update_count
    }
    /// <p>The results of the query execution.</p>
    pub fn result_set(&self) -> std::option::Option<&crate::model::ResultSet> {
        self.result_set.as_ref()
    }
    /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`GetQueryResultsOutput`](crate::output::GetQueryResultsOutput).
pub mod get_query_results_output {

    /// A builder for [`GetQueryResultsOutput`](crate::output::GetQueryResultsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) update_count: std::option::Option<i64>,
        pub(crate) result_set: std::option::Option<crate::model::ResultSet>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The number of rows inserted with a <code>CREATE TABLE AS SELECT</code> statement. </p>
        pub fn update_count(mut self, input: i64) -> Self {
            self.update_count = Some(input);
            self
        }
        /// <p>The number of rows inserted with a <code>CREATE TABLE AS SELECT</code> statement. </p>
        pub fn set_update_count(mut self, input: std::option::Option<i64>) -> Self {
            self.update_count = input;
            self
        }
        /// <p>The results of the query execution.</p>
        pub fn result_set(mut self, input: crate::model::ResultSet) -> Self {
            self.result_set = Some(input);
            self
        }
        /// <p>The results of the query execution.</p>
        pub fn set_result_set(
            mut self,
            input: std::option::Option<crate::model::ResultSet>,
        ) -> Self {
            self.result_set = input;
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`GetQueryResultsOutput`](crate::output::GetQueryResultsOutput).
        pub fn build(self) -> crate::output::GetQueryResultsOutput {
            crate::output::GetQueryResultsOutput {
                update_count: self.update_count,
                result_set: self.result_set,
                next_token: self.next_token,
            }
        }
    }
}
impl GetQueryResultsOutput {
    /// Creates a new builder-style object to manufacture [`GetQueryResultsOutput`](crate::output::GetQueryResultsOutput).
    pub fn builder() -> crate::output::get_query_results_output::Builder {
        crate::output::get_query_results_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetQueryExecutionOutput {
    /// <p>Information about the query execution.</p>
    #[doc(hidden)]
    pub query_execution: std::option::Option<crate::model::QueryExecution>,
}
impl GetQueryExecutionOutput {
    /// <p>Information about the query execution.</p>
    pub fn query_execution(&self) -> std::option::Option<&crate::model::QueryExecution> {
        self.query_execution.as_ref()
    }
}
/// See [`GetQueryExecutionOutput`](crate::output::GetQueryExecutionOutput).
pub mod get_query_execution_output {

    /// A builder for [`GetQueryExecutionOutput`](crate::output::GetQueryExecutionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) query_execution: std::option::Option<crate::model::QueryExecution>,
    }
    impl Builder {
        /// <p>Information about the query execution.</p>
        pub fn query_execution(mut self, input: crate::model::QueryExecution) -> Self {
            self.query_execution = Some(input);
            self
        }
        /// <p>Information about the query execution.</p>
        pub fn set_query_execution(
            mut self,
            input: std::option::Option<crate::model::QueryExecution>,
        ) -> Self {
            self.query_execution = input;
            self
        }
        /// Consumes the builder and constructs a [`GetQueryExecutionOutput`](crate::output::GetQueryExecutionOutput).
        pub fn build(self) -> crate::output::GetQueryExecutionOutput {
            crate::output::GetQueryExecutionOutput {
                query_execution: self.query_execution,
            }
        }
    }
}
impl GetQueryExecutionOutput {
    /// Creates a new builder-style object to manufacture [`GetQueryExecutionOutput`](crate::output::GetQueryExecutionOutput).
    pub fn builder() -> crate::output::get_query_execution_output::Builder {
        crate::output::get_query_execution_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetPreparedStatementOutput {
    /// <p>The name of the prepared statement that was retrieved.</p>
    #[doc(hidden)]
    pub prepared_statement: std::option::Option<crate::model::PreparedStatement>,
}
impl GetPreparedStatementOutput {
    /// <p>The name of the prepared statement that was retrieved.</p>
    pub fn prepared_statement(&self) -> std::option::Option<&crate::model::PreparedStatement> {
        self.prepared_statement.as_ref()
    }
}
/// See [`GetPreparedStatementOutput`](crate::output::GetPreparedStatementOutput).
pub mod get_prepared_statement_output {

    /// A builder for [`GetPreparedStatementOutput`](crate::output::GetPreparedStatementOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) prepared_statement: std::option::Option<crate::model::PreparedStatement>,
    }
    impl Builder {
        /// <p>The name of the prepared statement that was retrieved.</p>
        pub fn prepared_statement(mut self, input: crate::model::PreparedStatement) -> Self {
            self.prepared_statement = Some(input);
            self
        }
        /// <p>The name of the prepared statement that was retrieved.</p>
        pub fn set_prepared_statement(
            mut self,
            input: std::option::Option<crate::model::PreparedStatement>,
        ) -> Self {
            self.prepared_statement = input;
            self
        }
        /// Consumes the builder and constructs a [`GetPreparedStatementOutput`](crate::output::GetPreparedStatementOutput).
        pub fn build(self) -> crate::output::GetPreparedStatementOutput {
            crate::output::GetPreparedStatementOutput {
                prepared_statement: self.prepared_statement,
            }
        }
    }
}
impl GetPreparedStatementOutput {
    /// Creates a new builder-style object to manufacture [`GetPreparedStatementOutput`](crate::output::GetPreparedStatementOutput).
    pub fn builder() -> crate::output::get_prepared_statement_output::Builder {
        crate::output::get_prepared_statement_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetNotebookMetadataOutput {
    /// <p>The metadata that is returned for the specified notebook ID.</p>
    #[doc(hidden)]
    pub notebook_metadata: std::option::Option<crate::model::NotebookMetadata>,
}
impl GetNotebookMetadataOutput {
    /// <p>The metadata that is returned for the specified notebook ID.</p>
    pub fn notebook_metadata(&self) -> std::option::Option<&crate::model::NotebookMetadata> {
        self.notebook_metadata.as_ref()
    }
}
/// See [`GetNotebookMetadataOutput`](crate::output::GetNotebookMetadataOutput).
pub mod get_notebook_metadata_output {

    /// A builder for [`GetNotebookMetadataOutput`](crate::output::GetNotebookMetadataOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) notebook_metadata: std::option::Option<crate::model::NotebookMetadata>,
    }
    impl Builder {
        /// <p>The metadata that is returned for the specified notebook ID.</p>
        pub fn notebook_metadata(mut self, input: crate::model::NotebookMetadata) -> Self {
            self.notebook_metadata = Some(input);
            self
        }
        /// <p>The metadata that is returned for the specified notebook ID.</p>
        pub fn set_notebook_metadata(
            mut self,
            input: std::option::Option<crate::model::NotebookMetadata>,
        ) -> Self {
            self.notebook_metadata = input;
            self
        }
        /// Consumes the builder and constructs a [`GetNotebookMetadataOutput`](crate::output::GetNotebookMetadataOutput).
        pub fn build(self) -> crate::output::GetNotebookMetadataOutput {
            crate::output::GetNotebookMetadataOutput {
                notebook_metadata: self.notebook_metadata,
            }
        }
    }
}
impl GetNotebookMetadataOutput {
    /// Creates a new builder-style object to manufacture [`GetNotebookMetadataOutput`](crate::output::GetNotebookMetadataOutput).
    pub fn builder() -> crate::output::get_notebook_metadata_output::Builder {
        crate::output::get_notebook_metadata_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetNamedQueryOutput {
    /// <p>Information about the query.</p>
    #[doc(hidden)]
    pub named_query: std::option::Option<crate::model::NamedQuery>,
}
impl GetNamedQueryOutput {
    /// <p>Information about the query.</p>
    pub fn named_query(&self) -> std::option::Option<&crate::model::NamedQuery> {
        self.named_query.as_ref()
    }
}
/// See [`GetNamedQueryOutput`](crate::output::GetNamedQueryOutput).
pub mod get_named_query_output {

    /// A builder for [`GetNamedQueryOutput`](crate::output::GetNamedQueryOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) named_query: std::option::Option<crate::model::NamedQuery>,
    }
    impl Builder {
        /// <p>Information about the query.</p>
        pub fn named_query(mut self, input: crate::model::NamedQuery) -> Self {
            self.named_query = Some(input);
            self
        }
        /// <p>Information about the query.</p>
        pub fn set_named_query(
            mut self,
            input: std::option::Option<crate::model::NamedQuery>,
        ) -> Self {
            self.named_query = input;
            self
        }
        /// Consumes the builder and constructs a [`GetNamedQueryOutput`](crate::output::GetNamedQueryOutput).
        pub fn build(self) -> crate::output::GetNamedQueryOutput {
            crate::output::GetNamedQueryOutput {
                named_query: self.named_query,
            }
        }
    }
}
impl GetNamedQueryOutput {
    /// Creates a new builder-style object to manufacture [`GetNamedQueryOutput`](crate::output::GetNamedQueryOutput).
    pub fn builder() -> crate::output::get_named_query_output::Builder {
        crate::output::get_named_query_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetDataCatalogOutput {
    /// <p>The data catalog returned.</p>
    #[doc(hidden)]
    pub data_catalog: std::option::Option<crate::model::DataCatalog>,
}
impl GetDataCatalogOutput {
    /// <p>The data catalog returned.</p>
    pub fn data_catalog(&self) -> std::option::Option<&crate::model::DataCatalog> {
        self.data_catalog.as_ref()
    }
}
/// See [`GetDataCatalogOutput`](crate::output::GetDataCatalogOutput).
pub mod get_data_catalog_output {

    /// A builder for [`GetDataCatalogOutput`](crate::output::GetDataCatalogOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) data_catalog: std::option::Option<crate::model::DataCatalog>,
    }
    impl Builder {
        /// <p>The data catalog returned.</p>
        pub fn data_catalog(mut self, input: crate::model::DataCatalog) -> Self {
            self.data_catalog = Some(input);
            self
        }
        /// <p>The data catalog returned.</p>
        pub fn set_data_catalog(
            mut self,
            input: std::option::Option<crate::model::DataCatalog>,
        ) -> Self {
            self.data_catalog = input;
            self
        }
        /// Consumes the builder and constructs a [`GetDataCatalogOutput`](crate::output::GetDataCatalogOutput).
        pub fn build(self) -> crate::output::GetDataCatalogOutput {
            crate::output::GetDataCatalogOutput {
                data_catalog: self.data_catalog,
            }
        }
    }
}
impl GetDataCatalogOutput {
    /// Creates a new builder-style object to manufacture [`GetDataCatalogOutput`](crate::output::GetDataCatalogOutput).
    pub fn builder() -> crate::output::get_data_catalog_output::Builder {
        crate::output::get_data_catalog_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetDatabaseOutput {
    /// <p>The database returned.</p>
    #[doc(hidden)]
    pub database: std::option::Option<crate::model::Database>,
}
impl GetDatabaseOutput {
    /// <p>The database returned.</p>
    pub fn database(&self) -> std::option::Option<&crate::model::Database> {
        self.database.as_ref()
    }
}
/// See [`GetDatabaseOutput`](crate::output::GetDatabaseOutput).
pub mod get_database_output {

    /// A builder for [`GetDatabaseOutput`](crate::output::GetDatabaseOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) database: std::option::Option<crate::model::Database>,
    }
    impl Builder {
        /// <p>The database returned.</p>
        pub fn database(mut self, input: crate::model::Database) -> Self {
            self.database = Some(input);
            self
        }
        /// <p>The database returned.</p>
        pub fn set_database(mut self, input: std::option::Option<crate::model::Database>) -> Self {
            self.database = input;
            self
        }
        /// Consumes the builder and constructs a [`GetDatabaseOutput`](crate::output::GetDatabaseOutput).
        pub fn build(self) -> crate::output::GetDatabaseOutput {
            crate::output::GetDatabaseOutput {
                database: self.database,
            }
        }
    }
}
impl GetDatabaseOutput {
    /// Creates a new builder-style object to manufacture [`GetDatabaseOutput`](crate::output::GetDatabaseOutput).
    pub fn builder() -> crate::output::get_database_output::Builder {
        crate::output::get_database_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetCalculationExecutionStatusOutput {
    /// <p>Contains information about the calculation execution status.</p>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::CalculationStatus>,
    /// <p>Contains information about the DPU execution time and progress.</p>
    #[doc(hidden)]
    pub statistics: std::option::Option<crate::model::CalculationStatistics>,
}
impl GetCalculationExecutionStatusOutput {
    /// <p>Contains information about the calculation execution status.</p>
    pub fn status(&self) -> std::option::Option<&crate::model::CalculationStatus> {
        self.status.as_ref()
    }
    /// <p>Contains information about the DPU execution time and progress.</p>
    pub fn statistics(&self) -> std::option::Option<&crate::model::CalculationStatistics> {
        self.statistics.as_ref()
    }
}
/// See [`GetCalculationExecutionStatusOutput`](crate::output::GetCalculationExecutionStatusOutput).
pub mod get_calculation_execution_status_output {

    /// A builder for [`GetCalculationExecutionStatusOutput`](crate::output::GetCalculationExecutionStatusOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) status: std::option::Option<crate::model::CalculationStatus>,
        pub(crate) statistics: std::option::Option<crate::model::CalculationStatistics>,
    }
    impl Builder {
        /// <p>Contains information about the calculation execution status.</p>
        pub fn status(mut self, input: crate::model::CalculationStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p>Contains information about the calculation execution status.</p>
        pub fn set_status(
            mut self,
            input: std::option::Option<crate::model::CalculationStatus>,
        ) -> Self {
            self.status = input;
            self
        }
        /// <p>Contains information about the DPU execution time and progress.</p>
        pub fn statistics(mut self, input: crate::model::CalculationStatistics) -> Self {
            self.statistics = Some(input);
            self
        }
        /// <p>Contains information about the DPU execution time and progress.</p>
        pub fn set_statistics(
            mut self,
            input: std::option::Option<crate::model::CalculationStatistics>,
        ) -> Self {
            self.statistics = input;
            self
        }
        /// Consumes the builder and constructs a [`GetCalculationExecutionStatusOutput`](crate::output::GetCalculationExecutionStatusOutput).
        pub fn build(self) -> crate::output::GetCalculationExecutionStatusOutput {
            crate::output::GetCalculationExecutionStatusOutput {
                status: self.status,
                statistics: self.statistics,
            }
        }
    }
}
impl GetCalculationExecutionStatusOutput {
    /// Creates a new builder-style object to manufacture [`GetCalculationExecutionStatusOutput`](crate::output::GetCalculationExecutionStatusOutput).
    pub fn builder() -> crate::output::get_calculation_execution_status_output::Builder {
        crate::output::get_calculation_execution_status_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetCalculationExecutionCodeOutput {
    /// <p>A pre-signed URL to the code that executed the calculation.</p>
    #[doc(hidden)]
    pub code_block: std::option::Option<std::string::String>,
}
impl GetCalculationExecutionCodeOutput {
    /// <p>A pre-signed URL to the code that executed the calculation.</p>
    pub fn code_block(&self) -> std::option::Option<&str> {
        self.code_block.as_deref()
    }
}
/// See [`GetCalculationExecutionCodeOutput`](crate::output::GetCalculationExecutionCodeOutput).
pub mod get_calculation_execution_code_output {

    /// A builder for [`GetCalculationExecutionCodeOutput`](crate::output::GetCalculationExecutionCodeOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) code_block: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>A pre-signed URL to the code that executed the calculation.</p>
        pub fn code_block(mut self, input: impl Into<std::string::String>) -> Self {
            self.code_block = Some(input.into());
            self
        }
        /// <p>A pre-signed URL to the code that executed the calculation.</p>
        pub fn set_code_block(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.code_block = input;
            self
        }
        /// Consumes the builder and constructs a [`GetCalculationExecutionCodeOutput`](crate::output::GetCalculationExecutionCodeOutput).
        pub fn build(self) -> crate::output::GetCalculationExecutionCodeOutput {
            crate::output::GetCalculationExecutionCodeOutput {
                code_block: self.code_block,
            }
        }
    }
}
impl GetCalculationExecutionCodeOutput {
    /// Creates a new builder-style object to manufacture [`GetCalculationExecutionCodeOutput`](crate::output::GetCalculationExecutionCodeOutput).
    pub fn builder() -> crate::output::get_calculation_execution_code_output::Builder {
        crate::output::get_calculation_execution_code_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetCalculationExecutionOutput {
    /// <p>The calculation execution UUID.</p>
    #[doc(hidden)]
    pub calculation_execution_id: std::option::Option<std::string::String>,
    /// <p>The session ID that the calculation ran in.</p>
    #[doc(hidden)]
    pub session_id: std::option::Option<std::string::String>,
    /// <p>The description of the calculation execution.</p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p>The Amazon S3 location in which calculation results are stored.</p>
    #[doc(hidden)]
    pub working_directory: std::option::Option<std::string::String>,
    /// <p>Contains information about the status of the calculation.</p>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::CalculationStatus>,
    /// <p>Contains information about the data processing unit (DPU) execution time and progress. This field is populated only when statistics are available.</p>
    #[doc(hidden)]
    pub statistics: std::option::Option<crate::model::CalculationStatistics>,
    /// <p>Contains result information. This field is populated only if the calculation is completed.</p>
    #[doc(hidden)]
    pub result: std::option::Option<crate::model::CalculationResult>,
}
impl GetCalculationExecutionOutput {
    /// <p>The calculation execution UUID.</p>
    pub fn calculation_execution_id(&self) -> std::option::Option<&str> {
        self.calculation_execution_id.as_deref()
    }
    /// <p>The session ID that the calculation ran in.</p>
    pub fn session_id(&self) -> std::option::Option<&str> {
        self.session_id.as_deref()
    }
    /// <p>The description of the calculation execution.</p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>The Amazon S3 location in which calculation results are stored.</p>
    pub fn working_directory(&self) -> std::option::Option<&str> {
        self.working_directory.as_deref()
    }
    /// <p>Contains information about the status of the calculation.</p>
    pub fn status(&self) -> std::option::Option<&crate::model::CalculationStatus> {
        self.status.as_ref()
    }
    /// <p>Contains information about the data processing unit (DPU) execution time and progress. This field is populated only when statistics are available.</p>
    pub fn statistics(&self) -> std::option::Option<&crate::model::CalculationStatistics> {
        self.statistics.as_ref()
    }
    /// <p>Contains result information. This field is populated only if the calculation is completed.</p>
    pub fn result(&self) -> std::option::Option<&crate::model::CalculationResult> {
        self.result.as_ref()
    }
}
/// See [`GetCalculationExecutionOutput`](crate::output::GetCalculationExecutionOutput).
pub mod get_calculation_execution_output {

    /// A builder for [`GetCalculationExecutionOutput`](crate::output::GetCalculationExecutionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) calculation_execution_id: std::option::Option<std::string::String>,
        pub(crate) session_id: std::option::Option<std::string::String>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) working_directory: std::option::Option<std::string::String>,
        pub(crate) status: std::option::Option<crate::model::CalculationStatus>,
        pub(crate) statistics: std::option::Option<crate::model::CalculationStatistics>,
        pub(crate) result: std::option::Option<crate::model::CalculationResult>,
    }
    impl Builder {
        /// <p>The calculation execution UUID.</p>
        pub fn calculation_execution_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.calculation_execution_id = Some(input.into());
            self
        }
        /// <p>The calculation execution UUID.</p>
        pub fn set_calculation_execution_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.calculation_execution_id = input;
            self
        }
        /// <p>The session ID that the calculation ran in.</p>
        pub fn session_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.session_id = Some(input.into());
            self
        }
        /// <p>The session ID that the calculation ran in.</p>
        pub fn set_session_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.session_id = input;
            self
        }
        /// <p>The description of the calculation execution.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p>The description of the calculation execution.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// <p>The Amazon S3 location in which calculation results are stored.</p>
        pub fn working_directory(mut self, input: impl Into<std::string::String>) -> Self {
            self.working_directory = Some(input.into());
            self
        }
        /// <p>The Amazon S3 location in which calculation results are stored.</p>
        pub fn set_working_directory(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.working_directory = input;
            self
        }
        /// <p>Contains information about the status of the calculation.</p>
        pub fn status(mut self, input: crate::model::CalculationStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p>Contains information about the status of the calculation.</p>
        pub fn set_status(
            mut self,
            input: std::option::Option<crate::model::CalculationStatus>,
        ) -> Self {
            self.status = input;
            self
        }
        /// <p>Contains information about the data processing unit (DPU) execution time and progress. This field is populated only when statistics are available.</p>
        pub fn statistics(mut self, input: crate::model::CalculationStatistics) -> Self {
            self.statistics = Some(input);
            self
        }
        /// <p>Contains information about the data processing unit (DPU) execution time and progress. This field is populated only when statistics are available.</p>
        pub fn set_statistics(
            mut self,
            input: std::option::Option<crate::model::CalculationStatistics>,
        ) -> Self {
            self.statistics = input;
            self
        }
        /// <p>Contains result information. This field is populated only if the calculation is completed.</p>
        pub fn result(mut self, input: crate::model::CalculationResult) -> Self {
            self.result = Some(input);
            self
        }
        /// <p>Contains result information. This field is populated only if the calculation is completed.</p>
        pub fn set_result(
            mut self,
            input: std::option::Option<crate::model::CalculationResult>,
        ) -> Self {
            self.result = input;
            self
        }
        /// Consumes the builder and constructs a [`GetCalculationExecutionOutput`](crate::output::GetCalculationExecutionOutput).
        pub fn build(self) -> crate::output::GetCalculationExecutionOutput {
            crate::output::GetCalculationExecutionOutput {
                calculation_execution_id: self.calculation_execution_id,
                session_id: self.session_id,
                description: self.description,
                working_directory: self.working_directory,
                status: self.status,
                statistics: self.statistics,
                result: self.result,
            }
        }
    }
}
impl GetCalculationExecutionOutput {
    /// Creates a new builder-style object to manufacture [`GetCalculationExecutionOutput`](crate::output::GetCalculationExecutionOutput).
    pub fn builder() -> crate::output::get_calculation_execution_output::Builder {
        crate::output::get_calculation_execution_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ExportNotebookOutput {
    /// <p>The notebook metadata, including notebook ID, notebook name, and workgroup name.</p>
    #[doc(hidden)]
    pub notebook_metadata: std::option::Option<crate::model::NotebookMetadata>,
    /// <p>The content of the exported notebook.</p>
    #[doc(hidden)]
    pub payload: std::option::Option<std::string::String>,
}
impl ExportNotebookOutput {
    /// <p>The notebook metadata, including notebook ID, notebook name, and workgroup name.</p>
    pub fn notebook_metadata(&self) -> std::option::Option<&crate::model::NotebookMetadata> {
        self.notebook_metadata.as_ref()
    }
    /// <p>The content of the exported notebook.</p>
    pub fn payload(&self) -> std::option::Option<&str> {
        self.payload.as_deref()
    }
}
/// See [`ExportNotebookOutput`](crate::output::ExportNotebookOutput).
pub mod export_notebook_output {

    /// A builder for [`ExportNotebookOutput`](crate::output::ExportNotebookOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) notebook_metadata: std::option::Option<crate::model::NotebookMetadata>,
        pub(crate) payload: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The notebook metadata, including notebook ID, notebook name, and workgroup name.</p>
        pub fn notebook_metadata(mut self, input: crate::model::NotebookMetadata) -> Self {
            self.notebook_metadata = Some(input);
            self
        }
        /// <p>The notebook metadata, including notebook ID, notebook name, and workgroup name.</p>
        pub fn set_notebook_metadata(
            mut self,
            input: std::option::Option<crate::model::NotebookMetadata>,
        ) -> Self {
            self.notebook_metadata = input;
            self
        }
        /// <p>The content of the exported notebook.</p>
        pub fn payload(mut self, input: impl Into<std::string::String>) -> Self {
            self.payload = Some(input.into());
            self
        }
        /// <p>The content of the exported notebook.</p>
        pub fn set_payload(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.payload = input;
            self
        }
        /// Consumes the builder and constructs a [`ExportNotebookOutput`](crate::output::ExportNotebookOutput).
        pub fn build(self) -> crate::output::ExportNotebookOutput {
            crate::output::ExportNotebookOutput {
                notebook_metadata: self.notebook_metadata,
                payload: self.payload,
            }
        }
    }
}
impl ExportNotebookOutput {
    /// Creates a new builder-style object to manufacture [`ExportNotebookOutput`](crate::output::ExportNotebookOutput).
    pub fn builder() -> crate::output::export_notebook_output::Builder {
        crate::output::export_notebook_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteWorkGroupOutput {}
/// See [`DeleteWorkGroupOutput`](crate::output::DeleteWorkGroupOutput).
pub mod delete_work_group_output {

    /// A builder for [`DeleteWorkGroupOutput`](crate::output::DeleteWorkGroupOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`DeleteWorkGroupOutput`](crate::output::DeleteWorkGroupOutput).
        pub fn build(self) -> crate::output::DeleteWorkGroupOutput {
            crate::output::DeleteWorkGroupOutput {}
        }
    }
}
impl DeleteWorkGroupOutput {
    /// Creates a new builder-style object to manufacture [`DeleteWorkGroupOutput`](crate::output::DeleteWorkGroupOutput).
    pub fn builder() -> crate::output::delete_work_group_output::Builder {
        crate::output::delete_work_group_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeletePreparedStatementOutput {}
/// See [`DeletePreparedStatementOutput`](crate::output::DeletePreparedStatementOutput).
pub mod delete_prepared_statement_output {

    /// A builder for [`DeletePreparedStatementOutput`](crate::output::DeletePreparedStatementOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`DeletePreparedStatementOutput`](crate::output::DeletePreparedStatementOutput).
        pub fn build(self) -> crate::output::DeletePreparedStatementOutput {
            crate::output::DeletePreparedStatementOutput {}
        }
    }
}
impl DeletePreparedStatementOutput {
    /// Creates a new builder-style object to manufacture [`DeletePreparedStatementOutput`](crate::output::DeletePreparedStatementOutput).
    pub fn builder() -> crate::output::delete_prepared_statement_output::Builder {
        crate::output::delete_prepared_statement_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteNotebookOutput {}
/// See [`DeleteNotebookOutput`](crate::output::DeleteNotebookOutput).
pub mod delete_notebook_output {

    /// A builder for [`DeleteNotebookOutput`](crate::output::DeleteNotebookOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`DeleteNotebookOutput`](crate::output::DeleteNotebookOutput).
        pub fn build(self) -> crate::output::DeleteNotebookOutput {
            crate::output::DeleteNotebookOutput {}
        }
    }
}
impl DeleteNotebookOutput {
    /// Creates a new builder-style object to manufacture [`DeleteNotebookOutput`](crate::output::DeleteNotebookOutput).
    pub fn builder() -> crate::output::delete_notebook_output::Builder {
        crate::output::delete_notebook_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteNamedQueryOutput {}
/// See [`DeleteNamedQueryOutput`](crate::output::DeleteNamedQueryOutput).
pub mod delete_named_query_output {

    /// A builder for [`DeleteNamedQueryOutput`](crate::output::DeleteNamedQueryOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`DeleteNamedQueryOutput`](crate::output::DeleteNamedQueryOutput).
        pub fn build(self) -> crate::output::DeleteNamedQueryOutput {
            crate::output::DeleteNamedQueryOutput {}
        }
    }
}
impl DeleteNamedQueryOutput {
    /// Creates a new builder-style object to manufacture [`DeleteNamedQueryOutput`](crate::output::DeleteNamedQueryOutput).
    pub fn builder() -> crate::output::delete_named_query_output::Builder {
        crate::output::delete_named_query_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteDataCatalogOutput {}
/// See [`DeleteDataCatalogOutput`](crate::output::DeleteDataCatalogOutput).
pub mod delete_data_catalog_output {

    /// A builder for [`DeleteDataCatalogOutput`](crate::output::DeleteDataCatalogOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`DeleteDataCatalogOutput`](crate::output::DeleteDataCatalogOutput).
        pub fn build(self) -> crate::output::DeleteDataCatalogOutput {
            crate::output::DeleteDataCatalogOutput {}
        }
    }
}
impl DeleteDataCatalogOutput {
    /// Creates a new builder-style object to manufacture [`DeleteDataCatalogOutput`](crate::output::DeleteDataCatalogOutput).
    pub fn builder() -> crate::output::delete_data_catalog_output::Builder {
        crate::output::delete_data_catalog_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateWorkGroupOutput {}
/// See [`CreateWorkGroupOutput`](crate::output::CreateWorkGroupOutput).
pub mod create_work_group_output {

    /// A builder for [`CreateWorkGroupOutput`](crate::output::CreateWorkGroupOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`CreateWorkGroupOutput`](crate::output::CreateWorkGroupOutput).
        pub fn build(self) -> crate::output::CreateWorkGroupOutput {
            crate::output::CreateWorkGroupOutput {}
        }
    }
}
impl CreateWorkGroupOutput {
    /// Creates a new builder-style object to manufacture [`CreateWorkGroupOutput`](crate::output::CreateWorkGroupOutput).
    pub fn builder() -> crate::output::create_work_group_output::Builder {
        crate::output::create_work_group_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreatePresignedNotebookUrlOutput {
    /// <p>The URL of the notebook. The URL includes the authentication token and notebook file name and points directly to the opened notebook.</p>
    #[doc(hidden)]
    pub notebook_url: std::option::Option<std::string::String>,
    /// <p>The authentication token for the notebook.</p>
    #[doc(hidden)]
    pub auth_token: std::option::Option<std::string::String>,
    /// <p>The UTC epoch time when the authentication token expires.</p>
    #[doc(hidden)]
    pub auth_token_expiration_time: std::option::Option<i64>,
}
impl CreatePresignedNotebookUrlOutput {
    /// <p>The URL of the notebook. The URL includes the authentication token and notebook file name and points directly to the opened notebook.</p>
    pub fn notebook_url(&self) -> std::option::Option<&str> {
        self.notebook_url.as_deref()
    }
    /// <p>The authentication token for the notebook.</p>
    pub fn auth_token(&self) -> std::option::Option<&str> {
        self.auth_token.as_deref()
    }
    /// <p>The UTC epoch time when the authentication token expires.</p>
    pub fn auth_token_expiration_time(&self) -> std::option::Option<i64> {
        self.auth_token_expiration_time
    }
}
/// See [`CreatePresignedNotebookUrlOutput`](crate::output::CreatePresignedNotebookUrlOutput).
pub mod create_presigned_notebook_url_output {

    /// A builder for [`CreatePresignedNotebookUrlOutput`](crate::output::CreatePresignedNotebookUrlOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) notebook_url: std::option::Option<std::string::String>,
        pub(crate) auth_token: std::option::Option<std::string::String>,
        pub(crate) auth_token_expiration_time: std::option::Option<i64>,
    }
    impl Builder {
        /// <p>The URL of the notebook. The URL includes the authentication token and notebook file name and points directly to the opened notebook.</p>
        pub fn notebook_url(mut self, input: impl Into<std::string::String>) -> Self {
            self.notebook_url = Some(input.into());
            self
        }
        /// <p>The URL of the notebook. The URL includes the authentication token and notebook file name and points directly to the opened notebook.</p>
        pub fn set_notebook_url(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.notebook_url = input;
            self
        }
        /// <p>The authentication token for the notebook.</p>
        pub fn auth_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.auth_token = Some(input.into());
            self
        }
        /// <p>The authentication token for the notebook.</p>
        pub fn set_auth_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.auth_token = input;
            self
        }
        /// <p>The UTC epoch time when the authentication token expires.</p>
        pub fn auth_token_expiration_time(mut self, input: i64) -> Self {
            self.auth_token_expiration_time = Some(input);
            self
        }
        /// <p>The UTC epoch time when the authentication token expires.</p>
        pub fn set_auth_token_expiration_time(mut self, input: std::option::Option<i64>) -> Self {
            self.auth_token_expiration_time = input;
            self
        }
        /// Consumes the builder and constructs a [`CreatePresignedNotebookUrlOutput`](crate::output::CreatePresignedNotebookUrlOutput).
        pub fn build(self) -> crate::output::CreatePresignedNotebookUrlOutput {
            crate::output::CreatePresignedNotebookUrlOutput {
                notebook_url: self.notebook_url,
                auth_token: self.auth_token,
                auth_token_expiration_time: self.auth_token_expiration_time,
            }
        }
    }
}
impl CreatePresignedNotebookUrlOutput {
    /// Creates a new builder-style object to manufacture [`CreatePresignedNotebookUrlOutput`](crate::output::CreatePresignedNotebookUrlOutput).
    pub fn builder() -> crate::output::create_presigned_notebook_url_output::Builder {
        crate::output::create_presigned_notebook_url_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreatePreparedStatementOutput {}
/// See [`CreatePreparedStatementOutput`](crate::output::CreatePreparedStatementOutput).
pub mod create_prepared_statement_output {

    /// A builder for [`CreatePreparedStatementOutput`](crate::output::CreatePreparedStatementOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`CreatePreparedStatementOutput`](crate::output::CreatePreparedStatementOutput).
        pub fn build(self) -> crate::output::CreatePreparedStatementOutput {
            crate::output::CreatePreparedStatementOutput {}
        }
    }
}
impl CreatePreparedStatementOutput {
    /// Creates a new builder-style object to manufacture [`CreatePreparedStatementOutput`](crate::output::CreatePreparedStatementOutput).
    pub fn builder() -> crate::output::create_prepared_statement_output::Builder {
        crate::output::create_prepared_statement_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateNotebookOutput {
    /// <p>A unique identifier for the notebook.</p>
    #[doc(hidden)]
    pub notebook_id: std::option::Option<std::string::String>,
}
impl CreateNotebookOutput {
    /// <p>A unique identifier for the notebook.</p>
    pub fn notebook_id(&self) -> std::option::Option<&str> {
        self.notebook_id.as_deref()
    }
}
/// See [`CreateNotebookOutput`](crate::output::CreateNotebookOutput).
pub mod create_notebook_output {

    /// A builder for [`CreateNotebookOutput`](crate::output::CreateNotebookOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) notebook_id: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>A unique identifier for the notebook.</p>
        pub fn notebook_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.notebook_id = Some(input.into());
            self
        }
        /// <p>A unique identifier for the notebook.</p>
        pub fn set_notebook_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.notebook_id = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateNotebookOutput`](crate::output::CreateNotebookOutput).
        pub fn build(self) -> crate::output::CreateNotebookOutput {
            crate::output::CreateNotebookOutput {
                notebook_id: self.notebook_id,
            }
        }
    }
}
impl CreateNotebookOutput {
    /// Creates a new builder-style object to manufacture [`CreateNotebookOutput`](crate::output::CreateNotebookOutput).
    pub fn builder() -> crate::output::create_notebook_output::Builder {
        crate::output::create_notebook_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateNamedQueryOutput {
    /// <p>The unique ID of the query.</p>
    #[doc(hidden)]
    pub named_query_id: std::option::Option<std::string::String>,
}
impl CreateNamedQueryOutput {
    /// <p>The unique ID of the query.</p>
    pub fn named_query_id(&self) -> std::option::Option<&str> {
        self.named_query_id.as_deref()
    }
}
/// See [`CreateNamedQueryOutput`](crate::output::CreateNamedQueryOutput).
pub mod create_named_query_output {

    /// A builder for [`CreateNamedQueryOutput`](crate::output::CreateNamedQueryOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) named_query_id: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The unique ID of the query.</p>
        pub fn named_query_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.named_query_id = Some(input.into());
            self
        }
        /// <p>The unique ID of the query.</p>
        pub fn set_named_query_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.named_query_id = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateNamedQueryOutput`](crate::output::CreateNamedQueryOutput).
        pub fn build(self) -> crate::output::CreateNamedQueryOutput {
            crate::output::CreateNamedQueryOutput {
                named_query_id: self.named_query_id,
            }
        }
    }
}
impl CreateNamedQueryOutput {
    /// Creates a new builder-style object to manufacture [`CreateNamedQueryOutput`](crate::output::CreateNamedQueryOutput).
    pub fn builder() -> crate::output::create_named_query_output::Builder {
        crate::output::create_named_query_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateDataCatalogOutput {}
/// See [`CreateDataCatalogOutput`](crate::output::CreateDataCatalogOutput).
pub mod create_data_catalog_output {

    /// A builder for [`CreateDataCatalogOutput`](crate::output::CreateDataCatalogOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`CreateDataCatalogOutput`](crate::output::CreateDataCatalogOutput).
        pub fn build(self) -> crate::output::CreateDataCatalogOutput {
            crate::output::CreateDataCatalogOutput {}
        }
    }
}
impl CreateDataCatalogOutput {
    /// Creates a new builder-style object to manufacture [`CreateDataCatalogOutput`](crate::output::CreateDataCatalogOutput).
    pub fn builder() -> crate::output::create_data_catalog_output::Builder {
        crate::output::create_data_catalog_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct BatchGetQueryExecutionOutput {
    /// <p>Information about a query execution.</p>
    #[doc(hidden)]
    pub query_executions: std::option::Option<std::vec::Vec<crate::model::QueryExecution>>,
    /// <p>Information about the query executions that failed to run.</p>
    #[doc(hidden)]
    pub unprocessed_query_execution_ids:
        std::option::Option<std::vec::Vec<crate::model::UnprocessedQueryExecutionId>>,
}
impl BatchGetQueryExecutionOutput {
    /// <p>Information about a query execution.</p>
    pub fn query_executions(&self) -> std::option::Option<&[crate::model::QueryExecution]> {
        self.query_executions.as_deref()
    }
    /// <p>Information about the query executions that failed to run.</p>
    pub fn unprocessed_query_execution_ids(
        &self,
    ) -> std::option::Option<&[crate::model::UnprocessedQueryExecutionId]> {
        self.unprocessed_query_execution_ids.as_deref()
    }
}
/// See [`BatchGetQueryExecutionOutput`](crate::output::BatchGetQueryExecutionOutput).
pub mod batch_get_query_execution_output {

    /// A builder for [`BatchGetQueryExecutionOutput`](crate::output::BatchGetQueryExecutionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) query_executions:
            std::option::Option<std::vec::Vec<crate::model::QueryExecution>>,
        pub(crate) unprocessed_query_execution_ids:
            std::option::Option<std::vec::Vec<crate::model::UnprocessedQueryExecutionId>>,
    }
    impl Builder {
        /// Appends an item to `query_executions`.
        ///
        /// To override the contents of this collection use [`set_query_executions`](Self::set_query_executions).
        ///
        /// <p>Information about a query execution.</p>
        pub fn query_executions(mut self, input: crate::model::QueryExecution) -> Self {
            let mut v = self.query_executions.unwrap_or_default();
            v.push(input);
            self.query_executions = Some(v);
            self
        }
        /// <p>Information about a query execution.</p>
        pub fn set_query_executions(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::QueryExecution>>,
        ) -> Self {
            self.query_executions = input;
            self
        }
        /// Appends an item to `unprocessed_query_execution_ids`.
        ///
        /// To override the contents of this collection use [`set_unprocessed_query_execution_ids`](Self::set_unprocessed_query_execution_ids).
        ///
        /// <p>Information about the query executions that failed to run.</p>
        pub fn unprocessed_query_execution_ids(
            mut self,
            input: crate::model::UnprocessedQueryExecutionId,
        ) -> Self {
            let mut v = self.unprocessed_query_execution_ids.unwrap_or_default();
            v.push(input);
            self.unprocessed_query_execution_ids = Some(v);
            self
        }
        /// <p>Information about the query executions that failed to run.</p>
        pub fn set_unprocessed_query_execution_ids(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::UnprocessedQueryExecutionId>>,
        ) -> Self {
            self.unprocessed_query_execution_ids = input;
            self
        }
        /// Consumes the builder and constructs a [`BatchGetQueryExecutionOutput`](crate::output::BatchGetQueryExecutionOutput).
        pub fn build(self) -> crate::output::BatchGetQueryExecutionOutput {
            crate::output::BatchGetQueryExecutionOutput {
                query_executions: self.query_executions,
                unprocessed_query_execution_ids: self.unprocessed_query_execution_ids,
            }
        }
    }
}
impl BatchGetQueryExecutionOutput {
    /// Creates a new builder-style object to manufacture [`BatchGetQueryExecutionOutput`](crate::output::BatchGetQueryExecutionOutput).
    pub fn builder() -> crate::output::batch_get_query_execution_output::Builder {
        crate::output::batch_get_query_execution_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct BatchGetPreparedStatementOutput {
    /// <p>The list of prepared statements returned.</p>
    #[doc(hidden)]
    pub prepared_statements: std::option::Option<std::vec::Vec<crate::model::PreparedStatement>>,
    /// <p>A list of one or more prepared statements that were requested but could not be returned.</p>
    #[doc(hidden)]
    pub unprocessed_prepared_statement_names:
        std::option::Option<std::vec::Vec<crate::model::UnprocessedPreparedStatementName>>,
}
impl BatchGetPreparedStatementOutput {
    /// <p>The list of prepared statements returned.</p>
    pub fn prepared_statements(&self) -> std::option::Option<&[crate::model::PreparedStatement]> {
        self.prepared_statements.as_deref()
    }
    /// <p>A list of one or more prepared statements that were requested but could not be returned.</p>
    pub fn unprocessed_prepared_statement_names(
        &self,
    ) -> std::option::Option<&[crate::model::UnprocessedPreparedStatementName]> {
        self.unprocessed_prepared_statement_names.as_deref()
    }
}
/// See [`BatchGetPreparedStatementOutput`](crate::output::BatchGetPreparedStatementOutput).
pub mod batch_get_prepared_statement_output {

    /// A builder for [`BatchGetPreparedStatementOutput`](crate::output::BatchGetPreparedStatementOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) prepared_statements:
            std::option::Option<std::vec::Vec<crate::model::PreparedStatement>>,
        pub(crate) unprocessed_prepared_statement_names:
            std::option::Option<std::vec::Vec<crate::model::UnprocessedPreparedStatementName>>,
    }
    impl Builder {
        /// Appends an item to `prepared_statements`.
        ///
        /// To override the contents of this collection use [`set_prepared_statements`](Self::set_prepared_statements).
        ///
        /// <p>The list of prepared statements returned.</p>
        pub fn prepared_statements(mut self, input: crate::model::PreparedStatement) -> Self {
            let mut v = self.prepared_statements.unwrap_or_default();
            v.push(input);
            self.prepared_statements = Some(v);
            self
        }
        /// <p>The list of prepared statements returned.</p>
        pub fn set_prepared_statements(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::PreparedStatement>>,
        ) -> Self {
            self.prepared_statements = input;
            self
        }
        /// Appends an item to `unprocessed_prepared_statement_names`.
        ///
        /// To override the contents of this collection use [`set_unprocessed_prepared_statement_names`](Self::set_unprocessed_prepared_statement_names).
        ///
        /// <p>A list of one or more prepared statements that were requested but could not be returned.</p>
        pub fn unprocessed_prepared_statement_names(
            mut self,
            input: crate::model::UnprocessedPreparedStatementName,
        ) -> Self {
            let mut v = self
                .unprocessed_prepared_statement_names
                .unwrap_or_default();
            v.push(input);
            self.unprocessed_prepared_statement_names = Some(v);
            self
        }
        /// <p>A list of one or more prepared statements that were requested but could not be returned.</p>
        pub fn set_unprocessed_prepared_statement_names(
            mut self,
            input: std::option::Option<
                std::vec::Vec<crate::model::UnprocessedPreparedStatementName>,
            >,
        ) -> Self {
            self.unprocessed_prepared_statement_names = input;
            self
        }
        /// Consumes the builder and constructs a [`BatchGetPreparedStatementOutput`](crate::output::BatchGetPreparedStatementOutput).
        pub fn build(self) -> crate::output::BatchGetPreparedStatementOutput {
            crate::output::BatchGetPreparedStatementOutput {
                prepared_statements: self.prepared_statements,
                unprocessed_prepared_statement_names: self.unprocessed_prepared_statement_names,
            }
        }
    }
}
impl BatchGetPreparedStatementOutput {
    /// Creates a new builder-style object to manufacture [`BatchGetPreparedStatementOutput`](crate::output::BatchGetPreparedStatementOutput).
    pub fn builder() -> crate::output::batch_get_prepared_statement_output::Builder {
        crate::output::batch_get_prepared_statement_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct BatchGetNamedQueryOutput {
    /// <p>Information about the named query IDs submitted.</p>
    #[doc(hidden)]
    pub named_queries: std::option::Option<std::vec::Vec<crate::model::NamedQuery>>,
    /// <p>Information about provided query IDs.</p>
    #[doc(hidden)]
    pub unprocessed_named_query_ids:
        std::option::Option<std::vec::Vec<crate::model::UnprocessedNamedQueryId>>,
}
impl BatchGetNamedQueryOutput {
    /// <p>Information about the named query IDs submitted.</p>
    pub fn named_queries(&self) -> std::option::Option<&[crate::model::NamedQuery]> {
        self.named_queries.as_deref()
    }
    /// <p>Information about provided query IDs.</p>
    pub fn unprocessed_named_query_ids(
        &self,
    ) -> std::option::Option<&[crate::model::UnprocessedNamedQueryId]> {
        self.unprocessed_named_query_ids.as_deref()
    }
}
/// See [`BatchGetNamedQueryOutput`](crate::output::BatchGetNamedQueryOutput).
pub mod batch_get_named_query_output {

    /// A builder for [`BatchGetNamedQueryOutput`](crate::output::BatchGetNamedQueryOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) named_queries: std::option::Option<std::vec::Vec<crate::model::NamedQuery>>,
        pub(crate) unprocessed_named_query_ids:
            std::option::Option<std::vec::Vec<crate::model::UnprocessedNamedQueryId>>,
    }
    impl Builder {
        /// Appends an item to `named_queries`.
        ///
        /// To override the contents of this collection use [`set_named_queries`](Self::set_named_queries).
        ///
        /// <p>Information about the named query IDs submitted.</p>
        pub fn named_queries(mut self, input: crate::model::NamedQuery) -> Self {
            let mut v = self.named_queries.unwrap_or_default();
            v.push(input);
            self.named_queries = Some(v);
            self
        }
        /// <p>Information about the named query IDs submitted.</p>
        pub fn set_named_queries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::NamedQuery>>,
        ) -> Self {
            self.named_queries = input;
            self
        }
        /// Appends an item to `unprocessed_named_query_ids`.
        ///
        /// To override the contents of this collection use [`set_unprocessed_named_query_ids`](Self::set_unprocessed_named_query_ids).
        ///
        /// <p>Information about provided query IDs.</p>
        pub fn unprocessed_named_query_ids(
            mut self,
            input: crate::model::UnprocessedNamedQueryId,
        ) -> Self {
            let mut v = self.unprocessed_named_query_ids.unwrap_or_default();
            v.push(input);
            self.unprocessed_named_query_ids = Some(v);
            self
        }
        /// <p>Information about provided query IDs.</p>
        pub fn set_unprocessed_named_query_ids(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::UnprocessedNamedQueryId>>,
        ) -> Self {
            self.unprocessed_named_query_ids = input;
            self
        }
        /// Consumes the builder and constructs a [`BatchGetNamedQueryOutput`](crate::output::BatchGetNamedQueryOutput).
        pub fn build(self) -> crate::output::BatchGetNamedQueryOutput {
            crate::output::BatchGetNamedQueryOutput {
                named_queries: self.named_queries,
                unprocessed_named_query_ids: self.unprocessed_named_query_ids,
            }
        }
    }
}
impl BatchGetNamedQueryOutput {
    /// Creates a new builder-style object to manufacture [`BatchGetNamedQueryOutput`](crate::output::BatchGetNamedQueryOutput).
    pub fn builder() -> crate::output::batch_get_named_query_output::Builder {
        crate::output::batch_get_named_query_output::Builder::default()
    }
}