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: _resource_not_found_exception.rs
    path of file: ./repos/aws-sdk-rust/sdk/amp/src/types/error
    
    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>The request references a resources that doesn't exist.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct ResourceNotFoundException {
    /// <p>Description of the error.</p>
    pub message: ::std::string::String,
    /// <p>Identifier of the resource affected.</p>
    pub resource_id: ::std::string::String,
    /// <p>Type of the resource affected.</p>
    pub resource_type: ::std::string::String,
    pub(crate) meta: ::aws_smithy_types::error::ErrorMetadata,
}
impl ResourceNotFoundException {
    /// <p>Identifier of the resource affected.</p>
    pub fn resource_id(&self) -> &str {
        use std::ops::Deref;
        self.resource_id.deref()
    }
    /// <p>Type of the resource affected.</p>
    pub fn resource_type(&self) -> &str {
        use std::ops::Deref;
        self.resource_type.deref()
    }
}
impl ResourceNotFoundException {
    /// Returns the error message.
    pub fn message(&self) -> &str {
        &self.message
    }
}
impl ::std::fmt::Display for ResourceNotFoundExcepti
    
    pub fn build(self) -> ::std::result::Result<crate::types::error::ResourceNotFoundException, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::types::error::ResourceNotFoundException {
            message: self.message.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "message",
                    "message was not specified but it is required when building ResourceNotFoundException",
                )
            })?,
            resource_id: self.resource_id.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "resource_id",
                    "resource_id was not specified but it is required when building ResourceNotFoundException",
                )
            })?,
            resource_type: self.resource_type.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "resource_type",
                    "resource_type was not specified but it is required when building ResourceNotFoundException",
                )
            })?,
            meta: self.meta.unwrap_or_default(),
        })
    }