aws-sdk-workspaces 1.128.0

AWS SDK for Amazon WorkSpaces
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::create_workspaces_pool::_create_workspaces_pool_input::CreateWorkspacesPoolInputBuilder;

pub use crate::operation::create_workspaces_pool::_create_workspaces_pool_output::CreateWorkspacesPoolOutputBuilder;

impl crate::operation::create_workspaces_pool::builders::CreateWorkspacesPoolInputBuilder {
    /// Sends a request with this input using the given client.
    pub async fn send_with(
        self,
        client: &crate::Client,
    ) -> ::std::result::Result<
        crate::operation::create_workspaces_pool::CreateWorkspacesPoolOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::create_workspaces_pool::CreateWorkspacesPoolError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.create_workspaces_pool();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `CreateWorkspacesPool`.
///
/// <note>
/// <p>End of support notice: On December 31, 2027, Amazon Web Services will end support for Amazon WorkSpaces Pools. After December 31, 2027, you will no longer be able to access the Amazon WorkSpaces Pools console or Amazon WorkSpaces Pools resources. For more information, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/wsp-pools-end-of-support.html">Amazon WorkSpaces Pools end of support</a>.</p>
/// </note>
/// <p>Creates a pool of WorkSpaces.</p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct CreateWorkspacesPoolFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::create_workspaces_pool::builders::CreateWorkspacesPoolInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::create_workspaces_pool::CreateWorkspacesPoolOutput,
        crate::operation::create_workspaces_pool::CreateWorkspacesPoolError,
    > for CreateWorkspacesPoolFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::create_workspaces_pool::CreateWorkspacesPoolOutput,
            crate::operation::create_workspaces_pool::CreateWorkspacesPoolError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl CreateWorkspacesPoolFluentBuilder {
    /// Creates a new `CreateWorkspacesPoolFluentBuilder`.
    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 CreateWorkspacesPool as a reference.
    pub fn as_input(&self) -> &crate::operation::create_workspaces_pool::builders::CreateWorkspacesPoolInputBuilder {
        &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::create_workspaces_pool::CreateWorkspacesPoolOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::create_workspaces_pool::CreateWorkspacesPoolError,
            ::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::create_workspaces_pool::CreateWorkspacesPool::operation_runtime_plugins(
            self.handle.runtime_plugins.clone(),
            &self.handle.conf,
            self.config_override,
        );
        crate::operation::create_workspaces_pool::CreateWorkspacesPool::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::create_workspaces_pool::CreateWorkspacesPoolOutput,
        crate::operation::create_workspaces_pool::CreateWorkspacesPoolError,
        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
    }
    /// <p>The name of the pool.</p>
    pub fn pool_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.pool_name(input.into());
        self
    }
    /// <p>The name of the pool.</p>
    pub fn set_pool_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_pool_name(input);
        self
    }
    /// <p>The name of the pool.</p>
    pub fn get_pool_name(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_pool_name()
    }
    /// <p>The pool description.</p>
    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.description(input.into());
        self
    }
    /// <p>The pool description.</p>
    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_description(input);
        self
    }
    /// <p>The pool description.</p>
    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_description()
    }
    /// <p>The identifier of the bundle for the pool.</p>
    pub fn bundle_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.bundle_id(input.into());
        self
    }
    /// <p>The identifier of the bundle for the pool.</p>
    pub fn set_bundle_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_bundle_id(input);
        self
    }
    /// <p>The identifier of the bundle for the pool.</p>
    pub fn get_bundle_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_bundle_id()
    }
    /// <p>The identifier of the directory for the pool.</p>
    pub fn directory_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.directory_id(input.into());
        self
    }
    /// <p>The identifier of the directory for the pool.</p>
    pub fn set_directory_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_directory_id(input);
        self
    }
    /// <p>The identifier of the directory for the pool.</p>
    pub fn get_directory_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_directory_id()
    }
    /// <p>The user capacity of the pool.</p>
    pub fn capacity(mut self, input: crate::types::Capacity) -> Self {
        self.inner = self.inner.capacity(input);
        self
    }
    /// <p>The user capacity of the pool.</p>
    pub fn set_capacity(mut self, input: ::std::option::Option<crate::types::Capacity>) -> Self {
        self.inner = self.inner.set_capacity(input);
        self
    }
    /// <p>The user capacity of the pool.</p>
    pub fn get_capacity(&self) -> &::std::option::Option<crate::types::Capacity> {
        self.inner.get_capacity()
    }
    ///
    /// Appends an item to `Tags`.
    ///
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
    ///
    /// <p>The tags for the pool.</p>
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
        self.inner = self.inner.tags(input);
        self
    }
    /// <p>The tags for the pool.</p>
    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
        self.inner = self.inner.set_tags(input);
        self
    }
    /// <p>The tags for the pool.</p>
    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
        self.inner.get_tags()
    }
    /// <p>Indicates the application settings of the pool.</p>
    pub fn application_settings(mut self, input: crate::types::ApplicationSettingsRequest) -> Self {
        self.inner = self.inner.application_settings(input);
        self
    }
    /// <p>Indicates the application settings of the pool.</p>
    pub fn set_application_settings(mut self, input: ::std::option::Option<crate::types::ApplicationSettingsRequest>) -> Self {
        self.inner = self.inner.set_application_settings(input);
        self
    }
    /// <p>Indicates the application settings of the pool.</p>
    pub fn get_application_settings(&self) -> &::std::option::Option<crate::types::ApplicationSettingsRequest> {
        self.inner.get_application_settings()
    }
    /// <p>Indicates the timeout settings of the pool.</p>
    pub fn timeout_settings(mut self, input: crate::types::TimeoutSettings) -> Self {
        self.inner = self.inner.timeout_settings(input);
        self
    }
    /// <p>Indicates the timeout settings of the pool.</p>
    pub fn set_timeout_settings(mut self, input: ::std::option::Option<crate::types::TimeoutSettings>) -> Self {
        self.inner = self.inner.set_timeout_settings(input);
        self
    }
    /// <p>Indicates the timeout settings of the pool.</p>
    pub fn get_timeout_settings(&self) -> &::std::option::Option<crate::types::TimeoutSettings> {
        self.inner.get_timeout_settings()
    }
    /// <p>The running mode for the pool.</p>
    pub fn running_mode(mut self, input: crate::types::PoolsRunningMode) -> Self {
        self.inner = self.inner.running_mode(input);
        self
    }
    /// <p>The running mode for the pool.</p>
    pub fn set_running_mode(mut self, input: ::std::option::Option<crate::types::PoolsRunningMode>) -> Self {
        self.inner = self.inner.set_running_mode(input);
        self
    }
    /// <p>The running mode for the pool.</p>
    pub fn get_running_mode(&self) -> &::std::option::Option<crate::types::PoolsRunningMode> {
        self.inner.get_running_mode()
    }
}