module Network.AWS.SSM.CreatePatchBaseline
(
createPatchBaseline
, CreatePatchBaseline
, cpbApprovalRules
, cpbClientToken
, cpbOperatingSystem
, cpbGlobalFilters
, cpbApprovedPatchesComplianceLevel
, cpbApprovedPatches
, cpbRejectedPatches
, cpbDescription
, cpbName
, createPatchBaselineResponse
, CreatePatchBaselineResponse
, cpbrsBaselineId
, cpbrsResponseStatus
) 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 CreatePatchBaseline = CreatePatchBaseline'
{ _cpbApprovalRules :: !(Maybe PatchRuleGroup)
, _cpbClientToken :: !(Maybe Text)
, _cpbOperatingSystem :: !(Maybe OperatingSystem)
, _cpbGlobalFilters :: !(Maybe PatchFilterGroup)
, _cpbApprovedPatchesComplianceLevel :: !(Maybe PatchComplianceLevel)
, _cpbApprovedPatches :: !(Maybe [Text])
, _cpbRejectedPatches :: !(Maybe [Text])
, _cpbDescription :: !(Maybe Text)
, _cpbName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createPatchBaseline
:: Text
-> CreatePatchBaseline
createPatchBaseline pName_ =
CreatePatchBaseline'
{ _cpbApprovalRules = Nothing
, _cpbClientToken = Nothing
, _cpbOperatingSystem = Nothing
, _cpbGlobalFilters = Nothing
, _cpbApprovedPatchesComplianceLevel = Nothing
, _cpbApprovedPatches = Nothing
, _cpbRejectedPatches = Nothing
, _cpbDescription = Nothing
, _cpbName = pName_
}
cpbApprovalRules :: Lens' CreatePatchBaseline (Maybe PatchRuleGroup)
cpbApprovalRules = lens _cpbApprovalRules (\ s a -> s{_cpbApprovalRules = a});
cpbClientToken :: Lens' CreatePatchBaseline (Maybe Text)
cpbClientToken = lens _cpbClientToken (\ s a -> s{_cpbClientToken = a});
cpbOperatingSystem :: Lens' CreatePatchBaseline (Maybe OperatingSystem)
cpbOperatingSystem = lens _cpbOperatingSystem (\ s a -> s{_cpbOperatingSystem = a});
cpbGlobalFilters :: Lens' CreatePatchBaseline (Maybe PatchFilterGroup)
cpbGlobalFilters = lens _cpbGlobalFilters (\ s a -> s{_cpbGlobalFilters = a});
cpbApprovedPatchesComplianceLevel :: Lens' CreatePatchBaseline (Maybe PatchComplianceLevel)
cpbApprovedPatchesComplianceLevel = lens _cpbApprovedPatchesComplianceLevel (\ s a -> s{_cpbApprovedPatchesComplianceLevel = a});
cpbApprovedPatches :: Lens' CreatePatchBaseline [Text]
cpbApprovedPatches = lens _cpbApprovedPatches (\ s a -> s{_cpbApprovedPatches = a}) . _Default . _Coerce;
cpbRejectedPatches :: Lens' CreatePatchBaseline [Text]
cpbRejectedPatches = lens _cpbRejectedPatches (\ s a -> s{_cpbRejectedPatches = a}) . _Default . _Coerce;
cpbDescription :: Lens' CreatePatchBaseline (Maybe Text)
cpbDescription = lens _cpbDescription (\ s a -> s{_cpbDescription = a});
cpbName :: Lens' CreatePatchBaseline Text
cpbName = lens _cpbName (\ s a -> s{_cpbName = a});
instance AWSRequest CreatePatchBaseline where
type Rs CreatePatchBaseline =
CreatePatchBaselineResponse
request = postJSON ssm
response
= receiveJSON
(\ s h x ->
CreatePatchBaselineResponse' <$>
(x .?> "BaselineId") <*> (pure (fromEnum s)))
instance Hashable CreatePatchBaseline where
instance NFData CreatePatchBaseline where
instance ToHeaders CreatePatchBaseline where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonSSM.CreatePatchBaseline" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreatePatchBaseline where
toJSON CreatePatchBaseline'{..}
= object
(catMaybes
[("ApprovalRules" .=) <$> _cpbApprovalRules,
("ClientToken" .=) <$> _cpbClientToken,
("OperatingSystem" .=) <$> _cpbOperatingSystem,
("GlobalFilters" .=) <$> _cpbGlobalFilters,
("ApprovedPatchesComplianceLevel" .=) <$>
_cpbApprovedPatchesComplianceLevel,
("ApprovedPatches" .=) <$> _cpbApprovedPatches,
("RejectedPatches" .=) <$> _cpbRejectedPatches,
("Description" .=) <$> _cpbDescription,
Just ("Name" .= _cpbName)])
instance ToPath CreatePatchBaseline where
toPath = const "/"
instance ToQuery CreatePatchBaseline where
toQuery = const mempty
data CreatePatchBaselineResponse = CreatePatchBaselineResponse'
{ _cpbrsBaselineId :: !(Maybe Text)
, _cpbrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createPatchBaselineResponse
:: Int
-> CreatePatchBaselineResponse
createPatchBaselineResponse pResponseStatus_ =
CreatePatchBaselineResponse'
{_cpbrsBaselineId = Nothing, _cpbrsResponseStatus = pResponseStatus_}
cpbrsBaselineId :: Lens' CreatePatchBaselineResponse (Maybe Text)
cpbrsBaselineId = lens _cpbrsBaselineId (\ s a -> s{_cpbrsBaselineId = a});
cpbrsResponseStatus :: Lens' CreatePatchBaselineResponse Int
cpbrsResponseStatus = lens _cpbrsResponseStatus (\ s a -> s{_cpbrsResponseStatus = a});
instance NFData CreatePatchBaselineResponse where