You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: _training_job.rs
    path of file: ./repos/aws-sdk-rust/sdk/sagemaker/src/types
    
    the code of the file until where you have to start completion: // Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>Contains information about a training job.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct TrainingJob {
    /// <p>The name of the training job.</p>
    pub training_job_name: ::std::option::Option<::std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the training job.</p>
    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>
    pub tuning_job_arn: ::std::option::Option<::std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the labeling job.</p>
    pub labeling_job_arn: ::std::option::Option<::std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the job.</p>
    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>
    pub model_artifacts: ::std::option::Option<crate::types::ModelArtifacts>,
    /// <p>The status of the training job.</p>
    /// <p>Training job statuses are:</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 training_job_status: ::std::option::Option<crate::types::TrainingJobStatus>,
    /// <p>Provides detailed information about the state of the training j
    
    pub fn build(self) -> crate::types::TrainingJob {
        crate::types::TrainingJob {
            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,
            enable_inter_container_traffic_encryption: self.enable_inter_container_traffic_encryption,
            enable_managed_spot_training: self.enable_managed_spot_training,
            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,
            environment: self.environment,
            retry_strategy: self.retry_strategy,
            tags: self.tags,
        }
    }