All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.ecs.model.LinuxParameters Maven / Gradle / Ivy

Go to download

The AWS Java SDK for the Amazon EC2 Container Service holds the client classes that are used for communicating with the Amazon EC2 Container Service

There is a newer version: 2.30.1
Show newest version
/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */

package software.amazon.awssdk.services.ecs.model;

import java.io.Serializable;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.ListTrait;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructList;
import software.amazon.awssdk.core.util.SdkAutoConstructList;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;

/**
 * 

* Linux-specific options that are applied to the container, such as Linux KernelCapabilities. *

*/ @Generated("software.amazon.awssdk:codegen") public final class LinuxParameters implements SdkPojo, Serializable, ToCopyableBuilder { private static final SdkField CAPABILITIES_FIELD = SdkField . builder(MarshallingType.SDK_POJO).memberName("capabilities") .getter(getter(LinuxParameters::capabilities)).setter(setter(Builder::capabilities)) .constructor(KernelCapabilities::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("capabilities").build()).build(); private static final SdkField> DEVICES_FIELD = SdkField .> builder(MarshallingType.LIST) .memberName("devices") .getter(getter(LinuxParameters::devices)) .setter(setter(Builder::devices)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("devices").build(), ListTrait .builder() .memberLocationName(null) .memberFieldInfo( SdkField. builder(MarshallingType.SDK_POJO) .constructor(Device::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD) .locationName("member").build()).build()).build()).build(); private static final SdkField INIT_PROCESS_ENABLED_FIELD = SdkField. builder(MarshallingType.BOOLEAN) .memberName("initProcessEnabled").getter(getter(LinuxParameters::initProcessEnabled)) .setter(setter(Builder::initProcessEnabled)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("initProcessEnabled").build()) .build(); private static final SdkField SHARED_MEMORY_SIZE_FIELD = SdkField. builder(MarshallingType.INTEGER) .memberName("sharedMemorySize").getter(getter(LinuxParameters::sharedMemorySize)) .setter(setter(Builder::sharedMemorySize)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("sharedMemorySize").build()).build(); private static final SdkField> TMPFS_FIELD = SdkField .> builder(MarshallingType.LIST) .memberName("tmpfs") .getter(getter(LinuxParameters::tmpfs)) .setter(setter(Builder::tmpfs)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("tmpfs").build(), ListTrait .builder() .memberLocationName(null) .memberFieldInfo( SdkField. builder(MarshallingType.SDK_POJO) .constructor(Tmpfs::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD) .locationName("member").build()).build()).build()).build(); private static final SdkField MAX_SWAP_FIELD = SdkField. builder(MarshallingType.INTEGER) .memberName("maxSwap").getter(getter(LinuxParameters::maxSwap)).setter(setter(Builder::maxSwap)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("maxSwap").build()).build(); private static final SdkField SWAPPINESS_FIELD = SdkField. builder(MarshallingType.INTEGER) .memberName("swappiness").getter(getter(LinuxParameters::swappiness)).setter(setter(Builder::swappiness)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("swappiness").build()).build(); private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(CAPABILITIES_FIELD, DEVICES_FIELD, INIT_PROCESS_ENABLED_FIELD, SHARED_MEMORY_SIZE_FIELD, TMPFS_FIELD, MAX_SWAP_FIELD, SWAPPINESS_FIELD)); private static final long serialVersionUID = 1L; private final KernelCapabilities capabilities; private final List devices; private final Boolean initProcessEnabled; private final Integer sharedMemorySize; private final List tmpfs; private final Integer maxSwap; private final Integer swappiness; private LinuxParameters(BuilderImpl builder) { this.capabilities = builder.capabilities; this.devices = builder.devices; this.initProcessEnabled = builder.initProcessEnabled; this.sharedMemorySize = builder.sharedMemorySize; this.tmpfs = builder.tmpfs; this.maxSwap = builder.maxSwap; this.swappiness = builder.swappiness; } /** *

* The Linux capabilities for the container that are added to or dropped from the default configuration provided by * Docker. *

* *

* For tasks that use the Fargate launch type, capabilities is supported for all platform versions but * the add parameter is only supported if using platform version 1.4.0 or later. *

*
* * @return The Linux capabilities for the container that are added to or dropped from the default configuration * provided by Docker.

*

* For tasks that use the Fargate launch type, capabilities is supported for all platform * versions but the add parameter is only supported if using platform version 1.4.0 or later. *

*/ public final KernelCapabilities capabilities() { return capabilities; } /** * For responses, this returns true if the service returned a value for the Devices property. This DOES NOT check * that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). This is * useful because the SDK will never return a null collection or map, but you may need to differentiate between the * service returning nothing (or null) and the service returning an empty collection or map. For requests, this * returns true if a value for the property was specified in the request builder, and false if a value was not * specified. */ public final boolean hasDevices() { return devices != null && !(devices instanceof SdkAutoConstructList); } /** *

* Any host devices to expose to the container. This parameter maps to Devices in the Create a container section of the * Docker Remote API and the --device option to * docker run. *

* *

* If you're using tasks that use the Fargate launch type, the devices parameter isn't supported. *

*
*

* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

*

* This method will never return null. If you would like to know whether the service returned this field (so that * you can differentiate between null and empty), you can use the {@link #hasDevices} method. *

* * @return Any host devices to expose to the container. This parameter maps to Devices in the Create a container section * of the Docker Remote API and the * --device option to docker run.

*

* If you're using tasks that use the Fargate launch type, the devices parameter isn't * supported. *

*/ public final List devices() { return devices; } /** *

* Run an init process inside the container that forwards signals and reaps processes. This parameter * maps to the --init option to docker run. This parameter * requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote * API version on your container instance, log in to your container instance and run the following command: * sudo docker version --format '{{.Server.APIVersion}}' *

* * @return Run an init process inside the container that forwards signals and reaps processes. This * parameter maps to the --init option to docker run. This * parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check * the Docker Remote API version on your container instance, log in to your container instance and run the * following command: sudo docker version --format '{{.Server.APIVersion}}' */ public final Boolean initProcessEnabled() { return initProcessEnabled; } /** *

* The value for the size (in MiB) of the /dev/shm volume. This parameter maps to the * --shm-size option to docker run. *

* *

* If you are using tasks that use the Fargate launch type, the sharedMemorySize parameter is not * supported. *

*
* * @return The value for the size (in MiB) of the /dev/shm volume. This parameter maps to the * --shm-size option to docker run.

*

* If you are using tasks that use the Fargate launch type, the sharedMemorySize parameter is * not supported. *

*/ public final Integer sharedMemorySize() { return sharedMemorySize; } /** * For responses, this returns true if the service returned a value for the Tmpfs property. This DOES NOT check that * the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). This is useful * because the SDK will never return a null collection or map, but you may need to differentiate between the service * returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true * if a value for the property was specified in the request builder, and false if a value was not specified. */ public final boolean hasTmpfs() { return tmpfs != null && !(tmpfs instanceof SdkAutoConstructList); } /** *

* The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the * --tmpfs option to docker run. *

* *

* If you're using tasks that use the Fargate launch type, the tmpfs parameter isn't supported. *

*
*

* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

*

* This method will never return null. If you would like to know whether the service returned this field (so that * you can differentiate between null and empty), you can use the {@link #hasTmpfs} method. *

* * @return The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the * --tmpfs option to docker run.

*

* If you're using tasks that use the Fargate launch type, the tmpfs parameter isn't supported. *

*/ public final List tmpfs() { return tmpfs; } /** *

* The total amount of swap memory (in MiB) a container can use. This parameter will be translated to the * --memory-swap option to docker run where the value would * be the sum of the container memory plus the maxSwap value. *

*

* If a maxSwap value of 0 is specified, the container will not use swap. Accepted values * are 0 or any positive integer. If the maxSwap parameter is omitted, the container will * use the swap configuration for the container instance it is running on. A maxSwap value must be set * for the swappiness parameter to be used. *

* *

* If you're using tasks that use the Fargate launch type, the maxSwap parameter isn't supported. *

*
* * @return The total amount of swap memory (in MiB) a container can use. This parameter will be translated to the * --memory-swap option to docker run where the * value would be the sum of the container memory plus the maxSwap value.

*

* If a maxSwap value of 0 is specified, the container will not use swap. Accepted * values are 0 or any positive integer. If the maxSwap parameter is omitted, the * container will use the swap configuration for the container instance it is running on. A * maxSwap value must be set for the swappiness parameter to be used. *

* *

* If you're using tasks that use the Fargate launch type, the maxSwap parameter isn't * supported. *

*/ public final Integer maxSwap() { return maxSwap; } /** *

* This allows you to tune a container's memory swappiness behavior. A swappiness value of * 0 will cause swapping to not happen unless absolutely necessary. A swappiness value of * 100 will cause pages to be swapped very aggressively. Accepted values are whole numbers between * 0 and 100. If the swappiness parameter is not specified, a default value * of 60 is used. If a value is not specified for maxSwap then this parameter is ignored. * This parameter maps to the --memory-swappiness option to docker run. *

* *

* If you're using tasks that use the Fargate launch type, the swappiness parameter isn't supported. *

*
* * @return This allows you to tune a container's memory swappiness behavior. A swappiness value of * 0 will cause swapping to not happen unless absolutely necessary. A swappiness * value of 100 will cause pages to be swapped very aggressively. Accepted values are whole * numbers between 0 and 100. If the swappiness parameter is not * specified, a default value of 60 is used. If a value is not specified for * maxSwap then this parameter is ignored. This parameter maps to the * --memory-swappiness option to docker run.

*

* If you're using tasks that use the Fargate launch type, the swappiness parameter isn't * supported. *

*/ public final Integer swappiness() { return swappiness; } @Override public Builder toBuilder() { return new BuilderImpl(this); } public static Builder builder() { return new BuilderImpl(); } public static Class serializableBuilderClass() { return BuilderImpl.class; } @Override public final int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + Objects.hashCode(capabilities()); hashCode = 31 * hashCode + Objects.hashCode(hasDevices() ? devices() : null); hashCode = 31 * hashCode + Objects.hashCode(initProcessEnabled()); hashCode = 31 * hashCode + Objects.hashCode(sharedMemorySize()); hashCode = 31 * hashCode + Objects.hashCode(hasTmpfs() ? tmpfs() : null); hashCode = 31 * hashCode + Objects.hashCode(maxSwap()); hashCode = 31 * hashCode + Objects.hashCode(swappiness()); return hashCode; } @Override public final boolean equals(Object obj) { return equalsBySdkFields(obj); } @Override public final boolean equalsBySdkFields(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof LinuxParameters)) { return false; } LinuxParameters other = (LinuxParameters) obj; return Objects.equals(capabilities(), other.capabilities()) && hasDevices() == other.hasDevices() && Objects.equals(devices(), other.devices()) && Objects.equals(initProcessEnabled(), other.initProcessEnabled()) && Objects.equals(sharedMemorySize(), other.sharedMemorySize()) && hasTmpfs() == other.hasTmpfs() && Objects.equals(tmpfs(), other.tmpfs()) && Objects.equals(maxSwap(), other.maxSwap()) && Objects.equals(swappiness(), other.swappiness()); } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. */ @Override public final String toString() { return ToString.builder("LinuxParameters").add("Capabilities", capabilities()) .add("Devices", hasDevices() ? devices() : null).add("InitProcessEnabled", initProcessEnabled()) .add("SharedMemorySize", sharedMemorySize()).add("Tmpfs", hasTmpfs() ? tmpfs() : null).add("MaxSwap", maxSwap()) .add("Swappiness", swappiness()).build(); } public final Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "capabilities": return Optional.ofNullable(clazz.cast(capabilities())); case "devices": return Optional.ofNullable(clazz.cast(devices())); case "initProcessEnabled": return Optional.ofNullable(clazz.cast(initProcessEnabled())); case "sharedMemorySize": return Optional.ofNullable(clazz.cast(sharedMemorySize())); case "tmpfs": return Optional.ofNullable(clazz.cast(tmpfs())); case "maxSwap": return Optional.ofNullable(clazz.cast(maxSwap())); case "swappiness": return Optional.ofNullable(clazz.cast(swappiness())); default: return Optional.empty(); } } @Override public final List> sdkFields() { return SDK_FIELDS; } private static Function getter(Function g) { return obj -> g.apply((LinuxParameters) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends SdkPojo, CopyableBuilder { /** *

* The Linux capabilities for the container that are added to or dropped from the default configuration provided * by Docker. *

* *

* For tasks that use the Fargate launch type, capabilities is supported for all platform versions * but the add parameter is only supported if using platform version 1.4.0 or later. *

*
* * @param capabilities * The Linux capabilities for the container that are added to or dropped from the default configuration * provided by Docker.

*

* For tasks that use the Fargate launch type, capabilities is supported for all platform * versions but the add parameter is only supported if using platform version 1.4.0 or * later. *

* @return Returns a reference to this object so that method calls can be chained together. */ Builder capabilities(KernelCapabilities capabilities); /** *

* The Linux capabilities for the container that are added to or dropped from the default configuration provided * by Docker. *

* *

* For tasks that use the Fargate launch type, capabilities is supported for all platform versions * but the add parameter is only supported if using platform version 1.4.0 or later. *

*
This is a convenience method that creates an instance of the {@link KernelCapabilities.Builder} * avoiding the need to create one manually via {@link KernelCapabilities#builder()}. * *

* When the {@link Consumer} completes, {@link KernelCapabilities.Builder#build()} is called immediately and its * result is passed to {@link #capabilities(KernelCapabilities)}. * * @param capabilities * a consumer that will call methods on {@link KernelCapabilities.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #capabilities(KernelCapabilities) */ default Builder capabilities(Consumer capabilities) { return capabilities(KernelCapabilities.builder().applyMutation(capabilities).build()); } /** *

* Any host devices to expose to the container. This parameter maps to Devices in the Create a container section of * the Docker Remote API and the --device * option to docker run. *

* *

* If you're using tasks that use the Fargate launch type, the devices parameter isn't supported. *

*
* * @param devices * Any host devices to expose to the container. This parameter maps to Devices in the Create a container * section of the Docker Remote API and the * --device option to docker run.

*

* If you're using tasks that use the Fargate launch type, the devices parameter isn't * supported. *

* @return Returns a reference to this object so that method calls can be chained together. */ Builder devices(Collection devices); /** *

* Any host devices to expose to the container. This parameter maps to Devices in the Create a container section of * the Docker Remote API and the --device * option to docker run. *

* *

* If you're using tasks that use the Fargate launch type, the devices parameter isn't supported. *

*
* * @param devices * Any host devices to expose to the container. This parameter maps to Devices in the Create a container * section of the Docker Remote API and the * --device option to docker run.

*

* If you're using tasks that use the Fargate launch type, the devices parameter isn't * supported. *

* @return Returns a reference to this object so that method calls can be chained together. */ Builder devices(Device... devices); /** *

* Any host devices to expose to the container. This parameter maps to Devices in the Create a container section of * the Docker Remote API and the --device * option to docker run. *

* *

* If you're using tasks that use the Fargate launch type, the devices parameter isn't supported. *

*
This is a convenience method that creates an instance of the * {@link software.amazon.awssdk.services.ecs.model.Device.Builder} avoiding the need to create one manually via * {@link software.amazon.awssdk.services.ecs.model.Device#builder()}. * *

* When the {@link Consumer} completes, {@link software.amazon.awssdk.services.ecs.model.Device.Builder#build()} * is called immediately and its result is passed to {@link #devices(List)}. * * @param devices * a consumer that will call methods on {@link software.amazon.awssdk.services.ecs.model.Device.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #devices(java.util.Collection) */ Builder devices(Consumer... devices); /** *

* Run an init process inside the container that forwards signals and reaps processes. This * parameter maps to the --init option to docker run. This parameter * requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker * Remote API version on your container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}' *

* * @param initProcessEnabled * Run an init process inside the container that forwards signals and reaps processes. This * parameter maps to the --init option to docker run. This * parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To * check the Docker Remote API version on your container instance, log in to your container instance and * run the following command: sudo docker version --format '{{.Server.APIVersion}}' * @return Returns a reference to this object so that method calls can be chained together. */ Builder initProcessEnabled(Boolean initProcessEnabled); /** *

* The value for the size (in MiB) of the /dev/shm volume. This parameter maps to the * --shm-size option to docker run. *

* *

* If you are using tasks that use the Fargate launch type, the sharedMemorySize parameter is not * supported. *

*
* * @param sharedMemorySize * The value for the size (in MiB) of the /dev/shm volume. This parameter maps to the * --shm-size option to docker run.

*

* If you are using tasks that use the Fargate launch type, the sharedMemorySize parameter * is not supported. *

* @return Returns a reference to this object so that method calls can be chained together. */ Builder sharedMemorySize(Integer sharedMemorySize); /** *

* The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the * --tmpfs option to docker run. *

* *

* If you're using tasks that use the Fargate launch type, the tmpfs parameter isn't supported. *

*
* * @param tmpfs * The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the * --tmpfs option to docker run.

*

* If you're using tasks that use the Fargate launch type, the tmpfs parameter isn't * supported. *

* @return Returns a reference to this object so that method calls can be chained together. */ Builder tmpfs(Collection tmpfs); /** *

* The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the * --tmpfs option to docker run. *

* *

* If you're using tasks that use the Fargate launch type, the tmpfs parameter isn't supported. *

*
* * @param tmpfs * The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the * --tmpfs option to docker run.

*

* If you're using tasks that use the Fargate launch type, the tmpfs parameter isn't * supported. *

* @return Returns a reference to this object so that method calls can be chained together. */ Builder tmpfs(Tmpfs... tmpfs); /** *

* The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the * --tmpfs option to docker run. *

* *

* If you're using tasks that use the Fargate launch type, the tmpfs parameter isn't supported. *

*
This is a convenience method that creates an instance of the * {@link software.amazon.awssdk.services.ecs.model.Tmpfs.Builder} avoiding the need to create one manually via * {@link software.amazon.awssdk.services.ecs.model.Tmpfs#builder()}. * *

* When the {@link Consumer} completes, {@link software.amazon.awssdk.services.ecs.model.Tmpfs.Builder#build()} * is called immediately and its result is passed to {@link #tmpfs(List)}. * * @param tmpfs * a consumer that will call methods on {@link software.amazon.awssdk.services.ecs.model.Tmpfs.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #tmpfs(java.util.Collection) */ Builder tmpfs(Consumer... tmpfs); /** *

* The total amount of swap memory (in MiB) a container can use. This parameter will be translated to the * --memory-swap option to docker run where the value * would be the sum of the container memory plus the maxSwap value. *

*

* If a maxSwap value of 0 is specified, the container will not use swap. Accepted * values are 0 or any positive integer. If the maxSwap parameter is omitted, the * container will use the swap configuration for the container instance it is running on. A maxSwap * value must be set for the swappiness parameter to be used. *

* *

* If you're using tasks that use the Fargate launch type, the maxSwap parameter isn't supported. *

*
* * @param maxSwap * The total amount of swap memory (in MiB) a container can use. This parameter will be translated to the * --memory-swap option to docker run where the * value would be the sum of the container memory plus the maxSwap value.

*

* If a maxSwap value of 0 is specified, the container will not use swap. * Accepted values are 0 or any positive integer. If the maxSwap parameter is * omitted, the container will use the swap configuration for the container instance it is running on. A * maxSwap value must be set for the swappiness parameter to be used. *

* *

* If you're using tasks that use the Fargate launch type, the maxSwap parameter isn't * supported. *

* @return Returns a reference to this object so that method calls can be chained together. */ Builder maxSwap(Integer maxSwap); /** *

* This allows you to tune a container's memory swappiness behavior. A swappiness value of * 0 will cause swapping to not happen unless absolutely necessary. A swappiness value * of 100 will cause pages to be swapped very aggressively. Accepted values are whole numbers * between 0 and 100. If the swappiness parameter is not specified, a * default value of 60 is used. If a value is not specified for maxSwap then this * parameter is ignored. This parameter maps to the --memory-swappiness option to docker run. *

* *

* If you're using tasks that use the Fargate launch type, the swappiness parameter isn't * supported. *

*
* * @param swappiness * This allows you to tune a container's memory swappiness behavior. A swappiness value of * 0 will cause swapping to not happen unless absolutely necessary. A * swappiness value of 100 will cause pages to be swapped very aggressively. * Accepted values are whole numbers between 0 and 100. If the * swappiness parameter is not specified, a default value of 60 is used. If a * value is not specified for maxSwap then this parameter is ignored. This parameter maps to * the --memory-swappiness option to docker run.

*

* If you're using tasks that use the Fargate launch type, the swappiness parameter isn't * supported. *

* @return Returns a reference to this object so that method calls can be chained together. */ Builder swappiness(Integer swappiness); } static final class BuilderImpl implements Builder { private KernelCapabilities capabilities; private List devices = DefaultSdkAutoConstructList.getInstance(); private Boolean initProcessEnabled; private Integer sharedMemorySize; private List tmpfs = DefaultSdkAutoConstructList.getInstance(); private Integer maxSwap; private Integer swappiness; private BuilderImpl() { } private BuilderImpl(LinuxParameters model) { capabilities(model.capabilities); devices(model.devices); initProcessEnabled(model.initProcessEnabled); sharedMemorySize(model.sharedMemorySize); tmpfs(model.tmpfs); maxSwap(model.maxSwap); swappiness(model.swappiness); } public final KernelCapabilities.Builder getCapabilities() { return capabilities != null ? capabilities.toBuilder() : null; } public final void setCapabilities(KernelCapabilities.BuilderImpl capabilities) { this.capabilities = capabilities != null ? capabilities.build() : null; } @Override public final Builder capabilities(KernelCapabilities capabilities) { this.capabilities = capabilities; return this; } public final List getDevices() { List result = DevicesListCopier.copyToBuilder(this.devices); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setDevices(Collection devices) { this.devices = DevicesListCopier.copyFromBuilder(devices); } @Override public final Builder devices(Collection devices) { this.devices = DevicesListCopier.copy(devices); return this; } @Override @SafeVarargs public final Builder devices(Device... devices) { devices(Arrays.asList(devices)); return this; } @Override @SafeVarargs public final Builder devices(Consumer... devices) { devices(Stream.of(devices).map(c -> Device.builder().applyMutation(c).build()).collect(Collectors.toList())); return this; } public final Boolean getInitProcessEnabled() { return initProcessEnabled; } public final void setInitProcessEnabled(Boolean initProcessEnabled) { this.initProcessEnabled = initProcessEnabled; } @Override public final Builder initProcessEnabled(Boolean initProcessEnabled) { this.initProcessEnabled = initProcessEnabled; return this; } public final Integer getSharedMemorySize() { return sharedMemorySize; } public final void setSharedMemorySize(Integer sharedMemorySize) { this.sharedMemorySize = sharedMemorySize; } @Override public final Builder sharedMemorySize(Integer sharedMemorySize) { this.sharedMemorySize = sharedMemorySize; return this; } public final List getTmpfs() { List result = TmpfsListCopier.copyToBuilder(this.tmpfs); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setTmpfs(Collection tmpfs) { this.tmpfs = TmpfsListCopier.copyFromBuilder(tmpfs); } @Override public final Builder tmpfs(Collection tmpfs) { this.tmpfs = TmpfsListCopier.copy(tmpfs); return this; } @Override @SafeVarargs public final Builder tmpfs(Tmpfs... tmpfs) { tmpfs(Arrays.asList(tmpfs)); return this; } @Override @SafeVarargs public final Builder tmpfs(Consumer... tmpfs) { tmpfs(Stream.of(tmpfs).map(c -> Tmpfs.builder().applyMutation(c).build()).collect(Collectors.toList())); return this; } public final Integer getMaxSwap() { return maxSwap; } public final void setMaxSwap(Integer maxSwap) { this.maxSwap = maxSwap; } @Override public final Builder maxSwap(Integer maxSwap) { this.maxSwap = maxSwap; return this; } public final Integer getSwappiness() { return swappiness; } public final void setSwappiness(Integer swappiness) { this.swappiness = swappiness; } @Override public final Builder swappiness(Integer swappiness) { this.swappiness = swappiness; return this; } @Override public LinuxParameters build() { return new LinuxParameters(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy