1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::add_endpoints::_add_endpoints_output::AddEndpointsOutputBuilder;
pub use crate::operation::add_endpoints::_add_endpoints_input::AddEndpointsInputBuilder;
/// Fluent builder constructing a request to `AddEndpoints`.
///
/// <p>Add endpoints to an endpoint group. The <code>AddEndpoints</code> API operation is the recommended option for adding endpoints. The alternative options are to add endpoints when you create an endpoint group (with the <a href="https://docs.aws.amazon.com/global-accelerator/latest/api/API_CreateEndpointGroup.html">CreateEndpointGroup</a> API) or when you update an endpoint group (with the <a href="https://docs.aws.amazon.com/global-accelerator/latest/api/API_UpdateEndpointGroup.html">UpdateEndpointGroup</a> API). </p>
/// <p>There are two advantages to using <code>AddEndpoints</code> to add endpoints:</p>
/// <ul>
/// <li> <p>It's faster, because Global Accelerator only has to resolve the new endpoints that you're adding.</p> </li>
/// <li> <p>It's more convenient, because you don't need to specify all of the current endpoints that are already in the endpoint group in addition to the new endpoints that you want to add.</p> </li>
/// </ul>
#[derive(std::clone::Clone, std::fmt::Debug)]
pub struct AddEndpointsFluentBuilder {
    handle: std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::add_endpoints::builders::AddEndpointsInputBuilder,
}
impl AddEndpointsFluentBuilder {
    /// Creates a new `AddEndpoints`.
    pub(crate) fn new(handle: std::sync::Arc<crate::client::Handle>) -> Self {
        Self {
            handle,
            inner: Default::default(),
        }
    }
    /// Consume this builder, creating a customizable operation that can be modified before being
    /// sent. The operation's inner [http::Request] can be modified as well.
    pub async fn customize(
        self,
    ) -> std::result::Result<
        crate::client::customize::CustomizableOperation<
            crate::operation::add_endpoints::AddEndpoints,
            aws_http::retry::AwsResponseRetryClassifier,
        >,
        aws_smithy_http::result::SdkError<crate::operation::add_endpoints::AddEndpointsError>,
    > {
        let handle = self.handle.clone();
        let operation = self
            .inner
            .build()
            .map_err(aws_smithy_http::result::SdkError::construction_failure)?
            .make_operation(&handle.conf)
            .await
            .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
        Ok(crate::client::customize::CustomizableOperation { handle, operation })
    }
    /// Sends the request and returns the response.
    ///
    /// If an error occurs, an `SdkError` will be returned with additional details that
    /// can be matched against.
    ///
    /// By default, any retryable failures will be retried twice. Retry behavior
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
    /// set when configuring the client.
    pub async fn send(
        self,
    ) -> std::result::Result<
        crate::operation::add_endpoints::AddEndpointsOutput,
        aws_smithy_http::result::SdkError<crate::operation::add_endpoints::AddEndpointsError>,
    > {
        let op = self
            .inner
            .build()
            .map_err(aws_smithy_http::result::SdkError::construction_failure)?
            .make_operation(&self.handle.conf)
            .await
            .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
        self.handle.client.call(op).await
    }
    /// Appends an item to `EndpointConfigurations`.
    ///
    /// To override the contents of this collection use [`set_endpoint_configurations`](Self::set_endpoint_configurations).
    ///
    /// <p>The list of endpoint objects.</p>
    pub fn endpoint_configurations(mut self, input: crate::types::EndpointConfiguration) -> Self {
        self.inner = self.inner.endpoint_configurations(input);
        self
    }
    /// <p>The list of endpoint objects.</p>
    pub fn set_endpoint_configurations(
        mut self,
        input: std::option::Option<std::vec::Vec<crate::types::EndpointConfiguration>>,
    ) -> Self {
        self.inner = self.inner.set_endpoint_configurations(input);
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the endpoint group.</p>
    pub fn endpoint_group_arn(mut self, input: impl Into<std::string::String>) -> Self {
        self.inner = self.inner.endpoint_group_arn(input.into());
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the endpoint group.</p>
    pub fn set_endpoint_group_arn(
        mut self,
        input: std::option::Option<std::string::String>,
    ) -> Self {
        self.inner = self.inner.set_endpoint_group_arn(input);
        self
    }
}