1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/s3-crt/S3Crt_EXPORTS.h>
8 #include <aws/s3-crt/model/CSVInput.h>
9 #include <aws/s3-crt/model/CompressionType.h>
10 #include <aws/s3-crt/model/JSONInput.h>
11 #include <aws/s3-crt/model/ParquetInput.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Xml
19 {
20   class XmlNode;
21 } // namespace Xml
22 } // namespace Utils
23 namespace S3Crt
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>Describes the serialization format of the object.</p><p><h3>See Also:</h3>
30    * <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InputSerialization">AWS
32    * API Reference</a></p>
33    */
34   class AWS_S3CRT_API InputSerialization
35   {
36   public:
37     InputSerialization();
38     InputSerialization(const Aws::Utils::Xml::XmlNode& xmlNode);
39     InputSerialization& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
40 
41     void AddToNode(Aws::Utils::Xml::XmlNode& parentNode) const;
42 
43 
44     /**
45      * <p>Describes the serialization of a CSV-encoded object.</p>
46      */
GetCSV()47     inline const CSVInput& GetCSV() const{ return m_cSV; }
48 
49     /**
50      * <p>Describes the serialization of a CSV-encoded object.</p>
51      */
CSVHasBeenSet()52     inline bool CSVHasBeenSet() const { return m_cSVHasBeenSet; }
53 
54     /**
55      * <p>Describes the serialization of a CSV-encoded object.</p>
56      */
SetCSV(const CSVInput & value)57     inline void SetCSV(const CSVInput& value) { m_cSVHasBeenSet = true; m_cSV = value; }
58 
59     /**
60      * <p>Describes the serialization of a CSV-encoded object.</p>
61      */
SetCSV(CSVInput && value)62     inline void SetCSV(CSVInput&& value) { m_cSVHasBeenSet = true; m_cSV = std::move(value); }
63 
64     /**
65      * <p>Describes the serialization of a CSV-encoded object.</p>
66      */
WithCSV(const CSVInput & value)67     inline InputSerialization& WithCSV(const CSVInput& value) { SetCSV(value); return *this;}
68 
69     /**
70      * <p>Describes the serialization of a CSV-encoded object.</p>
71      */
WithCSV(CSVInput && value)72     inline InputSerialization& WithCSV(CSVInput&& value) { SetCSV(std::move(value)); return *this;}
73 
74 
75     /**
76      * <p>Specifies object's compression format. Valid values: NONE, GZIP, BZIP2.
77      * Default Value: NONE.</p>
78      */
GetCompressionType()79     inline const CompressionType& GetCompressionType() const{ return m_compressionType; }
80 
81     /**
82      * <p>Specifies object's compression format. Valid values: NONE, GZIP, BZIP2.
83      * Default Value: NONE.</p>
84      */
CompressionTypeHasBeenSet()85     inline bool CompressionTypeHasBeenSet() const { return m_compressionTypeHasBeenSet; }
86 
87     /**
88      * <p>Specifies object's compression format. Valid values: NONE, GZIP, BZIP2.
89      * Default Value: NONE.</p>
90      */
SetCompressionType(const CompressionType & value)91     inline void SetCompressionType(const CompressionType& value) { m_compressionTypeHasBeenSet = true; m_compressionType = value; }
92 
93     /**
94      * <p>Specifies object's compression format. Valid values: NONE, GZIP, BZIP2.
95      * Default Value: NONE.</p>
96      */
SetCompressionType(CompressionType && value)97     inline void SetCompressionType(CompressionType&& value) { m_compressionTypeHasBeenSet = true; m_compressionType = std::move(value); }
98 
99     /**
100      * <p>Specifies object's compression format. Valid values: NONE, GZIP, BZIP2.
101      * Default Value: NONE.</p>
102      */
WithCompressionType(const CompressionType & value)103     inline InputSerialization& WithCompressionType(const CompressionType& value) { SetCompressionType(value); return *this;}
104 
105     /**
106      * <p>Specifies object's compression format. Valid values: NONE, GZIP, BZIP2.
107      * Default Value: NONE.</p>
108      */
WithCompressionType(CompressionType && value)109     inline InputSerialization& WithCompressionType(CompressionType&& value) { SetCompressionType(std::move(value)); return *this;}
110 
111 
112     /**
113      * <p>Specifies JSON as object's input serialization format.</p>
114      */
GetJSON()115     inline const JSONInput& GetJSON() const{ return m_jSON; }
116 
117     /**
118      * <p>Specifies JSON as object's input serialization format.</p>
119      */
JSONHasBeenSet()120     inline bool JSONHasBeenSet() const { return m_jSONHasBeenSet; }
121 
122     /**
123      * <p>Specifies JSON as object's input serialization format.</p>
124      */
SetJSON(const JSONInput & value)125     inline void SetJSON(const JSONInput& value) { m_jSONHasBeenSet = true; m_jSON = value; }
126 
127     /**
128      * <p>Specifies JSON as object's input serialization format.</p>
129      */
SetJSON(JSONInput && value)130     inline void SetJSON(JSONInput&& value) { m_jSONHasBeenSet = true; m_jSON = std::move(value); }
131 
132     /**
133      * <p>Specifies JSON as object's input serialization format.</p>
134      */
WithJSON(const JSONInput & value)135     inline InputSerialization& WithJSON(const JSONInput& value) { SetJSON(value); return *this;}
136 
137     /**
138      * <p>Specifies JSON as object's input serialization format.</p>
139      */
WithJSON(JSONInput && value)140     inline InputSerialization& WithJSON(JSONInput&& value) { SetJSON(std::move(value)); return *this;}
141 
142 
143     /**
144      * <p>Specifies Parquet as object's input serialization format.</p>
145      */
GetParquet()146     inline const ParquetInput& GetParquet() const{ return m_parquet; }
147 
148     /**
149      * <p>Specifies Parquet as object's input serialization format.</p>
150      */
ParquetHasBeenSet()151     inline bool ParquetHasBeenSet() const { return m_parquetHasBeenSet; }
152 
153     /**
154      * <p>Specifies Parquet as object's input serialization format.</p>
155      */
SetParquet(const ParquetInput & value)156     inline void SetParquet(const ParquetInput& value) { m_parquetHasBeenSet = true; m_parquet = value; }
157 
158     /**
159      * <p>Specifies Parquet as object's input serialization format.</p>
160      */
SetParquet(ParquetInput && value)161     inline void SetParquet(ParquetInput&& value) { m_parquetHasBeenSet = true; m_parquet = std::move(value); }
162 
163     /**
164      * <p>Specifies Parquet as object's input serialization format.</p>
165      */
WithParquet(const ParquetInput & value)166     inline InputSerialization& WithParquet(const ParquetInput& value) { SetParquet(value); return *this;}
167 
168     /**
169      * <p>Specifies Parquet as object's input serialization format.</p>
170      */
WithParquet(ParquetInput && value)171     inline InputSerialization& WithParquet(ParquetInput&& value) { SetParquet(std::move(value)); return *this;}
172 
173   private:
174 
175     CSVInput m_cSV;
176     bool m_cSVHasBeenSet;
177 
178     CompressionType m_compressionType;
179     bool m_compressionTypeHasBeenSet;
180 
181     JSONInput m_jSON;
182     bool m_jSONHasBeenSet;
183 
184     ParquetInput m_parquet;
185     bool m_parquetHasBeenSet;
186   };
187 
188 } // namespace Model
189 } // namespace S3Crt
190 } // namespace Aws
191