{-# 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.CreateFacet
(
createFacet
, CreateFacet
, cfAttributes
, cfSchemaARN
, cfName
, cfObjectType
, createFacetResponse
, CreateFacetResponse
, cfrsResponseStatus
) 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
data CreateFacet = CreateFacet'
{ _cfAttributes :: !(Maybe [FacetAttribute])
, _cfSchemaARN :: !Text
, _cfName :: !Text
, _cfObjectType :: !ObjectType
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createFacet
:: Text
-> Text
-> ObjectType
-> CreateFacet
createFacet pSchemaARN_ pName_ pObjectType_ =
CreateFacet'
{ _cfAttributes = Nothing
, _cfSchemaARN = pSchemaARN_
, _cfName = pName_
, _cfObjectType = pObjectType_
}
cfAttributes :: Lens' CreateFacet [FacetAttribute]
cfAttributes = lens _cfAttributes (\ s a -> s{_cfAttributes = a}) . _Default . _Coerce
cfSchemaARN :: Lens' CreateFacet Text
cfSchemaARN = lens _cfSchemaARN (\ s a -> s{_cfSchemaARN = a})
cfName :: Lens' CreateFacet Text
cfName = lens _cfName (\ s a -> s{_cfName = a})
cfObjectType :: Lens' CreateFacet ObjectType
cfObjectType = lens _cfObjectType (\ s a -> s{_cfObjectType = a})
instance AWSRequest CreateFacet where
type Rs CreateFacet = CreateFacetResponse
request = putJSON cloudDirectory
response
= receiveEmpty
(\ s h x ->
CreateFacetResponse' <$> (pure (fromEnum s)))
instance Hashable CreateFacet where
instance NFData CreateFacet where
instance ToHeaders CreateFacet where
toHeaders CreateFacet'{..}
= mconcat ["x-amz-data-partition" =# _cfSchemaARN]
instance ToJSON CreateFacet where
toJSON CreateFacet'{..}
= object
(catMaybes
[("Attributes" .=) <$> _cfAttributes,
Just ("Name" .= _cfName),
Just ("ObjectType" .= _cfObjectType)])
instance ToPath CreateFacet where
toPath
= const
"/amazonclouddirectory/2017-01-11/facet/create"
instance ToQuery CreateFacet where
toQuery = const mempty
newtype CreateFacetResponse = CreateFacetResponse'
{ _cfrsResponseStatus :: Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createFacetResponse
:: Int
-> CreateFacetResponse
createFacetResponse pResponseStatus_ =
CreateFacetResponse' {_cfrsResponseStatus = pResponseStatus_}
cfrsResponseStatus :: Lens' CreateFacetResponse Int
cfrsResponseStatus = lens _cfrsResponseStatus (\ s a -> s{_cfrsResponseStatus = a})
instance NFData CreateFacetResponse where