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: _sigv4_authorization.rs
    path of file: ./repos/aws-sdk-rust/sdk/iot/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>For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4 signing process</a>.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct SigV4Authorization {
    /// <p>The signing region.</p>
    pub signing_region: ::std::string::String,
    /// <p>The service name to use while signing with Sig V4.</p>
    pub service_name: ::std::string::String,
    /// <p>The ARN of the signing role.</p>
    pub role_arn: ::std::string::String,
}
impl SigV4Authorization {
    /// <p>The signing region.</p>
    pub fn signing_region(&self) -> &str {
        use std::ops::Deref;
        self.signing_region.deref()
    }
    /// <p>The service name to use while signing with Sig V4.</p>
    pub fn service_name(&self) -> &str {
        use std::ops::Deref;
        self.service_name.deref()
    }
    /// <p>The AR
    
    pub fn build(self) -> ::std::result::Result<crate::types::SigV4Authorization, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::types::SigV4Authorization {
            signing_region: self.signing_region.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "signing_region",
                    "signing_region was not specified but it is required when building SigV4Authorization",
                )
            })?,
            service_name: self.service_name.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "service_name",
                    "service_name was not specified but it is required when building SigV4Authorization",
                )
            })?,
            role_arn: self.role_arn.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "role_arn",
                    "role_arn was not specified but it is required when building SigV4Authorization",
                )
            })?,
        })
    }