aws_sdk_codebuild/operation/create_fleet/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_fleet::_create_fleet_output::CreateFleetOutputBuilder;
3
4pub use crate::operation::create_fleet::_create_fleet_input::CreateFleetInputBuilder;
5
6impl crate::operation::create_fleet::builders::CreateFleetInputBuilder {
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_fleet::CreateFleetOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_fleet::CreateFleetError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_fleet();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateFleet`.
24///
25/// <p>Creates a compute fleet.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreateFleetFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::create_fleet::builders::CreateFleetInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::create_fleet::CreateFleetOutput,
35        crate::operation::create_fleet::CreateFleetError,
36    > for CreateFleetFluentBuilder
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_fleet::CreateFleetOutput,
44            crate::operation::create_fleet::CreateFleetError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl CreateFleetFluentBuilder {
51    /// Creates a new `CreateFleetFluentBuilder`.
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 CreateFleet as a reference.
60    pub fn as_input(&self) -> &crate::operation::create_fleet::builders::CreateFleetInputBuilder {
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_fleet::CreateFleetOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::create_fleet::CreateFleetError,
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_fleet::CreateFleet::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::create_fleet::CreateFleet::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_fleet::CreateFleetOutput,
97        crate::operation::create_fleet::CreateFleetError,
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 name of the compute fleet.</p>
112    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113        self.inner = self.inner.name(input.into());
114        self
115    }
116    /// <p>The name of the compute fleet.</p>
117    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118        self.inner = self.inner.set_name(input);
119        self
120    }
121    /// <p>The name of the compute fleet.</p>
122    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
123        self.inner.get_name()
124    }
125    /// <p>The initial number of machines allocated to the fleet, which defines the number of builds that can run in parallel.</p>
126    pub fn base_capacity(mut self, input: i32) -> Self {
127        self.inner = self.inner.base_capacity(input);
128        self
129    }
130    /// <p>The initial number of machines allocated to the fleet, which defines the number of builds that can run in parallel.</p>
131    pub fn set_base_capacity(mut self, input: ::std::option::Option<i32>) -> Self {
132        self.inner = self.inner.set_base_capacity(input);
133        self
134    }
135    /// <p>The initial number of machines allocated to the fleet, which defines the number of builds that can run in parallel.</p>
136    pub fn get_base_capacity(&self) -> &::std::option::Option<i32> {
137        self.inner.get_base_capacity()
138    }
139    /// <p>The environment type of the compute fleet.</p>
140    /// <ul>
141    /// <li>
142    /// <p>The environment type <code>ARM_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), EU (Frankfurt), and South America (São Paulo).</p></li>
143    /// <li>
144    /// <p>The environment type <code>ARM_EC2</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and Asia Pacific (Mumbai).</p></li>
145    /// <li>
146    /// <p>The environment type <code>LINUX_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and Asia Pacific (Mumbai).</p></li>
147    /// <li>
148    /// <p>The environment type <code>LINUX_EC2</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and Asia Pacific (Mumbai).</p></li>
149    /// <li>
150    /// <p>The environment type <code>LINUX_GPU_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia Pacific (Tokyo), and Asia Pacific (Sydney).</p></li>
151    /// <li>
152    /// <p>The environment type <code>MAC_ARM</code> is available for Medium fleets only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Sydney), and EU (Frankfurt)</p></li>
153    /// <li>
154    /// <p>The environment type <code>MAC_ARM</code> is available for Large fleets only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), and Asia Pacific (Sydney).</p></li>
155    /// <li>
156    /// <p>The environment type <code>WINDOWS_EC2</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and Asia Pacific (Mumbai).</p></li>
157    /// <li>
158    /// <p>The environment type <code>WINDOWS_SERVER_2019_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Sydney), Asia Pacific (Tokyo), Asia Pacific (Mumbai) and EU (Ireland).</p></li>
159    /// <li>
160    /// <p>The environment type <code>WINDOWS_SERVER_2022_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia Pacific (Sydney), Asia Pacific (Singapore), Asia Pacific (Tokyo), South America (São Paulo) and Asia Pacific (Mumbai).</p></li>
161    /// </ul>
162    /// <p>For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build environment compute types</a> in the <i>CodeBuild user guide</i>.</p>
163    pub fn environment_type(mut self, input: crate::types::EnvironmentType) -> Self {
164        self.inner = self.inner.environment_type(input);
165        self
166    }
167    /// <p>The environment type of the compute fleet.</p>
168    /// <ul>
169    /// <li>
170    /// <p>The environment type <code>ARM_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), EU (Frankfurt), and South America (São Paulo).</p></li>
171    /// <li>
172    /// <p>The environment type <code>ARM_EC2</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and Asia Pacific (Mumbai).</p></li>
173    /// <li>
174    /// <p>The environment type <code>LINUX_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and Asia Pacific (Mumbai).</p></li>
175    /// <li>
176    /// <p>The environment type <code>LINUX_EC2</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and Asia Pacific (Mumbai).</p></li>
177    /// <li>
178    /// <p>The environment type <code>LINUX_GPU_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia Pacific (Tokyo), and Asia Pacific (Sydney).</p></li>
179    /// <li>
180    /// <p>The environment type <code>MAC_ARM</code> is available for Medium fleets only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Sydney), and EU (Frankfurt)</p></li>
181    /// <li>
182    /// <p>The environment type <code>MAC_ARM</code> is available for Large fleets only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), and Asia Pacific (Sydney).</p></li>
183    /// <li>
184    /// <p>The environment type <code>WINDOWS_EC2</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and Asia Pacific (Mumbai).</p></li>
185    /// <li>
186    /// <p>The environment type <code>WINDOWS_SERVER_2019_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Sydney), Asia Pacific (Tokyo), Asia Pacific (Mumbai) and EU (Ireland).</p></li>
187    /// <li>
188    /// <p>The environment type <code>WINDOWS_SERVER_2022_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia Pacific (Sydney), Asia Pacific (Singapore), Asia Pacific (Tokyo), South America (São Paulo) and Asia Pacific (Mumbai).</p></li>
189    /// </ul>
190    /// <p>For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build environment compute types</a> in the <i>CodeBuild user guide</i>.</p>
191    pub fn set_environment_type(mut self, input: ::std::option::Option<crate::types::EnvironmentType>) -> Self {
192        self.inner = self.inner.set_environment_type(input);
193        self
194    }
195    /// <p>The environment type of the compute fleet.</p>
196    /// <ul>
197    /// <li>
198    /// <p>The environment type <code>ARM_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), EU (Frankfurt), and South America (São Paulo).</p></li>
199    /// <li>
200    /// <p>The environment type <code>ARM_EC2</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and Asia Pacific (Mumbai).</p></li>
201    /// <li>
202    /// <p>The environment type <code>LINUX_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and Asia Pacific (Mumbai).</p></li>
203    /// <li>
204    /// <p>The environment type <code>LINUX_EC2</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and Asia Pacific (Mumbai).</p></li>
205    /// <li>
206    /// <p>The environment type <code>LINUX_GPU_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia Pacific (Tokyo), and Asia Pacific (Sydney).</p></li>
207    /// <li>
208    /// <p>The environment type <code>MAC_ARM</code> is available for Medium fleets only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Sydney), and EU (Frankfurt)</p></li>
209    /// <li>
210    /// <p>The environment type <code>MAC_ARM</code> is available for Large fleets only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), and Asia Pacific (Sydney).</p></li>
211    /// <li>
212    /// <p>The environment type <code>WINDOWS_EC2</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and Asia Pacific (Mumbai).</p></li>
213    /// <li>
214    /// <p>The environment type <code>WINDOWS_SERVER_2019_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Sydney), Asia Pacific (Tokyo), Asia Pacific (Mumbai) and EU (Ireland).</p></li>
215    /// <li>
216    /// <p>The environment type <code>WINDOWS_SERVER_2022_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia Pacific (Sydney), Asia Pacific (Singapore), Asia Pacific (Tokyo), South America (São Paulo) and Asia Pacific (Mumbai).</p></li>
217    /// </ul>
218    /// <p>For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build environment compute types</a> in the <i>CodeBuild user guide</i>.</p>
219    pub fn get_environment_type(&self) -> &::std::option::Option<crate::types::EnvironmentType> {
220        self.inner.get_environment_type()
221    }
222    /// <p>Information about the compute resources the compute fleet uses. Available values include:</p>
223    /// <ul>
224    /// <li>
225    /// <p><code>ATTRIBUTE_BASED_COMPUTE</code>: Specify the amount of vCPUs, memory, disk space, and the type of machine.</p><note>
226    /// <p>If you use <code>ATTRIBUTE_BASED_COMPUTE</code>, you must define your attributes by using <code>computeConfiguration</code>. CodeBuild will select the cheapest instance that satisfies your specified attributes. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment-reserved-capacity.types">Reserved capacity environment types</a> in the <i>CodeBuild User Guide</i>.</p>
227    /// </note></li>
228    /// <li>
229    /// <p><code>CUSTOM_INSTANCE_TYPE</code>: Specify the instance type for your compute fleet. For a list of supported instance types, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment-reserved-capacity.instance-types">Supported instance families </a> in the <i>CodeBuild User Guide</i>.</p></li>
230    /// <li>
231    /// <p><code>BUILD_GENERAL1_SMALL</code>: Use up to 4 GiB memory and 2 vCPUs for builds.</p></li>
232    /// <li>
233    /// <p><code>BUILD_GENERAL1_MEDIUM</code>: Use up to 8 GiB memory and 4 vCPUs for builds.</p></li>
234    /// <li>
235    /// <p><code>BUILD_GENERAL1_LARGE</code>: Use up to 16 GiB memory and 8 vCPUs for builds, depending on your environment type.</p></li>
236    /// <li>
237    /// <p><code>BUILD_GENERAL1_XLARGE</code>: Use up to 72 GiB memory and 36 vCPUs for builds, depending on your environment type.</p></li>
238    /// <li>
239    /// <p><code>BUILD_GENERAL1_2XLARGE</code>: Use up to 144 GiB memory, 72 vCPUs, and 824 GB of SSD storage for builds. This compute type supports Docker images up to 100 GB uncompressed.</p></li>
240    /// <li>
241    /// <p><code>BUILD_LAMBDA_1GB</code>: Use up to 1 GiB memory for builds. Only available for environment type <code>LINUX_LAMBDA_CONTAINER</code> and <code>ARM_LAMBDA_CONTAINER</code>.</p></li>
242    /// <li>
243    /// <p><code>BUILD_LAMBDA_2GB</code>: Use up to 2 GiB memory for builds. Only available for environment type <code>LINUX_LAMBDA_CONTAINER</code> and <code>ARM_LAMBDA_CONTAINER</code>.</p></li>
244    /// <li>
245    /// <p><code>BUILD_LAMBDA_4GB</code>: Use up to 4 GiB memory for builds. Only available for environment type <code>LINUX_LAMBDA_CONTAINER</code> and <code>ARM_LAMBDA_CONTAINER</code>.</p></li>
246    /// <li>
247    /// <p><code>BUILD_LAMBDA_8GB</code>: Use up to 8 GiB memory for builds. Only available for environment type <code>LINUX_LAMBDA_CONTAINER</code> and <code>ARM_LAMBDA_CONTAINER</code>.</p></li>
248    /// <li>
249    /// <p><code>BUILD_LAMBDA_10GB</code>: Use up to 10 GiB memory for builds. Only available for environment type <code>LINUX_LAMBDA_CONTAINER</code> and <code>ARM_LAMBDA_CONTAINER</code>.</p></li>
250    /// </ul>
251    /// <p>If you use <code>BUILD_GENERAL1_SMALL</code>:</p>
252    /// <ul>
253    /// <li>
254    /// <p>For environment type <code>LINUX_CONTAINER</code>, you can use up to 4 GiB memory and 2 vCPUs for builds.</p></li>
255    /// <li>
256    /// <p>For environment type <code>LINUX_GPU_CONTAINER</code>, you can use up to 16 GiB memory, 4 vCPUs, and 1 NVIDIA A10G Tensor Core GPU for builds.</p></li>
257    /// <li>
258    /// <p>For environment type <code>ARM_CONTAINER</code>, you can use up to 4 GiB memory and 2 vCPUs on ARM-based processors for builds.</p></li>
259    /// </ul>
260    /// <p>If you use <code>BUILD_GENERAL1_LARGE</code>:</p>
261    /// <ul>
262    /// <li>
263    /// <p>For environment type <code>LINUX_CONTAINER</code>, you can use up to 16 GiB memory and 8 vCPUs for builds.</p></li>
264    /// <li>
265    /// <p>For environment type <code>LINUX_GPU_CONTAINER</code>, you can use up to 255 GiB memory, 32 vCPUs, and 4 NVIDIA Tesla V100 GPUs for builds.</p></li>
266    /// <li>
267    /// <p>For environment type <code>ARM_CONTAINER</code>, you can use up to 16 GiB memory and 8 vCPUs on ARM-based processors for builds.</p></li>
268    /// </ul>
269    /// <p>For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment.types">On-demand environment types</a> in the <i>CodeBuild User Guide.</i></p>
270    pub fn compute_type(mut self, input: crate::types::ComputeType) -> Self {
271        self.inner = self.inner.compute_type(input);
272        self
273    }
274    /// <p>Information about the compute resources the compute fleet uses. Available values include:</p>
275    /// <ul>
276    /// <li>
277    /// <p><code>ATTRIBUTE_BASED_COMPUTE</code>: Specify the amount of vCPUs, memory, disk space, and the type of machine.</p><note>
278    /// <p>If you use <code>ATTRIBUTE_BASED_COMPUTE</code>, you must define your attributes by using <code>computeConfiguration</code>. CodeBuild will select the cheapest instance that satisfies your specified attributes. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment-reserved-capacity.types">Reserved capacity environment types</a> in the <i>CodeBuild User Guide</i>.</p>
279    /// </note></li>
280    /// <li>
281    /// <p><code>CUSTOM_INSTANCE_TYPE</code>: Specify the instance type for your compute fleet. For a list of supported instance types, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment-reserved-capacity.instance-types">Supported instance families </a> in the <i>CodeBuild User Guide</i>.</p></li>
282    /// <li>
283    /// <p><code>BUILD_GENERAL1_SMALL</code>: Use up to 4 GiB memory and 2 vCPUs for builds.</p></li>
284    /// <li>
285    /// <p><code>BUILD_GENERAL1_MEDIUM</code>: Use up to 8 GiB memory and 4 vCPUs for builds.</p></li>
286    /// <li>
287    /// <p><code>BUILD_GENERAL1_LARGE</code>: Use up to 16 GiB memory and 8 vCPUs for builds, depending on your environment type.</p></li>
288    /// <li>
289    /// <p><code>BUILD_GENERAL1_XLARGE</code>: Use up to 72 GiB memory and 36 vCPUs for builds, depending on your environment type.</p></li>
290    /// <li>
291    /// <p><code>BUILD_GENERAL1_2XLARGE</code>: Use up to 144 GiB memory, 72 vCPUs, and 824 GB of SSD storage for builds. This compute type supports Docker images up to 100 GB uncompressed.</p></li>
292    /// <li>
293    /// <p><code>BUILD_LAMBDA_1GB</code>: Use up to 1 GiB memory for builds. Only available for environment type <code>LINUX_LAMBDA_CONTAINER</code> and <code>ARM_LAMBDA_CONTAINER</code>.</p></li>
294    /// <li>
295    /// <p><code>BUILD_LAMBDA_2GB</code>: Use up to 2 GiB memory for builds. Only available for environment type <code>LINUX_LAMBDA_CONTAINER</code> and <code>ARM_LAMBDA_CONTAINER</code>.</p></li>
296    /// <li>
297    /// <p><code>BUILD_LAMBDA_4GB</code>: Use up to 4 GiB memory for builds. Only available for environment type <code>LINUX_LAMBDA_CONTAINER</code> and <code>ARM_LAMBDA_CONTAINER</code>.</p></li>
298    /// <li>
299    /// <p><code>BUILD_LAMBDA_8GB</code>: Use up to 8 GiB memory for builds. Only available for environment type <code>LINUX_LAMBDA_CONTAINER</code> and <code>ARM_LAMBDA_CONTAINER</code>.</p></li>
300    /// <li>
301    /// <p><code>BUILD_LAMBDA_10GB</code>: Use up to 10 GiB memory for builds. Only available for environment type <code>LINUX_LAMBDA_CONTAINER</code> and <code>ARM_LAMBDA_CONTAINER</code>.</p></li>
302    /// </ul>
303    /// <p>If you use <code>BUILD_GENERAL1_SMALL</code>:</p>
304    /// <ul>
305    /// <li>
306    /// <p>For environment type <code>LINUX_CONTAINER</code>, you can use up to 4 GiB memory and 2 vCPUs for builds.</p></li>
307    /// <li>
308    /// <p>For environment type <code>LINUX_GPU_CONTAINER</code>, you can use up to 16 GiB memory, 4 vCPUs, and 1 NVIDIA A10G Tensor Core GPU for builds.</p></li>
309    /// <li>
310    /// <p>For environment type <code>ARM_CONTAINER</code>, you can use up to 4 GiB memory and 2 vCPUs on ARM-based processors for builds.</p></li>
311    /// </ul>
312    /// <p>If you use <code>BUILD_GENERAL1_LARGE</code>:</p>
313    /// <ul>
314    /// <li>
315    /// <p>For environment type <code>LINUX_CONTAINER</code>, you can use up to 16 GiB memory and 8 vCPUs for builds.</p></li>
316    /// <li>
317    /// <p>For environment type <code>LINUX_GPU_CONTAINER</code>, you can use up to 255 GiB memory, 32 vCPUs, and 4 NVIDIA Tesla V100 GPUs for builds.</p></li>
318    /// <li>
319    /// <p>For environment type <code>ARM_CONTAINER</code>, you can use up to 16 GiB memory and 8 vCPUs on ARM-based processors for builds.</p></li>
320    /// </ul>
321    /// <p>For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment.types">On-demand environment types</a> in the <i>CodeBuild User Guide.</i></p>
322    pub fn set_compute_type(mut self, input: ::std::option::Option<crate::types::ComputeType>) -> Self {
323        self.inner = self.inner.set_compute_type(input);
324        self
325    }
326    /// <p>Information about the compute resources the compute fleet uses. Available values include:</p>
327    /// <ul>
328    /// <li>
329    /// <p><code>ATTRIBUTE_BASED_COMPUTE</code>: Specify the amount of vCPUs, memory, disk space, and the type of machine.</p><note>
330    /// <p>If you use <code>ATTRIBUTE_BASED_COMPUTE</code>, you must define your attributes by using <code>computeConfiguration</code>. CodeBuild will select the cheapest instance that satisfies your specified attributes. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment-reserved-capacity.types">Reserved capacity environment types</a> in the <i>CodeBuild User Guide</i>.</p>
331    /// </note></li>
332    /// <li>
333    /// <p><code>CUSTOM_INSTANCE_TYPE</code>: Specify the instance type for your compute fleet. For a list of supported instance types, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment-reserved-capacity.instance-types">Supported instance families </a> in the <i>CodeBuild User Guide</i>.</p></li>
334    /// <li>
335    /// <p><code>BUILD_GENERAL1_SMALL</code>: Use up to 4 GiB memory and 2 vCPUs for builds.</p></li>
336    /// <li>
337    /// <p><code>BUILD_GENERAL1_MEDIUM</code>: Use up to 8 GiB memory and 4 vCPUs for builds.</p></li>
338    /// <li>
339    /// <p><code>BUILD_GENERAL1_LARGE</code>: Use up to 16 GiB memory and 8 vCPUs for builds, depending on your environment type.</p></li>
340    /// <li>
341    /// <p><code>BUILD_GENERAL1_XLARGE</code>: Use up to 72 GiB memory and 36 vCPUs for builds, depending on your environment type.</p></li>
342    /// <li>
343    /// <p><code>BUILD_GENERAL1_2XLARGE</code>: Use up to 144 GiB memory, 72 vCPUs, and 824 GB of SSD storage for builds. This compute type supports Docker images up to 100 GB uncompressed.</p></li>
344    /// <li>
345    /// <p><code>BUILD_LAMBDA_1GB</code>: Use up to 1 GiB memory for builds. Only available for environment type <code>LINUX_LAMBDA_CONTAINER</code> and <code>ARM_LAMBDA_CONTAINER</code>.</p></li>
346    /// <li>
347    /// <p><code>BUILD_LAMBDA_2GB</code>: Use up to 2 GiB memory for builds. Only available for environment type <code>LINUX_LAMBDA_CONTAINER</code> and <code>ARM_LAMBDA_CONTAINER</code>.</p></li>
348    /// <li>
349    /// <p><code>BUILD_LAMBDA_4GB</code>: Use up to 4 GiB memory for builds. Only available for environment type <code>LINUX_LAMBDA_CONTAINER</code> and <code>ARM_LAMBDA_CONTAINER</code>.</p></li>
350    /// <li>
351    /// <p><code>BUILD_LAMBDA_8GB</code>: Use up to 8 GiB memory for builds. Only available for environment type <code>LINUX_LAMBDA_CONTAINER</code> and <code>ARM_LAMBDA_CONTAINER</code>.</p></li>
352    /// <li>
353    /// <p><code>BUILD_LAMBDA_10GB</code>: Use up to 10 GiB memory for builds. Only available for environment type <code>LINUX_LAMBDA_CONTAINER</code> and <code>ARM_LAMBDA_CONTAINER</code>.</p></li>
354    /// </ul>
355    /// <p>If you use <code>BUILD_GENERAL1_SMALL</code>:</p>
356    /// <ul>
357    /// <li>
358    /// <p>For environment type <code>LINUX_CONTAINER</code>, you can use up to 4 GiB memory and 2 vCPUs for builds.</p></li>
359    /// <li>
360    /// <p>For environment type <code>LINUX_GPU_CONTAINER</code>, you can use up to 16 GiB memory, 4 vCPUs, and 1 NVIDIA A10G Tensor Core GPU for builds.</p></li>
361    /// <li>
362    /// <p>For environment type <code>ARM_CONTAINER</code>, you can use up to 4 GiB memory and 2 vCPUs on ARM-based processors for builds.</p></li>
363    /// </ul>
364    /// <p>If you use <code>BUILD_GENERAL1_LARGE</code>:</p>
365    /// <ul>
366    /// <li>
367    /// <p>For environment type <code>LINUX_CONTAINER</code>, you can use up to 16 GiB memory and 8 vCPUs for builds.</p></li>
368    /// <li>
369    /// <p>For environment type <code>LINUX_GPU_CONTAINER</code>, you can use up to 255 GiB memory, 32 vCPUs, and 4 NVIDIA Tesla V100 GPUs for builds.</p></li>
370    /// <li>
371    /// <p>For environment type <code>ARM_CONTAINER</code>, you can use up to 16 GiB memory and 8 vCPUs on ARM-based processors for builds.</p></li>
372    /// </ul>
373    /// <p>For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment.types">On-demand environment types</a> in the <i>CodeBuild User Guide.</i></p>
374    pub fn get_compute_type(&self) -> &::std::option::Option<crate::types::ComputeType> {
375        self.inner.get_compute_type()
376    }
377    /// <p>The compute configuration of the compute fleet. This is only required if <code>computeType</code> is set to <code>ATTRIBUTE_BASED_COMPUTE</code> or <code>CUSTOM_INSTANCE_TYPE</code>.</p>
378    pub fn compute_configuration(mut self, input: crate::types::ComputeConfiguration) -> Self {
379        self.inner = self.inner.compute_configuration(input);
380        self
381    }
382    /// <p>The compute configuration of the compute fleet. This is only required if <code>computeType</code> is set to <code>ATTRIBUTE_BASED_COMPUTE</code> or <code>CUSTOM_INSTANCE_TYPE</code>.</p>
383    pub fn set_compute_configuration(mut self, input: ::std::option::Option<crate::types::ComputeConfiguration>) -> Self {
384        self.inner = self.inner.set_compute_configuration(input);
385        self
386    }
387    /// <p>The compute configuration of the compute fleet. This is only required if <code>computeType</code> is set to <code>ATTRIBUTE_BASED_COMPUTE</code> or <code>CUSTOM_INSTANCE_TYPE</code>.</p>
388    pub fn get_compute_configuration(&self) -> &::std::option::Option<crate::types::ComputeConfiguration> {
389        self.inner.get_compute_configuration()
390    }
391    /// <p>The scaling configuration of the compute fleet.</p>
392    pub fn scaling_configuration(mut self, input: crate::types::ScalingConfigurationInput) -> Self {
393        self.inner = self.inner.scaling_configuration(input);
394        self
395    }
396    /// <p>The scaling configuration of the compute fleet.</p>
397    pub fn set_scaling_configuration(mut self, input: ::std::option::Option<crate::types::ScalingConfigurationInput>) -> Self {
398        self.inner = self.inner.set_scaling_configuration(input);
399        self
400    }
401    /// <p>The scaling configuration of the compute fleet.</p>
402    pub fn get_scaling_configuration(&self) -> &::std::option::Option<crate::types::ScalingConfigurationInput> {
403        self.inner.get_scaling_configuration()
404    }
405    /// <p>The compute fleet overflow behavior.</p>
406    /// <ul>
407    /// <li>
408    /// <p>For overflow behavior <code>QUEUE</code>, your overflow builds need to wait on the existing fleet instance to become available.</p></li>
409    /// <li>
410    /// <p>For overflow behavior <code>ON_DEMAND</code>, your overflow builds run on CodeBuild on-demand.</p><note>
411    /// <p>If you choose to set your overflow behavior to on-demand while creating a VPC-connected fleet, make sure that you add the required VPC permissions to your project service role. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html#customer-managed-policies-example-create-vpc-network-interface">Example policy statement to allow CodeBuild access to Amazon Web Services services required to create a VPC network interface</a>.</p>
412    /// </note></li>
413    /// </ul>
414    pub fn overflow_behavior(mut self, input: crate::types::FleetOverflowBehavior) -> Self {
415        self.inner = self.inner.overflow_behavior(input);
416        self
417    }
418    /// <p>The compute fleet overflow behavior.</p>
419    /// <ul>
420    /// <li>
421    /// <p>For overflow behavior <code>QUEUE</code>, your overflow builds need to wait on the existing fleet instance to become available.</p></li>
422    /// <li>
423    /// <p>For overflow behavior <code>ON_DEMAND</code>, your overflow builds run on CodeBuild on-demand.</p><note>
424    /// <p>If you choose to set your overflow behavior to on-demand while creating a VPC-connected fleet, make sure that you add the required VPC permissions to your project service role. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html#customer-managed-policies-example-create-vpc-network-interface">Example policy statement to allow CodeBuild access to Amazon Web Services services required to create a VPC network interface</a>.</p>
425    /// </note></li>
426    /// </ul>
427    pub fn set_overflow_behavior(mut self, input: ::std::option::Option<crate::types::FleetOverflowBehavior>) -> Self {
428        self.inner = self.inner.set_overflow_behavior(input);
429        self
430    }
431    /// <p>The compute fleet overflow behavior.</p>
432    /// <ul>
433    /// <li>
434    /// <p>For overflow behavior <code>QUEUE</code>, your overflow builds need to wait on the existing fleet instance to become available.</p></li>
435    /// <li>
436    /// <p>For overflow behavior <code>ON_DEMAND</code>, your overflow builds run on CodeBuild on-demand.</p><note>
437    /// <p>If you choose to set your overflow behavior to on-demand while creating a VPC-connected fleet, make sure that you add the required VPC permissions to your project service role. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html#customer-managed-policies-example-create-vpc-network-interface">Example policy statement to allow CodeBuild access to Amazon Web Services services required to create a VPC network interface</a>.</p>
438    /// </note></li>
439    /// </ul>
440    pub fn get_overflow_behavior(&self) -> &::std::option::Option<crate::types::FleetOverflowBehavior> {
441        self.inner.get_overflow_behavior()
442    }
443    /// <p>Information about the VPC configuration that CodeBuild accesses.</p>
444    pub fn vpc_config(mut self, input: crate::types::VpcConfig) -> Self {
445        self.inner = self.inner.vpc_config(input);
446        self
447    }
448    /// <p>Information about the VPC configuration that CodeBuild accesses.</p>
449    pub fn set_vpc_config(mut self, input: ::std::option::Option<crate::types::VpcConfig>) -> Self {
450        self.inner = self.inner.set_vpc_config(input);
451        self
452    }
453    /// <p>Information about the VPC configuration that CodeBuild accesses.</p>
454    pub fn get_vpc_config(&self) -> &::std::option::Option<crate::types::VpcConfig> {
455        self.inner.get_vpc_config()
456    }
457    /// <p>The proxy configuration of the compute fleet.</p>
458    pub fn proxy_configuration(mut self, input: crate::types::ProxyConfiguration) -> Self {
459        self.inner = self.inner.proxy_configuration(input);
460        self
461    }
462    /// <p>The proxy configuration of the compute fleet.</p>
463    pub fn set_proxy_configuration(mut self, input: ::std::option::Option<crate::types::ProxyConfiguration>) -> Self {
464        self.inner = self.inner.set_proxy_configuration(input);
465        self
466    }
467    /// <p>The proxy configuration of the compute fleet.</p>
468    pub fn get_proxy_configuration(&self) -> &::std::option::Option<crate::types::ProxyConfiguration> {
469        self.inner.get_proxy_configuration()
470    }
471    /// <p>The Amazon Machine Image (AMI) of the compute fleet.</p>
472    pub fn image_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
473        self.inner = self.inner.image_id(input.into());
474        self
475    }
476    /// <p>The Amazon Machine Image (AMI) of the compute fleet.</p>
477    pub fn set_image_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
478        self.inner = self.inner.set_image_id(input);
479        self
480    }
481    /// <p>The Amazon Machine Image (AMI) of the compute fleet.</p>
482    pub fn get_image_id(&self) -> &::std::option::Option<::std::string::String> {
483        self.inner.get_image_id()
484    }
485    /// <p>The service role associated with the compute fleet. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html#customer-managed-policies-example-permission-policy-fleet-service-role.html"> Allow a user to add a permission policy for a fleet service role</a> in the <i>CodeBuild User Guide</i>.</p>
486    pub fn fleet_service_role(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
487        self.inner = self.inner.fleet_service_role(input.into());
488        self
489    }
490    /// <p>The service role associated with the compute fleet. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html#customer-managed-policies-example-permission-policy-fleet-service-role.html"> Allow a user to add a permission policy for a fleet service role</a> in the <i>CodeBuild User Guide</i>.</p>
491    pub fn set_fleet_service_role(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
492        self.inner = self.inner.set_fleet_service_role(input);
493        self
494    }
495    /// <p>The service role associated with the compute fleet. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html#customer-managed-policies-example-permission-policy-fleet-service-role.html"> Allow a user to add a permission policy for a fleet service role</a> in the <i>CodeBuild User Guide</i>.</p>
496    pub fn get_fleet_service_role(&self) -> &::std::option::Option<::std::string::String> {
497        self.inner.get_fleet_service_role()
498    }
499    ///
500    /// Appends an item to `tags`.
501    ///
502    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
503    ///
504    /// <p>A list of tag key and value pairs associated with this compute fleet.</p>
505    /// <p>These tags are available for use by Amazon Web Services services that support CodeBuild build project tags.</p>
506    pub fn tags(mut self, input: crate::types::Tag) -> Self {
507        self.inner = self.inner.tags(input);
508        self
509    }
510    /// <p>A list of tag key and value pairs associated with this compute fleet.</p>
511    /// <p>These tags are available for use by Amazon Web Services services that support CodeBuild build project tags.</p>
512    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
513        self.inner = self.inner.set_tags(input);
514        self
515    }
516    /// <p>A list of tag key and value pairs associated with this compute fleet.</p>
517    /// <p>These tags are available for use by Amazon Web Services services that support CodeBuild build project tags.</p>
518    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
519        self.inner.get_tags()
520    }
521}