packages feed

stratosphere-0.32.0: library-gen/Stratosphere/Resources/ApiGatewayV2RouteResponse.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html

module Stratosphere.Resources.ApiGatewayV2RouteResponse where

import Stratosphere.ResourceImports


-- | Full data type definition for ApiGatewayV2RouteResponse. See
-- 'apiGatewayV2RouteResponse' for a more convenient constructor.
data ApiGatewayV2RouteResponse =
  ApiGatewayV2RouteResponse
  { _apiGatewayV2RouteResponseApiId :: Val Text
  , _apiGatewayV2RouteResponseModelSelectionExpression :: Maybe (Val Text)
  , _apiGatewayV2RouteResponseResponseModels :: Maybe Object
  , _apiGatewayV2RouteResponseResponseParameters :: Maybe Object
  , _apiGatewayV2RouteResponseRouteId :: Val Text
  , _apiGatewayV2RouteResponseRouteResponseKey :: Val Text
  } deriving (Show, Eq)

instance ToJSON ApiGatewayV2RouteResponse where
  toJSON ApiGatewayV2RouteResponse{..} =
    object $
    catMaybes
    [ (Just . ("ApiId",) . toJSON) _apiGatewayV2RouteResponseApiId
    , fmap (("ModelSelectionExpression",) . toJSON) _apiGatewayV2RouteResponseModelSelectionExpression
    , fmap (("ResponseModels",) . toJSON) _apiGatewayV2RouteResponseResponseModels
    , fmap (("ResponseParameters",) . toJSON) _apiGatewayV2RouteResponseResponseParameters
    , (Just . ("RouteId",) . toJSON) _apiGatewayV2RouteResponseRouteId
    , (Just . ("RouteResponseKey",) . toJSON) _apiGatewayV2RouteResponseRouteResponseKey
    ]

-- | Constructor for 'ApiGatewayV2RouteResponse' containing required fields as
-- arguments.
apiGatewayV2RouteResponse
  :: Val Text -- ^ 'agvrrApiId'
  -> Val Text -- ^ 'agvrrRouteId'
  -> Val Text -- ^ 'agvrrRouteResponseKey'
  -> ApiGatewayV2RouteResponse
apiGatewayV2RouteResponse apiIdarg routeIdarg routeResponseKeyarg =
  ApiGatewayV2RouteResponse
  { _apiGatewayV2RouteResponseApiId = apiIdarg
  , _apiGatewayV2RouteResponseModelSelectionExpression = Nothing
  , _apiGatewayV2RouteResponseResponseModels = Nothing
  , _apiGatewayV2RouteResponseResponseParameters = Nothing
  , _apiGatewayV2RouteResponseRouteId = routeIdarg
  , _apiGatewayV2RouteResponseRouteResponseKey = routeResponseKeyarg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-apiid
agvrrApiId :: Lens' ApiGatewayV2RouteResponse (Val Text)
agvrrApiId = lens _apiGatewayV2RouteResponseApiId (\s a -> s { _apiGatewayV2RouteResponseApiId = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-modelselectionexpression
agvrrModelSelectionExpression :: Lens' ApiGatewayV2RouteResponse (Maybe (Val Text))
agvrrModelSelectionExpression = lens _apiGatewayV2RouteResponseModelSelectionExpression (\s a -> s { _apiGatewayV2RouteResponseModelSelectionExpression = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-responsemodels
agvrrResponseModels :: Lens' ApiGatewayV2RouteResponse (Maybe Object)
agvrrResponseModels = lens _apiGatewayV2RouteResponseResponseModels (\s a -> s { _apiGatewayV2RouteResponseResponseModels = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-responseparameters
agvrrResponseParameters :: Lens' ApiGatewayV2RouteResponse (Maybe Object)
agvrrResponseParameters = lens _apiGatewayV2RouteResponseResponseParameters (\s a -> s { _apiGatewayV2RouteResponseResponseParameters = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-routeid
agvrrRouteId :: Lens' ApiGatewayV2RouteResponse (Val Text)
agvrrRouteId = lens _apiGatewayV2RouteResponseRouteId (\s a -> s { _apiGatewayV2RouteResponseRouteId = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-routeresponsekey
agvrrRouteResponseKey :: Lens' ApiGatewayV2RouteResponse (Val Text)
agvrrRouteResponseKey = lens _apiGatewayV2RouteResponseRouteResponseKey (\s a -> s { _apiGatewayV2RouteResponseRouteResponseKey = a })