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

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

/*
 * Copyright 2015-2020 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 data volume used in a task definition. For tasks that use Amazon Elastic File System (Amazon EFS) file storage, * specify an efsVolumeConfiguration. For tasks that use a Docker volume, specify a * DockerVolumeConfiguration. For tasks that use a bind mount host volume, specify a host and * optional sourcePath. For more information, see Using Data Volumes in * Tasks. *

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

* The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, and hyphens are allowed. This name * is referenced in the sourceVolume parameter of container definition mountPoints. *

*/ private String name; /** *

* This parameter is specified when you are using bind mount host volumes. The contents of the host * parameter determine whether your bind mount host volume persists on the host container instance and where it is * stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data * volume. However, the data is not guaranteed to persist after the containers associated with it stop running. *

*

* Windows containers can mount whole directories on the same drive as $env:ProgramData. Windows * containers cannot mount directories on a different drive, and mount point cannot be across drives. For example, * you can mount C:\my\path:C:\my\path and D:\:D:\, but not * D:\my\path:C:\my\path or D:\:C:\my\path. *

*/ private HostVolumeProperties host; /** *

* This parameter is specified when you are using Docker volumes. Docker volumes are only supported when you are * using the EC2 launch type. Windows containers only support the use of the local driver. To use bind * mounts, specify the host parameter instead. *

*/ private DockerVolumeConfiguration dockerVolumeConfiguration; /** *

* This parameter is specified when you are using an Amazon Elastic File System file system for task storage. *

*/ private EFSVolumeConfiguration efsVolumeConfiguration; /** *

* The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, and hyphens are allowed. This name * is referenced in the sourceVolume parameter of container definition mountPoints. *

* * @param name * The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, and hyphens are allowed. * This name is referenced in the sourceVolume parameter of container definition * mountPoints. */ public void setName(String name) { this.name = name; } /** *

* The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, and hyphens are allowed. This name * is referenced in the sourceVolume parameter of container definition mountPoints. *

* * @return The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, and hyphens are allowed. * This name is referenced in the sourceVolume parameter of container definition * mountPoints. */ public String getName() { return this.name; } /** *

* The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, and hyphens are allowed. This name * is referenced in the sourceVolume parameter of container definition mountPoints. *

* * @param name * The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, and hyphens are allowed. * This name is referenced in the sourceVolume parameter of container definition * mountPoints. * @return Returns a reference to this object so that method calls can be chained together. */ public Volume withName(String name) { setName(name); return this; } /** *

* This parameter is specified when you are using bind mount host volumes. The contents of the host * parameter determine whether your bind mount host volume persists on the host container instance and where it is * stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data * volume. However, the data is not guaranteed to persist after the containers associated with it stop running. *

*

* Windows containers can mount whole directories on the same drive as $env:ProgramData. Windows * containers cannot mount directories on a different drive, and mount point cannot be across drives. For example, * you can mount C:\my\path:C:\my\path and D:\:D:\, but not * D:\my\path:C:\my\path or D:\:C:\my\path. *

* * @param host * This parameter is specified when you are using bind mount host volumes. The contents of the * host parameter determine whether your bind mount host volume persists on the host container * instance and where it is stored. If the host parameter is empty, then the Docker daemon * assigns a host path for your data volume. However, the data is not guaranteed to persist after the * containers associated with it stop running.

*

* Windows containers can mount whole directories on the same drive as $env:ProgramData. Windows * containers cannot mount directories on a different drive, and mount point cannot be across drives. For * example, you can mount C:\my\path:C:\my\path and D:\:D:\, but not * D:\my\path:C:\my\path or D:\:C:\my\path. */ public void setHost(HostVolumeProperties host) { this.host = host; } /** *

* This parameter is specified when you are using bind mount host volumes. The contents of the host * parameter determine whether your bind mount host volume persists on the host container instance and where it is * stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data * volume. However, the data is not guaranteed to persist after the containers associated with it stop running. *

*

* Windows containers can mount whole directories on the same drive as $env:ProgramData. Windows * containers cannot mount directories on a different drive, and mount point cannot be across drives. For example, * you can mount C:\my\path:C:\my\path and D:\:D:\, but not * D:\my\path:C:\my\path or D:\:C:\my\path. *

* * @return This parameter is specified when you are using bind mount host volumes. The contents of the * host parameter determine whether your bind mount host volume persists on the host container * instance and where it is stored. If the host parameter is empty, then the Docker daemon * assigns a host path for your data volume. However, the data is not guaranteed to persist after the * containers associated with it stop running.

*

* Windows containers can mount whole directories on the same drive as $env:ProgramData. * Windows containers cannot mount directories on a different drive, and mount point cannot be across * drives. For example, you can mount C:\my\path:C:\my\path and D:\:D:\, but not * D:\my\path:C:\my\path or D:\:C:\my\path. */ public HostVolumeProperties getHost() { return this.host; } /** *

* This parameter is specified when you are using bind mount host volumes. The contents of the host * parameter determine whether your bind mount host volume persists on the host container instance and where it is * stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data * volume. However, the data is not guaranteed to persist after the containers associated with it stop running. *

*

* Windows containers can mount whole directories on the same drive as $env:ProgramData. Windows * containers cannot mount directories on a different drive, and mount point cannot be across drives. For example, * you can mount C:\my\path:C:\my\path and D:\:D:\, but not * D:\my\path:C:\my\path or D:\:C:\my\path. *

* * @param host * This parameter is specified when you are using bind mount host volumes. The contents of the * host parameter determine whether your bind mount host volume persists on the host container * instance and where it is stored. If the host parameter is empty, then the Docker daemon * assigns a host path for your data volume. However, the data is not guaranteed to persist after the * containers associated with it stop running.

*

* Windows containers can mount whole directories on the same drive as $env:ProgramData. Windows * containers cannot mount directories on a different drive, and mount point cannot be across drives. For * example, you can mount C:\my\path:C:\my\path and D:\:D:\, but not * D:\my\path:C:\my\path or D:\:C:\my\path. * @return Returns a reference to this object so that method calls can be chained together. */ public Volume withHost(HostVolumeProperties host) { setHost(host); return this; } /** *

* This parameter is specified when you are using Docker volumes. Docker volumes are only supported when you are * using the EC2 launch type. Windows containers only support the use of the local driver. To use bind * mounts, specify the host parameter instead. *

* * @param dockerVolumeConfiguration * This parameter is specified when you are using Docker volumes. Docker volumes are only supported when you * are using the EC2 launch type. Windows containers only support the use of the local driver. * To use bind mounts, specify the host parameter instead. */ public void setDockerVolumeConfiguration(DockerVolumeConfiguration dockerVolumeConfiguration) { this.dockerVolumeConfiguration = dockerVolumeConfiguration; } /** *

* This parameter is specified when you are using Docker volumes. Docker volumes are only supported when you are * using the EC2 launch type. Windows containers only support the use of the local driver. To use bind * mounts, specify the host parameter instead. *

* * @return This parameter is specified when you are using Docker volumes. Docker volumes are only supported when you * are using the EC2 launch type. Windows containers only support the use of the local driver. * To use bind mounts, specify the host parameter instead. */ public DockerVolumeConfiguration getDockerVolumeConfiguration() { return this.dockerVolumeConfiguration; } /** *

* This parameter is specified when you are using Docker volumes. Docker volumes are only supported when you are * using the EC2 launch type. Windows containers only support the use of the local driver. To use bind * mounts, specify the host parameter instead. *

* * @param dockerVolumeConfiguration * This parameter is specified when you are using Docker volumes. Docker volumes are only supported when you * are using the EC2 launch type. Windows containers only support the use of the local driver. * To use bind mounts, specify the host parameter instead. * @return Returns a reference to this object so that method calls can be chained together. */ public Volume withDockerVolumeConfiguration(DockerVolumeConfiguration dockerVolumeConfiguration) { setDockerVolumeConfiguration(dockerVolumeConfiguration); return this; } /** *

* This parameter is specified when you are using an Amazon Elastic File System file system for task storage. *

* * @param efsVolumeConfiguration * This parameter is specified when you are using an Amazon Elastic File System file system for task storage. */ public void setEfsVolumeConfiguration(EFSVolumeConfiguration efsVolumeConfiguration) { this.efsVolumeConfiguration = efsVolumeConfiguration; } /** *

* This parameter is specified when you are using an Amazon Elastic File System file system for task storage. *

* * @return This parameter is specified when you are using an Amazon Elastic File System file system for task * storage. */ public EFSVolumeConfiguration getEfsVolumeConfiguration() { return this.efsVolumeConfiguration; } /** *

* This parameter is specified when you are using an Amazon Elastic File System file system for task storage. *

* * @param efsVolumeConfiguration * This parameter is specified when you are using an Amazon Elastic File System file system for task storage. * @return Returns a reference to this object so that method calls can be chained together. */ public Volume withEfsVolumeConfiguration(EFSVolumeConfiguration efsVolumeConfiguration) { setEfsVolumeConfiguration(efsVolumeConfiguration); 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 (getName() != null) sb.append("Name: ").append(getName()).append(","); if (getHost() != null) sb.append("Host: ").append(getHost()).append(","); if (getDockerVolumeConfiguration() != null) sb.append("DockerVolumeConfiguration: ").append(getDockerVolumeConfiguration()).append(","); if (getEfsVolumeConfiguration() != null) sb.append("EfsVolumeConfiguration: ").append(getEfsVolumeConfiguration()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof Volume == false) return false; Volume other = (Volume) obj; if (other.getName() == null ^ this.getName() == null) return false; if (other.getName() != null && other.getName().equals(this.getName()) == false) return false; if (other.getHost() == null ^ this.getHost() == null) return false; if (other.getHost() != null && other.getHost().equals(this.getHost()) == false) return false; if (other.getDockerVolumeConfiguration() == null ^ this.getDockerVolumeConfiguration() == null) return false; if (other.getDockerVolumeConfiguration() != null && other.getDockerVolumeConfiguration().equals(this.getDockerVolumeConfiguration()) == false) return false; if (other.getEfsVolumeConfiguration() == null ^ this.getEfsVolumeConfiguration() == null) return false; if (other.getEfsVolumeConfiguration() != null && other.getEfsVolumeConfiguration().equals(this.getEfsVolumeConfiguration()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getName() == null) ? 0 : getName().hashCode()); hashCode = prime * hashCode + ((getHost() == null) ? 0 : getHost().hashCode()); hashCode = prime * hashCode + ((getDockerVolumeConfiguration() == null) ? 0 : getDockerVolumeConfiguration().hashCode()); hashCode = prime * hashCode + ((getEfsVolumeConfiguration() == null) ? 0 : getEfsVolumeConfiguration().hashCode()); return hashCode; } @Override public Volume clone() { try { return (Volume) 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.VolumeMarshaller.getInstance().marshall(this, protocolMarshaller); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy