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: _discovery_data.rs
    path of file: ./repos/aws-sdk-rust/sdk/groundstation/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>Data for agent discovery.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct DiscoveryData {
    /// <p>List of public IP addresses to associate with agent.</p>
    pub public_ip_addresses: ::std::vec::Vec<::std::string::String>,
    /// <p>List of private IP addresses to associate with agent.</p>
    pub private_ip_addresses: ::std::vec::Vec<::std::string::String>,
    /// <p>List of capabilities to associate with agent.</p>
    pub capability_arns: ::std::vec::Vec<::std::string::String>,
}
impl DiscoveryData {
    /// <p>List of public IP addresses to associate with agent.</p>
    pub fn public_ip_addresses(&self) -> &[::std::string::String] {
        use std::ops::Deref;
        self.public_ip_addresses.deref()
    }
    /// <p>List of private IP addresses to associate with agent.</p>
    pub fn private_ip_addresses(&self) -> &[::std::string::String] {
        use std::ops::Deref;
        self.private_ip_addresses.deref()
    }
    /// <p>List of capabilities to associate with agent.</p>
    pub fn capabili
    
    pub fn build(self) -> ::std::result::Result<crate::types::DiscoveryData, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::types::DiscoveryData {
            public_ip_addresses: self.public_ip_addresses.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "public_ip_addresses",
                    "public_ip_addresses was not specified but it is required when building DiscoveryData",
                )
            })?,
            private_ip_addresses: self.private_ip_addresses.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "private_ip_addresses",
                    "private_ip_addresses was not specified but it is required when building DiscoveryData",
                )
            })?,
            capability_arns: self.capability_arns.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "capability_arns",
                    "capability_arns was not specified but it is required when building DiscoveryData",
                )
            })?,
        })
    }