packages feed

stratosphere-apigateway-1.0.0: gen/Stratosphere/ApiGateway/Stage.hs

module Stratosphere.ApiGateway.Stage (
        module Exports, Stage(..), mkStage
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.ApiGateway.Stage.AccessLogSettingProperty as Exports
import {-# SOURCE #-} Stratosphere.ApiGateway.Stage.CanarySettingProperty as Exports
import {-# SOURCE #-} Stratosphere.ApiGateway.Stage.MethodSettingProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Tag
import Stratosphere.Value
data Stage
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html>
    Stage {haddock_workaround_ :: (),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting>
           accessLogSetting :: (Prelude.Maybe AccessLogSettingProperty),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled>
           cacheClusterEnabled :: (Prelude.Maybe (Value Prelude.Bool)),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize>
           cacheClusterSize :: (Prelude.Maybe (Value Prelude.Text)),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting>
           canarySetting :: (Prelude.Maybe CanarySettingProperty),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-clientcertificateid>
           clientCertificateId :: (Prelude.Maybe (Value Prelude.Text)),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-deploymentid>
           deploymentId :: (Prelude.Maybe (Value Prelude.Text)),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-description>
           description :: (Prelude.Maybe (Value Prelude.Text)),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-documentationversion>
           documentationVersion :: (Prelude.Maybe (Value Prelude.Text)),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings>
           methodSettings :: (Prelude.Maybe [MethodSettingProperty]),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-restapiid>
           restApiId :: (Value Prelude.Text),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-stagename>
           stageName :: (Prelude.Maybe (Value Prelude.Text)),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tags>
           tags :: (Prelude.Maybe [Tag]),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled>
           tracingEnabled :: (Prelude.Maybe (Value Prelude.Bool)),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables>
           variables :: (Prelude.Maybe (Prelude.Map Prelude.Text (Value Prelude.Text)))}
  deriving stock (Prelude.Eq, Prelude.Show)
mkStage :: Value Prelude.Text -> Stage
mkStage restApiId
  = Stage
      {haddock_workaround_ = (), restApiId = restApiId,
       accessLogSetting = Prelude.Nothing,
       cacheClusterEnabled = Prelude.Nothing,
       cacheClusterSize = Prelude.Nothing,
       canarySetting = Prelude.Nothing,
       clientCertificateId = Prelude.Nothing,
       deploymentId = Prelude.Nothing, description = Prelude.Nothing,
       documentationVersion = Prelude.Nothing,
       methodSettings = Prelude.Nothing, stageName = Prelude.Nothing,
       tags = Prelude.Nothing, tracingEnabled = Prelude.Nothing,
       variables = Prelude.Nothing}
instance ToResourceProperties Stage where
  toResourceProperties Stage {..}
    = ResourceProperties
        {awsType = "AWS::ApiGateway::Stage", supportsTags = Prelude.True,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["RestApiId" JSON..= restApiId]
                           (Prelude.catMaybes
                              [(JSON..=) "AccessLogSetting" Prelude.<$> accessLogSetting,
                               (JSON..=) "CacheClusterEnabled" Prelude.<$> cacheClusterEnabled,
                               (JSON..=) "CacheClusterSize" Prelude.<$> cacheClusterSize,
                               (JSON..=) "CanarySetting" Prelude.<$> canarySetting,
                               (JSON..=) "ClientCertificateId" Prelude.<$> clientCertificateId,
                               (JSON..=) "DeploymentId" Prelude.<$> deploymentId,
                               (JSON..=) "Description" Prelude.<$> description,
                               (JSON..=) "DocumentationVersion" Prelude.<$> documentationVersion,
                               (JSON..=) "MethodSettings" Prelude.<$> methodSettings,
                               (JSON..=) "StageName" Prelude.<$> stageName,
                               (JSON..=) "Tags" Prelude.<$> tags,
                               (JSON..=) "TracingEnabled" Prelude.<$> tracingEnabled,
                               (JSON..=) "Variables" Prelude.<$> variables]))}
instance JSON.ToJSON Stage where
  toJSON Stage {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["RestApiId" JSON..= restApiId]
              (Prelude.catMaybes
                 [(JSON..=) "AccessLogSetting" Prelude.<$> accessLogSetting,
                  (JSON..=) "CacheClusterEnabled" Prelude.<$> cacheClusterEnabled,
                  (JSON..=) "CacheClusterSize" Prelude.<$> cacheClusterSize,
                  (JSON..=) "CanarySetting" Prelude.<$> canarySetting,
                  (JSON..=) "ClientCertificateId" Prelude.<$> clientCertificateId,
                  (JSON..=) "DeploymentId" Prelude.<$> deploymentId,
                  (JSON..=) "Description" Prelude.<$> description,
                  (JSON..=) "DocumentationVersion" Prelude.<$> documentationVersion,
                  (JSON..=) "MethodSettings" Prelude.<$> methodSettings,
                  (JSON..=) "StageName" Prelude.<$> stageName,
                  (JSON..=) "Tags" Prelude.<$> tags,
                  (JSON..=) "TracingEnabled" Prelude.<$> tracingEnabled,
                  (JSON..=) "Variables" Prelude.<$> variables])))
instance Property "AccessLogSetting" Stage where
  type PropertyType "AccessLogSetting" Stage = AccessLogSettingProperty
  set newValue Stage {..}
    = Stage {accessLogSetting = Prelude.pure newValue, ..}
instance Property "CacheClusterEnabled" Stage where
  type PropertyType "CacheClusterEnabled" Stage = Value Prelude.Bool
  set newValue Stage {..}
    = Stage {cacheClusterEnabled = Prelude.pure newValue, ..}
instance Property "CacheClusterSize" Stage where
  type PropertyType "CacheClusterSize" Stage = Value Prelude.Text
  set newValue Stage {..}
    = Stage {cacheClusterSize = Prelude.pure newValue, ..}
instance Property "CanarySetting" Stage where
  type PropertyType "CanarySetting" Stage = CanarySettingProperty
  set newValue Stage {..}
    = Stage {canarySetting = Prelude.pure newValue, ..}
instance Property "ClientCertificateId" Stage where
  type PropertyType "ClientCertificateId" Stage = Value Prelude.Text
  set newValue Stage {..}
    = Stage {clientCertificateId = Prelude.pure newValue, ..}
instance Property "DeploymentId" Stage where
  type PropertyType "DeploymentId" Stage = Value Prelude.Text
  set newValue Stage {..}
    = Stage {deploymentId = Prelude.pure newValue, ..}
instance Property "Description" Stage where
  type PropertyType "Description" Stage = Value Prelude.Text
  set newValue Stage {..}
    = Stage {description = Prelude.pure newValue, ..}
instance Property "DocumentationVersion" Stage where
  type PropertyType "DocumentationVersion" Stage = Value Prelude.Text
  set newValue Stage {..}
    = Stage {documentationVersion = Prelude.pure newValue, ..}
instance Property "MethodSettings" Stage where
  type PropertyType "MethodSettings" Stage = [MethodSettingProperty]
  set newValue Stage {..}
    = Stage {methodSettings = Prelude.pure newValue, ..}
instance Property "RestApiId" Stage where
  type PropertyType "RestApiId" Stage = Value Prelude.Text
  set newValue Stage {..} = Stage {restApiId = newValue, ..}
instance Property "StageName" Stage where
  type PropertyType "StageName" Stage = Value Prelude.Text
  set newValue Stage {..}
    = Stage {stageName = Prelude.pure newValue, ..}
instance Property "Tags" Stage where
  type PropertyType "Tags" Stage = [Tag]
  set newValue Stage {..} = Stage {tags = Prelude.pure newValue, ..}
instance Property "TracingEnabled" Stage where
  type PropertyType "TracingEnabled" Stage = Value Prelude.Bool
  set newValue Stage {..}
    = Stage {tracingEnabled = Prelude.pure newValue, ..}
instance Property "Variables" Stage where
  type PropertyType "Variables" Stage = Prelude.Map Prelude.Text (Value Prelude.Text)
  set newValue Stage {..}
    = Stage {variables = Prelude.pure newValue, ..}