module Network.AWS.CloudDirectory.CreateObject
(
createObject
, CreateObject
, coParentReference
, coObjectAttributeList
, coLinkName
, coDirectoryARN
, coSchemaFacets
, createObjectResponse
, CreateObjectResponse
, corsObjectIdentifier
, corsResponseStatus
) 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 CreateObject = CreateObject'
{ _coParentReference :: !(Maybe ObjectReference)
, _coObjectAttributeList :: !(Maybe [AttributeKeyAndValue])
, _coLinkName :: !(Maybe Text)
, _coDirectoryARN :: !Text
, _coSchemaFacets :: ![SchemaFacet]
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createObject
:: Text
-> CreateObject
createObject pDirectoryARN_ =
CreateObject'
{ _coParentReference = Nothing
, _coObjectAttributeList = Nothing
, _coLinkName = Nothing
, _coDirectoryARN = pDirectoryARN_
, _coSchemaFacets = mempty
}
coParentReference :: Lens' CreateObject (Maybe ObjectReference)
coParentReference = lens _coParentReference (\ s a -> s{_coParentReference = a});
coObjectAttributeList :: Lens' CreateObject [AttributeKeyAndValue]
coObjectAttributeList = lens _coObjectAttributeList (\ s a -> s{_coObjectAttributeList = a}) . _Default . _Coerce;
coLinkName :: Lens' CreateObject (Maybe Text)
coLinkName = lens _coLinkName (\ s a -> s{_coLinkName = a});
coDirectoryARN :: Lens' CreateObject Text
coDirectoryARN = lens _coDirectoryARN (\ s a -> s{_coDirectoryARN = a});
coSchemaFacets :: Lens' CreateObject [SchemaFacet]
coSchemaFacets = lens _coSchemaFacets (\ s a -> s{_coSchemaFacets = a}) . _Coerce;
instance AWSRequest CreateObject where
type Rs CreateObject = CreateObjectResponse
request = putJSON cloudDirectory
response
= receiveJSON
(\ s h x ->
CreateObjectResponse' <$>
(x .?> "ObjectIdentifier") <*> (pure (fromEnum s)))
instance Hashable CreateObject where
instance NFData CreateObject where
instance ToHeaders CreateObject where
toHeaders CreateObject'{..}
= mconcat ["x-amz-data-partition" =# _coDirectoryARN]
instance ToJSON CreateObject where
toJSON CreateObject'{..}
= object
(catMaybes
[("ParentReference" .=) <$> _coParentReference,
("ObjectAttributeList" .=) <$>
_coObjectAttributeList,
("LinkName" .=) <$> _coLinkName,
Just ("SchemaFacets" .= _coSchemaFacets)])
instance ToPath CreateObject where
toPath
= const "/amazonclouddirectory/2017-01-11/object"
instance ToQuery CreateObject where
toQuery = const mempty
data CreateObjectResponse = CreateObjectResponse'
{ _corsObjectIdentifier :: !(Maybe Text)
, _corsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createObjectResponse
:: Int
-> CreateObjectResponse
createObjectResponse pResponseStatus_ =
CreateObjectResponse'
{_corsObjectIdentifier = Nothing, _corsResponseStatus = pResponseStatus_}
corsObjectIdentifier :: Lens' CreateObjectResponse (Maybe Text)
corsObjectIdentifier = lens _corsObjectIdentifier (\ s a -> s{_corsObjectIdentifier = a});
corsResponseStatus :: Lens' CreateObjectResponse Int
corsResponseStatus = lens _corsResponseStatus (\ s a -> s{_corsResponseStatus = a});
instance NFData CreateObjectResponse where