AWS SDK for C++

AWS SDK for C++ Version 1.11.788

Loading...
Searching...
No Matches
IcebergSchemaV2.h
1
6#pragma once
7#include <aws/core/utils/memory/stl/AWSVector.h>
8#include <aws/s3tables/S3Tables_EXPORTS.h>
9#include <aws/s3tables/model/SchemaV2Field.h>
10#include <aws/s3tables/model/SchemaV2FieldType.h>
11
12#include <utility>
13
14namespace Aws {
15namespace Utils {
16namespace Json {
17class JsonValue;
18class JsonView;
19} // namespace Json
20} // namespace Utils
21namespace S3Tables {
22namespace Model {
23
33 public:
34 AWS_S3TABLES_API IcebergSchemaV2() = default;
35 AWS_S3TABLES_API IcebergSchemaV2(Aws::Utils::Json::JsonView jsonValue);
37 AWS_S3TABLES_API Aws::Utils::Json::JsonValue Jsonize() const;
38
40
46 inline SchemaV2FieldType GetType() const { return m_type; }
47 inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; }
48 inline void SetType(SchemaV2FieldType value) {
49 m_typeHasBeenSet = true;
50 m_type = value;
51 }
53 SetType(value);
54 return *this;
55 }
57
59
63 inline const Aws::Vector<SchemaV2Field>& GetFields() const { return m_fields; }
64 inline bool FieldsHasBeenSet() const { return m_fieldsHasBeenSet; }
65 template <typename FieldsT = Aws::Vector<SchemaV2Field>>
66 void SetFields(FieldsT&& value) {
67 m_fieldsHasBeenSet = true;
68 m_fields = std::forward<FieldsT>(value);
69 }
70 template <typename FieldsT = Aws::Vector<SchemaV2Field>>
71 IcebergSchemaV2& WithFields(FieldsT&& value) {
72 SetFields(std::forward<FieldsT>(value));
73 return *this;
74 }
75 template <typename FieldsT = SchemaV2Field>
76 IcebergSchemaV2& AddFields(FieldsT&& value) {
77 m_fieldsHasBeenSet = true;
78 m_fields.emplace_back(std::forward<FieldsT>(value));
79 return *this;
80 }
82
84
88 inline int GetSchemaId() const { return m_schemaId; }
89 inline bool SchemaIdHasBeenSet() const { return m_schemaIdHasBeenSet; }
90 inline void SetSchemaId(int value) {
91 m_schemaIdHasBeenSet = true;
92 m_schemaId = value;
93 }
94 inline IcebergSchemaV2& WithSchemaId(int value) {
95 SetSchemaId(value);
96 return *this;
97 }
99
101
105 inline const Aws::Vector<int>& GetIdentifierFieldIds() const { return m_identifierFieldIds; }
106 inline bool IdentifierFieldIdsHasBeenSet() const { return m_identifierFieldIdsHasBeenSet; }
107 template <typename IdentifierFieldIdsT = Aws::Vector<int>>
108 void SetIdentifierFieldIds(IdentifierFieldIdsT&& value) {
109 m_identifierFieldIdsHasBeenSet = true;
110 m_identifierFieldIds = std::forward<IdentifierFieldIdsT>(value);
111 }
112 template <typename IdentifierFieldIdsT = Aws::Vector<int>>
113 IcebergSchemaV2& WithIdentifierFieldIds(IdentifierFieldIdsT&& value) {
114 SetIdentifierFieldIds(std::forward<IdentifierFieldIdsT>(value));
115 return *this;
116 }
118 m_identifierFieldIdsHasBeenSet = true;
119 m_identifierFieldIds.push_back(value);
120 return *this;
121 }
123 private:
125
127
128 int m_schemaId{0};
129
130 Aws::Vector<int> m_identifierFieldIds;
131 bool m_typeHasBeenSet = false;
132 bool m_fieldsHasBeenSet = false;
133 bool m_schemaIdHasBeenSet = false;
134 bool m_identifierFieldIdsHasBeenSet = false;
135};
136
137} // namespace Model
138} // namespace S3Tables
139} // namespace Aws
void SetIdentifierFieldIds(IdentifierFieldIdsT &&value)
IcebergSchemaV2 & AddFields(FieldsT &&value)
AWS_S3TABLES_API IcebergSchemaV2 & operator=(Aws::Utils::Json::JsonView jsonValue)
IcebergSchemaV2 & WithIdentifierFieldIds(IdentifierFieldIdsT &&value)
const Aws::Vector< int > & GetIdentifierFieldIds() const
IcebergSchemaV2 & WithFields(FieldsT &&value)
IcebergSchemaV2 & AddIdentifierFieldIds(int value)
SchemaV2FieldType GetType() const
void SetType(SchemaV2FieldType value)
IcebergSchemaV2 & WithSchemaId(int value)
IcebergSchemaV2 & WithType(SchemaV2FieldType value)
const Aws::Vector< SchemaV2Field > & GetFields() const
AWS_S3TABLES_API IcebergSchemaV2(Aws::Utils::Json::JsonView jsonValue)
AWS_S3TABLES_API IcebergSchemaV2()=default
AWS_S3TABLES_API Aws::Utils::Json::JsonValue Jsonize() const
std::vector< T, Aws::Allocator< T > > Vector
Aws::Utils::Json::JsonValue JsonValue