module Network.AWS.EC2.ModifySnapshotAttribute
(
ModifySnapshotAttribute
, modifySnapshotAttribute
, msaAttribute
, msaCreateVolumePermission
, msaDryRun
, msaGroupNames
, msaOperationType
, msaSnapshotId
, msaUserIds
, ModifySnapshotAttributeResponse
, modifySnapshotAttributeResponse
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.EC2.Types
import qualified GHC.Exts
data ModifySnapshotAttribute = ModifySnapshotAttribute
{ _msaAttribute :: Maybe SnapshotAttributeName
, _msaCreateVolumePermission :: Maybe CreateVolumePermissionModifications
, _msaDryRun :: Maybe Bool
, _msaGroupNames :: List "GroupName" Text
, _msaOperationType :: Maybe Text
, _msaSnapshotId :: Text
, _msaUserIds :: List "UserId" Text
} deriving (Eq, Read, Show)
modifySnapshotAttribute :: Text
-> ModifySnapshotAttribute
modifySnapshotAttribute p1 = ModifySnapshotAttribute
{ _msaSnapshotId = p1
, _msaDryRun = Nothing
, _msaAttribute = Nothing
, _msaOperationType = Nothing
, _msaUserIds = mempty
, _msaGroupNames = mempty
, _msaCreateVolumePermission = Nothing
}
msaAttribute :: Lens' ModifySnapshotAttribute (Maybe SnapshotAttributeName)
msaAttribute = lens _msaAttribute (\s a -> s { _msaAttribute = a })
msaCreateVolumePermission :: Lens' ModifySnapshotAttribute (Maybe CreateVolumePermissionModifications)
msaCreateVolumePermission =
lens _msaCreateVolumePermission
(\s a -> s { _msaCreateVolumePermission = a })
msaDryRun :: Lens' ModifySnapshotAttribute (Maybe Bool)
msaDryRun = lens _msaDryRun (\s a -> s { _msaDryRun = a })
msaGroupNames :: Lens' ModifySnapshotAttribute [Text]
msaGroupNames = lens _msaGroupNames (\s a -> s { _msaGroupNames = a }) . _List
msaOperationType :: Lens' ModifySnapshotAttribute (Maybe Text)
msaOperationType = lens _msaOperationType (\s a -> s { _msaOperationType = a })
msaSnapshotId :: Lens' ModifySnapshotAttribute Text
msaSnapshotId = lens _msaSnapshotId (\s a -> s { _msaSnapshotId = a })
msaUserIds :: Lens' ModifySnapshotAttribute [Text]
msaUserIds = lens _msaUserIds (\s a -> s { _msaUserIds = a }) . _List
data ModifySnapshotAttributeResponse = ModifySnapshotAttributeResponse
deriving (Eq, Ord, Read, Show, Generic)
modifySnapshotAttributeResponse :: ModifySnapshotAttributeResponse
modifySnapshotAttributeResponse = ModifySnapshotAttributeResponse
instance ToPath ModifySnapshotAttribute where
toPath = const "/"
instance ToQuery ModifySnapshotAttribute where
toQuery ModifySnapshotAttribute{..} = mconcat
[ "Attribute" =? _msaAttribute
, "CreateVolumePermission" =? _msaCreateVolumePermission
, "DryRun" =? _msaDryRun
, "UserGroup" `toQueryList` _msaGroupNames
, "OperationType" =? _msaOperationType
, "SnapshotId" =? _msaSnapshotId
, "UserId" `toQueryList` _msaUserIds
]
instance ToHeaders ModifySnapshotAttribute
instance AWSRequest ModifySnapshotAttribute where
type Sv ModifySnapshotAttribute = EC2
type Rs ModifySnapshotAttribute = ModifySnapshotAttributeResponse
request = post "ModifySnapshotAttribute"
response = nullResponse ModifySnapshotAttributeResponse