module Stratosphere.ResourceProperties.ApiGatewayStageMethodSetting where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
data ApiGatewayStageMethodSetting =
ApiGatewayStageMethodSetting
{ _apiGatewayStageMethodSettingCacheDataEncrypted :: Maybe (Val Bool')
, _apiGatewayStageMethodSettingCacheTtlInSeconds :: Maybe (Val Integer')
, _apiGatewayStageMethodSettingCachingEnabled :: Maybe (Val Bool')
, _apiGatewayStageMethodSettingDataTraceEnabled :: Maybe (Val Bool')
, _apiGatewayStageMethodSettingHttpMethod :: Val Text
, _apiGatewayStageMethodSettingLoggingLevel :: Maybe (Val Text)
, _apiGatewayStageMethodSettingMetricsEnabled :: Maybe (Val Bool')
, _apiGatewayStageMethodSettingResourcePath :: Val Text
, _apiGatewayStageMethodSettingThrottlingBurstLimit :: Maybe (Val Integer')
, _apiGatewayStageMethodSettingThrottlingRateLimit :: Maybe Double'
} deriving (Show, Generic)
instance ToJSON ApiGatewayStageMethodSetting where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }
instance FromJSON ApiGatewayStageMethodSetting where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }
apiGatewayStageMethodSetting
:: Val Text
-> Val Text
-> ApiGatewayStageMethodSetting
apiGatewayStageMethodSetting httpMethodarg resourcePatharg =
ApiGatewayStageMethodSetting
{ _apiGatewayStageMethodSettingCacheDataEncrypted = Nothing
, _apiGatewayStageMethodSettingCacheTtlInSeconds = Nothing
, _apiGatewayStageMethodSettingCachingEnabled = Nothing
, _apiGatewayStageMethodSettingDataTraceEnabled = Nothing
, _apiGatewayStageMethodSettingHttpMethod = httpMethodarg
, _apiGatewayStageMethodSettingLoggingLevel = Nothing
, _apiGatewayStageMethodSettingMetricsEnabled = Nothing
, _apiGatewayStageMethodSettingResourcePath = resourcePatharg
, _apiGatewayStageMethodSettingThrottlingBurstLimit = Nothing
, _apiGatewayStageMethodSettingThrottlingRateLimit = Nothing
}
agsmsCacheDataEncrypted :: Lens' ApiGatewayStageMethodSetting (Maybe (Val Bool'))
agsmsCacheDataEncrypted = lens _apiGatewayStageMethodSettingCacheDataEncrypted (\s a -> s { _apiGatewayStageMethodSettingCacheDataEncrypted = a })
agsmsCacheTtlInSeconds :: Lens' ApiGatewayStageMethodSetting (Maybe (Val Integer'))
agsmsCacheTtlInSeconds = lens _apiGatewayStageMethodSettingCacheTtlInSeconds (\s a -> s { _apiGatewayStageMethodSettingCacheTtlInSeconds = a })
agsmsCachingEnabled :: Lens' ApiGatewayStageMethodSetting (Maybe (Val Bool'))
agsmsCachingEnabled = lens _apiGatewayStageMethodSettingCachingEnabled (\s a -> s { _apiGatewayStageMethodSettingCachingEnabled = a })
agsmsDataTraceEnabled :: Lens' ApiGatewayStageMethodSetting (Maybe (Val Bool'))
agsmsDataTraceEnabled = lens _apiGatewayStageMethodSettingDataTraceEnabled (\s a -> s { _apiGatewayStageMethodSettingDataTraceEnabled = a })
agsmsHttpMethod :: Lens' ApiGatewayStageMethodSetting (Val Text)
agsmsHttpMethod = lens _apiGatewayStageMethodSettingHttpMethod (\s a -> s { _apiGatewayStageMethodSettingHttpMethod = a })
agsmsLoggingLevel :: Lens' ApiGatewayStageMethodSetting (Maybe (Val Text))
agsmsLoggingLevel = lens _apiGatewayStageMethodSettingLoggingLevel (\s a -> s { _apiGatewayStageMethodSettingLoggingLevel = a })
agsmsMetricsEnabled :: Lens' ApiGatewayStageMethodSetting (Maybe (Val Bool'))
agsmsMetricsEnabled = lens _apiGatewayStageMethodSettingMetricsEnabled (\s a -> s { _apiGatewayStageMethodSettingMetricsEnabled = a })
agsmsResourcePath :: Lens' ApiGatewayStageMethodSetting (Val Text)
agsmsResourcePath = lens _apiGatewayStageMethodSettingResourcePath (\s a -> s { _apiGatewayStageMethodSettingResourcePath = a })
agsmsThrottlingBurstLimit :: Lens' ApiGatewayStageMethodSetting (Maybe (Val Integer'))
agsmsThrottlingBurstLimit = lens _apiGatewayStageMethodSettingThrottlingBurstLimit (\s a -> s { _apiGatewayStageMethodSettingThrottlingBurstLimit = a })
agsmsThrottlingRateLimit :: Lens' ApiGatewayStageMethodSetting (Maybe Double')
agsmsThrottlingRateLimit = lens _apiGatewayStageMethodSettingThrottlingRateLimit (\s a -> s { _apiGatewayStageMethodSettingThrottlingRateLimit = a })