module Stratosphere.AppSync.GraphQLApi ( module Exports, GraphQLApi(..), mkGraphQLApi ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.AppSync.GraphQLApi.AdditionalAuthenticationProviderProperty as Exports import {-# SOURCE #-} Stratosphere.AppSync.GraphQLApi.EnhancedMetricsConfigProperty as Exports import {-# SOURCE #-} Stratosphere.AppSync.GraphQLApi.LambdaAuthorizerConfigProperty as Exports import {-# SOURCE #-} Stratosphere.AppSync.GraphQLApi.LogConfigProperty as Exports import {-# SOURCE #-} Stratosphere.AppSync.GraphQLApi.OpenIDConnectConfigProperty as Exports import {-# SOURCE #-} Stratosphere.AppSync.GraphQLApi.UserPoolConfigProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Tag import Stratosphere.Value data GraphQLApi = -- | See: GraphQLApi {haddock_workaround_ :: (), -- | See: additionalAuthenticationProviders :: (Prelude.Maybe [AdditionalAuthenticationProviderProperty]), -- | See: apiType :: (Prelude.Maybe (Value Prelude.Text)), -- | See: authenticationType :: (Value Prelude.Text), -- | See: enhancedMetricsConfig :: (Prelude.Maybe EnhancedMetricsConfigProperty), -- | See: environmentVariables :: (Prelude.Maybe JSON.Object), -- | See: introspectionConfig :: (Prelude.Maybe (Value Prelude.Text)), -- | See: lambdaAuthorizerConfig :: (Prelude.Maybe LambdaAuthorizerConfigProperty), -- | See: logConfig :: (Prelude.Maybe LogConfigProperty), -- | See: mergedApiExecutionRoleArn :: (Prelude.Maybe (Value Prelude.Text)), -- | See: name :: (Value Prelude.Text), -- | See: openIDConnectConfig :: (Prelude.Maybe OpenIDConnectConfigProperty), -- | See: ownerContact :: (Prelude.Maybe (Value Prelude.Text)), -- | See: queryDepthLimit :: (Prelude.Maybe (Value Prelude.Integer)), -- | See: resolverCountLimit :: (Prelude.Maybe (Value Prelude.Integer)), -- | See: tags :: (Prelude.Maybe [Tag]), -- | See: userPoolConfig :: (Prelude.Maybe UserPoolConfigProperty), -- | See: visibility :: (Prelude.Maybe (Value Prelude.Text)), -- | See: xrayEnabled :: (Prelude.Maybe (Value Prelude.Bool))} deriving stock (Prelude.Eq, Prelude.Show) mkGraphQLApi :: Value Prelude.Text -> Value Prelude.Text -> GraphQLApi mkGraphQLApi authenticationType name = GraphQLApi {haddock_workaround_ = (), authenticationType = authenticationType, name = name, additionalAuthenticationProviders = Prelude.Nothing, apiType = Prelude.Nothing, enhancedMetricsConfig = Prelude.Nothing, environmentVariables = Prelude.Nothing, introspectionConfig = Prelude.Nothing, lambdaAuthorizerConfig = Prelude.Nothing, logConfig = Prelude.Nothing, mergedApiExecutionRoleArn = Prelude.Nothing, openIDConnectConfig = Prelude.Nothing, ownerContact = Prelude.Nothing, queryDepthLimit = Prelude.Nothing, resolverCountLimit = Prelude.Nothing, tags = Prelude.Nothing, userPoolConfig = Prelude.Nothing, visibility = Prelude.Nothing, xrayEnabled = Prelude.Nothing} instance ToResourceProperties GraphQLApi where toResourceProperties GraphQLApi {..} = ResourceProperties {awsType = "AWS::AppSync::GraphQLApi", supportsTags = Prelude.True, properties = Prelude.fromList ((Prelude.<>) ["AuthenticationType" JSON..= authenticationType, "Name" JSON..= name] (Prelude.catMaybes [(JSON..=) "AdditionalAuthenticationProviders" Prelude.<$> additionalAuthenticationProviders, (JSON..=) "ApiType" Prelude.<$> apiType, (JSON..=) "EnhancedMetricsConfig" Prelude.<$> enhancedMetricsConfig, (JSON..=) "EnvironmentVariables" Prelude.<$> environmentVariables, (JSON..=) "IntrospectionConfig" Prelude.<$> introspectionConfig, (JSON..=) "LambdaAuthorizerConfig" Prelude.<$> lambdaAuthorizerConfig, (JSON..=) "LogConfig" Prelude.<$> logConfig, (JSON..=) "MergedApiExecutionRoleArn" Prelude.<$> mergedApiExecutionRoleArn, (JSON..=) "OpenIDConnectConfig" Prelude.<$> openIDConnectConfig, (JSON..=) "OwnerContact" Prelude.<$> ownerContact, (JSON..=) "QueryDepthLimit" Prelude.<$> queryDepthLimit, (JSON..=) "ResolverCountLimit" Prelude.<$> resolverCountLimit, (JSON..=) "Tags" Prelude.<$> tags, (JSON..=) "UserPoolConfig" Prelude.<$> userPoolConfig, (JSON..=) "Visibility" Prelude.<$> visibility, (JSON..=) "XrayEnabled" Prelude.<$> xrayEnabled]))} instance JSON.ToJSON GraphQLApi where toJSON GraphQLApi {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["AuthenticationType" JSON..= authenticationType, "Name" JSON..= name] (Prelude.catMaybes [(JSON..=) "AdditionalAuthenticationProviders" Prelude.<$> additionalAuthenticationProviders, (JSON..=) "ApiType" Prelude.<$> apiType, (JSON..=) "EnhancedMetricsConfig" Prelude.<$> enhancedMetricsConfig, (JSON..=) "EnvironmentVariables" Prelude.<$> environmentVariables, (JSON..=) "IntrospectionConfig" Prelude.<$> introspectionConfig, (JSON..=) "LambdaAuthorizerConfig" Prelude.<$> lambdaAuthorizerConfig, (JSON..=) "LogConfig" Prelude.<$> logConfig, (JSON..=) "MergedApiExecutionRoleArn" Prelude.<$> mergedApiExecutionRoleArn, (JSON..=) "OpenIDConnectConfig" Prelude.<$> openIDConnectConfig, (JSON..=) "OwnerContact" Prelude.<$> ownerContact, (JSON..=) "QueryDepthLimit" Prelude.<$> queryDepthLimit, (JSON..=) "ResolverCountLimit" Prelude.<$> resolverCountLimit, (JSON..=) "Tags" Prelude.<$> tags, (JSON..=) "UserPoolConfig" Prelude.<$> userPoolConfig, (JSON..=) "Visibility" Prelude.<$> visibility, (JSON..=) "XrayEnabled" Prelude.<$> xrayEnabled]))) instance Property "AdditionalAuthenticationProviders" GraphQLApi where type PropertyType "AdditionalAuthenticationProviders" GraphQLApi = [AdditionalAuthenticationProviderProperty] set newValue GraphQLApi {..} = GraphQLApi {additionalAuthenticationProviders = Prelude.pure newValue, ..} instance Property "ApiType" GraphQLApi where type PropertyType "ApiType" GraphQLApi = Value Prelude.Text set newValue GraphQLApi {..} = GraphQLApi {apiType = Prelude.pure newValue, ..} instance Property "AuthenticationType" GraphQLApi where type PropertyType "AuthenticationType" GraphQLApi = Value Prelude.Text set newValue GraphQLApi {..} = GraphQLApi {authenticationType = newValue, ..} instance Property "EnhancedMetricsConfig" GraphQLApi where type PropertyType "EnhancedMetricsConfig" GraphQLApi = EnhancedMetricsConfigProperty set newValue GraphQLApi {..} = GraphQLApi {enhancedMetricsConfig = Prelude.pure newValue, ..} instance Property "EnvironmentVariables" GraphQLApi where type PropertyType "EnvironmentVariables" GraphQLApi = JSON.Object set newValue GraphQLApi {..} = GraphQLApi {environmentVariables = Prelude.pure newValue, ..} instance Property "IntrospectionConfig" GraphQLApi where type PropertyType "IntrospectionConfig" GraphQLApi = Value Prelude.Text set newValue GraphQLApi {..} = GraphQLApi {introspectionConfig = Prelude.pure newValue, ..} instance Property "LambdaAuthorizerConfig" GraphQLApi where type PropertyType "LambdaAuthorizerConfig" GraphQLApi = LambdaAuthorizerConfigProperty set newValue GraphQLApi {..} = GraphQLApi {lambdaAuthorizerConfig = Prelude.pure newValue, ..} instance Property "LogConfig" GraphQLApi where type PropertyType "LogConfig" GraphQLApi = LogConfigProperty set newValue GraphQLApi {..} = GraphQLApi {logConfig = Prelude.pure newValue, ..} instance Property "MergedApiExecutionRoleArn" GraphQLApi where type PropertyType "MergedApiExecutionRoleArn" GraphQLApi = Value Prelude.Text set newValue GraphQLApi {..} = GraphQLApi {mergedApiExecutionRoleArn = Prelude.pure newValue, ..} instance Property "Name" GraphQLApi where type PropertyType "Name" GraphQLApi = Value Prelude.Text set newValue GraphQLApi {..} = GraphQLApi {name = newValue, ..} instance Property "OpenIDConnectConfig" GraphQLApi where type PropertyType "OpenIDConnectConfig" GraphQLApi = OpenIDConnectConfigProperty set newValue GraphQLApi {..} = GraphQLApi {openIDConnectConfig = Prelude.pure newValue, ..} instance Property "OwnerContact" GraphQLApi where type PropertyType "OwnerContact" GraphQLApi = Value Prelude.Text set newValue GraphQLApi {..} = GraphQLApi {ownerContact = Prelude.pure newValue, ..} instance Property "QueryDepthLimit" GraphQLApi where type PropertyType "QueryDepthLimit" GraphQLApi = Value Prelude.Integer set newValue GraphQLApi {..} = GraphQLApi {queryDepthLimit = Prelude.pure newValue, ..} instance Property "ResolverCountLimit" GraphQLApi where type PropertyType "ResolverCountLimit" GraphQLApi = Value Prelude.Integer set newValue GraphQLApi {..} = GraphQLApi {resolverCountLimit = Prelude.pure newValue, ..} instance Property "Tags" GraphQLApi where type PropertyType "Tags" GraphQLApi = [Tag] set newValue GraphQLApi {..} = GraphQLApi {tags = Prelude.pure newValue, ..} instance Property "UserPoolConfig" GraphQLApi where type PropertyType "UserPoolConfig" GraphQLApi = UserPoolConfigProperty set newValue GraphQLApi {..} = GraphQLApi {userPoolConfig = Prelude.pure newValue, ..} instance Property "Visibility" GraphQLApi where type PropertyType "Visibility" GraphQLApi = Value Prelude.Text set newValue GraphQLApi {..} = GraphQLApi {visibility = Prelude.pure newValue, ..} instance Property "XrayEnabled" GraphQLApi where type PropertyType "XrayEnabled" GraphQLApi = Value Prelude.Bool set newValue GraphQLApi {..} = GraphQLApi {xrayEnabled = Prelude.pure newValue, ..}