packages feed

stratosphere-0.34.0: library-gen/Stratosphere/ResourceProperties/ApiGatewayDeploymentCanarySetting.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-canarysetting.html

module Stratosphere.ResourceProperties.ApiGatewayDeploymentCanarySetting where

import Stratosphere.ResourceImports


-- | Full data type definition for ApiGatewayDeploymentCanarySetting. See
-- 'apiGatewayDeploymentCanarySetting' for a more convenient constructor.
data ApiGatewayDeploymentCanarySetting =
  ApiGatewayDeploymentCanarySetting
  { _apiGatewayDeploymentCanarySettingPercentTraffic :: Maybe (Val Double)
  , _apiGatewayDeploymentCanarySettingStageVariableOverrides :: Maybe Object
  , _apiGatewayDeploymentCanarySettingUseStageCache :: Maybe (Val Bool)
  } deriving (Show, Eq)

instance ToJSON ApiGatewayDeploymentCanarySetting where
  toJSON ApiGatewayDeploymentCanarySetting{..} =
    object $
    catMaybes
    [ fmap (("PercentTraffic",) . toJSON) _apiGatewayDeploymentCanarySettingPercentTraffic
    , fmap (("StageVariableOverrides",) . toJSON) _apiGatewayDeploymentCanarySettingStageVariableOverrides
    , fmap (("UseStageCache",) . toJSON) _apiGatewayDeploymentCanarySettingUseStageCache
    ]

-- | Constructor for 'ApiGatewayDeploymentCanarySetting' containing required
-- fields as arguments.
apiGatewayDeploymentCanarySetting
  :: ApiGatewayDeploymentCanarySetting
apiGatewayDeploymentCanarySetting  =
  ApiGatewayDeploymentCanarySetting
  { _apiGatewayDeploymentCanarySettingPercentTraffic = Nothing
  , _apiGatewayDeploymentCanarySettingStageVariableOverrides = Nothing
  , _apiGatewayDeploymentCanarySettingUseStageCache = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-canarysetting.html#cfn-apigateway-deployment-canarysetting-percenttraffic
agdcsPercentTraffic :: Lens' ApiGatewayDeploymentCanarySetting (Maybe (Val Double))
agdcsPercentTraffic = lens _apiGatewayDeploymentCanarySettingPercentTraffic (\s a -> s { _apiGatewayDeploymentCanarySettingPercentTraffic = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-canarysetting.html#cfn-apigateway-deployment-canarysetting-stagevariableoverrides
agdcsStageVariableOverrides :: Lens' ApiGatewayDeploymentCanarySetting (Maybe Object)
agdcsStageVariableOverrides = lens _apiGatewayDeploymentCanarySettingStageVariableOverrides (\s a -> s { _apiGatewayDeploymentCanarySettingStageVariableOverrides = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-canarysetting.html#cfn-apigateway-deployment-canarysetting-usestagecache
agdcsUseStageCache :: Lens' ApiGatewayDeploymentCanarySetting (Maybe (Val Bool))
agdcsUseStageCache = lens _apiGatewayDeploymentCanarySettingUseStageCache (\s a -> s { _apiGatewayDeploymentCanarySettingUseStageCache = a })