AWS SDK for C++

AWS SDK for C++ Version 1.11.748

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/IcebergSortOrder.h>
13
14#include <utility>
15
16namespace Aws {
17namespace Utils {
18namespace Json {
19class JsonValue;
20class JsonView;
21} // namespace Json
22} // namespace Utils
23namespace S3Tables {
24namespace Model {
25
33 public:
34 AWS_S3TABLES_API IcebergMetadata() = default;
35 AWS_S3TABLES_API IcebergMetadata(Aws::Utils::Json::JsonView jsonValue);
37 AWS_S3TABLES_API Aws::Utils::Json::JsonValue Jsonize() const;
38
40
43 inline const IcebergSchema& GetSchema() const { return m_schema; }
44 inline bool SchemaHasBeenSet() const { return m_schemaHasBeenSet; }
45 template <typename SchemaT = IcebergSchema>
46 void SetSchema(SchemaT&& value) {
47 m_schemaHasBeenSet = true;
48 m_schema = std::forward<SchemaT>(value);
49 }
50 template <typename SchemaT = IcebergSchema>
51 IcebergMetadata& WithSchema(SchemaT&& value) {
52 SetSchema(std::forward<SchemaT>(value));
53 return *this;
54 }
56
58
65 inline const IcebergPartitionSpec& GetPartitionSpec() const { return m_partitionSpec; }
66 inline bool PartitionSpecHasBeenSet() const { return m_partitionSpecHasBeenSet; }
67 template <typename PartitionSpecT = IcebergPartitionSpec>
68 void SetPartitionSpec(PartitionSpecT&& value) {
69 m_partitionSpecHasBeenSet = true;
70 m_partitionSpec = std::forward<PartitionSpecT>(value);
71 }
72 template <typename PartitionSpecT = IcebergPartitionSpec>
73 IcebergMetadata& WithPartitionSpec(PartitionSpecT&& value) {
74 SetPartitionSpec(std::forward<PartitionSpecT>(value));
75 return *this;
76 }
78
80
85 inline const IcebergSortOrder& GetWriteOrder() const { return m_writeOrder; }
86 inline bool WriteOrderHasBeenSet() const { return m_writeOrderHasBeenSet; }
87 template <typename WriteOrderT = IcebergSortOrder>
88 void SetWriteOrder(WriteOrderT&& value) {
89 m_writeOrderHasBeenSet = true;
90 m_writeOrder = std::forward<WriteOrderT>(value);
91 }
92 template <typename WriteOrderT = IcebergSortOrder>
93 IcebergMetadata& WithWriteOrder(WriteOrderT&& value) {
94 SetWriteOrder(std::forward<WriteOrderT>(value));
95 return *this;
96 }
98
100
103 inline const Aws::Map<Aws::String, Aws::String>& GetProperties() const { return m_properties; }
104 inline bool PropertiesHasBeenSet() const { return m_propertiesHasBeenSet; }
105 template <typename PropertiesT = Aws::Map<Aws::String, Aws::String>>
106 void SetProperties(PropertiesT&& value) {
107 m_propertiesHasBeenSet = true;
108 m_properties = std::forward<PropertiesT>(value);
109 }
110 template <typename PropertiesT = Aws::Map<Aws::String, Aws::String>>
111 IcebergMetadata& WithProperties(PropertiesT&& value) {
112 SetProperties(std::forward<PropertiesT>(value));
113 return *this;
114 }
115 template <typename PropertiesKeyT = Aws::String, typename PropertiesValueT = Aws::String>
116 IcebergMetadata& AddProperties(PropertiesKeyT&& key, PropertiesValueT&& value) {
117 m_propertiesHasBeenSet = true;
118 m_properties.emplace(std::forward<PropertiesKeyT>(key), std::forward<PropertiesValueT>(value));
119 return *this;
120 }
122 private:
123 IcebergSchema m_schema;
124
125 IcebergPartitionSpec m_partitionSpec;
126
127 IcebergSortOrder m_writeOrder;
128
130 bool m_schemaHasBeenSet = false;
131 bool m_partitionSpecHasBeenSet = false;
132 bool m_writeOrderHasBeenSet = false;
133 bool m_propertiesHasBeenSet = false;
134};
135
136} // namespace Model
137} // namespace S3Tables
138} // namespace Aws
IcebergMetadata & WithSchema(SchemaT &&value)
AWS_S3TABLES_API IcebergMetadata(Aws::Utils::Json::JsonView jsonValue)
const IcebergPartitionSpec & GetPartitionSpec() 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