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: _application_summary.rs
    path of file: ./repos/aws-sdk-rust/sdk/m2/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>A subset of the possible application attributes. Used in the application list.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct ApplicationSummary {
    /// <p>The name of the application.</p>
    pub name: ::std::string::String,
    /// <p>The description of the application.</p>
    pub description: ::std::option::Option<::std::string::String>,
    /// <p>The unique identifier of the application.</p>
    pub application_id: ::std::string::String,
    /// <p>The Amazon Resource Name (ARN) of the application.</p>
    pub application_arn: ::std::string::String,
    /// <p>The version of the application.</p>
    pub application_version: i32,
    /// <p>The status of the application.</p>
    pub status: crate::types::ApplicationLifecycle,
    /// <p>The type of the target platform for this application.</p>
    pub engine_type: crate::types::EngineType,
    /// <p>The timestamp when the application was created.</p>
    pub creation_time: ::aws_smithy_types::DateTime,
    /// <p>The unique identifier of the runtime environment that hosts this application.</p>
    pub environment_id: ::std::option::Option<::std::string::String>,
    /// <p>The timestamp when you last started the application. Null until the application runs for the first time.</p>
    pub last_start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
    /// <p>Indicates the status of the latest version of the application.</p>
    pub version_status: ::std::option::Option<crate::types::ApplicationVersionLifecycle>,
    /// <p>Indicates either an ongoing deployment or if the application has ever deployed successfully.</p>
    pub deployment_status: ::std::option::Option<crate::types::ApplicationDeploymentLifecycle>,
    /// <p>The Amazon Resource Name (ARN) of the role associated with the application.</p>
    pub role_arn: ::std::option::Option<::std::string::String>,
}
impl ApplicationSummary {
    /// <p>The name of the application.</p>
    pub fn name(&self) -> &str {
        use std::ops::Dere
    
    pub fn build(self) -> ::std::result::Result<crate::types::ApplicationSummary, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::types::ApplicationSummary {
            name: self.name.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "name",
                    "name was not specified but it is required when building ApplicationSummary",
                )
            })?,
            description: self.description,
            application_id: self.application_id.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "application_id",
                    "application_id was not specified but it is required when building ApplicationSummary",
                )
            })?,
            application_arn: self.application_arn.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "application_arn",
                    "application_arn was not specified but it is required when building ApplicationSummary",
                )
            })?,
            application_version: self.application_version.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "application_version",
                    "application_version was not specified but it is required when building ApplicationSummary",
                )
            })?,
            status: self.status.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "status",
                    "status was not specified but it is required when building ApplicationSummary",
                )
            })?,
            engine_type: self.engine_type.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "engine_type",
                    "engine_type was not specified but it is required when building ApplicationSummary",
                )
            })?,
            creation_time: self.creation_time.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "creation_time",
                    "creation_time was not specified but it is required when building ApplicationSummary",
                )
            })?,
            environment_id: self.environment_id,
            last_start_time: self.last_start_time,
            version_status: self.version_status,
            deployment_status: self.deployment_status,
            role_arn: self.role_arn,
        })
    }