aws_sdk_codebuild/operation/update_fleet/
_update_fleet_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct UpdateFleetInput {
6    /// <p>The ARN of the compute fleet.</p>
7    pub arn: ::std::option::Option<::std::string::String>,
8    /// <p>The initial number of machines allocated to the compute fleet, which defines the number of builds that can run in parallel.</p>
9    pub base_capacity: ::std::option::Option<i32>,
10    /// <p>The environment type of the compute fleet.</p>
11    /// <ul>
12    /// <li>
13    /// <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>
14    /// <li>
15    /// <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>
16    /// <li>
17    /// <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>
18    /// <li>
19    /// <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>
20    /// <li>
21    /// <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>
22    /// <li>
23    /// <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>
24    /// <li>
25    /// <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>
26    /// <li>
27    /// <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>
28    /// <li>
29    /// <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>
30    /// <li>
31    /// <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>
32    /// </ul>
33    /// <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>
34    pub environment_type: ::std::option::Option<crate::types::EnvironmentType>,
35    /// <p>Information about the compute resources the compute fleet uses. Available values include:</p>
36    /// <ul>
37    /// <li>
38    /// <p><code>ATTRIBUTE_BASED_COMPUTE</code>: Specify the amount of vCPUs, memory, disk space, and the type of machine.</p><note>
39    /// <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>
40    /// </note></li>
41    /// <li>
42    /// <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>
43    /// <li>
44    /// <p><code>BUILD_GENERAL1_SMALL</code>: Use up to 4 GiB memory and 2 vCPUs for builds.</p></li>
45    /// <li>
46    /// <p><code>BUILD_GENERAL1_MEDIUM</code>: Use up to 8 GiB memory and 4 vCPUs for builds.</p></li>
47    /// <li>
48    /// <p><code>BUILD_GENERAL1_LARGE</code>: Use up to 16 GiB memory and 8 vCPUs for builds, depending on your environment type.</p></li>
49    /// <li>
50    /// <p><code>BUILD_GENERAL1_XLARGE</code>: Use up to 72 GiB memory and 36 vCPUs for builds, depending on your environment type.</p></li>
51    /// <li>
52    /// <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>
53    /// <li>
54    /// <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>
55    /// <li>
56    /// <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>
57    /// <li>
58    /// <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>
59    /// <li>
60    /// <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>
61    /// <li>
62    /// <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>
63    /// </ul>
64    /// <p>If you use <code>BUILD_GENERAL1_SMALL</code>:</p>
65    /// <ul>
66    /// <li>
67    /// <p>For environment type <code>LINUX_CONTAINER</code>, you can use up to 4 GiB memory and 2 vCPUs for builds.</p></li>
68    /// <li>
69    /// <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>
70    /// <li>
71    /// <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>
72    /// </ul>
73    /// <p>If you use <code>BUILD_GENERAL1_LARGE</code>:</p>
74    /// <ul>
75    /// <li>
76    /// <p>For environment type <code>LINUX_CONTAINER</code>, you can use up to 16 GiB memory and 8 vCPUs for builds.</p></li>
77    /// <li>
78    /// <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>
79    /// <li>
80    /// <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>
81    /// </ul>
82    /// <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>
83    pub compute_type: ::std::option::Option<crate::types::ComputeType>,
84    /// <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>
85    pub compute_configuration: ::std::option::Option<crate::types::ComputeConfiguration>,
86    /// <p>The scaling configuration of the compute fleet.</p>
87    pub scaling_configuration: ::std::option::Option<crate::types::ScalingConfigurationInput>,
88    /// <p>The compute fleet overflow behavior.</p>
89    /// <ul>
90    /// <li>
91    /// <p>For overflow behavior <code>QUEUE</code>, your overflow builds need to wait on the existing fleet instance to become available.</p></li>
92    /// <li>
93    /// <p>For overflow behavior <code>ON_DEMAND</code>, your overflow builds run on CodeBuild on-demand.</p><note>
94    /// <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>
95    /// </note></li>
96    /// </ul>
97    pub overflow_behavior: ::std::option::Option<crate::types::FleetOverflowBehavior>,
98    /// <p>Information about the VPC configuration that CodeBuild accesses.</p>
99    pub vpc_config: ::std::option::Option<crate::types::VpcConfig>,
100    /// <p>The proxy configuration of the compute fleet.</p>
101    pub proxy_configuration: ::std::option::Option<crate::types::ProxyConfiguration>,
102    /// <p>The Amazon Machine Image (AMI) of the compute fleet.</p>
103    pub image_id: ::std::option::Option<::std::string::String>,
104    /// <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>
105    pub fleet_service_role: ::std::option::Option<::std::string::String>,
106    /// <p>A list of tag key and value pairs associated with this compute fleet.</p>
107    /// <p>These tags are available for use by Amazon Web Services services that support CodeBuild build project tags.</p>
108    pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
109}
110impl UpdateFleetInput {
111    /// <p>The ARN of the compute fleet.</p>
112    pub fn arn(&self) -> ::std::option::Option<&str> {
113        self.arn.as_deref()
114    }
115    /// <p>The initial number of machines allocated to the compute fleet, which defines the number of builds that can run in parallel.</p>
116    pub fn base_capacity(&self) -> ::std::option::Option<i32> {
117        self.base_capacity
118    }
119    /// <p>The environment type of the compute fleet.</p>
120    /// <ul>
121    /// <li>
122    /// <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>
123    /// <li>
124    /// <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>
125    /// <li>
126    /// <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>
127    /// <li>
128    /// <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>
129    /// <li>
130    /// <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>
131    /// <li>
132    /// <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>
133    /// <li>
134    /// <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>
135    /// <li>
136    /// <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>
137    /// <li>
138    /// <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>
139    /// <li>
140    /// <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>
141    /// </ul>
142    /// <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>
143    pub fn environment_type(&self) -> ::std::option::Option<&crate::types::EnvironmentType> {
144        self.environment_type.as_ref()
145    }
146    /// <p>Information about the compute resources the compute fleet uses. Available values include:</p>
147    /// <ul>
148    /// <li>
149    /// <p><code>ATTRIBUTE_BASED_COMPUTE</code>: Specify the amount of vCPUs, memory, disk space, and the type of machine.</p><note>
150    /// <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>
151    /// </note></li>
152    /// <li>
153    /// <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>
154    /// <li>
155    /// <p><code>BUILD_GENERAL1_SMALL</code>: Use up to 4 GiB memory and 2 vCPUs for builds.</p></li>
156    /// <li>
157    /// <p><code>BUILD_GENERAL1_MEDIUM</code>: Use up to 8 GiB memory and 4 vCPUs for builds.</p></li>
158    /// <li>
159    /// <p><code>BUILD_GENERAL1_LARGE</code>: Use up to 16 GiB memory and 8 vCPUs for builds, depending on your environment type.</p></li>
160    /// <li>
161    /// <p><code>BUILD_GENERAL1_XLARGE</code>: Use up to 72 GiB memory and 36 vCPUs for builds, depending on your environment type.</p></li>
162    /// <li>
163    /// <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>
164    /// <li>
165    /// <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>
166    /// <li>
167    /// <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>
168    /// <li>
169    /// <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>
170    /// <li>
171    /// <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>
172    /// <li>
173    /// <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>
174    /// </ul>
175    /// <p>If you use <code>BUILD_GENERAL1_SMALL</code>:</p>
176    /// <ul>
177    /// <li>
178    /// <p>For environment type <code>LINUX_CONTAINER</code>, you can use up to 4 GiB memory and 2 vCPUs for builds.</p></li>
179    /// <li>
180    /// <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>
181    /// <li>
182    /// <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>
183    /// </ul>
184    /// <p>If you use <code>BUILD_GENERAL1_LARGE</code>:</p>
185    /// <ul>
186    /// <li>
187    /// <p>For environment type <code>LINUX_CONTAINER</code>, you can use up to 16 GiB memory and 8 vCPUs for builds.</p></li>
188    /// <li>
189    /// <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>
190    /// <li>
191    /// <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>
192    /// </ul>
193    /// <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>
194    pub fn compute_type(&self) -> ::std::option::Option<&crate::types::ComputeType> {
195        self.compute_type.as_ref()
196    }
197    /// <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>
198    pub fn compute_configuration(&self) -> ::std::option::Option<&crate::types::ComputeConfiguration> {
199        self.compute_configuration.as_ref()
200    }
201    /// <p>The scaling configuration of the compute fleet.</p>
202    pub fn scaling_configuration(&self) -> ::std::option::Option<&crate::types::ScalingConfigurationInput> {
203        self.scaling_configuration.as_ref()
204    }
205    /// <p>The compute fleet overflow behavior.</p>
206    /// <ul>
207    /// <li>
208    /// <p>For overflow behavior <code>QUEUE</code>, your overflow builds need to wait on the existing fleet instance to become available.</p></li>
209    /// <li>
210    /// <p>For overflow behavior <code>ON_DEMAND</code>, your overflow builds run on CodeBuild on-demand.</p><note>
211    /// <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>
212    /// </note></li>
213    /// </ul>
214    pub fn overflow_behavior(&self) -> ::std::option::Option<&crate::types::FleetOverflowBehavior> {
215        self.overflow_behavior.as_ref()
216    }
217    /// <p>Information about the VPC configuration that CodeBuild accesses.</p>
218    pub fn vpc_config(&self) -> ::std::option::Option<&crate::types::VpcConfig> {
219        self.vpc_config.as_ref()
220    }
221    /// <p>The proxy configuration of the compute fleet.</p>
222    pub fn proxy_configuration(&self) -> ::std::option::Option<&crate::types::ProxyConfiguration> {
223        self.proxy_configuration.as_ref()
224    }
225    /// <p>The Amazon Machine Image (AMI) of the compute fleet.</p>
226    pub fn image_id(&self) -> ::std::option::Option<&str> {
227        self.image_id.as_deref()
228    }
229    /// <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>
230    pub fn fleet_service_role(&self) -> ::std::option::Option<&str> {
231        self.fleet_service_role.as_deref()
232    }
233    /// <p>A list of tag key and value pairs associated with this compute fleet.</p>
234    /// <p>These tags are available for use by Amazon Web Services services that support CodeBuild build project tags.</p>
235    ///
236    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
237    pub fn tags(&self) -> &[crate::types::Tag] {
238        self.tags.as_deref().unwrap_or_default()
239    }
240}
241impl UpdateFleetInput {
242    /// Creates a new builder-style object to manufacture [`UpdateFleetInput`](crate::operation::update_fleet::UpdateFleetInput).
243    pub fn builder() -> crate::operation::update_fleet::builders::UpdateFleetInputBuilder {
244        crate::operation::update_fleet::builders::UpdateFleetInputBuilder::default()
245    }
246}
247
248/// A builder for [`UpdateFleetInput`](crate::operation::update_fleet::UpdateFleetInput).
249#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
250#[non_exhaustive]
251pub struct UpdateFleetInputBuilder {
252    pub(crate) arn: ::std::option::Option<::std::string::String>,
253    pub(crate) base_capacity: ::std::option::Option<i32>,
254    pub(crate) environment_type: ::std::option::Option<crate::types::EnvironmentType>,
255    pub(crate) compute_type: ::std::option::Option<crate::types::ComputeType>,
256    pub(crate) compute_configuration: ::std::option::Option<crate::types::ComputeConfiguration>,
257    pub(crate) scaling_configuration: ::std::option::Option<crate::types::ScalingConfigurationInput>,
258    pub(crate) overflow_behavior: ::std::option::Option<crate::types::FleetOverflowBehavior>,
259    pub(crate) vpc_config: ::std::option::Option<crate::types::VpcConfig>,
260    pub(crate) proxy_configuration: ::std::option::Option<crate::types::ProxyConfiguration>,
261    pub(crate) image_id: ::std::option::Option<::std::string::String>,
262    pub(crate) fleet_service_role: ::std::option::Option<::std::string::String>,
263    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
264}
265impl UpdateFleetInputBuilder {
266    /// <p>The ARN of the compute fleet.</p>
267    /// This field is required.
268    pub fn arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
269        self.arn = ::std::option::Option::Some(input.into());
270        self
271    }
272    /// <p>The ARN of the compute fleet.</p>
273    pub fn set_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
274        self.arn = input;
275        self
276    }
277    /// <p>The ARN of the compute fleet.</p>
278    pub fn get_arn(&self) -> &::std::option::Option<::std::string::String> {
279        &self.arn
280    }
281    /// <p>The initial number of machines allocated to the compute fleet, which defines the number of builds that can run in parallel.</p>
282    pub fn base_capacity(mut self, input: i32) -> Self {
283        self.base_capacity = ::std::option::Option::Some(input);
284        self
285    }
286    /// <p>The initial number of machines allocated to the compute fleet, which defines the number of builds that can run in parallel.</p>
287    pub fn set_base_capacity(mut self, input: ::std::option::Option<i32>) -> Self {
288        self.base_capacity = input;
289        self
290    }
291    /// <p>The initial number of machines allocated to the compute fleet, which defines the number of builds that can run in parallel.</p>
292    pub fn get_base_capacity(&self) -> &::std::option::Option<i32> {
293        &self.base_capacity
294    }
295    /// <p>The environment type of the compute fleet.</p>
296    /// <ul>
297    /// <li>
298    /// <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>
299    /// <li>
300    /// <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>
301    /// <li>
302    /// <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>
303    /// <li>
304    /// <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>
305    /// <li>
306    /// <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>
307    /// <li>
308    /// <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>
309    /// <li>
310    /// <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>
311    /// <li>
312    /// <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>
313    /// <li>
314    /// <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>
315    /// <li>
316    /// <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>
317    /// </ul>
318    /// <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>
319    pub fn environment_type(mut self, input: crate::types::EnvironmentType) -> Self {
320        self.environment_type = ::std::option::Option::Some(input);
321        self
322    }
323    /// <p>The environment type of the compute fleet.</p>
324    /// <ul>
325    /// <li>
326    /// <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>
327    /// <li>
328    /// <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>
329    /// <li>
330    /// <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>
331    /// <li>
332    /// <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>
333    /// <li>
334    /// <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>
335    /// <li>
336    /// <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>
337    /// <li>
338    /// <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>
339    /// <li>
340    /// <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>
341    /// <li>
342    /// <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>
343    /// <li>
344    /// <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>
345    /// </ul>
346    /// <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>
347    pub fn set_environment_type(mut self, input: ::std::option::Option<crate::types::EnvironmentType>) -> Self {
348        self.environment_type = input;
349        self
350    }
351    /// <p>The environment type of the compute fleet.</p>
352    /// <ul>
353    /// <li>
354    /// <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>
355    /// <li>
356    /// <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>
357    /// <li>
358    /// <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>
359    /// <li>
360    /// <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>
361    /// <li>
362    /// <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>
363    /// <li>
364    /// <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>
365    /// <li>
366    /// <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>
367    /// <li>
368    /// <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>
369    /// <li>
370    /// <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>
371    /// <li>
372    /// <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>
373    /// </ul>
374    /// <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>
375    pub fn get_environment_type(&self) -> &::std::option::Option<crate::types::EnvironmentType> {
376        &self.environment_type
377    }
378    /// <p>Information about the compute resources the compute fleet uses. Available values include:</p>
379    /// <ul>
380    /// <li>
381    /// <p><code>ATTRIBUTE_BASED_COMPUTE</code>: Specify the amount of vCPUs, memory, disk space, and the type of machine.</p><note>
382    /// <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>
383    /// </note></li>
384    /// <li>
385    /// <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>
386    /// <li>
387    /// <p><code>BUILD_GENERAL1_SMALL</code>: Use up to 4 GiB memory and 2 vCPUs for builds.</p></li>
388    /// <li>
389    /// <p><code>BUILD_GENERAL1_MEDIUM</code>: Use up to 8 GiB memory and 4 vCPUs for builds.</p></li>
390    /// <li>
391    /// <p><code>BUILD_GENERAL1_LARGE</code>: Use up to 16 GiB memory and 8 vCPUs for builds, depending on your environment type.</p></li>
392    /// <li>
393    /// <p><code>BUILD_GENERAL1_XLARGE</code>: Use up to 72 GiB memory and 36 vCPUs for builds, depending on your environment type.</p></li>
394    /// <li>
395    /// <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>
396    /// <li>
397    /// <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>
398    /// <li>
399    /// <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>
400    /// <li>
401    /// <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>
402    /// <li>
403    /// <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>
404    /// <li>
405    /// <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>
406    /// </ul>
407    /// <p>If you use <code>BUILD_GENERAL1_SMALL</code>:</p>
408    /// <ul>
409    /// <li>
410    /// <p>For environment type <code>LINUX_CONTAINER</code>, you can use up to 4 GiB memory and 2 vCPUs for builds.</p></li>
411    /// <li>
412    /// <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>
413    /// <li>
414    /// <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>
415    /// </ul>
416    /// <p>If you use <code>BUILD_GENERAL1_LARGE</code>:</p>
417    /// <ul>
418    /// <li>
419    /// <p>For environment type <code>LINUX_CONTAINER</code>, you can use up to 16 GiB memory and 8 vCPUs for builds.</p></li>
420    /// <li>
421    /// <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>
422    /// <li>
423    /// <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>
424    /// </ul>
425    /// <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>
426    pub fn compute_type(mut self, input: crate::types::ComputeType) -> Self {
427        self.compute_type = ::std::option::Option::Some(input);
428        self
429    }
430    /// <p>Information about the compute resources the compute fleet uses. Available values include:</p>
431    /// <ul>
432    /// <li>
433    /// <p><code>ATTRIBUTE_BASED_COMPUTE</code>: Specify the amount of vCPUs, memory, disk space, and the type of machine.</p><note>
434    /// <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>
435    /// </note></li>
436    /// <li>
437    /// <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>
438    /// <li>
439    /// <p><code>BUILD_GENERAL1_SMALL</code>: Use up to 4 GiB memory and 2 vCPUs for builds.</p></li>
440    /// <li>
441    /// <p><code>BUILD_GENERAL1_MEDIUM</code>: Use up to 8 GiB memory and 4 vCPUs for builds.</p></li>
442    /// <li>
443    /// <p><code>BUILD_GENERAL1_LARGE</code>: Use up to 16 GiB memory and 8 vCPUs for builds, depending on your environment type.</p></li>
444    /// <li>
445    /// <p><code>BUILD_GENERAL1_XLARGE</code>: Use up to 72 GiB memory and 36 vCPUs for builds, depending on your environment type.</p></li>
446    /// <li>
447    /// <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>
448    /// <li>
449    /// <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>
450    /// <li>
451    /// <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>
452    /// <li>
453    /// <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>
454    /// <li>
455    /// <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>
456    /// <li>
457    /// <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>
458    /// </ul>
459    /// <p>If you use <code>BUILD_GENERAL1_SMALL</code>:</p>
460    /// <ul>
461    /// <li>
462    /// <p>For environment type <code>LINUX_CONTAINER</code>, you can use up to 4 GiB memory and 2 vCPUs for builds.</p></li>
463    /// <li>
464    /// <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>
465    /// <li>
466    /// <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>
467    /// </ul>
468    /// <p>If you use <code>BUILD_GENERAL1_LARGE</code>:</p>
469    /// <ul>
470    /// <li>
471    /// <p>For environment type <code>LINUX_CONTAINER</code>, you can use up to 16 GiB memory and 8 vCPUs for builds.</p></li>
472    /// <li>
473    /// <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>
474    /// <li>
475    /// <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>
476    /// </ul>
477    /// <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>
478    pub fn set_compute_type(mut self, input: ::std::option::Option<crate::types::ComputeType>) -> Self {
479        self.compute_type = input;
480        self
481    }
482    /// <p>Information about the compute resources the compute fleet uses. Available values include:</p>
483    /// <ul>
484    /// <li>
485    /// <p><code>ATTRIBUTE_BASED_COMPUTE</code>: Specify the amount of vCPUs, memory, disk space, and the type of machine.</p><note>
486    /// <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>
487    /// </note></li>
488    /// <li>
489    /// <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>
490    /// <li>
491    /// <p><code>BUILD_GENERAL1_SMALL</code>: Use up to 4 GiB memory and 2 vCPUs for builds.</p></li>
492    /// <li>
493    /// <p><code>BUILD_GENERAL1_MEDIUM</code>: Use up to 8 GiB memory and 4 vCPUs for builds.</p></li>
494    /// <li>
495    /// <p><code>BUILD_GENERAL1_LARGE</code>: Use up to 16 GiB memory and 8 vCPUs for builds, depending on your environment type.</p></li>
496    /// <li>
497    /// <p><code>BUILD_GENERAL1_XLARGE</code>: Use up to 72 GiB memory and 36 vCPUs for builds, depending on your environment type.</p></li>
498    /// <li>
499    /// <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>
500    /// <li>
501    /// <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>
502    /// <li>
503    /// <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>
504    /// <li>
505    /// <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>
506    /// <li>
507    /// <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>
508    /// <li>
509    /// <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>
510    /// </ul>
511    /// <p>If you use <code>BUILD_GENERAL1_SMALL</code>:</p>
512    /// <ul>
513    /// <li>
514    /// <p>For environment type <code>LINUX_CONTAINER</code>, you can use up to 4 GiB memory and 2 vCPUs for builds.</p></li>
515    /// <li>
516    /// <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>
517    /// <li>
518    /// <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>
519    /// </ul>
520    /// <p>If you use <code>BUILD_GENERAL1_LARGE</code>:</p>
521    /// <ul>
522    /// <li>
523    /// <p>For environment type <code>LINUX_CONTAINER</code>, you can use up to 16 GiB memory and 8 vCPUs for builds.</p></li>
524    /// <li>
525    /// <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>
526    /// <li>
527    /// <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>
528    /// </ul>
529    /// <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>
530    pub fn get_compute_type(&self) -> &::std::option::Option<crate::types::ComputeType> {
531        &self.compute_type
532    }
533    /// <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>
534    pub fn compute_configuration(mut self, input: crate::types::ComputeConfiguration) -> Self {
535        self.compute_configuration = ::std::option::Option::Some(input);
536        self
537    }
538    /// <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>
539    pub fn set_compute_configuration(mut self, input: ::std::option::Option<crate::types::ComputeConfiguration>) -> Self {
540        self.compute_configuration = input;
541        self
542    }
543    /// <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>
544    pub fn get_compute_configuration(&self) -> &::std::option::Option<crate::types::ComputeConfiguration> {
545        &self.compute_configuration
546    }
547    /// <p>The scaling configuration of the compute fleet.</p>
548    pub fn scaling_configuration(mut self, input: crate::types::ScalingConfigurationInput) -> Self {
549        self.scaling_configuration = ::std::option::Option::Some(input);
550        self
551    }
552    /// <p>The scaling configuration of the compute fleet.</p>
553    pub fn set_scaling_configuration(mut self, input: ::std::option::Option<crate::types::ScalingConfigurationInput>) -> Self {
554        self.scaling_configuration = input;
555        self
556    }
557    /// <p>The scaling configuration of the compute fleet.</p>
558    pub fn get_scaling_configuration(&self) -> &::std::option::Option<crate::types::ScalingConfigurationInput> {
559        &self.scaling_configuration
560    }
561    /// <p>The compute fleet overflow behavior.</p>
562    /// <ul>
563    /// <li>
564    /// <p>For overflow behavior <code>QUEUE</code>, your overflow builds need to wait on the existing fleet instance to become available.</p></li>
565    /// <li>
566    /// <p>For overflow behavior <code>ON_DEMAND</code>, your overflow builds run on CodeBuild on-demand.</p><note>
567    /// <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>
568    /// </note></li>
569    /// </ul>
570    pub fn overflow_behavior(mut self, input: crate::types::FleetOverflowBehavior) -> Self {
571        self.overflow_behavior = ::std::option::Option::Some(input);
572        self
573    }
574    /// <p>The compute fleet overflow behavior.</p>
575    /// <ul>
576    /// <li>
577    /// <p>For overflow behavior <code>QUEUE</code>, your overflow builds need to wait on the existing fleet instance to become available.</p></li>
578    /// <li>
579    /// <p>For overflow behavior <code>ON_DEMAND</code>, your overflow builds run on CodeBuild on-demand.</p><note>
580    /// <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>
581    /// </note></li>
582    /// </ul>
583    pub fn set_overflow_behavior(mut self, input: ::std::option::Option<crate::types::FleetOverflowBehavior>) -> Self {
584        self.overflow_behavior = input;
585        self
586    }
587    /// <p>The compute fleet overflow behavior.</p>
588    /// <ul>
589    /// <li>
590    /// <p>For overflow behavior <code>QUEUE</code>, your overflow builds need to wait on the existing fleet instance to become available.</p></li>
591    /// <li>
592    /// <p>For overflow behavior <code>ON_DEMAND</code>, your overflow builds run on CodeBuild on-demand.</p><note>
593    /// <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>
594    /// </note></li>
595    /// </ul>
596    pub fn get_overflow_behavior(&self) -> &::std::option::Option<crate::types::FleetOverflowBehavior> {
597        &self.overflow_behavior
598    }
599    /// <p>Information about the VPC configuration that CodeBuild accesses.</p>
600    pub fn vpc_config(mut self, input: crate::types::VpcConfig) -> Self {
601        self.vpc_config = ::std::option::Option::Some(input);
602        self
603    }
604    /// <p>Information about the VPC configuration that CodeBuild accesses.</p>
605    pub fn set_vpc_config(mut self, input: ::std::option::Option<crate::types::VpcConfig>) -> Self {
606        self.vpc_config = input;
607        self
608    }
609    /// <p>Information about the VPC configuration that CodeBuild accesses.</p>
610    pub fn get_vpc_config(&self) -> &::std::option::Option<crate::types::VpcConfig> {
611        &self.vpc_config
612    }
613    /// <p>The proxy configuration of the compute fleet.</p>
614    pub fn proxy_configuration(mut self, input: crate::types::ProxyConfiguration) -> Self {
615        self.proxy_configuration = ::std::option::Option::Some(input);
616        self
617    }
618    /// <p>The proxy configuration of the compute fleet.</p>
619    pub fn set_proxy_configuration(mut self, input: ::std::option::Option<crate::types::ProxyConfiguration>) -> Self {
620        self.proxy_configuration = input;
621        self
622    }
623    /// <p>The proxy configuration of the compute fleet.</p>
624    pub fn get_proxy_configuration(&self) -> &::std::option::Option<crate::types::ProxyConfiguration> {
625        &self.proxy_configuration
626    }
627    /// <p>The Amazon Machine Image (AMI) of the compute fleet.</p>
628    pub fn image_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
629        self.image_id = ::std::option::Option::Some(input.into());
630        self
631    }
632    /// <p>The Amazon Machine Image (AMI) of the compute fleet.</p>
633    pub fn set_image_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
634        self.image_id = input;
635        self
636    }
637    /// <p>The Amazon Machine Image (AMI) of the compute fleet.</p>
638    pub fn get_image_id(&self) -> &::std::option::Option<::std::string::String> {
639        &self.image_id
640    }
641    /// <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>
642    pub fn fleet_service_role(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
643        self.fleet_service_role = ::std::option::Option::Some(input.into());
644        self
645    }
646    /// <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>
647    pub fn set_fleet_service_role(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
648        self.fleet_service_role = input;
649        self
650    }
651    /// <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>
652    pub fn get_fleet_service_role(&self) -> &::std::option::Option<::std::string::String> {
653        &self.fleet_service_role
654    }
655    /// Appends an item to `tags`.
656    ///
657    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
658    ///
659    /// <p>A list of tag key and value pairs associated with this compute fleet.</p>
660    /// <p>These tags are available for use by Amazon Web Services services that support CodeBuild build project tags.</p>
661    pub fn tags(mut self, input: crate::types::Tag) -> Self {
662        let mut v = self.tags.unwrap_or_default();
663        v.push(input);
664        self.tags = ::std::option::Option::Some(v);
665        self
666    }
667    /// <p>A list of tag key and value pairs associated with this compute fleet.</p>
668    /// <p>These tags are available for use by Amazon Web Services services that support CodeBuild build project tags.</p>
669    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
670        self.tags = input;
671        self
672    }
673    /// <p>A list of tag key and value pairs associated with this compute fleet.</p>
674    /// <p>These tags are available for use by Amazon Web Services services that support CodeBuild build project tags.</p>
675    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
676        &self.tags
677    }
678    /// Consumes the builder and constructs a [`UpdateFleetInput`](crate::operation::update_fleet::UpdateFleetInput).
679    pub fn build(self) -> ::std::result::Result<crate::operation::update_fleet::UpdateFleetInput, ::aws_smithy_types::error::operation::BuildError> {
680        ::std::result::Result::Ok(crate::operation::update_fleet::UpdateFleetInput {
681            arn: self.arn,
682            base_capacity: self.base_capacity,
683            environment_type: self.environment_type,
684            compute_type: self.compute_type,
685            compute_configuration: self.compute_configuration,
686            scaling_configuration: self.scaling_configuration,
687            overflow_behavior: self.overflow_behavior,
688            vpc_config: self.vpc_config,
689            proxy_configuration: self.proxy_configuration,
690            image_id: self.image_id,
691            fleet_service_role: self.fleet_service_role,
692            tags: self.tags,
693        })
694    }
695}