/** * 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 Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace S3Control { namespace Model { /** *

Describes the format of a manifest. If the manifest is in CSV format, also * describes the columns contained within the manifest.

See Also:

* AWS * API Reference

*/ class JobManifestSpec { public: AWS_S3CONTROL_API JobManifestSpec(); AWS_S3CONTROL_API JobManifestSpec(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_S3CONTROL_API JobManifestSpec& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_S3CONTROL_API void AddToNode(Aws::Utils::Xml::XmlNode& parentNode) const; /** *

Indicates which of the available formats the specified manifest uses.

*/ inline const JobManifestFormat& GetFormat() const{ return m_format; } /** *

Indicates which of the available formats the specified manifest uses.

*/ inline bool FormatHasBeenSet() const { return m_formatHasBeenSet; } /** *

Indicates which of the available formats the specified manifest uses.

*/ inline void SetFormat(const JobManifestFormat& value) { m_formatHasBeenSet = true; m_format = value; } /** *

Indicates which of the available formats the specified manifest uses.

*/ inline void SetFormat(JobManifestFormat&& value) { m_formatHasBeenSet = true; m_format = std::move(value); } /** *

Indicates which of the available formats the specified manifest uses.

*/ inline JobManifestSpec& WithFormat(const JobManifestFormat& value) { SetFormat(value); return *this;} /** *

Indicates which of the available formats the specified manifest uses.

*/ inline JobManifestSpec& WithFormat(JobManifestFormat&& value) { SetFormat(std::move(value)); return *this;} /** *

If the specified manifest object is in the * S3BatchOperations_CSV_20180820 format, this element describes which * columns contain the required data.

*/ inline const Aws::Vector& GetFields() const{ return m_fields; } /** *

If the specified manifest object is in the * S3BatchOperations_CSV_20180820 format, this element describes which * columns contain the required data.

*/ inline bool FieldsHasBeenSet() const { return m_fieldsHasBeenSet; } /** *

If the specified manifest object is in the * S3BatchOperations_CSV_20180820 format, this element describes which * columns contain the required data.

*/ inline void SetFields(const Aws::Vector& value) { m_fieldsHasBeenSet = true; m_fields = value; } /** *

If the specified manifest object is in the * S3BatchOperations_CSV_20180820 format, this element describes which * columns contain the required data.

*/ inline void SetFields(Aws::Vector&& value) { m_fieldsHasBeenSet = true; m_fields = std::move(value); } /** *

If the specified manifest object is in the * S3BatchOperations_CSV_20180820 format, this element describes which * columns contain the required data.

*/ inline JobManifestSpec& WithFields(const Aws::Vector& value) { SetFields(value); return *this;} /** *

If the specified manifest object is in the * S3BatchOperations_CSV_20180820 format, this element describes which * columns contain the required data.

*/ inline JobManifestSpec& WithFields(Aws::Vector&& value) { SetFields(std::move(value)); return *this;} /** *

If the specified manifest object is in the * S3BatchOperations_CSV_20180820 format, this element describes which * columns contain the required data.

*/ inline JobManifestSpec& AddFields(const JobManifestFieldName& value) { m_fieldsHasBeenSet = true; m_fields.push_back(value); return *this; } /** *

If the specified manifest object is in the * S3BatchOperations_CSV_20180820 format, this element describes which * columns contain the required data.

*/ inline JobManifestSpec& AddFields(JobManifestFieldName&& value) { m_fieldsHasBeenSet = true; m_fields.push_back(std::move(value)); return *this; } private: JobManifestFormat m_format; bool m_formatHasBeenSet = false; Aws::Vector m_fields; bool m_fieldsHasBeenSet = false; }; } // namespace Model } // namespace S3Control } // namespace Aws