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: _dynamic_transform.rs
    path of file: ./repos/aws-sdk-rust/sdk/glue/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>Specifies the set of parameters needed to perform the dynamic transform.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct DynamicTransform {
    /// <p>Specifies the name of the dynamic transform.</p>
    pub name: ::std::string::String,
    /// <p>Specifies the name of the dynamic transform as it appears in the Glue Studio visual editor.</p>
    pub transform_name: ::std::string::String,
    /// <p>Specifies the inputs for the dynamic transform that are required.</p>
    pub inputs: ::std::vec::Vec<::std::string::String>,
    /// <p>Specifies the parameters of the dynamic transform.</p>
    pub parameters: ::std::option::Option<::std::vec::Vec<crate::types::TransformConfigParameter>>,
    /// <p>Specifies the name of the function of the dynamic transform.</p>
    pub function_name: ::std::string::String,
    /// <p>Specifies the path of the dynamic transform source and config files.</p>
    pub path: ::std::string::String,
    /// <p>This field is not used and will be deprecated in future release.</p>
    pub version: ::std::option::Option<::std::string::String>,
    /// <p>Specifies the data schema for the dynamic transform.</p>
    pub output_schemas: ::std::option::Option<::std::vec::Vec<crate::types::GlueSchema>>,
}
impl DynamicTransform {
    /// <p>Specifies the name of the dynamic transform.</p>
    pub fn name(&self) -> &str {
        use std::ops::Deref;
        self.name.deref()
    }
    /// <p>Specifies the name of the dynamic tra
    
    pub fn build(self) -> ::std::result::Result<crate::types::DynamicTransform, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::types::DynamicTransform {
            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 DynamicTransform",
                )
            })?,
            transform_name: self.transform_name.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "transform_name",
                    "transform_name was not specified but it is required when building DynamicTransform",
                )
            })?,
            inputs: self.inputs.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "inputs",
                    "inputs was not specified but it is required when building DynamicTransform",
                )
            })?,
            parameters: self.parameters,
            function_name: self.function_name.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "function_name",
                    "function_name was not specified but it is required when building DynamicTransform",
                )
            })?,
            path: self.path.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "path",
                    "path was not specified but it is required when building DynamicTransform",
                )
            })?,
            version: self.version,
            output_schemas: self.output_schemas,
        })
    }