{-# 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.SSM.GetInventorySchema
(
getInventorySchema
, GetInventorySchema
, gisTypeName
, gisAggregator
, gisNextToken
, gisSubType
, gisMaxResults
, getInventorySchemaResponse
, GetInventorySchemaResponse
, gisrsSchemas
, gisrsNextToken
, gisrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.SSM.Types
import Network.AWS.SSM.Types.Product
data GetInventorySchema = GetInventorySchema'
{ _gisTypeName :: !(Maybe Text)
, _gisAggregator :: !(Maybe Bool)
, _gisNextToken :: !(Maybe Text)
, _gisSubType :: !(Maybe Bool)
, _gisMaxResults :: !(Maybe Nat)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getInventorySchema
:: GetInventorySchema
getInventorySchema =
GetInventorySchema'
{ _gisTypeName = Nothing
, _gisAggregator = Nothing
, _gisNextToken = Nothing
, _gisSubType = Nothing
, _gisMaxResults = Nothing
}
gisTypeName :: Lens' GetInventorySchema (Maybe Text)
gisTypeName = lens _gisTypeName (\ s a -> s{_gisTypeName = a})
gisAggregator :: Lens' GetInventorySchema (Maybe Bool)
gisAggregator = lens _gisAggregator (\ s a -> s{_gisAggregator = a})
gisNextToken :: Lens' GetInventorySchema (Maybe Text)
gisNextToken = lens _gisNextToken (\ s a -> s{_gisNextToken = a})
gisSubType :: Lens' GetInventorySchema (Maybe Bool)
gisSubType = lens _gisSubType (\ s a -> s{_gisSubType = a})
gisMaxResults :: Lens' GetInventorySchema (Maybe Natural)
gisMaxResults = lens _gisMaxResults (\ s a -> s{_gisMaxResults = a}) . mapping _Nat
instance AWSRequest GetInventorySchema where
type Rs GetInventorySchema =
GetInventorySchemaResponse
request = postJSON ssm
response
= receiveJSON
(\ s h x ->
GetInventorySchemaResponse' <$>
(x .?> "Schemas" .!@ mempty) <*> (x .?> "NextToken")
<*> (pure (fromEnum s)))
instance Hashable GetInventorySchema where
instance NFData GetInventorySchema where
instance ToHeaders GetInventorySchema where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonSSM.GetInventorySchema" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON GetInventorySchema where
toJSON GetInventorySchema'{..}
= object
(catMaybes
[("TypeName" .=) <$> _gisTypeName,
("Aggregator" .=) <$> _gisAggregator,
("NextToken" .=) <$> _gisNextToken,
("SubType" .=) <$> _gisSubType,
("MaxResults" .=) <$> _gisMaxResults])
instance ToPath GetInventorySchema where
toPath = const "/"
instance ToQuery GetInventorySchema where
toQuery = const mempty
data GetInventorySchemaResponse = GetInventorySchemaResponse'
{ _gisrsSchemas :: !(Maybe [InventoryItemSchema])
, _gisrsNextToken :: !(Maybe Text)
, _gisrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getInventorySchemaResponse
:: Int
-> GetInventorySchemaResponse
getInventorySchemaResponse pResponseStatus_ =
GetInventorySchemaResponse'
{ _gisrsSchemas = Nothing
, _gisrsNextToken = Nothing
, _gisrsResponseStatus = pResponseStatus_
}
gisrsSchemas :: Lens' GetInventorySchemaResponse [InventoryItemSchema]
gisrsSchemas = lens _gisrsSchemas (\ s a -> s{_gisrsSchemas = a}) . _Default . _Coerce
gisrsNextToken :: Lens' GetInventorySchemaResponse (Maybe Text)
gisrsNextToken = lens _gisrsNextToken (\ s a -> s{_gisrsNextToken = a})
gisrsResponseStatus :: Lens' GetInventorySchemaResponse Int
gisrsResponseStatus = lens _gisrsResponseStatus (\ s a -> s{_gisrsResponseStatus = a})
instance NFData GetInventorySchemaResponse where