stratosphere-0.34.0: library-gen/Stratosphere/ResourceProperties/ApiGatewayStageCanarySetting.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html
module Stratosphere.ResourceProperties.ApiGatewayStageCanarySetting where
import Stratosphere.ResourceImports
-- | Full data type definition for ApiGatewayStageCanarySetting. See
-- 'apiGatewayStageCanarySetting' for a more convenient constructor.
data ApiGatewayStageCanarySetting =
ApiGatewayStageCanarySetting
{ _apiGatewayStageCanarySettingDeploymentId :: Maybe (Val Text)
, _apiGatewayStageCanarySettingPercentTraffic :: Maybe (Val Double)
, _apiGatewayStageCanarySettingStageVariableOverrides :: Maybe Object
, _apiGatewayStageCanarySettingUseStageCache :: Maybe (Val Bool)
} deriving (Show, Eq)
instance ToJSON ApiGatewayStageCanarySetting where
toJSON ApiGatewayStageCanarySetting{..} =
object $
catMaybes
[ fmap (("DeploymentId",) . toJSON) _apiGatewayStageCanarySettingDeploymentId
, fmap (("PercentTraffic",) . toJSON) _apiGatewayStageCanarySettingPercentTraffic
, fmap (("StageVariableOverrides",) . toJSON) _apiGatewayStageCanarySettingStageVariableOverrides
, fmap (("UseStageCache",) . toJSON) _apiGatewayStageCanarySettingUseStageCache
]
-- | Constructor for 'ApiGatewayStageCanarySetting' containing required fields
-- as arguments.
apiGatewayStageCanarySetting
:: ApiGatewayStageCanarySetting
apiGatewayStageCanarySetting =
ApiGatewayStageCanarySetting
{ _apiGatewayStageCanarySettingDeploymentId = Nothing
, _apiGatewayStageCanarySettingPercentTraffic = Nothing
, _apiGatewayStageCanarySettingStageVariableOverrides = Nothing
, _apiGatewayStageCanarySettingUseStageCache = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html#cfn-apigateway-stage-canarysetting-deploymentid
agscsDeploymentId :: Lens' ApiGatewayStageCanarySetting (Maybe (Val Text))
agscsDeploymentId = lens _apiGatewayStageCanarySettingDeploymentId (\s a -> s { _apiGatewayStageCanarySettingDeploymentId = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html#cfn-apigateway-stage-canarysetting-percenttraffic
agscsPercentTraffic :: Lens' ApiGatewayStageCanarySetting (Maybe (Val Double))
agscsPercentTraffic = lens _apiGatewayStageCanarySettingPercentTraffic (\s a -> s { _apiGatewayStageCanarySettingPercentTraffic = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html#cfn-apigateway-stage-canarysetting-stagevariableoverrides
agscsStageVariableOverrides :: Lens' ApiGatewayStageCanarySetting (Maybe Object)
agscsStageVariableOverrides = lens _apiGatewayStageCanarySettingStageVariableOverrides (\s a -> s { _apiGatewayStageCanarySettingStageVariableOverrides = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html#cfn-apigateway-stage-canarysetting-usestagecache
agscsUseStageCache :: Lens' ApiGatewayStageCanarySetting (Maybe (Val Bool))
agscsUseStageCache = lens _apiGatewayStageCanarySettingUseStageCache (\s a -> s { _apiGatewayStageCanarySettingUseStageCache = a })