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: _list_sol_network_package_info.rs
    path of file: ./repos/aws-sdk-rust/sdk/tnb/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>Details of a network package.</p>
/// <p>A network package is a .zip file in CSAR (Cloud Service Archive) format defines the function packages you want to deploy and the Amazon Web Services infrastructure you want to deploy them on.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct ListSolNetworkPackageInfo {
    /// <p>ID of the individual network package.</p>
    pub id: ::std::string::String,
    /// <p>Network package ARN.</p>
    pub arn: ::std::string::String,
    /// <p>Onboarding state of the network service descriptor in the network package.</p>
    pub nsd_onboarding_state: crate::types::NsdOnboardingState,
    /// <p>Operational state of the network service descriptor in the network package.</p>
    pub nsd_operational_state: crate::types::NsdOperationalState,
    /// <p>Usage state of the network service descriptor in the network package.</p>
    pub nsd_usage_state: crate::types::NsdUsageState,
    /// <p>ID of the network service descriptor on which the network package is based.</p>
    pub nsd_id: ::std::option::Option<::std::string::String>,
    /// <p>Name of the onboarded network service descriptor in the network package.</p>
    pub nsd_name: ::std::option::Option<::std::string::String>,
    /// <p>Version of the onboarded network service descriptor in the network package.</p>
    pub nsd_version: ::std::option::Option<::std::string::String>,
    /// <p>Designer of the onboarded network service descriptor in the network package.</p>
    pub nsd_designer: ::std::option::Option<::std::string::String>,
    /// <p>Identifies a network service descriptor in a version independent manner.</p>
    pub nsd_invariant_id: ::std::option::Option<::std::string::String>,
    /// <p>Identifies the function package for the function package descriptor referenced by the onboarded network package.</p>
    pub vnf_pkg_ids: ::std::option::Option<::std::vec::Vec<::std::string::String
    
    pub fn build(self) -> ::std::result::Result<crate::types::ListSolNetworkPackageInfo, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::types::ListSolNetworkPackageInfo {
            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 ListSolNetworkPackageInfo",
                )
            })?,
            arn: self.arn.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "arn",
                    "arn was not specified but it is required when building ListSolNetworkPackageInfo",
                )
            })?,
            nsd_onboarding_state: self.nsd_onboarding_state.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "nsd_onboarding_state",
                    "nsd_onboarding_state was not specified but it is required when building ListSolNetworkPackageInfo",
                )
            })?,
            nsd_operational_state: self.nsd_operational_state.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "nsd_operational_state",
                    "nsd_operational_state was not specified but it is required when building ListSolNetworkPackageInfo",
                )
            })?,
            nsd_usage_state: self.nsd_usage_state.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "nsd_usage_state",
                    "nsd_usage_state was not specified but it is required when building ListSolNetworkPackageInfo",
                )
            })?,
            nsd_id: self.nsd_id,
            nsd_name: self.nsd_name,
            nsd_version: self.nsd_version,
            nsd_designer: self.nsd_designer,
            nsd_invariant_id: self.nsd_invariant_id,
            vnf_pkg_ids: self.vnf_pkg_ids,
            metadata: self.metadata,
        })
    }