{-# 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.ECR.PutLifecyclePolicy
(
putLifecyclePolicy
, PutLifecyclePolicy
, plpRegistryId
, plpRepositoryName
, plpLifecyclePolicyText
, putLifecyclePolicyResponse
, PutLifecyclePolicyResponse
, plprsRegistryId
, plprsLifecyclePolicyText
, plprsRepositoryName
, plprsResponseStatus
) where
import Network.AWS.ECR.Types
import Network.AWS.ECR.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data PutLifecyclePolicy = PutLifecyclePolicy'
{ _plpRegistryId :: !(Maybe Text)
, _plpRepositoryName :: !Text
, _plpLifecyclePolicyText :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
putLifecyclePolicy
:: Text
-> Text
-> PutLifecyclePolicy
putLifecyclePolicy pRepositoryName_ pLifecyclePolicyText_ =
PutLifecyclePolicy'
{ _plpRegistryId = Nothing
, _plpRepositoryName = pRepositoryName_
, _plpLifecyclePolicyText = pLifecyclePolicyText_
}
plpRegistryId :: Lens' PutLifecyclePolicy (Maybe Text)
plpRegistryId = lens _plpRegistryId (\ s a -> s{_plpRegistryId = a})
plpRepositoryName :: Lens' PutLifecyclePolicy Text
plpRepositoryName = lens _plpRepositoryName (\ s a -> s{_plpRepositoryName = a})
plpLifecyclePolicyText :: Lens' PutLifecyclePolicy Text
plpLifecyclePolicyText = lens _plpLifecyclePolicyText (\ s a -> s{_plpLifecyclePolicyText = a})
instance AWSRequest PutLifecyclePolicy where
type Rs PutLifecyclePolicy =
PutLifecyclePolicyResponse
request = postJSON ecr
response
= receiveJSON
(\ s h x ->
PutLifecyclePolicyResponse' <$>
(x .?> "registryId") <*>
(x .?> "lifecyclePolicyText")
<*> (x .?> "repositoryName")
<*> (pure (fromEnum s)))
instance Hashable PutLifecyclePolicy where
instance NFData PutLifecyclePolicy where
instance ToHeaders PutLifecyclePolicy where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonEC2ContainerRegistry_V20150921.PutLifecyclePolicy"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON PutLifecyclePolicy where
toJSON PutLifecyclePolicy'{..}
= object
(catMaybes
[("registryId" .=) <$> _plpRegistryId,
Just ("repositoryName" .= _plpRepositoryName),
Just
("lifecyclePolicyText" .= _plpLifecyclePolicyText)])
instance ToPath PutLifecyclePolicy where
toPath = const "/"
instance ToQuery PutLifecyclePolicy where
toQuery = const mempty
data PutLifecyclePolicyResponse = PutLifecyclePolicyResponse'
{ _plprsRegistryId :: !(Maybe Text)
, _plprsLifecyclePolicyText :: !(Maybe Text)
, _plprsRepositoryName :: !(Maybe Text)
, _plprsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
putLifecyclePolicyResponse
:: Int
-> PutLifecyclePolicyResponse
putLifecyclePolicyResponse pResponseStatus_ =
PutLifecyclePolicyResponse'
{ _plprsRegistryId = Nothing
, _plprsLifecyclePolicyText = Nothing
, _plprsRepositoryName = Nothing
, _plprsResponseStatus = pResponseStatus_
}
plprsRegistryId :: Lens' PutLifecyclePolicyResponse (Maybe Text)
plprsRegistryId = lens _plprsRegistryId (\ s a -> s{_plprsRegistryId = a})
plprsLifecyclePolicyText :: Lens' PutLifecyclePolicyResponse (Maybe Text)
plprsLifecyclePolicyText = lens _plprsLifecyclePolicyText (\ s a -> s{_plprsLifecyclePolicyText = a})
plprsRepositoryName :: Lens' PutLifecyclePolicyResponse (Maybe Text)
plprsRepositoryName = lens _plprsRepositoryName (\ s a -> s{_plprsRepositoryName = a})
plprsResponseStatus :: Lens' PutLifecyclePolicyResponse Int
plprsResponseStatus = lens _plprsResponseStatus (\ s a -> s{_plprsResponseStatus = a})
instance NFData PutLifecyclePolicyResponse where