aws_sdk_lightsail/operation/create_container_service_deployment/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_container_service_deployment::_create_container_service_deployment_output::CreateContainerServiceDeploymentOutputBuilder;
3
4pub use crate::operation::create_container_service_deployment::_create_container_service_deployment_input::CreateContainerServiceDeploymentInputBuilder;
5
6impl crate::operation::create_container_service_deployment::builders::CreateContainerServiceDeploymentInputBuilder {
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::create_container_service_deployment::CreateContainerServiceDeploymentOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_container_service_deployment::CreateContainerServiceDeploymentError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_container_service_deployment();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateContainerServiceDeployment`.
24///
25/// <p>Creates a deployment for your Amazon Lightsail container service.</p>
26/// <p>A deployment specifies the containers that will be launched on the container service and their settings, such as the ports to open, the environment variables to apply, and the launch command to run. It also specifies the container that will serve as the public endpoint of the deployment and its settings, such as the HTTP or HTTPS port to use, and the health check configuration.</p>
27/// <p>You can deploy containers to your container service using container images from a public registry such as Amazon ECR Public, or from your local machine. For more information, see <a href="https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-creating-container-images">Creating container images for your Amazon Lightsail container services</a> in the <i>Amazon Lightsail Developer Guide</i>.</p>
28#[derive(::std::clone::Clone, ::std::fmt::Debug)]
29pub struct CreateContainerServiceDeploymentFluentBuilder {
30    handle: ::std::sync::Arc<crate::client::Handle>,
31    inner: crate::operation::create_container_service_deployment::builders::CreateContainerServiceDeploymentInputBuilder,
32    config_override: ::std::option::Option<crate::config::Builder>,
33}
34impl
35    crate::client::customize::internal::CustomizableSend<
36        crate::operation::create_container_service_deployment::CreateContainerServiceDeploymentOutput,
37        crate::operation::create_container_service_deployment::CreateContainerServiceDeploymentError,
38    > for CreateContainerServiceDeploymentFluentBuilder
39{
40    fn send(
41        self,
42        config_override: crate::config::Builder,
43    ) -> crate::client::customize::internal::BoxFuture<
44        crate::client::customize::internal::SendResult<
45            crate::operation::create_container_service_deployment::CreateContainerServiceDeploymentOutput,
46            crate::operation::create_container_service_deployment::CreateContainerServiceDeploymentError,
47        >,
48    > {
49        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
50    }
51}
52impl CreateContainerServiceDeploymentFluentBuilder {
53    /// Creates a new `CreateContainerServiceDeploymentFluentBuilder`.
54    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
55        Self {
56            handle,
57            inner: ::std::default::Default::default(),
58            config_override: ::std::option::Option::None,
59        }
60    }
61    /// Access the CreateContainerServiceDeployment as a reference.
62    pub fn as_input(&self) -> &crate::operation::create_container_service_deployment::builders::CreateContainerServiceDeploymentInputBuilder {
63        &self.inner
64    }
65    /// Sends the request and returns the response.
66    ///
67    /// If an error occurs, an `SdkError` will be returned with additional details that
68    /// can be matched against.
69    ///
70    /// By default, any retryable failures will be retried twice. Retry behavior
71    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
72    /// set when configuring the client.
73    pub async fn send(
74        self,
75    ) -> ::std::result::Result<
76        crate::operation::create_container_service_deployment::CreateContainerServiceDeploymentOutput,
77        ::aws_smithy_runtime_api::client::result::SdkError<
78            crate::operation::create_container_service_deployment::CreateContainerServiceDeploymentError,
79            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
80        >,
81    > {
82        let input = self
83            .inner
84            .build()
85            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
86        let runtime_plugins = crate::operation::create_container_service_deployment::CreateContainerServiceDeployment::operation_runtime_plugins(
87            self.handle.runtime_plugins.clone(),
88            &self.handle.conf,
89            self.config_override,
90        );
91        crate::operation::create_container_service_deployment::CreateContainerServiceDeployment::orchestrate(&runtime_plugins, input).await
92    }
93
94    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
95    pub fn customize(
96        self,
97    ) -> crate::client::customize::CustomizableOperation<
98        crate::operation::create_container_service_deployment::CreateContainerServiceDeploymentOutput,
99        crate::operation::create_container_service_deployment::CreateContainerServiceDeploymentError,
100        Self,
101    > {
102        crate::client::customize::CustomizableOperation::new(self)
103    }
104    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
105        self.set_config_override(::std::option::Option::Some(config_override.into()));
106        self
107    }
108
109    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
110        self.config_override = config_override;
111        self
112    }
113    /// <p>The name of the container service for which to create the deployment.</p>
114    pub fn service_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
115        self.inner = self.inner.service_name(input.into());
116        self
117    }
118    /// <p>The name of the container service for which to create the deployment.</p>
119    pub fn set_service_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
120        self.inner = self.inner.set_service_name(input);
121        self
122    }
123    /// <p>The name of the container service for which to create the deployment.</p>
124    pub fn get_service_name(&self) -> &::std::option::Option<::std::string::String> {
125        self.inner.get_service_name()
126    }
127    ///
128    /// Adds a key-value pair to `containers`.
129    ///
130    /// To override the contents of this collection use [`set_containers`](Self::set_containers).
131    ///
132    /// <p>An object that describes the settings of the containers that will be launched on the container service.</p>
133    pub fn containers(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::Container) -> Self {
134        self.inner = self.inner.containers(k.into(), v);
135        self
136    }
137    /// <p>An object that describes the settings of the containers that will be launched on the container service.</p>
138    pub fn set_containers(
139        mut self,
140        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::Container>>,
141    ) -> Self {
142        self.inner = self.inner.set_containers(input);
143        self
144    }
145    /// <p>An object that describes the settings of the containers that will be launched on the container service.</p>
146    pub fn get_containers(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::Container>> {
147        self.inner.get_containers()
148    }
149    /// <p>An object that describes the settings of the public endpoint for the container service.</p>
150    pub fn public_endpoint(mut self, input: crate::types::EndpointRequest) -> Self {
151        self.inner = self.inner.public_endpoint(input);
152        self
153    }
154    /// <p>An object that describes the settings of the public endpoint for the container service.</p>
155    pub fn set_public_endpoint(mut self, input: ::std::option::Option<crate::types::EndpointRequest>) -> Self {
156        self.inner = self.inner.set_public_endpoint(input);
157        self
158    }
159    /// <p>An object that describes the settings of the public endpoint for the container service.</p>
160    pub fn get_public_endpoint(&self) -> &::std::option::Option<crate::types::EndpointRequest> {
161        self.inner.get_public_endpoint()
162    }
163}