{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.AppSync.CreateResolver
(
createResolver
, CreateResolver
, crResponseMappingTemplate
, crApiId
, crTypeName
, crFieldName
, crDataSourceName
, crRequestMappingTemplate
, createResolverResponse
, CreateResolverResponse
, crrsResolver
, crrsResponseStatus
) where
import Network.AWS.AppSync.Types
import Network.AWS.AppSync.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreateResolver = CreateResolver'
{ _crResponseMappingTemplate :: !(Maybe Text)
, _crApiId :: !Text
, _crTypeName :: !Text
, _crFieldName :: !Text
, _crDataSourceName :: !Text
, _crRequestMappingTemplate :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createResolver
:: Text
-> Text
-> Text
-> Text
-> Text
-> CreateResolver
createResolver pApiId_ pTypeName_ pFieldName_ pDataSourceName_ pRequestMappingTemplate_ =
CreateResolver'
{ _crResponseMappingTemplate = Nothing
, _crApiId = pApiId_
, _crTypeName = pTypeName_
, _crFieldName = pFieldName_
, _crDataSourceName = pDataSourceName_
, _crRequestMappingTemplate = pRequestMappingTemplate_
}
crResponseMappingTemplate :: Lens' CreateResolver (Maybe Text)
crResponseMappingTemplate = lens _crResponseMappingTemplate (\ s a -> s{_crResponseMappingTemplate = a})
crApiId :: Lens' CreateResolver Text
crApiId = lens _crApiId (\ s a -> s{_crApiId = a})
crTypeName :: Lens' CreateResolver Text
crTypeName = lens _crTypeName (\ s a -> s{_crTypeName = a})
crFieldName :: Lens' CreateResolver Text
crFieldName = lens _crFieldName (\ s a -> s{_crFieldName = a})
crDataSourceName :: Lens' CreateResolver Text
crDataSourceName = lens _crDataSourceName (\ s a -> s{_crDataSourceName = a})
crRequestMappingTemplate :: Lens' CreateResolver Text
crRequestMappingTemplate = lens _crRequestMappingTemplate (\ s a -> s{_crRequestMappingTemplate = a})
instance AWSRequest CreateResolver where
type Rs CreateResolver = CreateResolverResponse
request = postJSON appSync
response
= receiveJSON
(\ s h x ->
CreateResolverResponse' <$>
(x .?> "resolver") <*> (pure (fromEnum s)))
instance Hashable CreateResolver where
instance NFData CreateResolver where
instance ToHeaders CreateResolver where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateResolver where
toJSON CreateResolver'{..}
= object
(catMaybes
[("responseMappingTemplate" .=) <$>
_crResponseMappingTemplate,
Just ("fieldName" .= _crFieldName),
Just ("dataSourceName" .= _crDataSourceName),
Just
("requestMappingTemplate" .=
_crRequestMappingTemplate)])
instance ToPath CreateResolver where
toPath CreateResolver'{..}
= mconcat
["/v1/apis/", toBS _crApiId, "/types/",
toBS _crTypeName, "/resolvers"]
instance ToQuery CreateResolver where
toQuery = const mempty
data CreateResolverResponse = CreateResolverResponse'
{ _crrsResolver :: !(Maybe Resolver)
, _crrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createResolverResponse
:: Int
-> CreateResolverResponse
createResolverResponse pResponseStatus_ =
CreateResolverResponse'
{_crrsResolver = Nothing, _crrsResponseStatus = pResponseStatus_}
crrsResolver :: Lens' CreateResolverResponse (Maybe Resolver)
crrsResolver = lens _crrsResolver (\ s a -> s{_crrsResolver = a})
crrsResponseStatus :: Lens' CreateResolverResponse Int
crrsResponseStatus = lens _crrsResponseStatus (\ s a -> s{_crrsResponseStatus = a})
instance NFData CreateResolverResponse where