aws-sdk-evs 1.29.0

AWS SDK for Amazon Elastic VMware Service
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::create_entitlement::_create_entitlement_input::CreateEntitlementInputBuilder;

pub use crate::operation::create_entitlement::_create_entitlement_output::CreateEntitlementOutputBuilder;

impl crate::operation::create_entitlement::builders::CreateEntitlementInputBuilder {
    /// 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_entitlement::CreateEntitlementOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::create_entitlement::CreateEntitlementError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.create_entitlement();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `CreateEntitlement`.
///
/// <p>Creates a Windows Server License entitlement for virtual machines in an Amazon EVS environment using the provided vCenter Server connector. This is an asynchronous operation. Amazon EVS validates the specified virtual machines before starting usage tracking.</p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct CreateEntitlementFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::create_entitlement::builders::CreateEntitlementInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::create_entitlement::CreateEntitlementOutput,
        crate::operation::create_entitlement::CreateEntitlementError,
    > for CreateEntitlementFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::create_entitlement::CreateEntitlementOutput,
            crate::operation::create_entitlement::CreateEntitlementError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl CreateEntitlementFluentBuilder {
    /// Creates a new `CreateEntitlementFluentBuilder`.
    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 CreateEntitlement as a reference.
    pub fn as_input(&self) -> &crate::operation::create_entitlement::builders::CreateEntitlementInputBuilder {
        &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_entitlement::CreateEntitlementOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::create_entitlement::CreateEntitlementError,
            ::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_entitlement::CreateEntitlement::operation_runtime_plugins(
            self.handle.runtime_plugins.clone(),
            &self.handle.conf,
            self.config_override,
        );
        crate::operation::create_entitlement::CreateEntitlement::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_entitlement::CreateEntitlementOutput,
        crate::operation::create_entitlement::CreateEntitlementError,
        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
    }
    /// <note>
    /// <p>This parameter is not used in Amazon EVS currently. If you supply input for this parameter, it will have no effect.</p>
    /// </note>
    /// <p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the entitlement creation request. If you do not specify a client token, a randomly generated token is used for the request to ensure idempotency.</p>
    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.client_token(input.into());
        self
    }
    /// <note>
    /// <p>This parameter is not used in Amazon EVS currently. If you supply input for this parameter, it will have no effect.</p>
    /// </note>
    /// <p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the entitlement creation request. If you do not specify a client token, a randomly generated token is used for the request to ensure idempotency.</p>
    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_client_token(input);
        self
    }
    /// <note>
    /// <p>This parameter is not used in Amazon EVS currently. If you supply input for this parameter, it will have no effect.</p>
    /// </note>
    /// <p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the entitlement creation request. If you do not specify a client token, a randomly generated token is used for the request to ensure idempotency.</p>
    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_client_token()
    }
    /// <p>A unique ID for the environment to create the entitlement in.</p>
    pub fn environment_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.environment_id(input.into());
        self
    }
    /// <p>A unique ID for the environment to create the entitlement in.</p>
    pub fn set_environment_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_environment_id(input);
        self
    }
    /// <p>A unique ID for the environment to create the entitlement in.</p>
    pub fn get_environment_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_environment_id()
    }
    /// <p>A unique ID for the connector associated with the entitlement.</p>
    pub fn connector_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.connector_id(input.into());
        self
    }
    /// <p>A unique ID for the connector associated with the entitlement.</p>
    pub fn set_connector_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_connector_id(input);
        self
    }
    /// <p>A unique ID for the connector associated with the entitlement.</p>
    pub fn get_connector_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_connector_id()
    }
    /// <p>The type of entitlement to create.</p>
    pub fn entitlement_type(mut self, input: crate::types::EntitlementType) -> Self {
        self.inner = self.inner.entitlement_type(input);
        self
    }
    /// <p>The type of entitlement to create.</p>
    pub fn set_entitlement_type(mut self, input: ::std::option::Option<crate::types::EntitlementType>) -> Self {
        self.inner = self.inner.set_entitlement_type(input);
        self
    }
    /// <p>The type of entitlement to create.</p>
    pub fn get_entitlement_type(&self) -> &::std::option::Option<crate::types::EntitlementType> {
        self.inner.get_entitlement_type()
    }
    ///
    /// Appends an item to `vmIds`.
    ///
    /// To override the contents of this collection use [`set_vm_ids`](Self::set_vm_ids).
    ///
    /// <p>The list of VMware vSphere virtual machine managed object IDs to create entitlements for.</p>
    pub fn vm_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.vm_ids(input.into());
        self
    }
    /// <p>The list of VMware vSphere virtual machine managed object IDs to create entitlements for.</p>
    pub fn set_vm_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
        self.inner = self.inner.set_vm_ids(input);
        self
    }
    /// <p>The list of VMware vSphere virtual machine managed object IDs to create entitlements for.</p>
    pub fn get_vm_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
        self.inner.get_vm_ids()
    }
}