module Network.AWS.DirectoryService.Types.Product where
import Network.AWS.DirectoryService.Types.Sum
import Network.AWS.Prelude
data Attribute = Attribute'
{ _aValue :: !(Maybe Text)
, _aName :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
attribute
:: Attribute
attribute =
Attribute'
{ _aValue = Nothing
, _aName = Nothing
}
aValue :: Lens' Attribute (Maybe Text)
aValue = lens _aValue (\ s a -> s{_aValue = a});
aName :: Lens' Attribute (Maybe Text)
aName = lens _aName (\ s a -> s{_aName = a});
instance FromJSON Attribute where
parseJSON
= withObject "Attribute"
(\ x ->
Attribute' <$> (x .:? "Value") <*> (x .:? "Name"))
instance ToJSON Attribute where
toJSON Attribute'{..}
= object ["Value" .= _aValue, "Name" .= _aName]
data Computer = Computer'
{ _cComputerId :: !(Maybe Text)
, _cComputerAttributes :: !(Maybe [Attribute])
, _cComputerName :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
computer
:: Computer
computer =
Computer'
{ _cComputerId = Nothing
, _cComputerAttributes = Nothing
, _cComputerName = Nothing
}
cComputerId :: Lens' Computer (Maybe Text)
cComputerId = lens _cComputerId (\ s a -> s{_cComputerId = a});
cComputerAttributes :: Lens' Computer [Attribute]
cComputerAttributes = lens _cComputerAttributes (\ s a -> s{_cComputerAttributes = a}) . _Default . _Coerce;
cComputerName :: Lens' Computer (Maybe Text)
cComputerName = lens _cComputerName (\ s a -> s{_cComputerName = a});
instance FromJSON Computer where
parseJSON
= withObject "Computer"
(\ x ->
Computer' <$>
(x .:? "ComputerId") <*>
(x .:? "ComputerAttributes" .!= mempty)
<*> (x .:? "ComputerName"))
data DirectoryConnectSettings = DirectoryConnectSettings'
{ _dcsVPCId :: !Text
, _dcsSubnetIds :: ![Text]
, _dcsCustomerDNSIPs :: ![Text]
, _dcsCustomerUserName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
directoryConnectSettings
:: Text
-> Text
-> DirectoryConnectSettings
directoryConnectSettings pVPCId_ pCustomerUserName_ =
DirectoryConnectSettings'
{ _dcsVPCId = pVPCId_
, _dcsSubnetIds = mempty
, _dcsCustomerDNSIPs = mempty
, _dcsCustomerUserName = pCustomerUserName_
}
dcsVPCId :: Lens' DirectoryConnectSettings Text
dcsVPCId = lens _dcsVPCId (\ s a -> s{_dcsVPCId = a});
dcsSubnetIds :: Lens' DirectoryConnectSettings [Text]
dcsSubnetIds = lens _dcsSubnetIds (\ s a -> s{_dcsSubnetIds = a}) . _Coerce;
dcsCustomerDNSIPs :: Lens' DirectoryConnectSettings [Text]
dcsCustomerDNSIPs = lens _dcsCustomerDNSIPs (\ s a -> s{_dcsCustomerDNSIPs = a}) . _Coerce;
dcsCustomerUserName :: Lens' DirectoryConnectSettings Text
dcsCustomerUserName = lens _dcsCustomerUserName (\ s a -> s{_dcsCustomerUserName = a});
instance ToJSON DirectoryConnectSettings where
toJSON DirectoryConnectSettings'{..}
= object
["VpcId" .= _dcsVPCId, "SubnetIds" .= _dcsSubnetIds,
"CustomerDnsIps" .= _dcsCustomerDNSIPs,
"CustomerUserName" .= _dcsCustomerUserName]
data DirectoryConnectSettingsDescription = DirectoryConnectSettingsDescription'
{ _dcsdCustomerUserName :: !(Maybe Text)
, _dcsdSubnetIds :: !(Maybe [Text])
, _dcsdVPCId :: !(Maybe Text)
, _dcsdConnectIPs :: !(Maybe [Text])
, _dcsdSecurityGroupId :: !(Maybe Text)
, _dcsdAvailabilityZones :: !(Maybe [Text])
} deriving (Eq,Read,Show,Data,Typeable,Generic)
directoryConnectSettingsDescription
:: DirectoryConnectSettingsDescription
directoryConnectSettingsDescription =
DirectoryConnectSettingsDescription'
{ _dcsdCustomerUserName = Nothing
, _dcsdSubnetIds = Nothing
, _dcsdVPCId = Nothing
, _dcsdConnectIPs = Nothing
, _dcsdSecurityGroupId = Nothing
, _dcsdAvailabilityZones = Nothing
}
dcsdCustomerUserName :: Lens' DirectoryConnectSettingsDescription (Maybe Text)
dcsdCustomerUserName = lens _dcsdCustomerUserName (\ s a -> s{_dcsdCustomerUserName = a});
dcsdSubnetIds :: Lens' DirectoryConnectSettingsDescription [Text]
dcsdSubnetIds = lens _dcsdSubnetIds (\ s a -> s{_dcsdSubnetIds = a}) . _Default . _Coerce;
dcsdVPCId :: Lens' DirectoryConnectSettingsDescription (Maybe Text)
dcsdVPCId = lens _dcsdVPCId (\ s a -> s{_dcsdVPCId = a});
dcsdConnectIPs :: Lens' DirectoryConnectSettingsDescription [Text]
dcsdConnectIPs = lens _dcsdConnectIPs (\ s a -> s{_dcsdConnectIPs = a}) . _Default . _Coerce;
dcsdSecurityGroupId :: Lens' DirectoryConnectSettingsDescription (Maybe Text)
dcsdSecurityGroupId = lens _dcsdSecurityGroupId (\ s a -> s{_dcsdSecurityGroupId = a});
dcsdAvailabilityZones :: Lens' DirectoryConnectSettingsDescription [Text]
dcsdAvailabilityZones = lens _dcsdAvailabilityZones (\ s a -> s{_dcsdAvailabilityZones = a}) . _Default . _Coerce;
instance FromJSON DirectoryConnectSettingsDescription
where
parseJSON
= withObject "DirectoryConnectSettingsDescription"
(\ x ->
DirectoryConnectSettingsDescription' <$>
(x .:? "CustomerUserName") <*>
(x .:? "SubnetIds" .!= mempty)
<*> (x .:? "VpcId")
<*> (x .:? "ConnectIps" .!= mempty)
<*> (x .:? "SecurityGroupId")
<*> (x .:? "AvailabilityZones" .!= mempty))
data DirectoryDescription = DirectoryDescription'
{ _ddRadiusStatus :: !(Maybe RadiusStatus)
, _ddDirectoryId :: !(Maybe Text)
, _ddStage :: !(Maybe DirectoryStage)
, _ddAccessURL :: !(Maybe Text)
, _ddShortName :: !(Maybe Text)
, _ddSize :: !(Maybe DirectorySize)
, _ddRadiusSettings :: !(Maybe RadiusSettings)
, _ddLaunchTime :: !(Maybe POSIX)
, _ddAlias :: !(Maybe Text)
, _ddName :: !(Maybe Text)
, _ddSSOEnabled :: !(Maybe Bool)
, _ddStageLastUpdatedDateTime :: !(Maybe POSIX)
, _ddStageReason :: !(Maybe Text)
, _ddDNSIPAddrs :: !(Maybe [Text])
, _ddVPCSettings :: !(Maybe DirectoryVPCSettingsDescription)
, _ddType :: !(Maybe DirectoryType)
, _ddConnectSettings :: !(Maybe DirectoryConnectSettingsDescription)
, _ddDescription :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
directoryDescription
:: DirectoryDescription
directoryDescription =
DirectoryDescription'
{ _ddRadiusStatus = Nothing
, _ddDirectoryId = Nothing
, _ddStage = Nothing
, _ddAccessURL = Nothing
, _ddShortName = Nothing
, _ddSize = Nothing
, _ddRadiusSettings = Nothing
, _ddLaunchTime = Nothing
, _ddAlias = Nothing
, _ddName = Nothing
, _ddSSOEnabled = Nothing
, _ddStageLastUpdatedDateTime = Nothing
, _ddStageReason = Nothing
, _ddDNSIPAddrs = Nothing
, _ddVPCSettings = Nothing
, _ddType = Nothing
, _ddConnectSettings = Nothing
, _ddDescription = Nothing
}
ddRadiusStatus :: Lens' DirectoryDescription (Maybe RadiusStatus)
ddRadiusStatus = lens _ddRadiusStatus (\ s a -> s{_ddRadiusStatus = a});
ddDirectoryId :: Lens' DirectoryDescription (Maybe Text)
ddDirectoryId = lens _ddDirectoryId (\ s a -> s{_ddDirectoryId = a});
ddStage :: Lens' DirectoryDescription (Maybe DirectoryStage)
ddStage = lens _ddStage (\ s a -> s{_ddStage = a});
ddAccessURL :: Lens' DirectoryDescription (Maybe Text)
ddAccessURL = lens _ddAccessURL (\ s a -> s{_ddAccessURL = a});
ddShortName :: Lens' DirectoryDescription (Maybe Text)
ddShortName = lens _ddShortName (\ s a -> s{_ddShortName = a});
ddSize :: Lens' DirectoryDescription (Maybe DirectorySize)
ddSize = lens _ddSize (\ s a -> s{_ddSize = a});
ddRadiusSettings :: Lens' DirectoryDescription (Maybe RadiusSettings)
ddRadiusSettings = lens _ddRadiusSettings (\ s a -> s{_ddRadiusSettings = a});
ddLaunchTime :: Lens' DirectoryDescription (Maybe UTCTime)
ddLaunchTime = lens _ddLaunchTime (\ s a -> s{_ddLaunchTime = a}) . mapping _Time;
ddAlias :: Lens' DirectoryDescription (Maybe Text)
ddAlias = lens _ddAlias (\ s a -> s{_ddAlias = a});
ddName :: Lens' DirectoryDescription (Maybe Text)
ddName = lens _ddName (\ s a -> s{_ddName = a});
ddSSOEnabled :: Lens' DirectoryDescription (Maybe Bool)
ddSSOEnabled = lens _ddSSOEnabled (\ s a -> s{_ddSSOEnabled = a});
ddStageLastUpdatedDateTime :: Lens' DirectoryDescription (Maybe UTCTime)
ddStageLastUpdatedDateTime = lens _ddStageLastUpdatedDateTime (\ s a -> s{_ddStageLastUpdatedDateTime = a}) . mapping _Time;
ddStageReason :: Lens' DirectoryDescription (Maybe Text)
ddStageReason = lens _ddStageReason (\ s a -> s{_ddStageReason = a});
ddDNSIPAddrs :: Lens' DirectoryDescription [Text]
ddDNSIPAddrs = lens _ddDNSIPAddrs (\ s a -> s{_ddDNSIPAddrs = a}) . _Default . _Coerce;
ddVPCSettings :: Lens' DirectoryDescription (Maybe DirectoryVPCSettingsDescription)
ddVPCSettings = lens _ddVPCSettings (\ s a -> s{_ddVPCSettings = a});
ddType :: Lens' DirectoryDescription (Maybe DirectoryType)
ddType = lens _ddType (\ s a -> s{_ddType = a});
ddConnectSettings :: Lens' DirectoryDescription (Maybe DirectoryConnectSettingsDescription)
ddConnectSettings = lens _ddConnectSettings (\ s a -> s{_ddConnectSettings = a});
ddDescription :: Lens' DirectoryDescription (Maybe Text)
ddDescription = lens _ddDescription (\ s a -> s{_ddDescription = a});
instance FromJSON DirectoryDescription where
parseJSON
= withObject "DirectoryDescription"
(\ x ->
DirectoryDescription' <$>
(x .:? "RadiusStatus") <*> (x .:? "DirectoryId") <*>
(x .:? "Stage")
<*> (x .:? "AccessUrl")
<*> (x .:? "ShortName")
<*> (x .:? "Size")
<*> (x .:? "RadiusSettings")
<*> (x .:? "LaunchTime")
<*> (x .:? "Alias")
<*> (x .:? "Name")
<*> (x .:? "SsoEnabled")
<*> (x .:? "StageLastUpdatedDateTime")
<*> (x .:? "StageReason")
<*> (x .:? "DnsIpAddrs" .!= mempty)
<*> (x .:? "VpcSettings")
<*> (x .:? "Type")
<*> (x .:? "ConnectSettings")
<*> (x .:? "Description"))
data DirectoryLimits = DirectoryLimits'
{ _dlConnectedDirectoriesCurrentCount :: !(Maybe Nat)
, _dlConnectedDirectoriesLimit :: !(Maybe Nat)
, _dlConnectedDirectoriesLimitReached :: !(Maybe Bool)
, _dlCloudOnlyDirectoriesLimit :: !(Maybe Nat)
, _dlCloudOnlyDirectoriesCurrentCount :: !(Maybe Nat)
, _dlCloudOnlyDirectoriesLimitReached :: !(Maybe Bool)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
directoryLimits
:: DirectoryLimits
directoryLimits =
DirectoryLimits'
{ _dlConnectedDirectoriesCurrentCount = Nothing
, _dlConnectedDirectoriesLimit = Nothing
, _dlConnectedDirectoriesLimitReached = Nothing
, _dlCloudOnlyDirectoriesLimit = Nothing
, _dlCloudOnlyDirectoriesCurrentCount = Nothing
, _dlCloudOnlyDirectoriesLimitReached = Nothing
}
dlConnectedDirectoriesCurrentCount :: Lens' DirectoryLimits (Maybe Natural)
dlConnectedDirectoriesCurrentCount = lens _dlConnectedDirectoriesCurrentCount (\ s a -> s{_dlConnectedDirectoriesCurrentCount = a}) . mapping _Nat;
dlConnectedDirectoriesLimit :: Lens' DirectoryLimits (Maybe Natural)
dlConnectedDirectoriesLimit = lens _dlConnectedDirectoriesLimit (\ s a -> s{_dlConnectedDirectoriesLimit = a}) . mapping _Nat;
dlConnectedDirectoriesLimitReached :: Lens' DirectoryLimits (Maybe Bool)
dlConnectedDirectoriesLimitReached = lens _dlConnectedDirectoriesLimitReached (\ s a -> s{_dlConnectedDirectoriesLimitReached = a});
dlCloudOnlyDirectoriesLimit :: Lens' DirectoryLimits (Maybe Natural)
dlCloudOnlyDirectoriesLimit = lens _dlCloudOnlyDirectoriesLimit (\ s a -> s{_dlCloudOnlyDirectoriesLimit = a}) . mapping _Nat;
dlCloudOnlyDirectoriesCurrentCount :: Lens' DirectoryLimits (Maybe Natural)
dlCloudOnlyDirectoriesCurrentCount = lens _dlCloudOnlyDirectoriesCurrentCount (\ s a -> s{_dlCloudOnlyDirectoriesCurrentCount = a}) . mapping _Nat;
dlCloudOnlyDirectoriesLimitReached :: Lens' DirectoryLimits (Maybe Bool)
dlCloudOnlyDirectoriesLimitReached = lens _dlCloudOnlyDirectoriesLimitReached (\ s a -> s{_dlCloudOnlyDirectoriesLimitReached = a});
instance FromJSON DirectoryLimits where
parseJSON
= withObject "DirectoryLimits"
(\ x ->
DirectoryLimits' <$>
(x .:? "ConnectedDirectoriesCurrentCount") <*>
(x .:? "ConnectedDirectoriesLimit")
<*> (x .:? "ConnectedDirectoriesLimitReached")
<*> (x .:? "CloudOnlyDirectoriesLimit")
<*> (x .:? "CloudOnlyDirectoriesCurrentCount")
<*> (x .:? "CloudOnlyDirectoriesLimitReached"))
data DirectoryVPCSettings = DirectoryVPCSettings'
{ _dvsVPCId :: !Text
, _dvsSubnetIds :: ![Text]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
directoryVPCSettings
:: Text
-> DirectoryVPCSettings
directoryVPCSettings pVPCId_ =
DirectoryVPCSettings'
{ _dvsVPCId = pVPCId_
, _dvsSubnetIds = mempty
}
dvsVPCId :: Lens' DirectoryVPCSettings Text
dvsVPCId = lens _dvsVPCId (\ s a -> s{_dvsVPCId = a});
dvsSubnetIds :: Lens' DirectoryVPCSettings [Text]
dvsSubnetIds = lens _dvsSubnetIds (\ s a -> s{_dvsSubnetIds = a}) . _Coerce;
instance ToJSON DirectoryVPCSettings where
toJSON DirectoryVPCSettings'{..}
= object
["VpcId" .= _dvsVPCId, "SubnetIds" .= _dvsSubnetIds]
data DirectoryVPCSettingsDescription = DirectoryVPCSettingsDescription'
{ _dvsdSubnetIds :: !(Maybe [Text])
, _dvsdVPCId :: !(Maybe Text)
, _dvsdSecurityGroupId :: !(Maybe Text)
, _dvsdAvailabilityZones :: !(Maybe [Text])
} deriving (Eq,Read,Show,Data,Typeable,Generic)
directoryVPCSettingsDescription
:: DirectoryVPCSettingsDescription
directoryVPCSettingsDescription =
DirectoryVPCSettingsDescription'
{ _dvsdSubnetIds = Nothing
, _dvsdVPCId = Nothing
, _dvsdSecurityGroupId = Nothing
, _dvsdAvailabilityZones = Nothing
}
dvsdSubnetIds :: Lens' DirectoryVPCSettingsDescription [Text]
dvsdSubnetIds = lens _dvsdSubnetIds (\ s a -> s{_dvsdSubnetIds = a}) . _Default . _Coerce;
dvsdVPCId :: Lens' DirectoryVPCSettingsDescription (Maybe Text)
dvsdVPCId = lens _dvsdVPCId (\ s a -> s{_dvsdVPCId = a});
dvsdSecurityGroupId :: Lens' DirectoryVPCSettingsDescription (Maybe Text)
dvsdSecurityGroupId = lens _dvsdSecurityGroupId (\ s a -> s{_dvsdSecurityGroupId = a});
dvsdAvailabilityZones :: Lens' DirectoryVPCSettingsDescription [Text]
dvsdAvailabilityZones = lens _dvsdAvailabilityZones (\ s a -> s{_dvsdAvailabilityZones = a}) . _Default . _Coerce;
instance FromJSON DirectoryVPCSettingsDescription
where
parseJSON
= withObject "DirectoryVPCSettingsDescription"
(\ x ->
DirectoryVPCSettingsDescription' <$>
(x .:? "SubnetIds" .!= mempty) <*> (x .:? "VpcId")
<*> (x .:? "SecurityGroupId")
<*> (x .:? "AvailabilityZones" .!= mempty))
data RadiusSettings = RadiusSettings'
{ _rsDisplayLabel :: !(Maybe Text)
, _rsRadiusServers :: !(Maybe [Text])
, _rsRadiusRetries :: !(Maybe Nat)
, _rsAuthenticationProtocol :: !(Maybe RadiusAuthenticationProtocol)
, _rsUseSameUsername :: !(Maybe Bool)
, _rsSharedSecret :: !(Maybe (Sensitive Text))
, _rsRadiusTimeout :: !(Maybe Nat)
, _rsRadiusPort :: !(Maybe Nat)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
radiusSettings
:: RadiusSettings
radiusSettings =
RadiusSettings'
{ _rsDisplayLabel = Nothing
, _rsRadiusServers = Nothing
, _rsRadiusRetries = Nothing
, _rsAuthenticationProtocol = Nothing
, _rsUseSameUsername = Nothing
, _rsSharedSecret = Nothing
, _rsRadiusTimeout = Nothing
, _rsRadiusPort = Nothing
}
rsDisplayLabel :: Lens' RadiusSettings (Maybe Text)
rsDisplayLabel = lens _rsDisplayLabel (\ s a -> s{_rsDisplayLabel = a});
rsRadiusServers :: Lens' RadiusSettings [Text]
rsRadiusServers = lens _rsRadiusServers (\ s a -> s{_rsRadiusServers = a}) . _Default . _Coerce;
rsRadiusRetries :: Lens' RadiusSettings (Maybe Natural)
rsRadiusRetries = lens _rsRadiusRetries (\ s a -> s{_rsRadiusRetries = a}) . mapping _Nat;
rsAuthenticationProtocol :: Lens' RadiusSettings (Maybe RadiusAuthenticationProtocol)
rsAuthenticationProtocol = lens _rsAuthenticationProtocol (\ s a -> s{_rsAuthenticationProtocol = a});
rsUseSameUsername :: Lens' RadiusSettings (Maybe Bool)
rsUseSameUsername = lens _rsUseSameUsername (\ s a -> s{_rsUseSameUsername = a});
rsSharedSecret :: Lens' RadiusSettings (Maybe Text)
rsSharedSecret = lens _rsSharedSecret (\ s a -> s{_rsSharedSecret = a}) . mapping _Sensitive;
rsRadiusTimeout :: Lens' RadiusSettings (Maybe Natural)
rsRadiusTimeout = lens _rsRadiusTimeout (\ s a -> s{_rsRadiusTimeout = a}) . mapping _Nat;
rsRadiusPort :: Lens' RadiusSettings (Maybe Natural)
rsRadiusPort = lens _rsRadiusPort (\ s a -> s{_rsRadiusPort = a}) . mapping _Nat;
instance FromJSON RadiusSettings where
parseJSON
= withObject "RadiusSettings"
(\ x ->
RadiusSettings' <$>
(x .:? "DisplayLabel") <*>
(x .:? "RadiusServers" .!= mempty)
<*> (x .:? "RadiusRetries")
<*> (x .:? "AuthenticationProtocol")
<*> (x .:? "UseSameUsername")
<*> (x .:? "SharedSecret")
<*> (x .:? "RadiusTimeout")
<*> (x .:? "RadiusPort"))
instance ToJSON RadiusSettings where
toJSON RadiusSettings'{..}
= object
["DisplayLabel" .= _rsDisplayLabel,
"RadiusServers" .= _rsRadiusServers,
"RadiusRetries" .= _rsRadiusRetries,
"AuthenticationProtocol" .=
_rsAuthenticationProtocol,
"UseSameUsername" .= _rsUseSameUsername,
"SharedSecret" .= _rsSharedSecret,
"RadiusTimeout" .= _rsRadiusTimeout,
"RadiusPort" .= _rsRadiusPort]
data Snapshot = Snapshot'
{ _sDirectoryId :: !(Maybe Text)
, _sStatus :: !(Maybe SnapshotStatus)
, _sStartTime :: !(Maybe POSIX)
, _sName :: !(Maybe Text)
, _sType :: !(Maybe SnapshotType)
, _sSnapshotId :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
snapshot
:: Snapshot
snapshot =
Snapshot'
{ _sDirectoryId = Nothing
, _sStatus = Nothing
, _sStartTime = Nothing
, _sName = Nothing
, _sType = Nothing
, _sSnapshotId = Nothing
}
sDirectoryId :: Lens' Snapshot (Maybe Text)
sDirectoryId = lens _sDirectoryId (\ s a -> s{_sDirectoryId = a});
sStatus :: Lens' Snapshot (Maybe SnapshotStatus)
sStatus = lens _sStatus (\ s a -> s{_sStatus = a});
sStartTime :: Lens' Snapshot (Maybe UTCTime)
sStartTime = lens _sStartTime (\ s a -> s{_sStartTime = a}) . mapping _Time;
sName :: Lens' Snapshot (Maybe Text)
sName = lens _sName (\ s a -> s{_sName = a});
sType :: Lens' Snapshot (Maybe SnapshotType)
sType = lens _sType (\ s a -> s{_sType = a});
sSnapshotId :: Lens' Snapshot (Maybe Text)
sSnapshotId = lens _sSnapshotId (\ s a -> s{_sSnapshotId = a});
instance FromJSON Snapshot where
parseJSON
= withObject "Snapshot"
(\ x ->
Snapshot' <$>
(x .:? "DirectoryId") <*> (x .:? "Status") <*>
(x .:? "StartTime")
<*> (x .:? "Name")
<*> (x .:? "Type")
<*> (x .:? "SnapshotId"))
data SnapshotLimits = SnapshotLimits'
{ _slManualSnapshotsLimitReached :: !(Maybe Bool)
, _slManualSnapshotsCurrentCount :: !(Maybe Nat)
, _slManualSnapshotsLimit :: !(Maybe Nat)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
snapshotLimits
:: SnapshotLimits
snapshotLimits =
SnapshotLimits'
{ _slManualSnapshotsLimitReached = Nothing
, _slManualSnapshotsCurrentCount = Nothing
, _slManualSnapshotsLimit = Nothing
}
slManualSnapshotsLimitReached :: Lens' SnapshotLimits (Maybe Bool)
slManualSnapshotsLimitReached = lens _slManualSnapshotsLimitReached (\ s a -> s{_slManualSnapshotsLimitReached = a});
slManualSnapshotsCurrentCount :: Lens' SnapshotLimits (Maybe Natural)
slManualSnapshotsCurrentCount = lens _slManualSnapshotsCurrentCount (\ s a -> s{_slManualSnapshotsCurrentCount = a}) . mapping _Nat;
slManualSnapshotsLimit :: Lens' SnapshotLimits (Maybe Natural)
slManualSnapshotsLimit = lens _slManualSnapshotsLimit (\ s a -> s{_slManualSnapshotsLimit = a}) . mapping _Nat;
instance FromJSON SnapshotLimits where
parseJSON
= withObject "SnapshotLimits"
(\ x ->
SnapshotLimits' <$>
(x .:? "ManualSnapshotsLimitReached") <*>
(x .:? "ManualSnapshotsCurrentCount")
<*> (x .:? "ManualSnapshotsLimit"))