aws-sdk-lightsail 1.105.0

AWS SDK for Amazon Lightsail
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::put_instance_public_ports::_put_instance_public_ports_input::PutInstancePublicPortsInputBuilder;

pub use crate::operation::put_instance_public_ports::_put_instance_public_ports_output::PutInstancePublicPortsOutputBuilder;

impl crate::operation::put_instance_public_ports::builders::PutInstancePublicPortsInputBuilder {
    /// Sends a request with this input using the given client.
    pub async fn send_with(
        self,
        client: &crate::Client,
    ) -> ::std::result::Result<
        crate::operation::put_instance_public_ports::PutInstancePublicPortsOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::put_instance_public_ports::PutInstancePublicPortsError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.put_instance_public_ports();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `PutInstancePublicPorts`.
///
/// <p>Opens ports for a specific Amazon Lightsail instance, and specifies the IP addresses allowed to connect to the instance through the ports, and the protocol. This action also closes all currently open ports that are not included in the request. Include all of the ports and the protocols you want to open in your <code>PutInstancePublicPorts</code>request. Or use the <code>OpenInstancePublicPorts</code> action to open ports without closing currently open ports.</p>
/// <p>The <code>PutInstancePublicPorts</code> action supports tag-based access control via resource tags applied to the resource identified by <code>instanceName</code>. For more information, see the <a href="https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-controlling-access-using-tags">Amazon Lightsail Developer Guide</a>.</p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct PutInstancePublicPortsFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::put_instance_public_ports::builders::PutInstancePublicPortsInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::put_instance_public_ports::PutInstancePublicPortsOutput,
        crate::operation::put_instance_public_ports::PutInstancePublicPortsError,
    > for PutInstancePublicPortsFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::put_instance_public_ports::PutInstancePublicPortsOutput,
            crate::operation::put_instance_public_ports::PutInstancePublicPortsError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl PutInstancePublicPortsFluentBuilder {
    /// Creates a new `PutInstancePublicPortsFluentBuilder`.
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
        Self {
            handle,
            inner: ::std::default::Default::default(),
            config_override: ::std::option::Option::None,
        }
    }
    /// Access the PutInstancePublicPorts as a reference.
    pub fn as_input(&self) -> &crate::operation::put_instance_public_ports::builders::PutInstancePublicPortsInputBuilder {
        &self.inner
    }
    /// 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::put_instance_public_ports::PutInstancePublicPortsOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::put_instance_public_ports::PutInstancePublicPortsError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let input = self
            .inner
            .build()
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
        let runtime_plugins = crate::operation::put_instance_public_ports::PutInstancePublicPorts::operation_runtime_plugins(
            self.handle.runtime_plugins.clone(),
            &self.handle.conf,
            self.config_override,
        );
        crate::operation::put_instance_public_ports::PutInstancePublicPorts::orchestrate(&runtime_plugins, input).await
    }

    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
    pub fn customize(
        self,
    ) -> crate::client::customize::CustomizableOperation<
        crate::operation::put_instance_public_ports::PutInstancePublicPortsOutput,
        crate::operation::put_instance_public_ports::PutInstancePublicPortsError,
        Self,
    > {
        crate::client::customize::CustomizableOperation::new(self)
    }
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
        self.set_config_override(::std::option::Option::Some(config_override.into()));
        self
    }

    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
        self.config_override = config_override;
        self
    }
    ///
    /// Appends an item to `portInfos`.
    ///
    /// To override the contents of this collection use [`set_port_infos`](Self::set_port_infos).
    ///
    /// <p>An array of objects to describe the ports to open for the specified instance.</p>
    pub fn port_infos(mut self, input: crate::types::PortInfo) -> Self {
        self.inner = self.inner.port_infos(input);
        self
    }
    /// <p>An array of objects to describe the ports to open for the specified instance.</p>
    pub fn set_port_infos(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::PortInfo>>) -> Self {
        self.inner = self.inner.set_port_infos(input);
        self
    }
    /// <p>An array of objects to describe the ports to open for the specified instance.</p>
    pub fn get_port_infos(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::PortInfo>> {
        self.inner.get_port_infos()
    }
    /// <p>The name of the instance for which to open ports.</p>
    pub fn instance_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.instance_name(input.into());
        self
    }
    /// <p>The name of the instance for which to open ports.</p>
    pub fn set_instance_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_instance_name(input);
        self
    }
    /// <p>The name of the instance for which to open ports.</p>
    pub fn get_instance_name(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_instance_name()
    }
}