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: _action_execution.rs
    path of file: ./repos/aws-sdk-rust/sdk/qbusiness/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>Performs an Amazon Q plugin action during a non-streaming chat conversation.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct ActionExecution {
    /// <p>The identifier of the plugin the action is attached to.</p>
    pub plugin_id: ::std::string::String,
    /// <p>A mapping of field names to the field values in input that an end user provides to Amazon Q requests to perform their plugin action.</p>
    pub payload: ::std::collections::HashMap<::std::string::String, crate::types::ActionExecutionPayloadField>,
    /// <p>A string used to retain information about the hierarchical contexts within an action execution event payload.</p>
    pub payload_field_name_separator: ::std::string::String,
}
impl ActionExecution {
    /// <p>The identifier of the plugin the action is attached to.</p>
    pub fn plugin_id(&s
    
    pub fn build(self) -> ::std::result::Result<crate::types::ActionExecution, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::types::ActionExecution {
            plugin_id: self.plugin_id.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "plugin_id",
                    "plugin_id was not specified but it is required when building ActionExecution",
                )
            })?,
            payload: self.payload.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "payload",
                    "payload was not specified but it is required when building ActionExecution",
                )
            })?,
            payload_field_name_separator: self.payload_field_name_separator.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "payload_field_name_separator",
                    "payload_field_name_separator was not specified but it is required when building ActionExecution",
                )
            })?,
        })
    }