{-# 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.CloudDirectory.CreateSchema
(
createSchema
, CreateSchema
, csName
, createSchemaResponse
, CreateSchemaResponse
, csrsSchemaARN
, csrsResponseStatus
) where
import Network.AWS.CloudDirectory.Types
import Network.AWS.CloudDirectory.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
newtype CreateSchema = CreateSchema'
{ _csName :: Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createSchema
:: Text
-> CreateSchema
createSchema pName_ = CreateSchema' {_csName = pName_}
csName :: Lens' CreateSchema Text
csName = lens _csName (\ s a -> s{_csName = a})
instance AWSRequest CreateSchema where
type Rs CreateSchema = CreateSchemaResponse
request = putJSON cloudDirectory
response
= receiveJSON
(\ s h x ->
CreateSchemaResponse' <$>
(x .?> "SchemaArn") <*> (pure (fromEnum s)))
instance Hashable CreateSchema where
instance NFData CreateSchema where
instance ToHeaders CreateSchema where
toHeaders = const mempty
instance ToJSON CreateSchema where
toJSON CreateSchema'{..}
= object (catMaybes [Just ("Name" .= _csName)])
instance ToPath CreateSchema where
toPath
= const
"/amazonclouddirectory/2017-01-11/schema/create"
instance ToQuery CreateSchema where
toQuery = const mempty
data CreateSchemaResponse = CreateSchemaResponse'
{ _csrsSchemaARN :: !(Maybe Text)
, _csrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createSchemaResponse
:: Int
-> CreateSchemaResponse
createSchemaResponse pResponseStatus_ =
CreateSchemaResponse'
{_csrsSchemaARN = Nothing, _csrsResponseStatus = pResponseStatus_}
csrsSchemaARN :: Lens' CreateSchemaResponse (Maybe Text)
csrsSchemaARN = lens _csrsSchemaARN (\ s a -> s{_csrsSchemaARN = a})
csrsResponseStatus :: Lens' CreateSchemaResponse Int
csrsResponseStatus = lens _csrsResponseStatus (\ s a -> s{_csrsResponseStatus = a})
instance NFData CreateSchemaResponse where