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: _route_ref.rs
    path of file: ./repos/aws-sdk-rust/sdk/appmesh/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>An object that represents a route returned by a list operation.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct RouteRef {
    /// <p>The name of the service mesh that the route resides in.</p>
    pub mesh_name: ::std::string::String,
    /// <p>The virtual router that the route is associated with.</p>
    pub virtual_router_name: ::std::string::String,
    /// <p>The name of the route.</p>
    pub route_name: ::std::string::String,
    /// <p>The Amazon Web Services IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.</p>
    pub mesh_owner: ::std::string::String,
    /// <p>The Amazon Web Services IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.</p>
    pub resource_owner: ::std::string::String,
    /// <p>The full Amazon Resource Name (ARN) for the route.</p>
    pub arn: ::std::string::String,
    /// <p>The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.</p>
    pub version: i64,
    /// <p>The Unix epoch timestamp in seconds for when the resource was created.</p>
    pub created_at: ::aws_smithy_types::DateTime,
    /// <p>The Unix epoch timestamp in seconds for when the resource was last updated.</p>
    pub last_updated_at: ::aws_smithy_types::DateTime,
}
impl RouteRef {
    /// <p>The name of the service mesh that the route resides in.</p>
    pub fn mesh_name(&self) -> &str {
        use std::ops::Deref;
        self.mesh_name.deref()
    }
    /// <p>The virtual router that the route is associated with.</p>
    pub fn virtual_router_name(&self) -> &str {
        use std::ops::Deref;
        self.virtual_router_name.deref()
    }
    /// <p>The name of the route.</p>
    pub fn route_name(&self) -> &str {
        use std::ops::Deref;
        self.route_name.deref()
    }
    /// <p>The Amazon Web Services IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared m
    
    pub fn build(self) -> ::std::result::Result<crate::types::RouteRef, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::types::RouteRef {
            mesh_name: self.mesh_name.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "mesh_name",
                    "mesh_name was not specified but it is required when building RouteRef",
                )
            })?,
            virtual_router_name: self.virtual_router_name.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "virtual_router_name",
                    "virtual_router_name was not specified but it is required when building RouteRef",
                )
            })?,
            route_name: self.route_name.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "route_name",
                    "route_name was not specified but it is required when building RouteRef",
                )
            })?,
            mesh_owner: self.mesh_owner.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "mesh_owner",
                    "mesh_owner was not specified but it is required when building RouteRef",
                )
            })?,
            resource_owner: self.resource_owner.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "resource_owner",
                    "resource_owner was not specified but it is required when building RouteRef",
                )
            })?,
            arn: self.arn.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "arn",
                    "arn was not specified but it is required when building RouteRef",
                )
            })?,
            version: self.version.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "version",
                    "version was not specified but it is required when building RouteRef",
                )
            })?,
            created_at: self.created_at.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "created_at",
                    "created_at was not specified but it is required when building RouteRef",
                )
            })?,
            last_updated_at: self.last_updated_at.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "last_updated_at",
                    "last_updated_at was not specified but it is required when building RouteRef",
                )
            })?,
        })
    }