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: _privacy_budget_summary.rs
    path of file: ./repos/aws-sdk-rust/sdk/cleanrooms/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 array that summaries the specified privacy budget. This summary includes collaboration information, creation information, membership information, and privacy budget information.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct PrivacyBudgetSummary {
    /// <p>The unique identifier of the privacy budget.</p>
    pub id: ::std::string::String,
    /// <p>The unique identifier of the privacy budget template.</p>
    pub privacy_budget_template_id: ::std::string::String,
    /// <p>The ARN of the privacy budget template.</p>
    pub privacy_budget_template_arn: ::std::string::String,
    /// <p>The identifier for a membership resource.</p>
    pub membership_id: ::std::string::String,
    /// <p>The Amazon Resource Name (ARN) of the member who created the privacy budget summary.</p>
    pub membership_arn: ::std::string::String,
    /// <p>The unique identifier of the collabo
    
    pub fn build(self) -> ::std::result::Result<crate::types::PrivacyBudgetSummary, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::types::PrivacyBudgetSummary {
            id: self.id.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "id",
                    "id was not specified but it is required when building PrivacyBudgetSummary",
                )
            })?,
            privacy_budget_template_id: self.privacy_budget_template_id.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "privacy_budget_template_id",
                    "privacy_budget_template_id was not specified but it is required when building PrivacyBudgetSummary",
                )
            })?,
            privacy_budget_template_arn: self.privacy_budget_template_arn.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "privacy_budget_template_arn",
                    "privacy_budget_template_arn was not specified but it is required when building PrivacyBudgetSummary",
                )
            })?,
            membership_id: self.membership_id.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "membership_id",
                    "membership_id was not specified but it is required when building PrivacyBudgetSummary",
                )
            })?,
            membership_arn: self.membership_arn.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "membership_arn",
                    "membership_arn was not specified but it is required when building PrivacyBudgetSummary",
                )
            })?,
            collaboration_id: self.collaboration_id.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "collaboration_id",
                    "collaboration_id was not specified but it is required when building PrivacyBudgetSummary",
                )
            })?,
            collaboration_arn: self.collaboration_arn.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "collaboration_arn",
                    "collaboration_arn was not specified but it is required when building PrivacyBudgetSummary",
                )
            })?,
            r#type: self.r#type.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "r#type",
                    "r#type was not specified but it is required when building PrivacyBudgetSummary",
                )
            })?,
            create_time: self.create_time.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "create_time",
                    "create_time was not specified but it is required when building PrivacyBudgetSummary",
                )
            })?,
            update_time: self.update_time.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "update_time",
                    "update_time was not specified but it is required when building PrivacyBudgetSummary",
                )
            })?,
            budget: self.budget,
        })
    }