aws-sdk-sagemaker 0.24.0

AWS SDK for Amazon SageMaker Service
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 UpdateWorkteamOutput {
    /// <p>A <code>Workteam</code> object that describes the updated work team.</p>
    #[doc(hidden)]
    pub workteam: std::option::Option<crate::model::Workteam>,
}
impl UpdateWorkteamOutput {
    /// <p>A <code>Workteam</code> object that describes the updated work team.</p>
    pub fn workteam(&self) -> std::option::Option<&crate::model::Workteam> {
        self.workteam.as_ref()
    }
}
/// See [`UpdateWorkteamOutput`](crate::output::UpdateWorkteamOutput).
pub mod update_workteam_output {

    /// A builder for [`UpdateWorkteamOutput`](crate::output::UpdateWorkteamOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workteam: std::option::Option<crate::model::Workteam>,
    }
    impl Builder {
        /// <p>A <code>Workteam</code> object that describes the updated work team.</p>
        pub fn workteam(mut self, input: crate::model::Workteam) -> Self {
            self.workteam = Some(input);
            self
        }
        /// <p>A <code>Workteam</code> object that describes the updated work team.</p>
        pub fn set_workteam(mut self, input: std::option::Option<crate::model::Workteam>) -> Self {
            self.workteam = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateWorkteamOutput`](crate::output::UpdateWorkteamOutput).
        pub fn build(self) -> crate::output::UpdateWorkteamOutput {
            crate::output::UpdateWorkteamOutput {
                workteam: self.workteam,
            }
        }
    }
}
impl UpdateWorkteamOutput {
    /// Creates a new builder-style object to manufacture [`UpdateWorkteamOutput`](crate::output::UpdateWorkteamOutput).
    pub fn builder() -> crate::output::update_workteam_output::Builder {
        crate::output::update_workteam_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateWorkforceOutput {
    /// <p>A single private workforce. You can create one private work force in each Amazon Web Services Region. By default, any workforce-related API operation used in a specific region will apply to the workforce created in that region. To learn how to create a private workforce, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private.html">Create a Private Workforce</a>.</p>
    #[doc(hidden)]
    pub workforce: std::option::Option<crate::model::Workforce>,
}
impl UpdateWorkforceOutput {
    /// <p>A single private workforce. You can create one private work force in each Amazon Web Services Region. By default, any workforce-related API operation used in a specific region will apply to the workforce created in that region. To learn how to create a private workforce, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private.html">Create a Private Workforce</a>.</p>
    pub fn workforce(&self) -> std::option::Option<&crate::model::Workforce> {
        self.workforce.as_ref()
    }
}
/// See [`UpdateWorkforceOutput`](crate::output::UpdateWorkforceOutput).
pub mod update_workforce_output {

    /// A builder for [`UpdateWorkforceOutput`](crate::output::UpdateWorkforceOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workforce: std::option::Option<crate::model::Workforce>,
    }
    impl Builder {
        /// <p>A single private workforce. You can create one private work force in each Amazon Web Services Region. By default, any workforce-related API operation used in a specific region will apply to the workforce created in that region. To learn how to create a private workforce, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private.html">Create a Private Workforce</a>.</p>
        pub fn workforce(mut self, input: crate::model::Workforce) -> Self {
            self.workforce = Some(input);
            self
        }
        /// <p>A single private workforce. You can create one private work force in each Amazon Web Services Region. By default, any workforce-related API operation used in a specific region will apply to the workforce created in that region. To learn how to create a private workforce, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private.html">Create a Private Workforce</a>.</p>
        pub fn set_workforce(
            mut self,
            input: std::option::Option<crate::model::Workforce>,
        ) -> Self {
            self.workforce = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateWorkforceOutput`](crate::output::UpdateWorkforceOutput).
        pub fn build(self) -> crate::output::UpdateWorkforceOutput {
            crate::output::UpdateWorkforceOutput {
                workforce: self.workforce,
            }
        }
    }
}
impl UpdateWorkforceOutput {
    /// Creates a new builder-style object to manufacture [`UpdateWorkforceOutput`](crate::output::UpdateWorkforceOutput).
    pub fn builder() -> crate::output::update_workforce_output::Builder {
        crate::output::update_workforce_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateUserProfileOutput {
    /// <p>The user profile Amazon Resource Name (ARN).</p>
    #[doc(hidden)]
    pub user_profile_arn: std::option::Option<std::string::String>,
}
impl UpdateUserProfileOutput {
    /// <p>The user profile Amazon Resource Name (ARN).</p>
    pub fn user_profile_arn(&self) -> std::option::Option<&str> {
        self.user_profile_arn.as_deref()
    }
}
/// See [`UpdateUserProfileOutput`](crate::output::UpdateUserProfileOutput).
pub mod update_user_profile_output {

    /// A builder for [`UpdateUserProfileOutput`](crate::output::UpdateUserProfileOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) user_profile_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The user profile Amazon Resource Name (ARN).</p>
        pub fn user_profile_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.user_profile_arn = Some(input.into());
            self
        }
        /// <p>The user profile Amazon Resource Name (ARN).</p>
        pub fn set_user_profile_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.user_profile_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateUserProfileOutput`](crate::output::UpdateUserProfileOutput).
        pub fn build(self) -> crate::output::UpdateUserProfileOutput {
            crate::output::UpdateUserProfileOutput {
                user_profile_arn: self.user_profile_arn,
            }
        }
    }
}
impl UpdateUserProfileOutput {
    /// Creates a new builder-style object to manufacture [`UpdateUserProfileOutput`](crate::output::UpdateUserProfileOutput).
    pub fn builder() -> crate::output::update_user_profile_output::Builder {
        crate::output::update_user_profile_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateTrialComponentOutput {
    /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
    #[doc(hidden)]
    pub trial_component_arn: std::option::Option<std::string::String>,
}
impl UpdateTrialComponentOutput {
    /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
    pub fn trial_component_arn(&self) -> std::option::Option<&str> {
        self.trial_component_arn.as_deref()
    }
}
/// See [`UpdateTrialComponentOutput`](crate::output::UpdateTrialComponentOutput).
pub mod update_trial_component_output {

    /// A builder for [`UpdateTrialComponentOutput`](crate::output::UpdateTrialComponentOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) trial_component_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
        pub fn trial_component_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.trial_component_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
        pub fn set_trial_component_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.trial_component_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateTrialComponentOutput`](crate::output::UpdateTrialComponentOutput).
        pub fn build(self) -> crate::output::UpdateTrialComponentOutput {
            crate::output::UpdateTrialComponentOutput {
                trial_component_arn: self.trial_component_arn,
            }
        }
    }
}
impl UpdateTrialComponentOutput {
    /// Creates a new builder-style object to manufacture [`UpdateTrialComponentOutput`](crate::output::UpdateTrialComponentOutput).
    pub fn builder() -> crate::output::update_trial_component_output::Builder {
        crate::output::update_trial_component_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateTrialOutput {
    /// <p>The Amazon Resource Name (ARN) of the trial.</p>
    #[doc(hidden)]
    pub trial_arn: std::option::Option<std::string::String>,
}
impl UpdateTrialOutput {
    /// <p>The Amazon Resource Name (ARN) of the trial.</p>
    pub fn trial_arn(&self) -> std::option::Option<&str> {
        self.trial_arn.as_deref()
    }
}
/// See [`UpdateTrialOutput`](crate::output::UpdateTrialOutput).
pub mod update_trial_output {

    /// A builder for [`UpdateTrialOutput`](crate::output::UpdateTrialOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) trial_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the trial.</p>
        pub fn trial_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.trial_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the trial.</p>
        pub fn set_trial_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.trial_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateTrialOutput`](crate::output::UpdateTrialOutput).
        pub fn build(self) -> crate::output::UpdateTrialOutput {
            crate::output::UpdateTrialOutput {
                trial_arn: self.trial_arn,
            }
        }
    }
}
impl UpdateTrialOutput {
    /// Creates a new builder-style object to manufacture [`UpdateTrialOutput`](crate::output::UpdateTrialOutput).
    pub fn builder() -> crate::output::update_trial_output::Builder {
        crate::output::update_trial_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateTrainingJobOutput {
    /// <p>The Amazon Resource Name (ARN) of the training job.</p>
    #[doc(hidden)]
    pub training_job_arn: std::option::Option<std::string::String>,
}
impl UpdateTrainingJobOutput {
    /// <p>The Amazon Resource Name (ARN) of the training job.</p>
    pub fn training_job_arn(&self) -> std::option::Option<&str> {
        self.training_job_arn.as_deref()
    }
}
/// See [`UpdateTrainingJobOutput`](crate::output::UpdateTrainingJobOutput).
pub mod update_training_job_output {

    /// A builder for [`UpdateTrainingJobOutput`](crate::output::UpdateTrainingJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) training_job_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the training job.</p>
        pub fn training_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.training_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the training job.</p>
        pub fn set_training_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.training_job_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateTrainingJobOutput`](crate::output::UpdateTrainingJobOutput).
        pub fn build(self) -> crate::output::UpdateTrainingJobOutput {
            crate::output::UpdateTrainingJobOutput {
                training_job_arn: self.training_job_arn,
            }
        }
    }
}
impl UpdateTrainingJobOutput {
    /// Creates a new builder-style object to manufacture [`UpdateTrainingJobOutput`](crate::output::UpdateTrainingJobOutput).
    pub fn builder() -> crate::output::update_training_job_output::Builder {
        crate::output::update_training_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateSpaceOutput {
    /// <p>The space's Amazon Resource Name (ARN).</p>
    #[doc(hidden)]
    pub space_arn: std::option::Option<std::string::String>,
}
impl UpdateSpaceOutput {
    /// <p>The space's Amazon Resource Name (ARN).</p>
    pub fn space_arn(&self) -> std::option::Option<&str> {
        self.space_arn.as_deref()
    }
}
/// See [`UpdateSpaceOutput`](crate::output::UpdateSpaceOutput).
pub mod update_space_output {

    /// A builder for [`UpdateSpaceOutput`](crate::output::UpdateSpaceOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) space_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The space's Amazon Resource Name (ARN).</p>
        pub fn space_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.space_arn = Some(input.into());
            self
        }
        /// <p>The space's Amazon Resource Name (ARN).</p>
        pub fn set_space_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.space_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateSpaceOutput`](crate::output::UpdateSpaceOutput).
        pub fn build(self) -> crate::output::UpdateSpaceOutput {
            crate::output::UpdateSpaceOutput {
                space_arn: self.space_arn,
            }
        }
    }
}
impl UpdateSpaceOutput {
    /// Creates a new builder-style object to manufacture [`UpdateSpaceOutput`](crate::output::UpdateSpaceOutput).
    pub fn builder() -> crate::output::update_space_output::Builder {
        crate::output::update_space_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateProjectOutput {
    /// <p>The Amazon Resource Name (ARN) of the project.</p>
    #[doc(hidden)]
    pub project_arn: std::option::Option<std::string::String>,
}
impl UpdateProjectOutput {
    /// <p>The Amazon Resource Name (ARN) of the project.</p>
    pub fn project_arn(&self) -> std::option::Option<&str> {
        self.project_arn.as_deref()
    }
}
/// See [`UpdateProjectOutput`](crate::output::UpdateProjectOutput).
pub mod update_project_output {

    /// A builder for [`UpdateProjectOutput`](crate::output::UpdateProjectOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) project_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the project.</p>
        pub fn project_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.project_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the project.</p>
        pub fn set_project_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.project_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateProjectOutput`](crate::output::UpdateProjectOutput).
        pub fn build(self) -> crate::output::UpdateProjectOutput {
            crate::output::UpdateProjectOutput {
                project_arn: self.project_arn,
            }
        }
    }
}
impl UpdateProjectOutput {
    /// Creates a new builder-style object to manufacture [`UpdateProjectOutput`](crate::output::UpdateProjectOutput).
    pub fn builder() -> crate::output::update_project_output::Builder {
        crate::output::update_project_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdatePipelineExecutionOutput {
    /// <p>The Amazon Resource Name (ARN) of the updated pipeline execution.</p>
    #[doc(hidden)]
    pub pipeline_execution_arn: std::option::Option<std::string::String>,
}
impl UpdatePipelineExecutionOutput {
    /// <p>The Amazon Resource Name (ARN) of the updated pipeline execution.</p>
    pub fn pipeline_execution_arn(&self) -> std::option::Option<&str> {
        self.pipeline_execution_arn.as_deref()
    }
}
/// See [`UpdatePipelineExecutionOutput`](crate::output::UpdatePipelineExecutionOutput).
pub mod update_pipeline_execution_output {

    /// A builder for [`UpdatePipelineExecutionOutput`](crate::output::UpdatePipelineExecutionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) pipeline_execution_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the updated pipeline execution.</p>
        pub fn pipeline_execution_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.pipeline_execution_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the updated pipeline execution.</p>
        pub fn set_pipeline_execution_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.pipeline_execution_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdatePipelineExecutionOutput`](crate::output::UpdatePipelineExecutionOutput).
        pub fn build(self) -> crate::output::UpdatePipelineExecutionOutput {
            crate::output::UpdatePipelineExecutionOutput {
                pipeline_execution_arn: self.pipeline_execution_arn,
            }
        }
    }
}
impl UpdatePipelineExecutionOutput {
    /// Creates a new builder-style object to manufacture [`UpdatePipelineExecutionOutput`](crate::output::UpdatePipelineExecutionOutput).
    pub fn builder() -> crate::output::update_pipeline_execution_output::Builder {
        crate::output::update_pipeline_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 UpdatePipelineOutput {
    /// <p>The Amazon Resource Name (ARN) of the updated pipeline.</p>
    #[doc(hidden)]
    pub pipeline_arn: std::option::Option<std::string::String>,
}
impl UpdatePipelineOutput {
    /// <p>The Amazon Resource Name (ARN) of the updated pipeline.</p>
    pub fn pipeline_arn(&self) -> std::option::Option<&str> {
        self.pipeline_arn.as_deref()
    }
}
/// See [`UpdatePipelineOutput`](crate::output::UpdatePipelineOutput).
pub mod update_pipeline_output {

    /// A builder for [`UpdatePipelineOutput`](crate::output::UpdatePipelineOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) pipeline_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the updated pipeline.</p>
        pub fn pipeline_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.pipeline_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the updated pipeline.</p>
        pub fn set_pipeline_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.pipeline_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdatePipelineOutput`](crate::output::UpdatePipelineOutput).
        pub fn build(self) -> crate::output::UpdatePipelineOutput {
            crate::output::UpdatePipelineOutput {
                pipeline_arn: self.pipeline_arn,
            }
        }
    }
}
impl UpdatePipelineOutput {
    /// Creates a new builder-style object to manufacture [`UpdatePipelineOutput`](crate::output::UpdatePipelineOutput).
    pub fn builder() -> crate::output::update_pipeline_output::Builder {
        crate::output::update_pipeline_output::Builder::default()
    }
}

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

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

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateMonitoringScheduleOutput {
    /// <p>The Amazon Resource Name (ARN) of the monitoring schedule.</p>
    #[doc(hidden)]
    pub monitoring_schedule_arn: std::option::Option<std::string::String>,
}
impl UpdateMonitoringScheduleOutput {
    /// <p>The Amazon Resource Name (ARN) of the monitoring schedule.</p>
    pub fn monitoring_schedule_arn(&self) -> std::option::Option<&str> {
        self.monitoring_schedule_arn.as_deref()
    }
}
/// See [`UpdateMonitoringScheduleOutput`](crate::output::UpdateMonitoringScheduleOutput).
pub mod update_monitoring_schedule_output {

    /// A builder for [`UpdateMonitoringScheduleOutput`](crate::output::UpdateMonitoringScheduleOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) monitoring_schedule_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the monitoring schedule.</p>
        pub fn monitoring_schedule_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.monitoring_schedule_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the monitoring schedule.</p>
        pub fn set_monitoring_schedule_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.monitoring_schedule_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateMonitoringScheduleOutput`](crate::output::UpdateMonitoringScheduleOutput).
        pub fn build(self) -> crate::output::UpdateMonitoringScheduleOutput {
            crate::output::UpdateMonitoringScheduleOutput {
                monitoring_schedule_arn: self.monitoring_schedule_arn,
            }
        }
    }
}
impl UpdateMonitoringScheduleOutput {
    /// Creates a new builder-style object to manufacture [`UpdateMonitoringScheduleOutput`](crate::output::UpdateMonitoringScheduleOutput).
    pub fn builder() -> crate::output::update_monitoring_schedule_output::Builder {
        crate::output::update_monitoring_schedule_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateMonitoringAlertOutput {
    /// <p>The Amazon Resource Name (ARN) of the monitoring schedule.</p>
    #[doc(hidden)]
    pub monitoring_schedule_arn: std::option::Option<std::string::String>,
    /// <p>The name of a monitoring alert.</p>
    #[doc(hidden)]
    pub monitoring_alert_name: std::option::Option<std::string::String>,
}
impl UpdateMonitoringAlertOutput {
    /// <p>The Amazon Resource Name (ARN) of the monitoring schedule.</p>
    pub fn monitoring_schedule_arn(&self) -> std::option::Option<&str> {
        self.monitoring_schedule_arn.as_deref()
    }
    /// <p>The name of a monitoring alert.</p>
    pub fn monitoring_alert_name(&self) -> std::option::Option<&str> {
        self.monitoring_alert_name.as_deref()
    }
}
/// See [`UpdateMonitoringAlertOutput`](crate::output::UpdateMonitoringAlertOutput).
pub mod update_monitoring_alert_output {

    /// A builder for [`UpdateMonitoringAlertOutput`](crate::output::UpdateMonitoringAlertOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) monitoring_schedule_arn: std::option::Option<std::string::String>,
        pub(crate) monitoring_alert_name: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the monitoring schedule.</p>
        pub fn monitoring_schedule_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.monitoring_schedule_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the monitoring schedule.</p>
        pub fn set_monitoring_schedule_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.monitoring_schedule_arn = input;
            self
        }
        /// <p>The name of a monitoring alert.</p>
        pub fn monitoring_alert_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.monitoring_alert_name = Some(input.into());
            self
        }
        /// <p>The name of a monitoring alert.</p>
        pub fn set_monitoring_alert_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.monitoring_alert_name = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateMonitoringAlertOutput`](crate::output::UpdateMonitoringAlertOutput).
        pub fn build(self) -> crate::output::UpdateMonitoringAlertOutput {
            crate::output::UpdateMonitoringAlertOutput {
                monitoring_schedule_arn: self.monitoring_schedule_arn,
                monitoring_alert_name: self.monitoring_alert_name,
            }
        }
    }
}
impl UpdateMonitoringAlertOutput {
    /// Creates a new builder-style object to manufacture [`UpdateMonitoringAlertOutput`](crate::output::UpdateMonitoringAlertOutput).
    pub fn builder() -> crate::output::update_monitoring_alert_output::Builder {
        crate::output::update_monitoring_alert_output::Builder::default()
    }
}

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

    /// A builder for [`UpdateModelPackageOutput`](crate::output::UpdateModelPackageOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) model_package_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the model.</p>
        pub fn model_package_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_package_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model.</p>
        pub fn set_model_package_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_package_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateModelPackageOutput`](crate::output::UpdateModelPackageOutput).
        pub fn build(self) -> crate::output::UpdateModelPackageOutput {
            crate::output::UpdateModelPackageOutput {
                model_package_arn: self.model_package_arn,
            }
        }
    }
}
impl UpdateModelPackageOutput {
    /// Creates a new builder-style object to manufacture [`UpdateModelPackageOutput`](crate::output::UpdateModelPackageOutput).
    pub fn builder() -> crate::output::update_model_package_output::Builder {
        crate::output::update_model_package_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateModelCardOutput {
    /// <p>The Amazon Resource Name (ARN) of the updated model card.</p>
    #[doc(hidden)]
    pub model_card_arn: std::option::Option<std::string::String>,
}
impl UpdateModelCardOutput {
    /// <p>The Amazon Resource Name (ARN) of the updated model card.</p>
    pub fn model_card_arn(&self) -> std::option::Option<&str> {
        self.model_card_arn.as_deref()
    }
}
/// See [`UpdateModelCardOutput`](crate::output::UpdateModelCardOutput).
pub mod update_model_card_output {

    /// A builder for [`UpdateModelCardOutput`](crate::output::UpdateModelCardOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) model_card_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the updated model card.</p>
        pub fn model_card_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_card_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the updated model card.</p>
        pub fn set_model_card_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_card_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateModelCardOutput`](crate::output::UpdateModelCardOutput).
        pub fn build(self) -> crate::output::UpdateModelCardOutput {
            crate::output::UpdateModelCardOutput {
                model_card_arn: self.model_card_arn,
            }
        }
    }
}
impl UpdateModelCardOutput {
    /// Creates a new builder-style object to manufacture [`UpdateModelCardOutput`](crate::output::UpdateModelCardOutput).
    pub fn builder() -> crate::output::update_model_card_output::Builder {
        crate::output::update_model_card_output::Builder::default()
    }
}

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

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

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

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

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateHubOutput {
    /// <p>The Amazon Resource Name (ARN) of the updated hub.</p>
    #[doc(hidden)]
    pub hub_arn: std::option::Option<std::string::String>,
}
impl UpdateHubOutput {
    /// <p>The Amazon Resource Name (ARN) of the updated hub.</p>
    pub fn hub_arn(&self) -> std::option::Option<&str> {
        self.hub_arn.as_deref()
    }
}
/// See [`UpdateHubOutput`](crate::output::UpdateHubOutput).
pub mod update_hub_output {

    /// A builder for [`UpdateHubOutput`](crate::output::UpdateHubOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) hub_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the updated hub.</p>
        pub fn hub_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.hub_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the updated hub.</p>
        pub fn set_hub_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.hub_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateHubOutput`](crate::output::UpdateHubOutput).
        pub fn build(self) -> crate::output::UpdateHubOutput {
            crate::output::UpdateHubOutput {
                hub_arn: self.hub_arn,
            }
        }
    }
}
impl UpdateHubOutput {
    /// Creates a new builder-style object to manufacture [`UpdateHubOutput`](crate::output::UpdateHubOutput).
    pub fn builder() -> crate::output::update_hub_output::Builder {
        crate::output::update_hub_output::Builder::default()
    }
}

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

    /// A builder for [`UpdateFeatureMetadataOutput`](crate::output::UpdateFeatureMetadataOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`UpdateFeatureMetadataOutput`](crate::output::UpdateFeatureMetadataOutput).
        pub fn build(self) -> crate::output::UpdateFeatureMetadataOutput {
            crate::output::UpdateFeatureMetadataOutput {}
        }
    }
}
impl UpdateFeatureMetadataOutput {
    /// Creates a new builder-style object to manufacture [`UpdateFeatureMetadataOutput`](crate::output::UpdateFeatureMetadataOutput).
    pub fn builder() -> crate::output::update_feature_metadata_output::Builder {
        crate::output::update_feature_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 UpdateFeatureGroupOutput {
    /// <p>The Amazon Resource Number (ARN) of the feature group that you're updating.</p>
    #[doc(hidden)]
    pub feature_group_arn: std::option::Option<std::string::String>,
}
impl UpdateFeatureGroupOutput {
    /// <p>The Amazon Resource Number (ARN) of the feature group that you're updating.</p>
    pub fn feature_group_arn(&self) -> std::option::Option<&str> {
        self.feature_group_arn.as_deref()
    }
}
/// See [`UpdateFeatureGroupOutput`](crate::output::UpdateFeatureGroupOutput).
pub mod update_feature_group_output {

    /// A builder for [`UpdateFeatureGroupOutput`](crate::output::UpdateFeatureGroupOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) feature_group_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Number (ARN) of the feature group that you're updating.</p>
        pub fn feature_group_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.feature_group_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Number (ARN) of the feature group that you're updating.</p>
        pub fn set_feature_group_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.feature_group_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateFeatureGroupOutput`](crate::output::UpdateFeatureGroupOutput).
        pub fn build(self) -> crate::output::UpdateFeatureGroupOutput {
            crate::output::UpdateFeatureGroupOutput {
                feature_group_arn: self.feature_group_arn,
            }
        }
    }
}
impl UpdateFeatureGroupOutput {
    /// Creates a new builder-style object to manufacture [`UpdateFeatureGroupOutput`](crate::output::UpdateFeatureGroupOutput).
    pub fn builder() -> crate::output::update_feature_group_output::Builder {
        crate::output::update_feature_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 UpdateExperimentOutput {
    /// <p>The Amazon Resource Name (ARN) of the experiment.</p>
    #[doc(hidden)]
    pub experiment_arn: std::option::Option<std::string::String>,
}
impl UpdateExperimentOutput {
    /// <p>The Amazon Resource Name (ARN) of the experiment.</p>
    pub fn experiment_arn(&self) -> std::option::Option<&str> {
        self.experiment_arn.as_deref()
    }
}
/// See [`UpdateExperimentOutput`](crate::output::UpdateExperimentOutput).
pub mod update_experiment_output {

    /// A builder for [`UpdateExperimentOutput`](crate::output::UpdateExperimentOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) experiment_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the experiment.</p>
        pub fn experiment_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.experiment_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the experiment.</p>
        pub fn set_experiment_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.experiment_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateExperimentOutput`](crate::output::UpdateExperimentOutput).
        pub fn build(self) -> crate::output::UpdateExperimentOutput {
            crate::output::UpdateExperimentOutput {
                experiment_arn: self.experiment_arn,
            }
        }
    }
}
impl UpdateExperimentOutput {
    /// Creates a new builder-style object to manufacture [`UpdateExperimentOutput`](crate::output::UpdateExperimentOutput).
    pub fn builder() -> crate::output::update_experiment_output::Builder {
        crate::output::update_experiment_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateEndpointWeightsAndCapacitiesOutput {
    /// <p>The Amazon Resource Name (ARN) of the updated endpoint.</p>
    #[doc(hidden)]
    pub endpoint_arn: std::option::Option<std::string::String>,
}
impl UpdateEndpointWeightsAndCapacitiesOutput {
    /// <p>The Amazon Resource Name (ARN) of the updated endpoint.</p>
    pub fn endpoint_arn(&self) -> std::option::Option<&str> {
        self.endpoint_arn.as_deref()
    }
}
/// See [`UpdateEndpointWeightsAndCapacitiesOutput`](crate::output::UpdateEndpointWeightsAndCapacitiesOutput).
pub mod update_endpoint_weights_and_capacities_output {

    /// A builder for [`UpdateEndpointWeightsAndCapacitiesOutput`](crate::output::UpdateEndpointWeightsAndCapacitiesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) endpoint_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the updated endpoint.</p>
        pub fn endpoint_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.endpoint_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the updated endpoint.</p>
        pub fn set_endpoint_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.endpoint_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateEndpointWeightsAndCapacitiesOutput`](crate::output::UpdateEndpointWeightsAndCapacitiesOutput).
        pub fn build(self) -> crate::output::UpdateEndpointWeightsAndCapacitiesOutput {
            crate::output::UpdateEndpointWeightsAndCapacitiesOutput {
                endpoint_arn: self.endpoint_arn,
            }
        }
    }
}
impl UpdateEndpointWeightsAndCapacitiesOutput {
    /// Creates a new builder-style object to manufacture [`UpdateEndpointWeightsAndCapacitiesOutput`](crate::output::UpdateEndpointWeightsAndCapacitiesOutput).
    pub fn builder() -> crate::output::update_endpoint_weights_and_capacities_output::Builder {
        crate::output::update_endpoint_weights_and_capacities_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateEndpointOutput {
    /// <p>The Amazon Resource Name (ARN) of the endpoint.</p>
    #[doc(hidden)]
    pub endpoint_arn: std::option::Option<std::string::String>,
}
impl UpdateEndpointOutput {
    /// <p>The Amazon Resource Name (ARN) of the endpoint.</p>
    pub fn endpoint_arn(&self) -> std::option::Option<&str> {
        self.endpoint_arn.as_deref()
    }
}
/// See [`UpdateEndpointOutput`](crate::output::UpdateEndpointOutput).
pub mod update_endpoint_output {

    /// A builder for [`UpdateEndpointOutput`](crate::output::UpdateEndpointOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) endpoint_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the endpoint.</p>
        pub fn endpoint_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.endpoint_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the endpoint.</p>
        pub fn set_endpoint_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.endpoint_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateEndpointOutput`](crate::output::UpdateEndpointOutput).
        pub fn build(self) -> crate::output::UpdateEndpointOutput {
            crate::output::UpdateEndpointOutput {
                endpoint_arn: self.endpoint_arn,
            }
        }
    }
}
impl UpdateEndpointOutput {
    /// Creates a new builder-style object to manufacture [`UpdateEndpointOutput`](crate::output::UpdateEndpointOutput).
    pub fn builder() -> crate::output::update_endpoint_output::Builder {
        crate::output::update_endpoint_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateDomainOutput {
    /// <p>The Amazon Resource Name (ARN) of the domain.</p>
    #[doc(hidden)]
    pub domain_arn: std::option::Option<std::string::String>,
}
impl UpdateDomainOutput {
    /// <p>The Amazon Resource Name (ARN) of the domain.</p>
    pub fn domain_arn(&self) -> std::option::Option<&str> {
        self.domain_arn.as_deref()
    }
}
/// See [`UpdateDomainOutput`](crate::output::UpdateDomainOutput).
pub mod update_domain_output {

    /// A builder for [`UpdateDomainOutput`](crate::output::UpdateDomainOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) domain_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the domain.</p>
        pub fn domain_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.domain_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the domain.</p>
        pub fn set_domain_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.domain_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateDomainOutput`](crate::output::UpdateDomainOutput).
        pub fn build(self) -> crate::output::UpdateDomainOutput {
            crate::output::UpdateDomainOutput {
                domain_arn: self.domain_arn,
            }
        }
    }
}
impl UpdateDomainOutput {
    /// Creates a new builder-style object to manufacture [`UpdateDomainOutput`](crate::output::UpdateDomainOutput).
    pub fn builder() -> crate::output::update_domain_output::Builder {
        crate::output::update_domain_output::Builder::default()
    }
}

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

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

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateContextOutput {
    /// <p>The Amazon Resource Name (ARN) of the context.</p>
    #[doc(hidden)]
    pub context_arn: std::option::Option<std::string::String>,
}
impl UpdateContextOutput {
    /// <p>The Amazon Resource Name (ARN) of the context.</p>
    pub fn context_arn(&self) -> std::option::Option<&str> {
        self.context_arn.as_deref()
    }
}
/// See [`UpdateContextOutput`](crate::output::UpdateContextOutput).
pub mod update_context_output {

    /// A builder for [`UpdateContextOutput`](crate::output::UpdateContextOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) context_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the context.</p>
        pub fn context_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.context_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the context.</p>
        pub fn set_context_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.context_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateContextOutput`](crate::output::UpdateContextOutput).
        pub fn build(self) -> crate::output::UpdateContextOutput {
            crate::output::UpdateContextOutput {
                context_arn: self.context_arn,
            }
        }
    }
}
impl UpdateContextOutput {
    /// Creates a new builder-style object to manufacture [`UpdateContextOutput`](crate::output::UpdateContextOutput).
    pub fn builder() -> crate::output::update_context_output::Builder {
        crate::output::update_context_output::Builder::default()
    }
}

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateArtifactOutput {
    /// <p>The Amazon Resource Name (ARN) of the artifact.</p>
    #[doc(hidden)]
    pub artifact_arn: std::option::Option<std::string::String>,
}
impl UpdateArtifactOutput {
    /// <p>The Amazon Resource Name (ARN) of the artifact.</p>
    pub fn artifact_arn(&self) -> std::option::Option<&str> {
        self.artifact_arn.as_deref()
    }
}
/// See [`UpdateArtifactOutput`](crate::output::UpdateArtifactOutput).
pub mod update_artifact_output {

    /// A builder for [`UpdateArtifactOutput`](crate::output::UpdateArtifactOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) artifact_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the artifact.</p>
        pub fn artifact_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.artifact_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the artifact.</p>
        pub fn set_artifact_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.artifact_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateArtifactOutput`](crate::output::UpdateArtifactOutput).
        pub fn build(self) -> crate::output::UpdateArtifactOutput {
            crate::output::UpdateArtifactOutput {
                artifact_arn: self.artifact_arn,
            }
        }
    }
}
impl UpdateArtifactOutput {
    /// Creates a new builder-style object to manufacture [`UpdateArtifactOutput`](crate::output::UpdateArtifactOutput).
    pub fn builder() -> crate::output::update_artifact_output::Builder {
        crate::output::update_artifact_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateAppImageConfigOutput {
    /// <p>The Amazon Resource Name (ARN) for the AppImageConfig.</p>
    #[doc(hidden)]
    pub app_image_config_arn: std::option::Option<std::string::String>,
}
impl UpdateAppImageConfigOutput {
    /// <p>The Amazon Resource Name (ARN) for the AppImageConfig.</p>
    pub fn app_image_config_arn(&self) -> std::option::Option<&str> {
        self.app_image_config_arn.as_deref()
    }
}
/// See [`UpdateAppImageConfigOutput`](crate::output::UpdateAppImageConfigOutput).
pub mod update_app_image_config_output {

    /// A builder for [`UpdateAppImageConfigOutput`](crate::output::UpdateAppImageConfigOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) app_image_config_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) for the AppImageConfig.</p>
        pub fn app_image_config_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.app_image_config_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) for the AppImageConfig.</p>
        pub fn set_app_image_config_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.app_image_config_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateAppImageConfigOutput`](crate::output::UpdateAppImageConfigOutput).
        pub fn build(self) -> crate::output::UpdateAppImageConfigOutput {
            crate::output::UpdateAppImageConfigOutput {
                app_image_config_arn: self.app_image_config_arn,
            }
        }
    }
}
impl UpdateAppImageConfigOutput {
    /// Creates a new builder-style object to manufacture [`UpdateAppImageConfigOutput`](crate::output::UpdateAppImageConfigOutput).
    pub fn builder() -> crate::output::update_app_image_config_output::Builder {
        crate::output::update_app_image_config_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateActionOutput {
    /// <p>The Amazon Resource Name (ARN) of the action.</p>
    #[doc(hidden)]
    pub action_arn: std::option::Option<std::string::String>,
}
impl UpdateActionOutput {
    /// <p>The Amazon Resource Name (ARN) of the action.</p>
    pub fn action_arn(&self) -> std::option::Option<&str> {
        self.action_arn.as_deref()
    }
}
/// See [`UpdateActionOutput`](crate::output::UpdateActionOutput).
pub mod update_action_output {

    /// A builder for [`UpdateActionOutput`](crate::output::UpdateActionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) action_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the action.</p>
        pub fn action_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.action_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the action.</p>
        pub fn set_action_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.action_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateActionOutput`](crate::output::UpdateActionOutput).
        pub fn build(self) -> crate::output::UpdateActionOutput {
            crate::output::UpdateActionOutput {
                action_arn: self.action_arn,
            }
        }
    }
}
impl UpdateActionOutput {
    /// Creates a new builder-style object to manufacture [`UpdateActionOutput`](crate::output::UpdateActionOutput).
    pub fn builder() -> crate::output::update_action_output::Builder {
        crate::output::update_action_output::Builder::default()
    }
}

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

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

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

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

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct StopPipelineExecutionOutput {
    /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
    #[doc(hidden)]
    pub pipeline_execution_arn: std::option::Option<std::string::String>,
}
impl StopPipelineExecutionOutput {
    /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
    pub fn pipeline_execution_arn(&self) -> std::option::Option<&str> {
        self.pipeline_execution_arn.as_deref()
    }
}
/// See [`StopPipelineExecutionOutput`](crate::output::StopPipelineExecutionOutput).
pub mod stop_pipeline_execution_output {

    /// A builder for [`StopPipelineExecutionOutput`](crate::output::StopPipelineExecutionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) pipeline_execution_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
        pub fn pipeline_execution_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.pipeline_execution_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
        pub fn set_pipeline_execution_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.pipeline_execution_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`StopPipelineExecutionOutput`](crate::output::StopPipelineExecutionOutput).
        pub fn build(self) -> crate::output::StopPipelineExecutionOutput {
            crate::output::StopPipelineExecutionOutput {
                pipeline_execution_arn: self.pipeline_execution_arn,
            }
        }
    }
}
impl StopPipelineExecutionOutput {
    /// Creates a new builder-style object to manufacture [`StopPipelineExecutionOutput`](crate::output::StopPipelineExecutionOutput).
    pub fn builder() -> crate::output::stop_pipeline_execution_output::Builder {
        crate::output::stop_pipeline_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 StopNotebookInstanceOutput {}
/// See [`StopNotebookInstanceOutput`](crate::output::StopNotebookInstanceOutput).
pub mod stop_notebook_instance_output {

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct StartPipelineExecutionOutput {
    /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
    #[doc(hidden)]
    pub pipeline_execution_arn: std::option::Option<std::string::String>,
}
impl StartPipelineExecutionOutput {
    /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
    pub fn pipeline_execution_arn(&self) -> std::option::Option<&str> {
        self.pipeline_execution_arn.as_deref()
    }
}
/// See [`StartPipelineExecutionOutput`](crate::output::StartPipelineExecutionOutput).
pub mod start_pipeline_execution_output {

    /// A builder for [`StartPipelineExecutionOutput`](crate::output::StartPipelineExecutionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) pipeline_execution_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
        pub fn pipeline_execution_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.pipeline_execution_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
        pub fn set_pipeline_execution_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.pipeline_execution_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`StartPipelineExecutionOutput`](crate::output::StartPipelineExecutionOutput).
        pub fn build(self) -> crate::output::StartPipelineExecutionOutput {
            crate::output::StartPipelineExecutionOutput {
                pipeline_execution_arn: self.pipeline_execution_arn,
            }
        }
    }
}
impl StartPipelineExecutionOutput {
    /// Creates a new builder-style object to manufacture [`StartPipelineExecutionOutput`](crate::output::StartPipelineExecutionOutput).
    pub fn builder() -> crate::output::start_pipeline_execution_output::Builder {
        crate::output::start_pipeline_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 StartNotebookInstanceOutput {}
/// See [`StartNotebookInstanceOutput`](crate::output::StartNotebookInstanceOutput).
pub mod start_notebook_instance_output {

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

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct StartInferenceExperimentOutput {
    /// <p>The ARN of the started inference experiment to start.</p>
    #[doc(hidden)]
    pub inference_experiment_arn: std::option::Option<std::string::String>,
}
impl StartInferenceExperimentOutput {
    /// <p>The ARN of the started inference experiment to start.</p>
    pub fn inference_experiment_arn(&self) -> std::option::Option<&str> {
        self.inference_experiment_arn.as_deref()
    }
}
/// See [`StartInferenceExperimentOutput`](crate::output::StartInferenceExperimentOutput).
pub mod start_inference_experiment_output {

    /// A builder for [`StartInferenceExperimentOutput`](crate::output::StartInferenceExperimentOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) inference_experiment_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ARN of the started inference experiment to start.</p>
        pub fn inference_experiment_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inference_experiment_arn = Some(input.into());
            self
        }
        /// <p>The ARN of the started inference experiment to start.</p>
        pub fn set_inference_experiment_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inference_experiment_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`StartInferenceExperimentOutput`](crate::output::StartInferenceExperimentOutput).
        pub fn build(self) -> crate::output::StartInferenceExperimentOutput {
            crate::output::StartInferenceExperimentOutput {
                inference_experiment_arn: self.inference_experiment_arn,
            }
        }
    }
}
impl StartInferenceExperimentOutput {
    /// Creates a new builder-style object to manufacture [`StartInferenceExperimentOutput`](crate::output::StartInferenceExperimentOutput).
    pub fn builder() -> crate::output::start_inference_experiment_output::Builder {
        crate::output::start_inference_experiment_output::Builder::default()
    }
}

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct SendPipelineExecutionStepSuccessOutput {
    /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
    #[doc(hidden)]
    pub pipeline_execution_arn: std::option::Option<std::string::String>,
}
impl SendPipelineExecutionStepSuccessOutput {
    /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
    pub fn pipeline_execution_arn(&self) -> std::option::Option<&str> {
        self.pipeline_execution_arn.as_deref()
    }
}
/// See [`SendPipelineExecutionStepSuccessOutput`](crate::output::SendPipelineExecutionStepSuccessOutput).
pub mod send_pipeline_execution_step_success_output {

    /// A builder for [`SendPipelineExecutionStepSuccessOutput`](crate::output::SendPipelineExecutionStepSuccessOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) pipeline_execution_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
        pub fn pipeline_execution_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.pipeline_execution_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
        pub fn set_pipeline_execution_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.pipeline_execution_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`SendPipelineExecutionStepSuccessOutput`](crate::output::SendPipelineExecutionStepSuccessOutput).
        pub fn build(self) -> crate::output::SendPipelineExecutionStepSuccessOutput {
            crate::output::SendPipelineExecutionStepSuccessOutput {
                pipeline_execution_arn: self.pipeline_execution_arn,
            }
        }
    }
}
impl SendPipelineExecutionStepSuccessOutput {
    /// Creates a new builder-style object to manufacture [`SendPipelineExecutionStepSuccessOutput`](crate::output::SendPipelineExecutionStepSuccessOutput).
    pub fn builder() -> crate::output::send_pipeline_execution_step_success_output::Builder {
        crate::output::send_pipeline_execution_step_success_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct SendPipelineExecutionStepFailureOutput {
    /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
    #[doc(hidden)]
    pub pipeline_execution_arn: std::option::Option<std::string::String>,
}
impl SendPipelineExecutionStepFailureOutput {
    /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
    pub fn pipeline_execution_arn(&self) -> std::option::Option<&str> {
        self.pipeline_execution_arn.as_deref()
    }
}
/// See [`SendPipelineExecutionStepFailureOutput`](crate::output::SendPipelineExecutionStepFailureOutput).
pub mod send_pipeline_execution_step_failure_output {

    /// A builder for [`SendPipelineExecutionStepFailureOutput`](crate::output::SendPipelineExecutionStepFailureOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) pipeline_execution_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
        pub fn pipeline_execution_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.pipeline_execution_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
        pub fn set_pipeline_execution_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.pipeline_execution_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`SendPipelineExecutionStepFailureOutput`](crate::output::SendPipelineExecutionStepFailureOutput).
        pub fn build(self) -> crate::output::SendPipelineExecutionStepFailureOutput {
            crate::output::SendPipelineExecutionStepFailureOutput {
                pipeline_execution_arn: self.pipeline_execution_arn,
            }
        }
    }
}
impl SendPipelineExecutionStepFailureOutput {
    /// Creates a new builder-style object to manufacture [`SendPipelineExecutionStepFailureOutput`](crate::output::SendPipelineExecutionStepFailureOutput).
    pub fn builder() -> crate::output::send_pipeline_execution_step_failure_output::Builder {
        crate::output::send_pipeline_execution_step_failure_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct SearchOutput {
    /// <p>A list of <code>SearchRecord</code> objects.</p>
    #[doc(hidden)]
    pub results: std::option::Option<std::vec::Vec<crate::model::SearchRecord>>,
    /// <p>If the result of the previous <code>Search</code> request was truncated, the response includes a NextToken. To retrieve the next set of results, use the token in the next request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl SearchOutput {
    /// <p>A list of <code>SearchRecord</code> objects.</p>
    pub fn results(&self) -> std::option::Option<&[crate::model::SearchRecord]> {
        self.results.as_deref()
    }
    /// <p>If the result of the previous <code>Search</code> request was truncated, the response includes a NextToken. To retrieve the next set of results, use the token in the next request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`SearchOutput`](crate::output::SearchOutput).
pub mod search_output {

    /// A builder for [`SearchOutput`](crate::output::SearchOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) results: std::option::Option<std::vec::Vec<crate::model::SearchRecord>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `results`.
        ///
        /// To override the contents of this collection use [`set_results`](Self::set_results).
        ///
        /// <p>A list of <code>SearchRecord</code> objects.</p>
        pub fn results(mut self, input: crate::model::SearchRecord) -> Self {
            let mut v = self.results.unwrap_or_default();
            v.push(input);
            self.results = Some(v);
            self
        }
        /// <p>A list of <code>SearchRecord</code> objects.</p>
        pub fn set_results(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::SearchRecord>>,
        ) -> Self {
            self.results = input;
            self
        }
        /// <p>If the result of the previous <code>Search</code> request was truncated, the response includes a NextToken. To retrieve the next set of results, use the token in the next request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the result of the previous <code>Search</code> request was truncated, the response includes a NextToken. To retrieve the next set of results, use the token in the next request.</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 [`SearchOutput`](crate::output::SearchOutput).
        pub fn build(self) -> crate::output::SearchOutput {
            crate::output::SearchOutput {
                results: self.results,
                next_token: self.next_token,
            }
        }
    }
}
impl SearchOutput {
    /// Creates a new builder-style object to manufacture [`SearchOutput`](crate::output::SearchOutput).
    pub fn builder() -> crate::output::search_output::Builder {
        crate::output::search_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct RetryPipelineExecutionOutput {
    /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
    #[doc(hidden)]
    pub pipeline_execution_arn: std::option::Option<std::string::String>,
}
impl RetryPipelineExecutionOutput {
    /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
    pub fn pipeline_execution_arn(&self) -> std::option::Option<&str> {
        self.pipeline_execution_arn.as_deref()
    }
}
/// See [`RetryPipelineExecutionOutput`](crate::output::RetryPipelineExecutionOutput).
pub mod retry_pipeline_execution_output {

    /// A builder for [`RetryPipelineExecutionOutput`](crate::output::RetryPipelineExecutionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) pipeline_execution_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
        pub fn pipeline_execution_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.pipeline_execution_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
        pub fn set_pipeline_execution_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.pipeline_execution_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`RetryPipelineExecutionOutput`](crate::output::RetryPipelineExecutionOutput).
        pub fn build(self) -> crate::output::RetryPipelineExecutionOutput {
            crate::output::RetryPipelineExecutionOutput {
                pipeline_execution_arn: self.pipeline_execution_arn,
            }
        }
    }
}
impl RetryPipelineExecutionOutput {
    /// Creates a new builder-style object to manufacture [`RetryPipelineExecutionOutput`](crate::output::RetryPipelineExecutionOutput).
    pub fn builder() -> crate::output::retry_pipeline_execution_output::Builder {
        crate::output::retry_pipeline_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 RenderUiTemplateOutput {
    /// <p>A Liquid template that renders the HTML for the worker UI.</p>
    #[doc(hidden)]
    pub rendered_content: std::option::Option<std::string::String>,
    /// <p>A list of one or more <code>RenderingError</code> objects if any were encountered while rendering the template. If there were no errors, the list is empty.</p>
    #[doc(hidden)]
    pub errors: std::option::Option<std::vec::Vec<crate::model::RenderingError>>,
}
impl RenderUiTemplateOutput {
    /// <p>A Liquid template that renders the HTML for the worker UI.</p>
    pub fn rendered_content(&self) -> std::option::Option<&str> {
        self.rendered_content.as_deref()
    }
    /// <p>A list of one or more <code>RenderingError</code> objects if any were encountered while rendering the template. If there were no errors, the list is empty.</p>
    pub fn errors(&self) -> std::option::Option<&[crate::model::RenderingError]> {
        self.errors.as_deref()
    }
}
/// See [`RenderUiTemplateOutput`](crate::output::RenderUiTemplateOutput).
pub mod render_ui_template_output {

    /// A builder for [`RenderUiTemplateOutput`](crate::output::RenderUiTemplateOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) rendered_content: std::option::Option<std::string::String>,
        pub(crate) errors: std::option::Option<std::vec::Vec<crate::model::RenderingError>>,
    }
    impl Builder {
        /// <p>A Liquid template that renders the HTML for the worker UI.</p>
        pub fn rendered_content(mut self, input: impl Into<std::string::String>) -> Self {
            self.rendered_content = Some(input.into());
            self
        }
        /// <p>A Liquid template that renders the HTML for the worker UI.</p>
        pub fn set_rendered_content(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.rendered_content = input;
            self
        }
        /// Appends an item to `errors`.
        ///
        /// To override the contents of this collection use [`set_errors`](Self::set_errors).
        ///
        /// <p>A list of one or more <code>RenderingError</code> objects if any were encountered while rendering the template. If there were no errors, the list is empty.</p>
        pub fn errors(mut self, input: crate::model::RenderingError) -> Self {
            let mut v = self.errors.unwrap_or_default();
            v.push(input);
            self.errors = Some(v);
            self
        }
        /// <p>A list of one or more <code>RenderingError</code> objects if any were encountered while rendering the template. If there were no errors, the list is empty.</p>
        pub fn set_errors(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::RenderingError>>,
        ) -> Self {
            self.errors = input;
            self
        }
        /// Consumes the builder and constructs a [`RenderUiTemplateOutput`](crate::output::RenderUiTemplateOutput).
        pub fn build(self) -> crate::output::RenderUiTemplateOutput {
            crate::output::RenderUiTemplateOutput {
                rendered_content: self.rendered_content,
                errors: self.errors,
            }
        }
    }
}
impl RenderUiTemplateOutput {
    /// Creates a new builder-style object to manufacture [`RenderUiTemplateOutput`](crate::output::RenderUiTemplateOutput).
    pub fn builder() -> crate::output::render_ui_template_output::Builder {
        crate::output::render_ui_template_output::Builder::default()
    }
}

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct QueryLineageOutput {
    /// <p>A list of vertices connected to the start entity(ies) in the lineage graph.</p>
    #[doc(hidden)]
    pub vertices: std::option::Option<std::vec::Vec<crate::model::Vertex>>,
    /// <p>A list of edges that connect vertices in the response.</p>
    #[doc(hidden)]
    pub edges: std::option::Option<std::vec::Vec<crate::model::Edge>>,
    /// <p>Limits the number of vertices in the response. Use the <code>NextToken</code> in a response to to retrieve the next page of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl QueryLineageOutput {
    /// <p>A list of vertices connected to the start entity(ies) in the lineage graph.</p>
    pub fn vertices(&self) -> std::option::Option<&[crate::model::Vertex]> {
        self.vertices.as_deref()
    }
    /// <p>A list of edges that connect vertices in the response.</p>
    pub fn edges(&self) -> std::option::Option<&[crate::model::Edge]> {
        self.edges.as_deref()
    }
    /// <p>Limits the number of vertices in the response. Use the <code>NextToken</code> in a response to to retrieve the next page of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`QueryLineageOutput`](crate::output::QueryLineageOutput).
pub mod query_lineage_output {

    /// A builder for [`QueryLineageOutput`](crate::output::QueryLineageOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) vertices: std::option::Option<std::vec::Vec<crate::model::Vertex>>,
        pub(crate) edges: std::option::Option<std::vec::Vec<crate::model::Edge>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `vertices`.
        ///
        /// To override the contents of this collection use [`set_vertices`](Self::set_vertices).
        ///
        /// <p>A list of vertices connected to the start entity(ies) in the lineage graph.</p>
        pub fn vertices(mut self, input: crate::model::Vertex) -> Self {
            let mut v = self.vertices.unwrap_or_default();
            v.push(input);
            self.vertices = Some(v);
            self
        }
        /// <p>A list of vertices connected to the start entity(ies) in the lineage graph.</p>
        pub fn set_vertices(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Vertex>>,
        ) -> Self {
            self.vertices = input;
            self
        }
        /// Appends an item to `edges`.
        ///
        /// To override the contents of this collection use [`set_edges`](Self::set_edges).
        ///
        /// <p>A list of edges that connect vertices in the response.</p>
        pub fn edges(mut self, input: crate::model::Edge) -> Self {
            let mut v = self.edges.unwrap_or_default();
            v.push(input);
            self.edges = Some(v);
            self
        }
        /// <p>A list of edges that connect vertices in the response.</p>
        pub fn set_edges(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Edge>>,
        ) -> Self {
            self.edges = input;
            self
        }
        /// <p>Limits the number of vertices in the response. Use the <code>NextToken</code> in a response to to retrieve the next page of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>Limits the number of vertices in the response. Use the <code>NextToken</code> in a response to to retrieve the next page of results.</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 [`QueryLineageOutput`](crate::output::QueryLineageOutput).
        pub fn build(self) -> crate::output::QueryLineageOutput {
            crate::output::QueryLineageOutput {
                vertices: self.vertices,
                edges: self.edges,
                next_token: self.next_token,
            }
        }
    }
}
impl QueryLineageOutput {
    /// Creates a new builder-style object to manufacture [`QueryLineageOutput`](crate::output::QueryLineageOutput).
    pub fn builder() -> crate::output::query_lineage_output::Builder {
        crate::output::query_lineage_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct PutModelPackageGroupPolicyOutput {
    /// <p>The Amazon Resource Name (ARN) of the model package group.</p>
    #[doc(hidden)]
    pub model_package_group_arn: std::option::Option<std::string::String>,
}
impl PutModelPackageGroupPolicyOutput {
    /// <p>The Amazon Resource Name (ARN) of the model package group.</p>
    pub fn model_package_group_arn(&self) -> std::option::Option<&str> {
        self.model_package_group_arn.as_deref()
    }
}
/// See [`PutModelPackageGroupPolicyOutput`](crate::output::PutModelPackageGroupPolicyOutput).
pub mod put_model_package_group_policy_output {

    /// A builder for [`PutModelPackageGroupPolicyOutput`](crate::output::PutModelPackageGroupPolicyOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) model_package_group_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the model package group.</p>
        pub fn model_package_group_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_package_group_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model package group.</p>
        pub fn set_model_package_group_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_package_group_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`PutModelPackageGroupPolicyOutput`](crate::output::PutModelPackageGroupPolicyOutput).
        pub fn build(self) -> crate::output::PutModelPackageGroupPolicyOutput {
            crate::output::PutModelPackageGroupPolicyOutput {
                model_package_group_arn: self.model_package_group_arn,
            }
        }
    }
}
impl PutModelPackageGroupPolicyOutput {
    /// Creates a new builder-style object to manufacture [`PutModelPackageGroupPolicyOutput`](crate::output::PutModelPackageGroupPolicyOutput).
    pub fn builder() -> crate::output::put_model_package_group_policy_output::Builder {
        crate::output::put_model_package_group_policy_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListWorkteamsOutput {
    /// <p>An array of <code>Workteam</code> objects, each describing a work team.</p>
    #[doc(hidden)]
    pub workteams: std::option::Option<std::vec::Vec<crate::model::Workteam>>,
    /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of work teams, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListWorkteamsOutput {
    /// <p>An array of <code>Workteam</code> objects, each describing a work team.</p>
    pub fn workteams(&self) -> std::option::Option<&[crate::model::Workteam]> {
        self.workteams.as_deref()
    }
    /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of work teams, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListWorkteamsOutput`](crate::output::ListWorkteamsOutput).
pub mod list_workteams_output {

    /// A builder for [`ListWorkteamsOutput`](crate::output::ListWorkteamsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workteams: std::option::Option<std::vec::Vec<crate::model::Workteam>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `workteams`.
        ///
        /// To override the contents of this collection use [`set_workteams`](Self::set_workteams).
        ///
        /// <p>An array of <code>Workteam</code> objects, each describing a work team.</p>
        pub fn workteams(mut self, input: crate::model::Workteam) -> Self {
            let mut v = self.workteams.unwrap_or_default();
            v.push(input);
            self.workteams = Some(v);
            self
        }
        /// <p>An array of <code>Workteam</code> objects, each describing a work team.</p>
        pub fn set_workteams(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Workteam>>,
        ) -> Self {
            self.workteams = input;
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of work teams, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of work teams, use it in the subsequent request.</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 [`ListWorkteamsOutput`](crate::output::ListWorkteamsOutput).
        pub fn build(self) -> crate::output::ListWorkteamsOutput {
            crate::output::ListWorkteamsOutput {
                workteams: self.workteams,
                next_token: self.next_token,
            }
        }
    }
}
impl ListWorkteamsOutput {
    /// Creates a new builder-style object to manufacture [`ListWorkteamsOutput`](crate::output::ListWorkteamsOutput).
    pub fn builder() -> crate::output::list_workteams_output::Builder {
        crate::output::list_workteams_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListWorkforcesOutput {
    /// <p>A list containing information about your workforce.</p>
    #[doc(hidden)]
    pub workforces: std::option::Option<std::vec::Vec<crate::model::Workforce>>,
    /// <p>A token to resume pagination.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListWorkforcesOutput {
    /// <p>A list containing information about your workforce.</p>
    pub fn workforces(&self) -> std::option::Option<&[crate::model::Workforce]> {
        self.workforces.as_deref()
    }
    /// <p>A token to resume pagination.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListWorkforcesOutput`](crate::output::ListWorkforcesOutput).
pub mod list_workforces_output {

    /// A builder for [`ListWorkforcesOutput`](crate::output::ListWorkforcesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workforces: std::option::Option<std::vec::Vec<crate::model::Workforce>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `workforces`.
        ///
        /// To override the contents of this collection use [`set_workforces`](Self::set_workforces).
        ///
        /// <p>A list containing information about your workforce.</p>
        pub fn workforces(mut self, input: crate::model::Workforce) -> Self {
            let mut v = self.workforces.unwrap_or_default();
            v.push(input);
            self.workforces = Some(v);
            self
        }
        /// <p>A list containing information about your workforce.</p>
        pub fn set_workforces(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Workforce>>,
        ) -> Self {
            self.workforces = input;
            self
        }
        /// <p>A token to resume pagination.</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 resume pagination.</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 [`ListWorkforcesOutput`](crate::output::ListWorkforcesOutput).
        pub fn build(self) -> crate::output::ListWorkforcesOutput {
            crate::output::ListWorkforcesOutput {
                workforces: self.workforces,
                next_token: self.next_token,
            }
        }
    }
}
impl ListWorkforcesOutput {
    /// Creates a new builder-style object to manufacture [`ListWorkforcesOutput`](crate::output::ListWorkforcesOutput).
    pub fn builder() -> crate::output::list_workforces_output::Builder {
        crate::output::list_workforces_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListUserProfilesOutput {
    /// <p>The list of user profiles.</p>
    #[doc(hidden)]
    pub user_profiles: std::option::Option<std::vec::Vec<crate::model::UserProfileDetails>>,
    /// <p>If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListUserProfilesOutput {
    /// <p>The list of user profiles.</p>
    pub fn user_profiles(&self) -> std::option::Option<&[crate::model::UserProfileDetails]> {
        self.user_profiles.as_deref()
    }
    /// <p>If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListUserProfilesOutput`](crate::output::ListUserProfilesOutput).
pub mod list_user_profiles_output {

    /// A builder for [`ListUserProfilesOutput`](crate::output::ListUserProfilesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) user_profiles:
            std::option::Option<std::vec::Vec<crate::model::UserProfileDetails>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `user_profiles`.
        ///
        /// To override the contents of this collection use [`set_user_profiles`](Self::set_user_profiles).
        ///
        /// <p>The list of user profiles.</p>
        pub fn user_profiles(mut self, input: crate::model::UserProfileDetails) -> Self {
            let mut v = self.user_profiles.unwrap_or_default();
            v.push(input);
            self.user_profiles = Some(v);
            self
        }
        /// <p>The list of user profiles.</p>
        pub fn set_user_profiles(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::UserProfileDetails>>,
        ) -> Self {
            self.user_profiles = input;
            self
        }
        /// <p>If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.</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 [`ListUserProfilesOutput`](crate::output::ListUserProfilesOutput).
        pub fn build(self) -> crate::output::ListUserProfilesOutput {
            crate::output::ListUserProfilesOutput {
                user_profiles: self.user_profiles,
                next_token: self.next_token,
            }
        }
    }
}
impl ListUserProfilesOutput {
    /// Creates a new builder-style object to manufacture [`ListUserProfilesOutput`](crate::output::ListUserProfilesOutput).
    pub fn builder() -> crate::output::list_user_profiles_output::Builder {
        crate::output::list_user_profiles_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListTrialsOutput {
    /// <p>A list of the summaries of your trials.</p>
    #[doc(hidden)]
    pub trial_summaries: std::option::Option<std::vec::Vec<crate::model::TrialSummary>>,
    /// <p>A token for getting the next set of trials, if there are any.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListTrialsOutput {
    /// <p>A list of the summaries of your trials.</p>
    pub fn trial_summaries(&self) -> std::option::Option<&[crate::model::TrialSummary]> {
        self.trial_summaries.as_deref()
    }
    /// <p>A token for getting the next set of trials, if there are any.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListTrialsOutput`](crate::output::ListTrialsOutput).
pub mod list_trials_output {

    /// A builder for [`ListTrialsOutput`](crate::output::ListTrialsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) trial_summaries: std::option::Option<std::vec::Vec<crate::model::TrialSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `trial_summaries`.
        ///
        /// To override the contents of this collection use [`set_trial_summaries`](Self::set_trial_summaries).
        ///
        /// <p>A list of the summaries of your trials.</p>
        pub fn trial_summaries(mut self, input: crate::model::TrialSummary) -> Self {
            let mut v = self.trial_summaries.unwrap_or_default();
            v.push(input);
            self.trial_summaries = Some(v);
            self
        }
        /// <p>A list of the summaries of your trials.</p>
        pub fn set_trial_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::TrialSummary>>,
        ) -> Self {
            self.trial_summaries = input;
            self
        }
        /// <p>A token for getting the next set of trials, if there are any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token for getting the next set of trials, if there are any.</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 [`ListTrialsOutput`](crate::output::ListTrialsOutput).
        pub fn build(self) -> crate::output::ListTrialsOutput {
            crate::output::ListTrialsOutput {
                trial_summaries: self.trial_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListTrialsOutput {
    /// Creates a new builder-style object to manufacture [`ListTrialsOutput`](crate::output::ListTrialsOutput).
    pub fn builder() -> crate::output::list_trials_output::Builder {
        crate::output::list_trials_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListTrialComponentsOutput {
    /// <p>A list of the summaries of your trial components.</p>
    #[doc(hidden)]
    pub trial_component_summaries:
        std::option::Option<std::vec::Vec<crate::model::TrialComponentSummary>>,
    /// <p>A token for getting the next set of components, if there are any.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListTrialComponentsOutput {
    /// <p>A list of the summaries of your trial components.</p>
    pub fn trial_component_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::TrialComponentSummary]> {
        self.trial_component_summaries.as_deref()
    }
    /// <p>A token for getting the next set of components, if there are any.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListTrialComponentsOutput`](crate::output::ListTrialComponentsOutput).
pub mod list_trial_components_output {

    /// A builder for [`ListTrialComponentsOutput`](crate::output::ListTrialComponentsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) trial_component_summaries:
            std::option::Option<std::vec::Vec<crate::model::TrialComponentSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `trial_component_summaries`.
        ///
        /// To override the contents of this collection use [`set_trial_component_summaries`](Self::set_trial_component_summaries).
        ///
        /// <p>A list of the summaries of your trial components.</p>
        pub fn trial_component_summaries(
            mut self,
            input: crate::model::TrialComponentSummary,
        ) -> Self {
            let mut v = self.trial_component_summaries.unwrap_or_default();
            v.push(input);
            self.trial_component_summaries = Some(v);
            self
        }
        /// <p>A list of the summaries of your trial components.</p>
        pub fn set_trial_component_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::TrialComponentSummary>>,
        ) -> Self {
            self.trial_component_summaries = input;
            self
        }
        /// <p>A token for getting the next set of components, if there are any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token for getting the next set of components, if there are any.</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 [`ListTrialComponentsOutput`](crate::output::ListTrialComponentsOutput).
        pub fn build(self) -> crate::output::ListTrialComponentsOutput {
            crate::output::ListTrialComponentsOutput {
                trial_component_summaries: self.trial_component_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListTrialComponentsOutput {
    /// Creates a new builder-style object to manufacture [`ListTrialComponentsOutput`](crate::output::ListTrialComponentsOutput).
    pub fn builder() -> crate::output::list_trial_components_output::Builder {
        crate::output::list_trial_components_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListTransformJobsOutput {
    /// <p>An array of <code>TransformJobSummary</code> objects.</p>
    #[doc(hidden)]
    pub transform_job_summaries:
        std::option::Option<std::vec::Vec<crate::model::TransformJobSummary>>,
    /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of transform jobs, use it in the next request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListTransformJobsOutput {
    /// <p>An array of <code>TransformJobSummary</code> objects.</p>
    pub fn transform_job_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::TransformJobSummary]> {
        self.transform_job_summaries.as_deref()
    }
    /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of transform jobs, use it in the next request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListTransformJobsOutput`](crate::output::ListTransformJobsOutput).
pub mod list_transform_jobs_output {

    /// A builder for [`ListTransformJobsOutput`](crate::output::ListTransformJobsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) transform_job_summaries:
            std::option::Option<std::vec::Vec<crate::model::TransformJobSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `transform_job_summaries`.
        ///
        /// To override the contents of this collection use [`set_transform_job_summaries`](Self::set_transform_job_summaries).
        ///
        /// <p>An array of <code>TransformJobSummary</code> objects.</p>
        pub fn transform_job_summaries(mut self, input: crate::model::TransformJobSummary) -> Self {
            let mut v = self.transform_job_summaries.unwrap_or_default();
            v.push(input);
            self.transform_job_summaries = Some(v);
            self
        }
        /// <p>An array of <code>TransformJobSummary</code> objects.</p>
        pub fn set_transform_job_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::TransformJobSummary>>,
        ) -> Self {
            self.transform_job_summaries = input;
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of transform jobs, use it in the next request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of transform jobs, use it in the next request.</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 [`ListTransformJobsOutput`](crate::output::ListTransformJobsOutput).
        pub fn build(self) -> crate::output::ListTransformJobsOutput {
            crate::output::ListTransformJobsOutput {
                transform_job_summaries: self.transform_job_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListTransformJobsOutput {
    /// Creates a new builder-style object to manufacture [`ListTransformJobsOutput`](crate::output::ListTransformJobsOutput).
    pub fn builder() -> crate::output::list_transform_jobs_output::Builder {
        crate::output::list_transform_jobs_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListTrainingJobsForHyperParameterTuningJobOutput {
    /// <p>A list of <code>TrainingJobSummary</code> objects that describe the training jobs that the <code>ListTrainingJobsForHyperParameterTuningJob</code> request returned.</p>
    #[doc(hidden)]
    pub training_job_summaries:
        std::option::Option<std::vec::Vec<crate::model::HyperParameterTrainingJobSummary>>,
    /// <p>If the result of this <code>ListTrainingJobsForHyperParameterTuningJob</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of training jobs, use the token in the next request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListTrainingJobsForHyperParameterTuningJobOutput {
    /// <p>A list of <code>TrainingJobSummary</code> objects that describe the training jobs that the <code>ListTrainingJobsForHyperParameterTuningJob</code> request returned.</p>
    pub fn training_job_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::HyperParameterTrainingJobSummary]> {
        self.training_job_summaries.as_deref()
    }
    /// <p>If the result of this <code>ListTrainingJobsForHyperParameterTuningJob</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of training jobs, use the token in the next request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListTrainingJobsForHyperParameterTuningJobOutput`](crate::output::ListTrainingJobsForHyperParameterTuningJobOutput).
pub mod list_training_jobs_for_hyper_parameter_tuning_job_output {

    /// A builder for [`ListTrainingJobsForHyperParameterTuningJobOutput`](crate::output::ListTrainingJobsForHyperParameterTuningJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) training_job_summaries:
            std::option::Option<std::vec::Vec<crate::model::HyperParameterTrainingJobSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `training_job_summaries`.
        ///
        /// To override the contents of this collection use [`set_training_job_summaries`](Self::set_training_job_summaries).
        ///
        /// <p>A list of <code>TrainingJobSummary</code> objects that describe the training jobs that the <code>ListTrainingJobsForHyperParameterTuningJob</code> request returned.</p>
        pub fn training_job_summaries(
            mut self,
            input: crate::model::HyperParameterTrainingJobSummary,
        ) -> Self {
            let mut v = self.training_job_summaries.unwrap_or_default();
            v.push(input);
            self.training_job_summaries = Some(v);
            self
        }
        /// <p>A list of <code>TrainingJobSummary</code> objects that describe the training jobs that the <code>ListTrainingJobsForHyperParameterTuningJob</code> request returned.</p>
        pub fn set_training_job_summaries(
            mut self,
            input: std::option::Option<
                std::vec::Vec<crate::model::HyperParameterTrainingJobSummary>,
            >,
        ) -> Self {
            self.training_job_summaries = input;
            self
        }
        /// <p>If the result of this <code>ListTrainingJobsForHyperParameterTuningJob</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of training jobs, use the token in the next request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the result of this <code>ListTrainingJobsForHyperParameterTuningJob</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of training jobs, use the token in the next request.</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 [`ListTrainingJobsForHyperParameterTuningJobOutput`](crate::output::ListTrainingJobsForHyperParameterTuningJobOutput).
        pub fn build(self) -> crate::output::ListTrainingJobsForHyperParameterTuningJobOutput {
            crate::output::ListTrainingJobsForHyperParameterTuningJobOutput {
                training_job_summaries: self.training_job_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListTrainingJobsForHyperParameterTuningJobOutput {
    /// Creates a new builder-style object to manufacture [`ListTrainingJobsForHyperParameterTuningJobOutput`](crate::output::ListTrainingJobsForHyperParameterTuningJobOutput).
    pub fn builder(
    ) -> crate::output::list_training_jobs_for_hyper_parameter_tuning_job_output::Builder {
        crate::output::list_training_jobs_for_hyper_parameter_tuning_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListTrainingJobsOutput {
    /// <p>An array of <code>TrainingJobSummary</code> objects, each listing a training job.</p>
    #[doc(hidden)]
    pub training_job_summaries:
        std::option::Option<std::vec::Vec<crate::model::TrainingJobSummary>>,
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of training jobs, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListTrainingJobsOutput {
    /// <p>An array of <code>TrainingJobSummary</code> objects, each listing a training job.</p>
    pub fn training_job_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::TrainingJobSummary]> {
        self.training_job_summaries.as_deref()
    }
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of training jobs, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListTrainingJobsOutput`](crate::output::ListTrainingJobsOutput).
pub mod list_training_jobs_output {

    /// A builder for [`ListTrainingJobsOutput`](crate::output::ListTrainingJobsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) training_job_summaries:
            std::option::Option<std::vec::Vec<crate::model::TrainingJobSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `training_job_summaries`.
        ///
        /// To override the contents of this collection use [`set_training_job_summaries`](Self::set_training_job_summaries).
        ///
        /// <p>An array of <code>TrainingJobSummary</code> objects, each listing a training job.</p>
        pub fn training_job_summaries(mut self, input: crate::model::TrainingJobSummary) -> Self {
            let mut v = self.training_job_summaries.unwrap_or_default();
            v.push(input);
            self.training_job_summaries = Some(v);
            self
        }
        /// <p>An array of <code>TrainingJobSummary</code> objects, each listing a training job.</p>
        pub fn set_training_job_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::TrainingJobSummary>>,
        ) -> Self {
            self.training_job_summaries = input;
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of training jobs, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of training jobs, use it in the subsequent request.</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 [`ListTrainingJobsOutput`](crate::output::ListTrainingJobsOutput).
        pub fn build(self) -> crate::output::ListTrainingJobsOutput {
            crate::output::ListTrainingJobsOutput {
                training_job_summaries: self.training_job_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListTrainingJobsOutput {
    /// Creates a new builder-style object to manufacture [`ListTrainingJobsOutput`](crate::output::ListTrainingJobsOutput).
    pub fn builder() -> crate::output::list_training_jobs_output::Builder {
        crate::output::list_training_jobs_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListTagsOutput {
    /// <p>An array of <code>Tag</code> objects, each with a tag key and a value.</p>
    #[doc(hidden)]
    pub tags: std::option::Option<std::vec::Vec<crate::model::Tag>>,
    /// <p> If response is truncated, SageMaker includes a token in the response. You can use this token in your subsequent request to fetch next set of tokens. </p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListTagsOutput {
    /// <p>An array of <code>Tag</code> objects, each with a tag key and a value.</p>
    pub fn tags(&self) -> std::option::Option<&[crate::model::Tag]> {
        self.tags.as_deref()
    }
    /// <p> If response is truncated, SageMaker includes a token in the response. You can use this token in your subsequent request to fetch next set of tokens. </p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListTagsOutput`](crate::output::ListTagsOutput).
pub mod list_tags_output {

    /// A builder for [`ListTagsOutput`](crate::output::ListTagsOutput).
    #[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>An array of <code>Tag</code> objects, each with a tag key and a value.</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>An array of <code>Tag</code> objects, each with a tag key and a value.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Tag>>,
        ) -> Self {
            self.tags = input;
            self
        }
        /// <p> If response is truncated, SageMaker includes a token in the response. You can use this token in your subsequent request to fetch next set of tokens. </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p> If response is truncated, SageMaker includes a token in the response. You can use this token in your subsequent request to fetch next set of tokens. </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 [`ListTagsOutput`](crate::output::ListTagsOutput).
        pub fn build(self) -> crate::output::ListTagsOutput {
            crate::output::ListTagsOutput {
                tags: self.tags,
                next_token: self.next_token,
            }
        }
    }
}
impl ListTagsOutput {
    /// Creates a new builder-style object to manufacture [`ListTagsOutput`](crate::output::ListTagsOutput).
    pub fn builder() -> crate::output::list_tags_output::Builder {
        crate::output::list_tags_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListSubscribedWorkteamsOutput {
    /// <p>An array of <code>Workteam</code> objects, each describing a work team.</p>
    #[doc(hidden)]
    pub subscribed_workteams: std::option::Option<std::vec::Vec<crate::model::SubscribedWorkteam>>,
    /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of work teams, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListSubscribedWorkteamsOutput {
    /// <p>An array of <code>Workteam</code> objects, each describing a work team.</p>
    pub fn subscribed_workteams(&self) -> std::option::Option<&[crate::model::SubscribedWorkteam]> {
        self.subscribed_workteams.as_deref()
    }
    /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of work teams, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListSubscribedWorkteamsOutput`](crate::output::ListSubscribedWorkteamsOutput).
pub mod list_subscribed_workteams_output {

    /// A builder for [`ListSubscribedWorkteamsOutput`](crate::output::ListSubscribedWorkteamsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) subscribed_workteams:
            std::option::Option<std::vec::Vec<crate::model::SubscribedWorkteam>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `subscribed_workteams`.
        ///
        /// To override the contents of this collection use [`set_subscribed_workteams`](Self::set_subscribed_workteams).
        ///
        /// <p>An array of <code>Workteam</code> objects, each describing a work team.</p>
        pub fn subscribed_workteams(mut self, input: crate::model::SubscribedWorkteam) -> Self {
            let mut v = self.subscribed_workteams.unwrap_or_default();
            v.push(input);
            self.subscribed_workteams = Some(v);
            self
        }
        /// <p>An array of <code>Workteam</code> objects, each describing a work team.</p>
        pub fn set_subscribed_workteams(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::SubscribedWorkteam>>,
        ) -> Self {
            self.subscribed_workteams = input;
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of work teams, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of work teams, use it in the subsequent request.</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 [`ListSubscribedWorkteamsOutput`](crate::output::ListSubscribedWorkteamsOutput).
        pub fn build(self) -> crate::output::ListSubscribedWorkteamsOutput {
            crate::output::ListSubscribedWorkteamsOutput {
                subscribed_workteams: self.subscribed_workteams,
                next_token: self.next_token,
            }
        }
    }
}
impl ListSubscribedWorkteamsOutput {
    /// Creates a new builder-style object to manufacture [`ListSubscribedWorkteamsOutput`](crate::output::ListSubscribedWorkteamsOutput).
    pub fn builder() -> crate::output::list_subscribed_workteams_output::Builder {
        crate::output::list_subscribed_workteams_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListStudioLifecycleConfigsOutput {
    /// <p>A token for getting the next set of actions, if there are any.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
    /// <p>A list of Lifecycle Configurations and their properties.</p>
    #[doc(hidden)]
    pub studio_lifecycle_configs:
        std::option::Option<std::vec::Vec<crate::model::StudioLifecycleConfigDetails>>,
}
impl ListStudioLifecycleConfigsOutput {
    /// <p>A token for getting the next set of actions, if there are any.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
    /// <p>A list of Lifecycle Configurations and their properties.</p>
    pub fn studio_lifecycle_configs(
        &self,
    ) -> std::option::Option<&[crate::model::StudioLifecycleConfigDetails]> {
        self.studio_lifecycle_configs.as_deref()
    }
}
/// See [`ListStudioLifecycleConfigsOutput`](crate::output::ListStudioLifecycleConfigsOutput).
pub mod list_studio_lifecycle_configs_output {

    /// A builder for [`ListStudioLifecycleConfigsOutput`](crate::output::ListStudioLifecycleConfigsOutput).
    #[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) studio_lifecycle_configs:
            std::option::Option<std::vec::Vec<crate::model::StudioLifecycleConfigDetails>>,
    }
    impl Builder {
        /// <p>A token for getting the next set of actions, if there are any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token for getting the next set of actions, if there are any.</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 `studio_lifecycle_configs`.
        ///
        /// To override the contents of this collection use [`set_studio_lifecycle_configs`](Self::set_studio_lifecycle_configs).
        ///
        /// <p>A list of Lifecycle Configurations and their properties.</p>
        pub fn studio_lifecycle_configs(
            mut self,
            input: crate::model::StudioLifecycleConfigDetails,
        ) -> Self {
            let mut v = self.studio_lifecycle_configs.unwrap_or_default();
            v.push(input);
            self.studio_lifecycle_configs = Some(v);
            self
        }
        /// <p>A list of Lifecycle Configurations and their properties.</p>
        pub fn set_studio_lifecycle_configs(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::StudioLifecycleConfigDetails>>,
        ) -> Self {
            self.studio_lifecycle_configs = input;
            self
        }
        /// Consumes the builder and constructs a [`ListStudioLifecycleConfigsOutput`](crate::output::ListStudioLifecycleConfigsOutput).
        pub fn build(self) -> crate::output::ListStudioLifecycleConfigsOutput {
            crate::output::ListStudioLifecycleConfigsOutput {
                next_token: self.next_token,
                studio_lifecycle_configs: self.studio_lifecycle_configs,
            }
        }
    }
}
impl ListStudioLifecycleConfigsOutput {
    /// Creates a new builder-style object to manufacture [`ListStudioLifecycleConfigsOutput`](crate::output::ListStudioLifecycleConfigsOutput).
    pub fn builder() -> crate::output::list_studio_lifecycle_configs_output::Builder {
        crate::output::list_studio_lifecycle_configs_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListStageDevicesOutput {
    /// <p>List of summaries of devices allocated to the stage.</p>
    #[doc(hidden)]
    pub device_deployment_summaries:
        std::option::Option<std::vec::Vec<crate::model::DeviceDeploymentSummary>>,
    /// <p>The token to use when calling the next page of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListStageDevicesOutput {
    /// <p>List of summaries of devices allocated to the stage.</p>
    pub fn device_deployment_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::DeviceDeploymentSummary]> {
        self.device_deployment_summaries.as_deref()
    }
    /// <p>The token to use when calling the next page of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListStageDevicesOutput`](crate::output::ListStageDevicesOutput).
pub mod list_stage_devices_output {

    /// A builder for [`ListStageDevicesOutput`](crate::output::ListStageDevicesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) device_deployment_summaries:
            std::option::Option<std::vec::Vec<crate::model::DeviceDeploymentSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `device_deployment_summaries`.
        ///
        /// To override the contents of this collection use [`set_device_deployment_summaries`](Self::set_device_deployment_summaries).
        ///
        /// <p>List of summaries of devices allocated to the stage.</p>
        pub fn device_deployment_summaries(
            mut self,
            input: crate::model::DeviceDeploymentSummary,
        ) -> Self {
            let mut v = self.device_deployment_summaries.unwrap_or_default();
            v.push(input);
            self.device_deployment_summaries = Some(v);
            self
        }
        /// <p>List of summaries of devices allocated to the stage.</p>
        pub fn set_device_deployment_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::DeviceDeploymentSummary>>,
        ) -> Self {
            self.device_deployment_summaries = input;
            self
        }
        /// <p>The token to use when calling the next page of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token to use when calling the next page of results.</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 [`ListStageDevicesOutput`](crate::output::ListStageDevicesOutput).
        pub fn build(self) -> crate::output::ListStageDevicesOutput {
            crate::output::ListStageDevicesOutput {
                device_deployment_summaries: self.device_deployment_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListStageDevicesOutput {
    /// Creates a new builder-style object to manufacture [`ListStageDevicesOutput`](crate::output::ListStageDevicesOutput).
    pub fn builder() -> crate::output::list_stage_devices_output::Builder {
        crate::output::list_stage_devices_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListSpacesOutput {
    /// <p>The list of spaces.</p>
    #[doc(hidden)]
    pub spaces: std::option::Option<std::vec::Vec<crate::model::SpaceDetails>>,
    /// <p>If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListSpacesOutput {
    /// <p>The list of spaces.</p>
    pub fn spaces(&self) -> std::option::Option<&[crate::model::SpaceDetails]> {
        self.spaces.as_deref()
    }
    /// <p>If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListSpacesOutput`](crate::output::ListSpacesOutput).
pub mod list_spaces_output {

    /// A builder for [`ListSpacesOutput`](crate::output::ListSpacesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) spaces: std::option::Option<std::vec::Vec<crate::model::SpaceDetails>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `spaces`.
        ///
        /// To override the contents of this collection use [`set_spaces`](Self::set_spaces).
        ///
        /// <p>The list of spaces.</p>
        pub fn spaces(mut self, input: crate::model::SpaceDetails) -> Self {
            let mut v = self.spaces.unwrap_or_default();
            v.push(input);
            self.spaces = Some(v);
            self
        }
        /// <p>The list of spaces.</p>
        pub fn set_spaces(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::SpaceDetails>>,
        ) -> Self {
            self.spaces = input;
            self
        }
        /// <p>If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.</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 [`ListSpacesOutput`](crate::output::ListSpacesOutput).
        pub fn build(self) -> crate::output::ListSpacesOutput {
            crate::output::ListSpacesOutput {
                spaces: self.spaces,
                next_token: self.next_token,
            }
        }
    }
}
impl ListSpacesOutput {
    /// Creates a new builder-style object to manufacture [`ListSpacesOutput`](crate::output::ListSpacesOutput).
    pub fn builder() -> crate::output::list_spaces_output::Builder {
        crate::output::list_spaces_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListProjectsOutput {
    /// <p>A list of summaries of projects.</p>
    #[doc(hidden)]
    pub project_summary_list: std::option::Option<std::vec::Vec<crate::model::ProjectSummary>>,
    /// <p>If the result of the previous <code>ListCompilationJobs</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of model compilation jobs, use the token in the next request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListProjectsOutput {
    /// <p>A list of summaries of projects.</p>
    pub fn project_summary_list(&self) -> std::option::Option<&[crate::model::ProjectSummary]> {
        self.project_summary_list.as_deref()
    }
    /// <p>If the result of the previous <code>ListCompilationJobs</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of model compilation jobs, use the token in the next request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListProjectsOutput`](crate::output::ListProjectsOutput).
pub mod list_projects_output {

    /// A builder for [`ListProjectsOutput`](crate::output::ListProjectsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) project_summary_list:
            std::option::Option<std::vec::Vec<crate::model::ProjectSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `project_summary_list`.
        ///
        /// To override the contents of this collection use [`set_project_summary_list`](Self::set_project_summary_list).
        ///
        /// <p>A list of summaries of projects.</p>
        pub fn project_summary_list(mut self, input: crate::model::ProjectSummary) -> Self {
            let mut v = self.project_summary_list.unwrap_or_default();
            v.push(input);
            self.project_summary_list = Some(v);
            self
        }
        /// <p>A list of summaries of projects.</p>
        pub fn set_project_summary_list(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ProjectSummary>>,
        ) -> Self {
            self.project_summary_list = input;
            self
        }
        /// <p>If the result of the previous <code>ListCompilationJobs</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of model compilation jobs, use the token in the next request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the result of the previous <code>ListCompilationJobs</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of model compilation jobs, use the token in the next request.</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 [`ListProjectsOutput`](crate::output::ListProjectsOutput).
        pub fn build(self) -> crate::output::ListProjectsOutput {
            crate::output::ListProjectsOutput {
                project_summary_list: self.project_summary_list,
                next_token: self.next_token,
            }
        }
    }
}
impl ListProjectsOutput {
    /// Creates a new builder-style object to manufacture [`ListProjectsOutput`](crate::output::ListProjectsOutput).
    pub fn builder() -> crate::output::list_projects_output::Builder {
        crate::output::list_projects_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListProcessingJobsOutput {
    /// <p>An array of <code>ProcessingJobSummary</code> objects, each listing a processing job.</p>
    #[doc(hidden)]
    pub processing_job_summaries:
        std::option::Option<std::vec::Vec<crate::model::ProcessingJobSummary>>,
    /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of processing jobs, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListProcessingJobsOutput {
    /// <p>An array of <code>ProcessingJobSummary</code> objects, each listing a processing job.</p>
    pub fn processing_job_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::ProcessingJobSummary]> {
        self.processing_job_summaries.as_deref()
    }
    /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of processing jobs, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListProcessingJobsOutput`](crate::output::ListProcessingJobsOutput).
pub mod list_processing_jobs_output {

    /// A builder for [`ListProcessingJobsOutput`](crate::output::ListProcessingJobsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) processing_job_summaries:
            std::option::Option<std::vec::Vec<crate::model::ProcessingJobSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `processing_job_summaries`.
        ///
        /// To override the contents of this collection use [`set_processing_job_summaries`](Self::set_processing_job_summaries).
        ///
        /// <p>An array of <code>ProcessingJobSummary</code> objects, each listing a processing job.</p>
        pub fn processing_job_summaries(
            mut self,
            input: crate::model::ProcessingJobSummary,
        ) -> Self {
            let mut v = self.processing_job_summaries.unwrap_or_default();
            v.push(input);
            self.processing_job_summaries = Some(v);
            self
        }
        /// <p>An array of <code>ProcessingJobSummary</code> objects, each listing a processing job.</p>
        pub fn set_processing_job_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ProcessingJobSummary>>,
        ) -> Self {
            self.processing_job_summaries = input;
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of processing jobs, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of processing jobs, use it in the subsequent request.</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 [`ListProcessingJobsOutput`](crate::output::ListProcessingJobsOutput).
        pub fn build(self) -> crate::output::ListProcessingJobsOutput {
            crate::output::ListProcessingJobsOutput {
                processing_job_summaries: self.processing_job_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListProcessingJobsOutput {
    /// Creates a new builder-style object to manufacture [`ListProcessingJobsOutput`](crate::output::ListProcessingJobsOutput).
    pub fn builder() -> crate::output::list_processing_jobs_output::Builder {
        crate::output::list_processing_jobs_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListPipelinesOutput {
    /// <p>Contains a sorted list of <code>PipelineSummary</code> objects matching the specified filters. Each <code>PipelineSummary</code> consists of PipelineArn, PipelineName, ExperimentName, PipelineDescription, CreationTime, LastModifiedTime, LastRunTime, and RoleArn. This list can be empty. </p>
    #[doc(hidden)]
    pub pipeline_summaries: std::option::Option<std::vec::Vec<crate::model::PipelineSummary>>,
    /// <p>If the result of the previous <code>ListPipelines</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of pipelines, use the token in the next request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListPipelinesOutput {
    /// <p>Contains a sorted list of <code>PipelineSummary</code> objects matching the specified filters. Each <code>PipelineSummary</code> consists of PipelineArn, PipelineName, ExperimentName, PipelineDescription, CreationTime, LastModifiedTime, LastRunTime, and RoleArn. This list can be empty. </p>
    pub fn pipeline_summaries(&self) -> std::option::Option<&[crate::model::PipelineSummary]> {
        self.pipeline_summaries.as_deref()
    }
    /// <p>If the result of the previous <code>ListPipelines</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of pipelines, use the token in the next request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListPipelinesOutput`](crate::output::ListPipelinesOutput).
pub mod list_pipelines_output {

    /// A builder for [`ListPipelinesOutput`](crate::output::ListPipelinesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) pipeline_summaries:
            std::option::Option<std::vec::Vec<crate::model::PipelineSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `pipeline_summaries`.
        ///
        /// To override the contents of this collection use [`set_pipeline_summaries`](Self::set_pipeline_summaries).
        ///
        /// <p>Contains a sorted list of <code>PipelineSummary</code> objects matching the specified filters. Each <code>PipelineSummary</code> consists of PipelineArn, PipelineName, ExperimentName, PipelineDescription, CreationTime, LastModifiedTime, LastRunTime, and RoleArn. This list can be empty. </p>
        pub fn pipeline_summaries(mut self, input: crate::model::PipelineSummary) -> Self {
            let mut v = self.pipeline_summaries.unwrap_or_default();
            v.push(input);
            self.pipeline_summaries = Some(v);
            self
        }
        /// <p>Contains a sorted list of <code>PipelineSummary</code> objects matching the specified filters. Each <code>PipelineSummary</code> consists of PipelineArn, PipelineName, ExperimentName, PipelineDescription, CreationTime, LastModifiedTime, LastRunTime, and RoleArn. This list can be empty. </p>
        pub fn set_pipeline_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::PipelineSummary>>,
        ) -> Self {
            self.pipeline_summaries = input;
            self
        }
        /// <p>If the result of the previous <code>ListPipelines</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of pipelines, use the token in the next request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the result of the previous <code>ListPipelines</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of pipelines, use the token in the next request.</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 [`ListPipelinesOutput`](crate::output::ListPipelinesOutput).
        pub fn build(self) -> crate::output::ListPipelinesOutput {
            crate::output::ListPipelinesOutput {
                pipeline_summaries: self.pipeline_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListPipelinesOutput {
    /// Creates a new builder-style object to manufacture [`ListPipelinesOutput`](crate::output::ListPipelinesOutput).
    pub fn builder() -> crate::output::list_pipelines_output::Builder {
        crate::output::list_pipelines_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListPipelineParametersForExecutionOutput {
    /// <p>Contains a list of pipeline parameters. This list can be empty. </p>
    #[doc(hidden)]
    pub pipeline_parameters: std::option::Option<std::vec::Vec<crate::model::Parameter>>,
    /// <p>If the result of the previous <code>ListPipelineParametersForExecution</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of parameters, use the token in the next request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListPipelineParametersForExecutionOutput {
    /// <p>Contains a list of pipeline parameters. This list can be empty. </p>
    pub fn pipeline_parameters(&self) -> std::option::Option<&[crate::model::Parameter]> {
        self.pipeline_parameters.as_deref()
    }
    /// <p>If the result of the previous <code>ListPipelineParametersForExecution</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of parameters, use the token in the next request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListPipelineParametersForExecutionOutput`](crate::output::ListPipelineParametersForExecutionOutput).
pub mod list_pipeline_parameters_for_execution_output {

    /// A builder for [`ListPipelineParametersForExecutionOutput`](crate::output::ListPipelineParametersForExecutionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) pipeline_parameters: std::option::Option<std::vec::Vec<crate::model::Parameter>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `pipeline_parameters`.
        ///
        /// To override the contents of this collection use [`set_pipeline_parameters`](Self::set_pipeline_parameters).
        ///
        /// <p>Contains a list of pipeline parameters. This list can be empty. </p>
        pub fn pipeline_parameters(mut self, input: crate::model::Parameter) -> Self {
            let mut v = self.pipeline_parameters.unwrap_or_default();
            v.push(input);
            self.pipeline_parameters = Some(v);
            self
        }
        /// <p>Contains a list of pipeline parameters. This list can be empty. </p>
        pub fn set_pipeline_parameters(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Parameter>>,
        ) -> Self {
            self.pipeline_parameters = input;
            self
        }
        /// <p>If the result of the previous <code>ListPipelineParametersForExecution</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of parameters, use the token in the next request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the result of the previous <code>ListPipelineParametersForExecution</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of parameters, use the token in the next request.</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 [`ListPipelineParametersForExecutionOutput`](crate::output::ListPipelineParametersForExecutionOutput).
        pub fn build(self) -> crate::output::ListPipelineParametersForExecutionOutput {
            crate::output::ListPipelineParametersForExecutionOutput {
                pipeline_parameters: self.pipeline_parameters,
                next_token: self.next_token,
            }
        }
    }
}
impl ListPipelineParametersForExecutionOutput {
    /// Creates a new builder-style object to manufacture [`ListPipelineParametersForExecutionOutput`](crate::output::ListPipelineParametersForExecutionOutput).
    pub fn builder() -> crate::output::list_pipeline_parameters_for_execution_output::Builder {
        crate::output::list_pipeline_parameters_for_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 ListPipelineExecutionStepsOutput {
    /// <p>A list of <code>PipeLineExecutionStep</code> objects. Each <code>PipeLineExecutionStep</code> consists of StepName, StartTime, EndTime, StepStatus, and Metadata. Metadata is an object with properties for each job that contains relevant information about the job created by the step.</p>
    #[doc(hidden)]
    pub pipeline_execution_steps:
        std::option::Option<std::vec::Vec<crate::model::PipelineExecutionStep>>,
    /// <p>If the result of the previous <code>ListPipelineExecutionSteps</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of pipeline execution steps, use the token in the next request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListPipelineExecutionStepsOutput {
    /// <p>A list of <code>PipeLineExecutionStep</code> objects. Each <code>PipeLineExecutionStep</code> consists of StepName, StartTime, EndTime, StepStatus, and Metadata. Metadata is an object with properties for each job that contains relevant information about the job created by the step.</p>
    pub fn pipeline_execution_steps(
        &self,
    ) -> std::option::Option<&[crate::model::PipelineExecutionStep]> {
        self.pipeline_execution_steps.as_deref()
    }
    /// <p>If the result of the previous <code>ListPipelineExecutionSteps</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of pipeline execution steps, use the token in the next request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListPipelineExecutionStepsOutput`](crate::output::ListPipelineExecutionStepsOutput).
pub mod list_pipeline_execution_steps_output {

    /// A builder for [`ListPipelineExecutionStepsOutput`](crate::output::ListPipelineExecutionStepsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) pipeline_execution_steps:
            std::option::Option<std::vec::Vec<crate::model::PipelineExecutionStep>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `pipeline_execution_steps`.
        ///
        /// To override the contents of this collection use [`set_pipeline_execution_steps`](Self::set_pipeline_execution_steps).
        ///
        /// <p>A list of <code>PipeLineExecutionStep</code> objects. Each <code>PipeLineExecutionStep</code> consists of StepName, StartTime, EndTime, StepStatus, and Metadata. Metadata is an object with properties for each job that contains relevant information about the job created by the step.</p>
        pub fn pipeline_execution_steps(
            mut self,
            input: crate::model::PipelineExecutionStep,
        ) -> Self {
            let mut v = self.pipeline_execution_steps.unwrap_or_default();
            v.push(input);
            self.pipeline_execution_steps = Some(v);
            self
        }
        /// <p>A list of <code>PipeLineExecutionStep</code> objects. Each <code>PipeLineExecutionStep</code> consists of StepName, StartTime, EndTime, StepStatus, and Metadata. Metadata is an object with properties for each job that contains relevant information about the job created by the step.</p>
        pub fn set_pipeline_execution_steps(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::PipelineExecutionStep>>,
        ) -> Self {
            self.pipeline_execution_steps = input;
            self
        }
        /// <p>If the result of the previous <code>ListPipelineExecutionSteps</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of pipeline execution steps, use the token in the next request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the result of the previous <code>ListPipelineExecutionSteps</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of pipeline execution steps, use the token in the next request.</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 [`ListPipelineExecutionStepsOutput`](crate::output::ListPipelineExecutionStepsOutput).
        pub fn build(self) -> crate::output::ListPipelineExecutionStepsOutput {
            crate::output::ListPipelineExecutionStepsOutput {
                pipeline_execution_steps: self.pipeline_execution_steps,
                next_token: self.next_token,
            }
        }
    }
}
impl ListPipelineExecutionStepsOutput {
    /// Creates a new builder-style object to manufacture [`ListPipelineExecutionStepsOutput`](crate::output::ListPipelineExecutionStepsOutput).
    pub fn builder() -> crate::output::list_pipeline_execution_steps_output::Builder {
        crate::output::list_pipeline_execution_steps_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListPipelineExecutionsOutput {
    /// <p>Contains a sorted list of pipeline execution summary objects matching the specified filters. Each run summary includes the Amazon Resource Name (ARN) of the pipeline execution, the run date, and the status. This list can be empty. </p>
    #[doc(hidden)]
    pub pipeline_execution_summaries:
        std::option::Option<std::vec::Vec<crate::model::PipelineExecutionSummary>>,
    /// <p>If the result of the previous <code>ListPipelineExecutions</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of pipeline executions, use the token in the next request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListPipelineExecutionsOutput {
    /// <p>Contains a sorted list of pipeline execution summary objects matching the specified filters. Each run summary includes the Amazon Resource Name (ARN) of the pipeline execution, the run date, and the status. This list can be empty. </p>
    pub fn pipeline_execution_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::PipelineExecutionSummary]> {
        self.pipeline_execution_summaries.as_deref()
    }
    /// <p>If the result of the previous <code>ListPipelineExecutions</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of pipeline executions, use the token in the next request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListPipelineExecutionsOutput`](crate::output::ListPipelineExecutionsOutput).
pub mod list_pipeline_executions_output {

    /// A builder for [`ListPipelineExecutionsOutput`](crate::output::ListPipelineExecutionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) pipeline_execution_summaries:
            std::option::Option<std::vec::Vec<crate::model::PipelineExecutionSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `pipeline_execution_summaries`.
        ///
        /// To override the contents of this collection use [`set_pipeline_execution_summaries`](Self::set_pipeline_execution_summaries).
        ///
        /// <p>Contains a sorted list of pipeline execution summary objects matching the specified filters. Each run summary includes the Amazon Resource Name (ARN) of the pipeline execution, the run date, and the status. This list can be empty. </p>
        pub fn pipeline_execution_summaries(
            mut self,
            input: crate::model::PipelineExecutionSummary,
        ) -> Self {
            let mut v = self.pipeline_execution_summaries.unwrap_or_default();
            v.push(input);
            self.pipeline_execution_summaries = Some(v);
            self
        }
        /// <p>Contains a sorted list of pipeline execution summary objects matching the specified filters. Each run summary includes the Amazon Resource Name (ARN) of the pipeline execution, the run date, and the status. This list can be empty. </p>
        pub fn set_pipeline_execution_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::PipelineExecutionSummary>>,
        ) -> Self {
            self.pipeline_execution_summaries = input;
            self
        }
        /// <p>If the result of the previous <code>ListPipelineExecutions</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of pipeline executions, use the token in the next request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the result of the previous <code>ListPipelineExecutions</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of pipeline executions, use the token in the next request.</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 [`ListPipelineExecutionsOutput`](crate::output::ListPipelineExecutionsOutput).
        pub fn build(self) -> crate::output::ListPipelineExecutionsOutput {
            crate::output::ListPipelineExecutionsOutput {
                pipeline_execution_summaries: self.pipeline_execution_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListPipelineExecutionsOutput {
    /// Creates a new builder-style object to manufacture [`ListPipelineExecutionsOutput`](crate::output::ListPipelineExecutionsOutput).
    pub fn builder() -> crate::output::list_pipeline_executions_output::Builder {
        crate::output::list_pipeline_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 ListNotebookInstancesOutput {
    /// <p>If the response to the previous <code>ListNotebookInstances</code> request was truncated, SageMaker returns this token. To retrieve the next set of notebook instances, use the token in the next request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
    /// <p>An array of <code>NotebookInstanceSummary</code> objects, one for each notebook instance.</p>
    #[doc(hidden)]
    pub notebook_instances:
        std::option::Option<std::vec::Vec<crate::model::NotebookInstanceSummary>>,
}
impl ListNotebookInstancesOutput {
    /// <p>If the response to the previous <code>ListNotebookInstances</code> request was truncated, SageMaker returns this token. To retrieve the next set of notebook instances, use the token in the next request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
    /// <p>An array of <code>NotebookInstanceSummary</code> objects, one for each notebook instance.</p>
    pub fn notebook_instances(
        &self,
    ) -> std::option::Option<&[crate::model::NotebookInstanceSummary]> {
        self.notebook_instances.as_deref()
    }
}
/// See [`ListNotebookInstancesOutput`](crate::output::ListNotebookInstancesOutput).
pub mod list_notebook_instances_output {

    /// A builder for [`ListNotebookInstancesOutput`](crate::output::ListNotebookInstancesOutput).
    #[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_instances:
            std::option::Option<std::vec::Vec<crate::model::NotebookInstanceSummary>>,
    }
    impl Builder {
        /// <p>If the response to the previous <code>ListNotebookInstances</code> request was truncated, SageMaker returns this token. To retrieve the next set of notebook instances, use the token in the next request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response to the previous <code>ListNotebookInstances</code> request was truncated, SageMaker returns this token. To retrieve the next set of notebook instances, use the token in the next request.</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_instances`.
        ///
        /// To override the contents of this collection use [`set_notebook_instances`](Self::set_notebook_instances).
        ///
        /// <p>An array of <code>NotebookInstanceSummary</code> objects, one for each notebook instance.</p>
        pub fn notebook_instances(mut self, input: crate::model::NotebookInstanceSummary) -> Self {
            let mut v = self.notebook_instances.unwrap_or_default();
            v.push(input);
            self.notebook_instances = Some(v);
            self
        }
        /// <p>An array of <code>NotebookInstanceSummary</code> objects, one for each notebook instance.</p>
        pub fn set_notebook_instances(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::NotebookInstanceSummary>>,
        ) -> Self {
            self.notebook_instances = input;
            self
        }
        /// Consumes the builder and constructs a [`ListNotebookInstancesOutput`](crate::output::ListNotebookInstancesOutput).
        pub fn build(self) -> crate::output::ListNotebookInstancesOutput {
            crate::output::ListNotebookInstancesOutput {
                next_token: self.next_token,
                notebook_instances: self.notebook_instances,
            }
        }
    }
}
impl ListNotebookInstancesOutput {
    /// Creates a new builder-style object to manufacture [`ListNotebookInstancesOutput`](crate::output::ListNotebookInstancesOutput).
    pub fn builder() -> crate::output::list_notebook_instances_output::Builder {
        crate::output::list_notebook_instances_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListNotebookInstanceLifecycleConfigsOutput {
    /// <p>If the response is truncated, SageMaker returns this token. To get the next set of lifecycle configurations, use it in the next request. </p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
    /// <p>An array of <code>NotebookInstanceLifecycleConfiguration</code> objects, each listing a lifecycle configuration.</p>
    #[doc(hidden)]
    pub notebook_instance_lifecycle_configs:
        std::option::Option<std::vec::Vec<crate::model::NotebookInstanceLifecycleConfigSummary>>,
}
impl ListNotebookInstanceLifecycleConfigsOutput {
    /// <p>If the response is truncated, SageMaker returns this token. To get the next set of lifecycle configurations, use it in the next request. </p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
    /// <p>An array of <code>NotebookInstanceLifecycleConfiguration</code> objects, each listing a lifecycle configuration.</p>
    pub fn notebook_instance_lifecycle_configs(
        &self,
    ) -> std::option::Option<&[crate::model::NotebookInstanceLifecycleConfigSummary]> {
        self.notebook_instance_lifecycle_configs.as_deref()
    }
}
/// See [`ListNotebookInstanceLifecycleConfigsOutput`](crate::output::ListNotebookInstanceLifecycleConfigsOutput).
pub mod list_notebook_instance_lifecycle_configs_output {

    /// A builder for [`ListNotebookInstanceLifecycleConfigsOutput`](crate::output::ListNotebookInstanceLifecycleConfigsOutput).
    #[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_instance_lifecycle_configs: std::option::Option<
            std::vec::Vec<crate::model::NotebookInstanceLifecycleConfigSummary>,
        >,
    }
    impl Builder {
        /// <p>If the response is truncated, SageMaker returns this token. To get the next set of lifecycle configurations, use it in the next request. </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To get the next set of lifecycle configurations, use it in the next request. </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_instance_lifecycle_configs`.
        ///
        /// To override the contents of this collection use [`set_notebook_instance_lifecycle_configs`](Self::set_notebook_instance_lifecycle_configs).
        ///
        /// <p>An array of <code>NotebookInstanceLifecycleConfiguration</code> objects, each listing a lifecycle configuration.</p>
        pub fn notebook_instance_lifecycle_configs(
            mut self,
            input: crate::model::NotebookInstanceLifecycleConfigSummary,
        ) -> Self {
            let mut v = self.notebook_instance_lifecycle_configs.unwrap_or_default();
            v.push(input);
            self.notebook_instance_lifecycle_configs = Some(v);
            self
        }
        /// <p>An array of <code>NotebookInstanceLifecycleConfiguration</code> objects, each listing a lifecycle configuration.</p>
        pub fn set_notebook_instance_lifecycle_configs(
            mut self,
            input: std::option::Option<
                std::vec::Vec<crate::model::NotebookInstanceLifecycleConfigSummary>,
            >,
        ) -> Self {
            self.notebook_instance_lifecycle_configs = input;
            self
        }
        /// Consumes the builder and constructs a [`ListNotebookInstanceLifecycleConfigsOutput`](crate::output::ListNotebookInstanceLifecycleConfigsOutput).
        pub fn build(self) -> crate::output::ListNotebookInstanceLifecycleConfigsOutput {
            crate::output::ListNotebookInstanceLifecycleConfigsOutput {
                next_token: self.next_token,
                notebook_instance_lifecycle_configs: self.notebook_instance_lifecycle_configs,
            }
        }
    }
}
impl ListNotebookInstanceLifecycleConfigsOutput {
    /// Creates a new builder-style object to manufacture [`ListNotebookInstanceLifecycleConfigsOutput`](crate::output::ListNotebookInstanceLifecycleConfigsOutput).
    pub fn builder() -> crate::output::list_notebook_instance_lifecycle_configs_output::Builder {
        crate::output::list_notebook_instance_lifecycle_configs_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListMonitoringSchedulesOutput {
    /// <p>A JSON array in which each element is a summary for a monitoring schedule.</p>
    #[doc(hidden)]
    pub monitoring_schedule_summaries:
        std::option::Option<std::vec::Vec<crate::model::MonitoringScheduleSummary>>,
    /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListMonitoringSchedulesOutput {
    /// <p>A JSON array in which each element is a summary for a monitoring schedule.</p>
    pub fn monitoring_schedule_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::MonitoringScheduleSummary]> {
        self.monitoring_schedule_summaries.as_deref()
    }
    /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListMonitoringSchedulesOutput`](crate::output::ListMonitoringSchedulesOutput).
pub mod list_monitoring_schedules_output {

    /// A builder for [`ListMonitoringSchedulesOutput`](crate::output::ListMonitoringSchedulesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) monitoring_schedule_summaries:
            std::option::Option<std::vec::Vec<crate::model::MonitoringScheduleSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `monitoring_schedule_summaries`.
        ///
        /// To override the contents of this collection use [`set_monitoring_schedule_summaries`](Self::set_monitoring_schedule_summaries).
        ///
        /// <p>A JSON array in which each element is a summary for a monitoring schedule.</p>
        pub fn monitoring_schedule_summaries(
            mut self,
            input: crate::model::MonitoringScheduleSummary,
        ) -> Self {
            let mut v = self.monitoring_schedule_summaries.unwrap_or_default();
            v.push(input);
            self.monitoring_schedule_summaries = Some(v);
            self
        }
        /// <p>A JSON array in which each element is a summary for a monitoring schedule.</p>
        pub fn set_monitoring_schedule_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::MonitoringScheduleSummary>>,
        ) -> Self {
            self.monitoring_schedule_summaries = input;
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent request.</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 [`ListMonitoringSchedulesOutput`](crate::output::ListMonitoringSchedulesOutput).
        pub fn build(self) -> crate::output::ListMonitoringSchedulesOutput {
            crate::output::ListMonitoringSchedulesOutput {
                monitoring_schedule_summaries: self.monitoring_schedule_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListMonitoringSchedulesOutput {
    /// Creates a new builder-style object to manufacture [`ListMonitoringSchedulesOutput`](crate::output::ListMonitoringSchedulesOutput).
    pub fn builder() -> crate::output::list_monitoring_schedules_output::Builder {
        crate::output::list_monitoring_schedules_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListMonitoringExecutionsOutput {
    /// <p>A JSON array in which each element is a summary for a monitoring execution.</p>
    #[doc(hidden)]
    pub monitoring_execution_summaries:
        std::option::Option<std::vec::Vec<crate::model::MonitoringExecutionSummary>>,
    /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent reques</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListMonitoringExecutionsOutput {
    /// <p>A JSON array in which each element is a summary for a monitoring execution.</p>
    pub fn monitoring_execution_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::MonitoringExecutionSummary]> {
        self.monitoring_execution_summaries.as_deref()
    }
    /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent reques</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListMonitoringExecutionsOutput`](crate::output::ListMonitoringExecutionsOutput).
pub mod list_monitoring_executions_output {

    /// A builder for [`ListMonitoringExecutionsOutput`](crate::output::ListMonitoringExecutionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) monitoring_execution_summaries:
            std::option::Option<std::vec::Vec<crate::model::MonitoringExecutionSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `monitoring_execution_summaries`.
        ///
        /// To override the contents of this collection use [`set_monitoring_execution_summaries`](Self::set_monitoring_execution_summaries).
        ///
        /// <p>A JSON array in which each element is a summary for a monitoring execution.</p>
        pub fn monitoring_execution_summaries(
            mut self,
            input: crate::model::MonitoringExecutionSummary,
        ) -> Self {
            let mut v = self.monitoring_execution_summaries.unwrap_or_default();
            v.push(input);
            self.monitoring_execution_summaries = Some(v);
            self
        }
        /// <p>A JSON array in which each element is a summary for a monitoring execution.</p>
        pub fn set_monitoring_execution_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::MonitoringExecutionSummary>>,
        ) -> Self {
            self.monitoring_execution_summaries = input;
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent reques</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent reques</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 [`ListMonitoringExecutionsOutput`](crate::output::ListMonitoringExecutionsOutput).
        pub fn build(self) -> crate::output::ListMonitoringExecutionsOutput {
            crate::output::ListMonitoringExecutionsOutput {
                monitoring_execution_summaries: self.monitoring_execution_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListMonitoringExecutionsOutput {
    /// Creates a new builder-style object to manufacture [`ListMonitoringExecutionsOutput`](crate::output::ListMonitoringExecutionsOutput).
    pub fn builder() -> crate::output::list_monitoring_executions_output::Builder {
        crate::output::list_monitoring_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 ListMonitoringAlertsOutput {
    /// <p>A JSON array where each element is a summary for a monitoring alert.</p>
    #[doc(hidden)]
    pub monitoring_alert_summaries:
        std::option::Option<std::vec::Vec<crate::model::MonitoringAlertSummary>>,
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of alerts, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListMonitoringAlertsOutput {
    /// <p>A JSON array where each element is a summary for a monitoring alert.</p>
    pub fn monitoring_alert_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::MonitoringAlertSummary]> {
        self.monitoring_alert_summaries.as_deref()
    }
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of alerts, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListMonitoringAlertsOutput`](crate::output::ListMonitoringAlertsOutput).
pub mod list_monitoring_alerts_output {

    /// A builder for [`ListMonitoringAlertsOutput`](crate::output::ListMonitoringAlertsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) monitoring_alert_summaries:
            std::option::Option<std::vec::Vec<crate::model::MonitoringAlertSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `monitoring_alert_summaries`.
        ///
        /// To override the contents of this collection use [`set_monitoring_alert_summaries`](Self::set_monitoring_alert_summaries).
        ///
        /// <p>A JSON array where each element is a summary for a monitoring alert.</p>
        pub fn monitoring_alert_summaries(
            mut self,
            input: crate::model::MonitoringAlertSummary,
        ) -> Self {
            let mut v = self.monitoring_alert_summaries.unwrap_or_default();
            v.push(input);
            self.monitoring_alert_summaries = Some(v);
            self
        }
        /// <p>A JSON array where each element is a summary for a monitoring alert.</p>
        pub fn set_monitoring_alert_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::MonitoringAlertSummary>>,
        ) -> Self {
            self.monitoring_alert_summaries = input;
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of alerts, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of alerts, use it in the subsequent request.</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 [`ListMonitoringAlertsOutput`](crate::output::ListMonitoringAlertsOutput).
        pub fn build(self) -> crate::output::ListMonitoringAlertsOutput {
            crate::output::ListMonitoringAlertsOutput {
                monitoring_alert_summaries: self.monitoring_alert_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListMonitoringAlertsOutput {
    /// Creates a new builder-style object to manufacture [`ListMonitoringAlertsOutput`](crate::output::ListMonitoringAlertsOutput).
    pub fn builder() -> crate::output::list_monitoring_alerts_output::Builder {
        crate::output::list_monitoring_alerts_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListMonitoringAlertHistoryOutput {
    /// <p>An alert history for a model monitoring schedule.</p>
    #[doc(hidden)]
    pub monitoring_alert_history:
        std::option::Option<std::vec::Vec<crate::model::MonitoringAlertHistorySummary>>,
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of alerts, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListMonitoringAlertHistoryOutput {
    /// <p>An alert history for a model monitoring schedule.</p>
    pub fn monitoring_alert_history(
        &self,
    ) -> std::option::Option<&[crate::model::MonitoringAlertHistorySummary]> {
        self.monitoring_alert_history.as_deref()
    }
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of alerts, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListMonitoringAlertHistoryOutput`](crate::output::ListMonitoringAlertHistoryOutput).
pub mod list_monitoring_alert_history_output {

    /// A builder for [`ListMonitoringAlertHistoryOutput`](crate::output::ListMonitoringAlertHistoryOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) monitoring_alert_history:
            std::option::Option<std::vec::Vec<crate::model::MonitoringAlertHistorySummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `monitoring_alert_history`.
        ///
        /// To override the contents of this collection use [`set_monitoring_alert_history`](Self::set_monitoring_alert_history).
        ///
        /// <p>An alert history for a model monitoring schedule.</p>
        pub fn monitoring_alert_history(
            mut self,
            input: crate::model::MonitoringAlertHistorySummary,
        ) -> Self {
            let mut v = self.monitoring_alert_history.unwrap_or_default();
            v.push(input);
            self.monitoring_alert_history = Some(v);
            self
        }
        /// <p>An alert history for a model monitoring schedule.</p>
        pub fn set_monitoring_alert_history(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::MonitoringAlertHistorySummary>>,
        ) -> Self {
            self.monitoring_alert_history = input;
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of alerts, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of alerts, use it in the subsequent request.</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 [`ListMonitoringAlertHistoryOutput`](crate::output::ListMonitoringAlertHistoryOutput).
        pub fn build(self) -> crate::output::ListMonitoringAlertHistoryOutput {
            crate::output::ListMonitoringAlertHistoryOutput {
                monitoring_alert_history: self.monitoring_alert_history,
                next_token: self.next_token,
            }
        }
    }
}
impl ListMonitoringAlertHistoryOutput {
    /// Creates a new builder-style object to manufacture [`ListMonitoringAlertHistoryOutput`](crate::output::ListMonitoringAlertHistoryOutput).
    pub fn builder() -> crate::output::list_monitoring_alert_history_output::Builder {
        crate::output::list_monitoring_alert_history_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListModelsOutput {
    /// <p>An array of <code>ModelSummary</code> objects, each of which lists a model.</p>
    #[doc(hidden)]
    pub models: std::option::Option<std::vec::Vec<crate::model::ModelSummary>>,
    /// <p> If the response is truncated, SageMaker returns this token. To retrieve the next set of models, use it in the subsequent request. </p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListModelsOutput {
    /// <p>An array of <code>ModelSummary</code> objects, each of which lists a model.</p>
    pub fn models(&self) -> std::option::Option<&[crate::model::ModelSummary]> {
        self.models.as_deref()
    }
    /// <p> If the response is truncated, SageMaker returns this token. To retrieve the next set of models, use it in the subsequent request. </p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListModelsOutput`](crate::output::ListModelsOutput).
pub mod list_models_output {

    /// A builder for [`ListModelsOutput`](crate::output::ListModelsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) models: std::option::Option<std::vec::Vec<crate::model::ModelSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `models`.
        ///
        /// To override the contents of this collection use [`set_models`](Self::set_models).
        ///
        /// <p>An array of <code>ModelSummary</code> objects, each of which lists a model.</p>
        pub fn models(mut self, input: crate::model::ModelSummary) -> Self {
            let mut v = self.models.unwrap_or_default();
            v.push(input);
            self.models = Some(v);
            self
        }
        /// <p>An array of <code>ModelSummary</code> objects, each of which lists a model.</p>
        pub fn set_models(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ModelSummary>>,
        ) -> Self {
            self.models = input;
            self
        }
        /// <p> If the response is truncated, SageMaker returns this token. To retrieve the next set of models, use it in the subsequent request. </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p> If the response is truncated, SageMaker returns this token. To retrieve the next set of models, use it in the subsequent request. </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 [`ListModelsOutput`](crate::output::ListModelsOutput).
        pub fn build(self) -> crate::output::ListModelsOutput {
            crate::output::ListModelsOutput {
                models: self.models,
                next_token: self.next_token,
            }
        }
    }
}
impl ListModelsOutput {
    /// Creates a new builder-style object to manufacture [`ListModelsOutput`](crate::output::ListModelsOutput).
    pub fn builder() -> crate::output::list_models_output::Builder {
        crate::output::list_models_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListModelQualityJobDefinitionsOutput {
    /// <p>A list of summaries of model quality monitoring job definitions.</p>
    #[doc(hidden)]
    pub job_definition_summaries:
        std::option::Option<std::vec::Vec<crate::model::MonitoringJobDefinitionSummary>>,
    /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of model quality monitoring job definitions, use it in the next request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListModelQualityJobDefinitionsOutput {
    /// <p>A list of summaries of model quality monitoring job definitions.</p>
    pub fn job_definition_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::MonitoringJobDefinitionSummary]> {
        self.job_definition_summaries.as_deref()
    }
    /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of model quality monitoring job definitions, use it in the next request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListModelQualityJobDefinitionsOutput`](crate::output::ListModelQualityJobDefinitionsOutput).
pub mod list_model_quality_job_definitions_output {

    /// A builder for [`ListModelQualityJobDefinitionsOutput`](crate::output::ListModelQualityJobDefinitionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) job_definition_summaries:
            std::option::Option<std::vec::Vec<crate::model::MonitoringJobDefinitionSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `job_definition_summaries`.
        ///
        /// To override the contents of this collection use [`set_job_definition_summaries`](Self::set_job_definition_summaries).
        ///
        /// <p>A list of summaries of model quality monitoring job definitions.</p>
        pub fn job_definition_summaries(
            mut self,
            input: crate::model::MonitoringJobDefinitionSummary,
        ) -> Self {
            let mut v = self.job_definition_summaries.unwrap_or_default();
            v.push(input);
            self.job_definition_summaries = Some(v);
            self
        }
        /// <p>A list of summaries of model quality monitoring job definitions.</p>
        pub fn set_job_definition_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::MonitoringJobDefinitionSummary>>,
        ) -> Self {
            self.job_definition_summaries = input;
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of model quality monitoring job definitions, use it in the next request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of model quality monitoring job definitions, use it in the next request.</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 [`ListModelQualityJobDefinitionsOutput`](crate::output::ListModelQualityJobDefinitionsOutput).
        pub fn build(self) -> crate::output::ListModelQualityJobDefinitionsOutput {
            crate::output::ListModelQualityJobDefinitionsOutput {
                job_definition_summaries: self.job_definition_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListModelQualityJobDefinitionsOutput {
    /// Creates a new builder-style object to manufacture [`ListModelQualityJobDefinitionsOutput`](crate::output::ListModelQualityJobDefinitionsOutput).
    pub fn builder() -> crate::output::list_model_quality_job_definitions_output::Builder {
        crate::output::list_model_quality_job_definitions_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListModelPackagesOutput {
    /// <p>An array of <code>ModelPackageSummary</code> objects, each of which lists a model package.</p>
    #[doc(hidden)]
    pub model_package_summary_list:
        std::option::Option<std::vec::Vec<crate::model::ModelPackageSummary>>,
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model packages, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListModelPackagesOutput {
    /// <p>An array of <code>ModelPackageSummary</code> objects, each of which lists a model package.</p>
    pub fn model_package_summary_list(
        &self,
    ) -> std::option::Option<&[crate::model::ModelPackageSummary]> {
        self.model_package_summary_list.as_deref()
    }
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model packages, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListModelPackagesOutput`](crate::output::ListModelPackagesOutput).
pub mod list_model_packages_output {

    /// A builder for [`ListModelPackagesOutput`](crate::output::ListModelPackagesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) model_package_summary_list:
            std::option::Option<std::vec::Vec<crate::model::ModelPackageSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `model_package_summary_list`.
        ///
        /// To override the contents of this collection use [`set_model_package_summary_list`](Self::set_model_package_summary_list).
        ///
        /// <p>An array of <code>ModelPackageSummary</code> objects, each of which lists a model package.</p>
        pub fn model_package_summary_list(
            mut self,
            input: crate::model::ModelPackageSummary,
        ) -> Self {
            let mut v = self.model_package_summary_list.unwrap_or_default();
            v.push(input);
            self.model_package_summary_list = Some(v);
            self
        }
        /// <p>An array of <code>ModelPackageSummary</code> objects, each of which lists a model package.</p>
        pub fn set_model_package_summary_list(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ModelPackageSummary>>,
        ) -> Self {
            self.model_package_summary_list = input;
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model packages, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model packages, use it in the subsequent request.</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 [`ListModelPackagesOutput`](crate::output::ListModelPackagesOutput).
        pub fn build(self) -> crate::output::ListModelPackagesOutput {
            crate::output::ListModelPackagesOutput {
                model_package_summary_list: self.model_package_summary_list,
                next_token: self.next_token,
            }
        }
    }
}
impl ListModelPackagesOutput {
    /// Creates a new builder-style object to manufacture [`ListModelPackagesOutput`](crate::output::ListModelPackagesOutput).
    pub fn builder() -> crate::output::list_model_packages_output::Builder {
        crate::output::list_model_packages_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListModelPackageGroupsOutput {
    /// <p>A list of summaries of the model groups in your Amazon Web Services account.</p>
    #[doc(hidden)]
    pub model_package_group_summary_list:
        std::option::Option<std::vec::Vec<crate::model::ModelPackageGroupSummary>>,
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model groups, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListModelPackageGroupsOutput {
    /// <p>A list of summaries of the model groups in your Amazon Web Services account.</p>
    pub fn model_package_group_summary_list(
        &self,
    ) -> std::option::Option<&[crate::model::ModelPackageGroupSummary]> {
        self.model_package_group_summary_list.as_deref()
    }
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model groups, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListModelPackageGroupsOutput`](crate::output::ListModelPackageGroupsOutput).
pub mod list_model_package_groups_output {

    /// A builder for [`ListModelPackageGroupsOutput`](crate::output::ListModelPackageGroupsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) model_package_group_summary_list:
            std::option::Option<std::vec::Vec<crate::model::ModelPackageGroupSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `model_package_group_summary_list`.
        ///
        /// To override the contents of this collection use [`set_model_package_group_summary_list`](Self::set_model_package_group_summary_list).
        ///
        /// <p>A list of summaries of the model groups in your Amazon Web Services account.</p>
        pub fn model_package_group_summary_list(
            mut self,
            input: crate::model::ModelPackageGroupSummary,
        ) -> Self {
            let mut v = self.model_package_group_summary_list.unwrap_or_default();
            v.push(input);
            self.model_package_group_summary_list = Some(v);
            self
        }
        /// <p>A list of summaries of the model groups in your Amazon Web Services account.</p>
        pub fn set_model_package_group_summary_list(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ModelPackageGroupSummary>>,
        ) -> Self {
            self.model_package_group_summary_list = input;
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model groups, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model groups, use it in the subsequent request.</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 [`ListModelPackageGroupsOutput`](crate::output::ListModelPackageGroupsOutput).
        pub fn build(self) -> crate::output::ListModelPackageGroupsOutput {
            crate::output::ListModelPackageGroupsOutput {
                model_package_group_summary_list: self.model_package_group_summary_list,
                next_token: self.next_token,
            }
        }
    }
}
impl ListModelPackageGroupsOutput {
    /// Creates a new builder-style object to manufacture [`ListModelPackageGroupsOutput`](crate::output::ListModelPackageGroupsOutput).
    pub fn builder() -> crate::output::list_model_package_groups_output::Builder {
        crate::output::list_model_package_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 ListModelMetadataOutput {
    /// <p>A structure that holds model metadata.</p>
    #[doc(hidden)]
    pub model_metadata_summaries:
        std::option::Option<std::vec::Vec<crate::model::ModelMetadataSummary>>,
    /// <p>A token for getting the next set of recommendations, if there are any.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListModelMetadataOutput {
    /// <p>A structure that holds model metadata.</p>
    pub fn model_metadata_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::ModelMetadataSummary]> {
        self.model_metadata_summaries.as_deref()
    }
    /// <p>A token for getting the next set of recommendations, if there are any.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListModelMetadataOutput`](crate::output::ListModelMetadataOutput).
pub mod list_model_metadata_output {

    /// A builder for [`ListModelMetadataOutput`](crate::output::ListModelMetadataOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) model_metadata_summaries:
            std::option::Option<std::vec::Vec<crate::model::ModelMetadataSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `model_metadata_summaries`.
        ///
        /// To override the contents of this collection use [`set_model_metadata_summaries`](Self::set_model_metadata_summaries).
        ///
        /// <p>A structure that holds model metadata.</p>
        pub fn model_metadata_summaries(
            mut self,
            input: crate::model::ModelMetadataSummary,
        ) -> Self {
            let mut v = self.model_metadata_summaries.unwrap_or_default();
            v.push(input);
            self.model_metadata_summaries = Some(v);
            self
        }
        /// <p>A structure that holds model metadata.</p>
        pub fn set_model_metadata_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ModelMetadataSummary>>,
        ) -> Self {
            self.model_metadata_summaries = input;
            self
        }
        /// <p>A token for getting the next set of recommendations, if there are any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token for getting the next set of recommendations, if there are any.</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 [`ListModelMetadataOutput`](crate::output::ListModelMetadataOutput).
        pub fn build(self) -> crate::output::ListModelMetadataOutput {
            crate::output::ListModelMetadataOutput {
                model_metadata_summaries: self.model_metadata_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListModelMetadataOutput {
    /// Creates a new builder-style object to manufacture [`ListModelMetadataOutput`](crate::output::ListModelMetadataOutput).
    pub fn builder() -> crate::output::list_model_metadata_output::Builder {
        crate::output::list_model_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 ListModelExplainabilityJobDefinitionsOutput {
    /// <p>A JSON array in which each element is a summary for a explainability bias jobs.</p>
    #[doc(hidden)]
    pub job_definition_summaries:
        std::option::Option<std::vec::Vec<crate::model::MonitoringJobDefinitionSummary>>,
    /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListModelExplainabilityJobDefinitionsOutput {
    /// <p>A JSON array in which each element is a summary for a explainability bias jobs.</p>
    pub fn job_definition_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::MonitoringJobDefinitionSummary]> {
        self.job_definition_summaries.as_deref()
    }
    /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListModelExplainabilityJobDefinitionsOutput`](crate::output::ListModelExplainabilityJobDefinitionsOutput).
pub mod list_model_explainability_job_definitions_output {

    /// A builder for [`ListModelExplainabilityJobDefinitionsOutput`](crate::output::ListModelExplainabilityJobDefinitionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) job_definition_summaries:
            std::option::Option<std::vec::Vec<crate::model::MonitoringJobDefinitionSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `job_definition_summaries`.
        ///
        /// To override the contents of this collection use [`set_job_definition_summaries`](Self::set_job_definition_summaries).
        ///
        /// <p>A JSON array in which each element is a summary for a explainability bias jobs.</p>
        pub fn job_definition_summaries(
            mut self,
            input: crate::model::MonitoringJobDefinitionSummary,
        ) -> Self {
            let mut v = self.job_definition_summaries.unwrap_or_default();
            v.push(input);
            self.job_definition_summaries = Some(v);
            self
        }
        /// <p>A JSON array in which each element is a summary for a explainability bias jobs.</p>
        pub fn set_job_definition_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::MonitoringJobDefinitionSummary>>,
        ) -> Self {
            self.job_definition_summaries = input;
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent request.</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 [`ListModelExplainabilityJobDefinitionsOutput`](crate::output::ListModelExplainabilityJobDefinitionsOutput).
        pub fn build(self) -> crate::output::ListModelExplainabilityJobDefinitionsOutput {
            crate::output::ListModelExplainabilityJobDefinitionsOutput {
                job_definition_summaries: self.job_definition_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListModelExplainabilityJobDefinitionsOutput {
    /// Creates a new builder-style object to manufacture [`ListModelExplainabilityJobDefinitionsOutput`](crate::output::ListModelExplainabilityJobDefinitionsOutput).
    pub fn builder() -> crate::output::list_model_explainability_job_definitions_output::Builder {
        crate::output::list_model_explainability_job_definitions_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListModelCardVersionsOutput {
    /// <p>The summaries of the listed versions of the model card.</p>
    #[doc(hidden)]
    pub model_card_version_summary_list:
        std::option::Option<std::vec::Vec<crate::model::ModelCardVersionSummary>>,
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model card versions, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListModelCardVersionsOutput {
    /// <p>The summaries of the listed versions of the model card.</p>
    pub fn model_card_version_summary_list(
        &self,
    ) -> std::option::Option<&[crate::model::ModelCardVersionSummary]> {
        self.model_card_version_summary_list.as_deref()
    }
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model card versions, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListModelCardVersionsOutput`](crate::output::ListModelCardVersionsOutput).
pub mod list_model_card_versions_output {

    /// A builder for [`ListModelCardVersionsOutput`](crate::output::ListModelCardVersionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) model_card_version_summary_list:
            std::option::Option<std::vec::Vec<crate::model::ModelCardVersionSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `model_card_version_summary_list`.
        ///
        /// To override the contents of this collection use [`set_model_card_version_summary_list`](Self::set_model_card_version_summary_list).
        ///
        /// <p>The summaries of the listed versions of the model card.</p>
        pub fn model_card_version_summary_list(
            mut self,
            input: crate::model::ModelCardVersionSummary,
        ) -> Self {
            let mut v = self.model_card_version_summary_list.unwrap_or_default();
            v.push(input);
            self.model_card_version_summary_list = Some(v);
            self
        }
        /// <p>The summaries of the listed versions of the model card.</p>
        pub fn set_model_card_version_summary_list(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ModelCardVersionSummary>>,
        ) -> Self {
            self.model_card_version_summary_list = input;
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model card versions, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model card versions, use it in the subsequent request.</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 [`ListModelCardVersionsOutput`](crate::output::ListModelCardVersionsOutput).
        pub fn build(self) -> crate::output::ListModelCardVersionsOutput {
            crate::output::ListModelCardVersionsOutput {
                model_card_version_summary_list: self.model_card_version_summary_list,
                next_token: self.next_token,
            }
        }
    }
}
impl ListModelCardVersionsOutput {
    /// Creates a new builder-style object to manufacture [`ListModelCardVersionsOutput`](crate::output::ListModelCardVersionsOutput).
    pub fn builder() -> crate::output::list_model_card_versions_output::Builder {
        crate::output::list_model_card_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 ListModelCardsOutput {
    /// <p>The summaries of the listed model cards.</p>
    #[doc(hidden)]
    pub model_card_summaries: std::option::Option<std::vec::Vec<crate::model::ModelCardSummary>>,
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model cards, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListModelCardsOutput {
    /// <p>The summaries of the listed model cards.</p>
    pub fn model_card_summaries(&self) -> std::option::Option<&[crate::model::ModelCardSummary]> {
        self.model_card_summaries.as_deref()
    }
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model cards, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListModelCardsOutput`](crate::output::ListModelCardsOutput).
pub mod list_model_cards_output {

    /// A builder for [`ListModelCardsOutput`](crate::output::ListModelCardsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) model_card_summaries:
            std::option::Option<std::vec::Vec<crate::model::ModelCardSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `model_card_summaries`.
        ///
        /// To override the contents of this collection use [`set_model_card_summaries`](Self::set_model_card_summaries).
        ///
        /// <p>The summaries of the listed model cards.</p>
        pub fn model_card_summaries(mut self, input: crate::model::ModelCardSummary) -> Self {
            let mut v = self.model_card_summaries.unwrap_or_default();
            v.push(input);
            self.model_card_summaries = Some(v);
            self
        }
        /// <p>The summaries of the listed model cards.</p>
        pub fn set_model_card_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ModelCardSummary>>,
        ) -> Self {
            self.model_card_summaries = input;
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model cards, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model cards, use it in the subsequent request.</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 [`ListModelCardsOutput`](crate::output::ListModelCardsOutput).
        pub fn build(self) -> crate::output::ListModelCardsOutput {
            crate::output::ListModelCardsOutput {
                model_card_summaries: self.model_card_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListModelCardsOutput {
    /// Creates a new builder-style object to manufacture [`ListModelCardsOutput`](crate::output::ListModelCardsOutput).
    pub fn builder() -> crate::output::list_model_cards_output::Builder {
        crate::output::list_model_cards_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListModelCardExportJobsOutput {
    /// <p>The summaries of the listed model card export jobs.</p>
    #[doc(hidden)]
    pub model_card_export_job_summaries:
        std::option::Option<std::vec::Vec<crate::model::ModelCardExportJobSummary>>,
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model card export jobs, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListModelCardExportJobsOutput {
    /// <p>The summaries of the listed model card export jobs.</p>
    pub fn model_card_export_job_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::ModelCardExportJobSummary]> {
        self.model_card_export_job_summaries.as_deref()
    }
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model card export jobs, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListModelCardExportJobsOutput`](crate::output::ListModelCardExportJobsOutput).
pub mod list_model_card_export_jobs_output {

    /// A builder for [`ListModelCardExportJobsOutput`](crate::output::ListModelCardExportJobsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) model_card_export_job_summaries:
            std::option::Option<std::vec::Vec<crate::model::ModelCardExportJobSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `model_card_export_job_summaries`.
        ///
        /// To override the contents of this collection use [`set_model_card_export_job_summaries`](Self::set_model_card_export_job_summaries).
        ///
        /// <p>The summaries of the listed model card export jobs.</p>
        pub fn model_card_export_job_summaries(
            mut self,
            input: crate::model::ModelCardExportJobSummary,
        ) -> Self {
            let mut v = self.model_card_export_job_summaries.unwrap_or_default();
            v.push(input);
            self.model_card_export_job_summaries = Some(v);
            self
        }
        /// <p>The summaries of the listed model card export jobs.</p>
        pub fn set_model_card_export_job_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ModelCardExportJobSummary>>,
        ) -> Self {
            self.model_card_export_job_summaries = input;
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model card export jobs, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of model card export jobs, use it in the subsequent request.</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 [`ListModelCardExportJobsOutput`](crate::output::ListModelCardExportJobsOutput).
        pub fn build(self) -> crate::output::ListModelCardExportJobsOutput {
            crate::output::ListModelCardExportJobsOutput {
                model_card_export_job_summaries: self.model_card_export_job_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListModelCardExportJobsOutput {
    /// Creates a new builder-style object to manufacture [`ListModelCardExportJobsOutput`](crate::output::ListModelCardExportJobsOutput).
    pub fn builder() -> crate::output::list_model_card_export_jobs_output::Builder {
        crate::output::list_model_card_export_jobs_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListModelBiasJobDefinitionsOutput {
    /// <p>A JSON array in which each element is a summary for a model bias jobs.</p>
    #[doc(hidden)]
    pub job_definition_summaries:
        std::option::Option<std::vec::Vec<crate::model::MonitoringJobDefinitionSummary>>,
    /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListModelBiasJobDefinitionsOutput {
    /// <p>A JSON array in which each element is a summary for a model bias jobs.</p>
    pub fn job_definition_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::MonitoringJobDefinitionSummary]> {
        self.job_definition_summaries.as_deref()
    }
    /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListModelBiasJobDefinitionsOutput`](crate::output::ListModelBiasJobDefinitionsOutput).
pub mod list_model_bias_job_definitions_output {

    /// A builder for [`ListModelBiasJobDefinitionsOutput`](crate::output::ListModelBiasJobDefinitionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) job_definition_summaries:
            std::option::Option<std::vec::Vec<crate::model::MonitoringJobDefinitionSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `job_definition_summaries`.
        ///
        /// To override the contents of this collection use [`set_job_definition_summaries`](Self::set_job_definition_summaries).
        ///
        /// <p>A JSON array in which each element is a summary for a model bias jobs.</p>
        pub fn job_definition_summaries(
            mut self,
            input: crate::model::MonitoringJobDefinitionSummary,
        ) -> Self {
            let mut v = self.job_definition_summaries.unwrap_or_default();
            v.push(input);
            self.job_definition_summaries = Some(v);
            self
        }
        /// <p>A JSON array in which each element is a summary for a model bias jobs.</p>
        pub fn set_job_definition_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::MonitoringJobDefinitionSummary>>,
        ) -> Self {
            self.job_definition_summaries = input;
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent request.</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 [`ListModelBiasJobDefinitionsOutput`](crate::output::ListModelBiasJobDefinitionsOutput).
        pub fn build(self) -> crate::output::ListModelBiasJobDefinitionsOutput {
            crate::output::ListModelBiasJobDefinitionsOutput {
                job_definition_summaries: self.job_definition_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListModelBiasJobDefinitionsOutput {
    /// Creates a new builder-style object to manufacture [`ListModelBiasJobDefinitionsOutput`](crate::output::ListModelBiasJobDefinitionsOutput).
    pub fn builder() -> crate::output::list_model_bias_job_definitions_output::Builder {
        crate::output::list_model_bias_job_definitions_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListLineageGroupsOutput {
    /// <p>A list of lineage groups and their properties.</p>
    #[doc(hidden)]
    pub lineage_group_summaries:
        std::option::Option<std::vec::Vec<crate::model::LineageGroupSummary>>,
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of algorithms, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListLineageGroupsOutput {
    /// <p>A list of lineage groups and their properties.</p>
    pub fn lineage_group_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::LineageGroupSummary]> {
        self.lineage_group_summaries.as_deref()
    }
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of algorithms, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListLineageGroupsOutput`](crate::output::ListLineageGroupsOutput).
pub mod list_lineage_groups_output {

    /// A builder for [`ListLineageGroupsOutput`](crate::output::ListLineageGroupsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) lineage_group_summaries:
            std::option::Option<std::vec::Vec<crate::model::LineageGroupSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `lineage_group_summaries`.
        ///
        /// To override the contents of this collection use [`set_lineage_group_summaries`](Self::set_lineage_group_summaries).
        ///
        /// <p>A list of lineage groups and their properties.</p>
        pub fn lineage_group_summaries(mut self, input: crate::model::LineageGroupSummary) -> Self {
            let mut v = self.lineage_group_summaries.unwrap_or_default();
            v.push(input);
            self.lineage_group_summaries = Some(v);
            self
        }
        /// <p>A list of lineage groups and their properties.</p>
        pub fn set_lineage_group_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::LineageGroupSummary>>,
        ) -> Self {
            self.lineage_group_summaries = input;
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of algorithms, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of algorithms, use it in the subsequent request.</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 [`ListLineageGroupsOutput`](crate::output::ListLineageGroupsOutput).
        pub fn build(self) -> crate::output::ListLineageGroupsOutput {
            crate::output::ListLineageGroupsOutput {
                lineage_group_summaries: self.lineage_group_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListLineageGroupsOutput {
    /// Creates a new builder-style object to manufacture [`ListLineageGroupsOutput`](crate::output::ListLineageGroupsOutput).
    pub fn builder() -> crate::output::list_lineage_groups_output::Builder {
        crate::output::list_lineage_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 ListLabelingJobsForWorkteamOutput {
    /// <p>An array of <code>LabelingJobSummary</code> objects, each describing a labeling job.</p>
    #[doc(hidden)]
    pub labeling_job_summary_list:
        std::option::Option<std::vec::Vec<crate::model::LabelingJobForWorkteamSummary>>,
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of labeling jobs, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListLabelingJobsForWorkteamOutput {
    /// <p>An array of <code>LabelingJobSummary</code> objects, each describing a labeling job.</p>
    pub fn labeling_job_summary_list(
        &self,
    ) -> std::option::Option<&[crate::model::LabelingJobForWorkteamSummary]> {
        self.labeling_job_summary_list.as_deref()
    }
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of labeling jobs, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListLabelingJobsForWorkteamOutput`](crate::output::ListLabelingJobsForWorkteamOutput).
pub mod list_labeling_jobs_for_workteam_output {

    /// A builder for [`ListLabelingJobsForWorkteamOutput`](crate::output::ListLabelingJobsForWorkteamOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) labeling_job_summary_list:
            std::option::Option<std::vec::Vec<crate::model::LabelingJobForWorkteamSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `labeling_job_summary_list`.
        ///
        /// To override the contents of this collection use [`set_labeling_job_summary_list`](Self::set_labeling_job_summary_list).
        ///
        /// <p>An array of <code>LabelingJobSummary</code> objects, each describing a labeling job.</p>
        pub fn labeling_job_summary_list(
            mut self,
            input: crate::model::LabelingJobForWorkteamSummary,
        ) -> Self {
            let mut v = self.labeling_job_summary_list.unwrap_or_default();
            v.push(input);
            self.labeling_job_summary_list = Some(v);
            self
        }
        /// <p>An array of <code>LabelingJobSummary</code> objects, each describing a labeling job.</p>
        pub fn set_labeling_job_summary_list(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::LabelingJobForWorkteamSummary>>,
        ) -> Self {
            self.labeling_job_summary_list = input;
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of labeling jobs, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of labeling jobs, use it in the subsequent request.</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 [`ListLabelingJobsForWorkteamOutput`](crate::output::ListLabelingJobsForWorkteamOutput).
        pub fn build(self) -> crate::output::ListLabelingJobsForWorkteamOutput {
            crate::output::ListLabelingJobsForWorkteamOutput {
                labeling_job_summary_list: self.labeling_job_summary_list,
                next_token: self.next_token,
            }
        }
    }
}
impl ListLabelingJobsForWorkteamOutput {
    /// Creates a new builder-style object to manufacture [`ListLabelingJobsForWorkteamOutput`](crate::output::ListLabelingJobsForWorkteamOutput).
    pub fn builder() -> crate::output::list_labeling_jobs_for_workteam_output::Builder {
        crate::output::list_labeling_jobs_for_workteam_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListLabelingJobsOutput {
    /// <p>An array of <code>LabelingJobSummary</code> objects, each describing a labeling job.</p>
    #[doc(hidden)]
    pub labeling_job_summary_list:
        std::option::Option<std::vec::Vec<crate::model::LabelingJobSummary>>,
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of labeling jobs, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListLabelingJobsOutput {
    /// <p>An array of <code>LabelingJobSummary</code> objects, each describing a labeling job.</p>
    pub fn labeling_job_summary_list(
        &self,
    ) -> std::option::Option<&[crate::model::LabelingJobSummary]> {
        self.labeling_job_summary_list.as_deref()
    }
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of labeling jobs, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListLabelingJobsOutput`](crate::output::ListLabelingJobsOutput).
pub mod list_labeling_jobs_output {

    /// A builder for [`ListLabelingJobsOutput`](crate::output::ListLabelingJobsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) labeling_job_summary_list:
            std::option::Option<std::vec::Vec<crate::model::LabelingJobSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `labeling_job_summary_list`.
        ///
        /// To override the contents of this collection use [`set_labeling_job_summary_list`](Self::set_labeling_job_summary_list).
        ///
        /// <p>An array of <code>LabelingJobSummary</code> objects, each describing a labeling job.</p>
        pub fn labeling_job_summary_list(
            mut self,
            input: crate::model::LabelingJobSummary,
        ) -> Self {
            let mut v = self.labeling_job_summary_list.unwrap_or_default();
            v.push(input);
            self.labeling_job_summary_list = Some(v);
            self
        }
        /// <p>An array of <code>LabelingJobSummary</code> objects, each describing a labeling job.</p>
        pub fn set_labeling_job_summary_list(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::LabelingJobSummary>>,
        ) -> Self {
            self.labeling_job_summary_list = input;
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of labeling jobs, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of labeling jobs, use it in the subsequent request.</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 [`ListLabelingJobsOutput`](crate::output::ListLabelingJobsOutput).
        pub fn build(self) -> crate::output::ListLabelingJobsOutput {
            crate::output::ListLabelingJobsOutput {
                labeling_job_summary_list: self.labeling_job_summary_list,
                next_token: self.next_token,
            }
        }
    }
}
impl ListLabelingJobsOutput {
    /// Creates a new builder-style object to manufacture [`ListLabelingJobsOutput`](crate::output::ListLabelingJobsOutput).
    pub fn builder() -> crate::output::list_labeling_jobs_output::Builder {
        crate::output::list_labeling_jobs_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListInferenceRecommendationsJobStepsOutput {
    /// <p>A list of all subtask details in Inference Recommender.</p>
    #[doc(hidden)]
    pub steps: std::option::Option<std::vec::Vec<crate::model::InferenceRecommendationsJobStep>>,
    /// <p>A token that you can specify in your next request to return more results from the list.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListInferenceRecommendationsJobStepsOutput {
    /// <p>A list of all subtask details in Inference Recommender.</p>
    pub fn steps(&self) -> std::option::Option<&[crate::model::InferenceRecommendationsJobStep]> {
        self.steps.as_deref()
    }
    /// <p>A token that you can specify in your next request to return more results from the list.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListInferenceRecommendationsJobStepsOutput`](crate::output::ListInferenceRecommendationsJobStepsOutput).
pub mod list_inference_recommendations_job_steps_output {

    /// A builder for [`ListInferenceRecommendationsJobStepsOutput`](crate::output::ListInferenceRecommendationsJobStepsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) steps:
            std::option::Option<std::vec::Vec<crate::model::InferenceRecommendationsJobStep>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `steps`.
        ///
        /// To override the contents of this collection use [`set_steps`](Self::set_steps).
        ///
        /// <p>A list of all subtask details in Inference Recommender.</p>
        pub fn steps(mut self, input: crate::model::InferenceRecommendationsJobStep) -> Self {
            let mut v = self.steps.unwrap_or_default();
            v.push(input);
            self.steps = Some(v);
            self
        }
        /// <p>A list of all subtask details in Inference Recommender.</p>
        pub fn set_steps(
            mut self,
            input: std::option::Option<
                std::vec::Vec<crate::model::InferenceRecommendationsJobStep>,
            >,
        ) -> Self {
            self.steps = input;
            self
        }
        /// <p>A token that you can specify in your next request to return more results from the list.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token that you can specify in your next request to return more results from the list.</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 [`ListInferenceRecommendationsJobStepsOutput`](crate::output::ListInferenceRecommendationsJobStepsOutput).
        pub fn build(self) -> crate::output::ListInferenceRecommendationsJobStepsOutput {
            crate::output::ListInferenceRecommendationsJobStepsOutput {
                steps: self.steps,
                next_token: self.next_token,
            }
        }
    }
}
impl ListInferenceRecommendationsJobStepsOutput {
    /// Creates a new builder-style object to manufacture [`ListInferenceRecommendationsJobStepsOutput`](crate::output::ListInferenceRecommendationsJobStepsOutput).
    pub fn builder() -> crate::output::list_inference_recommendations_job_steps_output::Builder {
        crate::output::list_inference_recommendations_job_steps_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListInferenceRecommendationsJobsOutput {
    /// <p>The recommendations created from the Amazon SageMaker Inference Recommender job.</p>
    #[doc(hidden)]
    pub inference_recommendations_jobs:
        std::option::Option<std::vec::Vec<crate::model::InferenceRecommendationsJob>>,
    /// <p>A token for getting the next set of recommendations, if there are any.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListInferenceRecommendationsJobsOutput {
    /// <p>The recommendations created from the Amazon SageMaker Inference Recommender job.</p>
    pub fn inference_recommendations_jobs(
        &self,
    ) -> std::option::Option<&[crate::model::InferenceRecommendationsJob]> {
        self.inference_recommendations_jobs.as_deref()
    }
    /// <p>A token for getting the next set of recommendations, if there are any.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListInferenceRecommendationsJobsOutput`](crate::output::ListInferenceRecommendationsJobsOutput).
pub mod list_inference_recommendations_jobs_output {

    /// A builder for [`ListInferenceRecommendationsJobsOutput`](crate::output::ListInferenceRecommendationsJobsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) inference_recommendations_jobs:
            std::option::Option<std::vec::Vec<crate::model::InferenceRecommendationsJob>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `inference_recommendations_jobs`.
        ///
        /// To override the contents of this collection use [`set_inference_recommendations_jobs`](Self::set_inference_recommendations_jobs).
        ///
        /// <p>The recommendations created from the Amazon SageMaker Inference Recommender job.</p>
        pub fn inference_recommendations_jobs(
            mut self,
            input: crate::model::InferenceRecommendationsJob,
        ) -> Self {
            let mut v = self.inference_recommendations_jobs.unwrap_or_default();
            v.push(input);
            self.inference_recommendations_jobs = Some(v);
            self
        }
        /// <p>The recommendations created from the Amazon SageMaker Inference Recommender job.</p>
        pub fn set_inference_recommendations_jobs(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::InferenceRecommendationsJob>>,
        ) -> Self {
            self.inference_recommendations_jobs = input;
            self
        }
        /// <p>A token for getting the next set of recommendations, if there are any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token for getting the next set of recommendations, if there are any.</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 [`ListInferenceRecommendationsJobsOutput`](crate::output::ListInferenceRecommendationsJobsOutput).
        pub fn build(self) -> crate::output::ListInferenceRecommendationsJobsOutput {
            crate::output::ListInferenceRecommendationsJobsOutput {
                inference_recommendations_jobs: self.inference_recommendations_jobs,
                next_token: self.next_token,
            }
        }
    }
}
impl ListInferenceRecommendationsJobsOutput {
    /// Creates a new builder-style object to manufacture [`ListInferenceRecommendationsJobsOutput`](crate::output::ListInferenceRecommendationsJobsOutput).
    pub fn builder() -> crate::output::list_inference_recommendations_jobs_output::Builder {
        crate::output::list_inference_recommendations_jobs_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListInferenceExperimentsOutput {
    /// <p>List of inference experiments.</p>
    #[doc(hidden)]
    pub inference_experiments:
        std::option::Option<std::vec::Vec<crate::model::InferenceExperimentSummary>>,
    /// <p>The token to use when calling the next page of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListInferenceExperimentsOutput {
    /// <p>List of inference experiments.</p>
    pub fn inference_experiments(
        &self,
    ) -> std::option::Option<&[crate::model::InferenceExperimentSummary]> {
        self.inference_experiments.as_deref()
    }
    /// <p>The token to use when calling the next page of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListInferenceExperimentsOutput`](crate::output::ListInferenceExperimentsOutput).
pub mod list_inference_experiments_output {

    /// A builder for [`ListInferenceExperimentsOutput`](crate::output::ListInferenceExperimentsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) inference_experiments:
            std::option::Option<std::vec::Vec<crate::model::InferenceExperimentSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `inference_experiments`.
        ///
        /// To override the contents of this collection use [`set_inference_experiments`](Self::set_inference_experiments).
        ///
        /// <p>List of inference experiments.</p>
        pub fn inference_experiments(
            mut self,
            input: crate::model::InferenceExperimentSummary,
        ) -> Self {
            let mut v = self.inference_experiments.unwrap_or_default();
            v.push(input);
            self.inference_experiments = Some(v);
            self
        }
        /// <p>List of inference experiments.</p>
        pub fn set_inference_experiments(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::InferenceExperimentSummary>>,
        ) -> Self {
            self.inference_experiments = input;
            self
        }
        /// <p>The token to use when calling the next page of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token to use when calling the next page of results.</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 [`ListInferenceExperimentsOutput`](crate::output::ListInferenceExperimentsOutput).
        pub fn build(self) -> crate::output::ListInferenceExperimentsOutput {
            crate::output::ListInferenceExperimentsOutput {
                inference_experiments: self.inference_experiments,
                next_token: self.next_token,
            }
        }
    }
}
impl ListInferenceExperimentsOutput {
    /// Creates a new builder-style object to manufacture [`ListInferenceExperimentsOutput`](crate::output::ListInferenceExperimentsOutput).
    pub fn builder() -> crate::output::list_inference_experiments_output::Builder {
        crate::output::list_inference_experiments_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListImageVersionsOutput {
    /// <p>A list of versions and their properties.</p>
    #[doc(hidden)]
    pub image_versions: std::option::Option<std::vec::Vec<crate::model::ImageVersion>>,
    /// <p>A token for getting the next set of versions, if there are any.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListImageVersionsOutput {
    /// <p>A list of versions and their properties.</p>
    pub fn image_versions(&self) -> std::option::Option<&[crate::model::ImageVersion]> {
        self.image_versions.as_deref()
    }
    /// <p>A token for getting the next set of versions, if there are any.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListImageVersionsOutput`](crate::output::ListImageVersionsOutput).
pub mod list_image_versions_output {

    /// A builder for [`ListImageVersionsOutput`](crate::output::ListImageVersionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) image_versions: std::option::Option<std::vec::Vec<crate::model::ImageVersion>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `image_versions`.
        ///
        /// To override the contents of this collection use [`set_image_versions`](Self::set_image_versions).
        ///
        /// <p>A list of versions and their properties.</p>
        pub fn image_versions(mut self, input: crate::model::ImageVersion) -> Self {
            let mut v = self.image_versions.unwrap_or_default();
            v.push(input);
            self.image_versions = Some(v);
            self
        }
        /// <p>A list of versions and their properties.</p>
        pub fn set_image_versions(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ImageVersion>>,
        ) -> Self {
            self.image_versions = input;
            self
        }
        /// <p>A token for getting the next set of versions, if there are any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token for getting the next set of versions, if there are any.</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 [`ListImageVersionsOutput`](crate::output::ListImageVersionsOutput).
        pub fn build(self) -> crate::output::ListImageVersionsOutput {
            crate::output::ListImageVersionsOutput {
                image_versions: self.image_versions,
                next_token: self.next_token,
            }
        }
    }
}
impl ListImageVersionsOutput {
    /// Creates a new builder-style object to manufacture [`ListImageVersionsOutput`](crate::output::ListImageVersionsOutput).
    pub fn builder() -> crate::output::list_image_versions_output::Builder {
        crate::output::list_image_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 ListImagesOutput {
    /// <p>A list of images and their properties.</p>
    #[doc(hidden)]
    pub images: std::option::Option<std::vec::Vec<crate::model::Image>>,
    /// <p>A token for getting the next set of images, if there are any.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListImagesOutput {
    /// <p>A list of images and their properties.</p>
    pub fn images(&self) -> std::option::Option<&[crate::model::Image]> {
        self.images.as_deref()
    }
    /// <p>A token for getting the next set of images, if there are any.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListImagesOutput`](crate::output::ListImagesOutput).
pub mod list_images_output {

    /// A builder for [`ListImagesOutput`](crate::output::ListImagesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) images: std::option::Option<std::vec::Vec<crate::model::Image>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `images`.
        ///
        /// To override the contents of this collection use [`set_images`](Self::set_images).
        ///
        /// <p>A list of images and their properties.</p>
        pub fn images(mut self, input: crate::model::Image) -> Self {
            let mut v = self.images.unwrap_or_default();
            v.push(input);
            self.images = Some(v);
            self
        }
        /// <p>A list of images and their properties.</p>
        pub fn set_images(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Image>>,
        ) -> Self {
            self.images = input;
            self
        }
        /// <p>A token for getting the next set of images, if there are any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token for getting the next set of images, if there are any.</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 [`ListImagesOutput`](crate::output::ListImagesOutput).
        pub fn build(self) -> crate::output::ListImagesOutput {
            crate::output::ListImagesOutput {
                images: self.images,
                next_token: self.next_token,
            }
        }
    }
}
impl ListImagesOutput {
    /// Creates a new builder-style object to manufacture [`ListImagesOutput`](crate::output::ListImagesOutput).
    pub fn builder() -> crate::output::list_images_output::Builder {
        crate::output::list_images_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListHyperParameterTuningJobsOutput {
    /// <p>A list of <code>HyperParameterTuningJobSummary</code> objects that describe the tuning jobs that the <code>ListHyperParameterTuningJobs</code> request returned.</p>
    #[doc(hidden)]
    pub hyper_parameter_tuning_job_summaries:
        std::option::Option<std::vec::Vec<crate::model::HyperParameterTuningJobSummary>>,
    /// <p>If the result of this <code>ListHyperParameterTuningJobs</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of tuning jobs, use the token in the next request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListHyperParameterTuningJobsOutput {
    /// <p>A list of <code>HyperParameterTuningJobSummary</code> objects that describe the tuning jobs that the <code>ListHyperParameterTuningJobs</code> request returned.</p>
    pub fn hyper_parameter_tuning_job_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::HyperParameterTuningJobSummary]> {
        self.hyper_parameter_tuning_job_summaries.as_deref()
    }
    /// <p>If the result of this <code>ListHyperParameterTuningJobs</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of tuning jobs, use the token in the next request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListHyperParameterTuningJobsOutput`](crate::output::ListHyperParameterTuningJobsOutput).
pub mod list_hyper_parameter_tuning_jobs_output {

    /// A builder for [`ListHyperParameterTuningJobsOutput`](crate::output::ListHyperParameterTuningJobsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) hyper_parameter_tuning_job_summaries:
            std::option::Option<std::vec::Vec<crate::model::HyperParameterTuningJobSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `hyper_parameter_tuning_job_summaries`.
        ///
        /// To override the contents of this collection use [`set_hyper_parameter_tuning_job_summaries`](Self::set_hyper_parameter_tuning_job_summaries).
        ///
        /// <p>A list of <code>HyperParameterTuningJobSummary</code> objects that describe the tuning jobs that the <code>ListHyperParameterTuningJobs</code> request returned.</p>
        pub fn hyper_parameter_tuning_job_summaries(
            mut self,
            input: crate::model::HyperParameterTuningJobSummary,
        ) -> Self {
            let mut v = self
                .hyper_parameter_tuning_job_summaries
                .unwrap_or_default();
            v.push(input);
            self.hyper_parameter_tuning_job_summaries = Some(v);
            self
        }
        /// <p>A list of <code>HyperParameterTuningJobSummary</code> objects that describe the tuning jobs that the <code>ListHyperParameterTuningJobs</code> request returned.</p>
        pub fn set_hyper_parameter_tuning_job_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::HyperParameterTuningJobSummary>>,
        ) -> Self {
            self.hyper_parameter_tuning_job_summaries = input;
            self
        }
        /// <p>If the result of this <code>ListHyperParameterTuningJobs</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of tuning jobs, use the token in the next request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the result of this <code>ListHyperParameterTuningJobs</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of tuning jobs, use the token in the next request.</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 [`ListHyperParameterTuningJobsOutput`](crate::output::ListHyperParameterTuningJobsOutput).
        pub fn build(self) -> crate::output::ListHyperParameterTuningJobsOutput {
            crate::output::ListHyperParameterTuningJobsOutput {
                hyper_parameter_tuning_job_summaries: self.hyper_parameter_tuning_job_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListHyperParameterTuningJobsOutput {
    /// Creates a new builder-style object to manufacture [`ListHyperParameterTuningJobsOutput`](crate::output::ListHyperParameterTuningJobsOutput).
    pub fn builder() -> crate::output::list_hyper_parameter_tuning_jobs_output::Builder {
        crate::output::list_hyper_parameter_tuning_jobs_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListHumanTaskUisOutput {
    /// <p>An array of objects describing the human task user interfaces.</p>
    #[doc(hidden)]
    pub human_task_ui_summaries:
        std::option::Option<std::vec::Vec<crate::model::HumanTaskUiSummary>>,
    /// <p>A token to resume pagination.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListHumanTaskUisOutput {
    /// <p>An array of objects describing the human task user interfaces.</p>
    pub fn human_task_ui_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::HumanTaskUiSummary]> {
        self.human_task_ui_summaries.as_deref()
    }
    /// <p>A token to resume pagination.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListHumanTaskUisOutput`](crate::output::ListHumanTaskUisOutput).
pub mod list_human_task_uis_output {

    /// A builder for [`ListHumanTaskUisOutput`](crate::output::ListHumanTaskUisOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) human_task_ui_summaries:
            std::option::Option<std::vec::Vec<crate::model::HumanTaskUiSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `human_task_ui_summaries`.
        ///
        /// To override the contents of this collection use [`set_human_task_ui_summaries`](Self::set_human_task_ui_summaries).
        ///
        /// <p>An array of objects describing the human task user interfaces.</p>
        pub fn human_task_ui_summaries(mut self, input: crate::model::HumanTaskUiSummary) -> Self {
            let mut v = self.human_task_ui_summaries.unwrap_or_default();
            v.push(input);
            self.human_task_ui_summaries = Some(v);
            self
        }
        /// <p>An array of objects describing the human task user interfaces.</p>
        pub fn set_human_task_ui_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::HumanTaskUiSummary>>,
        ) -> Self {
            self.human_task_ui_summaries = input;
            self
        }
        /// <p>A token to resume pagination.</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 resume pagination.</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 [`ListHumanTaskUisOutput`](crate::output::ListHumanTaskUisOutput).
        pub fn build(self) -> crate::output::ListHumanTaskUisOutput {
            crate::output::ListHumanTaskUisOutput {
                human_task_ui_summaries: self.human_task_ui_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListHumanTaskUisOutput {
    /// Creates a new builder-style object to manufacture [`ListHumanTaskUisOutput`](crate::output::ListHumanTaskUisOutput).
    pub fn builder() -> crate::output::list_human_task_uis_output::Builder {
        crate::output::list_human_task_uis_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListHubsOutput {
    /// <p>The summaries of the listed hubs.</p>
    #[doc(hidden)]
    pub hub_summaries: std::option::Option<std::vec::Vec<crate::model::HubInfo>>,
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of hubs, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListHubsOutput {
    /// <p>The summaries of the listed hubs.</p>
    pub fn hub_summaries(&self) -> std::option::Option<&[crate::model::HubInfo]> {
        self.hub_summaries.as_deref()
    }
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of hubs, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListHubsOutput`](crate::output::ListHubsOutput).
pub mod list_hubs_output {

    /// A builder for [`ListHubsOutput`](crate::output::ListHubsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) hub_summaries: std::option::Option<std::vec::Vec<crate::model::HubInfo>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `hub_summaries`.
        ///
        /// To override the contents of this collection use [`set_hub_summaries`](Self::set_hub_summaries).
        ///
        /// <p>The summaries of the listed hubs.</p>
        pub fn hub_summaries(mut self, input: crate::model::HubInfo) -> Self {
            let mut v = self.hub_summaries.unwrap_or_default();
            v.push(input);
            self.hub_summaries = Some(v);
            self
        }
        /// <p>The summaries of the listed hubs.</p>
        pub fn set_hub_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::HubInfo>>,
        ) -> Self {
            self.hub_summaries = input;
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of hubs, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of hubs, use it in the subsequent request.</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 [`ListHubsOutput`](crate::output::ListHubsOutput).
        pub fn build(self) -> crate::output::ListHubsOutput {
            crate::output::ListHubsOutput {
                hub_summaries: self.hub_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListHubsOutput {
    /// Creates a new builder-style object to manufacture [`ListHubsOutput`](crate::output::ListHubsOutput).
    pub fn builder() -> crate::output::list_hubs_output::Builder {
        crate::output::list_hubs_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListHubContentVersionsOutput {
    /// <p>The summaries of the listed hub content versions.</p>
    #[doc(hidden)]
    pub hub_content_summaries: std::option::Option<std::vec::Vec<crate::model::HubContentInfo>>,
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of hub content versions, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListHubContentVersionsOutput {
    /// <p>The summaries of the listed hub content versions.</p>
    pub fn hub_content_summaries(&self) -> std::option::Option<&[crate::model::HubContentInfo]> {
        self.hub_content_summaries.as_deref()
    }
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of hub content versions, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListHubContentVersionsOutput`](crate::output::ListHubContentVersionsOutput).
pub mod list_hub_content_versions_output {

    /// A builder for [`ListHubContentVersionsOutput`](crate::output::ListHubContentVersionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) hub_content_summaries:
            std::option::Option<std::vec::Vec<crate::model::HubContentInfo>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `hub_content_summaries`.
        ///
        /// To override the contents of this collection use [`set_hub_content_summaries`](Self::set_hub_content_summaries).
        ///
        /// <p>The summaries of the listed hub content versions.</p>
        pub fn hub_content_summaries(mut self, input: crate::model::HubContentInfo) -> Self {
            let mut v = self.hub_content_summaries.unwrap_or_default();
            v.push(input);
            self.hub_content_summaries = Some(v);
            self
        }
        /// <p>The summaries of the listed hub content versions.</p>
        pub fn set_hub_content_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::HubContentInfo>>,
        ) -> Self {
            self.hub_content_summaries = input;
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of hub content versions, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of hub content versions, use it in the subsequent request.</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 [`ListHubContentVersionsOutput`](crate::output::ListHubContentVersionsOutput).
        pub fn build(self) -> crate::output::ListHubContentVersionsOutput {
            crate::output::ListHubContentVersionsOutput {
                hub_content_summaries: self.hub_content_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListHubContentVersionsOutput {
    /// Creates a new builder-style object to manufacture [`ListHubContentVersionsOutput`](crate::output::ListHubContentVersionsOutput).
    pub fn builder() -> crate::output::list_hub_content_versions_output::Builder {
        crate::output::list_hub_content_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 ListHubContentsOutput {
    /// <p>The summaries of the listed hub content.</p>
    #[doc(hidden)]
    pub hub_content_summaries: std::option::Option<std::vec::Vec<crate::model::HubContentInfo>>,
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of hub content, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListHubContentsOutput {
    /// <p>The summaries of the listed hub content.</p>
    pub fn hub_content_summaries(&self) -> std::option::Option<&[crate::model::HubContentInfo]> {
        self.hub_content_summaries.as_deref()
    }
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of hub content, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListHubContentsOutput`](crate::output::ListHubContentsOutput).
pub mod list_hub_contents_output {

    /// A builder for [`ListHubContentsOutput`](crate::output::ListHubContentsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) hub_content_summaries:
            std::option::Option<std::vec::Vec<crate::model::HubContentInfo>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `hub_content_summaries`.
        ///
        /// To override the contents of this collection use [`set_hub_content_summaries`](Self::set_hub_content_summaries).
        ///
        /// <p>The summaries of the listed hub content.</p>
        pub fn hub_content_summaries(mut self, input: crate::model::HubContentInfo) -> Self {
            let mut v = self.hub_content_summaries.unwrap_or_default();
            v.push(input);
            self.hub_content_summaries = Some(v);
            self
        }
        /// <p>The summaries of the listed hub content.</p>
        pub fn set_hub_content_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::HubContentInfo>>,
        ) -> Self {
            self.hub_content_summaries = input;
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of hub content, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of hub content, use it in the subsequent request.</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 [`ListHubContentsOutput`](crate::output::ListHubContentsOutput).
        pub fn build(self) -> crate::output::ListHubContentsOutput {
            crate::output::ListHubContentsOutput {
                hub_content_summaries: self.hub_content_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListHubContentsOutput {
    /// Creates a new builder-style object to manufacture [`ListHubContentsOutput`](crate::output::ListHubContentsOutput).
    pub fn builder() -> crate::output::list_hub_contents_output::Builder {
        crate::output::list_hub_contents_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListFlowDefinitionsOutput {
    /// <p>An array of objects describing the flow definitions.</p>
    #[doc(hidden)]
    pub flow_definition_summaries:
        std::option::Option<std::vec::Vec<crate::model::FlowDefinitionSummary>>,
    /// <p>A token to resume pagination.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListFlowDefinitionsOutput {
    /// <p>An array of objects describing the flow definitions.</p>
    pub fn flow_definition_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::FlowDefinitionSummary]> {
        self.flow_definition_summaries.as_deref()
    }
    /// <p>A token to resume pagination.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListFlowDefinitionsOutput`](crate::output::ListFlowDefinitionsOutput).
pub mod list_flow_definitions_output {

    /// A builder for [`ListFlowDefinitionsOutput`](crate::output::ListFlowDefinitionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) flow_definition_summaries:
            std::option::Option<std::vec::Vec<crate::model::FlowDefinitionSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `flow_definition_summaries`.
        ///
        /// To override the contents of this collection use [`set_flow_definition_summaries`](Self::set_flow_definition_summaries).
        ///
        /// <p>An array of objects describing the flow definitions.</p>
        pub fn flow_definition_summaries(
            mut self,
            input: crate::model::FlowDefinitionSummary,
        ) -> Self {
            let mut v = self.flow_definition_summaries.unwrap_or_default();
            v.push(input);
            self.flow_definition_summaries = Some(v);
            self
        }
        /// <p>An array of objects describing the flow definitions.</p>
        pub fn set_flow_definition_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::FlowDefinitionSummary>>,
        ) -> Self {
            self.flow_definition_summaries = input;
            self
        }
        /// <p>A token to resume pagination.</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 resume pagination.</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 [`ListFlowDefinitionsOutput`](crate::output::ListFlowDefinitionsOutput).
        pub fn build(self) -> crate::output::ListFlowDefinitionsOutput {
            crate::output::ListFlowDefinitionsOutput {
                flow_definition_summaries: self.flow_definition_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListFlowDefinitionsOutput {
    /// Creates a new builder-style object to manufacture [`ListFlowDefinitionsOutput`](crate::output::ListFlowDefinitionsOutput).
    pub fn builder() -> crate::output::list_flow_definitions_output::Builder {
        crate::output::list_flow_definitions_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListFeatureGroupsOutput {
    /// <p>A summary of feature groups.</p>
    #[doc(hidden)]
    pub feature_group_summaries:
        std::option::Option<std::vec::Vec<crate::model::FeatureGroupSummary>>,
    /// <p>A token to resume pagination of <code>ListFeatureGroups</code> results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListFeatureGroupsOutput {
    /// <p>A summary of feature groups.</p>
    pub fn feature_group_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::FeatureGroupSummary]> {
        self.feature_group_summaries.as_deref()
    }
    /// <p>A token to resume pagination of <code>ListFeatureGroups</code> results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListFeatureGroupsOutput`](crate::output::ListFeatureGroupsOutput).
pub mod list_feature_groups_output {

    /// A builder for [`ListFeatureGroupsOutput`](crate::output::ListFeatureGroupsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) feature_group_summaries:
            std::option::Option<std::vec::Vec<crate::model::FeatureGroupSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `feature_group_summaries`.
        ///
        /// To override the contents of this collection use [`set_feature_group_summaries`](Self::set_feature_group_summaries).
        ///
        /// <p>A summary of feature groups.</p>
        pub fn feature_group_summaries(mut self, input: crate::model::FeatureGroupSummary) -> Self {
            let mut v = self.feature_group_summaries.unwrap_or_default();
            v.push(input);
            self.feature_group_summaries = Some(v);
            self
        }
        /// <p>A summary of feature groups.</p>
        pub fn set_feature_group_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::FeatureGroupSummary>>,
        ) -> Self {
            self.feature_group_summaries = input;
            self
        }
        /// <p>A token to resume pagination of <code>ListFeatureGroups</code> results.</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 resume pagination of <code>ListFeatureGroups</code> results.</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 [`ListFeatureGroupsOutput`](crate::output::ListFeatureGroupsOutput).
        pub fn build(self) -> crate::output::ListFeatureGroupsOutput {
            crate::output::ListFeatureGroupsOutput {
                feature_group_summaries: self.feature_group_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListFeatureGroupsOutput {
    /// Creates a new builder-style object to manufacture [`ListFeatureGroupsOutput`](crate::output::ListFeatureGroupsOutput).
    pub fn builder() -> crate::output::list_feature_groups_output::Builder {
        crate::output::list_feature_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 ListExperimentsOutput {
    /// <p>A list of the summaries of your experiments.</p>
    #[doc(hidden)]
    pub experiment_summaries: std::option::Option<std::vec::Vec<crate::model::ExperimentSummary>>,
    /// <p>A token for getting the next set of experiments, if there are any.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListExperimentsOutput {
    /// <p>A list of the summaries of your experiments.</p>
    pub fn experiment_summaries(&self) -> std::option::Option<&[crate::model::ExperimentSummary]> {
        self.experiment_summaries.as_deref()
    }
    /// <p>A token for getting the next set of experiments, if there are any.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListExperimentsOutput`](crate::output::ListExperimentsOutput).
pub mod list_experiments_output {

    /// A builder for [`ListExperimentsOutput`](crate::output::ListExperimentsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) experiment_summaries:
            std::option::Option<std::vec::Vec<crate::model::ExperimentSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `experiment_summaries`.
        ///
        /// To override the contents of this collection use [`set_experiment_summaries`](Self::set_experiment_summaries).
        ///
        /// <p>A list of the summaries of your experiments.</p>
        pub fn experiment_summaries(mut self, input: crate::model::ExperimentSummary) -> Self {
            let mut v = self.experiment_summaries.unwrap_or_default();
            v.push(input);
            self.experiment_summaries = Some(v);
            self
        }
        /// <p>A list of the summaries of your experiments.</p>
        pub fn set_experiment_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ExperimentSummary>>,
        ) -> Self {
            self.experiment_summaries = input;
            self
        }
        /// <p>A token for getting the next set of experiments, if there are any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token for getting the next set of experiments, if there are any.</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 [`ListExperimentsOutput`](crate::output::ListExperimentsOutput).
        pub fn build(self) -> crate::output::ListExperimentsOutput {
            crate::output::ListExperimentsOutput {
                experiment_summaries: self.experiment_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListExperimentsOutput {
    /// Creates a new builder-style object to manufacture [`ListExperimentsOutput`](crate::output::ListExperimentsOutput).
    pub fn builder() -> crate::output::list_experiments_output::Builder {
        crate::output::list_experiments_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListEndpointsOutput {
    /// <p> An array or endpoint objects. </p>
    #[doc(hidden)]
    pub endpoints: std::option::Option<std::vec::Vec<crate::model::EndpointSummary>>,
    /// <p> If the response is truncated, SageMaker returns this token. To retrieve the next set of training jobs, use it in the subsequent request. </p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListEndpointsOutput {
    /// <p> An array or endpoint objects. </p>
    pub fn endpoints(&self) -> std::option::Option<&[crate::model::EndpointSummary]> {
        self.endpoints.as_deref()
    }
    /// <p> If the response is truncated, SageMaker returns this token. To retrieve the next set of training jobs, use it in the subsequent request. </p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListEndpointsOutput`](crate::output::ListEndpointsOutput).
pub mod list_endpoints_output {

    /// A builder for [`ListEndpointsOutput`](crate::output::ListEndpointsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) endpoints: std::option::Option<std::vec::Vec<crate::model::EndpointSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `endpoints`.
        ///
        /// To override the contents of this collection use [`set_endpoints`](Self::set_endpoints).
        ///
        /// <p> An array or endpoint objects. </p>
        pub fn endpoints(mut self, input: crate::model::EndpointSummary) -> Self {
            let mut v = self.endpoints.unwrap_or_default();
            v.push(input);
            self.endpoints = Some(v);
            self
        }
        /// <p> An array or endpoint objects. </p>
        pub fn set_endpoints(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::EndpointSummary>>,
        ) -> Self {
            self.endpoints = input;
            self
        }
        /// <p> If the response is truncated, SageMaker returns this token. To retrieve the next set of training jobs, use it in the subsequent request. </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p> If the response is truncated, SageMaker returns this token. To retrieve the next set of training jobs, use it in the subsequent request. </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 [`ListEndpointsOutput`](crate::output::ListEndpointsOutput).
        pub fn build(self) -> crate::output::ListEndpointsOutput {
            crate::output::ListEndpointsOutput {
                endpoints: self.endpoints,
                next_token: self.next_token,
            }
        }
    }
}
impl ListEndpointsOutput {
    /// Creates a new builder-style object to manufacture [`ListEndpointsOutput`](crate::output::ListEndpointsOutput).
    pub fn builder() -> crate::output::list_endpoints_output::Builder {
        crate::output::list_endpoints_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListEndpointConfigsOutput {
    /// <p>An array of endpoint configurations.</p>
    #[doc(hidden)]
    pub endpoint_configs: std::option::Option<std::vec::Vec<crate::model::EndpointConfigSummary>>,
    /// <p> If the response is truncated, SageMaker returns this token. To retrieve the next set of endpoint configurations, use it in the subsequent request </p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListEndpointConfigsOutput {
    /// <p>An array of endpoint configurations.</p>
    pub fn endpoint_configs(&self) -> std::option::Option<&[crate::model::EndpointConfigSummary]> {
        self.endpoint_configs.as_deref()
    }
    /// <p> If the response is truncated, SageMaker returns this token. To retrieve the next set of endpoint configurations, use it in the subsequent request </p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListEndpointConfigsOutput`](crate::output::ListEndpointConfigsOutput).
pub mod list_endpoint_configs_output {

    /// A builder for [`ListEndpointConfigsOutput`](crate::output::ListEndpointConfigsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) endpoint_configs:
            std::option::Option<std::vec::Vec<crate::model::EndpointConfigSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `endpoint_configs`.
        ///
        /// To override the contents of this collection use [`set_endpoint_configs`](Self::set_endpoint_configs).
        ///
        /// <p>An array of endpoint configurations.</p>
        pub fn endpoint_configs(mut self, input: crate::model::EndpointConfigSummary) -> Self {
            let mut v = self.endpoint_configs.unwrap_or_default();
            v.push(input);
            self.endpoint_configs = Some(v);
            self
        }
        /// <p>An array of endpoint configurations.</p>
        pub fn set_endpoint_configs(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::EndpointConfigSummary>>,
        ) -> Self {
            self.endpoint_configs = input;
            self
        }
        /// <p> If the response is truncated, SageMaker returns this token. To retrieve the next set of endpoint configurations, use it in the subsequent request </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p> If the response is truncated, SageMaker returns this token. To retrieve the next set of endpoint configurations, use it in the subsequent request </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 [`ListEndpointConfigsOutput`](crate::output::ListEndpointConfigsOutput).
        pub fn build(self) -> crate::output::ListEndpointConfigsOutput {
            crate::output::ListEndpointConfigsOutput {
                endpoint_configs: self.endpoint_configs,
                next_token: self.next_token,
            }
        }
    }
}
impl ListEndpointConfigsOutput {
    /// Creates a new builder-style object to manufacture [`ListEndpointConfigsOutput`](crate::output::ListEndpointConfigsOutput).
    pub fn builder() -> crate::output::list_endpoint_configs_output::Builder {
        crate::output::list_endpoint_configs_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListEdgePackagingJobsOutput {
    /// <p>Summaries of edge packaging jobs.</p>
    #[doc(hidden)]
    pub edge_packaging_job_summaries:
        std::option::Option<std::vec::Vec<crate::model::EdgePackagingJobSummary>>,
    /// <p>Token to use when calling the next page of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListEdgePackagingJobsOutput {
    /// <p>Summaries of edge packaging jobs.</p>
    pub fn edge_packaging_job_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::EdgePackagingJobSummary]> {
        self.edge_packaging_job_summaries.as_deref()
    }
    /// <p>Token to use when calling the next page of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListEdgePackagingJobsOutput`](crate::output::ListEdgePackagingJobsOutput).
pub mod list_edge_packaging_jobs_output {

    /// A builder for [`ListEdgePackagingJobsOutput`](crate::output::ListEdgePackagingJobsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) edge_packaging_job_summaries:
            std::option::Option<std::vec::Vec<crate::model::EdgePackagingJobSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `edge_packaging_job_summaries`.
        ///
        /// To override the contents of this collection use [`set_edge_packaging_job_summaries`](Self::set_edge_packaging_job_summaries).
        ///
        /// <p>Summaries of edge packaging jobs.</p>
        pub fn edge_packaging_job_summaries(
            mut self,
            input: crate::model::EdgePackagingJobSummary,
        ) -> Self {
            let mut v = self.edge_packaging_job_summaries.unwrap_or_default();
            v.push(input);
            self.edge_packaging_job_summaries = Some(v);
            self
        }
        /// <p>Summaries of edge packaging jobs.</p>
        pub fn set_edge_packaging_job_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::EdgePackagingJobSummary>>,
        ) -> Self {
            self.edge_packaging_job_summaries = input;
            self
        }
        /// <p>Token to use when calling the next page of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>Token to use when calling the next page of results.</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 [`ListEdgePackagingJobsOutput`](crate::output::ListEdgePackagingJobsOutput).
        pub fn build(self) -> crate::output::ListEdgePackagingJobsOutput {
            crate::output::ListEdgePackagingJobsOutput {
                edge_packaging_job_summaries: self.edge_packaging_job_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListEdgePackagingJobsOutput {
    /// Creates a new builder-style object to manufacture [`ListEdgePackagingJobsOutput`](crate::output::ListEdgePackagingJobsOutput).
    pub fn builder() -> crate::output::list_edge_packaging_jobs_output::Builder {
        crate::output::list_edge_packaging_jobs_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListEdgeDeploymentPlansOutput {
    /// <p>List of summaries of edge deployment plans.</p>
    #[doc(hidden)]
    pub edge_deployment_plan_summaries:
        std::option::Option<std::vec::Vec<crate::model::EdgeDeploymentPlanSummary>>,
    /// <p>The token to use when calling the next page of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListEdgeDeploymentPlansOutput {
    /// <p>List of summaries of edge deployment plans.</p>
    pub fn edge_deployment_plan_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::EdgeDeploymentPlanSummary]> {
        self.edge_deployment_plan_summaries.as_deref()
    }
    /// <p>The token to use when calling the next page of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListEdgeDeploymentPlansOutput`](crate::output::ListEdgeDeploymentPlansOutput).
pub mod list_edge_deployment_plans_output {

    /// A builder for [`ListEdgeDeploymentPlansOutput`](crate::output::ListEdgeDeploymentPlansOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) edge_deployment_plan_summaries:
            std::option::Option<std::vec::Vec<crate::model::EdgeDeploymentPlanSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `edge_deployment_plan_summaries`.
        ///
        /// To override the contents of this collection use [`set_edge_deployment_plan_summaries`](Self::set_edge_deployment_plan_summaries).
        ///
        /// <p>List of summaries of edge deployment plans.</p>
        pub fn edge_deployment_plan_summaries(
            mut self,
            input: crate::model::EdgeDeploymentPlanSummary,
        ) -> Self {
            let mut v = self.edge_deployment_plan_summaries.unwrap_or_default();
            v.push(input);
            self.edge_deployment_plan_summaries = Some(v);
            self
        }
        /// <p>List of summaries of edge deployment plans.</p>
        pub fn set_edge_deployment_plan_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::EdgeDeploymentPlanSummary>>,
        ) -> Self {
            self.edge_deployment_plan_summaries = input;
            self
        }
        /// <p>The token to use when calling the next page of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The token to use when calling the next page of results.</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 [`ListEdgeDeploymentPlansOutput`](crate::output::ListEdgeDeploymentPlansOutput).
        pub fn build(self) -> crate::output::ListEdgeDeploymentPlansOutput {
            crate::output::ListEdgeDeploymentPlansOutput {
                edge_deployment_plan_summaries: self.edge_deployment_plan_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListEdgeDeploymentPlansOutput {
    /// Creates a new builder-style object to manufacture [`ListEdgeDeploymentPlansOutput`](crate::output::ListEdgeDeploymentPlansOutput).
    pub fn builder() -> crate::output::list_edge_deployment_plans_output::Builder {
        crate::output::list_edge_deployment_plans_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListDomainsOutput {
    /// <p>The list of domains.</p>
    #[doc(hidden)]
    pub domains: std::option::Option<std::vec::Vec<crate::model::DomainDetails>>,
    /// <p>If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListDomainsOutput {
    /// <p>The list of domains.</p>
    pub fn domains(&self) -> std::option::Option<&[crate::model::DomainDetails]> {
        self.domains.as_deref()
    }
    /// <p>If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListDomainsOutput`](crate::output::ListDomainsOutput).
pub mod list_domains_output {

    /// A builder for [`ListDomainsOutput`](crate::output::ListDomainsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) domains: std::option::Option<std::vec::Vec<crate::model::DomainDetails>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `domains`.
        ///
        /// To override the contents of this collection use [`set_domains`](Self::set_domains).
        ///
        /// <p>The list of domains.</p>
        pub fn domains(mut self, input: crate::model::DomainDetails) -> Self {
            let mut v = self.domains.unwrap_or_default();
            v.push(input);
            self.domains = Some(v);
            self
        }
        /// <p>The list of domains.</p>
        pub fn set_domains(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::DomainDetails>>,
        ) -> Self {
            self.domains = input;
            self
        }
        /// <p>If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.</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 [`ListDomainsOutput`](crate::output::ListDomainsOutput).
        pub fn build(self) -> crate::output::ListDomainsOutput {
            crate::output::ListDomainsOutput {
                domains: self.domains,
                next_token: self.next_token,
            }
        }
    }
}
impl ListDomainsOutput {
    /// Creates a new builder-style object to manufacture [`ListDomainsOutput`](crate::output::ListDomainsOutput).
    pub fn builder() -> crate::output::list_domains_output::Builder {
        crate::output::list_domains_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListDevicesOutput {
    /// <p>Summary of devices.</p>
    #[doc(hidden)]
    pub device_summaries: std::option::Option<std::vec::Vec<crate::model::DeviceSummary>>,
    /// <p>The response from the last list when returning a list large enough to need tokening.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListDevicesOutput {
    /// <p>Summary of devices.</p>
    pub fn device_summaries(&self) -> std::option::Option<&[crate::model::DeviceSummary]> {
        self.device_summaries.as_deref()
    }
    /// <p>The response from the last list when returning a list large enough to need tokening.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListDevicesOutput`](crate::output::ListDevicesOutput).
pub mod list_devices_output {

    /// A builder for [`ListDevicesOutput`](crate::output::ListDevicesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) device_summaries:
            std::option::Option<std::vec::Vec<crate::model::DeviceSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `device_summaries`.
        ///
        /// To override the contents of this collection use [`set_device_summaries`](Self::set_device_summaries).
        ///
        /// <p>Summary of devices.</p>
        pub fn device_summaries(mut self, input: crate::model::DeviceSummary) -> Self {
            let mut v = self.device_summaries.unwrap_or_default();
            v.push(input);
            self.device_summaries = Some(v);
            self
        }
        /// <p>Summary of devices.</p>
        pub fn set_device_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::DeviceSummary>>,
        ) -> Self {
            self.device_summaries = input;
            self
        }
        /// <p>The response from the last list when returning a list large enough to need tokening.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The response from the last list when returning a list large enough to need tokening.</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 [`ListDevicesOutput`](crate::output::ListDevicesOutput).
        pub fn build(self) -> crate::output::ListDevicesOutput {
            crate::output::ListDevicesOutput {
                device_summaries: self.device_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListDevicesOutput {
    /// Creates a new builder-style object to manufacture [`ListDevicesOutput`](crate::output::ListDevicesOutput).
    pub fn builder() -> crate::output::list_devices_output::Builder {
        crate::output::list_devices_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListDeviceFleetsOutput {
    /// <p>Summary of the device fleet.</p>
    #[doc(hidden)]
    pub device_fleet_summaries:
        std::option::Option<std::vec::Vec<crate::model::DeviceFleetSummary>>,
    /// <p>The response from the last list when returning a list large enough to need tokening.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListDeviceFleetsOutput {
    /// <p>Summary of the device fleet.</p>
    pub fn device_fleet_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::DeviceFleetSummary]> {
        self.device_fleet_summaries.as_deref()
    }
    /// <p>The response from the last list when returning a list large enough to need tokening.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListDeviceFleetsOutput`](crate::output::ListDeviceFleetsOutput).
pub mod list_device_fleets_output {

    /// A builder for [`ListDeviceFleetsOutput`](crate::output::ListDeviceFleetsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) device_fleet_summaries:
            std::option::Option<std::vec::Vec<crate::model::DeviceFleetSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `device_fleet_summaries`.
        ///
        /// To override the contents of this collection use [`set_device_fleet_summaries`](Self::set_device_fleet_summaries).
        ///
        /// <p>Summary of the device fleet.</p>
        pub fn device_fleet_summaries(mut self, input: crate::model::DeviceFleetSummary) -> Self {
            let mut v = self.device_fleet_summaries.unwrap_or_default();
            v.push(input);
            self.device_fleet_summaries = Some(v);
            self
        }
        /// <p>Summary of the device fleet.</p>
        pub fn set_device_fleet_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::DeviceFleetSummary>>,
        ) -> Self {
            self.device_fleet_summaries = input;
            self
        }
        /// <p>The response from the last list when returning a list large enough to need tokening.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The response from the last list when returning a list large enough to need tokening.</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 [`ListDeviceFleetsOutput`](crate::output::ListDeviceFleetsOutput).
        pub fn build(self) -> crate::output::ListDeviceFleetsOutput {
            crate::output::ListDeviceFleetsOutput {
                device_fleet_summaries: self.device_fleet_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListDeviceFleetsOutput {
    /// Creates a new builder-style object to manufacture [`ListDeviceFleetsOutput`](crate::output::ListDeviceFleetsOutput).
    pub fn builder() -> crate::output::list_device_fleets_output::Builder {
        crate::output::list_device_fleets_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListDataQualityJobDefinitionsOutput {
    /// <p>A list of data quality monitoring job definitions.</p>
    #[doc(hidden)]
    pub job_definition_summaries:
        std::option::Option<std::vec::Vec<crate::model::MonitoringJobDefinitionSummary>>,
    /// <p>If the result of the previous <code>ListDataQualityJobDefinitions</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of data quality monitoring job definitions, use the token in the next request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListDataQualityJobDefinitionsOutput {
    /// <p>A list of data quality monitoring job definitions.</p>
    pub fn job_definition_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::MonitoringJobDefinitionSummary]> {
        self.job_definition_summaries.as_deref()
    }
    /// <p>If the result of the previous <code>ListDataQualityJobDefinitions</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of data quality monitoring job definitions, use the token in the next request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListDataQualityJobDefinitionsOutput`](crate::output::ListDataQualityJobDefinitionsOutput).
pub mod list_data_quality_job_definitions_output {

    /// A builder for [`ListDataQualityJobDefinitionsOutput`](crate::output::ListDataQualityJobDefinitionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) job_definition_summaries:
            std::option::Option<std::vec::Vec<crate::model::MonitoringJobDefinitionSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `job_definition_summaries`.
        ///
        /// To override the contents of this collection use [`set_job_definition_summaries`](Self::set_job_definition_summaries).
        ///
        /// <p>A list of data quality monitoring job definitions.</p>
        pub fn job_definition_summaries(
            mut self,
            input: crate::model::MonitoringJobDefinitionSummary,
        ) -> Self {
            let mut v = self.job_definition_summaries.unwrap_or_default();
            v.push(input);
            self.job_definition_summaries = Some(v);
            self
        }
        /// <p>A list of data quality monitoring job definitions.</p>
        pub fn set_job_definition_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::MonitoringJobDefinitionSummary>>,
        ) -> Self {
            self.job_definition_summaries = input;
            self
        }
        /// <p>If the result of the previous <code>ListDataQualityJobDefinitions</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of data quality monitoring job definitions, use the token in the next request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the result of the previous <code>ListDataQualityJobDefinitions</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of data quality monitoring job definitions, use the token in the next request.</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 [`ListDataQualityJobDefinitionsOutput`](crate::output::ListDataQualityJobDefinitionsOutput).
        pub fn build(self) -> crate::output::ListDataQualityJobDefinitionsOutput {
            crate::output::ListDataQualityJobDefinitionsOutput {
                job_definition_summaries: self.job_definition_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListDataQualityJobDefinitionsOutput {
    /// Creates a new builder-style object to manufacture [`ListDataQualityJobDefinitionsOutput`](crate::output::ListDataQualityJobDefinitionsOutput).
    pub fn builder() -> crate::output::list_data_quality_job_definitions_output::Builder {
        crate::output::list_data_quality_job_definitions_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListContextsOutput {
    /// <p>A list of contexts and their properties.</p>
    #[doc(hidden)]
    pub context_summaries: std::option::Option<std::vec::Vec<crate::model::ContextSummary>>,
    /// <p>A token for getting the next set of contexts, if there are any.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListContextsOutput {
    /// <p>A list of contexts and their properties.</p>
    pub fn context_summaries(&self) -> std::option::Option<&[crate::model::ContextSummary]> {
        self.context_summaries.as_deref()
    }
    /// <p>A token for getting the next set of contexts, if there are any.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListContextsOutput`](crate::output::ListContextsOutput).
pub mod list_contexts_output {

    /// A builder for [`ListContextsOutput`](crate::output::ListContextsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) context_summaries:
            std::option::Option<std::vec::Vec<crate::model::ContextSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `context_summaries`.
        ///
        /// To override the contents of this collection use [`set_context_summaries`](Self::set_context_summaries).
        ///
        /// <p>A list of contexts and their properties.</p>
        pub fn context_summaries(mut self, input: crate::model::ContextSummary) -> Self {
            let mut v = self.context_summaries.unwrap_or_default();
            v.push(input);
            self.context_summaries = Some(v);
            self
        }
        /// <p>A list of contexts and their properties.</p>
        pub fn set_context_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ContextSummary>>,
        ) -> Self {
            self.context_summaries = input;
            self
        }
        /// <p>A token for getting the next set of contexts, if there are any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token for getting the next set of contexts, if there are any.</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 [`ListContextsOutput`](crate::output::ListContextsOutput).
        pub fn build(self) -> crate::output::ListContextsOutput {
            crate::output::ListContextsOutput {
                context_summaries: self.context_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListContextsOutput {
    /// Creates a new builder-style object to manufacture [`ListContextsOutput`](crate::output::ListContextsOutput).
    pub fn builder() -> crate::output::list_contexts_output::Builder {
        crate::output::list_contexts_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListCompilationJobsOutput {
    /// <p>An array of <code>CompilationJobSummary</code> objects, each describing a model compilation job. </p>
    #[doc(hidden)]
    pub compilation_job_summaries:
        std::option::Option<std::vec::Vec<crate::model::CompilationJobSummary>>,
    /// <p>If the response is truncated, Amazon SageMaker returns this <code>NextToken</code>. To retrieve the next set of model compilation jobs, use this token in the next request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListCompilationJobsOutput {
    /// <p>An array of <code>CompilationJobSummary</code> objects, each describing a model compilation job. </p>
    pub fn compilation_job_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::CompilationJobSummary]> {
        self.compilation_job_summaries.as_deref()
    }
    /// <p>If the response is truncated, Amazon SageMaker returns this <code>NextToken</code>. To retrieve the next set of model compilation jobs, use this token in the next request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListCompilationJobsOutput`](crate::output::ListCompilationJobsOutput).
pub mod list_compilation_jobs_output {

    /// A builder for [`ListCompilationJobsOutput`](crate::output::ListCompilationJobsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) compilation_job_summaries:
            std::option::Option<std::vec::Vec<crate::model::CompilationJobSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `compilation_job_summaries`.
        ///
        /// To override the contents of this collection use [`set_compilation_job_summaries`](Self::set_compilation_job_summaries).
        ///
        /// <p>An array of <code>CompilationJobSummary</code> objects, each describing a model compilation job. </p>
        pub fn compilation_job_summaries(
            mut self,
            input: crate::model::CompilationJobSummary,
        ) -> Self {
            let mut v = self.compilation_job_summaries.unwrap_or_default();
            v.push(input);
            self.compilation_job_summaries = Some(v);
            self
        }
        /// <p>An array of <code>CompilationJobSummary</code> objects, each describing a model compilation job. </p>
        pub fn set_compilation_job_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::CompilationJobSummary>>,
        ) -> Self {
            self.compilation_job_summaries = input;
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this <code>NextToken</code>. To retrieve the next set of model compilation jobs, use this token in the next request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, Amazon SageMaker returns this <code>NextToken</code>. To retrieve the next set of model compilation jobs, use this token in the next request.</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 [`ListCompilationJobsOutput`](crate::output::ListCompilationJobsOutput).
        pub fn build(self) -> crate::output::ListCompilationJobsOutput {
            crate::output::ListCompilationJobsOutput {
                compilation_job_summaries: self.compilation_job_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListCompilationJobsOutput {
    /// Creates a new builder-style object to manufacture [`ListCompilationJobsOutput`](crate::output::ListCompilationJobsOutput).
    pub fn builder() -> crate::output::list_compilation_jobs_output::Builder {
        crate::output::list_compilation_jobs_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListCodeRepositoriesOutput {
    /// <p>Gets a list of summaries of the Git repositories. Each summary specifies the following values for the repository: </p>
    /// <ul>
    /// <li> <p>Name</p> </li>
    /// <li> <p>Amazon Resource Name (ARN)</p> </li>
    /// <li> <p>Creation time</p> </li>
    /// <li> <p>Last modified time</p> </li>
    /// <li> <p>Configuration information, including the URL location of the repository and the ARN of the Amazon Web Services Secrets Manager secret that contains the credentials used to access the repository.</p> </li>
    /// </ul>
    #[doc(hidden)]
    pub code_repository_summary_list:
        std::option::Option<std::vec::Vec<crate::model::CodeRepositorySummary>>,
    /// <p>If the result of a <code>ListCodeRepositoriesOutput</code> request was truncated, the response includes a <code>NextToken</code>. To get the next set of Git repositories, use the token in the next request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListCodeRepositoriesOutput {
    /// <p>Gets a list of summaries of the Git repositories. Each summary specifies the following values for the repository: </p>
    /// <ul>
    /// <li> <p>Name</p> </li>
    /// <li> <p>Amazon Resource Name (ARN)</p> </li>
    /// <li> <p>Creation time</p> </li>
    /// <li> <p>Last modified time</p> </li>
    /// <li> <p>Configuration information, including the URL location of the repository and the ARN of the Amazon Web Services Secrets Manager secret that contains the credentials used to access the repository.</p> </li>
    /// </ul>
    pub fn code_repository_summary_list(
        &self,
    ) -> std::option::Option<&[crate::model::CodeRepositorySummary]> {
        self.code_repository_summary_list.as_deref()
    }
    /// <p>If the result of a <code>ListCodeRepositoriesOutput</code> request was truncated, the response includes a <code>NextToken</code>. To get the next set of Git repositories, use the token in the next request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListCodeRepositoriesOutput`](crate::output::ListCodeRepositoriesOutput).
pub mod list_code_repositories_output {

    /// A builder for [`ListCodeRepositoriesOutput`](crate::output::ListCodeRepositoriesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) code_repository_summary_list:
            std::option::Option<std::vec::Vec<crate::model::CodeRepositorySummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `code_repository_summary_list`.
        ///
        /// To override the contents of this collection use [`set_code_repository_summary_list`](Self::set_code_repository_summary_list).
        ///
        /// <p>Gets a list of summaries of the Git repositories. Each summary specifies the following values for the repository: </p>
        /// <ul>
        /// <li> <p>Name</p> </li>
        /// <li> <p>Amazon Resource Name (ARN)</p> </li>
        /// <li> <p>Creation time</p> </li>
        /// <li> <p>Last modified time</p> </li>
        /// <li> <p>Configuration information, including the URL location of the repository and the ARN of the Amazon Web Services Secrets Manager secret that contains the credentials used to access the repository.</p> </li>
        /// </ul>
        pub fn code_repository_summary_list(
            mut self,
            input: crate::model::CodeRepositorySummary,
        ) -> Self {
            let mut v = self.code_repository_summary_list.unwrap_or_default();
            v.push(input);
            self.code_repository_summary_list = Some(v);
            self
        }
        /// <p>Gets a list of summaries of the Git repositories. Each summary specifies the following values for the repository: </p>
        /// <ul>
        /// <li> <p>Name</p> </li>
        /// <li> <p>Amazon Resource Name (ARN)</p> </li>
        /// <li> <p>Creation time</p> </li>
        /// <li> <p>Last modified time</p> </li>
        /// <li> <p>Configuration information, including the URL location of the repository and the ARN of the Amazon Web Services Secrets Manager secret that contains the credentials used to access the repository.</p> </li>
        /// </ul>
        pub fn set_code_repository_summary_list(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::CodeRepositorySummary>>,
        ) -> Self {
            self.code_repository_summary_list = input;
            self
        }
        /// <p>If the result of a <code>ListCodeRepositoriesOutput</code> request was truncated, the response includes a <code>NextToken</code>. To get the next set of Git repositories, use the token in the next request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the result of a <code>ListCodeRepositoriesOutput</code> request was truncated, the response includes a <code>NextToken</code>. To get the next set of Git repositories, use the token in the next request.</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 [`ListCodeRepositoriesOutput`](crate::output::ListCodeRepositoriesOutput).
        pub fn build(self) -> crate::output::ListCodeRepositoriesOutput {
            crate::output::ListCodeRepositoriesOutput {
                code_repository_summary_list: self.code_repository_summary_list,
                next_token: self.next_token,
            }
        }
    }
}
impl ListCodeRepositoriesOutput {
    /// Creates a new builder-style object to manufacture [`ListCodeRepositoriesOutput`](crate::output::ListCodeRepositoriesOutput).
    pub fn builder() -> crate::output::list_code_repositories_output::Builder {
        crate::output::list_code_repositories_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListCandidatesForAutoMlJobOutput {
    /// <p>Summaries about the <code>AutoMLCandidates</code>.</p>
    #[doc(hidden)]
    pub candidates: std::option::Option<std::vec::Vec<crate::model::AutoMlCandidate>>,
    /// <p>If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListCandidatesForAutoMlJobOutput {
    /// <p>Summaries about the <code>AutoMLCandidates</code>.</p>
    pub fn candidates(&self) -> std::option::Option<&[crate::model::AutoMlCandidate]> {
        self.candidates.as_deref()
    }
    /// <p>If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListCandidatesForAutoMlJobOutput`](crate::output::ListCandidatesForAutoMlJobOutput).
pub mod list_candidates_for_auto_ml_job_output {

    /// A builder for [`ListCandidatesForAutoMlJobOutput`](crate::output::ListCandidatesForAutoMlJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) candidates: std::option::Option<std::vec::Vec<crate::model::AutoMlCandidate>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `candidates`.
        ///
        /// To override the contents of this collection use [`set_candidates`](Self::set_candidates).
        ///
        /// <p>Summaries about the <code>AutoMLCandidates</code>.</p>
        pub fn candidates(mut self, input: crate::model::AutoMlCandidate) -> Self {
            let mut v = self.candidates.unwrap_or_default();
            v.push(input);
            self.candidates = Some(v);
            self
        }
        /// <p>Summaries about the <code>AutoMLCandidates</code>.</p>
        pub fn set_candidates(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::AutoMlCandidate>>,
        ) -> Self {
            self.candidates = input;
            self
        }
        /// <p>If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.</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 [`ListCandidatesForAutoMlJobOutput`](crate::output::ListCandidatesForAutoMlJobOutput).
        pub fn build(self) -> crate::output::ListCandidatesForAutoMlJobOutput {
            crate::output::ListCandidatesForAutoMlJobOutput {
                candidates: self.candidates,
                next_token: self.next_token,
            }
        }
    }
}
impl ListCandidatesForAutoMlJobOutput {
    /// Creates a new builder-style object to manufacture [`ListCandidatesForAutoMlJobOutput`](crate::output::ListCandidatesForAutoMlJobOutput).
    pub fn builder() -> crate::output::list_candidates_for_auto_ml_job_output::Builder {
        crate::output::list_candidates_for_auto_ml_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListAutoMlJobsOutput {
    /// <p>Returns a summary list of jobs.</p>
    #[doc(hidden)]
    pub auto_ml_job_summaries: std::option::Option<std::vec::Vec<crate::model::AutoMlJobSummary>>,
    /// <p>If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListAutoMlJobsOutput {
    /// <p>Returns a summary list of jobs.</p>
    pub fn auto_ml_job_summaries(&self) -> std::option::Option<&[crate::model::AutoMlJobSummary]> {
        self.auto_ml_job_summaries.as_deref()
    }
    /// <p>If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListAutoMlJobsOutput`](crate::output::ListAutoMlJobsOutput).
pub mod list_auto_ml_jobs_output {

    /// A builder for [`ListAutoMlJobsOutput`](crate::output::ListAutoMlJobsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) auto_ml_job_summaries:
            std::option::Option<std::vec::Vec<crate::model::AutoMlJobSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `auto_ml_job_summaries`.
        ///
        /// To override the contents of this collection use [`set_auto_ml_job_summaries`](Self::set_auto_ml_job_summaries).
        ///
        /// <p>Returns a summary list of jobs.</p>
        pub fn auto_ml_job_summaries(mut self, input: crate::model::AutoMlJobSummary) -> Self {
            let mut v = self.auto_ml_job_summaries.unwrap_or_default();
            v.push(input);
            self.auto_ml_job_summaries = Some(v);
            self
        }
        /// <p>Returns a summary list of jobs.</p>
        pub fn set_auto_ml_job_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::AutoMlJobSummary>>,
        ) -> Self {
            self.auto_ml_job_summaries = input;
            self
        }
        /// <p>If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.</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 [`ListAutoMlJobsOutput`](crate::output::ListAutoMlJobsOutput).
        pub fn build(self) -> crate::output::ListAutoMlJobsOutput {
            crate::output::ListAutoMlJobsOutput {
                auto_ml_job_summaries: self.auto_ml_job_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListAutoMlJobsOutput {
    /// Creates a new builder-style object to manufacture [`ListAutoMlJobsOutput`](crate::output::ListAutoMlJobsOutput).
    pub fn builder() -> crate::output::list_auto_ml_jobs_output::Builder {
        crate::output::list_auto_ml_jobs_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListAssociationsOutput {
    /// <p>A list of associations and their properties.</p>
    #[doc(hidden)]
    pub association_summaries: std::option::Option<std::vec::Vec<crate::model::AssociationSummary>>,
    /// <p>A token for getting the next set of associations, if there are any.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListAssociationsOutput {
    /// <p>A list of associations and their properties.</p>
    pub fn association_summaries(
        &self,
    ) -> std::option::Option<&[crate::model::AssociationSummary]> {
        self.association_summaries.as_deref()
    }
    /// <p>A token for getting the next set of associations, if there are any.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListAssociationsOutput`](crate::output::ListAssociationsOutput).
pub mod list_associations_output {

    /// A builder for [`ListAssociationsOutput`](crate::output::ListAssociationsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) association_summaries:
            std::option::Option<std::vec::Vec<crate::model::AssociationSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `association_summaries`.
        ///
        /// To override the contents of this collection use [`set_association_summaries`](Self::set_association_summaries).
        ///
        /// <p>A list of associations and their properties.</p>
        pub fn association_summaries(mut self, input: crate::model::AssociationSummary) -> Self {
            let mut v = self.association_summaries.unwrap_or_default();
            v.push(input);
            self.association_summaries = Some(v);
            self
        }
        /// <p>A list of associations and their properties.</p>
        pub fn set_association_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::AssociationSummary>>,
        ) -> Self {
            self.association_summaries = input;
            self
        }
        /// <p>A token for getting the next set of associations, if there are any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token for getting the next set of associations, if there are any.</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 [`ListAssociationsOutput`](crate::output::ListAssociationsOutput).
        pub fn build(self) -> crate::output::ListAssociationsOutput {
            crate::output::ListAssociationsOutput {
                association_summaries: self.association_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListAssociationsOutput {
    /// Creates a new builder-style object to manufacture [`ListAssociationsOutput`](crate::output::ListAssociationsOutput).
    pub fn builder() -> crate::output::list_associations_output::Builder {
        crate::output::list_associations_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListArtifactsOutput {
    /// <p>A list of artifacts and their properties.</p>
    #[doc(hidden)]
    pub artifact_summaries: std::option::Option<std::vec::Vec<crate::model::ArtifactSummary>>,
    /// <p>A token for getting the next set of artifacts, if there are any.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListArtifactsOutput {
    /// <p>A list of artifacts and their properties.</p>
    pub fn artifact_summaries(&self) -> std::option::Option<&[crate::model::ArtifactSummary]> {
        self.artifact_summaries.as_deref()
    }
    /// <p>A token for getting the next set of artifacts, if there are any.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListArtifactsOutput`](crate::output::ListArtifactsOutput).
pub mod list_artifacts_output {

    /// A builder for [`ListArtifactsOutput`](crate::output::ListArtifactsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) artifact_summaries:
            std::option::Option<std::vec::Vec<crate::model::ArtifactSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `artifact_summaries`.
        ///
        /// To override the contents of this collection use [`set_artifact_summaries`](Self::set_artifact_summaries).
        ///
        /// <p>A list of artifacts and their properties.</p>
        pub fn artifact_summaries(mut self, input: crate::model::ArtifactSummary) -> Self {
            let mut v = self.artifact_summaries.unwrap_or_default();
            v.push(input);
            self.artifact_summaries = Some(v);
            self
        }
        /// <p>A list of artifacts and their properties.</p>
        pub fn set_artifact_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ArtifactSummary>>,
        ) -> Self {
            self.artifact_summaries = input;
            self
        }
        /// <p>A token for getting the next set of artifacts, if there are any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token for getting the next set of artifacts, if there are any.</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 [`ListArtifactsOutput`](crate::output::ListArtifactsOutput).
        pub fn build(self) -> crate::output::ListArtifactsOutput {
            crate::output::ListArtifactsOutput {
                artifact_summaries: self.artifact_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListArtifactsOutput {
    /// Creates a new builder-style object to manufacture [`ListArtifactsOutput`](crate::output::ListArtifactsOutput).
    pub fn builder() -> crate::output::list_artifacts_output::Builder {
        crate::output::list_artifacts_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListAppsOutput {
    /// <p>The list of apps.</p>
    #[doc(hidden)]
    pub apps: std::option::Option<std::vec::Vec<crate::model::AppDetails>>,
    /// <p>If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListAppsOutput {
    /// <p>The list of apps.</p>
    pub fn apps(&self) -> std::option::Option<&[crate::model::AppDetails]> {
        self.apps.as_deref()
    }
    /// <p>If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListAppsOutput`](crate::output::ListAppsOutput).
pub mod list_apps_output {

    /// A builder for [`ListAppsOutput`](crate::output::ListAppsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) apps: std::option::Option<std::vec::Vec<crate::model::AppDetails>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `apps`.
        ///
        /// To override the contents of this collection use [`set_apps`](Self::set_apps).
        ///
        /// <p>The list of apps.</p>
        pub fn apps(mut self, input: crate::model::AppDetails) -> Self {
            let mut v = self.apps.unwrap_or_default();
            v.push(input);
            self.apps = Some(v);
            self
        }
        /// <p>The list of apps.</p>
        pub fn set_apps(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::AppDetails>>,
        ) -> Self {
            self.apps = input;
            self
        }
        /// <p>If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.</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 [`ListAppsOutput`](crate::output::ListAppsOutput).
        pub fn build(self) -> crate::output::ListAppsOutput {
            crate::output::ListAppsOutput {
                apps: self.apps,
                next_token: self.next_token,
            }
        }
    }
}
impl ListAppsOutput {
    /// Creates a new builder-style object to manufacture [`ListAppsOutput`](crate::output::ListAppsOutput).
    pub fn builder() -> crate::output::list_apps_output::Builder {
        crate::output::list_apps_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListAppImageConfigsOutput {
    /// <p>A token for getting the next set of AppImageConfigs, if there are any.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
    /// <p>A list of AppImageConfigs and their properties.</p>
    #[doc(hidden)]
    pub app_image_configs: std::option::Option<std::vec::Vec<crate::model::AppImageConfigDetails>>,
}
impl ListAppImageConfigsOutput {
    /// <p>A token for getting the next set of AppImageConfigs, if there are any.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
    /// <p>A list of AppImageConfigs and their properties.</p>
    pub fn app_image_configs(&self) -> std::option::Option<&[crate::model::AppImageConfigDetails]> {
        self.app_image_configs.as_deref()
    }
}
/// See [`ListAppImageConfigsOutput`](crate::output::ListAppImageConfigsOutput).
pub mod list_app_image_configs_output {

    /// A builder for [`ListAppImageConfigsOutput`](crate::output::ListAppImageConfigsOutput).
    #[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) app_image_configs:
            std::option::Option<std::vec::Vec<crate::model::AppImageConfigDetails>>,
    }
    impl Builder {
        /// <p>A token for getting the next set of AppImageConfigs, if there are any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token for getting the next set of AppImageConfigs, if there are any.</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 `app_image_configs`.
        ///
        /// To override the contents of this collection use [`set_app_image_configs`](Self::set_app_image_configs).
        ///
        /// <p>A list of AppImageConfigs and their properties.</p>
        pub fn app_image_configs(mut self, input: crate::model::AppImageConfigDetails) -> Self {
            let mut v = self.app_image_configs.unwrap_or_default();
            v.push(input);
            self.app_image_configs = Some(v);
            self
        }
        /// <p>A list of AppImageConfigs and their properties.</p>
        pub fn set_app_image_configs(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::AppImageConfigDetails>>,
        ) -> Self {
            self.app_image_configs = input;
            self
        }
        /// Consumes the builder and constructs a [`ListAppImageConfigsOutput`](crate::output::ListAppImageConfigsOutput).
        pub fn build(self) -> crate::output::ListAppImageConfigsOutput {
            crate::output::ListAppImageConfigsOutput {
                next_token: self.next_token,
                app_image_configs: self.app_image_configs,
            }
        }
    }
}
impl ListAppImageConfigsOutput {
    /// Creates a new builder-style object to manufacture [`ListAppImageConfigsOutput`](crate::output::ListAppImageConfigsOutput).
    pub fn builder() -> crate::output::list_app_image_configs_output::Builder {
        crate::output::list_app_image_configs_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListAliasesOutput {
    /// <p>A list of SageMaker image version aliases.</p>
    #[doc(hidden)]
    pub sage_maker_image_version_aliases: std::option::Option<std::vec::Vec<std::string::String>>,
    /// <p>A token for getting the next set of aliases, if more aliases exist.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListAliasesOutput {
    /// <p>A list of SageMaker image version aliases.</p>
    pub fn sage_maker_image_version_aliases(&self) -> std::option::Option<&[std::string::String]> {
        self.sage_maker_image_version_aliases.as_deref()
    }
    /// <p>A token for getting the next set of aliases, if more aliases exist.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListAliasesOutput`](crate::output::ListAliasesOutput).
pub mod list_aliases_output {

    /// A builder for [`ListAliasesOutput`](crate::output::ListAliasesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) sage_maker_image_version_aliases:
            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 `sage_maker_image_version_aliases`.
        ///
        /// To override the contents of this collection use [`set_sage_maker_image_version_aliases`](Self::set_sage_maker_image_version_aliases).
        ///
        /// <p>A list of SageMaker image version aliases.</p>
        pub fn sage_maker_image_version_aliases(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            let mut v = self.sage_maker_image_version_aliases.unwrap_or_default();
            v.push(input.into());
            self.sage_maker_image_version_aliases = Some(v);
            self
        }
        /// <p>A list of SageMaker image version aliases.</p>
        pub fn set_sage_maker_image_version_aliases(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.sage_maker_image_version_aliases = input;
            self
        }
        /// <p>A token for getting the next set of aliases, if more aliases exist.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token for getting the next set of aliases, if more aliases exist.</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 [`ListAliasesOutput`](crate::output::ListAliasesOutput).
        pub fn build(self) -> crate::output::ListAliasesOutput {
            crate::output::ListAliasesOutput {
                sage_maker_image_version_aliases: self.sage_maker_image_version_aliases,
                next_token: self.next_token,
            }
        }
    }
}
impl ListAliasesOutput {
    /// Creates a new builder-style object to manufacture [`ListAliasesOutput`](crate::output::ListAliasesOutput).
    pub fn builder() -> crate::output::list_aliases_output::Builder {
        crate::output::list_aliases_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListAlgorithmsOutput {
    /// <p>&gt;An array of <code>AlgorithmSummary</code> objects, each of which lists an algorithm.</p>
    #[doc(hidden)]
    pub algorithm_summary_list: std::option::Option<std::vec::Vec<crate::model::AlgorithmSummary>>,
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of algorithms, use it in the subsequent request.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListAlgorithmsOutput {
    /// <p>&gt;An array of <code>AlgorithmSummary</code> objects, each of which lists an algorithm.</p>
    pub fn algorithm_summary_list(&self) -> std::option::Option<&[crate::model::AlgorithmSummary]> {
        self.algorithm_summary_list.as_deref()
    }
    /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of algorithms, use it in the subsequent request.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListAlgorithmsOutput`](crate::output::ListAlgorithmsOutput).
pub mod list_algorithms_output {

    /// A builder for [`ListAlgorithmsOutput`](crate::output::ListAlgorithmsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) algorithm_summary_list:
            std::option::Option<std::vec::Vec<crate::model::AlgorithmSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `algorithm_summary_list`.
        ///
        /// To override the contents of this collection use [`set_algorithm_summary_list`](Self::set_algorithm_summary_list).
        ///
        /// <p>&gt;An array of <code>AlgorithmSummary</code> objects, each of which lists an algorithm.</p>
        pub fn algorithm_summary_list(mut self, input: crate::model::AlgorithmSummary) -> Self {
            let mut v = self.algorithm_summary_list.unwrap_or_default();
            v.push(input);
            self.algorithm_summary_list = Some(v);
            self
        }
        /// <p>&gt;An array of <code>AlgorithmSummary</code> objects, each of which lists an algorithm.</p>
        pub fn set_algorithm_summary_list(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::AlgorithmSummary>>,
        ) -> Self {
            self.algorithm_summary_list = input;
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of algorithms, use it in the subsequent request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>If the response is truncated, SageMaker returns this token. To retrieve the next set of algorithms, use it in the subsequent request.</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 [`ListAlgorithmsOutput`](crate::output::ListAlgorithmsOutput).
        pub fn build(self) -> crate::output::ListAlgorithmsOutput {
            crate::output::ListAlgorithmsOutput {
                algorithm_summary_list: self.algorithm_summary_list,
                next_token: self.next_token,
            }
        }
    }
}
impl ListAlgorithmsOutput {
    /// Creates a new builder-style object to manufacture [`ListAlgorithmsOutput`](crate::output::ListAlgorithmsOutput).
    pub fn builder() -> crate::output::list_algorithms_output::Builder {
        crate::output::list_algorithms_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListActionsOutput {
    /// <p>A list of actions and their properties.</p>
    #[doc(hidden)]
    pub action_summaries: std::option::Option<std::vec::Vec<crate::model::ActionSummary>>,
    /// <p>A token for getting the next set of actions, if there are any.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListActionsOutput {
    /// <p>A list of actions and their properties.</p>
    pub fn action_summaries(&self) -> std::option::Option<&[crate::model::ActionSummary]> {
        self.action_summaries.as_deref()
    }
    /// <p>A token for getting the next set of actions, if there are any.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListActionsOutput`](crate::output::ListActionsOutput).
pub mod list_actions_output {

    /// A builder for [`ListActionsOutput`](crate::output::ListActionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) action_summaries:
            std::option::Option<std::vec::Vec<crate::model::ActionSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `action_summaries`.
        ///
        /// To override the contents of this collection use [`set_action_summaries`](Self::set_action_summaries).
        ///
        /// <p>A list of actions and their properties.</p>
        pub fn action_summaries(mut self, input: crate::model::ActionSummary) -> Self {
            let mut v = self.action_summaries.unwrap_or_default();
            v.push(input);
            self.action_summaries = Some(v);
            self
        }
        /// <p>A list of actions and their properties.</p>
        pub fn set_action_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ActionSummary>>,
        ) -> Self {
            self.action_summaries = input;
            self
        }
        /// <p>A token for getting the next set of actions, if there are any.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>A token for getting the next set of actions, if there are any.</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 [`ListActionsOutput`](crate::output::ListActionsOutput).
        pub fn build(self) -> crate::output::ListActionsOutput {
            crate::output::ListActionsOutput {
                action_summaries: self.action_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListActionsOutput {
    /// Creates a new builder-style object to manufacture [`ListActionsOutput`](crate::output::ListActionsOutput).
    pub fn builder() -> crate::output::list_actions_output::Builder {
        crate::output::list_actions_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ImportHubContentOutput {
    /// <p>The ARN of the hub that the content was imported into.</p>
    #[doc(hidden)]
    pub hub_arn: std::option::Option<std::string::String>,
    /// <p>The ARN of the hub content that was imported.</p>
    #[doc(hidden)]
    pub hub_content_arn: std::option::Option<std::string::String>,
}
impl ImportHubContentOutput {
    /// <p>The ARN of the hub that the content was imported into.</p>
    pub fn hub_arn(&self) -> std::option::Option<&str> {
        self.hub_arn.as_deref()
    }
    /// <p>The ARN of the hub content that was imported.</p>
    pub fn hub_content_arn(&self) -> std::option::Option<&str> {
        self.hub_content_arn.as_deref()
    }
}
/// See [`ImportHubContentOutput`](crate::output::ImportHubContentOutput).
pub mod import_hub_content_output {

    /// A builder for [`ImportHubContentOutput`](crate::output::ImportHubContentOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) hub_arn: std::option::Option<std::string::String>,
        pub(crate) hub_content_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ARN of the hub that the content was imported into.</p>
        pub fn hub_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.hub_arn = Some(input.into());
            self
        }
        /// <p>The ARN of the hub that the content was imported into.</p>
        pub fn set_hub_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.hub_arn = input;
            self
        }
        /// <p>The ARN of the hub content that was imported.</p>
        pub fn hub_content_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.hub_content_arn = Some(input.into());
            self
        }
        /// <p>The ARN of the hub content that was imported.</p>
        pub fn set_hub_content_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.hub_content_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`ImportHubContentOutput`](crate::output::ImportHubContentOutput).
        pub fn build(self) -> crate::output::ImportHubContentOutput {
            crate::output::ImportHubContentOutput {
                hub_arn: self.hub_arn,
                hub_content_arn: self.hub_content_arn,
            }
        }
    }
}
impl ImportHubContentOutput {
    /// Creates a new builder-style object to manufacture [`ImportHubContentOutput`](crate::output::ImportHubContentOutput).
    pub fn builder() -> crate::output::import_hub_content_output::Builder {
        crate::output::import_hub_content_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetSearchSuggestionsOutput {
    /// <p>A list of property names for a <code>Resource</code> that match a <code>SuggestionQuery</code>.</p>
    #[doc(hidden)]
    pub property_name_suggestions:
        std::option::Option<std::vec::Vec<crate::model::PropertyNameSuggestion>>,
}
impl GetSearchSuggestionsOutput {
    /// <p>A list of property names for a <code>Resource</code> that match a <code>SuggestionQuery</code>.</p>
    pub fn property_name_suggestions(
        &self,
    ) -> std::option::Option<&[crate::model::PropertyNameSuggestion]> {
        self.property_name_suggestions.as_deref()
    }
}
/// See [`GetSearchSuggestionsOutput`](crate::output::GetSearchSuggestionsOutput).
pub mod get_search_suggestions_output {

    /// A builder for [`GetSearchSuggestionsOutput`](crate::output::GetSearchSuggestionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) property_name_suggestions:
            std::option::Option<std::vec::Vec<crate::model::PropertyNameSuggestion>>,
    }
    impl Builder {
        /// Appends an item to `property_name_suggestions`.
        ///
        /// To override the contents of this collection use [`set_property_name_suggestions`](Self::set_property_name_suggestions).
        ///
        /// <p>A list of property names for a <code>Resource</code> that match a <code>SuggestionQuery</code>.</p>
        pub fn property_name_suggestions(
            mut self,
            input: crate::model::PropertyNameSuggestion,
        ) -> Self {
            let mut v = self.property_name_suggestions.unwrap_or_default();
            v.push(input);
            self.property_name_suggestions = Some(v);
            self
        }
        /// <p>A list of property names for a <code>Resource</code> that match a <code>SuggestionQuery</code>.</p>
        pub fn set_property_name_suggestions(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::PropertyNameSuggestion>>,
        ) -> Self {
            self.property_name_suggestions = input;
            self
        }
        /// Consumes the builder and constructs a [`GetSearchSuggestionsOutput`](crate::output::GetSearchSuggestionsOutput).
        pub fn build(self) -> crate::output::GetSearchSuggestionsOutput {
            crate::output::GetSearchSuggestionsOutput {
                property_name_suggestions: self.property_name_suggestions,
            }
        }
    }
}
impl GetSearchSuggestionsOutput {
    /// Creates a new builder-style object to manufacture [`GetSearchSuggestionsOutput`](crate::output::GetSearchSuggestionsOutput).
    pub fn builder() -> crate::output::get_search_suggestions_output::Builder {
        crate::output::get_search_suggestions_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetSagemakerServicecatalogPortfolioStatusOutput {
    /// <p>Whether Service Catalog is enabled or disabled in SageMaker.</p>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::SagemakerServicecatalogStatus>,
}
impl GetSagemakerServicecatalogPortfolioStatusOutput {
    /// <p>Whether Service Catalog is enabled or disabled in SageMaker.</p>
    pub fn status(&self) -> std::option::Option<&crate::model::SagemakerServicecatalogStatus> {
        self.status.as_ref()
    }
}
/// See [`GetSagemakerServicecatalogPortfolioStatusOutput`](crate::output::GetSagemakerServicecatalogPortfolioStatusOutput).
pub mod get_sagemaker_servicecatalog_portfolio_status_output {

    /// A builder for [`GetSagemakerServicecatalogPortfolioStatusOutput`](crate::output::GetSagemakerServicecatalogPortfolioStatusOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) status: std::option::Option<crate::model::SagemakerServicecatalogStatus>,
    }
    impl Builder {
        /// <p>Whether Service Catalog is enabled or disabled in SageMaker.</p>
        pub fn status(mut self, input: crate::model::SagemakerServicecatalogStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p>Whether Service Catalog is enabled or disabled in SageMaker.</p>
        pub fn set_status(
            mut self,
            input: std::option::Option<crate::model::SagemakerServicecatalogStatus>,
        ) -> Self {
            self.status = input;
            self
        }
        /// Consumes the builder and constructs a [`GetSagemakerServicecatalogPortfolioStatusOutput`](crate::output::GetSagemakerServicecatalogPortfolioStatusOutput).
        pub fn build(self) -> crate::output::GetSagemakerServicecatalogPortfolioStatusOutput {
            crate::output::GetSagemakerServicecatalogPortfolioStatusOutput {
                status: self.status,
            }
        }
    }
}
impl GetSagemakerServicecatalogPortfolioStatusOutput {
    /// Creates a new builder-style object to manufacture [`GetSagemakerServicecatalogPortfolioStatusOutput`](crate::output::GetSagemakerServicecatalogPortfolioStatusOutput).
    pub fn builder() -> crate::output::get_sagemaker_servicecatalog_portfolio_status_output::Builder
    {
        crate::output::get_sagemaker_servicecatalog_portfolio_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 GetModelPackageGroupPolicyOutput {
    /// <p>The resource policy for the model group.</p>
    #[doc(hidden)]
    pub resource_policy: std::option::Option<std::string::String>,
}
impl GetModelPackageGroupPolicyOutput {
    /// <p>The resource policy for the model group.</p>
    pub fn resource_policy(&self) -> std::option::Option<&str> {
        self.resource_policy.as_deref()
    }
}
/// See [`GetModelPackageGroupPolicyOutput`](crate::output::GetModelPackageGroupPolicyOutput).
pub mod get_model_package_group_policy_output {

    /// A builder for [`GetModelPackageGroupPolicyOutput`](crate::output::GetModelPackageGroupPolicyOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) resource_policy: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The resource policy for the model group.</p>
        pub fn resource_policy(mut self, input: impl Into<std::string::String>) -> Self {
            self.resource_policy = Some(input.into());
            self
        }
        /// <p>The resource policy for the model group.</p>
        pub fn set_resource_policy(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.resource_policy = input;
            self
        }
        /// Consumes the builder and constructs a [`GetModelPackageGroupPolicyOutput`](crate::output::GetModelPackageGroupPolicyOutput).
        pub fn build(self) -> crate::output::GetModelPackageGroupPolicyOutput {
            crate::output::GetModelPackageGroupPolicyOutput {
                resource_policy: self.resource_policy,
            }
        }
    }
}
impl GetModelPackageGroupPolicyOutput {
    /// Creates a new builder-style object to manufacture [`GetModelPackageGroupPolicyOutput`](crate::output::GetModelPackageGroupPolicyOutput).
    pub fn builder() -> crate::output::get_model_package_group_policy_output::Builder {
        crate::output::get_model_package_group_policy_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetLineageGroupPolicyOutput {
    /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
    #[doc(hidden)]
    pub lineage_group_arn: std::option::Option<std::string::String>,
    /// <p>The resource policy that gives access to the lineage group in another account.</p>
    #[doc(hidden)]
    pub resource_policy: std::option::Option<std::string::String>,
}
impl GetLineageGroupPolicyOutput {
    /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
    pub fn lineage_group_arn(&self) -> std::option::Option<&str> {
        self.lineage_group_arn.as_deref()
    }
    /// <p>The resource policy that gives access to the lineage group in another account.</p>
    pub fn resource_policy(&self) -> std::option::Option<&str> {
        self.resource_policy.as_deref()
    }
}
/// See [`GetLineageGroupPolicyOutput`](crate::output::GetLineageGroupPolicyOutput).
pub mod get_lineage_group_policy_output {

    /// A builder for [`GetLineageGroupPolicyOutput`](crate::output::GetLineageGroupPolicyOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) lineage_group_arn: std::option::Option<std::string::String>,
        pub(crate) resource_policy: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
        pub fn lineage_group_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.lineage_group_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
        pub fn set_lineage_group_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.lineage_group_arn = input;
            self
        }
        /// <p>The resource policy that gives access to the lineage group in another account.</p>
        pub fn resource_policy(mut self, input: impl Into<std::string::String>) -> Self {
            self.resource_policy = Some(input.into());
            self
        }
        /// <p>The resource policy that gives access to the lineage group in another account.</p>
        pub fn set_resource_policy(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.resource_policy = input;
            self
        }
        /// Consumes the builder and constructs a [`GetLineageGroupPolicyOutput`](crate::output::GetLineageGroupPolicyOutput).
        pub fn build(self) -> crate::output::GetLineageGroupPolicyOutput {
            crate::output::GetLineageGroupPolicyOutput {
                lineage_group_arn: self.lineage_group_arn,
                resource_policy: self.resource_policy,
            }
        }
    }
}
impl GetLineageGroupPolicyOutput {
    /// Creates a new builder-style object to manufacture [`GetLineageGroupPolicyOutput`](crate::output::GetLineageGroupPolicyOutput).
    pub fn builder() -> crate::output::get_lineage_group_policy_output::Builder {
        crate::output::get_lineage_group_policy_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetDeviceFleetReportOutput {
    /// <p>The Amazon Resource Name (ARN) of the device.</p>
    #[doc(hidden)]
    pub device_fleet_arn: std::option::Option<std::string::String>,
    /// <p>The name of the fleet.</p>
    #[doc(hidden)]
    pub device_fleet_name: std::option::Option<std::string::String>,
    /// <p>The output configuration for storing sample data collected by the fleet.</p>
    #[doc(hidden)]
    pub output_config: std::option::Option<crate::model::EdgeOutputConfig>,
    /// <p>Description of the fleet.</p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p>Timestamp of when the report was generated.</p>
    #[doc(hidden)]
    pub report_generated: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Status of devices.</p>
    #[doc(hidden)]
    pub device_stats: std::option::Option<crate::model::DeviceStats>,
    /// <p>The versions of Edge Manager agent deployed on the fleet.</p>
    #[doc(hidden)]
    pub agent_versions: std::option::Option<std::vec::Vec<crate::model::AgentVersion>>,
    /// <p>Status of model on device.</p>
    #[doc(hidden)]
    pub model_stats: std::option::Option<std::vec::Vec<crate::model::EdgeModelStat>>,
}
impl GetDeviceFleetReportOutput {
    /// <p>The Amazon Resource Name (ARN) of the device.</p>
    pub fn device_fleet_arn(&self) -> std::option::Option<&str> {
        self.device_fleet_arn.as_deref()
    }
    /// <p>The name of the fleet.</p>
    pub fn device_fleet_name(&self) -> std::option::Option<&str> {
        self.device_fleet_name.as_deref()
    }
    /// <p>The output configuration for storing sample data collected by the fleet.</p>
    pub fn output_config(&self) -> std::option::Option<&crate::model::EdgeOutputConfig> {
        self.output_config.as_ref()
    }
    /// <p>Description of the fleet.</p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>Timestamp of when the report was generated.</p>
    pub fn report_generated(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.report_generated.as_ref()
    }
    /// <p>Status of devices.</p>
    pub fn device_stats(&self) -> std::option::Option<&crate::model::DeviceStats> {
        self.device_stats.as_ref()
    }
    /// <p>The versions of Edge Manager agent deployed on the fleet.</p>
    pub fn agent_versions(&self) -> std::option::Option<&[crate::model::AgentVersion]> {
        self.agent_versions.as_deref()
    }
    /// <p>Status of model on device.</p>
    pub fn model_stats(&self) -> std::option::Option<&[crate::model::EdgeModelStat]> {
        self.model_stats.as_deref()
    }
}
/// See [`GetDeviceFleetReportOutput`](crate::output::GetDeviceFleetReportOutput).
pub mod get_device_fleet_report_output {

    /// A builder for [`GetDeviceFleetReportOutput`](crate::output::GetDeviceFleetReportOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) device_fleet_arn: std::option::Option<std::string::String>,
        pub(crate) device_fleet_name: std::option::Option<std::string::String>,
        pub(crate) output_config: std::option::Option<crate::model::EdgeOutputConfig>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) report_generated: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) device_stats: std::option::Option<crate::model::DeviceStats>,
        pub(crate) agent_versions: std::option::Option<std::vec::Vec<crate::model::AgentVersion>>,
        pub(crate) model_stats: std::option::Option<std::vec::Vec<crate::model::EdgeModelStat>>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the device.</p>
        pub fn device_fleet_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.device_fleet_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the device.</p>
        pub fn set_device_fleet_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.device_fleet_arn = input;
            self
        }
        /// <p>The name of the fleet.</p>
        pub fn device_fleet_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.device_fleet_name = Some(input.into());
            self
        }
        /// <p>The name of the fleet.</p>
        pub fn set_device_fleet_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.device_fleet_name = input;
            self
        }
        /// <p>The output configuration for storing sample data collected by the fleet.</p>
        pub fn output_config(mut self, input: crate::model::EdgeOutputConfig) -> Self {
            self.output_config = Some(input);
            self
        }
        /// <p>The output configuration for storing sample data collected by the fleet.</p>
        pub fn set_output_config(
            mut self,
            input: std::option::Option<crate::model::EdgeOutputConfig>,
        ) -> Self {
            self.output_config = input;
            self
        }
        /// <p>Description of the fleet.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p>Description of the fleet.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// <p>Timestamp of when the report was generated.</p>
        pub fn report_generated(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.report_generated = Some(input);
            self
        }
        /// <p>Timestamp of when the report was generated.</p>
        pub fn set_report_generated(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.report_generated = input;
            self
        }
        /// <p>Status of devices.</p>
        pub fn device_stats(mut self, input: crate::model::DeviceStats) -> Self {
            self.device_stats = Some(input);
            self
        }
        /// <p>Status of devices.</p>
        pub fn set_device_stats(
            mut self,
            input: std::option::Option<crate::model::DeviceStats>,
        ) -> Self {
            self.device_stats = input;
            self
        }
        /// Appends an item to `agent_versions`.
        ///
        /// To override the contents of this collection use [`set_agent_versions`](Self::set_agent_versions).
        ///
        /// <p>The versions of Edge Manager agent deployed on the fleet.</p>
        pub fn agent_versions(mut self, input: crate::model::AgentVersion) -> Self {
            let mut v = self.agent_versions.unwrap_or_default();
            v.push(input);
            self.agent_versions = Some(v);
            self
        }
        /// <p>The versions of Edge Manager agent deployed on the fleet.</p>
        pub fn set_agent_versions(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::AgentVersion>>,
        ) -> Self {
            self.agent_versions = input;
            self
        }
        /// Appends an item to `model_stats`.
        ///
        /// To override the contents of this collection use [`set_model_stats`](Self::set_model_stats).
        ///
        /// <p>Status of model on device.</p>
        pub fn model_stats(mut self, input: crate::model::EdgeModelStat) -> Self {
            let mut v = self.model_stats.unwrap_or_default();
            v.push(input);
            self.model_stats = Some(v);
            self
        }
        /// <p>Status of model on device.</p>
        pub fn set_model_stats(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::EdgeModelStat>>,
        ) -> Self {
            self.model_stats = input;
            self
        }
        /// Consumes the builder and constructs a [`GetDeviceFleetReportOutput`](crate::output::GetDeviceFleetReportOutput).
        pub fn build(self) -> crate::output::GetDeviceFleetReportOutput {
            crate::output::GetDeviceFleetReportOutput {
                device_fleet_arn: self.device_fleet_arn,
                device_fleet_name: self.device_fleet_name,
                output_config: self.output_config,
                description: self.description,
                report_generated: self.report_generated,
                device_stats: self.device_stats,
                agent_versions: self.agent_versions,
                model_stats: self.model_stats,
            }
        }
    }
}
impl GetDeviceFleetReportOutput {
    /// Creates a new builder-style object to manufacture [`GetDeviceFleetReportOutput`](crate::output::GetDeviceFleetReportOutput).
    pub fn builder() -> crate::output::get_device_fleet_report_output::Builder {
        crate::output::get_device_fleet_report_output::Builder::default()
    }
}

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DisassociateTrialComponentOutput {
    /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
    #[doc(hidden)]
    pub trial_component_arn: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the trial.</p>
    #[doc(hidden)]
    pub trial_arn: std::option::Option<std::string::String>,
}
impl DisassociateTrialComponentOutput {
    /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
    pub fn trial_component_arn(&self) -> std::option::Option<&str> {
        self.trial_component_arn.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the trial.</p>
    pub fn trial_arn(&self) -> std::option::Option<&str> {
        self.trial_arn.as_deref()
    }
}
/// See [`DisassociateTrialComponentOutput`](crate::output::DisassociateTrialComponentOutput).
pub mod disassociate_trial_component_output {

    /// A builder for [`DisassociateTrialComponentOutput`](crate::output::DisassociateTrialComponentOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) trial_component_arn: std::option::Option<std::string::String>,
        pub(crate) trial_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
        pub fn trial_component_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.trial_component_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
        pub fn set_trial_component_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.trial_component_arn = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the trial.</p>
        pub fn trial_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.trial_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the trial.</p>
        pub fn set_trial_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.trial_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DisassociateTrialComponentOutput`](crate::output::DisassociateTrialComponentOutput).
        pub fn build(self) -> crate::output::DisassociateTrialComponentOutput {
            crate::output::DisassociateTrialComponentOutput {
                trial_component_arn: self.trial_component_arn,
                trial_arn: self.trial_arn,
            }
        }
    }
}
impl DisassociateTrialComponentOutput {
    /// Creates a new builder-style object to manufacture [`DisassociateTrialComponentOutput`](crate::output::DisassociateTrialComponentOutput).
    pub fn builder() -> crate::output::disassociate_trial_component_output::Builder {
        crate::output::disassociate_trial_component_output::Builder::default()
    }
}

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeWorkteamOutput {
    /// <p>A <code>Workteam</code> instance that contains information about the work team. </p>
    #[doc(hidden)]
    pub workteam: std::option::Option<crate::model::Workteam>,
}
impl DescribeWorkteamOutput {
    /// <p>A <code>Workteam</code> instance that contains information about the work team. </p>
    pub fn workteam(&self) -> std::option::Option<&crate::model::Workteam> {
        self.workteam.as_ref()
    }
}
/// See [`DescribeWorkteamOutput`](crate::output::DescribeWorkteamOutput).
pub mod describe_workteam_output {

    /// A builder for [`DescribeWorkteamOutput`](crate::output::DescribeWorkteamOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workteam: std::option::Option<crate::model::Workteam>,
    }
    impl Builder {
        /// <p>A <code>Workteam</code> instance that contains information about the work team. </p>
        pub fn workteam(mut self, input: crate::model::Workteam) -> Self {
            self.workteam = Some(input);
            self
        }
        /// <p>A <code>Workteam</code> instance that contains information about the work team. </p>
        pub fn set_workteam(mut self, input: std::option::Option<crate::model::Workteam>) -> Self {
            self.workteam = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeWorkteamOutput`](crate::output::DescribeWorkteamOutput).
        pub fn build(self) -> crate::output::DescribeWorkteamOutput {
            crate::output::DescribeWorkteamOutput {
                workteam: self.workteam,
            }
        }
    }
}
impl DescribeWorkteamOutput {
    /// Creates a new builder-style object to manufacture [`DescribeWorkteamOutput`](crate::output::DescribeWorkteamOutput).
    pub fn builder() -> crate::output::describe_workteam_output::Builder {
        crate::output::describe_workteam_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeWorkforceOutput {
    /// <p>A single private workforce, which is automatically created when you create your first private work team. You can create one private work force in each Amazon Web Services Region. By default, any workforce-related API operation used in a specific region will apply to the workforce created in that region. To learn how to create a private workforce, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private.html">Create a Private Workforce</a>.</p>
    #[doc(hidden)]
    pub workforce: std::option::Option<crate::model::Workforce>,
}
impl DescribeWorkforceOutput {
    /// <p>A single private workforce, which is automatically created when you create your first private work team. You can create one private work force in each Amazon Web Services Region. By default, any workforce-related API operation used in a specific region will apply to the workforce created in that region. To learn how to create a private workforce, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private.html">Create a Private Workforce</a>.</p>
    pub fn workforce(&self) -> std::option::Option<&crate::model::Workforce> {
        self.workforce.as_ref()
    }
}
/// See [`DescribeWorkforceOutput`](crate::output::DescribeWorkforceOutput).
pub mod describe_workforce_output {

    /// A builder for [`DescribeWorkforceOutput`](crate::output::DescribeWorkforceOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workforce: std::option::Option<crate::model::Workforce>,
    }
    impl Builder {
        /// <p>A single private workforce, which is automatically created when you create your first private work team. You can create one private work force in each Amazon Web Services Region. By default, any workforce-related API operation used in a specific region will apply to the workforce created in that region. To learn how to create a private workforce, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private.html">Create a Private Workforce</a>.</p>
        pub fn workforce(mut self, input: crate::model::Workforce) -> Self {
            self.workforce = Some(input);
            self
        }
        /// <p>A single private workforce, which is automatically created when you create your first private work team. You can create one private work force in each Amazon Web Services Region. By default, any workforce-related API operation used in a specific region will apply to the workforce created in that region. To learn how to create a private workforce, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private.html">Create a Private Workforce</a>.</p>
        pub fn set_workforce(
            mut self,
            input: std::option::Option<crate::model::Workforce>,
        ) -> Self {
            self.workforce = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeWorkforceOutput`](crate::output::DescribeWorkforceOutput).
        pub fn build(self) -> crate::output::DescribeWorkforceOutput {
            crate::output::DescribeWorkforceOutput {
                workforce: self.workforce,
            }
        }
    }
}
impl DescribeWorkforceOutput {
    /// Creates a new builder-style object to manufacture [`DescribeWorkforceOutput`](crate::output::DescribeWorkforceOutput).
    pub fn builder() -> crate::output::describe_workforce_output::Builder {
        crate::output::describe_workforce_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeUserProfileOutput {
    /// <p>The ID of the domain that contains the profile.</p>
    #[doc(hidden)]
    pub domain_id: std::option::Option<std::string::String>,
    /// <p>The user profile Amazon Resource Name (ARN).</p>
    #[doc(hidden)]
    pub user_profile_arn: std::option::Option<std::string::String>,
    /// <p>The user profile name.</p>
    #[doc(hidden)]
    pub user_profile_name: std::option::Option<std::string::String>,
    /// <p>The ID of the user's profile in the Amazon Elastic File System (EFS) volume.</p>
    #[doc(hidden)]
    pub home_efs_file_system_uid: std::option::Option<std::string::String>,
    /// <p>The status.</p>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::UserProfileStatus>,
    /// <p>The last modified time.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The creation time.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The failure reason.</p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>The IAM Identity Center user identifier.</p>
    #[doc(hidden)]
    pub single_sign_on_user_identifier: std::option::Option<std::string::String>,
    /// <p>The IAM Identity Center user value.</p>
    #[doc(hidden)]
    pub single_sign_on_user_value: std::option::Option<std::string::String>,
    /// <p>A collection of settings.</p>
    #[doc(hidden)]
    pub user_settings: std::option::Option<crate::model::UserSettings>,
}
impl DescribeUserProfileOutput {
    /// <p>The ID of the domain that contains the profile.</p>
    pub fn domain_id(&self) -> std::option::Option<&str> {
        self.domain_id.as_deref()
    }
    /// <p>The user profile Amazon Resource Name (ARN).</p>
    pub fn user_profile_arn(&self) -> std::option::Option<&str> {
        self.user_profile_arn.as_deref()
    }
    /// <p>The user profile name.</p>
    pub fn user_profile_name(&self) -> std::option::Option<&str> {
        self.user_profile_name.as_deref()
    }
    /// <p>The ID of the user's profile in the Amazon Elastic File System (EFS) volume.</p>
    pub fn home_efs_file_system_uid(&self) -> std::option::Option<&str> {
        self.home_efs_file_system_uid.as_deref()
    }
    /// <p>The status.</p>
    pub fn status(&self) -> std::option::Option<&crate::model::UserProfileStatus> {
        self.status.as_ref()
    }
    /// <p>The last modified time.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>The creation time.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The failure reason.</p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>The IAM Identity Center user identifier.</p>
    pub fn single_sign_on_user_identifier(&self) -> std::option::Option<&str> {
        self.single_sign_on_user_identifier.as_deref()
    }
    /// <p>The IAM Identity Center user value.</p>
    pub fn single_sign_on_user_value(&self) -> std::option::Option<&str> {
        self.single_sign_on_user_value.as_deref()
    }
    /// <p>A collection of settings.</p>
    pub fn user_settings(&self) -> std::option::Option<&crate::model::UserSettings> {
        self.user_settings.as_ref()
    }
}
/// See [`DescribeUserProfileOutput`](crate::output::DescribeUserProfileOutput).
pub mod describe_user_profile_output {

    /// A builder for [`DescribeUserProfileOutput`](crate::output::DescribeUserProfileOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) domain_id: std::option::Option<std::string::String>,
        pub(crate) user_profile_arn: std::option::Option<std::string::String>,
        pub(crate) user_profile_name: std::option::Option<std::string::String>,
        pub(crate) home_efs_file_system_uid: std::option::Option<std::string::String>,
        pub(crate) status: std::option::Option<crate::model::UserProfileStatus>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) single_sign_on_user_identifier: std::option::Option<std::string::String>,
        pub(crate) single_sign_on_user_value: std::option::Option<std::string::String>,
        pub(crate) user_settings: std::option::Option<crate::model::UserSettings>,
    }
    impl Builder {
        /// <p>The ID of the domain that contains the profile.</p>
        pub fn domain_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.domain_id = Some(input.into());
            self
        }
        /// <p>The ID of the domain that contains the profile.</p>
        pub fn set_domain_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.domain_id = input;
            self
        }
        /// <p>The user profile Amazon Resource Name (ARN).</p>
        pub fn user_profile_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.user_profile_arn = Some(input.into());
            self
        }
        /// <p>The user profile Amazon Resource Name (ARN).</p>
        pub fn set_user_profile_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.user_profile_arn = input;
            self
        }
        /// <p>The user profile name.</p>
        pub fn user_profile_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.user_profile_name = Some(input.into());
            self
        }
        /// <p>The user profile name.</p>
        pub fn set_user_profile_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.user_profile_name = input;
            self
        }
        /// <p>The ID of the user's profile in the Amazon Elastic File System (EFS) volume.</p>
        pub fn home_efs_file_system_uid(mut self, input: impl Into<std::string::String>) -> Self {
            self.home_efs_file_system_uid = Some(input.into());
            self
        }
        /// <p>The ID of the user's profile in the Amazon Elastic File System (EFS) volume.</p>
        pub fn set_home_efs_file_system_uid(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.home_efs_file_system_uid = input;
            self
        }
        /// <p>The status.</p>
        pub fn status(mut self, input: crate::model::UserProfileStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p>The status.</p>
        pub fn set_status(
            mut self,
            input: std::option::Option<crate::model::UserProfileStatus>,
        ) -> Self {
            self.status = input;
            self
        }
        /// <p>The last modified time.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>The last modified time.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>The creation time.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The creation time.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The failure reason.</p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>The failure reason.</p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// <p>The IAM Identity Center user identifier.</p>
        pub fn single_sign_on_user_identifier(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.single_sign_on_user_identifier = Some(input.into());
            self
        }
        /// <p>The IAM Identity Center user identifier.</p>
        pub fn set_single_sign_on_user_identifier(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.single_sign_on_user_identifier = input;
            self
        }
        /// <p>The IAM Identity Center user value.</p>
        pub fn single_sign_on_user_value(mut self, input: impl Into<std::string::String>) -> Self {
            self.single_sign_on_user_value = Some(input.into());
            self
        }
        /// <p>The IAM Identity Center user value.</p>
        pub fn set_single_sign_on_user_value(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.single_sign_on_user_value = input;
            self
        }
        /// <p>A collection of settings.</p>
        pub fn user_settings(mut self, input: crate::model::UserSettings) -> Self {
            self.user_settings = Some(input);
            self
        }
        /// <p>A collection of settings.</p>
        pub fn set_user_settings(
            mut self,
            input: std::option::Option<crate::model::UserSettings>,
        ) -> Self {
            self.user_settings = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeUserProfileOutput`](crate::output::DescribeUserProfileOutput).
        pub fn build(self) -> crate::output::DescribeUserProfileOutput {
            crate::output::DescribeUserProfileOutput {
                domain_id: self.domain_id,
                user_profile_arn: self.user_profile_arn,
                user_profile_name: self.user_profile_name,
                home_efs_file_system_uid: self.home_efs_file_system_uid,
                status: self.status,
                last_modified_time: self.last_modified_time,
                creation_time: self.creation_time,
                failure_reason: self.failure_reason,
                single_sign_on_user_identifier: self.single_sign_on_user_identifier,
                single_sign_on_user_value: self.single_sign_on_user_value,
                user_settings: self.user_settings,
            }
        }
    }
}
impl DescribeUserProfileOutput {
    /// Creates a new builder-style object to manufacture [`DescribeUserProfileOutput`](crate::output::DescribeUserProfileOutput).
    pub fn builder() -> crate::output::describe_user_profile_output::Builder {
        crate::output::describe_user_profile_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeTrialComponentOutput {
    /// <p>The name of the trial component.</p>
    #[doc(hidden)]
    pub trial_component_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
    #[doc(hidden)]
    pub trial_component_arn: std::option::Option<std::string::String>,
    /// <p>The name of the component as displayed. If <code>DisplayName</code> isn't specified, <code>TrialComponentName</code> is displayed.</p>
    #[doc(hidden)]
    pub display_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the source and, optionally, the job type.</p>
    #[doc(hidden)]
    pub source: std::option::Option<crate::model::TrialComponentSource>,
    /// <p>The status of the component. States include:</p>
    /// <ul>
    /// <li> <p>InProgress</p> </li>
    /// <li> <p>Completed</p> </li>
    /// <li> <p>Failed</p> </li>
    /// </ul>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::TrialComponentStatus>,
    /// <p>When the component started.</p>
    #[doc(hidden)]
    pub start_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>When the component ended.</p>
    #[doc(hidden)]
    pub end_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>When the component was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Who created the trial component.</p>
    #[doc(hidden)]
    pub created_by: std::option::Option<crate::model::UserContext>,
    /// <p>When the component was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Who last modified the component.</p>
    #[doc(hidden)]
    pub last_modified_by: std::option::Option<crate::model::UserContext>,
    /// <p>The hyperparameters of the component.</p>
    #[doc(hidden)]
    pub parameters: std::option::Option<
        std::collections::HashMap<std::string::String, crate::model::TrialComponentParameterValue>,
    >,
    /// <p>The input artifacts of the component.</p>
    #[doc(hidden)]
    pub input_artifacts: std::option::Option<
        std::collections::HashMap<std::string::String, crate::model::TrialComponentArtifact>,
    >,
    /// <p>The output artifacts of the component.</p>
    #[doc(hidden)]
    pub output_artifacts: std::option::Option<
        std::collections::HashMap<std::string::String, crate::model::TrialComponentArtifact>,
    >,
    /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
    #[doc(hidden)]
    pub metadata_properties: std::option::Option<crate::model::MetadataProperties>,
    /// <p>The metrics for the component.</p>
    #[doc(hidden)]
    pub metrics: std::option::Option<std::vec::Vec<crate::model::TrialComponentMetricSummary>>,
    /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
    #[doc(hidden)]
    pub lineage_group_arn: std::option::Option<std::string::String>,
    /// <p>A list of ARNs and, if applicable, job types for multiple sources of an experiment run.</p>
    #[doc(hidden)]
    pub sources: std::option::Option<std::vec::Vec<crate::model::TrialComponentSource>>,
}
impl DescribeTrialComponentOutput {
    /// <p>The name of the trial component.</p>
    pub fn trial_component_name(&self) -> std::option::Option<&str> {
        self.trial_component_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
    pub fn trial_component_arn(&self) -> std::option::Option<&str> {
        self.trial_component_arn.as_deref()
    }
    /// <p>The name of the component as displayed. If <code>DisplayName</code> isn't specified, <code>TrialComponentName</code> is displayed.</p>
    pub fn display_name(&self) -> std::option::Option<&str> {
        self.display_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the source and, optionally, the job type.</p>
    pub fn source(&self) -> std::option::Option<&crate::model::TrialComponentSource> {
        self.source.as_ref()
    }
    /// <p>The status of the component. States include:</p>
    /// <ul>
    /// <li> <p>InProgress</p> </li>
    /// <li> <p>Completed</p> </li>
    /// <li> <p>Failed</p> </li>
    /// </ul>
    pub fn status(&self) -> std::option::Option<&crate::model::TrialComponentStatus> {
        self.status.as_ref()
    }
    /// <p>When the component started.</p>
    pub fn start_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.start_time.as_ref()
    }
    /// <p>When the component ended.</p>
    pub fn end_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.end_time.as_ref()
    }
    /// <p>When the component was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>Who created the trial component.</p>
    pub fn created_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.created_by.as_ref()
    }
    /// <p>When the component was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>Who last modified the component.</p>
    pub fn last_modified_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.last_modified_by.as_ref()
    }
    /// <p>The hyperparameters of the component.</p>
    pub fn parameters(
        &self,
    ) -> std::option::Option<
        &std::collections::HashMap<std::string::String, crate::model::TrialComponentParameterValue>,
    > {
        self.parameters.as_ref()
    }
    /// <p>The input artifacts of the component.</p>
    pub fn input_artifacts(
        &self,
    ) -> std::option::Option<
        &std::collections::HashMap<std::string::String, crate::model::TrialComponentArtifact>,
    > {
        self.input_artifacts.as_ref()
    }
    /// <p>The output artifacts of the component.</p>
    pub fn output_artifacts(
        &self,
    ) -> std::option::Option<
        &std::collections::HashMap<std::string::String, crate::model::TrialComponentArtifact>,
    > {
        self.output_artifacts.as_ref()
    }
    /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
    pub fn metadata_properties(&self) -> std::option::Option<&crate::model::MetadataProperties> {
        self.metadata_properties.as_ref()
    }
    /// <p>The metrics for the component.</p>
    pub fn metrics(&self) -> std::option::Option<&[crate::model::TrialComponentMetricSummary]> {
        self.metrics.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
    pub fn lineage_group_arn(&self) -> std::option::Option<&str> {
        self.lineage_group_arn.as_deref()
    }
    /// <p>A list of ARNs and, if applicable, job types for multiple sources of an experiment run.</p>
    pub fn sources(&self) -> std::option::Option<&[crate::model::TrialComponentSource]> {
        self.sources.as_deref()
    }
}
/// See [`DescribeTrialComponentOutput`](crate::output::DescribeTrialComponentOutput).
pub mod describe_trial_component_output {

    /// A builder for [`DescribeTrialComponentOutput`](crate::output::DescribeTrialComponentOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) trial_component_name: std::option::Option<std::string::String>,
        pub(crate) trial_component_arn: std::option::Option<std::string::String>,
        pub(crate) display_name: std::option::Option<std::string::String>,
        pub(crate) source: std::option::Option<crate::model::TrialComponentSource>,
        pub(crate) status: std::option::Option<crate::model::TrialComponentStatus>,
        pub(crate) start_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) end_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) created_by: std::option::Option<crate::model::UserContext>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_by: std::option::Option<crate::model::UserContext>,
        pub(crate) parameters: std::option::Option<
            std::collections::HashMap<
                std::string::String,
                crate::model::TrialComponentParameterValue,
            >,
        >,
        pub(crate) input_artifacts: std::option::Option<
            std::collections::HashMap<std::string::String, crate::model::TrialComponentArtifact>,
        >,
        pub(crate) output_artifacts: std::option::Option<
            std::collections::HashMap<std::string::String, crate::model::TrialComponentArtifact>,
        >,
        pub(crate) metadata_properties: std::option::Option<crate::model::MetadataProperties>,
        pub(crate) metrics:
            std::option::Option<std::vec::Vec<crate::model::TrialComponentMetricSummary>>,
        pub(crate) lineage_group_arn: std::option::Option<std::string::String>,
        pub(crate) sources: std::option::Option<std::vec::Vec<crate::model::TrialComponentSource>>,
    }
    impl Builder {
        /// <p>The name of the trial component.</p>
        pub fn trial_component_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.trial_component_name = Some(input.into());
            self
        }
        /// <p>The name of the trial component.</p>
        pub fn set_trial_component_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.trial_component_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
        pub fn trial_component_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.trial_component_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
        pub fn set_trial_component_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.trial_component_arn = input;
            self
        }
        /// <p>The name of the component as displayed. If <code>DisplayName</code> isn't specified, <code>TrialComponentName</code> is displayed.</p>
        pub fn display_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.display_name = Some(input.into());
            self
        }
        /// <p>The name of the component as displayed. If <code>DisplayName</code> isn't specified, <code>TrialComponentName</code> is displayed.</p>
        pub fn set_display_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.display_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the source and, optionally, the job type.</p>
        pub fn source(mut self, input: crate::model::TrialComponentSource) -> Self {
            self.source = Some(input);
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the source and, optionally, the job type.</p>
        pub fn set_source(
            mut self,
            input: std::option::Option<crate::model::TrialComponentSource>,
        ) -> Self {
            self.source = input;
            self
        }
        /// <p>The status of the component. States include:</p>
        /// <ul>
        /// <li> <p>InProgress</p> </li>
        /// <li> <p>Completed</p> </li>
        /// <li> <p>Failed</p> </li>
        /// </ul>
        pub fn status(mut self, input: crate::model::TrialComponentStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p>The status of the component. States include:</p>
        /// <ul>
        /// <li> <p>InProgress</p> </li>
        /// <li> <p>Completed</p> </li>
        /// <li> <p>Failed</p> </li>
        /// </ul>
        pub fn set_status(
            mut self,
            input: std::option::Option<crate::model::TrialComponentStatus>,
        ) -> Self {
            self.status = input;
            self
        }
        /// <p>When the component started.</p>
        pub fn start_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.start_time = Some(input);
            self
        }
        /// <p>When the component started.</p>
        pub fn set_start_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.start_time = input;
            self
        }
        /// <p>When the component ended.</p>
        pub fn end_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.end_time = Some(input);
            self
        }
        /// <p>When the component ended.</p>
        pub fn set_end_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.end_time = input;
            self
        }
        /// <p>When the component was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>When the component was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>Who created the trial component.</p>
        pub fn created_by(mut self, input: crate::model::UserContext) -> Self {
            self.created_by = Some(input);
            self
        }
        /// <p>Who created the trial component.</p>
        pub fn set_created_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.created_by = input;
            self
        }
        /// <p>When the component was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>When the component was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>Who last modified the component.</p>
        pub fn last_modified_by(mut self, input: crate::model::UserContext) -> Self {
            self.last_modified_by = Some(input);
            self
        }
        /// <p>Who last modified the component.</p>
        pub fn set_last_modified_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.last_modified_by = input;
            self
        }
        /// Adds a key-value pair to `parameters`.
        ///
        /// To override the contents of this collection use [`set_parameters`](Self::set_parameters).
        ///
        /// <p>The hyperparameters of the component.</p>
        pub fn parameters(
            mut self,
            k: impl Into<std::string::String>,
            v: crate::model::TrialComponentParameterValue,
        ) -> Self {
            let mut hash_map = self.parameters.unwrap_or_default();
            hash_map.insert(k.into(), v);
            self.parameters = Some(hash_map);
            self
        }
        /// <p>The hyperparameters of the component.</p>
        pub fn set_parameters(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<
                    std::string::String,
                    crate::model::TrialComponentParameterValue,
                >,
            >,
        ) -> Self {
            self.parameters = input;
            self
        }
        /// Adds a key-value pair to `input_artifacts`.
        ///
        /// To override the contents of this collection use [`set_input_artifacts`](Self::set_input_artifacts).
        ///
        /// <p>The input artifacts of the component.</p>
        pub fn input_artifacts(
            mut self,
            k: impl Into<std::string::String>,
            v: crate::model::TrialComponentArtifact,
        ) -> Self {
            let mut hash_map = self.input_artifacts.unwrap_or_default();
            hash_map.insert(k.into(), v);
            self.input_artifacts = Some(hash_map);
            self
        }
        /// <p>The input artifacts of the component.</p>
        pub fn set_input_artifacts(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<
                    std::string::String,
                    crate::model::TrialComponentArtifact,
                >,
            >,
        ) -> Self {
            self.input_artifacts = input;
            self
        }
        /// Adds a key-value pair to `output_artifacts`.
        ///
        /// To override the contents of this collection use [`set_output_artifacts`](Self::set_output_artifacts).
        ///
        /// <p>The output artifacts of the component.</p>
        pub fn output_artifacts(
            mut self,
            k: impl Into<std::string::String>,
            v: crate::model::TrialComponentArtifact,
        ) -> Self {
            let mut hash_map = self.output_artifacts.unwrap_or_default();
            hash_map.insert(k.into(), v);
            self.output_artifacts = Some(hash_map);
            self
        }
        /// <p>The output artifacts of the component.</p>
        pub fn set_output_artifacts(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<
                    std::string::String,
                    crate::model::TrialComponentArtifact,
                >,
            >,
        ) -> Self {
            self.output_artifacts = input;
            self
        }
        /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
        pub fn metadata_properties(mut self, input: crate::model::MetadataProperties) -> Self {
            self.metadata_properties = Some(input);
            self
        }
        /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
        pub fn set_metadata_properties(
            mut self,
            input: std::option::Option<crate::model::MetadataProperties>,
        ) -> Self {
            self.metadata_properties = input;
            self
        }
        /// Appends an item to `metrics`.
        ///
        /// To override the contents of this collection use [`set_metrics`](Self::set_metrics).
        ///
        /// <p>The metrics for the component.</p>
        pub fn metrics(mut self, input: crate::model::TrialComponentMetricSummary) -> Self {
            let mut v = self.metrics.unwrap_or_default();
            v.push(input);
            self.metrics = Some(v);
            self
        }
        /// <p>The metrics for the component.</p>
        pub fn set_metrics(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::TrialComponentMetricSummary>>,
        ) -> Self {
            self.metrics = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
        pub fn lineage_group_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.lineage_group_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
        pub fn set_lineage_group_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.lineage_group_arn = input;
            self
        }
        /// Appends an item to `sources`.
        ///
        /// To override the contents of this collection use [`set_sources`](Self::set_sources).
        ///
        /// <p>A list of ARNs and, if applicable, job types for multiple sources of an experiment run.</p>
        pub fn sources(mut self, input: crate::model::TrialComponentSource) -> Self {
            let mut v = self.sources.unwrap_or_default();
            v.push(input);
            self.sources = Some(v);
            self
        }
        /// <p>A list of ARNs and, if applicable, job types for multiple sources of an experiment run.</p>
        pub fn set_sources(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::TrialComponentSource>>,
        ) -> Self {
            self.sources = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeTrialComponentOutput`](crate::output::DescribeTrialComponentOutput).
        pub fn build(self) -> crate::output::DescribeTrialComponentOutput {
            crate::output::DescribeTrialComponentOutput {
                trial_component_name: self.trial_component_name,
                trial_component_arn: self.trial_component_arn,
                display_name: self.display_name,
                source: self.source,
                status: self.status,
                start_time: self.start_time,
                end_time: self.end_time,
                creation_time: self.creation_time,
                created_by: self.created_by,
                last_modified_time: self.last_modified_time,
                last_modified_by: self.last_modified_by,
                parameters: self.parameters,
                input_artifacts: self.input_artifacts,
                output_artifacts: self.output_artifacts,
                metadata_properties: self.metadata_properties,
                metrics: self.metrics,
                lineage_group_arn: self.lineage_group_arn,
                sources: self.sources,
            }
        }
    }
}
impl DescribeTrialComponentOutput {
    /// Creates a new builder-style object to manufacture [`DescribeTrialComponentOutput`](crate::output::DescribeTrialComponentOutput).
    pub fn builder() -> crate::output::describe_trial_component_output::Builder {
        crate::output::describe_trial_component_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeTrialOutput {
    /// <p>The name of the trial.</p>
    #[doc(hidden)]
    pub trial_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the trial.</p>
    #[doc(hidden)]
    pub trial_arn: std::option::Option<std::string::String>,
    /// <p>The name of the trial as displayed. If <code>DisplayName</code> isn't specified, <code>TrialName</code> is displayed.</p>
    #[doc(hidden)]
    pub display_name: std::option::Option<std::string::String>,
    /// <p>The name of the experiment the trial is part of.</p>
    #[doc(hidden)]
    pub experiment_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the source and, optionally, the job type.</p>
    #[doc(hidden)]
    pub source: std::option::Option<crate::model::TrialSource>,
    /// <p>When the trial was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Who created the trial.</p>
    #[doc(hidden)]
    pub created_by: std::option::Option<crate::model::UserContext>,
    /// <p>When the trial was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Who last modified the trial.</p>
    #[doc(hidden)]
    pub last_modified_by: std::option::Option<crate::model::UserContext>,
    /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
    #[doc(hidden)]
    pub metadata_properties: std::option::Option<crate::model::MetadataProperties>,
}
impl DescribeTrialOutput {
    /// <p>The name of the trial.</p>
    pub fn trial_name(&self) -> std::option::Option<&str> {
        self.trial_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the trial.</p>
    pub fn trial_arn(&self) -> std::option::Option<&str> {
        self.trial_arn.as_deref()
    }
    /// <p>The name of the trial as displayed. If <code>DisplayName</code> isn't specified, <code>TrialName</code> is displayed.</p>
    pub fn display_name(&self) -> std::option::Option<&str> {
        self.display_name.as_deref()
    }
    /// <p>The name of the experiment the trial is part of.</p>
    pub fn experiment_name(&self) -> std::option::Option<&str> {
        self.experiment_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the source and, optionally, the job type.</p>
    pub fn source(&self) -> std::option::Option<&crate::model::TrialSource> {
        self.source.as_ref()
    }
    /// <p>When the trial was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>Who created the trial.</p>
    pub fn created_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.created_by.as_ref()
    }
    /// <p>When the trial was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>Who last modified the trial.</p>
    pub fn last_modified_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.last_modified_by.as_ref()
    }
    /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
    pub fn metadata_properties(&self) -> std::option::Option<&crate::model::MetadataProperties> {
        self.metadata_properties.as_ref()
    }
}
/// See [`DescribeTrialOutput`](crate::output::DescribeTrialOutput).
pub mod describe_trial_output {

    /// A builder for [`DescribeTrialOutput`](crate::output::DescribeTrialOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) trial_name: std::option::Option<std::string::String>,
        pub(crate) trial_arn: std::option::Option<std::string::String>,
        pub(crate) display_name: std::option::Option<std::string::String>,
        pub(crate) experiment_name: std::option::Option<std::string::String>,
        pub(crate) source: std::option::Option<crate::model::TrialSource>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) created_by: std::option::Option<crate::model::UserContext>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_by: std::option::Option<crate::model::UserContext>,
        pub(crate) metadata_properties: std::option::Option<crate::model::MetadataProperties>,
    }
    impl Builder {
        /// <p>The name of the trial.</p>
        pub fn trial_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.trial_name = Some(input.into());
            self
        }
        /// <p>The name of the trial.</p>
        pub fn set_trial_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.trial_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the trial.</p>
        pub fn trial_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.trial_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the trial.</p>
        pub fn set_trial_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.trial_arn = input;
            self
        }
        /// <p>The name of the trial as displayed. If <code>DisplayName</code> isn't specified, <code>TrialName</code> is displayed.</p>
        pub fn display_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.display_name = Some(input.into());
            self
        }
        /// <p>The name of the trial as displayed. If <code>DisplayName</code> isn't specified, <code>TrialName</code> is displayed.</p>
        pub fn set_display_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.display_name = input;
            self
        }
        /// <p>The name of the experiment the trial is part of.</p>
        pub fn experiment_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.experiment_name = Some(input.into());
            self
        }
        /// <p>The name of the experiment the trial is part of.</p>
        pub fn set_experiment_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.experiment_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the source and, optionally, the job type.</p>
        pub fn source(mut self, input: crate::model::TrialSource) -> Self {
            self.source = Some(input);
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the source and, optionally, the job type.</p>
        pub fn set_source(mut self, input: std::option::Option<crate::model::TrialSource>) -> Self {
            self.source = input;
            self
        }
        /// <p>When the trial was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>When the trial was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>Who created the trial.</p>
        pub fn created_by(mut self, input: crate::model::UserContext) -> Self {
            self.created_by = Some(input);
            self
        }
        /// <p>Who created the trial.</p>
        pub fn set_created_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.created_by = input;
            self
        }
        /// <p>When the trial was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>When the trial was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>Who last modified the trial.</p>
        pub fn last_modified_by(mut self, input: crate::model::UserContext) -> Self {
            self.last_modified_by = Some(input);
            self
        }
        /// <p>Who last modified the trial.</p>
        pub fn set_last_modified_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.last_modified_by = input;
            self
        }
        /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
        pub fn metadata_properties(mut self, input: crate::model::MetadataProperties) -> Self {
            self.metadata_properties = Some(input);
            self
        }
        /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
        pub fn set_metadata_properties(
            mut self,
            input: std::option::Option<crate::model::MetadataProperties>,
        ) -> Self {
            self.metadata_properties = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeTrialOutput`](crate::output::DescribeTrialOutput).
        pub fn build(self) -> crate::output::DescribeTrialOutput {
            crate::output::DescribeTrialOutput {
                trial_name: self.trial_name,
                trial_arn: self.trial_arn,
                display_name: self.display_name,
                experiment_name: self.experiment_name,
                source: self.source,
                creation_time: self.creation_time,
                created_by: self.created_by,
                last_modified_time: self.last_modified_time,
                last_modified_by: self.last_modified_by,
                metadata_properties: self.metadata_properties,
            }
        }
    }
}
impl DescribeTrialOutput {
    /// Creates a new builder-style object to manufacture [`DescribeTrialOutput`](crate::output::DescribeTrialOutput).
    pub fn builder() -> crate::output::describe_trial_output::Builder {
        crate::output::describe_trial_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeTransformJobOutput {
    /// <p>The name of the transform job.</p>
    #[doc(hidden)]
    pub transform_job_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the transform job.</p>
    #[doc(hidden)]
    pub transform_job_arn: std::option::Option<std::string::String>,
    /// <p>The status of the transform job. If the transform job failed, the reason is returned in the <code>FailureReason</code> field.</p>
    #[doc(hidden)]
    pub transform_job_status: std::option::Option<crate::model::TransformJobStatus>,
    /// <p>If the transform job failed, <code>FailureReason</code> describes why it failed. A transform job creates a log file, which includes error messages, and stores it as an Amazon S3 object. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/logging-cloudwatch.html">Log Amazon SageMaker Events with Amazon CloudWatch</a>.</p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>The name of the model used in the transform job.</p>
    #[doc(hidden)]
    pub model_name: std::option::Option<std::string::String>,
    /// <p>The maximum number of parallel requests on each instance node that can be launched in a transform job. The default value is 1.</p>
    #[doc(hidden)]
    pub max_concurrent_transforms: std::option::Option<i32>,
    /// <p>The timeout and maximum number of retries for processing a transform job invocation.</p>
    #[doc(hidden)]
    pub model_client_config: std::option::Option<crate::model::ModelClientConfig>,
    /// <p>The maximum payload size, in MB, used in the transform job.</p>
    #[doc(hidden)]
    pub max_payload_in_mb: std::option::Option<i32>,
    /// <p>Specifies the number of records to include in a mini-batch for an HTTP inference request. A <i>record</i> <i></i> is a single unit of input data that inference can be made on. For example, a single line in a CSV file is a record. </p>
    /// <p>To enable the batch strategy, you must set <code>SplitType</code> to <code>Line</code>, <code>RecordIO</code>, or <code>TFRecord</code>.</p>
    #[doc(hidden)]
    pub batch_strategy: std::option::Option<crate::model::BatchStrategy>,
    /// <p>The environment variables to set in the Docker container. We support up to 16 key and values entries in the map.</p>
    #[doc(hidden)]
    pub environment:
        std::option::Option<std::collections::HashMap<std::string::String, std::string::String>>,
    /// <p>Describes the dataset to be transformed and the Amazon S3 location where it is stored.</p>
    #[doc(hidden)]
    pub transform_input: std::option::Option<crate::model::TransformInput>,
    /// <p>Identifies the Amazon S3 location where you want Amazon SageMaker to save the results from the transform job.</p>
    #[doc(hidden)]
    pub transform_output: std::option::Option<crate::model::TransformOutput>,
    /// <p>Configuration to control how SageMaker captures inference data.</p>
    #[doc(hidden)]
    pub data_capture_config: std::option::Option<crate::model::BatchDataCaptureConfig>,
    /// <p>Describes the resources, including ML instance types and ML instance count, to use for the transform job.</p>
    #[doc(hidden)]
    pub transform_resources: std::option::Option<crate::model::TransformResources>,
    /// <p>A timestamp that shows when the transform Job was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Indicates when the transform job starts on ML instances. You are billed for the time interval between this time and the value of <code>TransformEndTime</code>.</p>
    #[doc(hidden)]
    pub transform_start_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Indicates when the transform job has been completed, or has stopped or failed. You are billed for the time interval between this time and the value of <code>TransformStartTime</code>.</p>
    #[doc(hidden)]
    pub transform_end_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The Amazon Resource Name (ARN) of the Amazon SageMaker Ground Truth labeling job that created the transform or training job.</p>
    #[doc(hidden)]
    pub labeling_job_arn: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the AutoML transform job.</p>
    #[doc(hidden)]
    pub auto_ml_job_arn: std::option::Option<std::string::String>,
    /// <p>The data structure used to specify the data to be used for inference in a batch transform job and to associate the data that is relevant to the prediction results in the output. The input filter provided allows you to exclude input data that is not needed for inference in a batch transform job. The output filter provided allows you to include input data relevant to interpreting the predictions in the output from the job. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html">Associate Prediction Results with their Corresponding Input Records</a>.</p>
    #[doc(hidden)]
    pub data_processing: std::option::Option<crate::model::DataProcessing>,
    /// <p>Associates a SageMaker job as a trial component with an experiment and trial. Specified when you call the following APIs:</p>
    /// <ul>
    /// <li> <p> <code>CreateProcessingJob</code> </p> </li>
    /// <li> <p> <code>CreateTrainingJob</code> </p> </li>
    /// <li> <p> <code>CreateTransformJob</code> </p> </li>
    /// </ul>
    #[doc(hidden)]
    pub experiment_config: std::option::Option<crate::model::ExperimentConfig>,
}
impl DescribeTransformJobOutput {
    /// <p>The name of the transform job.</p>
    pub fn transform_job_name(&self) -> std::option::Option<&str> {
        self.transform_job_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the transform job.</p>
    pub fn transform_job_arn(&self) -> std::option::Option<&str> {
        self.transform_job_arn.as_deref()
    }
    /// <p>The status of the transform job. If the transform job failed, the reason is returned in the <code>FailureReason</code> field.</p>
    pub fn transform_job_status(&self) -> std::option::Option<&crate::model::TransformJobStatus> {
        self.transform_job_status.as_ref()
    }
    /// <p>If the transform job failed, <code>FailureReason</code> describes why it failed. A transform job creates a log file, which includes error messages, and stores it as an Amazon S3 object. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/logging-cloudwatch.html">Log Amazon SageMaker Events with Amazon CloudWatch</a>.</p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>The name of the model used in the transform job.</p>
    pub fn model_name(&self) -> std::option::Option<&str> {
        self.model_name.as_deref()
    }
    /// <p>The maximum number of parallel requests on each instance node that can be launched in a transform job. The default value is 1.</p>
    pub fn max_concurrent_transforms(&self) -> std::option::Option<i32> {
        self.max_concurrent_transforms
    }
    /// <p>The timeout and maximum number of retries for processing a transform job invocation.</p>
    pub fn model_client_config(&self) -> std::option::Option<&crate::model::ModelClientConfig> {
        self.model_client_config.as_ref()
    }
    /// <p>The maximum payload size, in MB, used in the transform job.</p>
    pub fn max_payload_in_mb(&self) -> std::option::Option<i32> {
        self.max_payload_in_mb
    }
    /// <p>Specifies the number of records to include in a mini-batch for an HTTP inference request. A <i>record</i> <i></i> is a single unit of input data that inference can be made on. For example, a single line in a CSV file is a record. </p>
    /// <p>To enable the batch strategy, you must set <code>SplitType</code> to <code>Line</code>, <code>RecordIO</code>, or <code>TFRecord</code>.</p>
    pub fn batch_strategy(&self) -> std::option::Option<&crate::model::BatchStrategy> {
        self.batch_strategy.as_ref()
    }
    /// <p>The environment variables to set in the Docker container. We support up to 16 key and values entries in the map.</p>
    pub fn environment(
        &self,
    ) -> std::option::Option<&std::collections::HashMap<std::string::String, std::string::String>>
    {
        self.environment.as_ref()
    }
    /// <p>Describes the dataset to be transformed and the Amazon S3 location where it is stored.</p>
    pub fn transform_input(&self) -> std::option::Option<&crate::model::TransformInput> {
        self.transform_input.as_ref()
    }
    /// <p>Identifies the Amazon S3 location where you want Amazon SageMaker to save the results from the transform job.</p>
    pub fn transform_output(&self) -> std::option::Option<&crate::model::TransformOutput> {
        self.transform_output.as_ref()
    }
    /// <p>Configuration to control how SageMaker captures inference data.</p>
    pub fn data_capture_config(
        &self,
    ) -> std::option::Option<&crate::model::BatchDataCaptureConfig> {
        self.data_capture_config.as_ref()
    }
    /// <p>Describes the resources, including ML instance types and ML instance count, to use for the transform job.</p>
    pub fn transform_resources(&self) -> std::option::Option<&crate::model::TransformResources> {
        self.transform_resources.as_ref()
    }
    /// <p>A timestamp that shows when the transform Job was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>Indicates when the transform job starts on ML instances. You are billed for the time interval between this time and the value of <code>TransformEndTime</code>.</p>
    pub fn transform_start_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.transform_start_time.as_ref()
    }
    /// <p>Indicates when the transform job has been completed, or has stopped or failed. You are billed for the time interval between this time and the value of <code>TransformStartTime</code>.</p>
    pub fn transform_end_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.transform_end_time.as_ref()
    }
    /// <p>The Amazon Resource Name (ARN) of the Amazon SageMaker Ground Truth labeling job that created the transform or training job.</p>
    pub fn labeling_job_arn(&self) -> std::option::Option<&str> {
        self.labeling_job_arn.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the AutoML transform job.</p>
    pub fn auto_ml_job_arn(&self) -> std::option::Option<&str> {
        self.auto_ml_job_arn.as_deref()
    }
    /// <p>The data structure used to specify the data to be used for inference in a batch transform job and to associate the data that is relevant to the prediction results in the output. The input filter provided allows you to exclude input data that is not needed for inference in a batch transform job. The output filter provided allows you to include input data relevant to interpreting the predictions in the output from the job. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html">Associate Prediction Results with their Corresponding Input Records</a>.</p>
    pub fn data_processing(&self) -> std::option::Option<&crate::model::DataProcessing> {
        self.data_processing.as_ref()
    }
    /// <p>Associates a SageMaker job as a trial component with an experiment and trial. Specified when you call the following APIs:</p>
    /// <ul>
    /// <li> <p> <code>CreateProcessingJob</code> </p> </li>
    /// <li> <p> <code>CreateTrainingJob</code> </p> </li>
    /// <li> <p> <code>CreateTransformJob</code> </p> </li>
    /// </ul>
    pub fn experiment_config(&self) -> std::option::Option<&crate::model::ExperimentConfig> {
        self.experiment_config.as_ref()
    }
}
/// See [`DescribeTransformJobOutput`](crate::output::DescribeTransformJobOutput).
pub mod describe_transform_job_output {

    /// A builder for [`DescribeTransformJobOutput`](crate::output::DescribeTransformJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) transform_job_name: std::option::Option<std::string::String>,
        pub(crate) transform_job_arn: std::option::Option<std::string::String>,
        pub(crate) transform_job_status: std::option::Option<crate::model::TransformJobStatus>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) model_name: std::option::Option<std::string::String>,
        pub(crate) max_concurrent_transforms: std::option::Option<i32>,
        pub(crate) model_client_config: std::option::Option<crate::model::ModelClientConfig>,
        pub(crate) max_payload_in_mb: std::option::Option<i32>,
        pub(crate) batch_strategy: std::option::Option<crate::model::BatchStrategy>,
        pub(crate) environment: std::option::Option<
            std::collections::HashMap<std::string::String, std::string::String>,
        >,
        pub(crate) transform_input: std::option::Option<crate::model::TransformInput>,
        pub(crate) transform_output: std::option::Option<crate::model::TransformOutput>,
        pub(crate) data_capture_config: std::option::Option<crate::model::BatchDataCaptureConfig>,
        pub(crate) transform_resources: std::option::Option<crate::model::TransformResources>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) transform_start_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) transform_end_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) labeling_job_arn: std::option::Option<std::string::String>,
        pub(crate) auto_ml_job_arn: std::option::Option<std::string::String>,
        pub(crate) data_processing: std::option::Option<crate::model::DataProcessing>,
        pub(crate) experiment_config: std::option::Option<crate::model::ExperimentConfig>,
    }
    impl Builder {
        /// <p>The name of the transform job.</p>
        pub fn transform_job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.transform_job_name = Some(input.into());
            self
        }
        /// <p>The name of the transform job.</p>
        pub fn set_transform_job_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.transform_job_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the transform job.</p>
        pub fn transform_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.transform_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the transform job.</p>
        pub fn set_transform_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.transform_job_arn = input;
            self
        }
        /// <p>The status of the transform job. If the transform job failed, the reason is returned in the <code>FailureReason</code> field.</p>
        pub fn transform_job_status(mut self, input: crate::model::TransformJobStatus) -> Self {
            self.transform_job_status = Some(input);
            self
        }
        /// <p>The status of the transform job. If the transform job failed, the reason is returned in the <code>FailureReason</code> field.</p>
        pub fn set_transform_job_status(
            mut self,
            input: std::option::Option<crate::model::TransformJobStatus>,
        ) -> Self {
            self.transform_job_status = input;
            self
        }
        /// <p>If the transform job failed, <code>FailureReason</code> describes why it failed. A transform job creates a log file, which includes error messages, and stores it as an Amazon S3 object. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/logging-cloudwatch.html">Log Amazon SageMaker Events with Amazon CloudWatch</a>.</p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>If the transform job failed, <code>FailureReason</code> describes why it failed. A transform job creates a log file, which includes error messages, and stores it as an Amazon S3 object. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/logging-cloudwatch.html">Log Amazon SageMaker Events with Amazon CloudWatch</a>.</p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// <p>The name of the model used in the transform job.</p>
        pub fn model_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_name = Some(input.into());
            self
        }
        /// <p>The name of the model used in the transform job.</p>
        pub fn set_model_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.model_name = input;
            self
        }
        /// <p>The maximum number of parallel requests on each instance node that can be launched in a transform job. The default value is 1.</p>
        pub fn max_concurrent_transforms(mut self, input: i32) -> Self {
            self.max_concurrent_transforms = Some(input);
            self
        }
        /// <p>The maximum number of parallel requests on each instance node that can be launched in a transform job. The default value is 1.</p>
        pub fn set_max_concurrent_transforms(mut self, input: std::option::Option<i32>) -> Self {
            self.max_concurrent_transforms = input;
            self
        }
        /// <p>The timeout and maximum number of retries for processing a transform job invocation.</p>
        pub fn model_client_config(mut self, input: crate::model::ModelClientConfig) -> Self {
            self.model_client_config = Some(input);
            self
        }
        /// <p>The timeout and maximum number of retries for processing a transform job invocation.</p>
        pub fn set_model_client_config(
            mut self,
            input: std::option::Option<crate::model::ModelClientConfig>,
        ) -> Self {
            self.model_client_config = input;
            self
        }
        /// <p>The maximum payload size, in MB, used in the transform job.</p>
        pub fn max_payload_in_mb(mut self, input: i32) -> Self {
            self.max_payload_in_mb = Some(input);
            self
        }
        /// <p>The maximum payload size, in MB, used in the transform job.</p>
        pub fn set_max_payload_in_mb(mut self, input: std::option::Option<i32>) -> Self {
            self.max_payload_in_mb = input;
            self
        }
        /// <p>Specifies the number of records to include in a mini-batch for an HTTP inference request. A <i>record</i> <i></i> is a single unit of input data that inference can be made on. For example, a single line in a CSV file is a record. </p>
        /// <p>To enable the batch strategy, you must set <code>SplitType</code> to <code>Line</code>, <code>RecordIO</code>, or <code>TFRecord</code>.</p>
        pub fn batch_strategy(mut self, input: crate::model::BatchStrategy) -> Self {
            self.batch_strategy = Some(input);
            self
        }
        /// <p>Specifies the number of records to include in a mini-batch for an HTTP inference request. A <i>record</i> <i></i> is a single unit of input data that inference can be made on. For example, a single line in a CSV file is a record. </p>
        /// <p>To enable the batch strategy, you must set <code>SplitType</code> to <code>Line</code>, <code>RecordIO</code>, or <code>TFRecord</code>.</p>
        pub fn set_batch_strategy(
            mut self,
            input: std::option::Option<crate::model::BatchStrategy>,
        ) -> Self {
            self.batch_strategy = input;
            self
        }
        /// Adds a key-value pair to `environment`.
        ///
        /// To override the contents of this collection use [`set_environment`](Self::set_environment).
        ///
        /// <p>The environment variables to set in the Docker container. We support up to 16 key and values entries in the map.</p>
        pub fn environment(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            let mut hash_map = self.environment.unwrap_or_default();
            hash_map.insert(k.into(), v.into());
            self.environment = Some(hash_map);
            self
        }
        /// <p>The environment variables to set in the Docker container. We support up to 16 key and values entries in the map.</p>
        pub fn set_environment(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.environment = input;
            self
        }
        /// <p>Describes the dataset to be transformed and the Amazon S3 location where it is stored.</p>
        pub fn transform_input(mut self, input: crate::model::TransformInput) -> Self {
            self.transform_input = Some(input);
            self
        }
        /// <p>Describes the dataset to be transformed and the Amazon S3 location where it is stored.</p>
        pub fn set_transform_input(
            mut self,
            input: std::option::Option<crate::model::TransformInput>,
        ) -> Self {
            self.transform_input = input;
            self
        }
        /// <p>Identifies the Amazon S3 location where you want Amazon SageMaker to save the results from the transform job.</p>
        pub fn transform_output(mut self, input: crate::model::TransformOutput) -> Self {
            self.transform_output = Some(input);
            self
        }
        /// <p>Identifies the Amazon S3 location where you want Amazon SageMaker to save the results from the transform job.</p>
        pub fn set_transform_output(
            mut self,
            input: std::option::Option<crate::model::TransformOutput>,
        ) -> Self {
            self.transform_output = input;
            self
        }
        /// <p>Configuration to control how SageMaker captures inference data.</p>
        pub fn data_capture_config(mut self, input: crate::model::BatchDataCaptureConfig) -> Self {
            self.data_capture_config = Some(input);
            self
        }
        /// <p>Configuration to control how SageMaker captures inference data.</p>
        pub fn set_data_capture_config(
            mut self,
            input: std::option::Option<crate::model::BatchDataCaptureConfig>,
        ) -> Self {
            self.data_capture_config = input;
            self
        }
        /// <p>Describes the resources, including ML instance types and ML instance count, to use for the transform job.</p>
        pub fn transform_resources(mut self, input: crate::model::TransformResources) -> Self {
            self.transform_resources = Some(input);
            self
        }
        /// <p>Describes the resources, including ML instance types and ML instance count, to use for the transform job.</p>
        pub fn set_transform_resources(
            mut self,
            input: std::option::Option<crate::model::TransformResources>,
        ) -> Self {
            self.transform_resources = input;
            self
        }
        /// <p>A timestamp that shows when the transform Job was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>A timestamp that shows when the transform Job was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>Indicates when the transform job starts on ML instances. You are billed for the time interval between this time and the value of <code>TransformEndTime</code>.</p>
        pub fn transform_start_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.transform_start_time = Some(input);
            self
        }
        /// <p>Indicates when the transform job starts on ML instances. You are billed for the time interval between this time and the value of <code>TransformEndTime</code>.</p>
        pub fn set_transform_start_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.transform_start_time = input;
            self
        }
        /// <p>Indicates when the transform job has been completed, or has stopped or failed. You are billed for the time interval between this time and the value of <code>TransformStartTime</code>.</p>
        pub fn transform_end_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.transform_end_time = Some(input);
            self
        }
        /// <p>Indicates when the transform job has been completed, or has stopped or failed. You are billed for the time interval between this time and the value of <code>TransformStartTime</code>.</p>
        pub fn set_transform_end_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.transform_end_time = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the Amazon SageMaker Ground Truth labeling job that created the transform or training job.</p>
        pub fn labeling_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.labeling_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the Amazon SageMaker Ground Truth labeling job that created the transform or training job.</p>
        pub fn set_labeling_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.labeling_job_arn = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the AutoML transform job.</p>
        pub fn auto_ml_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.auto_ml_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the AutoML transform job.</p>
        pub fn set_auto_ml_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.auto_ml_job_arn = input;
            self
        }
        /// <p>The data structure used to specify the data to be used for inference in a batch transform job and to associate the data that is relevant to the prediction results in the output. The input filter provided allows you to exclude input data that is not needed for inference in a batch transform job. The output filter provided allows you to include input data relevant to interpreting the predictions in the output from the job. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html">Associate Prediction Results with their Corresponding Input Records</a>.</p>
        pub fn data_processing(mut self, input: crate::model::DataProcessing) -> Self {
            self.data_processing = Some(input);
            self
        }
        /// <p>The data structure used to specify the data to be used for inference in a batch transform job and to associate the data that is relevant to the prediction results in the output. The input filter provided allows you to exclude input data that is not needed for inference in a batch transform job. The output filter provided allows you to include input data relevant to interpreting the predictions in the output from the job. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html">Associate Prediction Results with their Corresponding Input Records</a>.</p>
        pub fn set_data_processing(
            mut self,
            input: std::option::Option<crate::model::DataProcessing>,
        ) -> Self {
            self.data_processing = input;
            self
        }
        /// <p>Associates a SageMaker job as a trial component with an experiment and trial. Specified when you call the following APIs:</p>
        /// <ul>
        /// <li> <p> <code>CreateProcessingJob</code> </p> </li>
        /// <li> <p> <code>CreateTrainingJob</code> </p> </li>
        /// <li> <p> <code>CreateTransformJob</code> </p> </li>
        /// </ul>
        pub fn experiment_config(mut self, input: crate::model::ExperimentConfig) -> Self {
            self.experiment_config = Some(input);
            self
        }
        /// <p>Associates a SageMaker job as a trial component with an experiment and trial. Specified when you call the following APIs:</p>
        /// <ul>
        /// <li> <p> <code>CreateProcessingJob</code> </p> </li>
        /// <li> <p> <code>CreateTrainingJob</code> </p> </li>
        /// <li> <p> <code>CreateTransformJob</code> </p> </li>
        /// </ul>
        pub fn set_experiment_config(
            mut self,
            input: std::option::Option<crate::model::ExperimentConfig>,
        ) -> Self {
            self.experiment_config = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeTransformJobOutput`](crate::output::DescribeTransformJobOutput).
        pub fn build(self) -> crate::output::DescribeTransformJobOutput {
            crate::output::DescribeTransformJobOutput {
                transform_job_name: self.transform_job_name,
                transform_job_arn: self.transform_job_arn,
                transform_job_status: self.transform_job_status,
                failure_reason: self.failure_reason,
                model_name: self.model_name,
                max_concurrent_transforms: self.max_concurrent_transforms,
                model_client_config: self.model_client_config,
                max_payload_in_mb: self.max_payload_in_mb,
                batch_strategy: self.batch_strategy,
                environment: self.environment,
                transform_input: self.transform_input,
                transform_output: self.transform_output,
                data_capture_config: self.data_capture_config,
                transform_resources: self.transform_resources,
                creation_time: self.creation_time,
                transform_start_time: self.transform_start_time,
                transform_end_time: self.transform_end_time,
                labeling_job_arn: self.labeling_job_arn,
                auto_ml_job_arn: self.auto_ml_job_arn,
                data_processing: self.data_processing,
                experiment_config: self.experiment_config,
            }
        }
    }
}
impl DescribeTransformJobOutput {
    /// Creates a new builder-style object to manufacture [`DescribeTransformJobOutput`](crate::output::DescribeTransformJobOutput).
    pub fn builder() -> crate::output::describe_transform_job_output::Builder {
        crate::output::describe_transform_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeTrainingJobOutput {
    /// <p> Name of the model training job. </p>
    #[doc(hidden)]
    pub training_job_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the training job.</p>
    #[doc(hidden)]
    pub training_job_arn: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the associated hyperparameter tuning job if the training job was launched by a hyperparameter tuning job.</p>
    #[doc(hidden)]
    pub tuning_job_arn: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the SageMaker Ground Truth labeling job that created the transform or training job.</p>
    #[doc(hidden)]
    pub labeling_job_arn: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of an AutoML job.</p>
    #[doc(hidden)]
    pub auto_ml_job_arn: std::option::Option<std::string::String>,
    /// <p>Information about the Amazon S3 location that is configured for storing model artifacts. </p>
    #[doc(hidden)]
    pub model_artifacts: std::option::Option<crate::model::ModelArtifacts>,
    /// <p>The status of the training job.</p>
    /// <p>SageMaker provides the following training job statuses:</p>
    /// <ul>
    /// <li> <p> <code>InProgress</code> - The training is in progress.</p> </li>
    /// <li> <p> <code>Completed</code> - The training job has completed.</p> </li>
    /// <li> <p> <code>Failed</code> - The training job has failed. To see the reason for the failure, see the <code>FailureReason</code> field in the response to a <code>DescribeTrainingJobResponse</code> call.</p> </li>
    /// <li> <p> <code>Stopping</code> - The training job is stopping.</p> </li>
    /// <li> <p> <code>Stopped</code> - The training job has stopped.</p> </li>
    /// </ul>
    /// <p>For more detailed information, see <code>SecondaryStatus</code>. </p>
    #[doc(hidden)]
    pub training_job_status: std::option::Option<crate::model::TrainingJobStatus>,
    /// <p> Provides detailed information about the state of the training job. For detailed information on the secondary status of the training job, see <code>StatusMessage</code> under <code>SecondaryStatusTransition</code>.</p>
    /// <p>SageMaker provides primary statuses and secondary statuses that apply to each of them:</p>
    /// <dl>
    /// <dt>
    /// InProgress
    /// </dt>
    /// <dd>
    /// <ul>
    /// <li> <p> <code>Starting</code> - Starting the training job.</p> </li>
    /// <li> <p> <code>Downloading</code> - An optional stage for algorithms that support <code>File</code> training input mode. It indicates that data is being downloaded to the ML storage volumes.</p> </li>
    /// <li> <p> <code>Training</code> - Training is in progress.</p> </li>
    /// <li> <p> <code>Interrupted</code> - The job stopped because the managed spot training instances were interrupted. </p> </li>
    /// <li> <p> <code>Uploading</code> - Training is complete and the model artifacts are being uploaded to the S3 location.</p> </li>
    /// </ul>
    /// </dd>
    /// <dt>
    /// Completed
    /// </dt>
    /// <dd>
    /// <ul>
    /// <li> <p> <code>Completed</code> - The training job has completed.</p> </li>
    /// </ul>
    /// </dd>
    /// <dt>
    /// Failed
    /// </dt>
    /// <dd>
    /// <ul>
    /// <li> <p> <code>Failed</code> - The training job has failed. The reason for the failure is returned in the <code>FailureReason</code> field of <code>DescribeTrainingJobResponse</code>.</p> </li>
    /// </ul>
    /// </dd>
    /// <dt>
    /// Stopped
    /// </dt>
    /// <dd>
    /// <ul>
    /// <li> <p> <code>MaxRuntimeExceeded</code> - The job stopped because it exceeded the maximum allowed runtime.</p> </li>
    /// <li> <p> <code>MaxWaitTimeExceeded</code> - The job stopped because it exceeded the maximum allowed wait time.</p> </li>
    /// <li> <p> <code>Stopped</code> - The training job has stopped.</p> </li>
    /// </ul>
    /// </dd>
    /// <dt>
    /// Stopping
    /// </dt>
    /// <dd>
    /// <ul>
    /// <li> <p> <code>Stopping</code> - Stopping the training job.</p> </li>
    /// </ul>
    /// </dd>
    /// </dl> <important>
    /// <p>Valid values for <code>SecondaryStatus</code> are subject to change. </p>
    /// </important>
    /// <p>We no longer support the following secondary statuses:</p>
    /// <ul>
    /// <li> <p> <code>LaunchingMLInstances</code> </p> </li>
    /// <li> <p> <code>PreparingTraining</code> </p> </li>
    /// <li> <p> <code>DownloadingTrainingImage</code> </p> </li>
    /// </ul>
    #[doc(hidden)]
    pub secondary_status: std::option::Option<crate::model::SecondaryStatus>,
    /// <p>If the training job failed, the reason it failed. </p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>Algorithm-specific parameters. </p>
    #[doc(hidden)]
    pub hyper_parameters:
        std::option::Option<std::collections::HashMap<std::string::String, std::string::String>>,
    /// <p>Information about the algorithm used for training, and algorithm metadata. </p>
    #[doc(hidden)]
    pub algorithm_specification: std::option::Option<crate::model::AlgorithmSpecification>,
    /// <p>The Amazon Web Services Identity and Access Management (IAM) role configured for the training job. </p>
    #[doc(hidden)]
    pub role_arn: std::option::Option<std::string::String>,
    /// <p>An array of <code>Channel</code> objects that describes each data input channel. </p>
    #[doc(hidden)]
    pub input_data_config: std::option::Option<std::vec::Vec<crate::model::Channel>>,
    /// <p>The S3 path where model artifacts that you configured when creating the job are stored. SageMaker creates subfolders for model artifacts. </p>
    #[doc(hidden)]
    pub output_data_config: std::option::Option<crate::model::OutputDataConfig>,
    /// <p>Resources, including ML compute instances and ML storage volumes, that are configured for model training. </p>
    #[doc(hidden)]
    pub resource_config: std::option::Option<crate::model::ResourceConfig>,
    /// <p>A <code>VpcConfig</code> object that specifies the VPC that this training job has access to. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>.</p>
    #[doc(hidden)]
    pub vpc_config: std::option::Option<crate::model::VpcConfig>,
    /// <p>Specifies a limit to how long a model training job can run. It also specifies how long a managed Spot training job has to complete. When the job reaches the time limit, SageMaker ends the training job. Use this API to cap model training costs.</p>
    /// <p>To stop a job, SageMaker sends the algorithm the <code>SIGTERM</code> signal, which delays job termination for 120 seconds. Algorithms can use this 120-second window to save the model artifacts, so the results of training are not lost. </p>
    #[doc(hidden)]
    pub stopping_condition: std::option::Option<crate::model::StoppingCondition>,
    /// <p>A timestamp that indicates when the training job was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Indicates the time when the training job starts on training instances. You are billed for the time interval between this time and the value of <code>TrainingEndTime</code>. The start time in CloudWatch Logs might be later than this time. The difference is due to the time it takes to download the training data and to the size of the training container.</p>
    #[doc(hidden)]
    pub training_start_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Indicates the time when the training job ends on training instances. You are billed for the time interval between the value of <code>TrainingStartTime</code> and this time. For successful jobs and stopped jobs, this is the time after model artifacts are uploaded. For failed jobs, this is the time when SageMaker detects a job failure.</p>
    #[doc(hidden)]
    pub training_end_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>A timestamp that indicates when the status of the training job was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>A history of all of the secondary statuses that the training job has transitioned through.</p>
    #[doc(hidden)]
    pub secondary_status_transitions:
        std::option::Option<std::vec::Vec<crate::model::SecondaryStatusTransition>>,
    /// <p>A collection of <code>MetricData</code> objects that specify the names, values, and dates and times that the training algorithm emitted to Amazon CloudWatch.</p>
    #[doc(hidden)]
    pub final_metric_data_list: std::option::Option<std::vec::Vec<crate::model::MetricData>>,
    /// <p>If you want to allow inbound or outbound network calls, except for calls between peers within a training cluster for distributed training, choose <code>True</code>. If you enable network isolation for training jobs that are configured to use a VPC, SageMaker downloads and uploads customer data and model artifacts through the specified VPC, but the training container does not have network access.</p>
    #[doc(hidden)]
    pub enable_network_isolation: bool,
    /// <p>To encrypt all communications between ML compute instances in distributed training, choose <code>True</code>. Encryption provides greater security for distributed training, but training might take longer. How long it takes depends on the amount of communication between compute instances, especially if you use a deep learning algorithms in distributed training.</p>
    #[doc(hidden)]
    pub enable_inter_container_traffic_encryption: bool,
    /// <p>A Boolean indicating whether managed spot training is enabled (<code>True</code>) or not (<code>False</code>).</p>
    #[doc(hidden)]
    pub enable_managed_spot_training: bool,
    /// <p>Contains information about the output location for managed spot training checkpoint data. </p>
    #[doc(hidden)]
    pub checkpoint_config: std::option::Option<crate::model::CheckpointConfig>,
    /// <p>The training time in seconds.</p>
    #[doc(hidden)]
    pub training_time_in_seconds: std::option::Option<i32>,
    /// <p>The billable time in seconds. Billable time refers to the absolute wall-clock time.</p>
    /// <p>Multiply <code>BillableTimeInSeconds</code> by the number of instances (<code>InstanceCount</code>) in your training cluster to get the total compute time SageMaker bills you if you run distributed training. The formula is as follows: <code>BillableTimeInSeconds * InstanceCount</code> .</p>
    /// <p>You can calculate the savings from using managed spot training using the formula <code>(1 - BillableTimeInSeconds / TrainingTimeInSeconds) * 100</code>. For example, if <code>BillableTimeInSeconds</code> is 100 and <code>TrainingTimeInSeconds</code> is 500, the savings is 80%.</p>
    #[doc(hidden)]
    pub billable_time_in_seconds: std::option::Option<i32>,
    /// <p>Configuration information for the Amazon SageMaker Debugger hook parameters, metric and tensor collections, and storage paths. To learn more about how to configure the <code>DebugHookConfig</code> parameter, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html">Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job</a>.</p>
    #[doc(hidden)]
    pub debug_hook_config: std::option::Option<crate::model::DebugHookConfig>,
    /// <p>Associates a SageMaker job as a trial component with an experiment and trial. Specified when you call the following APIs:</p>
    /// <ul>
    /// <li> <p> <code>CreateProcessingJob</code> </p> </li>
    /// <li> <p> <code>CreateTrainingJob</code> </p> </li>
    /// <li> <p> <code>CreateTransformJob</code> </p> </li>
    /// </ul>
    #[doc(hidden)]
    pub experiment_config: std::option::Option<crate::model::ExperimentConfig>,
    /// <p>Configuration information for Amazon SageMaker Debugger rules for debugging output tensors.</p>
    #[doc(hidden)]
    pub debug_rule_configurations:
        std::option::Option<std::vec::Vec<crate::model::DebugRuleConfiguration>>,
    /// <p>Configuration of storage locations for the Amazon SageMaker Debugger TensorBoard output data.</p>
    #[doc(hidden)]
    pub tensor_board_output_config: std::option::Option<crate::model::TensorBoardOutputConfig>,
    /// <p>Evaluation status of Amazon SageMaker Debugger rules for debugging on a training job.</p>
    #[doc(hidden)]
    pub debug_rule_evaluation_statuses:
        std::option::Option<std::vec::Vec<crate::model::DebugRuleEvaluationStatus>>,
    /// <p>Configuration information for Amazon SageMaker Debugger system monitoring, framework profiling, and storage paths.</p>
    #[doc(hidden)]
    pub profiler_config: std::option::Option<crate::model::ProfilerConfig>,
    /// <p>Configuration information for Amazon SageMaker Debugger rules for profiling system and framework metrics.</p>
    #[doc(hidden)]
    pub profiler_rule_configurations:
        std::option::Option<std::vec::Vec<crate::model::ProfilerRuleConfiguration>>,
    /// <p>Evaluation status of Amazon SageMaker Debugger rules for profiling on a training job.</p>
    #[doc(hidden)]
    pub profiler_rule_evaluation_statuses:
        std::option::Option<std::vec::Vec<crate::model::ProfilerRuleEvaluationStatus>>,
    /// <p>Profiling status of a training job.</p>
    #[doc(hidden)]
    pub profiling_status: std::option::Option<crate::model::ProfilingStatus>,
    /// <p>The number of times to retry the job when the job fails due to an <code>InternalServerError</code>.</p>
    #[doc(hidden)]
    pub retry_strategy: std::option::Option<crate::model::RetryStrategy>,
    /// <p>The environment variables to set in the Docker container.</p>
    #[doc(hidden)]
    pub environment:
        std::option::Option<std::collections::HashMap<std::string::String, std::string::String>>,
    /// <p>The status of the warm pool associated with the training job.</p>
    #[doc(hidden)]
    pub warm_pool_status: std::option::Option<crate::model::WarmPoolStatus>,
}
impl DescribeTrainingJobOutput {
    /// <p> Name of the model training job. </p>
    pub fn training_job_name(&self) -> std::option::Option<&str> {
        self.training_job_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the training job.</p>
    pub fn training_job_arn(&self) -> std::option::Option<&str> {
        self.training_job_arn.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the associated hyperparameter tuning job if the training job was launched by a hyperparameter tuning job.</p>
    pub fn tuning_job_arn(&self) -> std::option::Option<&str> {
        self.tuning_job_arn.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the SageMaker Ground Truth labeling job that created the transform or training job.</p>
    pub fn labeling_job_arn(&self) -> std::option::Option<&str> {
        self.labeling_job_arn.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of an AutoML job.</p>
    pub fn auto_ml_job_arn(&self) -> std::option::Option<&str> {
        self.auto_ml_job_arn.as_deref()
    }
    /// <p>Information about the Amazon S3 location that is configured for storing model artifacts. </p>
    pub fn model_artifacts(&self) -> std::option::Option<&crate::model::ModelArtifacts> {
        self.model_artifacts.as_ref()
    }
    /// <p>The status of the training job.</p>
    /// <p>SageMaker provides the following training job statuses:</p>
    /// <ul>
    /// <li> <p> <code>InProgress</code> - The training is in progress.</p> </li>
    /// <li> <p> <code>Completed</code> - The training job has completed.</p> </li>
    /// <li> <p> <code>Failed</code> - The training job has failed. To see the reason for the failure, see the <code>FailureReason</code> field in the response to a <code>DescribeTrainingJobResponse</code> call.</p> </li>
    /// <li> <p> <code>Stopping</code> - The training job is stopping.</p> </li>
    /// <li> <p> <code>Stopped</code> - The training job has stopped.</p> </li>
    /// </ul>
    /// <p>For more detailed information, see <code>SecondaryStatus</code>. </p>
    pub fn training_job_status(&self) -> std::option::Option<&crate::model::TrainingJobStatus> {
        self.training_job_status.as_ref()
    }
    /// <p> Provides detailed information about the state of the training job. For detailed information on the secondary status of the training job, see <code>StatusMessage</code> under <code>SecondaryStatusTransition</code>.</p>
    /// <p>SageMaker provides primary statuses and secondary statuses that apply to each of them:</p>
    /// <dl>
    /// <dt>
    /// InProgress
    /// </dt>
    /// <dd>
    /// <ul>
    /// <li> <p> <code>Starting</code> - Starting the training job.</p> </li>
    /// <li> <p> <code>Downloading</code> - An optional stage for algorithms that support <code>File</code> training input mode. It indicates that data is being downloaded to the ML storage volumes.</p> </li>
    /// <li> <p> <code>Training</code> - Training is in progress.</p> </li>
    /// <li> <p> <code>Interrupted</code> - The job stopped because the managed spot training instances were interrupted. </p> </li>
    /// <li> <p> <code>Uploading</code> - Training is complete and the model artifacts are being uploaded to the S3 location.</p> </li>
    /// </ul>
    /// </dd>
    /// <dt>
    /// Completed
    /// </dt>
    /// <dd>
    /// <ul>
    /// <li> <p> <code>Completed</code> - The training job has completed.</p> </li>
    /// </ul>
    /// </dd>
    /// <dt>
    /// Failed
    /// </dt>
    /// <dd>
    /// <ul>
    /// <li> <p> <code>Failed</code> - The training job has failed. The reason for the failure is returned in the <code>FailureReason</code> field of <code>DescribeTrainingJobResponse</code>.</p> </li>
    /// </ul>
    /// </dd>
    /// <dt>
    /// Stopped
    /// </dt>
    /// <dd>
    /// <ul>
    /// <li> <p> <code>MaxRuntimeExceeded</code> - The job stopped because it exceeded the maximum allowed runtime.</p> </li>
    /// <li> <p> <code>MaxWaitTimeExceeded</code> - The job stopped because it exceeded the maximum allowed wait time.</p> </li>
    /// <li> <p> <code>Stopped</code> - The training job has stopped.</p> </li>
    /// </ul>
    /// </dd>
    /// <dt>
    /// Stopping
    /// </dt>
    /// <dd>
    /// <ul>
    /// <li> <p> <code>Stopping</code> - Stopping the training job.</p> </li>
    /// </ul>
    /// </dd>
    /// </dl> <important>
    /// <p>Valid values for <code>SecondaryStatus</code> are subject to change. </p>
    /// </important>
    /// <p>We no longer support the following secondary statuses:</p>
    /// <ul>
    /// <li> <p> <code>LaunchingMLInstances</code> </p> </li>
    /// <li> <p> <code>PreparingTraining</code> </p> </li>
    /// <li> <p> <code>DownloadingTrainingImage</code> </p> </li>
    /// </ul>
    pub fn secondary_status(&self) -> std::option::Option<&crate::model::SecondaryStatus> {
        self.secondary_status.as_ref()
    }
    /// <p>If the training job failed, the reason it failed. </p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>Algorithm-specific parameters. </p>
    pub fn hyper_parameters(
        &self,
    ) -> std::option::Option<&std::collections::HashMap<std::string::String, std::string::String>>
    {
        self.hyper_parameters.as_ref()
    }
    /// <p>Information about the algorithm used for training, and algorithm metadata. </p>
    pub fn algorithm_specification(
        &self,
    ) -> std::option::Option<&crate::model::AlgorithmSpecification> {
        self.algorithm_specification.as_ref()
    }
    /// <p>The Amazon Web Services Identity and Access Management (IAM) role configured for the training job. </p>
    pub fn role_arn(&self) -> std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    /// <p>An array of <code>Channel</code> objects that describes each data input channel. </p>
    pub fn input_data_config(&self) -> std::option::Option<&[crate::model::Channel]> {
        self.input_data_config.as_deref()
    }
    /// <p>The S3 path where model artifacts that you configured when creating the job are stored. SageMaker creates subfolders for model artifacts. </p>
    pub fn output_data_config(&self) -> std::option::Option<&crate::model::OutputDataConfig> {
        self.output_data_config.as_ref()
    }
    /// <p>Resources, including ML compute instances and ML storage volumes, that are configured for model training. </p>
    pub fn resource_config(&self) -> std::option::Option<&crate::model::ResourceConfig> {
        self.resource_config.as_ref()
    }
    /// <p>A <code>VpcConfig</code> object that specifies the VPC that this training job has access to. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>.</p>
    pub fn vpc_config(&self) -> std::option::Option<&crate::model::VpcConfig> {
        self.vpc_config.as_ref()
    }
    /// <p>Specifies a limit to how long a model training job can run. It also specifies how long a managed Spot training job has to complete. When the job reaches the time limit, SageMaker ends the training job. Use this API to cap model training costs.</p>
    /// <p>To stop a job, SageMaker sends the algorithm the <code>SIGTERM</code> signal, which delays job termination for 120 seconds. Algorithms can use this 120-second window to save the model artifacts, so the results of training are not lost. </p>
    pub fn stopping_condition(&self) -> std::option::Option<&crate::model::StoppingCondition> {
        self.stopping_condition.as_ref()
    }
    /// <p>A timestamp that indicates when the training job was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>Indicates the time when the training job starts on training instances. You are billed for the time interval between this time and the value of <code>TrainingEndTime</code>. The start time in CloudWatch Logs might be later than this time. The difference is due to the time it takes to download the training data and to the size of the training container.</p>
    pub fn training_start_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.training_start_time.as_ref()
    }
    /// <p>Indicates the time when the training job ends on training instances. You are billed for the time interval between the value of <code>TrainingStartTime</code> and this time. For successful jobs and stopped jobs, this is the time after model artifacts are uploaded. For failed jobs, this is the time when SageMaker detects a job failure.</p>
    pub fn training_end_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.training_end_time.as_ref()
    }
    /// <p>A timestamp that indicates when the status of the training job was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>A history of all of the secondary statuses that the training job has transitioned through.</p>
    pub fn secondary_status_transitions(
        &self,
    ) -> std::option::Option<&[crate::model::SecondaryStatusTransition]> {
        self.secondary_status_transitions.as_deref()
    }
    /// <p>A collection of <code>MetricData</code> objects that specify the names, values, and dates and times that the training algorithm emitted to Amazon CloudWatch.</p>
    pub fn final_metric_data_list(&self) -> std::option::Option<&[crate::model::MetricData]> {
        self.final_metric_data_list.as_deref()
    }
    /// <p>If you want to allow inbound or outbound network calls, except for calls between peers within a training cluster for distributed training, choose <code>True</code>. If you enable network isolation for training jobs that are configured to use a VPC, SageMaker downloads and uploads customer data and model artifacts through the specified VPC, but the training container does not have network access.</p>
    pub fn enable_network_isolation(&self) -> bool {
        self.enable_network_isolation
    }
    /// <p>To encrypt all communications between ML compute instances in distributed training, choose <code>True</code>. Encryption provides greater security for distributed training, but training might take longer. How long it takes depends on the amount of communication between compute instances, especially if you use a deep learning algorithms in distributed training.</p>
    pub fn enable_inter_container_traffic_encryption(&self) -> bool {
        self.enable_inter_container_traffic_encryption
    }
    /// <p>A Boolean indicating whether managed spot training is enabled (<code>True</code>) or not (<code>False</code>).</p>
    pub fn enable_managed_spot_training(&self) -> bool {
        self.enable_managed_spot_training
    }
    /// <p>Contains information about the output location for managed spot training checkpoint data. </p>
    pub fn checkpoint_config(&self) -> std::option::Option<&crate::model::CheckpointConfig> {
        self.checkpoint_config.as_ref()
    }
    /// <p>The training time in seconds.</p>
    pub fn training_time_in_seconds(&self) -> std::option::Option<i32> {
        self.training_time_in_seconds
    }
    /// <p>The billable time in seconds. Billable time refers to the absolute wall-clock time.</p>
    /// <p>Multiply <code>BillableTimeInSeconds</code> by the number of instances (<code>InstanceCount</code>) in your training cluster to get the total compute time SageMaker bills you if you run distributed training. The formula is as follows: <code>BillableTimeInSeconds * InstanceCount</code> .</p>
    /// <p>You can calculate the savings from using managed spot training using the formula <code>(1 - BillableTimeInSeconds / TrainingTimeInSeconds) * 100</code>. For example, if <code>BillableTimeInSeconds</code> is 100 and <code>TrainingTimeInSeconds</code> is 500, the savings is 80%.</p>
    pub fn billable_time_in_seconds(&self) -> std::option::Option<i32> {
        self.billable_time_in_seconds
    }
    /// <p>Configuration information for the Amazon SageMaker Debugger hook parameters, metric and tensor collections, and storage paths. To learn more about how to configure the <code>DebugHookConfig</code> parameter, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html">Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job</a>.</p>
    pub fn debug_hook_config(&self) -> std::option::Option<&crate::model::DebugHookConfig> {
        self.debug_hook_config.as_ref()
    }
    /// <p>Associates a SageMaker job as a trial component with an experiment and trial. Specified when you call the following APIs:</p>
    /// <ul>
    /// <li> <p> <code>CreateProcessingJob</code> </p> </li>
    /// <li> <p> <code>CreateTrainingJob</code> </p> </li>
    /// <li> <p> <code>CreateTransformJob</code> </p> </li>
    /// </ul>
    pub fn experiment_config(&self) -> std::option::Option<&crate::model::ExperimentConfig> {
        self.experiment_config.as_ref()
    }
    /// <p>Configuration information for Amazon SageMaker Debugger rules for debugging output tensors.</p>
    pub fn debug_rule_configurations(
        &self,
    ) -> std::option::Option<&[crate::model::DebugRuleConfiguration]> {
        self.debug_rule_configurations.as_deref()
    }
    /// <p>Configuration of storage locations for the Amazon SageMaker Debugger TensorBoard output data.</p>
    pub fn tensor_board_output_config(
        &self,
    ) -> std::option::Option<&crate::model::TensorBoardOutputConfig> {
        self.tensor_board_output_config.as_ref()
    }
    /// <p>Evaluation status of Amazon SageMaker Debugger rules for debugging on a training job.</p>
    pub fn debug_rule_evaluation_statuses(
        &self,
    ) -> std::option::Option<&[crate::model::DebugRuleEvaluationStatus]> {
        self.debug_rule_evaluation_statuses.as_deref()
    }
    /// <p>Configuration information for Amazon SageMaker Debugger system monitoring, framework profiling, and storage paths.</p>
    pub fn profiler_config(&self) -> std::option::Option<&crate::model::ProfilerConfig> {
        self.profiler_config.as_ref()
    }
    /// <p>Configuration information for Amazon SageMaker Debugger rules for profiling system and framework metrics.</p>
    pub fn profiler_rule_configurations(
        &self,
    ) -> std::option::Option<&[crate::model::ProfilerRuleConfiguration]> {
        self.profiler_rule_configurations.as_deref()
    }
    /// <p>Evaluation status of Amazon SageMaker Debugger rules for profiling on a training job.</p>
    pub fn profiler_rule_evaluation_statuses(
        &self,
    ) -> std::option::Option<&[crate::model::ProfilerRuleEvaluationStatus]> {
        self.profiler_rule_evaluation_statuses.as_deref()
    }
    /// <p>Profiling status of a training job.</p>
    pub fn profiling_status(&self) -> std::option::Option<&crate::model::ProfilingStatus> {
        self.profiling_status.as_ref()
    }
    /// <p>The number of times to retry the job when the job fails due to an <code>InternalServerError</code>.</p>
    pub fn retry_strategy(&self) -> std::option::Option<&crate::model::RetryStrategy> {
        self.retry_strategy.as_ref()
    }
    /// <p>The environment variables to set in the Docker container.</p>
    pub fn environment(
        &self,
    ) -> std::option::Option<&std::collections::HashMap<std::string::String, std::string::String>>
    {
        self.environment.as_ref()
    }
    /// <p>The status of the warm pool associated with the training job.</p>
    pub fn warm_pool_status(&self) -> std::option::Option<&crate::model::WarmPoolStatus> {
        self.warm_pool_status.as_ref()
    }
}
/// See [`DescribeTrainingJobOutput`](crate::output::DescribeTrainingJobOutput).
pub mod describe_training_job_output {

    /// A builder for [`DescribeTrainingJobOutput`](crate::output::DescribeTrainingJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) training_job_name: std::option::Option<std::string::String>,
        pub(crate) training_job_arn: std::option::Option<std::string::String>,
        pub(crate) tuning_job_arn: std::option::Option<std::string::String>,
        pub(crate) labeling_job_arn: std::option::Option<std::string::String>,
        pub(crate) auto_ml_job_arn: std::option::Option<std::string::String>,
        pub(crate) model_artifacts: std::option::Option<crate::model::ModelArtifacts>,
        pub(crate) training_job_status: std::option::Option<crate::model::TrainingJobStatus>,
        pub(crate) secondary_status: std::option::Option<crate::model::SecondaryStatus>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) hyper_parameters: std::option::Option<
            std::collections::HashMap<std::string::String, std::string::String>,
        >,
        pub(crate) algorithm_specification:
            std::option::Option<crate::model::AlgorithmSpecification>,
        pub(crate) role_arn: std::option::Option<std::string::String>,
        pub(crate) input_data_config: std::option::Option<std::vec::Vec<crate::model::Channel>>,
        pub(crate) output_data_config: std::option::Option<crate::model::OutputDataConfig>,
        pub(crate) resource_config: std::option::Option<crate::model::ResourceConfig>,
        pub(crate) vpc_config: std::option::Option<crate::model::VpcConfig>,
        pub(crate) stopping_condition: std::option::Option<crate::model::StoppingCondition>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) training_start_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) training_end_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) secondary_status_transitions:
            std::option::Option<std::vec::Vec<crate::model::SecondaryStatusTransition>>,
        pub(crate) final_metric_data_list:
            std::option::Option<std::vec::Vec<crate::model::MetricData>>,
        pub(crate) enable_network_isolation: std::option::Option<bool>,
        pub(crate) enable_inter_container_traffic_encryption: std::option::Option<bool>,
        pub(crate) enable_managed_spot_training: std::option::Option<bool>,
        pub(crate) checkpoint_config: std::option::Option<crate::model::CheckpointConfig>,
        pub(crate) training_time_in_seconds: std::option::Option<i32>,
        pub(crate) billable_time_in_seconds: std::option::Option<i32>,
        pub(crate) debug_hook_config: std::option::Option<crate::model::DebugHookConfig>,
        pub(crate) experiment_config: std::option::Option<crate::model::ExperimentConfig>,
        pub(crate) debug_rule_configurations:
            std::option::Option<std::vec::Vec<crate::model::DebugRuleConfiguration>>,
        pub(crate) tensor_board_output_config:
            std::option::Option<crate::model::TensorBoardOutputConfig>,
        pub(crate) debug_rule_evaluation_statuses:
            std::option::Option<std::vec::Vec<crate::model::DebugRuleEvaluationStatus>>,
        pub(crate) profiler_config: std::option::Option<crate::model::ProfilerConfig>,
        pub(crate) profiler_rule_configurations:
            std::option::Option<std::vec::Vec<crate::model::ProfilerRuleConfiguration>>,
        pub(crate) profiler_rule_evaluation_statuses:
            std::option::Option<std::vec::Vec<crate::model::ProfilerRuleEvaluationStatus>>,
        pub(crate) profiling_status: std::option::Option<crate::model::ProfilingStatus>,
        pub(crate) retry_strategy: std::option::Option<crate::model::RetryStrategy>,
        pub(crate) environment: std::option::Option<
            std::collections::HashMap<std::string::String, std::string::String>,
        >,
        pub(crate) warm_pool_status: std::option::Option<crate::model::WarmPoolStatus>,
    }
    impl Builder {
        /// <p> Name of the model training job. </p>
        pub fn training_job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.training_job_name = Some(input.into());
            self
        }
        /// <p> Name of the model training job. </p>
        pub fn set_training_job_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.training_job_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the training job.</p>
        pub fn training_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.training_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the training job.</p>
        pub fn set_training_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.training_job_arn = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the associated hyperparameter tuning job if the training job was launched by a hyperparameter tuning job.</p>
        pub fn tuning_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.tuning_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the associated hyperparameter tuning job if the training job was launched by a hyperparameter tuning job.</p>
        pub fn set_tuning_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.tuning_job_arn = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the SageMaker Ground Truth labeling job that created the transform or training job.</p>
        pub fn labeling_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.labeling_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the SageMaker Ground Truth labeling job that created the transform or training job.</p>
        pub fn set_labeling_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.labeling_job_arn = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of an AutoML job.</p>
        pub fn auto_ml_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.auto_ml_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of an AutoML job.</p>
        pub fn set_auto_ml_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.auto_ml_job_arn = input;
            self
        }
        /// <p>Information about the Amazon S3 location that is configured for storing model artifacts. </p>
        pub fn model_artifacts(mut self, input: crate::model::ModelArtifacts) -> Self {
            self.model_artifacts = Some(input);
            self
        }
        /// <p>Information about the Amazon S3 location that is configured for storing model artifacts. </p>
        pub fn set_model_artifacts(
            mut self,
            input: std::option::Option<crate::model::ModelArtifacts>,
        ) -> Self {
            self.model_artifacts = input;
            self
        }
        /// <p>The status of the training job.</p>
        /// <p>SageMaker provides the following training job statuses:</p>
        /// <ul>
        /// <li> <p> <code>InProgress</code> - The training is in progress.</p> </li>
        /// <li> <p> <code>Completed</code> - The training job has completed.</p> </li>
        /// <li> <p> <code>Failed</code> - The training job has failed. To see the reason for the failure, see the <code>FailureReason</code> field in the response to a <code>DescribeTrainingJobResponse</code> call.</p> </li>
        /// <li> <p> <code>Stopping</code> - The training job is stopping.</p> </li>
        /// <li> <p> <code>Stopped</code> - The training job has stopped.</p> </li>
        /// </ul>
        /// <p>For more detailed information, see <code>SecondaryStatus</code>. </p>
        pub fn training_job_status(mut self, input: crate::model::TrainingJobStatus) -> Self {
            self.training_job_status = Some(input);
            self
        }
        /// <p>The status of the training job.</p>
        /// <p>SageMaker provides the following training job statuses:</p>
        /// <ul>
        /// <li> <p> <code>InProgress</code> - The training is in progress.</p> </li>
        /// <li> <p> <code>Completed</code> - The training job has completed.</p> </li>
        /// <li> <p> <code>Failed</code> - The training job has failed. To see the reason for the failure, see the <code>FailureReason</code> field in the response to a <code>DescribeTrainingJobResponse</code> call.</p> </li>
        /// <li> <p> <code>Stopping</code> - The training job is stopping.</p> </li>
        /// <li> <p> <code>Stopped</code> - The training job has stopped.</p> </li>
        /// </ul>
        /// <p>For more detailed information, see <code>SecondaryStatus</code>. </p>
        pub fn set_training_job_status(
            mut self,
            input: std::option::Option<crate::model::TrainingJobStatus>,
        ) -> Self {
            self.training_job_status = input;
            self
        }
        /// <p> Provides detailed information about the state of the training job. For detailed information on the secondary status of the training job, see <code>StatusMessage</code> under <code>SecondaryStatusTransition</code>.</p>
        /// <p>SageMaker provides primary statuses and secondary statuses that apply to each of them:</p>
        /// <dl>
        /// <dt>
        /// InProgress
        /// </dt>
        /// <dd>
        /// <ul>
        /// <li> <p> <code>Starting</code> - Starting the training job.</p> </li>
        /// <li> <p> <code>Downloading</code> - An optional stage for algorithms that support <code>File</code> training input mode. It indicates that data is being downloaded to the ML storage volumes.</p> </li>
        /// <li> <p> <code>Training</code> - Training is in progress.</p> </li>
        /// <li> <p> <code>Interrupted</code> - The job stopped because the managed spot training instances were interrupted. </p> </li>
        /// <li> <p> <code>Uploading</code> - Training is complete and the model artifacts are being uploaded to the S3 location.</p> </li>
        /// </ul>
        /// </dd>
        /// <dt>
        /// Completed
        /// </dt>
        /// <dd>
        /// <ul>
        /// <li> <p> <code>Completed</code> - The training job has completed.</p> </li>
        /// </ul>
        /// </dd>
        /// <dt>
        /// Failed
        /// </dt>
        /// <dd>
        /// <ul>
        /// <li> <p> <code>Failed</code> - The training job has failed. The reason for the failure is returned in the <code>FailureReason</code> field of <code>DescribeTrainingJobResponse</code>.</p> </li>
        /// </ul>
        /// </dd>
        /// <dt>
        /// Stopped
        /// </dt>
        /// <dd>
        /// <ul>
        /// <li> <p> <code>MaxRuntimeExceeded</code> - The job stopped because it exceeded the maximum allowed runtime.</p> </li>
        /// <li> <p> <code>MaxWaitTimeExceeded</code> - The job stopped because it exceeded the maximum allowed wait time.</p> </li>
        /// <li> <p> <code>Stopped</code> - The training job has stopped.</p> </li>
        /// </ul>
        /// </dd>
        /// <dt>
        /// Stopping
        /// </dt>
        /// <dd>
        /// <ul>
        /// <li> <p> <code>Stopping</code> - Stopping the training job.</p> </li>
        /// </ul>
        /// </dd>
        /// </dl> <important>
        /// <p>Valid values for <code>SecondaryStatus</code> are subject to change. </p>
        /// </important>
        /// <p>We no longer support the following secondary statuses:</p>
        /// <ul>
        /// <li> <p> <code>LaunchingMLInstances</code> </p> </li>
        /// <li> <p> <code>PreparingTraining</code> </p> </li>
        /// <li> <p> <code>DownloadingTrainingImage</code> </p> </li>
        /// </ul>
        pub fn secondary_status(mut self, input: crate::model::SecondaryStatus) -> Self {
            self.secondary_status = Some(input);
            self
        }
        /// <p> Provides detailed information about the state of the training job. For detailed information on the secondary status of the training job, see <code>StatusMessage</code> under <code>SecondaryStatusTransition</code>.</p>
        /// <p>SageMaker provides primary statuses and secondary statuses that apply to each of them:</p>
        /// <dl>
        /// <dt>
        /// InProgress
        /// </dt>
        /// <dd>
        /// <ul>
        /// <li> <p> <code>Starting</code> - Starting the training job.</p> </li>
        /// <li> <p> <code>Downloading</code> - An optional stage for algorithms that support <code>File</code> training input mode. It indicates that data is being downloaded to the ML storage volumes.</p> </li>
        /// <li> <p> <code>Training</code> - Training is in progress.</p> </li>
        /// <li> <p> <code>Interrupted</code> - The job stopped because the managed spot training instances were interrupted. </p> </li>
        /// <li> <p> <code>Uploading</code> - Training is complete and the model artifacts are being uploaded to the S3 location.</p> </li>
        /// </ul>
        /// </dd>
        /// <dt>
        /// Completed
        /// </dt>
        /// <dd>
        /// <ul>
        /// <li> <p> <code>Completed</code> - The training job has completed.</p> </li>
        /// </ul>
        /// </dd>
        /// <dt>
        /// Failed
        /// </dt>
        /// <dd>
        /// <ul>
        /// <li> <p> <code>Failed</code> - The training job has failed. The reason for the failure is returned in the <code>FailureReason</code> field of <code>DescribeTrainingJobResponse</code>.</p> </li>
        /// </ul>
        /// </dd>
        /// <dt>
        /// Stopped
        /// </dt>
        /// <dd>
        /// <ul>
        /// <li> <p> <code>MaxRuntimeExceeded</code> - The job stopped because it exceeded the maximum allowed runtime.</p> </li>
        /// <li> <p> <code>MaxWaitTimeExceeded</code> - The job stopped because it exceeded the maximum allowed wait time.</p> </li>
        /// <li> <p> <code>Stopped</code> - The training job has stopped.</p> </li>
        /// </ul>
        /// </dd>
        /// <dt>
        /// Stopping
        /// </dt>
        /// <dd>
        /// <ul>
        /// <li> <p> <code>Stopping</code> - Stopping the training job.</p> </li>
        /// </ul>
        /// </dd>
        /// </dl> <important>
        /// <p>Valid values for <code>SecondaryStatus</code> are subject to change. </p>
        /// </important>
        /// <p>We no longer support the following secondary statuses:</p>
        /// <ul>
        /// <li> <p> <code>LaunchingMLInstances</code> </p> </li>
        /// <li> <p> <code>PreparingTraining</code> </p> </li>
        /// <li> <p> <code>DownloadingTrainingImage</code> </p> </li>
        /// </ul>
        pub fn set_secondary_status(
            mut self,
            input: std::option::Option<crate::model::SecondaryStatus>,
        ) -> Self {
            self.secondary_status = input;
            self
        }
        /// <p>If the training job failed, the reason it failed. </p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>If the training job failed, the reason it failed. </p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// Adds a key-value pair to `hyper_parameters`.
        ///
        /// To override the contents of this collection use [`set_hyper_parameters`](Self::set_hyper_parameters).
        ///
        /// <p>Algorithm-specific parameters. </p>
        pub fn hyper_parameters(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            let mut hash_map = self.hyper_parameters.unwrap_or_default();
            hash_map.insert(k.into(), v.into());
            self.hyper_parameters = Some(hash_map);
            self
        }
        /// <p>Algorithm-specific parameters. </p>
        pub fn set_hyper_parameters(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.hyper_parameters = input;
            self
        }
        /// <p>Information about the algorithm used for training, and algorithm metadata. </p>
        pub fn algorithm_specification(
            mut self,
            input: crate::model::AlgorithmSpecification,
        ) -> Self {
            self.algorithm_specification = Some(input);
            self
        }
        /// <p>Information about the algorithm used for training, and algorithm metadata. </p>
        pub fn set_algorithm_specification(
            mut self,
            input: std::option::Option<crate::model::AlgorithmSpecification>,
        ) -> Self {
            self.algorithm_specification = input;
            self
        }
        /// <p>The Amazon Web Services Identity and Access Management (IAM) role configured for the training job. </p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.role_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Web Services Identity and Access Management (IAM) role configured for the training job. </p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.role_arn = input;
            self
        }
        /// Appends an item to `input_data_config`.
        ///
        /// To override the contents of this collection use [`set_input_data_config`](Self::set_input_data_config).
        ///
        /// <p>An array of <code>Channel</code> objects that describes each data input channel. </p>
        pub fn input_data_config(mut self, input: crate::model::Channel) -> Self {
            let mut v = self.input_data_config.unwrap_or_default();
            v.push(input);
            self.input_data_config = Some(v);
            self
        }
        /// <p>An array of <code>Channel</code> objects that describes each data input channel. </p>
        pub fn set_input_data_config(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Channel>>,
        ) -> Self {
            self.input_data_config = input;
            self
        }
        /// <p>The S3 path where model artifacts that you configured when creating the job are stored. SageMaker creates subfolders for model artifacts. </p>
        pub fn output_data_config(mut self, input: crate::model::OutputDataConfig) -> Self {
            self.output_data_config = Some(input);
            self
        }
        /// <p>The S3 path where model artifacts that you configured when creating the job are stored. SageMaker creates subfolders for model artifacts. </p>
        pub fn set_output_data_config(
            mut self,
            input: std::option::Option<crate::model::OutputDataConfig>,
        ) -> Self {
            self.output_data_config = input;
            self
        }
        /// <p>Resources, including ML compute instances and ML storage volumes, that are configured for model training. </p>
        pub fn resource_config(mut self, input: crate::model::ResourceConfig) -> Self {
            self.resource_config = Some(input);
            self
        }
        /// <p>Resources, including ML compute instances and ML storage volumes, that are configured for model training. </p>
        pub fn set_resource_config(
            mut self,
            input: std::option::Option<crate::model::ResourceConfig>,
        ) -> Self {
            self.resource_config = input;
            self
        }
        /// <p>A <code>VpcConfig</code> object that specifies the VPC that this training job has access to. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>.</p>
        pub fn vpc_config(mut self, input: crate::model::VpcConfig) -> Self {
            self.vpc_config = Some(input);
            self
        }
        /// <p>A <code>VpcConfig</code> object that specifies the VPC that this training job has access to. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>.</p>
        pub fn set_vpc_config(
            mut self,
            input: std::option::Option<crate::model::VpcConfig>,
        ) -> Self {
            self.vpc_config = input;
            self
        }
        /// <p>Specifies a limit to how long a model training job can run. It also specifies how long a managed Spot training job has to complete. When the job reaches the time limit, SageMaker ends the training job. Use this API to cap model training costs.</p>
        /// <p>To stop a job, SageMaker sends the algorithm the <code>SIGTERM</code> signal, which delays job termination for 120 seconds. Algorithms can use this 120-second window to save the model artifacts, so the results of training are not lost. </p>
        pub fn stopping_condition(mut self, input: crate::model::StoppingCondition) -> Self {
            self.stopping_condition = Some(input);
            self
        }
        /// <p>Specifies a limit to how long a model training job can run. It also specifies how long a managed Spot training job has to complete. When the job reaches the time limit, SageMaker ends the training job. Use this API to cap model training costs.</p>
        /// <p>To stop a job, SageMaker sends the algorithm the <code>SIGTERM</code> signal, which delays job termination for 120 seconds. Algorithms can use this 120-second window to save the model artifacts, so the results of training are not lost. </p>
        pub fn set_stopping_condition(
            mut self,
            input: std::option::Option<crate::model::StoppingCondition>,
        ) -> Self {
            self.stopping_condition = input;
            self
        }
        /// <p>A timestamp that indicates when the training job was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>A timestamp that indicates when the training job was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>Indicates the time when the training job starts on training instances. You are billed for the time interval between this time and the value of <code>TrainingEndTime</code>. The start time in CloudWatch Logs might be later than this time. The difference is due to the time it takes to download the training data and to the size of the training container.</p>
        pub fn training_start_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.training_start_time = Some(input);
            self
        }
        /// <p>Indicates the time when the training job starts on training instances. You are billed for the time interval between this time and the value of <code>TrainingEndTime</code>. The start time in CloudWatch Logs might be later than this time. The difference is due to the time it takes to download the training data and to the size of the training container.</p>
        pub fn set_training_start_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.training_start_time = input;
            self
        }
        /// <p>Indicates the time when the training job ends on training instances. You are billed for the time interval between the value of <code>TrainingStartTime</code> and this time. For successful jobs and stopped jobs, this is the time after model artifacts are uploaded. For failed jobs, this is the time when SageMaker detects a job failure.</p>
        pub fn training_end_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.training_end_time = Some(input);
            self
        }
        /// <p>Indicates the time when the training job ends on training instances. You are billed for the time interval between the value of <code>TrainingStartTime</code> and this time. For successful jobs and stopped jobs, this is the time after model artifacts are uploaded. For failed jobs, this is the time when SageMaker detects a job failure.</p>
        pub fn set_training_end_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.training_end_time = input;
            self
        }
        /// <p>A timestamp that indicates when the status of the training job was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>A timestamp that indicates when the status of the training job was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// Appends an item to `secondary_status_transitions`.
        ///
        /// To override the contents of this collection use [`set_secondary_status_transitions`](Self::set_secondary_status_transitions).
        ///
        /// <p>A history of all of the secondary statuses that the training job has transitioned through.</p>
        pub fn secondary_status_transitions(
            mut self,
            input: crate::model::SecondaryStatusTransition,
        ) -> Self {
            let mut v = self.secondary_status_transitions.unwrap_or_default();
            v.push(input);
            self.secondary_status_transitions = Some(v);
            self
        }
        /// <p>A history of all of the secondary statuses that the training job has transitioned through.</p>
        pub fn set_secondary_status_transitions(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::SecondaryStatusTransition>>,
        ) -> Self {
            self.secondary_status_transitions = input;
            self
        }
        /// Appends an item to `final_metric_data_list`.
        ///
        /// To override the contents of this collection use [`set_final_metric_data_list`](Self::set_final_metric_data_list).
        ///
        /// <p>A collection of <code>MetricData</code> objects that specify the names, values, and dates and times that the training algorithm emitted to Amazon CloudWatch.</p>
        pub fn final_metric_data_list(mut self, input: crate::model::MetricData) -> Self {
            let mut v = self.final_metric_data_list.unwrap_or_default();
            v.push(input);
            self.final_metric_data_list = Some(v);
            self
        }
        /// <p>A collection of <code>MetricData</code> objects that specify the names, values, and dates and times that the training algorithm emitted to Amazon CloudWatch.</p>
        pub fn set_final_metric_data_list(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::MetricData>>,
        ) -> Self {
            self.final_metric_data_list = input;
            self
        }
        /// <p>If you want to allow inbound or outbound network calls, except for calls between peers within a training cluster for distributed training, choose <code>True</code>. If you enable network isolation for training jobs that are configured to use a VPC, SageMaker downloads and uploads customer data and model artifacts through the specified VPC, but the training container does not have network access.</p>
        pub fn enable_network_isolation(mut self, input: bool) -> Self {
            self.enable_network_isolation = Some(input);
            self
        }
        /// <p>If you want to allow inbound or outbound network calls, except for calls between peers within a training cluster for distributed training, choose <code>True</code>. If you enable network isolation for training jobs that are configured to use a VPC, SageMaker downloads and uploads customer data and model artifacts through the specified VPC, but the training container does not have network access.</p>
        pub fn set_enable_network_isolation(mut self, input: std::option::Option<bool>) -> Self {
            self.enable_network_isolation = input;
            self
        }
        /// <p>To encrypt all communications between ML compute instances in distributed training, choose <code>True</code>. Encryption provides greater security for distributed training, but training might take longer. How long it takes depends on the amount of communication between compute instances, especially if you use a deep learning algorithms in distributed training.</p>
        pub fn enable_inter_container_traffic_encryption(mut self, input: bool) -> Self {
            self.enable_inter_container_traffic_encryption = Some(input);
            self
        }
        /// <p>To encrypt all communications between ML compute instances in distributed training, choose <code>True</code>. Encryption provides greater security for distributed training, but training might take longer. How long it takes depends on the amount of communication between compute instances, especially if you use a deep learning algorithms in distributed training.</p>
        pub fn set_enable_inter_container_traffic_encryption(
            mut self,
            input: std::option::Option<bool>,
        ) -> Self {
            self.enable_inter_container_traffic_encryption = input;
            self
        }
        /// <p>A Boolean indicating whether managed spot training is enabled (<code>True</code>) or not (<code>False</code>).</p>
        pub fn enable_managed_spot_training(mut self, input: bool) -> Self {
            self.enable_managed_spot_training = Some(input);
            self
        }
        /// <p>A Boolean indicating whether managed spot training is enabled (<code>True</code>) or not (<code>False</code>).</p>
        pub fn set_enable_managed_spot_training(
            mut self,
            input: std::option::Option<bool>,
        ) -> Self {
            self.enable_managed_spot_training = input;
            self
        }
        /// <p>Contains information about the output location for managed spot training checkpoint data. </p>
        pub fn checkpoint_config(mut self, input: crate::model::CheckpointConfig) -> Self {
            self.checkpoint_config = Some(input);
            self
        }
        /// <p>Contains information about the output location for managed spot training checkpoint data. </p>
        pub fn set_checkpoint_config(
            mut self,
            input: std::option::Option<crate::model::CheckpointConfig>,
        ) -> Self {
            self.checkpoint_config = input;
            self
        }
        /// <p>The training time in seconds.</p>
        pub fn training_time_in_seconds(mut self, input: i32) -> Self {
            self.training_time_in_seconds = Some(input);
            self
        }
        /// <p>The training time in seconds.</p>
        pub fn set_training_time_in_seconds(mut self, input: std::option::Option<i32>) -> Self {
            self.training_time_in_seconds = input;
            self
        }
        /// <p>The billable time in seconds. Billable time refers to the absolute wall-clock time.</p>
        /// <p>Multiply <code>BillableTimeInSeconds</code> by the number of instances (<code>InstanceCount</code>) in your training cluster to get the total compute time SageMaker bills you if you run distributed training. The formula is as follows: <code>BillableTimeInSeconds * InstanceCount</code> .</p>
        /// <p>You can calculate the savings from using managed spot training using the formula <code>(1 - BillableTimeInSeconds / TrainingTimeInSeconds) * 100</code>. For example, if <code>BillableTimeInSeconds</code> is 100 and <code>TrainingTimeInSeconds</code> is 500, the savings is 80%.</p>
        pub fn billable_time_in_seconds(mut self, input: i32) -> Self {
            self.billable_time_in_seconds = Some(input);
            self
        }
        /// <p>The billable time in seconds. Billable time refers to the absolute wall-clock time.</p>
        /// <p>Multiply <code>BillableTimeInSeconds</code> by the number of instances (<code>InstanceCount</code>) in your training cluster to get the total compute time SageMaker bills you if you run distributed training. The formula is as follows: <code>BillableTimeInSeconds * InstanceCount</code> .</p>
        /// <p>You can calculate the savings from using managed spot training using the formula <code>(1 - BillableTimeInSeconds / TrainingTimeInSeconds) * 100</code>. For example, if <code>BillableTimeInSeconds</code> is 100 and <code>TrainingTimeInSeconds</code> is 500, the savings is 80%.</p>
        pub fn set_billable_time_in_seconds(mut self, input: std::option::Option<i32>) -> Self {
            self.billable_time_in_seconds = input;
            self
        }
        /// <p>Configuration information for the Amazon SageMaker Debugger hook parameters, metric and tensor collections, and storage paths. To learn more about how to configure the <code>DebugHookConfig</code> parameter, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html">Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job</a>.</p>
        pub fn debug_hook_config(mut self, input: crate::model::DebugHookConfig) -> Self {
            self.debug_hook_config = Some(input);
            self
        }
        /// <p>Configuration information for the Amazon SageMaker Debugger hook parameters, metric and tensor collections, and storage paths. To learn more about how to configure the <code>DebugHookConfig</code> parameter, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html">Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job</a>.</p>
        pub fn set_debug_hook_config(
            mut self,
            input: std::option::Option<crate::model::DebugHookConfig>,
        ) -> Self {
            self.debug_hook_config = input;
            self
        }
        /// <p>Associates a SageMaker job as a trial component with an experiment and trial. Specified when you call the following APIs:</p>
        /// <ul>
        /// <li> <p> <code>CreateProcessingJob</code> </p> </li>
        /// <li> <p> <code>CreateTrainingJob</code> </p> </li>
        /// <li> <p> <code>CreateTransformJob</code> </p> </li>
        /// </ul>
        pub fn experiment_config(mut self, input: crate::model::ExperimentConfig) -> Self {
            self.experiment_config = Some(input);
            self
        }
        /// <p>Associates a SageMaker job as a trial component with an experiment and trial. Specified when you call the following APIs:</p>
        /// <ul>
        /// <li> <p> <code>CreateProcessingJob</code> </p> </li>
        /// <li> <p> <code>CreateTrainingJob</code> </p> </li>
        /// <li> <p> <code>CreateTransformJob</code> </p> </li>
        /// </ul>
        pub fn set_experiment_config(
            mut self,
            input: std::option::Option<crate::model::ExperimentConfig>,
        ) -> Self {
            self.experiment_config = input;
            self
        }
        /// Appends an item to `debug_rule_configurations`.
        ///
        /// To override the contents of this collection use [`set_debug_rule_configurations`](Self::set_debug_rule_configurations).
        ///
        /// <p>Configuration information for Amazon SageMaker Debugger rules for debugging output tensors.</p>
        pub fn debug_rule_configurations(
            mut self,
            input: crate::model::DebugRuleConfiguration,
        ) -> Self {
            let mut v = self.debug_rule_configurations.unwrap_or_default();
            v.push(input);
            self.debug_rule_configurations = Some(v);
            self
        }
        /// <p>Configuration information for Amazon SageMaker Debugger rules for debugging output tensors.</p>
        pub fn set_debug_rule_configurations(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::DebugRuleConfiguration>>,
        ) -> Self {
            self.debug_rule_configurations = input;
            self
        }
        /// <p>Configuration of storage locations for the Amazon SageMaker Debugger TensorBoard output data.</p>
        pub fn tensor_board_output_config(
            mut self,
            input: crate::model::TensorBoardOutputConfig,
        ) -> Self {
            self.tensor_board_output_config = Some(input);
            self
        }
        /// <p>Configuration of storage locations for the Amazon SageMaker Debugger TensorBoard output data.</p>
        pub fn set_tensor_board_output_config(
            mut self,
            input: std::option::Option<crate::model::TensorBoardOutputConfig>,
        ) -> Self {
            self.tensor_board_output_config = input;
            self
        }
        /// Appends an item to `debug_rule_evaluation_statuses`.
        ///
        /// To override the contents of this collection use [`set_debug_rule_evaluation_statuses`](Self::set_debug_rule_evaluation_statuses).
        ///
        /// <p>Evaluation status of Amazon SageMaker Debugger rules for debugging on a training job.</p>
        pub fn debug_rule_evaluation_statuses(
            mut self,
            input: crate::model::DebugRuleEvaluationStatus,
        ) -> Self {
            let mut v = self.debug_rule_evaluation_statuses.unwrap_or_default();
            v.push(input);
            self.debug_rule_evaluation_statuses = Some(v);
            self
        }
        /// <p>Evaluation status of Amazon SageMaker Debugger rules for debugging on a training job.</p>
        pub fn set_debug_rule_evaluation_statuses(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::DebugRuleEvaluationStatus>>,
        ) -> Self {
            self.debug_rule_evaluation_statuses = input;
            self
        }
        /// <p>Configuration information for Amazon SageMaker Debugger system monitoring, framework profiling, and storage paths.</p>
        pub fn profiler_config(mut self, input: crate::model::ProfilerConfig) -> Self {
            self.profiler_config = Some(input);
            self
        }
        /// <p>Configuration information for Amazon SageMaker Debugger system monitoring, framework profiling, and storage paths.</p>
        pub fn set_profiler_config(
            mut self,
            input: std::option::Option<crate::model::ProfilerConfig>,
        ) -> Self {
            self.profiler_config = input;
            self
        }
        /// Appends an item to `profiler_rule_configurations`.
        ///
        /// To override the contents of this collection use [`set_profiler_rule_configurations`](Self::set_profiler_rule_configurations).
        ///
        /// <p>Configuration information for Amazon SageMaker Debugger rules for profiling system and framework metrics.</p>
        pub fn profiler_rule_configurations(
            mut self,
            input: crate::model::ProfilerRuleConfiguration,
        ) -> Self {
            let mut v = self.profiler_rule_configurations.unwrap_or_default();
            v.push(input);
            self.profiler_rule_configurations = Some(v);
            self
        }
        /// <p>Configuration information for Amazon SageMaker Debugger rules for profiling system and framework metrics.</p>
        pub fn set_profiler_rule_configurations(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ProfilerRuleConfiguration>>,
        ) -> Self {
            self.profiler_rule_configurations = input;
            self
        }
        /// Appends an item to `profiler_rule_evaluation_statuses`.
        ///
        /// To override the contents of this collection use [`set_profiler_rule_evaluation_statuses`](Self::set_profiler_rule_evaluation_statuses).
        ///
        /// <p>Evaluation status of Amazon SageMaker Debugger rules for profiling on a training job.</p>
        pub fn profiler_rule_evaluation_statuses(
            mut self,
            input: crate::model::ProfilerRuleEvaluationStatus,
        ) -> Self {
            let mut v = self.profiler_rule_evaluation_statuses.unwrap_or_default();
            v.push(input);
            self.profiler_rule_evaluation_statuses = Some(v);
            self
        }
        /// <p>Evaluation status of Amazon SageMaker Debugger rules for profiling on a training job.</p>
        pub fn set_profiler_rule_evaluation_statuses(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ProfilerRuleEvaluationStatus>>,
        ) -> Self {
            self.profiler_rule_evaluation_statuses = input;
            self
        }
        /// <p>Profiling status of a training job.</p>
        pub fn profiling_status(mut self, input: crate::model::ProfilingStatus) -> Self {
            self.profiling_status = Some(input);
            self
        }
        /// <p>Profiling status of a training job.</p>
        pub fn set_profiling_status(
            mut self,
            input: std::option::Option<crate::model::ProfilingStatus>,
        ) -> Self {
            self.profiling_status = input;
            self
        }
        /// <p>The number of times to retry the job when the job fails due to an <code>InternalServerError</code>.</p>
        pub fn retry_strategy(mut self, input: crate::model::RetryStrategy) -> Self {
            self.retry_strategy = Some(input);
            self
        }
        /// <p>The number of times to retry the job when the job fails due to an <code>InternalServerError</code>.</p>
        pub fn set_retry_strategy(
            mut self,
            input: std::option::Option<crate::model::RetryStrategy>,
        ) -> Self {
            self.retry_strategy = input;
            self
        }
        /// Adds a key-value pair to `environment`.
        ///
        /// To override the contents of this collection use [`set_environment`](Self::set_environment).
        ///
        /// <p>The environment variables to set in the Docker container.</p>
        pub fn environment(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            let mut hash_map = self.environment.unwrap_or_default();
            hash_map.insert(k.into(), v.into());
            self.environment = Some(hash_map);
            self
        }
        /// <p>The environment variables to set in the Docker container.</p>
        pub fn set_environment(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.environment = input;
            self
        }
        /// <p>The status of the warm pool associated with the training job.</p>
        pub fn warm_pool_status(mut self, input: crate::model::WarmPoolStatus) -> Self {
            self.warm_pool_status = Some(input);
            self
        }
        /// <p>The status of the warm pool associated with the training job.</p>
        pub fn set_warm_pool_status(
            mut self,
            input: std::option::Option<crate::model::WarmPoolStatus>,
        ) -> Self {
            self.warm_pool_status = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeTrainingJobOutput`](crate::output::DescribeTrainingJobOutput).
        pub fn build(self) -> crate::output::DescribeTrainingJobOutput {
            crate::output::DescribeTrainingJobOutput {
                training_job_name: self.training_job_name,
                training_job_arn: self.training_job_arn,
                tuning_job_arn: self.tuning_job_arn,
                labeling_job_arn: self.labeling_job_arn,
                auto_ml_job_arn: self.auto_ml_job_arn,
                model_artifacts: self.model_artifacts,
                training_job_status: self.training_job_status,
                secondary_status: self.secondary_status,
                failure_reason: self.failure_reason,
                hyper_parameters: self.hyper_parameters,
                algorithm_specification: self.algorithm_specification,
                role_arn: self.role_arn,
                input_data_config: self.input_data_config,
                output_data_config: self.output_data_config,
                resource_config: self.resource_config,
                vpc_config: self.vpc_config,
                stopping_condition: self.stopping_condition,
                creation_time: self.creation_time,
                training_start_time: self.training_start_time,
                training_end_time: self.training_end_time,
                last_modified_time: self.last_modified_time,
                secondary_status_transitions: self.secondary_status_transitions,
                final_metric_data_list: self.final_metric_data_list,
                enable_network_isolation: self.enable_network_isolation.unwrap_or_default(),
                enable_inter_container_traffic_encryption: self
                    .enable_inter_container_traffic_encryption
                    .unwrap_or_default(),
                enable_managed_spot_training: self.enable_managed_spot_training.unwrap_or_default(),
                checkpoint_config: self.checkpoint_config,
                training_time_in_seconds: self.training_time_in_seconds,
                billable_time_in_seconds: self.billable_time_in_seconds,
                debug_hook_config: self.debug_hook_config,
                experiment_config: self.experiment_config,
                debug_rule_configurations: self.debug_rule_configurations,
                tensor_board_output_config: self.tensor_board_output_config,
                debug_rule_evaluation_statuses: self.debug_rule_evaluation_statuses,
                profiler_config: self.profiler_config,
                profiler_rule_configurations: self.profiler_rule_configurations,
                profiler_rule_evaluation_statuses: self.profiler_rule_evaluation_statuses,
                profiling_status: self.profiling_status,
                retry_strategy: self.retry_strategy,
                environment: self.environment,
                warm_pool_status: self.warm_pool_status,
            }
        }
    }
}
impl DescribeTrainingJobOutput {
    /// Creates a new builder-style object to manufacture [`DescribeTrainingJobOutput`](crate::output::DescribeTrainingJobOutput).
    pub fn builder() -> crate::output::describe_training_job_output::Builder {
        crate::output::describe_training_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeSubscribedWorkteamOutput {
    /// <p>A <code>Workteam</code> instance that contains information about the work team.</p>
    #[doc(hidden)]
    pub subscribed_workteam: std::option::Option<crate::model::SubscribedWorkteam>,
}
impl DescribeSubscribedWorkteamOutput {
    /// <p>A <code>Workteam</code> instance that contains information about the work team.</p>
    pub fn subscribed_workteam(&self) -> std::option::Option<&crate::model::SubscribedWorkteam> {
        self.subscribed_workteam.as_ref()
    }
}
/// See [`DescribeSubscribedWorkteamOutput`](crate::output::DescribeSubscribedWorkteamOutput).
pub mod describe_subscribed_workteam_output {

    /// A builder for [`DescribeSubscribedWorkteamOutput`](crate::output::DescribeSubscribedWorkteamOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) subscribed_workteam: std::option::Option<crate::model::SubscribedWorkteam>,
    }
    impl Builder {
        /// <p>A <code>Workteam</code> instance that contains information about the work team.</p>
        pub fn subscribed_workteam(mut self, input: crate::model::SubscribedWorkteam) -> Self {
            self.subscribed_workteam = Some(input);
            self
        }
        /// <p>A <code>Workteam</code> instance that contains information about the work team.</p>
        pub fn set_subscribed_workteam(
            mut self,
            input: std::option::Option<crate::model::SubscribedWorkteam>,
        ) -> Self {
            self.subscribed_workteam = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeSubscribedWorkteamOutput`](crate::output::DescribeSubscribedWorkteamOutput).
        pub fn build(self) -> crate::output::DescribeSubscribedWorkteamOutput {
            crate::output::DescribeSubscribedWorkteamOutput {
                subscribed_workteam: self.subscribed_workteam,
            }
        }
    }
}
impl DescribeSubscribedWorkteamOutput {
    /// Creates a new builder-style object to manufacture [`DescribeSubscribedWorkteamOutput`](crate::output::DescribeSubscribedWorkteamOutput).
    pub fn builder() -> crate::output::describe_subscribed_workteam_output::Builder {
        crate::output::describe_subscribed_workteam_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeStudioLifecycleConfigOutput {
    /// <p>The ARN of the Lifecycle Configuration to describe.</p>
    #[doc(hidden)]
    pub studio_lifecycle_config_arn: std::option::Option<std::string::String>,
    /// <p>The name of the Studio Lifecycle Configuration that is described.</p>
    #[doc(hidden)]
    pub studio_lifecycle_config_name: std::option::Option<std::string::String>,
    /// <p>The creation time of the Studio Lifecycle Configuration.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>This value is equivalent to CreationTime because Studio Lifecycle Configurations are immutable.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The content of your Studio Lifecycle Configuration script.</p>
    #[doc(hidden)]
    pub studio_lifecycle_config_content: std::option::Option<std::string::String>,
    /// <p>The App type that the Lifecycle Configuration is attached to.</p>
    #[doc(hidden)]
    pub studio_lifecycle_config_app_type:
        std::option::Option<crate::model::StudioLifecycleConfigAppType>,
}
impl DescribeStudioLifecycleConfigOutput {
    /// <p>The ARN of the Lifecycle Configuration to describe.</p>
    pub fn studio_lifecycle_config_arn(&self) -> std::option::Option<&str> {
        self.studio_lifecycle_config_arn.as_deref()
    }
    /// <p>The name of the Studio Lifecycle Configuration that is described.</p>
    pub fn studio_lifecycle_config_name(&self) -> std::option::Option<&str> {
        self.studio_lifecycle_config_name.as_deref()
    }
    /// <p>The creation time of the Studio Lifecycle Configuration.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>This value is equivalent to CreationTime because Studio Lifecycle Configurations are immutable.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>The content of your Studio Lifecycle Configuration script.</p>
    pub fn studio_lifecycle_config_content(&self) -> std::option::Option<&str> {
        self.studio_lifecycle_config_content.as_deref()
    }
    /// <p>The App type that the Lifecycle Configuration is attached to.</p>
    pub fn studio_lifecycle_config_app_type(
        &self,
    ) -> std::option::Option<&crate::model::StudioLifecycleConfigAppType> {
        self.studio_lifecycle_config_app_type.as_ref()
    }
}
/// See [`DescribeStudioLifecycleConfigOutput`](crate::output::DescribeStudioLifecycleConfigOutput).
pub mod describe_studio_lifecycle_config_output {

    /// A builder for [`DescribeStudioLifecycleConfigOutput`](crate::output::DescribeStudioLifecycleConfigOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) studio_lifecycle_config_arn: std::option::Option<std::string::String>,
        pub(crate) studio_lifecycle_config_name: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) studio_lifecycle_config_content: std::option::Option<std::string::String>,
        pub(crate) studio_lifecycle_config_app_type:
            std::option::Option<crate::model::StudioLifecycleConfigAppType>,
    }
    impl Builder {
        /// <p>The ARN of the Lifecycle Configuration to describe.</p>
        pub fn studio_lifecycle_config_arn(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.studio_lifecycle_config_arn = Some(input.into());
            self
        }
        /// <p>The ARN of the Lifecycle Configuration to describe.</p>
        pub fn set_studio_lifecycle_config_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.studio_lifecycle_config_arn = input;
            self
        }
        /// <p>The name of the Studio Lifecycle Configuration that is described.</p>
        pub fn studio_lifecycle_config_name(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.studio_lifecycle_config_name = Some(input.into());
            self
        }
        /// <p>The name of the Studio Lifecycle Configuration that is described.</p>
        pub fn set_studio_lifecycle_config_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.studio_lifecycle_config_name = input;
            self
        }
        /// <p>The creation time of the Studio Lifecycle Configuration.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The creation time of the Studio Lifecycle Configuration.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>This value is equivalent to CreationTime because Studio Lifecycle Configurations are immutable.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>This value is equivalent to CreationTime because Studio Lifecycle Configurations are immutable.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>The content of your Studio Lifecycle Configuration script.</p>
        pub fn studio_lifecycle_config_content(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.studio_lifecycle_config_content = Some(input.into());
            self
        }
        /// <p>The content of your Studio Lifecycle Configuration script.</p>
        pub fn set_studio_lifecycle_config_content(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.studio_lifecycle_config_content = input;
            self
        }
        /// <p>The App type that the Lifecycle Configuration is attached to.</p>
        pub fn studio_lifecycle_config_app_type(
            mut self,
            input: crate::model::StudioLifecycleConfigAppType,
        ) -> Self {
            self.studio_lifecycle_config_app_type = Some(input);
            self
        }
        /// <p>The App type that the Lifecycle Configuration is attached to.</p>
        pub fn set_studio_lifecycle_config_app_type(
            mut self,
            input: std::option::Option<crate::model::StudioLifecycleConfigAppType>,
        ) -> Self {
            self.studio_lifecycle_config_app_type = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeStudioLifecycleConfigOutput`](crate::output::DescribeStudioLifecycleConfigOutput).
        pub fn build(self) -> crate::output::DescribeStudioLifecycleConfigOutput {
            crate::output::DescribeStudioLifecycleConfigOutput {
                studio_lifecycle_config_arn: self.studio_lifecycle_config_arn,
                studio_lifecycle_config_name: self.studio_lifecycle_config_name,
                creation_time: self.creation_time,
                last_modified_time: self.last_modified_time,
                studio_lifecycle_config_content: self.studio_lifecycle_config_content,
                studio_lifecycle_config_app_type: self.studio_lifecycle_config_app_type,
            }
        }
    }
}
impl DescribeStudioLifecycleConfigOutput {
    /// Creates a new builder-style object to manufacture [`DescribeStudioLifecycleConfigOutput`](crate::output::DescribeStudioLifecycleConfigOutput).
    pub fn builder() -> crate::output::describe_studio_lifecycle_config_output::Builder {
        crate::output::describe_studio_lifecycle_config_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeSpaceOutput {
    /// <p>The ID of the associated Domain.</p>
    #[doc(hidden)]
    pub domain_id: std::option::Option<std::string::String>,
    /// <p>The space's Amazon Resource Name (ARN).</p>
    #[doc(hidden)]
    pub space_arn: std::option::Option<std::string::String>,
    /// <p>The name of the space.</p>
    #[doc(hidden)]
    pub space_name: std::option::Option<std::string::String>,
    /// <p>The ID of the space's profile in the Amazon Elastic File System volume.</p>
    #[doc(hidden)]
    pub home_efs_file_system_uid: std::option::Option<std::string::String>,
    /// <p>The status.</p>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::SpaceStatus>,
    /// <p>The last modified time.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The creation time.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The failure reason.</p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>A collection of space settings.</p>
    #[doc(hidden)]
    pub space_settings: std::option::Option<crate::model::SpaceSettings>,
}
impl DescribeSpaceOutput {
    /// <p>The ID of the associated Domain.</p>
    pub fn domain_id(&self) -> std::option::Option<&str> {
        self.domain_id.as_deref()
    }
    /// <p>The space's Amazon Resource Name (ARN).</p>
    pub fn space_arn(&self) -> std::option::Option<&str> {
        self.space_arn.as_deref()
    }
    /// <p>The name of the space.</p>
    pub fn space_name(&self) -> std::option::Option<&str> {
        self.space_name.as_deref()
    }
    /// <p>The ID of the space's profile in the Amazon Elastic File System volume.</p>
    pub fn home_efs_file_system_uid(&self) -> std::option::Option<&str> {
        self.home_efs_file_system_uid.as_deref()
    }
    /// <p>The status.</p>
    pub fn status(&self) -> std::option::Option<&crate::model::SpaceStatus> {
        self.status.as_ref()
    }
    /// <p>The last modified time.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>The creation time.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The failure reason.</p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>A collection of space settings.</p>
    pub fn space_settings(&self) -> std::option::Option<&crate::model::SpaceSettings> {
        self.space_settings.as_ref()
    }
}
/// See [`DescribeSpaceOutput`](crate::output::DescribeSpaceOutput).
pub mod describe_space_output {

    /// A builder for [`DescribeSpaceOutput`](crate::output::DescribeSpaceOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) domain_id: std::option::Option<std::string::String>,
        pub(crate) space_arn: std::option::Option<std::string::String>,
        pub(crate) space_name: std::option::Option<std::string::String>,
        pub(crate) home_efs_file_system_uid: std::option::Option<std::string::String>,
        pub(crate) status: std::option::Option<crate::model::SpaceStatus>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) space_settings: std::option::Option<crate::model::SpaceSettings>,
    }
    impl Builder {
        /// <p>The ID of the associated Domain.</p>
        pub fn domain_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.domain_id = Some(input.into());
            self
        }
        /// <p>The ID of the associated Domain.</p>
        pub fn set_domain_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.domain_id = input;
            self
        }
        /// <p>The space's Amazon Resource Name (ARN).</p>
        pub fn space_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.space_arn = Some(input.into());
            self
        }
        /// <p>The space's Amazon Resource Name (ARN).</p>
        pub fn set_space_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.space_arn = input;
            self
        }
        /// <p>The name of the space.</p>
        pub fn space_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.space_name = Some(input.into());
            self
        }
        /// <p>The name of the space.</p>
        pub fn set_space_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.space_name = input;
            self
        }
        /// <p>The ID of the space's profile in the Amazon Elastic File System volume.</p>
        pub fn home_efs_file_system_uid(mut self, input: impl Into<std::string::String>) -> Self {
            self.home_efs_file_system_uid = Some(input.into());
            self
        }
        /// <p>The ID of the space's profile in the Amazon Elastic File System volume.</p>
        pub fn set_home_efs_file_system_uid(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.home_efs_file_system_uid = input;
            self
        }
        /// <p>The status.</p>
        pub fn status(mut self, input: crate::model::SpaceStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p>The status.</p>
        pub fn set_status(mut self, input: std::option::Option<crate::model::SpaceStatus>) -> Self {
            self.status = input;
            self
        }
        /// <p>The last modified time.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>The last modified time.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>The creation time.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The creation time.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The failure reason.</p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>The failure reason.</p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// <p>A collection of space settings.</p>
        pub fn space_settings(mut self, input: crate::model::SpaceSettings) -> Self {
            self.space_settings = Some(input);
            self
        }
        /// <p>A collection of space settings.</p>
        pub fn set_space_settings(
            mut self,
            input: std::option::Option<crate::model::SpaceSettings>,
        ) -> Self {
            self.space_settings = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeSpaceOutput`](crate::output::DescribeSpaceOutput).
        pub fn build(self) -> crate::output::DescribeSpaceOutput {
            crate::output::DescribeSpaceOutput {
                domain_id: self.domain_id,
                space_arn: self.space_arn,
                space_name: self.space_name,
                home_efs_file_system_uid: self.home_efs_file_system_uid,
                status: self.status,
                last_modified_time: self.last_modified_time,
                creation_time: self.creation_time,
                failure_reason: self.failure_reason,
                space_settings: self.space_settings,
            }
        }
    }
}
impl DescribeSpaceOutput {
    /// Creates a new builder-style object to manufacture [`DescribeSpaceOutput`](crate::output::DescribeSpaceOutput).
    pub fn builder() -> crate::output::describe_space_output::Builder {
        crate::output::describe_space_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeProjectOutput {
    /// <p>The Amazon Resource Name (ARN) of the project.</p>
    #[doc(hidden)]
    pub project_arn: std::option::Option<std::string::String>,
    /// <p>The name of the project.</p>
    #[doc(hidden)]
    pub project_name: std::option::Option<std::string::String>,
    /// <p>The ID of the project.</p>
    #[doc(hidden)]
    pub project_id: std::option::Option<std::string::String>,
    /// <p>The description of the project.</p>
    #[doc(hidden)]
    pub project_description: std::option::Option<std::string::String>,
    /// <p>Information used to provision a service catalog product. For information, see <a href="https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html">What is Amazon Web Services Service Catalog</a>.</p>
    #[doc(hidden)]
    pub service_catalog_provisioning_details:
        std::option::Option<crate::model::ServiceCatalogProvisioningDetails>,
    /// <p>Information about a provisioned service catalog product.</p>
    #[doc(hidden)]
    pub service_catalog_provisioned_product_details:
        std::option::Option<crate::model::ServiceCatalogProvisionedProductDetails>,
    /// <p>The status of the project.</p>
    #[doc(hidden)]
    pub project_status: std::option::Option<crate::model::ProjectStatus>,
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    #[doc(hidden)]
    pub created_by: std::option::Option<crate::model::UserContext>,
    /// <p>The time when the project was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The timestamp when project was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    #[doc(hidden)]
    pub last_modified_by: std::option::Option<crate::model::UserContext>,
}
impl DescribeProjectOutput {
    /// <p>The Amazon Resource Name (ARN) of the project.</p>
    pub fn project_arn(&self) -> std::option::Option<&str> {
        self.project_arn.as_deref()
    }
    /// <p>The name of the project.</p>
    pub fn project_name(&self) -> std::option::Option<&str> {
        self.project_name.as_deref()
    }
    /// <p>The ID of the project.</p>
    pub fn project_id(&self) -> std::option::Option<&str> {
        self.project_id.as_deref()
    }
    /// <p>The description of the project.</p>
    pub fn project_description(&self) -> std::option::Option<&str> {
        self.project_description.as_deref()
    }
    /// <p>Information used to provision a service catalog product. For information, see <a href="https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html">What is Amazon Web Services Service Catalog</a>.</p>
    pub fn service_catalog_provisioning_details(
        &self,
    ) -> std::option::Option<&crate::model::ServiceCatalogProvisioningDetails> {
        self.service_catalog_provisioning_details.as_ref()
    }
    /// <p>Information about a provisioned service catalog product.</p>
    pub fn service_catalog_provisioned_product_details(
        &self,
    ) -> std::option::Option<&crate::model::ServiceCatalogProvisionedProductDetails> {
        self.service_catalog_provisioned_product_details.as_ref()
    }
    /// <p>The status of the project.</p>
    pub fn project_status(&self) -> std::option::Option<&crate::model::ProjectStatus> {
        self.project_status.as_ref()
    }
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    pub fn created_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.created_by.as_ref()
    }
    /// <p>The time when the project was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The timestamp when project was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    pub fn last_modified_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.last_modified_by.as_ref()
    }
}
/// See [`DescribeProjectOutput`](crate::output::DescribeProjectOutput).
pub mod describe_project_output {

    /// A builder for [`DescribeProjectOutput`](crate::output::DescribeProjectOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) project_arn: std::option::Option<std::string::String>,
        pub(crate) project_name: std::option::Option<std::string::String>,
        pub(crate) project_id: std::option::Option<std::string::String>,
        pub(crate) project_description: std::option::Option<std::string::String>,
        pub(crate) service_catalog_provisioning_details:
            std::option::Option<crate::model::ServiceCatalogProvisioningDetails>,
        pub(crate) service_catalog_provisioned_product_details:
            std::option::Option<crate::model::ServiceCatalogProvisionedProductDetails>,
        pub(crate) project_status: std::option::Option<crate::model::ProjectStatus>,
        pub(crate) created_by: std::option::Option<crate::model::UserContext>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_by: std::option::Option<crate::model::UserContext>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the project.</p>
        pub fn project_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.project_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the project.</p>
        pub fn set_project_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.project_arn = input;
            self
        }
        /// <p>The name of the project.</p>
        pub fn project_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.project_name = Some(input.into());
            self
        }
        /// <p>The name of the project.</p>
        pub fn set_project_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.project_name = input;
            self
        }
        /// <p>The ID of the project.</p>
        pub fn project_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.project_id = Some(input.into());
            self
        }
        /// <p>The ID of the project.</p>
        pub fn set_project_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.project_id = input;
            self
        }
        /// <p>The description of the project.</p>
        pub fn project_description(mut self, input: impl Into<std::string::String>) -> Self {
            self.project_description = Some(input.into());
            self
        }
        /// <p>The description of the project.</p>
        pub fn set_project_description(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.project_description = input;
            self
        }
        /// <p>Information used to provision a service catalog product. For information, see <a href="https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html">What is Amazon Web Services Service Catalog</a>.</p>
        pub fn service_catalog_provisioning_details(
            mut self,
            input: crate::model::ServiceCatalogProvisioningDetails,
        ) -> Self {
            self.service_catalog_provisioning_details = Some(input);
            self
        }
        /// <p>Information used to provision a service catalog product. For information, see <a href="https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html">What is Amazon Web Services Service Catalog</a>.</p>
        pub fn set_service_catalog_provisioning_details(
            mut self,
            input: std::option::Option<crate::model::ServiceCatalogProvisioningDetails>,
        ) -> Self {
            self.service_catalog_provisioning_details = input;
            self
        }
        /// <p>Information about a provisioned service catalog product.</p>
        pub fn service_catalog_provisioned_product_details(
            mut self,
            input: crate::model::ServiceCatalogProvisionedProductDetails,
        ) -> Self {
            self.service_catalog_provisioned_product_details = Some(input);
            self
        }
        /// <p>Information about a provisioned service catalog product.</p>
        pub fn set_service_catalog_provisioned_product_details(
            mut self,
            input: std::option::Option<crate::model::ServiceCatalogProvisionedProductDetails>,
        ) -> Self {
            self.service_catalog_provisioned_product_details = input;
            self
        }
        /// <p>The status of the project.</p>
        pub fn project_status(mut self, input: crate::model::ProjectStatus) -> Self {
            self.project_status = Some(input);
            self
        }
        /// <p>The status of the project.</p>
        pub fn set_project_status(
            mut self,
            input: std::option::Option<crate::model::ProjectStatus>,
        ) -> Self {
            self.project_status = input;
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn created_by(mut self, input: crate::model::UserContext) -> Self {
            self.created_by = Some(input);
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn set_created_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.created_by = input;
            self
        }
        /// <p>The time when the project was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The time when the project was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The timestamp when project was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>The timestamp when project was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn last_modified_by(mut self, input: crate::model::UserContext) -> Self {
            self.last_modified_by = Some(input);
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn set_last_modified_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.last_modified_by = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeProjectOutput`](crate::output::DescribeProjectOutput).
        pub fn build(self) -> crate::output::DescribeProjectOutput {
            crate::output::DescribeProjectOutput {
                project_arn: self.project_arn,
                project_name: self.project_name,
                project_id: self.project_id,
                project_description: self.project_description,
                service_catalog_provisioning_details: self.service_catalog_provisioning_details,
                service_catalog_provisioned_product_details: self
                    .service_catalog_provisioned_product_details,
                project_status: self.project_status,
                created_by: self.created_by,
                creation_time: self.creation_time,
                last_modified_time: self.last_modified_time,
                last_modified_by: self.last_modified_by,
            }
        }
    }
}
impl DescribeProjectOutput {
    /// Creates a new builder-style object to manufacture [`DescribeProjectOutput`](crate::output::DescribeProjectOutput).
    pub fn builder() -> crate::output::describe_project_output::Builder {
        crate::output::describe_project_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeProcessingJobOutput {
    /// <p>The inputs for a processing job.</p>
    #[doc(hidden)]
    pub processing_inputs: std::option::Option<std::vec::Vec<crate::model::ProcessingInput>>,
    /// <p>Output configuration for the processing job.</p>
    #[doc(hidden)]
    pub processing_output_config: std::option::Option<crate::model::ProcessingOutputConfig>,
    /// <p>The name of the processing job. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
    #[doc(hidden)]
    pub processing_job_name: std::option::Option<std::string::String>,
    /// <p>Identifies the resources, ML compute instances, and ML storage volumes to deploy for a processing job. In distributed training, you specify more than one instance.</p>
    #[doc(hidden)]
    pub processing_resources: std::option::Option<crate::model::ProcessingResources>,
    /// <p>The time limit for how long the processing job is allowed to run.</p>
    #[doc(hidden)]
    pub stopping_condition: std::option::Option<crate::model::ProcessingStoppingCondition>,
    /// <p>Configures the processing job to run a specified container image.</p>
    #[doc(hidden)]
    pub app_specification: std::option::Option<crate::model::AppSpecification>,
    /// <p>The environment variables set in the Docker container.</p>
    #[doc(hidden)]
    pub environment:
        std::option::Option<std::collections::HashMap<std::string::String, std::string::String>>,
    /// <p>Networking options for a processing job.</p>
    #[doc(hidden)]
    pub network_config: std::option::Option<crate::model::NetworkConfig>,
    /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.</p>
    #[doc(hidden)]
    pub role_arn: std::option::Option<std::string::String>,
    /// <p>The configuration information used to create an experiment.</p>
    #[doc(hidden)]
    pub experiment_config: std::option::Option<crate::model::ExperimentConfig>,
    /// <p>The Amazon Resource Name (ARN) of the processing job.</p>
    #[doc(hidden)]
    pub processing_job_arn: std::option::Option<std::string::String>,
    /// <p>Provides the status of a processing job.</p>
    #[doc(hidden)]
    pub processing_job_status: std::option::Option<crate::model::ProcessingJobStatus>,
    /// <p>An optional string, up to one KB in size, that contains metadata from the processing container when the processing job exits.</p>
    #[doc(hidden)]
    pub exit_message: std::option::Option<std::string::String>,
    /// <p>A string, up to one KB in size, that contains the reason a processing job failed, if it failed.</p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>The time at which the processing job completed.</p>
    #[doc(hidden)]
    pub processing_end_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The time at which the processing job started.</p>
    #[doc(hidden)]
    pub processing_start_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The time at which the processing job was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The time at which the processing job was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The ARN of a monitoring schedule for an endpoint associated with this processing job.</p>
    #[doc(hidden)]
    pub monitoring_schedule_arn: std::option::Option<std::string::String>,
    /// <p>The ARN of an AutoML job associated with this processing job.</p>
    #[doc(hidden)]
    pub auto_ml_job_arn: std::option::Option<std::string::String>,
    /// <p>The ARN of a training job associated with this processing job.</p>
    #[doc(hidden)]
    pub training_job_arn: std::option::Option<std::string::String>,
}
impl DescribeProcessingJobOutput {
    /// <p>The inputs for a processing job.</p>
    pub fn processing_inputs(&self) -> std::option::Option<&[crate::model::ProcessingInput]> {
        self.processing_inputs.as_deref()
    }
    /// <p>Output configuration for the processing job.</p>
    pub fn processing_output_config(
        &self,
    ) -> std::option::Option<&crate::model::ProcessingOutputConfig> {
        self.processing_output_config.as_ref()
    }
    /// <p>The name of the processing job. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
    pub fn processing_job_name(&self) -> std::option::Option<&str> {
        self.processing_job_name.as_deref()
    }
    /// <p>Identifies the resources, ML compute instances, and ML storage volumes to deploy for a processing job. In distributed training, you specify more than one instance.</p>
    pub fn processing_resources(&self) -> std::option::Option<&crate::model::ProcessingResources> {
        self.processing_resources.as_ref()
    }
    /// <p>The time limit for how long the processing job is allowed to run.</p>
    pub fn stopping_condition(
        &self,
    ) -> std::option::Option<&crate::model::ProcessingStoppingCondition> {
        self.stopping_condition.as_ref()
    }
    /// <p>Configures the processing job to run a specified container image.</p>
    pub fn app_specification(&self) -> std::option::Option<&crate::model::AppSpecification> {
        self.app_specification.as_ref()
    }
    /// <p>The environment variables set in the Docker container.</p>
    pub fn environment(
        &self,
    ) -> std::option::Option<&std::collections::HashMap<std::string::String, std::string::String>>
    {
        self.environment.as_ref()
    }
    /// <p>Networking options for a processing job.</p>
    pub fn network_config(&self) -> std::option::Option<&crate::model::NetworkConfig> {
        self.network_config.as_ref()
    }
    /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.</p>
    pub fn role_arn(&self) -> std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    /// <p>The configuration information used to create an experiment.</p>
    pub fn experiment_config(&self) -> std::option::Option<&crate::model::ExperimentConfig> {
        self.experiment_config.as_ref()
    }
    /// <p>The Amazon Resource Name (ARN) of the processing job.</p>
    pub fn processing_job_arn(&self) -> std::option::Option<&str> {
        self.processing_job_arn.as_deref()
    }
    /// <p>Provides the status of a processing job.</p>
    pub fn processing_job_status(&self) -> std::option::Option<&crate::model::ProcessingJobStatus> {
        self.processing_job_status.as_ref()
    }
    /// <p>An optional string, up to one KB in size, that contains metadata from the processing container when the processing job exits.</p>
    pub fn exit_message(&self) -> std::option::Option<&str> {
        self.exit_message.as_deref()
    }
    /// <p>A string, up to one KB in size, that contains the reason a processing job failed, if it failed.</p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>The time at which the processing job completed.</p>
    pub fn processing_end_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.processing_end_time.as_ref()
    }
    /// <p>The time at which the processing job started.</p>
    pub fn processing_start_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.processing_start_time.as_ref()
    }
    /// <p>The time at which the processing job was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>The time at which the processing job was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The ARN of a monitoring schedule for an endpoint associated with this processing job.</p>
    pub fn monitoring_schedule_arn(&self) -> std::option::Option<&str> {
        self.monitoring_schedule_arn.as_deref()
    }
    /// <p>The ARN of an AutoML job associated with this processing job.</p>
    pub fn auto_ml_job_arn(&self) -> std::option::Option<&str> {
        self.auto_ml_job_arn.as_deref()
    }
    /// <p>The ARN of a training job associated with this processing job.</p>
    pub fn training_job_arn(&self) -> std::option::Option<&str> {
        self.training_job_arn.as_deref()
    }
}
/// See [`DescribeProcessingJobOutput`](crate::output::DescribeProcessingJobOutput).
pub mod describe_processing_job_output {

    /// A builder for [`DescribeProcessingJobOutput`](crate::output::DescribeProcessingJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) processing_inputs:
            std::option::Option<std::vec::Vec<crate::model::ProcessingInput>>,
        pub(crate) processing_output_config:
            std::option::Option<crate::model::ProcessingOutputConfig>,
        pub(crate) processing_job_name: std::option::Option<std::string::String>,
        pub(crate) processing_resources: std::option::Option<crate::model::ProcessingResources>,
        pub(crate) stopping_condition:
            std::option::Option<crate::model::ProcessingStoppingCondition>,
        pub(crate) app_specification: std::option::Option<crate::model::AppSpecification>,
        pub(crate) environment: std::option::Option<
            std::collections::HashMap<std::string::String, std::string::String>,
        >,
        pub(crate) network_config: std::option::Option<crate::model::NetworkConfig>,
        pub(crate) role_arn: std::option::Option<std::string::String>,
        pub(crate) experiment_config: std::option::Option<crate::model::ExperimentConfig>,
        pub(crate) processing_job_arn: std::option::Option<std::string::String>,
        pub(crate) processing_job_status: std::option::Option<crate::model::ProcessingJobStatus>,
        pub(crate) exit_message: std::option::Option<std::string::String>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) processing_end_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) processing_start_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) monitoring_schedule_arn: std::option::Option<std::string::String>,
        pub(crate) auto_ml_job_arn: std::option::Option<std::string::String>,
        pub(crate) training_job_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `processing_inputs`.
        ///
        /// To override the contents of this collection use [`set_processing_inputs`](Self::set_processing_inputs).
        ///
        /// <p>The inputs for a processing job.</p>
        pub fn processing_inputs(mut self, input: crate::model::ProcessingInput) -> Self {
            let mut v = self.processing_inputs.unwrap_or_default();
            v.push(input);
            self.processing_inputs = Some(v);
            self
        }
        /// <p>The inputs for a processing job.</p>
        pub fn set_processing_inputs(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ProcessingInput>>,
        ) -> Self {
            self.processing_inputs = input;
            self
        }
        /// <p>Output configuration for the processing job.</p>
        pub fn processing_output_config(
            mut self,
            input: crate::model::ProcessingOutputConfig,
        ) -> Self {
            self.processing_output_config = Some(input);
            self
        }
        /// <p>Output configuration for the processing job.</p>
        pub fn set_processing_output_config(
            mut self,
            input: std::option::Option<crate::model::ProcessingOutputConfig>,
        ) -> Self {
            self.processing_output_config = input;
            self
        }
        /// <p>The name of the processing job. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
        pub fn processing_job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.processing_job_name = Some(input.into());
            self
        }
        /// <p>The name of the processing job. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
        pub fn set_processing_job_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.processing_job_name = input;
            self
        }
        /// <p>Identifies the resources, ML compute instances, and ML storage volumes to deploy for a processing job. In distributed training, you specify more than one instance.</p>
        pub fn processing_resources(mut self, input: crate::model::ProcessingResources) -> Self {
            self.processing_resources = Some(input);
            self
        }
        /// <p>Identifies the resources, ML compute instances, and ML storage volumes to deploy for a processing job. In distributed training, you specify more than one instance.</p>
        pub fn set_processing_resources(
            mut self,
            input: std::option::Option<crate::model::ProcessingResources>,
        ) -> Self {
            self.processing_resources = input;
            self
        }
        /// <p>The time limit for how long the processing job is allowed to run.</p>
        pub fn stopping_condition(
            mut self,
            input: crate::model::ProcessingStoppingCondition,
        ) -> Self {
            self.stopping_condition = Some(input);
            self
        }
        /// <p>The time limit for how long the processing job is allowed to run.</p>
        pub fn set_stopping_condition(
            mut self,
            input: std::option::Option<crate::model::ProcessingStoppingCondition>,
        ) -> Self {
            self.stopping_condition = input;
            self
        }
        /// <p>Configures the processing job to run a specified container image.</p>
        pub fn app_specification(mut self, input: crate::model::AppSpecification) -> Self {
            self.app_specification = Some(input);
            self
        }
        /// <p>Configures the processing job to run a specified container image.</p>
        pub fn set_app_specification(
            mut self,
            input: std::option::Option<crate::model::AppSpecification>,
        ) -> Self {
            self.app_specification = input;
            self
        }
        /// Adds a key-value pair to `environment`.
        ///
        /// To override the contents of this collection use [`set_environment`](Self::set_environment).
        ///
        /// <p>The environment variables set in the Docker container.</p>
        pub fn environment(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            let mut hash_map = self.environment.unwrap_or_default();
            hash_map.insert(k.into(), v.into());
            self.environment = Some(hash_map);
            self
        }
        /// <p>The environment variables set in the Docker container.</p>
        pub fn set_environment(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.environment = input;
            self
        }
        /// <p>Networking options for a processing job.</p>
        pub fn network_config(mut self, input: crate::model::NetworkConfig) -> Self {
            self.network_config = Some(input);
            self
        }
        /// <p>Networking options for a processing job.</p>
        pub fn set_network_config(
            mut self,
            input: std::option::Option<crate::model::NetworkConfig>,
        ) -> Self {
            self.network_config = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.</p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.role_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.</p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.role_arn = input;
            self
        }
        /// <p>The configuration information used to create an experiment.</p>
        pub fn experiment_config(mut self, input: crate::model::ExperimentConfig) -> Self {
            self.experiment_config = Some(input);
            self
        }
        /// <p>The configuration information used to create an experiment.</p>
        pub fn set_experiment_config(
            mut self,
            input: std::option::Option<crate::model::ExperimentConfig>,
        ) -> Self {
            self.experiment_config = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the processing job.</p>
        pub fn processing_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.processing_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the processing job.</p>
        pub fn set_processing_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.processing_job_arn = input;
            self
        }
        /// <p>Provides the status of a processing job.</p>
        pub fn processing_job_status(mut self, input: crate::model::ProcessingJobStatus) -> Self {
            self.processing_job_status = Some(input);
            self
        }
        /// <p>Provides the status of a processing job.</p>
        pub fn set_processing_job_status(
            mut self,
            input: std::option::Option<crate::model::ProcessingJobStatus>,
        ) -> Self {
            self.processing_job_status = input;
            self
        }
        /// <p>An optional string, up to one KB in size, that contains metadata from the processing container when the processing job exits.</p>
        pub fn exit_message(mut self, input: impl Into<std::string::String>) -> Self {
            self.exit_message = Some(input.into());
            self
        }
        /// <p>An optional string, up to one KB in size, that contains metadata from the processing container when the processing job exits.</p>
        pub fn set_exit_message(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.exit_message = input;
            self
        }
        /// <p>A string, up to one KB in size, that contains the reason a processing job failed, if it failed.</p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>A string, up to one KB in size, that contains the reason a processing job failed, if it failed.</p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// <p>The time at which the processing job completed.</p>
        pub fn processing_end_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.processing_end_time = Some(input);
            self
        }
        /// <p>The time at which the processing job completed.</p>
        pub fn set_processing_end_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.processing_end_time = input;
            self
        }
        /// <p>The time at which the processing job started.</p>
        pub fn processing_start_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.processing_start_time = Some(input);
            self
        }
        /// <p>The time at which the processing job started.</p>
        pub fn set_processing_start_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.processing_start_time = input;
            self
        }
        /// <p>The time at which the processing job was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>The time at which the processing job was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>The time at which the processing job was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The time at which the processing job was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The ARN of a monitoring schedule for an endpoint associated with this processing job.</p>
        pub fn monitoring_schedule_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.monitoring_schedule_arn = Some(input.into());
            self
        }
        /// <p>The ARN of a monitoring schedule for an endpoint associated with this processing job.</p>
        pub fn set_monitoring_schedule_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.monitoring_schedule_arn = input;
            self
        }
        /// <p>The ARN of an AutoML job associated with this processing job.</p>
        pub fn auto_ml_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.auto_ml_job_arn = Some(input.into());
            self
        }
        /// <p>The ARN of an AutoML job associated with this processing job.</p>
        pub fn set_auto_ml_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.auto_ml_job_arn = input;
            self
        }
        /// <p>The ARN of a training job associated with this processing job.</p>
        pub fn training_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.training_job_arn = Some(input.into());
            self
        }
        /// <p>The ARN of a training job associated with this processing job.</p>
        pub fn set_training_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.training_job_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeProcessingJobOutput`](crate::output::DescribeProcessingJobOutput).
        pub fn build(self) -> crate::output::DescribeProcessingJobOutput {
            crate::output::DescribeProcessingJobOutput {
                processing_inputs: self.processing_inputs,
                processing_output_config: self.processing_output_config,
                processing_job_name: self.processing_job_name,
                processing_resources: self.processing_resources,
                stopping_condition: self.stopping_condition,
                app_specification: self.app_specification,
                environment: self.environment,
                network_config: self.network_config,
                role_arn: self.role_arn,
                experiment_config: self.experiment_config,
                processing_job_arn: self.processing_job_arn,
                processing_job_status: self.processing_job_status,
                exit_message: self.exit_message,
                failure_reason: self.failure_reason,
                processing_end_time: self.processing_end_time,
                processing_start_time: self.processing_start_time,
                last_modified_time: self.last_modified_time,
                creation_time: self.creation_time,
                monitoring_schedule_arn: self.monitoring_schedule_arn,
                auto_ml_job_arn: self.auto_ml_job_arn,
                training_job_arn: self.training_job_arn,
            }
        }
    }
}
impl DescribeProcessingJobOutput {
    /// Creates a new builder-style object to manufacture [`DescribeProcessingJobOutput`](crate::output::DescribeProcessingJobOutput).
    pub fn builder() -> crate::output::describe_processing_job_output::Builder {
        crate::output::describe_processing_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribePipelineExecutionOutput {
    /// <p>The Amazon Resource Name (ARN) of the pipeline.</p>
    #[doc(hidden)]
    pub pipeline_arn: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
    #[doc(hidden)]
    pub pipeline_execution_arn: std::option::Option<std::string::String>,
    /// <p>The display name of the pipeline execution.</p>
    #[doc(hidden)]
    pub pipeline_execution_display_name: std::option::Option<std::string::String>,
    /// <p>The status of the pipeline execution.</p>
    #[doc(hidden)]
    pub pipeline_execution_status: std::option::Option<crate::model::PipelineExecutionStatus>,
    /// <p>The description of the pipeline execution.</p>
    #[doc(hidden)]
    pub pipeline_execution_description: std::option::Option<std::string::String>,
    /// <p>Specifies the names of the experiment and trial created by a pipeline.</p>
    #[doc(hidden)]
    pub pipeline_experiment_config: std::option::Option<crate::model::PipelineExperimentConfig>,
    /// <p>If the execution failed, a message describing why.</p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>The time when the pipeline execution was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The time when the pipeline execution was modified last.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    #[doc(hidden)]
    pub created_by: std::option::Option<crate::model::UserContext>,
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    #[doc(hidden)]
    pub last_modified_by: std::option::Option<crate::model::UserContext>,
    /// <p>The parallelism configuration applied to the pipeline.</p>
    #[doc(hidden)]
    pub parallelism_configuration: std::option::Option<crate::model::ParallelismConfiguration>,
}
impl DescribePipelineExecutionOutput {
    /// <p>The Amazon Resource Name (ARN) of the pipeline.</p>
    pub fn pipeline_arn(&self) -> std::option::Option<&str> {
        self.pipeline_arn.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
    pub fn pipeline_execution_arn(&self) -> std::option::Option<&str> {
        self.pipeline_execution_arn.as_deref()
    }
    /// <p>The display name of the pipeline execution.</p>
    pub fn pipeline_execution_display_name(&self) -> std::option::Option<&str> {
        self.pipeline_execution_display_name.as_deref()
    }
    /// <p>The status of the pipeline execution.</p>
    pub fn pipeline_execution_status(
        &self,
    ) -> std::option::Option<&crate::model::PipelineExecutionStatus> {
        self.pipeline_execution_status.as_ref()
    }
    /// <p>The description of the pipeline execution.</p>
    pub fn pipeline_execution_description(&self) -> std::option::Option<&str> {
        self.pipeline_execution_description.as_deref()
    }
    /// <p>Specifies the names of the experiment and trial created by a pipeline.</p>
    pub fn pipeline_experiment_config(
        &self,
    ) -> std::option::Option<&crate::model::PipelineExperimentConfig> {
        self.pipeline_experiment_config.as_ref()
    }
    /// <p>If the execution failed, a message describing why.</p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>The time when the pipeline execution was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The time when the pipeline execution was modified last.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    pub fn created_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.created_by.as_ref()
    }
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    pub fn last_modified_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.last_modified_by.as_ref()
    }
    /// <p>The parallelism configuration applied to the pipeline.</p>
    pub fn parallelism_configuration(
        &self,
    ) -> std::option::Option<&crate::model::ParallelismConfiguration> {
        self.parallelism_configuration.as_ref()
    }
}
/// See [`DescribePipelineExecutionOutput`](crate::output::DescribePipelineExecutionOutput).
pub mod describe_pipeline_execution_output {

    /// A builder for [`DescribePipelineExecutionOutput`](crate::output::DescribePipelineExecutionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) pipeline_arn: std::option::Option<std::string::String>,
        pub(crate) pipeline_execution_arn: std::option::Option<std::string::String>,
        pub(crate) pipeline_execution_display_name: std::option::Option<std::string::String>,
        pub(crate) pipeline_execution_status:
            std::option::Option<crate::model::PipelineExecutionStatus>,
        pub(crate) pipeline_execution_description: std::option::Option<std::string::String>,
        pub(crate) pipeline_experiment_config:
            std::option::Option<crate::model::PipelineExperimentConfig>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) created_by: std::option::Option<crate::model::UserContext>,
        pub(crate) last_modified_by: std::option::Option<crate::model::UserContext>,
        pub(crate) parallelism_configuration:
            std::option::Option<crate::model::ParallelismConfiguration>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the pipeline.</p>
        pub fn pipeline_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.pipeline_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the pipeline.</p>
        pub fn set_pipeline_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.pipeline_arn = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
        pub fn pipeline_execution_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.pipeline_execution_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the pipeline execution.</p>
        pub fn set_pipeline_execution_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.pipeline_execution_arn = input;
            self
        }
        /// <p>The display name of the pipeline execution.</p>
        pub fn pipeline_execution_display_name(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.pipeline_execution_display_name = Some(input.into());
            self
        }
        /// <p>The display name of the pipeline execution.</p>
        pub fn set_pipeline_execution_display_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.pipeline_execution_display_name = input;
            self
        }
        /// <p>The status of the pipeline execution.</p>
        pub fn pipeline_execution_status(
            mut self,
            input: crate::model::PipelineExecutionStatus,
        ) -> Self {
            self.pipeline_execution_status = Some(input);
            self
        }
        /// <p>The status of the pipeline execution.</p>
        pub fn set_pipeline_execution_status(
            mut self,
            input: std::option::Option<crate::model::PipelineExecutionStatus>,
        ) -> Self {
            self.pipeline_execution_status = input;
            self
        }
        /// <p>The description of the pipeline execution.</p>
        pub fn pipeline_execution_description(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.pipeline_execution_description = Some(input.into());
            self
        }
        /// <p>The description of the pipeline execution.</p>
        pub fn set_pipeline_execution_description(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.pipeline_execution_description = input;
            self
        }
        /// <p>Specifies the names of the experiment and trial created by a pipeline.</p>
        pub fn pipeline_experiment_config(
            mut self,
            input: crate::model::PipelineExperimentConfig,
        ) -> Self {
            self.pipeline_experiment_config = Some(input);
            self
        }
        /// <p>Specifies the names of the experiment and trial created by a pipeline.</p>
        pub fn set_pipeline_experiment_config(
            mut self,
            input: std::option::Option<crate::model::PipelineExperimentConfig>,
        ) -> Self {
            self.pipeline_experiment_config = input;
            self
        }
        /// <p>If the execution failed, a message describing why.</p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>If the execution failed, a message describing why.</p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// <p>The time when the pipeline execution was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The time when the pipeline execution was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The time when the pipeline execution was modified last.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>The time when the pipeline execution was modified last.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn created_by(mut self, input: crate::model::UserContext) -> Self {
            self.created_by = Some(input);
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn set_created_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.created_by = input;
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn last_modified_by(mut self, input: crate::model::UserContext) -> Self {
            self.last_modified_by = Some(input);
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn set_last_modified_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.last_modified_by = input;
            self
        }
        /// <p>The parallelism configuration applied to the pipeline.</p>
        pub fn parallelism_configuration(
            mut self,
            input: crate::model::ParallelismConfiguration,
        ) -> Self {
            self.parallelism_configuration = Some(input);
            self
        }
        /// <p>The parallelism configuration applied to the pipeline.</p>
        pub fn set_parallelism_configuration(
            mut self,
            input: std::option::Option<crate::model::ParallelismConfiguration>,
        ) -> Self {
            self.parallelism_configuration = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribePipelineExecutionOutput`](crate::output::DescribePipelineExecutionOutput).
        pub fn build(self) -> crate::output::DescribePipelineExecutionOutput {
            crate::output::DescribePipelineExecutionOutput {
                pipeline_arn: self.pipeline_arn,
                pipeline_execution_arn: self.pipeline_execution_arn,
                pipeline_execution_display_name: self.pipeline_execution_display_name,
                pipeline_execution_status: self.pipeline_execution_status,
                pipeline_execution_description: self.pipeline_execution_description,
                pipeline_experiment_config: self.pipeline_experiment_config,
                failure_reason: self.failure_reason,
                creation_time: self.creation_time,
                last_modified_time: self.last_modified_time,
                created_by: self.created_by,
                last_modified_by: self.last_modified_by,
                parallelism_configuration: self.parallelism_configuration,
            }
        }
    }
}
impl DescribePipelineExecutionOutput {
    /// Creates a new builder-style object to manufacture [`DescribePipelineExecutionOutput`](crate::output::DescribePipelineExecutionOutput).
    pub fn builder() -> crate::output::describe_pipeline_execution_output::Builder {
        crate::output::describe_pipeline_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 DescribePipelineDefinitionForExecutionOutput {
    /// <p>The JSON pipeline definition.</p>
    #[doc(hidden)]
    pub pipeline_definition: std::option::Option<std::string::String>,
    /// <p>The time when the pipeline was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
}
impl DescribePipelineDefinitionForExecutionOutput {
    /// <p>The JSON pipeline definition.</p>
    pub fn pipeline_definition(&self) -> std::option::Option<&str> {
        self.pipeline_definition.as_deref()
    }
    /// <p>The time when the pipeline was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
}
/// See [`DescribePipelineDefinitionForExecutionOutput`](crate::output::DescribePipelineDefinitionForExecutionOutput).
pub mod describe_pipeline_definition_for_execution_output {

    /// A builder for [`DescribePipelineDefinitionForExecutionOutput`](crate::output::DescribePipelineDefinitionForExecutionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) pipeline_definition: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
    }
    impl Builder {
        /// <p>The JSON pipeline definition.</p>
        pub fn pipeline_definition(mut self, input: impl Into<std::string::String>) -> Self {
            self.pipeline_definition = Some(input.into());
            self
        }
        /// <p>The JSON pipeline definition.</p>
        pub fn set_pipeline_definition(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.pipeline_definition = input;
            self
        }
        /// <p>The time when the pipeline was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The time when the pipeline was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribePipelineDefinitionForExecutionOutput`](crate::output::DescribePipelineDefinitionForExecutionOutput).
        pub fn build(self) -> crate::output::DescribePipelineDefinitionForExecutionOutput {
            crate::output::DescribePipelineDefinitionForExecutionOutput {
                pipeline_definition: self.pipeline_definition,
                creation_time: self.creation_time,
            }
        }
    }
}
impl DescribePipelineDefinitionForExecutionOutput {
    /// Creates a new builder-style object to manufacture [`DescribePipelineDefinitionForExecutionOutput`](crate::output::DescribePipelineDefinitionForExecutionOutput).
    pub fn builder() -> crate::output::describe_pipeline_definition_for_execution_output::Builder {
        crate::output::describe_pipeline_definition_for_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 DescribePipelineOutput {
    /// <p>The Amazon Resource Name (ARN) of the pipeline.</p>
    #[doc(hidden)]
    pub pipeline_arn: std::option::Option<std::string::String>,
    /// <p>The name of the pipeline.</p>
    #[doc(hidden)]
    pub pipeline_name: std::option::Option<std::string::String>,
    /// <p>The display name of the pipeline.</p>
    #[doc(hidden)]
    pub pipeline_display_name: std::option::Option<std::string::String>,
    /// <p>The JSON pipeline definition.</p>
    #[doc(hidden)]
    pub pipeline_definition: std::option::Option<std::string::String>,
    /// <p>The description of the pipeline.</p>
    #[doc(hidden)]
    pub pipeline_description: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) that the pipeline uses to execute.</p>
    #[doc(hidden)]
    pub role_arn: std::option::Option<std::string::String>,
    /// <p>The status of the pipeline execution.</p>
    #[doc(hidden)]
    pub pipeline_status: std::option::Option<crate::model::PipelineStatus>,
    /// <p>The time when the pipeline was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The time when the pipeline was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The time when the pipeline was last run.</p>
    #[doc(hidden)]
    pub last_run_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    #[doc(hidden)]
    pub created_by: std::option::Option<crate::model::UserContext>,
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    #[doc(hidden)]
    pub last_modified_by: std::option::Option<crate::model::UserContext>,
    /// <p>Lists the parallelism configuration applied to the pipeline.</p>
    #[doc(hidden)]
    pub parallelism_configuration: std::option::Option<crate::model::ParallelismConfiguration>,
}
impl DescribePipelineOutput {
    /// <p>The Amazon Resource Name (ARN) of the pipeline.</p>
    pub fn pipeline_arn(&self) -> std::option::Option<&str> {
        self.pipeline_arn.as_deref()
    }
    /// <p>The name of the pipeline.</p>
    pub fn pipeline_name(&self) -> std::option::Option<&str> {
        self.pipeline_name.as_deref()
    }
    /// <p>The display name of the pipeline.</p>
    pub fn pipeline_display_name(&self) -> std::option::Option<&str> {
        self.pipeline_display_name.as_deref()
    }
    /// <p>The JSON pipeline definition.</p>
    pub fn pipeline_definition(&self) -> std::option::Option<&str> {
        self.pipeline_definition.as_deref()
    }
    /// <p>The description of the pipeline.</p>
    pub fn pipeline_description(&self) -> std::option::Option<&str> {
        self.pipeline_description.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) that the pipeline uses to execute.</p>
    pub fn role_arn(&self) -> std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    /// <p>The status of the pipeline execution.</p>
    pub fn pipeline_status(&self) -> std::option::Option<&crate::model::PipelineStatus> {
        self.pipeline_status.as_ref()
    }
    /// <p>The time when the pipeline was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The time when the pipeline was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>The time when the pipeline was last run.</p>
    pub fn last_run_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_run_time.as_ref()
    }
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    pub fn created_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.created_by.as_ref()
    }
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    pub fn last_modified_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.last_modified_by.as_ref()
    }
    /// <p>Lists the parallelism configuration applied to the pipeline.</p>
    pub fn parallelism_configuration(
        &self,
    ) -> std::option::Option<&crate::model::ParallelismConfiguration> {
        self.parallelism_configuration.as_ref()
    }
}
/// See [`DescribePipelineOutput`](crate::output::DescribePipelineOutput).
pub mod describe_pipeline_output {

    /// A builder for [`DescribePipelineOutput`](crate::output::DescribePipelineOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) pipeline_arn: std::option::Option<std::string::String>,
        pub(crate) pipeline_name: std::option::Option<std::string::String>,
        pub(crate) pipeline_display_name: std::option::Option<std::string::String>,
        pub(crate) pipeline_definition: std::option::Option<std::string::String>,
        pub(crate) pipeline_description: std::option::Option<std::string::String>,
        pub(crate) role_arn: std::option::Option<std::string::String>,
        pub(crate) pipeline_status: std::option::Option<crate::model::PipelineStatus>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_run_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) created_by: std::option::Option<crate::model::UserContext>,
        pub(crate) last_modified_by: std::option::Option<crate::model::UserContext>,
        pub(crate) parallelism_configuration:
            std::option::Option<crate::model::ParallelismConfiguration>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the pipeline.</p>
        pub fn pipeline_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.pipeline_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the pipeline.</p>
        pub fn set_pipeline_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.pipeline_arn = input;
            self
        }
        /// <p>The name of the pipeline.</p>
        pub fn pipeline_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.pipeline_name = Some(input.into());
            self
        }
        /// <p>The name of the pipeline.</p>
        pub fn set_pipeline_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.pipeline_name = input;
            self
        }
        /// <p>The display name of the pipeline.</p>
        pub fn pipeline_display_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.pipeline_display_name = Some(input.into());
            self
        }
        /// <p>The display name of the pipeline.</p>
        pub fn set_pipeline_display_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.pipeline_display_name = input;
            self
        }
        /// <p>The JSON pipeline definition.</p>
        pub fn pipeline_definition(mut self, input: impl Into<std::string::String>) -> Self {
            self.pipeline_definition = Some(input.into());
            self
        }
        /// <p>The JSON pipeline definition.</p>
        pub fn set_pipeline_definition(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.pipeline_definition = input;
            self
        }
        /// <p>The description of the pipeline.</p>
        pub fn pipeline_description(mut self, input: impl Into<std::string::String>) -> Self {
            self.pipeline_description = Some(input.into());
            self
        }
        /// <p>The description of the pipeline.</p>
        pub fn set_pipeline_description(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.pipeline_description = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) that the pipeline uses to execute.</p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.role_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) that the pipeline uses to execute.</p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.role_arn = input;
            self
        }
        /// <p>The status of the pipeline execution.</p>
        pub fn pipeline_status(mut self, input: crate::model::PipelineStatus) -> Self {
            self.pipeline_status = Some(input);
            self
        }
        /// <p>The status of the pipeline execution.</p>
        pub fn set_pipeline_status(
            mut self,
            input: std::option::Option<crate::model::PipelineStatus>,
        ) -> Self {
            self.pipeline_status = input;
            self
        }
        /// <p>The time when the pipeline was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The time when the pipeline was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The time when the pipeline was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>The time when the pipeline was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>The time when the pipeline was last run.</p>
        pub fn last_run_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_run_time = Some(input);
            self
        }
        /// <p>The time when the pipeline was last run.</p>
        pub fn set_last_run_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_run_time = input;
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn created_by(mut self, input: crate::model::UserContext) -> Self {
            self.created_by = Some(input);
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn set_created_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.created_by = input;
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn last_modified_by(mut self, input: crate::model::UserContext) -> Self {
            self.last_modified_by = Some(input);
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn set_last_modified_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.last_modified_by = input;
            self
        }
        /// <p>Lists the parallelism configuration applied to the pipeline.</p>
        pub fn parallelism_configuration(
            mut self,
            input: crate::model::ParallelismConfiguration,
        ) -> Self {
            self.parallelism_configuration = Some(input);
            self
        }
        /// <p>Lists the parallelism configuration applied to the pipeline.</p>
        pub fn set_parallelism_configuration(
            mut self,
            input: std::option::Option<crate::model::ParallelismConfiguration>,
        ) -> Self {
            self.parallelism_configuration = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribePipelineOutput`](crate::output::DescribePipelineOutput).
        pub fn build(self) -> crate::output::DescribePipelineOutput {
            crate::output::DescribePipelineOutput {
                pipeline_arn: self.pipeline_arn,
                pipeline_name: self.pipeline_name,
                pipeline_display_name: self.pipeline_display_name,
                pipeline_definition: self.pipeline_definition,
                pipeline_description: self.pipeline_description,
                role_arn: self.role_arn,
                pipeline_status: self.pipeline_status,
                creation_time: self.creation_time,
                last_modified_time: self.last_modified_time,
                last_run_time: self.last_run_time,
                created_by: self.created_by,
                last_modified_by: self.last_modified_by,
                parallelism_configuration: self.parallelism_configuration,
            }
        }
    }
}
impl DescribePipelineOutput {
    /// Creates a new builder-style object to manufacture [`DescribePipelineOutput`](crate::output::DescribePipelineOutput).
    pub fn builder() -> crate::output::describe_pipeline_output::Builder {
        crate::output::describe_pipeline_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeNotebookInstanceLifecycleConfigOutput {
    /// <p>The Amazon Resource Name (ARN) of the lifecycle configuration.</p>
    #[doc(hidden)]
    pub notebook_instance_lifecycle_config_arn: std::option::Option<std::string::String>,
    /// <p>The name of the lifecycle configuration.</p>
    #[doc(hidden)]
    pub notebook_instance_lifecycle_config_name: std::option::Option<std::string::String>,
    /// <p>The shell script that runs only once, when you create a notebook instance.</p>
    #[doc(hidden)]
    pub on_create: std::option::Option<std::vec::Vec<crate::model::NotebookInstanceLifecycleHook>>,
    /// <p>The shell script that runs every time you start a notebook instance, including when you create the notebook instance.</p>
    #[doc(hidden)]
    pub on_start: std::option::Option<std::vec::Vec<crate::model::NotebookInstanceLifecycleHook>>,
    /// <p>A timestamp that tells when the lifecycle configuration was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>A timestamp that tells when the lifecycle configuration was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
}
impl DescribeNotebookInstanceLifecycleConfigOutput {
    /// <p>The Amazon Resource Name (ARN) of the lifecycle configuration.</p>
    pub fn notebook_instance_lifecycle_config_arn(&self) -> std::option::Option<&str> {
        self.notebook_instance_lifecycle_config_arn.as_deref()
    }
    /// <p>The name of the lifecycle configuration.</p>
    pub fn notebook_instance_lifecycle_config_name(&self) -> std::option::Option<&str> {
        self.notebook_instance_lifecycle_config_name.as_deref()
    }
    /// <p>The shell script that runs only once, when you create a notebook instance.</p>
    pub fn on_create(&self) -> std::option::Option<&[crate::model::NotebookInstanceLifecycleHook]> {
        self.on_create.as_deref()
    }
    /// <p>The shell script that runs every time you start a notebook instance, including when you create the notebook instance.</p>
    pub fn on_start(&self) -> std::option::Option<&[crate::model::NotebookInstanceLifecycleHook]> {
        self.on_start.as_deref()
    }
    /// <p>A timestamp that tells when the lifecycle configuration was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>A timestamp that tells when the lifecycle configuration was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
}
/// See [`DescribeNotebookInstanceLifecycleConfigOutput`](crate::output::DescribeNotebookInstanceLifecycleConfigOutput).
pub mod describe_notebook_instance_lifecycle_config_output {

    /// A builder for [`DescribeNotebookInstanceLifecycleConfigOutput`](crate::output::DescribeNotebookInstanceLifecycleConfigOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) notebook_instance_lifecycle_config_arn: std::option::Option<std::string::String>,
        pub(crate) notebook_instance_lifecycle_config_name:
            std::option::Option<std::string::String>,
        pub(crate) on_create:
            std::option::Option<std::vec::Vec<crate::model::NotebookInstanceLifecycleHook>>,
        pub(crate) on_start:
            std::option::Option<std::vec::Vec<crate::model::NotebookInstanceLifecycleHook>>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the lifecycle configuration.</p>
        pub fn notebook_instance_lifecycle_config_arn(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.notebook_instance_lifecycle_config_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the lifecycle configuration.</p>
        pub fn set_notebook_instance_lifecycle_config_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.notebook_instance_lifecycle_config_arn = input;
            self
        }
        /// <p>The name of the lifecycle configuration.</p>
        pub fn notebook_instance_lifecycle_config_name(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.notebook_instance_lifecycle_config_name = Some(input.into());
            self
        }
        /// <p>The name of the lifecycle configuration.</p>
        pub fn set_notebook_instance_lifecycle_config_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.notebook_instance_lifecycle_config_name = input;
            self
        }
        /// Appends an item to `on_create`.
        ///
        /// To override the contents of this collection use [`set_on_create`](Self::set_on_create).
        ///
        /// <p>The shell script that runs only once, when you create a notebook instance.</p>
        pub fn on_create(mut self, input: crate::model::NotebookInstanceLifecycleHook) -> Self {
            let mut v = self.on_create.unwrap_or_default();
            v.push(input);
            self.on_create = Some(v);
            self
        }
        /// <p>The shell script that runs only once, when you create a notebook instance.</p>
        pub fn set_on_create(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::NotebookInstanceLifecycleHook>>,
        ) -> Self {
            self.on_create = input;
            self
        }
        /// Appends an item to `on_start`.
        ///
        /// To override the contents of this collection use [`set_on_start`](Self::set_on_start).
        ///
        /// <p>The shell script that runs every time you start a notebook instance, including when you create the notebook instance.</p>
        pub fn on_start(mut self, input: crate::model::NotebookInstanceLifecycleHook) -> Self {
            let mut v = self.on_start.unwrap_or_default();
            v.push(input);
            self.on_start = Some(v);
            self
        }
        /// <p>The shell script that runs every time you start a notebook instance, including when you create the notebook instance.</p>
        pub fn set_on_start(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::NotebookInstanceLifecycleHook>>,
        ) -> Self {
            self.on_start = input;
            self
        }
        /// <p>A timestamp that tells when the lifecycle configuration was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>A timestamp that tells when the lifecycle configuration was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>A timestamp that tells when the lifecycle configuration was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>A timestamp that tells when the lifecycle configuration was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeNotebookInstanceLifecycleConfigOutput`](crate::output::DescribeNotebookInstanceLifecycleConfigOutput).
        pub fn build(self) -> crate::output::DescribeNotebookInstanceLifecycleConfigOutput {
            crate::output::DescribeNotebookInstanceLifecycleConfigOutput {
                notebook_instance_lifecycle_config_arn: self.notebook_instance_lifecycle_config_arn,
                notebook_instance_lifecycle_config_name: self
                    .notebook_instance_lifecycle_config_name,
                on_create: self.on_create,
                on_start: self.on_start,
                last_modified_time: self.last_modified_time,
                creation_time: self.creation_time,
            }
        }
    }
}
impl DescribeNotebookInstanceLifecycleConfigOutput {
    /// Creates a new builder-style object to manufacture [`DescribeNotebookInstanceLifecycleConfigOutput`](crate::output::DescribeNotebookInstanceLifecycleConfigOutput).
    pub fn builder() -> crate::output::describe_notebook_instance_lifecycle_config_output::Builder {
        crate::output::describe_notebook_instance_lifecycle_config_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeNotebookInstanceOutput {
    /// <p>The Amazon Resource Name (ARN) of the notebook instance.</p>
    #[doc(hidden)]
    pub notebook_instance_arn: std::option::Option<std::string::String>,
    /// <p>The name of the SageMaker notebook instance. </p>
    #[doc(hidden)]
    pub notebook_instance_name: std::option::Option<std::string::String>,
    /// <p>The status of the notebook instance.</p>
    #[doc(hidden)]
    pub notebook_instance_status: std::option::Option<crate::model::NotebookInstanceStatus>,
    /// <p>If status is <code>Failed</code>, the reason it failed.</p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>The URL that you use to connect to the Jupyter notebook that is running in your notebook instance. </p>
    #[doc(hidden)]
    pub url: std::option::Option<std::string::String>,
    /// <p>The type of ML compute instance running on the notebook instance.</p>
    #[doc(hidden)]
    pub instance_type: std::option::Option<crate::model::InstanceType>,
    /// <p>The ID of the VPC subnet.</p>
    #[doc(hidden)]
    pub subnet_id: std::option::Option<std::string::String>,
    /// <p>The IDs of the VPC security groups.</p>
    #[doc(hidden)]
    pub security_groups: std::option::Option<std::vec::Vec<std::string::String>>,
    /// <p>The Amazon Resource Name (ARN) of the IAM role associated with the instance. </p>
    #[doc(hidden)]
    pub role_arn: std::option::Option<std::string::String>,
    /// <p>The Amazon Web Services KMS key ID SageMaker uses to encrypt data when storing it on the ML storage volume attached to the instance. </p>
    #[doc(hidden)]
    pub kms_key_id: std::option::Option<std::string::String>,
    /// <p>The network interface IDs that SageMaker created at the time of creating the instance. </p>
    #[doc(hidden)]
    pub network_interface_id: std::option::Option<std::string::String>,
    /// <p>A timestamp. Use this parameter to retrieve the time when the notebook instance was last modified. </p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>A timestamp. Use this parameter to return the time when the notebook instance was created</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Returns the name of a notebook instance lifecycle configuration.</p>
    /// <p>For information about notebook instance lifestyle configurations, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html">Step 2.1: (Optional) Customize a Notebook Instance</a> </p>
    #[doc(hidden)]
    pub notebook_instance_lifecycle_config_name: std::option::Option<std::string::String>,
    /// <p>Describes whether SageMaker provides internet access to the notebook instance. If this value is set to <i>Disabled</i>, the notebook instance does not have internet access, and cannot connect to SageMaker training and endpoint services.</p>
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-additional-considerations.html#appendix-notebook-and-internet-access">Notebook Instances Are Internet-Enabled by Default</a>.</p>
    #[doc(hidden)]
    pub direct_internet_access: std::option::Option<crate::model::DirectInternetAccess>,
    /// <p>The size, in GB, of the ML storage volume attached to the notebook instance.</p>
    #[doc(hidden)]
    pub volume_size_in_gb: std::option::Option<i32>,
    /// <p>A list of the Elastic Inference (EI) instance types associated with this notebook instance. Currently only one EI instance type can be associated with a notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html">Using Elastic Inference in Amazon SageMaker</a>.</p>
    #[doc(hidden)]
    pub accelerator_types:
        std::option::Option<std::vec::Vec<crate::model::NotebookInstanceAcceleratorType>>,
    /// <p>The Git repository associated with the notebook instance as its default code repository. This can be either the name of a Git repository stored as a resource in your account, or the URL of a Git repository in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. When you open a notebook instance, it opens in the directory that contains this repository. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with SageMaker Notebook Instances</a>.</p>
    #[doc(hidden)]
    pub default_code_repository: std::option::Option<std::string::String>,
    /// <p>An array of up to three Git repositories associated with the notebook instance. These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with SageMaker Notebook Instances</a>.</p>
    #[doc(hidden)]
    pub additional_code_repositories: std::option::Option<std::vec::Vec<std::string::String>>,
    /// <p>Whether root access is enabled or disabled for users of the notebook instance.</p> <note>
    /// <p>Lifecycle configurations need root access to be able to set up a notebook instance. Because of this, lifecycle configurations associated with a notebook instance always run with root access even if you disable root access for users.</p>
    /// </note>
    #[doc(hidden)]
    pub root_access: std::option::Option<crate::model::RootAccess>,
    /// <p>The platform identifier of the notebook instance runtime environment.</p>
    #[doc(hidden)]
    pub platform_identifier: std::option::Option<std::string::String>,
    /// <p>Information on the IMDS configuration of the notebook instance</p>
    #[doc(hidden)]
    pub instance_metadata_service_configuration:
        std::option::Option<crate::model::InstanceMetadataServiceConfiguration>,
}
impl DescribeNotebookInstanceOutput {
    /// <p>The Amazon Resource Name (ARN) of the notebook instance.</p>
    pub fn notebook_instance_arn(&self) -> std::option::Option<&str> {
        self.notebook_instance_arn.as_deref()
    }
    /// <p>The name of the SageMaker notebook instance. </p>
    pub fn notebook_instance_name(&self) -> std::option::Option<&str> {
        self.notebook_instance_name.as_deref()
    }
    /// <p>The status of the notebook instance.</p>
    pub fn notebook_instance_status(
        &self,
    ) -> std::option::Option<&crate::model::NotebookInstanceStatus> {
        self.notebook_instance_status.as_ref()
    }
    /// <p>If status is <code>Failed</code>, the reason it failed.</p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>The URL that you use to connect to the Jupyter notebook that is running in your notebook instance. </p>
    pub fn url(&self) -> std::option::Option<&str> {
        self.url.as_deref()
    }
    /// <p>The type of ML compute instance running on the notebook instance.</p>
    pub fn instance_type(&self) -> std::option::Option<&crate::model::InstanceType> {
        self.instance_type.as_ref()
    }
    /// <p>The ID of the VPC subnet.</p>
    pub fn subnet_id(&self) -> std::option::Option<&str> {
        self.subnet_id.as_deref()
    }
    /// <p>The IDs of the VPC security groups.</p>
    pub fn security_groups(&self) -> std::option::Option<&[std::string::String]> {
        self.security_groups.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the IAM role associated with the instance. </p>
    pub fn role_arn(&self) -> std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    /// <p>The Amazon Web Services KMS key ID SageMaker uses to encrypt data when storing it on the ML storage volume attached to the instance. </p>
    pub fn kms_key_id(&self) -> std::option::Option<&str> {
        self.kms_key_id.as_deref()
    }
    /// <p>The network interface IDs that SageMaker created at the time of creating the instance. </p>
    pub fn network_interface_id(&self) -> std::option::Option<&str> {
        self.network_interface_id.as_deref()
    }
    /// <p>A timestamp. Use this parameter to retrieve the time when the notebook instance was last modified. </p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>A timestamp. Use this parameter to return the time when the notebook instance was created</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>Returns the name of a notebook instance lifecycle configuration.</p>
    /// <p>For information about notebook instance lifestyle configurations, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html">Step 2.1: (Optional) Customize a Notebook Instance</a> </p>
    pub fn notebook_instance_lifecycle_config_name(&self) -> std::option::Option<&str> {
        self.notebook_instance_lifecycle_config_name.as_deref()
    }
    /// <p>Describes whether SageMaker provides internet access to the notebook instance. If this value is set to <i>Disabled</i>, the notebook instance does not have internet access, and cannot connect to SageMaker training and endpoint services.</p>
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-additional-considerations.html#appendix-notebook-and-internet-access">Notebook Instances Are Internet-Enabled by Default</a>.</p>
    pub fn direct_internet_access(
        &self,
    ) -> std::option::Option<&crate::model::DirectInternetAccess> {
        self.direct_internet_access.as_ref()
    }
    /// <p>The size, in GB, of the ML storage volume attached to the notebook instance.</p>
    pub fn volume_size_in_gb(&self) -> std::option::Option<i32> {
        self.volume_size_in_gb
    }
    /// <p>A list of the Elastic Inference (EI) instance types associated with this notebook instance. Currently only one EI instance type can be associated with a notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html">Using Elastic Inference in Amazon SageMaker</a>.</p>
    pub fn accelerator_types(
        &self,
    ) -> std::option::Option<&[crate::model::NotebookInstanceAcceleratorType]> {
        self.accelerator_types.as_deref()
    }
    /// <p>The Git repository associated with the notebook instance as its default code repository. This can be either the name of a Git repository stored as a resource in your account, or the URL of a Git repository in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. When you open a notebook instance, it opens in the directory that contains this repository. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with SageMaker Notebook Instances</a>.</p>
    pub fn default_code_repository(&self) -> std::option::Option<&str> {
        self.default_code_repository.as_deref()
    }
    /// <p>An array of up to three Git repositories associated with the notebook instance. These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with SageMaker Notebook Instances</a>.</p>
    pub fn additional_code_repositories(&self) -> std::option::Option<&[std::string::String]> {
        self.additional_code_repositories.as_deref()
    }
    /// <p>Whether root access is enabled or disabled for users of the notebook instance.</p> <note>
    /// <p>Lifecycle configurations need root access to be able to set up a notebook instance. Because of this, lifecycle configurations associated with a notebook instance always run with root access even if you disable root access for users.</p>
    /// </note>
    pub fn root_access(&self) -> std::option::Option<&crate::model::RootAccess> {
        self.root_access.as_ref()
    }
    /// <p>The platform identifier of the notebook instance runtime environment.</p>
    pub fn platform_identifier(&self) -> std::option::Option<&str> {
        self.platform_identifier.as_deref()
    }
    /// <p>Information on the IMDS configuration of the notebook instance</p>
    pub fn instance_metadata_service_configuration(
        &self,
    ) -> std::option::Option<&crate::model::InstanceMetadataServiceConfiguration> {
        self.instance_metadata_service_configuration.as_ref()
    }
}
/// See [`DescribeNotebookInstanceOutput`](crate::output::DescribeNotebookInstanceOutput).
pub mod describe_notebook_instance_output {

    /// A builder for [`DescribeNotebookInstanceOutput`](crate::output::DescribeNotebookInstanceOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) notebook_instance_arn: std::option::Option<std::string::String>,
        pub(crate) notebook_instance_name: std::option::Option<std::string::String>,
        pub(crate) notebook_instance_status:
            std::option::Option<crate::model::NotebookInstanceStatus>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) url: std::option::Option<std::string::String>,
        pub(crate) instance_type: std::option::Option<crate::model::InstanceType>,
        pub(crate) subnet_id: std::option::Option<std::string::String>,
        pub(crate) security_groups: std::option::Option<std::vec::Vec<std::string::String>>,
        pub(crate) role_arn: std::option::Option<std::string::String>,
        pub(crate) kms_key_id: std::option::Option<std::string::String>,
        pub(crate) network_interface_id: std::option::Option<std::string::String>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) notebook_instance_lifecycle_config_name:
            std::option::Option<std::string::String>,
        pub(crate) direct_internet_access: std::option::Option<crate::model::DirectInternetAccess>,
        pub(crate) volume_size_in_gb: std::option::Option<i32>,
        pub(crate) accelerator_types:
            std::option::Option<std::vec::Vec<crate::model::NotebookInstanceAcceleratorType>>,
        pub(crate) default_code_repository: std::option::Option<std::string::String>,
        pub(crate) additional_code_repositories:
            std::option::Option<std::vec::Vec<std::string::String>>,
        pub(crate) root_access: std::option::Option<crate::model::RootAccess>,
        pub(crate) platform_identifier: std::option::Option<std::string::String>,
        pub(crate) instance_metadata_service_configuration:
            std::option::Option<crate::model::InstanceMetadataServiceConfiguration>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the notebook instance.</p>
        pub fn notebook_instance_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.notebook_instance_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the notebook instance.</p>
        pub fn set_notebook_instance_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.notebook_instance_arn = input;
            self
        }
        /// <p>The name of the SageMaker notebook instance. </p>
        pub fn notebook_instance_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.notebook_instance_name = Some(input.into());
            self
        }
        /// <p>The name of the SageMaker notebook instance. </p>
        pub fn set_notebook_instance_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.notebook_instance_name = input;
            self
        }
        /// <p>The status of the notebook instance.</p>
        pub fn notebook_instance_status(
            mut self,
            input: crate::model::NotebookInstanceStatus,
        ) -> Self {
            self.notebook_instance_status = Some(input);
            self
        }
        /// <p>The status of the notebook instance.</p>
        pub fn set_notebook_instance_status(
            mut self,
            input: std::option::Option<crate::model::NotebookInstanceStatus>,
        ) -> Self {
            self.notebook_instance_status = input;
            self
        }
        /// <p>If status is <code>Failed</code>, the reason it failed.</p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>If status is <code>Failed</code>, the reason it failed.</p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// <p>The URL that you use to connect to the Jupyter notebook that is running in your notebook instance. </p>
        pub fn url(mut self, input: impl Into<std::string::String>) -> Self {
            self.url = Some(input.into());
            self
        }
        /// <p>The URL that you use to connect to the Jupyter notebook that is running in your notebook instance. </p>
        pub fn set_url(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.url = input;
            self
        }
        /// <p>The type of ML compute instance running on the notebook instance.</p>
        pub fn instance_type(mut self, input: crate::model::InstanceType) -> Self {
            self.instance_type = Some(input);
            self
        }
        /// <p>The type of ML compute instance running on the notebook instance.</p>
        pub fn set_instance_type(
            mut self,
            input: std::option::Option<crate::model::InstanceType>,
        ) -> Self {
            self.instance_type = input;
            self
        }
        /// <p>The ID of the VPC subnet.</p>
        pub fn subnet_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.subnet_id = Some(input.into());
            self
        }
        /// <p>The ID of the VPC subnet.</p>
        pub fn set_subnet_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.subnet_id = input;
            self
        }
        /// Appends an item to `security_groups`.
        ///
        /// To override the contents of this collection use [`set_security_groups`](Self::set_security_groups).
        ///
        /// <p>The IDs of the VPC security groups.</p>
        pub fn security_groups(mut self, input: impl Into<std::string::String>) -> Self {
            let mut v = self.security_groups.unwrap_or_default();
            v.push(input.into());
            self.security_groups = Some(v);
            self
        }
        /// <p>The IDs of the VPC security groups.</p>
        pub fn set_security_groups(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.security_groups = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the IAM role associated with the instance. </p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.role_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the IAM role associated with the instance. </p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.role_arn = input;
            self
        }
        /// <p>The Amazon Web Services KMS key ID SageMaker uses to encrypt data when storing it on the ML storage volume attached to the instance. </p>
        pub fn kms_key_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.kms_key_id = Some(input.into());
            self
        }
        /// <p>The Amazon Web Services KMS key ID SageMaker uses to encrypt data when storing it on the ML storage volume attached to the instance. </p>
        pub fn set_kms_key_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.kms_key_id = input;
            self
        }
        /// <p>The network interface IDs that SageMaker created at the time of creating the instance. </p>
        pub fn network_interface_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.network_interface_id = Some(input.into());
            self
        }
        /// <p>The network interface IDs that SageMaker created at the time of creating the instance. </p>
        pub fn set_network_interface_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.network_interface_id = input;
            self
        }
        /// <p>A timestamp. Use this parameter to retrieve the time when the notebook instance was last modified. </p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>A timestamp. Use this parameter to retrieve the time when the notebook instance was last modified. </p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>A timestamp. Use this parameter to return the time when the notebook instance was created</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>A timestamp. Use this parameter to return the time when the notebook instance was created</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>Returns the name of a notebook instance lifecycle configuration.</p>
        /// <p>For information about notebook instance lifestyle configurations, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html">Step 2.1: (Optional) Customize a Notebook Instance</a> </p>
        pub fn notebook_instance_lifecycle_config_name(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.notebook_instance_lifecycle_config_name = Some(input.into());
            self
        }
        /// <p>Returns the name of a notebook instance lifecycle configuration.</p>
        /// <p>For information about notebook instance lifestyle configurations, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html">Step 2.1: (Optional) Customize a Notebook Instance</a> </p>
        pub fn set_notebook_instance_lifecycle_config_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.notebook_instance_lifecycle_config_name = input;
            self
        }
        /// <p>Describes whether SageMaker provides internet access to the notebook instance. If this value is set to <i>Disabled</i>, the notebook instance does not have internet access, and cannot connect to SageMaker training and endpoint services.</p>
        /// <p>For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-additional-considerations.html#appendix-notebook-and-internet-access">Notebook Instances Are Internet-Enabled by Default</a>.</p>
        pub fn direct_internet_access(mut self, input: crate::model::DirectInternetAccess) -> Self {
            self.direct_internet_access = Some(input);
            self
        }
        /// <p>Describes whether SageMaker provides internet access to the notebook instance. If this value is set to <i>Disabled</i>, the notebook instance does not have internet access, and cannot connect to SageMaker training and endpoint services.</p>
        /// <p>For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-additional-considerations.html#appendix-notebook-and-internet-access">Notebook Instances Are Internet-Enabled by Default</a>.</p>
        pub fn set_direct_internet_access(
            mut self,
            input: std::option::Option<crate::model::DirectInternetAccess>,
        ) -> Self {
            self.direct_internet_access = input;
            self
        }
        /// <p>The size, in GB, of the ML storage volume attached to the notebook instance.</p>
        pub fn volume_size_in_gb(mut self, input: i32) -> Self {
            self.volume_size_in_gb = Some(input);
            self
        }
        /// <p>The size, in GB, of the ML storage volume attached to the notebook instance.</p>
        pub fn set_volume_size_in_gb(mut self, input: std::option::Option<i32>) -> Self {
            self.volume_size_in_gb = input;
            self
        }
        /// Appends an item to `accelerator_types`.
        ///
        /// To override the contents of this collection use [`set_accelerator_types`](Self::set_accelerator_types).
        ///
        /// <p>A list of the Elastic Inference (EI) instance types associated with this notebook instance. Currently only one EI instance type can be associated with a notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html">Using Elastic Inference in Amazon SageMaker</a>.</p>
        pub fn accelerator_types(
            mut self,
            input: crate::model::NotebookInstanceAcceleratorType,
        ) -> Self {
            let mut v = self.accelerator_types.unwrap_or_default();
            v.push(input);
            self.accelerator_types = Some(v);
            self
        }
        /// <p>A list of the Elastic Inference (EI) instance types associated with this notebook instance. Currently only one EI instance type can be associated with a notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html">Using Elastic Inference in Amazon SageMaker</a>.</p>
        pub fn set_accelerator_types(
            mut self,
            input: std::option::Option<
                std::vec::Vec<crate::model::NotebookInstanceAcceleratorType>,
            >,
        ) -> Self {
            self.accelerator_types = input;
            self
        }
        /// <p>The Git repository associated with the notebook instance as its default code repository. This can be either the name of a Git repository stored as a resource in your account, or the URL of a Git repository in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. When you open a notebook instance, it opens in the directory that contains this repository. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with SageMaker Notebook Instances</a>.</p>
        pub fn default_code_repository(mut self, input: impl Into<std::string::String>) -> Self {
            self.default_code_repository = Some(input.into());
            self
        }
        /// <p>The Git repository associated with the notebook instance as its default code repository. This can be either the name of a Git repository stored as a resource in your account, or the URL of a Git repository in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. When you open a notebook instance, it opens in the directory that contains this repository. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with SageMaker Notebook Instances</a>.</p>
        pub fn set_default_code_repository(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.default_code_repository = input;
            self
        }
        /// Appends an item to `additional_code_repositories`.
        ///
        /// To override the contents of this collection use [`set_additional_code_repositories`](Self::set_additional_code_repositories).
        ///
        /// <p>An array of up to three Git repositories associated with the notebook instance. These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with SageMaker Notebook Instances</a>.</p>
        pub fn additional_code_repositories(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            let mut v = self.additional_code_repositories.unwrap_or_default();
            v.push(input.into());
            self.additional_code_repositories = Some(v);
            self
        }
        /// <p>An array of up to three Git repositories associated with the notebook instance. These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with SageMaker Notebook Instances</a>.</p>
        pub fn set_additional_code_repositories(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.additional_code_repositories = input;
            self
        }
        /// <p>Whether root access is enabled or disabled for users of the notebook instance.</p> <note>
        /// <p>Lifecycle configurations need root access to be able to set up a notebook instance. Because of this, lifecycle configurations associated with a notebook instance always run with root access even if you disable root access for users.</p>
        /// </note>
        pub fn root_access(mut self, input: crate::model::RootAccess) -> Self {
            self.root_access = Some(input);
            self
        }
        /// <p>Whether root access is enabled or disabled for users of the notebook instance.</p> <note>
        /// <p>Lifecycle configurations need root access to be able to set up a notebook instance. Because of this, lifecycle configurations associated with a notebook instance always run with root access even if you disable root access for users.</p>
        /// </note>
        pub fn set_root_access(
            mut self,
            input: std::option::Option<crate::model::RootAccess>,
        ) -> Self {
            self.root_access = input;
            self
        }
        /// <p>The platform identifier of the notebook instance runtime environment.</p>
        pub fn platform_identifier(mut self, input: impl Into<std::string::String>) -> Self {
            self.platform_identifier = Some(input.into());
            self
        }
        /// <p>The platform identifier of the notebook instance runtime environment.</p>
        pub fn set_platform_identifier(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.platform_identifier = input;
            self
        }
        /// <p>Information on the IMDS configuration of the notebook instance</p>
        pub fn instance_metadata_service_configuration(
            mut self,
            input: crate::model::InstanceMetadataServiceConfiguration,
        ) -> Self {
            self.instance_metadata_service_configuration = Some(input);
            self
        }
        /// <p>Information on the IMDS configuration of the notebook instance</p>
        pub fn set_instance_metadata_service_configuration(
            mut self,
            input: std::option::Option<crate::model::InstanceMetadataServiceConfiguration>,
        ) -> Self {
            self.instance_metadata_service_configuration = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeNotebookInstanceOutput`](crate::output::DescribeNotebookInstanceOutput).
        pub fn build(self) -> crate::output::DescribeNotebookInstanceOutput {
            crate::output::DescribeNotebookInstanceOutput {
                notebook_instance_arn: self.notebook_instance_arn,
                notebook_instance_name: self.notebook_instance_name,
                notebook_instance_status: self.notebook_instance_status,
                failure_reason: self.failure_reason,
                url: self.url,
                instance_type: self.instance_type,
                subnet_id: self.subnet_id,
                security_groups: self.security_groups,
                role_arn: self.role_arn,
                kms_key_id: self.kms_key_id,
                network_interface_id: self.network_interface_id,
                last_modified_time: self.last_modified_time,
                creation_time: self.creation_time,
                notebook_instance_lifecycle_config_name: self
                    .notebook_instance_lifecycle_config_name,
                direct_internet_access: self.direct_internet_access,
                volume_size_in_gb: self.volume_size_in_gb,
                accelerator_types: self.accelerator_types,
                default_code_repository: self.default_code_repository,
                additional_code_repositories: self.additional_code_repositories,
                root_access: self.root_access,
                platform_identifier: self.platform_identifier,
                instance_metadata_service_configuration: self
                    .instance_metadata_service_configuration,
            }
        }
    }
}
impl DescribeNotebookInstanceOutput {
    /// Creates a new builder-style object to manufacture [`DescribeNotebookInstanceOutput`](crate::output::DescribeNotebookInstanceOutput).
    pub fn builder() -> crate::output::describe_notebook_instance_output::Builder {
        crate::output::describe_notebook_instance_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeMonitoringScheduleOutput {
    /// <p>The Amazon Resource Name (ARN) of the monitoring schedule.</p>
    #[doc(hidden)]
    pub monitoring_schedule_arn: std::option::Option<std::string::String>,
    /// <p>Name of the monitoring schedule.</p>
    #[doc(hidden)]
    pub monitoring_schedule_name: std::option::Option<std::string::String>,
    /// <p>The status of an monitoring job.</p>
    #[doc(hidden)]
    pub monitoring_schedule_status: std::option::Option<crate::model::ScheduleStatus>,
    /// <p>The type of the monitoring job that this schedule runs. This is one of the following values.</p>
    /// <ul>
    /// <li> <p> <code>DATA_QUALITY</code> - The schedule is for a data quality monitoring job.</p> </li>
    /// <li> <p> <code>MODEL_QUALITY</code> - The schedule is for a model quality monitoring job.</p> </li>
    /// <li> <p> <code>MODEL_BIAS</code> - The schedule is for a bias monitoring job.</p> </li>
    /// <li> <p> <code>MODEL_EXPLAINABILITY</code> - The schedule is for an explainability monitoring job.</p> </li>
    /// </ul>
    #[doc(hidden)]
    pub monitoring_type: std::option::Option<crate::model::MonitoringType>,
    /// <p>A string, up to one KB in size, that contains the reason a monitoring job failed, if it failed.</p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>The time at which the monitoring job was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The time at which the monitoring job was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The configuration object that specifies the monitoring schedule and defines the monitoring job.</p>
    #[doc(hidden)]
    pub monitoring_schedule_config: std::option::Option<crate::model::MonitoringScheduleConfig>,
    /// <p> The name of the endpoint for the monitoring job.</p>
    #[doc(hidden)]
    pub endpoint_name: std::option::Option<std::string::String>,
    /// <p>Describes metadata on the last execution to run, if there was one.</p>
    #[doc(hidden)]
    pub last_monitoring_execution_summary:
        std::option::Option<crate::model::MonitoringExecutionSummary>,
}
impl DescribeMonitoringScheduleOutput {
    /// <p>The Amazon Resource Name (ARN) of the monitoring schedule.</p>
    pub fn monitoring_schedule_arn(&self) -> std::option::Option<&str> {
        self.monitoring_schedule_arn.as_deref()
    }
    /// <p>Name of the monitoring schedule.</p>
    pub fn monitoring_schedule_name(&self) -> std::option::Option<&str> {
        self.monitoring_schedule_name.as_deref()
    }
    /// <p>The status of an monitoring job.</p>
    pub fn monitoring_schedule_status(&self) -> std::option::Option<&crate::model::ScheduleStatus> {
        self.monitoring_schedule_status.as_ref()
    }
    /// <p>The type of the monitoring job that this schedule runs. This is one of the following values.</p>
    /// <ul>
    /// <li> <p> <code>DATA_QUALITY</code> - The schedule is for a data quality monitoring job.</p> </li>
    /// <li> <p> <code>MODEL_QUALITY</code> - The schedule is for a model quality monitoring job.</p> </li>
    /// <li> <p> <code>MODEL_BIAS</code> - The schedule is for a bias monitoring job.</p> </li>
    /// <li> <p> <code>MODEL_EXPLAINABILITY</code> - The schedule is for an explainability monitoring job.</p> </li>
    /// </ul>
    pub fn monitoring_type(&self) -> std::option::Option<&crate::model::MonitoringType> {
        self.monitoring_type.as_ref()
    }
    /// <p>A string, up to one KB in size, that contains the reason a monitoring job failed, if it failed.</p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>The time at which the monitoring job was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The time at which the monitoring job was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>The configuration object that specifies the monitoring schedule and defines the monitoring job.</p>
    pub fn monitoring_schedule_config(
        &self,
    ) -> std::option::Option<&crate::model::MonitoringScheduleConfig> {
        self.monitoring_schedule_config.as_ref()
    }
    /// <p> The name of the endpoint for the monitoring job.</p>
    pub fn endpoint_name(&self) -> std::option::Option<&str> {
        self.endpoint_name.as_deref()
    }
    /// <p>Describes metadata on the last execution to run, if there was one.</p>
    pub fn last_monitoring_execution_summary(
        &self,
    ) -> std::option::Option<&crate::model::MonitoringExecutionSummary> {
        self.last_monitoring_execution_summary.as_ref()
    }
}
/// See [`DescribeMonitoringScheduleOutput`](crate::output::DescribeMonitoringScheduleOutput).
pub mod describe_monitoring_schedule_output {

    /// A builder for [`DescribeMonitoringScheduleOutput`](crate::output::DescribeMonitoringScheduleOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) monitoring_schedule_arn: std::option::Option<std::string::String>,
        pub(crate) monitoring_schedule_name: std::option::Option<std::string::String>,
        pub(crate) monitoring_schedule_status: std::option::Option<crate::model::ScheduleStatus>,
        pub(crate) monitoring_type: std::option::Option<crate::model::MonitoringType>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) monitoring_schedule_config:
            std::option::Option<crate::model::MonitoringScheduleConfig>,
        pub(crate) endpoint_name: std::option::Option<std::string::String>,
        pub(crate) last_monitoring_execution_summary:
            std::option::Option<crate::model::MonitoringExecutionSummary>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the monitoring schedule.</p>
        pub fn monitoring_schedule_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.monitoring_schedule_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the monitoring schedule.</p>
        pub fn set_monitoring_schedule_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.monitoring_schedule_arn = input;
            self
        }
        /// <p>Name of the monitoring schedule.</p>
        pub fn monitoring_schedule_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.monitoring_schedule_name = Some(input.into());
            self
        }
        /// <p>Name of the monitoring schedule.</p>
        pub fn set_monitoring_schedule_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.monitoring_schedule_name = input;
            self
        }
        /// <p>The status of an monitoring job.</p>
        pub fn monitoring_schedule_status(mut self, input: crate::model::ScheduleStatus) -> Self {
            self.monitoring_schedule_status = Some(input);
            self
        }
        /// <p>The status of an monitoring job.</p>
        pub fn set_monitoring_schedule_status(
            mut self,
            input: std::option::Option<crate::model::ScheduleStatus>,
        ) -> Self {
            self.monitoring_schedule_status = input;
            self
        }
        /// <p>The type of the monitoring job that this schedule runs. This is one of the following values.</p>
        /// <ul>
        /// <li> <p> <code>DATA_QUALITY</code> - The schedule is for a data quality monitoring job.</p> </li>
        /// <li> <p> <code>MODEL_QUALITY</code> - The schedule is for a model quality monitoring job.</p> </li>
        /// <li> <p> <code>MODEL_BIAS</code> - The schedule is for a bias monitoring job.</p> </li>
        /// <li> <p> <code>MODEL_EXPLAINABILITY</code> - The schedule is for an explainability monitoring job.</p> </li>
        /// </ul>
        pub fn monitoring_type(mut self, input: crate::model::MonitoringType) -> Self {
            self.monitoring_type = Some(input);
            self
        }
        /// <p>The type of the monitoring job that this schedule runs. This is one of the following values.</p>
        /// <ul>
        /// <li> <p> <code>DATA_QUALITY</code> - The schedule is for a data quality monitoring job.</p> </li>
        /// <li> <p> <code>MODEL_QUALITY</code> - The schedule is for a model quality monitoring job.</p> </li>
        /// <li> <p> <code>MODEL_BIAS</code> - The schedule is for a bias monitoring job.</p> </li>
        /// <li> <p> <code>MODEL_EXPLAINABILITY</code> - The schedule is for an explainability monitoring job.</p> </li>
        /// </ul>
        pub fn set_monitoring_type(
            mut self,
            input: std::option::Option<crate::model::MonitoringType>,
        ) -> Self {
            self.monitoring_type = input;
            self
        }
        /// <p>A string, up to one KB in size, that contains the reason a monitoring job failed, if it failed.</p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>A string, up to one KB in size, that contains the reason a monitoring job failed, if it failed.</p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// <p>The time at which the monitoring job was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The time at which the monitoring job was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The time at which the monitoring job was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>The time at which the monitoring job was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>The configuration object that specifies the monitoring schedule and defines the monitoring job.</p>
        pub fn monitoring_schedule_config(
            mut self,
            input: crate::model::MonitoringScheduleConfig,
        ) -> Self {
            self.monitoring_schedule_config = Some(input);
            self
        }
        /// <p>The configuration object that specifies the monitoring schedule and defines the monitoring job.</p>
        pub fn set_monitoring_schedule_config(
            mut self,
            input: std::option::Option<crate::model::MonitoringScheduleConfig>,
        ) -> Self {
            self.monitoring_schedule_config = input;
            self
        }
        /// <p> The name of the endpoint for the monitoring job.</p>
        pub fn endpoint_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.endpoint_name = Some(input.into());
            self
        }
        /// <p> The name of the endpoint for the monitoring job.</p>
        pub fn set_endpoint_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.endpoint_name = input;
            self
        }
        /// <p>Describes metadata on the last execution to run, if there was one.</p>
        pub fn last_monitoring_execution_summary(
            mut self,
            input: crate::model::MonitoringExecutionSummary,
        ) -> Self {
            self.last_monitoring_execution_summary = Some(input);
            self
        }
        /// <p>Describes metadata on the last execution to run, if there was one.</p>
        pub fn set_last_monitoring_execution_summary(
            mut self,
            input: std::option::Option<crate::model::MonitoringExecutionSummary>,
        ) -> Self {
            self.last_monitoring_execution_summary = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeMonitoringScheduleOutput`](crate::output::DescribeMonitoringScheduleOutput).
        pub fn build(self) -> crate::output::DescribeMonitoringScheduleOutput {
            crate::output::DescribeMonitoringScheduleOutput {
                monitoring_schedule_arn: self.monitoring_schedule_arn,
                monitoring_schedule_name: self.monitoring_schedule_name,
                monitoring_schedule_status: self.monitoring_schedule_status,
                monitoring_type: self.monitoring_type,
                failure_reason: self.failure_reason,
                creation_time: self.creation_time,
                last_modified_time: self.last_modified_time,
                monitoring_schedule_config: self.monitoring_schedule_config,
                endpoint_name: self.endpoint_name,
                last_monitoring_execution_summary: self.last_monitoring_execution_summary,
            }
        }
    }
}
impl DescribeMonitoringScheduleOutput {
    /// Creates a new builder-style object to manufacture [`DescribeMonitoringScheduleOutput`](crate::output::DescribeMonitoringScheduleOutput).
    pub fn builder() -> crate::output::describe_monitoring_schedule_output::Builder {
        crate::output::describe_monitoring_schedule_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeModelQualityJobDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the model quality job.</p>
    #[doc(hidden)]
    pub job_definition_arn: std::option::Option<std::string::String>,
    /// <p>The name of the quality job definition. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
    #[doc(hidden)]
    pub job_definition_name: std::option::Option<std::string::String>,
    /// <p>The time at which the model quality job was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The baseline configuration for a model quality job.</p>
    #[doc(hidden)]
    pub model_quality_baseline_config:
        std::option::Option<crate::model::ModelQualityBaselineConfig>,
    /// <p>Configures the model quality job to run a specified Docker container image.</p>
    #[doc(hidden)]
    pub model_quality_app_specification:
        std::option::Option<crate::model::ModelQualityAppSpecification>,
    /// <p>Inputs for the model quality job.</p>
    #[doc(hidden)]
    pub model_quality_job_input: std::option::Option<crate::model::ModelQualityJobInput>,
    /// <p>The output configuration for monitoring jobs.</p>
    #[doc(hidden)]
    pub model_quality_job_output_config: std::option::Option<crate::model::MonitoringOutputConfig>,
    /// <p>Identifies the resources to deploy for a monitoring job.</p>
    #[doc(hidden)]
    pub job_resources: std::option::Option<crate::model::MonitoringResources>,
    /// <p>Networking options for a model quality job.</p>
    #[doc(hidden)]
    pub network_config: std::option::Option<crate::model::MonitoringNetworkConfig>,
    /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.</p>
    #[doc(hidden)]
    pub role_arn: std::option::Option<std::string::String>,
    /// <p>A time limit for how long the monitoring job is allowed to run before stopping.</p>
    #[doc(hidden)]
    pub stopping_condition: std::option::Option<crate::model::MonitoringStoppingCondition>,
}
impl DescribeModelQualityJobDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the model quality job.</p>
    pub fn job_definition_arn(&self) -> std::option::Option<&str> {
        self.job_definition_arn.as_deref()
    }
    /// <p>The name of the quality job definition. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
    pub fn job_definition_name(&self) -> std::option::Option<&str> {
        self.job_definition_name.as_deref()
    }
    /// <p>The time at which the model quality job was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The baseline configuration for a model quality job.</p>
    pub fn model_quality_baseline_config(
        &self,
    ) -> std::option::Option<&crate::model::ModelQualityBaselineConfig> {
        self.model_quality_baseline_config.as_ref()
    }
    /// <p>Configures the model quality job to run a specified Docker container image.</p>
    pub fn model_quality_app_specification(
        &self,
    ) -> std::option::Option<&crate::model::ModelQualityAppSpecification> {
        self.model_quality_app_specification.as_ref()
    }
    /// <p>Inputs for the model quality job.</p>
    pub fn model_quality_job_input(
        &self,
    ) -> std::option::Option<&crate::model::ModelQualityJobInput> {
        self.model_quality_job_input.as_ref()
    }
    /// <p>The output configuration for monitoring jobs.</p>
    pub fn model_quality_job_output_config(
        &self,
    ) -> std::option::Option<&crate::model::MonitoringOutputConfig> {
        self.model_quality_job_output_config.as_ref()
    }
    /// <p>Identifies the resources to deploy for a monitoring job.</p>
    pub fn job_resources(&self) -> std::option::Option<&crate::model::MonitoringResources> {
        self.job_resources.as_ref()
    }
    /// <p>Networking options for a model quality job.</p>
    pub fn network_config(&self) -> std::option::Option<&crate::model::MonitoringNetworkConfig> {
        self.network_config.as_ref()
    }
    /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.</p>
    pub fn role_arn(&self) -> std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    /// <p>A time limit for how long the monitoring job is allowed to run before stopping.</p>
    pub fn stopping_condition(
        &self,
    ) -> std::option::Option<&crate::model::MonitoringStoppingCondition> {
        self.stopping_condition.as_ref()
    }
}
/// See [`DescribeModelQualityJobDefinitionOutput`](crate::output::DescribeModelQualityJobDefinitionOutput).
pub mod describe_model_quality_job_definition_output {

    /// A builder for [`DescribeModelQualityJobDefinitionOutput`](crate::output::DescribeModelQualityJobDefinitionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) job_definition_arn: std::option::Option<std::string::String>,
        pub(crate) job_definition_name: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) model_quality_baseline_config:
            std::option::Option<crate::model::ModelQualityBaselineConfig>,
        pub(crate) model_quality_app_specification:
            std::option::Option<crate::model::ModelQualityAppSpecification>,
        pub(crate) model_quality_job_input: std::option::Option<crate::model::ModelQualityJobInput>,
        pub(crate) model_quality_job_output_config:
            std::option::Option<crate::model::MonitoringOutputConfig>,
        pub(crate) job_resources: std::option::Option<crate::model::MonitoringResources>,
        pub(crate) network_config: std::option::Option<crate::model::MonitoringNetworkConfig>,
        pub(crate) role_arn: std::option::Option<std::string::String>,
        pub(crate) stopping_condition:
            std::option::Option<crate::model::MonitoringStoppingCondition>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the model quality job.</p>
        pub fn job_definition_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.job_definition_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model quality job.</p>
        pub fn set_job_definition_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.job_definition_arn = input;
            self
        }
        /// <p>The name of the quality job definition. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
        pub fn job_definition_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.job_definition_name = Some(input.into());
            self
        }
        /// <p>The name of the quality job definition. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
        pub fn set_job_definition_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.job_definition_name = input;
            self
        }
        /// <p>The time at which the model quality job was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The time at which the model quality job was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The baseline configuration for a model quality job.</p>
        pub fn model_quality_baseline_config(
            mut self,
            input: crate::model::ModelQualityBaselineConfig,
        ) -> Self {
            self.model_quality_baseline_config = Some(input);
            self
        }
        /// <p>The baseline configuration for a model quality job.</p>
        pub fn set_model_quality_baseline_config(
            mut self,
            input: std::option::Option<crate::model::ModelQualityBaselineConfig>,
        ) -> Self {
            self.model_quality_baseline_config = input;
            self
        }
        /// <p>Configures the model quality job to run a specified Docker container image.</p>
        pub fn model_quality_app_specification(
            mut self,
            input: crate::model::ModelQualityAppSpecification,
        ) -> Self {
            self.model_quality_app_specification = Some(input);
            self
        }
        /// <p>Configures the model quality job to run a specified Docker container image.</p>
        pub fn set_model_quality_app_specification(
            mut self,
            input: std::option::Option<crate::model::ModelQualityAppSpecification>,
        ) -> Self {
            self.model_quality_app_specification = input;
            self
        }
        /// <p>Inputs for the model quality job.</p>
        pub fn model_quality_job_input(
            mut self,
            input: crate::model::ModelQualityJobInput,
        ) -> Self {
            self.model_quality_job_input = Some(input);
            self
        }
        /// <p>Inputs for the model quality job.</p>
        pub fn set_model_quality_job_input(
            mut self,
            input: std::option::Option<crate::model::ModelQualityJobInput>,
        ) -> Self {
            self.model_quality_job_input = input;
            self
        }
        /// <p>The output configuration for monitoring jobs.</p>
        pub fn model_quality_job_output_config(
            mut self,
            input: crate::model::MonitoringOutputConfig,
        ) -> Self {
            self.model_quality_job_output_config = Some(input);
            self
        }
        /// <p>The output configuration for monitoring jobs.</p>
        pub fn set_model_quality_job_output_config(
            mut self,
            input: std::option::Option<crate::model::MonitoringOutputConfig>,
        ) -> Self {
            self.model_quality_job_output_config = input;
            self
        }
        /// <p>Identifies the resources to deploy for a monitoring job.</p>
        pub fn job_resources(mut self, input: crate::model::MonitoringResources) -> Self {
            self.job_resources = Some(input);
            self
        }
        /// <p>Identifies the resources to deploy for a monitoring job.</p>
        pub fn set_job_resources(
            mut self,
            input: std::option::Option<crate::model::MonitoringResources>,
        ) -> Self {
            self.job_resources = input;
            self
        }
        /// <p>Networking options for a model quality job.</p>
        pub fn network_config(mut self, input: crate::model::MonitoringNetworkConfig) -> Self {
            self.network_config = Some(input);
            self
        }
        /// <p>Networking options for a model quality job.</p>
        pub fn set_network_config(
            mut self,
            input: std::option::Option<crate::model::MonitoringNetworkConfig>,
        ) -> Self {
            self.network_config = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.</p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.role_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.</p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.role_arn = input;
            self
        }
        /// <p>A time limit for how long the monitoring job is allowed to run before stopping.</p>
        pub fn stopping_condition(
            mut self,
            input: crate::model::MonitoringStoppingCondition,
        ) -> Self {
            self.stopping_condition = Some(input);
            self
        }
        /// <p>A time limit for how long the monitoring job is allowed to run before stopping.</p>
        pub fn set_stopping_condition(
            mut self,
            input: std::option::Option<crate::model::MonitoringStoppingCondition>,
        ) -> Self {
            self.stopping_condition = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeModelQualityJobDefinitionOutput`](crate::output::DescribeModelQualityJobDefinitionOutput).
        pub fn build(self) -> crate::output::DescribeModelQualityJobDefinitionOutput {
            crate::output::DescribeModelQualityJobDefinitionOutput {
                job_definition_arn: self.job_definition_arn,
                job_definition_name: self.job_definition_name,
                creation_time: self.creation_time,
                model_quality_baseline_config: self.model_quality_baseline_config,
                model_quality_app_specification: self.model_quality_app_specification,
                model_quality_job_input: self.model_quality_job_input,
                model_quality_job_output_config: self.model_quality_job_output_config,
                job_resources: self.job_resources,
                network_config: self.network_config,
                role_arn: self.role_arn,
                stopping_condition: self.stopping_condition,
            }
        }
    }
}
impl DescribeModelQualityJobDefinitionOutput {
    /// Creates a new builder-style object to manufacture [`DescribeModelQualityJobDefinitionOutput`](crate::output::DescribeModelQualityJobDefinitionOutput).
    pub fn builder() -> crate::output::describe_model_quality_job_definition_output::Builder {
        crate::output::describe_model_quality_job_definition_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeModelPackageGroupOutput {
    /// <p>The name of the model group.</p>
    #[doc(hidden)]
    pub model_package_group_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the model group.</p>
    #[doc(hidden)]
    pub model_package_group_arn: std::option::Option<std::string::String>,
    /// <p>A description of the model group.</p>
    #[doc(hidden)]
    pub model_package_group_description: std::option::Option<std::string::String>,
    /// <p>The time that the model group was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    #[doc(hidden)]
    pub created_by: std::option::Option<crate::model::UserContext>,
    /// <p>The status of the model group.</p>
    #[doc(hidden)]
    pub model_package_group_status: std::option::Option<crate::model::ModelPackageGroupStatus>,
}
impl DescribeModelPackageGroupOutput {
    /// <p>The name of the model group.</p>
    pub fn model_package_group_name(&self) -> std::option::Option<&str> {
        self.model_package_group_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the model group.</p>
    pub fn model_package_group_arn(&self) -> std::option::Option<&str> {
        self.model_package_group_arn.as_deref()
    }
    /// <p>A description of the model group.</p>
    pub fn model_package_group_description(&self) -> std::option::Option<&str> {
        self.model_package_group_description.as_deref()
    }
    /// <p>The time that the model group was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    pub fn created_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.created_by.as_ref()
    }
    /// <p>The status of the model group.</p>
    pub fn model_package_group_status(
        &self,
    ) -> std::option::Option<&crate::model::ModelPackageGroupStatus> {
        self.model_package_group_status.as_ref()
    }
}
/// See [`DescribeModelPackageGroupOutput`](crate::output::DescribeModelPackageGroupOutput).
pub mod describe_model_package_group_output {

    /// A builder for [`DescribeModelPackageGroupOutput`](crate::output::DescribeModelPackageGroupOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) model_package_group_name: std::option::Option<std::string::String>,
        pub(crate) model_package_group_arn: std::option::Option<std::string::String>,
        pub(crate) model_package_group_description: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) created_by: std::option::Option<crate::model::UserContext>,
        pub(crate) model_package_group_status:
            std::option::Option<crate::model::ModelPackageGroupStatus>,
    }
    impl Builder {
        /// <p>The name of the model group.</p>
        pub fn model_package_group_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_package_group_name = Some(input.into());
            self
        }
        /// <p>The name of the model group.</p>
        pub fn set_model_package_group_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_package_group_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model group.</p>
        pub fn model_package_group_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_package_group_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model group.</p>
        pub fn set_model_package_group_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_package_group_arn = input;
            self
        }
        /// <p>A description of the model group.</p>
        pub fn model_package_group_description(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.model_package_group_description = Some(input.into());
            self
        }
        /// <p>A description of the model group.</p>
        pub fn set_model_package_group_description(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_package_group_description = input;
            self
        }
        /// <p>The time that the model group was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The time that the model group was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn created_by(mut self, input: crate::model::UserContext) -> Self {
            self.created_by = Some(input);
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn set_created_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.created_by = input;
            self
        }
        /// <p>The status of the model group.</p>
        pub fn model_package_group_status(
            mut self,
            input: crate::model::ModelPackageGroupStatus,
        ) -> Self {
            self.model_package_group_status = Some(input);
            self
        }
        /// <p>The status of the model group.</p>
        pub fn set_model_package_group_status(
            mut self,
            input: std::option::Option<crate::model::ModelPackageGroupStatus>,
        ) -> Self {
            self.model_package_group_status = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeModelPackageGroupOutput`](crate::output::DescribeModelPackageGroupOutput).
        pub fn build(self) -> crate::output::DescribeModelPackageGroupOutput {
            crate::output::DescribeModelPackageGroupOutput {
                model_package_group_name: self.model_package_group_name,
                model_package_group_arn: self.model_package_group_arn,
                model_package_group_description: self.model_package_group_description,
                creation_time: self.creation_time,
                created_by: self.created_by,
                model_package_group_status: self.model_package_group_status,
            }
        }
    }
}
impl DescribeModelPackageGroupOutput {
    /// Creates a new builder-style object to manufacture [`DescribeModelPackageGroupOutput`](crate::output::DescribeModelPackageGroupOutput).
    pub fn builder() -> crate::output::describe_model_package_group_output::Builder {
        crate::output::describe_model_package_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 DescribeModelPackageOutput {
    /// <p>The name of the model package being described.</p>
    #[doc(hidden)]
    pub model_package_name: std::option::Option<std::string::String>,
    /// <p>If the model is a versioned model, the name of the model group that the versioned model belongs to.</p>
    #[doc(hidden)]
    pub model_package_group_name: std::option::Option<std::string::String>,
    /// <p>The version of the model package.</p>
    #[doc(hidden)]
    pub model_package_version: std::option::Option<i32>,
    /// <p>The Amazon Resource Name (ARN) of the model package.</p>
    #[doc(hidden)]
    pub model_package_arn: std::option::Option<std::string::String>,
    /// <p>A brief summary of the model package.</p>
    #[doc(hidden)]
    pub model_package_description: std::option::Option<std::string::String>,
    /// <p>A timestamp specifying when the model package was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Details about inference jobs that can be run with models based on this model package.</p>
    #[doc(hidden)]
    pub inference_specification: std::option::Option<crate::model::InferenceSpecification>,
    /// <p>Details about the algorithm that was used to create the model package.</p>
    #[doc(hidden)]
    pub source_algorithm_specification:
        std::option::Option<crate::model::SourceAlgorithmSpecification>,
    /// <p>Configurations for one or more transform jobs that SageMaker runs to test the model package.</p>
    #[doc(hidden)]
    pub validation_specification:
        std::option::Option<crate::model::ModelPackageValidationSpecification>,
    /// <p>The current status of the model package.</p>
    #[doc(hidden)]
    pub model_package_status: std::option::Option<crate::model::ModelPackageStatus>,
    /// <p>Details about the current status of the model package.</p>
    #[doc(hidden)]
    pub model_package_status_details: std::option::Option<crate::model::ModelPackageStatusDetails>,
    /// <p>Whether the model package is certified for listing on Amazon Web Services Marketplace.</p>
    #[doc(hidden)]
    pub certify_for_marketplace: bool,
    /// <p>The approval status of the model package.</p>
    #[doc(hidden)]
    pub model_approval_status: std::option::Option<crate::model::ModelApprovalStatus>,
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    #[doc(hidden)]
    pub created_by: std::option::Option<crate::model::UserContext>,
    /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
    #[doc(hidden)]
    pub metadata_properties: std::option::Option<crate::model::MetadataProperties>,
    /// <p>Metrics for the model.</p>
    #[doc(hidden)]
    pub model_metrics: std::option::Option<crate::model::ModelMetrics>,
    /// <p>The last time that the model package was modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    #[doc(hidden)]
    pub last_modified_by: std::option::Option<crate::model::UserContext>,
    /// <p>A description provided for the model approval.</p>
    #[doc(hidden)]
    pub approval_description: std::option::Option<std::string::String>,
    /// <p>The metadata properties associated with the model package versions.</p>
    #[doc(hidden)]
    pub customer_metadata_properties:
        std::option::Option<std::collections::HashMap<std::string::String, std::string::String>>,
    /// <p>Represents the drift check baselines that can be used when the model monitor is set using the model package. For more information, see the topic on <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-quality-clarify-baseline-lifecycle.html#pipelines-quality-clarify-baseline-drift-detection">Drift Detection against Previous Baselines in SageMaker Pipelines</a> in the <i>Amazon SageMaker Developer Guide</i>. </p>
    #[doc(hidden)]
    pub drift_check_baselines: std::option::Option<crate::model::DriftCheckBaselines>,
    /// <p>The machine learning domain of the model package you specified. Common machine learning domains include computer vision and natural language processing.</p>
    #[doc(hidden)]
    pub domain: std::option::Option<std::string::String>,
    /// <p>The machine learning task you specified that your model package accomplishes. Common machine learning tasks include object detection and image classification.</p>
    #[doc(hidden)]
    pub task: std::option::Option<std::string::String>,
    /// <p>The Amazon Simple Storage Service (Amazon S3) path where the sample payload are stored. This path points to a single gzip compressed tar archive (.tar.gz suffix).</p>
    #[doc(hidden)]
    pub sample_payload_url: std::option::Option<std::string::String>,
    /// <p>An array of additional Inference Specification objects. Each additional Inference Specification specifies artifacts based on this model package that can be used on inference endpoints. Generally used with SageMaker Neo to store the compiled artifacts.</p>
    #[doc(hidden)]
    pub additional_inference_specifications: std::option::Option<
        std::vec::Vec<crate::model::AdditionalInferenceSpecificationDefinition>,
    >,
}
impl DescribeModelPackageOutput {
    /// <p>The name of the model package being described.</p>
    pub fn model_package_name(&self) -> std::option::Option<&str> {
        self.model_package_name.as_deref()
    }
    /// <p>If the model is a versioned model, the name of the model group that the versioned model belongs to.</p>
    pub fn model_package_group_name(&self) -> std::option::Option<&str> {
        self.model_package_group_name.as_deref()
    }
    /// <p>The version of the model package.</p>
    pub fn model_package_version(&self) -> std::option::Option<i32> {
        self.model_package_version
    }
    /// <p>The Amazon Resource Name (ARN) of the model package.</p>
    pub fn model_package_arn(&self) -> std::option::Option<&str> {
        self.model_package_arn.as_deref()
    }
    /// <p>A brief summary of the model package.</p>
    pub fn model_package_description(&self) -> std::option::Option<&str> {
        self.model_package_description.as_deref()
    }
    /// <p>A timestamp specifying when the model package was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>Details about inference jobs that can be run with models based on this model package.</p>
    pub fn inference_specification(
        &self,
    ) -> std::option::Option<&crate::model::InferenceSpecification> {
        self.inference_specification.as_ref()
    }
    /// <p>Details about the algorithm that was used to create the model package.</p>
    pub fn source_algorithm_specification(
        &self,
    ) -> std::option::Option<&crate::model::SourceAlgorithmSpecification> {
        self.source_algorithm_specification.as_ref()
    }
    /// <p>Configurations for one or more transform jobs that SageMaker runs to test the model package.</p>
    pub fn validation_specification(
        &self,
    ) -> std::option::Option<&crate::model::ModelPackageValidationSpecification> {
        self.validation_specification.as_ref()
    }
    /// <p>The current status of the model package.</p>
    pub fn model_package_status(&self) -> std::option::Option<&crate::model::ModelPackageStatus> {
        self.model_package_status.as_ref()
    }
    /// <p>Details about the current status of the model package.</p>
    pub fn model_package_status_details(
        &self,
    ) -> std::option::Option<&crate::model::ModelPackageStatusDetails> {
        self.model_package_status_details.as_ref()
    }
    /// <p>Whether the model package is certified for listing on Amazon Web Services Marketplace.</p>
    pub fn certify_for_marketplace(&self) -> bool {
        self.certify_for_marketplace
    }
    /// <p>The approval status of the model package.</p>
    pub fn model_approval_status(&self) -> std::option::Option<&crate::model::ModelApprovalStatus> {
        self.model_approval_status.as_ref()
    }
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    pub fn created_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.created_by.as_ref()
    }
    /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
    pub fn metadata_properties(&self) -> std::option::Option<&crate::model::MetadataProperties> {
        self.metadata_properties.as_ref()
    }
    /// <p>Metrics for the model.</p>
    pub fn model_metrics(&self) -> std::option::Option<&crate::model::ModelMetrics> {
        self.model_metrics.as_ref()
    }
    /// <p>The last time that the model package was modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    pub fn last_modified_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.last_modified_by.as_ref()
    }
    /// <p>A description provided for the model approval.</p>
    pub fn approval_description(&self) -> std::option::Option<&str> {
        self.approval_description.as_deref()
    }
    /// <p>The metadata properties associated with the model package versions.</p>
    pub fn customer_metadata_properties(
        &self,
    ) -> std::option::Option<&std::collections::HashMap<std::string::String, std::string::String>>
    {
        self.customer_metadata_properties.as_ref()
    }
    /// <p>Represents the drift check baselines that can be used when the model monitor is set using the model package. For more information, see the topic on <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-quality-clarify-baseline-lifecycle.html#pipelines-quality-clarify-baseline-drift-detection">Drift Detection against Previous Baselines in SageMaker Pipelines</a> in the <i>Amazon SageMaker Developer Guide</i>. </p>
    pub fn drift_check_baselines(&self) -> std::option::Option<&crate::model::DriftCheckBaselines> {
        self.drift_check_baselines.as_ref()
    }
    /// <p>The machine learning domain of the model package you specified. Common machine learning domains include computer vision and natural language processing.</p>
    pub fn domain(&self) -> std::option::Option<&str> {
        self.domain.as_deref()
    }
    /// <p>The machine learning task you specified that your model package accomplishes. Common machine learning tasks include object detection and image classification.</p>
    pub fn task(&self) -> std::option::Option<&str> {
        self.task.as_deref()
    }
    /// <p>The Amazon Simple Storage Service (Amazon S3) path where the sample payload are stored. This path points to a single gzip compressed tar archive (.tar.gz suffix).</p>
    pub fn sample_payload_url(&self) -> std::option::Option<&str> {
        self.sample_payload_url.as_deref()
    }
    /// <p>An array of additional Inference Specification objects. Each additional Inference Specification specifies artifacts based on this model package that can be used on inference endpoints. Generally used with SageMaker Neo to store the compiled artifacts.</p>
    pub fn additional_inference_specifications(
        &self,
    ) -> std::option::Option<&[crate::model::AdditionalInferenceSpecificationDefinition]> {
        self.additional_inference_specifications.as_deref()
    }
}
/// See [`DescribeModelPackageOutput`](crate::output::DescribeModelPackageOutput).
pub mod describe_model_package_output {

    /// A builder for [`DescribeModelPackageOutput`](crate::output::DescribeModelPackageOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) model_package_name: std::option::Option<std::string::String>,
        pub(crate) model_package_group_name: std::option::Option<std::string::String>,
        pub(crate) model_package_version: std::option::Option<i32>,
        pub(crate) model_package_arn: std::option::Option<std::string::String>,
        pub(crate) model_package_description: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) inference_specification:
            std::option::Option<crate::model::InferenceSpecification>,
        pub(crate) source_algorithm_specification:
            std::option::Option<crate::model::SourceAlgorithmSpecification>,
        pub(crate) validation_specification:
            std::option::Option<crate::model::ModelPackageValidationSpecification>,
        pub(crate) model_package_status: std::option::Option<crate::model::ModelPackageStatus>,
        pub(crate) model_package_status_details:
            std::option::Option<crate::model::ModelPackageStatusDetails>,
        pub(crate) certify_for_marketplace: std::option::Option<bool>,
        pub(crate) model_approval_status: std::option::Option<crate::model::ModelApprovalStatus>,
        pub(crate) created_by: std::option::Option<crate::model::UserContext>,
        pub(crate) metadata_properties: std::option::Option<crate::model::MetadataProperties>,
        pub(crate) model_metrics: std::option::Option<crate::model::ModelMetrics>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_by: std::option::Option<crate::model::UserContext>,
        pub(crate) approval_description: std::option::Option<std::string::String>,
        pub(crate) customer_metadata_properties: std::option::Option<
            std::collections::HashMap<std::string::String, std::string::String>,
        >,
        pub(crate) drift_check_baselines: std::option::Option<crate::model::DriftCheckBaselines>,
        pub(crate) domain: std::option::Option<std::string::String>,
        pub(crate) task: std::option::Option<std::string::String>,
        pub(crate) sample_payload_url: std::option::Option<std::string::String>,
        pub(crate) additional_inference_specifications: std::option::Option<
            std::vec::Vec<crate::model::AdditionalInferenceSpecificationDefinition>,
        >,
    }
    impl Builder {
        /// <p>The name of the model package being described.</p>
        pub fn model_package_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_package_name = Some(input.into());
            self
        }
        /// <p>The name of the model package being described.</p>
        pub fn set_model_package_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_package_name = input;
            self
        }
        /// <p>If the model is a versioned model, the name of the model group that the versioned model belongs to.</p>
        pub fn model_package_group_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_package_group_name = Some(input.into());
            self
        }
        /// <p>If the model is a versioned model, the name of the model group that the versioned model belongs to.</p>
        pub fn set_model_package_group_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_package_group_name = input;
            self
        }
        /// <p>The version of the model package.</p>
        pub fn model_package_version(mut self, input: i32) -> Self {
            self.model_package_version = Some(input);
            self
        }
        /// <p>The version of the model package.</p>
        pub fn set_model_package_version(mut self, input: std::option::Option<i32>) -> Self {
            self.model_package_version = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model package.</p>
        pub fn model_package_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_package_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model package.</p>
        pub fn set_model_package_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_package_arn = input;
            self
        }
        /// <p>A brief summary of the model package.</p>
        pub fn model_package_description(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_package_description = Some(input.into());
            self
        }
        /// <p>A brief summary of the model package.</p>
        pub fn set_model_package_description(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_package_description = input;
            self
        }
        /// <p>A timestamp specifying when the model package was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>A timestamp specifying when the model package was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>Details about inference jobs that can be run with models based on this model package.</p>
        pub fn inference_specification(
            mut self,
            input: crate::model::InferenceSpecification,
        ) -> Self {
            self.inference_specification = Some(input);
            self
        }
        /// <p>Details about inference jobs that can be run with models based on this model package.</p>
        pub fn set_inference_specification(
            mut self,
            input: std::option::Option<crate::model::InferenceSpecification>,
        ) -> Self {
            self.inference_specification = input;
            self
        }
        /// <p>Details about the algorithm that was used to create the model package.</p>
        pub fn source_algorithm_specification(
            mut self,
            input: crate::model::SourceAlgorithmSpecification,
        ) -> Self {
            self.source_algorithm_specification = Some(input);
            self
        }
        /// <p>Details about the algorithm that was used to create the model package.</p>
        pub fn set_source_algorithm_specification(
            mut self,
            input: std::option::Option<crate::model::SourceAlgorithmSpecification>,
        ) -> Self {
            self.source_algorithm_specification = input;
            self
        }
        /// <p>Configurations for one or more transform jobs that SageMaker runs to test the model package.</p>
        pub fn validation_specification(
            mut self,
            input: crate::model::ModelPackageValidationSpecification,
        ) -> Self {
            self.validation_specification = Some(input);
            self
        }
        /// <p>Configurations for one or more transform jobs that SageMaker runs to test the model package.</p>
        pub fn set_validation_specification(
            mut self,
            input: std::option::Option<crate::model::ModelPackageValidationSpecification>,
        ) -> Self {
            self.validation_specification = input;
            self
        }
        /// <p>The current status of the model package.</p>
        pub fn model_package_status(mut self, input: crate::model::ModelPackageStatus) -> Self {
            self.model_package_status = Some(input);
            self
        }
        /// <p>The current status of the model package.</p>
        pub fn set_model_package_status(
            mut self,
            input: std::option::Option<crate::model::ModelPackageStatus>,
        ) -> Self {
            self.model_package_status = input;
            self
        }
        /// <p>Details about the current status of the model package.</p>
        pub fn model_package_status_details(
            mut self,
            input: crate::model::ModelPackageStatusDetails,
        ) -> Self {
            self.model_package_status_details = Some(input);
            self
        }
        /// <p>Details about the current status of the model package.</p>
        pub fn set_model_package_status_details(
            mut self,
            input: std::option::Option<crate::model::ModelPackageStatusDetails>,
        ) -> Self {
            self.model_package_status_details = input;
            self
        }
        /// <p>Whether the model package is certified for listing on Amazon Web Services Marketplace.</p>
        pub fn certify_for_marketplace(mut self, input: bool) -> Self {
            self.certify_for_marketplace = Some(input);
            self
        }
        /// <p>Whether the model package is certified for listing on Amazon Web Services Marketplace.</p>
        pub fn set_certify_for_marketplace(mut self, input: std::option::Option<bool>) -> Self {
            self.certify_for_marketplace = input;
            self
        }
        /// <p>The approval status of the model package.</p>
        pub fn model_approval_status(mut self, input: crate::model::ModelApprovalStatus) -> Self {
            self.model_approval_status = Some(input);
            self
        }
        /// <p>The approval status of the model package.</p>
        pub fn set_model_approval_status(
            mut self,
            input: std::option::Option<crate::model::ModelApprovalStatus>,
        ) -> Self {
            self.model_approval_status = input;
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn created_by(mut self, input: crate::model::UserContext) -> Self {
            self.created_by = Some(input);
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn set_created_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.created_by = input;
            self
        }
        /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
        pub fn metadata_properties(mut self, input: crate::model::MetadataProperties) -> Self {
            self.metadata_properties = Some(input);
            self
        }
        /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
        pub fn set_metadata_properties(
            mut self,
            input: std::option::Option<crate::model::MetadataProperties>,
        ) -> Self {
            self.metadata_properties = input;
            self
        }
        /// <p>Metrics for the model.</p>
        pub fn model_metrics(mut self, input: crate::model::ModelMetrics) -> Self {
            self.model_metrics = Some(input);
            self
        }
        /// <p>Metrics for the model.</p>
        pub fn set_model_metrics(
            mut self,
            input: std::option::Option<crate::model::ModelMetrics>,
        ) -> Self {
            self.model_metrics = input;
            self
        }
        /// <p>The last time that the model package was modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>The last time that the model package was modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn last_modified_by(mut self, input: crate::model::UserContext) -> Self {
            self.last_modified_by = Some(input);
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn set_last_modified_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.last_modified_by = input;
            self
        }
        /// <p>A description provided for the model approval.</p>
        pub fn approval_description(mut self, input: impl Into<std::string::String>) -> Self {
            self.approval_description = Some(input.into());
            self
        }
        /// <p>A description provided for the model approval.</p>
        pub fn set_approval_description(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.approval_description = input;
            self
        }
        /// Adds a key-value pair to `customer_metadata_properties`.
        ///
        /// To override the contents of this collection use [`set_customer_metadata_properties`](Self::set_customer_metadata_properties).
        ///
        /// <p>The metadata properties associated with the model package versions.</p>
        pub fn customer_metadata_properties(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            let mut hash_map = self.customer_metadata_properties.unwrap_or_default();
            hash_map.insert(k.into(), v.into());
            self.customer_metadata_properties = Some(hash_map);
            self
        }
        /// <p>The metadata properties associated with the model package versions.</p>
        pub fn set_customer_metadata_properties(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.customer_metadata_properties = input;
            self
        }
        /// <p>Represents the drift check baselines that can be used when the model monitor is set using the model package. For more information, see the topic on <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-quality-clarify-baseline-lifecycle.html#pipelines-quality-clarify-baseline-drift-detection">Drift Detection against Previous Baselines in SageMaker Pipelines</a> in the <i>Amazon SageMaker Developer Guide</i>. </p>
        pub fn drift_check_baselines(mut self, input: crate::model::DriftCheckBaselines) -> Self {
            self.drift_check_baselines = Some(input);
            self
        }
        /// <p>Represents the drift check baselines that can be used when the model monitor is set using the model package. For more information, see the topic on <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-quality-clarify-baseline-lifecycle.html#pipelines-quality-clarify-baseline-drift-detection">Drift Detection against Previous Baselines in SageMaker Pipelines</a> in the <i>Amazon SageMaker Developer Guide</i>. </p>
        pub fn set_drift_check_baselines(
            mut self,
            input: std::option::Option<crate::model::DriftCheckBaselines>,
        ) -> Self {
            self.drift_check_baselines = input;
            self
        }
        /// <p>The machine learning domain of the model package you specified. Common machine learning domains include computer vision and natural language processing.</p>
        pub fn domain(mut self, input: impl Into<std::string::String>) -> Self {
            self.domain = Some(input.into());
            self
        }
        /// <p>The machine learning domain of the model package you specified. Common machine learning domains include computer vision and natural language processing.</p>
        pub fn set_domain(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.domain = input;
            self
        }
        /// <p>The machine learning task you specified that your model package accomplishes. Common machine learning tasks include object detection and image classification.</p>
        pub fn task(mut self, input: impl Into<std::string::String>) -> Self {
            self.task = Some(input.into());
            self
        }
        /// <p>The machine learning task you specified that your model package accomplishes. Common machine learning tasks include object detection and image classification.</p>
        pub fn set_task(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.task = input;
            self
        }
        /// <p>The Amazon Simple Storage Service (Amazon S3) path where the sample payload are stored. This path points to a single gzip compressed tar archive (.tar.gz suffix).</p>
        pub fn sample_payload_url(mut self, input: impl Into<std::string::String>) -> Self {
            self.sample_payload_url = Some(input.into());
            self
        }
        /// <p>The Amazon Simple Storage Service (Amazon S3) path where the sample payload are stored. This path points to a single gzip compressed tar archive (.tar.gz suffix).</p>
        pub fn set_sample_payload_url(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.sample_payload_url = input;
            self
        }
        /// Appends an item to `additional_inference_specifications`.
        ///
        /// To override the contents of this collection use [`set_additional_inference_specifications`](Self::set_additional_inference_specifications).
        ///
        /// <p>An array of additional Inference Specification objects. Each additional Inference Specification specifies artifacts based on this model package that can be used on inference endpoints. Generally used with SageMaker Neo to store the compiled artifacts.</p>
        pub fn additional_inference_specifications(
            mut self,
            input: crate::model::AdditionalInferenceSpecificationDefinition,
        ) -> Self {
            let mut v = self.additional_inference_specifications.unwrap_or_default();
            v.push(input);
            self.additional_inference_specifications = Some(v);
            self
        }
        /// <p>An array of additional Inference Specification objects. Each additional Inference Specification specifies artifacts based on this model package that can be used on inference endpoints. Generally used with SageMaker Neo to store the compiled artifacts.</p>
        pub fn set_additional_inference_specifications(
            mut self,
            input: std::option::Option<
                std::vec::Vec<crate::model::AdditionalInferenceSpecificationDefinition>,
            >,
        ) -> Self {
            self.additional_inference_specifications = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeModelPackageOutput`](crate::output::DescribeModelPackageOutput).
        pub fn build(self) -> crate::output::DescribeModelPackageOutput {
            crate::output::DescribeModelPackageOutput {
                model_package_name: self.model_package_name,
                model_package_group_name: self.model_package_group_name,
                model_package_version: self.model_package_version,
                model_package_arn: self.model_package_arn,
                model_package_description: self.model_package_description,
                creation_time: self.creation_time,
                inference_specification: self.inference_specification,
                source_algorithm_specification: self.source_algorithm_specification,
                validation_specification: self.validation_specification,
                model_package_status: self.model_package_status,
                model_package_status_details: self.model_package_status_details,
                certify_for_marketplace: self.certify_for_marketplace.unwrap_or_default(),
                model_approval_status: self.model_approval_status,
                created_by: self.created_by,
                metadata_properties: self.metadata_properties,
                model_metrics: self.model_metrics,
                last_modified_time: self.last_modified_time,
                last_modified_by: self.last_modified_by,
                approval_description: self.approval_description,
                customer_metadata_properties: self.customer_metadata_properties,
                drift_check_baselines: self.drift_check_baselines,
                domain: self.domain,
                task: self.task,
                sample_payload_url: self.sample_payload_url,
                additional_inference_specifications: self.additional_inference_specifications,
            }
        }
    }
}
impl DescribeModelPackageOutput {
    /// Creates a new builder-style object to manufacture [`DescribeModelPackageOutput`](crate::output::DescribeModelPackageOutput).
    pub fn builder() -> crate::output::describe_model_package_output::Builder {
        crate::output::describe_model_package_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeModelExplainabilityJobDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the model explainability job.</p>
    #[doc(hidden)]
    pub job_definition_arn: std::option::Option<std::string::String>,
    /// <p>The name of the explainability job definition. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
    #[doc(hidden)]
    pub job_definition_name: std::option::Option<std::string::String>,
    /// <p>The time at which the model explainability job was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The baseline configuration for a model explainability job.</p>
    #[doc(hidden)]
    pub model_explainability_baseline_config:
        std::option::Option<crate::model::ModelExplainabilityBaselineConfig>,
    /// <p>Configures the model explainability job to run a specified Docker container image.</p>
    #[doc(hidden)]
    pub model_explainability_app_specification:
        std::option::Option<crate::model::ModelExplainabilityAppSpecification>,
    /// <p>Inputs for the model explainability job.</p>
    #[doc(hidden)]
    pub model_explainability_job_input:
        std::option::Option<crate::model::ModelExplainabilityJobInput>,
    /// <p>The output configuration for monitoring jobs.</p>
    #[doc(hidden)]
    pub model_explainability_job_output_config:
        std::option::Option<crate::model::MonitoringOutputConfig>,
    /// <p>Identifies the resources to deploy for a monitoring job.</p>
    #[doc(hidden)]
    pub job_resources: std::option::Option<crate::model::MonitoringResources>,
    /// <p>Networking options for a model explainability job.</p>
    #[doc(hidden)]
    pub network_config: std::option::Option<crate::model::MonitoringNetworkConfig>,
    /// <p>The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that has read permission to the input data location and write permission to the output data location in Amazon S3.</p>
    #[doc(hidden)]
    pub role_arn: std::option::Option<std::string::String>,
    /// <p>A time limit for how long the monitoring job is allowed to run before stopping.</p>
    #[doc(hidden)]
    pub stopping_condition: std::option::Option<crate::model::MonitoringStoppingCondition>,
}
impl DescribeModelExplainabilityJobDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the model explainability job.</p>
    pub fn job_definition_arn(&self) -> std::option::Option<&str> {
        self.job_definition_arn.as_deref()
    }
    /// <p>The name of the explainability job definition. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
    pub fn job_definition_name(&self) -> std::option::Option<&str> {
        self.job_definition_name.as_deref()
    }
    /// <p>The time at which the model explainability job was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The baseline configuration for a model explainability job.</p>
    pub fn model_explainability_baseline_config(
        &self,
    ) -> std::option::Option<&crate::model::ModelExplainabilityBaselineConfig> {
        self.model_explainability_baseline_config.as_ref()
    }
    /// <p>Configures the model explainability job to run a specified Docker container image.</p>
    pub fn model_explainability_app_specification(
        &self,
    ) -> std::option::Option<&crate::model::ModelExplainabilityAppSpecification> {
        self.model_explainability_app_specification.as_ref()
    }
    /// <p>Inputs for the model explainability job.</p>
    pub fn model_explainability_job_input(
        &self,
    ) -> std::option::Option<&crate::model::ModelExplainabilityJobInput> {
        self.model_explainability_job_input.as_ref()
    }
    /// <p>The output configuration for monitoring jobs.</p>
    pub fn model_explainability_job_output_config(
        &self,
    ) -> std::option::Option<&crate::model::MonitoringOutputConfig> {
        self.model_explainability_job_output_config.as_ref()
    }
    /// <p>Identifies the resources to deploy for a monitoring job.</p>
    pub fn job_resources(&self) -> std::option::Option<&crate::model::MonitoringResources> {
        self.job_resources.as_ref()
    }
    /// <p>Networking options for a model explainability job.</p>
    pub fn network_config(&self) -> std::option::Option<&crate::model::MonitoringNetworkConfig> {
        self.network_config.as_ref()
    }
    /// <p>The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that has read permission to the input data location and write permission to the output data location in Amazon S3.</p>
    pub fn role_arn(&self) -> std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    /// <p>A time limit for how long the monitoring job is allowed to run before stopping.</p>
    pub fn stopping_condition(
        &self,
    ) -> std::option::Option<&crate::model::MonitoringStoppingCondition> {
        self.stopping_condition.as_ref()
    }
}
/// See [`DescribeModelExplainabilityJobDefinitionOutput`](crate::output::DescribeModelExplainabilityJobDefinitionOutput).
pub mod describe_model_explainability_job_definition_output {

    /// A builder for [`DescribeModelExplainabilityJobDefinitionOutput`](crate::output::DescribeModelExplainabilityJobDefinitionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) job_definition_arn: std::option::Option<std::string::String>,
        pub(crate) job_definition_name: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) model_explainability_baseline_config:
            std::option::Option<crate::model::ModelExplainabilityBaselineConfig>,
        pub(crate) model_explainability_app_specification:
            std::option::Option<crate::model::ModelExplainabilityAppSpecification>,
        pub(crate) model_explainability_job_input:
            std::option::Option<crate::model::ModelExplainabilityJobInput>,
        pub(crate) model_explainability_job_output_config:
            std::option::Option<crate::model::MonitoringOutputConfig>,
        pub(crate) job_resources: std::option::Option<crate::model::MonitoringResources>,
        pub(crate) network_config: std::option::Option<crate::model::MonitoringNetworkConfig>,
        pub(crate) role_arn: std::option::Option<std::string::String>,
        pub(crate) stopping_condition:
            std::option::Option<crate::model::MonitoringStoppingCondition>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the model explainability job.</p>
        pub fn job_definition_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.job_definition_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model explainability job.</p>
        pub fn set_job_definition_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.job_definition_arn = input;
            self
        }
        /// <p>The name of the explainability job definition. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
        pub fn job_definition_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.job_definition_name = Some(input.into());
            self
        }
        /// <p>The name of the explainability job definition. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
        pub fn set_job_definition_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.job_definition_name = input;
            self
        }
        /// <p>The time at which the model explainability job was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The time at which the model explainability job was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The baseline configuration for a model explainability job.</p>
        pub fn model_explainability_baseline_config(
            mut self,
            input: crate::model::ModelExplainabilityBaselineConfig,
        ) -> Self {
            self.model_explainability_baseline_config = Some(input);
            self
        }
        /// <p>The baseline configuration for a model explainability job.</p>
        pub fn set_model_explainability_baseline_config(
            mut self,
            input: std::option::Option<crate::model::ModelExplainabilityBaselineConfig>,
        ) -> Self {
            self.model_explainability_baseline_config = input;
            self
        }
        /// <p>Configures the model explainability job to run a specified Docker container image.</p>
        pub fn model_explainability_app_specification(
            mut self,
            input: crate::model::ModelExplainabilityAppSpecification,
        ) -> Self {
            self.model_explainability_app_specification = Some(input);
            self
        }
        /// <p>Configures the model explainability job to run a specified Docker container image.</p>
        pub fn set_model_explainability_app_specification(
            mut self,
            input: std::option::Option<crate::model::ModelExplainabilityAppSpecification>,
        ) -> Self {
            self.model_explainability_app_specification = input;
            self
        }
        /// <p>Inputs for the model explainability job.</p>
        pub fn model_explainability_job_input(
            mut self,
            input: crate::model::ModelExplainabilityJobInput,
        ) -> Self {
            self.model_explainability_job_input = Some(input);
            self
        }
        /// <p>Inputs for the model explainability job.</p>
        pub fn set_model_explainability_job_input(
            mut self,
            input: std::option::Option<crate::model::ModelExplainabilityJobInput>,
        ) -> Self {
            self.model_explainability_job_input = input;
            self
        }
        /// <p>The output configuration for monitoring jobs.</p>
        pub fn model_explainability_job_output_config(
            mut self,
            input: crate::model::MonitoringOutputConfig,
        ) -> Self {
            self.model_explainability_job_output_config = Some(input);
            self
        }
        /// <p>The output configuration for monitoring jobs.</p>
        pub fn set_model_explainability_job_output_config(
            mut self,
            input: std::option::Option<crate::model::MonitoringOutputConfig>,
        ) -> Self {
            self.model_explainability_job_output_config = input;
            self
        }
        /// <p>Identifies the resources to deploy for a monitoring job.</p>
        pub fn job_resources(mut self, input: crate::model::MonitoringResources) -> Self {
            self.job_resources = Some(input);
            self
        }
        /// <p>Identifies the resources to deploy for a monitoring job.</p>
        pub fn set_job_resources(
            mut self,
            input: std::option::Option<crate::model::MonitoringResources>,
        ) -> Self {
            self.job_resources = input;
            self
        }
        /// <p>Networking options for a model explainability job.</p>
        pub fn network_config(mut self, input: crate::model::MonitoringNetworkConfig) -> Self {
            self.network_config = Some(input);
            self
        }
        /// <p>Networking options for a model explainability job.</p>
        pub fn set_network_config(
            mut self,
            input: std::option::Option<crate::model::MonitoringNetworkConfig>,
        ) -> Self {
            self.network_config = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that has read permission to the input data location and write permission to the output data location in Amazon S3.</p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.role_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that has read permission to the input data location and write permission to the output data location in Amazon S3.</p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.role_arn = input;
            self
        }
        /// <p>A time limit for how long the monitoring job is allowed to run before stopping.</p>
        pub fn stopping_condition(
            mut self,
            input: crate::model::MonitoringStoppingCondition,
        ) -> Self {
            self.stopping_condition = Some(input);
            self
        }
        /// <p>A time limit for how long the monitoring job is allowed to run before stopping.</p>
        pub fn set_stopping_condition(
            mut self,
            input: std::option::Option<crate::model::MonitoringStoppingCondition>,
        ) -> Self {
            self.stopping_condition = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeModelExplainabilityJobDefinitionOutput`](crate::output::DescribeModelExplainabilityJobDefinitionOutput).
        pub fn build(self) -> crate::output::DescribeModelExplainabilityJobDefinitionOutput {
            crate::output::DescribeModelExplainabilityJobDefinitionOutput {
                job_definition_arn: self.job_definition_arn,
                job_definition_name: self.job_definition_name,
                creation_time: self.creation_time,
                model_explainability_baseline_config: self.model_explainability_baseline_config,
                model_explainability_app_specification: self.model_explainability_app_specification,
                model_explainability_job_input: self.model_explainability_job_input,
                model_explainability_job_output_config: self.model_explainability_job_output_config,
                job_resources: self.job_resources,
                network_config: self.network_config,
                role_arn: self.role_arn,
                stopping_condition: self.stopping_condition,
            }
        }
    }
}
impl DescribeModelExplainabilityJobDefinitionOutput {
    /// Creates a new builder-style object to manufacture [`DescribeModelExplainabilityJobDefinitionOutput`](crate::output::DescribeModelExplainabilityJobDefinitionOutput).
    pub fn builder() -> crate::output::describe_model_explainability_job_definition_output::Builder
    {
        crate::output::describe_model_explainability_job_definition_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeModelCardExportJobOutput {
    /// <p>The name of the model card export job to describe.</p>
    #[doc(hidden)]
    pub model_card_export_job_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the model card export job.</p>
    #[doc(hidden)]
    pub model_card_export_job_arn: std::option::Option<std::string::String>,
    /// <p>The completion status of the model card export job.</p>
    /// <ul>
    /// <li> <p> <code>InProgress</code>: The model card export job is in progress.</p> </li>
    /// <li> <p> <code>Completed</code>: The model card export job is complete.</p> </li>
    /// <li> <p> <code>Failed</code>: The model card export job failed. To see the reason for the failure, see the <code>FailureReason</code> field in the response to a <code>DescribeModelCardExportJob</code> call.</p> </li>
    /// </ul>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::ModelCardExportJobStatus>,
    /// <p>The name of the model card that the model export job exports.</p>
    #[doc(hidden)]
    pub model_card_name: std::option::Option<std::string::String>,
    /// <p>The version of the model card that the model export job exports.</p>
    #[doc(hidden)]
    pub model_card_version: i32,
    /// <p>The export output details for the model card.</p>
    #[doc(hidden)]
    pub output_config: std::option::Option<crate::model::ModelCardExportOutputConfig>,
    /// <p>The date and time that the model export job was created.</p>
    #[doc(hidden)]
    pub created_at: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The date and time that the model export job was last modified.</p>
    #[doc(hidden)]
    pub last_modified_at: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The failure reason if the model export job fails.</p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>The exported model card artifacts.</p>
    #[doc(hidden)]
    pub export_artifacts: std::option::Option<crate::model::ModelCardExportArtifacts>,
}
impl DescribeModelCardExportJobOutput {
    /// <p>The name of the model card export job to describe.</p>
    pub fn model_card_export_job_name(&self) -> std::option::Option<&str> {
        self.model_card_export_job_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the model card export job.</p>
    pub fn model_card_export_job_arn(&self) -> std::option::Option<&str> {
        self.model_card_export_job_arn.as_deref()
    }
    /// <p>The completion status of the model card export job.</p>
    /// <ul>
    /// <li> <p> <code>InProgress</code>: The model card export job is in progress.</p> </li>
    /// <li> <p> <code>Completed</code>: The model card export job is complete.</p> </li>
    /// <li> <p> <code>Failed</code>: The model card export job failed. To see the reason for the failure, see the <code>FailureReason</code> field in the response to a <code>DescribeModelCardExportJob</code> call.</p> </li>
    /// </ul>
    pub fn status(&self) -> std::option::Option<&crate::model::ModelCardExportJobStatus> {
        self.status.as_ref()
    }
    /// <p>The name of the model card that the model export job exports.</p>
    pub fn model_card_name(&self) -> std::option::Option<&str> {
        self.model_card_name.as_deref()
    }
    /// <p>The version of the model card that the model export job exports.</p>
    pub fn model_card_version(&self) -> i32 {
        self.model_card_version
    }
    /// <p>The export output details for the model card.</p>
    pub fn output_config(&self) -> std::option::Option<&crate::model::ModelCardExportOutputConfig> {
        self.output_config.as_ref()
    }
    /// <p>The date and time that the model export job was created.</p>
    pub fn created_at(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.created_at.as_ref()
    }
    /// <p>The date and time that the model export job was last modified.</p>
    pub fn last_modified_at(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_at.as_ref()
    }
    /// <p>The failure reason if the model export job fails.</p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>The exported model card artifacts.</p>
    pub fn export_artifacts(&self) -> std::option::Option<&crate::model::ModelCardExportArtifacts> {
        self.export_artifacts.as_ref()
    }
}
/// See [`DescribeModelCardExportJobOutput`](crate::output::DescribeModelCardExportJobOutput).
pub mod describe_model_card_export_job_output {

    /// A builder for [`DescribeModelCardExportJobOutput`](crate::output::DescribeModelCardExportJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) model_card_export_job_name: std::option::Option<std::string::String>,
        pub(crate) model_card_export_job_arn: std::option::Option<std::string::String>,
        pub(crate) status: std::option::Option<crate::model::ModelCardExportJobStatus>,
        pub(crate) model_card_name: std::option::Option<std::string::String>,
        pub(crate) model_card_version: std::option::Option<i32>,
        pub(crate) output_config: std::option::Option<crate::model::ModelCardExportOutputConfig>,
        pub(crate) created_at: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_at: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) export_artifacts: std::option::Option<crate::model::ModelCardExportArtifacts>,
    }
    impl Builder {
        /// <p>The name of the model card export job to describe.</p>
        pub fn model_card_export_job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_card_export_job_name = Some(input.into());
            self
        }
        /// <p>The name of the model card export job to describe.</p>
        pub fn set_model_card_export_job_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_card_export_job_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model card export job.</p>
        pub fn model_card_export_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_card_export_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model card export job.</p>
        pub fn set_model_card_export_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_card_export_job_arn = input;
            self
        }
        /// <p>The completion status of the model card export job.</p>
        /// <ul>
        /// <li> <p> <code>InProgress</code>: The model card export job is in progress.</p> </li>
        /// <li> <p> <code>Completed</code>: The model card export job is complete.</p> </li>
        /// <li> <p> <code>Failed</code>: The model card export job failed. To see the reason for the failure, see the <code>FailureReason</code> field in the response to a <code>DescribeModelCardExportJob</code> call.</p> </li>
        /// </ul>
        pub fn status(mut self, input: crate::model::ModelCardExportJobStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p>The completion status of the model card export job.</p>
        /// <ul>
        /// <li> <p> <code>InProgress</code>: The model card export job is in progress.</p> </li>
        /// <li> <p> <code>Completed</code>: The model card export job is complete.</p> </li>
        /// <li> <p> <code>Failed</code>: The model card export job failed. To see the reason for the failure, see the <code>FailureReason</code> field in the response to a <code>DescribeModelCardExportJob</code> call.</p> </li>
        /// </ul>
        pub fn set_status(
            mut self,
            input: std::option::Option<crate::model::ModelCardExportJobStatus>,
        ) -> Self {
            self.status = input;
            self
        }
        /// <p>The name of the model card that the model export job exports.</p>
        pub fn model_card_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_card_name = Some(input.into());
            self
        }
        /// <p>The name of the model card that the model export job exports.</p>
        pub fn set_model_card_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_card_name = input;
            self
        }
        /// <p>The version of the model card that the model export job exports.</p>
        pub fn model_card_version(mut self, input: i32) -> Self {
            self.model_card_version = Some(input);
            self
        }
        /// <p>The version of the model card that the model export job exports.</p>
        pub fn set_model_card_version(mut self, input: std::option::Option<i32>) -> Self {
            self.model_card_version = input;
            self
        }
        /// <p>The export output details for the model card.</p>
        pub fn output_config(mut self, input: crate::model::ModelCardExportOutputConfig) -> Self {
            self.output_config = Some(input);
            self
        }
        /// <p>The export output details for the model card.</p>
        pub fn set_output_config(
            mut self,
            input: std::option::Option<crate::model::ModelCardExportOutputConfig>,
        ) -> Self {
            self.output_config = input;
            self
        }
        /// <p>The date and time that the model export job was created.</p>
        pub fn created_at(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.created_at = Some(input);
            self
        }
        /// <p>The date and time that the model export job was created.</p>
        pub fn set_created_at(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.created_at = input;
            self
        }
        /// <p>The date and time that the model export job was last modified.</p>
        pub fn last_modified_at(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_at = Some(input);
            self
        }
        /// <p>The date and time that the model export job was last modified.</p>
        pub fn set_last_modified_at(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_at = input;
            self
        }
        /// <p>The failure reason if the model export job fails.</p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>The failure reason if the model export job fails.</p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// <p>The exported model card artifacts.</p>
        pub fn export_artifacts(mut self, input: crate::model::ModelCardExportArtifacts) -> Self {
            self.export_artifacts = Some(input);
            self
        }
        /// <p>The exported model card artifacts.</p>
        pub fn set_export_artifacts(
            mut self,
            input: std::option::Option<crate::model::ModelCardExportArtifacts>,
        ) -> Self {
            self.export_artifacts = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeModelCardExportJobOutput`](crate::output::DescribeModelCardExportJobOutput).
        pub fn build(self) -> crate::output::DescribeModelCardExportJobOutput {
            crate::output::DescribeModelCardExportJobOutput {
                model_card_export_job_name: self.model_card_export_job_name,
                model_card_export_job_arn: self.model_card_export_job_arn,
                status: self.status,
                model_card_name: self.model_card_name,
                model_card_version: self.model_card_version.unwrap_or_default(),
                output_config: self.output_config,
                created_at: self.created_at,
                last_modified_at: self.last_modified_at,
                failure_reason: self.failure_reason,
                export_artifacts: self.export_artifacts,
            }
        }
    }
}
impl DescribeModelCardExportJobOutput {
    /// Creates a new builder-style object to manufacture [`DescribeModelCardExportJobOutput`](crate::output::DescribeModelCardExportJobOutput).
    pub fn builder() -> crate::output::describe_model_card_export_job_output::Builder {
        crate::output::describe_model_card_export_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct DescribeModelCardOutput {
    /// <p>The Amazon Resource Name (ARN) of the model card.</p>
    #[doc(hidden)]
    pub model_card_arn: std::option::Option<std::string::String>,
    /// <p>The name of the model card.</p>
    #[doc(hidden)]
    pub model_card_name: std::option::Option<std::string::String>,
    /// <p>The version of the model card.</p>
    #[doc(hidden)]
    pub model_card_version: i32,
    /// <p>The content of the model card.</p>
    #[doc(hidden)]
    pub content: std::option::Option<std::string::String>,
    /// <p>The approval status of the model card within your organization. Different organizations might have different criteria for model card review and approval.</p>
    /// <ul>
    /// <li> <p> <code>Draft</code>: The model card is a work in progress.</p> </li>
    /// <li> <p> <code>PendingReview</code>: The model card is pending review.</p> </li>
    /// <li> <p> <code>Approved</code>: The model card is approved.</p> </li>
    /// <li> <p> <code>Archived</code>: The model card is archived. No more updates should be made to the model card, but it can still be exported.</p> </li>
    /// </ul>
    #[doc(hidden)]
    pub model_card_status: std::option::Option<crate::model::ModelCardStatus>,
    /// <p>The security configuration used to protect model card content.</p>
    #[doc(hidden)]
    pub security_config: std::option::Option<crate::model::ModelCardSecurityConfig>,
    /// <p>The date and time the model card was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    #[doc(hidden)]
    pub created_by: std::option::Option<crate::model::UserContext>,
    /// <p>The date and time the model card was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    #[doc(hidden)]
    pub last_modified_by: std::option::Option<crate::model::UserContext>,
    /// <p>The processing status of model card deletion. The <code>ModelCardProcessingStatus</code> updates throughout the different deletion steps.</p>
    /// <ul>
    /// <li> <p> <code>DeletePending</code>: Model card deletion request received.</p> </li>
    /// <li> <p> <code>DeleteInProgress</code>: Model card deletion is in progress.</p> </li>
    /// <li> <p> <code>ContentDeleted</code>: Deleted model card content.</p> </li>
    /// <li> <p> <code>ExportJobsDeleted</code>: Deleted all export jobs associated with the model card.</p> </li>
    /// <li> <p> <code>DeleteCompleted</code>: Successfully deleted the model card.</p> </li>
    /// <li> <p> <code>DeleteFailed</code>: The model card failed to delete.</p> </li>
    /// </ul>
    #[doc(hidden)]
    pub model_card_processing_status: std::option::Option<crate::model::ModelCardProcessingStatus>,
}
impl DescribeModelCardOutput {
    /// <p>The Amazon Resource Name (ARN) of the model card.</p>
    pub fn model_card_arn(&self) -> std::option::Option<&str> {
        self.model_card_arn.as_deref()
    }
    /// <p>The name of the model card.</p>
    pub fn model_card_name(&self) -> std::option::Option<&str> {
        self.model_card_name.as_deref()
    }
    /// <p>The version of the model card.</p>
    pub fn model_card_version(&self) -> i32 {
        self.model_card_version
    }
    /// <p>The content of the model card.</p>
    pub fn content(&self) -> std::option::Option<&str> {
        self.content.as_deref()
    }
    /// <p>The approval status of the model card within your organization. Different organizations might have different criteria for model card review and approval.</p>
    /// <ul>
    /// <li> <p> <code>Draft</code>: The model card is a work in progress.</p> </li>
    /// <li> <p> <code>PendingReview</code>: The model card is pending review.</p> </li>
    /// <li> <p> <code>Approved</code>: The model card is approved.</p> </li>
    /// <li> <p> <code>Archived</code>: The model card is archived. No more updates should be made to the model card, but it can still be exported.</p> </li>
    /// </ul>
    pub fn model_card_status(&self) -> std::option::Option<&crate::model::ModelCardStatus> {
        self.model_card_status.as_ref()
    }
    /// <p>The security configuration used to protect model card content.</p>
    pub fn security_config(&self) -> std::option::Option<&crate::model::ModelCardSecurityConfig> {
        self.security_config.as_ref()
    }
    /// <p>The date and time the model card was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    pub fn created_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.created_by.as_ref()
    }
    /// <p>The date and time the model card was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    pub fn last_modified_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.last_modified_by.as_ref()
    }
    /// <p>The processing status of model card deletion. The <code>ModelCardProcessingStatus</code> updates throughout the different deletion steps.</p>
    /// <ul>
    /// <li> <p> <code>DeletePending</code>: Model card deletion request received.</p> </li>
    /// <li> <p> <code>DeleteInProgress</code>: Model card deletion is in progress.</p> </li>
    /// <li> <p> <code>ContentDeleted</code>: Deleted model card content.</p> </li>
    /// <li> <p> <code>ExportJobsDeleted</code>: Deleted all export jobs associated with the model card.</p> </li>
    /// <li> <p> <code>DeleteCompleted</code>: Successfully deleted the model card.</p> </li>
    /// <li> <p> <code>DeleteFailed</code>: The model card failed to delete.</p> </li>
    /// </ul>
    pub fn model_card_processing_status(
        &self,
    ) -> std::option::Option<&crate::model::ModelCardProcessingStatus> {
        self.model_card_processing_status.as_ref()
    }
}
impl std::fmt::Debug for DescribeModelCardOutput {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut formatter = f.debug_struct("DescribeModelCardOutput");
        formatter.field("model_card_arn", &self.model_card_arn);
        formatter.field("model_card_name", &self.model_card_name);
        formatter.field("model_card_version", &self.model_card_version);
        formatter.field("content", &"*** Sensitive Data Redacted ***");
        formatter.field("model_card_status", &self.model_card_status);
        formatter.field("security_config", &self.security_config);
        formatter.field("creation_time", &self.creation_time);
        formatter.field("created_by", &self.created_by);
        formatter.field("last_modified_time", &self.last_modified_time);
        formatter.field("last_modified_by", &self.last_modified_by);
        formatter.field(
            "model_card_processing_status",
            &self.model_card_processing_status,
        );
        formatter.finish()
    }
}
/// See [`DescribeModelCardOutput`](crate::output::DescribeModelCardOutput).
pub mod describe_model_card_output {

    /// A builder for [`DescribeModelCardOutput`](crate::output::DescribeModelCardOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default)]
    pub struct Builder {
        pub(crate) model_card_arn: std::option::Option<std::string::String>,
        pub(crate) model_card_name: std::option::Option<std::string::String>,
        pub(crate) model_card_version: std::option::Option<i32>,
        pub(crate) content: std::option::Option<std::string::String>,
        pub(crate) model_card_status: std::option::Option<crate::model::ModelCardStatus>,
        pub(crate) security_config: std::option::Option<crate::model::ModelCardSecurityConfig>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) created_by: std::option::Option<crate::model::UserContext>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_by: std::option::Option<crate::model::UserContext>,
        pub(crate) model_card_processing_status:
            std::option::Option<crate::model::ModelCardProcessingStatus>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the model card.</p>
        pub fn model_card_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_card_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model card.</p>
        pub fn set_model_card_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_card_arn = input;
            self
        }
        /// <p>The name of the model card.</p>
        pub fn model_card_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_card_name = Some(input.into());
            self
        }
        /// <p>The name of the model card.</p>
        pub fn set_model_card_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_card_name = input;
            self
        }
        /// <p>The version of the model card.</p>
        pub fn model_card_version(mut self, input: i32) -> Self {
            self.model_card_version = Some(input);
            self
        }
        /// <p>The version of the model card.</p>
        pub fn set_model_card_version(mut self, input: std::option::Option<i32>) -> Self {
            self.model_card_version = input;
            self
        }
        /// <p>The content of the model card.</p>
        pub fn content(mut self, input: impl Into<std::string::String>) -> Self {
            self.content = Some(input.into());
            self
        }
        /// <p>The content of the model card.</p>
        pub fn set_content(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.content = input;
            self
        }
        /// <p>The approval status of the model card within your organization. Different organizations might have different criteria for model card review and approval.</p>
        /// <ul>
        /// <li> <p> <code>Draft</code>: The model card is a work in progress.</p> </li>
        /// <li> <p> <code>PendingReview</code>: The model card is pending review.</p> </li>
        /// <li> <p> <code>Approved</code>: The model card is approved.</p> </li>
        /// <li> <p> <code>Archived</code>: The model card is archived. No more updates should be made to the model card, but it can still be exported.</p> </li>
        /// </ul>
        pub fn model_card_status(mut self, input: crate::model::ModelCardStatus) -> Self {
            self.model_card_status = Some(input);
            self
        }
        /// <p>The approval status of the model card within your organization. Different organizations might have different criteria for model card review and approval.</p>
        /// <ul>
        /// <li> <p> <code>Draft</code>: The model card is a work in progress.</p> </li>
        /// <li> <p> <code>PendingReview</code>: The model card is pending review.</p> </li>
        /// <li> <p> <code>Approved</code>: The model card is approved.</p> </li>
        /// <li> <p> <code>Archived</code>: The model card is archived. No more updates should be made to the model card, but it can still be exported.</p> </li>
        /// </ul>
        pub fn set_model_card_status(
            mut self,
            input: std::option::Option<crate::model::ModelCardStatus>,
        ) -> Self {
            self.model_card_status = input;
            self
        }
        /// <p>The security configuration used to protect model card content.</p>
        pub fn security_config(mut self, input: crate::model::ModelCardSecurityConfig) -> Self {
            self.security_config = Some(input);
            self
        }
        /// <p>The security configuration used to protect model card content.</p>
        pub fn set_security_config(
            mut self,
            input: std::option::Option<crate::model::ModelCardSecurityConfig>,
        ) -> Self {
            self.security_config = input;
            self
        }
        /// <p>The date and time the model card was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The date and time the model card was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn created_by(mut self, input: crate::model::UserContext) -> Self {
            self.created_by = Some(input);
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn set_created_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.created_by = input;
            self
        }
        /// <p>The date and time the model card was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>The date and time the model card was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn last_modified_by(mut self, input: crate::model::UserContext) -> Self {
            self.last_modified_by = Some(input);
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn set_last_modified_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.last_modified_by = input;
            self
        }
        /// <p>The processing status of model card deletion. The <code>ModelCardProcessingStatus</code> updates throughout the different deletion steps.</p>
        /// <ul>
        /// <li> <p> <code>DeletePending</code>: Model card deletion request received.</p> </li>
        /// <li> <p> <code>DeleteInProgress</code>: Model card deletion is in progress.</p> </li>
        /// <li> <p> <code>ContentDeleted</code>: Deleted model card content.</p> </li>
        /// <li> <p> <code>ExportJobsDeleted</code>: Deleted all export jobs associated with the model card.</p> </li>
        /// <li> <p> <code>DeleteCompleted</code>: Successfully deleted the model card.</p> </li>
        /// <li> <p> <code>DeleteFailed</code>: The model card failed to delete.</p> </li>
        /// </ul>
        pub fn model_card_processing_status(
            mut self,
            input: crate::model::ModelCardProcessingStatus,
        ) -> Self {
            self.model_card_processing_status = Some(input);
            self
        }
        /// <p>The processing status of model card deletion. The <code>ModelCardProcessingStatus</code> updates throughout the different deletion steps.</p>
        /// <ul>
        /// <li> <p> <code>DeletePending</code>: Model card deletion request received.</p> </li>
        /// <li> <p> <code>DeleteInProgress</code>: Model card deletion is in progress.</p> </li>
        /// <li> <p> <code>ContentDeleted</code>: Deleted model card content.</p> </li>
        /// <li> <p> <code>ExportJobsDeleted</code>: Deleted all export jobs associated with the model card.</p> </li>
        /// <li> <p> <code>DeleteCompleted</code>: Successfully deleted the model card.</p> </li>
        /// <li> <p> <code>DeleteFailed</code>: The model card failed to delete.</p> </li>
        /// </ul>
        pub fn set_model_card_processing_status(
            mut self,
            input: std::option::Option<crate::model::ModelCardProcessingStatus>,
        ) -> Self {
            self.model_card_processing_status = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeModelCardOutput`](crate::output::DescribeModelCardOutput).
        pub fn build(self) -> crate::output::DescribeModelCardOutput {
            crate::output::DescribeModelCardOutput {
                model_card_arn: self.model_card_arn,
                model_card_name: self.model_card_name,
                model_card_version: self.model_card_version.unwrap_or_default(),
                content: self.content,
                model_card_status: self.model_card_status,
                security_config: self.security_config,
                creation_time: self.creation_time,
                created_by: self.created_by,
                last_modified_time: self.last_modified_time,
                last_modified_by: self.last_modified_by,
                model_card_processing_status: self.model_card_processing_status,
            }
        }
    }
    impl std::fmt::Debug for Builder {
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
            let mut formatter = f.debug_struct("Builder");
            formatter.field("model_card_arn", &self.model_card_arn);
            formatter.field("model_card_name", &self.model_card_name);
            formatter.field("model_card_version", &self.model_card_version);
            formatter.field("content", &"*** Sensitive Data Redacted ***");
            formatter.field("model_card_status", &self.model_card_status);
            formatter.field("security_config", &self.security_config);
            formatter.field("creation_time", &self.creation_time);
            formatter.field("created_by", &self.created_by);
            formatter.field("last_modified_time", &self.last_modified_time);
            formatter.field("last_modified_by", &self.last_modified_by);
            formatter.field(
                "model_card_processing_status",
                &self.model_card_processing_status,
            );
            formatter.finish()
        }
    }
}
impl DescribeModelCardOutput {
    /// Creates a new builder-style object to manufacture [`DescribeModelCardOutput`](crate::output::DescribeModelCardOutput).
    pub fn builder() -> crate::output::describe_model_card_output::Builder {
        crate::output::describe_model_card_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeModelBiasJobDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the model bias job.</p>
    #[doc(hidden)]
    pub job_definition_arn: std::option::Option<std::string::String>,
    /// <p>The name of the bias job definition. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
    #[doc(hidden)]
    pub job_definition_name: std::option::Option<std::string::String>,
    /// <p>The time at which the model bias job was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The baseline configuration for a model bias job.</p>
    #[doc(hidden)]
    pub model_bias_baseline_config: std::option::Option<crate::model::ModelBiasBaselineConfig>,
    /// <p>Configures the model bias job to run a specified Docker container image.</p>
    #[doc(hidden)]
    pub model_bias_app_specification: std::option::Option<crate::model::ModelBiasAppSpecification>,
    /// <p>Inputs for the model bias job.</p>
    #[doc(hidden)]
    pub model_bias_job_input: std::option::Option<crate::model::ModelBiasJobInput>,
    /// <p>The output configuration for monitoring jobs.</p>
    #[doc(hidden)]
    pub model_bias_job_output_config: std::option::Option<crate::model::MonitoringOutputConfig>,
    /// <p>Identifies the resources to deploy for a monitoring job.</p>
    #[doc(hidden)]
    pub job_resources: std::option::Option<crate::model::MonitoringResources>,
    /// <p>Networking options for a model bias job.</p>
    #[doc(hidden)]
    pub network_config: std::option::Option<crate::model::MonitoringNetworkConfig>,
    /// <p>The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that has read permission to the input data location and write permission to the output data location in Amazon S3.</p>
    #[doc(hidden)]
    pub role_arn: std::option::Option<std::string::String>,
    /// <p>A time limit for how long the monitoring job is allowed to run before stopping.</p>
    #[doc(hidden)]
    pub stopping_condition: std::option::Option<crate::model::MonitoringStoppingCondition>,
}
impl DescribeModelBiasJobDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the model bias job.</p>
    pub fn job_definition_arn(&self) -> std::option::Option<&str> {
        self.job_definition_arn.as_deref()
    }
    /// <p>The name of the bias job definition. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
    pub fn job_definition_name(&self) -> std::option::Option<&str> {
        self.job_definition_name.as_deref()
    }
    /// <p>The time at which the model bias job was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The baseline configuration for a model bias job.</p>
    pub fn model_bias_baseline_config(
        &self,
    ) -> std::option::Option<&crate::model::ModelBiasBaselineConfig> {
        self.model_bias_baseline_config.as_ref()
    }
    /// <p>Configures the model bias job to run a specified Docker container image.</p>
    pub fn model_bias_app_specification(
        &self,
    ) -> std::option::Option<&crate::model::ModelBiasAppSpecification> {
        self.model_bias_app_specification.as_ref()
    }
    /// <p>Inputs for the model bias job.</p>
    pub fn model_bias_job_input(&self) -> std::option::Option<&crate::model::ModelBiasJobInput> {
        self.model_bias_job_input.as_ref()
    }
    /// <p>The output configuration for monitoring jobs.</p>
    pub fn model_bias_job_output_config(
        &self,
    ) -> std::option::Option<&crate::model::MonitoringOutputConfig> {
        self.model_bias_job_output_config.as_ref()
    }
    /// <p>Identifies the resources to deploy for a monitoring job.</p>
    pub fn job_resources(&self) -> std::option::Option<&crate::model::MonitoringResources> {
        self.job_resources.as_ref()
    }
    /// <p>Networking options for a model bias job.</p>
    pub fn network_config(&self) -> std::option::Option<&crate::model::MonitoringNetworkConfig> {
        self.network_config.as_ref()
    }
    /// <p>The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that has read permission to the input data location and write permission to the output data location in Amazon S3.</p>
    pub fn role_arn(&self) -> std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    /// <p>A time limit for how long the monitoring job is allowed to run before stopping.</p>
    pub fn stopping_condition(
        &self,
    ) -> std::option::Option<&crate::model::MonitoringStoppingCondition> {
        self.stopping_condition.as_ref()
    }
}
/// See [`DescribeModelBiasJobDefinitionOutput`](crate::output::DescribeModelBiasJobDefinitionOutput).
pub mod describe_model_bias_job_definition_output {

    /// A builder for [`DescribeModelBiasJobDefinitionOutput`](crate::output::DescribeModelBiasJobDefinitionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) job_definition_arn: std::option::Option<std::string::String>,
        pub(crate) job_definition_name: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) model_bias_baseline_config:
            std::option::Option<crate::model::ModelBiasBaselineConfig>,
        pub(crate) model_bias_app_specification:
            std::option::Option<crate::model::ModelBiasAppSpecification>,
        pub(crate) model_bias_job_input: std::option::Option<crate::model::ModelBiasJobInput>,
        pub(crate) model_bias_job_output_config:
            std::option::Option<crate::model::MonitoringOutputConfig>,
        pub(crate) job_resources: std::option::Option<crate::model::MonitoringResources>,
        pub(crate) network_config: std::option::Option<crate::model::MonitoringNetworkConfig>,
        pub(crate) role_arn: std::option::Option<std::string::String>,
        pub(crate) stopping_condition:
            std::option::Option<crate::model::MonitoringStoppingCondition>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the model bias job.</p>
        pub fn job_definition_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.job_definition_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model bias job.</p>
        pub fn set_job_definition_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.job_definition_arn = input;
            self
        }
        /// <p>The name of the bias job definition. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
        pub fn job_definition_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.job_definition_name = Some(input.into());
            self
        }
        /// <p>The name of the bias job definition. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
        pub fn set_job_definition_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.job_definition_name = input;
            self
        }
        /// <p>The time at which the model bias job was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The time at which the model bias job was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The baseline configuration for a model bias job.</p>
        pub fn model_bias_baseline_config(
            mut self,
            input: crate::model::ModelBiasBaselineConfig,
        ) -> Self {
            self.model_bias_baseline_config = Some(input);
            self
        }
        /// <p>The baseline configuration for a model bias job.</p>
        pub fn set_model_bias_baseline_config(
            mut self,
            input: std::option::Option<crate::model::ModelBiasBaselineConfig>,
        ) -> Self {
            self.model_bias_baseline_config = input;
            self
        }
        /// <p>Configures the model bias job to run a specified Docker container image.</p>
        pub fn model_bias_app_specification(
            mut self,
            input: crate::model::ModelBiasAppSpecification,
        ) -> Self {
            self.model_bias_app_specification = Some(input);
            self
        }
        /// <p>Configures the model bias job to run a specified Docker container image.</p>
        pub fn set_model_bias_app_specification(
            mut self,
            input: std::option::Option<crate::model::ModelBiasAppSpecification>,
        ) -> Self {
            self.model_bias_app_specification = input;
            self
        }
        /// <p>Inputs for the model bias job.</p>
        pub fn model_bias_job_input(mut self, input: crate::model::ModelBiasJobInput) -> Self {
            self.model_bias_job_input = Some(input);
            self
        }
        /// <p>Inputs for the model bias job.</p>
        pub fn set_model_bias_job_input(
            mut self,
            input: std::option::Option<crate::model::ModelBiasJobInput>,
        ) -> Self {
            self.model_bias_job_input = input;
            self
        }
        /// <p>The output configuration for monitoring jobs.</p>
        pub fn model_bias_job_output_config(
            mut self,
            input: crate::model::MonitoringOutputConfig,
        ) -> Self {
            self.model_bias_job_output_config = Some(input);
            self
        }
        /// <p>The output configuration for monitoring jobs.</p>
        pub fn set_model_bias_job_output_config(
            mut self,
            input: std::option::Option<crate::model::MonitoringOutputConfig>,
        ) -> Self {
            self.model_bias_job_output_config = input;
            self
        }
        /// <p>Identifies the resources to deploy for a monitoring job.</p>
        pub fn job_resources(mut self, input: crate::model::MonitoringResources) -> Self {
            self.job_resources = Some(input);
            self
        }
        /// <p>Identifies the resources to deploy for a monitoring job.</p>
        pub fn set_job_resources(
            mut self,
            input: std::option::Option<crate::model::MonitoringResources>,
        ) -> Self {
            self.job_resources = input;
            self
        }
        /// <p>Networking options for a model bias job.</p>
        pub fn network_config(mut self, input: crate::model::MonitoringNetworkConfig) -> Self {
            self.network_config = Some(input);
            self
        }
        /// <p>Networking options for a model bias job.</p>
        pub fn set_network_config(
            mut self,
            input: std::option::Option<crate::model::MonitoringNetworkConfig>,
        ) -> Self {
            self.network_config = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that has read permission to the input data location and write permission to the output data location in Amazon S3.</p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.role_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that has read permission to the input data location and write permission to the output data location in Amazon S3.</p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.role_arn = input;
            self
        }
        /// <p>A time limit for how long the monitoring job is allowed to run before stopping.</p>
        pub fn stopping_condition(
            mut self,
            input: crate::model::MonitoringStoppingCondition,
        ) -> Self {
            self.stopping_condition = Some(input);
            self
        }
        /// <p>A time limit for how long the monitoring job is allowed to run before stopping.</p>
        pub fn set_stopping_condition(
            mut self,
            input: std::option::Option<crate::model::MonitoringStoppingCondition>,
        ) -> Self {
            self.stopping_condition = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeModelBiasJobDefinitionOutput`](crate::output::DescribeModelBiasJobDefinitionOutput).
        pub fn build(self) -> crate::output::DescribeModelBiasJobDefinitionOutput {
            crate::output::DescribeModelBiasJobDefinitionOutput {
                job_definition_arn: self.job_definition_arn,
                job_definition_name: self.job_definition_name,
                creation_time: self.creation_time,
                model_bias_baseline_config: self.model_bias_baseline_config,
                model_bias_app_specification: self.model_bias_app_specification,
                model_bias_job_input: self.model_bias_job_input,
                model_bias_job_output_config: self.model_bias_job_output_config,
                job_resources: self.job_resources,
                network_config: self.network_config,
                role_arn: self.role_arn,
                stopping_condition: self.stopping_condition,
            }
        }
    }
}
impl DescribeModelBiasJobDefinitionOutput {
    /// Creates a new builder-style object to manufacture [`DescribeModelBiasJobDefinitionOutput`](crate::output::DescribeModelBiasJobDefinitionOutput).
    pub fn builder() -> crate::output::describe_model_bias_job_definition_output::Builder {
        crate::output::describe_model_bias_job_definition_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeModelOutput {
    /// <p>Name of the SageMaker model.</p>
    #[doc(hidden)]
    pub model_name: std::option::Option<std::string::String>,
    /// <p>The location of the primary inference code, associated artifacts, and custom environment map that the inference code uses when it is deployed in production. </p>
    #[doc(hidden)]
    pub primary_container: std::option::Option<crate::model::ContainerDefinition>,
    /// <p>The containers in the inference pipeline.</p>
    #[doc(hidden)]
    pub containers: std::option::Option<std::vec::Vec<crate::model::ContainerDefinition>>,
    /// <p>Specifies details of how containers in a multi-container endpoint are called.</p>
    #[doc(hidden)]
    pub inference_execution_config: std::option::Option<crate::model::InferenceExecutionConfig>,
    /// <p>The Amazon Resource Name (ARN) of the IAM role that you specified for the model.</p>
    #[doc(hidden)]
    pub execution_role_arn: std::option::Option<std::string::String>,
    /// <p>A <code>VpcConfig</code> object that specifies the VPC that this model has access to. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> </p>
    #[doc(hidden)]
    pub vpc_config: std::option::Option<crate::model::VpcConfig>,
    /// <p>A timestamp that shows when the model was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The Amazon Resource Name (ARN) of the model.</p>
    #[doc(hidden)]
    pub model_arn: std::option::Option<std::string::String>,
    /// <p>If <code>True</code>, no inbound or outbound network calls can be made to or from the model container.</p>
    #[doc(hidden)]
    pub enable_network_isolation: bool,
}
impl DescribeModelOutput {
    /// <p>Name of the SageMaker model.</p>
    pub fn model_name(&self) -> std::option::Option<&str> {
        self.model_name.as_deref()
    }
    /// <p>The location of the primary inference code, associated artifacts, and custom environment map that the inference code uses when it is deployed in production. </p>
    pub fn primary_container(&self) -> std::option::Option<&crate::model::ContainerDefinition> {
        self.primary_container.as_ref()
    }
    /// <p>The containers in the inference pipeline.</p>
    pub fn containers(&self) -> std::option::Option<&[crate::model::ContainerDefinition]> {
        self.containers.as_deref()
    }
    /// <p>Specifies details of how containers in a multi-container endpoint are called.</p>
    pub fn inference_execution_config(
        &self,
    ) -> std::option::Option<&crate::model::InferenceExecutionConfig> {
        self.inference_execution_config.as_ref()
    }
    /// <p>The Amazon Resource Name (ARN) of the IAM role that you specified for the model.</p>
    pub fn execution_role_arn(&self) -> std::option::Option<&str> {
        self.execution_role_arn.as_deref()
    }
    /// <p>A <code>VpcConfig</code> object that specifies the VPC that this model has access to. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> </p>
    pub fn vpc_config(&self) -> std::option::Option<&crate::model::VpcConfig> {
        self.vpc_config.as_ref()
    }
    /// <p>A timestamp that shows when the model was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The Amazon Resource Name (ARN) of the model.</p>
    pub fn model_arn(&self) -> std::option::Option<&str> {
        self.model_arn.as_deref()
    }
    /// <p>If <code>True</code>, no inbound or outbound network calls can be made to or from the model container.</p>
    pub fn enable_network_isolation(&self) -> bool {
        self.enable_network_isolation
    }
}
/// See [`DescribeModelOutput`](crate::output::DescribeModelOutput).
pub mod describe_model_output {

    /// A builder for [`DescribeModelOutput`](crate::output::DescribeModelOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) model_name: std::option::Option<std::string::String>,
        pub(crate) primary_container: std::option::Option<crate::model::ContainerDefinition>,
        pub(crate) containers:
            std::option::Option<std::vec::Vec<crate::model::ContainerDefinition>>,
        pub(crate) inference_execution_config:
            std::option::Option<crate::model::InferenceExecutionConfig>,
        pub(crate) execution_role_arn: std::option::Option<std::string::String>,
        pub(crate) vpc_config: std::option::Option<crate::model::VpcConfig>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) model_arn: std::option::Option<std::string::String>,
        pub(crate) enable_network_isolation: std::option::Option<bool>,
    }
    impl Builder {
        /// <p>Name of the SageMaker model.</p>
        pub fn model_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_name = Some(input.into());
            self
        }
        /// <p>Name of the SageMaker model.</p>
        pub fn set_model_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.model_name = input;
            self
        }
        /// <p>The location of the primary inference code, associated artifacts, and custom environment map that the inference code uses when it is deployed in production. </p>
        pub fn primary_container(mut self, input: crate::model::ContainerDefinition) -> Self {
            self.primary_container = Some(input);
            self
        }
        /// <p>The location of the primary inference code, associated artifacts, and custom environment map that the inference code uses when it is deployed in production. </p>
        pub fn set_primary_container(
            mut self,
            input: std::option::Option<crate::model::ContainerDefinition>,
        ) -> Self {
            self.primary_container = input;
            self
        }
        /// Appends an item to `containers`.
        ///
        /// To override the contents of this collection use [`set_containers`](Self::set_containers).
        ///
        /// <p>The containers in the inference pipeline.</p>
        pub fn containers(mut self, input: crate::model::ContainerDefinition) -> Self {
            let mut v = self.containers.unwrap_or_default();
            v.push(input);
            self.containers = Some(v);
            self
        }
        /// <p>The containers in the inference pipeline.</p>
        pub fn set_containers(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ContainerDefinition>>,
        ) -> Self {
            self.containers = input;
            self
        }
        /// <p>Specifies details of how containers in a multi-container endpoint are called.</p>
        pub fn inference_execution_config(
            mut self,
            input: crate::model::InferenceExecutionConfig,
        ) -> Self {
            self.inference_execution_config = Some(input);
            self
        }
        /// <p>Specifies details of how containers in a multi-container endpoint are called.</p>
        pub fn set_inference_execution_config(
            mut self,
            input: std::option::Option<crate::model::InferenceExecutionConfig>,
        ) -> Self {
            self.inference_execution_config = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the IAM role that you specified for the model.</p>
        pub fn execution_role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.execution_role_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the IAM role that you specified for the model.</p>
        pub fn set_execution_role_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.execution_role_arn = input;
            self
        }
        /// <p>A <code>VpcConfig</code> object that specifies the VPC that this model has access to. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> </p>
        pub fn vpc_config(mut self, input: crate::model::VpcConfig) -> Self {
            self.vpc_config = Some(input);
            self
        }
        /// <p>A <code>VpcConfig</code> object that specifies the VPC that this model has access to. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> </p>
        pub fn set_vpc_config(
            mut self,
            input: std::option::Option<crate::model::VpcConfig>,
        ) -> Self {
            self.vpc_config = input;
            self
        }
        /// <p>A timestamp that shows when the model was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>A timestamp that shows when the model was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model.</p>
        pub fn model_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model.</p>
        pub fn set_model_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.model_arn = input;
            self
        }
        /// <p>If <code>True</code>, no inbound or outbound network calls can be made to or from the model container.</p>
        pub fn enable_network_isolation(mut self, input: bool) -> Self {
            self.enable_network_isolation = Some(input);
            self
        }
        /// <p>If <code>True</code>, no inbound or outbound network calls can be made to or from the model container.</p>
        pub fn set_enable_network_isolation(mut self, input: std::option::Option<bool>) -> Self {
            self.enable_network_isolation = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeModelOutput`](crate::output::DescribeModelOutput).
        pub fn build(self) -> crate::output::DescribeModelOutput {
            crate::output::DescribeModelOutput {
                model_name: self.model_name,
                primary_container: self.primary_container,
                containers: self.containers,
                inference_execution_config: self.inference_execution_config,
                execution_role_arn: self.execution_role_arn,
                vpc_config: self.vpc_config,
                creation_time: self.creation_time,
                model_arn: self.model_arn,
                enable_network_isolation: self.enable_network_isolation.unwrap_or_default(),
            }
        }
    }
}
impl DescribeModelOutput {
    /// Creates a new builder-style object to manufacture [`DescribeModelOutput`](crate::output::DescribeModelOutput).
    pub fn builder() -> crate::output::describe_model_output::Builder {
        crate::output::describe_model_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeLineageGroupOutput {
    /// <p>The name of the lineage group.</p>
    #[doc(hidden)]
    pub lineage_group_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
    #[doc(hidden)]
    pub lineage_group_arn: std::option::Option<std::string::String>,
    /// <p>The display name of the lineage group.</p>
    #[doc(hidden)]
    pub display_name: std::option::Option<std::string::String>,
    /// <p>The description of the lineage group.</p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p>The creation time of lineage group.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    #[doc(hidden)]
    pub created_by: std::option::Option<crate::model::UserContext>,
    /// <p>The last modified time of the lineage group.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    #[doc(hidden)]
    pub last_modified_by: std::option::Option<crate::model::UserContext>,
}
impl DescribeLineageGroupOutput {
    /// <p>The name of the lineage group.</p>
    pub fn lineage_group_name(&self) -> std::option::Option<&str> {
        self.lineage_group_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
    pub fn lineage_group_arn(&self) -> std::option::Option<&str> {
        self.lineage_group_arn.as_deref()
    }
    /// <p>The display name of the lineage group.</p>
    pub fn display_name(&self) -> std::option::Option<&str> {
        self.display_name.as_deref()
    }
    /// <p>The description of the lineage group.</p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>The creation time of lineage group.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    pub fn created_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.created_by.as_ref()
    }
    /// <p>The last modified time of the lineage group.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    pub fn last_modified_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.last_modified_by.as_ref()
    }
}
/// See [`DescribeLineageGroupOutput`](crate::output::DescribeLineageGroupOutput).
pub mod describe_lineage_group_output {

    /// A builder for [`DescribeLineageGroupOutput`](crate::output::DescribeLineageGroupOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) lineage_group_name: std::option::Option<std::string::String>,
        pub(crate) lineage_group_arn: std::option::Option<std::string::String>,
        pub(crate) display_name: std::option::Option<std::string::String>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) created_by: std::option::Option<crate::model::UserContext>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_by: std::option::Option<crate::model::UserContext>,
    }
    impl Builder {
        /// <p>The name of the lineage group.</p>
        pub fn lineage_group_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.lineage_group_name = Some(input.into());
            self
        }
        /// <p>The name of the lineage group.</p>
        pub fn set_lineage_group_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.lineage_group_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
        pub fn lineage_group_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.lineage_group_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
        pub fn set_lineage_group_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.lineage_group_arn = input;
            self
        }
        /// <p>The display name of the lineage group.</p>
        pub fn display_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.display_name = Some(input.into());
            self
        }
        /// <p>The display name of the lineage group.</p>
        pub fn set_display_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.display_name = input;
            self
        }
        /// <p>The description of the lineage group.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p>The description of the lineage group.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// <p>The creation time of lineage group.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The creation time of lineage group.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn created_by(mut self, input: crate::model::UserContext) -> Self {
            self.created_by = Some(input);
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn set_created_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.created_by = input;
            self
        }
        /// <p>The last modified time of the lineage group.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>The last modified time of the lineage group.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn last_modified_by(mut self, input: crate::model::UserContext) -> Self {
            self.last_modified_by = Some(input);
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn set_last_modified_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.last_modified_by = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeLineageGroupOutput`](crate::output::DescribeLineageGroupOutput).
        pub fn build(self) -> crate::output::DescribeLineageGroupOutput {
            crate::output::DescribeLineageGroupOutput {
                lineage_group_name: self.lineage_group_name,
                lineage_group_arn: self.lineage_group_arn,
                display_name: self.display_name,
                description: self.description,
                creation_time: self.creation_time,
                created_by: self.created_by,
                last_modified_time: self.last_modified_time,
                last_modified_by: self.last_modified_by,
            }
        }
    }
}
impl DescribeLineageGroupOutput {
    /// Creates a new builder-style object to manufacture [`DescribeLineageGroupOutput`](crate::output::DescribeLineageGroupOutput).
    pub fn builder() -> crate::output::describe_lineage_group_output::Builder {
        crate::output::describe_lineage_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 DescribeLabelingJobOutput {
    /// <p>The processing status of the labeling job. </p>
    #[doc(hidden)]
    pub labeling_job_status: std::option::Option<crate::model::LabelingJobStatus>,
    /// <p>Provides a breakdown of the number of data objects labeled by humans, the number of objects labeled by machine, the number of objects than couldn't be labeled, and the total number of objects labeled. </p>
    #[doc(hidden)]
    pub label_counters: std::option::Option<crate::model::LabelCounters>,
    /// <p>If the job failed, the reason that it failed. </p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>The date and time that the labeling job was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The date and time that the labeling job was last updated.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>A unique identifier for work done as part of a labeling job.</p>
    #[doc(hidden)]
    pub job_reference_code: std::option::Option<std::string::String>,
    /// <p>The name assigned to the labeling job when it was created.</p>
    #[doc(hidden)]
    pub labeling_job_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the labeling job.</p>
    #[doc(hidden)]
    pub labeling_job_arn: std::option::Option<std::string::String>,
    /// <p>The attribute used as the label in the output manifest file.</p>
    #[doc(hidden)]
    pub label_attribute_name: std::option::Option<std::string::String>,
    /// <p>Input configuration information for the labeling job, such as the Amazon S3 location of the data objects and the location of the manifest file that describes the data objects.</p>
    #[doc(hidden)]
    pub input_config: std::option::Option<crate::model::LabelingJobInputConfig>,
    /// <p>The location of the job's output data and the Amazon Web Services Key Management Service key ID for the key used to encrypt the output data, if any.</p>
    #[doc(hidden)]
    pub output_config: std::option::Option<crate::model::LabelingJobOutputConfig>,
    /// <p>The Amazon Resource Name (ARN) that SageMaker assumes to perform tasks on your behalf during data labeling.</p>
    #[doc(hidden)]
    pub role_arn: std::option::Option<std::string::String>,
    /// <p>The S3 location of the JSON file that defines the categories used to label data objects. Please note the following label-category limits:</p>
    /// <ul>
    /// <li> <p>Semantic segmentation labeling jobs using automated labeling: 20 labels</p> </li>
    /// <li> <p>Box bounding labeling jobs (all): 10 labels</p> </li>
    /// </ul>
    /// <p>The file is a JSON structure in the following format:</p>
    /// <p> <code>{</code> </p>
    /// <p> <code> "document-version": "2018-11-28"</code> </p>
    /// <p> <code> "labels": [</code> </p>
    /// <p> <code> {</code> </p>
    /// <p> <code> "label": "<i>label 1</i>"</code> </p>
    /// <p> <code> },</code> </p>
    /// <p> <code> {</code> </p>
    /// <p> <code> "label": "<i>label 2</i>"</code> </p>
    /// <p> <code> },</code> </p>
    /// <p> <code> ...</code> </p>
    /// <p> <code> {</code> </p>
    /// <p> <code> "label": "<i>label n</i>"</code> </p>
    /// <p> <code> }</code> </p>
    /// <p> <code> ]</code> </p>
    /// <p> <code>}</code> </p>
    #[doc(hidden)]
    pub label_category_config_s3_uri: std::option::Option<std::string::String>,
    /// <p>A set of conditions for stopping a labeling job. If any of the conditions are met, the job is automatically stopped.</p>
    #[doc(hidden)]
    pub stopping_conditions: std::option::Option<crate::model::LabelingJobStoppingConditions>,
    /// <p>Configuration information for automated data labeling.</p>
    #[doc(hidden)]
    pub labeling_job_algorithms_config:
        std::option::Option<crate::model::LabelingJobAlgorithmsConfig>,
    /// <p>Configuration information required for human workers to complete a labeling task.</p>
    #[doc(hidden)]
    pub human_task_config: std::option::Option<crate::model::HumanTaskConfig>,
    /// <p>An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services Resources</a>.</p>
    #[doc(hidden)]
    pub tags: std::option::Option<std::vec::Vec<crate::model::Tag>>,
    /// <p>The location of the output produced by the labeling job.</p>
    #[doc(hidden)]
    pub labeling_job_output: std::option::Option<crate::model::LabelingJobOutput>,
}
impl DescribeLabelingJobOutput {
    /// <p>The processing status of the labeling job. </p>
    pub fn labeling_job_status(&self) -> std::option::Option<&crate::model::LabelingJobStatus> {
        self.labeling_job_status.as_ref()
    }
    /// <p>Provides a breakdown of the number of data objects labeled by humans, the number of objects labeled by machine, the number of objects than couldn't be labeled, and the total number of objects labeled. </p>
    pub fn label_counters(&self) -> std::option::Option<&crate::model::LabelCounters> {
        self.label_counters.as_ref()
    }
    /// <p>If the job failed, the reason that it failed. </p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>The date and time that the labeling job was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The date and time that the labeling job was last updated.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>A unique identifier for work done as part of a labeling job.</p>
    pub fn job_reference_code(&self) -> std::option::Option<&str> {
        self.job_reference_code.as_deref()
    }
    /// <p>The name assigned to the labeling job when it was created.</p>
    pub fn labeling_job_name(&self) -> std::option::Option<&str> {
        self.labeling_job_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the labeling job.</p>
    pub fn labeling_job_arn(&self) -> std::option::Option<&str> {
        self.labeling_job_arn.as_deref()
    }
    /// <p>The attribute used as the label in the output manifest file.</p>
    pub fn label_attribute_name(&self) -> std::option::Option<&str> {
        self.label_attribute_name.as_deref()
    }
    /// <p>Input configuration information for the labeling job, such as the Amazon S3 location of the data objects and the location of the manifest file that describes the data objects.</p>
    pub fn input_config(&self) -> std::option::Option<&crate::model::LabelingJobInputConfig> {
        self.input_config.as_ref()
    }
    /// <p>The location of the job's output data and the Amazon Web Services Key Management Service key ID for the key used to encrypt the output data, if any.</p>
    pub fn output_config(&self) -> std::option::Option<&crate::model::LabelingJobOutputConfig> {
        self.output_config.as_ref()
    }
    /// <p>The Amazon Resource Name (ARN) that SageMaker assumes to perform tasks on your behalf during data labeling.</p>
    pub fn role_arn(&self) -> std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    /// <p>The S3 location of the JSON file that defines the categories used to label data objects. Please note the following label-category limits:</p>
    /// <ul>
    /// <li> <p>Semantic segmentation labeling jobs using automated labeling: 20 labels</p> </li>
    /// <li> <p>Box bounding labeling jobs (all): 10 labels</p> </li>
    /// </ul>
    /// <p>The file is a JSON structure in the following format:</p>
    /// <p> <code>{</code> </p>
    /// <p> <code> "document-version": "2018-11-28"</code> </p>
    /// <p> <code> "labels": [</code> </p>
    /// <p> <code> {</code> </p>
    /// <p> <code> "label": "<i>label 1</i>"</code> </p>
    /// <p> <code> },</code> </p>
    /// <p> <code> {</code> </p>
    /// <p> <code> "label": "<i>label 2</i>"</code> </p>
    /// <p> <code> },</code> </p>
    /// <p> <code> ...</code> </p>
    /// <p> <code> {</code> </p>
    /// <p> <code> "label": "<i>label n</i>"</code> </p>
    /// <p> <code> }</code> </p>
    /// <p> <code> ]</code> </p>
    /// <p> <code>}</code> </p>
    pub fn label_category_config_s3_uri(&self) -> std::option::Option<&str> {
        self.label_category_config_s3_uri.as_deref()
    }
    /// <p>A set of conditions for stopping a labeling job. If any of the conditions are met, the job is automatically stopped.</p>
    pub fn stopping_conditions(
        &self,
    ) -> std::option::Option<&crate::model::LabelingJobStoppingConditions> {
        self.stopping_conditions.as_ref()
    }
    /// <p>Configuration information for automated data labeling.</p>
    pub fn labeling_job_algorithms_config(
        &self,
    ) -> std::option::Option<&crate::model::LabelingJobAlgorithmsConfig> {
        self.labeling_job_algorithms_config.as_ref()
    }
    /// <p>Configuration information required for human workers to complete a labeling task.</p>
    pub fn human_task_config(&self) -> std::option::Option<&crate::model::HumanTaskConfig> {
        self.human_task_config.as_ref()
    }
    /// <p>An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services Resources</a>.</p>
    pub fn tags(&self) -> std::option::Option<&[crate::model::Tag]> {
        self.tags.as_deref()
    }
    /// <p>The location of the output produced by the labeling job.</p>
    pub fn labeling_job_output(&self) -> std::option::Option<&crate::model::LabelingJobOutput> {
        self.labeling_job_output.as_ref()
    }
}
/// See [`DescribeLabelingJobOutput`](crate::output::DescribeLabelingJobOutput).
pub mod describe_labeling_job_output {

    /// A builder for [`DescribeLabelingJobOutput`](crate::output::DescribeLabelingJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) labeling_job_status: std::option::Option<crate::model::LabelingJobStatus>,
        pub(crate) label_counters: std::option::Option<crate::model::LabelCounters>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) job_reference_code: std::option::Option<std::string::String>,
        pub(crate) labeling_job_name: std::option::Option<std::string::String>,
        pub(crate) labeling_job_arn: std::option::Option<std::string::String>,
        pub(crate) label_attribute_name: std::option::Option<std::string::String>,
        pub(crate) input_config: std::option::Option<crate::model::LabelingJobInputConfig>,
        pub(crate) output_config: std::option::Option<crate::model::LabelingJobOutputConfig>,
        pub(crate) role_arn: std::option::Option<std::string::String>,
        pub(crate) label_category_config_s3_uri: std::option::Option<std::string::String>,
        pub(crate) stopping_conditions:
            std::option::Option<crate::model::LabelingJobStoppingConditions>,
        pub(crate) labeling_job_algorithms_config:
            std::option::Option<crate::model::LabelingJobAlgorithmsConfig>,
        pub(crate) human_task_config: std::option::Option<crate::model::HumanTaskConfig>,
        pub(crate) tags: std::option::Option<std::vec::Vec<crate::model::Tag>>,
        pub(crate) labeling_job_output: std::option::Option<crate::model::LabelingJobOutput>,
    }
    impl Builder {
        /// <p>The processing status of the labeling job. </p>
        pub fn labeling_job_status(mut self, input: crate::model::LabelingJobStatus) -> Self {
            self.labeling_job_status = Some(input);
            self
        }
        /// <p>The processing status of the labeling job. </p>
        pub fn set_labeling_job_status(
            mut self,
            input: std::option::Option<crate::model::LabelingJobStatus>,
        ) -> Self {
            self.labeling_job_status = input;
            self
        }
        /// <p>Provides a breakdown of the number of data objects labeled by humans, the number of objects labeled by machine, the number of objects than couldn't be labeled, and the total number of objects labeled. </p>
        pub fn label_counters(mut self, input: crate::model::LabelCounters) -> Self {
            self.label_counters = Some(input);
            self
        }
        /// <p>Provides a breakdown of the number of data objects labeled by humans, the number of objects labeled by machine, the number of objects than couldn't be labeled, and the total number of objects labeled. </p>
        pub fn set_label_counters(
            mut self,
            input: std::option::Option<crate::model::LabelCounters>,
        ) -> Self {
            self.label_counters = input;
            self
        }
        /// <p>If the job failed, the reason that it failed. </p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>If the job failed, the reason that it failed. </p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// <p>The date and time that the labeling job was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The date and time that the labeling job was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The date and time that the labeling job was last updated.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>The date and time that the labeling job was last updated.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>A unique identifier for work done as part of a labeling job.</p>
        pub fn job_reference_code(mut self, input: impl Into<std::string::String>) -> Self {
            self.job_reference_code = Some(input.into());
            self
        }
        /// <p>A unique identifier for work done as part of a labeling job.</p>
        pub fn set_job_reference_code(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.job_reference_code = input;
            self
        }
        /// <p>The name assigned to the labeling job when it was created.</p>
        pub fn labeling_job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.labeling_job_name = Some(input.into());
            self
        }
        /// <p>The name assigned to the labeling job when it was created.</p>
        pub fn set_labeling_job_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.labeling_job_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the labeling job.</p>
        pub fn labeling_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.labeling_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the labeling job.</p>
        pub fn set_labeling_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.labeling_job_arn = input;
            self
        }
        /// <p>The attribute used as the label in the output manifest file.</p>
        pub fn label_attribute_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.label_attribute_name = Some(input.into());
            self
        }
        /// <p>The attribute used as the label in the output manifest file.</p>
        pub fn set_label_attribute_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.label_attribute_name = input;
            self
        }
        /// <p>Input configuration information for the labeling job, such as the Amazon S3 location of the data objects and the location of the manifest file that describes the data objects.</p>
        pub fn input_config(mut self, input: crate::model::LabelingJobInputConfig) -> Self {
            self.input_config = Some(input);
            self
        }
        /// <p>Input configuration information for the labeling job, such as the Amazon S3 location of the data objects and the location of the manifest file that describes the data objects.</p>
        pub fn set_input_config(
            mut self,
            input: std::option::Option<crate::model::LabelingJobInputConfig>,
        ) -> Self {
            self.input_config = input;
            self
        }
        /// <p>The location of the job's output data and the Amazon Web Services Key Management Service key ID for the key used to encrypt the output data, if any.</p>
        pub fn output_config(mut self, input: crate::model::LabelingJobOutputConfig) -> Self {
            self.output_config = Some(input);
            self
        }
        /// <p>The location of the job's output data and the Amazon Web Services Key Management Service key ID for the key used to encrypt the output data, if any.</p>
        pub fn set_output_config(
            mut self,
            input: std::option::Option<crate::model::LabelingJobOutputConfig>,
        ) -> Self {
            self.output_config = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) that SageMaker assumes to perform tasks on your behalf during data labeling.</p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.role_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) that SageMaker assumes to perform tasks on your behalf during data labeling.</p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.role_arn = input;
            self
        }
        /// <p>The S3 location of the JSON file that defines the categories used to label data objects. Please note the following label-category limits:</p>
        /// <ul>
        /// <li> <p>Semantic segmentation labeling jobs using automated labeling: 20 labels</p> </li>
        /// <li> <p>Box bounding labeling jobs (all): 10 labels</p> </li>
        /// </ul>
        /// <p>The file is a JSON structure in the following format:</p>
        /// <p> <code>{</code> </p>
        /// <p> <code> "document-version": "2018-11-28"</code> </p>
        /// <p> <code> "labels": [</code> </p>
        /// <p> <code> {</code> </p>
        /// <p> <code> "label": "<i>label 1</i>"</code> </p>
        /// <p> <code> },</code> </p>
        /// <p> <code> {</code> </p>
        /// <p> <code> "label": "<i>label 2</i>"</code> </p>
        /// <p> <code> },</code> </p>
        /// <p> <code> ...</code> </p>
        /// <p> <code> {</code> </p>
        /// <p> <code> "label": "<i>label n</i>"</code> </p>
        /// <p> <code> }</code> </p>
        /// <p> <code> ]</code> </p>
        /// <p> <code>}</code> </p>
        pub fn label_category_config_s3_uri(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.label_category_config_s3_uri = Some(input.into());
            self
        }
        /// <p>The S3 location of the JSON file that defines the categories used to label data objects. Please note the following label-category limits:</p>
        /// <ul>
        /// <li> <p>Semantic segmentation labeling jobs using automated labeling: 20 labels</p> </li>
        /// <li> <p>Box bounding labeling jobs (all): 10 labels</p> </li>
        /// </ul>
        /// <p>The file is a JSON structure in the following format:</p>
        /// <p> <code>{</code> </p>
        /// <p> <code> "document-version": "2018-11-28"</code> </p>
        /// <p> <code> "labels": [</code> </p>
        /// <p> <code> {</code> </p>
        /// <p> <code> "label": "<i>label 1</i>"</code> </p>
        /// <p> <code> },</code> </p>
        /// <p> <code> {</code> </p>
        /// <p> <code> "label": "<i>label 2</i>"</code> </p>
        /// <p> <code> },</code> </p>
        /// <p> <code> ...</code> </p>
        /// <p> <code> {</code> </p>
        /// <p> <code> "label": "<i>label n</i>"</code> </p>
        /// <p> <code> }</code> </p>
        /// <p> <code> ]</code> </p>
        /// <p> <code>}</code> </p>
        pub fn set_label_category_config_s3_uri(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.label_category_config_s3_uri = input;
            self
        }
        /// <p>A set of conditions for stopping a labeling job. If any of the conditions are met, the job is automatically stopped.</p>
        pub fn stopping_conditions(
            mut self,
            input: crate::model::LabelingJobStoppingConditions,
        ) -> Self {
            self.stopping_conditions = Some(input);
            self
        }
        /// <p>A set of conditions for stopping a labeling job. If any of the conditions are met, the job is automatically stopped.</p>
        pub fn set_stopping_conditions(
            mut self,
            input: std::option::Option<crate::model::LabelingJobStoppingConditions>,
        ) -> Self {
            self.stopping_conditions = input;
            self
        }
        /// <p>Configuration information for automated data labeling.</p>
        pub fn labeling_job_algorithms_config(
            mut self,
            input: crate::model::LabelingJobAlgorithmsConfig,
        ) -> Self {
            self.labeling_job_algorithms_config = Some(input);
            self
        }
        /// <p>Configuration information for automated data labeling.</p>
        pub fn set_labeling_job_algorithms_config(
            mut self,
            input: std::option::Option<crate::model::LabelingJobAlgorithmsConfig>,
        ) -> Self {
            self.labeling_job_algorithms_config = input;
            self
        }
        /// <p>Configuration information required for human workers to complete a labeling task.</p>
        pub fn human_task_config(mut self, input: crate::model::HumanTaskConfig) -> Self {
            self.human_task_config = Some(input);
            self
        }
        /// <p>Configuration information required for human workers to complete a labeling task.</p>
        pub fn set_human_task_config(
            mut self,
            input: std::option::Option<crate::model::HumanTaskConfig>,
        ) -> Self {
            self.human_task_config = input;
            self
        }
        /// Appends an item to `tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services Resources</a>.</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>An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services Resources</a>.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Tag>>,
        ) -> Self {
            self.tags = input;
            self
        }
        /// <p>The location of the output produced by the labeling job.</p>
        pub fn labeling_job_output(mut self, input: crate::model::LabelingJobOutput) -> Self {
            self.labeling_job_output = Some(input);
            self
        }
        /// <p>The location of the output produced by the labeling job.</p>
        pub fn set_labeling_job_output(
            mut self,
            input: std::option::Option<crate::model::LabelingJobOutput>,
        ) -> Self {
            self.labeling_job_output = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeLabelingJobOutput`](crate::output::DescribeLabelingJobOutput).
        pub fn build(self) -> crate::output::DescribeLabelingJobOutput {
            crate::output::DescribeLabelingJobOutput {
                labeling_job_status: self.labeling_job_status,
                label_counters: self.label_counters,
                failure_reason: self.failure_reason,
                creation_time: self.creation_time,
                last_modified_time: self.last_modified_time,
                job_reference_code: self.job_reference_code,
                labeling_job_name: self.labeling_job_name,
                labeling_job_arn: self.labeling_job_arn,
                label_attribute_name: self.label_attribute_name,
                input_config: self.input_config,
                output_config: self.output_config,
                role_arn: self.role_arn,
                label_category_config_s3_uri: self.label_category_config_s3_uri,
                stopping_conditions: self.stopping_conditions,
                labeling_job_algorithms_config: self.labeling_job_algorithms_config,
                human_task_config: self.human_task_config,
                tags: self.tags,
                labeling_job_output: self.labeling_job_output,
            }
        }
    }
}
impl DescribeLabelingJobOutput {
    /// Creates a new builder-style object to manufacture [`DescribeLabelingJobOutput`](crate::output::DescribeLabelingJobOutput).
    pub fn builder() -> crate::output::describe_labeling_job_output::Builder {
        crate::output::describe_labeling_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeInferenceRecommendationsJobOutput {
    /// <p>The name of the job. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
    #[doc(hidden)]
    pub job_name: std::option::Option<std::string::String>,
    /// <p>The job description that you provided when you initiated the job.</p>
    #[doc(hidden)]
    pub job_description: std::option::Option<std::string::String>,
    /// <p>The job type that you provided when you initiated the job.</p>
    #[doc(hidden)]
    pub job_type: std::option::Option<crate::model::RecommendationJobType>,
    /// <p>The Amazon Resource Name (ARN) of the job.</p>
    #[doc(hidden)]
    pub job_arn: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role you provided when you initiated the job.</p>
    #[doc(hidden)]
    pub role_arn: std::option::Option<std::string::String>,
    /// <p>The status of the job.</p>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::RecommendationJobStatus>,
    /// <p>A timestamp that shows when the job was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>A timestamp that shows when the job completed.</p>
    #[doc(hidden)]
    pub completion_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>A timestamp that shows when the job was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>If the job fails, provides information why the job failed.</p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>Returns information about the versioned model package Amazon Resource Name (ARN), the traffic pattern, and endpoint configurations you provided when you initiated the job.</p>
    #[doc(hidden)]
    pub input_config: std::option::Option<crate::model::RecommendationJobInputConfig>,
    /// <p>The stopping conditions that you provided when you initiated the job.</p>
    #[doc(hidden)]
    pub stopping_conditions: std::option::Option<crate::model::RecommendationJobStoppingConditions>,
    /// <p>The recommendations made by Inference Recommender.</p>
    #[doc(hidden)]
    pub inference_recommendations:
        std::option::Option<std::vec::Vec<crate::model::InferenceRecommendation>>,
    /// <p>The performance results from running an Inference Recommender job on an existing endpoint.</p>
    #[doc(hidden)]
    pub endpoint_performances:
        std::option::Option<std::vec::Vec<crate::model::EndpointPerformance>>,
}
impl DescribeInferenceRecommendationsJobOutput {
    /// <p>The name of the job. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
    pub fn job_name(&self) -> std::option::Option<&str> {
        self.job_name.as_deref()
    }
    /// <p>The job description that you provided when you initiated the job.</p>
    pub fn job_description(&self) -> std::option::Option<&str> {
        self.job_description.as_deref()
    }
    /// <p>The job type that you provided when you initiated the job.</p>
    pub fn job_type(&self) -> std::option::Option<&crate::model::RecommendationJobType> {
        self.job_type.as_ref()
    }
    /// <p>The Amazon Resource Name (ARN) of the job.</p>
    pub fn job_arn(&self) -> std::option::Option<&str> {
        self.job_arn.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role you provided when you initiated the job.</p>
    pub fn role_arn(&self) -> std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    /// <p>The status of the job.</p>
    pub fn status(&self) -> std::option::Option<&crate::model::RecommendationJobStatus> {
        self.status.as_ref()
    }
    /// <p>A timestamp that shows when the job was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>A timestamp that shows when the job completed.</p>
    pub fn completion_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.completion_time.as_ref()
    }
    /// <p>A timestamp that shows when the job was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>If the job fails, provides information why the job failed.</p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>Returns information about the versioned model package Amazon Resource Name (ARN), the traffic pattern, and endpoint configurations you provided when you initiated the job.</p>
    pub fn input_config(&self) -> std::option::Option<&crate::model::RecommendationJobInputConfig> {
        self.input_config.as_ref()
    }
    /// <p>The stopping conditions that you provided when you initiated the job.</p>
    pub fn stopping_conditions(
        &self,
    ) -> std::option::Option<&crate::model::RecommendationJobStoppingConditions> {
        self.stopping_conditions.as_ref()
    }
    /// <p>The recommendations made by Inference Recommender.</p>
    pub fn inference_recommendations(
        &self,
    ) -> std::option::Option<&[crate::model::InferenceRecommendation]> {
        self.inference_recommendations.as_deref()
    }
    /// <p>The performance results from running an Inference Recommender job on an existing endpoint.</p>
    pub fn endpoint_performances(
        &self,
    ) -> std::option::Option<&[crate::model::EndpointPerformance]> {
        self.endpoint_performances.as_deref()
    }
}
/// See [`DescribeInferenceRecommendationsJobOutput`](crate::output::DescribeInferenceRecommendationsJobOutput).
pub mod describe_inference_recommendations_job_output {

    /// A builder for [`DescribeInferenceRecommendationsJobOutput`](crate::output::DescribeInferenceRecommendationsJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) job_name: std::option::Option<std::string::String>,
        pub(crate) job_description: std::option::Option<std::string::String>,
        pub(crate) job_type: std::option::Option<crate::model::RecommendationJobType>,
        pub(crate) job_arn: std::option::Option<std::string::String>,
        pub(crate) role_arn: std::option::Option<std::string::String>,
        pub(crate) status: std::option::Option<crate::model::RecommendationJobStatus>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) completion_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) input_config: std::option::Option<crate::model::RecommendationJobInputConfig>,
        pub(crate) stopping_conditions:
            std::option::Option<crate::model::RecommendationJobStoppingConditions>,
        pub(crate) inference_recommendations:
            std::option::Option<std::vec::Vec<crate::model::InferenceRecommendation>>,
        pub(crate) endpoint_performances:
            std::option::Option<std::vec::Vec<crate::model::EndpointPerformance>>,
    }
    impl Builder {
        /// <p>The name of the job. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
        pub fn job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.job_name = Some(input.into());
            self
        }
        /// <p>The name of the job. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.</p>
        pub fn set_job_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.job_name = input;
            self
        }
        /// <p>The job description that you provided when you initiated the job.</p>
        pub fn job_description(mut self, input: impl Into<std::string::String>) -> Self {
            self.job_description = Some(input.into());
            self
        }
        /// <p>The job description that you provided when you initiated the job.</p>
        pub fn set_job_description(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.job_description = input;
            self
        }
        /// <p>The job type that you provided when you initiated the job.</p>
        pub fn job_type(mut self, input: crate::model::RecommendationJobType) -> Self {
            self.job_type = Some(input);
            self
        }
        /// <p>The job type that you provided when you initiated the job.</p>
        pub fn set_job_type(
            mut self,
            input: std::option::Option<crate::model::RecommendationJobType>,
        ) -> Self {
            self.job_type = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the job.</p>
        pub fn job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the job.</p>
        pub fn set_job_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.job_arn = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role you provided when you initiated the job.</p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.role_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role you provided when you initiated the job.</p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.role_arn = input;
            self
        }
        /// <p>The status of the job.</p>
        pub fn status(mut self, input: crate::model::RecommendationJobStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p>The status of the job.</p>
        pub fn set_status(
            mut self,
            input: std::option::Option<crate::model::RecommendationJobStatus>,
        ) -> Self {
            self.status = input;
            self
        }
        /// <p>A timestamp that shows when the job was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>A timestamp that shows when the job was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>A timestamp that shows when the job completed.</p>
        pub fn completion_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.completion_time = Some(input);
            self
        }
        /// <p>A timestamp that shows when the job completed.</p>
        pub fn set_completion_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.completion_time = input;
            self
        }
        /// <p>A timestamp that shows when the job was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>A timestamp that shows when the job was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>If the job fails, provides information why the job failed.</p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>If the job fails, provides information why the job failed.</p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// <p>Returns information about the versioned model package Amazon Resource Name (ARN), the traffic pattern, and endpoint configurations you provided when you initiated the job.</p>
        pub fn input_config(mut self, input: crate::model::RecommendationJobInputConfig) -> Self {
            self.input_config = Some(input);
            self
        }
        /// <p>Returns information about the versioned model package Amazon Resource Name (ARN), the traffic pattern, and endpoint configurations you provided when you initiated the job.</p>
        pub fn set_input_config(
            mut self,
            input: std::option::Option<crate::model::RecommendationJobInputConfig>,
        ) -> Self {
            self.input_config = input;
            self
        }
        /// <p>The stopping conditions that you provided when you initiated the job.</p>
        pub fn stopping_conditions(
            mut self,
            input: crate::model::RecommendationJobStoppingConditions,
        ) -> Self {
            self.stopping_conditions = Some(input);
            self
        }
        /// <p>The stopping conditions that you provided when you initiated the job.</p>
        pub fn set_stopping_conditions(
            mut self,
            input: std::option::Option<crate::model::RecommendationJobStoppingConditions>,
        ) -> Self {
            self.stopping_conditions = input;
            self
        }
        /// Appends an item to `inference_recommendations`.
        ///
        /// To override the contents of this collection use [`set_inference_recommendations`](Self::set_inference_recommendations).
        ///
        /// <p>The recommendations made by Inference Recommender.</p>
        pub fn inference_recommendations(
            mut self,
            input: crate::model::InferenceRecommendation,
        ) -> Self {
            let mut v = self.inference_recommendations.unwrap_or_default();
            v.push(input);
            self.inference_recommendations = Some(v);
            self
        }
        /// <p>The recommendations made by Inference Recommender.</p>
        pub fn set_inference_recommendations(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::InferenceRecommendation>>,
        ) -> Self {
            self.inference_recommendations = input;
            self
        }
        /// Appends an item to `endpoint_performances`.
        ///
        /// To override the contents of this collection use [`set_endpoint_performances`](Self::set_endpoint_performances).
        ///
        /// <p>The performance results from running an Inference Recommender job on an existing endpoint.</p>
        pub fn endpoint_performances(mut self, input: crate::model::EndpointPerformance) -> Self {
            let mut v = self.endpoint_performances.unwrap_or_default();
            v.push(input);
            self.endpoint_performances = Some(v);
            self
        }
        /// <p>The performance results from running an Inference Recommender job on an existing endpoint.</p>
        pub fn set_endpoint_performances(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::EndpointPerformance>>,
        ) -> Self {
            self.endpoint_performances = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeInferenceRecommendationsJobOutput`](crate::output::DescribeInferenceRecommendationsJobOutput).
        pub fn build(self) -> crate::output::DescribeInferenceRecommendationsJobOutput {
            crate::output::DescribeInferenceRecommendationsJobOutput {
                job_name: self.job_name,
                job_description: self.job_description,
                job_type: self.job_type,
                job_arn: self.job_arn,
                role_arn: self.role_arn,
                status: self.status,
                creation_time: self.creation_time,
                completion_time: self.completion_time,
                last_modified_time: self.last_modified_time,
                failure_reason: self.failure_reason,
                input_config: self.input_config,
                stopping_conditions: self.stopping_conditions,
                inference_recommendations: self.inference_recommendations,
                endpoint_performances: self.endpoint_performances,
            }
        }
    }
}
impl DescribeInferenceRecommendationsJobOutput {
    /// Creates a new builder-style object to manufacture [`DescribeInferenceRecommendationsJobOutput`](crate::output::DescribeInferenceRecommendationsJobOutput).
    pub fn builder() -> crate::output::describe_inference_recommendations_job_output::Builder {
        crate::output::describe_inference_recommendations_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeInferenceExperimentOutput {
    /// <p>The ARN of the inference experiment being described.</p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
    /// <p>The name of the inference experiment.</p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p>The type of the inference experiment.</p>
    #[doc(hidden)]
    pub r#type: std::option::Option<crate::model::InferenceExperimentType>,
    /// <p>The duration for which the inference experiment ran or will run.</p>
    #[doc(hidden)]
    pub schedule: std::option::Option<crate::model::InferenceExperimentSchedule>,
    /// <p> The status of the inference experiment. The following are the possible statuses for an inference experiment: </p>
    /// <ul>
    /// <li> <p> <code>Creating</code> - Amazon SageMaker is creating your experiment. </p> </li>
    /// <li> <p> <code>Created</code> - Amazon SageMaker has finished the creation of your experiment and will begin the experiment at the scheduled time. </p> </li>
    /// <li> <p> <code>Updating</code> - When you make changes to your experiment, your experiment shows as updating. </p> </li>
    /// <li> <p> <code>Starting</code> - Amazon SageMaker is beginning your experiment. </p> </li>
    /// <li> <p> <code>Running</code> - Your experiment is in progress. </p> </li>
    /// <li> <p> <code>Stopping</code> - Amazon SageMaker is stopping your experiment. </p> </li>
    /// <li> <p> <code>Completed</code> - Your experiment has completed. </p> </li>
    /// <li> <p> <code>Cancelled</code> - When you conclude your experiment early using the <code>StopInferenceExperiment</code> API, or if any operation fails with an unexpected error, it shows as cancelled. </p> </li>
    /// </ul>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::InferenceExperimentStatus>,
    /// <p> The error message or client-specified <code>Reason</code> from the <code>StopInferenceExperiment</code> API, that explains the status of the inference experiment. </p>
    #[doc(hidden)]
    pub status_reason: std::option::Option<std::string::String>,
    /// <p>The description of the inference experiment.</p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p>The timestamp at which you created the inference experiment.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p> The timestamp at which the inference experiment was completed. </p>
    #[doc(hidden)]
    pub completion_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The timestamp at which you last modified the inference experiment.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p> The ARN of the IAM role that Amazon SageMaker can assume to access model artifacts and container images, and manage Amazon SageMaker Inference endpoints for model deployment. </p>
    #[doc(hidden)]
    pub role_arn: std::option::Option<std::string::String>,
    /// <p>The metadata of the endpoint on which the inference experiment ran.</p>
    #[doc(hidden)]
    pub endpoint_metadata: std::option::Option<crate::model::EndpointMetadata>,
    /// <p> An array of <code>ModelVariantConfigSummary</code> objects. There is one for each variant in the inference experiment. Each <code>ModelVariantConfigSummary</code> object in the array describes the infrastructure configuration for deploying the corresponding variant. </p>
    #[doc(hidden)]
    pub model_variants: std::option::Option<std::vec::Vec<crate::model::ModelVariantConfigSummary>>,
    /// <p>The Amazon S3 location and configuration for storing inference request and response data.</p>
    #[doc(hidden)]
    pub data_storage_config:
        std::option::Option<crate::model::InferenceExperimentDataStorageConfig>,
    /// <p> The configuration of <code>ShadowMode</code> inference experiment type, which shows the production variant that takes all the inference requests, and the shadow variant to which Amazon SageMaker replicates a percentage of the inference requests. For the shadow variant it also shows the percentage of requests that Amazon SageMaker replicates. </p>
    #[doc(hidden)]
    pub shadow_mode_config: std::option::Option<crate::model::ShadowModeConfig>,
    /// <p> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance that hosts the endpoint. For more information, see <code>CreateInferenceExperimentRequest$KmsKey</code>. </p>
    #[doc(hidden)]
    pub kms_key: std::option::Option<std::string::String>,
}
impl DescribeInferenceExperimentOutput {
    /// <p>The ARN of the inference experiment being described.</p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
    /// <p>The name of the inference experiment.</p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p>The type of the inference experiment.</p>
    pub fn r#type(&self) -> std::option::Option<&crate::model::InferenceExperimentType> {
        self.r#type.as_ref()
    }
    /// <p>The duration for which the inference experiment ran or will run.</p>
    pub fn schedule(&self) -> std::option::Option<&crate::model::InferenceExperimentSchedule> {
        self.schedule.as_ref()
    }
    /// <p> The status of the inference experiment. The following are the possible statuses for an inference experiment: </p>
    /// <ul>
    /// <li> <p> <code>Creating</code> - Amazon SageMaker is creating your experiment. </p> </li>
    /// <li> <p> <code>Created</code> - Amazon SageMaker has finished the creation of your experiment and will begin the experiment at the scheduled time. </p> </li>
    /// <li> <p> <code>Updating</code> - When you make changes to your experiment, your experiment shows as updating. </p> </li>
    /// <li> <p> <code>Starting</code> - Amazon SageMaker is beginning your experiment. </p> </li>
    /// <li> <p> <code>Running</code> - Your experiment is in progress. </p> </li>
    /// <li> <p> <code>Stopping</code> - Amazon SageMaker is stopping your experiment. </p> </li>
    /// <li> <p> <code>Completed</code> - Your experiment has completed. </p> </li>
    /// <li> <p> <code>Cancelled</code> - When you conclude your experiment early using the <code>StopInferenceExperiment</code> API, or if any operation fails with an unexpected error, it shows as cancelled. </p> </li>
    /// </ul>
    pub fn status(&self) -> std::option::Option<&crate::model::InferenceExperimentStatus> {
        self.status.as_ref()
    }
    /// <p> The error message or client-specified <code>Reason</code> from the <code>StopInferenceExperiment</code> API, that explains the status of the inference experiment. </p>
    pub fn status_reason(&self) -> std::option::Option<&str> {
        self.status_reason.as_deref()
    }
    /// <p>The description of the inference experiment.</p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>The timestamp at which you created the inference experiment.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p> The timestamp at which the inference experiment was completed. </p>
    pub fn completion_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.completion_time.as_ref()
    }
    /// <p>The timestamp at which you last modified the inference experiment.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p> The ARN of the IAM role that Amazon SageMaker can assume to access model artifacts and container images, and manage Amazon SageMaker Inference endpoints for model deployment. </p>
    pub fn role_arn(&self) -> std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    /// <p>The metadata of the endpoint on which the inference experiment ran.</p>
    pub fn endpoint_metadata(&self) -> std::option::Option<&crate::model::EndpointMetadata> {
        self.endpoint_metadata.as_ref()
    }
    /// <p> An array of <code>ModelVariantConfigSummary</code> objects. There is one for each variant in the inference experiment. Each <code>ModelVariantConfigSummary</code> object in the array describes the infrastructure configuration for deploying the corresponding variant. </p>
    pub fn model_variants(
        &self,
    ) -> std::option::Option<&[crate::model::ModelVariantConfigSummary]> {
        self.model_variants.as_deref()
    }
    /// <p>The Amazon S3 location and configuration for storing inference request and response data.</p>
    pub fn data_storage_config(
        &self,
    ) -> std::option::Option<&crate::model::InferenceExperimentDataStorageConfig> {
        self.data_storage_config.as_ref()
    }
    /// <p> The configuration of <code>ShadowMode</code> inference experiment type, which shows the production variant that takes all the inference requests, and the shadow variant to which Amazon SageMaker replicates a percentage of the inference requests. For the shadow variant it also shows the percentage of requests that Amazon SageMaker replicates. </p>
    pub fn shadow_mode_config(&self) -> std::option::Option<&crate::model::ShadowModeConfig> {
        self.shadow_mode_config.as_ref()
    }
    /// <p> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance that hosts the endpoint. For more information, see <code>CreateInferenceExperimentRequest$KmsKey</code>. </p>
    pub fn kms_key(&self) -> std::option::Option<&str> {
        self.kms_key.as_deref()
    }
}
/// See [`DescribeInferenceExperimentOutput`](crate::output::DescribeInferenceExperimentOutput).
pub mod describe_inference_experiment_output {

    /// A builder for [`DescribeInferenceExperimentOutput`](crate::output::DescribeInferenceExperimentOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) arn: std::option::Option<std::string::String>,
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) r#type: std::option::Option<crate::model::InferenceExperimentType>,
        pub(crate) schedule: std::option::Option<crate::model::InferenceExperimentSchedule>,
        pub(crate) status: std::option::Option<crate::model::InferenceExperimentStatus>,
        pub(crate) status_reason: std::option::Option<std::string::String>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) completion_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) role_arn: std::option::Option<std::string::String>,
        pub(crate) endpoint_metadata: std::option::Option<crate::model::EndpointMetadata>,
        pub(crate) model_variants:
            std::option::Option<std::vec::Vec<crate::model::ModelVariantConfigSummary>>,
        pub(crate) data_storage_config:
            std::option::Option<crate::model::InferenceExperimentDataStorageConfig>,
        pub(crate) shadow_mode_config: std::option::Option<crate::model::ShadowModeConfig>,
        pub(crate) kms_key: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ARN of the inference experiment being described.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p>The ARN of the inference experiment being described.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// <p>The name of the inference experiment.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p>The name of the inference experiment.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p>The type of the inference experiment.</p>
        pub fn r#type(mut self, input: crate::model::InferenceExperimentType) -> Self {
            self.r#type = Some(input);
            self
        }
        /// <p>The type of the inference experiment.</p>
        pub fn set_type(
            mut self,
            input: std::option::Option<crate::model::InferenceExperimentType>,
        ) -> Self {
            self.r#type = input;
            self
        }
        /// <p>The duration for which the inference experiment ran or will run.</p>
        pub fn schedule(mut self, input: crate::model::InferenceExperimentSchedule) -> Self {
            self.schedule = Some(input);
            self
        }
        /// <p>The duration for which the inference experiment ran or will run.</p>
        pub fn set_schedule(
            mut self,
            input: std::option::Option<crate::model::InferenceExperimentSchedule>,
        ) -> Self {
            self.schedule = input;
            self
        }
        /// <p> The status of the inference experiment. The following are the possible statuses for an inference experiment: </p>
        /// <ul>
        /// <li> <p> <code>Creating</code> - Amazon SageMaker is creating your experiment. </p> </li>
        /// <li> <p> <code>Created</code> - Amazon SageMaker has finished the creation of your experiment and will begin the experiment at the scheduled time. </p> </li>
        /// <li> <p> <code>Updating</code> - When you make changes to your experiment, your experiment shows as updating. </p> </li>
        /// <li> <p> <code>Starting</code> - Amazon SageMaker is beginning your experiment. </p> </li>
        /// <li> <p> <code>Running</code> - Your experiment is in progress. </p> </li>
        /// <li> <p> <code>Stopping</code> - Amazon SageMaker is stopping your experiment. </p> </li>
        /// <li> <p> <code>Completed</code> - Your experiment has completed. </p> </li>
        /// <li> <p> <code>Cancelled</code> - When you conclude your experiment early using the <code>StopInferenceExperiment</code> API, or if any operation fails with an unexpected error, it shows as cancelled. </p> </li>
        /// </ul>
        pub fn status(mut self, input: crate::model::InferenceExperimentStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p> The status of the inference experiment. The following are the possible statuses for an inference experiment: </p>
        /// <ul>
        /// <li> <p> <code>Creating</code> - Amazon SageMaker is creating your experiment. </p> </li>
        /// <li> <p> <code>Created</code> - Amazon SageMaker has finished the creation of your experiment and will begin the experiment at the scheduled time. </p> </li>
        /// <li> <p> <code>Updating</code> - When you make changes to your experiment, your experiment shows as updating. </p> </li>
        /// <li> <p> <code>Starting</code> - Amazon SageMaker is beginning your experiment. </p> </li>
        /// <li> <p> <code>Running</code> - Your experiment is in progress. </p> </li>
        /// <li> <p> <code>Stopping</code> - Amazon SageMaker is stopping your experiment. </p> </li>
        /// <li> <p> <code>Completed</code> - Your experiment has completed. </p> </li>
        /// <li> <p> <code>Cancelled</code> - When you conclude your experiment early using the <code>StopInferenceExperiment</code> API, or if any operation fails with an unexpected error, it shows as cancelled. </p> </li>
        /// </ul>
        pub fn set_status(
            mut self,
            input: std::option::Option<crate::model::InferenceExperimentStatus>,
        ) -> Self {
            self.status = input;
            self
        }
        /// <p> The error message or client-specified <code>Reason</code> from the <code>StopInferenceExperiment</code> API, that explains the status of the inference experiment. </p>
        pub fn status_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.status_reason = Some(input.into());
            self
        }
        /// <p> The error message or client-specified <code>Reason</code> from the <code>StopInferenceExperiment</code> API, that explains the status of the inference experiment. </p>
        pub fn set_status_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.status_reason = input;
            self
        }
        /// <p>The description of the inference experiment.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p>The description of the inference experiment.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// <p>The timestamp at which you created the inference experiment.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The timestamp at which you created the inference experiment.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p> The timestamp at which the inference experiment was completed. </p>
        pub fn completion_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.completion_time = Some(input);
            self
        }
        /// <p> The timestamp at which the inference experiment was completed. </p>
        pub fn set_completion_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.completion_time = input;
            self
        }
        /// <p>The timestamp at which you last modified the inference experiment.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>The timestamp at which you last modified the inference experiment.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p> The ARN of the IAM role that Amazon SageMaker can assume to access model artifacts and container images, and manage Amazon SageMaker Inference endpoints for model deployment. </p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.role_arn = Some(input.into());
            self
        }
        /// <p> The ARN of the IAM role that Amazon SageMaker can assume to access model artifacts and container images, and manage Amazon SageMaker Inference endpoints for model deployment. </p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.role_arn = input;
            self
        }
        /// <p>The metadata of the endpoint on which the inference experiment ran.</p>
        pub fn endpoint_metadata(mut self, input: crate::model::EndpointMetadata) -> Self {
            self.endpoint_metadata = Some(input);
            self
        }
        /// <p>The metadata of the endpoint on which the inference experiment ran.</p>
        pub fn set_endpoint_metadata(
            mut self,
            input: std::option::Option<crate::model::EndpointMetadata>,
        ) -> Self {
            self.endpoint_metadata = input;
            self
        }
        /// Appends an item to `model_variants`.
        ///
        /// To override the contents of this collection use [`set_model_variants`](Self::set_model_variants).
        ///
        /// <p> An array of <code>ModelVariantConfigSummary</code> objects. There is one for each variant in the inference experiment. Each <code>ModelVariantConfigSummary</code> object in the array describes the infrastructure configuration for deploying the corresponding variant. </p>
        pub fn model_variants(mut self, input: crate::model::ModelVariantConfigSummary) -> Self {
            let mut v = self.model_variants.unwrap_or_default();
            v.push(input);
            self.model_variants = Some(v);
            self
        }
        /// <p> An array of <code>ModelVariantConfigSummary</code> objects. There is one for each variant in the inference experiment. Each <code>ModelVariantConfigSummary</code> object in the array describes the infrastructure configuration for deploying the corresponding variant. </p>
        pub fn set_model_variants(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ModelVariantConfigSummary>>,
        ) -> Self {
            self.model_variants = input;
            self
        }
        /// <p>The Amazon S3 location and configuration for storing inference request and response data.</p>
        pub fn data_storage_config(
            mut self,
            input: crate::model::InferenceExperimentDataStorageConfig,
        ) -> Self {
            self.data_storage_config = Some(input);
            self
        }
        /// <p>The Amazon S3 location and configuration for storing inference request and response data.</p>
        pub fn set_data_storage_config(
            mut self,
            input: std::option::Option<crate::model::InferenceExperimentDataStorageConfig>,
        ) -> Self {
            self.data_storage_config = input;
            self
        }
        /// <p> The configuration of <code>ShadowMode</code> inference experiment type, which shows the production variant that takes all the inference requests, and the shadow variant to which Amazon SageMaker replicates a percentage of the inference requests. For the shadow variant it also shows the percentage of requests that Amazon SageMaker replicates. </p>
        pub fn shadow_mode_config(mut self, input: crate::model::ShadowModeConfig) -> Self {
            self.shadow_mode_config = Some(input);
            self
        }
        /// <p> The configuration of <code>ShadowMode</code> inference experiment type, which shows the production variant that takes all the inference requests, and the shadow variant to which Amazon SageMaker replicates a percentage of the inference requests. For the shadow variant it also shows the percentage of requests that Amazon SageMaker replicates. </p>
        pub fn set_shadow_mode_config(
            mut self,
            input: std::option::Option<crate::model::ShadowModeConfig>,
        ) -> Self {
            self.shadow_mode_config = input;
            self
        }
        /// <p> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance that hosts the endpoint. For more information, see <code>CreateInferenceExperimentRequest$KmsKey</code>. </p>
        pub fn kms_key(mut self, input: impl Into<std::string::String>) -> Self {
            self.kms_key = Some(input.into());
            self
        }
        /// <p> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance that hosts the endpoint. For more information, see <code>CreateInferenceExperimentRequest$KmsKey</code>. </p>
        pub fn set_kms_key(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.kms_key = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeInferenceExperimentOutput`](crate::output::DescribeInferenceExperimentOutput).
        pub fn build(self) -> crate::output::DescribeInferenceExperimentOutput {
            crate::output::DescribeInferenceExperimentOutput {
                arn: self.arn,
                name: self.name,
                r#type: self.r#type,
                schedule: self.schedule,
                status: self.status,
                status_reason: self.status_reason,
                description: self.description,
                creation_time: self.creation_time,
                completion_time: self.completion_time,
                last_modified_time: self.last_modified_time,
                role_arn: self.role_arn,
                endpoint_metadata: self.endpoint_metadata,
                model_variants: self.model_variants,
                data_storage_config: self.data_storage_config,
                shadow_mode_config: self.shadow_mode_config,
                kms_key: self.kms_key,
            }
        }
    }
}
impl DescribeInferenceExperimentOutput {
    /// Creates a new builder-style object to manufacture [`DescribeInferenceExperimentOutput`](crate::output::DescribeInferenceExperimentOutput).
    pub fn builder() -> crate::output::describe_inference_experiment_output::Builder {
        crate::output::describe_inference_experiment_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeImageVersionOutput {
    /// <p>The registry path of the container image on which this image version is based.</p>
    #[doc(hidden)]
    pub base_image: std::option::Option<std::string::String>,
    /// <p>The registry path of the container image that contains this image version.</p>
    #[doc(hidden)]
    pub container_image: std::option::Option<std::string::String>,
    /// <p>When the version was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>When a create or delete operation fails, the reason for the failure.</p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>The ARN of the image the version is based on.</p>
    #[doc(hidden)]
    pub image_arn: std::option::Option<std::string::String>,
    /// <p>The ARN of the version.</p>
    #[doc(hidden)]
    pub image_version_arn: std::option::Option<std::string::String>,
    /// <p>The status of the version.</p>
    #[doc(hidden)]
    pub image_version_status: std::option::Option<crate::model::ImageVersionStatus>,
    /// <p>When the version was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The version number.</p>
    #[doc(hidden)]
    pub version: std::option::Option<i32>,
    /// <p>The stability of the image version specified by the maintainer.</p>
    /// <ul>
    /// <li> <p> <code>NOT_PROVIDED</code>: The maintainers did not provide a status for image version stability.</p> </li>
    /// <li> <p> <code>STABLE</code>: The image version is stable.</p> </li>
    /// <li> <p> <code>TO_BE_ARCHIVED</code>: The image version is set to be archived. Custom image versions that are set to be archived are automatically archived after three months.</p> </li>
    /// <li> <p> <code>ARCHIVED</code>: The image version is archived. Archived image versions are not searchable and are no longer actively supported. </p> </li>
    /// </ul>
    #[doc(hidden)]
    pub vendor_guidance: std::option::Option<crate::model::VendorGuidance>,
    /// <p>Indicates SageMaker job type compatibility.</p>
    /// <ul>
    /// <li> <p> <code>TRAINING</code>: The image version is compatible with SageMaker training jobs.</p> </li>
    /// <li> <p> <code>INFERENCE</code>: The image version is compatible with SageMaker inference jobs.</p> </li>
    /// <li> <p> <code>NOTEBOOK_KERNEL</code>: The image version is compatible with SageMaker notebook kernels.</p> </li>
    /// </ul>
    #[doc(hidden)]
    pub job_type: std::option::Option<crate::model::JobType>,
    /// <p>The machine learning framework vended in the image version.</p>
    #[doc(hidden)]
    pub ml_framework: std::option::Option<std::string::String>,
    /// <p>The supported programming language and its version.</p>
    #[doc(hidden)]
    pub programming_lang: std::option::Option<std::string::String>,
    /// <p>Indicates CPU or GPU compatibility.</p>
    /// <ul>
    /// <li> <p> <code>CPU</code>: The image version is compatible with CPU.</p> </li>
    /// <li> <p> <code>GPU</code>: The image version is compatible with GPU.</p> </li>
    /// </ul>
    #[doc(hidden)]
    pub processor: std::option::Option<crate::model::Processor>,
    /// <p>Indicates Horovod compatibility.</p>
    #[doc(hidden)]
    pub horovod: bool,
    /// <p>The maintainer description of the image version.</p>
    #[doc(hidden)]
    pub release_notes: std::option::Option<std::string::String>,
}
impl DescribeImageVersionOutput {
    /// <p>The registry path of the container image on which this image version is based.</p>
    pub fn base_image(&self) -> std::option::Option<&str> {
        self.base_image.as_deref()
    }
    /// <p>The registry path of the container image that contains this image version.</p>
    pub fn container_image(&self) -> std::option::Option<&str> {
        self.container_image.as_deref()
    }
    /// <p>When the version was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>When a create or delete operation fails, the reason for the failure.</p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>The ARN of the image the version is based on.</p>
    pub fn image_arn(&self) -> std::option::Option<&str> {
        self.image_arn.as_deref()
    }
    /// <p>The ARN of the version.</p>
    pub fn image_version_arn(&self) -> std::option::Option<&str> {
        self.image_version_arn.as_deref()
    }
    /// <p>The status of the version.</p>
    pub fn image_version_status(&self) -> std::option::Option<&crate::model::ImageVersionStatus> {
        self.image_version_status.as_ref()
    }
    /// <p>When the version was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>The version number.</p>
    pub fn version(&self) -> std::option::Option<i32> {
        self.version
    }
    /// <p>The stability of the image version specified by the maintainer.</p>
    /// <ul>
    /// <li> <p> <code>NOT_PROVIDED</code>: The maintainers did not provide a status for image version stability.</p> </li>
    /// <li> <p> <code>STABLE</code>: The image version is stable.</p> </li>
    /// <li> <p> <code>TO_BE_ARCHIVED</code>: The image version is set to be archived. Custom image versions that are set to be archived are automatically archived after three months.</p> </li>
    /// <li> <p> <code>ARCHIVED</code>: The image version is archived. Archived image versions are not searchable and are no longer actively supported. </p> </li>
    /// </ul>
    pub fn vendor_guidance(&self) -> std::option::Option<&crate::model::VendorGuidance> {
        self.vendor_guidance.as_ref()
    }
    /// <p>Indicates SageMaker job type compatibility.</p>
    /// <ul>
    /// <li> <p> <code>TRAINING</code>: The image version is compatible with SageMaker training jobs.</p> </li>
    /// <li> <p> <code>INFERENCE</code>: The image version is compatible with SageMaker inference jobs.</p> </li>
    /// <li> <p> <code>NOTEBOOK_KERNEL</code>: The image version is compatible with SageMaker notebook kernels.</p> </li>
    /// </ul>
    pub fn job_type(&self) -> std::option::Option<&crate::model::JobType> {
        self.job_type.as_ref()
    }
    /// <p>The machine learning framework vended in the image version.</p>
    pub fn ml_framework(&self) -> std::option::Option<&str> {
        self.ml_framework.as_deref()
    }
    /// <p>The supported programming language and its version.</p>
    pub fn programming_lang(&self) -> std::option::Option<&str> {
        self.programming_lang.as_deref()
    }
    /// <p>Indicates CPU or GPU compatibility.</p>
    /// <ul>
    /// <li> <p> <code>CPU</code>: The image version is compatible with CPU.</p> </li>
    /// <li> <p> <code>GPU</code>: The image version is compatible with GPU.</p> </li>
    /// </ul>
    pub fn processor(&self) -> std::option::Option<&crate::model::Processor> {
        self.processor.as_ref()
    }
    /// <p>Indicates Horovod compatibility.</p>
    pub fn horovod(&self) -> bool {
        self.horovod
    }
    /// <p>The maintainer description of the image version.</p>
    pub fn release_notes(&self) -> std::option::Option<&str> {
        self.release_notes.as_deref()
    }
}
/// See [`DescribeImageVersionOutput`](crate::output::DescribeImageVersionOutput).
pub mod describe_image_version_output {

    /// A builder for [`DescribeImageVersionOutput`](crate::output::DescribeImageVersionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) base_image: std::option::Option<std::string::String>,
        pub(crate) container_image: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) image_arn: std::option::Option<std::string::String>,
        pub(crate) image_version_arn: std::option::Option<std::string::String>,
        pub(crate) image_version_status: std::option::Option<crate::model::ImageVersionStatus>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) version: std::option::Option<i32>,
        pub(crate) vendor_guidance: std::option::Option<crate::model::VendorGuidance>,
        pub(crate) job_type: std::option::Option<crate::model::JobType>,
        pub(crate) ml_framework: std::option::Option<std::string::String>,
        pub(crate) programming_lang: std::option::Option<std::string::String>,
        pub(crate) processor: std::option::Option<crate::model::Processor>,
        pub(crate) horovod: std::option::Option<bool>,
        pub(crate) release_notes: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The registry path of the container image on which this image version is based.</p>
        pub fn base_image(mut self, input: impl Into<std::string::String>) -> Self {
            self.base_image = Some(input.into());
            self
        }
        /// <p>The registry path of the container image on which this image version is based.</p>
        pub fn set_base_image(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.base_image = input;
            self
        }
        /// <p>The registry path of the container image that contains this image version.</p>
        pub fn container_image(mut self, input: impl Into<std::string::String>) -> Self {
            self.container_image = Some(input.into());
            self
        }
        /// <p>The registry path of the container image that contains this image version.</p>
        pub fn set_container_image(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.container_image = input;
            self
        }
        /// <p>When the version was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>When the version was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>When a create or delete operation fails, the reason for the failure.</p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>When a create or delete operation fails, the reason for the failure.</p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// <p>The ARN of the image the version is based on.</p>
        pub fn image_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.image_arn = Some(input.into());
            self
        }
        /// <p>The ARN of the image the version is based on.</p>
        pub fn set_image_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.image_arn = input;
            self
        }
        /// <p>The ARN of the version.</p>
        pub fn image_version_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.image_version_arn = Some(input.into());
            self
        }
        /// <p>The ARN of the version.</p>
        pub fn set_image_version_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.image_version_arn = input;
            self
        }
        /// <p>The status of the version.</p>
        pub fn image_version_status(mut self, input: crate::model::ImageVersionStatus) -> Self {
            self.image_version_status = Some(input);
            self
        }
        /// <p>The status of the version.</p>
        pub fn set_image_version_status(
            mut self,
            input: std::option::Option<crate::model::ImageVersionStatus>,
        ) -> Self {
            self.image_version_status = input;
            self
        }
        /// <p>When the version was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>When the version was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>The version number.</p>
        pub fn version(mut self, input: i32) -> Self {
            self.version = Some(input);
            self
        }
        /// <p>The version number.</p>
        pub fn set_version(mut self, input: std::option::Option<i32>) -> Self {
            self.version = input;
            self
        }
        /// <p>The stability of the image version specified by the maintainer.</p>
        /// <ul>
        /// <li> <p> <code>NOT_PROVIDED</code>: The maintainers did not provide a status for image version stability.</p> </li>
        /// <li> <p> <code>STABLE</code>: The image version is stable.</p> </li>
        /// <li> <p> <code>TO_BE_ARCHIVED</code>: The image version is set to be archived. Custom image versions that are set to be archived are automatically archived after three months.</p> </li>
        /// <li> <p> <code>ARCHIVED</code>: The image version is archived. Archived image versions are not searchable and are no longer actively supported. </p> </li>
        /// </ul>
        pub fn vendor_guidance(mut self, input: crate::model::VendorGuidance) -> Self {
            self.vendor_guidance = Some(input);
            self
        }
        /// <p>The stability of the image version specified by the maintainer.</p>
        /// <ul>
        /// <li> <p> <code>NOT_PROVIDED</code>: The maintainers did not provide a status for image version stability.</p> </li>
        /// <li> <p> <code>STABLE</code>: The image version is stable.</p> </li>
        /// <li> <p> <code>TO_BE_ARCHIVED</code>: The image version is set to be archived. Custom image versions that are set to be archived are automatically archived after three months.</p> </li>
        /// <li> <p> <code>ARCHIVED</code>: The image version is archived. Archived image versions are not searchable and are no longer actively supported. </p> </li>
        /// </ul>
        pub fn set_vendor_guidance(
            mut self,
            input: std::option::Option<crate::model::VendorGuidance>,
        ) -> Self {
            self.vendor_guidance = input;
            self
        }
        /// <p>Indicates SageMaker job type compatibility.</p>
        /// <ul>
        /// <li> <p> <code>TRAINING</code>: The image version is compatible with SageMaker training jobs.</p> </li>
        /// <li> <p> <code>INFERENCE</code>: The image version is compatible with SageMaker inference jobs.</p> </li>
        /// <li> <p> <code>NOTEBOOK_KERNEL</code>: The image version is compatible with SageMaker notebook kernels.</p> </li>
        /// </ul>
        pub fn job_type(mut self, input: crate::model::JobType) -> Self {
            self.job_type = Some(input);
            self
        }
        /// <p>Indicates SageMaker job type compatibility.</p>
        /// <ul>
        /// <li> <p> <code>TRAINING</code>: The image version is compatible with SageMaker training jobs.</p> </li>
        /// <li> <p> <code>INFERENCE</code>: The image version is compatible with SageMaker inference jobs.</p> </li>
        /// <li> <p> <code>NOTEBOOK_KERNEL</code>: The image version is compatible with SageMaker notebook kernels.</p> </li>
        /// </ul>
        pub fn set_job_type(mut self, input: std::option::Option<crate::model::JobType>) -> Self {
            self.job_type = input;
            self
        }
        /// <p>The machine learning framework vended in the image version.</p>
        pub fn ml_framework(mut self, input: impl Into<std::string::String>) -> Self {
            self.ml_framework = Some(input.into());
            self
        }
        /// <p>The machine learning framework vended in the image version.</p>
        pub fn set_ml_framework(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.ml_framework = input;
            self
        }
        /// <p>The supported programming language and its version.</p>
        pub fn programming_lang(mut self, input: impl Into<std::string::String>) -> Self {
            self.programming_lang = Some(input.into());
            self
        }
        /// <p>The supported programming language and its version.</p>
        pub fn set_programming_lang(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.programming_lang = input;
            self
        }
        /// <p>Indicates CPU or GPU compatibility.</p>
        /// <ul>
        /// <li> <p> <code>CPU</code>: The image version is compatible with CPU.</p> </li>
        /// <li> <p> <code>GPU</code>: The image version is compatible with GPU.</p> </li>
        /// </ul>
        pub fn processor(mut self, input: crate::model::Processor) -> Self {
            self.processor = Some(input);
            self
        }
        /// <p>Indicates CPU or GPU compatibility.</p>
        /// <ul>
        /// <li> <p> <code>CPU</code>: The image version is compatible with CPU.</p> </li>
        /// <li> <p> <code>GPU</code>: The image version is compatible with GPU.</p> </li>
        /// </ul>
        pub fn set_processor(
            mut self,
            input: std::option::Option<crate::model::Processor>,
        ) -> Self {
            self.processor = input;
            self
        }
        /// <p>Indicates Horovod compatibility.</p>
        pub fn horovod(mut self, input: bool) -> Self {
            self.horovod = Some(input);
            self
        }
        /// <p>Indicates Horovod compatibility.</p>
        pub fn set_horovod(mut self, input: std::option::Option<bool>) -> Self {
            self.horovod = input;
            self
        }
        /// <p>The maintainer description of the image version.</p>
        pub fn release_notes(mut self, input: impl Into<std::string::String>) -> Self {
            self.release_notes = Some(input.into());
            self
        }
        /// <p>The maintainer description of the image version.</p>
        pub fn set_release_notes(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.release_notes = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeImageVersionOutput`](crate::output::DescribeImageVersionOutput).
        pub fn build(self) -> crate::output::DescribeImageVersionOutput {
            crate::output::DescribeImageVersionOutput {
                base_image: self.base_image,
                container_image: self.container_image,
                creation_time: self.creation_time,
                failure_reason: self.failure_reason,
                image_arn: self.image_arn,
                image_version_arn: self.image_version_arn,
                image_version_status: self.image_version_status,
                last_modified_time: self.last_modified_time,
                version: self.version,
                vendor_guidance: self.vendor_guidance,
                job_type: self.job_type,
                ml_framework: self.ml_framework,
                programming_lang: self.programming_lang,
                processor: self.processor,
                horovod: self.horovod.unwrap_or_default(),
                release_notes: self.release_notes,
            }
        }
    }
}
impl DescribeImageVersionOutput {
    /// Creates a new builder-style object to manufacture [`DescribeImageVersionOutput`](crate::output::DescribeImageVersionOutput).
    pub fn builder() -> crate::output::describe_image_version_output::Builder {
        crate::output::describe_image_version_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeImageOutput {
    /// <p>When the image was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The description of the image.</p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p>The name of the image as displayed.</p>
    #[doc(hidden)]
    pub display_name: std::option::Option<std::string::String>,
    /// <p>When a create, update, or delete operation fails, the reason for the failure.</p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>The ARN of the image.</p>
    #[doc(hidden)]
    pub image_arn: std::option::Option<std::string::String>,
    /// <p>The name of the image.</p>
    #[doc(hidden)]
    pub image_name: std::option::Option<std::string::String>,
    /// <p>The status of the image.</p>
    #[doc(hidden)]
    pub image_status: std::option::Option<crate::model::ImageStatus>,
    /// <p>When the image was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The ARN of the IAM role that enables Amazon SageMaker to perform tasks on your behalf.</p>
    #[doc(hidden)]
    pub role_arn: std::option::Option<std::string::String>,
}
impl DescribeImageOutput {
    /// <p>When the image was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The description of the image.</p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>The name of the image as displayed.</p>
    pub fn display_name(&self) -> std::option::Option<&str> {
        self.display_name.as_deref()
    }
    /// <p>When a create, update, or delete operation fails, the reason for the failure.</p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>The ARN of the image.</p>
    pub fn image_arn(&self) -> std::option::Option<&str> {
        self.image_arn.as_deref()
    }
    /// <p>The name of the image.</p>
    pub fn image_name(&self) -> std::option::Option<&str> {
        self.image_name.as_deref()
    }
    /// <p>The status of the image.</p>
    pub fn image_status(&self) -> std::option::Option<&crate::model::ImageStatus> {
        self.image_status.as_ref()
    }
    /// <p>When the image was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>The ARN of the IAM role that enables Amazon SageMaker to perform tasks on your behalf.</p>
    pub fn role_arn(&self) -> std::option::Option<&str> {
        self.role_arn.as_deref()
    }
}
/// See [`DescribeImageOutput`](crate::output::DescribeImageOutput).
pub mod describe_image_output {

    /// A builder for [`DescribeImageOutput`](crate::output::DescribeImageOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) display_name: std::option::Option<std::string::String>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) image_arn: std::option::Option<std::string::String>,
        pub(crate) image_name: std::option::Option<std::string::String>,
        pub(crate) image_status: std::option::Option<crate::model::ImageStatus>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) role_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>When the image was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>When the image was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The description of the image.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p>The description of the image.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// <p>The name of the image as displayed.</p>
        pub fn display_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.display_name = Some(input.into());
            self
        }
        /// <p>The name of the image as displayed.</p>
        pub fn set_display_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.display_name = input;
            self
        }
        /// <p>When a create, update, or delete operation fails, the reason for the failure.</p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>When a create, update, or delete operation fails, the reason for the failure.</p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// <p>The ARN of the image.</p>
        pub fn image_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.image_arn = Some(input.into());
            self
        }
        /// <p>The ARN of the image.</p>
        pub fn set_image_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.image_arn = input;
            self
        }
        /// <p>The name of the image.</p>
        pub fn image_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.image_name = Some(input.into());
            self
        }
        /// <p>The name of the image.</p>
        pub fn set_image_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.image_name = input;
            self
        }
        /// <p>The status of the image.</p>
        pub fn image_status(mut self, input: crate::model::ImageStatus) -> Self {
            self.image_status = Some(input);
            self
        }
        /// <p>The status of the image.</p>
        pub fn set_image_status(
            mut self,
            input: std::option::Option<crate::model::ImageStatus>,
        ) -> Self {
            self.image_status = input;
            self
        }
        /// <p>When the image was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>When the image was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>The ARN of the IAM role that enables Amazon SageMaker to perform tasks on your behalf.</p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.role_arn = Some(input.into());
            self
        }
        /// <p>The ARN of the IAM role that enables Amazon SageMaker to perform tasks on your behalf.</p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.role_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeImageOutput`](crate::output::DescribeImageOutput).
        pub fn build(self) -> crate::output::DescribeImageOutput {
            crate::output::DescribeImageOutput {
                creation_time: self.creation_time,
                description: self.description,
                display_name: self.display_name,
                failure_reason: self.failure_reason,
                image_arn: self.image_arn,
                image_name: self.image_name,
                image_status: self.image_status,
                last_modified_time: self.last_modified_time,
                role_arn: self.role_arn,
            }
        }
    }
}
impl DescribeImageOutput {
    /// Creates a new builder-style object to manufacture [`DescribeImageOutput`](crate::output::DescribeImageOutput).
    pub fn builder() -> crate::output::describe_image_output::Builder {
        crate::output::describe_image_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeHyperParameterTuningJobOutput {
    /// <p>The name of the tuning job.</p>
    #[doc(hidden)]
    pub hyper_parameter_tuning_job_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the tuning job.</p>
    #[doc(hidden)]
    pub hyper_parameter_tuning_job_arn: std::option::Option<std::string::String>,
    /// <p>The <code>HyperParameterTuningJobConfig</code> object that specifies the configuration of the tuning job.</p>
    #[doc(hidden)]
    pub hyper_parameter_tuning_job_config:
        std::option::Option<crate::model::HyperParameterTuningJobConfig>,
    /// <p>The <code>HyperParameterTrainingJobDefinition</code> object that specifies the definition of the training jobs that this tuning job launches.</p>
    #[doc(hidden)]
    pub training_job_definition:
        std::option::Option<crate::model::HyperParameterTrainingJobDefinition>,
    /// <p>A list of the <code>HyperParameterTrainingJobDefinition</code> objects launched for this tuning job.</p>
    #[doc(hidden)]
    pub training_job_definitions:
        std::option::Option<std::vec::Vec<crate::model::HyperParameterTrainingJobDefinition>>,
    /// <p>The status of the tuning job: InProgress, Completed, Failed, Stopping, or Stopped.</p>
    #[doc(hidden)]
    pub hyper_parameter_tuning_job_status:
        std::option::Option<crate::model::HyperParameterTuningJobStatus>,
    /// <p>The date and time that the tuning job started.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The date and time that the tuning job ended.</p>
    #[doc(hidden)]
    pub hyper_parameter_tuning_end_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The date and time that the status of the tuning job was modified. </p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The <code>TrainingJobStatusCounters</code> object that specifies the number of training jobs, categorized by status, that this tuning job launched.</p>
    #[doc(hidden)]
    pub training_job_status_counters: std::option::Option<crate::model::TrainingJobStatusCounters>,
    /// <p>The <code>ObjectiveStatusCounters</code> object that specifies the number of training jobs, categorized by the status of their final objective metric, that this tuning job launched.</p>
    #[doc(hidden)]
    pub objective_status_counters: std::option::Option<crate::model::ObjectiveStatusCounters>,
    /// <p>A <code>TrainingJobSummary</code> object that describes the training job that completed with the best current <code>HyperParameterTuningJobObjective</code>.</p>
    #[doc(hidden)]
    pub best_training_job: std::option::Option<crate::model::HyperParameterTrainingJobSummary>,
    /// <p>If the hyperparameter tuning job is an warm start tuning job with a <code>WarmStartType</code> of <code>IDENTICAL_DATA_AND_ALGORITHM</code>, this is the <code>TrainingJobSummary</code> for the training job with the best objective metric value of all training jobs launched by this tuning job and all parent jobs specified for the warm start tuning job.</p>
    #[doc(hidden)]
    pub overall_best_training_job:
        std::option::Option<crate::model::HyperParameterTrainingJobSummary>,
    /// <p>The configuration for starting the hyperparameter parameter tuning job using one or more previous tuning jobs as a starting point. The results of previous tuning jobs are used to inform which combinations of hyperparameters to search over in the new tuning job.</p>
    #[doc(hidden)]
    pub warm_start_config:
        std::option::Option<crate::model::HyperParameterTuningJobWarmStartConfig>,
    /// <p>If the tuning job failed, the reason it failed.</p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
}
impl DescribeHyperParameterTuningJobOutput {
    /// <p>The name of the tuning job.</p>
    pub fn hyper_parameter_tuning_job_name(&self) -> std::option::Option<&str> {
        self.hyper_parameter_tuning_job_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the tuning job.</p>
    pub fn hyper_parameter_tuning_job_arn(&self) -> std::option::Option<&str> {
        self.hyper_parameter_tuning_job_arn.as_deref()
    }
    /// <p>The <code>HyperParameterTuningJobConfig</code> object that specifies the configuration of the tuning job.</p>
    pub fn hyper_parameter_tuning_job_config(
        &self,
    ) -> std::option::Option<&crate::model::HyperParameterTuningJobConfig> {
        self.hyper_parameter_tuning_job_config.as_ref()
    }
    /// <p>The <code>HyperParameterTrainingJobDefinition</code> object that specifies the definition of the training jobs that this tuning job launches.</p>
    pub fn training_job_definition(
        &self,
    ) -> std::option::Option<&crate::model::HyperParameterTrainingJobDefinition> {
        self.training_job_definition.as_ref()
    }
    /// <p>A list of the <code>HyperParameterTrainingJobDefinition</code> objects launched for this tuning job.</p>
    pub fn training_job_definitions(
        &self,
    ) -> std::option::Option<&[crate::model::HyperParameterTrainingJobDefinition]> {
        self.training_job_definitions.as_deref()
    }
    /// <p>The status of the tuning job: InProgress, Completed, Failed, Stopping, or Stopped.</p>
    pub fn hyper_parameter_tuning_job_status(
        &self,
    ) -> std::option::Option<&crate::model::HyperParameterTuningJobStatus> {
        self.hyper_parameter_tuning_job_status.as_ref()
    }
    /// <p>The date and time that the tuning job started.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The date and time that the tuning job ended.</p>
    pub fn hyper_parameter_tuning_end_time(
        &self,
    ) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.hyper_parameter_tuning_end_time.as_ref()
    }
    /// <p>The date and time that the status of the tuning job was modified. </p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>The <code>TrainingJobStatusCounters</code> object that specifies the number of training jobs, categorized by status, that this tuning job launched.</p>
    pub fn training_job_status_counters(
        &self,
    ) -> std::option::Option<&crate::model::TrainingJobStatusCounters> {
        self.training_job_status_counters.as_ref()
    }
    /// <p>The <code>ObjectiveStatusCounters</code> object that specifies the number of training jobs, categorized by the status of their final objective metric, that this tuning job launched.</p>
    pub fn objective_status_counters(
        &self,
    ) -> std::option::Option<&crate::model::ObjectiveStatusCounters> {
        self.objective_status_counters.as_ref()
    }
    /// <p>A <code>TrainingJobSummary</code> object that describes the training job that completed with the best current <code>HyperParameterTuningJobObjective</code>.</p>
    pub fn best_training_job(
        &self,
    ) -> std::option::Option<&crate::model::HyperParameterTrainingJobSummary> {
        self.best_training_job.as_ref()
    }
    /// <p>If the hyperparameter tuning job is an warm start tuning job with a <code>WarmStartType</code> of <code>IDENTICAL_DATA_AND_ALGORITHM</code>, this is the <code>TrainingJobSummary</code> for the training job with the best objective metric value of all training jobs launched by this tuning job and all parent jobs specified for the warm start tuning job.</p>
    pub fn overall_best_training_job(
        &self,
    ) -> std::option::Option<&crate::model::HyperParameterTrainingJobSummary> {
        self.overall_best_training_job.as_ref()
    }
    /// <p>The configuration for starting the hyperparameter parameter tuning job using one or more previous tuning jobs as a starting point. The results of previous tuning jobs are used to inform which combinations of hyperparameters to search over in the new tuning job.</p>
    pub fn warm_start_config(
        &self,
    ) -> std::option::Option<&crate::model::HyperParameterTuningJobWarmStartConfig> {
        self.warm_start_config.as_ref()
    }
    /// <p>If the tuning job failed, the reason it failed.</p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
}
/// See [`DescribeHyperParameterTuningJobOutput`](crate::output::DescribeHyperParameterTuningJobOutput).
pub mod describe_hyper_parameter_tuning_job_output {

    /// A builder for [`DescribeHyperParameterTuningJobOutput`](crate::output::DescribeHyperParameterTuningJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) hyper_parameter_tuning_job_name: std::option::Option<std::string::String>,
        pub(crate) hyper_parameter_tuning_job_arn: std::option::Option<std::string::String>,
        pub(crate) hyper_parameter_tuning_job_config:
            std::option::Option<crate::model::HyperParameterTuningJobConfig>,
        pub(crate) training_job_definition:
            std::option::Option<crate::model::HyperParameterTrainingJobDefinition>,
        pub(crate) training_job_definitions:
            std::option::Option<std::vec::Vec<crate::model::HyperParameterTrainingJobDefinition>>,
        pub(crate) hyper_parameter_tuning_job_status:
            std::option::Option<crate::model::HyperParameterTuningJobStatus>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) hyper_parameter_tuning_end_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) training_job_status_counters:
            std::option::Option<crate::model::TrainingJobStatusCounters>,
        pub(crate) objective_status_counters:
            std::option::Option<crate::model::ObjectiveStatusCounters>,
        pub(crate) best_training_job:
            std::option::Option<crate::model::HyperParameterTrainingJobSummary>,
        pub(crate) overall_best_training_job:
            std::option::Option<crate::model::HyperParameterTrainingJobSummary>,
        pub(crate) warm_start_config:
            std::option::Option<crate::model::HyperParameterTuningJobWarmStartConfig>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The name of the tuning job.</p>
        pub fn hyper_parameter_tuning_job_name(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.hyper_parameter_tuning_job_name = Some(input.into());
            self
        }
        /// <p>The name of the tuning job.</p>
        pub fn set_hyper_parameter_tuning_job_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.hyper_parameter_tuning_job_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the tuning job.</p>
        pub fn hyper_parameter_tuning_job_arn(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.hyper_parameter_tuning_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the tuning job.</p>
        pub fn set_hyper_parameter_tuning_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.hyper_parameter_tuning_job_arn = input;
            self
        }
        /// <p>The <code>HyperParameterTuningJobConfig</code> object that specifies the configuration of the tuning job.</p>
        pub fn hyper_parameter_tuning_job_config(
            mut self,
            input: crate::model::HyperParameterTuningJobConfig,
        ) -> Self {
            self.hyper_parameter_tuning_job_config = Some(input);
            self
        }
        /// <p>The <code>HyperParameterTuningJobConfig</code> object that specifies the configuration of the tuning job.</p>
        pub fn set_hyper_parameter_tuning_job_config(
            mut self,
            input: std::option::Option<crate::model::HyperParameterTuningJobConfig>,
        ) -> Self {
            self.hyper_parameter_tuning_job_config = input;
            self
        }
        /// <p>The <code>HyperParameterTrainingJobDefinition</code> object that specifies the definition of the training jobs that this tuning job launches.</p>
        pub fn training_job_definition(
            mut self,
            input: crate::model::HyperParameterTrainingJobDefinition,
        ) -> Self {
            self.training_job_definition = Some(input);
            self
        }
        /// <p>The <code>HyperParameterTrainingJobDefinition</code> object that specifies the definition of the training jobs that this tuning job launches.</p>
        pub fn set_training_job_definition(
            mut self,
            input: std::option::Option<crate::model::HyperParameterTrainingJobDefinition>,
        ) -> Self {
            self.training_job_definition = input;
            self
        }
        /// Appends an item to `training_job_definitions`.
        ///
        /// To override the contents of this collection use [`set_training_job_definitions`](Self::set_training_job_definitions).
        ///
        /// <p>A list of the <code>HyperParameterTrainingJobDefinition</code> objects launched for this tuning job.</p>
        pub fn training_job_definitions(
            mut self,
            input: crate::model::HyperParameterTrainingJobDefinition,
        ) -> Self {
            let mut v = self.training_job_definitions.unwrap_or_default();
            v.push(input);
            self.training_job_definitions = Some(v);
            self
        }
        /// <p>A list of the <code>HyperParameterTrainingJobDefinition</code> objects launched for this tuning job.</p>
        pub fn set_training_job_definitions(
            mut self,
            input: std::option::Option<
                std::vec::Vec<crate::model::HyperParameterTrainingJobDefinition>,
            >,
        ) -> Self {
            self.training_job_definitions = input;
            self
        }
        /// <p>The status of the tuning job: InProgress, Completed, Failed, Stopping, or Stopped.</p>
        pub fn hyper_parameter_tuning_job_status(
            mut self,
            input: crate::model::HyperParameterTuningJobStatus,
        ) -> Self {
            self.hyper_parameter_tuning_job_status = Some(input);
            self
        }
        /// <p>The status of the tuning job: InProgress, Completed, Failed, Stopping, or Stopped.</p>
        pub fn set_hyper_parameter_tuning_job_status(
            mut self,
            input: std::option::Option<crate::model::HyperParameterTuningJobStatus>,
        ) -> Self {
            self.hyper_parameter_tuning_job_status = input;
            self
        }
        /// <p>The date and time that the tuning job started.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The date and time that the tuning job started.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The date and time that the tuning job ended.</p>
        pub fn hyper_parameter_tuning_end_time(
            mut self,
            input: aws_smithy_types::DateTime,
        ) -> Self {
            self.hyper_parameter_tuning_end_time = Some(input);
            self
        }
        /// <p>The date and time that the tuning job ended.</p>
        pub fn set_hyper_parameter_tuning_end_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.hyper_parameter_tuning_end_time = input;
            self
        }
        /// <p>The date and time that the status of the tuning job was modified. </p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>The date and time that the status of the tuning job was modified. </p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>The <code>TrainingJobStatusCounters</code> object that specifies the number of training jobs, categorized by status, that this tuning job launched.</p>
        pub fn training_job_status_counters(
            mut self,
            input: crate::model::TrainingJobStatusCounters,
        ) -> Self {
            self.training_job_status_counters = Some(input);
            self
        }
        /// <p>The <code>TrainingJobStatusCounters</code> object that specifies the number of training jobs, categorized by status, that this tuning job launched.</p>
        pub fn set_training_job_status_counters(
            mut self,
            input: std::option::Option<crate::model::TrainingJobStatusCounters>,
        ) -> Self {
            self.training_job_status_counters = input;
            self
        }
        /// <p>The <code>ObjectiveStatusCounters</code> object that specifies the number of training jobs, categorized by the status of their final objective metric, that this tuning job launched.</p>
        pub fn objective_status_counters(
            mut self,
            input: crate::model::ObjectiveStatusCounters,
        ) -> Self {
            self.objective_status_counters = Some(input);
            self
        }
        /// <p>The <code>ObjectiveStatusCounters</code> object that specifies the number of training jobs, categorized by the status of their final objective metric, that this tuning job launched.</p>
        pub fn set_objective_status_counters(
            mut self,
            input: std::option::Option<crate::model::ObjectiveStatusCounters>,
        ) -> Self {
            self.objective_status_counters = input;
            self
        }
        /// <p>A <code>TrainingJobSummary</code> object that describes the training job that completed with the best current <code>HyperParameterTuningJobObjective</code>.</p>
        pub fn best_training_job(
            mut self,
            input: crate::model::HyperParameterTrainingJobSummary,
        ) -> Self {
            self.best_training_job = Some(input);
            self
        }
        /// <p>A <code>TrainingJobSummary</code> object that describes the training job that completed with the best current <code>HyperParameterTuningJobObjective</code>.</p>
        pub fn set_best_training_job(
            mut self,
            input: std::option::Option<crate::model::HyperParameterTrainingJobSummary>,
        ) -> Self {
            self.best_training_job = input;
            self
        }
        /// <p>If the hyperparameter tuning job is an warm start tuning job with a <code>WarmStartType</code> of <code>IDENTICAL_DATA_AND_ALGORITHM</code>, this is the <code>TrainingJobSummary</code> for the training job with the best objective metric value of all training jobs launched by this tuning job and all parent jobs specified for the warm start tuning job.</p>
        pub fn overall_best_training_job(
            mut self,
            input: crate::model::HyperParameterTrainingJobSummary,
        ) -> Self {
            self.overall_best_training_job = Some(input);
            self
        }
        /// <p>If the hyperparameter tuning job is an warm start tuning job with a <code>WarmStartType</code> of <code>IDENTICAL_DATA_AND_ALGORITHM</code>, this is the <code>TrainingJobSummary</code> for the training job with the best objective metric value of all training jobs launched by this tuning job and all parent jobs specified for the warm start tuning job.</p>
        pub fn set_overall_best_training_job(
            mut self,
            input: std::option::Option<crate::model::HyperParameterTrainingJobSummary>,
        ) -> Self {
            self.overall_best_training_job = input;
            self
        }
        /// <p>The configuration for starting the hyperparameter parameter tuning job using one or more previous tuning jobs as a starting point. The results of previous tuning jobs are used to inform which combinations of hyperparameters to search over in the new tuning job.</p>
        pub fn warm_start_config(
            mut self,
            input: crate::model::HyperParameterTuningJobWarmStartConfig,
        ) -> Self {
            self.warm_start_config = Some(input);
            self
        }
        /// <p>The configuration for starting the hyperparameter parameter tuning job using one or more previous tuning jobs as a starting point. The results of previous tuning jobs are used to inform which combinations of hyperparameters to search over in the new tuning job.</p>
        pub fn set_warm_start_config(
            mut self,
            input: std::option::Option<crate::model::HyperParameterTuningJobWarmStartConfig>,
        ) -> Self {
            self.warm_start_config = input;
            self
        }
        /// <p>If the tuning job failed, the reason it failed.</p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>If the tuning job failed, the reason it failed.</p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeHyperParameterTuningJobOutput`](crate::output::DescribeHyperParameterTuningJobOutput).
        pub fn build(self) -> crate::output::DescribeHyperParameterTuningJobOutput {
            crate::output::DescribeHyperParameterTuningJobOutput {
                hyper_parameter_tuning_job_name: self.hyper_parameter_tuning_job_name,
                hyper_parameter_tuning_job_arn: self.hyper_parameter_tuning_job_arn,
                hyper_parameter_tuning_job_config: self.hyper_parameter_tuning_job_config,
                training_job_definition: self.training_job_definition,
                training_job_definitions: self.training_job_definitions,
                hyper_parameter_tuning_job_status: self.hyper_parameter_tuning_job_status,
                creation_time: self.creation_time,
                hyper_parameter_tuning_end_time: self.hyper_parameter_tuning_end_time,
                last_modified_time: self.last_modified_time,
                training_job_status_counters: self.training_job_status_counters,
                objective_status_counters: self.objective_status_counters,
                best_training_job: self.best_training_job,
                overall_best_training_job: self.overall_best_training_job,
                warm_start_config: self.warm_start_config,
                failure_reason: self.failure_reason,
            }
        }
    }
}
impl DescribeHyperParameterTuningJobOutput {
    /// Creates a new builder-style object to manufacture [`DescribeHyperParameterTuningJobOutput`](crate::output::DescribeHyperParameterTuningJobOutput).
    pub fn builder() -> crate::output::describe_hyper_parameter_tuning_job_output::Builder {
        crate::output::describe_hyper_parameter_tuning_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeHumanTaskUiOutput {
    /// <p>The Amazon Resource Name (ARN) of the human task user interface (worker task template).</p>
    #[doc(hidden)]
    pub human_task_ui_arn: std::option::Option<std::string::String>,
    /// <p>The name of the human task user interface (worker task template).</p>
    #[doc(hidden)]
    pub human_task_ui_name: std::option::Option<std::string::String>,
    /// <p>The status of the human task user interface (worker task template). Valid values are listed below.</p>
    #[doc(hidden)]
    pub human_task_ui_status: std::option::Option<crate::model::HumanTaskUiStatus>,
    /// <p>The timestamp when the human task user interface was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Container for user interface template information.</p>
    #[doc(hidden)]
    pub ui_template: std::option::Option<crate::model::UiTemplateInfo>,
}
impl DescribeHumanTaskUiOutput {
    /// <p>The Amazon Resource Name (ARN) of the human task user interface (worker task template).</p>
    pub fn human_task_ui_arn(&self) -> std::option::Option<&str> {
        self.human_task_ui_arn.as_deref()
    }
    /// <p>The name of the human task user interface (worker task template).</p>
    pub fn human_task_ui_name(&self) -> std::option::Option<&str> {
        self.human_task_ui_name.as_deref()
    }
    /// <p>The status of the human task user interface (worker task template). Valid values are listed below.</p>
    pub fn human_task_ui_status(&self) -> std::option::Option<&crate::model::HumanTaskUiStatus> {
        self.human_task_ui_status.as_ref()
    }
    /// <p>The timestamp when the human task user interface was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>Container for user interface template information.</p>
    pub fn ui_template(&self) -> std::option::Option<&crate::model::UiTemplateInfo> {
        self.ui_template.as_ref()
    }
}
/// See [`DescribeHumanTaskUiOutput`](crate::output::DescribeHumanTaskUiOutput).
pub mod describe_human_task_ui_output {

    /// A builder for [`DescribeHumanTaskUiOutput`](crate::output::DescribeHumanTaskUiOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) human_task_ui_arn: std::option::Option<std::string::String>,
        pub(crate) human_task_ui_name: std::option::Option<std::string::String>,
        pub(crate) human_task_ui_status: std::option::Option<crate::model::HumanTaskUiStatus>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) ui_template: std::option::Option<crate::model::UiTemplateInfo>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the human task user interface (worker task template).</p>
        pub fn human_task_ui_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.human_task_ui_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the human task user interface (worker task template).</p>
        pub fn set_human_task_ui_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.human_task_ui_arn = input;
            self
        }
        /// <p>The name of the human task user interface (worker task template).</p>
        pub fn human_task_ui_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.human_task_ui_name = Some(input.into());
            self
        }
        /// <p>The name of the human task user interface (worker task template).</p>
        pub fn set_human_task_ui_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.human_task_ui_name = input;
            self
        }
        /// <p>The status of the human task user interface (worker task template). Valid values are listed below.</p>
        pub fn human_task_ui_status(mut self, input: crate::model::HumanTaskUiStatus) -> Self {
            self.human_task_ui_status = Some(input);
            self
        }
        /// <p>The status of the human task user interface (worker task template). Valid values are listed below.</p>
        pub fn set_human_task_ui_status(
            mut self,
            input: std::option::Option<crate::model::HumanTaskUiStatus>,
        ) -> Self {
            self.human_task_ui_status = input;
            self
        }
        /// <p>The timestamp when the human task user interface was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The timestamp when the human task user interface was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>Container for user interface template information.</p>
        pub fn ui_template(mut self, input: crate::model::UiTemplateInfo) -> Self {
            self.ui_template = Some(input);
            self
        }
        /// <p>Container for user interface template information.</p>
        pub fn set_ui_template(
            mut self,
            input: std::option::Option<crate::model::UiTemplateInfo>,
        ) -> Self {
            self.ui_template = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeHumanTaskUiOutput`](crate::output::DescribeHumanTaskUiOutput).
        pub fn build(self) -> crate::output::DescribeHumanTaskUiOutput {
            crate::output::DescribeHumanTaskUiOutput {
                human_task_ui_arn: self.human_task_ui_arn,
                human_task_ui_name: self.human_task_ui_name,
                human_task_ui_status: self.human_task_ui_status,
                creation_time: self.creation_time,
                ui_template: self.ui_template,
            }
        }
    }
}
impl DescribeHumanTaskUiOutput {
    /// Creates a new builder-style object to manufacture [`DescribeHumanTaskUiOutput`](crate::output::DescribeHumanTaskUiOutput).
    pub fn builder() -> crate::output::describe_human_task_ui_output::Builder {
        crate::output::describe_human_task_ui_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeHubContentOutput {
    /// <p>The name of the hub content.</p>
    #[doc(hidden)]
    pub hub_content_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the hub content.</p>
    #[doc(hidden)]
    pub hub_content_arn: std::option::Option<std::string::String>,
    /// <p>The version of the hub content.</p>
    #[doc(hidden)]
    pub hub_content_version: std::option::Option<std::string::String>,
    /// <p>The type of hub content.</p>
    #[doc(hidden)]
    pub hub_content_type: std::option::Option<crate::model::HubContentType>,
    /// <p>The document schema version for the hub content.</p>
    #[doc(hidden)]
    pub document_schema_version: std::option::Option<std::string::String>,
    /// <p>The name of the hub that contains the content.</p>
    #[doc(hidden)]
    pub hub_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the hub that contains the content. </p>
    #[doc(hidden)]
    pub hub_arn: std::option::Option<std::string::String>,
    /// <p>The display name of the hub content.</p>
    #[doc(hidden)]
    pub hub_content_display_name: std::option::Option<std::string::String>,
    /// <p>A description of the hub content.</p>
    #[doc(hidden)]
    pub hub_content_description: std::option::Option<std::string::String>,
    /// <p>Markdown files associated with the hub content to import.</p>
    #[doc(hidden)]
    pub hub_content_markdown: std::option::Option<std::string::String>,
    /// <p>The hub content document that describes information about the hub content such as type, associated containers, scripts, and more.</p>
    #[doc(hidden)]
    pub hub_content_document: std::option::Option<std::string::String>,
    /// <p>The searchable keywords for the hub content.</p>
    #[doc(hidden)]
    pub hub_content_search_keywords: std::option::Option<std::vec::Vec<std::string::String>>,
    /// <p>The location of any dependencies that the hub content has, such as scripts, model artifacts, datasets, or notebooks.</p>
    #[doc(hidden)]
    pub hub_content_dependencies:
        std::option::Option<std::vec::Vec<crate::model::HubContentDependency>>,
    /// <p>The status of the hub content.</p>
    #[doc(hidden)]
    pub hub_content_status: std::option::Option<crate::model::HubContentStatus>,
    /// <p>The failure reason if importing hub content failed.</p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>The date and time that hub content was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
}
impl DescribeHubContentOutput {
    /// <p>The name of the hub content.</p>
    pub fn hub_content_name(&self) -> std::option::Option<&str> {
        self.hub_content_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the hub content.</p>
    pub fn hub_content_arn(&self) -> std::option::Option<&str> {
        self.hub_content_arn.as_deref()
    }
    /// <p>The version of the hub content.</p>
    pub fn hub_content_version(&self) -> std::option::Option<&str> {
        self.hub_content_version.as_deref()
    }
    /// <p>The type of hub content.</p>
    pub fn hub_content_type(&self) -> std::option::Option<&crate::model::HubContentType> {
        self.hub_content_type.as_ref()
    }
    /// <p>The document schema version for the hub content.</p>
    pub fn document_schema_version(&self) -> std::option::Option<&str> {
        self.document_schema_version.as_deref()
    }
    /// <p>The name of the hub that contains the content.</p>
    pub fn hub_name(&self) -> std::option::Option<&str> {
        self.hub_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the hub that contains the content. </p>
    pub fn hub_arn(&self) -> std::option::Option<&str> {
        self.hub_arn.as_deref()
    }
    /// <p>The display name of the hub content.</p>
    pub fn hub_content_display_name(&self) -> std::option::Option<&str> {
        self.hub_content_display_name.as_deref()
    }
    /// <p>A description of the hub content.</p>
    pub fn hub_content_description(&self) -> std::option::Option<&str> {
        self.hub_content_description.as_deref()
    }
    /// <p>Markdown files associated with the hub content to import.</p>
    pub fn hub_content_markdown(&self) -> std::option::Option<&str> {
        self.hub_content_markdown.as_deref()
    }
    /// <p>The hub content document that describes information about the hub content such as type, associated containers, scripts, and more.</p>
    pub fn hub_content_document(&self) -> std::option::Option<&str> {
        self.hub_content_document.as_deref()
    }
    /// <p>The searchable keywords for the hub content.</p>
    pub fn hub_content_search_keywords(&self) -> std::option::Option<&[std::string::String]> {
        self.hub_content_search_keywords.as_deref()
    }
    /// <p>The location of any dependencies that the hub content has, such as scripts, model artifacts, datasets, or notebooks.</p>
    pub fn hub_content_dependencies(
        &self,
    ) -> std::option::Option<&[crate::model::HubContentDependency]> {
        self.hub_content_dependencies.as_deref()
    }
    /// <p>The status of the hub content.</p>
    pub fn hub_content_status(&self) -> std::option::Option<&crate::model::HubContentStatus> {
        self.hub_content_status.as_ref()
    }
    /// <p>The failure reason if importing hub content failed.</p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>The date and time that hub content was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
}
/// See [`DescribeHubContentOutput`](crate::output::DescribeHubContentOutput).
pub mod describe_hub_content_output {

    /// A builder for [`DescribeHubContentOutput`](crate::output::DescribeHubContentOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) hub_content_name: std::option::Option<std::string::String>,
        pub(crate) hub_content_arn: std::option::Option<std::string::String>,
        pub(crate) hub_content_version: std::option::Option<std::string::String>,
        pub(crate) hub_content_type: std::option::Option<crate::model::HubContentType>,
        pub(crate) document_schema_version: std::option::Option<std::string::String>,
        pub(crate) hub_name: std::option::Option<std::string::String>,
        pub(crate) hub_arn: std::option::Option<std::string::String>,
        pub(crate) hub_content_display_name: std::option::Option<std::string::String>,
        pub(crate) hub_content_description: std::option::Option<std::string::String>,
        pub(crate) hub_content_markdown: std::option::Option<std::string::String>,
        pub(crate) hub_content_document: std::option::Option<std::string::String>,
        pub(crate) hub_content_search_keywords:
            std::option::Option<std::vec::Vec<std::string::String>>,
        pub(crate) hub_content_dependencies:
            std::option::Option<std::vec::Vec<crate::model::HubContentDependency>>,
        pub(crate) hub_content_status: std::option::Option<crate::model::HubContentStatus>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
    }
    impl Builder {
        /// <p>The name of the hub content.</p>
        pub fn hub_content_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.hub_content_name = Some(input.into());
            self
        }
        /// <p>The name of the hub content.</p>
        pub fn set_hub_content_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.hub_content_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the hub content.</p>
        pub fn hub_content_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.hub_content_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the hub content.</p>
        pub fn set_hub_content_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.hub_content_arn = input;
            self
        }
        /// <p>The version of the hub content.</p>
        pub fn hub_content_version(mut self, input: impl Into<std::string::String>) -> Self {
            self.hub_content_version = Some(input.into());
            self
        }
        /// <p>The version of the hub content.</p>
        pub fn set_hub_content_version(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.hub_content_version = input;
            self
        }
        /// <p>The type of hub content.</p>
        pub fn hub_content_type(mut self, input: crate::model::HubContentType) -> Self {
            self.hub_content_type = Some(input);
            self
        }
        /// <p>The type of hub content.</p>
        pub fn set_hub_content_type(
            mut self,
            input: std::option::Option<crate::model::HubContentType>,
        ) -> Self {
            self.hub_content_type = input;
            self
        }
        /// <p>The document schema version for the hub content.</p>
        pub fn document_schema_version(mut self, input: impl Into<std::string::String>) -> Self {
            self.document_schema_version = Some(input.into());
            self
        }
        /// <p>The document schema version for the hub content.</p>
        pub fn set_document_schema_version(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.document_schema_version = input;
            self
        }
        /// <p>The name of the hub that contains the content.</p>
        pub fn hub_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.hub_name = Some(input.into());
            self
        }
        /// <p>The name of the hub that contains the content.</p>
        pub fn set_hub_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.hub_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the hub that contains the content. </p>
        pub fn hub_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.hub_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the hub that contains the content. </p>
        pub fn set_hub_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.hub_arn = input;
            self
        }
        /// <p>The display name of the hub content.</p>
        pub fn hub_content_display_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.hub_content_display_name = Some(input.into());
            self
        }
        /// <p>The display name of the hub content.</p>
        pub fn set_hub_content_display_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.hub_content_display_name = input;
            self
        }
        /// <p>A description of the hub content.</p>
        pub fn hub_content_description(mut self, input: impl Into<std::string::String>) -> Self {
            self.hub_content_description = Some(input.into());
            self
        }
        /// <p>A description of the hub content.</p>
        pub fn set_hub_content_description(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.hub_content_description = input;
            self
        }
        /// <p>Markdown files associated with the hub content to import.</p>
        pub fn hub_content_markdown(mut self, input: impl Into<std::string::String>) -> Self {
            self.hub_content_markdown = Some(input.into());
            self
        }
        /// <p>Markdown files associated with the hub content to import.</p>
        pub fn set_hub_content_markdown(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.hub_content_markdown = input;
            self
        }
        /// <p>The hub content document that describes information about the hub content such as type, associated containers, scripts, and more.</p>
        pub fn hub_content_document(mut self, input: impl Into<std::string::String>) -> Self {
            self.hub_content_document = Some(input.into());
            self
        }
        /// <p>The hub content document that describes information about the hub content such as type, associated containers, scripts, and more.</p>
        pub fn set_hub_content_document(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.hub_content_document = input;
            self
        }
        /// Appends an item to `hub_content_search_keywords`.
        ///
        /// To override the contents of this collection use [`set_hub_content_search_keywords`](Self::set_hub_content_search_keywords).
        ///
        /// <p>The searchable keywords for the hub content.</p>
        pub fn hub_content_search_keywords(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            let mut v = self.hub_content_search_keywords.unwrap_or_default();
            v.push(input.into());
            self.hub_content_search_keywords = Some(v);
            self
        }
        /// <p>The searchable keywords for the hub content.</p>
        pub fn set_hub_content_search_keywords(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.hub_content_search_keywords = input;
            self
        }
        /// Appends an item to `hub_content_dependencies`.
        ///
        /// To override the contents of this collection use [`set_hub_content_dependencies`](Self::set_hub_content_dependencies).
        ///
        /// <p>The location of any dependencies that the hub content has, such as scripts, model artifacts, datasets, or notebooks.</p>
        pub fn hub_content_dependencies(
            mut self,
            input: crate::model::HubContentDependency,
        ) -> Self {
            let mut v = self.hub_content_dependencies.unwrap_or_default();
            v.push(input);
            self.hub_content_dependencies = Some(v);
            self
        }
        /// <p>The location of any dependencies that the hub content has, such as scripts, model artifacts, datasets, or notebooks.</p>
        pub fn set_hub_content_dependencies(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::HubContentDependency>>,
        ) -> Self {
            self.hub_content_dependencies = input;
            self
        }
        /// <p>The status of the hub content.</p>
        pub fn hub_content_status(mut self, input: crate::model::HubContentStatus) -> Self {
            self.hub_content_status = Some(input);
            self
        }
        /// <p>The status of the hub content.</p>
        pub fn set_hub_content_status(
            mut self,
            input: std::option::Option<crate::model::HubContentStatus>,
        ) -> Self {
            self.hub_content_status = input;
            self
        }
        /// <p>The failure reason if importing hub content failed.</p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>The failure reason if importing hub content failed.</p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// <p>The date and time that hub content was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The date and time that hub content was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeHubContentOutput`](crate::output::DescribeHubContentOutput).
        pub fn build(self) -> crate::output::DescribeHubContentOutput {
            crate::output::DescribeHubContentOutput {
                hub_content_name: self.hub_content_name,
                hub_content_arn: self.hub_content_arn,
                hub_content_version: self.hub_content_version,
                hub_content_type: self.hub_content_type,
                document_schema_version: self.document_schema_version,
                hub_name: self.hub_name,
                hub_arn: self.hub_arn,
                hub_content_display_name: self.hub_content_display_name,
                hub_content_description: self.hub_content_description,
                hub_content_markdown: self.hub_content_markdown,
                hub_content_document: self.hub_content_document,
                hub_content_search_keywords: self.hub_content_search_keywords,
                hub_content_dependencies: self.hub_content_dependencies,
                hub_content_status: self.hub_content_status,
                failure_reason: self.failure_reason,
                creation_time: self.creation_time,
            }
        }
    }
}
impl DescribeHubContentOutput {
    /// Creates a new builder-style object to manufacture [`DescribeHubContentOutput`](crate::output::DescribeHubContentOutput).
    pub fn builder() -> crate::output::describe_hub_content_output::Builder {
        crate::output::describe_hub_content_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeHubOutput {
    /// <p>The name of the hub.</p>
    #[doc(hidden)]
    pub hub_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the hub.</p>
    #[doc(hidden)]
    pub hub_arn: std::option::Option<std::string::String>,
    /// <p>The display name of the hub.</p>
    #[doc(hidden)]
    pub hub_display_name: std::option::Option<std::string::String>,
    /// <p>A description of the hub.</p>
    #[doc(hidden)]
    pub hub_description: std::option::Option<std::string::String>,
    /// <p>The searchable keywords for the hub.</p>
    #[doc(hidden)]
    pub hub_search_keywords: std::option::Option<std::vec::Vec<std::string::String>>,
    /// <p>The Amazon S3 storage configuration for the hub.</p>
    #[doc(hidden)]
    pub s3_storage_config: std::option::Option<crate::model::HubS3StorageConfig>,
    /// <p>The status of the hub.</p>
    #[doc(hidden)]
    pub hub_status: std::option::Option<crate::model::HubStatus>,
    /// <p>The failure reason if importing hub content failed.</p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>The date and time that the hub was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The date and time that the hub was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
}
impl DescribeHubOutput {
    /// <p>The name of the hub.</p>
    pub fn hub_name(&self) -> std::option::Option<&str> {
        self.hub_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the hub.</p>
    pub fn hub_arn(&self) -> std::option::Option<&str> {
        self.hub_arn.as_deref()
    }
    /// <p>The display name of the hub.</p>
    pub fn hub_display_name(&self) -> std::option::Option<&str> {
        self.hub_display_name.as_deref()
    }
    /// <p>A description of the hub.</p>
    pub fn hub_description(&self) -> std::option::Option<&str> {
        self.hub_description.as_deref()
    }
    /// <p>The searchable keywords for the hub.</p>
    pub fn hub_search_keywords(&self) -> std::option::Option<&[std::string::String]> {
        self.hub_search_keywords.as_deref()
    }
    /// <p>The Amazon S3 storage configuration for the hub.</p>
    pub fn s3_storage_config(&self) -> std::option::Option<&crate::model::HubS3StorageConfig> {
        self.s3_storage_config.as_ref()
    }
    /// <p>The status of the hub.</p>
    pub fn hub_status(&self) -> std::option::Option<&crate::model::HubStatus> {
        self.hub_status.as_ref()
    }
    /// <p>The failure reason if importing hub content failed.</p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>The date and time that the hub was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The date and time that the hub was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
}
/// See [`DescribeHubOutput`](crate::output::DescribeHubOutput).
pub mod describe_hub_output {

    /// A builder for [`DescribeHubOutput`](crate::output::DescribeHubOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) hub_name: std::option::Option<std::string::String>,
        pub(crate) hub_arn: std::option::Option<std::string::String>,
        pub(crate) hub_display_name: std::option::Option<std::string::String>,
        pub(crate) hub_description: std::option::Option<std::string::String>,
        pub(crate) hub_search_keywords: std::option::Option<std::vec::Vec<std::string::String>>,
        pub(crate) s3_storage_config: std::option::Option<crate::model::HubS3StorageConfig>,
        pub(crate) hub_status: std::option::Option<crate::model::HubStatus>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    }
    impl Builder {
        /// <p>The name of the hub.</p>
        pub fn hub_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.hub_name = Some(input.into());
            self
        }
        /// <p>The name of the hub.</p>
        pub fn set_hub_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.hub_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the hub.</p>
        pub fn hub_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.hub_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the hub.</p>
        pub fn set_hub_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.hub_arn = input;
            self
        }
        /// <p>The display name of the hub.</p>
        pub fn hub_display_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.hub_display_name = Some(input.into());
            self
        }
        /// <p>The display name of the hub.</p>
        pub fn set_hub_display_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.hub_display_name = input;
            self
        }
        /// <p>A description of the hub.</p>
        pub fn hub_description(mut self, input: impl Into<std::string::String>) -> Self {
            self.hub_description = Some(input.into());
            self
        }
        /// <p>A description of the hub.</p>
        pub fn set_hub_description(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.hub_description = input;
            self
        }
        /// Appends an item to `hub_search_keywords`.
        ///
        /// To override the contents of this collection use [`set_hub_search_keywords`](Self::set_hub_search_keywords).
        ///
        /// <p>The searchable keywords for the hub.</p>
        pub fn hub_search_keywords(mut self, input: impl Into<std::string::String>) -> Self {
            let mut v = self.hub_search_keywords.unwrap_or_default();
            v.push(input.into());
            self.hub_search_keywords = Some(v);
            self
        }
        /// <p>The searchable keywords for the hub.</p>
        pub fn set_hub_search_keywords(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.hub_search_keywords = input;
            self
        }
        /// <p>The Amazon S3 storage configuration for the hub.</p>
        pub fn s3_storage_config(mut self, input: crate::model::HubS3StorageConfig) -> Self {
            self.s3_storage_config = Some(input);
            self
        }
        /// <p>The Amazon S3 storage configuration for the hub.</p>
        pub fn set_s3_storage_config(
            mut self,
            input: std::option::Option<crate::model::HubS3StorageConfig>,
        ) -> Self {
            self.s3_storage_config = input;
            self
        }
        /// <p>The status of the hub.</p>
        pub fn hub_status(mut self, input: crate::model::HubStatus) -> Self {
            self.hub_status = Some(input);
            self
        }
        /// <p>The status of the hub.</p>
        pub fn set_hub_status(
            mut self,
            input: std::option::Option<crate::model::HubStatus>,
        ) -> Self {
            self.hub_status = input;
            self
        }
        /// <p>The failure reason if importing hub content failed.</p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>The failure reason if importing hub content failed.</p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// <p>The date and time that the hub was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The date and time that the hub was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The date and time that the hub was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>The date and time that the hub was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeHubOutput`](crate::output::DescribeHubOutput).
        pub fn build(self) -> crate::output::DescribeHubOutput {
            crate::output::DescribeHubOutput {
                hub_name: self.hub_name,
                hub_arn: self.hub_arn,
                hub_display_name: self.hub_display_name,
                hub_description: self.hub_description,
                hub_search_keywords: self.hub_search_keywords,
                s3_storage_config: self.s3_storage_config,
                hub_status: self.hub_status,
                failure_reason: self.failure_reason,
                creation_time: self.creation_time,
                last_modified_time: self.last_modified_time,
            }
        }
    }
}
impl DescribeHubOutput {
    /// Creates a new builder-style object to manufacture [`DescribeHubOutput`](crate::output::DescribeHubOutput).
    pub fn builder() -> crate::output::describe_hub_output::Builder {
        crate::output::describe_hub_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeFlowDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the flow defintion.</p>
    #[doc(hidden)]
    pub flow_definition_arn: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the flow definition.</p>
    #[doc(hidden)]
    pub flow_definition_name: std::option::Option<std::string::String>,
    /// <p>The status of the flow definition. Valid values are listed below.</p>
    #[doc(hidden)]
    pub flow_definition_status: std::option::Option<crate::model::FlowDefinitionStatus>,
    /// <p>The timestamp when the flow definition was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Container for configuring the source of human task requests. Used to specify if Amazon Rekognition or Amazon Textract is used as an integration source.</p>
    #[doc(hidden)]
    pub human_loop_request_source: std::option::Option<crate::model::HumanLoopRequestSource>,
    /// <p>An object containing information about what triggers a human review workflow.</p>
    #[doc(hidden)]
    pub human_loop_activation_config: std::option::Option<crate::model::HumanLoopActivationConfig>,
    /// <p>An object containing information about who works on the task, the workforce task price, and other task details.</p>
    #[doc(hidden)]
    pub human_loop_config: std::option::Option<crate::model::HumanLoopConfig>,
    /// <p>An object containing information about the output file.</p>
    #[doc(hidden)]
    pub output_config: std::option::Option<crate::model::FlowDefinitionOutputConfig>,
    /// <p>The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) execution role for the flow definition.</p>
    #[doc(hidden)]
    pub role_arn: std::option::Option<std::string::String>,
    /// <p>The reason your flow definition failed.</p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
}
impl DescribeFlowDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the flow defintion.</p>
    pub fn flow_definition_arn(&self) -> std::option::Option<&str> {
        self.flow_definition_arn.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the flow definition.</p>
    pub fn flow_definition_name(&self) -> std::option::Option<&str> {
        self.flow_definition_name.as_deref()
    }
    /// <p>The status of the flow definition. Valid values are listed below.</p>
    pub fn flow_definition_status(
        &self,
    ) -> std::option::Option<&crate::model::FlowDefinitionStatus> {
        self.flow_definition_status.as_ref()
    }
    /// <p>The timestamp when the flow definition was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>Container for configuring the source of human task requests. Used to specify if Amazon Rekognition or Amazon Textract is used as an integration source.</p>
    pub fn human_loop_request_source(
        &self,
    ) -> std::option::Option<&crate::model::HumanLoopRequestSource> {
        self.human_loop_request_source.as_ref()
    }
    /// <p>An object containing information about what triggers a human review workflow.</p>
    pub fn human_loop_activation_config(
        &self,
    ) -> std::option::Option<&crate::model::HumanLoopActivationConfig> {
        self.human_loop_activation_config.as_ref()
    }
    /// <p>An object containing information about who works on the task, the workforce task price, and other task details.</p>
    pub fn human_loop_config(&self) -> std::option::Option<&crate::model::HumanLoopConfig> {
        self.human_loop_config.as_ref()
    }
    /// <p>An object containing information about the output file.</p>
    pub fn output_config(&self) -> std::option::Option<&crate::model::FlowDefinitionOutputConfig> {
        self.output_config.as_ref()
    }
    /// <p>The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) execution role for the flow definition.</p>
    pub fn role_arn(&self) -> std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    /// <p>The reason your flow definition failed.</p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
}
/// See [`DescribeFlowDefinitionOutput`](crate::output::DescribeFlowDefinitionOutput).
pub mod describe_flow_definition_output {

    /// A builder for [`DescribeFlowDefinitionOutput`](crate::output::DescribeFlowDefinitionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) flow_definition_arn: std::option::Option<std::string::String>,
        pub(crate) flow_definition_name: std::option::Option<std::string::String>,
        pub(crate) flow_definition_status: std::option::Option<crate::model::FlowDefinitionStatus>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) human_loop_request_source:
            std::option::Option<crate::model::HumanLoopRequestSource>,
        pub(crate) human_loop_activation_config:
            std::option::Option<crate::model::HumanLoopActivationConfig>,
        pub(crate) human_loop_config: std::option::Option<crate::model::HumanLoopConfig>,
        pub(crate) output_config: std::option::Option<crate::model::FlowDefinitionOutputConfig>,
        pub(crate) role_arn: std::option::Option<std::string::String>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the flow defintion.</p>
        pub fn flow_definition_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.flow_definition_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the flow defintion.</p>
        pub fn set_flow_definition_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.flow_definition_arn = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the flow definition.</p>
        pub fn flow_definition_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.flow_definition_name = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the flow definition.</p>
        pub fn set_flow_definition_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.flow_definition_name = input;
            self
        }
        /// <p>The status of the flow definition. Valid values are listed below.</p>
        pub fn flow_definition_status(mut self, input: crate::model::FlowDefinitionStatus) -> Self {
            self.flow_definition_status = Some(input);
            self
        }
        /// <p>The status of the flow definition. Valid values are listed below.</p>
        pub fn set_flow_definition_status(
            mut self,
            input: std::option::Option<crate::model::FlowDefinitionStatus>,
        ) -> Self {
            self.flow_definition_status = input;
            self
        }
        /// <p>The timestamp when the flow definition was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The timestamp when the flow definition was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>Container for configuring the source of human task requests. Used to specify if Amazon Rekognition or Amazon Textract is used as an integration source.</p>
        pub fn human_loop_request_source(
            mut self,
            input: crate::model::HumanLoopRequestSource,
        ) -> Self {
            self.human_loop_request_source = Some(input);
            self
        }
        /// <p>Container for configuring the source of human task requests. Used to specify if Amazon Rekognition or Amazon Textract is used as an integration source.</p>
        pub fn set_human_loop_request_source(
            mut self,
            input: std::option::Option<crate::model::HumanLoopRequestSource>,
        ) -> Self {
            self.human_loop_request_source = input;
            self
        }
        /// <p>An object containing information about what triggers a human review workflow.</p>
        pub fn human_loop_activation_config(
            mut self,
            input: crate::model::HumanLoopActivationConfig,
        ) -> Self {
            self.human_loop_activation_config = Some(input);
            self
        }
        /// <p>An object containing information about what triggers a human review workflow.</p>
        pub fn set_human_loop_activation_config(
            mut self,
            input: std::option::Option<crate::model::HumanLoopActivationConfig>,
        ) -> Self {
            self.human_loop_activation_config = input;
            self
        }
        /// <p>An object containing information about who works on the task, the workforce task price, and other task details.</p>
        pub fn human_loop_config(mut self, input: crate::model::HumanLoopConfig) -> Self {
            self.human_loop_config = Some(input);
            self
        }
        /// <p>An object containing information about who works on the task, the workforce task price, and other task details.</p>
        pub fn set_human_loop_config(
            mut self,
            input: std::option::Option<crate::model::HumanLoopConfig>,
        ) -> Self {
            self.human_loop_config = input;
            self
        }
        /// <p>An object containing information about the output file.</p>
        pub fn output_config(mut self, input: crate::model::FlowDefinitionOutputConfig) -> Self {
            self.output_config = Some(input);
            self
        }
        /// <p>An object containing information about the output file.</p>
        pub fn set_output_config(
            mut self,
            input: std::option::Option<crate::model::FlowDefinitionOutputConfig>,
        ) -> Self {
            self.output_config = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) execution role for the flow definition.</p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.role_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) execution role for the flow definition.</p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.role_arn = input;
            self
        }
        /// <p>The reason your flow definition failed.</p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>The reason your flow definition failed.</p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeFlowDefinitionOutput`](crate::output::DescribeFlowDefinitionOutput).
        pub fn build(self) -> crate::output::DescribeFlowDefinitionOutput {
            crate::output::DescribeFlowDefinitionOutput {
                flow_definition_arn: self.flow_definition_arn,
                flow_definition_name: self.flow_definition_name,
                flow_definition_status: self.flow_definition_status,
                creation_time: self.creation_time,
                human_loop_request_source: self.human_loop_request_source,
                human_loop_activation_config: self.human_loop_activation_config,
                human_loop_config: self.human_loop_config,
                output_config: self.output_config,
                role_arn: self.role_arn,
                failure_reason: self.failure_reason,
            }
        }
    }
}
impl DescribeFlowDefinitionOutput {
    /// Creates a new builder-style object to manufacture [`DescribeFlowDefinitionOutput`](crate::output::DescribeFlowDefinitionOutput).
    pub fn builder() -> crate::output::describe_flow_definition_output::Builder {
        crate::output::describe_flow_definition_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeFeatureMetadataOutput {
    /// <p>The Amazon Resource Number (ARN) of the feature group that contains the feature.</p>
    #[doc(hidden)]
    pub feature_group_arn: std::option::Option<std::string::String>,
    /// <p>The name of the feature group that you've specified.</p>
    #[doc(hidden)]
    pub feature_group_name: std::option::Option<std::string::String>,
    /// <p>The name of the feature that you've specified.</p>
    #[doc(hidden)]
    pub feature_name: std::option::Option<std::string::String>,
    /// <p>The data type of the feature.</p>
    #[doc(hidden)]
    pub feature_type: std::option::Option<crate::model::FeatureType>,
    /// <p>A timestamp indicating when the feature was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>A timestamp indicating when the metadata for the feature group was modified. For example, if you add a parameter describing the feature, the timestamp changes to reflect the last time you </p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The description you added to describe the feature.</p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p>The key-value pairs that you added to describe the feature.</p>
    #[doc(hidden)]
    pub parameters: std::option::Option<std::vec::Vec<crate::model::FeatureParameter>>,
}
impl DescribeFeatureMetadataOutput {
    /// <p>The Amazon Resource Number (ARN) of the feature group that contains the feature.</p>
    pub fn feature_group_arn(&self) -> std::option::Option<&str> {
        self.feature_group_arn.as_deref()
    }
    /// <p>The name of the feature group that you've specified.</p>
    pub fn feature_group_name(&self) -> std::option::Option<&str> {
        self.feature_group_name.as_deref()
    }
    /// <p>The name of the feature that you've specified.</p>
    pub fn feature_name(&self) -> std::option::Option<&str> {
        self.feature_name.as_deref()
    }
    /// <p>The data type of the feature.</p>
    pub fn feature_type(&self) -> std::option::Option<&crate::model::FeatureType> {
        self.feature_type.as_ref()
    }
    /// <p>A timestamp indicating when the feature was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>A timestamp indicating when the metadata for the feature group was modified. For example, if you add a parameter describing the feature, the timestamp changes to reflect the last time you </p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>The description you added to describe the feature.</p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>The key-value pairs that you added to describe the feature.</p>
    pub fn parameters(&self) -> std::option::Option<&[crate::model::FeatureParameter]> {
        self.parameters.as_deref()
    }
}
/// See [`DescribeFeatureMetadataOutput`](crate::output::DescribeFeatureMetadataOutput).
pub mod describe_feature_metadata_output {

    /// A builder for [`DescribeFeatureMetadataOutput`](crate::output::DescribeFeatureMetadataOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) feature_group_arn: std::option::Option<std::string::String>,
        pub(crate) feature_group_name: std::option::Option<std::string::String>,
        pub(crate) feature_name: std::option::Option<std::string::String>,
        pub(crate) feature_type: std::option::Option<crate::model::FeatureType>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) parameters: std::option::Option<std::vec::Vec<crate::model::FeatureParameter>>,
    }
    impl Builder {
        /// <p>The Amazon Resource Number (ARN) of the feature group that contains the feature.</p>
        pub fn feature_group_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.feature_group_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Number (ARN) of the feature group that contains the feature.</p>
        pub fn set_feature_group_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.feature_group_arn = input;
            self
        }
        /// <p>The name of the feature group that you've specified.</p>
        pub fn feature_group_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.feature_group_name = Some(input.into());
            self
        }
        /// <p>The name of the feature group that you've specified.</p>
        pub fn set_feature_group_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.feature_group_name = input;
            self
        }
        /// <p>The name of the feature that you've specified.</p>
        pub fn feature_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.feature_name = Some(input.into());
            self
        }
        /// <p>The name of the feature that you've specified.</p>
        pub fn set_feature_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.feature_name = input;
            self
        }
        /// <p>The data type of the feature.</p>
        pub fn feature_type(mut self, input: crate::model::FeatureType) -> Self {
            self.feature_type = Some(input);
            self
        }
        /// <p>The data type of the feature.</p>
        pub fn set_feature_type(
            mut self,
            input: std::option::Option<crate::model::FeatureType>,
        ) -> Self {
            self.feature_type = input;
            self
        }
        /// <p>A timestamp indicating when the feature was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>A timestamp indicating when the feature was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>A timestamp indicating when the metadata for the feature group was modified. For example, if you add a parameter describing the feature, the timestamp changes to reflect the last time you </p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>A timestamp indicating when the metadata for the feature group was modified. For example, if you add a parameter describing the feature, the timestamp changes to reflect the last time you </p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>The description you added to describe the feature.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p>The description you added to describe the feature.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// Appends an item to `parameters`.
        ///
        /// To override the contents of this collection use [`set_parameters`](Self::set_parameters).
        ///
        /// <p>The key-value pairs that you added to describe the feature.</p>
        pub fn parameters(mut self, input: crate::model::FeatureParameter) -> Self {
            let mut v = self.parameters.unwrap_or_default();
            v.push(input);
            self.parameters = Some(v);
            self
        }
        /// <p>The key-value pairs that you added to describe the feature.</p>
        pub fn set_parameters(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::FeatureParameter>>,
        ) -> Self {
            self.parameters = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeFeatureMetadataOutput`](crate::output::DescribeFeatureMetadataOutput).
        pub fn build(self) -> crate::output::DescribeFeatureMetadataOutput {
            crate::output::DescribeFeatureMetadataOutput {
                feature_group_arn: self.feature_group_arn,
                feature_group_name: self.feature_group_name,
                feature_name: self.feature_name,
                feature_type: self.feature_type,
                creation_time: self.creation_time,
                last_modified_time: self.last_modified_time,
                description: self.description,
                parameters: self.parameters,
            }
        }
    }
}
impl DescribeFeatureMetadataOutput {
    /// Creates a new builder-style object to manufacture [`DescribeFeatureMetadataOutput`](crate::output::DescribeFeatureMetadataOutput).
    pub fn builder() -> crate::output::describe_feature_metadata_output::Builder {
        crate::output::describe_feature_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 DescribeFeatureGroupOutput {
    /// <p>The Amazon Resource Name (ARN) of the <code>FeatureGroup</code>. </p>
    #[doc(hidden)]
    pub feature_group_arn: std::option::Option<std::string::String>,
    /// <p>he name of the <code>FeatureGroup</code>.</p>
    #[doc(hidden)]
    pub feature_group_name: std::option::Option<std::string::String>,
    /// <p>The name of the <code>Feature</code> used for <code>RecordIdentifier</code>, whose value uniquely identifies a record stored in the feature store.</p>
    #[doc(hidden)]
    pub record_identifier_feature_name: std::option::Option<std::string::String>,
    /// <p>The name of the feature that stores the <code>EventTime</code> of a Record in a <code>FeatureGroup</code>.</p>
    /// <p> An <code>EventTime</code> is a point in time when a new event occurs that corresponds to the creation or update of a <code>Record</code> in a <code>FeatureGroup</code>. All <code>Records</code> in the <code>FeatureGroup</code> have a corresponding <code>EventTime</code>.</p>
    #[doc(hidden)]
    pub event_time_feature_name: std::option::Option<std::string::String>,
    /// <p>A list of the <code>Features</code> in the <code>FeatureGroup</code>. Each feature is defined by a <code>FeatureName</code> and <code>FeatureType</code>.</p>
    #[doc(hidden)]
    pub feature_definitions: std::option::Option<std::vec::Vec<crate::model::FeatureDefinition>>,
    /// <p>A timestamp indicating when SageMaker created the <code>FeatureGroup</code>.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>A timestamp indicating when the feature group was last updated.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The configuration for the <code>OnlineStore</code>.</p>
    #[doc(hidden)]
    pub online_store_config: std::option::Option<crate::model::OnlineStoreConfig>,
    /// <p>The configuration of the offline store. It includes the following configurations:</p>
    /// <ul>
    /// <li> <p>Amazon S3 location of the offline store.</p> </li>
    /// <li> <p>Configuration of the Glue data catalog.</p> </li>
    /// <li> <p>Table format of the offline store.</p> </li>
    /// <li> <p>Option to disable the automatic creation of a Glue table for the offline store.</p> </li>
    /// <li> <p>Encryption configuration.</p> </li>
    /// </ul>
    #[doc(hidden)]
    pub offline_store_config: std::option::Option<crate::model::OfflineStoreConfig>,
    /// <p>The Amazon Resource Name (ARN) of the IAM execution role used to persist data into the OfflineStore if an OfflineStoreConfig is provided.</p>
    #[doc(hidden)]
    pub role_arn: std::option::Option<std::string::String>,
    /// <p>The status of the feature group.</p>
    #[doc(hidden)]
    pub feature_group_status: std::option::Option<crate::model::FeatureGroupStatus>,
    /// <p>The status of the <code>OfflineStore</code>. Notifies you if replicating data into the <code>OfflineStore</code> has failed. Returns either: <code>Active</code> or <code>Blocked</code> </p>
    #[doc(hidden)]
    pub offline_store_status: std::option::Option<crate::model::OfflineStoreStatus>,
    /// <p>A value indicating whether the update made to the feature group was successful.</p>
    #[doc(hidden)]
    pub last_update_status: std::option::Option<crate::model::LastUpdateStatus>,
    /// <p>The reason that the <code>FeatureGroup</code> failed to be replicated in the <code>OfflineStore</code>. This is failure can occur because:</p>
    /// <ul>
    /// <li> <p>The <code>FeatureGroup</code> could not be created in the <code>OfflineStore</code>.</p> </li>
    /// <li> <p>The <code>FeatureGroup</code> could not be deleted from the <code>OfflineStore</code>.</p> </li>
    /// </ul>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>A free form description of the feature group.</p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p>A token to resume pagination of the list of <code>Features</code> (<code>FeatureDefinitions</code>).</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
    /// <p>The size of the <code>OnlineStore</code> in bytes.</p>
    #[doc(hidden)]
    pub online_store_total_size_bytes: std::option::Option<i64>,
}
impl DescribeFeatureGroupOutput {
    /// <p>The Amazon Resource Name (ARN) of the <code>FeatureGroup</code>. </p>
    pub fn feature_group_arn(&self) -> std::option::Option<&str> {
        self.feature_group_arn.as_deref()
    }
    /// <p>he name of the <code>FeatureGroup</code>.</p>
    pub fn feature_group_name(&self) -> std::option::Option<&str> {
        self.feature_group_name.as_deref()
    }
    /// <p>The name of the <code>Feature</code> used for <code>RecordIdentifier</code>, whose value uniquely identifies a record stored in the feature store.</p>
    pub fn record_identifier_feature_name(&self) -> std::option::Option<&str> {
        self.record_identifier_feature_name.as_deref()
    }
    /// <p>The name of the feature that stores the <code>EventTime</code> of a Record in a <code>FeatureGroup</code>.</p>
    /// <p> An <code>EventTime</code> is a point in time when a new event occurs that corresponds to the creation or update of a <code>Record</code> in a <code>FeatureGroup</code>. All <code>Records</code> in the <code>FeatureGroup</code> have a corresponding <code>EventTime</code>.</p>
    pub fn event_time_feature_name(&self) -> std::option::Option<&str> {
        self.event_time_feature_name.as_deref()
    }
    /// <p>A list of the <code>Features</code> in the <code>FeatureGroup</code>. Each feature is defined by a <code>FeatureName</code> and <code>FeatureType</code>.</p>
    pub fn feature_definitions(&self) -> std::option::Option<&[crate::model::FeatureDefinition]> {
        self.feature_definitions.as_deref()
    }
    /// <p>A timestamp indicating when SageMaker created the <code>FeatureGroup</code>.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>A timestamp indicating when the feature group was last updated.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>The configuration for the <code>OnlineStore</code>.</p>
    pub fn online_store_config(&self) -> std::option::Option<&crate::model::OnlineStoreConfig> {
        self.online_store_config.as_ref()
    }
    /// <p>The configuration of the offline store. It includes the following configurations:</p>
    /// <ul>
    /// <li> <p>Amazon S3 location of the offline store.</p> </li>
    /// <li> <p>Configuration of the Glue data catalog.</p> </li>
    /// <li> <p>Table format of the offline store.</p> </li>
    /// <li> <p>Option to disable the automatic creation of a Glue table for the offline store.</p> </li>
    /// <li> <p>Encryption configuration.</p> </li>
    /// </ul>
    pub fn offline_store_config(&self) -> std::option::Option<&crate::model::OfflineStoreConfig> {
        self.offline_store_config.as_ref()
    }
    /// <p>The Amazon Resource Name (ARN) of the IAM execution role used to persist data into the OfflineStore if an OfflineStoreConfig is provided.</p>
    pub fn role_arn(&self) -> std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    /// <p>The status of the feature group.</p>
    pub fn feature_group_status(&self) -> std::option::Option<&crate::model::FeatureGroupStatus> {
        self.feature_group_status.as_ref()
    }
    /// <p>The status of the <code>OfflineStore</code>. Notifies you if replicating data into the <code>OfflineStore</code> has failed. Returns either: <code>Active</code> or <code>Blocked</code> </p>
    pub fn offline_store_status(&self) -> std::option::Option<&crate::model::OfflineStoreStatus> {
        self.offline_store_status.as_ref()
    }
    /// <p>A value indicating whether the update made to the feature group was successful.</p>
    pub fn last_update_status(&self) -> std::option::Option<&crate::model::LastUpdateStatus> {
        self.last_update_status.as_ref()
    }
    /// <p>The reason that the <code>FeatureGroup</code> failed to be replicated in the <code>OfflineStore</code>. This is failure can occur because:</p>
    /// <ul>
    /// <li> <p>The <code>FeatureGroup</code> could not be created in the <code>OfflineStore</code>.</p> </li>
    /// <li> <p>The <code>FeatureGroup</code> could not be deleted from the <code>OfflineStore</code>.</p> </li>
    /// </ul>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>A free form description of the feature group.</p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>A token to resume pagination of the list of <code>Features</code> (<code>FeatureDefinitions</code>).</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
    /// <p>The size of the <code>OnlineStore</code> in bytes.</p>
    pub fn online_store_total_size_bytes(&self) -> std::option::Option<i64> {
        self.online_store_total_size_bytes
    }
}
/// See [`DescribeFeatureGroupOutput`](crate::output::DescribeFeatureGroupOutput).
pub mod describe_feature_group_output {

    /// A builder for [`DescribeFeatureGroupOutput`](crate::output::DescribeFeatureGroupOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) feature_group_arn: std::option::Option<std::string::String>,
        pub(crate) feature_group_name: std::option::Option<std::string::String>,
        pub(crate) record_identifier_feature_name: std::option::Option<std::string::String>,
        pub(crate) event_time_feature_name: std::option::Option<std::string::String>,
        pub(crate) feature_definitions:
            std::option::Option<std::vec::Vec<crate::model::FeatureDefinition>>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) online_store_config: std::option::Option<crate::model::OnlineStoreConfig>,
        pub(crate) offline_store_config: std::option::Option<crate::model::OfflineStoreConfig>,
        pub(crate) role_arn: std::option::Option<std::string::String>,
        pub(crate) feature_group_status: std::option::Option<crate::model::FeatureGroupStatus>,
        pub(crate) offline_store_status: std::option::Option<crate::model::OfflineStoreStatus>,
        pub(crate) last_update_status: std::option::Option<crate::model::LastUpdateStatus>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) next_token: std::option::Option<std::string::String>,
        pub(crate) online_store_total_size_bytes: std::option::Option<i64>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the <code>FeatureGroup</code>. </p>
        pub fn feature_group_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.feature_group_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the <code>FeatureGroup</code>. </p>
        pub fn set_feature_group_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.feature_group_arn = input;
            self
        }
        /// <p>he name of the <code>FeatureGroup</code>.</p>
        pub fn feature_group_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.feature_group_name = Some(input.into());
            self
        }
        /// <p>he name of the <code>FeatureGroup</code>.</p>
        pub fn set_feature_group_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.feature_group_name = input;
            self
        }
        /// <p>The name of the <code>Feature</code> used for <code>RecordIdentifier</code>, whose value uniquely identifies a record stored in the feature store.</p>
        pub fn record_identifier_feature_name(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.record_identifier_feature_name = Some(input.into());
            self
        }
        /// <p>The name of the <code>Feature</code> used for <code>RecordIdentifier</code>, whose value uniquely identifies a record stored in the feature store.</p>
        pub fn set_record_identifier_feature_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.record_identifier_feature_name = input;
            self
        }
        /// <p>The name of the feature that stores the <code>EventTime</code> of a Record in a <code>FeatureGroup</code>.</p>
        /// <p> An <code>EventTime</code> is a point in time when a new event occurs that corresponds to the creation or update of a <code>Record</code> in a <code>FeatureGroup</code>. All <code>Records</code> in the <code>FeatureGroup</code> have a corresponding <code>EventTime</code>.</p>
        pub fn event_time_feature_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.event_time_feature_name = Some(input.into());
            self
        }
        /// <p>The name of the feature that stores the <code>EventTime</code> of a Record in a <code>FeatureGroup</code>.</p>
        /// <p> An <code>EventTime</code> is a point in time when a new event occurs that corresponds to the creation or update of a <code>Record</code> in a <code>FeatureGroup</code>. All <code>Records</code> in the <code>FeatureGroup</code> have a corresponding <code>EventTime</code>.</p>
        pub fn set_event_time_feature_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.event_time_feature_name = input;
            self
        }
        /// Appends an item to `feature_definitions`.
        ///
        /// To override the contents of this collection use [`set_feature_definitions`](Self::set_feature_definitions).
        ///
        /// <p>A list of the <code>Features</code> in the <code>FeatureGroup</code>. Each feature is defined by a <code>FeatureName</code> and <code>FeatureType</code>.</p>
        pub fn feature_definitions(mut self, input: crate::model::FeatureDefinition) -> Self {
            let mut v = self.feature_definitions.unwrap_or_default();
            v.push(input);
            self.feature_definitions = Some(v);
            self
        }
        /// <p>A list of the <code>Features</code> in the <code>FeatureGroup</code>. Each feature is defined by a <code>FeatureName</code> and <code>FeatureType</code>.</p>
        pub fn set_feature_definitions(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::FeatureDefinition>>,
        ) -> Self {
            self.feature_definitions = input;
            self
        }
        /// <p>A timestamp indicating when SageMaker created the <code>FeatureGroup</code>.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>A timestamp indicating when SageMaker created the <code>FeatureGroup</code>.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>A timestamp indicating when the feature group was last updated.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>A timestamp indicating when the feature group was last updated.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>The configuration for the <code>OnlineStore</code>.</p>
        pub fn online_store_config(mut self, input: crate::model::OnlineStoreConfig) -> Self {
            self.online_store_config = Some(input);
            self
        }
        /// <p>The configuration for the <code>OnlineStore</code>.</p>
        pub fn set_online_store_config(
            mut self,
            input: std::option::Option<crate::model::OnlineStoreConfig>,
        ) -> Self {
            self.online_store_config = input;
            self
        }
        /// <p>The configuration of the offline store. It includes the following configurations:</p>
        /// <ul>
        /// <li> <p>Amazon S3 location of the offline store.</p> </li>
        /// <li> <p>Configuration of the Glue data catalog.</p> </li>
        /// <li> <p>Table format of the offline store.</p> </li>
        /// <li> <p>Option to disable the automatic creation of a Glue table for the offline store.</p> </li>
        /// <li> <p>Encryption configuration.</p> </li>
        /// </ul>
        pub fn offline_store_config(mut self, input: crate::model::OfflineStoreConfig) -> Self {
            self.offline_store_config = Some(input);
            self
        }
        /// <p>The configuration of the offline store. It includes the following configurations:</p>
        /// <ul>
        /// <li> <p>Amazon S3 location of the offline store.</p> </li>
        /// <li> <p>Configuration of the Glue data catalog.</p> </li>
        /// <li> <p>Table format of the offline store.</p> </li>
        /// <li> <p>Option to disable the automatic creation of a Glue table for the offline store.</p> </li>
        /// <li> <p>Encryption configuration.</p> </li>
        /// </ul>
        pub fn set_offline_store_config(
            mut self,
            input: std::option::Option<crate::model::OfflineStoreConfig>,
        ) -> Self {
            self.offline_store_config = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the IAM execution role used to persist data into the OfflineStore if an OfflineStoreConfig is provided.</p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.role_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the IAM execution role used to persist data into the OfflineStore if an OfflineStoreConfig is provided.</p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.role_arn = input;
            self
        }
        /// <p>The status of the feature group.</p>
        pub fn feature_group_status(mut self, input: crate::model::FeatureGroupStatus) -> Self {
            self.feature_group_status = Some(input);
            self
        }
        /// <p>The status of the feature group.</p>
        pub fn set_feature_group_status(
            mut self,
            input: std::option::Option<crate::model::FeatureGroupStatus>,
        ) -> Self {
            self.feature_group_status = input;
            self
        }
        /// <p>The status of the <code>OfflineStore</code>. Notifies you if replicating data into the <code>OfflineStore</code> has failed. Returns either: <code>Active</code> or <code>Blocked</code> </p>
        pub fn offline_store_status(mut self, input: crate::model::OfflineStoreStatus) -> Self {
            self.offline_store_status = Some(input);
            self
        }
        /// <p>The status of the <code>OfflineStore</code>. Notifies you if replicating data into the <code>OfflineStore</code> has failed. Returns either: <code>Active</code> or <code>Blocked</code> </p>
        pub fn set_offline_store_status(
            mut self,
            input: std::option::Option<crate::model::OfflineStoreStatus>,
        ) -> Self {
            self.offline_store_status = input;
            self
        }
        /// <p>A value indicating whether the update made to the feature group was successful.</p>
        pub fn last_update_status(mut self, input: crate::model::LastUpdateStatus) -> Self {
            self.last_update_status = Some(input);
            self
        }
        /// <p>A value indicating whether the update made to the feature group was successful.</p>
        pub fn set_last_update_status(
            mut self,
            input: std::option::Option<crate::model::LastUpdateStatus>,
        ) -> Self {
            self.last_update_status = input;
            self
        }
        /// <p>The reason that the <code>FeatureGroup</code> failed to be replicated in the <code>OfflineStore</code>. This is failure can occur because:</p>
        /// <ul>
        /// <li> <p>The <code>FeatureGroup</code> could not be created in the <code>OfflineStore</code>.</p> </li>
        /// <li> <p>The <code>FeatureGroup</code> could not be deleted from the <code>OfflineStore</code>.</p> </li>
        /// </ul>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>The reason that the <code>FeatureGroup</code> failed to be replicated in the <code>OfflineStore</code>. This is failure can occur because:</p>
        /// <ul>
        /// <li> <p>The <code>FeatureGroup</code> could not be created in the <code>OfflineStore</code>.</p> </li>
        /// <li> <p>The <code>FeatureGroup</code> could not be deleted from the <code>OfflineStore</code>.</p> </li>
        /// </ul>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// <p>A free form description of the feature group.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p>A free form description of the feature group.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// <p>A token to resume pagination of the list of <code>Features</code> (<code>FeatureDefinitions</code>).</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 resume pagination of the list of <code>Features</code> (<code>FeatureDefinitions</code>).</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// <p>The size of the <code>OnlineStore</code> in bytes.</p>
        pub fn online_store_total_size_bytes(mut self, input: i64) -> Self {
            self.online_store_total_size_bytes = Some(input);
            self
        }
        /// <p>The size of the <code>OnlineStore</code> in bytes.</p>
        pub fn set_online_store_total_size_bytes(
            mut self,
            input: std::option::Option<i64>,
        ) -> Self {
            self.online_store_total_size_bytes = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeFeatureGroupOutput`](crate::output::DescribeFeatureGroupOutput).
        pub fn build(self) -> crate::output::DescribeFeatureGroupOutput {
            crate::output::DescribeFeatureGroupOutput {
                feature_group_arn: self.feature_group_arn,
                feature_group_name: self.feature_group_name,
                record_identifier_feature_name: self.record_identifier_feature_name,
                event_time_feature_name: self.event_time_feature_name,
                feature_definitions: self.feature_definitions,
                creation_time: self.creation_time,
                last_modified_time: self.last_modified_time,
                online_store_config: self.online_store_config,
                offline_store_config: self.offline_store_config,
                role_arn: self.role_arn,
                feature_group_status: self.feature_group_status,
                offline_store_status: self.offline_store_status,
                last_update_status: self.last_update_status,
                failure_reason: self.failure_reason,
                description: self.description,
                next_token: self.next_token,
                online_store_total_size_bytes: self.online_store_total_size_bytes,
            }
        }
    }
}
impl DescribeFeatureGroupOutput {
    /// Creates a new builder-style object to manufacture [`DescribeFeatureGroupOutput`](crate::output::DescribeFeatureGroupOutput).
    pub fn builder() -> crate::output::describe_feature_group_output::Builder {
        crate::output::describe_feature_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 DescribeExperimentOutput {
    /// <p>The name of the experiment.</p>
    #[doc(hidden)]
    pub experiment_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the experiment.</p>
    #[doc(hidden)]
    pub experiment_arn: std::option::Option<std::string::String>,
    /// <p>The name of the experiment as displayed. If <code>DisplayName</code> isn't specified, <code>ExperimentName</code> is displayed.</p>
    #[doc(hidden)]
    pub display_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the source and, optionally, the type.</p>
    #[doc(hidden)]
    pub source: std::option::Option<crate::model::ExperimentSource>,
    /// <p>The description of the experiment.</p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p>When the experiment was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Who created the experiment.</p>
    #[doc(hidden)]
    pub created_by: std::option::Option<crate::model::UserContext>,
    /// <p>When the experiment was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Who last modified the experiment.</p>
    #[doc(hidden)]
    pub last_modified_by: std::option::Option<crate::model::UserContext>,
}
impl DescribeExperimentOutput {
    /// <p>The name of the experiment.</p>
    pub fn experiment_name(&self) -> std::option::Option<&str> {
        self.experiment_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the experiment.</p>
    pub fn experiment_arn(&self) -> std::option::Option<&str> {
        self.experiment_arn.as_deref()
    }
    /// <p>The name of the experiment as displayed. If <code>DisplayName</code> isn't specified, <code>ExperimentName</code> is displayed.</p>
    pub fn display_name(&self) -> std::option::Option<&str> {
        self.display_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the source and, optionally, the type.</p>
    pub fn source(&self) -> std::option::Option<&crate::model::ExperimentSource> {
        self.source.as_ref()
    }
    /// <p>The description of the experiment.</p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>When the experiment was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>Who created the experiment.</p>
    pub fn created_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.created_by.as_ref()
    }
    /// <p>When the experiment was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>Who last modified the experiment.</p>
    pub fn last_modified_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.last_modified_by.as_ref()
    }
}
/// See [`DescribeExperimentOutput`](crate::output::DescribeExperimentOutput).
pub mod describe_experiment_output {

    /// A builder for [`DescribeExperimentOutput`](crate::output::DescribeExperimentOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) experiment_name: std::option::Option<std::string::String>,
        pub(crate) experiment_arn: std::option::Option<std::string::String>,
        pub(crate) display_name: std::option::Option<std::string::String>,
        pub(crate) source: std::option::Option<crate::model::ExperimentSource>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) created_by: std::option::Option<crate::model::UserContext>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_by: std::option::Option<crate::model::UserContext>,
    }
    impl Builder {
        /// <p>The name of the experiment.</p>
        pub fn experiment_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.experiment_name = Some(input.into());
            self
        }
        /// <p>The name of the experiment.</p>
        pub fn set_experiment_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.experiment_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the experiment.</p>
        pub fn experiment_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.experiment_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the experiment.</p>
        pub fn set_experiment_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.experiment_arn = input;
            self
        }
        /// <p>The name of the experiment as displayed. If <code>DisplayName</code> isn't specified, <code>ExperimentName</code> is displayed.</p>
        pub fn display_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.display_name = Some(input.into());
            self
        }
        /// <p>The name of the experiment as displayed. If <code>DisplayName</code> isn't specified, <code>ExperimentName</code> is displayed.</p>
        pub fn set_display_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.display_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the source and, optionally, the type.</p>
        pub fn source(mut self, input: crate::model::ExperimentSource) -> Self {
            self.source = Some(input);
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the source and, optionally, the type.</p>
        pub fn set_source(
            mut self,
            input: std::option::Option<crate::model::ExperimentSource>,
        ) -> Self {
            self.source = input;
            self
        }
        /// <p>The description of the experiment.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p>The description of the experiment.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// <p>When the experiment was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>When the experiment was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>Who created the experiment.</p>
        pub fn created_by(mut self, input: crate::model::UserContext) -> Self {
            self.created_by = Some(input);
            self
        }
        /// <p>Who created the experiment.</p>
        pub fn set_created_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.created_by = input;
            self
        }
        /// <p>When the experiment was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>When the experiment was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>Who last modified the experiment.</p>
        pub fn last_modified_by(mut self, input: crate::model::UserContext) -> Self {
            self.last_modified_by = Some(input);
            self
        }
        /// <p>Who last modified the experiment.</p>
        pub fn set_last_modified_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.last_modified_by = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeExperimentOutput`](crate::output::DescribeExperimentOutput).
        pub fn build(self) -> crate::output::DescribeExperimentOutput {
            crate::output::DescribeExperimentOutput {
                experiment_name: self.experiment_name,
                experiment_arn: self.experiment_arn,
                display_name: self.display_name,
                source: self.source,
                description: self.description,
                creation_time: self.creation_time,
                created_by: self.created_by,
                last_modified_time: self.last_modified_time,
                last_modified_by: self.last_modified_by,
            }
        }
    }
}
impl DescribeExperimentOutput {
    /// Creates a new builder-style object to manufacture [`DescribeExperimentOutput`](crate::output::DescribeExperimentOutput).
    pub fn builder() -> crate::output::describe_experiment_output::Builder {
        crate::output::describe_experiment_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeEndpointConfigOutput {
    /// <p>Name of the SageMaker endpoint configuration.</p>
    #[doc(hidden)]
    pub endpoint_config_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the endpoint configuration.</p>
    #[doc(hidden)]
    pub endpoint_config_arn: std::option::Option<std::string::String>,
    /// <p>An array of <code>ProductionVariant</code> objects, one for each model that you want to host at this endpoint.</p>
    #[doc(hidden)]
    pub production_variants: std::option::Option<std::vec::Vec<crate::model::ProductionVariant>>,
    /// <p>Configuration to control how SageMaker captures inference data.</p>
    #[doc(hidden)]
    pub data_capture_config: std::option::Option<crate::model::DataCaptureConfig>,
    /// <p>Amazon Web Services KMS key ID Amazon SageMaker uses to encrypt data when storing it on the ML storage volume attached to the instance.</p>
    #[doc(hidden)]
    pub kms_key_id: std::option::Option<std::string::String>,
    /// <p>A timestamp that shows when the endpoint configuration was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Returns the description of an endpoint configuration created using the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html"> <code>CreateEndpointConfig</code> </a> API.</p>
    #[doc(hidden)]
    pub async_inference_config: std::option::Option<crate::model::AsyncInferenceConfig>,
    /// <p>The configuration parameters for an explainer.</p>
    #[doc(hidden)]
    pub explainer_config: std::option::Option<crate::model::ExplainerConfig>,
    /// <p>An array of <code>ProductionVariant</code> objects, one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on <code>ProductionVariants</code>.</p>
    #[doc(hidden)]
    pub shadow_production_variants:
        std::option::Option<std::vec::Vec<crate::model::ProductionVariant>>,
}
impl DescribeEndpointConfigOutput {
    /// <p>Name of the SageMaker endpoint configuration.</p>
    pub fn endpoint_config_name(&self) -> std::option::Option<&str> {
        self.endpoint_config_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the endpoint configuration.</p>
    pub fn endpoint_config_arn(&self) -> std::option::Option<&str> {
        self.endpoint_config_arn.as_deref()
    }
    /// <p>An array of <code>ProductionVariant</code> objects, one for each model that you want to host at this endpoint.</p>
    pub fn production_variants(&self) -> std::option::Option<&[crate::model::ProductionVariant]> {
        self.production_variants.as_deref()
    }
    /// <p>Configuration to control how SageMaker captures inference data.</p>
    pub fn data_capture_config(&self) -> std::option::Option<&crate::model::DataCaptureConfig> {
        self.data_capture_config.as_ref()
    }
    /// <p>Amazon Web Services KMS key ID Amazon SageMaker uses to encrypt data when storing it on the ML storage volume attached to the instance.</p>
    pub fn kms_key_id(&self) -> std::option::Option<&str> {
        self.kms_key_id.as_deref()
    }
    /// <p>A timestamp that shows when the endpoint configuration was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>Returns the description of an endpoint configuration created using the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html"> <code>CreateEndpointConfig</code> </a> API.</p>
    pub fn async_inference_config(
        &self,
    ) -> std::option::Option<&crate::model::AsyncInferenceConfig> {
        self.async_inference_config.as_ref()
    }
    /// <p>The configuration parameters for an explainer.</p>
    pub fn explainer_config(&self) -> std::option::Option<&crate::model::ExplainerConfig> {
        self.explainer_config.as_ref()
    }
    /// <p>An array of <code>ProductionVariant</code> objects, one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on <code>ProductionVariants</code>.</p>
    pub fn shadow_production_variants(
        &self,
    ) -> std::option::Option<&[crate::model::ProductionVariant]> {
        self.shadow_production_variants.as_deref()
    }
}
/// See [`DescribeEndpointConfigOutput`](crate::output::DescribeEndpointConfigOutput).
pub mod describe_endpoint_config_output {

    /// A builder for [`DescribeEndpointConfigOutput`](crate::output::DescribeEndpointConfigOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) endpoint_config_name: std::option::Option<std::string::String>,
        pub(crate) endpoint_config_arn: std::option::Option<std::string::String>,
        pub(crate) production_variants:
            std::option::Option<std::vec::Vec<crate::model::ProductionVariant>>,
        pub(crate) data_capture_config: std::option::Option<crate::model::DataCaptureConfig>,
        pub(crate) kms_key_id: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) async_inference_config: std::option::Option<crate::model::AsyncInferenceConfig>,
        pub(crate) explainer_config: std::option::Option<crate::model::ExplainerConfig>,
        pub(crate) shadow_production_variants:
            std::option::Option<std::vec::Vec<crate::model::ProductionVariant>>,
    }
    impl Builder {
        /// <p>Name of the SageMaker endpoint configuration.</p>
        pub fn endpoint_config_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.endpoint_config_name = Some(input.into());
            self
        }
        /// <p>Name of the SageMaker endpoint configuration.</p>
        pub fn set_endpoint_config_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.endpoint_config_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the endpoint configuration.</p>
        pub fn endpoint_config_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.endpoint_config_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the endpoint configuration.</p>
        pub fn set_endpoint_config_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.endpoint_config_arn = input;
            self
        }
        /// Appends an item to `production_variants`.
        ///
        /// To override the contents of this collection use [`set_production_variants`](Self::set_production_variants).
        ///
        /// <p>An array of <code>ProductionVariant</code> objects, one for each model that you want to host at this endpoint.</p>
        pub fn production_variants(mut self, input: crate::model::ProductionVariant) -> Self {
            let mut v = self.production_variants.unwrap_or_default();
            v.push(input);
            self.production_variants = Some(v);
            self
        }
        /// <p>An array of <code>ProductionVariant</code> objects, one for each model that you want to host at this endpoint.</p>
        pub fn set_production_variants(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ProductionVariant>>,
        ) -> Self {
            self.production_variants = input;
            self
        }
        /// <p>Configuration to control how SageMaker captures inference data.</p>
        pub fn data_capture_config(mut self, input: crate::model::DataCaptureConfig) -> Self {
            self.data_capture_config = Some(input);
            self
        }
        /// <p>Configuration to control how SageMaker captures inference data.</p>
        pub fn set_data_capture_config(
            mut self,
            input: std::option::Option<crate::model::DataCaptureConfig>,
        ) -> Self {
            self.data_capture_config = input;
            self
        }
        /// <p>Amazon Web Services KMS key ID Amazon SageMaker uses to encrypt data when storing it on the ML storage volume attached to the instance.</p>
        pub fn kms_key_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.kms_key_id = Some(input.into());
            self
        }
        /// <p>Amazon Web Services KMS key ID Amazon SageMaker uses to encrypt data when storing it on the ML storage volume attached to the instance.</p>
        pub fn set_kms_key_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.kms_key_id = input;
            self
        }
        /// <p>A timestamp that shows when the endpoint configuration was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>A timestamp that shows when the endpoint configuration was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>Returns the description of an endpoint configuration created using the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html"> <code>CreateEndpointConfig</code> </a> API.</p>
        pub fn async_inference_config(mut self, input: crate::model::AsyncInferenceConfig) -> Self {
            self.async_inference_config = Some(input);
            self
        }
        /// <p>Returns the description of an endpoint configuration created using the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html"> <code>CreateEndpointConfig</code> </a> API.</p>
        pub fn set_async_inference_config(
            mut self,
            input: std::option::Option<crate::model::AsyncInferenceConfig>,
        ) -> Self {
            self.async_inference_config = input;
            self
        }
        /// <p>The configuration parameters for an explainer.</p>
        pub fn explainer_config(mut self, input: crate::model::ExplainerConfig) -> Self {
            self.explainer_config = Some(input);
            self
        }
        /// <p>The configuration parameters for an explainer.</p>
        pub fn set_explainer_config(
            mut self,
            input: std::option::Option<crate::model::ExplainerConfig>,
        ) -> Self {
            self.explainer_config = input;
            self
        }
        /// Appends an item to `shadow_production_variants`.
        ///
        /// To override the contents of this collection use [`set_shadow_production_variants`](Self::set_shadow_production_variants).
        ///
        /// <p>An array of <code>ProductionVariant</code> objects, one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on <code>ProductionVariants</code>.</p>
        pub fn shadow_production_variants(
            mut self,
            input: crate::model::ProductionVariant,
        ) -> Self {
            let mut v = self.shadow_production_variants.unwrap_or_default();
            v.push(input);
            self.shadow_production_variants = Some(v);
            self
        }
        /// <p>An array of <code>ProductionVariant</code> objects, one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on <code>ProductionVariants</code>.</p>
        pub fn set_shadow_production_variants(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ProductionVariant>>,
        ) -> Self {
            self.shadow_production_variants = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeEndpointConfigOutput`](crate::output::DescribeEndpointConfigOutput).
        pub fn build(self) -> crate::output::DescribeEndpointConfigOutput {
            crate::output::DescribeEndpointConfigOutput {
                endpoint_config_name: self.endpoint_config_name,
                endpoint_config_arn: self.endpoint_config_arn,
                production_variants: self.production_variants,
                data_capture_config: self.data_capture_config,
                kms_key_id: self.kms_key_id,
                creation_time: self.creation_time,
                async_inference_config: self.async_inference_config,
                explainer_config: self.explainer_config,
                shadow_production_variants: self.shadow_production_variants,
            }
        }
    }
}
impl DescribeEndpointConfigOutput {
    /// Creates a new builder-style object to manufacture [`DescribeEndpointConfigOutput`](crate::output::DescribeEndpointConfigOutput).
    pub fn builder() -> crate::output::describe_endpoint_config_output::Builder {
        crate::output::describe_endpoint_config_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeEndpointOutput {
    /// <p>Name of the endpoint.</p>
    #[doc(hidden)]
    pub endpoint_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the endpoint.</p>
    #[doc(hidden)]
    pub endpoint_arn: std::option::Option<std::string::String>,
    /// <p>The name of the endpoint configuration associated with this endpoint.</p>
    #[doc(hidden)]
    pub endpoint_config_name: std::option::Option<std::string::String>,
    /// <p>An array of <code>ProductionVariantSummary</code> objects, one for each model hosted behind this endpoint.</p>
    #[doc(hidden)]
    pub production_variants:
        std::option::Option<std::vec::Vec<crate::model::ProductionVariantSummary>>,
    /// <p>The currently active data capture configuration used by your Endpoint.</p>
    #[doc(hidden)]
    pub data_capture_config: std::option::Option<crate::model::DataCaptureConfigSummary>,
    /// <p>The status of the endpoint.</p>
    /// <ul>
    /// <li> <p> <code>OutOfService</code>: Endpoint is not available to take incoming requests.</p> </li>
    /// <li> <p> <code>Creating</code>: <code>CreateEndpoint</code> is executing.</p> </li>
    /// <li> <p> <code>Updating</code>: <code>UpdateEndpoint</code> or <code>UpdateEndpointWeightsAndCapacities</code> is executing.</p> </li>
    /// <li> <p> <code>SystemUpdating</code>: Endpoint is undergoing maintenance and cannot be updated or deleted or re-scaled until it has completed. This maintenance operation does not change any customer-specified values such as VPC config, KMS encryption, model, instance type, or instance count.</p> </li>
    /// <li> <p> <code>RollingBack</code>: Endpoint fails to scale up or down or change its variant weight and is in the process of rolling back to its previous configuration. Once the rollback completes, endpoint returns to an <code>InService</code> status. This transitional status only applies to an endpoint that has autoscaling enabled and is undergoing variant weight or capacity changes as part of an <code>UpdateEndpointWeightsAndCapacities</code> call or when the <code>UpdateEndpointWeightsAndCapacities</code> operation is called explicitly.</p> </li>
    /// <li> <p> <code>InService</code>: Endpoint is available to process incoming requests.</p> </li>
    /// <li> <p> <code>Deleting</code>: <code>DeleteEndpoint</code> is executing.</p> </li>
    /// <li> <p> <code>Failed</code>: Endpoint could not be created, updated, or re-scaled. Use <code>DescribeEndpointOutput$FailureReason</code> for information about the failure. <code>DeleteEndpoint</code> is the only operation that can be performed on a failed endpoint.</p> </li>
    /// </ul>
    #[doc(hidden)]
    pub endpoint_status: std::option::Option<crate::model::EndpointStatus>,
    /// <p>If the status of the endpoint is <code>Failed</code>, the reason why it failed. </p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>A timestamp that shows when the endpoint was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>A timestamp that shows when the endpoint was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The most recent deployment configuration for the endpoint.</p>
    #[doc(hidden)]
    pub last_deployment_config: std::option::Option<crate::model::DeploymentConfig>,
    /// <p>Returns the description of an endpoint configuration created using the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html"> <code>CreateEndpointConfig</code> </a> API.</p>
    #[doc(hidden)]
    pub async_inference_config: std::option::Option<crate::model::AsyncInferenceConfig>,
    /// <p>Returns the summary of an in-progress deployment. This field is only returned when the endpoint is creating or updating with a new endpoint configuration.</p>
    #[doc(hidden)]
    pub pending_deployment_summary: std::option::Option<crate::model::PendingDeploymentSummary>,
    /// <p>The configuration parameters for an explainer.</p>
    #[doc(hidden)]
    pub explainer_config: std::option::Option<crate::model::ExplainerConfig>,
    /// <p>An array of <code>ProductionVariantSummary</code> objects, one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on <code>ProductionVariants</code>.</p>
    #[doc(hidden)]
    pub shadow_production_variants:
        std::option::Option<std::vec::Vec<crate::model::ProductionVariantSummary>>,
}
impl DescribeEndpointOutput {
    /// <p>Name of the endpoint.</p>
    pub fn endpoint_name(&self) -> std::option::Option<&str> {
        self.endpoint_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the endpoint.</p>
    pub fn endpoint_arn(&self) -> std::option::Option<&str> {
        self.endpoint_arn.as_deref()
    }
    /// <p>The name of the endpoint configuration associated with this endpoint.</p>
    pub fn endpoint_config_name(&self) -> std::option::Option<&str> {
        self.endpoint_config_name.as_deref()
    }
    /// <p>An array of <code>ProductionVariantSummary</code> objects, one for each model hosted behind this endpoint.</p>
    pub fn production_variants(
        &self,
    ) -> std::option::Option<&[crate::model::ProductionVariantSummary]> {
        self.production_variants.as_deref()
    }
    /// <p>The currently active data capture configuration used by your Endpoint.</p>
    pub fn data_capture_config(
        &self,
    ) -> std::option::Option<&crate::model::DataCaptureConfigSummary> {
        self.data_capture_config.as_ref()
    }
    /// <p>The status of the endpoint.</p>
    /// <ul>
    /// <li> <p> <code>OutOfService</code>: Endpoint is not available to take incoming requests.</p> </li>
    /// <li> <p> <code>Creating</code>: <code>CreateEndpoint</code> is executing.</p> </li>
    /// <li> <p> <code>Updating</code>: <code>UpdateEndpoint</code> or <code>UpdateEndpointWeightsAndCapacities</code> is executing.</p> </li>
    /// <li> <p> <code>SystemUpdating</code>: Endpoint is undergoing maintenance and cannot be updated or deleted or re-scaled until it has completed. This maintenance operation does not change any customer-specified values such as VPC config, KMS encryption, model, instance type, or instance count.</p> </li>
    /// <li> <p> <code>RollingBack</code>: Endpoint fails to scale up or down or change its variant weight and is in the process of rolling back to its previous configuration. Once the rollback completes, endpoint returns to an <code>InService</code> status. This transitional status only applies to an endpoint that has autoscaling enabled and is undergoing variant weight or capacity changes as part of an <code>UpdateEndpointWeightsAndCapacities</code> call or when the <code>UpdateEndpointWeightsAndCapacities</code> operation is called explicitly.</p> </li>
    /// <li> <p> <code>InService</code>: Endpoint is available to process incoming requests.</p> </li>
    /// <li> <p> <code>Deleting</code>: <code>DeleteEndpoint</code> is executing.</p> </li>
    /// <li> <p> <code>Failed</code>: Endpoint could not be created, updated, or re-scaled. Use <code>DescribeEndpointOutput$FailureReason</code> for information about the failure. <code>DeleteEndpoint</code> is the only operation that can be performed on a failed endpoint.</p> </li>
    /// </ul>
    pub fn endpoint_status(&self) -> std::option::Option<&crate::model::EndpointStatus> {
        self.endpoint_status.as_ref()
    }
    /// <p>If the status of the endpoint is <code>Failed</code>, the reason why it failed. </p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>A timestamp that shows when the endpoint was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>A timestamp that shows when the endpoint was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>The most recent deployment configuration for the endpoint.</p>
    pub fn last_deployment_config(&self) -> std::option::Option<&crate::model::DeploymentConfig> {
        self.last_deployment_config.as_ref()
    }
    /// <p>Returns the description of an endpoint configuration created using the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html"> <code>CreateEndpointConfig</code> </a> API.</p>
    pub fn async_inference_config(
        &self,
    ) -> std::option::Option<&crate::model::AsyncInferenceConfig> {
        self.async_inference_config.as_ref()
    }
    /// <p>Returns the summary of an in-progress deployment. This field is only returned when the endpoint is creating or updating with a new endpoint configuration.</p>
    pub fn pending_deployment_summary(
        &self,
    ) -> std::option::Option<&crate::model::PendingDeploymentSummary> {
        self.pending_deployment_summary.as_ref()
    }
    /// <p>The configuration parameters for an explainer.</p>
    pub fn explainer_config(&self) -> std::option::Option<&crate::model::ExplainerConfig> {
        self.explainer_config.as_ref()
    }
    /// <p>An array of <code>ProductionVariantSummary</code> objects, one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on <code>ProductionVariants</code>.</p>
    pub fn shadow_production_variants(
        &self,
    ) -> std::option::Option<&[crate::model::ProductionVariantSummary]> {
        self.shadow_production_variants.as_deref()
    }
}
/// See [`DescribeEndpointOutput`](crate::output::DescribeEndpointOutput).
pub mod describe_endpoint_output {

    /// A builder for [`DescribeEndpointOutput`](crate::output::DescribeEndpointOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) endpoint_name: std::option::Option<std::string::String>,
        pub(crate) endpoint_arn: std::option::Option<std::string::String>,
        pub(crate) endpoint_config_name: std::option::Option<std::string::String>,
        pub(crate) production_variants:
            std::option::Option<std::vec::Vec<crate::model::ProductionVariantSummary>>,
        pub(crate) data_capture_config: std::option::Option<crate::model::DataCaptureConfigSummary>,
        pub(crate) endpoint_status: std::option::Option<crate::model::EndpointStatus>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_deployment_config: std::option::Option<crate::model::DeploymentConfig>,
        pub(crate) async_inference_config: std::option::Option<crate::model::AsyncInferenceConfig>,
        pub(crate) pending_deployment_summary:
            std::option::Option<crate::model::PendingDeploymentSummary>,
        pub(crate) explainer_config: std::option::Option<crate::model::ExplainerConfig>,
        pub(crate) shadow_production_variants:
            std::option::Option<std::vec::Vec<crate::model::ProductionVariantSummary>>,
    }
    impl Builder {
        /// <p>Name of the endpoint.</p>
        pub fn endpoint_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.endpoint_name = Some(input.into());
            self
        }
        /// <p>Name of the endpoint.</p>
        pub fn set_endpoint_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.endpoint_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the endpoint.</p>
        pub fn endpoint_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.endpoint_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the endpoint.</p>
        pub fn set_endpoint_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.endpoint_arn = input;
            self
        }
        /// <p>The name of the endpoint configuration associated with this endpoint.</p>
        pub fn endpoint_config_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.endpoint_config_name = Some(input.into());
            self
        }
        /// <p>The name of the endpoint configuration associated with this endpoint.</p>
        pub fn set_endpoint_config_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.endpoint_config_name = input;
            self
        }
        /// Appends an item to `production_variants`.
        ///
        /// To override the contents of this collection use [`set_production_variants`](Self::set_production_variants).
        ///
        /// <p>An array of <code>ProductionVariantSummary</code> objects, one for each model hosted behind this endpoint.</p>
        pub fn production_variants(
            mut self,
            input: crate::model::ProductionVariantSummary,
        ) -> Self {
            let mut v = self.production_variants.unwrap_or_default();
            v.push(input);
            self.production_variants = Some(v);
            self
        }
        /// <p>An array of <code>ProductionVariantSummary</code> objects, one for each model hosted behind this endpoint.</p>
        pub fn set_production_variants(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ProductionVariantSummary>>,
        ) -> Self {
            self.production_variants = input;
            self
        }
        /// <p>The currently active data capture configuration used by your Endpoint.</p>
        pub fn data_capture_config(
            mut self,
            input: crate::model::DataCaptureConfigSummary,
        ) -> Self {
            self.data_capture_config = Some(input);
            self
        }
        /// <p>The currently active data capture configuration used by your Endpoint.</p>
        pub fn set_data_capture_config(
            mut self,
            input: std::option::Option<crate::model::DataCaptureConfigSummary>,
        ) -> Self {
            self.data_capture_config = input;
            self
        }
        /// <p>The status of the endpoint.</p>
        /// <ul>
        /// <li> <p> <code>OutOfService</code>: Endpoint is not available to take incoming requests.</p> </li>
        /// <li> <p> <code>Creating</code>: <code>CreateEndpoint</code> is executing.</p> </li>
        /// <li> <p> <code>Updating</code>: <code>UpdateEndpoint</code> or <code>UpdateEndpointWeightsAndCapacities</code> is executing.</p> </li>
        /// <li> <p> <code>SystemUpdating</code>: Endpoint is undergoing maintenance and cannot be updated or deleted or re-scaled until it has completed. This maintenance operation does not change any customer-specified values such as VPC config, KMS encryption, model, instance type, or instance count.</p> </li>
        /// <li> <p> <code>RollingBack</code>: Endpoint fails to scale up or down or change its variant weight and is in the process of rolling back to its previous configuration. Once the rollback completes, endpoint returns to an <code>InService</code> status. This transitional status only applies to an endpoint that has autoscaling enabled and is undergoing variant weight or capacity changes as part of an <code>UpdateEndpointWeightsAndCapacities</code> call or when the <code>UpdateEndpointWeightsAndCapacities</code> operation is called explicitly.</p> </li>
        /// <li> <p> <code>InService</code>: Endpoint is available to process incoming requests.</p> </li>
        /// <li> <p> <code>Deleting</code>: <code>DeleteEndpoint</code> is executing.</p> </li>
        /// <li> <p> <code>Failed</code>: Endpoint could not be created, updated, or re-scaled. Use <code>DescribeEndpointOutput$FailureReason</code> for information about the failure. <code>DeleteEndpoint</code> is the only operation that can be performed on a failed endpoint.</p> </li>
        /// </ul>
        pub fn endpoint_status(mut self, input: crate::model::EndpointStatus) -> Self {
            self.endpoint_status = Some(input);
            self
        }
        /// <p>The status of the endpoint.</p>
        /// <ul>
        /// <li> <p> <code>OutOfService</code>: Endpoint is not available to take incoming requests.</p> </li>
        /// <li> <p> <code>Creating</code>: <code>CreateEndpoint</code> is executing.</p> </li>
        /// <li> <p> <code>Updating</code>: <code>UpdateEndpoint</code> or <code>UpdateEndpointWeightsAndCapacities</code> is executing.</p> </li>
        /// <li> <p> <code>SystemUpdating</code>: Endpoint is undergoing maintenance and cannot be updated or deleted or re-scaled until it has completed. This maintenance operation does not change any customer-specified values such as VPC config, KMS encryption, model, instance type, or instance count.</p> </li>
        /// <li> <p> <code>RollingBack</code>: Endpoint fails to scale up or down or change its variant weight and is in the process of rolling back to its previous configuration. Once the rollback completes, endpoint returns to an <code>InService</code> status. This transitional status only applies to an endpoint that has autoscaling enabled and is undergoing variant weight or capacity changes as part of an <code>UpdateEndpointWeightsAndCapacities</code> call or when the <code>UpdateEndpointWeightsAndCapacities</code> operation is called explicitly.</p> </li>
        /// <li> <p> <code>InService</code>: Endpoint is available to process incoming requests.</p> </li>
        /// <li> <p> <code>Deleting</code>: <code>DeleteEndpoint</code> is executing.</p> </li>
        /// <li> <p> <code>Failed</code>: Endpoint could not be created, updated, or re-scaled. Use <code>DescribeEndpointOutput$FailureReason</code> for information about the failure. <code>DeleteEndpoint</code> is the only operation that can be performed on a failed endpoint.</p> </li>
        /// </ul>
        pub fn set_endpoint_status(
            mut self,
            input: std::option::Option<crate::model::EndpointStatus>,
        ) -> Self {
            self.endpoint_status = input;
            self
        }
        /// <p>If the status of the endpoint is <code>Failed</code>, the reason why it failed. </p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>If the status of the endpoint is <code>Failed</code>, the reason why it failed. </p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// <p>A timestamp that shows when the endpoint was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>A timestamp that shows when the endpoint was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>A timestamp that shows when the endpoint was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>A timestamp that shows when the endpoint was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>The most recent deployment configuration for the endpoint.</p>
        pub fn last_deployment_config(mut self, input: crate::model::DeploymentConfig) -> Self {
            self.last_deployment_config = Some(input);
            self
        }
        /// <p>The most recent deployment configuration for the endpoint.</p>
        pub fn set_last_deployment_config(
            mut self,
            input: std::option::Option<crate::model::DeploymentConfig>,
        ) -> Self {
            self.last_deployment_config = input;
            self
        }
        /// <p>Returns the description of an endpoint configuration created using the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html"> <code>CreateEndpointConfig</code> </a> API.</p>
        pub fn async_inference_config(mut self, input: crate::model::AsyncInferenceConfig) -> Self {
            self.async_inference_config = Some(input);
            self
        }
        /// <p>Returns the description of an endpoint configuration created using the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html"> <code>CreateEndpointConfig</code> </a> API.</p>
        pub fn set_async_inference_config(
            mut self,
            input: std::option::Option<crate::model::AsyncInferenceConfig>,
        ) -> Self {
            self.async_inference_config = input;
            self
        }
        /// <p>Returns the summary of an in-progress deployment. This field is only returned when the endpoint is creating or updating with a new endpoint configuration.</p>
        pub fn pending_deployment_summary(
            mut self,
            input: crate::model::PendingDeploymentSummary,
        ) -> Self {
            self.pending_deployment_summary = Some(input);
            self
        }
        /// <p>Returns the summary of an in-progress deployment. This field is only returned when the endpoint is creating or updating with a new endpoint configuration.</p>
        pub fn set_pending_deployment_summary(
            mut self,
            input: std::option::Option<crate::model::PendingDeploymentSummary>,
        ) -> Self {
            self.pending_deployment_summary = input;
            self
        }
        /// <p>The configuration parameters for an explainer.</p>
        pub fn explainer_config(mut self, input: crate::model::ExplainerConfig) -> Self {
            self.explainer_config = Some(input);
            self
        }
        /// <p>The configuration parameters for an explainer.</p>
        pub fn set_explainer_config(
            mut self,
            input: std::option::Option<crate::model::ExplainerConfig>,
        ) -> Self {
            self.explainer_config = input;
            self
        }
        /// Appends an item to `shadow_production_variants`.
        ///
        /// To override the contents of this collection use [`set_shadow_production_variants`](Self::set_shadow_production_variants).
        ///
        /// <p>An array of <code>ProductionVariantSummary</code> objects, one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on <code>ProductionVariants</code>.</p>
        pub fn shadow_production_variants(
            mut self,
            input: crate::model::ProductionVariantSummary,
        ) -> Self {
            let mut v = self.shadow_production_variants.unwrap_or_default();
            v.push(input);
            self.shadow_production_variants = Some(v);
            self
        }
        /// <p>An array of <code>ProductionVariantSummary</code> objects, one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on <code>ProductionVariants</code>.</p>
        pub fn set_shadow_production_variants(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ProductionVariantSummary>>,
        ) -> Self {
            self.shadow_production_variants = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeEndpointOutput`](crate::output::DescribeEndpointOutput).
        pub fn build(self) -> crate::output::DescribeEndpointOutput {
            crate::output::DescribeEndpointOutput {
                endpoint_name: self.endpoint_name,
                endpoint_arn: self.endpoint_arn,
                endpoint_config_name: self.endpoint_config_name,
                production_variants: self.production_variants,
                data_capture_config: self.data_capture_config,
                endpoint_status: self.endpoint_status,
                failure_reason: self.failure_reason,
                creation_time: self.creation_time,
                last_modified_time: self.last_modified_time,
                last_deployment_config: self.last_deployment_config,
                async_inference_config: self.async_inference_config,
                pending_deployment_summary: self.pending_deployment_summary,
                explainer_config: self.explainer_config,
                shadow_production_variants: self.shadow_production_variants,
            }
        }
    }
}
impl DescribeEndpointOutput {
    /// Creates a new builder-style object to manufacture [`DescribeEndpointOutput`](crate::output::DescribeEndpointOutput).
    pub fn builder() -> crate::output::describe_endpoint_output::Builder {
        crate::output::describe_endpoint_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeEdgePackagingJobOutput {
    /// <p>The Amazon Resource Name (ARN) of the edge packaging job.</p>
    #[doc(hidden)]
    pub edge_packaging_job_arn: std::option::Option<std::string::String>,
    /// <p>The name of the edge packaging job.</p>
    #[doc(hidden)]
    pub edge_packaging_job_name: std::option::Option<std::string::String>,
    /// <p>The name of the SageMaker Neo compilation job that is used to locate model artifacts that are being packaged.</p>
    #[doc(hidden)]
    pub compilation_job_name: std::option::Option<std::string::String>,
    /// <p>The name of the model.</p>
    #[doc(hidden)]
    pub model_name: std::option::Option<std::string::String>,
    /// <p>The version of the model.</p>
    #[doc(hidden)]
    pub model_version: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker to download and upload the model, and to contact Neo.</p>
    #[doc(hidden)]
    pub role_arn: std::option::Option<std::string::String>,
    /// <p>The output configuration for the edge packaging job.</p>
    #[doc(hidden)]
    pub output_config: std::option::Option<crate::model::EdgeOutputConfig>,
    /// <p>The Amazon Web Services KMS key to use when encrypting the EBS volume the job run on.</p>
    #[doc(hidden)]
    pub resource_key: std::option::Option<std::string::String>,
    /// <p>The current status of the packaging job.</p>
    #[doc(hidden)]
    pub edge_packaging_job_status: std::option::Option<crate::model::EdgePackagingJobStatus>,
    /// <p>Returns a message describing the job status and error messages.</p>
    #[doc(hidden)]
    pub edge_packaging_job_status_message: std::option::Option<std::string::String>,
    /// <p>The timestamp of when the packaging job was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The timestamp of when the job was last updated.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The Amazon Simple Storage (S3) URI where model artifacts ares stored.</p>
    #[doc(hidden)]
    pub model_artifact: std::option::Option<std::string::String>,
    /// <p>The signature document of files in the model artifact.</p>
    #[doc(hidden)]
    pub model_signature: std::option::Option<std::string::String>,
    /// <p>The output of a SageMaker Edge Manager deployable resource.</p>
    #[doc(hidden)]
    pub preset_deployment_output: std::option::Option<crate::model::EdgePresetDeploymentOutput>,
}
impl DescribeEdgePackagingJobOutput {
    /// <p>The Amazon Resource Name (ARN) of the edge packaging job.</p>
    pub fn edge_packaging_job_arn(&self) -> std::option::Option<&str> {
        self.edge_packaging_job_arn.as_deref()
    }
    /// <p>The name of the edge packaging job.</p>
    pub fn edge_packaging_job_name(&self) -> std::option::Option<&str> {
        self.edge_packaging_job_name.as_deref()
    }
    /// <p>The name of the SageMaker Neo compilation job that is used to locate model artifacts that are being packaged.</p>
    pub fn compilation_job_name(&self) -> std::option::Option<&str> {
        self.compilation_job_name.as_deref()
    }
    /// <p>The name of the model.</p>
    pub fn model_name(&self) -> std::option::Option<&str> {
        self.model_name.as_deref()
    }
    /// <p>The version of the model.</p>
    pub fn model_version(&self) -> std::option::Option<&str> {
        self.model_version.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker to download and upload the model, and to contact Neo.</p>
    pub fn role_arn(&self) -> std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    /// <p>The output configuration for the edge packaging job.</p>
    pub fn output_config(&self) -> std::option::Option<&crate::model::EdgeOutputConfig> {
        self.output_config.as_ref()
    }
    /// <p>The Amazon Web Services KMS key to use when encrypting the EBS volume the job run on.</p>
    pub fn resource_key(&self) -> std::option::Option<&str> {
        self.resource_key.as_deref()
    }
    /// <p>The current status of the packaging job.</p>
    pub fn edge_packaging_job_status(
        &self,
    ) -> std::option::Option<&crate::model::EdgePackagingJobStatus> {
        self.edge_packaging_job_status.as_ref()
    }
    /// <p>Returns a message describing the job status and error messages.</p>
    pub fn edge_packaging_job_status_message(&self) -> std::option::Option<&str> {
        self.edge_packaging_job_status_message.as_deref()
    }
    /// <p>The timestamp of when the packaging job was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The timestamp of when the job was last updated.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>The Amazon Simple Storage (S3) URI where model artifacts ares stored.</p>
    pub fn model_artifact(&self) -> std::option::Option<&str> {
        self.model_artifact.as_deref()
    }
    /// <p>The signature document of files in the model artifact.</p>
    pub fn model_signature(&self) -> std::option::Option<&str> {
        self.model_signature.as_deref()
    }
    /// <p>The output of a SageMaker Edge Manager deployable resource.</p>
    pub fn preset_deployment_output(
        &self,
    ) -> std::option::Option<&crate::model::EdgePresetDeploymentOutput> {
        self.preset_deployment_output.as_ref()
    }
}
/// See [`DescribeEdgePackagingJobOutput`](crate::output::DescribeEdgePackagingJobOutput).
pub mod describe_edge_packaging_job_output {

    /// A builder for [`DescribeEdgePackagingJobOutput`](crate::output::DescribeEdgePackagingJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) edge_packaging_job_arn: std::option::Option<std::string::String>,
        pub(crate) edge_packaging_job_name: std::option::Option<std::string::String>,
        pub(crate) compilation_job_name: std::option::Option<std::string::String>,
        pub(crate) model_name: std::option::Option<std::string::String>,
        pub(crate) model_version: std::option::Option<std::string::String>,
        pub(crate) role_arn: std::option::Option<std::string::String>,
        pub(crate) output_config: std::option::Option<crate::model::EdgeOutputConfig>,
        pub(crate) resource_key: std::option::Option<std::string::String>,
        pub(crate) edge_packaging_job_status:
            std::option::Option<crate::model::EdgePackagingJobStatus>,
        pub(crate) edge_packaging_job_status_message: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) model_artifact: std::option::Option<std::string::String>,
        pub(crate) model_signature: std::option::Option<std::string::String>,
        pub(crate) preset_deployment_output:
            std::option::Option<crate::model::EdgePresetDeploymentOutput>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the edge packaging job.</p>
        pub fn edge_packaging_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.edge_packaging_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the edge packaging job.</p>
        pub fn set_edge_packaging_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.edge_packaging_job_arn = input;
            self
        }
        /// <p>The name of the edge packaging job.</p>
        pub fn edge_packaging_job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.edge_packaging_job_name = Some(input.into());
            self
        }
        /// <p>The name of the edge packaging job.</p>
        pub fn set_edge_packaging_job_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.edge_packaging_job_name = input;
            self
        }
        /// <p>The name of the SageMaker Neo compilation job that is used to locate model artifacts that are being packaged.</p>
        pub fn compilation_job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.compilation_job_name = Some(input.into());
            self
        }
        /// <p>The name of the SageMaker Neo compilation job that is used to locate model artifacts that are being packaged.</p>
        pub fn set_compilation_job_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.compilation_job_name = input;
            self
        }
        /// <p>The name of the model.</p>
        pub fn model_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_name = Some(input.into());
            self
        }
        /// <p>The name of the model.</p>
        pub fn set_model_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.model_name = input;
            self
        }
        /// <p>The version of the model.</p>
        pub fn model_version(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_version = Some(input.into());
            self
        }
        /// <p>The version of the model.</p>
        pub fn set_model_version(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_version = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker to download and upload the model, and to contact Neo.</p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.role_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker to download and upload the model, and to contact Neo.</p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.role_arn = input;
            self
        }
        /// <p>The output configuration for the edge packaging job.</p>
        pub fn output_config(mut self, input: crate::model::EdgeOutputConfig) -> Self {
            self.output_config = Some(input);
            self
        }
        /// <p>The output configuration for the edge packaging job.</p>
        pub fn set_output_config(
            mut self,
            input: std::option::Option<crate::model::EdgeOutputConfig>,
        ) -> Self {
            self.output_config = input;
            self
        }
        /// <p>The Amazon Web Services KMS key to use when encrypting the EBS volume the job run on.</p>
        pub fn resource_key(mut self, input: impl Into<std::string::String>) -> Self {
            self.resource_key = Some(input.into());
            self
        }
        /// <p>The Amazon Web Services KMS key to use when encrypting the EBS volume the job run on.</p>
        pub fn set_resource_key(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.resource_key = input;
            self
        }
        /// <p>The current status of the packaging job.</p>
        pub fn edge_packaging_job_status(
            mut self,
            input: crate::model::EdgePackagingJobStatus,
        ) -> Self {
            self.edge_packaging_job_status = Some(input);
            self
        }
        /// <p>The current status of the packaging job.</p>
        pub fn set_edge_packaging_job_status(
            mut self,
            input: std::option::Option<crate::model::EdgePackagingJobStatus>,
        ) -> Self {
            self.edge_packaging_job_status = input;
            self
        }
        /// <p>Returns a message describing the job status and error messages.</p>
        pub fn edge_packaging_job_status_message(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.edge_packaging_job_status_message = Some(input.into());
            self
        }
        /// <p>Returns a message describing the job status and error messages.</p>
        pub fn set_edge_packaging_job_status_message(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.edge_packaging_job_status_message = input;
            self
        }
        /// <p>The timestamp of when the packaging job was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The timestamp of when the packaging job was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The timestamp of when the job was last updated.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>The timestamp of when the job was last updated.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>The Amazon Simple Storage (S3) URI where model artifacts ares stored.</p>
        pub fn model_artifact(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_artifact = Some(input.into());
            self
        }
        /// <p>The Amazon Simple Storage (S3) URI where model artifacts ares stored.</p>
        pub fn set_model_artifact(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_artifact = input;
            self
        }
        /// <p>The signature document of files in the model artifact.</p>
        pub fn model_signature(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_signature = Some(input.into());
            self
        }
        /// <p>The signature document of files in the model artifact.</p>
        pub fn set_model_signature(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_signature = input;
            self
        }
        /// <p>The output of a SageMaker Edge Manager deployable resource.</p>
        pub fn preset_deployment_output(
            mut self,
            input: crate::model::EdgePresetDeploymentOutput,
        ) -> Self {
            self.preset_deployment_output = Some(input);
            self
        }
        /// <p>The output of a SageMaker Edge Manager deployable resource.</p>
        pub fn set_preset_deployment_output(
            mut self,
            input: std::option::Option<crate::model::EdgePresetDeploymentOutput>,
        ) -> Self {
            self.preset_deployment_output = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeEdgePackagingJobOutput`](crate::output::DescribeEdgePackagingJobOutput).
        pub fn build(self) -> crate::output::DescribeEdgePackagingJobOutput {
            crate::output::DescribeEdgePackagingJobOutput {
                edge_packaging_job_arn: self.edge_packaging_job_arn,
                edge_packaging_job_name: self.edge_packaging_job_name,
                compilation_job_name: self.compilation_job_name,
                model_name: self.model_name,
                model_version: self.model_version,
                role_arn: self.role_arn,
                output_config: self.output_config,
                resource_key: self.resource_key,
                edge_packaging_job_status: self.edge_packaging_job_status,
                edge_packaging_job_status_message: self.edge_packaging_job_status_message,
                creation_time: self.creation_time,
                last_modified_time: self.last_modified_time,
                model_artifact: self.model_artifact,
                model_signature: self.model_signature,
                preset_deployment_output: self.preset_deployment_output,
            }
        }
    }
}
impl DescribeEdgePackagingJobOutput {
    /// Creates a new builder-style object to manufacture [`DescribeEdgePackagingJobOutput`](crate::output::DescribeEdgePackagingJobOutput).
    pub fn builder() -> crate::output::describe_edge_packaging_job_output::Builder {
        crate::output::describe_edge_packaging_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeEdgeDeploymentPlanOutput {
    /// <p>The ARN of edge deployment plan.</p>
    #[doc(hidden)]
    pub edge_deployment_plan_arn: std::option::Option<std::string::String>,
    /// <p>The name of the edge deployment plan.</p>
    #[doc(hidden)]
    pub edge_deployment_plan_name: std::option::Option<std::string::String>,
    /// <p>List of models associated with the edge deployment plan.</p>
    #[doc(hidden)]
    pub model_configs: std::option::Option<std::vec::Vec<crate::model::EdgeDeploymentModelConfig>>,
    /// <p>The device fleet used for this edge deployment plan.</p>
    #[doc(hidden)]
    pub device_fleet_name: std::option::Option<std::string::String>,
    /// <p>The number of edge devices with the successful deployment.</p>
    #[doc(hidden)]
    pub edge_deployment_success: i32,
    /// <p>The number of edge devices yet to pick up deployment, or in progress.</p>
    #[doc(hidden)]
    pub edge_deployment_pending: i32,
    /// <p>The number of edge devices that failed the deployment.</p>
    #[doc(hidden)]
    pub edge_deployment_failed: i32,
    /// <p>List of stages in the edge deployment plan.</p>
    #[doc(hidden)]
    pub stages: std::option::Option<std::vec::Vec<crate::model::DeploymentStageStatusSummary>>,
    /// <p>Token to use when calling the next set of stages in the edge deployment plan.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
    /// <p>The time when the edge deployment plan was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The time when the edge deployment plan was last updated.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
}
impl DescribeEdgeDeploymentPlanOutput {
    /// <p>The ARN of edge deployment plan.</p>
    pub fn edge_deployment_plan_arn(&self) -> std::option::Option<&str> {
        self.edge_deployment_plan_arn.as_deref()
    }
    /// <p>The name of the edge deployment plan.</p>
    pub fn edge_deployment_plan_name(&self) -> std::option::Option<&str> {
        self.edge_deployment_plan_name.as_deref()
    }
    /// <p>List of models associated with the edge deployment plan.</p>
    pub fn model_configs(&self) -> std::option::Option<&[crate::model::EdgeDeploymentModelConfig]> {
        self.model_configs.as_deref()
    }
    /// <p>The device fleet used for this edge deployment plan.</p>
    pub fn device_fleet_name(&self) -> std::option::Option<&str> {
        self.device_fleet_name.as_deref()
    }
    /// <p>The number of edge devices with the successful deployment.</p>
    pub fn edge_deployment_success(&self) -> i32 {
        self.edge_deployment_success
    }
    /// <p>The number of edge devices yet to pick up deployment, or in progress.</p>
    pub fn edge_deployment_pending(&self) -> i32 {
        self.edge_deployment_pending
    }
    /// <p>The number of edge devices that failed the deployment.</p>
    pub fn edge_deployment_failed(&self) -> i32 {
        self.edge_deployment_failed
    }
    /// <p>List of stages in the edge deployment plan.</p>
    pub fn stages(&self) -> std::option::Option<&[crate::model::DeploymentStageStatusSummary]> {
        self.stages.as_deref()
    }
    /// <p>Token to use when calling the next set of stages in the edge deployment plan.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
    /// <p>The time when the edge deployment plan was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The time when the edge deployment plan was last updated.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
}
/// See [`DescribeEdgeDeploymentPlanOutput`](crate::output::DescribeEdgeDeploymentPlanOutput).
pub mod describe_edge_deployment_plan_output {

    /// A builder for [`DescribeEdgeDeploymentPlanOutput`](crate::output::DescribeEdgeDeploymentPlanOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) edge_deployment_plan_arn: std::option::Option<std::string::String>,
        pub(crate) edge_deployment_plan_name: std::option::Option<std::string::String>,
        pub(crate) model_configs:
            std::option::Option<std::vec::Vec<crate::model::EdgeDeploymentModelConfig>>,
        pub(crate) device_fleet_name: std::option::Option<std::string::String>,
        pub(crate) edge_deployment_success: std::option::Option<i32>,
        pub(crate) edge_deployment_pending: std::option::Option<i32>,
        pub(crate) edge_deployment_failed: std::option::Option<i32>,
        pub(crate) stages:
            std::option::Option<std::vec::Vec<crate::model::DeploymentStageStatusSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    }
    impl Builder {
        /// <p>The ARN of edge deployment plan.</p>
        pub fn edge_deployment_plan_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.edge_deployment_plan_arn = Some(input.into());
            self
        }
        /// <p>The ARN of edge deployment plan.</p>
        pub fn set_edge_deployment_plan_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.edge_deployment_plan_arn = input;
            self
        }
        /// <p>The name of the edge deployment plan.</p>
        pub fn edge_deployment_plan_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.edge_deployment_plan_name = Some(input.into());
            self
        }
        /// <p>The name of the edge deployment plan.</p>
        pub fn set_edge_deployment_plan_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.edge_deployment_plan_name = input;
            self
        }
        /// Appends an item to `model_configs`.
        ///
        /// To override the contents of this collection use [`set_model_configs`](Self::set_model_configs).
        ///
        /// <p>List of models associated with the edge deployment plan.</p>
        pub fn model_configs(mut self, input: crate::model::EdgeDeploymentModelConfig) -> Self {
            let mut v = self.model_configs.unwrap_or_default();
            v.push(input);
            self.model_configs = Some(v);
            self
        }
        /// <p>List of models associated with the edge deployment plan.</p>
        pub fn set_model_configs(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::EdgeDeploymentModelConfig>>,
        ) -> Self {
            self.model_configs = input;
            self
        }
        /// <p>The device fleet used for this edge deployment plan.</p>
        pub fn device_fleet_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.device_fleet_name = Some(input.into());
            self
        }
        /// <p>The device fleet used for this edge deployment plan.</p>
        pub fn set_device_fleet_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.device_fleet_name = input;
            self
        }
        /// <p>The number of edge devices with the successful deployment.</p>
        pub fn edge_deployment_success(mut self, input: i32) -> Self {
            self.edge_deployment_success = Some(input);
            self
        }
        /// <p>The number of edge devices with the successful deployment.</p>
        pub fn set_edge_deployment_success(mut self, input: std::option::Option<i32>) -> Self {
            self.edge_deployment_success = input;
            self
        }
        /// <p>The number of edge devices yet to pick up deployment, or in progress.</p>
        pub fn edge_deployment_pending(mut self, input: i32) -> Self {
            self.edge_deployment_pending = Some(input);
            self
        }
        /// <p>The number of edge devices yet to pick up deployment, or in progress.</p>
        pub fn set_edge_deployment_pending(mut self, input: std::option::Option<i32>) -> Self {
            self.edge_deployment_pending = input;
            self
        }
        /// <p>The number of edge devices that failed the deployment.</p>
        pub fn edge_deployment_failed(mut self, input: i32) -> Self {
            self.edge_deployment_failed = Some(input);
            self
        }
        /// <p>The number of edge devices that failed the deployment.</p>
        pub fn set_edge_deployment_failed(mut self, input: std::option::Option<i32>) -> Self {
            self.edge_deployment_failed = input;
            self
        }
        /// Appends an item to `stages`.
        ///
        /// To override the contents of this collection use [`set_stages`](Self::set_stages).
        ///
        /// <p>List of stages in the edge deployment plan.</p>
        pub fn stages(mut self, input: crate::model::DeploymentStageStatusSummary) -> Self {
            let mut v = self.stages.unwrap_or_default();
            v.push(input);
            self.stages = Some(v);
            self
        }
        /// <p>List of stages in the edge deployment plan.</p>
        pub fn set_stages(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::DeploymentStageStatusSummary>>,
        ) -> Self {
            self.stages = input;
            self
        }
        /// <p>Token to use when calling the next set of stages in the edge deployment plan.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>Token to use when calling the next set of stages in the edge deployment plan.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// <p>The time when the edge deployment plan was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The time when the edge deployment plan was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The time when the edge deployment plan was last updated.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>The time when the edge deployment plan was last updated.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeEdgeDeploymentPlanOutput`](crate::output::DescribeEdgeDeploymentPlanOutput).
        pub fn build(self) -> crate::output::DescribeEdgeDeploymentPlanOutput {
            crate::output::DescribeEdgeDeploymentPlanOutput {
                edge_deployment_plan_arn: self.edge_deployment_plan_arn,
                edge_deployment_plan_name: self.edge_deployment_plan_name,
                model_configs: self.model_configs,
                device_fleet_name: self.device_fleet_name,
                edge_deployment_success: self.edge_deployment_success.unwrap_or_default(),
                edge_deployment_pending: self.edge_deployment_pending.unwrap_or_default(),
                edge_deployment_failed: self.edge_deployment_failed.unwrap_or_default(),
                stages: self.stages,
                next_token: self.next_token,
                creation_time: self.creation_time,
                last_modified_time: self.last_modified_time,
            }
        }
    }
}
impl DescribeEdgeDeploymentPlanOutput {
    /// Creates a new builder-style object to manufacture [`DescribeEdgeDeploymentPlanOutput`](crate::output::DescribeEdgeDeploymentPlanOutput).
    pub fn builder() -> crate::output::describe_edge_deployment_plan_output::Builder {
        crate::output::describe_edge_deployment_plan_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeDomainOutput {
    /// <p>The domain's Amazon Resource Name (ARN).</p>
    #[doc(hidden)]
    pub domain_arn: std::option::Option<std::string::String>,
    /// <p>The domain ID.</p>
    #[doc(hidden)]
    pub domain_id: std::option::Option<std::string::String>,
    /// <p>The domain name.</p>
    #[doc(hidden)]
    pub domain_name: std::option::Option<std::string::String>,
    /// <p>The ID of the Amazon Elastic File System (EFS) managed by this Domain.</p>
    #[doc(hidden)]
    pub home_efs_file_system_id: std::option::Option<std::string::String>,
    /// <p>The IAM Identity Center managed application instance ID.</p>
    #[doc(hidden)]
    pub single_sign_on_managed_application_instance_id: std::option::Option<std::string::String>,
    /// <p>The status.</p>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::DomainStatus>,
    /// <p>The creation time.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The last modified time.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The failure reason.</p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>The domain's authentication mode.</p>
    #[doc(hidden)]
    pub auth_mode: std::option::Option<crate::model::AuthMode>,
    /// <p>Settings which are applied to UserProfiles in this domain if settings are not explicitly specified in a given UserProfile. </p>
    #[doc(hidden)]
    pub default_user_settings: std::option::Option<crate::model::UserSettings>,
    /// <p>Specifies the VPC used for non-EFS traffic. The default value is <code>PublicInternetOnly</code>.</p>
    /// <ul>
    /// <li> <p> <code>PublicInternetOnly</code> - Non-EFS traffic is through a VPC managed by Amazon SageMaker, which allows direct internet access</p> </li>
    /// <li> <p> <code>VpcOnly</code> - All Studio traffic is through the specified VPC and subnets</p> </li>
    /// </ul>
    #[doc(hidden)]
    pub app_network_access_type: std::option::Option<crate::model::AppNetworkAccessType>,
    /// <p>Use <code>KmsKeyId</code>.</p>
    #[deprecated(note = "This property is deprecated, use KmsKeyId instead.")]
    #[doc(hidden)]
    pub home_efs_file_system_kms_key_id: std::option::Option<std::string::String>,
    /// <p>The VPC subnets that Studio uses for communication.</p>
    #[doc(hidden)]
    pub subnet_ids: std::option::Option<std::vec::Vec<std::string::String>>,
    /// <p>The domain's URL.</p>
    #[doc(hidden)]
    pub url: std::option::Option<std::string::String>,
    /// <p>The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.</p>
    #[doc(hidden)]
    pub vpc_id: std::option::Option<std::string::String>,
    /// <p>The Amazon Web Services KMS customer managed key used to encrypt the EFS volume attached to the domain.</p>
    #[doc(hidden)]
    pub kms_key_id: std::option::Option<std::string::String>,
    /// <p>A collection of <code>Domain</code> settings.</p>
    #[doc(hidden)]
    pub domain_settings: std::option::Option<crate::model::DomainSettings>,
    /// <p>The entity that creates and manages the required security groups for inter-app communication in <code>VPCOnly</code> mode. Required when <code>CreateDomain.AppNetworkAccessType</code> is <code>VPCOnly</code> and <code>DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn</code> is provided.</p>
    #[doc(hidden)]
    pub app_security_group_management:
        std::option::Option<crate::model::AppSecurityGroupManagement>,
    /// <p>The ID of the security group that authorizes traffic between the <code>RSessionGateway</code> apps and the <code>RStudioServerPro</code> app.</p>
    #[doc(hidden)]
    pub security_group_id_for_domain_boundary: std::option::Option<std::string::String>,
    /// <p>The default settings used to create a space.</p>
    #[doc(hidden)]
    pub default_space_settings: std::option::Option<crate::model::DefaultSpaceSettings>,
}
impl DescribeDomainOutput {
    /// <p>The domain's Amazon Resource Name (ARN).</p>
    pub fn domain_arn(&self) -> std::option::Option<&str> {
        self.domain_arn.as_deref()
    }
    /// <p>The domain ID.</p>
    pub fn domain_id(&self) -> std::option::Option<&str> {
        self.domain_id.as_deref()
    }
    /// <p>The domain name.</p>
    pub fn domain_name(&self) -> std::option::Option<&str> {
        self.domain_name.as_deref()
    }
    /// <p>The ID of the Amazon Elastic File System (EFS) managed by this Domain.</p>
    pub fn home_efs_file_system_id(&self) -> std::option::Option<&str> {
        self.home_efs_file_system_id.as_deref()
    }
    /// <p>The IAM Identity Center managed application instance ID.</p>
    pub fn single_sign_on_managed_application_instance_id(&self) -> std::option::Option<&str> {
        self.single_sign_on_managed_application_instance_id
            .as_deref()
    }
    /// <p>The status.</p>
    pub fn status(&self) -> std::option::Option<&crate::model::DomainStatus> {
        self.status.as_ref()
    }
    /// <p>The creation time.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The last modified time.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>The failure reason.</p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>The domain's authentication mode.</p>
    pub fn auth_mode(&self) -> std::option::Option<&crate::model::AuthMode> {
        self.auth_mode.as_ref()
    }
    /// <p>Settings which are applied to UserProfiles in this domain if settings are not explicitly specified in a given UserProfile. </p>
    pub fn default_user_settings(&self) -> std::option::Option<&crate::model::UserSettings> {
        self.default_user_settings.as_ref()
    }
    /// <p>Specifies the VPC used for non-EFS traffic. The default value is <code>PublicInternetOnly</code>.</p>
    /// <ul>
    /// <li> <p> <code>PublicInternetOnly</code> - Non-EFS traffic is through a VPC managed by Amazon SageMaker, which allows direct internet access</p> </li>
    /// <li> <p> <code>VpcOnly</code> - All Studio traffic is through the specified VPC and subnets</p> </li>
    /// </ul>
    pub fn app_network_access_type(
        &self,
    ) -> std::option::Option<&crate::model::AppNetworkAccessType> {
        self.app_network_access_type.as_ref()
    }
    /// <p>Use <code>KmsKeyId</code>.</p>
    #[deprecated(note = "This property is deprecated, use KmsKeyId instead.")]
    pub fn home_efs_file_system_kms_key_id(&self) -> std::option::Option<&str> {
        self.home_efs_file_system_kms_key_id.as_deref()
    }
    /// <p>The VPC subnets that Studio uses for communication.</p>
    pub fn subnet_ids(&self) -> std::option::Option<&[std::string::String]> {
        self.subnet_ids.as_deref()
    }
    /// <p>The domain's URL.</p>
    pub fn url(&self) -> std::option::Option<&str> {
        self.url.as_deref()
    }
    /// <p>The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.</p>
    pub fn vpc_id(&self) -> std::option::Option<&str> {
        self.vpc_id.as_deref()
    }
    /// <p>The Amazon Web Services KMS customer managed key used to encrypt the EFS volume attached to the domain.</p>
    pub fn kms_key_id(&self) -> std::option::Option<&str> {
        self.kms_key_id.as_deref()
    }
    /// <p>A collection of <code>Domain</code> settings.</p>
    pub fn domain_settings(&self) -> std::option::Option<&crate::model::DomainSettings> {
        self.domain_settings.as_ref()
    }
    /// <p>The entity that creates and manages the required security groups for inter-app communication in <code>VPCOnly</code> mode. Required when <code>CreateDomain.AppNetworkAccessType</code> is <code>VPCOnly</code> and <code>DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn</code> is provided.</p>
    pub fn app_security_group_management(
        &self,
    ) -> std::option::Option<&crate::model::AppSecurityGroupManagement> {
        self.app_security_group_management.as_ref()
    }
    /// <p>The ID of the security group that authorizes traffic between the <code>RSessionGateway</code> apps and the <code>RStudioServerPro</code> app.</p>
    pub fn security_group_id_for_domain_boundary(&self) -> std::option::Option<&str> {
        self.security_group_id_for_domain_boundary.as_deref()
    }
    /// <p>The default settings used to create a space.</p>
    pub fn default_space_settings(
        &self,
    ) -> std::option::Option<&crate::model::DefaultSpaceSettings> {
        self.default_space_settings.as_ref()
    }
}
/// See [`DescribeDomainOutput`](crate::output::DescribeDomainOutput).
pub mod describe_domain_output {

    /// A builder for [`DescribeDomainOutput`](crate::output::DescribeDomainOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) domain_arn: std::option::Option<std::string::String>,
        pub(crate) domain_id: std::option::Option<std::string::String>,
        pub(crate) domain_name: std::option::Option<std::string::String>,
        pub(crate) home_efs_file_system_id: std::option::Option<std::string::String>,
        pub(crate) single_sign_on_managed_application_instance_id:
            std::option::Option<std::string::String>,
        pub(crate) status: std::option::Option<crate::model::DomainStatus>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) auth_mode: std::option::Option<crate::model::AuthMode>,
        pub(crate) default_user_settings: std::option::Option<crate::model::UserSettings>,
        pub(crate) app_network_access_type: std::option::Option<crate::model::AppNetworkAccessType>,
        pub(crate) home_efs_file_system_kms_key_id: std::option::Option<std::string::String>,
        pub(crate) subnet_ids: std::option::Option<std::vec::Vec<std::string::String>>,
        pub(crate) url: std::option::Option<std::string::String>,
        pub(crate) vpc_id: std::option::Option<std::string::String>,
        pub(crate) kms_key_id: std::option::Option<std::string::String>,
        pub(crate) domain_settings: std::option::Option<crate::model::DomainSettings>,
        pub(crate) app_security_group_management:
            std::option::Option<crate::model::AppSecurityGroupManagement>,
        pub(crate) security_group_id_for_domain_boundary: std::option::Option<std::string::String>,
        pub(crate) default_space_settings: std::option::Option<crate::model::DefaultSpaceSettings>,
    }
    impl Builder {
        /// <p>The domain's Amazon Resource Name (ARN).</p>
        pub fn domain_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.domain_arn = Some(input.into());
            self
        }
        /// <p>The domain's Amazon Resource Name (ARN).</p>
        pub fn set_domain_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.domain_arn = input;
            self
        }
        /// <p>The domain ID.</p>
        pub fn domain_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.domain_id = Some(input.into());
            self
        }
        /// <p>The domain ID.</p>
        pub fn set_domain_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.domain_id = input;
            self
        }
        /// <p>The domain name.</p>
        pub fn domain_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.domain_name = Some(input.into());
            self
        }
        /// <p>The domain name.</p>
        pub fn set_domain_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.domain_name = input;
            self
        }
        /// <p>The ID of the Amazon Elastic File System (EFS) managed by this Domain.</p>
        pub fn home_efs_file_system_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.home_efs_file_system_id = Some(input.into());
            self
        }
        /// <p>The ID of the Amazon Elastic File System (EFS) managed by this Domain.</p>
        pub fn set_home_efs_file_system_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.home_efs_file_system_id = input;
            self
        }
        /// <p>The IAM Identity Center managed application instance ID.</p>
        pub fn single_sign_on_managed_application_instance_id(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.single_sign_on_managed_application_instance_id = Some(input.into());
            self
        }
        /// <p>The IAM Identity Center managed application instance ID.</p>
        pub fn set_single_sign_on_managed_application_instance_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.single_sign_on_managed_application_instance_id = input;
            self
        }
        /// <p>The status.</p>
        pub fn status(mut self, input: crate::model::DomainStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p>The status.</p>
        pub fn set_status(
            mut self,
            input: std::option::Option<crate::model::DomainStatus>,
        ) -> Self {
            self.status = input;
            self
        }
        /// <p>The creation time.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The creation time.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The last modified time.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>The last modified time.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>The failure reason.</p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>The failure reason.</p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// <p>The domain's authentication mode.</p>
        pub fn auth_mode(mut self, input: crate::model::AuthMode) -> Self {
            self.auth_mode = Some(input);
            self
        }
        /// <p>The domain's authentication mode.</p>
        pub fn set_auth_mode(mut self, input: std::option::Option<crate::model::AuthMode>) -> Self {
            self.auth_mode = input;
            self
        }
        /// <p>Settings which are applied to UserProfiles in this domain if settings are not explicitly specified in a given UserProfile. </p>
        pub fn default_user_settings(mut self, input: crate::model::UserSettings) -> Self {
            self.default_user_settings = Some(input);
            self
        }
        /// <p>Settings which are applied to UserProfiles in this domain if settings are not explicitly specified in a given UserProfile. </p>
        pub fn set_default_user_settings(
            mut self,
            input: std::option::Option<crate::model::UserSettings>,
        ) -> Self {
            self.default_user_settings = input;
            self
        }
        /// <p>Specifies the VPC used for non-EFS traffic. The default value is <code>PublicInternetOnly</code>.</p>
        /// <ul>
        /// <li> <p> <code>PublicInternetOnly</code> - Non-EFS traffic is through a VPC managed by Amazon SageMaker, which allows direct internet access</p> </li>
        /// <li> <p> <code>VpcOnly</code> - All Studio traffic is through the specified VPC and subnets</p> </li>
        /// </ul>
        pub fn app_network_access_type(
            mut self,
            input: crate::model::AppNetworkAccessType,
        ) -> Self {
            self.app_network_access_type = Some(input);
            self
        }
        /// <p>Specifies the VPC used for non-EFS traffic. The default value is <code>PublicInternetOnly</code>.</p>
        /// <ul>
        /// <li> <p> <code>PublicInternetOnly</code> - Non-EFS traffic is through a VPC managed by Amazon SageMaker, which allows direct internet access</p> </li>
        /// <li> <p> <code>VpcOnly</code> - All Studio traffic is through the specified VPC and subnets</p> </li>
        /// </ul>
        pub fn set_app_network_access_type(
            mut self,
            input: std::option::Option<crate::model::AppNetworkAccessType>,
        ) -> Self {
            self.app_network_access_type = input;
            self
        }
        /// <p>Use <code>KmsKeyId</code>.</p>
        #[deprecated(note = "This property is deprecated, use KmsKeyId instead.")]
        pub fn home_efs_file_system_kms_key_id(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.home_efs_file_system_kms_key_id = Some(input.into());
            self
        }
        /// <p>Use <code>KmsKeyId</code>.</p>
        #[deprecated(note = "This property is deprecated, use KmsKeyId instead.")]
        pub fn set_home_efs_file_system_kms_key_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.home_efs_file_system_kms_key_id = input;
            self
        }
        /// Appends an item to `subnet_ids`.
        ///
        /// To override the contents of this collection use [`set_subnet_ids`](Self::set_subnet_ids).
        ///
        /// <p>The VPC subnets that Studio uses for communication.</p>
        pub fn subnet_ids(mut self, input: impl Into<std::string::String>) -> Self {
            let mut v = self.subnet_ids.unwrap_or_default();
            v.push(input.into());
            self.subnet_ids = Some(v);
            self
        }
        /// <p>The VPC subnets that Studio uses for communication.</p>
        pub fn set_subnet_ids(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.subnet_ids = input;
            self
        }
        /// <p>The domain's URL.</p>
        pub fn url(mut self, input: impl Into<std::string::String>) -> Self {
            self.url = Some(input.into());
            self
        }
        /// <p>The domain's URL.</p>
        pub fn set_url(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.url = input;
            self
        }
        /// <p>The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.</p>
        pub fn vpc_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.vpc_id = Some(input.into());
            self
        }
        /// <p>The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.</p>
        pub fn set_vpc_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.vpc_id = input;
            self
        }
        /// <p>The Amazon Web Services KMS customer managed key used to encrypt the EFS volume attached to the domain.</p>
        pub fn kms_key_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.kms_key_id = Some(input.into());
            self
        }
        /// <p>The Amazon Web Services KMS customer managed key used to encrypt the EFS volume attached to the domain.</p>
        pub fn set_kms_key_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.kms_key_id = input;
            self
        }
        /// <p>A collection of <code>Domain</code> settings.</p>
        pub fn domain_settings(mut self, input: crate::model::DomainSettings) -> Self {
            self.domain_settings = Some(input);
            self
        }
        /// <p>A collection of <code>Domain</code> settings.</p>
        pub fn set_domain_settings(
            mut self,
            input: std::option::Option<crate::model::DomainSettings>,
        ) -> Self {
            self.domain_settings = input;
            self
        }
        /// <p>The entity that creates and manages the required security groups for inter-app communication in <code>VPCOnly</code> mode. Required when <code>CreateDomain.AppNetworkAccessType</code> is <code>VPCOnly</code> and <code>DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn</code> is provided.</p>
        pub fn app_security_group_management(
            mut self,
            input: crate::model::AppSecurityGroupManagement,
        ) -> Self {
            self.app_security_group_management = Some(input);
            self
        }
        /// <p>The entity that creates and manages the required security groups for inter-app communication in <code>VPCOnly</code> mode. Required when <code>CreateDomain.AppNetworkAccessType</code> is <code>VPCOnly</code> and <code>DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn</code> is provided.</p>
        pub fn set_app_security_group_management(
            mut self,
            input: std::option::Option<crate::model::AppSecurityGroupManagement>,
        ) -> Self {
            self.app_security_group_management = input;
            self
        }
        /// <p>The ID of the security group that authorizes traffic between the <code>RSessionGateway</code> apps and the <code>RStudioServerPro</code> app.</p>
        pub fn security_group_id_for_domain_boundary(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.security_group_id_for_domain_boundary = Some(input.into());
            self
        }
        /// <p>The ID of the security group that authorizes traffic between the <code>RSessionGateway</code> apps and the <code>RStudioServerPro</code> app.</p>
        pub fn set_security_group_id_for_domain_boundary(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.security_group_id_for_domain_boundary = input;
            self
        }
        /// <p>The default settings used to create a space.</p>
        pub fn default_space_settings(mut self, input: crate::model::DefaultSpaceSettings) -> Self {
            self.default_space_settings = Some(input);
            self
        }
        /// <p>The default settings used to create a space.</p>
        pub fn set_default_space_settings(
            mut self,
            input: std::option::Option<crate::model::DefaultSpaceSettings>,
        ) -> Self {
            self.default_space_settings = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeDomainOutput`](crate::output::DescribeDomainOutput).
        pub fn build(self) -> crate::output::DescribeDomainOutput {
            crate::output::DescribeDomainOutput {
                domain_arn: self.domain_arn,
                domain_id: self.domain_id,
                domain_name: self.domain_name,
                home_efs_file_system_id: self.home_efs_file_system_id,
                single_sign_on_managed_application_instance_id: self
                    .single_sign_on_managed_application_instance_id,
                status: self.status,
                creation_time: self.creation_time,
                last_modified_time: self.last_modified_time,
                failure_reason: self.failure_reason,
                auth_mode: self.auth_mode,
                default_user_settings: self.default_user_settings,
                app_network_access_type: self.app_network_access_type,
                home_efs_file_system_kms_key_id: self.home_efs_file_system_kms_key_id,
                subnet_ids: self.subnet_ids,
                url: self.url,
                vpc_id: self.vpc_id,
                kms_key_id: self.kms_key_id,
                domain_settings: self.domain_settings,
                app_security_group_management: self.app_security_group_management,
                security_group_id_for_domain_boundary: self.security_group_id_for_domain_boundary,
                default_space_settings: self.default_space_settings,
            }
        }
    }
}
impl DescribeDomainOutput {
    /// Creates a new builder-style object to manufacture [`DescribeDomainOutput`](crate::output::DescribeDomainOutput).
    pub fn builder() -> crate::output::describe_domain_output::Builder {
        crate::output::describe_domain_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeDeviceFleetOutput {
    /// <p>The name of the fleet.</p>
    #[doc(hidden)]
    pub device_fleet_name: std::option::Option<std::string::String>,
    /// <p>The The Amazon Resource Name (ARN) of the fleet.</p>
    #[doc(hidden)]
    pub device_fleet_arn: std::option::Option<std::string::String>,
    /// <p>The output configuration for storing sampled data.</p>
    #[doc(hidden)]
    pub output_config: std::option::Option<crate::model::EdgeOutputConfig>,
    /// <p>A description of the fleet.</p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p>Timestamp of when the device fleet was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Timestamp of when the device fleet was last updated.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The Amazon Resource Name (ARN) that has access to Amazon Web Services Internet of Things (IoT).</p>
    #[doc(hidden)]
    pub role_arn: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) alias created in Amazon Web Services Internet of Things (IoT).</p>
    #[doc(hidden)]
    pub iot_role_alias: std::option::Option<std::string::String>,
}
impl DescribeDeviceFleetOutput {
    /// <p>The name of the fleet.</p>
    pub fn device_fleet_name(&self) -> std::option::Option<&str> {
        self.device_fleet_name.as_deref()
    }
    /// <p>The The Amazon Resource Name (ARN) of the fleet.</p>
    pub fn device_fleet_arn(&self) -> std::option::Option<&str> {
        self.device_fleet_arn.as_deref()
    }
    /// <p>The output configuration for storing sampled data.</p>
    pub fn output_config(&self) -> std::option::Option<&crate::model::EdgeOutputConfig> {
        self.output_config.as_ref()
    }
    /// <p>A description of the fleet.</p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>Timestamp of when the device fleet was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>Timestamp of when the device fleet was last updated.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>The Amazon Resource Name (ARN) that has access to Amazon Web Services Internet of Things (IoT).</p>
    pub fn role_arn(&self) -> std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) alias created in Amazon Web Services Internet of Things (IoT).</p>
    pub fn iot_role_alias(&self) -> std::option::Option<&str> {
        self.iot_role_alias.as_deref()
    }
}
/// See [`DescribeDeviceFleetOutput`](crate::output::DescribeDeviceFleetOutput).
pub mod describe_device_fleet_output {

    /// A builder for [`DescribeDeviceFleetOutput`](crate::output::DescribeDeviceFleetOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) device_fleet_name: std::option::Option<std::string::String>,
        pub(crate) device_fleet_arn: std::option::Option<std::string::String>,
        pub(crate) output_config: std::option::Option<crate::model::EdgeOutputConfig>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) role_arn: std::option::Option<std::string::String>,
        pub(crate) iot_role_alias: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The name of the fleet.</p>
        pub fn device_fleet_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.device_fleet_name = Some(input.into());
            self
        }
        /// <p>The name of the fleet.</p>
        pub fn set_device_fleet_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.device_fleet_name = input;
            self
        }
        /// <p>The The Amazon Resource Name (ARN) of the fleet.</p>
        pub fn device_fleet_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.device_fleet_arn = Some(input.into());
            self
        }
        /// <p>The The Amazon Resource Name (ARN) of the fleet.</p>
        pub fn set_device_fleet_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.device_fleet_arn = input;
            self
        }
        /// <p>The output configuration for storing sampled data.</p>
        pub fn output_config(mut self, input: crate::model::EdgeOutputConfig) -> Self {
            self.output_config = Some(input);
            self
        }
        /// <p>The output configuration for storing sampled data.</p>
        pub fn set_output_config(
            mut self,
            input: std::option::Option<crate::model::EdgeOutputConfig>,
        ) -> Self {
            self.output_config = input;
            self
        }
        /// <p>A description of the fleet.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p>A description of the fleet.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// <p>Timestamp of when the device fleet was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>Timestamp of when the device fleet was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>Timestamp of when the device fleet was last updated.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>Timestamp of when the device fleet was last updated.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) that has access to Amazon Web Services Internet of Things (IoT).</p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.role_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) that has access to Amazon Web Services Internet of Things (IoT).</p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.role_arn = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) alias created in Amazon Web Services Internet of Things (IoT).</p>
        pub fn iot_role_alias(mut self, input: impl Into<std::string::String>) -> Self {
            self.iot_role_alias = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) alias created in Amazon Web Services Internet of Things (IoT).</p>
        pub fn set_iot_role_alias(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.iot_role_alias = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeDeviceFleetOutput`](crate::output::DescribeDeviceFleetOutput).
        pub fn build(self) -> crate::output::DescribeDeviceFleetOutput {
            crate::output::DescribeDeviceFleetOutput {
                device_fleet_name: self.device_fleet_name,
                device_fleet_arn: self.device_fleet_arn,
                output_config: self.output_config,
                description: self.description,
                creation_time: self.creation_time,
                last_modified_time: self.last_modified_time,
                role_arn: self.role_arn,
                iot_role_alias: self.iot_role_alias,
            }
        }
    }
}
impl DescribeDeviceFleetOutput {
    /// Creates a new builder-style object to manufacture [`DescribeDeviceFleetOutput`](crate::output::DescribeDeviceFleetOutput).
    pub fn builder() -> crate::output::describe_device_fleet_output::Builder {
        crate::output::describe_device_fleet_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeDeviceOutput {
    /// <p>The Amazon Resource Name (ARN) of the device.</p>
    #[doc(hidden)]
    pub device_arn: std::option::Option<std::string::String>,
    /// <p>The unique identifier of the device.</p>
    #[doc(hidden)]
    pub device_name: std::option::Option<std::string::String>,
    /// <p>A description of the device.</p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p>The name of the fleet the device belongs to.</p>
    #[doc(hidden)]
    pub device_fleet_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Web Services Internet of Things (IoT) object thing name associated with the device.</p>
    #[doc(hidden)]
    pub iot_thing_name: std::option::Option<std::string::String>,
    /// <p>The timestamp of the last registration or de-reregistration.</p>
    #[doc(hidden)]
    pub registration_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The last heartbeat received from the device.</p>
    #[doc(hidden)]
    pub latest_heartbeat: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Models on the device.</p>
    #[doc(hidden)]
    pub models: std::option::Option<std::vec::Vec<crate::model::EdgeModel>>,
    /// <p>The maximum number of models.</p>
    #[doc(hidden)]
    pub max_models: i32,
    /// <p>The response from the last list when returning a list large enough to need tokening.</p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
    /// <p>Edge Manager agent version.</p>
    #[doc(hidden)]
    pub agent_version: std::option::Option<std::string::String>,
}
impl DescribeDeviceOutput {
    /// <p>The Amazon Resource Name (ARN) of the device.</p>
    pub fn device_arn(&self) -> std::option::Option<&str> {
        self.device_arn.as_deref()
    }
    /// <p>The unique identifier of the device.</p>
    pub fn device_name(&self) -> std::option::Option<&str> {
        self.device_name.as_deref()
    }
    /// <p>A description of the device.</p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>The name of the fleet the device belongs to.</p>
    pub fn device_fleet_name(&self) -> std::option::Option<&str> {
        self.device_fleet_name.as_deref()
    }
    /// <p>The Amazon Web Services Internet of Things (IoT) object thing name associated with the device.</p>
    pub fn iot_thing_name(&self) -> std::option::Option<&str> {
        self.iot_thing_name.as_deref()
    }
    /// <p>The timestamp of the last registration or de-reregistration.</p>
    pub fn registration_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.registration_time.as_ref()
    }
    /// <p>The last heartbeat received from the device.</p>
    pub fn latest_heartbeat(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.latest_heartbeat.as_ref()
    }
    /// <p>Models on the device.</p>
    pub fn models(&self) -> std::option::Option<&[crate::model::EdgeModel]> {
        self.models.as_deref()
    }
    /// <p>The maximum number of models.</p>
    pub fn max_models(&self) -> i32 {
        self.max_models
    }
    /// <p>The response from the last list when returning a list large enough to need tokening.</p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
    /// <p>Edge Manager agent version.</p>
    pub fn agent_version(&self) -> std::option::Option<&str> {
        self.agent_version.as_deref()
    }
}
/// See [`DescribeDeviceOutput`](crate::output::DescribeDeviceOutput).
pub mod describe_device_output {

    /// A builder for [`DescribeDeviceOutput`](crate::output::DescribeDeviceOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) device_arn: std::option::Option<std::string::String>,
        pub(crate) device_name: std::option::Option<std::string::String>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) device_fleet_name: std::option::Option<std::string::String>,
        pub(crate) iot_thing_name: std::option::Option<std::string::String>,
        pub(crate) registration_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) latest_heartbeat: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) models: std::option::Option<std::vec::Vec<crate::model::EdgeModel>>,
        pub(crate) max_models: std::option::Option<i32>,
        pub(crate) next_token: std::option::Option<std::string::String>,
        pub(crate) agent_version: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the device.</p>
        pub fn device_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.device_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the device.</p>
        pub fn set_device_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.device_arn = input;
            self
        }
        /// <p>The unique identifier of the device.</p>
        pub fn device_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.device_name = Some(input.into());
            self
        }
        /// <p>The unique identifier of the device.</p>
        pub fn set_device_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.device_name = input;
            self
        }
        /// <p>A description of the device.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p>A description of the device.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// <p>The name of the fleet the device belongs to.</p>
        pub fn device_fleet_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.device_fleet_name = Some(input.into());
            self
        }
        /// <p>The name of the fleet the device belongs to.</p>
        pub fn set_device_fleet_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.device_fleet_name = input;
            self
        }
        /// <p>The Amazon Web Services Internet of Things (IoT) object thing name associated with the device.</p>
        pub fn iot_thing_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.iot_thing_name = Some(input.into());
            self
        }
        /// <p>The Amazon Web Services Internet of Things (IoT) object thing name associated with the device.</p>
        pub fn set_iot_thing_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.iot_thing_name = input;
            self
        }
        /// <p>The timestamp of the last registration or de-reregistration.</p>
        pub fn registration_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.registration_time = Some(input);
            self
        }
        /// <p>The timestamp of the last registration or de-reregistration.</p>
        pub fn set_registration_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.registration_time = input;
            self
        }
        /// <p>The last heartbeat received from the device.</p>
        pub fn latest_heartbeat(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.latest_heartbeat = Some(input);
            self
        }
        /// <p>The last heartbeat received from the device.</p>
        pub fn set_latest_heartbeat(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.latest_heartbeat = input;
            self
        }
        /// Appends an item to `models`.
        ///
        /// To override the contents of this collection use [`set_models`](Self::set_models).
        ///
        /// <p>Models on the device.</p>
        pub fn models(mut self, input: crate::model::EdgeModel) -> Self {
            let mut v = self.models.unwrap_or_default();
            v.push(input);
            self.models = Some(v);
            self
        }
        /// <p>Models on the device.</p>
        pub fn set_models(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::EdgeModel>>,
        ) -> Self {
            self.models = input;
            self
        }
        /// <p>The maximum number of models.</p>
        pub fn max_models(mut self, input: i32) -> Self {
            self.max_models = Some(input);
            self
        }
        /// <p>The maximum number of models.</p>
        pub fn set_max_models(mut self, input: std::option::Option<i32>) -> Self {
            self.max_models = input;
            self
        }
        /// <p>The response from the last list when returning a list large enough to need tokening.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p>The response from the last list when returning a list large enough to need tokening.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// <p>Edge Manager agent version.</p>
        pub fn agent_version(mut self, input: impl Into<std::string::String>) -> Self {
            self.agent_version = Some(input.into());
            self
        }
        /// <p>Edge Manager agent version.</p>
        pub fn set_agent_version(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.agent_version = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeDeviceOutput`](crate::output::DescribeDeviceOutput).
        pub fn build(self) -> crate::output::DescribeDeviceOutput {
            crate::output::DescribeDeviceOutput {
                device_arn: self.device_arn,
                device_name: self.device_name,
                description: self.description,
                device_fleet_name: self.device_fleet_name,
                iot_thing_name: self.iot_thing_name,
                registration_time: self.registration_time,
                latest_heartbeat: self.latest_heartbeat,
                models: self.models,
                max_models: self.max_models.unwrap_or_default(),
                next_token: self.next_token,
                agent_version: self.agent_version,
            }
        }
    }
}
impl DescribeDeviceOutput {
    /// Creates a new builder-style object to manufacture [`DescribeDeviceOutput`](crate::output::DescribeDeviceOutput).
    pub fn builder() -> crate::output::describe_device_output::Builder {
        crate::output::describe_device_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeDataQualityJobDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the data quality monitoring job definition.</p>
    #[doc(hidden)]
    pub job_definition_arn: std::option::Option<std::string::String>,
    /// <p>The name of the data quality monitoring job definition.</p>
    #[doc(hidden)]
    pub job_definition_name: std::option::Option<std::string::String>,
    /// <p>The time that the data quality monitoring job definition was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The constraints and baselines for the data quality monitoring job definition.</p>
    #[doc(hidden)]
    pub data_quality_baseline_config: std::option::Option<crate::model::DataQualityBaselineConfig>,
    /// <p>Information about the container that runs the data quality monitoring job.</p>
    #[doc(hidden)]
    pub data_quality_app_specification:
        std::option::Option<crate::model::DataQualityAppSpecification>,
    /// <p>The list of inputs for the data quality monitoring job. Currently endpoints are supported.</p>
    #[doc(hidden)]
    pub data_quality_job_input: std::option::Option<crate::model::DataQualityJobInput>,
    /// <p>The output configuration for monitoring jobs.</p>
    #[doc(hidden)]
    pub data_quality_job_output_config: std::option::Option<crate::model::MonitoringOutputConfig>,
    /// <p>Identifies the resources to deploy for a monitoring job.</p>
    #[doc(hidden)]
    pub job_resources: std::option::Option<crate::model::MonitoringResources>,
    /// <p>The networking configuration for the data quality monitoring job.</p>
    #[doc(hidden)]
    pub network_config: std::option::Option<crate::model::MonitoringNetworkConfig>,
    /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.</p>
    #[doc(hidden)]
    pub role_arn: std::option::Option<std::string::String>,
    /// <p>A time limit for how long the monitoring job is allowed to run before stopping.</p>
    #[doc(hidden)]
    pub stopping_condition: std::option::Option<crate::model::MonitoringStoppingCondition>,
}
impl DescribeDataQualityJobDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the data quality monitoring job definition.</p>
    pub fn job_definition_arn(&self) -> std::option::Option<&str> {
        self.job_definition_arn.as_deref()
    }
    /// <p>The name of the data quality monitoring job definition.</p>
    pub fn job_definition_name(&self) -> std::option::Option<&str> {
        self.job_definition_name.as_deref()
    }
    /// <p>The time that the data quality monitoring job definition was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The constraints and baselines for the data quality monitoring job definition.</p>
    pub fn data_quality_baseline_config(
        &self,
    ) -> std::option::Option<&crate::model::DataQualityBaselineConfig> {
        self.data_quality_baseline_config.as_ref()
    }
    /// <p>Information about the container that runs the data quality monitoring job.</p>
    pub fn data_quality_app_specification(
        &self,
    ) -> std::option::Option<&crate::model::DataQualityAppSpecification> {
        self.data_quality_app_specification.as_ref()
    }
    /// <p>The list of inputs for the data quality monitoring job. Currently endpoints are supported.</p>
    pub fn data_quality_job_input(
        &self,
    ) -> std::option::Option<&crate::model::DataQualityJobInput> {
        self.data_quality_job_input.as_ref()
    }
    /// <p>The output configuration for monitoring jobs.</p>
    pub fn data_quality_job_output_config(
        &self,
    ) -> std::option::Option<&crate::model::MonitoringOutputConfig> {
        self.data_quality_job_output_config.as_ref()
    }
    /// <p>Identifies the resources to deploy for a monitoring job.</p>
    pub fn job_resources(&self) -> std::option::Option<&crate::model::MonitoringResources> {
        self.job_resources.as_ref()
    }
    /// <p>The networking configuration for the data quality monitoring job.</p>
    pub fn network_config(&self) -> std::option::Option<&crate::model::MonitoringNetworkConfig> {
        self.network_config.as_ref()
    }
    /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.</p>
    pub fn role_arn(&self) -> std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    /// <p>A time limit for how long the monitoring job is allowed to run before stopping.</p>
    pub fn stopping_condition(
        &self,
    ) -> std::option::Option<&crate::model::MonitoringStoppingCondition> {
        self.stopping_condition.as_ref()
    }
}
/// See [`DescribeDataQualityJobDefinitionOutput`](crate::output::DescribeDataQualityJobDefinitionOutput).
pub mod describe_data_quality_job_definition_output {

    /// A builder for [`DescribeDataQualityJobDefinitionOutput`](crate::output::DescribeDataQualityJobDefinitionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) job_definition_arn: std::option::Option<std::string::String>,
        pub(crate) job_definition_name: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) data_quality_baseline_config:
            std::option::Option<crate::model::DataQualityBaselineConfig>,
        pub(crate) data_quality_app_specification:
            std::option::Option<crate::model::DataQualityAppSpecification>,
        pub(crate) data_quality_job_input: std::option::Option<crate::model::DataQualityJobInput>,
        pub(crate) data_quality_job_output_config:
            std::option::Option<crate::model::MonitoringOutputConfig>,
        pub(crate) job_resources: std::option::Option<crate::model::MonitoringResources>,
        pub(crate) network_config: std::option::Option<crate::model::MonitoringNetworkConfig>,
        pub(crate) role_arn: std::option::Option<std::string::String>,
        pub(crate) stopping_condition:
            std::option::Option<crate::model::MonitoringStoppingCondition>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the data quality monitoring job definition.</p>
        pub fn job_definition_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.job_definition_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the data quality monitoring job definition.</p>
        pub fn set_job_definition_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.job_definition_arn = input;
            self
        }
        /// <p>The name of the data quality monitoring job definition.</p>
        pub fn job_definition_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.job_definition_name = Some(input.into());
            self
        }
        /// <p>The name of the data quality monitoring job definition.</p>
        pub fn set_job_definition_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.job_definition_name = input;
            self
        }
        /// <p>The time that the data quality monitoring job definition was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The time that the data quality monitoring job definition was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The constraints and baselines for the data quality monitoring job definition.</p>
        pub fn data_quality_baseline_config(
            mut self,
            input: crate::model::DataQualityBaselineConfig,
        ) -> Self {
            self.data_quality_baseline_config = Some(input);
            self
        }
        /// <p>The constraints and baselines for the data quality monitoring job definition.</p>
        pub fn set_data_quality_baseline_config(
            mut self,
            input: std::option::Option<crate::model::DataQualityBaselineConfig>,
        ) -> Self {
            self.data_quality_baseline_config = input;
            self
        }
        /// <p>Information about the container that runs the data quality monitoring job.</p>
        pub fn data_quality_app_specification(
            mut self,
            input: crate::model::DataQualityAppSpecification,
        ) -> Self {
            self.data_quality_app_specification = Some(input);
            self
        }
        /// <p>Information about the container that runs the data quality monitoring job.</p>
        pub fn set_data_quality_app_specification(
            mut self,
            input: std::option::Option<crate::model::DataQualityAppSpecification>,
        ) -> Self {
            self.data_quality_app_specification = input;
            self
        }
        /// <p>The list of inputs for the data quality monitoring job. Currently endpoints are supported.</p>
        pub fn data_quality_job_input(mut self, input: crate::model::DataQualityJobInput) -> Self {
            self.data_quality_job_input = Some(input);
            self
        }
        /// <p>The list of inputs for the data quality monitoring job. Currently endpoints are supported.</p>
        pub fn set_data_quality_job_input(
            mut self,
            input: std::option::Option<crate::model::DataQualityJobInput>,
        ) -> Self {
            self.data_quality_job_input = input;
            self
        }
        /// <p>The output configuration for monitoring jobs.</p>
        pub fn data_quality_job_output_config(
            mut self,
            input: crate::model::MonitoringOutputConfig,
        ) -> Self {
            self.data_quality_job_output_config = Some(input);
            self
        }
        /// <p>The output configuration for monitoring jobs.</p>
        pub fn set_data_quality_job_output_config(
            mut self,
            input: std::option::Option<crate::model::MonitoringOutputConfig>,
        ) -> Self {
            self.data_quality_job_output_config = input;
            self
        }
        /// <p>Identifies the resources to deploy for a monitoring job.</p>
        pub fn job_resources(mut self, input: crate::model::MonitoringResources) -> Self {
            self.job_resources = Some(input);
            self
        }
        /// <p>Identifies the resources to deploy for a monitoring job.</p>
        pub fn set_job_resources(
            mut self,
            input: std::option::Option<crate::model::MonitoringResources>,
        ) -> Self {
            self.job_resources = input;
            self
        }
        /// <p>The networking configuration for the data quality monitoring job.</p>
        pub fn network_config(mut self, input: crate::model::MonitoringNetworkConfig) -> Self {
            self.network_config = Some(input);
            self
        }
        /// <p>The networking configuration for the data quality monitoring job.</p>
        pub fn set_network_config(
            mut self,
            input: std::option::Option<crate::model::MonitoringNetworkConfig>,
        ) -> Self {
            self.network_config = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.</p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.role_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.</p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.role_arn = input;
            self
        }
        /// <p>A time limit for how long the monitoring job is allowed to run before stopping.</p>
        pub fn stopping_condition(
            mut self,
            input: crate::model::MonitoringStoppingCondition,
        ) -> Self {
            self.stopping_condition = Some(input);
            self
        }
        /// <p>A time limit for how long the monitoring job is allowed to run before stopping.</p>
        pub fn set_stopping_condition(
            mut self,
            input: std::option::Option<crate::model::MonitoringStoppingCondition>,
        ) -> Self {
            self.stopping_condition = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeDataQualityJobDefinitionOutput`](crate::output::DescribeDataQualityJobDefinitionOutput).
        pub fn build(self) -> crate::output::DescribeDataQualityJobDefinitionOutput {
            crate::output::DescribeDataQualityJobDefinitionOutput {
                job_definition_arn: self.job_definition_arn,
                job_definition_name: self.job_definition_name,
                creation_time: self.creation_time,
                data_quality_baseline_config: self.data_quality_baseline_config,
                data_quality_app_specification: self.data_quality_app_specification,
                data_quality_job_input: self.data_quality_job_input,
                data_quality_job_output_config: self.data_quality_job_output_config,
                job_resources: self.job_resources,
                network_config: self.network_config,
                role_arn: self.role_arn,
                stopping_condition: self.stopping_condition,
            }
        }
    }
}
impl DescribeDataQualityJobDefinitionOutput {
    /// Creates a new builder-style object to manufacture [`DescribeDataQualityJobDefinitionOutput`](crate::output::DescribeDataQualityJobDefinitionOutput).
    pub fn builder() -> crate::output::describe_data_quality_job_definition_output::Builder {
        crate::output::describe_data_quality_job_definition_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeContextOutput {
    /// <p>The name of the context.</p>
    #[doc(hidden)]
    pub context_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the context.</p>
    #[doc(hidden)]
    pub context_arn: std::option::Option<std::string::String>,
    /// <p>The source of the context.</p>
    #[doc(hidden)]
    pub source: std::option::Option<crate::model::ContextSource>,
    /// <p>The type of the context.</p>
    #[doc(hidden)]
    pub context_type: std::option::Option<std::string::String>,
    /// <p>The description of the context.</p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p>A list of the context's properties.</p>
    #[doc(hidden)]
    pub properties:
        std::option::Option<std::collections::HashMap<std::string::String, std::string::String>>,
    /// <p>When the context was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    #[doc(hidden)]
    pub created_by: std::option::Option<crate::model::UserContext>,
    /// <p>When the context was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    #[doc(hidden)]
    pub last_modified_by: std::option::Option<crate::model::UserContext>,
    /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
    #[doc(hidden)]
    pub lineage_group_arn: std::option::Option<std::string::String>,
}
impl DescribeContextOutput {
    /// <p>The name of the context.</p>
    pub fn context_name(&self) -> std::option::Option<&str> {
        self.context_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the context.</p>
    pub fn context_arn(&self) -> std::option::Option<&str> {
        self.context_arn.as_deref()
    }
    /// <p>The source of the context.</p>
    pub fn source(&self) -> std::option::Option<&crate::model::ContextSource> {
        self.source.as_ref()
    }
    /// <p>The type of the context.</p>
    pub fn context_type(&self) -> std::option::Option<&str> {
        self.context_type.as_deref()
    }
    /// <p>The description of the context.</p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>A list of the context's properties.</p>
    pub fn properties(
        &self,
    ) -> std::option::Option<&std::collections::HashMap<std::string::String, std::string::String>>
    {
        self.properties.as_ref()
    }
    /// <p>When the context was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    pub fn created_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.created_by.as_ref()
    }
    /// <p>When the context was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    pub fn last_modified_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.last_modified_by.as_ref()
    }
    /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
    pub fn lineage_group_arn(&self) -> std::option::Option<&str> {
        self.lineage_group_arn.as_deref()
    }
}
/// See [`DescribeContextOutput`](crate::output::DescribeContextOutput).
pub mod describe_context_output {

    /// A builder for [`DescribeContextOutput`](crate::output::DescribeContextOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) context_name: std::option::Option<std::string::String>,
        pub(crate) context_arn: std::option::Option<std::string::String>,
        pub(crate) source: std::option::Option<crate::model::ContextSource>,
        pub(crate) context_type: std::option::Option<std::string::String>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) properties: std::option::Option<
            std::collections::HashMap<std::string::String, std::string::String>,
        >,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) created_by: std::option::Option<crate::model::UserContext>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_by: std::option::Option<crate::model::UserContext>,
        pub(crate) lineage_group_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The name of the context.</p>
        pub fn context_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.context_name = Some(input.into());
            self
        }
        /// <p>The name of the context.</p>
        pub fn set_context_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.context_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the context.</p>
        pub fn context_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.context_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the context.</p>
        pub fn set_context_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.context_arn = input;
            self
        }
        /// <p>The source of the context.</p>
        pub fn source(mut self, input: crate::model::ContextSource) -> Self {
            self.source = Some(input);
            self
        }
        /// <p>The source of the context.</p>
        pub fn set_source(
            mut self,
            input: std::option::Option<crate::model::ContextSource>,
        ) -> Self {
            self.source = input;
            self
        }
        /// <p>The type of the context.</p>
        pub fn context_type(mut self, input: impl Into<std::string::String>) -> Self {
            self.context_type = Some(input.into());
            self
        }
        /// <p>The type of the context.</p>
        pub fn set_context_type(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.context_type = input;
            self
        }
        /// <p>The description of the context.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p>The description of the context.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// Adds a key-value pair to `properties`.
        ///
        /// To override the contents of this collection use [`set_properties`](Self::set_properties).
        ///
        /// <p>A list of the context's properties.</p>
        pub fn properties(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            let mut hash_map = self.properties.unwrap_or_default();
            hash_map.insert(k.into(), v.into());
            self.properties = Some(hash_map);
            self
        }
        /// <p>A list of the context's properties.</p>
        pub fn set_properties(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.properties = input;
            self
        }
        /// <p>When the context was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>When the context was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn created_by(mut self, input: crate::model::UserContext) -> Self {
            self.created_by = Some(input);
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn set_created_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.created_by = input;
            self
        }
        /// <p>When the context was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>When the context was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn last_modified_by(mut self, input: crate::model::UserContext) -> Self {
            self.last_modified_by = Some(input);
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn set_last_modified_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.last_modified_by = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
        pub fn lineage_group_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.lineage_group_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
        pub fn set_lineage_group_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.lineage_group_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeContextOutput`](crate::output::DescribeContextOutput).
        pub fn build(self) -> crate::output::DescribeContextOutput {
            crate::output::DescribeContextOutput {
                context_name: self.context_name,
                context_arn: self.context_arn,
                source: self.source,
                context_type: self.context_type,
                description: self.description,
                properties: self.properties,
                creation_time: self.creation_time,
                created_by: self.created_by,
                last_modified_time: self.last_modified_time,
                last_modified_by: self.last_modified_by,
                lineage_group_arn: self.lineage_group_arn,
            }
        }
    }
}
impl DescribeContextOutput {
    /// Creates a new builder-style object to manufacture [`DescribeContextOutput`](crate::output::DescribeContextOutput).
    pub fn builder() -> crate::output::describe_context_output::Builder {
        crate::output::describe_context_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeCompilationJobOutput {
    /// <p>The name of the model compilation job.</p>
    #[doc(hidden)]
    pub compilation_job_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the model compilation job.</p>
    #[doc(hidden)]
    pub compilation_job_arn: std::option::Option<std::string::String>,
    /// <p>The status of the model compilation job.</p>
    #[doc(hidden)]
    pub compilation_job_status: std::option::Option<crate::model::CompilationJobStatus>,
    /// <p>The time when the model compilation job started the <code>CompilationJob</code> instances. </p>
    /// <p>You are billed for the time between this timestamp and the timestamp in the <code>DescribeCompilationJobResponse$CompilationEndTime</code> field. In Amazon CloudWatch Logs, the start time might be later than this time. That's because it takes time to download the compilation job, which depends on the size of the compilation job container. </p>
    #[doc(hidden)]
    pub compilation_start_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The time when the model compilation job on a compilation job instance ended. For a successful or stopped job, this is when the job's model artifacts have finished uploading. For a failed job, this is when Amazon SageMaker detected that the job failed. </p>
    #[doc(hidden)]
    pub compilation_end_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Specifies a limit to how long a model compilation job can run. When the job reaches the time limit, Amazon SageMaker ends the compilation job. Use this API to cap model training costs.</p>
    #[doc(hidden)]
    pub stopping_condition: std::option::Option<crate::model::StoppingCondition>,
    /// <p>The inference image to use when compiling a model. Specify an image only if the target device is a cloud instance.</p>
    #[doc(hidden)]
    pub inference_image: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the versioned model package that was provided to SageMaker Neo when you initiated a compilation job.</p>
    #[doc(hidden)]
    pub model_package_version_arn: std::option::Option<std::string::String>,
    /// <p>The time that the model compilation job was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The time that the status of the model compilation job was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>If a model compilation job failed, the reason it failed. </p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>Information about the location in Amazon S3 that has been configured for storing the model artifacts used in the compilation job.</p>
    #[doc(hidden)]
    pub model_artifacts: std::option::Option<crate::model::ModelArtifacts>,
    /// <p>Provides a BLAKE2 hash value that identifies the compiled model artifacts in Amazon S3.</p>
    #[doc(hidden)]
    pub model_digests: std::option::Option<crate::model::ModelDigests>,
    /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker assumes to perform the model compilation job.</p>
    #[doc(hidden)]
    pub role_arn: std::option::Option<std::string::String>,
    /// <p>Information about the location in Amazon S3 of the input model artifacts, the name and shape of the expected data inputs, and the framework in which the model was trained.</p>
    #[doc(hidden)]
    pub input_config: std::option::Option<crate::model::InputConfig>,
    /// <p>Information about the output location for the compiled model and the target device that the model runs on.</p>
    #[doc(hidden)]
    pub output_config: std::option::Option<crate::model::OutputConfig>,
    /// <p>A <code>VpcConfig</code> object that specifies the VPC that you want your compilation job to connect to. Control access to your models by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/neo-vpc.html">Protect Compilation Jobs by Using an Amazon Virtual Private Cloud</a>.</p>
    #[doc(hidden)]
    pub vpc_config: std::option::Option<crate::model::NeoVpcConfig>,
}
impl DescribeCompilationJobOutput {
    /// <p>The name of the model compilation job.</p>
    pub fn compilation_job_name(&self) -> std::option::Option<&str> {
        self.compilation_job_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the model compilation job.</p>
    pub fn compilation_job_arn(&self) -> std::option::Option<&str> {
        self.compilation_job_arn.as_deref()
    }
    /// <p>The status of the model compilation job.</p>
    pub fn compilation_job_status(
        &self,
    ) -> std::option::Option<&crate::model::CompilationJobStatus> {
        self.compilation_job_status.as_ref()
    }
    /// <p>The time when the model compilation job started the <code>CompilationJob</code> instances. </p>
    /// <p>You are billed for the time between this timestamp and the timestamp in the <code>DescribeCompilationJobResponse$CompilationEndTime</code> field. In Amazon CloudWatch Logs, the start time might be later than this time. That's because it takes time to download the compilation job, which depends on the size of the compilation job container. </p>
    pub fn compilation_start_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.compilation_start_time.as_ref()
    }
    /// <p>The time when the model compilation job on a compilation job instance ended. For a successful or stopped job, this is when the job's model artifacts have finished uploading. For a failed job, this is when Amazon SageMaker detected that the job failed. </p>
    pub fn compilation_end_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.compilation_end_time.as_ref()
    }
    /// <p>Specifies a limit to how long a model compilation job can run. When the job reaches the time limit, Amazon SageMaker ends the compilation job. Use this API to cap model training costs.</p>
    pub fn stopping_condition(&self) -> std::option::Option<&crate::model::StoppingCondition> {
        self.stopping_condition.as_ref()
    }
    /// <p>The inference image to use when compiling a model. Specify an image only if the target device is a cloud instance.</p>
    pub fn inference_image(&self) -> std::option::Option<&str> {
        self.inference_image.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the versioned model package that was provided to SageMaker Neo when you initiated a compilation job.</p>
    pub fn model_package_version_arn(&self) -> std::option::Option<&str> {
        self.model_package_version_arn.as_deref()
    }
    /// <p>The time that the model compilation job was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The time that the status of the model compilation job was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>If a model compilation job failed, the reason it failed. </p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>Information about the location in Amazon S3 that has been configured for storing the model artifacts used in the compilation job.</p>
    pub fn model_artifacts(&self) -> std::option::Option<&crate::model::ModelArtifacts> {
        self.model_artifacts.as_ref()
    }
    /// <p>Provides a BLAKE2 hash value that identifies the compiled model artifacts in Amazon S3.</p>
    pub fn model_digests(&self) -> std::option::Option<&crate::model::ModelDigests> {
        self.model_digests.as_ref()
    }
    /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker assumes to perform the model compilation job.</p>
    pub fn role_arn(&self) -> std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    /// <p>Information about the location in Amazon S3 of the input model artifacts, the name and shape of the expected data inputs, and the framework in which the model was trained.</p>
    pub fn input_config(&self) -> std::option::Option<&crate::model::InputConfig> {
        self.input_config.as_ref()
    }
    /// <p>Information about the output location for the compiled model and the target device that the model runs on.</p>
    pub fn output_config(&self) -> std::option::Option<&crate::model::OutputConfig> {
        self.output_config.as_ref()
    }
    /// <p>A <code>VpcConfig</code> object that specifies the VPC that you want your compilation job to connect to. Control access to your models by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/neo-vpc.html">Protect Compilation Jobs by Using an Amazon Virtual Private Cloud</a>.</p>
    pub fn vpc_config(&self) -> std::option::Option<&crate::model::NeoVpcConfig> {
        self.vpc_config.as_ref()
    }
}
/// See [`DescribeCompilationJobOutput`](crate::output::DescribeCompilationJobOutput).
pub mod describe_compilation_job_output {

    /// A builder for [`DescribeCompilationJobOutput`](crate::output::DescribeCompilationJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) compilation_job_name: std::option::Option<std::string::String>,
        pub(crate) compilation_job_arn: std::option::Option<std::string::String>,
        pub(crate) compilation_job_status: std::option::Option<crate::model::CompilationJobStatus>,
        pub(crate) compilation_start_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) compilation_end_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) stopping_condition: std::option::Option<crate::model::StoppingCondition>,
        pub(crate) inference_image: std::option::Option<std::string::String>,
        pub(crate) model_package_version_arn: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) model_artifacts: std::option::Option<crate::model::ModelArtifacts>,
        pub(crate) model_digests: std::option::Option<crate::model::ModelDigests>,
        pub(crate) role_arn: std::option::Option<std::string::String>,
        pub(crate) input_config: std::option::Option<crate::model::InputConfig>,
        pub(crate) output_config: std::option::Option<crate::model::OutputConfig>,
        pub(crate) vpc_config: std::option::Option<crate::model::NeoVpcConfig>,
    }
    impl Builder {
        /// <p>The name of the model compilation job.</p>
        pub fn compilation_job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.compilation_job_name = Some(input.into());
            self
        }
        /// <p>The name of the model compilation job.</p>
        pub fn set_compilation_job_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.compilation_job_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model compilation job.</p>
        pub fn compilation_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.compilation_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model compilation job.</p>
        pub fn set_compilation_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.compilation_job_arn = input;
            self
        }
        /// <p>The status of the model compilation job.</p>
        pub fn compilation_job_status(mut self, input: crate::model::CompilationJobStatus) -> Self {
            self.compilation_job_status = Some(input);
            self
        }
        /// <p>The status of the model compilation job.</p>
        pub fn set_compilation_job_status(
            mut self,
            input: std::option::Option<crate::model::CompilationJobStatus>,
        ) -> Self {
            self.compilation_job_status = input;
            self
        }
        /// <p>The time when the model compilation job started the <code>CompilationJob</code> instances. </p>
        /// <p>You are billed for the time between this timestamp and the timestamp in the <code>DescribeCompilationJobResponse$CompilationEndTime</code> field. In Amazon CloudWatch Logs, the start time might be later than this time. That's because it takes time to download the compilation job, which depends on the size of the compilation job container. </p>
        pub fn compilation_start_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.compilation_start_time = Some(input);
            self
        }
        /// <p>The time when the model compilation job started the <code>CompilationJob</code> instances. </p>
        /// <p>You are billed for the time between this timestamp and the timestamp in the <code>DescribeCompilationJobResponse$CompilationEndTime</code> field. In Amazon CloudWatch Logs, the start time might be later than this time. That's because it takes time to download the compilation job, which depends on the size of the compilation job container. </p>
        pub fn set_compilation_start_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.compilation_start_time = input;
            self
        }
        /// <p>The time when the model compilation job on a compilation job instance ended. For a successful or stopped job, this is when the job's model artifacts have finished uploading. For a failed job, this is when Amazon SageMaker detected that the job failed. </p>
        pub fn compilation_end_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.compilation_end_time = Some(input);
            self
        }
        /// <p>The time when the model compilation job on a compilation job instance ended. For a successful or stopped job, this is when the job's model artifacts have finished uploading. For a failed job, this is when Amazon SageMaker detected that the job failed. </p>
        pub fn set_compilation_end_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.compilation_end_time = input;
            self
        }
        /// <p>Specifies a limit to how long a model compilation job can run. When the job reaches the time limit, Amazon SageMaker ends the compilation job. Use this API to cap model training costs.</p>
        pub fn stopping_condition(mut self, input: crate::model::StoppingCondition) -> Self {
            self.stopping_condition = Some(input);
            self
        }
        /// <p>Specifies a limit to how long a model compilation job can run. When the job reaches the time limit, Amazon SageMaker ends the compilation job. Use this API to cap model training costs.</p>
        pub fn set_stopping_condition(
            mut self,
            input: std::option::Option<crate::model::StoppingCondition>,
        ) -> Self {
            self.stopping_condition = input;
            self
        }
        /// <p>The inference image to use when compiling a model. Specify an image only if the target device is a cloud instance.</p>
        pub fn inference_image(mut self, input: impl Into<std::string::String>) -> Self {
            self.inference_image = Some(input.into());
            self
        }
        /// <p>The inference image to use when compiling a model. Specify an image only if the target device is a cloud instance.</p>
        pub fn set_inference_image(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inference_image = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the versioned model package that was provided to SageMaker Neo when you initiated a compilation job.</p>
        pub fn model_package_version_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_package_version_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the versioned model package that was provided to SageMaker Neo when you initiated a compilation job.</p>
        pub fn set_model_package_version_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_package_version_arn = input;
            self
        }
        /// <p>The time that the model compilation job was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The time that the model compilation job was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The time that the status of the model compilation job was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>The time that the status of the model compilation job was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>If a model compilation job failed, the reason it failed. </p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>If a model compilation job failed, the reason it failed. </p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// <p>Information about the location in Amazon S3 that has been configured for storing the model artifacts used in the compilation job.</p>
        pub fn model_artifacts(mut self, input: crate::model::ModelArtifacts) -> Self {
            self.model_artifacts = Some(input);
            self
        }
        /// <p>Information about the location in Amazon S3 that has been configured for storing the model artifacts used in the compilation job.</p>
        pub fn set_model_artifacts(
            mut self,
            input: std::option::Option<crate::model::ModelArtifacts>,
        ) -> Self {
            self.model_artifacts = input;
            self
        }
        /// <p>Provides a BLAKE2 hash value that identifies the compiled model artifacts in Amazon S3.</p>
        pub fn model_digests(mut self, input: crate::model::ModelDigests) -> Self {
            self.model_digests = Some(input);
            self
        }
        /// <p>Provides a BLAKE2 hash value that identifies the compiled model artifacts in Amazon S3.</p>
        pub fn set_model_digests(
            mut self,
            input: std::option::Option<crate::model::ModelDigests>,
        ) -> Self {
            self.model_digests = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker assumes to perform the model compilation job.</p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.role_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker assumes to perform the model compilation job.</p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.role_arn = input;
            self
        }
        /// <p>Information about the location in Amazon S3 of the input model artifacts, the name and shape of the expected data inputs, and the framework in which the model was trained.</p>
        pub fn input_config(mut self, input: crate::model::InputConfig) -> Self {
            self.input_config = Some(input);
            self
        }
        /// <p>Information about the location in Amazon S3 of the input model artifacts, the name and shape of the expected data inputs, and the framework in which the model was trained.</p>
        pub fn set_input_config(
            mut self,
            input: std::option::Option<crate::model::InputConfig>,
        ) -> Self {
            self.input_config = input;
            self
        }
        /// <p>Information about the output location for the compiled model and the target device that the model runs on.</p>
        pub fn output_config(mut self, input: crate::model::OutputConfig) -> Self {
            self.output_config = Some(input);
            self
        }
        /// <p>Information about the output location for the compiled model and the target device that the model runs on.</p>
        pub fn set_output_config(
            mut self,
            input: std::option::Option<crate::model::OutputConfig>,
        ) -> Self {
            self.output_config = input;
            self
        }
        /// <p>A <code>VpcConfig</code> object that specifies the VPC that you want your compilation job to connect to. Control access to your models by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/neo-vpc.html">Protect Compilation Jobs by Using an Amazon Virtual Private Cloud</a>.</p>
        pub fn vpc_config(mut self, input: crate::model::NeoVpcConfig) -> Self {
            self.vpc_config = Some(input);
            self
        }
        /// <p>A <code>VpcConfig</code> object that specifies the VPC that you want your compilation job to connect to. Control access to your models by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/neo-vpc.html">Protect Compilation Jobs by Using an Amazon Virtual Private Cloud</a>.</p>
        pub fn set_vpc_config(
            mut self,
            input: std::option::Option<crate::model::NeoVpcConfig>,
        ) -> Self {
            self.vpc_config = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeCompilationJobOutput`](crate::output::DescribeCompilationJobOutput).
        pub fn build(self) -> crate::output::DescribeCompilationJobOutput {
            crate::output::DescribeCompilationJobOutput {
                compilation_job_name: self.compilation_job_name,
                compilation_job_arn: self.compilation_job_arn,
                compilation_job_status: self.compilation_job_status,
                compilation_start_time: self.compilation_start_time,
                compilation_end_time: self.compilation_end_time,
                stopping_condition: self.stopping_condition,
                inference_image: self.inference_image,
                model_package_version_arn: self.model_package_version_arn,
                creation_time: self.creation_time,
                last_modified_time: self.last_modified_time,
                failure_reason: self.failure_reason,
                model_artifacts: self.model_artifacts,
                model_digests: self.model_digests,
                role_arn: self.role_arn,
                input_config: self.input_config,
                output_config: self.output_config,
                vpc_config: self.vpc_config,
            }
        }
    }
}
impl DescribeCompilationJobOutput {
    /// Creates a new builder-style object to manufacture [`DescribeCompilationJobOutput`](crate::output::DescribeCompilationJobOutput).
    pub fn builder() -> crate::output::describe_compilation_job_output::Builder {
        crate::output::describe_compilation_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeCodeRepositoryOutput {
    /// <p>The name of the Git repository.</p>
    #[doc(hidden)]
    pub code_repository_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the Git repository.</p>
    #[doc(hidden)]
    pub code_repository_arn: std::option::Option<std::string::String>,
    /// <p>The date and time that the repository was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The date and time that the repository was last changed.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Configuration details about the repository, including the URL where the repository is located, the default branch, and the Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager secret that contains the credentials used to access the repository.</p>
    #[doc(hidden)]
    pub git_config: std::option::Option<crate::model::GitConfig>,
}
impl DescribeCodeRepositoryOutput {
    /// <p>The name of the Git repository.</p>
    pub fn code_repository_name(&self) -> std::option::Option<&str> {
        self.code_repository_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the Git repository.</p>
    pub fn code_repository_arn(&self) -> std::option::Option<&str> {
        self.code_repository_arn.as_deref()
    }
    /// <p>The date and time that the repository was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The date and time that the repository was last changed.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>Configuration details about the repository, including the URL where the repository is located, the default branch, and the Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager secret that contains the credentials used to access the repository.</p>
    pub fn git_config(&self) -> std::option::Option<&crate::model::GitConfig> {
        self.git_config.as_ref()
    }
}
/// See [`DescribeCodeRepositoryOutput`](crate::output::DescribeCodeRepositoryOutput).
pub mod describe_code_repository_output {

    /// A builder for [`DescribeCodeRepositoryOutput`](crate::output::DescribeCodeRepositoryOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) code_repository_name: std::option::Option<std::string::String>,
        pub(crate) code_repository_arn: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) git_config: std::option::Option<crate::model::GitConfig>,
    }
    impl Builder {
        /// <p>The name of the Git repository.</p>
        pub fn code_repository_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.code_repository_name = Some(input.into());
            self
        }
        /// <p>The name of the Git repository.</p>
        pub fn set_code_repository_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.code_repository_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the Git repository.</p>
        pub fn code_repository_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.code_repository_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the Git repository.</p>
        pub fn set_code_repository_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.code_repository_arn = input;
            self
        }
        /// <p>The date and time that the repository was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The date and time that the repository was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The date and time that the repository was last changed.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>The date and time that the repository was last changed.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>Configuration details about the repository, including the URL where the repository is located, the default branch, and the Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager secret that contains the credentials used to access the repository.</p>
        pub fn git_config(mut self, input: crate::model::GitConfig) -> Self {
            self.git_config = Some(input);
            self
        }
        /// <p>Configuration details about the repository, including the URL where the repository is located, the default branch, and the Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager secret that contains the credentials used to access the repository.</p>
        pub fn set_git_config(
            mut self,
            input: std::option::Option<crate::model::GitConfig>,
        ) -> Self {
            self.git_config = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeCodeRepositoryOutput`](crate::output::DescribeCodeRepositoryOutput).
        pub fn build(self) -> crate::output::DescribeCodeRepositoryOutput {
            crate::output::DescribeCodeRepositoryOutput {
                code_repository_name: self.code_repository_name,
                code_repository_arn: self.code_repository_arn,
                creation_time: self.creation_time,
                last_modified_time: self.last_modified_time,
                git_config: self.git_config,
            }
        }
    }
}
impl DescribeCodeRepositoryOutput {
    /// Creates a new builder-style object to manufacture [`DescribeCodeRepositoryOutput`](crate::output::DescribeCodeRepositoryOutput).
    pub fn builder() -> crate::output::describe_code_repository_output::Builder {
        crate::output::describe_code_repository_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeAutoMlJobOutput {
    /// <p>Returns the name of the AutoML job.</p>
    #[doc(hidden)]
    pub auto_ml_job_name: std::option::Option<std::string::String>,
    /// <p>Returns the ARN of the AutoML job.</p>
    #[doc(hidden)]
    pub auto_ml_job_arn: std::option::Option<std::string::String>,
    /// <p>Returns the input data configuration for the AutoML job..</p>
    #[doc(hidden)]
    pub input_data_config: std::option::Option<std::vec::Vec<crate::model::AutoMlChannel>>,
    /// <p>Returns the job's output data config.</p>
    #[doc(hidden)]
    pub output_data_config: std::option::Option<crate::model::AutoMlOutputDataConfig>,
    /// <p>The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that has read permission to the input data location and write permission to the output data location in Amazon S3.</p>
    #[doc(hidden)]
    pub role_arn: std::option::Option<std::string::String>,
    /// <p>Returns the job's objective.</p>
    #[doc(hidden)]
    pub auto_ml_job_objective: std::option::Option<crate::model::AutoMlJobObjective>,
    /// <p>Returns the job's problem type.</p>
    #[doc(hidden)]
    pub problem_type: std::option::Option<crate::model::ProblemType>,
    /// <p>Returns the configuration for the AutoML job.</p>
    #[doc(hidden)]
    pub auto_ml_job_config: std::option::Option<crate::model::AutoMlJobConfig>,
    /// <p>Returns the creation time of the AutoML job.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Returns the end time of the AutoML job.</p>
    #[doc(hidden)]
    pub end_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Returns the job's last modified time.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Returns the failure reason for an AutoML job, when applicable.</p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>Returns a list of reasons for partial failures within an AutoML job.</p>
    #[doc(hidden)]
    pub partial_failure_reasons:
        std::option::Option<std::vec::Vec<crate::model::AutoMlPartialFailureReason>>,
    /// <p>The best model candidate selected by SageMaker Autopilot using both the best objective metric and lowest <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-metrics-validation.html">InferenceLatency</a> for an experiment.</p>
    #[doc(hidden)]
    pub best_candidate: std::option::Option<crate::model::AutoMlCandidate>,
    /// <p>Returns the status of the AutoML job.</p>
    #[doc(hidden)]
    pub auto_ml_job_status: std::option::Option<crate::model::AutoMlJobStatus>,
    /// <p>Returns the secondary status of the AutoML job.</p>
    #[doc(hidden)]
    pub auto_ml_job_secondary_status: std::option::Option<crate::model::AutoMlJobSecondaryStatus>,
    /// <p>Indicates whether the output for an AutoML job generates candidate definitions only.</p>
    #[doc(hidden)]
    pub generate_candidate_definitions_only: bool,
    /// <p>Returns information on the job's artifacts found in <code>AutoMLJobArtifacts</code>.</p>
    #[doc(hidden)]
    pub auto_ml_job_artifacts: std::option::Option<crate::model::AutoMlJobArtifacts>,
    /// <p>This contains <code>ProblemType</code>, <code>AutoMLJobObjective</code>, and <code>CompletionCriteria</code>. If you do not provide these values, they are auto-inferred. If you do provide them, the values used are the ones you provide.</p>
    #[doc(hidden)]
    pub resolved_attributes: std::option::Option<crate::model::ResolvedAttributes>,
    /// <p>Indicates whether the model was deployed automatically to an endpoint and the name of that endpoint if deployed automatically.</p>
    #[doc(hidden)]
    pub model_deploy_config: std::option::Option<crate::model::ModelDeployConfig>,
    /// <p>Provides information about endpoint for the model deployment.</p>
    #[doc(hidden)]
    pub model_deploy_result: std::option::Option<crate::model::ModelDeployResult>,
}
impl DescribeAutoMlJobOutput {
    /// <p>Returns the name of the AutoML job.</p>
    pub fn auto_ml_job_name(&self) -> std::option::Option<&str> {
        self.auto_ml_job_name.as_deref()
    }
    /// <p>Returns the ARN of the AutoML job.</p>
    pub fn auto_ml_job_arn(&self) -> std::option::Option<&str> {
        self.auto_ml_job_arn.as_deref()
    }
    /// <p>Returns the input data configuration for the AutoML job..</p>
    pub fn input_data_config(&self) -> std::option::Option<&[crate::model::AutoMlChannel]> {
        self.input_data_config.as_deref()
    }
    /// <p>Returns the job's output data config.</p>
    pub fn output_data_config(&self) -> std::option::Option<&crate::model::AutoMlOutputDataConfig> {
        self.output_data_config.as_ref()
    }
    /// <p>The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that has read permission to the input data location and write permission to the output data location in Amazon S3.</p>
    pub fn role_arn(&self) -> std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    /// <p>Returns the job's objective.</p>
    pub fn auto_ml_job_objective(&self) -> std::option::Option<&crate::model::AutoMlJobObjective> {
        self.auto_ml_job_objective.as_ref()
    }
    /// <p>Returns the job's problem type.</p>
    pub fn problem_type(&self) -> std::option::Option<&crate::model::ProblemType> {
        self.problem_type.as_ref()
    }
    /// <p>Returns the configuration for the AutoML job.</p>
    pub fn auto_ml_job_config(&self) -> std::option::Option<&crate::model::AutoMlJobConfig> {
        self.auto_ml_job_config.as_ref()
    }
    /// <p>Returns the creation time of the AutoML job.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>Returns the end time of the AutoML job.</p>
    pub fn end_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.end_time.as_ref()
    }
    /// <p>Returns the job's last modified time.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>Returns the failure reason for an AutoML job, when applicable.</p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>Returns a list of reasons for partial failures within an AutoML job.</p>
    pub fn partial_failure_reasons(
        &self,
    ) -> std::option::Option<&[crate::model::AutoMlPartialFailureReason]> {
        self.partial_failure_reasons.as_deref()
    }
    /// <p>The best model candidate selected by SageMaker Autopilot using both the best objective metric and lowest <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-metrics-validation.html">InferenceLatency</a> for an experiment.</p>
    pub fn best_candidate(&self) -> std::option::Option<&crate::model::AutoMlCandidate> {
        self.best_candidate.as_ref()
    }
    /// <p>Returns the status of the AutoML job.</p>
    pub fn auto_ml_job_status(&self) -> std::option::Option<&crate::model::AutoMlJobStatus> {
        self.auto_ml_job_status.as_ref()
    }
    /// <p>Returns the secondary status of the AutoML job.</p>
    pub fn auto_ml_job_secondary_status(
        &self,
    ) -> std::option::Option<&crate::model::AutoMlJobSecondaryStatus> {
        self.auto_ml_job_secondary_status.as_ref()
    }
    /// <p>Indicates whether the output for an AutoML job generates candidate definitions only.</p>
    pub fn generate_candidate_definitions_only(&self) -> bool {
        self.generate_candidate_definitions_only
    }
    /// <p>Returns information on the job's artifacts found in <code>AutoMLJobArtifacts</code>.</p>
    pub fn auto_ml_job_artifacts(&self) -> std::option::Option<&crate::model::AutoMlJobArtifacts> {
        self.auto_ml_job_artifacts.as_ref()
    }
    /// <p>This contains <code>ProblemType</code>, <code>AutoMLJobObjective</code>, and <code>CompletionCriteria</code>. If you do not provide these values, they are auto-inferred. If you do provide them, the values used are the ones you provide.</p>
    pub fn resolved_attributes(&self) -> std::option::Option<&crate::model::ResolvedAttributes> {
        self.resolved_attributes.as_ref()
    }
    /// <p>Indicates whether the model was deployed automatically to an endpoint and the name of that endpoint if deployed automatically.</p>
    pub fn model_deploy_config(&self) -> std::option::Option<&crate::model::ModelDeployConfig> {
        self.model_deploy_config.as_ref()
    }
    /// <p>Provides information about endpoint for the model deployment.</p>
    pub fn model_deploy_result(&self) -> std::option::Option<&crate::model::ModelDeployResult> {
        self.model_deploy_result.as_ref()
    }
}
/// See [`DescribeAutoMlJobOutput`](crate::output::DescribeAutoMlJobOutput).
pub mod describe_auto_ml_job_output {

    /// A builder for [`DescribeAutoMlJobOutput`](crate::output::DescribeAutoMlJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) auto_ml_job_name: std::option::Option<std::string::String>,
        pub(crate) auto_ml_job_arn: std::option::Option<std::string::String>,
        pub(crate) input_data_config:
            std::option::Option<std::vec::Vec<crate::model::AutoMlChannel>>,
        pub(crate) output_data_config: std::option::Option<crate::model::AutoMlOutputDataConfig>,
        pub(crate) role_arn: std::option::Option<std::string::String>,
        pub(crate) auto_ml_job_objective: std::option::Option<crate::model::AutoMlJobObjective>,
        pub(crate) problem_type: std::option::Option<crate::model::ProblemType>,
        pub(crate) auto_ml_job_config: std::option::Option<crate::model::AutoMlJobConfig>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) end_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) partial_failure_reasons:
            std::option::Option<std::vec::Vec<crate::model::AutoMlPartialFailureReason>>,
        pub(crate) best_candidate: std::option::Option<crate::model::AutoMlCandidate>,
        pub(crate) auto_ml_job_status: std::option::Option<crate::model::AutoMlJobStatus>,
        pub(crate) auto_ml_job_secondary_status:
            std::option::Option<crate::model::AutoMlJobSecondaryStatus>,
        pub(crate) generate_candidate_definitions_only: std::option::Option<bool>,
        pub(crate) auto_ml_job_artifacts: std::option::Option<crate::model::AutoMlJobArtifacts>,
        pub(crate) resolved_attributes: std::option::Option<crate::model::ResolvedAttributes>,
        pub(crate) model_deploy_config: std::option::Option<crate::model::ModelDeployConfig>,
        pub(crate) model_deploy_result: std::option::Option<crate::model::ModelDeployResult>,
    }
    impl Builder {
        /// <p>Returns the name of the AutoML job.</p>
        pub fn auto_ml_job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.auto_ml_job_name = Some(input.into());
            self
        }
        /// <p>Returns the name of the AutoML job.</p>
        pub fn set_auto_ml_job_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.auto_ml_job_name = input;
            self
        }
        /// <p>Returns the ARN of the AutoML job.</p>
        pub fn auto_ml_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.auto_ml_job_arn = Some(input.into());
            self
        }
        /// <p>Returns the ARN of the AutoML job.</p>
        pub fn set_auto_ml_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.auto_ml_job_arn = input;
            self
        }
        /// Appends an item to `input_data_config`.
        ///
        /// To override the contents of this collection use [`set_input_data_config`](Self::set_input_data_config).
        ///
        /// <p>Returns the input data configuration for the AutoML job..</p>
        pub fn input_data_config(mut self, input: crate::model::AutoMlChannel) -> Self {
            let mut v = self.input_data_config.unwrap_or_default();
            v.push(input);
            self.input_data_config = Some(v);
            self
        }
        /// <p>Returns the input data configuration for the AutoML job..</p>
        pub fn set_input_data_config(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::AutoMlChannel>>,
        ) -> Self {
            self.input_data_config = input;
            self
        }
        /// <p>Returns the job's output data config.</p>
        pub fn output_data_config(mut self, input: crate::model::AutoMlOutputDataConfig) -> Self {
            self.output_data_config = Some(input);
            self
        }
        /// <p>Returns the job's output data config.</p>
        pub fn set_output_data_config(
            mut self,
            input: std::option::Option<crate::model::AutoMlOutputDataConfig>,
        ) -> Self {
            self.output_data_config = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that has read permission to the input data location and write permission to the output data location in Amazon S3.</p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.role_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that has read permission to the input data location and write permission to the output data location in Amazon S3.</p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.role_arn = input;
            self
        }
        /// <p>Returns the job's objective.</p>
        pub fn auto_ml_job_objective(mut self, input: crate::model::AutoMlJobObjective) -> Self {
            self.auto_ml_job_objective = Some(input);
            self
        }
        /// <p>Returns the job's objective.</p>
        pub fn set_auto_ml_job_objective(
            mut self,
            input: std::option::Option<crate::model::AutoMlJobObjective>,
        ) -> Self {
            self.auto_ml_job_objective = input;
            self
        }
        /// <p>Returns the job's problem type.</p>
        pub fn problem_type(mut self, input: crate::model::ProblemType) -> Self {
            self.problem_type = Some(input);
            self
        }
        /// <p>Returns the job's problem type.</p>
        pub fn set_problem_type(
            mut self,
            input: std::option::Option<crate::model::ProblemType>,
        ) -> Self {
            self.problem_type = input;
            self
        }
        /// <p>Returns the configuration for the AutoML job.</p>
        pub fn auto_ml_job_config(mut self, input: crate::model::AutoMlJobConfig) -> Self {
            self.auto_ml_job_config = Some(input);
            self
        }
        /// <p>Returns the configuration for the AutoML job.</p>
        pub fn set_auto_ml_job_config(
            mut self,
            input: std::option::Option<crate::model::AutoMlJobConfig>,
        ) -> Self {
            self.auto_ml_job_config = input;
            self
        }
        /// <p>Returns the creation time of the AutoML job.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>Returns the creation time of the AutoML job.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>Returns the end time of the AutoML job.</p>
        pub fn end_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.end_time = Some(input);
            self
        }
        /// <p>Returns the end time of the AutoML job.</p>
        pub fn set_end_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.end_time = input;
            self
        }
        /// <p>Returns the job's last modified time.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>Returns the job's last modified time.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>Returns the failure reason for an AutoML job, when applicable.</p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>Returns the failure reason for an AutoML job, when applicable.</p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// Appends an item to `partial_failure_reasons`.
        ///
        /// To override the contents of this collection use [`set_partial_failure_reasons`](Self::set_partial_failure_reasons).
        ///
        /// <p>Returns a list of reasons for partial failures within an AutoML job.</p>
        pub fn partial_failure_reasons(
            mut self,
            input: crate::model::AutoMlPartialFailureReason,
        ) -> Self {
            let mut v = self.partial_failure_reasons.unwrap_or_default();
            v.push(input);
            self.partial_failure_reasons = Some(v);
            self
        }
        /// <p>Returns a list of reasons for partial failures within an AutoML job.</p>
        pub fn set_partial_failure_reasons(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::AutoMlPartialFailureReason>>,
        ) -> Self {
            self.partial_failure_reasons = input;
            self
        }
        /// <p>The best model candidate selected by SageMaker Autopilot using both the best objective metric and lowest <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-metrics-validation.html">InferenceLatency</a> for an experiment.</p>
        pub fn best_candidate(mut self, input: crate::model::AutoMlCandidate) -> Self {
            self.best_candidate = Some(input);
            self
        }
        /// <p>The best model candidate selected by SageMaker Autopilot using both the best objective metric and lowest <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-metrics-validation.html">InferenceLatency</a> for an experiment.</p>
        pub fn set_best_candidate(
            mut self,
            input: std::option::Option<crate::model::AutoMlCandidate>,
        ) -> Self {
            self.best_candidate = input;
            self
        }
        /// <p>Returns the status of the AutoML job.</p>
        pub fn auto_ml_job_status(mut self, input: crate::model::AutoMlJobStatus) -> Self {
            self.auto_ml_job_status = Some(input);
            self
        }
        /// <p>Returns the status of the AutoML job.</p>
        pub fn set_auto_ml_job_status(
            mut self,
            input: std::option::Option<crate::model::AutoMlJobStatus>,
        ) -> Self {
            self.auto_ml_job_status = input;
            self
        }
        /// <p>Returns the secondary status of the AutoML job.</p>
        pub fn auto_ml_job_secondary_status(
            mut self,
            input: crate::model::AutoMlJobSecondaryStatus,
        ) -> Self {
            self.auto_ml_job_secondary_status = Some(input);
            self
        }
        /// <p>Returns the secondary status of the AutoML job.</p>
        pub fn set_auto_ml_job_secondary_status(
            mut self,
            input: std::option::Option<crate::model::AutoMlJobSecondaryStatus>,
        ) -> Self {
            self.auto_ml_job_secondary_status = input;
            self
        }
        /// <p>Indicates whether the output for an AutoML job generates candidate definitions only.</p>
        pub fn generate_candidate_definitions_only(mut self, input: bool) -> Self {
            self.generate_candidate_definitions_only = Some(input);
            self
        }
        /// <p>Indicates whether the output for an AutoML job generates candidate definitions only.</p>
        pub fn set_generate_candidate_definitions_only(
            mut self,
            input: std::option::Option<bool>,
        ) -> Self {
            self.generate_candidate_definitions_only = input;
            self
        }
        /// <p>Returns information on the job's artifacts found in <code>AutoMLJobArtifacts</code>.</p>
        pub fn auto_ml_job_artifacts(mut self, input: crate::model::AutoMlJobArtifacts) -> Self {
            self.auto_ml_job_artifacts = Some(input);
            self
        }
        /// <p>Returns information on the job's artifacts found in <code>AutoMLJobArtifacts</code>.</p>
        pub fn set_auto_ml_job_artifacts(
            mut self,
            input: std::option::Option<crate::model::AutoMlJobArtifacts>,
        ) -> Self {
            self.auto_ml_job_artifacts = input;
            self
        }
        /// <p>This contains <code>ProblemType</code>, <code>AutoMLJobObjective</code>, and <code>CompletionCriteria</code>. If you do not provide these values, they are auto-inferred. If you do provide them, the values used are the ones you provide.</p>
        pub fn resolved_attributes(mut self, input: crate::model::ResolvedAttributes) -> Self {
            self.resolved_attributes = Some(input);
            self
        }
        /// <p>This contains <code>ProblemType</code>, <code>AutoMLJobObjective</code>, and <code>CompletionCriteria</code>. If you do not provide these values, they are auto-inferred. If you do provide them, the values used are the ones you provide.</p>
        pub fn set_resolved_attributes(
            mut self,
            input: std::option::Option<crate::model::ResolvedAttributes>,
        ) -> Self {
            self.resolved_attributes = input;
            self
        }
        /// <p>Indicates whether the model was deployed automatically to an endpoint and the name of that endpoint if deployed automatically.</p>
        pub fn model_deploy_config(mut self, input: crate::model::ModelDeployConfig) -> Self {
            self.model_deploy_config = Some(input);
            self
        }
        /// <p>Indicates whether the model was deployed automatically to an endpoint and the name of that endpoint if deployed automatically.</p>
        pub fn set_model_deploy_config(
            mut self,
            input: std::option::Option<crate::model::ModelDeployConfig>,
        ) -> Self {
            self.model_deploy_config = input;
            self
        }
        /// <p>Provides information about endpoint for the model deployment.</p>
        pub fn model_deploy_result(mut self, input: crate::model::ModelDeployResult) -> Self {
            self.model_deploy_result = Some(input);
            self
        }
        /// <p>Provides information about endpoint for the model deployment.</p>
        pub fn set_model_deploy_result(
            mut self,
            input: std::option::Option<crate::model::ModelDeployResult>,
        ) -> Self {
            self.model_deploy_result = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeAutoMlJobOutput`](crate::output::DescribeAutoMlJobOutput).
        pub fn build(self) -> crate::output::DescribeAutoMlJobOutput {
            crate::output::DescribeAutoMlJobOutput {
                auto_ml_job_name: self.auto_ml_job_name,
                auto_ml_job_arn: self.auto_ml_job_arn,
                input_data_config: self.input_data_config,
                output_data_config: self.output_data_config,
                role_arn: self.role_arn,
                auto_ml_job_objective: self.auto_ml_job_objective,
                problem_type: self.problem_type,
                auto_ml_job_config: self.auto_ml_job_config,
                creation_time: self.creation_time,
                end_time: self.end_time,
                last_modified_time: self.last_modified_time,
                failure_reason: self.failure_reason,
                partial_failure_reasons: self.partial_failure_reasons,
                best_candidate: self.best_candidate,
                auto_ml_job_status: self.auto_ml_job_status,
                auto_ml_job_secondary_status: self.auto_ml_job_secondary_status,
                generate_candidate_definitions_only: self
                    .generate_candidate_definitions_only
                    .unwrap_or_default(),
                auto_ml_job_artifacts: self.auto_ml_job_artifacts,
                resolved_attributes: self.resolved_attributes,
                model_deploy_config: self.model_deploy_config,
                model_deploy_result: self.model_deploy_result,
            }
        }
    }
}
impl DescribeAutoMlJobOutput {
    /// Creates a new builder-style object to manufacture [`DescribeAutoMlJobOutput`](crate::output::DescribeAutoMlJobOutput).
    pub fn builder() -> crate::output::describe_auto_ml_job_output::Builder {
        crate::output::describe_auto_ml_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeArtifactOutput {
    /// <p>The name of the artifact.</p>
    #[doc(hidden)]
    pub artifact_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the artifact.</p>
    #[doc(hidden)]
    pub artifact_arn: std::option::Option<std::string::String>,
    /// <p>The source of the artifact.</p>
    #[doc(hidden)]
    pub source: std::option::Option<crate::model::ArtifactSource>,
    /// <p>The type of the artifact.</p>
    #[doc(hidden)]
    pub artifact_type: std::option::Option<std::string::String>,
    /// <p>A list of the artifact's properties.</p>
    #[doc(hidden)]
    pub properties:
        std::option::Option<std::collections::HashMap<std::string::String, std::string::String>>,
    /// <p>When the artifact was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    #[doc(hidden)]
    pub created_by: std::option::Option<crate::model::UserContext>,
    /// <p>When the artifact was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    #[doc(hidden)]
    pub last_modified_by: std::option::Option<crate::model::UserContext>,
    /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
    #[doc(hidden)]
    pub metadata_properties: std::option::Option<crate::model::MetadataProperties>,
    /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
    #[doc(hidden)]
    pub lineage_group_arn: std::option::Option<std::string::String>,
}
impl DescribeArtifactOutput {
    /// <p>The name of the artifact.</p>
    pub fn artifact_name(&self) -> std::option::Option<&str> {
        self.artifact_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the artifact.</p>
    pub fn artifact_arn(&self) -> std::option::Option<&str> {
        self.artifact_arn.as_deref()
    }
    /// <p>The source of the artifact.</p>
    pub fn source(&self) -> std::option::Option<&crate::model::ArtifactSource> {
        self.source.as_ref()
    }
    /// <p>The type of the artifact.</p>
    pub fn artifact_type(&self) -> std::option::Option<&str> {
        self.artifact_type.as_deref()
    }
    /// <p>A list of the artifact's properties.</p>
    pub fn properties(
        &self,
    ) -> std::option::Option<&std::collections::HashMap<std::string::String, std::string::String>>
    {
        self.properties.as_ref()
    }
    /// <p>When the artifact was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    pub fn created_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.created_by.as_ref()
    }
    /// <p>When the artifact was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    pub fn last_modified_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.last_modified_by.as_ref()
    }
    /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
    pub fn metadata_properties(&self) -> std::option::Option<&crate::model::MetadataProperties> {
        self.metadata_properties.as_ref()
    }
    /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
    pub fn lineage_group_arn(&self) -> std::option::Option<&str> {
        self.lineage_group_arn.as_deref()
    }
}
/// See [`DescribeArtifactOutput`](crate::output::DescribeArtifactOutput).
pub mod describe_artifact_output {

    /// A builder for [`DescribeArtifactOutput`](crate::output::DescribeArtifactOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) artifact_name: std::option::Option<std::string::String>,
        pub(crate) artifact_arn: std::option::Option<std::string::String>,
        pub(crate) source: std::option::Option<crate::model::ArtifactSource>,
        pub(crate) artifact_type: std::option::Option<std::string::String>,
        pub(crate) properties: std::option::Option<
            std::collections::HashMap<std::string::String, std::string::String>,
        >,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) created_by: std::option::Option<crate::model::UserContext>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_by: std::option::Option<crate::model::UserContext>,
        pub(crate) metadata_properties: std::option::Option<crate::model::MetadataProperties>,
        pub(crate) lineage_group_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The name of the artifact.</p>
        pub fn artifact_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.artifact_name = Some(input.into());
            self
        }
        /// <p>The name of the artifact.</p>
        pub fn set_artifact_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.artifact_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the artifact.</p>
        pub fn artifact_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.artifact_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the artifact.</p>
        pub fn set_artifact_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.artifact_arn = input;
            self
        }
        /// <p>The source of the artifact.</p>
        pub fn source(mut self, input: crate::model::ArtifactSource) -> Self {
            self.source = Some(input);
            self
        }
        /// <p>The source of the artifact.</p>
        pub fn set_source(
            mut self,
            input: std::option::Option<crate::model::ArtifactSource>,
        ) -> Self {
            self.source = input;
            self
        }
        /// <p>The type of the artifact.</p>
        pub fn artifact_type(mut self, input: impl Into<std::string::String>) -> Self {
            self.artifact_type = Some(input.into());
            self
        }
        /// <p>The type of the artifact.</p>
        pub fn set_artifact_type(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.artifact_type = input;
            self
        }
        /// Adds a key-value pair to `properties`.
        ///
        /// To override the contents of this collection use [`set_properties`](Self::set_properties).
        ///
        /// <p>A list of the artifact's properties.</p>
        pub fn properties(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            let mut hash_map = self.properties.unwrap_or_default();
            hash_map.insert(k.into(), v.into());
            self.properties = Some(hash_map);
            self
        }
        /// <p>A list of the artifact's properties.</p>
        pub fn set_properties(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.properties = input;
            self
        }
        /// <p>When the artifact was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>When the artifact was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn created_by(mut self, input: crate::model::UserContext) -> Self {
            self.created_by = Some(input);
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn set_created_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.created_by = input;
            self
        }
        /// <p>When the artifact was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>When the artifact was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn last_modified_by(mut self, input: crate::model::UserContext) -> Self {
            self.last_modified_by = Some(input);
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn set_last_modified_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.last_modified_by = input;
            self
        }
        /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
        pub fn metadata_properties(mut self, input: crate::model::MetadataProperties) -> Self {
            self.metadata_properties = Some(input);
            self
        }
        /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
        pub fn set_metadata_properties(
            mut self,
            input: std::option::Option<crate::model::MetadataProperties>,
        ) -> Self {
            self.metadata_properties = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
        pub fn lineage_group_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.lineage_group_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
        pub fn set_lineage_group_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.lineage_group_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeArtifactOutput`](crate::output::DescribeArtifactOutput).
        pub fn build(self) -> crate::output::DescribeArtifactOutput {
            crate::output::DescribeArtifactOutput {
                artifact_name: self.artifact_name,
                artifact_arn: self.artifact_arn,
                source: self.source,
                artifact_type: self.artifact_type,
                properties: self.properties,
                creation_time: self.creation_time,
                created_by: self.created_by,
                last_modified_time: self.last_modified_time,
                last_modified_by: self.last_modified_by,
                metadata_properties: self.metadata_properties,
                lineage_group_arn: self.lineage_group_arn,
            }
        }
    }
}
impl DescribeArtifactOutput {
    /// Creates a new builder-style object to manufacture [`DescribeArtifactOutput`](crate::output::DescribeArtifactOutput).
    pub fn builder() -> crate::output::describe_artifact_output::Builder {
        crate::output::describe_artifact_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeAppImageConfigOutput {
    /// <p>The Amazon Resource Name (ARN) of the AppImageConfig.</p>
    #[doc(hidden)]
    pub app_image_config_arn: std::option::Option<std::string::String>,
    /// <p>The name of the AppImageConfig.</p>
    #[doc(hidden)]
    pub app_image_config_name: std::option::Option<std::string::String>,
    /// <p>When the AppImageConfig was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>When the AppImageConfig was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The configuration of a KernelGateway app.</p>
    #[doc(hidden)]
    pub kernel_gateway_image_config: std::option::Option<crate::model::KernelGatewayImageConfig>,
}
impl DescribeAppImageConfigOutput {
    /// <p>The Amazon Resource Name (ARN) of the AppImageConfig.</p>
    pub fn app_image_config_arn(&self) -> std::option::Option<&str> {
        self.app_image_config_arn.as_deref()
    }
    /// <p>The name of the AppImageConfig.</p>
    pub fn app_image_config_name(&self) -> std::option::Option<&str> {
        self.app_image_config_name.as_deref()
    }
    /// <p>When the AppImageConfig was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>When the AppImageConfig was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>The configuration of a KernelGateway app.</p>
    pub fn kernel_gateway_image_config(
        &self,
    ) -> std::option::Option<&crate::model::KernelGatewayImageConfig> {
        self.kernel_gateway_image_config.as_ref()
    }
}
/// See [`DescribeAppImageConfigOutput`](crate::output::DescribeAppImageConfigOutput).
pub mod describe_app_image_config_output {

    /// A builder for [`DescribeAppImageConfigOutput`](crate::output::DescribeAppImageConfigOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) app_image_config_arn: std::option::Option<std::string::String>,
        pub(crate) app_image_config_name: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) kernel_gateway_image_config:
            std::option::Option<crate::model::KernelGatewayImageConfig>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the AppImageConfig.</p>
        pub fn app_image_config_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.app_image_config_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the AppImageConfig.</p>
        pub fn set_app_image_config_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.app_image_config_arn = input;
            self
        }
        /// <p>The name of the AppImageConfig.</p>
        pub fn app_image_config_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.app_image_config_name = Some(input.into());
            self
        }
        /// <p>The name of the AppImageConfig.</p>
        pub fn set_app_image_config_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.app_image_config_name = input;
            self
        }
        /// <p>When the AppImageConfig was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>When the AppImageConfig was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>When the AppImageConfig was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>When the AppImageConfig was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>The configuration of a KernelGateway app.</p>
        pub fn kernel_gateway_image_config(
            mut self,
            input: crate::model::KernelGatewayImageConfig,
        ) -> Self {
            self.kernel_gateway_image_config = Some(input);
            self
        }
        /// <p>The configuration of a KernelGateway app.</p>
        pub fn set_kernel_gateway_image_config(
            mut self,
            input: std::option::Option<crate::model::KernelGatewayImageConfig>,
        ) -> Self {
            self.kernel_gateway_image_config = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeAppImageConfigOutput`](crate::output::DescribeAppImageConfigOutput).
        pub fn build(self) -> crate::output::DescribeAppImageConfigOutput {
            crate::output::DescribeAppImageConfigOutput {
                app_image_config_arn: self.app_image_config_arn,
                app_image_config_name: self.app_image_config_name,
                creation_time: self.creation_time,
                last_modified_time: self.last_modified_time,
                kernel_gateway_image_config: self.kernel_gateway_image_config,
            }
        }
    }
}
impl DescribeAppImageConfigOutput {
    /// Creates a new builder-style object to manufacture [`DescribeAppImageConfigOutput`](crate::output::DescribeAppImageConfigOutput).
    pub fn builder() -> crate::output::describe_app_image_config_output::Builder {
        crate::output::describe_app_image_config_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeAppOutput {
    /// <p>The Amazon Resource Name (ARN) of the app.</p>
    #[doc(hidden)]
    pub app_arn: std::option::Option<std::string::String>,
    /// <p>The type of app.</p>
    #[doc(hidden)]
    pub app_type: std::option::Option<crate::model::AppType>,
    /// <p>The name of the app.</p>
    #[doc(hidden)]
    pub app_name: std::option::Option<std::string::String>,
    /// <p>The domain ID.</p>
    #[doc(hidden)]
    pub domain_id: std::option::Option<std::string::String>,
    /// <p>The user profile name.</p>
    #[doc(hidden)]
    pub user_profile_name: std::option::Option<std::string::String>,
    /// <p>The status.</p>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::AppStatus>,
    /// <p>The timestamp of the last health check.</p>
    #[doc(hidden)]
    pub last_health_check_timestamp: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The timestamp of the last user's activity. <code>LastUserActivityTimestamp</code> is also updated when SageMaker performs health checks without user activity. As a result, this value is set to the same value as <code>LastHealthCheckTimestamp</code>.</p>
    #[doc(hidden)]
    pub last_user_activity_timestamp: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The creation time.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The failure reason.</p>
    #[doc(hidden)]
    pub failure_reason: std::option::Option<std::string::String>,
    /// <p>The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.</p>
    #[doc(hidden)]
    pub resource_spec: std::option::Option<crate::model::ResourceSpec>,
    /// <p>The name of the space. If this value is not set, then <code>UserProfileName</code> must be set.</p>
    #[doc(hidden)]
    pub space_name: std::option::Option<std::string::String>,
}
impl DescribeAppOutput {
    /// <p>The Amazon Resource Name (ARN) of the app.</p>
    pub fn app_arn(&self) -> std::option::Option<&str> {
        self.app_arn.as_deref()
    }
    /// <p>The type of app.</p>
    pub fn app_type(&self) -> std::option::Option<&crate::model::AppType> {
        self.app_type.as_ref()
    }
    /// <p>The name of the app.</p>
    pub fn app_name(&self) -> std::option::Option<&str> {
        self.app_name.as_deref()
    }
    /// <p>The domain ID.</p>
    pub fn domain_id(&self) -> std::option::Option<&str> {
        self.domain_id.as_deref()
    }
    /// <p>The user profile name.</p>
    pub fn user_profile_name(&self) -> std::option::Option<&str> {
        self.user_profile_name.as_deref()
    }
    /// <p>The status.</p>
    pub fn status(&self) -> std::option::Option<&crate::model::AppStatus> {
        self.status.as_ref()
    }
    /// <p>The timestamp of the last health check.</p>
    pub fn last_health_check_timestamp(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_health_check_timestamp.as_ref()
    }
    /// <p>The timestamp of the last user's activity. <code>LastUserActivityTimestamp</code> is also updated when SageMaker performs health checks without user activity. As a result, this value is set to the same value as <code>LastHealthCheckTimestamp</code>.</p>
    pub fn last_user_activity_timestamp(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_user_activity_timestamp.as_ref()
    }
    /// <p>The creation time.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The failure reason.</p>
    pub fn failure_reason(&self) -> std::option::Option<&str> {
        self.failure_reason.as_deref()
    }
    /// <p>The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.</p>
    pub fn resource_spec(&self) -> std::option::Option<&crate::model::ResourceSpec> {
        self.resource_spec.as_ref()
    }
    /// <p>The name of the space. If this value is not set, then <code>UserProfileName</code> must be set.</p>
    pub fn space_name(&self) -> std::option::Option<&str> {
        self.space_name.as_deref()
    }
}
/// See [`DescribeAppOutput`](crate::output::DescribeAppOutput).
pub mod describe_app_output {

    /// A builder for [`DescribeAppOutput`](crate::output::DescribeAppOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) app_arn: std::option::Option<std::string::String>,
        pub(crate) app_type: std::option::Option<crate::model::AppType>,
        pub(crate) app_name: std::option::Option<std::string::String>,
        pub(crate) domain_id: std::option::Option<std::string::String>,
        pub(crate) user_profile_name: std::option::Option<std::string::String>,
        pub(crate) status: std::option::Option<crate::model::AppStatus>,
        pub(crate) last_health_check_timestamp: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_user_activity_timestamp: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) failure_reason: std::option::Option<std::string::String>,
        pub(crate) resource_spec: std::option::Option<crate::model::ResourceSpec>,
        pub(crate) space_name: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the app.</p>
        pub fn app_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.app_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the app.</p>
        pub fn set_app_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.app_arn = input;
            self
        }
        /// <p>The type of app.</p>
        pub fn app_type(mut self, input: crate::model::AppType) -> Self {
            self.app_type = Some(input);
            self
        }
        /// <p>The type of app.</p>
        pub fn set_app_type(mut self, input: std::option::Option<crate::model::AppType>) -> Self {
            self.app_type = input;
            self
        }
        /// <p>The name of the app.</p>
        pub fn app_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.app_name = Some(input.into());
            self
        }
        /// <p>The name of the app.</p>
        pub fn set_app_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.app_name = input;
            self
        }
        /// <p>The domain ID.</p>
        pub fn domain_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.domain_id = Some(input.into());
            self
        }
        /// <p>The domain ID.</p>
        pub fn set_domain_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.domain_id = input;
            self
        }
        /// <p>The user profile name.</p>
        pub fn user_profile_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.user_profile_name = Some(input.into());
            self
        }
        /// <p>The user profile name.</p>
        pub fn set_user_profile_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.user_profile_name = input;
            self
        }
        /// <p>The status.</p>
        pub fn status(mut self, input: crate::model::AppStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p>The status.</p>
        pub fn set_status(mut self, input: std::option::Option<crate::model::AppStatus>) -> Self {
            self.status = input;
            self
        }
        /// <p>The timestamp of the last health check.</p>
        pub fn last_health_check_timestamp(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_health_check_timestamp = Some(input);
            self
        }
        /// <p>The timestamp of the last health check.</p>
        pub fn set_last_health_check_timestamp(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_health_check_timestamp = input;
            self
        }
        /// <p>The timestamp of the last user's activity. <code>LastUserActivityTimestamp</code> is also updated when SageMaker performs health checks without user activity. As a result, this value is set to the same value as <code>LastHealthCheckTimestamp</code>.</p>
        pub fn last_user_activity_timestamp(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_user_activity_timestamp = Some(input);
            self
        }
        /// <p>The timestamp of the last user's activity. <code>LastUserActivityTimestamp</code> is also updated when SageMaker performs health checks without user activity. As a result, this value is set to the same value as <code>LastHealthCheckTimestamp</code>.</p>
        pub fn set_last_user_activity_timestamp(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_user_activity_timestamp = input;
            self
        }
        /// <p>The creation time.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The creation time.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The failure reason.</p>
        pub fn failure_reason(mut self, input: impl Into<std::string::String>) -> Self {
            self.failure_reason = Some(input.into());
            self
        }
        /// <p>The failure reason.</p>
        pub fn set_failure_reason(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.failure_reason = input;
            self
        }
        /// <p>The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.</p>
        pub fn resource_spec(mut self, input: crate::model::ResourceSpec) -> Self {
            self.resource_spec = Some(input);
            self
        }
        /// <p>The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.</p>
        pub fn set_resource_spec(
            mut self,
            input: std::option::Option<crate::model::ResourceSpec>,
        ) -> Self {
            self.resource_spec = input;
            self
        }
        /// <p>The name of the space. If this value is not set, then <code>UserProfileName</code> must be set.</p>
        pub fn space_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.space_name = Some(input.into());
            self
        }
        /// <p>The name of the space. If this value is not set, then <code>UserProfileName</code> must be set.</p>
        pub fn set_space_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.space_name = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeAppOutput`](crate::output::DescribeAppOutput).
        pub fn build(self) -> crate::output::DescribeAppOutput {
            crate::output::DescribeAppOutput {
                app_arn: self.app_arn,
                app_type: self.app_type,
                app_name: self.app_name,
                domain_id: self.domain_id,
                user_profile_name: self.user_profile_name,
                status: self.status,
                last_health_check_timestamp: self.last_health_check_timestamp,
                last_user_activity_timestamp: self.last_user_activity_timestamp,
                creation_time: self.creation_time,
                failure_reason: self.failure_reason,
                resource_spec: self.resource_spec,
                space_name: self.space_name,
            }
        }
    }
}
impl DescribeAppOutput {
    /// Creates a new builder-style object to manufacture [`DescribeAppOutput`](crate::output::DescribeAppOutput).
    pub fn builder() -> crate::output::describe_app_output::Builder {
        crate::output::describe_app_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeAlgorithmOutput {
    /// <p>The name of the algorithm being described.</p>
    #[doc(hidden)]
    pub algorithm_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the algorithm.</p>
    #[doc(hidden)]
    pub algorithm_arn: std::option::Option<std::string::String>,
    /// <p>A brief summary about the algorithm.</p>
    #[doc(hidden)]
    pub algorithm_description: std::option::Option<std::string::String>,
    /// <p>A timestamp specifying when the algorithm was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Details about training jobs run by this algorithm.</p>
    #[doc(hidden)]
    pub training_specification: std::option::Option<crate::model::TrainingSpecification>,
    /// <p>Details about inference jobs that the algorithm runs.</p>
    #[doc(hidden)]
    pub inference_specification: std::option::Option<crate::model::InferenceSpecification>,
    /// <p>Details about configurations for one or more training jobs that SageMaker runs to test the algorithm.</p>
    #[doc(hidden)]
    pub validation_specification:
        std::option::Option<crate::model::AlgorithmValidationSpecification>,
    /// <p>The current status of the algorithm.</p>
    #[doc(hidden)]
    pub algorithm_status: std::option::Option<crate::model::AlgorithmStatus>,
    /// <p>Details about the current status of the algorithm.</p>
    #[doc(hidden)]
    pub algorithm_status_details: std::option::Option<crate::model::AlgorithmStatusDetails>,
    /// <p>The product identifier of the algorithm.</p>
    #[doc(hidden)]
    pub product_id: std::option::Option<std::string::String>,
    /// <p>Whether the algorithm is certified to be listed in Amazon Web Services Marketplace.</p>
    #[doc(hidden)]
    pub certify_for_marketplace: bool,
}
impl DescribeAlgorithmOutput {
    /// <p>The name of the algorithm being described.</p>
    pub fn algorithm_name(&self) -> std::option::Option<&str> {
        self.algorithm_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the algorithm.</p>
    pub fn algorithm_arn(&self) -> std::option::Option<&str> {
        self.algorithm_arn.as_deref()
    }
    /// <p>A brief summary about the algorithm.</p>
    pub fn algorithm_description(&self) -> std::option::Option<&str> {
        self.algorithm_description.as_deref()
    }
    /// <p>A timestamp specifying when the algorithm was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>Details about training jobs run by this algorithm.</p>
    pub fn training_specification(
        &self,
    ) -> std::option::Option<&crate::model::TrainingSpecification> {
        self.training_specification.as_ref()
    }
    /// <p>Details about inference jobs that the algorithm runs.</p>
    pub fn inference_specification(
        &self,
    ) -> std::option::Option<&crate::model::InferenceSpecification> {
        self.inference_specification.as_ref()
    }
    /// <p>Details about configurations for one or more training jobs that SageMaker runs to test the algorithm.</p>
    pub fn validation_specification(
        &self,
    ) -> std::option::Option<&crate::model::AlgorithmValidationSpecification> {
        self.validation_specification.as_ref()
    }
    /// <p>The current status of the algorithm.</p>
    pub fn algorithm_status(&self) -> std::option::Option<&crate::model::AlgorithmStatus> {
        self.algorithm_status.as_ref()
    }
    /// <p>Details about the current status of the algorithm.</p>
    pub fn algorithm_status_details(
        &self,
    ) -> std::option::Option<&crate::model::AlgorithmStatusDetails> {
        self.algorithm_status_details.as_ref()
    }
    /// <p>The product identifier of the algorithm.</p>
    pub fn product_id(&self) -> std::option::Option<&str> {
        self.product_id.as_deref()
    }
    /// <p>Whether the algorithm is certified to be listed in Amazon Web Services Marketplace.</p>
    pub fn certify_for_marketplace(&self) -> bool {
        self.certify_for_marketplace
    }
}
/// See [`DescribeAlgorithmOutput`](crate::output::DescribeAlgorithmOutput).
pub mod describe_algorithm_output {

    /// A builder for [`DescribeAlgorithmOutput`](crate::output::DescribeAlgorithmOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) algorithm_name: std::option::Option<std::string::String>,
        pub(crate) algorithm_arn: std::option::Option<std::string::String>,
        pub(crate) algorithm_description: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) training_specification: std::option::Option<crate::model::TrainingSpecification>,
        pub(crate) inference_specification:
            std::option::Option<crate::model::InferenceSpecification>,
        pub(crate) validation_specification:
            std::option::Option<crate::model::AlgorithmValidationSpecification>,
        pub(crate) algorithm_status: std::option::Option<crate::model::AlgorithmStatus>,
        pub(crate) algorithm_status_details:
            std::option::Option<crate::model::AlgorithmStatusDetails>,
        pub(crate) product_id: std::option::Option<std::string::String>,
        pub(crate) certify_for_marketplace: std::option::Option<bool>,
    }
    impl Builder {
        /// <p>The name of the algorithm being described.</p>
        pub fn algorithm_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.algorithm_name = Some(input.into());
            self
        }
        /// <p>The name of the algorithm being described.</p>
        pub fn set_algorithm_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.algorithm_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the algorithm.</p>
        pub fn algorithm_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.algorithm_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the algorithm.</p>
        pub fn set_algorithm_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.algorithm_arn = input;
            self
        }
        /// <p>A brief summary about the algorithm.</p>
        pub fn algorithm_description(mut self, input: impl Into<std::string::String>) -> Self {
            self.algorithm_description = Some(input.into());
            self
        }
        /// <p>A brief summary about the algorithm.</p>
        pub fn set_algorithm_description(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.algorithm_description = input;
            self
        }
        /// <p>A timestamp specifying when the algorithm was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>A timestamp specifying when the algorithm was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>Details about training jobs run by this algorithm.</p>
        pub fn training_specification(
            mut self,
            input: crate::model::TrainingSpecification,
        ) -> Self {
            self.training_specification = Some(input);
            self
        }
        /// <p>Details about training jobs run by this algorithm.</p>
        pub fn set_training_specification(
            mut self,
            input: std::option::Option<crate::model::TrainingSpecification>,
        ) -> Self {
            self.training_specification = input;
            self
        }
        /// <p>Details about inference jobs that the algorithm runs.</p>
        pub fn inference_specification(
            mut self,
            input: crate::model::InferenceSpecification,
        ) -> Self {
            self.inference_specification = Some(input);
            self
        }
        /// <p>Details about inference jobs that the algorithm runs.</p>
        pub fn set_inference_specification(
            mut self,
            input: std::option::Option<crate::model::InferenceSpecification>,
        ) -> Self {
            self.inference_specification = input;
            self
        }
        /// <p>Details about configurations for one or more training jobs that SageMaker runs to test the algorithm.</p>
        pub fn validation_specification(
            mut self,
            input: crate::model::AlgorithmValidationSpecification,
        ) -> Self {
            self.validation_specification = Some(input);
            self
        }
        /// <p>Details about configurations for one or more training jobs that SageMaker runs to test the algorithm.</p>
        pub fn set_validation_specification(
            mut self,
            input: std::option::Option<crate::model::AlgorithmValidationSpecification>,
        ) -> Self {
            self.validation_specification = input;
            self
        }
        /// <p>The current status of the algorithm.</p>
        pub fn algorithm_status(mut self, input: crate::model::AlgorithmStatus) -> Self {
            self.algorithm_status = Some(input);
            self
        }
        /// <p>The current status of the algorithm.</p>
        pub fn set_algorithm_status(
            mut self,
            input: std::option::Option<crate::model::AlgorithmStatus>,
        ) -> Self {
            self.algorithm_status = input;
            self
        }
        /// <p>Details about the current status of the algorithm.</p>
        pub fn algorithm_status_details(
            mut self,
            input: crate::model::AlgorithmStatusDetails,
        ) -> Self {
            self.algorithm_status_details = Some(input);
            self
        }
        /// <p>Details about the current status of the algorithm.</p>
        pub fn set_algorithm_status_details(
            mut self,
            input: std::option::Option<crate::model::AlgorithmStatusDetails>,
        ) -> Self {
            self.algorithm_status_details = input;
            self
        }
        /// <p>The product identifier of the algorithm.</p>
        pub fn product_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.product_id = Some(input.into());
            self
        }
        /// <p>The product identifier of the algorithm.</p>
        pub fn set_product_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.product_id = input;
            self
        }
        /// <p>Whether the algorithm is certified to be listed in Amazon Web Services Marketplace.</p>
        pub fn certify_for_marketplace(mut self, input: bool) -> Self {
            self.certify_for_marketplace = Some(input);
            self
        }
        /// <p>Whether the algorithm is certified to be listed in Amazon Web Services Marketplace.</p>
        pub fn set_certify_for_marketplace(mut self, input: std::option::Option<bool>) -> Self {
            self.certify_for_marketplace = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeAlgorithmOutput`](crate::output::DescribeAlgorithmOutput).
        pub fn build(self) -> crate::output::DescribeAlgorithmOutput {
            crate::output::DescribeAlgorithmOutput {
                algorithm_name: self.algorithm_name,
                algorithm_arn: self.algorithm_arn,
                algorithm_description: self.algorithm_description,
                creation_time: self.creation_time,
                training_specification: self.training_specification,
                inference_specification: self.inference_specification,
                validation_specification: self.validation_specification,
                algorithm_status: self.algorithm_status,
                algorithm_status_details: self.algorithm_status_details,
                product_id: self.product_id,
                certify_for_marketplace: self.certify_for_marketplace.unwrap_or_default(),
            }
        }
    }
}
impl DescribeAlgorithmOutput {
    /// Creates a new builder-style object to manufacture [`DescribeAlgorithmOutput`](crate::output::DescribeAlgorithmOutput).
    pub fn builder() -> crate::output::describe_algorithm_output::Builder {
        crate::output::describe_algorithm_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DescribeActionOutput {
    /// <p>The name of the action.</p>
    #[doc(hidden)]
    pub action_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the action.</p>
    #[doc(hidden)]
    pub action_arn: std::option::Option<std::string::String>,
    /// <p>The source of the action.</p>
    #[doc(hidden)]
    pub source: std::option::Option<crate::model::ActionSource>,
    /// <p>The type of the action.</p>
    #[doc(hidden)]
    pub action_type: std::option::Option<std::string::String>,
    /// <p>The description of the action.</p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p>The status of the action.</p>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::ActionStatus>,
    /// <p>A list of the action's properties.</p>
    #[doc(hidden)]
    pub properties:
        std::option::Option<std::collections::HashMap<std::string::String, std::string::String>>,
    /// <p>When the action was created.</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    #[doc(hidden)]
    pub created_by: std::option::Option<crate::model::UserContext>,
    /// <p>When the action was last modified.</p>
    #[doc(hidden)]
    pub last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    #[doc(hidden)]
    pub last_modified_by: std::option::Option<crate::model::UserContext>,
    /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
    #[doc(hidden)]
    pub metadata_properties: std::option::Option<crate::model::MetadataProperties>,
    /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
    #[doc(hidden)]
    pub lineage_group_arn: std::option::Option<std::string::String>,
}
impl DescribeActionOutput {
    /// <p>The name of the action.</p>
    pub fn action_name(&self) -> std::option::Option<&str> {
        self.action_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the action.</p>
    pub fn action_arn(&self) -> std::option::Option<&str> {
        self.action_arn.as_deref()
    }
    /// <p>The source of the action.</p>
    pub fn source(&self) -> std::option::Option<&crate::model::ActionSource> {
        self.source.as_ref()
    }
    /// <p>The type of the action.</p>
    pub fn action_type(&self) -> std::option::Option<&str> {
        self.action_type.as_deref()
    }
    /// <p>The description of the action.</p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>The status of the action.</p>
    pub fn status(&self) -> std::option::Option<&crate::model::ActionStatus> {
        self.status.as_ref()
    }
    /// <p>A list of the action's properties.</p>
    pub fn properties(
        &self,
    ) -> std::option::Option<&std::collections::HashMap<std::string::String, std::string::String>>
    {
        self.properties.as_ref()
    }
    /// <p>When the action was created.</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    pub fn created_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.created_by.as_ref()
    }
    /// <p>When the action was last modified.</p>
    pub fn last_modified_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
    pub fn last_modified_by(&self) -> std::option::Option<&crate::model::UserContext> {
        self.last_modified_by.as_ref()
    }
    /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
    pub fn metadata_properties(&self) -> std::option::Option<&crate::model::MetadataProperties> {
        self.metadata_properties.as_ref()
    }
    /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
    pub fn lineage_group_arn(&self) -> std::option::Option<&str> {
        self.lineage_group_arn.as_deref()
    }
}
/// See [`DescribeActionOutput`](crate::output::DescribeActionOutput).
pub mod describe_action_output {

    /// A builder for [`DescribeActionOutput`](crate::output::DescribeActionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) action_name: std::option::Option<std::string::String>,
        pub(crate) action_arn: std::option::Option<std::string::String>,
        pub(crate) source: std::option::Option<crate::model::ActionSource>,
        pub(crate) action_type: std::option::Option<std::string::String>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) status: std::option::Option<crate::model::ActionStatus>,
        pub(crate) properties: std::option::Option<
            std::collections::HashMap<std::string::String, std::string::String>,
        >,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) created_by: std::option::Option<crate::model::UserContext>,
        pub(crate) last_modified_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modified_by: std::option::Option<crate::model::UserContext>,
        pub(crate) metadata_properties: std::option::Option<crate::model::MetadataProperties>,
        pub(crate) lineage_group_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The name of the action.</p>
        pub fn action_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.action_name = Some(input.into());
            self
        }
        /// <p>The name of the action.</p>
        pub fn set_action_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.action_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the action.</p>
        pub fn action_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.action_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the action.</p>
        pub fn set_action_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.action_arn = input;
            self
        }
        /// <p>The source of the action.</p>
        pub fn source(mut self, input: crate::model::ActionSource) -> Self {
            self.source = Some(input);
            self
        }
        /// <p>The source of the action.</p>
        pub fn set_source(
            mut self,
            input: std::option::Option<crate::model::ActionSource>,
        ) -> Self {
            self.source = input;
            self
        }
        /// <p>The type of the action.</p>
        pub fn action_type(mut self, input: impl Into<std::string::String>) -> Self {
            self.action_type = Some(input.into());
            self
        }
        /// <p>The type of the action.</p>
        pub fn set_action_type(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.action_type = input;
            self
        }
        /// <p>The description of the action.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p>The description of the action.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// <p>The status of the action.</p>
        pub fn status(mut self, input: crate::model::ActionStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p>The status of the action.</p>
        pub fn set_status(
            mut self,
            input: std::option::Option<crate::model::ActionStatus>,
        ) -> Self {
            self.status = input;
            self
        }
        /// Adds a key-value pair to `properties`.
        ///
        /// To override the contents of this collection use [`set_properties`](Self::set_properties).
        ///
        /// <p>A list of the action's properties.</p>
        pub fn properties(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            let mut hash_map = self.properties.unwrap_or_default();
            hash_map.insert(k.into(), v.into());
            self.properties = Some(hash_map);
            self
        }
        /// <p>A list of the action's properties.</p>
        pub fn set_properties(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.properties = input;
            self
        }
        /// <p>When the action was created.</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>When the action was created.</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn created_by(mut self, input: crate::model::UserContext) -> Self {
            self.created_by = Some(input);
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn set_created_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.created_by = input;
            self
        }
        /// <p>When the action was last modified.</p>
        pub fn last_modified_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modified_time = Some(input);
            self
        }
        /// <p>When the action was last modified.</p>
        pub fn set_last_modified_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modified_time = input;
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn last_modified_by(mut self, input: crate::model::UserContext) -> Self {
            self.last_modified_by = Some(input);
            self
        }
        /// <p>Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.</p>
        pub fn set_last_modified_by(
            mut self,
            input: std::option::Option<crate::model::UserContext>,
        ) -> Self {
            self.last_modified_by = input;
            self
        }
        /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
        pub fn metadata_properties(mut self, input: crate::model::MetadataProperties) -> Self {
            self.metadata_properties = Some(input);
            self
        }
        /// <p>Metadata properties of the tracking entity, trial, or trial component.</p>
        pub fn set_metadata_properties(
            mut self,
            input: std::option::Option<crate::model::MetadataProperties>,
        ) -> Self {
            self.metadata_properties = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
        pub fn lineage_group_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.lineage_group_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the lineage group.</p>
        pub fn set_lineage_group_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.lineage_group_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DescribeActionOutput`](crate::output::DescribeActionOutput).
        pub fn build(self) -> crate::output::DescribeActionOutput {
            crate::output::DescribeActionOutput {
                action_name: self.action_name,
                action_arn: self.action_arn,
                source: self.source,
                action_type: self.action_type,
                description: self.description,
                status: self.status,
                properties: self.properties,
                creation_time: self.creation_time,
                created_by: self.created_by,
                last_modified_time: self.last_modified_time,
                last_modified_by: self.last_modified_by,
                metadata_properties: self.metadata_properties,
                lineage_group_arn: self.lineage_group_arn,
            }
        }
    }
}
impl DescribeActionOutput {
    /// Creates a new builder-style object to manufacture [`DescribeActionOutput`](crate::output::DescribeActionOutput).
    pub fn builder() -> crate::output::describe_action_output::Builder {
        crate::output::describe_action_output::Builder::default()
    }
}

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteWorkteamOutput {
    /// <p>Returns <code>true</code> if the work team was successfully deleted; otherwise, returns <code>false</code>.</p>
    #[doc(hidden)]
    pub success: bool,
}
impl DeleteWorkteamOutput {
    /// <p>Returns <code>true</code> if the work team was successfully deleted; otherwise, returns <code>false</code>.</p>
    pub fn success(&self) -> bool {
        self.success
    }
}
/// See [`DeleteWorkteamOutput`](crate::output::DeleteWorkteamOutput).
pub mod delete_workteam_output {

    /// A builder for [`DeleteWorkteamOutput`](crate::output::DeleteWorkteamOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) success: std::option::Option<bool>,
    }
    impl Builder {
        /// <p>Returns <code>true</code> if the work team was successfully deleted; otherwise, returns <code>false</code>.</p>
        pub fn success(mut self, input: bool) -> Self {
            self.success = Some(input);
            self
        }
        /// <p>Returns <code>true</code> if the work team was successfully deleted; otherwise, returns <code>false</code>.</p>
        pub fn set_success(mut self, input: std::option::Option<bool>) -> Self {
            self.success = input;
            self
        }
        /// Consumes the builder and constructs a [`DeleteWorkteamOutput`](crate::output::DeleteWorkteamOutput).
        pub fn build(self) -> crate::output::DeleteWorkteamOutput {
            crate::output::DeleteWorkteamOutput {
                success: self.success.unwrap_or_default(),
            }
        }
    }
}
impl DeleteWorkteamOutput {
    /// Creates a new builder-style object to manufacture [`DeleteWorkteamOutput`](crate::output::DeleteWorkteamOutput).
    pub fn builder() -> crate::output::delete_workteam_output::Builder {
        crate::output::delete_workteam_output::Builder::default()
    }
}

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

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

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteTrialComponentOutput {
    /// <p>The Amazon Resource Name (ARN) of the component is being deleted.</p>
    #[doc(hidden)]
    pub trial_component_arn: std::option::Option<std::string::String>,
}
impl DeleteTrialComponentOutput {
    /// <p>The Amazon Resource Name (ARN) of the component is being deleted.</p>
    pub fn trial_component_arn(&self) -> std::option::Option<&str> {
        self.trial_component_arn.as_deref()
    }
}
/// See [`DeleteTrialComponentOutput`](crate::output::DeleteTrialComponentOutput).
pub mod delete_trial_component_output {

    /// A builder for [`DeleteTrialComponentOutput`](crate::output::DeleteTrialComponentOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) trial_component_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the component is being deleted.</p>
        pub fn trial_component_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.trial_component_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the component is being deleted.</p>
        pub fn set_trial_component_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.trial_component_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DeleteTrialComponentOutput`](crate::output::DeleteTrialComponentOutput).
        pub fn build(self) -> crate::output::DeleteTrialComponentOutput {
            crate::output::DeleteTrialComponentOutput {
                trial_component_arn: self.trial_component_arn,
            }
        }
    }
}
impl DeleteTrialComponentOutput {
    /// Creates a new builder-style object to manufacture [`DeleteTrialComponentOutput`](crate::output::DeleteTrialComponentOutput).
    pub fn builder() -> crate::output::delete_trial_component_output::Builder {
        crate::output::delete_trial_component_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteTrialOutput {
    /// <p>The Amazon Resource Name (ARN) of the trial that is being deleted.</p>
    #[doc(hidden)]
    pub trial_arn: std::option::Option<std::string::String>,
}
impl DeleteTrialOutput {
    /// <p>The Amazon Resource Name (ARN) of the trial that is being deleted.</p>
    pub fn trial_arn(&self) -> std::option::Option<&str> {
        self.trial_arn.as_deref()
    }
}
/// See [`DeleteTrialOutput`](crate::output::DeleteTrialOutput).
pub mod delete_trial_output {

    /// A builder for [`DeleteTrialOutput`](crate::output::DeleteTrialOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) trial_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the trial that is being deleted.</p>
        pub fn trial_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.trial_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the trial that is being deleted.</p>
        pub fn set_trial_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.trial_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DeleteTrialOutput`](crate::output::DeleteTrialOutput).
        pub fn build(self) -> crate::output::DeleteTrialOutput {
            crate::output::DeleteTrialOutput {
                trial_arn: self.trial_arn,
            }
        }
    }
}
impl DeleteTrialOutput {
    /// Creates a new builder-style object to manufacture [`DeleteTrialOutput`](crate::output::DeleteTrialOutput).
    pub fn builder() -> crate::output::delete_trial_output::Builder {
        crate::output::delete_trial_output::Builder::default()
    }
}

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

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

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

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

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

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

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeletePipelineOutput {
    /// <p>The Amazon Resource Name (ARN) of the pipeline to delete.</p>
    #[doc(hidden)]
    pub pipeline_arn: std::option::Option<std::string::String>,
}
impl DeletePipelineOutput {
    /// <p>The Amazon Resource Name (ARN) of the pipeline to delete.</p>
    pub fn pipeline_arn(&self) -> std::option::Option<&str> {
        self.pipeline_arn.as_deref()
    }
}
/// See [`DeletePipelineOutput`](crate::output::DeletePipelineOutput).
pub mod delete_pipeline_output {

    /// A builder for [`DeletePipelineOutput`](crate::output::DeletePipelineOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) pipeline_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the pipeline to delete.</p>
        pub fn pipeline_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.pipeline_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the pipeline to delete.</p>
        pub fn set_pipeline_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.pipeline_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DeletePipelineOutput`](crate::output::DeletePipelineOutput).
        pub fn build(self) -> crate::output::DeletePipelineOutput {
            crate::output::DeletePipelineOutput {
                pipeline_arn: self.pipeline_arn,
            }
        }
    }
}
impl DeletePipelineOutput {
    /// Creates a new builder-style object to manufacture [`DeletePipelineOutput`](crate::output::DeletePipelineOutput).
    pub fn builder() -> crate::output::delete_pipeline_output::Builder {
        crate::output::delete_pipeline_output::Builder::default()
    }
}

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

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

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

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

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

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

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

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

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

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

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

    /// A builder for [`DeleteModelPackageGroupOutput`](crate::output::DeleteModelPackageGroupOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`DeleteModelPackageGroupOutput`](crate::output::DeleteModelPackageGroupOutput).
        pub fn build(self) -> crate::output::DeleteModelPackageGroupOutput {
            crate::output::DeleteModelPackageGroupOutput {}
        }
    }
}
impl DeleteModelPackageGroupOutput {
    /// Creates a new builder-style object to manufacture [`DeleteModelPackageGroupOutput`](crate::output::DeleteModelPackageGroupOutput).
    pub fn builder() -> crate::output::delete_model_package_group_output::Builder {
        crate::output::delete_model_package_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 DeleteModelPackageOutput {}
/// See [`DeleteModelPackageOutput`](crate::output::DeleteModelPackageOutput).
pub mod delete_model_package_output {

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    /// A builder for [`DeleteFeatureGroupOutput`](crate::output::DeleteFeatureGroupOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`DeleteFeatureGroupOutput`](crate::output::DeleteFeatureGroupOutput).
        pub fn build(self) -> crate::output::DeleteFeatureGroupOutput {
            crate::output::DeleteFeatureGroupOutput {}
        }
    }
}
impl DeleteFeatureGroupOutput {
    /// Creates a new builder-style object to manufacture [`DeleteFeatureGroupOutput`](crate::output::DeleteFeatureGroupOutput).
    pub fn builder() -> crate::output::delete_feature_group_output::Builder {
        crate::output::delete_feature_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 DeleteExperimentOutput {
    /// <p>The Amazon Resource Name (ARN) of the experiment that is being deleted.</p>
    #[doc(hidden)]
    pub experiment_arn: std::option::Option<std::string::String>,
}
impl DeleteExperimentOutput {
    /// <p>The Amazon Resource Name (ARN) of the experiment that is being deleted.</p>
    pub fn experiment_arn(&self) -> std::option::Option<&str> {
        self.experiment_arn.as_deref()
    }
}
/// See [`DeleteExperimentOutput`](crate::output::DeleteExperimentOutput).
pub mod delete_experiment_output {

    /// A builder for [`DeleteExperimentOutput`](crate::output::DeleteExperimentOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) experiment_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the experiment that is being deleted.</p>
        pub fn experiment_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.experiment_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the experiment that is being deleted.</p>
        pub fn set_experiment_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.experiment_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DeleteExperimentOutput`](crate::output::DeleteExperimentOutput).
        pub fn build(self) -> crate::output::DeleteExperimentOutput {
            crate::output::DeleteExperimentOutput {
                experiment_arn: self.experiment_arn,
            }
        }
    }
}
impl DeleteExperimentOutput {
    /// Creates a new builder-style object to manufacture [`DeleteExperimentOutput`](crate::output::DeleteExperimentOutput).
    pub fn builder() -> crate::output::delete_experiment_output::Builder {
        crate::output::delete_experiment_output::Builder::default()
    }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteContextOutput {
    /// <p>The Amazon Resource Name (ARN) of the context.</p>
    #[doc(hidden)]
    pub context_arn: std::option::Option<std::string::String>,
}
impl DeleteContextOutput {
    /// <p>The Amazon Resource Name (ARN) of the context.</p>
    pub fn context_arn(&self) -> std::option::Option<&str> {
        self.context_arn.as_deref()
    }
}
/// See [`DeleteContextOutput`](crate::output::DeleteContextOutput).
pub mod delete_context_output {

    /// A builder for [`DeleteContextOutput`](crate::output::DeleteContextOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) context_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the context.</p>
        pub fn context_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.context_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the context.</p>
        pub fn set_context_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.context_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DeleteContextOutput`](crate::output::DeleteContextOutput).
        pub fn build(self) -> crate::output::DeleteContextOutput {
            crate::output::DeleteContextOutput {
                context_arn: self.context_arn,
            }
        }
    }
}
impl DeleteContextOutput {
    /// Creates a new builder-style object to manufacture [`DeleteContextOutput`](crate::output::DeleteContextOutput).
    pub fn builder() -> crate::output::delete_context_output::Builder {
        crate::output::delete_context_output::Builder::default()
    }
}

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteAssociationOutput {
    /// <p>The ARN of the source.</p>
    #[doc(hidden)]
    pub source_arn: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the destination.</p>
    #[doc(hidden)]
    pub destination_arn: std::option::Option<std::string::String>,
}
impl DeleteAssociationOutput {
    /// <p>The ARN of the source.</p>
    pub fn source_arn(&self) -> std::option::Option<&str> {
        self.source_arn.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the destination.</p>
    pub fn destination_arn(&self) -> std::option::Option<&str> {
        self.destination_arn.as_deref()
    }
}
/// See [`DeleteAssociationOutput`](crate::output::DeleteAssociationOutput).
pub mod delete_association_output {

    /// A builder for [`DeleteAssociationOutput`](crate::output::DeleteAssociationOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) source_arn: std::option::Option<std::string::String>,
        pub(crate) destination_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ARN of the source.</p>
        pub fn source_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.source_arn = Some(input.into());
            self
        }
        /// <p>The ARN of the source.</p>
        pub fn set_source_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.source_arn = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the destination.</p>
        pub fn destination_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.destination_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the destination.</p>
        pub fn set_destination_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.destination_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DeleteAssociationOutput`](crate::output::DeleteAssociationOutput).
        pub fn build(self) -> crate::output::DeleteAssociationOutput {
            crate::output::DeleteAssociationOutput {
                source_arn: self.source_arn,
                destination_arn: self.destination_arn,
            }
        }
    }
}
impl DeleteAssociationOutput {
    /// Creates a new builder-style object to manufacture [`DeleteAssociationOutput`](crate::output::DeleteAssociationOutput).
    pub fn builder() -> crate::output::delete_association_output::Builder {
        crate::output::delete_association_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteArtifactOutput {
    /// <p>The Amazon Resource Name (ARN) of the artifact.</p>
    #[doc(hidden)]
    pub artifact_arn: std::option::Option<std::string::String>,
}
impl DeleteArtifactOutput {
    /// <p>The Amazon Resource Name (ARN) of the artifact.</p>
    pub fn artifact_arn(&self) -> std::option::Option<&str> {
        self.artifact_arn.as_deref()
    }
}
/// See [`DeleteArtifactOutput`](crate::output::DeleteArtifactOutput).
pub mod delete_artifact_output {

    /// A builder for [`DeleteArtifactOutput`](crate::output::DeleteArtifactOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) artifact_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the artifact.</p>
        pub fn artifact_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.artifact_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the artifact.</p>
        pub fn set_artifact_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.artifact_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DeleteArtifactOutput`](crate::output::DeleteArtifactOutput).
        pub fn build(self) -> crate::output::DeleteArtifactOutput {
            crate::output::DeleteArtifactOutput {
                artifact_arn: self.artifact_arn,
            }
        }
    }
}
impl DeleteArtifactOutput {
    /// Creates a new builder-style object to manufacture [`DeleteArtifactOutput`](crate::output::DeleteArtifactOutput).
    pub fn builder() -> crate::output::delete_artifact_output::Builder {
        crate::output::delete_artifact_output::Builder::default()
    }
}

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

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

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

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

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteActionOutput {
    /// <p>The Amazon Resource Name (ARN) of the action.</p>
    #[doc(hidden)]
    pub action_arn: std::option::Option<std::string::String>,
}
impl DeleteActionOutput {
    /// <p>The Amazon Resource Name (ARN) of the action.</p>
    pub fn action_arn(&self) -> std::option::Option<&str> {
        self.action_arn.as_deref()
    }
}
/// See [`DeleteActionOutput`](crate::output::DeleteActionOutput).
pub mod delete_action_output {

    /// A builder for [`DeleteActionOutput`](crate::output::DeleteActionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) action_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the action.</p>
        pub fn action_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.action_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the action.</p>
        pub fn set_action_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.action_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DeleteActionOutput`](crate::output::DeleteActionOutput).
        pub fn build(self) -> crate::output::DeleteActionOutput {
            crate::output::DeleteActionOutput {
                action_arn: self.action_arn,
            }
        }
    }
}
impl DeleteActionOutput {
    /// Creates a new builder-style object to manufacture [`DeleteActionOutput`](crate::output::DeleteActionOutput).
    pub fn builder() -> crate::output::delete_action_output::Builder {
        crate::output::delete_action_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateWorkteamOutput {
    /// <p>The Amazon Resource Name (ARN) of the work team. You can use this ARN to identify the work team.</p>
    #[doc(hidden)]
    pub workteam_arn: std::option::Option<std::string::String>,
}
impl CreateWorkteamOutput {
    /// <p>The Amazon Resource Name (ARN) of the work team. You can use this ARN to identify the work team.</p>
    pub fn workteam_arn(&self) -> std::option::Option<&str> {
        self.workteam_arn.as_deref()
    }
}
/// See [`CreateWorkteamOutput`](crate::output::CreateWorkteamOutput).
pub mod create_workteam_output {

    /// A builder for [`CreateWorkteamOutput`](crate::output::CreateWorkteamOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workteam_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the work team. You can use this ARN to identify the work team.</p>
        pub fn workteam_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.workteam_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the work team. You can use this ARN to identify the work team.</p>
        pub fn set_workteam_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.workteam_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateWorkteamOutput`](crate::output::CreateWorkteamOutput).
        pub fn build(self) -> crate::output::CreateWorkteamOutput {
            crate::output::CreateWorkteamOutput {
                workteam_arn: self.workteam_arn,
            }
        }
    }
}
impl CreateWorkteamOutput {
    /// Creates a new builder-style object to manufacture [`CreateWorkteamOutput`](crate::output::CreateWorkteamOutput).
    pub fn builder() -> crate::output::create_workteam_output::Builder {
        crate::output::create_workteam_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateWorkforceOutput {
    /// <p>The Amazon Resource Name (ARN) of the workforce.</p>
    #[doc(hidden)]
    pub workforce_arn: std::option::Option<std::string::String>,
}
impl CreateWorkforceOutput {
    /// <p>The Amazon Resource Name (ARN) of the workforce.</p>
    pub fn workforce_arn(&self) -> std::option::Option<&str> {
        self.workforce_arn.as_deref()
    }
}
/// See [`CreateWorkforceOutput`](crate::output::CreateWorkforceOutput).
pub mod create_workforce_output {

    /// A builder for [`CreateWorkforceOutput`](crate::output::CreateWorkforceOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) workforce_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the workforce.</p>
        pub fn workforce_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.workforce_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the workforce.</p>
        pub fn set_workforce_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.workforce_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateWorkforceOutput`](crate::output::CreateWorkforceOutput).
        pub fn build(self) -> crate::output::CreateWorkforceOutput {
            crate::output::CreateWorkforceOutput {
                workforce_arn: self.workforce_arn,
            }
        }
    }
}
impl CreateWorkforceOutput {
    /// Creates a new builder-style object to manufacture [`CreateWorkforceOutput`](crate::output::CreateWorkforceOutput).
    pub fn builder() -> crate::output::create_workforce_output::Builder {
        crate::output::create_workforce_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateUserProfileOutput {
    /// <p>The user profile Amazon Resource Name (ARN).</p>
    #[doc(hidden)]
    pub user_profile_arn: std::option::Option<std::string::String>,
}
impl CreateUserProfileOutput {
    /// <p>The user profile Amazon Resource Name (ARN).</p>
    pub fn user_profile_arn(&self) -> std::option::Option<&str> {
        self.user_profile_arn.as_deref()
    }
}
/// See [`CreateUserProfileOutput`](crate::output::CreateUserProfileOutput).
pub mod create_user_profile_output {

    /// A builder for [`CreateUserProfileOutput`](crate::output::CreateUserProfileOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) user_profile_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The user profile Amazon Resource Name (ARN).</p>
        pub fn user_profile_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.user_profile_arn = Some(input.into());
            self
        }
        /// <p>The user profile Amazon Resource Name (ARN).</p>
        pub fn set_user_profile_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.user_profile_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateUserProfileOutput`](crate::output::CreateUserProfileOutput).
        pub fn build(self) -> crate::output::CreateUserProfileOutput {
            crate::output::CreateUserProfileOutput {
                user_profile_arn: self.user_profile_arn,
            }
        }
    }
}
impl CreateUserProfileOutput {
    /// Creates a new builder-style object to manufacture [`CreateUserProfileOutput`](crate::output::CreateUserProfileOutput).
    pub fn builder() -> crate::output::create_user_profile_output::Builder {
        crate::output::create_user_profile_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateTrialComponentOutput {
    /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
    #[doc(hidden)]
    pub trial_component_arn: std::option::Option<std::string::String>,
}
impl CreateTrialComponentOutput {
    /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
    pub fn trial_component_arn(&self) -> std::option::Option<&str> {
        self.trial_component_arn.as_deref()
    }
}
/// See [`CreateTrialComponentOutput`](crate::output::CreateTrialComponentOutput).
pub mod create_trial_component_output {

    /// A builder for [`CreateTrialComponentOutput`](crate::output::CreateTrialComponentOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) trial_component_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
        pub fn trial_component_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.trial_component_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
        pub fn set_trial_component_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.trial_component_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateTrialComponentOutput`](crate::output::CreateTrialComponentOutput).
        pub fn build(self) -> crate::output::CreateTrialComponentOutput {
            crate::output::CreateTrialComponentOutput {
                trial_component_arn: self.trial_component_arn,
            }
        }
    }
}
impl CreateTrialComponentOutput {
    /// Creates a new builder-style object to manufacture [`CreateTrialComponentOutput`](crate::output::CreateTrialComponentOutput).
    pub fn builder() -> crate::output::create_trial_component_output::Builder {
        crate::output::create_trial_component_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateTrialOutput {
    /// <p>The Amazon Resource Name (ARN) of the trial.</p>
    #[doc(hidden)]
    pub trial_arn: std::option::Option<std::string::String>,
}
impl CreateTrialOutput {
    /// <p>The Amazon Resource Name (ARN) of the trial.</p>
    pub fn trial_arn(&self) -> std::option::Option<&str> {
        self.trial_arn.as_deref()
    }
}
/// See [`CreateTrialOutput`](crate::output::CreateTrialOutput).
pub mod create_trial_output {

    /// A builder for [`CreateTrialOutput`](crate::output::CreateTrialOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) trial_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the trial.</p>
        pub fn trial_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.trial_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the trial.</p>
        pub fn set_trial_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.trial_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateTrialOutput`](crate::output::CreateTrialOutput).
        pub fn build(self) -> crate::output::CreateTrialOutput {
            crate::output::CreateTrialOutput {
                trial_arn: self.trial_arn,
            }
        }
    }
}
impl CreateTrialOutput {
    /// Creates a new builder-style object to manufacture [`CreateTrialOutput`](crate::output::CreateTrialOutput).
    pub fn builder() -> crate::output::create_trial_output::Builder {
        crate::output::create_trial_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateTransformJobOutput {
    /// <p>The Amazon Resource Name (ARN) of the transform job.</p>
    #[doc(hidden)]
    pub transform_job_arn: std::option::Option<std::string::String>,
}
impl CreateTransformJobOutput {
    /// <p>The Amazon Resource Name (ARN) of the transform job.</p>
    pub fn transform_job_arn(&self) -> std::option::Option<&str> {
        self.transform_job_arn.as_deref()
    }
}
/// See [`CreateTransformJobOutput`](crate::output::CreateTransformJobOutput).
pub mod create_transform_job_output {

    /// A builder for [`CreateTransformJobOutput`](crate::output::CreateTransformJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) transform_job_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the transform job.</p>
        pub fn transform_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.transform_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the transform job.</p>
        pub fn set_transform_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.transform_job_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateTransformJobOutput`](crate::output::CreateTransformJobOutput).
        pub fn build(self) -> crate::output::CreateTransformJobOutput {
            crate::output::CreateTransformJobOutput {
                transform_job_arn: self.transform_job_arn,
            }
        }
    }
}
impl CreateTransformJobOutput {
    /// Creates a new builder-style object to manufacture [`CreateTransformJobOutput`](crate::output::CreateTransformJobOutput).
    pub fn builder() -> crate::output::create_transform_job_output::Builder {
        crate::output::create_transform_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateTrainingJobOutput {
    /// <p>The Amazon Resource Name (ARN) of the training job.</p>
    #[doc(hidden)]
    pub training_job_arn: std::option::Option<std::string::String>,
}
impl CreateTrainingJobOutput {
    /// <p>The Amazon Resource Name (ARN) of the training job.</p>
    pub fn training_job_arn(&self) -> std::option::Option<&str> {
        self.training_job_arn.as_deref()
    }
}
/// See [`CreateTrainingJobOutput`](crate::output::CreateTrainingJobOutput).
pub mod create_training_job_output {

    /// A builder for [`CreateTrainingJobOutput`](crate::output::CreateTrainingJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) training_job_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the training job.</p>
        pub fn training_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.training_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the training job.</p>
        pub fn set_training_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.training_job_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateTrainingJobOutput`](crate::output::CreateTrainingJobOutput).
        pub fn build(self) -> crate::output::CreateTrainingJobOutput {
            crate::output::CreateTrainingJobOutput {
                training_job_arn: self.training_job_arn,
            }
        }
    }
}
impl CreateTrainingJobOutput {
    /// Creates a new builder-style object to manufacture [`CreateTrainingJobOutput`](crate::output::CreateTrainingJobOutput).
    pub fn builder() -> crate::output::create_training_job_output::Builder {
        crate::output::create_training_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateStudioLifecycleConfigOutput {
    /// <p>The ARN of your created Lifecycle Configuration.</p>
    #[doc(hidden)]
    pub studio_lifecycle_config_arn: std::option::Option<std::string::String>,
}
impl CreateStudioLifecycleConfigOutput {
    /// <p>The ARN of your created Lifecycle Configuration.</p>
    pub fn studio_lifecycle_config_arn(&self) -> std::option::Option<&str> {
        self.studio_lifecycle_config_arn.as_deref()
    }
}
/// See [`CreateStudioLifecycleConfigOutput`](crate::output::CreateStudioLifecycleConfigOutput).
pub mod create_studio_lifecycle_config_output {

    /// A builder for [`CreateStudioLifecycleConfigOutput`](crate::output::CreateStudioLifecycleConfigOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) studio_lifecycle_config_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ARN of your created Lifecycle Configuration.</p>
        pub fn studio_lifecycle_config_arn(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.studio_lifecycle_config_arn = Some(input.into());
            self
        }
        /// <p>The ARN of your created Lifecycle Configuration.</p>
        pub fn set_studio_lifecycle_config_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.studio_lifecycle_config_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateStudioLifecycleConfigOutput`](crate::output::CreateStudioLifecycleConfigOutput).
        pub fn build(self) -> crate::output::CreateStudioLifecycleConfigOutput {
            crate::output::CreateStudioLifecycleConfigOutput {
                studio_lifecycle_config_arn: self.studio_lifecycle_config_arn,
            }
        }
    }
}
impl CreateStudioLifecycleConfigOutput {
    /// Creates a new builder-style object to manufacture [`CreateStudioLifecycleConfigOutput`](crate::output::CreateStudioLifecycleConfigOutput).
    pub fn builder() -> crate::output::create_studio_lifecycle_config_output::Builder {
        crate::output::create_studio_lifecycle_config_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateSpaceOutput {
    /// <p>The space's Amazon Resource Name (ARN).</p>
    #[doc(hidden)]
    pub space_arn: std::option::Option<std::string::String>,
}
impl CreateSpaceOutput {
    /// <p>The space's Amazon Resource Name (ARN).</p>
    pub fn space_arn(&self) -> std::option::Option<&str> {
        self.space_arn.as_deref()
    }
}
/// See [`CreateSpaceOutput`](crate::output::CreateSpaceOutput).
pub mod create_space_output {

    /// A builder for [`CreateSpaceOutput`](crate::output::CreateSpaceOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) space_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The space's Amazon Resource Name (ARN).</p>
        pub fn space_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.space_arn = Some(input.into());
            self
        }
        /// <p>The space's Amazon Resource Name (ARN).</p>
        pub fn set_space_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.space_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateSpaceOutput`](crate::output::CreateSpaceOutput).
        pub fn build(self) -> crate::output::CreateSpaceOutput {
            crate::output::CreateSpaceOutput {
                space_arn: self.space_arn,
            }
        }
    }
}
impl CreateSpaceOutput {
    /// Creates a new builder-style object to manufacture [`CreateSpaceOutput`](crate::output::CreateSpaceOutput).
    pub fn builder() -> crate::output::create_space_output::Builder {
        crate::output::create_space_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateProjectOutput {
    /// <p>The Amazon Resource Name (ARN) of the project.</p>
    #[doc(hidden)]
    pub project_arn: std::option::Option<std::string::String>,
    /// <p>The ID of the new project.</p>
    #[doc(hidden)]
    pub project_id: std::option::Option<std::string::String>,
}
impl CreateProjectOutput {
    /// <p>The Amazon Resource Name (ARN) of the project.</p>
    pub fn project_arn(&self) -> std::option::Option<&str> {
        self.project_arn.as_deref()
    }
    /// <p>The ID of the new project.</p>
    pub fn project_id(&self) -> std::option::Option<&str> {
        self.project_id.as_deref()
    }
}
/// See [`CreateProjectOutput`](crate::output::CreateProjectOutput).
pub mod create_project_output {

    /// A builder for [`CreateProjectOutput`](crate::output::CreateProjectOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) project_arn: std::option::Option<std::string::String>,
        pub(crate) project_id: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the project.</p>
        pub fn project_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.project_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the project.</p>
        pub fn set_project_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.project_arn = input;
            self
        }
        /// <p>The ID of the new project.</p>
        pub fn project_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.project_id = Some(input.into());
            self
        }
        /// <p>The ID of the new project.</p>
        pub fn set_project_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.project_id = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateProjectOutput`](crate::output::CreateProjectOutput).
        pub fn build(self) -> crate::output::CreateProjectOutput {
            crate::output::CreateProjectOutput {
                project_arn: self.project_arn,
                project_id: self.project_id,
            }
        }
    }
}
impl CreateProjectOutput {
    /// Creates a new builder-style object to manufacture [`CreateProjectOutput`](crate::output::CreateProjectOutput).
    pub fn builder() -> crate::output::create_project_output::Builder {
        crate::output::create_project_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateProcessingJobOutput {
    /// <p>The Amazon Resource Name (ARN) of the processing job.</p>
    #[doc(hidden)]
    pub processing_job_arn: std::option::Option<std::string::String>,
}
impl CreateProcessingJobOutput {
    /// <p>The Amazon Resource Name (ARN) of the processing job.</p>
    pub fn processing_job_arn(&self) -> std::option::Option<&str> {
        self.processing_job_arn.as_deref()
    }
}
/// See [`CreateProcessingJobOutput`](crate::output::CreateProcessingJobOutput).
pub mod create_processing_job_output {

    /// A builder for [`CreateProcessingJobOutput`](crate::output::CreateProcessingJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) processing_job_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the processing job.</p>
        pub fn processing_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.processing_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the processing job.</p>
        pub fn set_processing_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.processing_job_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateProcessingJobOutput`](crate::output::CreateProcessingJobOutput).
        pub fn build(self) -> crate::output::CreateProcessingJobOutput {
            crate::output::CreateProcessingJobOutput {
                processing_job_arn: self.processing_job_arn,
            }
        }
    }
}
impl CreateProcessingJobOutput {
    /// Creates a new builder-style object to manufacture [`CreateProcessingJobOutput`](crate::output::CreateProcessingJobOutput).
    pub fn builder() -> crate::output::create_processing_job_output::Builder {
        crate::output::create_processing_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreatePresignedNotebookInstanceUrlOutput {
    /// <p>A JSON object that contains the URL string. </p>
    #[doc(hidden)]
    pub authorized_url: std::option::Option<std::string::String>,
}
impl CreatePresignedNotebookInstanceUrlOutput {
    /// <p>A JSON object that contains the URL string. </p>
    pub fn authorized_url(&self) -> std::option::Option<&str> {
        self.authorized_url.as_deref()
    }
}
/// See [`CreatePresignedNotebookInstanceUrlOutput`](crate::output::CreatePresignedNotebookInstanceUrlOutput).
pub mod create_presigned_notebook_instance_url_output {

    /// A builder for [`CreatePresignedNotebookInstanceUrlOutput`](crate::output::CreatePresignedNotebookInstanceUrlOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) authorized_url: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>A JSON object that contains the URL string. </p>
        pub fn authorized_url(mut self, input: impl Into<std::string::String>) -> Self {
            self.authorized_url = Some(input.into());
            self
        }
        /// <p>A JSON object that contains the URL string. </p>
        pub fn set_authorized_url(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.authorized_url = input;
            self
        }
        /// Consumes the builder and constructs a [`CreatePresignedNotebookInstanceUrlOutput`](crate::output::CreatePresignedNotebookInstanceUrlOutput).
        pub fn build(self) -> crate::output::CreatePresignedNotebookInstanceUrlOutput {
            crate::output::CreatePresignedNotebookInstanceUrlOutput {
                authorized_url: self.authorized_url,
            }
        }
    }
}
impl CreatePresignedNotebookInstanceUrlOutput {
    /// Creates a new builder-style object to manufacture [`CreatePresignedNotebookInstanceUrlOutput`](crate::output::CreatePresignedNotebookInstanceUrlOutput).
    pub fn builder() -> crate::output::create_presigned_notebook_instance_url_output::Builder {
        crate::output::create_presigned_notebook_instance_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 CreatePresignedDomainUrlOutput {
    /// <p>The presigned URL.</p>
    #[doc(hidden)]
    pub authorized_url: std::option::Option<std::string::String>,
}
impl CreatePresignedDomainUrlOutput {
    /// <p>The presigned URL.</p>
    pub fn authorized_url(&self) -> std::option::Option<&str> {
        self.authorized_url.as_deref()
    }
}
/// See [`CreatePresignedDomainUrlOutput`](crate::output::CreatePresignedDomainUrlOutput).
pub mod create_presigned_domain_url_output {

    /// A builder for [`CreatePresignedDomainUrlOutput`](crate::output::CreatePresignedDomainUrlOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) authorized_url: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The presigned URL.</p>
        pub fn authorized_url(mut self, input: impl Into<std::string::String>) -> Self {
            self.authorized_url = Some(input.into());
            self
        }
        /// <p>The presigned URL.</p>
        pub fn set_authorized_url(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.authorized_url = input;
            self
        }
        /// Consumes the builder and constructs a [`CreatePresignedDomainUrlOutput`](crate::output::CreatePresignedDomainUrlOutput).
        pub fn build(self) -> crate::output::CreatePresignedDomainUrlOutput {
            crate::output::CreatePresignedDomainUrlOutput {
                authorized_url: self.authorized_url,
            }
        }
    }
}
impl CreatePresignedDomainUrlOutput {
    /// Creates a new builder-style object to manufacture [`CreatePresignedDomainUrlOutput`](crate::output::CreatePresignedDomainUrlOutput).
    pub fn builder() -> crate::output::create_presigned_domain_url_output::Builder {
        crate::output::create_presigned_domain_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 CreatePipelineOutput {
    /// <p>The Amazon Resource Name (ARN) of the created pipeline.</p>
    #[doc(hidden)]
    pub pipeline_arn: std::option::Option<std::string::String>,
}
impl CreatePipelineOutput {
    /// <p>The Amazon Resource Name (ARN) of the created pipeline.</p>
    pub fn pipeline_arn(&self) -> std::option::Option<&str> {
        self.pipeline_arn.as_deref()
    }
}
/// See [`CreatePipelineOutput`](crate::output::CreatePipelineOutput).
pub mod create_pipeline_output {

    /// A builder for [`CreatePipelineOutput`](crate::output::CreatePipelineOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) pipeline_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the created pipeline.</p>
        pub fn pipeline_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.pipeline_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the created pipeline.</p>
        pub fn set_pipeline_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.pipeline_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreatePipelineOutput`](crate::output::CreatePipelineOutput).
        pub fn build(self) -> crate::output::CreatePipelineOutput {
            crate::output::CreatePipelineOutput {
                pipeline_arn: self.pipeline_arn,
            }
        }
    }
}
impl CreatePipelineOutput {
    /// Creates a new builder-style object to manufacture [`CreatePipelineOutput`](crate::output::CreatePipelineOutput).
    pub fn builder() -> crate::output::create_pipeline_output::Builder {
        crate::output::create_pipeline_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateNotebookInstanceLifecycleConfigOutput {
    /// <p>The Amazon Resource Name (ARN) of the lifecycle configuration.</p>
    #[doc(hidden)]
    pub notebook_instance_lifecycle_config_arn: std::option::Option<std::string::String>,
}
impl CreateNotebookInstanceLifecycleConfigOutput {
    /// <p>The Amazon Resource Name (ARN) of the lifecycle configuration.</p>
    pub fn notebook_instance_lifecycle_config_arn(&self) -> std::option::Option<&str> {
        self.notebook_instance_lifecycle_config_arn.as_deref()
    }
}
/// See [`CreateNotebookInstanceLifecycleConfigOutput`](crate::output::CreateNotebookInstanceLifecycleConfigOutput).
pub mod create_notebook_instance_lifecycle_config_output {

    /// A builder for [`CreateNotebookInstanceLifecycleConfigOutput`](crate::output::CreateNotebookInstanceLifecycleConfigOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) notebook_instance_lifecycle_config_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the lifecycle configuration.</p>
        pub fn notebook_instance_lifecycle_config_arn(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.notebook_instance_lifecycle_config_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the lifecycle configuration.</p>
        pub fn set_notebook_instance_lifecycle_config_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.notebook_instance_lifecycle_config_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateNotebookInstanceLifecycleConfigOutput`](crate::output::CreateNotebookInstanceLifecycleConfigOutput).
        pub fn build(self) -> crate::output::CreateNotebookInstanceLifecycleConfigOutput {
            crate::output::CreateNotebookInstanceLifecycleConfigOutput {
                notebook_instance_lifecycle_config_arn: self.notebook_instance_lifecycle_config_arn,
            }
        }
    }
}
impl CreateNotebookInstanceLifecycleConfigOutput {
    /// Creates a new builder-style object to manufacture [`CreateNotebookInstanceLifecycleConfigOutput`](crate::output::CreateNotebookInstanceLifecycleConfigOutput).
    pub fn builder() -> crate::output::create_notebook_instance_lifecycle_config_output::Builder {
        crate::output::create_notebook_instance_lifecycle_config_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateNotebookInstanceOutput {
    /// <p>The Amazon Resource Name (ARN) of the notebook instance. </p>
    #[doc(hidden)]
    pub notebook_instance_arn: std::option::Option<std::string::String>,
}
impl CreateNotebookInstanceOutput {
    /// <p>The Amazon Resource Name (ARN) of the notebook instance. </p>
    pub fn notebook_instance_arn(&self) -> std::option::Option<&str> {
        self.notebook_instance_arn.as_deref()
    }
}
/// See [`CreateNotebookInstanceOutput`](crate::output::CreateNotebookInstanceOutput).
pub mod create_notebook_instance_output {

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateMonitoringScheduleOutput {
    /// <p>The Amazon Resource Name (ARN) of the monitoring schedule.</p>
    #[doc(hidden)]
    pub monitoring_schedule_arn: std::option::Option<std::string::String>,
}
impl CreateMonitoringScheduleOutput {
    /// <p>The Amazon Resource Name (ARN) of the monitoring schedule.</p>
    pub fn monitoring_schedule_arn(&self) -> std::option::Option<&str> {
        self.monitoring_schedule_arn.as_deref()
    }
}
/// See [`CreateMonitoringScheduleOutput`](crate::output::CreateMonitoringScheduleOutput).
pub mod create_monitoring_schedule_output {

    /// A builder for [`CreateMonitoringScheduleOutput`](crate::output::CreateMonitoringScheduleOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) monitoring_schedule_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the monitoring schedule.</p>
        pub fn monitoring_schedule_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.monitoring_schedule_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the monitoring schedule.</p>
        pub fn set_monitoring_schedule_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.monitoring_schedule_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateMonitoringScheduleOutput`](crate::output::CreateMonitoringScheduleOutput).
        pub fn build(self) -> crate::output::CreateMonitoringScheduleOutput {
            crate::output::CreateMonitoringScheduleOutput {
                monitoring_schedule_arn: self.monitoring_schedule_arn,
            }
        }
    }
}
impl CreateMonitoringScheduleOutput {
    /// Creates a new builder-style object to manufacture [`CreateMonitoringScheduleOutput`](crate::output::CreateMonitoringScheduleOutput).
    pub fn builder() -> crate::output::create_monitoring_schedule_output::Builder {
        crate::output::create_monitoring_schedule_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateModelQualityJobDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the model quality monitoring job.</p>
    #[doc(hidden)]
    pub job_definition_arn: std::option::Option<std::string::String>,
}
impl CreateModelQualityJobDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the model quality monitoring job.</p>
    pub fn job_definition_arn(&self) -> std::option::Option<&str> {
        self.job_definition_arn.as_deref()
    }
}
/// See [`CreateModelQualityJobDefinitionOutput`](crate::output::CreateModelQualityJobDefinitionOutput).
pub mod create_model_quality_job_definition_output {

    /// A builder for [`CreateModelQualityJobDefinitionOutput`](crate::output::CreateModelQualityJobDefinitionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) job_definition_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the model quality monitoring job.</p>
        pub fn job_definition_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.job_definition_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model quality monitoring job.</p>
        pub fn set_job_definition_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.job_definition_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateModelQualityJobDefinitionOutput`](crate::output::CreateModelQualityJobDefinitionOutput).
        pub fn build(self) -> crate::output::CreateModelQualityJobDefinitionOutput {
            crate::output::CreateModelQualityJobDefinitionOutput {
                job_definition_arn: self.job_definition_arn,
            }
        }
    }
}
impl CreateModelQualityJobDefinitionOutput {
    /// Creates a new builder-style object to manufacture [`CreateModelQualityJobDefinitionOutput`](crate::output::CreateModelQualityJobDefinitionOutput).
    pub fn builder() -> crate::output::create_model_quality_job_definition_output::Builder {
        crate::output::create_model_quality_job_definition_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateModelPackageGroupOutput {
    /// <p>The Amazon Resource Name (ARN) of the model group.</p>
    #[doc(hidden)]
    pub model_package_group_arn: std::option::Option<std::string::String>,
}
impl CreateModelPackageGroupOutput {
    /// <p>The Amazon Resource Name (ARN) of the model group.</p>
    pub fn model_package_group_arn(&self) -> std::option::Option<&str> {
        self.model_package_group_arn.as_deref()
    }
}
/// See [`CreateModelPackageGroupOutput`](crate::output::CreateModelPackageGroupOutput).
pub mod create_model_package_group_output {

    /// A builder for [`CreateModelPackageGroupOutput`](crate::output::CreateModelPackageGroupOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) model_package_group_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the model group.</p>
        pub fn model_package_group_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_package_group_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model group.</p>
        pub fn set_model_package_group_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_package_group_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateModelPackageGroupOutput`](crate::output::CreateModelPackageGroupOutput).
        pub fn build(self) -> crate::output::CreateModelPackageGroupOutput {
            crate::output::CreateModelPackageGroupOutput {
                model_package_group_arn: self.model_package_group_arn,
            }
        }
    }
}
impl CreateModelPackageGroupOutput {
    /// Creates a new builder-style object to manufacture [`CreateModelPackageGroupOutput`](crate::output::CreateModelPackageGroupOutput).
    pub fn builder() -> crate::output::create_model_package_group_output::Builder {
        crate::output::create_model_package_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 CreateModelPackageOutput {
    /// <p>The Amazon Resource Name (ARN) of the new model package.</p>
    #[doc(hidden)]
    pub model_package_arn: std::option::Option<std::string::String>,
}
impl CreateModelPackageOutput {
    /// <p>The Amazon Resource Name (ARN) of the new model package.</p>
    pub fn model_package_arn(&self) -> std::option::Option<&str> {
        self.model_package_arn.as_deref()
    }
}
/// See [`CreateModelPackageOutput`](crate::output::CreateModelPackageOutput).
pub mod create_model_package_output {

    /// A builder for [`CreateModelPackageOutput`](crate::output::CreateModelPackageOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) model_package_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the new model package.</p>
        pub fn model_package_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_package_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the new model package.</p>
        pub fn set_model_package_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_package_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateModelPackageOutput`](crate::output::CreateModelPackageOutput).
        pub fn build(self) -> crate::output::CreateModelPackageOutput {
            crate::output::CreateModelPackageOutput {
                model_package_arn: self.model_package_arn,
            }
        }
    }
}
impl CreateModelPackageOutput {
    /// Creates a new builder-style object to manufacture [`CreateModelPackageOutput`](crate::output::CreateModelPackageOutput).
    pub fn builder() -> crate::output::create_model_package_output::Builder {
        crate::output::create_model_package_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateModelExplainabilityJobDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the model explainability job.</p>
    #[doc(hidden)]
    pub job_definition_arn: std::option::Option<std::string::String>,
}
impl CreateModelExplainabilityJobDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the model explainability job.</p>
    pub fn job_definition_arn(&self) -> std::option::Option<&str> {
        self.job_definition_arn.as_deref()
    }
}
/// See [`CreateModelExplainabilityJobDefinitionOutput`](crate::output::CreateModelExplainabilityJobDefinitionOutput).
pub mod create_model_explainability_job_definition_output {

    /// A builder for [`CreateModelExplainabilityJobDefinitionOutput`](crate::output::CreateModelExplainabilityJobDefinitionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) job_definition_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the model explainability job.</p>
        pub fn job_definition_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.job_definition_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model explainability job.</p>
        pub fn set_job_definition_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.job_definition_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateModelExplainabilityJobDefinitionOutput`](crate::output::CreateModelExplainabilityJobDefinitionOutput).
        pub fn build(self) -> crate::output::CreateModelExplainabilityJobDefinitionOutput {
            crate::output::CreateModelExplainabilityJobDefinitionOutput {
                job_definition_arn: self.job_definition_arn,
            }
        }
    }
}
impl CreateModelExplainabilityJobDefinitionOutput {
    /// Creates a new builder-style object to manufacture [`CreateModelExplainabilityJobDefinitionOutput`](crate::output::CreateModelExplainabilityJobDefinitionOutput).
    pub fn builder() -> crate::output::create_model_explainability_job_definition_output::Builder {
        crate::output::create_model_explainability_job_definition_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateModelCardExportJobOutput {
    /// <p>The Amazon Resource Name (ARN) of the model card export job.</p>
    #[doc(hidden)]
    pub model_card_export_job_arn: std::option::Option<std::string::String>,
}
impl CreateModelCardExportJobOutput {
    /// <p>The Amazon Resource Name (ARN) of the model card export job.</p>
    pub fn model_card_export_job_arn(&self) -> std::option::Option<&str> {
        self.model_card_export_job_arn.as_deref()
    }
}
/// See [`CreateModelCardExportJobOutput`](crate::output::CreateModelCardExportJobOutput).
pub mod create_model_card_export_job_output {

    /// A builder for [`CreateModelCardExportJobOutput`](crate::output::CreateModelCardExportJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) model_card_export_job_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the model card export job.</p>
        pub fn model_card_export_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_card_export_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model card export job.</p>
        pub fn set_model_card_export_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_card_export_job_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateModelCardExportJobOutput`](crate::output::CreateModelCardExportJobOutput).
        pub fn build(self) -> crate::output::CreateModelCardExportJobOutput {
            crate::output::CreateModelCardExportJobOutput {
                model_card_export_job_arn: self.model_card_export_job_arn,
            }
        }
    }
}
impl CreateModelCardExportJobOutput {
    /// Creates a new builder-style object to manufacture [`CreateModelCardExportJobOutput`](crate::output::CreateModelCardExportJobOutput).
    pub fn builder() -> crate::output::create_model_card_export_job_output::Builder {
        crate::output::create_model_card_export_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateModelCardOutput {
    /// <p>The Amazon Resource Name (ARN) of the successfully created model card.</p>
    #[doc(hidden)]
    pub model_card_arn: std::option::Option<std::string::String>,
}
impl CreateModelCardOutput {
    /// <p>The Amazon Resource Name (ARN) of the successfully created model card.</p>
    pub fn model_card_arn(&self) -> std::option::Option<&str> {
        self.model_card_arn.as_deref()
    }
}
/// See [`CreateModelCardOutput`](crate::output::CreateModelCardOutput).
pub mod create_model_card_output {

    /// A builder for [`CreateModelCardOutput`](crate::output::CreateModelCardOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) model_card_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the successfully created model card.</p>
        pub fn model_card_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_card_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the successfully created model card.</p>
        pub fn set_model_card_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_card_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateModelCardOutput`](crate::output::CreateModelCardOutput).
        pub fn build(self) -> crate::output::CreateModelCardOutput {
            crate::output::CreateModelCardOutput {
                model_card_arn: self.model_card_arn,
            }
        }
    }
}
impl CreateModelCardOutput {
    /// Creates a new builder-style object to manufacture [`CreateModelCardOutput`](crate::output::CreateModelCardOutput).
    pub fn builder() -> crate::output::create_model_card_output::Builder {
        crate::output::create_model_card_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateModelBiasJobDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the model bias job.</p>
    #[doc(hidden)]
    pub job_definition_arn: std::option::Option<std::string::String>,
}
impl CreateModelBiasJobDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the model bias job.</p>
    pub fn job_definition_arn(&self) -> std::option::Option<&str> {
        self.job_definition_arn.as_deref()
    }
}
/// See [`CreateModelBiasJobDefinitionOutput`](crate::output::CreateModelBiasJobDefinitionOutput).
pub mod create_model_bias_job_definition_output {

    /// A builder for [`CreateModelBiasJobDefinitionOutput`](crate::output::CreateModelBiasJobDefinitionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) job_definition_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the model bias job.</p>
        pub fn job_definition_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.job_definition_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the model bias job.</p>
        pub fn set_job_definition_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.job_definition_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateModelBiasJobDefinitionOutput`](crate::output::CreateModelBiasJobDefinitionOutput).
        pub fn build(self) -> crate::output::CreateModelBiasJobDefinitionOutput {
            crate::output::CreateModelBiasJobDefinitionOutput {
                job_definition_arn: self.job_definition_arn,
            }
        }
    }
}
impl CreateModelBiasJobDefinitionOutput {
    /// Creates a new builder-style object to manufacture [`CreateModelBiasJobDefinitionOutput`](crate::output::CreateModelBiasJobDefinitionOutput).
    pub fn builder() -> crate::output::create_model_bias_job_definition_output::Builder {
        crate::output::create_model_bias_job_definition_output::Builder::default()
    }
}

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

    /// A builder for [`CreateModelOutput`](crate::output::CreateModelOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) model_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ARN of the model created in SageMaker.</p>
        pub fn model_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_arn = Some(input.into());
            self
        }
        /// <p>The ARN of the model created in SageMaker.</p>
        pub fn set_model_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.model_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateModelOutput`](crate::output::CreateModelOutput).
        pub fn build(self) -> crate::output::CreateModelOutput {
            crate::output::CreateModelOutput {
                model_arn: self.model_arn,
            }
        }
    }
}
impl CreateModelOutput {
    /// Creates a new builder-style object to manufacture [`CreateModelOutput`](crate::output::CreateModelOutput).
    pub fn builder() -> crate::output::create_model_output::Builder {
        crate::output::create_model_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateLabelingJobOutput {
    /// <p>The Amazon Resource Name (ARN) of the labeling job. You use this ARN to identify the labeling job.</p>
    #[doc(hidden)]
    pub labeling_job_arn: std::option::Option<std::string::String>,
}
impl CreateLabelingJobOutput {
    /// <p>The Amazon Resource Name (ARN) of the labeling job. You use this ARN to identify the labeling job.</p>
    pub fn labeling_job_arn(&self) -> std::option::Option<&str> {
        self.labeling_job_arn.as_deref()
    }
}
/// See [`CreateLabelingJobOutput`](crate::output::CreateLabelingJobOutput).
pub mod create_labeling_job_output {

    /// A builder for [`CreateLabelingJobOutput`](crate::output::CreateLabelingJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) labeling_job_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the labeling job. You use this ARN to identify the labeling job.</p>
        pub fn labeling_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.labeling_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the labeling job. You use this ARN to identify the labeling job.</p>
        pub fn set_labeling_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.labeling_job_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateLabelingJobOutput`](crate::output::CreateLabelingJobOutput).
        pub fn build(self) -> crate::output::CreateLabelingJobOutput {
            crate::output::CreateLabelingJobOutput {
                labeling_job_arn: self.labeling_job_arn,
            }
        }
    }
}
impl CreateLabelingJobOutput {
    /// Creates a new builder-style object to manufacture [`CreateLabelingJobOutput`](crate::output::CreateLabelingJobOutput).
    pub fn builder() -> crate::output::create_labeling_job_output::Builder {
        crate::output::create_labeling_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateInferenceRecommendationsJobOutput {
    /// <p>The Amazon Resource Name (ARN) of the recommendation job.</p>
    #[doc(hidden)]
    pub job_arn: std::option::Option<std::string::String>,
}
impl CreateInferenceRecommendationsJobOutput {
    /// <p>The Amazon Resource Name (ARN) of the recommendation job.</p>
    pub fn job_arn(&self) -> std::option::Option<&str> {
        self.job_arn.as_deref()
    }
}
/// See [`CreateInferenceRecommendationsJobOutput`](crate::output::CreateInferenceRecommendationsJobOutput).
pub mod create_inference_recommendations_job_output {

    /// A builder for [`CreateInferenceRecommendationsJobOutput`](crate::output::CreateInferenceRecommendationsJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) job_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the recommendation job.</p>
        pub fn job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the recommendation job.</p>
        pub fn set_job_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.job_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateInferenceRecommendationsJobOutput`](crate::output::CreateInferenceRecommendationsJobOutput).
        pub fn build(self) -> crate::output::CreateInferenceRecommendationsJobOutput {
            crate::output::CreateInferenceRecommendationsJobOutput {
                job_arn: self.job_arn,
            }
        }
    }
}
impl CreateInferenceRecommendationsJobOutput {
    /// Creates a new builder-style object to manufacture [`CreateInferenceRecommendationsJobOutput`](crate::output::CreateInferenceRecommendationsJobOutput).
    pub fn builder() -> crate::output::create_inference_recommendations_job_output::Builder {
        crate::output::create_inference_recommendations_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateInferenceExperimentOutput {
    /// <p>The ARN for your inference experiment.</p>
    #[doc(hidden)]
    pub inference_experiment_arn: std::option::Option<std::string::String>,
}
impl CreateInferenceExperimentOutput {
    /// <p>The ARN for your inference experiment.</p>
    pub fn inference_experiment_arn(&self) -> std::option::Option<&str> {
        self.inference_experiment_arn.as_deref()
    }
}
/// See [`CreateInferenceExperimentOutput`](crate::output::CreateInferenceExperimentOutput).
pub mod create_inference_experiment_output {

    /// A builder for [`CreateInferenceExperimentOutput`](crate::output::CreateInferenceExperimentOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) inference_experiment_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ARN for your inference experiment.</p>
        pub fn inference_experiment_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inference_experiment_arn = Some(input.into());
            self
        }
        /// <p>The ARN for your inference experiment.</p>
        pub fn set_inference_experiment_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inference_experiment_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateInferenceExperimentOutput`](crate::output::CreateInferenceExperimentOutput).
        pub fn build(self) -> crate::output::CreateInferenceExperimentOutput {
            crate::output::CreateInferenceExperimentOutput {
                inference_experiment_arn: self.inference_experiment_arn,
            }
        }
    }
}
impl CreateInferenceExperimentOutput {
    /// Creates a new builder-style object to manufacture [`CreateInferenceExperimentOutput`](crate::output::CreateInferenceExperimentOutput).
    pub fn builder() -> crate::output::create_inference_experiment_output::Builder {
        crate::output::create_inference_experiment_output::Builder::default()
    }
}

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

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

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateHyperParameterTuningJobOutput {
    /// <p>The Amazon Resource Name (ARN) of the tuning job. SageMaker assigns an ARN to a hyperparameter tuning job when you create it.</p>
    #[doc(hidden)]
    pub hyper_parameter_tuning_job_arn: std::option::Option<std::string::String>,
}
impl CreateHyperParameterTuningJobOutput {
    /// <p>The Amazon Resource Name (ARN) of the tuning job. SageMaker assigns an ARN to a hyperparameter tuning job when you create it.</p>
    pub fn hyper_parameter_tuning_job_arn(&self) -> std::option::Option<&str> {
        self.hyper_parameter_tuning_job_arn.as_deref()
    }
}
/// See [`CreateHyperParameterTuningJobOutput`](crate::output::CreateHyperParameterTuningJobOutput).
pub mod create_hyper_parameter_tuning_job_output {

    /// A builder for [`CreateHyperParameterTuningJobOutput`](crate::output::CreateHyperParameterTuningJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) hyper_parameter_tuning_job_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the tuning job. SageMaker assigns an ARN to a hyperparameter tuning job when you create it.</p>
        pub fn hyper_parameter_tuning_job_arn(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.hyper_parameter_tuning_job_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the tuning job. SageMaker assigns an ARN to a hyperparameter tuning job when you create it.</p>
        pub fn set_hyper_parameter_tuning_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.hyper_parameter_tuning_job_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateHyperParameterTuningJobOutput`](crate::output::CreateHyperParameterTuningJobOutput).
        pub fn build(self) -> crate::output::CreateHyperParameterTuningJobOutput {
            crate::output::CreateHyperParameterTuningJobOutput {
                hyper_parameter_tuning_job_arn: self.hyper_parameter_tuning_job_arn,
            }
        }
    }
}
impl CreateHyperParameterTuningJobOutput {
    /// Creates a new builder-style object to manufacture [`CreateHyperParameterTuningJobOutput`](crate::output::CreateHyperParameterTuningJobOutput).
    pub fn builder() -> crate::output::create_hyper_parameter_tuning_job_output::Builder {
        crate::output::create_hyper_parameter_tuning_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateHumanTaskUiOutput {
    /// <p>The Amazon Resource Name (ARN) of the human review workflow user interface you create.</p>
    #[doc(hidden)]
    pub human_task_ui_arn: std::option::Option<std::string::String>,
}
impl CreateHumanTaskUiOutput {
    /// <p>The Amazon Resource Name (ARN) of the human review workflow user interface you create.</p>
    pub fn human_task_ui_arn(&self) -> std::option::Option<&str> {
        self.human_task_ui_arn.as_deref()
    }
}
/// See [`CreateHumanTaskUiOutput`](crate::output::CreateHumanTaskUiOutput).
pub mod create_human_task_ui_output {

    /// A builder for [`CreateHumanTaskUiOutput`](crate::output::CreateHumanTaskUiOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) human_task_ui_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the human review workflow user interface you create.</p>
        pub fn human_task_ui_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.human_task_ui_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the human review workflow user interface you create.</p>
        pub fn set_human_task_ui_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.human_task_ui_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateHumanTaskUiOutput`](crate::output::CreateHumanTaskUiOutput).
        pub fn build(self) -> crate::output::CreateHumanTaskUiOutput {
            crate::output::CreateHumanTaskUiOutput {
                human_task_ui_arn: self.human_task_ui_arn,
            }
        }
    }
}
impl CreateHumanTaskUiOutput {
    /// Creates a new builder-style object to manufacture [`CreateHumanTaskUiOutput`](crate::output::CreateHumanTaskUiOutput).
    pub fn builder() -> crate::output::create_human_task_ui_output::Builder {
        crate::output::create_human_task_ui_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateHubOutput {
    /// <p>The Amazon Resource Name (ARN) of the hub.</p>
    #[doc(hidden)]
    pub hub_arn: std::option::Option<std::string::String>,
}
impl CreateHubOutput {
    /// <p>The Amazon Resource Name (ARN) of the hub.</p>
    pub fn hub_arn(&self) -> std::option::Option<&str> {
        self.hub_arn.as_deref()
    }
}
/// See [`CreateHubOutput`](crate::output::CreateHubOutput).
pub mod create_hub_output {

    /// A builder for [`CreateHubOutput`](crate::output::CreateHubOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) hub_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the hub.</p>
        pub fn hub_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.hub_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the hub.</p>
        pub fn set_hub_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.hub_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateHubOutput`](crate::output::CreateHubOutput).
        pub fn build(self) -> crate::output::CreateHubOutput {
            crate::output::CreateHubOutput {
                hub_arn: self.hub_arn,
            }
        }
    }
}
impl CreateHubOutput {
    /// Creates a new builder-style object to manufacture [`CreateHubOutput`](crate::output::CreateHubOutput).
    pub fn builder() -> crate::output::create_hub_output::Builder {
        crate::output::create_hub_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateFlowDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the flow definition you create.</p>
    #[doc(hidden)]
    pub flow_definition_arn: std::option::Option<std::string::String>,
}
impl CreateFlowDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the flow definition you create.</p>
    pub fn flow_definition_arn(&self) -> std::option::Option<&str> {
        self.flow_definition_arn.as_deref()
    }
}
/// See [`CreateFlowDefinitionOutput`](crate::output::CreateFlowDefinitionOutput).
pub mod create_flow_definition_output {

    /// A builder for [`CreateFlowDefinitionOutput`](crate::output::CreateFlowDefinitionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) flow_definition_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the flow definition you create.</p>
        pub fn flow_definition_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.flow_definition_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the flow definition you create.</p>
        pub fn set_flow_definition_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.flow_definition_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateFlowDefinitionOutput`](crate::output::CreateFlowDefinitionOutput).
        pub fn build(self) -> crate::output::CreateFlowDefinitionOutput {
            crate::output::CreateFlowDefinitionOutput {
                flow_definition_arn: self.flow_definition_arn,
            }
        }
    }
}
impl CreateFlowDefinitionOutput {
    /// Creates a new builder-style object to manufacture [`CreateFlowDefinitionOutput`](crate::output::CreateFlowDefinitionOutput).
    pub fn builder() -> crate::output::create_flow_definition_output::Builder {
        crate::output::create_flow_definition_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateFeatureGroupOutput {
    /// <p>The Amazon Resource Name (ARN) of the <code>FeatureGroup</code>. This is a unique identifier for the feature group. </p>
    #[doc(hidden)]
    pub feature_group_arn: std::option::Option<std::string::String>,
}
impl CreateFeatureGroupOutput {
    /// <p>The Amazon Resource Name (ARN) of the <code>FeatureGroup</code>. This is a unique identifier for the feature group. </p>
    pub fn feature_group_arn(&self) -> std::option::Option<&str> {
        self.feature_group_arn.as_deref()
    }
}
/// See [`CreateFeatureGroupOutput`](crate::output::CreateFeatureGroupOutput).
pub mod create_feature_group_output {

    /// A builder for [`CreateFeatureGroupOutput`](crate::output::CreateFeatureGroupOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) feature_group_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the <code>FeatureGroup</code>. This is a unique identifier for the feature group. </p>
        pub fn feature_group_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.feature_group_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the <code>FeatureGroup</code>. This is a unique identifier for the feature group. </p>
        pub fn set_feature_group_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.feature_group_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateFeatureGroupOutput`](crate::output::CreateFeatureGroupOutput).
        pub fn build(self) -> crate::output::CreateFeatureGroupOutput {
            crate::output::CreateFeatureGroupOutput {
                feature_group_arn: self.feature_group_arn,
            }
        }
    }
}
impl CreateFeatureGroupOutput {
    /// Creates a new builder-style object to manufacture [`CreateFeatureGroupOutput`](crate::output::CreateFeatureGroupOutput).
    pub fn builder() -> crate::output::create_feature_group_output::Builder {
        crate::output::create_feature_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 CreateExperimentOutput {
    /// <p>The Amazon Resource Name (ARN) of the experiment.</p>
    #[doc(hidden)]
    pub experiment_arn: std::option::Option<std::string::String>,
}
impl CreateExperimentOutput {
    /// <p>The Amazon Resource Name (ARN) of the experiment.</p>
    pub fn experiment_arn(&self) -> std::option::Option<&str> {
        self.experiment_arn.as_deref()
    }
}
/// See [`CreateExperimentOutput`](crate::output::CreateExperimentOutput).
pub mod create_experiment_output {

    /// A builder for [`CreateExperimentOutput`](crate::output::CreateExperimentOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) experiment_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the experiment.</p>
        pub fn experiment_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.experiment_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the experiment.</p>
        pub fn set_experiment_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.experiment_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateExperimentOutput`](crate::output::CreateExperimentOutput).
        pub fn build(self) -> crate::output::CreateExperimentOutput {
            crate::output::CreateExperimentOutput {
                experiment_arn: self.experiment_arn,
            }
        }
    }
}
impl CreateExperimentOutput {
    /// Creates a new builder-style object to manufacture [`CreateExperimentOutput`](crate::output::CreateExperimentOutput).
    pub fn builder() -> crate::output::create_experiment_output::Builder {
        crate::output::create_experiment_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateEndpointConfigOutput {
    /// <p>The Amazon Resource Name (ARN) of the endpoint configuration. </p>
    #[doc(hidden)]
    pub endpoint_config_arn: std::option::Option<std::string::String>,
}
impl CreateEndpointConfigOutput {
    /// <p>The Amazon Resource Name (ARN) of the endpoint configuration. </p>
    pub fn endpoint_config_arn(&self) -> std::option::Option<&str> {
        self.endpoint_config_arn.as_deref()
    }
}
/// See [`CreateEndpointConfigOutput`](crate::output::CreateEndpointConfigOutput).
pub mod create_endpoint_config_output {

    /// A builder for [`CreateEndpointConfigOutput`](crate::output::CreateEndpointConfigOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) endpoint_config_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the endpoint configuration. </p>
        pub fn endpoint_config_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.endpoint_config_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the endpoint configuration. </p>
        pub fn set_endpoint_config_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.endpoint_config_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateEndpointConfigOutput`](crate::output::CreateEndpointConfigOutput).
        pub fn build(self) -> crate::output::CreateEndpointConfigOutput {
            crate::output::CreateEndpointConfigOutput {
                endpoint_config_arn: self.endpoint_config_arn,
            }
        }
    }
}
impl CreateEndpointConfigOutput {
    /// Creates a new builder-style object to manufacture [`CreateEndpointConfigOutput`](crate::output::CreateEndpointConfigOutput).
    pub fn builder() -> crate::output::create_endpoint_config_output::Builder {
        crate::output::create_endpoint_config_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateEndpointOutput {
    /// <p>The Amazon Resource Name (ARN) of the endpoint.</p>
    #[doc(hidden)]
    pub endpoint_arn: std::option::Option<std::string::String>,
}
impl CreateEndpointOutput {
    /// <p>The Amazon Resource Name (ARN) of the endpoint.</p>
    pub fn endpoint_arn(&self) -> std::option::Option<&str> {
        self.endpoint_arn.as_deref()
    }
}
/// See [`CreateEndpointOutput`](crate::output::CreateEndpointOutput).
pub mod create_endpoint_output {

    /// A builder for [`CreateEndpointOutput`](crate::output::CreateEndpointOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) endpoint_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the endpoint.</p>
        pub fn endpoint_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.endpoint_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the endpoint.</p>
        pub fn set_endpoint_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.endpoint_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateEndpointOutput`](crate::output::CreateEndpointOutput).
        pub fn build(self) -> crate::output::CreateEndpointOutput {
            crate::output::CreateEndpointOutput {
                endpoint_arn: self.endpoint_arn,
            }
        }
    }
}
impl CreateEndpointOutput {
    /// Creates a new builder-style object to manufacture [`CreateEndpointOutput`](crate::output::CreateEndpointOutput).
    pub fn builder() -> crate::output::create_endpoint_output::Builder {
        crate::output::create_endpoint_output::Builder::default()
    }
}

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

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

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

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

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateDomainOutput {
    /// <p>The Amazon Resource Name (ARN) of the created domain.</p>
    #[doc(hidden)]
    pub domain_arn: std::option::Option<std::string::String>,
    /// <p>The URL to the created domain.</p>
    #[doc(hidden)]
    pub url: std::option::Option<std::string::String>,
}
impl CreateDomainOutput {
    /// <p>The Amazon Resource Name (ARN) of the created domain.</p>
    pub fn domain_arn(&self) -> std::option::Option<&str> {
        self.domain_arn.as_deref()
    }
    /// <p>The URL to the created domain.</p>
    pub fn url(&self) -> std::option::Option<&str> {
        self.url.as_deref()
    }
}
/// See [`CreateDomainOutput`](crate::output::CreateDomainOutput).
pub mod create_domain_output {

    /// A builder for [`CreateDomainOutput`](crate::output::CreateDomainOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) domain_arn: std::option::Option<std::string::String>,
        pub(crate) url: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the created domain.</p>
        pub fn domain_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.domain_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the created domain.</p>
        pub fn set_domain_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.domain_arn = input;
            self
        }
        /// <p>The URL to the created domain.</p>
        pub fn url(mut self, input: impl Into<std::string::String>) -> Self {
            self.url = Some(input.into());
            self
        }
        /// <p>The URL to the created domain.</p>
        pub fn set_url(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.url = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateDomainOutput`](crate::output::CreateDomainOutput).
        pub fn build(self) -> crate::output::CreateDomainOutput {
            crate::output::CreateDomainOutput {
                domain_arn: self.domain_arn,
                url: self.url,
            }
        }
    }
}
impl CreateDomainOutput {
    /// Creates a new builder-style object to manufacture [`CreateDomainOutput`](crate::output::CreateDomainOutput).
    pub fn builder() -> crate::output::create_domain_output::Builder {
        crate::output::create_domain_output::Builder::default()
    }
}

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

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

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateDataQualityJobDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the job definition.</p>
    #[doc(hidden)]
    pub job_definition_arn: std::option::Option<std::string::String>,
}
impl CreateDataQualityJobDefinitionOutput {
    /// <p>The Amazon Resource Name (ARN) of the job definition.</p>
    pub fn job_definition_arn(&self) -> std::option::Option<&str> {
        self.job_definition_arn.as_deref()
    }
}
/// See [`CreateDataQualityJobDefinitionOutput`](crate::output::CreateDataQualityJobDefinitionOutput).
pub mod create_data_quality_job_definition_output {

    /// A builder for [`CreateDataQualityJobDefinitionOutput`](crate::output::CreateDataQualityJobDefinitionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) job_definition_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the job definition.</p>
        pub fn job_definition_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.job_definition_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the job definition.</p>
        pub fn set_job_definition_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.job_definition_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateDataQualityJobDefinitionOutput`](crate::output::CreateDataQualityJobDefinitionOutput).
        pub fn build(self) -> crate::output::CreateDataQualityJobDefinitionOutput {
            crate::output::CreateDataQualityJobDefinitionOutput {
                job_definition_arn: self.job_definition_arn,
            }
        }
    }
}
impl CreateDataQualityJobDefinitionOutput {
    /// Creates a new builder-style object to manufacture [`CreateDataQualityJobDefinitionOutput`](crate::output::CreateDataQualityJobDefinitionOutput).
    pub fn builder() -> crate::output::create_data_quality_job_definition_output::Builder {
        crate::output::create_data_quality_job_definition_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateContextOutput {
    /// <p>The Amazon Resource Name (ARN) of the context.</p>
    #[doc(hidden)]
    pub context_arn: std::option::Option<std::string::String>,
}
impl CreateContextOutput {
    /// <p>The Amazon Resource Name (ARN) of the context.</p>
    pub fn context_arn(&self) -> std::option::Option<&str> {
        self.context_arn.as_deref()
    }
}
/// See [`CreateContextOutput`](crate::output::CreateContextOutput).
pub mod create_context_output {

    /// A builder for [`CreateContextOutput`](crate::output::CreateContextOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) context_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the context.</p>
        pub fn context_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.context_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the context.</p>
        pub fn set_context_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.context_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateContextOutput`](crate::output::CreateContextOutput).
        pub fn build(self) -> crate::output::CreateContextOutput {
            crate::output::CreateContextOutput {
                context_arn: self.context_arn,
            }
        }
    }
}
impl CreateContextOutput {
    /// Creates a new builder-style object to manufacture [`CreateContextOutput`](crate::output::CreateContextOutput).
    pub fn builder() -> crate::output::create_context_output::Builder {
        crate::output::create_context_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateCompilationJobOutput {
    /// <p>If the action is successful, the service sends back an HTTP 200 response. Amazon SageMaker returns the following data in JSON format:</p>
    /// <ul>
    /// <li> <p> <code>CompilationJobArn</code>: The Amazon Resource Name (ARN) of the compiled job.</p> </li>
    /// </ul>
    #[doc(hidden)]
    pub compilation_job_arn: std::option::Option<std::string::String>,
}
impl CreateCompilationJobOutput {
    /// <p>If the action is successful, the service sends back an HTTP 200 response. Amazon SageMaker returns the following data in JSON format:</p>
    /// <ul>
    /// <li> <p> <code>CompilationJobArn</code>: The Amazon Resource Name (ARN) of the compiled job.</p> </li>
    /// </ul>
    pub fn compilation_job_arn(&self) -> std::option::Option<&str> {
        self.compilation_job_arn.as_deref()
    }
}
/// See [`CreateCompilationJobOutput`](crate::output::CreateCompilationJobOutput).
pub mod create_compilation_job_output {

    /// A builder for [`CreateCompilationJobOutput`](crate::output::CreateCompilationJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) compilation_job_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>If the action is successful, the service sends back an HTTP 200 response. Amazon SageMaker returns the following data in JSON format:</p>
        /// <ul>
        /// <li> <p> <code>CompilationJobArn</code>: The Amazon Resource Name (ARN) of the compiled job.</p> </li>
        /// </ul>
        pub fn compilation_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.compilation_job_arn = Some(input.into());
            self
        }
        /// <p>If the action is successful, the service sends back an HTTP 200 response. Amazon SageMaker returns the following data in JSON format:</p>
        /// <ul>
        /// <li> <p> <code>CompilationJobArn</code>: The Amazon Resource Name (ARN) of the compiled job.</p> </li>
        /// </ul>
        pub fn set_compilation_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.compilation_job_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateCompilationJobOutput`](crate::output::CreateCompilationJobOutput).
        pub fn build(self) -> crate::output::CreateCompilationJobOutput {
            crate::output::CreateCompilationJobOutput {
                compilation_job_arn: self.compilation_job_arn,
            }
        }
    }
}
impl CreateCompilationJobOutput {
    /// Creates a new builder-style object to manufacture [`CreateCompilationJobOutput`](crate::output::CreateCompilationJobOutput).
    pub fn builder() -> crate::output::create_compilation_job_output::Builder {
        crate::output::create_compilation_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateCodeRepositoryOutput {
    /// <p>The Amazon Resource Name (ARN) of the new repository.</p>
    #[doc(hidden)]
    pub code_repository_arn: std::option::Option<std::string::String>,
}
impl CreateCodeRepositoryOutput {
    /// <p>The Amazon Resource Name (ARN) of the new repository.</p>
    pub fn code_repository_arn(&self) -> std::option::Option<&str> {
        self.code_repository_arn.as_deref()
    }
}
/// See [`CreateCodeRepositoryOutput`](crate::output::CreateCodeRepositoryOutput).
pub mod create_code_repository_output {

    /// A builder for [`CreateCodeRepositoryOutput`](crate::output::CreateCodeRepositoryOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) code_repository_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the new repository.</p>
        pub fn code_repository_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.code_repository_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the new repository.</p>
        pub fn set_code_repository_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.code_repository_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateCodeRepositoryOutput`](crate::output::CreateCodeRepositoryOutput).
        pub fn build(self) -> crate::output::CreateCodeRepositoryOutput {
            crate::output::CreateCodeRepositoryOutput {
                code_repository_arn: self.code_repository_arn,
            }
        }
    }
}
impl CreateCodeRepositoryOutput {
    /// Creates a new builder-style object to manufacture [`CreateCodeRepositoryOutput`](crate::output::CreateCodeRepositoryOutput).
    pub fn builder() -> crate::output::create_code_repository_output::Builder {
        crate::output::create_code_repository_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateAutoMlJobOutput {
    /// <p>The unique ARN assigned to the AutoML job when it is created.</p>
    #[doc(hidden)]
    pub auto_ml_job_arn: std::option::Option<std::string::String>,
}
impl CreateAutoMlJobOutput {
    /// <p>The unique ARN assigned to the AutoML job when it is created.</p>
    pub fn auto_ml_job_arn(&self) -> std::option::Option<&str> {
        self.auto_ml_job_arn.as_deref()
    }
}
/// See [`CreateAutoMlJobOutput`](crate::output::CreateAutoMlJobOutput).
pub mod create_auto_ml_job_output {

    /// A builder for [`CreateAutoMlJobOutput`](crate::output::CreateAutoMlJobOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) auto_ml_job_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The unique ARN assigned to the AutoML job when it is created.</p>
        pub fn auto_ml_job_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.auto_ml_job_arn = Some(input.into());
            self
        }
        /// <p>The unique ARN assigned to the AutoML job when it is created.</p>
        pub fn set_auto_ml_job_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.auto_ml_job_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateAutoMlJobOutput`](crate::output::CreateAutoMlJobOutput).
        pub fn build(self) -> crate::output::CreateAutoMlJobOutput {
            crate::output::CreateAutoMlJobOutput {
                auto_ml_job_arn: self.auto_ml_job_arn,
            }
        }
    }
}
impl CreateAutoMlJobOutput {
    /// Creates a new builder-style object to manufacture [`CreateAutoMlJobOutput`](crate::output::CreateAutoMlJobOutput).
    pub fn builder() -> crate::output::create_auto_ml_job_output::Builder {
        crate::output::create_auto_ml_job_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateArtifactOutput {
    /// <p>The Amazon Resource Name (ARN) of the artifact.</p>
    #[doc(hidden)]
    pub artifact_arn: std::option::Option<std::string::String>,
}
impl CreateArtifactOutput {
    /// <p>The Amazon Resource Name (ARN) of the artifact.</p>
    pub fn artifact_arn(&self) -> std::option::Option<&str> {
        self.artifact_arn.as_deref()
    }
}
/// See [`CreateArtifactOutput`](crate::output::CreateArtifactOutput).
pub mod create_artifact_output {

    /// A builder for [`CreateArtifactOutput`](crate::output::CreateArtifactOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) artifact_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the artifact.</p>
        pub fn artifact_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.artifact_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the artifact.</p>
        pub fn set_artifact_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.artifact_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateArtifactOutput`](crate::output::CreateArtifactOutput).
        pub fn build(self) -> crate::output::CreateArtifactOutput {
            crate::output::CreateArtifactOutput {
                artifact_arn: self.artifact_arn,
            }
        }
    }
}
impl CreateArtifactOutput {
    /// Creates a new builder-style object to manufacture [`CreateArtifactOutput`](crate::output::CreateArtifactOutput).
    pub fn builder() -> crate::output::create_artifact_output::Builder {
        crate::output::create_artifact_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateAppImageConfigOutput {
    /// <p>The Amazon Resource Name (ARN) of the AppImageConfig.</p>
    #[doc(hidden)]
    pub app_image_config_arn: std::option::Option<std::string::String>,
}
impl CreateAppImageConfigOutput {
    /// <p>The Amazon Resource Name (ARN) of the AppImageConfig.</p>
    pub fn app_image_config_arn(&self) -> std::option::Option<&str> {
        self.app_image_config_arn.as_deref()
    }
}
/// See [`CreateAppImageConfigOutput`](crate::output::CreateAppImageConfigOutput).
pub mod create_app_image_config_output {

    /// A builder for [`CreateAppImageConfigOutput`](crate::output::CreateAppImageConfigOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) app_image_config_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the AppImageConfig.</p>
        pub fn app_image_config_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.app_image_config_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the AppImageConfig.</p>
        pub fn set_app_image_config_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.app_image_config_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateAppImageConfigOutput`](crate::output::CreateAppImageConfigOutput).
        pub fn build(self) -> crate::output::CreateAppImageConfigOutput {
            crate::output::CreateAppImageConfigOutput {
                app_image_config_arn: self.app_image_config_arn,
            }
        }
    }
}
impl CreateAppImageConfigOutput {
    /// Creates a new builder-style object to manufacture [`CreateAppImageConfigOutput`](crate::output::CreateAppImageConfigOutput).
    pub fn builder() -> crate::output::create_app_image_config_output::Builder {
        crate::output::create_app_image_config_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateAppOutput {
    /// <p>The Amazon Resource Name (ARN) of the app.</p>
    #[doc(hidden)]
    pub app_arn: std::option::Option<std::string::String>,
}
impl CreateAppOutput {
    /// <p>The Amazon Resource Name (ARN) of the app.</p>
    pub fn app_arn(&self) -> std::option::Option<&str> {
        self.app_arn.as_deref()
    }
}
/// See [`CreateAppOutput`](crate::output::CreateAppOutput).
pub mod create_app_output {

    /// A builder for [`CreateAppOutput`](crate::output::CreateAppOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) app_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the app.</p>
        pub fn app_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.app_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the app.</p>
        pub fn set_app_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.app_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateAppOutput`](crate::output::CreateAppOutput).
        pub fn build(self) -> crate::output::CreateAppOutput {
            crate::output::CreateAppOutput {
                app_arn: self.app_arn,
            }
        }
    }
}
impl CreateAppOutput {
    /// Creates a new builder-style object to manufacture [`CreateAppOutput`](crate::output::CreateAppOutput).
    pub fn builder() -> crate::output::create_app_output::Builder {
        crate::output::create_app_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateAlgorithmOutput {
    /// <p>The Amazon Resource Name (ARN) of the new algorithm.</p>
    #[doc(hidden)]
    pub algorithm_arn: std::option::Option<std::string::String>,
}
impl CreateAlgorithmOutput {
    /// <p>The Amazon Resource Name (ARN) of the new algorithm.</p>
    pub fn algorithm_arn(&self) -> std::option::Option<&str> {
        self.algorithm_arn.as_deref()
    }
}
/// See [`CreateAlgorithmOutput`](crate::output::CreateAlgorithmOutput).
pub mod create_algorithm_output {

    /// A builder for [`CreateAlgorithmOutput`](crate::output::CreateAlgorithmOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) algorithm_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the new algorithm.</p>
        pub fn algorithm_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.algorithm_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the new algorithm.</p>
        pub fn set_algorithm_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.algorithm_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateAlgorithmOutput`](crate::output::CreateAlgorithmOutput).
        pub fn build(self) -> crate::output::CreateAlgorithmOutput {
            crate::output::CreateAlgorithmOutput {
                algorithm_arn: self.algorithm_arn,
            }
        }
    }
}
impl CreateAlgorithmOutput {
    /// Creates a new builder-style object to manufacture [`CreateAlgorithmOutput`](crate::output::CreateAlgorithmOutput).
    pub fn builder() -> crate::output::create_algorithm_output::Builder {
        crate::output::create_algorithm_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateActionOutput {
    /// <p>The Amazon Resource Name (ARN) of the action.</p>
    #[doc(hidden)]
    pub action_arn: std::option::Option<std::string::String>,
}
impl CreateActionOutput {
    /// <p>The Amazon Resource Name (ARN) of the action.</p>
    pub fn action_arn(&self) -> std::option::Option<&str> {
        self.action_arn.as_deref()
    }
}
/// See [`CreateActionOutput`](crate::output::CreateActionOutput).
pub mod create_action_output {

    /// A builder for [`CreateActionOutput`](crate::output::CreateActionOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) action_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the action.</p>
        pub fn action_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.action_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the action.</p>
        pub fn set_action_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.action_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateActionOutput`](crate::output::CreateActionOutput).
        pub fn build(self) -> crate::output::CreateActionOutput {
            crate::output::CreateActionOutput {
                action_arn: self.action_arn,
            }
        }
    }
}
impl CreateActionOutput {
    /// Creates a new builder-style object to manufacture [`CreateActionOutput`](crate::output::CreateActionOutput).
    pub fn builder() -> crate::output::create_action_output::Builder {
        crate::output::create_action_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct BatchDescribeModelPackageOutput {
    /// <p>The summaries for the model package versions</p>
    #[doc(hidden)]
    pub model_package_summaries: std::option::Option<
        std::collections::HashMap<
            std::string::String,
            crate::model::BatchDescribeModelPackageSummary,
        >,
    >,
    /// <p>A map of the resource and BatchDescribeModelPackageError objects reporting the error associated with describing the model package.</p>
    #[doc(hidden)]
    pub batch_describe_model_package_error_map: std::option::Option<
        std::collections::HashMap<
            std::string::String,
            crate::model::BatchDescribeModelPackageError,
        >,
    >,
}
impl BatchDescribeModelPackageOutput {
    /// <p>The summaries for the model package versions</p>
    pub fn model_package_summaries(
        &self,
    ) -> std::option::Option<
        &std::collections::HashMap<
            std::string::String,
            crate::model::BatchDescribeModelPackageSummary,
        >,
    > {
        self.model_package_summaries.as_ref()
    }
    /// <p>A map of the resource and BatchDescribeModelPackageError objects reporting the error associated with describing the model package.</p>
    pub fn batch_describe_model_package_error_map(
        &self,
    ) -> std::option::Option<
        &std::collections::HashMap<
            std::string::String,
            crate::model::BatchDescribeModelPackageError,
        >,
    > {
        self.batch_describe_model_package_error_map.as_ref()
    }
}
/// See [`BatchDescribeModelPackageOutput`](crate::output::BatchDescribeModelPackageOutput).
pub mod batch_describe_model_package_output {

    /// A builder for [`BatchDescribeModelPackageOutput`](crate::output::BatchDescribeModelPackageOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) model_package_summaries: std::option::Option<
            std::collections::HashMap<
                std::string::String,
                crate::model::BatchDescribeModelPackageSummary,
            >,
        >,
        pub(crate) batch_describe_model_package_error_map: std::option::Option<
            std::collections::HashMap<
                std::string::String,
                crate::model::BatchDescribeModelPackageError,
            >,
        >,
    }
    impl Builder {
        /// Adds a key-value pair to `model_package_summaries`.
        ///
        /// To override the contents of this collection use [`set_model_package_summaries`](Self::set_model_package_summaries).
        ///
        /// <p>The summaries for the model package versions</p>
        pub fn model_package_summaries(
            mut self,
            k: impl Into<std::string::String>,
            v: crate::model::BatchDescribeModelPackageSummary,
        ) -> Self {
            let mut hash_map = self.model_package_summaries.unwrap_or_default();
            hash_map.insert(k.into(), v);
            self.model_package_summaries = Some(hash_map);
            self
        }
        /// <p>The summaries for the model package versions</p>
        pub fn set_model_package_summaries(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<
                    std::string::String,
                    crate::model::BatchDescribeModelPackageSummary,
                >,
            >,
        ) -> Self {
            self.model_package_summaries = input;
            self
        }
        /// Adds a key-value pair to `batch_describe_model_package_error_map`.
        ///
        /// To override the contents of this collection use [`set_batch_describe_model_package_error_map`](Self::set_batch_describe_model_package_error_map).
        ///
        /// <p>A map of the resource and BatchDescribeModelPackageError objects reporting the error associated with describing the model package.</p>
        pub fn batch_describe_model_package_error_map(
            mut self,
            k: impl Into<std::string::String>,
            v: crate::model::BatchDescribeModelPackageError,
        ) -> Self {
            let mut hash_map = self
                .batch_describe_model_package_error_map
                .unwrap_or_default();
            hash_map.insert(k.into(), v);
            self.batch_describe_model_package_error_map = Some(hash_map);
            self
        }
        /// <p>A map of the resource and BatchDescribeModelPackageError objects reporting the error associated with describing the model package.</p>
        pub fn set_batch_describe_model_package_error_map(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<
                    std::string::String,
                    crate::model::BatchDescribeModelPackageError,
                >,
            >,
        ) -> Self {
            self.batch_describe_model_package_error_map = input;
            self
        }
        /// Consumes the builder and constructs a [`BatchDescribeModelPackageOutput`](crate::output::BatchDescribeModelPackageOutput).
        pub fn build(self) -> crate::output::BatchDescribeModelPackageOutput {
            crate::output::BatchDescribeModelPackageOutput {
                model_package_summaries: self.model_package_summaries,
                batch_describe_model_package_error_map: self.batch_describe_model_package_error_map,
            }
        }
    }
}
impl BatchDescribeModelPackageOutput {
    /// Creates a new builder-style object to manufacture [`BatchDescribeModelPackageOutput`](crate::output::BatchDescribeModelPackageOutput).
    pub fn builder() -> crate::output::batch_describe_model_package_output::Builder {
        crate::output::batch_describe_model_package_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct AssociateTrialComponentOutput {
    /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
    #[doc(hidden)]
    pub trial_component_arn: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the trial.</p>
    #[doc(hidden)]
    pub trial_arn: std::option::Option<std::string::String>,
}
impl AssociateTrialComponentOutput {
    /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
    pub fn trial_component_arn(&self) -> std::option::Option<&str> {
        self.trial_component_arn.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the trial.</p>
    pub fn trial_arn(&self) -> std::option::Option<&str> {
        self.trial_arn.as_deref()
    }
}
/// See [`AssociateTrialComponentOutput`](crate::output::AssociateTrialComponentOutput).
pub mod associate_trial_component_output {

    /// A builder for [`AssociateTrialComponentOutput`](crate::output::AssociateTrialComponentOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) trial_component_arn: std::option::Option<std::string::String>,
        pub(crate) trial_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
        pub fn trial_component_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.trial_component_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the trial component.</p>
        pub fn set_trial_component_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.trial_component_arn = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the trial.</p>
        pub fn trial_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.trial_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the trial.</p>
        pub fn set_trial_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.trial_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`AssociateTrialComponentOutput`](crate::output::AssociateTrialComponentOutput).
        pub fn build(self) -> crate::output::AssociateTrialComponentOutput {
            crate::output::AssociateTrialComponentOutput {
                trial_component_arn: self.trial_component_arn,
                trial_arn: self.trial_arn,
            }
        }
    }
}
impl AssociateTrialComponentOutput {
    /// Creates a new builder-style object to manufacture [`AssociateTrialComponentOutput`](crate::output::AssociateTrialComponentOutput).
    pub fn builder() -> crate::output::associate_trial_component_output::Builder {
        crate::output::associate_trial_component_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct AddTagsOutput {
    /// <p>A list of tags associated with the SageMaker resource.</p>
    #[doc(hidden)]
    pub tags: std::option::Option<std::vec::Vec<crate::model::Tag>>,
}
impl AddTagsOutput {
    /// <p>A list of tags associated with the SageMaker resource.</p>
    pub fn tags(&self) -> std::option::Option<&[crate::model::Tag]> {
        self.tags.as_deref()
    }
}
/// See [`AddTagsOutput`](crate::output::AddTagsOutput).
pub mod add_tags_output {

    /// A builder for [`AddTagsOutput`](crate::output::AddTagsOutput).
    #[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>>,
    }
    impl Builder {
        /// Appends an item to `tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>A list of tags associated with the SageMaker 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>A list of tags associated with the SageMaker resource.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Tag>>,
        ) -> Self {
            self.tags = input;
            self
        }
        /// Consumes the builder and constructs a [`AddTagsOutput`](crate::output::AddTagsOutput).
        pub fn build(self) -> crate::output::AddTagsOutput {
            crate::output::AddTagsOutput { tags: self.tags }
        }
    }
}
impl AddTagsOutput {
    /// Creates a new builder-style object to manufacture [`AddTagsOutput`](crate::output::AddTagsOutput).
    pub fn builder() -> crate::output::add_tags_output::Builder {
        crate::output::add_tags_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct AddAssociationOutput {
    /// <p>The ARN of the source.</p>
    #[doc(hidden)]
    pub source_arn: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the destination.</p>
    #[doc(hidden)]
    pub destination_arn: std::option::Option<std::string::String>,
}
impl AddAssociationOutput {
    /// <p>The ARN of the source.</p>
    pub fn source_arn(&self) -> std::option::Option<&str> {
        self.source_arn.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the destination.</p>
    pub fn destination_arn(&self) -> std::option::Option<&str> {
        self.destination_arn.as_deref()
    }
}
/// See [`AddAssociationOutput`](crate::output::AddAssociationOutput).
pub mod add_association_output {

    /// A builder for [`AddAssociationOutput`](crate::output::AddAssociationOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) source_arn: std::option::Option<std::string::String>,
        pub(crate) destination_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ARN of the source.</p>
        pub fn source_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.source_arn = Some(input.into());
            self
        }
        /// <p>The ARN of the source.</p>
        pub fn set_source_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.source_arn = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the destination.</p>
        pub fn destination_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.destination_arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the destination.</p>
        pub fn set_destination_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.destination_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`AddAssociationOutput`](crate::output::AddAssociationOutput).
        pub fn build(self) -> crate::output::AddAssociationOutput {
            crate::output::AddAssociationOutput {
                source_arn: self.source_arn,
                destination_arn: self.destination_arn,
            }
        }
    }
}
impl AddAssociationOutput {
    /// Creates a new builder-style object to manufacture [`AddAssociationOutput`](crate::output::AddAssociationOutput).
    pub fn builder() -> crate::output::add_association_output::Builder {
        crate::output::add_association_output::Builder::default()
    }
}