/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Batch { namespace Model { /** *

A data volume that's used in a job's container properties.

See * Also:

AWS API * Reference

*/ class Volume { public: AWS_BATCH_API Volume(); AWS_BATCH_API Volume(Aws::Utils::Json::JsonView jsonValue); AWS_BATCH_API Volume& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_BATCH_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The contents of the host parameter determine whether your data * volume persists on the host container instance and where it's stored. If the * host parameter is empty, then the Docker daemon assigns a host path for your * data volume. However, the data isn't guaranteed to persist after the containers * that are associated with it stop running.

This parameter isn't * applicable to jobs that are running on Fargate resources and shouldn't be * provided.

*/ inline const Host& GetHost() const{ return m_host; } /** *

The contents of the host parameter determine whether your data * volume persists on the host container instance and where it's stored. If the * host parameter is empty, then the Docker daemon assigns a host path for your * data volume. However, the data isn't guaranteed to persist after the containers * that are associated with it stop running.

This parameter isn't * applicable to jobs that are running on Fargate resources and shouldn't be * provided.

*/ inline bool HostHasBeenSet() const { return m_hostHasBeenSet; } /** *

The contents of the host parameter determine whether your data * volume persists on the host container instance and where it's stored. If the * host parameter is empty, then the Docker daemon assigns a host path for your * data volume. However, the data isn't guaranteed to persist after the containers * that are associated with it stop running.

This parameter isn't * applicable to jobs that are running on Fargate resources and shouldn't be * provided.

*/ inline void SetHost(const Host& value) { m_hostHasBeenSet = true; m_host = value; } /** *

The contents of the host parameter determine whether your data * volume persists on the host container instance and where it's stored. If the * host parameter is empty, then the Docker daemon assigns a host path for your * data volume. However, the data isn't guaranteed to persist after the containers * that are associated with it stop running.

This parameter isn't * applicable to jobs that are running on Fargate resources and shouldn't be * provided.

*/ inline void SetHost(Host&& value) { m_hostHasBeenSet = true; m_host = std::move(value); } /** *

The contents of the host parameter determine whether your data * volume persists on the host container instance and where it's stored. If the * host parameter is empty, then the Docker daemon assigns a host path for your * data volume. However, the data isn't guaranteed to persist after the containers * that are associated with it stop running.

This parameter isn't * applicable to jobs that are running on Fargate resources and shouldn't be * provided.

*/ inline Volume& WithHost(const Host& value) { SetHost(value); return *this;} /** *

The contents of the host parameter determine whether your data * volume persists on the host container instance and where it's stored. If the * host parameter is empty, then the Docker daemon assigns a host path for your * data volume. However, the data isn't guaranteed to persist after the containers * that are associated with it stop running.

This parameter isn't * applicable to jobs that are running on Fargate resources and shouldn't be * provided.

*/ inline Volume& WithHost(Host&& value) { SetHost(std::move(value)); return *this;} /** *

The name of the volume. It can be up to 255 characters long. It can contain * uppercase and lowercase letters, numbers, hyphens (-), and underscores (_). This * name is referenced in the sourceVolume parameter of container * definition mountPoints.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the volume. It can be up to 255 characters long. It can contain * uppercase and lowercase letters, numbers, hyphens (-), and underscores (_). This * name is referenced in the sourceVolume parameter of container * definition mountPoints.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the volume. It can be up to 255 characters long. It can contain * uppercase and lowercase letters, numbers, hyphens (-), and underscores (_). This * name is referenced in the sourceVolume parameter of container * definition mountPoints.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the volume. It can be up to 255 characters long. It can contain * uppercase and lowercase letters, numbers, hyphens (-), and underscores (_). This * name is referenced in the sourceVolume parameter of container * definition mountPoints.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the volume. It can be up to 255 characters long. It can contain * uppercase and lowercase letters, numbers, hyphens (-), and underscores (_). This * name is referenced in the sourceVolume parameter of container * definition mountPoints.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the volume. It can be up to 255 characters long. It can contain * uppercase and lowercase letters, numbers, hyphens (-), and underscores (_). This * name is referenced in the sourceVolume parameter of container * definition mountPoints.

*/ inline Volume& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the volume. It can be up to 255 characters long. It can contain * uppercase and lowercase letters, numbers, hyphens (-), and underscores (_). This * name is referenced in the sourceVolume parameter of container * definition mountPoints.

*/ inline Volume& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the volume. It can be up to 255 characters long. It can contain * uppercase and lowercase letters, numbers, hyphens (-), and underscores (_). This * name is referenced in the sourceVolume parameter of container * definition mountPoints.

*/ inline Volume& WithName(const char* value) { SetName(value); return *this;} /** *

This parameter is specified when you're using an Amazon Elastic File System * file system for job storage. Jobs that are running on Fargate resources must * specify a platformVersion of at least 1.4.0.

*/ inline const EFSVolumeConfiguration& GetEfsVolumeConfiguration() const{ return m_efsVolumeConfiguration; } /** *

This parameter is specified when you're using an Amazon Elastic File System * file system for job storage. Jobs that are running on Fargate resources must * specify a platformVersion of at least 1.4.0.

*/ inline bool EfsVolumeConfigurationHasBeenSet() const { return m_efsVolumeConfigurationHasBeenSet; } /** *

This parameter is specified when you're using an Amazon Elastic File System * file system for job storage. Jobs that are running on Fargate resources must * specify a platformVersion of at least 1.4.0.

*/ inline void SetEfsVolumeConfiguration(const EFSVolumeConfiguration& value) { m_efsVolumeConfigurationHasBeenSet = true; m_efsVolumeConfiguration = value; } /** *

This parameter is specified when you're using an Amazon Elastic File System * file system for job storage. Jobs that are running on Fargate resources must * specify a platformVersion of at least 1.4.0.

*/ inline void SetEfsVolumeConfiguration(EFSVolumeConfiguration&& value) { m_efsVolumeConfigurationHasBeenSet = true; m_efsVolumeConfiguration = std::move(value); } /** *

This parameter is specified when you're using an Amazon Elastic File System * file system for job storage. Jobs that are running on Fargate resources must * specify a platformVersion of at least 1.4.0.

*/ inline Volume& WithEfsVolumeConfiguration(const EFSVolumeConfiguration& value) { SetEfsVolumeConfiguration(value); return *this;} /** *

This parameter is specified when you're using an Amazon Elastic File System * file system for job storage. Jobs that are running on Fargate resources must * specify a platformVersion of at least 1.4.0.

*/ inline Volume& WithEfsVolumeConfiguration(EFSVolumeConfiguration&& value) { SetEfsVolumeConfiguration(std::move(value)); return *this;} private: Host m_host; bool m_hostHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; EFSVolumeConfiguration m_efsVolumeConfiguration; bool m_efsVolumeConfigurationHasBeenSet = false; }; } // namespace Model } // namespace Batch } // namespace Aws