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

com.amazonaws.services.ecs.model.SystemControl Maven / Gradle / Ivy

/*
 * Copyright 2019-2024 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 com.amazonaws.services.ecs.model;

import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.protocol.StructuredPojo;
import com.amazonaws.protocol.ProtocolMarshaller;

/**
 * 

* A list of namespaced kernel parameters to set in the container. This parameter maps to Sysctls in the Create a container section of the Docker Remote API and the --sysctl option to docker run. For example, you can * configure net.ipv4.tcp_keepalive_time setting to maintain longer lived connections. *

*

* We don't recommend that you specify network-related systemControls parameters for multiple containers in * a single task that also uses either the awsvpc or host network mode. Doing this has the * following disadvantages: *

*
    *
  • *

    * For tasks that use the awsvpc network mode including Fargate, if you set systemControls for * any container, it applies to all containers in the task. If you set different systemControls for * multiple containers in a single task, the container that's started last determines which systemControls * take effect. *

    *
  • *
  • *

    * For tasks that use the host network mode, the network namespace systemControls aren't * supported. *

    *
  • *
*

* If you're setting an IPC resource namespace to use for the containers in the task, the following conditions apply to * your system controls. For more information, see IPC mode. *

*
    *
  • *

    * For tasks that use the host IPC mode, IPC namespace systemControls aren't supported. *

    *
  • *
  • *

    * For tasks that use the task IPC mode, IPC namespace systemControls values apply to all * containers within a task. *

    *
  • *
* *

* This parameter is not supported for Windows containers. *

*
*

* This parameter is only supported for tasks that are hosted on Fargate if the tasks are using platform version * 1.4.0 or later (Linux). This isn't supported for Windows containers on Fargate. *

*
* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class SystemControl implements Serializable, Cloneable, StructuredPojo { /** *

* The namespaced kernel parameter to set a value for. *

*/ private String namespace; /** *

* The namespaced kernel parameter to set a value for. *

*

* Valid IPC namespace values: * "kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced" * , and Sysctls that start with "fs.mqueue.*" *

*

* Valid network namespace values: Sysctls that start with "net.*" *

*

* All of these values are supported by Fargate. *

*/ private String value; /** *

* The namespaced kernel parameter to set a value for. *

* * @param namespace * The namespaced kernel parameter to set a value for. */ public void setNamespace(String namespace) { this.namespace = namespace; } /** *

* The namespaced kernel parameter to set a value for. *

* * @return The namespaced kernel parameter to set a value for. */ public String getNamespace() { return this.namespace; } /** *

* The namespaced kernel parameter to set a value for. *

* * @param namespace * The namespaced kernel parameter to set a value for. * @return Returns a reference to this object so that method calls can be chained together. */ public SystemControl withNamespace(String namespace) { setNamespace(namespace); return this; } /** *

* The namespaced kernel parameter to set a value for. *

*

* Valid IPC namespace values: * "kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced" * , and Sysctls that start with "fs.mqueue.*" *

*

* Valid network namespace values: Sysctls that start with "net.*" *

*

* All of these values are supported by Fargate. *

* * @param value * The namespaced kernel parameter to set a value for.

*

* Valid IPC namespace values: * "kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced" * , and Sysctls that start with "fs.mqueue.*" *

*

* Valid network namespace values: Sysctls that start with "net.*" *

*

* All of these values are supported by Fargate. */ public void setValue(String value) { this.value = value; } /** *

* The namespaced kernel parameter to set a value for. *

*

* Valid IPC namespace values: * "kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced" * , and Sysctls that start with "fs.mqueue.*" *

*

* Valid network namespace values: Sysctls that start with "net.*" *

*

* All of these values are supported by Fargate. *

* * @return The namespaced kernel parameter to set a value for.

*

* Valid IPC namespace values: * "kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced" * , and Sysctls that start with "fs.mqueue.*" *

*

* Valid network namespace values: Sysctls that start with "net.*" *

*

* All of these values are supported by Fargate. */ public String getValue() { return this.value; } /** *

* The namespaced kernel parameter to set a value for. *

*

* Valid IPC namespace values: * "kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced" * , and Sysctls that start with "fs.mqueue.*" *

*

* Valid network namespace values: Sysctls that start with "net.*" *

*

* All of these values are supported by Fargate. *

* * @param value * The namespaced kernel parameter to set a value for.

*

* Valid IPC namespace values: * "kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced" * , and Sysctls that start with "fs.mqueue.*" *

*

* Valid network namespace values: Sysctls that start with "net.*" *

*

* All of these values are supported by Fargate. * @return Returns a reference to this object so that method calls can be chained together. */ public SystemControl withValue(String value) { setValue(value); return this; } /** * 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. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getNamespace() != null) sb.append("Namespace: ").append(getNamespace()).append(","); if (getValue() != null) sb.append("Value: ").append(getValue()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof SystemControl == false) return false; SystemControl other = (SystemControl) obj; if (other.getNamespace() == null ^ this.getNamespace() == null) return false; if (other.getNamespace() != null && other.getNamespace().equals(this.getNamespace()) == false) return false; if (other.getValue() == null ^ this.getValue() == null) return false; if (other.getValue() != null && other.getValue().equals(this.getValue()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getNamespace() == null) ? 0 : getNamespace().hashCode()); hashCode = prime * hashCode + ((getValue() == null) ? 0 : getValue().hashCode()); return hashCode; } @Override public SystemControl clone() { try { return (SystemControl) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.ecs.model.transform.SystemControlMarshaller.getInstance().marshall(this, protocolMarshaller); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy