/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #include #include #include using namespace Aws::Utils::Json; using namespace Aws::Utils; namespace Aws { namespace ApiGatewayV2 { namespace Model { Integration::Integration() : m_apiGatewayManaged(false), m_apiGatewayManagedHasBeenSet(false), m_connectionIdHasBeenSet(false), m_connectionType(ConnectionType::NOT_SET), m_connectionTypeHasBeenSet(false), m_contentHandlingStrategy(ContentHandlingStrategy::NOT_SET), m_contentHandlingStrategyHasBeenSet(false), m_credentialsArnHasBeenSet(false), m_descriptionHasBeenSet(false), m_integrationIdHasBeenSet(false), m_integrationMethodHasBeenSet(false), m_integrationResponseSelectionExpressionHasBeenSet(false), m_integrationSubtypeHasBeenSet(false), m_integrationType(IntegrationType::NOT_SET), m_integrationTypeHasBeenSet(false), m_integrationUriHasBeenSet(false), m_passthroughBehavior(PassthroughBehavior::NOT_SET), m_passthroughBehaviorHasBeenSet(false), m_payloadFormatVersionHasBeenSet(false), m_requestParametersHasBeenSet(false), m_requestTemplatesHasBeenSet(false), m_responseParametersHasBeenSet(false), m_templateSelectionExpressionHasBeenSet(false), m_timeoutInMillis(0), m_timeoutInMillisHasBeenSet(false), m_tlsConfigHasBeenSet(false) { } Integration::Integration(JsonView jsonValue) : m_apiGatewayManaged(false), m_apiGatewayManagedHasBeenSet(false), m_connectionIdHasBeenSet(false), m_connectionType(ConnectionType::NOT_SET), m_connectionTypeHasBeenSet(false), m_contentHandlingStrategy(ContentHandlingStrategy::NOT_SET), m_contentHandlingStrategyHasBeenSet(false), m_credentialsArnHasBeenSet(false), m_descriptionHasBeenSet(false), m_integrationIdHasBeenSet(false), m_integrationMethodHasBeenSet(false), m_integrationResponseSelectionExpressionHasBeenSet(false), m_integrationSubtypeHasBeenSet(false), m_integrationType(IntegrationType::NOT_SET), m_integrationTypeHasBeenSet(false), m_integrationUriHasBeenSet(false), m_passthroughBehavior(PassthroughBehavior::NOT_SET), m_passthroughBehaviorHasBeenSet(false), m_payloadFormatVersionHasBeenSet(false), m_requestParametersHasBeenSet(false), m_requestTemplatesHasBeenSet(false), m_responseParametersHasBeenSet(false), m_templateSelectionExpressionHasBeenSet(false), m_timeoutInMillis(0), m_timeoutInMillisHasBeenSet(false), m_tlsConfigHasBeenSet(false) { *this = jsonValue; } Integration& Integration::operator =(JsonView jsonValue) { if(jsonValue.ValueExists("apiGatewayManaged")) { m_apiGatewayManaged = jsonValue.GetBool("apiGatewayManaged"); m_apiGatewayManagedHasBeenSet = true; } if(jsonValue.ValueExists("connectionId")) { m_connectionId = jsonValue.GetString("connectionId"); m_connectionIdHasBeenSet = true; } if(jsonValue.ValueExists("connectionType")) { m_connectionType = ConnectionTypeMapper::GetConnectionTypeForName(jsonValue.GetString("connectionType")); m_connectionTypeHasBeenSet = true; } if(jsonValue.ValueExists("contentHandlingStrategy")) { m_contentHandlingStrategy = ContentHandlingStrategyMapper::GetContentHandlingStrategyForName(jsonValue.GetString("contentHandlingStrategy")); m_contentHandlingStrategyHasBeenSet = true; } if(jsonValue.ValueExists("credentialsArn")) { m_credentialsArn = jsonValue.GetString("credentialsArn"); m_credentialsArnHasBeenSet = true; } if(jsonValue.ValueExists("description")) { m_description = jsonValue.GetString("description"); m_descriptionHasBeenSet = true; } if(jsonValue.ValueExists("integrationId")) { m_integrationId = jsonValue.GetString("integrationId"); m_integrationIdHasBeenSet = true; } if(jsonValue.ValueExists("integrationMethod")) { m_integrationMethod = jsonValue.GetString("integrationMethod"); m_integrationMethodHasBeenSet = true; } if(jsonValue.ValueExists("integrationResponseSelectionExpression")) { m_integrationResponseSelectionExpression = jsonValue.GetString("integrationResponseSelectionExpression"); m_integrationResponseSelectionExpressionHasBeenSet = true; } if(jsonValue.ValueExists("integrationSubtype")) { m_integrationSubtype = jsonValue.GetString("integrationSubtype"); m_integrationSubtypeHasBeenSet = true; } if(jsonValue.ValueExists("integrationType")) { m_integrationType = IntegrationTypeMapper::GetIntegrationTypeForName(jsonValue.GetString("integrationType")); m_integrationTypeHasBeenSet = true; } if(jsonValue.ValueExists("integrationUri")) { m_integrationUri = jsonValue.GetString("integrationUri"); m_integrationUriHasBeenSet = true; } if(jsonValue.ValueExists("passthroughBehavior")) { m_passthroughBehavior = PassthroughBehaviorMapper::GetPassthroughBehaviorForName(jsonValue.GetString("passthroughBehavior")); m_passthroughBehaviorHasBeenSet = true; } if(jsonValue.ValueExists("payloadFormatVersion")) { m_payloadFormatVersion = jsonValue.GetString("payloadFormatVersion"); m_payloadFormatVersionHasBeenSet = true; } if(jsonValue.ValueExists("requestParameters")) { Aws::Map requestParametersJsonMap = jsonValue.GetObject("requestParameters").GetAllObjects(); for(auto& requestParametersItem : requestParametersJsonMap) { m_requestParameters[requestParametersItem.first] = requestParametersItem.second.AsString(); } m_requestParametersHasBeenSet = true; } if(jsonValue.ValueExists("requestTemplates")) { Aws::Map requestTemplatesJsonMap = jsonValue.GetObject("requestTemplates").GetAllObjects(); for(auto& requestTemplatesItem : requestTemplatesJsonMap) { m_requestTemplates[requestTemplatesItem.first] = requestTemplatesItem.second.AsString(); } m_requestTemplatesHasBeenSet = true; } if(jsonValue.ValueExists("responseParameters")) { Aws::Map responseParametersJsonMap = jsonValue.GetObject("responseParameters").GetAllObjects(); for(auto& responseParametersItem : responseParametersJsonMap) { Aws::Map integrationParametersJsonMap = responseParametersItem.second.GetAllObjects(); Aws::Map integrationParametersMap; for(auto& integrationParametersItem : integrationParametersJsonMap) { integrationParametersMap[integrationParametersItem.first] = integrationParametersItem.second.AsString(); } m_responseParameters[responseParametersItem.first] = std::move(integrationParametersMap); } m_responseParametersHasBeenSet = true; } if(jsonValue.ValueExists("templateSelectionExpression")) { m_templateSelectionExpression = jsonValue.GetString("templateSelectionExpression"); m_templateSelectionExpressionHasBeenSet = true; } if(jsonValue.ValueExists("timeoutInMillis")) { m_timeoutInMillis = jsonValue.GetInteger("timeoutInMillis"); m_timeoutInMillisHasBeenSet = true; } if(jsonValue.ValueExists("tlsConfig")) { m_tlsConfig = jsonValue.GetObject("tlsConfig"); m_tlsConfigHasBeenSet = true; } return *this; } JsonValue Integration::Jsonize() const { JsonValue payload; if(m_apiGatewayManagedHasBeenSet) { payload.WithBool("apiGatewayManaged", m_apiGatewayManaged); } if(m_connectionIdHasBeenSet) { payload.WithString("connectionId", m_connectionId); } if(m_connectionTypeHasBeenSet) { payload.WithString("connectionType", ConnectionTypeMapper::GetNameForConnectionType(m_connectionType)); } if(m_contentHandlingStrategyHasBeenSet) { payload.WithString("contentHandlingStrategy", ContentHandlingStrategyMapper::GetNameForContentHandlingStrategy(m_contentHandlingStrategy)); } if(m_credentialsArnHasBeenSet) { payload.WithString("credentialsArn", m_credentialsArn); } if(m_descriptionHasBeenSet) { payload.WithString("description", m_description); } if(m_integrationIdHasBeenSet) { payload.WithString("integrationId", m_integrationId); } if(m_integrationMethodHasBeenSet) { payload.WithString("integrationMethod", m_integrationMethod); } if(m_integrationResponseSelectionExpressionHasBeenSet) { payload.WithString("integrationResponseSelectionExpression", m_integrationResponseSelectionExpression); } if(m_integrationSubtypeHasBeenSet) { payload.WithString("integrationSubtype", m_integrationSubtype); } if(m_integrationTypeHasBeenSet) { payload.WithString("integrationType", IntegrationTypeMapper::GetNameForIntegrationType(m_integrationType)); } if(m_integrationUriHasBeenSet) { payload.WithString("integrationUri", m_integrationUri); } if(m_passthroughBehaviorHasBeenSet) { payload.WithString("passthroughBehavior", PassthroughBehaviorMapper::GetNameForPassthroughBehavior(m_passthroughBehavior)); } if(m_payloadFormatVersionHasBeenSet) { payload.WithString("payloadFormatVersion", m_payloadFormatVersion); } if(m_requestParametersHasBeenSet) { JsonValue requestParametersJsonMap; for(auto& requestParametersItem : m_requestParameters) { requestParametersJsonMap.WithString(requestParametersItem.first, requestParametersItem.second); } payload.WithObject("requestParameters", std::move(requestParametersJsonMap)); } if(m_requestTemplatesHasBeenSet) { JsonValue requestTemplatesJsonMap; for(auto& requestTemplatesItem : m_requestTemplates) { requestTemplatesJsonMap.WithString(requestTemplatesItem.first, requestTemplatesItem.second); } payload.WithObject("requestTemplates", std::move(requestTemplatesJsonMap)); } if(m_responseParametersHasBeenSet) { JsonValue responseParametersJsonMap; for(auto& responseParametersItem : m_responseParameters) { JsonValue integrationParametersJsonMap; for(auto& integrationParametersItem : responseParametersItem.second) { integrationParametersJsonMap.WithString(integrationParametersItem.first, integrationParametersItem.second); } responseParametersJsonMap.WithObject(responseParametersItem.first, std::move(integrationParametersJsonMap)); } payload.WithObject("responseParameters", std::move(responseParametersJsonMap)); } if(m_templateSelectionExpressionHasBeenSet) { payload.WithString("templateSelectionExpression", m_templateSelectionExpression); } if(m_timeoutInMillisHasBeenSet) { payload.WithInteger("timeoutInMillis", m_timeoutInMillis); } if(m_tlsConfigHasBeenSet) { payload.WithObject("tlsConfig", m_tlsConfig.Jsonize()); } return payload; } } // namespace Model } // namespace ApiGatewayV2 } // namespace Aws