aws_sdk_gamelift/operation/get_compute_auth_token/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::get_compute_auth_token::_get_compute_auth_token_output::GetComputeAuthTokenOutputBuilder;
3
4pub use crate::operation::get_compute_auth_token::_get_compute_auth_token_input::GetComputeAuthTokenInputBuilder;
5
6impl crate::operation::get_compute_auth_token::builders::GetComputeAuthTokenInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::get_compute_auth_token::GetComputeAuthTokenOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::get_compute_auth_token::GetComputeAuthTokenError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.get_compute_auth_token();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `GetComputeAuthToken`.
24///
25/// <p><b>This API works with the following fleet types:</b> EC2, Anywhere, Container</p>
26/// <p>Requests an authentication token from Amazon GameLift Servers for a compute resource in an Amazon GameLift Servers fleet. Game servers that are running on the compute use this token to communicate with the Amazon GameLift Servers service, such as when calling the Amazon GameLift Servers server SDK action <code>InitSDK()</code>. Authentication tokens are valid for a limited time span, so you need to request a fresh token before the current token expires.</p>
27/// <p><b>Request options</b></p>
28/// <ul>
29/// <li>
30/// <p>For managed EC2 fleets (compute type <code>EC2</code>), auth token retrieval and refresh is handled automatically. All game servers that are running on all fleet instances have access to a valid auth token.</p></li>
31/// <li>
32/// <p>For Anywhere fleets (compute type <code>ANYWHERE</code>), if you're using the Amazon GameLift Servers Agent, auth token retrieval and refresh is handled automatically for any compute where the Agent is running. If you're not using the Agent, create a mechanism to retrieve and refresh auth tokens for computes that are running game server processes.</p></li>
33/// </ul>
34/// <p><b>Learn more</b></p>
35/// <ul>
36/// <li>
37/// <p><a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-creating-anywhere.html">Create an Anywhere fleet</a></p></li>
38/// <li>
39/// <p><a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/integration-testing.html">Test your integration</a></p></li>
40/// <li>
41/// <p><a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-serversdk.html">Server SDK reference guides</a> (for version 5.x)</p></li>
42/// </ul>
43#[derive(::std::clone::Clone, ::std::fmt::Debug)]
44pub struct GetComputeAuthTokenFluentBuilder {
45    handle: ::std::sync::Arc<crate::client::Handle>,
46    inner: crate::operation::get_compute_auth_token::builders::GetComputeAuthTokenInputBuilder,
47    config_override: ::std::option::Option<crate::config::Builder>,
48}
49impl
50    crate::client::customize::internal::CustomizableSend<
51        crate::operation::get_compute_auth_token::GetComputeAuthTokenOutput,
52        crate::operation::get_compute_auth_token::GetComputeAuthTokenError,
53    > for GetComputeAuthTokenFluentBuilder
54{
55    fn send(
56        self,
57        config_override: crate::config::Builder,
58    ) -> crate::client::customize::internal::BoxFuture<
59        crate::client::customize::internal::SendResult<
60            crate::operation::get_compute_auth_token::GetComputeAuthTokenOutput,
61            crate::operation::get_compute_auth_token::GetComputeAuthTokenError,
62        >,
63    > {
64        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
65    }
66}
67impl GetComputeAuthTokenFluentBuilder {
68    /// Creates a new `GetComputeAuthTokenFluentBuilder`.
69    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
70        Self {
71            handle,
72            inner: ::std::default::Default::default(),
73            config_override: ::std::option::Option::None,
74        }
75    }
76    /// Access the GetComputeAuthToken as a reference.
77    pub fn as_input(&self) -> &crate::operation::get_compute_auth_token::builders::GetComputeAuthTokenInputBuilder {
78        &self.inner
79    }
80    /// Sends the request and returns the response.
81    ///
82    /// If an error occurs, an `SdkError` will be returned with additional details that
83    /// can be matched against.
84    ///
85    /// By default, any retryable failures will be retried twice. Retry behavior
86    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
87    /// set when configuring the client.
88    pub async fn send(
89        self,
90    ) -> ::std::result::Result<
91        crate::operation::get_compute_auth_token::GetComputeAuthTokenOutput,
92        ::aws_smithy_runtime_api::client::result::SdkError<
93            crate::operation::get_compute_auth_token::GetComputeAuthTokenError,
94            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
95        >,
96    > {
97        let input = self
98            .inner
99            .build()
100            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
101        let runtime_plugins = crate::operation::get_compute_auth_token::GetComputeAuthToken::operation_runtime_plugins(
102            self.handle.runtime_plugins.clone(),
103            &self.handle.conf,
104            self.config_override,
105        );
106        crate::operation::get_compute_auth_token::GetComputeAuthToken::orchestrate(&runtime_plugins, input).await
107    }
108
109    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
110    pub fn customize(
111        self,
112    ) -> crate::client::customize::CustomizableOperation<
113        crate::operation::get_compute_auth_token::GetComputeAuthTokenOutput,
114        crate::operation::get_compute_auth_token::GetComputeAuthTokenError,
115        Self,
116    > {
117        crate::client::customize::CustomizableOperation::new(self)
118    }
119    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
120        self.set_config_override(::std::option::Option::Some(config_override.into()));
121        self
122    }
123
124    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
125        self.config_override = config_override;
126        self
127    }
128    /// <p>A unique identifier for the fleet that the compute is registered to.</p>
129    pub fn fleet_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
130        self.inner = self.inner.fleet_id(input.into());
131        self
132    }
133    /// <p>A unique identifier for the fleet that the compute is registered to.</p>
134    pub fn set_fleet_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
135        self.inner = self.inner.set_fleet_id(input);
136        self
137    }
138    /// <p>A unique identifier for the fleet that the compute is registered to.</p>
139    pub fn get_fleet_id(&self) -> &::std::option::Option<::std::string::String> {
140        self.inner.get_fleet_id()
141    }
142    /// <p>The name of the compute resource you are requesting the authentication token for. For an Anywhere fleet compute, use the registered compute name. For an EC2 fleet instance, use the instance ID.</p>
143    pub fn compute_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
144        self.inner = self.inner.compute_name(input.into());
145        self
146    }
147    /// <p>The name of the compute resource you are requesting the authentication token for. For an Anywhere fleet compute, use the registered compute name. For an EC2 fleet instance, use the instance ID.</p>
148    pub fn set_compute_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
149        self.inner = self.inner.set_compute_name(input);
150        self
151    }
152    /// <p>The name of the compute resource you are requesting the authentication token for. For an Anywhere fleet compute, use the registered compute name. For an EC2 fleet instance, use the instance ID.</p>
153    pub fn get_compute_name(&self) -> &::std::option::Option<::std::string::String> {
154        self.inner.get_compute_name()
155    }
156}