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

Specifies an Amazon EKS volume for a job definition.

See Also:

* AWS * API Reference

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

The name of the volume. The name must be allowed as a DNS subdomain name. For * more information, see DNS * subdomain names in the Kubernetes documentation.

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

The name of the volume. The name must be allowed as a DNS subdomain name. For * more information, see DNS * subdomain names in the Kubernetes documentation.

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

The name of the volume. The name must be allowed as a DNS subdomain name. For * more information, see DNS * subdomain names in the Kubernetes documentation.

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

The name of the volume. The name must be allowed as a DNS subdomain name. For * more information, see DNS * subdomain names in the Kubernetes documentation.

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

The name of the volume. The name must be allowed as a DNS subdomain name. For * more information, see DNS * subdomain names in the Kubernetes documentation.

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

The name of the volume. The name must be allowed as a DNS subdomain name. For * more information, see DNS * subdomain names in the Kubernetes documentation.

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

The name of the volume. The name must be allowed as a DNS subdomain name. For * more information, see DNS * subdomain names in the Kubernetes documentation.

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

The name of the volume. The name must be allowed as a DNS subdomain name. For * more information, see DNS * subdomain names in the Kubernetes documentation.

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

Specifies the configuration of a Kubernetes hostPath volume. For * more information, see hostPath * in the Kubernetes documentation.

*/ inline const EksHostPath& GetHostPath() const{ return m_hostPath; } /** *

Specifies the configuration of a Kubernetes hostPath volume. For * more information, see hostPath * in the Kubernetes documentation.

*/ inline bool HostPathHasBeenSet() const { return m_hostPathHasBeenSet; } /** *

Specifies the configuration of a Kubernetes hostPath volume. For * more information, see hostPath * in the Kubernetes documentation.

*/ inline void SetHostPath(const EksHostPath& value) { m_hostPathHasBeenSet = true; m_hostPath = value; } /** *

Specifies the configuration of a Kubernetes hostPath volume. For * more information, see hostPath * in the Kubernetes documentation.

*/ inline void SetHostPath(EksHostPath&& value) { m_hostPathHasBeenSet = true; m_hostPath = std::move(value); } /** *

Specifies the configuration of a Kubernetes hostPath volume. For * more information, see hostPath * in the Kubernetes documentation.

*/ inline EksVolume& WithHostPath(const EksHostPath& value) { SetHostPath(value); return *this;} /** *

Specifies the configuration of a Kubernetes hostPath volume. For * more information, see hostPath * in the Kubernetes documentation.

*/ inline EksVolume& WithHostPath(EksHostPath&& value) { SetHostPath(std::move(value)); return *this;} /** *

Specifies the configuration of a Kubernetes emptyDir volume. For * more information, see emptyDir * in the Kubernetes documentation.

*/ inline const EksEmptyDir& GetEmptyDir() const{ return m_emptyDir; } /** *

Specifies the configuration of a Kubernetes emptyDir volume. For * more information, see emptyDir * in the Kubernetes documentation.

*/ inline bool EmptyDirHasBeenSet() const { return m_emptyDirHasBeenSet; } /** *

Specifies the configuration of a Kubernetes emptyDir volume. For * more information, see emptyDir * in the Kubernetes documentation.

*/ inline void SetEmptyDir(const EksEmptyDir& value) { m_emptyDirHasBeenSet = true; m_emptyDir = value; } /** *

Specifies the configuration of a Kubernetes emptyDir volume. For * more information, see emptyDir * in the Kubernetes documentation.

*/ inline void SetEmptyDir(EksEmptyDir&& value) { m_emptyDirHasBeenSet = true; m_emptyDir = std::move(value); } /** *

Specifies the configuration of a Kubernetes emptyDir volume. For * more information, see emptyDir * in the Kubernetes documentation.

*/ inline EksVolume& WithEmptyDir(const EksEmptyDir& value) { SetEmptyDir(value); return *this;} /** *

Specifies the configuration of a Kubernetes emptyDir volume. For * more information, see emptyDir * in the Kubernetes documentation.

*/ inline EksVolume& WithEmptyDir(EksEmptyDir&& value) { SetEmptyDir(std::move(value)); return *this;} /** *

Specifies the configuration of a Kubernetes secret volume. For * more information, see secret in * the Kubernetes documentation.

*/ inline const EksSecret& GetSecret() const{ return m_secret; } /** *

Specifies the configuration of a Kubernetes secret volume. For * more information, see secret in * the Kubernetes documentation.

*/ inline bool SecretHasBeenSet() const { return m_secretHasBeenSet; } /** *

Specifies the configuration of a Kubernetes secret volume. For * more information, see secret in * the Kubernetes documentation.

*/ inline void SetSecret(const EksSecret& value) { m_secretHasBeenSet = true; m_secret = value; } /** *

Specifies the configuration of a Kubernetes secret volume. For * more information, see secret in * the Kubernetes documentation.

*/ inline void SetSecret(EksSecret&& value) { m_secretHasBeenSet = true; m_secret = std::move(value); } /** *

Specifies the configuration of a Kubernetes secret volume. For * more information, see secret in * the Kubernetes documentation.

*/ inline EksVolume& WithSecret(const EksSecret& value) { SetSecret(value); return *this;} /** *

Specifies the configuration of a Kubernetes secret volume. For * more information, see secret in * the Kubernetes documentation.

*/ inline EksVolume& WithSecret(EksSecret&& value) { SetSecret(std::move(value)); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; EksHostPath m_hostPath; bool m_hostPathHasBeenSet = false; EksEmptyDir m_emptyDir; bool m_emptyDirHasBeenSet = false; EksSecret m_secret; bool m_secretHasBeenSet = false; }; } // namespace Model } // namespace Batch } // namespace Aws