/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #include <aws/glue/model/SnowflakeNodeData.h> #include <aws/core/utils/json/JsonSerializer.h> #include <utility> using namespace Aws::Utils::Json; using namespace Aws::Utils; namespace Aws { namespace Glue { namespace Model { SnowflakeNodeData::SnowflakeNodeData() : m_sourceTypeHasBeenSet(false), m_connectionHasBeenSet(false), m_schemaHasBeenSet(false), m_tableHasBeenSet(false), m_databaseHasBeenSet(false), m_tempDirHasBeenSet(false), m_iamRoleHasBeenSet(false), m_additionalOptionsHasBeenSet(false), m_sampleQueryHasBeenSet(false), m_preActionHasBeenSet(false), m_postActionHasBeenSet(false), m_actionHasBeenSet(false), m_upsert(false), m_upsertHasBeenSet(false), m_mergeActionHasBeenSet(false), m_mergeWhenMatchedHasBeenSet(false), m_mergeWhenNotMatchedHasBeenSet(false), m_mergeClauseHasBeenSet(false), m_stagingTableHasBeenSet(false), m_selectedColumnsHasBeenSet(false), m_autoPushdown(false), m_autoPushdownHasBeenSet(false), m_tableSchemaHasBeenSet(false) { } SnowflakeNodeData::SnowflakeNodeData(JsonView jsonValue) : m_sourceTypeHasBeenSet(false), m_connectionHasBeenSet(false), m_schemaHasBeenSet(false), m_tableHasBeenSet(false), m_databaseHasBeenSet(false), m_tempDirHasBeenSet(false), m_iamRoleHasBeenSet(false), m_additionalOptionsHasBeenSet(false), m_sampleQueryHasBeenSet(false), m_preActionHasBeenSet(false), m_postActionHasBeenSet(false), m_actionHasBeenSet(false), m_upsert(false), m_upsertHasBeenSet(false), m_mergeActionHasBeenSet(false), m_mergeWhenMatchedHasBeenSet(false), m_mergeWhenNotMatchedHasBeenSet(false), m_mergeClauseHasBeenSet(false), m_stagingTableHasBeenSet(false), m_selectedColumnsHasBeenSet(false), m_autoPushdown(false), m_autoPushdownHasBeenSet(false), m_tableSchemaHasBeenSet(false) { *this = jsonValue; } SnowflakeNodeData& SnowflakeNodeData::operator =(JsonView jsonValue) { if(jsonValue.ValueExists("SourceType")) { m_sourceType = jsonValue.GetString("SourceType"); m_sourceTypeHasBeenSet = true; } if(jsonValue.ValueExists("Connection")) { m_connection = jsonValue.GetObject("Connection"); m_connectionHasBeenSet = true; } if(jsonValue.ValueExists("Schema")) { m_schema = jsonValue.GetString("Schema"); m_schemaHasBeenSet = true; } if(jsonValue.ValueExists("Table")) { m_table = jsonValue.GetString("Table"); m_tableHasBeenSet = true; } if(jsonValue.ValueExists("Database")) { m_database = jsonValue.GetString("Database"); m_databaseHasBeenSet = true; } if(jsonValue.ValueExists("TempDir")) { m_tempDir = jsonValue.GetString("TempDir"); m_tempDirHasBeenSet = true; } if(jsonValue.ValueExists("IamRole")) { m_iamRole = jsonValue.GetObject("IamRole"); m_iamRoleHasBeenSet = true; } if(jsonValue.ValueExists("AdditionalOptions")) { Aws::Map<Aws::String, JsonView> additionalOptionsJsonMap = jsonValue.GetObject("AdditionalOptions").GetAllObjects(); for(auto& additionalOptionsItem : additionalOptionsJsonMap) { m_additionalOptions[additionalOptionsItem.first] = additionalOptionsItem.second.AsString(); } m_additionalOptionsHasBeenSet = true; } if(jsonValue.ValueExists("SampleQuery")) { m_sampleQuery = jsonValue.GetString("SampleQuery"); m_sampleQueryHasBeenSet = true; } if(jsonValue.ValueExists("PreAction")) { m_preAction = jsonValue.GetString("PreAction"); m_preActionHasBeenSet = true; } if(jsonValue.ValueExists("PostAction")) { m_postAction = jsonValue.GetString("PostAction"); m_postActionHasBeenSet = true; } if(jsonValue.ValueExists("Action")) { m_action = jsonValue.GetString("Action"); m_actionHasBeenSet = true; } if(jsonValue.ValueExists("Upsert")) { m_upsert = jsonValue.GetBool("Upsert"); m_upsertHasBeenSet = true; } if(jsonValue.ValueExists("MergeAction")) { m_mergeAction = jsonValue.GetString("MergeAction"); m_mergeActionHasBeenSet = true; } if(jsonValue.ValueExists("MergeWhenMatched")) { m_mergeWhenMatched = jsonValue.GetString("MergeWhenMatched"); m_mergeWhenMatchedHasBeenSet = true; } if(jsonValue.ValueExists("MergeWhenNotMatched")) { m_mergeWhenNotMatched = jsonValue.GetString("MergeWhenNotMatched"); m_mergeWhenNotMatchedHasBeenSet = true; } if(jsonValue.ValueExists("MergeClause")) { m_mergeClause = jsonValue.GetString("MergeClause"); m_mergeClauseHasBeenSet = true; } if(jsonValue.ValueExists("StagingTable")) { m_stagingTable = jsonValue.GetString("StagingTable"); m_stagingTableHasBeenSet = true; } if(jsonValue.ValueExists("SelectedColumns")) { Aws::Utils::Array<JsonView> selectedColumnsJsonList = jsonValue.GetArray("SelectedColumns"); for(unsigned selectedColumnsIndex = 0; selectedColumnsIndex < selectedColumnsJsonList.GetLength(); ++selectedColumnsIndex) { m_selectedColumns.push_back(selectedColumnsJsonList[selectedColumnsIndex].AsObject()); } m_selectedColumnsHasBeenSet = true; } if(jsonValue.ValueExists("AutoPushdown")) { m_autoPushdown = jsonValue.GetBool("AutoPushdown"); m_autoPushdownHasBeenSet = true; } if(jsonValue.ValueExists("TableSchema")) { Aws::Utils::Array<JsonView> tableSchemaJsonList = jsonValue.GetArray("TableSchema"); for(unsigned tableSchemaIndex = 0; tableSchemaIndex < tableSchemaJsonList.GetLength(); ++tableSchemaIndex) { m_tableSchema.push_back(tableSchemaJsonList[tableSchemaIndex].AsObject()); } m_tableSchemaHasBeenSet = true; } return *this; } JsonValue SnowflakeNodeData::Jsonize() const { JsonValue payload; if(m_sourceTypeHasBeenSet) { payload.WithString("SourceType", m_sourceType); } if(m_connectionHasBeenSet) { payload.WithObject("Connection", m_connection.Jsonize()); } if(m_schemaHasBeenSet) { payload.WithString("Schema", m_schema); } if(m_tableHasBeenSet) { payload.WithString("Table", m_table); } if(m_databaseHasBeenSet) { payload.WithString("Database", m_database); } if(m_tempDirHasBeenSet) { payload.WithString("TempDir", m_tempDir); } if(m_iamRoleHasBeenSet) { payload.WithObject("IamRole", m_iamRole.Jsonize()); } if(m_additionalOptionsHasBeenSet) { JsonValue additionalOptionsJsonMap; for(auto& additionalOptionsItem : m_additionalOptions) { additionalOptionsJsonMap.WithString(additionalOptionsItem.first, additionalOptionsItem.second); } payload.WithObject("AdditionalOptions", std::move(additionalOptionsJsonMap)); } if(m_sampleQueryHasBeenSet) { payload.WithString("SampleQuery", m_sampleQuery); } if(m_preActionHasBeenSet) { payload.WithString("PreAction", m_preAction); } if(m_postActionHasBeenSet) { payload.WithString("PostAction", m_postAction); } if(m_actionHasBeenSet) { payload.WithString("Action", m_action); } if(m_upsertHasBeenSet) { payload.WithBool("Upsert", m_upsert); } if(m_mergeActionHasBeenSet) { payload.WithString("MergeAction", m_mergeAction); } if(m_mergeWhenMatchedHasBeenSet) { payload.WithString("MergeWhenMatched", m_mergeWhenMatched); } if(m_mergeWhenNotMatchedHasBeenSet) { payload.WithString("MergeWhenNotMatched", m_mergeWhenNotMatched); } if(m_mergeClauseHasBeenSet) { payload.WithString("MergeClause", m_mergeClause); } if(m_stagingTableHasBeenSet) { payload.WithString("StagingTable", m_stagingTable); } if(m_selectedColumnsHasBeenSet) { Aws::Utils::Array<JsonValue> selectedColumnsJsonList(m_selectedColumns.size()); for(unsigned selectedColumnsIndex = 0; selectedColumnsIndex < selectedColumnsJsonList.GetLength(); ++selectedColumnsIndex) { selectedColumnsJsonList[selectedColumnsIndex].AsObject(m_selectedColumns[selectedColumnsIndex].Jsonize()); } payload.WithArray("SelectedColumns", std::move(selectedColumnsJsonList)); } if(m_autoPushdownHasBeenSet) { payload.WithBool("AutoPushdown", m_autoPushdown); } if(m_tableSchemaHasBeenSet) { Aws::Utils::Array<JsonValue> tableSchemaJsonList(m_tableSchema.size()); for(unsigned tableSchemaIndex = 0; tableSchemaIndex < tableSchemaJsonList.GetLength(); ++tableSchemaIndex) { tableSchemaJsonList[tableSchemaIndex].AsObject(m_tableSchema[tableSchemaIndex].Jsonize()); } payload.WithArray("TableSchema", std::move(tableSchemaJsonList)); } return payload; } } // namespace Model } // namespace Glue } // namespace Aws