{-# 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.Batch.RegisterJobDefinition
(
registerJobDefinition
, RegisterJobDefinition
, rjdRetryStrategy
, rjdParameters
, rjdTimeout
, rjdContainerProperties
, rjdJobDefinitionName
, rjdType
, registerJobDefinitionResponse
, RegisterJobDefinitionResponse
, rjdrsResponseStatus
, rjdrsJobDefinitionName
, rjdrsJobDefinitionARN
, rjdrsRevision
) where
import Network.AWS.Batch.Types
import Network.AWS.Batch.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data RegisterJobDefinition = RegisterJobDefinition'
{ _rjdRetryStrategy :: !(Maybe RetryStrategy)
, _rjdParameters :: !(Maybe (Map Text Text))
, _rjdTimeout :: !(Maybe JobTimeout)
, _rjdContainerProperties :: !(Maybe ContainerProperties)
, _rjdJobDefinitionName :: !Text
, _rjdType :: !JobDefinitionType
} deriving (Eq, Read, Show, Data, Typeable, Generic)
registerJobDefinition
:: Text
-> JobDefinitionType
-> RegisterJobDefinition
registerJobDefinition pJobDefinitionName_ pType_ =
RegisterJobDefinition'
{ _rjdRetryStrategy = Nothing
, _rjdParameters = Nothing
, _rjdTimeout = Nothing
, _rjdContainerProperties = Nothing
, _rjdJobDefinitionName = pJobDefinitionName_
, _rjdType = pType_
}
rjdRetryStrategy :: Lens' RegisterJobDefinition (Maybe RetryStrategy)
rjdRetryStrategy = lens _rjdRetryStrategy (\ s a -> s{_rjdRetryStrategy = a})
rjdParameters :: Lens' RegisterJobDefinition (HashMap Text Text)
rjdParameters = lens _rjdParameters (\ s a -> s{_rjdParameters = a}) . _Default . _Map
rjdTimeout :: Lens' RegisterJobDefinition (Maybe JobTimeout)
rjdTimeout = lens _rjdTimeout (\ s a -> s{_rjdTimeout = a})
rjdContainerProperties :: Lens' RegisterJobDefinition (Maybe ContainerProperties)
rjdContainerProperties = lens _rjdContainerProperties (\ s a -> s{_rjdContainerProperties = a})
rjdJobDefinitionName :: Lens' RegisterJobDefinition Text
rjdJobDefinitionName = lens _rjdJobDefinitionName (\ s a -> s{_rjdJobDefinitionName = a})
rjdType :: Lens' RegisterJobDefinition JobDefinitionType
rjdType = lens _rjdType (\ s a -> s{_rjdType = a})
instance AWSRequest RegisterJobDefinition where
type Rs RegisterJobDefinition =
RegisterJobDefinitionResponse
request = postJSON batch
response
= receiveJSON
(\ s h x ->
RegisterJobDefinitionResponse' <$>
(pure (fromEnum s)) <*> (x .:> "jobDefinitionName")
<*> (x .:> "jobDefinitionArn")
<*> (x .:> "revision"))
instance Hashable RegisterJobDefinition where
instance NFData RegisterJobDefinition where
instance ToHeaders RegisterJobDefinition where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON RegisterJobDefinition where
toJSON RegisterJobDefinition'{..}
= object
(catMaybes
[("retryStrategy" .=) <$> _rjdRetryStrategy,
("parameters" .=) <$> _rjdParameters,
("timeout" .=) <$> _rjdTimeout,
("containerProperties" .=) <$>
_rjdContainerProperties,
Just ("jobDefinitionName" .= _rjdJobDefinitionName),
Just ("type" .= _rjdType)])
instance ToPath RegisterJobDefinition where
toPath = const "/v1/registerjobdefinition"
instance ToQuery RegisterJobDefinition where
toQuery = const mempty
data RegisterJobDefinitionResponse = RegisterJobDefinitionResponse'
{ _rjdrsResponseStatus :: !Int
, _rjdrsJobDefinitionName :: !Text
, _rjdrsJobDefinitionARN :: !Text
, _rjdrsRevision :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
registerJobDefinitionResponse
:: Int
-> Text
-> Text
-> Int
-> RegisterJobDefinitionResponse
registerJobDefinitionResponse pResponseStatus_ pJobDefinitionName_ pJobDefinitionARN_ pRevision_ =
RegisterJobDefinitionResponse'
{ _rjdrsResponseStatus = pResponseStatus_
, _rjdrsJobDefinitionName = pJobDefinitionName_
, _rjdrsJobDefinitionARN = pJobDefinitionARN_
, _rjdrsRevision = pRevision_
}
rjdrsResponseStatus :: Lens' RegisterJobDefinitionResponse Int
rjdrsResponseStatus = lens _rjdrsResponseStatus (\ s a -> s{_rjdrsResponseStatus = a})
rjdrsJobDefinitionName :: Lens' RegisterJobDefinitionResponse Text
rjdrsJobDefinitionName = lens _rjdrsJobDefinitionName (\ s a -> s{_rjdrsJobDefinitionName = a})
rjdrsJobDefinitionARN :: Lens' RegisterJobDefinitionResponse Text
rjdrsJobDefinitionARN = lens _rjdrsJobDefinitionARN (\ s a -> s{_rjdrsJobDefinitionARN = a})
rjdrsRevision :: Lens' RegisterJobDefinitionResponse Int
rjdrsRevision = lens _rjdrsRevision (\ s a -> s{_rjdrsRevision = a})
instance NFData RegisterJobDefinitionResponse where