AWS SDK for C++

AWS SDK for C++ Version 1.11.788

Loading...
Searching...
No Matches
IcebergMetadata.h
1
6#pragma once
7#include <aws/core/utils/memory/stl/AWSMap.h>
8#include <aws/core/utils/memory/stl/AWSString.h>
9#include <aws/s3tables/S3Tables_EXPORTS.h>
10#include <aws/s3tables/model/IcebergPartitionSpec.h>
11#include <aws/s3tables/model/IcebergSchema.h>
12#include <aws/s3tables/model/IcebergSchemaV2.h>
13#include <aws/s3tables/model/IcebergSortOrder.h>
14
15#include <utility>
16
17namespace Aws {
18namespace Utils {
19namespace Json {
20class JsonValue;
21class JsonView;
22} // namespace Json
23} // namespace Utils
24namespace S3Tables {
25namespace Model {
26
34 public:
35 AWS_S3TABLES_API IcebergMetadata() = default;
36 AWS_S3TABLES_API IcebergMetadata(Aws::Utils::Json::JsonView jsonValue);
38 AWS_S3TABLES_API Aws::Utils::Json::JsonValue Jsonize() const;
39
41
47 inline const IcebergSchema& GetSchema() const { return m_schema; }
48 inline bool SchemaHasBeenSet() const { return m_schemaHasBeenSet; }
49 template <typename SchemaT = IcebergSchema>
50 void SetSchema(SchemaT&& value) {
51 m_schemaHasBeenSet = true;
52 m_schema = std::forward<SchemaT>(value);
53 }
54 template <typename SchemaT = IcebergSchema>
55 IcebergMetadata& WithSchema(SchemaT&& value) {
56 SetSchema(std::forward<SchemaT>(value));
57 return *this;
58 }
60
62
69 inline const IcebergSchemaV2& GetSchemaV2() const { return m_schemaV2; }
70 inline bool SchemaV2HasBeenSet() const { return m_schemaV2HasBeenSet; }
71 template <typename SchemaV2T = IcebergSchemaV2>
72 void SetSchemaV2(SchemaV2T&& value) {
73 m_schemaV2HasBeenSet = true;
74 m_schemaV2 = std::forward<SchemaV2T>(value);
75 }
76 template <typename SchemaV2T = IcebergSchemaV2>
77 IcebergMetadata& WithSchemaV2(SchemaV2T&& value) {
78 SetSchemaV2(std::forward<SchemaV2T>(value));
79 return *this;
80 }
82
84
91 inline const IcebergPartitionSpec& GetPartitionSpec() const { return m_partitionSpec; }
92 inline bool PartitionSpecHasBeenSet() const { return m_partitionSpecHasBeenSet; }
93 template <typename PartitionSpecT = IcebergPartitionSpec>
94 void SetPartitionSpec(PartitionSpecT&& value) {
95 m_partitionSpecHasBeenSet = true;
96 m_partitionSpec = std::forward<PartitionSpecT>(value);
97 }
98 template <typename PartitionSpecT = IcebergPartitionSpec>
99 IcebergMetadata& WithPartitionSpec(PartitionSpecT&& value) {
100 SetPartitionSpec(std::forward<PartitionSpecT>(value));
101 return *this;
102 }
104
106
111 inline const IcebergSortOrder& GetWriteOrder() const { return m_writeOrder; }
112 inline bool WriteOrderHasBeenSet() const { return m_writeOrderHasBeenSet; }
113 template <typename WriteOrderT = IcebergSortOrder>
114 void SetWriteOrder(WriteOrderT&& value) {
115 m_writeOrderHasBeenSet = true;
116 m_writeOrder = std::forward<WriteOrderT>(value);
117 }
118 template <typename WriteOrderT = IcebergSortOrder>
119 IcebergMetadata& WithWriteOrder(WriteOrderT&& value) {
120 SetWriteOrder(std::forward<WriteOrderT>(value));
121 return *this;
122 }
124
126
129 inline const Aws::Map<Aws::String, Aws::String>& GetProperties() const { return m_properties; }
130 inline bool PropertiesHasBeenSet() const { return m_propertiesHasBeenSet; }
131 template <typename PropertiesT = Aws::Map<Aws::String, Aws::String>>
132 void SetProperties(PropertiesT&& value) {
133 m_propertiesHasBeenSet = true;
134 m_properties = std::forward<PropertiesT>(value);
135 }
136 template <typename PropertiesT = Aws::Map<Aws::String, Aws::String>>
137 IcebergMetadata& WithProperties(PropertiesT&& value) {
138 SetProperties(std::forward<PropertiesT>(value));
139 return *this;
140 }
141 template <typename PropertiesKeyT = Aws::String, typename PropertiesValueT = Aws::String>
142 IcebergMetadata& AddProperties(PropertiesKeyT&& key, PropertiesValueT&& value) {
143 m_propertiesHasBeenSet = true;
144 m_properties.emplace(std::forward<PropertiesKeyT>(key), std::forward<PropertiesValueT>(value));
145 return *this;
146 }
148 private:
149 IcebergSchema m_schema;
150
151 IcebergSchemaV2 m_schemaV2;
152
153 IcebergPartitionSpec m_partitionSpec;
154
155 IcebergSortOrder m_writeOrder;
156
158 bool m_schemaHasBeenSet = false;
159 bool m_schemaV2HasBeenSet = false;
160 bool m_partitionSpecHasBeenSet = false;
161 bool m_writeOrderHasBeenSet = false;
162 bool m_propertiesHasBeenSet = false;
163};
164
165} // namespace Model
166} // namespace S3Tables
167} // namespace Aws
IcebergMetadata & WithSchema(SchemaT &&value)
AWS_S3TABLES_API IcebergMetadata(Aws::Utils::Json::JsonView jsonValue)
IcebergMetadata & WithSchemaV2(SchemaV2T &&value)
const IcebergPartitionSpec & GetPartitionSpec() const
const IcebergSchemaV2 & GetSchemaV2() const
const IcebergSortOrder & GetWriteOrder() const
AWS_S3TABLES_API Aws::Utils::Json::JsonValue Jsonize() const
AWS_S3TABLES_API IcebergMetadata()=default
IcebergMetadata & WithPartitionSpec(PartitionSpecT &&value)
AWS_S3TABLES_API IcebergMetadata & operator=(Aws::Utils::Json::JsonView jsonValue)
IcebergMetadata & AddProperties(PropertiesKeyT &&key, PropertiesValueT &&value)
IcebergMetadata & WithProperties(PropertiesT &&value)
void SetProperties(PropertiesT &&value)
void SetWriteOrder(WriteOrderT &&value)
void SetPartitionSpec(PartitionSpecT &&value)
const Aws::Map< Aws::String, Aws::String > & GetProperties() const
const IcebergSchema & GetSchema() const
IcebergMetadata & WithWriteOrder(WriteOrderT &&value)
std::map< K, V, std::less< K >, Aws::Allocator< std::pair< const K, V > > > Map
Aws::Utils::Json::JsonValue JsonValue