module Network.AWS.ECR.DescribeRepositories
(
describeRepositories
, DescribeRepositories
, drRegistryId
, drRepositoryNames
, drNextToken
, drMaxResults
, describeRepositoriesResponse
, DescribeRepositoriesResponse
, drrsRepositories
, drrsNextToken
, drrsResponseStatus
) 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 DescribeRepositories = DescribeRepositories'
{ _drRegistryId :: !(Maybe Text)
, _drRepositoryNames :: !(Maybe (List1 Text))
, _drNextToken :: !(Maybe Text)
, _drMaxResults :: !(Maybe Nat)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeRepositories
:: DescribeRepositories
describeRepositories =
DescribeRepositories'
{ _drRegistryId = Nothing
, _drRepositoryNames = Nothing
, _drNextToken = Nothing
, _drMaxResults = Nothing
}
drRegistryId :: Lens' DescribeRepositories (Maybe Text)
drRegistryId = lens _drRegistryId (\ s a -> s{_drRegistryId = a});
drRepositoryNames :: Lens' DescribeRepositories (Maybe (NonEmpty Text))
drRepositoryNames = lens _drRepositoryNames (\ s a -> s{_drRepositoryNames = a}) . mapping _List1;
drNextToken :: Lens' DescribeRepositories (Maybe Text)
drNextToken = lens _drNextToken (\ s a -> s{_drNextToken = a});
drMaxResults :: Lens' DescribeRepositories (Maybe Natural)
drMaxResults = lens _drMaxResults (\ s a -> s{_drMaxResults = a}) . mapping _Nat;
instance AWSRequest DescribeRepositories where
type Rs DescribeRepositories =
DescribeRepositoriesResponse
request = postJSON ecr
response
= receiveJSON
(\ s h x ->
DescribeRepositoriesResponse' <$>
(x .?> "repositories" .!@ mempty) <*>
(x .?> "nextToken")
<*> (pure (fromEnum s)))
instance Hashable DescribeRepositories
instance ToHeaders DescribeRepositories where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonEC2ContainerRegistry_V20150921.DescribeRepositories"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeRepositories where
toJSON DescribeRepositories'{..}
= object
(catMaybes
[("registryId" .=) <$> _drRegistryId,
("repositoryNames" .=) <$> _drRepositoryNames,
("nextToken" .=) <$> _drNextToken,
("maxResults" .=) <$> _drMaxResults])
instance ToPath DescribeRepositories where
toPath = const "/"
instance ToQuery DescribeRepositories where
toQuery = const mempty
data DescribeRepositoriesResponse = DescribeRepositoriesResponse'
{ _drrsRepositories :: !(Maybe [Repository])
, _drrsNextToken :: !(Maybe Text)
, _drrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeRepositoriesResponse
:: Int
-> DescribeRepositoriesResponse
describeRepositoriesResponse pResponseStatus_ =
DescribeRepositoriesResponse'
{ _drrsRepositories = Nothing
, _drrsNextToken = Nothing
, _drrsResponseStatus = pResponseStatus_
}
drrsRepositories :: Lens' DescribeRepositoriesResponse [Repository]
drrsRepositories = lens _drrsRepositories (\ s a -> s{_drrsRepositories = a}) . _Default . _Coerce;
drrsNextToken :: Lens' DescribeRepositoriesResponse (Maybe Text)
drrsNextToken = lens _drrsNextToken (\ s a -> s{_drrsNextToken = a});
drrsResponseStatus :: Lens' DescribeRepositoriesResponse Int
drrsResponseStatus = lens _drrsResponseStatus (\ s a -> s{_drrsResponseStatus = a});