AWS SDK for C++

AWS SDK for C++ Version 1.11.685

Loading...
Searching...
No Matches
IcebergSchema.h
1
6#pragma once
7#include <aws/core/utils/memory/stl/AWSVector.h>
8#include <aws/glue/Glue_EXPORTS.h>
9#include <aws/glue/model/IcebergStructField.h>
10#include <aws/glue/model/IcebergStructTypeEnum.h>
11
12#include <utility>
13
14namespace Aws {
15namespace Utils {
16namespace Json {
17class JsonValue;
18class JsonView;
19} // namespace Json
20} // namespace Utils
21namespace Glue {
22namespace Model {
23
31 public:
32 AWS_GLUE_API IcebergSchema() = default;
36
38
42 inline int GetSchemaId() const { return m_schemaId; }
43 inline bool SchemaIdHasBeenSet() const { return m_schemaIdHasBeenSet; }
44 inline void SetSchemaId(int value) {
45 m_schemaIdHasBeenSet = true;
46 m_schemaId = value;
47 }
48 inline IcebergSchema& WithSchemaId(int value) {
49 SetSchemaId(value);
50 return *this;
51 }
53
55
59 inline const Aws::Vector<int>& GetIdentifierFieldIds() const { return m_identifierFieldIds; }
60 inline bool IdentifierFieldIdsHasBeenSet() const { return m_identifierFieldIdsHasBeenSet; }
61 template <typename IdentifierFieldIdsT = Aws::Vector<int>>
62 void SetIdentifierFieldIds(IdentifierFieldIdsT&& value) {
63 m_identifierFieldIdsHasBeenSet = true;
64 m_identifierFieldIds = std::forward<IdentifierFieldIdsT>(value);
65 }
66 template <typename IdentifierFieldIdsT = Aws::Vector<int>>
67 IcebergSchema& WithIdentifierFieldIds(IdentifierFieldIdsT&& value) {
68 SetIdentifierFieldIds(std::forward<IdentifierFieldIdsT>(value));
69 return *this;
70 }
72 m_identifierFieldIdsHasBeenSet = true;
73 m_identifierFieldIds.push_back(value);
74 return *this;
75 }
77
79
83 inline IcebergStructTypeEnum GetType() const { return m_type; }
84 inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; }
85 inline void SetType(IcebergStructTypeEnum value) {
86 m_typeHasBeenSet = true;
87 m_type = value;
88 }
90 SetType(value);
91 return *this;
92 }
94
96
100 inline const Aws::Vector<IcebergStructField>& GetFields() const { return m_fields; }
101 inline bool FieldsHasBeenSet() const { return m_fieldsHasBeenSet; }
102 template <typename FieldsT = Aws::Vector<IcebergStructField>>
103 void SetFields(FieldsT&& value) {
104 m_fieldsHasBeenSet = true;
105 m_fields = std::forward<FieldsT>(value);
106 }
107 template <typename FieldsT = Aws::Vector<IcebergStructField>>
108 IcebergSchema& WithFields(FieldsT&& value) {
109 SetFields(std::forward<FieldsT>(value));
110 return *this;
111 }
112 template <typename FieldsT = IcebergStructField>
113 IcebergSchema& AddFields(FieldsT&& value) {
114 m_fieldsHasBeenSet = true;
115 m_fields.emplace_back(std::forward<FieldsT>(value));
116 return *this;
117 }
119 private:
120 int m_schemaId{0};
121 bool m_schemaIdHasBeenSet = false;
122
123 Aws::Vector<int> m_identifierFieldIds;
124 bool m_identifierFieldIdsHasBeenSet = false;
125
127 bool m_typeHasBeenSet = false;
128
130 bool m_fieldsHasBeenSet = false;
131};
132
133} // namespace Model
134} // namespace Glue
135} // namespace Aws
AWS_GLUE_API IcebergSchema(Aws::Utils::Json::JsonView jsonValue)
IcebergStructTypeEnum GetType() const
void SetType(IcebergStructTypeEnum value)
AWS_GLUE_API IcebergSchema()=default
AWS_GLUE_API Aws::Utils::Json::JsonValue Jsonize() const
IcebergSchema & WithIdentifierFieldIds(IdentifierFieldIdsT &&value)
IcebergSchema & WithType(IcebergStructTypeEnum value)
IcebergSchema & WithSchemaId(int value)
IcebergSchema & AddIdentifierFieldIds(int value)
const Aws::Vector< IcebergStructField > & GetFields() const
const Aws::Vector< int > & GetIdentifierFieldIds() const
IcebergSchema & AddFields(FieldsT &&value)
void SetIdentifierFieldIds(IdentifierFieldIdsT &&value)
AWS_GLUE_API IcebergSchema & operator=(Aws::Utils::Json::JsonView jsonValue)
IcebergSchema & WithFields(FieldsT &&value)
void SetFields(FieldsT &&value)
std::vector< T, Aws::Allocator< T > > Vector
Aws::Utils::Json::JsonValue JsonValue