packages feed

stratosphere-appsync-1.0.0: gen/Stratosphere/AppSync/Resolver.hs

module Stratosphere.AppSync.Resolver (
        module Exports, Resolver(..), mkResolver
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.AppSync.Resolver.AppSyncRuntimeProperty as Exports
import {-# SOURCE #-} Stratosphere.AppSync.Resolver.CachingConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.AppSync.Resolver.PipelineConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.AppSync.Resolver.SyncConfigProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data Resolver
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html>
    Resolver {haddock_workaround_ :: (),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-apiid>
              apiId :: (Value Prelude.Text),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-cachingconfig>
              cachingConfig :: (Prelude.Maybe CachingConfigProperty),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-code>
              code :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-codes3location>
              codeS3Location :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-datasourcename>
              dataSourceName :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-fieldname>
              fieldName :: (Value Prelude.Text),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-kind>
              kind :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-maxbatchsize>
              maxBatchSize :: (Prelude.Maybe (Value Prelude.Integer)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-metricsconfig>
              metricsConfig :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-pipelineconfig>
              pipelineConfig :: (Prelude.Maybe PipelineConfigProperty),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-requestmappingtemplate>
              requestMappingTemplate :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-requestmappingtemplates3location>
              requestMappingTemplateS3Location :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-responsemappingtemplate>
              responseMappingTemplate :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-responsemappingtemplates3location>
              responseMappingTemplateS3Location :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-runtime>
              runtime :: (Prelude.Maybe AppSyncRuntimeProperty),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-syncconfig>
              syncConfig :: (Prelude.Maybe SyncConfigProperty),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-typename>
              typeName :: (Value Prelude.Text)}
  deriving stock (Prelude.Eq, Prelude.Show)
mkResolver ::
  Value Prelude.Text
  -> Value Prelude.Text -> Value Prelude.Text -> Resolver
mkResolver apiId fieldName typeName
  = Resolver
      {haddock_workaround_ = (), apiId = apiId, fieldName = fieldName,
       typeName = typeName, cachingConfig = Prelude.Nothing,
       code = Prelude.Nothing, codeS3Location = Prelude.Nothing,
       dataSourceName = Prelude.Nothing, kind = Prelude.Nothing,
       maxBatchSize = Prelude.Nothing, metricsConfig = Prelude.Nothing,
       pipelineConfig = Prelude.Nothing,
       requestMappingTemplate = Prelude.Nothing,
       requestMappingTemplateS3Location = Prelude.Nothing,
       responseMappingTemplate = Prelude.Nothing,
       responseMappingTemplateS3Location = Prelude.Nothing,
       runtime = Prelude.Nothing, syncConfig = Prelude.Nothing}
instance ToResourceProperties Resolver where
  toResourceProperties Resolver {..}
    = ResourceProperties
        {awsType = "AWS::AppSync::Resolver", supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["ApiId" JSON..= apiId, "FieldName" JSON..= fieldName,
                            "TypeName" JSON..= typeName]
                           (Prelude.catMaybes
                              [(JSON..=) "CachingConfig" Prelude.<$> cachingConfig,
                               (JSON..=) "Code" Prelude.<$> code,
                               (JSON..=) "CodeS3Location" Prelude.<$> codeS3Location,
                               (JSON..=) "DataSourceName" Prelude.<$> dataSourceName,
                               (JSON..=) "Kind" Prelude.<$> kind,
                               (JSON..=) "MaxBatchSize" Prelude.<$> maxBatchSize,
                               (JSON..=) "MetricsConfig" Prelude.<$> metricsConfig,
                               (JSON..=) "PipelineConfig" Prelude.<$> pipelineConfig,
                               (JSON..=) "RequestMappingTemplate"
                                 Prelude.<$> requestMappingTemplate,
                               (JSON..=) "RequestMappingTemplateS3Location"
                                 Prelude.<$> requestMappingTemplateS3Location,
                               (JSON..=) "ResponseMappingTemplate"
                                 Prelude.<$> responseMappingTemplate,
                               (JSON..=) "ResponseMappingTemplateS3Location"
                                 Prelude.<$> responseMappingTemplateS3Location,
                               (JSON..=) "Runtime" Prelude.<$> runtime,
                               (JSON..=) "SyncConfig" Prelude.<$> syncConfig]))}
instance JSON.ToJSON Resolver where
  toJSON Resolver {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["ApiId" JSON..= apiId, "FieldName" JSON..= fieldName,
               "TypeName" JSON..= typeName]
              (Prelude.catMaybes
                 [(JSON..=) "CachingConfig" Prelude.<$> cachingConfig,
                  (JSON..=) "Code" Prelude.<$> code,
                  (JSON..=) "CodeS3Location" Prelude.<$> codeS3Location,
                  (JSON..=) "DataSourceName" Prelude.<$> dataSourceName,
                  (JSON..=) "Kind" Prelude.<$> kind,
                  (JSON..=) "MaxBatchSize" Prelude.<$> maxBatchSize,
                  (JSON..=) "MetricsConfig" Prelude.<$> metricsConfig,
                  (JSON..=) "PipelineConfig" Prelude.<$> pipelineConfig,
                  (JSON..=) "RequestMappingTemplate"
                    Prelude.<$> requestMappingTemplate,
                  (JSON..=) "RequestMappingTemplateS3Location"
                    Prelude.<$> requestMappingTemplateS3Location,
                  (JSON..=) "ResponseMappingTemplate"
                    Prelude.<$> responseMappingTemplate,
                  (JSON..=) "ResponseMappingTemplateS3Location"
                    Prelude.<$> responseMappingTemplateS3Location,
                  (JSON..=) "Runtime" Prelude.<$> runtime,
                  (JSON..=) "SyncConfig" Prelude.<$> syncConfig])))
instance Property "ApiId" Resolver where
  type PropertyType "ApiId" Resolver = Value Prelude.Text
  set newValue Resolver {..} = Resolver {apiId = newValue, ..}
instance Property "CachingConfig" Resolver where
  type PropertyType "CachingConfig" Resolver = CachingConfigProperty
  set newValue Resolver {..}
    = Resolver {cachingConfig = Prelude.pure newValue, ..}
instance Property "Code" Resolver where
  type PropertyType "Code" Resolver = Value Prelude.Text
  set newValue Resolver {..}
    = Resolver {code = Prelude.pure newValue, ..}
instance Property "CodeS3Location" Resolver where
  type PropertyType "CodeS3Location" Resolver = Value Prelude.Text
  set newValue Resolver {..}
    = Resolver {codeS3Location = Prelude.pure newValue, ..}
instance Property "DataSourceName" Resolver where
  type PropertyType "DataSourceName" Resolver = Value Prelude.Text
  set newValue Resolver {..}
    = Resolver {dataSourceName = Prelude.pure newValue, ..}
instance Property "FieldName" Resolver where
  type PropertyType "FieldName" Resolver = Value Prelude.Text
  set newValue Resolver {..} = Resolver {fieldName = newValue, ..}
instance Property "Kind" Resolver where
  type PropertyType "Kind" Resolver = Value Prelude.Text
  set newValue Resolver {..}
    = Resolver {kind = Prelude.pure newValue, ..}
instance Property "MaxBatchSize" Resolver where
  type PropertyType "MaxBatchSize" Resolver = Value Prelude.Integer
  set newValue Resolver {..}
    = Resolver {maxBatchSize = Prelude.pure newValue, ..}
instance Property "MetricsConfig" Resolver where
  type PropertyType "MetricsConfig" Resolver = Value Prelude.Text
  set newValue Resolver {..}
    = Resolver {metricsConfig = Prelude.pure newValue, ..}
instance Property "PipelineConfig" Resolver where
  type PropertyType "PipelineConfig" Resolver = PipelineConfigProperty
  set newValue Resolver {..}
    = Resolver {pipelineConfig = Prelude.pure newValue, ..}
instance Property "RequestMappingTemplate" Resolver where
  type PropertyType "RequestMappingTemplate" Resolver = Value Prelude.Text
  set newValue Resolver {..}
    = Resolver {requestMappingTemplate = Prelude.pure newValue, ..}
instance Property "RequestMappingTemplateS3Location" Resolver where
  type PropertyType "RequestMappingTemplateS3Location" Resolver = Value Prelude.Text
  set newValue Resolver {..}
    = Resolver
        {requestMappingTemplateS3Location = Prelude.pure newValue, ..}
instance Property "ResponseMappingTemplate" Resolver where
  type PropertyType "ResponseMappingTemplate" Resolver = Value Prelude.Text
  set newValue Resolver {..}
    = Resolver {responseMappingTemplate = Prelude.pure newValue, ..}
instance Property "ResponseMappingTemplateS3Location" Resolver where
  type PropertyType "ResponseMappingTemplateS3Location" Resolver = Value Prelude.Text
  set newValue Resolver {..}
    = Resolver
        {responseMappingTemplateS3Location = Prelude.pure newValue, ..}
instance Property "Runtime" Resolver where
  type PropertyType "Runtime" Resolver = AppSyncRuntimeProperty
  set newValue Resolver {..}
    = Resolver {runtime = Prelude.pure newValue, ..}
instance Property "SyncConfig" Resolver where
  type PropertyType "SyncConfig" Resolver = SyncConfigProperty
  set newValue Resolver {..}
    = Resolver {syncConfig = Prelude.pure newValue, ..}
instance Property "TypeName" Resolver where
  type PropertyType "TypeName" Resolver = Value Prelude.Text
  set newValue Resolver {..} = Resolver {typeName = newValue, ..}