module Network.AWS.ElasticSearch.DescribeElasticsearchInstanceTypeLimits
(
describeElasticsearchInstanceTypeLimits
, DescribeElasticsearchInstanceTypeLimits
, deitlDomainName
, deitlInstanceType
, deitlElasticsearchVersion
, describeElasticsearchInstanceTypeLimitsResponse
, DescribeElasticsearchInstanceTypeLimitsResponse
, deitlrsLimitsByRole
, deitlrsResponseStatus
) where
import Network.AWS.ElasticSearch.Types
import Network.AWS.ElasticSearch.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeElasticsearchInstanceTypeLimits = DescribeElasticsearchInstanceTypeLimits'
{ _deitlDomainName :: !(Maybe Text)
, _deitlInstanceType :: !ESPartitionInstanceType
, _deitlElasticsearchVersion :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeElasticsearchInstanceTypeLimits
:: ESPartitionInstanceType
-> Text
-> DescribeElasticsearchInstanceTypeLimits
describeElasticsearchInstanceTypeLimits pInstanceType_ pElasticsearchVersion_ =
DescribeElasticsearchInstanceTypeLimits'
{ _deitlDomainName = Nothing
, _deitlInstanceType = pInstanceType_
, _deitlElasticsearchVersion = pElasticsearchVersion_
}
deitlDomainName :: Lens' DescribeElasticsearchInstanceTypeLimits (Maybe Text)
deitlDomainName = lens _deitlDomainName (\ s a -> s{_deitlDomainName = a});
deitlInstanceType :: Lens' DescribeElasticsearchInstanceTypeLimits ESPartitionInstanceType
deitlInstanceType = lens _deitlInstanceType (\ s a -> s{_deitlInstanceType = a});
deitlElasticsearchVersion :: Lens' DescribeElasticsearchInstanceTypeLimits Text
deitlElasticsearchVersion = lens _deitlElasticsearchVersion (\ s a -> s{_deitlElasticsearchVersion = a});
instance AWSRequest
DescribeElasticsearchInstanceTypeLimits
where
type Rs DescribeElasticsearchInstanceTypeLimits =
DescribeElasticsearchInstanceTypeLimitsResponse
request = get elasticSearch
response
= receiveJSON
(\ s h x ->
DescribeElasticsearchInstanceTypeLimitsResponse' <$>
(x .?> "LimitsByRole" .!@ mempty) <*>
(pure (fromEnum s)))
instance Hashable
DescribeElasticsearchInstanceTypeLimits
where
instance NFData
DescribeElasticsearchInstanceTypeLimits
where
instance ToHeaders
DescribeElasticsearchInstanceTypeLimits
where
toHeaders = const mempty
instance ToPath
DescribeElasticsearchInstanceTypeLimits
where
toPath DescribeElasticsearchInstanceTypeLimits'{..}
= mconcat
["/2015-01-01/es/instanceTypeLimits/",
toBS _deitlElasticsearchVersion, "/",
toBS _deitlInstanceType]
instance ToQuery
DescribeElasticsearchInstanceTypeLimits
where
toQuery DescribeElasticsearchInstanceTypeLimits'{..}
= mconcat ["domainName" =: _deitlDomainName]
data DescribeElasticsearchInstanceTypeLimitsResponse = DescribeElasticsearchInstanceTypeLimitsResponse'
{ _deitlrsLimitsByRole :: !(Maybe (Map Text Limits))
, _deitlrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeElasticsearchInstanceTypeLimitsResponse
:: Int
-> DescribeElasticsearchInstanceTypeLimitsResponse
describeElasticsearchInstanceTypeLimitsResponse pResponseStatus_ =
DescribeElasticsearchInstanceTypeLimitsResponse'
{_deitlrsLimitsByRole = Nothing, _deitlrsResponseStatus = pResponseStatus_}
deitlrsLimitsByRole :: Lens' DescribeElasticsearchInstanceTypeLimitsResponse (HashMap Text Limits)
deitlrsLimitsByRole = lens _deitlrsLimitsByRole (\ s a -> s{_deitlrsLimitsByRole = a}) . _Default . _Map;
deitlrsResponseStatus :: Lens' DescribeElasticsearchInstanceTypeLimitsResponse Int
deitlrsResponseStatus = lens _deitlrsResponseStatus (\ s a -> s{_deitlrsResponseStatus = a});
instance NFData
DescribeElasticsearchInstanceTypeLimitsResponse
where