stratosphere-0.26.0: library-gen/Stratosphere/ResourceProperties/ApiGatewayMethodIntegration.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html
module Stratosphere.ResourceProperties.ApiGatewayMethodIntegration where
import Stratosphere.ResourceImports
import Stratosphere.Types
import Stratosphere.ResourceProperties.ApiGatewayMethodIntegrationResponse
-- | Full data type definition for ApiGatewayMethodIntegration. See
-- 'apiGatewayMethodIntegration' for a more convenient constructor.
data ApiGatewayMethodIntegration =
ApiGatewayMethodIntegration
{ _apiGatewayMethodIntegrationCacheKeyParameters :: Maybe (ValList Text)
, _apiGatewayMethodIntegrationCacheNamespace :: Maybe (Val Text)
, _apiGatewayMethodIntegrationConnectionId :: Maybe (Val Text)
, _apiGatewayMethodIntegrationConnectionType :: Maybe (Val Text)
, _apiGatewayMethodIntegrationContentHandling :: Maybe (Val Text)
, _apiGatewayMethodIntegrationCredentials :: Maybe (Val Text)
, _apiGatewayMethodIntegrationIntegrationHttpMethod :: Maybe (Val HttpMethod)
, _apiGatewayMethodIntegrationIntegrationResponses :: Maybe [ApiGatewayMethodIntegrationResponse]
, _apiGatewayMethodIntegrationPassthroughBehavior :: Maybe (Val PassthroughBehavior)
, _apiGatewayMethodIntegrationRequestParameters :: Maybe Object
, _apiGatewayMethodIntegrationRequestTemplates :: Maybe Object
, _apiGatewayMethodIntegrationTimeoutInMillis :: Maybe (Val Integer)
, _apiGatewayMethodIntegrationType :: Maybe (Val ApiBackendType)
, _apiGatewayMethodIntegrationUri :: Maybe (Val Text)
} deriving (Show, Eq)
instance ToJSON ApiGatewayMethodIntegration where
toJSON ApiGatewayMethodIntegration{..} =
object $
catMaybes
[ fmap (("CacheKeyParameters",) . toJSON) _apiGatewayMethodIntegrationCacheKeyParameters
, fmap (("CacheNamespace",) . toJSON) _apiGatewayMethodIntegrationCacheNamespace
, fmap (("ConnectionId",) . toJSON) _apiGatewayMethodIntegrationConnectionId
, fmap (("ConnectionType",) . toJSON) _apiGatewayMethodIntegrationConnectionType
, fmap (("ContentHandling",) . toJSON) _apiGatewayMethodIntegrationContentHandling
, fmap (("Credentials",) . toJSON) _apiGatewayMethodIntegrationCredentials
, fmap (("IntegrationHttpMethod",) . toJSON) _apiGatewayMethodIntegrationIntegrationHttpMethod
, fmap (("IntegrationResponses",) . toJSON) _apiGatewayMethodIntegrationIntegrationResponses
, fmap (("PassthroughBehavior",) . toJSON) _apiGatewayMethodIntegrationPassthroughBehavior
, fmap (("RequestParameters",) . toJSON) _apiGatewayMethodIntegrationRequestParameters
, fmap (("RequestTemplates",) . toJSON) _apiGatewayMethodIntegrationRequestTemplates
, fmap (("TimeoutInMillis",) . toJSON . fmap Integer') _apiGatewayMethodIntegrationTimeoutInMillis
, fmap (("Type",) . toJSON) _apiGatewayMethodIntegrationType
, fmap (("Uri",) . toJSON) _apiGatewayMethodIntegrationUri
]
instance FromJSON ApiGatewayMethodIntegration where
parseJSON (Object obj) =
ApiGatewayMethodIntegration <$>
(obj .:? "CacheKeyParameters") <*>
(obj .:? "CacheNamespace") <*>
(obj .:? "ConnectionId") <*>
(obj .:? "ConnectionType") <*>
(obj .:? "ContentHandling") <*>
(obj .:? "Credentials") <*>
(obj .:? "IntegrationHttpMethod") <*>
(obj .:? "IntegrationResponses") <*>
(obj .:? "PassthroughBehavior") <*>
(obj .:? "RequestParameters") <*>
(obj .:? "RequestTemplates") <*>
fmap (fmap (fmap unInteger')) (obj .:? "TimeoutInMillis") <*>
(obj .:? "Type") <*>
(obj .:? "Uri")
parseJSON _ = mempty
-- | Constructor for 'ApiGatewayMethodIntegration' containing required fields
-- as arguments.
apiGatewayMethodIntegration
:: ApiGatewayMethodIntegration
apiGatewayMethodIntegration =
ApiGatewayMethodIntegration
{ _apiGatewayMethodIntegrationCacheKeyParameters = Nothing
, _apiGatewayMethodIntegrationCacheNamespace = Nothing
, _apiGatewayMethodIntegrationConnectionId = Nothing
, _apiGatewayMethodIntegrationConnectionType = Nothing
, _apiGatewayMethodIntegrationContentHandling = Nothing
, _apiGatewayMethodIntegrationCredentials = Nothing
, _apiGatewayMethodIntegrationIntegrationHttpMethod = Nothing
, _apiGatewayMethodIntegrationIntegrationResponses = Nothing
, _apiGatewayMethodIntegrationPassthroughBehavior = Nothing
, _apiGatewayMethodIntegrationRequestParameters = Nothing
, _apiGatewayMethodIntegrationRequestTemplates = Nothing
, _apiGatewayMethodIntegrationTimeoutInMillis = Nothing
, _apiGatewayMethodIntegrationType = Nothing
, _apiGatewayMethodIntegrationUri = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-cachekeyparameters
agmiCacheKeyParameters :: Lens' ApiGatewayMethodIntegration (Maybe (ValList Text))
agmiCacheKeyParameters = lens _apiGatewayMethodIntegrationCacheKeyParameters (\s a -> s { _apiGatewayMethodIntegrationCacheKeyParameters = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-cachenamespace
agmiCacheNamespace :: Lens' ApiGatewayMethodIntegration (Maybe (Val Text))
agmiCacheNamespace = lens _apiGatewayMethodIntegrationCacheNamespace (\s a -> s { _apiGatewayMethodIntegrationCacheNamespace = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-connectionid
agmiConnectionId :: Lens' ApiGatewayMethodIntegration (Maybe (Val Text))
agmiConnectionId = lens _apiGatewayMethodIntegrationConnectionId (\s a -> s { _apiGatewayMethodIntegrationConnectionId = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-connectiontype
agmiConnectionType :: Lens' ApiGatewayMethodIntegration (Maybe (Val Text))
agmiConnectionType = lens _apiGatewayMethodIntegrationConnectionType (\s a -> s { _apiGatewayMethodIntegrationConnectionType = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-contenthandling
agmiContentHandling :: Lens' ApiGatewayMethodIntegration (Maybe (Val Text))
agmiContentHandling = lens _apiGatewayMethodIntegrationContentHandling (\s a -> s { _apiGatewayMethodIntegrationContentHandling = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-credentials
agmiCredentials :: Lens' ApiGatewayMethodIntegration (Maybe (Val Text))
agmiCredentials = lens _apiGatewayMethodIntegrationCredentials (\s a -> s { _apiGatewayMethodIntegrationCredentials = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-integrationhttpmethod
agmiIntegrationHttpMethod :: Lens' ApiGatewayMethodIntegration (Maybe (Val HttpMethod))
agmiIntegrationHttpMethod = lens _apiGatewayMethodIntegrationIntegrationHttpMethod (\s a -> s { _apiGatewayMethodIntegrationIntegrationHttpMethod = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-integrationresponses
agmiIntegrationResponses :: Lens' ApiGatewayMethodIntegration (Maybe [ApiGatewayMethodIntegrationResponse])
agmiIntegrationResponses = lens _apiGatewayMethodIntegrationIntegrationResponses (\s a -> s { _apiGatewayMethodIntegrationIntegrationResponses = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-passthroughbehavior
agmiPassthroughBehavior :: Lens' ApiGatewayMethodIntegration (Maybe (Val PassthroughBehavior))
agmiPassthroughBehavior = lens _apiGatewayMethodIntegrationPassthroughBehavior (\s a -> s { _apiGatewayMethodIntegrationPassthroughBehavior = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-requestparameters
agmiRequestParameters :: Lens' ApiGatewayMethodIntegration (Maybe Object)
agmiRequestParameters = lens _apiGatewayMethodIntegrationRequestParameters (\s a -> s { _apiGatewayMethodIntegrationRequestParameters = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-requesttemplates
agmiRequestTemplates :: Lens' ApiGatewayMethodIntegration (Maybe Object)
agmiRequestTemplates = lens _apiGatewayMethodIntegrationRequestTemplates (\s a -> s { _apiGatewayMethodIntegrationRequestTemplates = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-timeoutinmillis
agmiTimeoutInMillis :: Lens' ApiGatewayMethodIntegration (Maybe (Val Integer))
agmiTimeoutInMillis = lens _apiGatewayMethodIntegrationTimeoutInMillis (\s a -> s { _apiGatewayMethodIntegrationTimeoutInMillis = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-type
agmiType :: Lens' ApiGatewayMethodIntegration (Maybe (Val ApiBackendType))
agmiType = lens _apiGatewayMethodIntegrationType (\s a -> s { _apiGatewayMethodIntegrationType = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-uri
agmiUri :: Lens' ApiGatewayMethodIntegration (Maybe (Val Text))
agmiUri = lens _apiGatewayMethodIntegrationUri (\s a -> s { _apiGatewayMethodIntegrationUri = a })