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}