aws_sdk_imagebuilder/operation/create_image/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_image::_create_image_output::CreateImageOutputBuilder;
3
4pub use crate::operation::create_image::_create_image_input::CreateImageInputBuilder;
5
6impl crate::operation::create_image::builders::CreateImageInputBuilder {
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_image::CreateImageOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_image::CreateImageError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_image();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateImage`.
24///
25/// <p>Creates a new image. This request will create a new image along with all of the configured output resources defined in the distribution configuration. You must specify exactly one recipe for your image, using either a ContainerRecipeArn or an ImageRecipeArn.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreateImageFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::create_image::builders::CreateImageInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::create_image::CreateImageOutput,
35        crate::operation::create_image::CreateImageError,
36    > for CreateImageFluentBuilder
37{
38    fn send(
39        self,
40        config_override: crate::config::Builder,
41    ) -> crate::client::customize::internal::BoxFuture<
42        crate::client::customize::internal::SendResult<
43            crate::operation::create_image::CreateImageOutput,
44            crate::operation::create_image::CreateImageError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl CreateImageFluentBuilder {
51    /// Creates a new `CreateImageFluentBuilder`.
52    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53        Self {
54            handle,
55            inner: ::std::default::Default::default(),
56            config_override: ::std::option::Option::None,
57        }
58    }
59    /// Access the CreateImage as a reference.
60    pub fn as_input(&self) -> &crate::operation::create_image::builders::CreateImageInputBuilder {
61        &self.inner
62    }
63    /// Sends the request and returns the response.
64    ///
65    /// If an error occurs, an `SdkError` will be returned with additional details that
66    /// can be matched against.
67    ///
68    /// By default, any retryable failures will be retried twice. Retry behavior
69    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
70    /// set when configuring the client.
71    pub async fn send(
72        self,
73    ) -> ::std::result::Result<
74        crate::operation::create_image::CreateImageOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::create_image::CreateImageError,
77            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78        >,
79    > {
80        let input = self
81            .inner
82            .build()
83            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84        let runtime_plugins = crate::operation::create_image::CreateImage::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::create_image::CreateImage::orchestrate(&runtime_plugins, input).await
90    }
91
92    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93    pub fn customize(
94        self,
95    ) -> crate::client::customize::CustomizableOperation<
96        crate::operation::create_image::CreateImageOutput,
97        crate::operation::create_image::CreateImageError,
98        Self,
99    > {
100        crate::client::customize::CustomizableOperation::new(self)
101    }
102    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103        self.set_config_override(::std::option::Option::Some(config_override.into()));
104        self
105    }
106
107    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108        self.config_override = config_override;
109        self
110    }
111    /// <p>The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.</p>
112    pub fn image_recipe_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113        self.inner = self.inner.image_recipe_arn(input.into());
114        self
115    }
116    /// <p>The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.</p>
117    pub fn set_image_recipe_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118        self.inner = self.inner.set_image_recipe_arn(input);
119        self
120    }
121    /// <p>The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.</p>
122    pub fn get_image_recipe_arn(&self) -> &::std::option::Option<::std::string::String> {
123        self.inner.get_image_recipe_arn()
124    }
125    /// <p>The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.</p>
126    pub fn container_recipe_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
127        self.inner = self.inner.container_recipe_arn(input.into());
128        self
129    }
130    /// <p>The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.</p>
131    pub fn set_container_recipe_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
132        self.inner = self.inner.set_container_recipe_arn(input);
133        self
134    }
135    /// <p>The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.</p>
136    pub fn get_container_recipe_arn(&self) -> &::std::option::Option<::std::string::String> {
137        self.inner.get_container_recipe_arn()
138    }
139    /// <p>The Amazon Resource Name (ARN) of the distribution configuration that defines and configures the outputs of your pipeline.</p>
140    pub fn distribution_configuration_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
141        self.inner = self.inner.distribution_configuration_arn(input.into());
142        self
143    }
144    /// <p>The Amazon Resource Name (ARN) of the distribution configuration that defines and configures the outputs of your pipeline.</p>
145    pub fn set_distribution_configuration_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
146        self.inner = self.inner.set_distribution_configuration_arn(input);
147        self
148    }
149    /// <p>The Amazon Resource Name (ARN) of the distribution configuration that defines and configures the outputs of your pipeline.</p>
150    pub fn get_distribution_configuration_arn(&self) -> &::std::option::Option<::std::string::String> {
151        self.inner.get_distribution_configuration_arn()
152    }
153    /// <p>The Amazon Resource Name (ARN) of the infrastructure configuration that defines the environment in which your image will be built and tested.</p>
154    pub fn infrastructure_configuration_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
155        self.inner = self.inner.infrastructure_configuration_arn(input.into());
156        self
157    }
158    /// <p>The Amazon Resource Name (ARN) of the infrastructure configuration that defines the environment in which your image will be built and tested.</p>
159    pub fn set_infrastructure_configuration_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
160        self.inner = self.inner.set_infrastructure_configuration_arn(input);
161        self
162    }
163    /// <p>The Amazon Resource Name (ARN) of the infrastructure configuration that defines the environment in which your image will be built and tested.</p>
164    pub fn get_infrastructure_configuration_arn(&self) -> &::std::option::Option<::std::string::String> {
165        self.inner.get_infrastructure_configuration_arn()
166    }
167    /// <p>The image tests configuration of the image.</p>
168    pub fn image_tests_configuration(mut self, input: crate::types::ImageTestsConfiguration) -> Self {
169        self.inner = self.inner.image_tests_configuration(input);
170        self
171    }
172    /// <p>The image tests configuration of the image.</p>
173    pub fn set_image_tests_configuration(mut self, input: ::std::option::Option<crate::types::ImageTestsConfiguration>) -> Self {
174        self.inner = self.inner.set_image_tests_configuration(input);
175        self
176    }
177    /// <p>The image tests configuration of the image.</p>
178    pub fn get_image_tests_configuration(&self) -> &::std::option::Option<crate::types::ImageTestsConfiguration> {
179        self.inner.get_image_tests_configuration()
180    }
181    /// <p>Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.</p>
182    pub fn enhanced_image_metadata_enabled(mut self, input: bool) -> Self {
183        self.inner = self.inner.enhanced_image_metadata_enabled(input);
184        self
185    }
186    /// <p>Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.</p>
187    pub fn set_enhanced_image_metadata_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
188        self.inner = self.inner.set_enhanced_image_metadata_enabled(input);
189        self
190    }
191    /// <p>Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.</p>
192    pub fn get_enhanced_image_metadata_enabled(&self) -> &::std::option::Option<bool> {
193        self.inner.get_enhanced_image_metadata_enabled()
194    }
195    ///
196    /// Adds a key-value pair to `tags`.
197    ///
198    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
199    ///
200    /// <p>The tags of the image.</p>
201    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
202        self.inner = self.inner.tags(k.into(), v.into());
203        self
204    }
205    /// <p>The tags of the image.</p>
206    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
207        self.inner = self.inner.set_tags(input);
208        self
209    }
210    /// <p>The tags of the image.</p>
211    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
212        self.inner.get_tags()
213    }
214    /// <p>Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring idempotency</a> in the <i>Amazon EC2 API Reference</i>.</p>
215    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
216        self.inner = self.inner.client_token(input.into());
217        self
218    }
219    /// <p>Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring idempotency</a> in the <i>Amazon EC2 API Reference</i>.</p>
220    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
221        self.inner = self.inner.set_client_token(input);
222        self
223    }
224    /// <p>Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring idempotency</a> in the <i>Amazon EC2 API Reference</i>.</p>
225    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
226        self.inner.get_client_token()
227    }
228    /// <p>Contains settings for vulnerability scans.</p>
229    pub fn image_scanning_configuration(mut self, input: crate::types::ImageScanningConfiguration) -> Self {
230        self.inner = self.inner.image_scanning_configuration(input);
231        self
232    }
233    /// <p>Contains settings for vulnerability scans.</p>
234    pub fn set_image_scanning_configuration(mut self, input: ::std::option::Option<crate::types::ImageScanningConfiguration>) -> Self {
235        self.inner = self.inner.set_image_scanning_configuration(input);
236        self
237    }
238    /// <p>Contains settings for vulnerability scans.</p>
239    pub fn get_image_scanning_configuration(&self) -> &::std::option::Option<crate::types::ImageScanningConfiguration> {
240        self.inner.get_image_scanning_configuration()
241    }
242    ///
243    /// Appends an item to `workflows`.
244    ///
245    /// To override the contents of this collection use [`set_workflows`](Self::set_workflows).
246    ///
247    /// <p>Contains an array of workflow configuration objects.</p>
248    pub fn workflows(mut self, input: crate::types::WorkflowConfiguration) -> Self {
249        self.inner = self.inner.workflows(input);
250        self
251    }
252    /// <p>Contains an array of workflow configuration objects.</p>
253    pub fn set_workflows(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::WorkflowConfiguration>>) -> Self {
254        self.inner = self.inner.set_workflows(input);
255        self
256    }
257    /// <p>Contains an array of workflow configuration objects.</p>
258    pub fn get_workflows(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::WorkflowConfiguration>> {
259        self.inner.get_workflows()
260    }
261    /// <p>The name or Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to perform workflow actions.</p>
262    pub fn execution_role(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
263        self.inner = self.inner.execution_role(input.into());
264        self
265    }
266    /// <p>The name or Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to perform workflow actions.</p>
267    pub fn set_execution_role(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
268        self.inner = self.inner.set_execution_role(input);
269        self
270    }
271    /// <p>The name or Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to perform workflow actions.</p>
272    pub fn get_execution_role(&self) -> &::std::option::Option<::std::string::String> {
273        self.inner.get_execution_role()
274    }
275}