{-# 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.UpdateDataSource
(
updateDataSource
, UpdateDataSource
, udsServiceRoleARN
, udsDynamodbConfig
, udsLambdaConfig
, udsDescription
, udsElasticsearchConfig
, udsApiId
, udsName
, udsType
, updateDataSourceResponse
, UpdateDataSourceResponse
, udsrsDataSource
, udsrsResponseStatus
) 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 UpdateDataSource = UpdateDataSource'
{ _udsServiceRoleARN :: !(Maybe Text)
, _udsDynamodbConfig :: !(Maybe DynamodbDataSourceConfig)
, _udsLambdaConfig :: !(Maybe LambdaDataSourceConfig)
, _udsDescription :: !(Maybe Text)
, _udsElasticsearchConfig :: !(Maybe ElasticsearchDataSourceConfig)
, _udsApiId :: !Text
, _udsName :: !Text
, _udsType :: !DataSourceType
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateDataSource
:: Text
-> Text
-> DataSourceType
-> UpdateDataSource
updateDataSource pApiId_ pName_ pType_ =
UpdateDataSource'
{ _udsServiceRoleARN = Nothing
, _udsDynamodbConfig = Nothing
, _udsLambdaConfig = Nothing
, _udsDescription = Nothing
, _udsElasticsearchConfig = Nothing
, _udsApiId = pApiId_
, _udsName = pName_
, _udsType = pType_
}
udsServiceRoleARN :: Lens' UpdateDataSource (Maybe Text)
udsServiceRoleARN = lens _udsServiceRoleARN (\ s a -> s{_udsServiceRoleARN = a})
udsDynamodbConfig :: Lens' UpdateDataSource (Maybe DynamodbDataSourceConfig)
udsDynamodbConfig = lens _udsDynamodbConfig (\ s a -> s{_udsDynamodbConfig = a})
udsLambdaConfig :: Lens' UpdateDataSource (Maybe LambdaDataSourceConfig)
udsLambdaConfig = lens _udsLambdaConfig (\ s a -> s{_udsLambdaConfig = a})
udsDescription :: Lens' UpdateDataSource (Maybe Text)
udsDescription = lens _udsDescription (\ s a -> s{_udsDescription = a})
udsElasticsearchConfig :: Lens' UpdateDataSource (Maybe ElasticsearchDataSourceConfig)
udsElasticsearchConfig = lens _udsElasticsearchConfig (\ s a -> s{_udsElasticsearchConfig = a})
udsApiId :: Lens' UpdateDataSource Text
udsApiId = lens _udsApiId (\ s a -> s{_udsApiId = a})
udsName :: Lens' UpdateDataSource Text
udsName = lens _udsName (\ s a -> s{_udsName = a})
udsType :: Lens' UpdateDataSource DataSourceType
udsType = lens _udsType (\ s a -> s{_udsType = a})
instance AWSRequest UpdateDataSource where
type Rs UpdateDataSource = UpdateDataSourceResponse
request = postJSON appSync
response
= receiveJSON
(\ s h x ->
UpdateDataSourceResponse' <$>
(x .?> "dataSource") <*> (pure (fromEnum s)))
instance Hashable UpdateDataSource where
instance NFData UpdateDataSource where
instance ToHeaders UpdateDataSource where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON UpdateDataSource where
toJSON UpdateDataSource'{..}
= object
(catMaybes
[("serviceRoleArn" .=) <$> _udsServiceRoleARN,
("dynamodbConfig" .=) <$> _udsDynamodbConfig,
("lambdaConfig" .=) <$> _udsLambdaConfig,
("description" .=) <$> _udsDescription,
("elasticsearchConfig" .=) <$>
_udsElasticsearchConfig,
Just ("type" .= _udsType)])
instance ToPath UpdateDataSource where
toPath UpdateDataSource'{..}
= mconcat
["/v1/apis/", toBS _udsApiId, "/datasources/",
toBS _udsName]
instance ToQuery UpdateDataSource where
toQuery = const mempty
data UpdateDataSourceResponse = UpdateDataSourceResponse'
{ _udsrsDataSource :: !(Maybe DataSource)
, _udsrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateDataSourceResponse
:: Int
-> UpdateDataSourceResponse
updateDataSourceResponse pResponseStatus_ =
UpdateDataSourceResponse'
{_udsrsDataSource = Nothing, _udsrsResponseStatus = pResponseStatus_}
udsrsDataSource :: Lens' UpdateDataSourceResponse (Maybe DataSource)
udsrsDataSource = lens _udsrsDataSource (\ s a -> s{_udsrsDataSource = a})
udsrsResponseStatus :: Lens' UpdateDataSourceResponse Int
udsrsResponseStatus = lens _udsrsResponseStatus (\ s a -> s{_udsrsResponseStatus = a})
instance NFData UpdateDataSourceResponse where