{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module Network.AWS.DirectoryService.Types.Product where
import Network.AWS.DirectoryService.Types.Sum
import Network.AWS.Lens
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 Hashable Attribute where
instance NFData Attribute where
instance ToJSON Attribute where
toJSON Attribute'{..}
= object
(catMaybes
[("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"))
instance Hashable Computer where
instance NFData Computer where
data ConditionalForwarder = ConditionalForwarder'
{ _cfDNSIPAddrs :: !(Maybe [Text])
, _cfRemoteDomainName :: !(Maybe Text)
, _cfReplicationScope :: !(Maybe ReplicationScope)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
conditionalForwarder
:: ConditionalForwarder
conditionalForwarder =
ConditionalForwarder'
{ _cfDNSIPAddrs = Nothing
, _cfRemoteDomainName = Nothing
, _cfReplicationScope = Nothing
}
cfDNSIPAddrs :: Lens' ConditionalForwarder [Text]
cfDNSIPAddrs = lens _cfDNSIPAddrs (\ s a -> s{_cfDNSIPAddrs = a}) . _Default . _Coerce
cfRemoteDomainName :: Lens' ConditionalForwarder (Maybe Text)
cfRemoteDomainName = lens _cfRemoteDomainName (\ s a -> s{_cfRemoteDomainName = a})
cfReplicationScope :: Lens' ConditionalForwarder (Maybe ReplicationScope)
cfReplicationScope = lens _cfReplicationScope (\ s a -> s{_cfReplicationScope = a})
instance FromJSON ConditionalForwarder where
parseJSON
= withObject "ConditionalForwarder"
(\ x ->
ConditionalForwarder' <$>
(x .:? "DnsIpAddrs" .!= mempty) <*>
(x .:? "RemoteDomainName")
<*> (x .:? "ReplicationScope"))
instance Hashable ConditionalForwarder where
instance NFData ConditionalForwarder where
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 Hashable DirectoryConnectSettings where
instance NFData DirectoryConnectSettings where
instance ToJSON DirectoryConnectSettings where
toJSON DirectoryConnectSettings'{..}
= object
(catMaybes
[Just ("VpcId" .= _dcsVPCId),
Just ("SubnetIds" .= _dcsSubnetIds),
Just ("CustomerDnsIps" .= _dcsCustomerDNSIPs),
Just ("CustomerUserName" .= _dcsCustomerUserName)])
data DirectoryConnectSettingsDescription = DirectoryConnectSettingsDescription'
{ _dcsdCustomerUserName :: !(Maybe Text)
, _dcsdSubnetIds :: !(Maybe [Text])
, _dcsdVPCId :: !(Maybe Text)
, _dcsdSecurityGroupId :: !(Maybe Text)
, _dcsdConnectIPs :: !(Maybe [Text])
, _dcsdAvailabilityZones :: !(Maybe [Text])
} deriving (Eq, Read, Show, Data, Typeable, Generic)
directoryConnectSettingsDescription
:: DirectoryConnectSettingsDescription
directoryConnectSettingsDescription =
DirectoryConnectSettingsDescription'
{ _dcsdCustomerUserName = Nothing
, _dcsdSubnetIds = Nothing
, _dcsdVPCId = Nothing
, _dcsdSecurityGroupId = Nothing
, _dcsdConnectIPs = 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})
dcsdSecurityGroupId :: Lens' DirectoryConnectSettingsDescription (Maybe Text)
dcsdSecurityGroupId = lens _dcsdSecurityGroupId (\ s a -> s{_dcsdSecurityGroupId = a})
dcsdConnectIPs :: Lens' DirectoryConnectSettingsDescription [Text]
dcsdConnectIPs = lens _dcsdConnectIPs (\ s a -> s{_dcsdConnectIPs = a}) . _Default . _Coerce
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 .:? "SecurityGroupId")
<*> (x .:? "ConnectIps" .!= mempty)
<*> (x .:? "AvailabilityZones" .!= mempty))
instance Hashable DirectoryConnectSettingsDescription
where
instance NFData DirectoryConnectSettingsDescription
where
data DirectoryDescription = DirectoryDescription'
{ _ddEdition :: !(Maybe DirectoryEdition)
, _ddRadiusStatus :: !(Maybe RadiusStatus)
, _ddStage :: !(Maybe DirectoryStage)
, _ddDirectoryId :: !(Maybe Text)
, _ddAccessURL :: !(Maybe Text)
, _ddShortName :: !(Maybe Text)
, _ddSize :: !(Maybe DirectorySize)
, _ddDesiredNumberOfDomainControllers :: !(Maybe Nat)
, _ddRadiusSettings :: !(Maybe RadiusSettings)
, _ddLaunchTime :: !(Maybe POSIX)
, _ddAlias :: !(Maybe Text)
, _ddName :: !(Maybe Text)
, _ddStageLastUpdatedDateTime :: !(Maybe POSIX)
, _ddSSOEnabled :: !(Maybe Bool)
, _ddDNSIPAddrs :: !(Maybe [Text])
, _ddVPCSettings :: !(Maybe DirectoryVPCSettingsDescription)
, _ddType :: !(Maybe DirectoryType)
, _ddStageReason :: !(Maybe Text)
, _ddConnectSettings :: !(Maybe DirectoryConnectSettingsDescription)
, _ddDescription :: !(Maybe Text)
} deriving (Eq, Show, Data, Typeable, Generic)
directoryDescription
:: DirectoryDescription
directoryDescription =
DirectoryDescription'
{ _ddEdition = Nothing
, _ddRadiusStatus = Nothing
, _ddStage = Nothing
, _ddDirectoryId = Nothing
, _ddAccessURL = Nothing
, _ddShortName = Nothing
, _ddSize = Nothing
, _ddDesiredNumberOfDomainControllers = Nothing
, _ddRadiusSettings = Nothing
, _ddLaunchTime = Nothing
, _ddAlias = Nothing
, _ddName = Nothing
, _ddStageLastUpdatedDateTime = Nothing
, _ddSSOEnabled = Nothing
, _ddDNSIPAddrs = Nothing
, _ddVPCSettings = Nothing
, _ddType = Nothing
, _ddStageReason = Nothing
, _ddConnectSettings = Nothing
, _ddDescription = Nothing
}
ddEdition :: Lens' DirectoryDescription (Maybe DirectoryEdition)
ddEdition = lens _ddEdition (\ s a -> s{_ddEdition = a})
ddRadiusStatus :: Lens' DirectoryDescription (Maybe RadiusStatus)
ddRadiusStatus = lens _ddRadiusStatus (\ s a -> s{_ddRadiusStatus = a})
ddStage :: Lens' DirectoryDescription (Maybe DirectoryStage)
ddStage = lens _ddStage (\ s a -> s{_ddStage = a})
ddDirectoryId :: Lens' DirectoryDescription (Maybe Text)
ddDirectoryId = lens _ddDirectoryId (\ s a -> s{_ddDirectoryId = 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})
ddDesiredNumberOfDomainControllers :: Lens' DirectoryDescription (Maybe Natural)
ddDesiredNumberOfDomainControllers = lens _ddDesiredNumberOfDomainControllers (\ s a -> s{_ddDesiredNumberOfDomainControllers = a}) . mapping _Nat
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})
ddStageLastUpdatedDateTime :: Lens' DirectoryDescription (Maybe UTCTime)
ddStageLastUpdatedDateTime = lens _ddStageLastUpdatedDateTime (\ s a -> s{_ddStageLastUpdatedDateTime = a}) . mapping _Time
ddSSOEnabled :: Lens' DirectoryDescription (Maybe Bool)
ddSSOEnabled = lens _ddSSOEnabled (\ s a -> s{_ddSSOEnabled = 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})
ddStageReason :: Lens' DirectoryDescription (Maybe Text)
ddStageReason = lens _ddStageReason (\ s a -> s{_ddStageReason = 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 .:? "Edition") <*> (x .:? "RadiusStatus") <*>
(x .:? "Stage")
<*> (x .:? "DirectoryId")
<*> (x .:? "AccessUrl")
<*> (x .:? "ShortName")
<*> (x .:? "Size")
<*> (x .:? "DesiredNumberOfDomainControllers")
<*> (x .:? "RadiusSettings")
<*> (x .:? "LaunchTime")
<*> (x .:? "Alias")
<*> (x .:? "Name")
<*> (x .:? "StageLastUpdatedDateTime")
<*> (x .:? "SsoEnabled")
<*> (x .:? "DnsIpAddrs" .!= mempty)
<*> (x .:? "VpcSettings")
<*> (x .:? "Type")
<*> (x .:? "StageReason")
<*> (x .:? "ConnectSettings")
<*> (x .:? "Description"))
instance Hashable DirectoryDescription where
instance NFData DirectoryDescription where
data DirectoryLimits = DirectoryLimits'
{ _dlConnectedDirectoriesCurrentCount :: !(Maybe Nat)
, _dlCloudOnlyMicrosoftADLimitReached :: !(Maybe Bool)
, _dlConnectedDirectoriesLimit :: !(Maybe Nat)
, _dlConnectedDirectoriesLimitReached :: !(Maybe Bool)
, _dlCloudOnlyMicrosoftADLimit :: !(Maybe Nat)
, _dlCloudOnlyDirectoriesLimit :: !(Maybe Nat)
, _dlCloudOnlyDirectoriesCurrentCount :: !(Maybe Nat)
, _dlCloudOnlyDirectoriesLimitReached :: !(Maybe Bool)
, _dlCloudOnlyMicrosoftADCurrentCount :: !(Maybe Nat)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
directoryLimits
:: DirectoryLimits
directoryLimits =
DirectoryLimits'
{ _dlConnectedDirectoriesCurrentCount = Nothing
, _dlCloudOnlyMicrosoftADLimitReached = Nothing
, _dlConnectedDirectoriesLimit = Nothing
, _dlConnectedDirectoriesLimitReached = Nothing
, _dlCloudOnlyMicrosoftADLimit = Nothing
, _dlCloudOnlyDirectoriesLimit = Nothing
, _dlCloudOnlyDirectoriesCurrentCount = Nothing
, _dlCloudOnlyDirectoriesLimitReached = Nothing
, _dlCloudOnlyMicrosoftADCurrentCount = Nothing
}
dlConnectedDirectoriesCurrentCount :: Lens' DirectoryLimits (Maybe Natural)
dlConnectedDirectoriesCurrentCount = lens _dlConnectedDirectoriesCurrentCount (\ s a -> s{_dlConnectedDirectoriesCurrentCount = a}) . mapping _Nat
dlCloudOnlyMicrosoftADLimitReached :: Lens' DirectoryLimits (Maybe Bool)
dlCloudOnlyMicrosoftADLimitReached = lens _dlCloudOnlyMicrosoftADLimitReached (\ s a -> s{_dlCloudOnlyMicrosoftADLimitReached = a})
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})
dlCloudOnlyMicrosoftADLimit :: Lens' DirectoryLimits (Maybe Natural)
dlCloudOnlyMicrosoftADLimit = lens _dlCloudOnlyMicrosoftADLimit (\ s a -> s{_dlCloudOnlyMicrosoftADLimit = a}) . mapping _Nat
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})
dlCloudOnlyMicrosoftADCurrentCount :: Lens' DirectoryLimits (Maybe Natural)
dlCloudOnlyMicrosoftADCurrentCount = lens _dlCloudOnlyMicrosoftADCurrentCount (\ s a -> s{_dlCloudOnlyMicrosoftADCurrentCount = a}) . mapping _Nat
instance FromJSON DirectoryLimits where
parseJSON
= withObject "DirectoryLimits"
(\ x ->
DirectoryLimits' <$>
(x .:? "ConnectedDirectoriesCurrentCount") <*>
(x .:? "CloudOnlyMicrosoftADLimitReached")
<*> (x .:? "ConnectedDirectoriesLimit")
<*> (x .:? "ConnectedDirectoriesLimitReached")
<*> (x .:? "CloudOnlyMicrosoftADLimit")
<*> (x .:? "CloudOnlyDirectoriesLimit")
<*> (x .:? "CloudOnlyDirectoriesCurrentCount")
<*> (x .:? "CloudOnlyDirectoriesLimitReached")
<*> (x .:? "CloudOnlyMicrosoftADCurrentCount"))
instance Hashable DirectoryLimits where
instance NFData DirectoryLimits where
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 Hashable DirectoryVPCSettings where
instance NFData DirectoryVPCSettings where
instance ToJSON DirectoryVPCSettings where
toJSON DirectoryVPCSettings'{..}
= object
(catMaybes
[Just ("VpcId" .= _dvsVPCId),
Just ("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))
instance Hashable DirectoryVPCSettingsDescription
where
instance NFData DirectoryVPCSettingsDescription where
data DomainController = DomainController'
{ _dcStatus :: !(Maybe DomainControllerStatus)
, _dcDirectoryId :: !(Maybe Text)
, _dcVPCId :: !(Maybe Text)
, _dcLaunchTime :: !(Maybe POSIX)
, _dcSubnetId :: !(Maybe Text)
, _dcAvailabilityZone :: !(Maybe Text)
, _dcStatusLastUpdatedDateTime :: !(Maybe POSIX)
, _dcStatusReason :: !(Maybe Text)
, _dcDNSIPAddr :: !(Maybe Text)
, _dcDomainControllerId :: !(Maybe Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
domainController
:: DomainController
domainController =
DomainController'
{ _dcStatus = Nothing
, _dcDirectoryId = Nothing
, _dcVPCId = Nothing
, _dcLaunchTime = Nothing
, _dcSubnetId = Nothing
, _dcAvailabilityZone = Nothing
, _dcStatusLastUpdatedDateTime = Nothing
, _dcStatusReason = Nothing
, _dcDNSIPAddr = Nothing
, _dcDomainControllerId = Nothing
}
dcStatus :: Lens' DomainController (Maybe DomainControllerStatus)
dcStatus = lens _dcStatus (\ s a -> s{_dcStatus = a})
dcDirectoryId :: Lens' DomainController (Maybe Text)
dcDirectoryId = lens _dcDirectoryId (\ s a -> s{_dcDirectoryId = a})
dcVPCId :: Lens' DomainController (Maybe Text)
dcVPCId = lens _dcVPCId (\ s a -> s{_dcVPCId = a})
dcLaunchTime :: Lens' DomainController (Maybe UTCTime)
dcLaunchTime = lens _dcLaunchTime (\ s a -> s{_dcLaunchTime = a}) . mapping _Time
dcSubnetId :: Lens' DomainController (Maybe Text)
dcSubnetId = lens _dcSubnetId (\ s a -> s{_dcSubnetId = a})
dcAvailabilityZone :: Lens' DomainController (Maybe Text)
dcAvailabilityZone = lens _dcAvailabilityZone (\ s a -> s{_dcAvailabilityZone = a})
dcStatusLastUpdatedDateTime :: Lens' DomainController (Maybe UTCTime)
dcStatusLastUpdatedDateTime = lens _dcStatusLastUpdatedDateTime (\ s a -> s{_dcStatusLastUpdatedDateTime = a}) . mapping _Time
dcStatusReason :: Lens' DomainController (Maybe Text)
dcStatusReason = lens _dcStatusReason (\ s a -> s{_dcStatusReason = a})
dcDNSIPAddr :: Lens' DomainController (Maybe Text)
dcDNSIPAddr = lens _dcDNSIPAddr (\ s a -> s{_dcDNSIPAddr = a})
dcDomainControllerId :: Lens' DomainController (Maybe Text)
dcDomainControllerId = lens _dcDomainControllerId (\ s a -> s{_dcDomainControllerId = a})
instance FromJSON DomainController where
parseJSON
= withObject "DomainController"
(\ x ->
DomainController' <$>
(x .:? "Status") <*> (x .:? "DirectoryId") <*>
(x .:? "VpcId")
<*> (x .:? "LaunchTime")
<*> (x .:? "SubnetId")
<*> (x .:? "AvailabilityZone")
<*> (x .:? "StatusLastUpdatedDateTime")
<*> (x .:? "StatusReason")
<*> (x .:? "DnsIpAddr")
<*> (x .:? "DomainControllerId"))
instance Hashable DomainController where
instance NFData DomainController where
data EventTopic = EventTopic'
{ _etStatus :: !(Maybe TopicStatus)
, _etDirectoryId :: !(Maybe Text)
, _etTopicName :: !(Maybe Text)
, _etTopicARN :: !(Maybe Text)
, _etCreatedDateTime :: !(Maybe POSIX)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
eventTopic
:: EventTopic
eventTopic =
EventTopic'
{ _etStatus = Nothing
, _etDirectoryId = Nothing
, _etTopicName = Nothing
, _etTopicARN = Nothing
, _etCreatedDateTime = Nothing
}
etStatus :: Lens' EventTopic (Maybe TopicStatus)
etStatus = lens _etStatus (\ s a -> s{_etStatus = a})
etDirectoryId :: Lens' EventTopic (Maybe Text)
etDirectoryId = lens _etDirectoryId (\ s a -> s{_etDirectoryId = a})
etTopicName :: Lens' EventTopic (Maybe Text)
etTopicName = lens _etTopicName (\ s a -> s{_etTopicName = a})
etTopicARN :: Lens' EventTopic (Maybe Text)
etTopicARN = lens _etTopicARN (\ s a -> s{_etTopicARN = a})
etCreatedDateTime :: Lens' EventTopic (Maybe UTCTime)
etCreatedDateTime = lens _etCreatedDateTime (\ s a -> s{_etCreatedDateTime = a}) . mapping _Time
instance FromJSON EventTopic where
parseJSON
= withObject "EventTopic"
(\ x ->
EventTopic' <$>
(x .:? "Status") <*> (x .:? "DirectoryId") <*>
(x .:? "TopicName")
<*> (x .:? "TopicArn")
<*> (x .:? "CreatedDateTime"))
instance Hashable EventTopic where
instance NFData EventTopic where
data IPRoute = IPRoute'
{ _irCidrIP :: !(Maybe Text)
, _irDescription :: !(Maybe Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
ipRoute
:: IPRoute
ipRoute = IPRoute' {_irCidrIP = Nothing, _irDescription = Nothing}
irCidrIP :: Lens' IPRoute (Maybe Text)
irCidrIP = lens _irCidrIP (\ s a -> s{_irCidrIP = a})
irDescription :: Lens' IPRoute (Maybe Text)
irDescription = lens _irDescription (\ s a -> s{_irDescription = a})
instance Hashable IPRoute where
instance NFData IPRoute where
instance ToJSON IPRoute where
toJSON IPRoute'{..}
= object
(catMaybes
[("CidrIp" .=) <$> _irCidrIP,
("Description" .=) <$> _irDescription])
data IPRouteInfo = IPRouteInfo'
{ _iriDirectoryId :: !(Maybe Text)
, _iriIPRouteStatusReason :: !(Maybe Text)
, _iriAddedDateTime :: !(Maybe POSIX)
, _iriCidrIP :: !(Maybe Text)
, _iriIPRouteStatusMsg :: !(Maybe IPRouteStatusMsg)
, _iriDescription :: !(Maybe Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
ipRouteInfo
:: IPRouteInfo
ipRouteInfo =
IPRouteInfo'
{ _iriDirectoryId = Nothing
, _iriIPRouteStatusReason = Nothing
, _iriAddedDateTime = Nothing
, _iriCidrIP = Nothing
, _iriIPRouteStatusMsg = Nothing
, _iriDescription = Nothing
}
iriDirectoryId :: Lens' IPRouteInfo (Maybe Text)
iriDirectoryId = lens _iriDirectoryId (\ s a -> s{_iriDirectoryId = a})
iriIPRouteStatusReason :: Lens' IPRouteInfo (Maybe Text)
iriIPRouteStatusReason = lens _iriIPRouteStatusReason (\ s a -> s{_iriIPRouteStatusReason = a})
iriAddedDateTime :: Lens' IPRouteInfo (Maybe UTCTime)
iriAddedDateTime = lens _iriAddedDateTime (\ s a -> s{_iriAddedDateTime = a}) . mapping _Time
iriCidrIP :: Lens' IPRouteInfo (Maybe Text)
iriCidrIP = lens _iriCidrIP (\ s a -> s{_iriCidrIP = a})
iriIPRouteStatusMsg :: Lens' IPRouteInfo (Maybe IPRouteStatusMsg)
iriIPRouteStatusMsg = lens _iriIPRouteStatusMsg (\ s a -> s{_iriIPRouteStatusMsg = a})
iriDescription :: Lens' IPRouteInfo (Maybe Text)
iriDescription = lens _iriDescription (\ s a -> s{_iriDescription = a})
instance FromJSON IPRouteInfo where
parseJSON
= withObject "IPRouteInfo"
(\ x ->
IPRouteInfo' <$>
(x .:? "DirectoryId") <*>
(x .:? "IpRouteStatusReason")
<*> (x .:? "AddedDateTime")
<*> (x .:? "CidrIp")
<*> (x .:? "IpRouteStatusMsg")
<*> (x .:? "Description"))
instance Hashable IPRouteInfo where
instance NFData IPRouteInfo where
data RadiusSettings = RadiusSettings'
{ _rsDisplayLabel :: !(Maybe Text)
, _rsRadiusRetries :: !(Maybe Nat)
, _rsAuthenticationProtocol :: !(Maybe RadiusAuthenticationProtocol)
, _rsRadiusServers :: !(Maybe [Text])
, _rsUseSameUsername :: !(Maybe Bool)
, _rsSharedSecret :: !(Maybe (Sensitive Text))
, _rsRadiusTimeout :: !(Maybe Nat)
, _rsRadiusPort :: !(Maybe Nat)
} deriving (Eq, Show, Data, Typeable, Generic)
radiusSettings
:: RadiusSettings
radiusSettings =
RadiusSettings'
{ _rsDisplayLabel = Nothing
, _rsRadiusRetries = Nothing
, _rsAuthenticationProtocol = Nothing
, _rsRadiusServers = Nothing
, _rsUseSameUsername = Nothing
, _rsSharedSecret = Nothing
, _rsRadiusTimeout = Nothing
, _rsRadiusPort = Nothing
}
rsDisplayLabel :: Lens' RadiusSettings (Maybe Text)
rsDisplayLabel = lens _rsDisplayLabel (\ s a -> s{_rsDisplayLabel = a})
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})
rsRadiusServers :: Lens' RadiusSettings [Text]
rsRadiusServers = lens _rsRadiusServers (\ s a -> s{_rsRadiusServers = a}) . _Default . _Coerce
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 .:? "RadiusRetries")
<*> (x .:? "AuthenticationProtocol")
<*> (x .:? "RadiusServers" .!= mempty)
<*> (x .:? "UseSameUsername")
<*> (x .:? "SharedSecret")
<*> (x .:? "RadiusTimeout")
<*> (x .:? "RadiusPort"))
instance Hashable RadiusSettings where
instance NFData RadiusSettings where
instance ToJSON RadiusSettings where
toJSON RadiusSettings'{..}
= object
(catMaybes
[("DisplayLabel" .=) <$> _rsDisplayLabel,
("RadiusRetries" .=) <$> _rsRadiusRetries,
("AuthenticationProtocol" .=) <$>
_rsAuthenticationProtocol,
("RadiusServers" .=) <$> _rsRadiusServers,
("UseSameUsername" .=) <$> _rsUseSameUsername,
("SharedSecret" .=) <$> _rsSharedSecret,
("RadiusTimeout" .=) <$> _rsRadiusTimeout,
("RadiusPort" .=) <$> _rsRadiusPort])
data SchemaExtensionInfo = SchemaExtensionInfo'
{ _seiDirectoryId :: !(Maybe Text)
, _seiSchemaExtensionId :: !(Maybe Text)
, _seiSchemaExtensionStatusReason :: !(Maybe Text)
, _seiSchemaExtensionStatus :: !(Maybe SchemaExtensionStatus)
, _seiDescription :: !(Maybe Text)
, _seiEndDateTime :: !(Maybe POSIX)
, _seiStartDateTime :: !(Maybe POSIX)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
schemaExtensionInfo
:: SchemaExtensionInfo
schemaExtensionInfo =
SchemaExtensionInfo'
{ _seiDirectoryId = Nothing
, _seiSchemaExtensionId = Nothing
, _seiSchemaExtensionStatusReason = Nothing
, _seiSchemaExtensionStatus = Nothing
, _seiDescription = Nothing
, _seiEndDateTime = Nothing
, _seiStartDateTime = Nothing
}
seiDirectoryId :: Lens' SchemaExtensionInfo (Maybe Text)
seiDirectoryId = lens _seiDirectoryId (\ s a -> s{_seiDirectoryId = a})
seiSchemaExtensionId :: Lens' SchemaExtensionInfo (Maybe Text)
seiSchemaExtensionId = lens _seiSchemaExtensionId (\ s a -> s{_seiSchemaExtensionId = a})
seiSchemaExtensionStatusReason :: Lens' SchemaExtensionInfo (Maybe Text)
seiSchemaExtensionStatusReason = lens _seiSchemaExtensionStatusReason (\ s a -> s{_seiSchemaExtensionStatusReason = a})
seiSchemaExtensionStatus :: Lens' SchemaExtensionInfo (Maybe SchemaExtensionStatus)
seiSchemaExtensionStatus = lens _seiSchemaExtensionStatus (\ s a -> s{_seiSchemaExtensionStatus = a})
seiDescription :: Lens' SchemaExtensionInfo (Maybe Text)
seiDescription = lens _seiDescription (\ s a -> s{_seiDescription = a})
seiEndDateTime :: Lens' SchemaExtensionInfo (Maybe UTCTime)
seiEndDateTime = lens _seiEndDateTime (\ s a -> s{_seiEndDateTime = a}) . mapping _Time
seiStartDateTime :: Lens' SchemaExtensionInfo (Maybe UTCTime)
seiStartDateTime = lens _seiStartDateTime (\ s a -> s{_seiStartDateTime = a}) . mapping _Time
instance FromJSON SchemaExtensionInfo where
parseJSON
= withObject "SchemaExtensionInfo"
(\ x ->
SchemaExtensionInfo' <$>
(x .:? "DirectoryId") <*> (x .:? "SchemaExtensionId")
<*> (x .:? "SchemaExtensionStatusReason")
<*> (x .:? "SchemaExtensionStatus")
<*> (x .:? "Description")
<*> (x .:? "EndDateTime")
<*> (x .:? "StartDateTime"))
instance Hashable SchemaExtensionInfo where
instance NFData SchemaExtensionInfo where
data Snapshot = Snapshot'
{ _sStatus :: !(Maybe SnapshotStatus)
, _sDirectoryId :: !(Maybe Text)
, _sStartTime :: !(Maybe POSIX)
, _sName :: !(Maybe Text)
, _sType :: !(Maybe SnapshotType)
, _sSnapshotId :: !(Maybe Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
snapshot
:: Snapshot
snapshot =
Snapshot'
{ _sStatus = Nothing
, _sDirectoryId = Nothing
, _sStartTime = Nothing
, _sName = Nothing
, _sType = Nothing
, _sSnapshotId = Nothing
}
sStatus :: Lens' Snapshot (Maybe SnapshotStatus)
sStatus = lens _sStatus (\ s a -> s{_sStatus = a})
sDirectoryId :: Lens' Snapshot (Maybe Text)
sDirectoryId = lens _sDirectoryId (\ s a -> s{_sDirectoryId = 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 .:? "Status") <*> (x .:? "DirectoryId") <*>
(x .:? "StartTime")
<*> (x .:? "Name")
<*> (x .:? "Type")
<*> (x .:? "SnapshotId"))
instance Hashable Snapshot where
instance NFData Snapshot where
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"))
instance Hashable SnapshotLimits where
instance NFData SnapshotLimits where
data Tag = Tag'
{ _tagKey :: !Text
, _tagValue :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
tag
:: Text
-> Text
-> Tag
tag pKey_ pValue_ = Tag' {_tagKey = pKey_, _tagValue = pValue_}
tagKey :: Lens' Tag Text
tagKey = lens _tagKey (\ s a -> s{_tagKey = a})
tagValue :: Lens' Tag Text
tagValue = lens _tagValue (\ s a -> s{_tagValue = a})
instance FromJSON Tag where
parseJSON
= withObject "Tag"
(\ x -> Tag' <$> (x .: "Key") <*> (x .: "Value"))
instance Hashable Tag where
instance NFData Tag where
instance ToJSON Tag where
toJSON Tag'{..}
= object
(catMaybes
[Just ("Key" .= _tagKey),
Just ("Value" .= _tagValue)])
data Trust = Trust'
{ _tDirectoryId :: !(Maybe Text)
, _tTrustState :: !(Maybe TrustState)
, _tLastUpdatedDateTime :: !(Maybe POSIX)
, _tTrustDirection :: !(Maybe TrustDirection)
, _tStateLastUpdatedDateTime :: !(Maybe POSIX)
, _tTrustType :: !(Maybe TrustType)
, _tTrustStateReason :: !(Maybe Text)
, _tRemoteDomainName :: !(Maybe Text)
, _tTrustId :: !(Maybe Text)
, _tCreatedDateTime :: !(Maybe POSIX)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
trust
:: Trust
trust =
Trust'
{ _tDirectoryId = Nothing
, _tTrustState = Nothing
, _tLastUpdatedDateTime = Nothing
, _tTrustDirection = Nothing
, _tStateLastUpdatedDateTime = Nothing
, _tTrustType = Nothing
, _tTrustStateReason = Nothing
, _tRemoteDomainName = Nothing
, _tTrustId = Nothing
, _tCreatedDateTime = Nothing
}
tDirectoryId :: Lens' Trust (Maybe Text)
tDirectoryId = lens _tDirectoryId (\ s a -> s{_tDirectoryId = a})
tTrustState :: Lens' Trust (Maybe TrustState)
tTrustState = lens _tTrustState (\ s a -> s{_tTrustState = a})
tLastUpdatedDateTime :: Lens' Trust (Maybe UTCTime)
tLastUpdatedDateTime = lens _tLastUpdatedDateTime (\ s a -> s{_tLastUpdatedDateTime = a}) . mapping _Time
tTrustDirection :: Lens' Trust (Maybe TrustDirection)
tTrustDirection = lens _tTrustDirection (\ s a -> s{_tTrustDirection = a})
tStateLastUpdatedDateTime :: Lens' Trust (Maybe UTCTime)
tStateLastUpdatedDateTime = lens _tStateLastUpdatedDateTime (\ s a -> s{_tStateLastUpdatedDateTime = a}) . mapping _Time
tTrustType :: Lens' Trust (Maybe TrustType)
tTrustType = lens _tTrustType (\ s a -> s{_tTrustType = a})
tTrustStateReason :: Lens' Trust (Maybe Text)
tTrustStateReason = lens _tTrustStateReason (\ s a -> s{_tTrustStateReason = a})
tRemoteDomainName :: Lens' Trust (Maybe Text)
tRemoteDomainName = lens _tRemoteDomainName (\ s a -> s{_tRemoteDomainName = a})
tTrustId :: Lens' Trust (Maybe Text)
tTrustId = lens _tTrustId (\ s a -> s{_tTrustId = a})
tCreatedDateTime :: Lens' Trust (Maybe UTCTime)
tCreatedDateTime = lens _tCreatedDateTime (\ s a -> s{_tCreatedDateTime = a}) . mapping _Time
instance FromJSON Trust where
parseJSON
= withObject "Trust"
(\ x ->
Trust' <$>
(x .:? "DirectoryId") <*> (x .:? "TrustState") <*>
(x .:? "LastUpdatedDateTime")
<*> (x .:? "TrustDirection")
<*> (x .:? "StateLastUpdatedDateTime")
<*> (x .:? "TrustType")
<*> (x .:? "TrustStateReason")
<*> (x .:? "RemoteDomainName")
<*> (x .:? "TrustId")
<*> (x .:? "CreatedDateTime"))
instance Hashable Trust where
instance NFData Trust where