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