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: _subscriber_resource.rs
    path of file: ./repos/aws-sdk-rust/sdk/securitylake/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>Provides details about the Amazon Security Lake account subscription. Subscribers are notified of new objects for a source as the data is written to your Amazon S3 bucket for Security Lake.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct SubscriberResource {
    /// <p>The subscriber ID of the Amazon Security Lake subscriber account.</p>
    pub subscriber_id: ::std::string::String,
    /// <p>The subscriber ARN of the Amazon Security Lake subscriber account.</p>
    pub subscriber_arn: ::std::string::String,
    /// <p>The AWS identity used to access your data.</p>
    pub subscriber_identity: ::std::option::Option<crate::types::AwsIdentity>,
    /// <p>The name of your Amazon Security Lake subscriber account.</p>
    pub subscriber_name: ::std::string::String,
    /// <p>The subscriber descriptions for a subscriber account. The description for a subscriber includes <code>subscriberName</code>, <code>accountID</code>, <code>externalID</code>, and <code>subscriberId</code>.</p>
    pub subscriber_description: ::std::option::Option<::std::string::String>,
    /// <p>Amazon Security Lake supports log and event collection for natively supported Amazon Web Services. For more information, see the <a href="https://docs.aws.amazon.com/security-lake/latest/userguide/source-man
    
    pub fn build(self) -> ::std::result::Result<crate::types::SubscriberResource, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::types::SubscriberResource {
            subscriber_id: self.subscriber_id.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "subscriber_id",
                    "subscriber_id was not specified but it is required when building SubscriberResource",
                )
            })?,
            subscriber_arn: self.subscriber_arn.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "subscriber_arn",
                    "subscriber_arn was not specified but it is required when building SubscriberResource",
                )
            })?,
            subscriber_identity: self.subscriber_identity,
            subscriber_name: self.subscriber_name.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "subscriber_name",
                    "subscriber_name was not specified but it is required when building SubscriberResource",
                )
            })?,
            subscriber_description: self.subscriber_description,
            sources: self.sources.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "sources",
                    "sources was not specified but it is required when building SubscriberResource",
                )
            })?,
            access_types: self.access_types,
            role_arn: self.role_arn,
            s3_bucket_arn: self.s3_bucket_arn,
            subscriber_endpoint: self.subscriber_endpoint,
            subscriber_status: self.subscriber_status,
            resource_share_arn: self.resource_share_arn,
            resource_share_name: self.resource_share_name,
            created_at: self.created_at,
            updated_at: self.updated_at,
        })
    }