-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Amazon Directory Service SDK.
--   
--   The types from this library are intended to be used with
--   <a>amazonka</a>, which provides mechanisms for specifying AuthN/AuthZ
--   information, sending requests, and receiving responses.
--   
--   Lenses are used for constructing and manipulating types, due to the
--   depth of nesting of AWS types and transparency regarding
--   de/serialisation into more palatable Haskell values. The provided
--   lenses should be compatible with any of the major lens libraries such
--   as <a>lens</a> or <a>lens-family-core</a>.
--   
--   See <a>Network.AWS.DirectoryService</a> or <a>the AWS
--   documentation</a> to get started.
@package amazonka-ds
@version 1.4.5


module Network.AWS.DirectoryService.Types

-- | API version <tt>2015-04-16</tt> of the Amazon Directory Service SDK
--   configuration.
directoryService :: Service

-- | The specified directory is unavailable or could not be found.
_DirectoryUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An authentication error occurred.
_AuthenticationFailedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | One or more parameters are not valid.
_InvalidParameterException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The operation is not supported.
_UnsupportedOperationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified entity already exists.
_EntityAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The maximum number of directories in the region has been reached. You
--   can use the <tt>GetDirectoryLimits</tt> operation to determine your
--   directory limits in the region.
_DirectoryLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The maximum allowed number of IP addresses was exceeded. The default
--   limit is 100 IP address blocks.
_IPRouteLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified entity could not be found.
_EntityDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The account does not have sufficient permission to perform the
--   operation.
_InsufficientPermissionsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The <i>NextToken</i> value is not valid.
_InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An exception has occurred in AWS Directory Service.
_ServiceException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The maximum number of manual snapshots for the directory has been
--   reached. You can use the <tt>GetSnapshotLimits</tt> operation to
--   determine the snapshot limits for a directory.
_SnapshotLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The maximum allowed number of tags was exceeded.
_TagLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | A client exception has occurred.
_ClientException :: AsError a => Getting (First ServiceError) a ServiceError
data DirectorySize
Large :: DirectorySize
Small :: DirectorySize
data DirectoryStage
DSActive :: DirectoryStage
DSCreated :: DirectoryStage
DSCreating :: DirectoryStage
DSDeleted :: DirectoryStage
DSDeleting :: DirectoryStage
DSFailed :: DirectoryStage
DSImpaired :: DirectoryStage
DSInoperable :: DirectoryStage
DSRequested :: DirectoryStage
DSRestoreFailed :: DirectoryStage
DSRestoring :: DirectoryStage
data DirectoryType
ADConnector :: DirectoryType
MicrosoftAD :: DirectoryType
SimpleAD :: DirectoryType
data IPRouteStatusMsg
AddFailed :: IPRouteStatusMsg
Added :: IPRouteStatusMsg
Adding :: IPRouteStatusMsg
RemoveFailed :: IPRouteStatusMsg
Removed :: IPRouteStatusMsg
Removing :: IPRouteStatusMsg
data RadiusAuthenticationProtocol
Chap :: RadiusAuthenticationProtocol
MsCHAPV1 :: RadiusAuthenticationProtocol
MsCHAPV2 :: RadiusAuthenticationProtocol
Pap :: RadiusAuthenticationProtocol
data RadiusStatus
Completed :: RadiusStatus
Creating :: RadiusStatus
Failed :: RadiusStatus
data ReplicationScope
Domain :: ReplicationScope
data SchemaExtensionStatus
SESCancelInProgress :: SchemaExtensionStatus
SESCancelled :: SchemaExtensionStatus
SESCompleted :: SchemaExtensionStatus
SESCreatingSnapshot :: SchemaExtensionStatus
SESFailed :: SchemaExtensionStatus
SESInitializing :: SchemaExtensionStatus
SESReplicating :: SchemaExtensionStatus
SESRollbackInProgress :: SchemaExtensionStatus
SESUpdatingSchema :: SchemaExtensionStatus
data SnapshotStatus
SSCompleted :: SnapshotStatus
SSCreating :: SnapshotStatus
SSFailed :: SnapshotStatus
data SnapshotType
Auto :: SnapshotType
Manual :: SnapshotType
data TopicStatus
TDeleted :: TopicStatus
TFailed :: TopicStatus
TRegistered :: TopicStatus
TTopicNotFound :: TopicStatus
data TrustDirection
OneWayIncoming :: TrustDirection
OneWayOutgoing :: TrustDirection
TwoWay :: TrustDirection
data TrustState
TSCreated :: TrustState
TSCreating :: TrustState
TSDeleted :: TrustState
TSDeleting :: TrustState
TSFailed :: TrustState
TSVerified :: TrustState
TSVerifyFailed :: TrustState
TSVerifying :: TrustState
data TrustType
Forest :: TrustType

-- | Represents a named directory attribute.
--   
--   <i>See:</i> <a>attribute</a> smart constructor.
data Attribute

-- | Creates a value of <a>Attribute</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aValue</a> - The value of the attribute.</li>
--   <li><a>aName</a> - The name of the attribute.</li>
--   </ul>
attribute :: Attribute

-- | The value of the attribute.
aValue :: Lens' Attribute (Maybe Text)

-- | The name of the attribute.
aName :: Lens' Attribute (Maybe Text)

-- | Contains information about a computer account in a directory.
--   
--   <i>See:</i> <a>computer</a> smart constructor.
data Computer

-- | Creates a value of <a>Computer</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cComputerId</a> - The identifier of the computer.</li>
--   <li><a>cComputerAttributes</a> - An array of <a>Attribute</a> objects
--   containing the LDAP attributes that belong to the computer
--   account.</li>
--   <li><a>cComputerName</a> - The computer name.</li>
--   </ul>
computer :: Computer

-- | The identifier of the computer.
cComputerId :: Lens' Computer (Maybe Text)

-- | An array of <a>Attribute</a> objects containing the LDAP attributes
--   that belong to the computer account.
cComputerAttributes :: Lens' Computer [Attribute]

-- | The computer name.
cComputerName :: Lens' Computer (Maybe Text)

-- | Points to a remote domain with which you are setting up a trust
--   relationship. Conditional forwarders are required in order to set up a
--   trust relationship with another domain.
--   
--   <i>See:</i> <a>conditionalForwarder</a> smart constructor.
data ConditionalForwarder

-- | Creates a value of <a>ConditionalForwarder</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cfDNSIPAddrs</a> - The IP addresses of the remote DNS server
--   associated with RemoteDomainName. This is the IP address of the DNS
--   server that your conditional forwarder points to.</li>
--   <li><a>cfRemoteDomainName</a> - The fully qualified domain name (FQDN)
--   of the remote domains pointed to by the conditional forwarder.</li>
--   <li><a>cfReplicationScope</a> - The replication scope of the
--   conditional forwarder. The only allowed value is <tt>Domain</tt> ,
--   which will replicate the conditional forwarder to all of the domain
--   controllers for your AWS directory.</li>
--   </ul>
conditionalForwarder :: ConditionalForwarder

-- | The IP addresses of the remote DNS server associated with
--   RemoteDomainName. This is the IP address of the DNS server that your
--   conditional forwarder points to.
cfDNSIPAddrs :: Lens' ConditionalForwarder [Text]

-- | The fully qualified domain name (FQDN) of the remote domains pointed
--   to by the conditional forwarder.
cfRemoteDomainName :: Lens' ConditionalForwarder (Maybe Text)

-- | The replication scope of the conditional forwarder. The only allowed
--   value is <tt>Domain</tt> , which will replicate the conditional
--   forwarder to all of the domain controllers for your AWS directory.
cfReplicationScope :: Lens' ConditionalForwarder (Maybe ReplicationScope)

-- | Contains information for the <tt>ConnectDirectory</tt> operation when
--   an AD Connector directory is being created.
--   
--   <i>See:</i> <a>directoryConnectSettings</a> smart constructor.
data DirectoryConnectSettings

-- | Creates a value of <a>DirectoryConnectSettings</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcsVPCId</a> - The identifier of the VPC in which the AD
--   Connector is created.</li>
--   <li><a>dcsSubnetIds</a> - A list of subnet identifiers in the VPC in
--   which the AD Connector is created.</li>
--   <li><a>dcsCustomerDNSIPs</a> - A list of one or more IP addresses of
--   DNS servers or domain controllers in the on-premises directory.</li>
--   <li><a>dcsCustomerUserName</a> - The username of an account in the
--   on-premises directory that is used to connect to the directory. This
--   account must have the following privileges: * Read users and groups *
--   Create computer objects * Join computers to the domain</li>
--   </ul>
directoryConnectSettings :: Text -> Text -> DirectoryConnectSettings

-- | The identifier of the VPC in which the AD Connector is created.
dcsVPCId :: Lens' DirectoryConnectSettings Text

-- | A list of subnet identifiers in the VPC in which the AD Connector is
--   created.
dcsSubnetIds :: Lens' DirectoryConnectSettings [Text]

-- | A list of one or more IP addresses of DNS servers or domain
--   controllers in the on-premises directory.
dcsCustomerDNSIPs :: Lens' DirectoryConnectSettings [Text]

-- | The username of an account in the on-premises directory that is used
--   to connect to the directory. This account must have the following
--   privileges: * Read users and groups * Create computer objects * Join
--   computers to the domain
dcsCustomerUserName :: Lens' DirectoryConnectSettings Text

-- | Contains information about an AD Connector directory.
--   
--   <i>See:</i> <a>directoryConnectSettingsDescription</a> smart
--   constructor.
data DirectoryConnectSettingsDescription

-- | Creates a value of <a>DirectoryConnectSettingsDescription</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcsdCustomerUserName</a> - The username of the service account
--   in the on-premises directory.</li>
--   <li><a>dcsdSubnetIds</a> - A list of subnet identifiers in the VPC
--   that the AD connector is in.</li>
--   <li><a>dcsdVPCId</a> - The identifier of the VPC that the AD Connector
--   is in.</li>
--   <li><a>dcsdSecurityGroupId</a> - The security group identifier for the
--   AD Connector directory.</li>
--   <li><a>dcsdConnectIPs</a> - The IP addresses of the AD Connector
--   servers.</li>
--   <li><a>dcsdAvailabilityZones</a> - A list of the Availability Zones
--   that the directory is in.</li>
--   </ul>
directoryConnectSettingsDescription :: DirectoryConnectSettingsDescription

-- | The username of the service account in the on-premises directory.
dcsdCustomerUserName :: Lens' DirectoryConnectSettingsDescription (Maybe Text)

-- | A list of subnet identifiers in the VPC that the AD connector is in.
dcsdSubnetIds :: Lens' DirectoryConnectSettingsDescription [Text]

-- | The identifier of the VPC that the AD Connector is in.
dcsdVPCId :: Lens' DirectoryConnectSettingsDescription (Maybe Text)

-- | The security group identifier for the AD Connector directory.
dcsdSecurityGroupId :: Lens' DirectoryConnectSettingsDescription (Maybe Text)

-- | The IP addresses of the AD Connector servers.
dcsdConnectIPs :: Lens' DirectoryConnectSettingsDescription [Text]

-- | A list of the Availability Zones that the directory is in.
dcsdAvailabilityZones :: Lens' DirectoryConnectSettingsDescription [Text]

-- | Contains information about an AWS Directory Service directory.
--   
--   <i>See:</i> <a>directoryDescription</a> smart constructor.
data DirectoryDescription

-- | Creates a value of <a>DirectoryDescription</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddRadiusStatus</a> - The status of the RADIUS MFA server
--   connection.</li>
--   <li><a>ddStage</a> - The current stage of the directory.</li>
--   <li><a>ddDirectoryId</a> - The directory identifier.</li>
--   <li><a>ddAccessURL</a> - The access URL for the directory, such as
--   <tt><a>http://&lt;alias&gt;.awsapps.com</a></tt> . If no alias has
--   been created for the directory, <tt><a>alias</a></tt> is the directory
--   identifier, such as <tt>d-XXXXXXXXXX</tt> .</li>
--   <li><a>ddShortName</a> - The short name of the directory.</li>
--   <li><a>ddSize</a> - The directory size.</li>
--   <li><a>ddRadiusSettings</a> - A <a>RadiusSettings</a> object that
--   contains information about the RADIUS server configured for this
--   directory.</li>
--   <li><a>ddLaunchTime</a> - Specifies when the directory was
--   created.</li>
--   <li><a>ddAlias</a> - The alias for the directory. If no alias has been
--   created for the directory, the alias is the directory identifier, such
--   as <tt>d-XXXXXXXXXX</tt> .</li>
--   <li><a>ddName</a> - The fully-qualified name of the directory.</li>
--   <li><a>ddStageLastUpdatedDateTime</a> - The date and time that the
--   stage was last updated.</li>
--   <li><a>ddSSOEnabled</a> - Indicates if single-sign on is enabled for
--   the directory. For more information, see <tt>EnableSso</tt> and
--   <tt>DisableSso</tt> .</li>
--   <li><a>ddDNSIPAddrs</a> - The IP addresses of the DNS servers for the
--   directory. For a Simple AD or Microsoft AD directory, these are the IP
--   addresses of the Simple AD or Microsoft AD directory servers. For an
--   AD Connector directory, these are the IP addresses of the DNS servers
--   or domain controllers in the on-premises directory to which the AD
--   Connector is connected.</li>
--   <li><a>ddVPCSettings</a> - A <tt>DirectoryVpcSettingsDescription</tt>
--   object that contains additional information about a directory. This
--   member is only present if the directory is a Simple AD or Managed AD
--   directory.</li>
--   <li><a>ddType</a> - The directory size.</li>
--   <li><a>ddStageReason</a> - Additional information about the directory
--   stage.</li>
--   <li><a>ddConnectSettings</a> - A
--   <a>DirectoryConnectSettingsDescription</a> object that contains
--   additional information about an AD Connector directory. This member is
--   only present if the directory is an AD Connector directory.</li>
--   <li><a>ddDescription</a> - The textual description for the
--   directory.</li>
--   </ul>
directoryDescription :: DirectoryDescription

-- | The status of the RADIUS MFA server connection.
ddRadiusStatus :: Lens' DirectoryDescription (Maybe RadiusStatus)

-- | The current stage of the directory.
ddStage :: Lens' DirectoryDescription (Maybe DirectoryStage)

-- | The directory identifier.
ddDirectoryId :: Lens' DirectoryDescription (Maybe Text)

-- | The access URL for the directory, such as
--   <tt><a>http://&lt;alias&gt;.awsapps.com</a></tt> . If no alias has
--   been created for the directory, <tt><a>alias</a></tt> is the directory
--   identifier, such as <tt>d-XXXXXXXXXX</tt> .
ddAccessURL :: Lens' DirectoryDescription (Maybe Text)

-- | The short name of the directory.
ddShortName :: Lens' DirectoryDescription (Maybe Text)

-- | The directory size.
ddSize :: Lens' DirectoryDescription (Maybe DirectorySize)

-- | A <a>RadiusSettings</a> object that contains information about the
--   RADIUS server configured for this directory.
ddRadiusSettings :: Lens' DirectoryDescription (Maybe RadiusSettings)

-- | Specifies when the directory was created.
ddLaunchTime :: Lens' DirectoryDescription (Maybe UTCTime)

-- | The alias for the directory. If no alias has been created for the
--   directory, the alias is the directory identifier, such as
--   <tt>d-XXXXXXXXXX</tt> .
ddAlias :: Lens' DirectoryDescription (Maybe Text)

-- | The fully-qualified name of the directory.
ddName :: Lens' DirectoryDescription (Maybe Text)

-- | The date and time that the stage was last updated.
ddStageLastUpdatedDateTime :: Lens' DirectoryDescription (Maybe UTCTime)

-- | Indicates if single-sign on is enabled for the directory. For more
--   information, see <tt>EnableSso</tt> and <tt>DisableSso</tt> .
ddSSOEnabled :: Lens' DirectoryDescription (Maybe Bool)

-- | The IP addresses of the DNS servers for the directory. For a Simple AD
--   or Microsoft AD directory, these are the IP addresses of the Simple AD
--   or Microsoft AD directory servers. For an AD Connector directory,
--   these are the IP addresses of the DNS servers or domain controllers in
--   the on-premises directory to which the AD Connector is connected.
ddDNSIPAddrs :: Lens' DirectoryDescription [Text]

-- | A <tt>DirectoryVpcSettingsDescription</tt> object that contains
--   additional information about a directory. This member is only present
--   if the directory is a Simple AD or Managed AD directory.
ddVPCSettings :: Lens' DirectoryDescription (Maybe DirectoryVPCSettingsDescription)

-- | The directory size.
ddType :: Lens' DirectoryDescription (Maybe DirectoryType)

-- | Additional information about the directory stage.
ddStageReason :: Lens' DirectoryDescription (Maybe Text)

-- | A <a>DirectoryConnectSettingsDescription</a> object that contains
--   additional information about an AD Connector directory. This member is
--   only present if the directory is an AD Connector directory.
ddConnectSettings :: Lens' DirectoryDescription (Maybe DirectoryConnectSettingsDescription)

-- | The textual description for the directory.
ddDescription :: Lens' DirectoryDescription (Maybe Text)

-- | Contains directory limit information for a region.
--   
--   <i>See:</i> <a>directoryLimits</a> smart constructor.
data DirectoryLimits

-- | Creates a value of <a>DirectoryLimits</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlConnectedDirectoriesCurrentCount</a> - The current number of
--   connected directories in the region.</li>
--   <li><a>dlCloudOnlyMicrosoftADLimitReached</a> - Indicates if the
--   Microsoft AD directory limit has been reached.</li>
--   <li><a>dlConnectedDirectoriesLimit</a> - The maximum number of
--   connected directories allowed in the region.</li>
--   <li><a>dlConnectedDirectoriesLimitReached</a> - Indicates if the
--   connected directory limit has been reached.</li>
--   <li><a>dlCloudOnlyMicrosoftADLimit</a> - The maximum number of
--   Microsoft AD directories allowed in the region.</li>
--   <li><a>dlCloudOnlyDirectoriesLimit</a> - The maximum number of cloud
--   directories allowed in the region.</li>
--   <li><a>dlCloudOnlyDirectoriesCurrentCount</a> - The current number of
--   cloud directories in the region.</li>
--   <li><a>dlCloudOnlyDirectoriesLimitReached</a> - Indicates if the cloud
--   directory limit has been reached.</li>
--   <li><a>dlCloudOnlyMicrosoftADCurrentCount</a> - The current number of
--   Microsoft AD directories in the region.</li>
--   </ul>
directoryLimits :: DirectoryLimits

-- | The current number of connected directories in the region.
dlConnectedDirectoriesCurrentCount :: Lens' DirectoryLimits (Maybe Natural)

-- | Indicates if the Microsoft AD directory limit has been reached.
dlCloudOnlyMicrosoftADLimitReached :: Lens' DirectoryLimits (Maybe Bool)

-- | The maximum number of connected directories allowed in the region.
dlConnectedDirectoriesLimit :: Lens' DirectoryLimits (Maybe Natural)

-- | Indicates if the connected directory limit has been reached.
dlConnectedDirectoriesLimitReached :: Lens' DirectoryLimits (Maybe Bool)

-- | The maximum number of Microsoft AD directories allowed in the region.
dlCloudOnlyMicrosoftADLimit :: Lens' DirectoryLimits (Maybe Natural)

-- | The maximum number of cloud directories allowed in the region.
dlCloudOnlyDirectoriesLimit :: Lens' DirectoryLimits (Maybe Natural)

-- | The current number of cloud directories in the region.
dlCloudOnlyDirectoriesCurrentCount :: Lens' DirectoryLimits (Maybe Natural)

-- | Indicates if the cloud directory limit has been reached.
dlCloudOnlyDirectoriesLimitReached :: Lens' DirectoryLimits (Maybe Bool)

-- | The current number of Microsoft AD directories in the region.
dlCloudOnlyMicrosoftADCurrentCount :: Lens' DirectoryLimits (Maybe Natural)

-- | Contains VPC information for the <tt>CreateDirectory</tt> or
--   <tt>CreateMicrosoftAD</tt> operation.
--   
--   <i>See:</i> <a>directoryVPCSettings</a> smart constructor.
data DirectoryVPCSettings

-- | Creates a value of <a>DirectoryVPCSettings</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvsVPCId</a> - The identifier of the VPC in which to create the
--   directory.</li>
--   <li><a>dvsSubnetIds</a> - The identifiers of the subnets for the
--   directory servers. The two subnets must be in different Availability
--   Zones. AWS Directory Service creates a directory server and a DNS
--   server in each of these subnets.</li>
--   </ul>
directoryVPCSettings :: Text -> DirectoryVPCSettings

-- | The identifier of the VPC in which to create the directory.
dvsVPCId :: Lens' DirectoryVPCSettings Text

-- | The identifiers of the subnets for the directory servers. The two
--   subnets must be in different Availability Zones. AWS Directory Service
--   creates a directory server and a DNS server in each of these subnets.
dvsSubnetIds :: Lens' DirectoryVPCSettings [Text]

-- | Contains information about the directory.
--   
--   <i>See:</i> <a>directoryVPCSettingsDescription</a> smart constructor.
data DirectoryVPCSettingsDescription

-- | Creates a value of <a>DirectoryVPCSettingsDescription</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvsdSubnetIds</a> - The identifiers of the subnets for the
--   directory servers.</li>
--   <li><a>dvsdVPCId</a> - The identifier of the VPC that the directory is
--   in.</li>
--   <li><a>dvsdSecurityGroupId</a> - The security group identifier for the
--   directory. If the directory was created before 8<i>1</i>2014, this is
--   the identifier of the directory members security group that was
--   created when the directory was created. If the directory was created
--   after this date, this value is null.</li>
--   <li><a>dvsdAvailabilityZones</a> - The list of Availability Zones that
--   the directory is in.</li>
--   </ul>
directoryVPCSettingsDescription :: DirectoryVPCSettingsDescription

-- | The identifiers of the subnets for the directory servers.
dvsdSubnetIds :: Lens' DirectoryVPCSettingsDescription [Text]

-- | The identifier of the VPC that the directory is in.
dvsdVPCId :: Lens' DirectoryVPCSettingsDescription (Maybe Text)

-- | The security group identifier for the directory. If the directory was
--   created before 8<i>1</i>2014, this is the identifier of the directory
--   members security group that was created when the directory was
--   created. If the directory was created after this date, this value is
--   null.
dvsdSecurityGroupId :: Lens' DirectoryVPCSettingsDescription (Maybe Text)

-- | The list of Availability Zones that the directory is in.
dvsdAvailabilityZones :: Lens' DirectoryVPCSettingsDescription [Text]

-- | Information about SNS topic and AWS Directory Service directory
--   associations.
--   
--   <i>See:</i> <a>eventTopic</a> smart constructor.
data EventTopic

-- | Creates a value of <a>EventTopic</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>etStatus</a> - The topic registration status.</li>
--   <li><a>etDirectoryId</a> - The Directory ID of an AWS Directory
--   Service directory that will publish status messages to an SNS
--   topic.</li>
--   <li><a>etTopicName</a> - The name of an AWS SNS topic the receives
--   status messages from the directory.</li>
--   <li><a>etTopicARN</a> - The SNS topic ARN (Amazon Resource Name).</li>
--   <li><a>etCreatedDateTime</a> - The date and time of when you
--   associated your directory with the SNS topic.</li>
--   </ul>
eventTopic :: EventTopic

-- | The topic registration status.
etStatus :: Lens' EventTopic (Maybe TopicStatus)

-- | The Directory ID of an AWS Directory Service directory that will
--   publish status messages to an SNS topic.
etDirectoryId :: Lens' EventTopic (Maybe Text)

-- | The name of an AWS SNS topic the receives status messages from the
--   directory.
etTopicName :: Lens' EventTopic (Maybe Text)

-- | The SNS topic ARN (Amazon Resource Name).
etTopicARN :: Lens' EventTopic (Maybe Text)

-- | The date and time of when you associated your directory with the SNS
--   topic.
etCreatedDateTime :: Lens' EventTopic (Maybe UTCTime)

-- | IP address block. This is often the address block of the DNS server
--   used for your on-premises domain.
--   
--   <i>See:</i> <a>ipRoute</a> smart constructor.
data IPRoute

-- | Creates a value of <a>IPRoute</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>irCidrIP</a> - IP address block using CIDR format, for example
--   10.0.0.0<i>24. This is often the address block of the DNS server used
--   for your on-premises domain. For a single IP address use a CIDR
--   address block with </i>32. For example 10.0.0.0/32.</li>
--   <li><a>irDescription</a> - Description of the address block.</li>
--   </ul>
ipRoute :: IPRoute

-- | IP address block using CIDR format, for example 10.0.0.0<i>24. This is
--   often the address block of the DNS server used for your on-premises
--   domain. For a single IP address use a CIDR address block with </i>32.
--   For example 10.0.0.0/32.
irCidrIP :: Lens' IPRoute (Maybe Text)

-- | Description of the address block.
irDescription :: Lens' IPRoute (Maybe Text)

-- | Information about one or more IP address blocks.
--   
--   <i>See:</i> <a>ipRouteInfo</a> smart constructor.
data IPRouteInfo

-- | Creates a value of <a>IPRouteInfo</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iriDirectoryId</a> - Identifier (ID) of the directory
--   associated with the IP addresses.</li>
--   <li><a>iriIPRouteStatusReason</a> - The reason for the
--   IpRouteStatusMsg.</li>
--   <li><a>iriAddedDateTime</a> - The date and time the address block was
--   added to the directory.</li>
--   <li><a>iriCidrIP</a> - IP address block in the <tt>IpRoute</tt> .</li>
--   <li><a>iriIPRouteStatusMsg</a> - The status of the IP address
--   block.</li>
--   <li><a>iriDescription</a> - Description of the <tt>IpRouteInfo</tt>
--   .</li>
--   </ul>
ipRouteInfo :: IPRouteInfo

-- | Identifier (ID) of the directory associated with the IP addresses.
iriDirectoryId :: Lens' IPRouteInfo (Maybe Text)

-- | The reason for the IpRouteStatusMsg.
iriIPRouteStatusReason :: Lens' IPRouteInfo (Maybe Text)

-- | The date and time the address block was added to the directory.
iriAddedDateTime :: Lens' IPRouteInfo (Maybe UTCTime)

-- | IP address block in the <tt>IpRoute</tt> .
iriCidrIP :: Lens' IPRouteInfo (Maybe Text)

-- | The status of the IP address block.
iriIPRouteStatusMsg :: Lens' IPRouteInfo (Maybe IPRouteStatusMsg)

-- | Description of the <tt>IpRouteInfo</tt> .
iriDescription :: Lens' IPRouteInfo (Maybe Text)

-- | Contains information about a Remote Authentication Dial In User
--   Service (RADIUS) server.
--   
--   <i>See:</i> <a>radiusSettings</a> smart constructor.
data RadiusSettings

-- | Creates a value of <a>RadiusSettings</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rsDisplayLabel</a> - Not currently used.</li>
--   <li><a>rsRadiusRetries</a> - The maximum number of times that
--   communication with the RADIUS server is attempted.</li>
--   <li><a>rsAuthenticationProtocol</a> - The protocol specified for your
--   RADIUS endpoints.</li>
--   <li><a>rsRadiusServers</a> - An array of strings that contains the IP
--   addresses of the RADIUS server endpoints, or the IP addresses of your
--   RADIUS server load balancer.</li>
--   <li><a>rsUseSameUsername</a> - Not currently used.</li>
--   <li><a>rsSharedSecret</a> - Not currently used.</li>
--   <li><a>rsRadiusTimeout</a> - The amount of time, in seconds, to wait
--   for the RADIUS server to respond.</li>
--   <li><a>rsRadiusPort</a> - The port that your RADIUS server is using
--   for communications. Your on-premises network must allow inbound
--   traffic over this port from the AWS Directory Service servers.</li>
--   </ul>
radiusSettings :: RadiusSettings

-- | Not currently used.
rsDisplayLabel :: Lens' RadiusSettings (Maybe Text)

-- | The maximum number of times that communication with the RADIUS server
--   is attempted.
rsRadiusRetries :: Lens' RadiusSettings (Maybe Natural)

-- | The protocol specified for your RADIUS endpoints.
rsAuthenticationProtocol :: Lens' RadiusSettings (Maybe RadiusAuthenticationProtocol)

-- | An array of strings that contains the IP addresses of the RADIUS
--   server endpoints, or the IP addresses of your RADIUS server load
--   balancer.
rsRadiusServers :: Lens' RadiusSettings [Text]

-- | Not currently used.
rsUseSameUsername :: Lens' RadiusSettings (Maybe Bool)

-- | Not currently used.
rsSharedSecret :: Lens' RadiusSettings (Maybe Text)

-- | The amount of time, in seconds, to wait for the RADIUS server to
--   respond.
rsRadiusTimeout :: Lens' RadiusSettings (Maybe Natural)

-- | The port that your RADIUS server is using for communications. Your
--   on-premises network must allow inbound traffic over this port from the
--   AWS Directory Service servers.
rsRadiusPort :: Lens' RadiusSettings (Maybe Natural)

-- | Information about a schema extension.
--   
--   <i>See:</i> <a>schemaExtensionInfo</a> smart constructor.
data SchemaExtensionInfo

-- | Creates a value of <a>SchemaExtensionInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>seiDirectoryId</a> - The identifier of the directory to which
--   the schema extension is applied.</li>
--   <li><a>seiSchemaExtensionId</a> - The identifier of the schema
--   extension.</li>
--   <li><a>seiSchemaExtensionStatusReason</a> - The reason for the
--   <tt>SchemaExtensionStatus</tt> .</li>
--   <li><a>seiSchemaExtensionStatus</a> - The current status of the schema
--   extension.</li>
--   <li><a>seiDescription</a> - A description of the schema
--   extension.</li>
--   <li><a>seiEndDateTime</a> - The date and time that the schema
--   extension was completed.</li>
--   <li><a>seiStartDateTime</a> - The date and time that the schema
--   extension started being applied to the directory.</li>
--   </ul>
schemaExtensionInfo :: SchemaExtensionInfo

-- | The identifier of the directory to which the schema extension is
--   applied.
seiDirectoryId :: Lens' SchemaExtensionInfo (Maybe Text)

-- | The identifier of the schema extension.
seiSchemaExtensionId :: Lens' SchemaExtensionInfo (Maybe Text)

-- | The reason for the <tt>SchemaExtensionStatus</tt> .
seiSchemaExtensionStatusReason :: Lens' SchemaExtensionInfo (Maybe Text)

-- | The current status of the schema extension.
seiSchemaExtensionStatus :: Lens' SchemaExtensionInfo (Maybe SchemaExtensionStatus)

-- | A description of the schema extension.
seiDescription :: Lens' SchemaExtensionInfo (Maybe Text)

-- | The date and time that the schema extension was completed.
seiEndDateTime :: Lens' SchemaExtensionInfo (Maybe UTCTime)

-- | The date and time that the schema extension started being applied to
--   the directory.
seiStartDateTime :: Lens' SchemaExtensionInfo (Maybe UTCTime)

-- | Describes a directory snapshot.
--   
--   <i>See:</i> <a>snapshot</a> smart constructor.
data Snapshot

-- | Creates a value of <a>Snapshot</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sStatus</a> - The snapshot status.</li>
--   <li><a>sDirectoryId</a> - The directory identifier.</li>
--   <li><a>sStartTime</a> - The date and time that the snapshot was
--   taken.</li>
--   <li><a>sName</a> - The descriptive name of the snapshot.</li>
--   <li><a>sType</a> - The snapshot type.</li>
--   <li><a>sSnapshotId</a> - The snapshot identifier.</li>
--   </ul>
snapshot :: Snapshot

-- | The snapshot status.
sStatus :: Lens' Snapshot (Maybe SnapshotStatus)

-- | The directory identifier.
sDirectoryId :: Lens' Snapshot (Maybe Text)

-- | The date and time that the snapshot was taken.
sStartTime :: Lens' Snapshot (Maybe UTCTime)

-- | The descriptive name of the snapshot.
sName :: Lens' Snapshot (Maybe Text)

-- | The snapshot type.
sType :: Lens' Snapshot (Maybe SnapshotType)

-- | The snapshot identifier.
sSnapshotId :: Lens' Snapshot (Maybe Text)

-- | Contains manual snapshot limit information for a directory.
--   
--   <i>See:</i> <a>snapshotLimits</a> smart constructor.
data SnapshotLimits

-- | Creates a value of <a>SnapshotLimits</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slManualSnapshotsLimitReached</a> - Indicates if the manual
--   snapshot limit has been reached.</li>
--   <li><a>slManualSnapshotsCurrentCount</a> - The current number of
--   manual snapshots of the directory.</li>
--   <li><a>slManualSnapshotsLimit</a> - The maximum number of manual
--   snapshots allowed.</li>
--   </ul>
snapshotLimits :: SnapshotLimits

-- | Indicates if the manual snapshot limit has been reached.
slManualSnapshotsLimitReached :: Lens' SnapshotLimits (Maybe Bool)

-- | The current number of manual snapshots of the directory.
slManualSnapshotsCurrentCount :: Lens' SnapshotLimits (Maybe Natural)

-- | The maximum number of manual snapshots allowed.
slManualSnapshotsLimit :: Lens' SnapshotLimits (Maybe Natural)

-- | Metadata assigned to an Amazon Directory Services directory consisting
--   of a key-value pair.
--   
--   <i>See:</i> <a>tag</a> smart constructor.
data Tag

-- | Creates a value of <a>Tag</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tagKey</a> - Required name of the tag. The string value can be
--   Unicode characters and cannot be prefixed with "aws:". The string can
--   contain only the set of Unicode letters, digits, white-space, '_',
--   <a>.</a>, <a>/</a>, '=', <a>+</a>, <a>-</a> (Java regex:
--   "^([\p{L}\p{Z}\p{N}_.:/=+\-]*)$").</li>
--   <li><a>tagValue</a> - The optional value of the tag. The string value
--   can be Unicode characters. The string can contain only the set of
--   Unicode letters, digits, white-space, '_', <a>.</a>, <a>/</a>, '=',
--   <a>+</a>, <a>-</a> (Java regex:
--   "^([\p{L}\p{Z}\p{N}_.:/=+\-]*)$").</li>
--   </ul>
tag :: Text -> Text -> Tag

-- | Required name of the tag. The string value can be Unicode characters
--   and cannot be prefixed with "aws:". The string can contain only the
--   set of Unicode letters, digits, white-space, '_', <a>.</a>, <a>/</a>,
--   '=', <a>+</a>, <a>-</a> (Java regex:
--   "^([\p{L}\p{Z}\p{N}_.:/=+\-]*)$").
tagKey :: Lens' Tag Text

-- | The optional value of the tag. The string value can be Unicode
--   characters. The string can contain only the set of Unicode letters,
--   digits, white-space, '_', <a>.</a>, <a>/</a>, '=', <a>+</a>, <a>-</a>
--   (Java regex: "^([\p{L}\p{Z}\p{N}_.:/=+\-]*)$").
tagValue :: Lens' Tag Text

-- | Describes a trust relationship between an Microsoft AD in the AWS
--   cloud and an external domain.
--   
--   <i>See:</i> <a>trust</a> smart constructor.
data Trust

-- | Creates a value of <a>Trust</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tDirectoryId</a> - The Directory ID of the AWS directory
--   involved in the trust relationship.</li>
--   <li><a>tTrustState</a> - The trust relationship state.</li>
--   <li><a>tLastUpdatedDateTime</a> - The date and time that the trust
--   relationship was last updated.</li>
--   <li><a>tTrustDirection</a> - The trust relationship direction.</li>
--   <li><a>tStateLastUpdatedDateTime</a> - The date and time that the
--   TrustState was last updated.</li>
--   <li><a>tTrustType</a> - The trust relationship type.</li>
--   <li><a>tTrustStateReason</a> - The reason for the TrustState.</li>
--   <li><a>tRemoteDomainName</a> - The Fully Qualified Domain Name (FQDN)
--   of the external domain involved in the trust relationship.</li>
--   <li><a>tTrustId</a> - The unique ID of the trust relationship.</li>
--   <li><a>tCreatedDateTime</a> - The date and time that the trust
--   relationship was created.</li>
--   </ul>
trust :: Trust

-- | The Directory ID of the AWS directory involved in the trust
--   relationship.
tDirectoryId :: Lens' Trust (Maybe Text)

-- | The trust relationship state.
tTrustState :: Lens' Trust (Maybe TrustState)

-- | The date and time that the trust relationship was last updated.
tLastUpdatedDateTime :: Lens' Trust (Maybe UTCTime)

-- | The trust relationship direction.
tTrustDirection :: Lens' Trust (Maybe TrustDirection)

-- | The date and time that the TrustState was last updated.
tStateLastUpdatedDateTime :: Lens' Trust (Maybe UTCTime)

-- | The trust relationship type.
tTrustType :: Lens' Trust (Maybe TrustType)

-- | The reason for the TrustState.
tTrustStateReason :: Lens' Trust (Maybe Text)

-- | The Fully Qualified Domain Name (FQDN) of the external domain involved
--   in the trust relationship.
tRemoteDomainName :: Lens' Trust (Maybe Text)

-- | The unique ID of the trust relationship.
tTrustId :: Lens' Trust (Maybe Text)

-- | The date and time that the trust relationship was created.
tCreatedDateTime :: Lens' Trust (Maybe UTCTime)


-- | Updates a conditional forwarder that has been set up for your AWS
--   directory.
module Network.AWS.DirectoryService.UpdateConditionalForwarder

-- | Creates a value of <a>UpdateConditionalForwarder</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ucfDirectoryId</a> - The directory ID of the AWS directory for
--   which to update the conditional forwarder.</li>
--   <li><a>ucfRemoteDomainName</a> - The fully qualified domain name
--   (FQDN) of the remote domain with which you will set up a trust
--   relationship.</li>
--   <li><a>ucfDNSIPAddrs</a> - The updated IP addresses of the remote DNS
--   server associated with the conditional forwarder.</li>
--   </ul>
updateConditionalForwarder :: Text -> Text -> UpdateConditionalForwarder

-- | Updates a conditional forwarder.
--   
--   <i>See:</i> <a>updateConditionalForwarder</a> smart constructor.
data UpdateConditionalForwarder

-- | The directory ID of the AWS directory for which to update the
--   conditional forwarder.
ucfDirectoryId :: Lens' UpdateConditionalForwarder Text

-- | The fully qualified domain name (FQDN) of the remote domain with which
--   you will set up a trust relationship.
ucfRemoteDomainName :: Lens' UpdateConditionalForwarder Text

-- | The updated IP addresses of the remote DNS server associated with the
--   conditional forwarder.
ucfDNSIPAddrs :: Lens' UpdateConditionalForwarder [Text]

-- | Creates a value of <a>UpdateConditionalForwarderResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ucfrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateConditionalForwarderResponse :: Int -> UpdateConditionalForwarderResponse

-- | The result of an UpdateConditionalForwarder request.
--   
--   <i>See:</i> <a>updateConditionalForwarderResponse</a> smart
--   constructor.
data UpdateConditionalForwarderResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ucfrsResponseStatus :: Lens' UpdateConditionalForwarderResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.UpdateConditionalForwarder.UpdateConditionalForwarderResponse
instance Data.Data.Data Network.AWS.DirectoryService.UpdateConditionalForwarder.UpdateConditionalForwarderResponse
instance GHC.Show.Show Network.AWS.DirectoryService.UpdateConditionalForwarder.UpdateConditionalForwarderResponse
instance GHC.Read.Read Network.AWS.DirectoryService.UpdateConditionalForwarder.UpdateConditionalForwarderResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.UpdateConditionalForwarder.UpdateConditionalForwarderResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.UpdateConditionalForwarder.UpdateConditionalForwarder
instance Data.Data.Data Network.AWS.DirectoryService.UpdateConditionalForwarder.UpdateConditionalForwarder
instance GHC.Show.Show Network.AWS.DirectoryService.UpdateConditionalForwarder.UpdateConditionalForwarder
instance GHC.Read.Read Network.AWS.DirectoryService.UpdateConditionalForwarder.UpdateConditionalForwarder
instance GHC.Classes.Eq Network.AWS.DirectoryService.UpdateConditionalForwarder.UpdateConditionalForwarder
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.UpdateConditionalForwarder.UpdateConditionalForwarder
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.UpdateConditionalForwarder.UpdateConditionalForwarder
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.UpdateConditionalForwarder.UpdateConditionalForwarder
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.UpdateConditionalForwarder.UpdateConditionalForwarder
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.UpdateConditionalForwarder.UpdateConditionalForwarder
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.UpdateConditionalForwarder.UpdateConditionalForwarder
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.UpdateConditionalForwarder.UpdateConditionalForwarder
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.UpdateConditionalForwarder.UpdateConditionalForwarderResponse


-- | Updates the Remote Authentication Dial In User Service (RADIUS) server
--   information for an AD Connector directory.
module Network.AWS.DirectoryService.UpdateRadius

-- | Creates a value of <a>UpdateRadius</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>urDirectoryId</a> - The identifier of the directory for which
--   to update the RADIUS server information.</li>
--   <li><a>urRadiusSettings</a> - A <a>RadiusSettings</a> object that
--   contains information about the RADIUS server.</li>
--   </ul>
updateRadius :: Text -> RadiusSettings -> UpdateRadius

-- | Contains the inputs for the <a>UpdateRadius</a> operation.
--   
--   <i>See:</i> <a>updateRadius</a> smart constructor.
data UpdateRadius

-- | The identifier of the directory for which to update the RADIUS server
--   information.
urDirectoryId :: Lens' UpdateRadius Text

-- | A <a>RadiusSettings</a> object that contains information about the
--   RADIUS server.
urRadiusSettings :: Lens' UpdateRadius RadiusSettings

-- | Creates a value of <a>UpdateRadiusResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>urrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateRadiusResponse :: Int -> UpdateRadiusResponse

-- | Contains the results of the <a>UpdateRadius</a> operation.
--   
--   <i>See:</i> <a>updateRadiusResponse</a> smart constructor.
data UpdateRadiusResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
urrsResponseStatus :: Lens' UpdateRadiusResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.UpdateRadius.UpdateRadiusResponse
instance Data.Data.Data Network.AWS.DirectoryService.UpdateRadius.UpdateRadiusResponse
instance GHC.Show.Show Network.AWS.DirectoryService.UpdateRadius.UpdateRadiusResponse
instance GHC.Read.Read Network.AWS.DirectoryService.UpdateRadius.UpdateRadiusResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.UpdateRadius.UpdateRadiusResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.UpdateRadius.UpdateRadius
instance Data.Data.Data Network.AWS.DirectoryService.UpdateRadius.UpdateRadius
instance GHC.Show.Show Network.AWS.DirectoryService.UpdateRadius.UpdateRadius
instance GHC.Read.Read Network.AWS.DirectoryService.UpdateRadius.UpdateRadius
instance GHC.Classes.Eq Network.AWS.DirectoryService.UpdateRadius.UpdateRadius
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.UpdateRadius.UpdateRadius
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.UpdateRadius.UpdateRadius
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.UpdateRadius.UpdateRadius
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.UpdateRadius.UpdateRadius
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.UpdateRadius.UpdateRadius
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.UpdateRadius.UpdateRadius
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.UpdateRadius.UpdateRadius
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.UpdateRadius.UpdateRadiusResponse


-- | AWS Directory Service for Microsoft Active Directory allows you to
--   configure and verify trust relationships.
--   
--   This action verifies a trust relationship between your Microsoft AD in
--   the AWS cloud and an external domain.
module Network.AWS.DirectoryService.VerifyTrust

-- | Creates a value of <a>VerifyTrust</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vtTrustId</a> - The unique Trust ID of the trust relationship
--   to verify.</li>
--   </ul>
verifyTrust :: Text -> VerifyTrust

-- | Initiates the verification of an existing trust relationship between a
--   Microsoft AD in the AWS cloud and an external domain.
--   
--   <i>See:</i> <a>verifyTrust</a> smart constructor.
data VerifyTrust

-- | The unique Trust ID of the trust relationship to verify.
vtTrustId :: Lens' VerifyTrust Text

-- | Creates a value of <a>VerifyTrustResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vtrsTrustId</a> - The unique Trust ID of the trust relationship
--   that was verified.</li>
--   <li><a>vtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
verifyTrustResponse :: Int -> VerifyTrustResponse

-- | Result of a VerifyTrust request.
--   
--   <i>See:</i> <a>verifyTrustResponse</a> smart constructor.
data VerifyTrustResponse

-- | The unique Trust ID of the trust relationship that was verified.
vtrsTrustId :: Lens' VerifyTrustResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
vtrsResponseStatus :: Lens' VerifyTrustResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.VerifyTrust.VerifyTrustResponse
instance Data.Data.Data Network.AWS.DirectoryService.VerifyTrust.VerifyTrustResponse
instance GHC.Show.Show Network.AWS.DirectoryService.VerifyTrust.VerifyTrustResponse
instance GHC.Read.Read Network.AWS.DirectoryService.VerifyTrust.VerifyTrustResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.VerifyTrust.VerifyTrustResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.VerifyTrust.VerifyTrust
instance Data.Data.Data Network.AWS.DirectoryService.VerifyTrust.VerifyTrust
instance GHC.Show.Show Network.AWS.DirectoryService.VerifyTrust.VerifyTrust
instance GHC.Read.Read Network.AWS.DirectoryService.VerifyTrust.VerifyTrust
instance GHC.Classes.Eq Network.AWS.DirectoryService.VerifyTrust.VerifyTrust
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.VerifyTrust.VerifyTrust
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.VerifyTrust.VerifyTrust
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.VerifyTrust.VerifyTrust
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.VerifyTrust.VerifyTrust
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.VerifyTrust.VerifyTrust
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.VerifyTrust.VerifyTrust
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.VerifyTrust.VerifyTrust
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.VerifyTrust.VerifyTrustResponse


module Network.AWS.DirectoryService.Waiters


-- | Applies a schema extension to a Microsoft AD directory.
module Network.AWS.DirectoryService.StartSchemaExtension

-- | Creates a value of <a>StartSchemaExtension</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sseDirectoryId</a> - The identifier of the directory for which
--   the schema extension will be applied to.</li>
--   <li><a>sseCreateSnapshotBeforeSchemaExtension</a> - If true, creates a
--   snapshot of the directory before applying the schema extension.</li>
--   <li><a>sseLdifContent</a> - The LDIF file represented as a string. The
--   file size can be no larger than 1MB.</li>
--   <li><a>sseDescription</a> - A description of the schema
--   extension.</li>
--   </ul>
startSchemaExtension :: Text -> Bool -> Text -> Text -> StartSchemaExtension

-- | <i>See:</i> <a>startSchemaExtension</a> smart constructor.
data StartSchemaExtension

-- | The identifier of the directory for which the schema extension will be
--   applied to.
sseDirectoryId :: Lens' StartSchemaExtension Text

-- | If true, creates a snapshot of the directory before applying the
--   schema extension.
sseCreateSnapshotBeforeSchemaExtension :: Lens' StartSchemaExtension Bool

-- | The LDIF file represented as a string. The file size can be no larger
--   than 1MB.
sseLdifContent :: Lens' StartSchemaExtension Text

-- | A description of the schema extension.
sseDescription :: Lens' StartSchemaExtension Text

-- | Creates a value of <a>StartSchemaExtensionResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssersSchemaExtensionId</a> - The identifier of the schema
--   extension that will be applied.</li>
--   <li><a>ssersResponseStatus</a> - -- | The response status code.</li>
--   </ul>
startSchemaExtensionResponse :: Int -> StartSchemaExtensionResponse

-- | <i>See:</i> <a>startSchemaExtensionResponse</a> smart constructor.
data StartSchemaExtensionResponse

-- | The identifier of the schema extension that will be applied.
ssersSchemaExtensionId :: Lens' StartSchemaExtensionResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ssersResponseStatus :: Lens' StartSchemaExtensionResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.StartSchemaExtension.StartSchemaExtensionResponse
instance Data.Data.Data Network.AWS.DirectoryService.StartSchemaExtension.StartSchemaExtensionResponse
instance GHC.Show.Show Network.AWS.DirectoryService.StartSchemaExtension.StartSchemaExtensionResponse
instance GHC.Read.Read Network.AWS.DirectoryService.StartSchemaExtension.StartSchemaExtensionResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.StartSchemaExtension.StartSchemaExtensionResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.StartSchemaExtension.StartSchemaExtension
instance Data.Data.Data Network.AWS.DirectoryService.StartSchemaExtension.StartSchemaExtension
instance GHC.Show.Show Network.AWS.DirectoryService.StartSchemaExtension.StartSchemaExtension
instance GHC.Read.Read Network.AWS.DirectoryService.StartSchemaExtension.StartSchemaExtension
instance GHC.Classes.Eq Network.AWS.DirectoryService.StartSchemaExtension.StartSchemaExtension
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.StartSchemaExtension.StartSchemaExtension
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.StartSchemaExtension.StartSchemaExtension
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.StartSchemaExtension.StartSchemaExtension
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.StartSchemaExtension.StartSchemaExtension
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.StartSchemaExtension.StartSchemaExtension
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.StartSchemaExtension.StartSchemaExtension
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.StartSchemaExtension.StartSchemaExtension
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.StartSchemaExtension.StartSchemaExtensionResponse


-- | Restores a directory using an existing directory snapshot.
--   
--   When you restore a directory from a snapshot, any changes made to the
--   directory after the snapshot date are overwritten.
--   
--   This action returns as soon as the restore operation is initiated. You
--   can monitor the progress of the restore operation by calling the
--   <tt>DescribeDirectories</tt> operation with the directory identifier.
--   When the <b>DirectoryDescription.Stage</b> value changes to
--   <tt>Active</tt> , the restore operation is complete.
module Network.AWS.DirectoryService.RestoreFromSnapshot

-- | Creates a value of <a>RestoreFromSnapshot</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rfsSnapshotId</a> - The identifier of the snapshot to restore
--   from.</li>
--   </ul>
restoreFromSnapshot :: Text -> RestoreFromSnapshot

-- | An object representing the inputs for the <a>RestoreFromSnapshot</a>
--   operation.
--   
--   <i>See:</i> <a>restoreFromSnapshot</a> smart constructor.
data RestoreFromSnapshot

-- | The identifier of the snapshot to restore from.
rfsSnapshotId :: Lens' RestoreFromSnapshot Text

-- | Creates a value of <a>RestoreFromSnapshotResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rfsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
restoreFromSnapshotResponse :: Int -> RestoreFromSnapshotResponse

-- | Contains the results of the <a>RestoreFromSnapshot</a> operation.
--   
--   <i>See:</i> <a>restoreFromSnapshotResponse</a> smart constructor.
data RestoreFromSnapshotResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
rfsrsResponseStatus :: Lens' RestoreFromSnapshotResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.RestoreFromSnapshot.RestoreFromSnapshotResponse
instance Data.Data.Data Network.AWS.DirectoryService.RestoreFromSnapshot.RestoreFromSnapshotResponse
instance GHC.Show.Show Network.AWS.DirectoryService.RestoreFromSnapshot.RestoreFromSnapshotResponse
instance GHC.Read.Read Network.AWS.DirectoryService.RestoreFromSnapshot.RestoreFromSnapshotResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.RestoreFromSnapshot.RestoreFromSnapshotResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.RestoreFromSnapshot.RestoreFromSnapshot
instance Data.Data.Data Network.AWS.DirectoryService.RestoreFromSnapshot.RestoreFromSnapshot
instance GHC.Show.Show Network.AWS.DirectoryService.RestoreFromSnapshot.RestoreFromSnapshot
instance GHC.Read.Read Network.AWS.DirectoryService.RestoreFromSnapshot.RestoreFromSnapshot
instance GHC.Classes.Eq Network.AWS.DirectoryService.RestoreFromSnapshot.RestoreFromSnapshot
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.RestoreFromSnapshot.RestoreFromSnapshot
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.RestoreFromSnapshot.RestoreFromSnapshot
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.RestoreFromSnapshot.RestoreFromSnapshot
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.RestoreFromSnapshot.RestoreFromSnapshot
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.RestoreFromSnapshot.RestoreFromSnapshot
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.RestoreFromSnapshot.RestoreFromSnapshot
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.RestoreFromSnapshot.RestoreFromSnapshot
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.RestoreFromSnapshot.RestoreFromSnapshotResponse


-- | Removes tags from an Amazon Directory Services directory.
module Network.AWS.DirectoryService.RemoveTagsFromResource

-- | Creates a value of <a>RemoveTagsFromResource</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rtfrResourceId</a> - Identifier (ID) of the directory from
--   which to remove the tag.</li>
--   <li><a>rtfrTagKeys</a> - The tag key (name) of the tag to be
--   removed.</li>
--   </ul>
removeTagsFromResource :: Text -> RemoveTagsFromResource

-- | <i>See:</i> <a>removeTagsFromResource</a> smart constructor.
data RemoveTagsFromResource

-- | Identifier (ID) of the directory from which to remove the tag.
rtfrResourceId :: Lens' RemoveTagsFromResource Text

-- | The tag key (name) of the tag to be removed.
rtfrTagKeys :: Lens' RemoveTagsFromResource [Text]

-- | Creates a value of <a>RemoveTagsFromResourceResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rtfrrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
removeTagsFromResourceResponse :: Int -> RemoveTagsFromResourceResponse

-- | <i>See:</i> <a>removeTagsFromResourceResponse</a> smart constructor.
data RemoveTagsFromResourceResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
rtfrrsResponseStatus :: Lens' RemoveTagsFromResourceResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.RemoveTagsFromResource.RemoveTagsFromResourceResponse
instance Data.Data.Data Network.AWS.DirectoryService.RemoveTagsFromResource.RemoveTagsFromResourceResponse
instance GHC.Show.Show Network.AWS.DirectoryService.RemoveTagsFromResource.RemoveTagsFromResourceResponse
instance GHC.Read.Read Network.AWS.DirectoryService.RemoveTagsFromResource.RemoveTagsFromResourceResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.RemoveTagsFromResource.RemoveTagsFromResourceResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.RemoveTagsFromResource.RemoveTagsFromResource
instance Data.Data.Data Network.AWS.DirectoryService.RemoveTagsFromResource.RemoveTagsFromResource
instance GHC.Show.Show Network.AWS.DirectoryService.RemoveTagsFromResource.RemoveTagsFromResource
instance GHC.Read.Read Network.AWS.DirectoryService.RemoveTagsFromResource.RemoveTagsFromResource
instance GHC.Classes.Eq Network.AWS.DirectoryService.RemoveTagsFromResource.RemoveTagsFromResource
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.RemoveTagsFromResource.RemoveTagsFromResource
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.RemoveTagsFromResource.RemoveTagsFromResource
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.RemoveTagsFromResource.RemoveTagsFromResource
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.RemoveTagsFromResource.RemoveTagsFromResource
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.RemoveTagsFromResource.RemoveTagsFromResource
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.RemoveTagsFromResource.RemoveTagsFromResource
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.RemoveTagsFromResource.RemoveTagsFromResource
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.RemoveTagsFromResource.RemoveTagsFromResourceResponse


-- | Removes IP address blocks from a directory.
module Network.AWS.DirectoryService.RemoveIPRoutes

-- | Creates a value of <a>RemoveIPRoutes</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rirDirectoryId</a> - Identifier (ID) of the directory from
--   which you want to remove the IP addresses.</li>
--   <li><a>rirCidrIPs</a> - IP address blocks that you want to
--   remove.</li>
--   </ul>
removeIPRoutes :: Text -> RemoveIPRoutes

-- | <i>See:</i> <a>removeIPRoutes</a> smart constructor.
data RemoveIPRoutes

-- | Identifier (ID) of the directory from which you want to remove the IP
--   addresses.
rirDirectoryId :: Lens' RemoveIPRoutes Text

-- | IP address blocks that you want to remove.
rirCidrIPs :: Lens' RemoveIPRoutes [Text]

-- | Creates a value of <a>RemoveIPRoutesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rirrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
removeIPRoutesResponse :: Int -> RemoveIPRoutesResponse

-- | <i>See:</i> <a>removeIPRoutesResponse</a> smart constructor.
data RemoveIPRoutesResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
rirrsResponseStatus :: Lens' RemoveIPRoutesResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.RemoveIPRoutes.RemoveIPRoutesResponse
instance Data.Data.Data Network.AWS.DirectoryService.RemoveIPRoutes.RemoveIPRoutesResponse
instance GHC.Show.Show Network.AWS.DirectoryService.RemoveIPRoutes.RemoveIPRoutesResponse
instance GHC.Read.Read Network.AWS.DirectoryService.RemoveIPRoutes.RemoveIPRoutesResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.RemoveIPRoutes.RemoveIPRoutesResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.RemoveIPRoutes.RemoveIPRoutes
instance Data.Data.Data Network.AWS.DirectoryService.RemoveIPRoutes.RemoveIPRoutes
instance GHC.Show.Show Network.AWS.DirectoryService.RemoveIPRoutes.RemoveIPRoutes
instance GHC.Read.Read Network.AWS.DirectoryService.RemoveIPRoutes.RemoveIPRoutes
instance GHC.Classes.Eq Network.AWS.DirectoryService.RemoveIPRoutes.RemoveIPRoutes
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.RemoveIPRoutes.RemoveIPRoutes
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.RemoveIPRoutes.RemoveIPRoutes
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.RemoveIPRoutes.RemoveIPRoutes
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.RemoveIPRoutes.RemoveIPRoutes
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.RemoveIPRoutes.RemoveIPRoutes
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.RemoveIPRoutes.RemoveIPRoutes
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.RemoveIPRoutes.RemoveIPRoutes
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.RemoveIPRoutes.RemoveIPRoutesResponse


-- | Associates a directory with an SNS topic. This establishes the
--   directory as a publisher to the specified SNS topic. You can then
--   receive email or text (SMS) messages when the status of your directory
--   changes. You get notified if your directory goes from an Active status
--   to an Impaired or Inoperable status. You also receive a notification
--   when the directory returns to an Active status.
module Network.AWS.DirectoryService.RegisterEventTopic

-- | Creates a value of <a>RegisterEventTopic</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>retDirectoryId</a> - The Directory ID that will publish status
--   messages to the SNS topic.</li>
--   <li><a>retTopicName</a> - The SNS topic name to which the directory
--   will publish status messages. This SNS topic must be in the same
--   region as the specified Directory ID.</li>
--   </ul>
registerEventTopic :: Text -> Text -> RegisterEventTopic

-- | Registers a new event topic.
--   
--   <i>See:</i> <a>registerEventTopic</a> smart constructor.
data RegisterEventTopic

-- | The Directory ID that will publish status messages to the SNS topic.
retDirectoryId :: Lens' RegisterEventTopic Text

-- | The SNS topic name to which the directory will publish status
--   messages. This SNS topic must be in the same region as the specified
--   Directory ID.
retTopicName :: Lens' RegisterEventTopic Text

-- | Creates a value of <a>RegisterEventTopicResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>retrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
registerEventTopicResponse :: Int -> RegisterEventTopicResponse

-- | The result of a RegisterEventTopic request.
--   
--   <i>See:</i> <a>registerEventTopicResponse</a> smart constructor.
data RegisterEventTopicResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
retrsResponseStatus :: Lens' RegisterEventTopicResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.RegisterEventTopic.RegisterEventTopicResponse
instance Data.Data.Data Network.AWS.DirectoryService.RegisterEventTopic.RegisterEventTopicResponse
instance GHC.Show.Show Network.AWS.DirectoryService.RegisterEventTopic.RegisterEventTopicResponse
instance GHC.Read.Read Network.AWS.DirectoryService.RegisterEventTopic.RegisterEventTopicResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.RegisterEventTopic.RegisterEventTopicResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.RegisterEventTopic.RegisterEventTopic
instance Data.Data.Data Network.AWS.DirectoryService.RegisterEventTopic.RegisterEventTopic
instance GHC.Show.Show Network.AWS.DirectoryService.RegisterEventTopic.RegisterEventTopic
instance GHC.Read.Read Network.AWS.DirectoryService.RegisterEventTopic.RegisterEventTopic
instance GHC.Classes.Eq Network.AWS.DirectoryService.RegisterEventTopic.RegisterEventTopic
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.RegisterEventTopic.RegisterEventTopic
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.RegisterEventTopic.RegisterEventTopic
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.RegisterEventTopic.RegisterEventTopic
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.RegisterEventTopic.RegisterEventTopic
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.RegisterEventTopic.RegisterEventTopic
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.RegisterEventTopic.RegisterEventTopic
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.RegisterEventTopic.RegisterEventTopic
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.RegisterEventTopic.RegisterEventTopicResponse


-- | Lists all tags on an Amazon Directory Services directory.
module Network.AWS.DirectoryService.ListTagsForResource

-- | Creates a value of <a>ListTagsForResource</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltfrNextToken</a> - Reserved for future use.</li>
--   <li><a>ltfrLimit</a> - Reserved for future use.</li>
--   <li><a>ltfrResourceId</a> - Identifier (ID) of the directory for which
--   you want to retrieve tags.</li>
--   </ul>
listTagsForResource :: Text -> ListTagsForResource

-- | <i>See:</i> <a>listTagsForResource</a> smart constructor.
data ListTagsForResource

-- | Reserved for future use.
ltfrNextToken :: Lens' ListTagsForResource (Maybe Text)

-- | Reserved for future use.
ltfrLimit :: Lens' ListTagsForResource (Maybe Natural)

-- | Identifier (ID) of the directory for which you want to retrieve tags.
ltfrResourceId :: Lens' ListTagsForResource Text

-- | Creates a value of <a>ListTagsForResourceResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltfrrsNextToken</a> - Reserved for future use.</li>
--   <li><a>ltfrrsTags</a> - List of tags returned by the
--   ListTagsForResource operation.</li>
--   <li><a>ltfrrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listTagsForResourceResponse :: Int -> ListTagsForResourceResponse

-- | <i>See:</i> <a>listTagsForResourceResponse</a> smart constructor.
data ListTagsForResourceResponse

-- | Reserved for future use.
ltfrrsNextToken :: Lens' ListTagsForResourceResponse (Maybe Text)

-- | List of tags returned by the ListTagsForResource operation.
ltfrrsTags :: Lens' ListTagsForResourceResponse [Tag]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ltfrrsResponseStatus :: Lens' ListTagsForResourceResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.ListTagsForResource.ListTagsForResourceResponse
instance Data.Data.Data Network.AWS.DirectoryService.ListTagsForResource.ListTagsForResourceResponse
instance GHC.Show.Show Network.AWS.DirectoryService.ListTagsForResource.ListTagsForResourceResponse
instance GHC.Read.Read Network.AWS.DirectoryService.ListTagsForResource.ListTagsForResourceResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.ListTagsForResource.ListTagsForResourceResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.ListTagsForResource.ListTagsForResource
instance Data.Data.Data Network.AWS.DirectoryService.ListTagsForResource.ListTagsForResource
instance GHC.Show.Show Network.AWS.DirectoryService.ListTagsForResource.ListTagsForResource
instance GHC.Read.Read Network.AWS.DirectoryService.ListTagsForResource.ListTagsForResource
instance GHC.Classes.Eq Network.AWS.DirectoryService.ListTagsForResource.ListTagsForResource
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.ListTagsForResource.ListTagsForResource
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.ListTagsForResource.ListTagsForResource
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.ListTagsForResource.ListTagsForResource
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.ListTagsForResource.ListTagsForResource
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.ListTagsForResource.ListTagsForResource
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.ListTagsForResource.ListTagsForResource
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.ListTagsForResource.ListTagsForResource
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.ListTagsForResource.ListTagsForResourceResponse


-- | Lists all schema extensions applied to a Microsoft AD Directory.
module Network.AWS.DirectoryService.ListSchemaExtensions

-- | Creates a value of <a>ListSchemaExtensions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lseNextToken</a> - The <tt>ListSchemaExtensions.NextToken</tt>
--   value from a previous call to <tt>ListSchemaExtensions</tt> . Pass
--   null if this is the first call.</li>
--   <li><a>lseLimit</a> - The maximum number of items to return.</li>
--   <li><a>lseDirectoryId</a> - The identifier of the directory from which
--   to retrieve the schema extension information.</li>
--   </ul>
listSchemaExtensions :: Text -> ListSchemaExtensions

-- | <i>See:</i> <a>listSchemaExtensions</a> smart constructor.
data ListSchemaExtensions

-- | The <tt>ListSchemaExtensions.NextToken</tt> value from a previous call
--   to <tt>ListSchemaExtensions</tt> . Pass null if this is the first
--   call.
lseNextToken :: Lens' ListSchemaExtensions (Maybe Text)

-- | The maximum number of items to return.
lseLimit :: Lens' ListSchemaExtensions (Maybe Natural)

-- | The identifier of the directory from which to retrieve the schema
--   extension information.
lseDirectoryId :: Lens' ListSchemaExtensions Text

-- | Creates a value of <a>ListSchemaExtensionsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lsersSchemaExtensionsInfo</a> - Information about the schema
--   extensions applied to the directory.</li>
--   <li><a>lsersNextToken</a> - If not null, more results are available.
--   Pass this value for the <tt>NextToken</tt> parameter in a subsequent
--   call to <tt>ListSchemaExtensions</tt> to retrieve the next set of
--   items.</li>
--   <li><a>lsersResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listSchemaExtensionsResponse :: Int -> ListSchemaExtensionsResponse

-- | <i>See:</i> <a>listSchemaExtensionsResponse</a> smart constructor.
data ListSchemaExtensionsResponse

-- | Information about the schema extensions applied to the directory.
lsersSchemaExtensionsInfo :: Lens' ListSchemaExtensionsResponse [SchemaExtensionInfo]

-- | If not null, more results are available. Pass this value for the
--   <tt>NextToken</tt> parameter in a subsequent call to
--   <tt>ListSchemaExtensions</tt> to retrieve the next set of items.
lsersNextToken :: Lens' ListSchemaExtensionsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lsersResponseStatus :: Lens' ListSchemaExtensionsResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.ListSchemaExtensions.ListSchemaExtensionsResponse
instance Data.Data.Data Network.AWS.DirectoryService.ListSchemaExtensions.ListSchemaExtensionsResponse
instance GHC.Show.Show Network.AWS.DirectoryService.ListSchemaExtensions.ListSchemaExtensionsResponse
instance GHC.Read.Read Network.AWS.DirectoryService.ListSchemaExtensions.ListSchemaExtensionsResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.ListSchemaExtensions.ListSchemaExtensionsResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.ListSchemaExtensions.ListSchemaExtensions
instance Data.Data.Data Network.AWS.DirectoryService.ListSchemaExtensions.ListSchemaExtensions
instance GHC.Show.Show Network.AWS.DirectoryService.ListSchemaExtensions.ListSchemaExtensions
instance GHC.Read.Read Network.AWS.DirectoryService.ListSchemaExtensions.ListSchemaExtensions
instance GHC.Classes.Eq Network.AWS.DirectoryService.ListSchemaExtensions.ListSchemaExtensions
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.ListSchemaExtensions.ListSchemaExtensions
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.ListSchemaExtensions.ListSchemaExtensions
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.ListSchemaExtensions.ListSchemaExtensions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.ListSchemaExtensions.ListSchemaExtensions
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.ListSchemaExtensions.ListSchemaExtensions
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.ListSchemaExtensions.ListSchemaExtensions
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.ListSchemaExtensions.ListSchemaExtensions
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.ListSchemaExtensions.ListSchemaExtensionsResponse


-- | Lists the address blocks that you have added to a directory.
module Network.AWS.DirectoryService.ListIPRoutes

-- | Creates a value of <a>ListIPRoutes</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lirNextToken</a> - The <i>ListIpRoutes.NextToken</i> value from
--   a previous call to <tt>ListIpRoutes</tt> . Pass null if this is the
--   first call.</li>
--   <li><a>lirLimit</a> - Maximum number of items to return. If this value
--   is zero, the maximum number of items is specified by the limitations
--   of the operation.</li>
--   <li><a>lirDirectoryId</a> - Identifier (ID) of the directory for which
--   you want to retrieve the IP addresses.</li>
--   </ul>
listIPRoutes :: Text -> ListIPRoutes

-- | <i>See:</i> <a>listIPRoutes</a> smart constructor.
data ListIPRoutes

-- | The <i>ListIpRoutes.NextToken</i> value from a previous call to
--   <tt>ListIpRoutes</tt> . Pass null if this is the first call.
lirNextToken :: Lens' ListIPRoutes (Maybe Text)

-- | Maximum number of items to return. If this value is zero, the maximum
--   number of items is specified by the limitations of the operation.
lirLimit :: Lens' ListIPRoutes (Maybe Natural)

-- | Identifier (ID) of the directory for which you want to retrieve the IP
--   addresses.
lirDirectoryId :: Lens' ListIPRoutes Text

-- | Creates a value of <a>ListIPRoutesResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lirrsIPRoutesInfo</a> - A list of <tt>IpRoute</tt> s.</li>
--   <li><a>lirrsNextToken</a> - If not null, more results are available.
--   Pass this value for the <i>NextToken</i> parameter in a subsequent
--   call to <tt>ListIpRoutes</tt> to retrieve the next set of items.</li>
--   <li><a>lirrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listIPRoutesResponse :: Int -> ListIPRoutesResponse

-- | <i>See:</i> <a>listIPRoutesResponse</a> smart constructor.
data ListIPRoutesResponse

-- | A list of <tt>IpRoute</tt> s.
lirrsIPRoutesInfo :: Lens' ListIPRoutesResponse [IPRouteInfo]

-- | If not null, more results are available. Pass this value for the
--   <i>NextToken</i> parameter in a subsequent call to
--   <tt>ListIpRoutes</tt> to retrieve the next set of items.
lirrsNextToken :: Lens' ListIPRoutesResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lirrsResponseStatus :: Lens' ListIPRoutesResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.ListIPRoutes.ListIPRoutesResponse
instance Data.Data.Data Network.AWS.DirectoryService.ListIPRoutes.ListIPRoutesResponse
instance GHC.Show.Show Network.AWS.DirectoryService.ListIPRoutes.ListIPRoutesResponse
instance GHC.Read.Read Network.AWS.DirectoryService.ListIPRoutes.ListIPRoutesResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.ListIPRoutes.ListIPRoutesResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.ListIPRoutes.ListIPRoutes
instance Data.Data.Data Network.AWS.DirectoryService.ListIPRoutes.ListIPRoutes
instance GHC.Show.Show Network.AWS.DirectoryService.ListIPRoutes.ListIPRoutes
instance GHC.Read.Read Network.AWS.DirectoryService.ListIPRoutes.ListIPRoutes
instance GHC.Classes.Eq Network.AWS.DirectoryService.ListIPRoutes.ListIPRoutes
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.ListIPRoutes.ListIPRoutes
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.ListIPRoutes.ListIPRoutes
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.ListIPRoutes.ListIPRoutes
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.ListIPRoutes.ListIPRoutes
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.ListIPRoutes.ListIPRoutes
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.ListIPRoutes.ListIPRoutes
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.ListIPRoutes.ListIPRoutes
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.ListIPRoutes.ListIPRoutesResponse


-- | Obtains the manual snapshot limits for a directory.
module Network.AWS.DirectoryService.GetSnapshotLimits

-- | Creates a value of <a>GetSnapshotLimits</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gslDirectoryId</a> - Contains the identifier of the directory
--   to obtain the limits for.</li>
--   </ul>
getSnapshotLimits :: Text -> GetSnapshotLimits

-- | Contains the inputs for the <a>GetSnapshotLimits</a> operation.
--   
--   <i>See:</i> <a>getSnapshotLimits</a> smart constructor.
data GetSnapshotLimits

-- | Contains the identifier of the directory to obtain the limits for.
gslDirectoryId :: Lens' GetSnapshotLimits Text

-- | Creates a value of <a>GetSnapshotLimitsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gslrsSnapshotLimits</a> - A <a>SnapshotLimits</a> object that
--   contains the manual snapshot limits for the specified directory.</li>
--   <li><a>gslrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getSnapshotLimitsResponse :: Int -> GetSnapshotLimitsResponse

-- | Contains the results of the <a>GetSnapshotLimits</a> operation.
--   
--   <i>See:</i> <a>getSnapshotLimitsResponse</a> smart constructor.
data GetSnapshotLimitsResponse

-- | A <a>SnapshotLimits</a> object that contains the manual snapshot
--   limits for the specified directory.
gslrsSnapshotLimits :: Lens' GetSnapshotLimitsResponse (Maybe SnapshotLimits)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gslrsResponseStatus :: Lens' GetSnapshotLimitsResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.GetSnapshotLimits.GetSnapshotLimitsResponse
instance Data.Data.Data Network.AWS.DirectoryService.GetSnapshotLimits.GetSnapshotLimitsResponse
instance GHC.Show.Show Network.AWS.DirectoryService.GetSnapshotLimits.GetSnapshotLimitsResponse
instance GHC.Read.Read Network.AWS.DirectoryService.GetSnapshotLimits.GetSnapshotLimitsResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.GetSnapshotLimits.GetSnapshotLimitsResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.GetSnapshotLimits.GetSnapshotLimits
instance Data.Data.Data Network.AWS.DirectoryService.GetSnapshotLimits.GetSnapshotLimits
instance GHC.Show.Show Network.AWS.DirectoryService.GetSnapshotLimits.GetSnapshotLimits
instance GHC.Read.Read Network.AWS.DirectoryService.GetSnapshotLimits.GetSnapshotLimits
instance GHC.Classes.Eq Network.AWS.DirectoryService.GetSnapshotLimits.GetSnapshotLimits
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.GetSnapshotLimits.GetSnapshotLimits
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.GetSnapshotLimits.GetSnapshotLimits
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.GetSnapshotLimits.GetSnapshotLimits
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.GetSnapshotLimits.GetSnapshotLimits
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.GetSnapshotLimits.GetSnapshotLimits
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.GetSnapshotLimits.GetSnapshotLimits
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.GetSnapshotLimits.GetSnapshotLimits
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.GetSnapshotLimits.GetSnapshotLimitsResponse


-- | Obtains directory limit information for the current region.
module Network.AWS.DirectoryService.GetDirectoryLimits

-- | Creates a value of <a>GetDirectoryLimits</a> with the minimum fields
--   required to make a request.
getDirectoryLimits :: GetDirectoryLimits

-- | Contains the inputs for the <a>GetDirectoryLimits</a> operation.
--   
--   <i>See:</i> <a>getDirectoryLimits</a> smart constructor.
data GetDirectoryLimits

-- | Creates a value of <a>GetDirectoryLimitsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdlrsDirectoryLimits</a> - A <a>DirectoryLimits</a> object that
--   contains the directory limits for the current region.</li>
--   <li><a>gdlrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getDirectoryLimitsResponse :: Int -> GetDirectoryLimitsResponse

-- | Contains the results of the <a>GetDirectoryLimits</a> operation.
--   
--   <i>See:</i> <a>getDirectoryLimitsResponse</a> smart constructor.
data GetDirectoryLimitsResponse

-- | A <a>DirectoryLimits</a> object that contains the directory limits for
--   the current region.
gdlrsDirectoryLimits :: Lens' GetDirectoryLimitsResponse (Maybe DirectoryLimits)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gdlrsResponseStatus :: Lens' GetDirectoryLimitsResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.GetDirectoryLimits.GetDirectoryLimitsResponse
instance Data.Data.Data Network.AWS.DirectoryService.GetDirectoryLimits.GetDirectoryLimitsResponse
instance GHC.Show.Show Network.AWS.DirectoryService.GetDirectoryLimits.GetDirectoryLimitsResponse
instance GHC.Read.Read Network.AWS.DirectoryService.GetDirectoryLimits.GetDirectoryLimitsResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.GetDirectoryLimits.GetDirectoryLimitsResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.GetDirectoryLimits.GetDirectoryLimits
instance Data.Data.Data Network.AWS.DirectoryService.GetDirectoryLimits.GetDirectoryLimits
instance GHC.Show.Show Network.AWS.DirectoryService.GetDirectoryLimits.GetDirectoryLimits
instance GHC.Read.Read Network.AWS.DirectoryService.GetDirectoryLimits.GetDirectoryLimits
instance GHC.Classes.Eq Network.AWS.DirectoryService.GetDirectoryLimits.GetDirectoryLimits
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.GetDirectoryLimits.GetDirectoryLimits
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.GetDirectoryLimits.GetDirectoryLimits
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.GetDirectoryLimits.GetDirectoryLimits
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.GetDirectoryLimits.GetDirectoryLimits
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.GetDirectoryLimits.GetDirectoryLimits
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.GetDirectoryLimits.GetDirectoryLimits
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.GetDirectoryLimits.GetDirectoryLimits
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.GetDirectoryLimits.GetDirectoryLimitsResponse


-- | Enables single-sign on for a directory.
module Network.AWS.DirectoryService.EnableSSO

-- | Creates a value of <a>EnableSSO</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>esUserName</a> - The username of an alternate account to use to
--   enable single-sign on. This is only used for AD Connector directories.
--   This account must have privileges to add a service principal name. If
--   the AD Connector service account does not have privileges to add a
--   service principal name, you can specify an alternate account with the
--   <i>UserName</i> and <i>Password</i> parameters. These credentials are
--   only used to enable single sign-on and are not stored by the service.
--   The AD Connector service account is not changed.</li>
--   <li><a>esPassword</a> - The password of an alternate account to use to
--   enable single-sign on. This is only used for AD Connector directories.
--   For more information, see the <i>UserName</i> parameter.</li>
--   <li><a>esDirectoryId</a> - The identifier of the directory for which
--   to enable single-sign on.</li>
--   </ul>
enableSSO :: Text -> EnableSSO

-- | Contains the inputs for the <tt>EnableSso</tt> operation.
--   
--   <i>See:</i> <a>enableSSO</a> smart constructor.
data EnableSSO

-- | The username of an alternate account to use to enable single-sign on.
--   This is only used for AD Connector directories. This account must have
--   privileges to add a service principal name. If the AD Connector
--   service account does not have privileges to add a service principal
--   name, you can specify an alternate account with the <i>UserName</i>
--   and <i>Password</i> parameters. These credentials are only used to
--   enable single sign-on and are not stored by the service. The AD
--   Connector service account is not changed.
esUserName :: Lens' EnableSSO (Maybe Text)

-- | The password of an alternate account to use to enable single-sign on.
--   This is only used for AD Connector directories. For more information,
--   see the <i>UserName</i> parameter.
esPassword :: Lens' EnableSSO (Maybe Text)

-- | The identifier of the directory for which to enable single-sign on.
esDirectoryId :: Lens' EnableSSO Text

-- | Creates a value of <a>EnableSSOResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>esrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
enableSSOResponse :: Int -> EnableSSOResponse

-- | Contains the results of the <tt>EnableSso</tt> operation.
--   
--   <i>See:</i> <a>enableSSOResponse</a> smart constructor.
data EnableSSOResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
esrsResponseStatus :: Lens' EnableSSOResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.EnableSSO.EnableSSOResponse
instance Data.Data.Data Network.AWS.DirectoryService.EnableSSO.EnableSSOResponse
instance GHC.Show.Show Network.AWS.DirectoryService.EnableSSO.EnableSSOResponse
instance GHC.Read.Read Network.AWS.DirectoryService.EnableSSO.EnableSSOResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.EnableSSO.EnableSSOResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.EnableSSO.EnableSSO
instance Data.Data.Data Network.AWS.DirectoryService.EnableSSO.EnableSSO
instance GHC.Show.Show Network.AWS.DirectoryService.EnableSSO.EnableSSO
instance GHC.Read.Read Network.AWS.DirectoryService.EnableSSO.EnableSSO
instance GHC.Classes.Eq Network.AWS.DirectoryService.EnableSSO.EnableSSO
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.EnableSSO.EnableSSO
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.EnableSSO.EnableSSO
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.EnableSSO.EnableSSO
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.EnableSSO.EnableSSO
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.EnableSSO.EnableSSO
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.EnableSSO.EnableSSO
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.EnableSSO.EnableSSO
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.EnableSSO.EnableSSOResponse


-- | Enables multi-factor authentication (MFA) with the Remote
--   Authentication Dial In User Service (RADIUS) server for an AD
--   Connector directory.
module Network.AWS.DirectoryService.EnableRadius

-- | Creates a value of <a>EnableRadius</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>erDirectoryId</a> - The identifier of the directory for which
--   to enable MFA.</li>
--   <li><a>erRadiusSettings</a> - A <a>RadiusSettings</a> object that
--   contains information about the RADIUS server.</li>
--   </ul>
enableRadius :: Text -> RadiusSettings -> EnableRadius

-- | Contains the inputs for the <a>EnableRadius</a> operation.
--   
--   <i>See:</i> <a>enableRadius</a> smart constructor.
data EnableRadius

-- | The identifier of the directory for which to enable MFA.
erDirectoryId :: Lens' EnableRadius Text

-- | A <a>RadiusSettings</a> object that contains information about the
--   RADIUS server.
erRadiusSettings :: Lens' EnableRadius RadiusSettings

-- | Creates a value of <a>EnableRadiusResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>errsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
enableRadiusResponse :: Int -> EnableRadiusResponse

-- | Contains the results of the <a>EnableRadius</a> operation.
--   
--   <i>See:</i> <a>enableRadiusResponse</a> smart constructor.
data EnableRadiusResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
errsResponseStatus :: Lens' EnableRadiusResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.EnableRadius.EnableRadiusResponse
instance Data.Data.Data Network.AWS.DirectoryService.EnableRadius.EnableRadiusResponse
instance GHC.Show.Show Network.AWS.DirectoryService.EnableRadius.EnableRadiusResponse
instance GHC.Read.Read Network.AWS.DirectoryService.EnableRadius.EnableRadiusResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.EnableRadius.EnableRadiusResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.EnableRadius.EnableRadius
instance Data.Data.Data Network.AWS.DirectoryService.EnableRadius.EnableRadius
instance GHC.Show.Show Network.AWS.DirectoryService.EnableRadius.EnableRadius
instance GHC.Read.Read Network.AWS.DirectoryService.EnableRadius.EnableRadius
instance GHC.Classes.Eq Network.AWS.DirectoryService.EnableRadius.EnableRadius
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.EnableRadius.EnableRadius
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.EnableRadius.EnableRadius
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.EnableRadius.EnableRadius
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.EnableRadius.EnableRadius
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.EnableRadius.EnableRadius
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.EnableRadius.EnableRadius
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.EnableRadius.EnableRadius
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.EnableRadius.EnableRadiusResponse


-- | Disables single-sign on for a directory.
module Network.AWS.DirectoryService.DisableSSO

-- | Creates a value of <a>DisableSSO</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dssoUserName</a> - The username of an alternate account to use
--   to disable single-sign on. This is only used for AD Connector
--   directories. This account must have privileges to remove a service
--   principal name. If the AD Connector service account does not have
--   privileges to remove a service principal name, you can specify an
--   alternate account with the <i>UserName</i> and <i>Password</i>
--   parameters. These credentials are only used to disable single sign-on
--   and are not stored by the service. The AD Connector service account is
--   not changed.</li>
--   <li><a>dssoPassword</a> - The password of an alternate account to use
--   to disable single-sign on. This is only used for AD Connector
--   directories. For more information, see the <i>UserName</i>
--   parameter.</li>
--   <li><a>dssoDirectoryId</a> - The identifier of the directory for which
--   to disable single-sign on.</li>
--   </ul>
disableSSO :: Text -> DisableSSO

-- | Contains the inputs for the <tt>DisableSso</tt> operation.
--   
--   <i>See:</i> <a>disableSSO</a> smart constructor.
data DisableSSO

-- | The username of an alternate account to use to disable single-sign on.
--   This is only used for AD Connector directories. This account must have
--   privileges to remove a service principal name. If the AD Connector
--   service account does not have privileges to remove a service principal
--   name, you can specify an alternate account with the <i>UserName</i>
--   and <i>Password</i> parameters. These credentials are only used to
--   disable single sign-on and are not stored by the service. The AD
--   Connector service account is not changed.
dssoUserName :: Lens' DisableSSO (Maybe Text)

-- | The password of an alternate account to use to disable single-sign on.
--   This is only used for AD Connector directories. For more information,
--   see the <i>UserName</i> parameter.
dssoPassword :: Lens' DisableSSO (Maybe Text)

-- | The identifier of the directory for which to disable single-sign on.
dssoDirectoryId :: Lens' DisableSSO Text

-- | Creates a value of <a>DisableSSOResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dssorsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
disableSSOResponse :: Int -> DisableSSOResponse

-- | Contains the results of the <tt>DisableSso</tt> operation.
--   
--   <i>See:</i> <a>disableSSOResponse</a> smart constructor.
data DisableSSOResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dssorsResponseStatus :: Lens' DisableSSOResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.DisableSSO.DisableSSOResponse
instance Data.Data.Data Network.AWS.DirectoryService.DisableSSO.DisableSSOResponse
instance GHC.Show.Show Network.AWS.DirectoryService.DisableSSO.DisableSSOResponse
instance GHC.Read.Read Network.AWS.DirectoryService.DisableSSO.DisableSSOResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.DisableSSO.DisableSSOResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.DisableSSO.DisableSSO
instance Data.Data.Data Network.AWS.DirectoryService.DisableSSO.DisableSSO
instance GHC.Show.Show Network.AWS.DirectoryService.DisableSSO.DisableSSO
instance GHC.Read.Read Network.AWS.DirectoryService.DisableSSO.DisableSSO
instance GHC.Classes.Eq Network.AWS.DirectoryService.DisableSSO.DisableSSO
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.DisableSSO.DisableSSO
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.DisableSSO.DisableSSO
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DisableSSO.DisableSSO
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.DisableSSO.DisableSSO
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.DisableSSO.DisableSSO
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.DisableSSO.DisableSSO
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.DisableSSO.DisableSSO
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DisableSSO.DisableSSOResponse


-- | Disables multi-factor authentication (MFA) with the Remote
--   Authentication Dial In User Service (RADIUS) server for an AD
--   Connector directory.
module Network.AWS.DirectoryService.DisableRadius

-- | Creates a value of <a>DisableRadius</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drDirectoryId</a> - The identifier of the directory for which
--   to disable MFA.</li>
--   </ul>
disableRadius :: Text -> DisableRadius

-- | Contains the inputs for the <a>DisableRadius</a> operation.
--   
--   <i>See:</i> <a>disableRadius</a> smart constructor.
data DisableRadius

-- | The identifier of the directory for which to disable MFA.
drDirectoryId :: Lens' DisableRadius Text

-- | Creates a value of <a>DisableRadiusResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
disableRadiusResponse :: Int -> DisableRadiusResponse

-- | Contains the results of the <a>DisableRadius</a> operation.
--   
--   <i>See:</i> <a>disableRadiusResponse</a> smart constructor.
data DisableRadiusResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
drrsResponseStatus :: Lens' DisableRadiusResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.DisableRadius.DisableRadiusResponse
instance Data.Data.Data Network.AWS.DirectoryService.DisableRadius.DisableRadiusResponse
instance GHC.Show.Show Network.AWS.DirectoryService.DisableRadius.DisableRadiusResponse
instance GHC.Read.Read Network.AWS.DirectoryService.DisableRadius.DisableRadiusResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.DisableRadius.DisableRadiusResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.DisableRadius.DisableRadius
instance Data.Data.Data Network.AWS.DirectoryService.DisableRadius.DisableRadius
instance GHC.Show.Show Network.AWS.DirectoryService.DisableRadius.DisableRadius
instance GHC.Read.Read Network.AWS.DirectoryService.DisableRadius.DisableRadius
instance GHC.Classes.Eq Network.AWS.DirectoryService.DisableRadius.DisableRadius
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.DisableRadius.DisableRadius
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.DisableRadius.DisableRadius
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DisableRadius.DisableRadius
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.DisableRadius.DisableRadius
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.DisableRadius.DisableRadius
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.DisableRadius.DisableRadius
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.DisableRadius.DisableRadius
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DisableRadius.DisableRadiusResponse


-- | Obtains information about the trust relationships for this account.
--   
--   If no input parameters are provided, such as DirectoryId or TrustIds,
--   this request describes all the trust relationships belonging to the
--   account.
module Network.AWS.DirectoryService.DescribeTrusts

-- | Creates a value of <a>DescribeTrusts</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtDirectoryId</a> - The Directory ID of the AWS directory that
--   is a part of the requested trust relationship.</li>
--   <li><a>dtNextToken</a> - The <i>DescribeTrustsResult.NextToken</i>
--   value from a previous call to <a>DescribeTrusts</a> . Pass null if
--   this is the first call.</li>
--   <li><a>dtTrustIds</a> - A list of identifiers of the trust
--   relationships for which to obtain the information. If this member is
--   null, all trust relationships that belong to the current account are
--   returned. An empty list results in an
--   <tt>InvalidParameterException</tt> being thrown.</li>
--   <li><a>dtLimit</a> - The maximum number of objects to return.</li>
--   </ul>
describeTrusts :: DescribeTrusts

-- | Describes the trust relationships for a particular Microsoft AD in the
--   AWS cloud. If no input parameters are are provided, such as directory
--   ID or trust ID, this request describes all the trust relationships.
--   
--   <i>See:</i> <a>describeTrusts</a> smart constructor.
data DescribeTrusts

-- | The Directory ID of the AWS directory that is a part of the requested
--   trust relationship.
dtDirectoryId :: Lens' DescribeTrusts (Maybe Text)

-- | The <i>DescribeTrustsResult.NextToken</i> value from a previous call
--   to <a>DescribeTrusts</a> . Pass null if this is the first call.
dtNextToken :: Lens' DescribeTrusts (Maybe Text)

-- | A list of identifiers of the trust relationships for which to obtain
--   the information. If this member is null, all trust relationships that
--   belong to the current account are returned. An empty list results in
--   an <tt>InvalidParameterException</tt> being thrown.
dtTrustIds :: Lens' DescribeTrusts [Text]

-- | The maximum number of objects to return.
dtLimit :: Lens' DescribeTrusts (Maybe Natural)

-- | Creates a value of <a>DescribeTrustsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtrsNextToken</a> - If not null, more results are available.
--   Pass this value for the <i>NextToken</i> parameter in a subsequent
--   call to <a>DescribeTrusts</a> to retrieve the next set of items.</li>
--   <li><a>dtrsTrusts</a> - The list of Trust objects that were retrieved.
--   It is possible that this list contains less than the number of items
--   specified in the <i>Limit</i> member of the request. This occurs if
--   there are less than the requested number of items left to retrieve, or
--   if the limitations of the operation have been exceeded.</li>
--   <li><a>dtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeTrustsResponse :: Int -> DescribeTrustsResponse

-- | The result of a DescribeTrust request.
--   
--   <i>See:</i> <a>describeTrustsResponse</a> smart constructor.
data DescribeTrustsResponse

-- | If not null, more results are available. Pass this value for the
--   <i>NextToken</i> parameter in a subsequent call to
--   <a>DescribeTrusts</a> to retrieve the next set of items.
dtrsNextToken :: Lens' DescribeTrustsResponse (Maybe Text)

-- | The list of Trust objects that were retrieved. It is possible that
--   this list contains less than the number of items specified in the
--   <i>Limit</i> member of the request. This occurs if there are less than
--   the requested number of items left to retrieve, or if the limitations
--   of the operation have been exceeded.
dtrsTrusts :: Lens' DescribeTrustsResponse [Trust]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dtrsResponseStatus :: Lens' DescribeTrustsResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.DescribeTrusts.DescribeTrustsResponse
instance Data.Data.Data Network.AWS.DirectoryService.DescribeTrusts.DescribeTrustsResponse
instance GHC.Show.Show Network.AWS.DirectoryService.DescribeTrusts.DescribeTrustsResponse
instance GHC.Read.Read Network.AWS.DirectoryService.DescribeTrusts.DescribeTrustsResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.DescribeTrusts.DescribeTrustsResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.DescribeTrusts.DescribeTrusts
instance Data.Data.Data Network.AWS.DirectoryService.DescribeTrusts.DescribeTrusts
instance GHC.Show.Show Network.AWS.DirectoryService.DescribeTrusts.DescribeTrusts
instance GHC.Read.Read Network.AWS.DirectoryService.DescribeTrusts.DescribeTrusts
instance GHC.Classes.Eq Network.AWS.DirectoryService.DescribeTrusts.DescribeTrusts
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.DescribeTrusts.DescribeTrusts
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.DescribeTrusts.DescribeTrusts
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DescribeTrusts.DescribeTrusts
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.DescribeTrusts.DescribeTrusts
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.DescribeTrusts.DescribeTrusts
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.DescribeTrusts.DescribeTrusts
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.DescribeTrusts.DescribeTrusts
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DescribeTrusts.DescribeTrustsResponse


-- | Obtains information about the directory snapshots that belong to this
--   account.
--   
--   This operation supports pagination with the use of the
--   <i>NextToken</i> request and response parameters. If more results are
--   available, the <i>DescribeSnapshots.NextToken</i> member contains a
--   token that you pass in the next call to <a>DescribeSnapshots</a> to
--   retrieve the next set of items.
--   
--   You can also specify a maximum number of return results with the
--   <i>Limit</i> parameter.
module Network.AWS.DirectoryService.DescribeSnapshots

-- | Creates a value of <a>DescribeSnapshots</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsDirectoryId</a> - The identifier of the directory for which
--   to retrieve snapshot information.</li>
--   <li><a>dsNextToken</a> - The <i>DescribeSnapshotsResult.NextToken</i>
--   value from a previous call to <a>DescribeSnapshots</a> . Pass null if
--   this is the first call.</li>
--   <li><a>dsSnapshotIds</a> - A list of identifiers of the snapshots to
--   obtain the information for. If this member is null or empty, all
--   snapshots are returned using the <i>Limit</i> and <i>NextToken</i>
--   members.</li>
--   <li><a>dsLimit</a> - The maximum number of objects to return.</li>
--   </ul>
describeSnapshots :: DescribeSnapshots

-- | Contains the inputs for the <a>DescribeSnapshots</a> operation.
--   
--   <i>See:</i> <a>describeSnapshots</a> smart constructor.
data DescribeSnapshots

-- | The identifier of the directory for which to retrieve snapshot
--   information.
dsDirectoryId :: Lens' DescribeSnapshots (Maybe Text)

-- | The <i>DescribeSnapshotsResult.NextToken</i> value from a previous
--   call to <a>DescribeSnapshots</a> . Pass null if this is the first
--   call.
dsNextToken :: Lens' DescribeSnapshots (Maybe Text)

-- | A list of identifiers of the snapshots to obtain the information for.
--   If this member is null or empty, all snapshots are returned using the
--   <i>Limit</i> and <i>NextToken</i> members.
dsSnapshotIds :: Lens' DescribeSnapshots [Text]

-- | The maximum number of objects to return.
dsLimit :: Lens' DescribeSnapshots (Maybe Natural)

-- | Creates a value of <a>DescribeSnapshotsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dssrsNextToken</a> - If not null, more results are available.
--   Pass this value in the <i>NextToken</i> member of a subsequent call to
--   <a>DescribeSnapshots</a> .</li>
--   <li><a>dssrsSnapshots</a> - The list of <a>Snapshot</a> objects that
--   were retrieved. It is possible that this list contains less than the
--   number of items specified in the <i>Limit</i> member of the request.
--   This occurs if there are less than the requested number of items left
--   to retrieve, or if the limitations of the operation have been
--   exceeded.</li>
--   <li><a>dssrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeSnapshotsResponse :: Int -> DescribeSnapshotsResponse

-- | Contains the results of the <a>DescribeSnapshots</a> operation.
--   
--   <i>See:</i> <a>describeSnapshotsResponse</a> smart constructor.
data DescribeSnapshotsResponse

-- | If not null, more results are available. Pass this value in the
--   <i>NextToken</i> member of a subsequent call to
--   <a>DescribeSnapshots</a> .
dssrsNextToken :: Lens' DescribeSnapshotsResponse (Maybe Text)

-- | The list of <a>Snapshot</a> objects that were retrieved. It is
--   possible that this list contains less than the number of items
--   specified in the <i>Limit</i> member of the request. This occurs if
--   there are less than the requested number of items left to retrieve, or
--   if the limitations of the operation have been exceeded.
dssrsSnapshots :: Lens' DescribeSnapshotsResponse [Snapshot]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dssrsResponseStatus :: Lens' DescribeSnapshotsResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.DescribeSnapshots.DescribeSnapshotsResponse
instance Data.Data.Data Network.AWS.DirectoryService.DescribeSnapshots.DescribeSnapshotsResponse
instance GHC.Show.Show Network.AWS.DirectoryService.DescribeSnapshots.DescribeSnapshotsResponse
instance GHC.Read.Read Network.AWS.DirectoryService.DescribeSnapshots.DescribeSnapshotsResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.DescribeSnapshots.DescribeSnapshotsResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.DescribeSnapshots.DescribeSnapshots
instance Data.Data.Data Network.AWS.DirectoryService.DescribeSnapshots.DescribeSnapshots
instance GHC.Show.Show Network.AWS.DirectoryService.DescribeSnapshots.DescribeSnapshots
instance GHC.Read.Read Network.AWS.DirectoryService.DescribeSnapshots.DescribeSnapshots
instance GHC.Classes.Eq Network.AWS.DirectoryService.DescribeSnapshots.DescribeSnapshots
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.DescribeSnapshots.DescribeSnapshots
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.DescribeSnapshots.DescribeSnapshots
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DescribeSnapshots.DescribeSnapshots
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.DescribeSnapshots.DescribeSnapshots
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.DescribeSnapshots.DescribeSnapshots
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.DescribeSnapshots.DescribeSnapshots
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.DescribeSnapshots.DescribeSnapshots
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DescribeSnapshots.DescribeSnapshotsResponse


-- | Obtains information about which SNS topics receive status messages
--   from the specified directory.
--   
--   If no input parameters are provided, such as DirectoryId or TopicName,
--   this request describes all of the associations in the account.
module Network.AWS.DirectoryService.DescribeEventTopics

-- | Creates a value of <a>DescribeEventTopics</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dDirectoryId</a> - The Directory ID for which to get the list
--   of associated SNS topics. If this member is null, associations for all
--   Directory IDs are returned.</li>
--   <li><a>dTopicNames</a> - A list of SNS topic names for which to obtain
--   the information. If this member is null, all associations for the
--   specified Directory ID are returned. An empty list results in an
--   <tt>InvalidParameterException</tt> being thrown.</li>
--   </ul>
describeEventTopics :: DescribeEventTopics

-- | Describes event topics.
--   
--   <i>See:</i> <a>describeEventTopics</a> smart constructor.
data DescribeEventTopics

-- | The Directory ID for which to get the list of associated SNS topics.
--   If this member is null, associations for all Directory IDs are
--   returned.
dDirectoryId :: Lens' DescribeEventTopics (Maybe Text)

-- | A list of SNS topic names for which to obtain the information. If this
--   member is null, all associations for the specified Directory ID are
--   returned. An empty list results in an
--   <tt>InvalidParameterException</tt> being thrown.
dTopicNames :: Lens' DescribeEventTopics [Text]

-- | Creates a value of <a>DescribeEventTopicsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>detrsEventTopics</a> - A list of SNS topic names that receive
--   status messages from the specified Directory ID.</li>
--   <li><a>detrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeEventTopicsResponse :: Int -> DescribeEventTopicsResponse

-- | The result of a DescribeEventTopic request.
--   
--   <i>See:</i> <a>describeEventTopicsResponse</a> smart constructor.
data DescribeEventTopicsResponse

-- | A list of SNS topic names that receive status messages from the
--   specified Directory ID.
detrsEventTopics :: Lens' DescribeEventTopicsResponse [EventTopic]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
detrsResponseStatus :: Lens' DescribeEventTopicsResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.DescribeEventTopics.DescribeEventTopicsResponse
instance Data.Data.Data Network.AWS.DirectoryService.DescribeEventTopics.DescribeEventTopicsResponse
instance GHC.Show.Show Network.AWS.DirectoryService.DescribeEventTopics.DescribeEventTopicsResponse
instance GHC.Read.Read Network.AWS.DirectoryService.DescribeEventTopics.DescribeEventTopicsResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.DescribeEventTopics.DescribeEventTopicsResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.DescribeEventTopics.DescribeEventTopics
instance Data.Data.Data Network.AWS.DirectoryService.DescribeEventTopics.DescribeEventTopics
instance GHC.Show.Show Network.AWS.DirectoryService.DescribeEventTopics.DescribeEventTopics
instance GHC.Read.Read Network.AWS.DirectoryService.DescribeEventTopics.DescribeEventTopics
instance GHC.Classes.Eq Network.AWS.DirectoryService.DescribeEventTopics.DescribeEventTopics
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.DescribeEventTopics.DescribeEventTopics
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.DescribeEventTopics.DescribeEventTopics
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DescribeEventTopics.DescribeEventTopics
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.DescribeEventTopics.DescribeEventTopics
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.DescribeEventTopics.DescribeEventTopics
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.DescribeEventTopics.DescribeEventTopics
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.DescribeEventTopics.DescribeEventTopics
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DescribeEventTopics.DescribeEventTopicsResponse


-- | Obtains information about the directories that belong to this account.
--   
--   You can retrieve information about specific directories by passing the
--   directory identifiers in the <i>DirectoryIds</i> parameter. Otherwise,
--   all directories that belong to the current account are returned.
--   
--   This operation supports pagination with the use of the
--   <i>NextToken</i> request and response parameters. If more results are
--   available, the <i>DescribeDirectoriesResult.NextToken</i> member
--   contains a token that you pass in the next call to
--   <a>DescribeDirectories</a> to retrieve the next set of items.
--   
--   You can also specify a maximum number of return results with the
--   <i>Limit</i> parameter.
module Network.AWS.DirectoryService.DescribeDirectories

-- | Creates a value of <a>DescribeDirectories</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddNextToken</a> - The
--   <i>DescribeDirectoriesResult.NextToken</i> value from a previous call
--   to <a>DescribeDirectories</a> . Pass null if this is the first
--   call.</li>
--   <li><a>ddDirectoryIds</a> - A list of identifiers of the directories
--   for which to obtain the information. If this member is null, all
--   directories that belong to the current account are returned. An empty
--   list results in an <tt>InvalidParameterException</tt> being
--   thrown.</li>
--   <li><a>ddLimit</a> - The maximum number of items to return. If this
--   value is zero, the maximum number of items is specified by the
--   limitations of the operation.</li>
--   </ul>
describeDirectories :: DescribeDirectories

-- | Contains the inputs for the <a>DescribeDirectories</a> operation.
--   
--   <i>See:</i> <a>describeDirectories</a> smart constructor.
data DescribeDirectories

-- | The <i>DescribeDirectoriesResult.NextToken</i> value from a previous
--   call to <a>DescribeDirectories</a> . Pass null if this is the first
--   call.
ddNextToken :: Lens' DescribeDirectories (Maybe Text)

-- | A list of identifiers of the directories for which to obtain the
--   information. If this member is null, all directories that belong to
--   the current account are returned. An empty list results in an
--   <tt>InvalidParameterException</tt> being thrown.
ddDirectoryIds :: Lens' DescribeDirectories [Text]

-- | The maximum number of items to return. If this value is zero, the
--   maximum number of items is specified by the limitations of the
--   operation.
ddLimit :: Lens' DescribeDirectories (Maybe Natural)

-- | Creates a value of <a>DescribeDirectoriesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddrsDirectoryDescriptions</a> - The list of
--   <a>DirectoryDescription</a> objects that were retrieved. It is
--   possible that this list contains less than the number of items
--   specified in the <i>Limit</i> member of the request. This occurs if
--   there are less than the requested number of items left to retrieve, or
--   if the limitations of the operation have been exceeded.</li>
--   <li><a>ddrsNextToken</a> - If not null, more results are available.
--   Pass this value for the <i>NextToken</i> parameter in a subsequent
--   call to <a>DescribeDirectories</a> to retrieve the next set of
--   items.</li>
--   <li><a>ddrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeDirectoriesResponse :: Int -> DescribeDirectoriesResponse

-- | Contains the results of the <a>DescribeDirectories</a> operation.
--   
--   <i>See:</i> <a>describeDirectoriesResponse</a> smart constructor.
data DescribeDirectoriesResponse

-- | The list of <a>DirectoryDescription</a> objects that were retrieved.
--   It is possible that this list contains less than the number of items
--   specified in the <i>Limit</i> member of the request. This occurs if
--   there are less than the requested number of items left to retrieve, or
--   if the limitations of the operation have been exceeded.
ddrsDirectoryDescriptions :: Lens' DescribeDirectoriesResponse [DirectoryDescription]

-- | If not null, more results are available. Pass this value for the
--   <i>NextToken</i> parameter in a subsequent call to
--   <a>DescribeDirectories</a> to retrieve the next set of items.
ddrsNextToken :: Lens' DescribeDirectoriesResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ddrsResponseStatus :: Lens' DescribeDirectoriesResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.DescribeDirectories.DescribeDirectoriesResponse
instance Data.Data.Data Network.AWS.DirectoryService.DescribeDirectories.DescribeDirectoriesResponse
instance GHC.Show.Show Network.AWS.DirectoryService.DescribeDirectories.DescribeDirectoriesResponse
instance GHC.Read.Read Network.AWS.DirectoryService.DescribeDirectories.DescribeDirectoriesResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.DescribeDirectories.DescribeDirectoriesResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.DescribeDirectories.DescribeDirectories
instance Data.Data.Data Network.AWS.DirectoryService.DescribeDirectories.DescribeDirectories
instance GHC.Show.Show Network.AWS.DirectoryService.DescribeDirectories.DescribeDirectories
instance GHC.Read.Read Network.AWS.DirectoryService.DescribeDirectories.DescribeDirectories
instance GHC.Classes.Eq Network.AWS.DirectoryService.DescribeDirectories.DescribeDirectories
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.DescribeDirectories.DescribeDirectories
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.DescribeDirectories.DescribeDirectories
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DescribeDirectories.DescribeDirectories
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.DescribeDirectories.DescribeDirectories
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.DescribeDirectories.DescribeDirectories
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.DescribeDirectories.DescribeDirectories
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.DescribeDirectories.DescribeDirectories
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DescribeDirectories.DescribeDirectoriesResponse


-- | Obtains information about the conditional forwarders for this account.
--   
--   If no input parameters are provided for RemoteDomainNames, this
--   request describes all conditional forwarders for the specified
--   directory ID.
module Network.AWS.DirectoryService.DescribeConditionalForwarders

-- | Creates a value of <a>DescribeConditionalForwarders</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcfRemoteDomainNames</a> - The fully qualified domain names
--   (FQDN) of the remote domains for which to get the list of associated
--   conditional forwarders. If this member is null, all conditional
--   forwarders are returned.</li>
--   <li><a>dcfDirectoryId</a> - The directory ID for which to get the list
--   of associated conditional forwarders.</li>
--   </ul>
describeConditionalForwarders :: Text -> DescribeConditionalForwarders

-- | Describes a conditional forwarder.
--   
--   <i>See:</i> <a>describeConditionalForwarders</a> smart constructor.
data DescribeConditionalForwarders

-- | The fully qualified domain names (FQDN) of the remote domains for
--   which to get the list of associated conditional forwarders. If this
--   member is null, all conditional forwarders are returned.
dcfRemoteDomainNames :: Lens' DescribeConditionalForwarders [Text]

-- | The directory ID for which to get the list of associated conditional
--   forwarders.
dcfDirectoryId :: Lens' DescribeConditionalForwarders Text

-- | Creates a value of <a>DescribeConditionalForwardersResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcfrsConditionalForwarders</a> - The list of conditional
--   forwarders that have been created.</li>
--   <li><a>dcfrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeConditionalForwardersResponse :: Int -> DescribeConditionalForwardersResponse

-- | The result of a DescribeConditionalForwarder request.
--   
--   <i>See:</i> <a>describeConditionalForwardersResponse</a> smart
--   constructor.
data DescribeConditionalForwardersResponse

-- | The list of conditional forwarders that have been created.
dcfrsConditionalForwarders :: Lens' DescribeConditionalForwardersResponse [ConditionalForwarder]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dcfrsResponseStatus :: Lens' DescribeConditionalForwardersResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.DescribeConditionalForwarders.DescribeConditionalForwardersResponse
instance Data.Data.Data Network.AWS.DirectoryService.DescribeConditionalForwarders.DescribeConditionalForwardersResponse
instance GHC.Show.Show Network.AWS.DirectoryService.DescribeConditionalForwarders.DescribeConditionalForwardersResponse
instance GHC.Read.Read Network.AWS.DirectoryService.DescribeConditionalForwarders.DescribeConditionalForwardersResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.DescribeConditionalForwarders.DescribeConditionalForwardersResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.DescribeConditionalForwarders.DescribeConditionalForwarders
instance Data.Data.Data Network.AWS.DirectoryService.DescribeConditionalForwarders.DescribeConditionalForwarders
instance GHC.Show.Show Network.AWS.DirectoryService.DescribeConditionalForwarders.DescribeConditionalForwarders
instance GHC.Read.Read Network.AWS.DirectoryService.DescribeConditionalForwarders.DescribeConditionalForwarders
instance GHC.Classes.Eq Network.AWS.DirectoryService.DescribeConditionalForwarders.DescribeConditionalForwarders
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.DescribeConditionalForwarders.DescribeConditionalForwarders
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.DescribeConditionalForwarders.DescribeConditionalForwarders
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DescribeConditionalForwarders.DescribeConditionalForwarders
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.DescribeConditionalForwarders.DescribeConditionalForwarders
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.DescribeConditionalForwarders.DescribeConditionalForwarders
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.DescribeConditionalForwarders.DescribeConditionalForwarders
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.DescribeConditionalForwarders.DescribeConditionalForwarders
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DescribeConditionalForwarders.DescribeConditionalForwardersResponse


-- | Removes the specified directory as a publisher to the specified SNS
--   topic.
module Network.AWS.DirectoryService.DeregisterEventTopic

-- | Creates a value of <a>DeregisterEventTopic</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>detDirectoryId</a> - The Directory ID to remove as a publisher.
--   This directory will no longer send messages to the specified SNS
--   topic.</li>
--   <li><a>detTopicName</a> - The name of the SNS topic from which to
--   remove the directory as a publisher.</li>
--   </ul>
deregisterEventTopic :: Text -> Text -> DeregisterEventTopic

-- | Removes the specified directory as a publisher to the specified SNS
--   topic.
--   
--   <i>See:</i> <a>deregisterEventTopic</a> smart constructor.
data DeregisterEventTopic

-- | The Directory ID to remove as a publisher. This directory will no
--   longer send messages to the specified SNS topic.
detDirectoryId :: Lens' DeregisterEventTopic Text

-- | The name of the SNS topic from which to remove the directory as a
--   publisher.
detTopicName :: Lens' DeregisterEventTopic Text

-- | Creates a value of <a>DeregisterEventTopicResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>derrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deregisterEventTopicResponse :: Int -> DeregisterEventTopicResponse

-- | The result of a DeregisterEventTopic request.
--   
--   <i>See:</i> <a>deregisterEventTopicResponse</a> smart constructor.
data DeregisterEventTopicResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
derrsResponseStatus :: Lens' DeregisterEventTopicResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.DeregisterEventTopic.DeregisterEventTopicResponse
instance Data.Data.Data Network.AWS.DirectoryService.DeregisterEventTopic.DeregisterEventTopicResponse
instance GHC.Show.Show Network.AWS.DirectoryService.DeregisterEventTopic.DeregisterEventTopicResponse
instance GHC.Read.Read Network.AWS.DirectoryService.DeregisterEventTopic.DeregisterEventTopicResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.DeregisterEventTopic.DeregisterEventTopicResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.DeregisterEventTopic.DeregisterEventTopic
instance Data.Data.Data Network.AWS.DirectoryService.DeregisterEventTopic.DeregisterEventTopic
instance GHC.Show.Show Network.AWS.DirectoryService.DeregisterEventTopic.DeregisterEventTopic
instance GHC.Read.Read Network.AWS.DirectoryService.DeregisterEventTopic.DeregisterEventTopic
instance GHC.Classes.Eq Network.AWS.DirectoryService.DeregisterEventTopic.DeregisterEventTopic
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.DeregisterEventTopic.DeregisterEventTopic
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.DeregisterEventTopic.DeregisterEventTopic
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DeregisterEventTopic.DeregisterEventTopic
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.DeregisterEventTopic.DeregisterEventTopic
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.DeregisterEventTopic.DeregisterEventTopic
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.DeregisterEventTopic.DeregisterEventTopic
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.DeregisterEventTopic.DeregisterEventTopic
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DeregisterEventTopic.DeregisterEventTopicResponse


-- | Deletes an existing trust relationship between your Microsoft AD in
--   the AWS cloud and an external domain.
module Network.AWS.DirectoryService.DeleteTrust

-- | Creates a value of <a>DeleteTrust</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtDeleteAssociatedConditionalForwarder</a> - Delete a
--   conditional forwarder as part of a DeleteTrustRequest.</li>
--   <li><a>dtTrustId</a> - The Trust ID of the trust relationship to be
--   deleted.</li>
--   </ul>
deleteTrust :: Text -> DeleteTrust

-- | Deletes the local side of an existing trust relationship between the
--   Microsoft AD in the AWS cloud and the external domain.
--   
--   <i>See:</i> <a>deleteTrust</a> smart constructor.
data DeleteTrust

-- | Delete a conditional forwarder as part of a DeleteTrustRequest.
dtDeleteAssociatedConditionalForwarder :: Lens' DeleteTrust (Maybe Bool)

-- | The Trust ID of the trust relationship to be deleted.
dtTrustId :: Lens' DeleteTrust Text

-- | Creates a value of <a>DeleteTrustResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dttrsTrustId</a> - The Trust ID of the trust relationship that
--   was deleted.</li>
--   <li><a>dttrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteTrustResponse :: Int -> DeleteTrustResponse

-- | The result of a DeleteTrust request.
--   
--   <i>See:</i> <a>deleteTrustResponse</a> smart constructor.
data DeleteTrustResponse

-- | The Trust ID of the trust relationship that was deleted.
dttrsTrustId :: Lens' DeleteTrustResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dttrsResponseStatus :: Lens' DeleteTrustResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.DeleteTrust.DeleteTrustResponse
instance Data.Data.Data Network.AWS.DirectoryService.DeleteTrust.DeleteTrustResponse
instance GHC.Show.Show Network.AWS.DirectoryService.DeleteTrust.DeleteTrustResponse
instance GHC.Read.Read Network.AWS.DirectoryService.DeleteTrust.DeleteTrustResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.DeleteTrust.DeleteTrustResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.DeleteTrust.DeleteTrust
instance Data.Data.Data Network.AWS.DirectoryService.DeleteTrust.DeleteTrust
instance GHC.Show.Show Network.AWS.DirectoryService.DeleteTrust.DeleteTrust
instance GHC.Read.Read Network.AWS.DirectoryService.DeleteTrust.DeleteTrust
instance GHC.Classes.Eq Network.AWS.DirectoryService.DeleteTrust.DeleteTrust
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.DeleteTrust.DeleteTrust
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.DeleteTrust.DeleteTrust
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DeleteTrust.DeleteTrust
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.DeleteTrust.DeleteTrust
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.DeleteTrust.DeleteTrust
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.DeleteTrust.DeleteTrust
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.DeleteTrust.DeleteTrust
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DeleteTrust.DeleteTrustResponse


-- | Deletes a directory snapshot.
module Network.AWS.DirectoryService.DeleteSnapshot

-- | Creates a value of <a>DeleteSnapshot</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsSnapshotId</a> - The identifier of the directory snapshot to
--   be deleted.</li>
--   </ul>
deleteSnapshot :: Text -> DeleteSnapshot

-- | Contains the inputs for the <a>DeleteSnapshot</a> operation.
--   
--   <i>See:</i> <a>deleteSnapshot</a> smart constructor.
data DeleteSnapshot

-- | The identifier of the directory snapshot to be deleted.
dsSnapshotId :: Lens' DeleteSnapshot Text

-- | Creates a value of <a>DeleteSnapshotResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsrsSnapshotId</a> - The identifier of the directory snapshot
--   that was deleted.</li>
--   <li><a>dsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteSnapshotResponse :: Int -> DeleteSnapshotResponse

-- | Contains the results of the <a>DeleteSnapshot</a> operation.
--   
--   <i>See:</i> <a>deleteSnapshotResponse</a> smart constructor.
data DeleteSnapshotResponse

-- | The identifier of the directory snapshot that was deleted.
dsrsSnapshotId :: Lens' DeleteSnapshotResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dsrsResponseStatus :: Lens' DeleteSnapshotResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.DeleteSnapshot.DeleteSnapshotResponse
instance Data.Data.Data Network.AWS.DirectoryService.DeleteSnapshot.DeleteSnapshotResponse
instance GHC.Show.Show Network.AWS.DirectoryService.DeleteSnapshot.DeleteSnapshotResponse
instance GHC.Read.Read Network.AWS.DirectoryService.DeleteSnapshot.DeleteSnapshotResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.DeleteSnapshot.DeleteSnapshotResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.DeleteSnapshot.DeleteSnapshot
instance Data.Data.Data Network.AWS.DirectoryService.DeleteSnapshot.DeleteSnapshot
instance GHC.Show.Show Network.AWS.DirectoryService.DeleteSnapshot.DeleteSnapshot
instance GHC.Read.Read Network.AWS.DirectoryService.DeleteSnapshot.DeleteSnapshot
instance GHC.Classes.Eq Network.AWS.DirectoryService.DeleteSnapshot.DeleteSnapshot
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.DeleteSnapshot.DeleteSnapshot
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.DeleteSnapshot.DeleteSnapshot
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DeleteSnapshot.DeleteSnapshot
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.DeleteSnapshot.DeleteSnapshot
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.DeleteSnapshot.DeleteSnapshot
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.DeleteSnapshot.DeleteSnapshot
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.DeleteSnapshot.DeleteSnapshot
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DeleteSnapshot.DeleteSnapshotResponse


-- | Deletes an AWS Directory Service directory.
--   
--   Before you call <i>DeleteDirectory</i> , ensure that all of the
--   required permissions have been explicitly granted through a policy.
--   For details about what permissions are required to run the
--   <i>DeleteDirectory</i> operation, see <a>AWS Directory Service API
--   Permissions: Actions, Resources, and Conditions Reference</a> .
module Network.AWS.DirectoryService.DeleteDirectory

-- | Creates a value of <a>DeleteDirectory</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddDirectoryId</a> - The identifier of the directory to
--   delete.</li>
--   </ul>
deleteDirectory :: Text -> DeleteDirectory

-- | Contains the inputs for the <a>DeleteDirectory</a> operation.
--   
--   <i>See:</i> <a>deleteDirectory</a> smart constructor.
data DeleteDirectory

-- | The identifier of the directory to delete.
dddDirectoryId :: Lens' DeleteDirectory Text

-- | Creates a value of <a>DeleteDirectoryResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>delrsDirectoryId</a> - The directory identifier.</li>
--   <li><a>delrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteDirectoryResponse :: Int -> DeleteDirectoryResponse

-- | Contains the results of the <a>DeleteDirectory</a> operation.
--   
--   <i>See:</i> <a>deleteDirectoryResponse</a> smart constructor.
data DeleteDirectoryResponse

-- | The directory identifier.
delrsDirectoryId :: Lens' DeleteDirectoryResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
delrsResponseStatus :: Lens' DeleteDirectoryResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.DeleteDirectory.DeleteDirectoryResponse
instance Data.Data.Data Network.AWS.DirectoryService.DeleteDirectory.DeleteDirectoryResponse
instance GHC.Show.Show Network.AWS.DirectoryService.DeleteDirectory.DeleteDirectoryResponse
instance GHC.Read.Read Network.AWS.DirectoryService.DeleteDirectory.DeleteDirectoryResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.DeleteDirectory.DeleteDirectoryResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.DeleteDirectory.DeleteDirectory
instance Data.Data.Data Network.AWS.DirectoryService.DeleteDirectory.DeleteDirectory
instance GHC.Show.Show Network.AWS.DirectoryService.DeleteDirectory.DeleteDirectory
instance GHC.Read.Read Network.AWS.DirectoryService.DeleteDirectory.DeleteDirectory
instance GHC.Classes.Eq Network.AWS.DirectoryService.DeleteDirectory.DeleteDirectory
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.DeleteDirectory.DeleteDirectory
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.DeleteDirectory.DeleteDirectory
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DeleteDirectory.DeleteDirectory
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.DeleteDirectory.DeleteDirectory
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.DeleteDirectory.DeleteDirectory
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.DeleteDirectory.DeleteDirectory
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.DeleteDirectory.DeleteDirectory
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DeleteDirectory.DeleteDirectoryResponse


-- | Deletes a conditional forwarder that has been set up for your AWS
--   directory.
module Network.AWS.DirectoryService.DeleteConditionalForwarder

-- | Creates a value of <a>DeleteConditionalForwarder</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>delDirectoryId</a> - The directory ID for which you are
--   deleting the conditional forwarder.</li>
--   <li><a>delRemoteDomainName</a> - The fully qualified domain name
--   (FQDN) of the remote domain with which you are deleting the
--   conditional forwarder.</li>
--   </ul>
deleteConditionalForwarder :: Text -> Text -> DeleteConditionalForwarder

-- | Deletes a conditional forwarder.
--   
--   <i>See:</i> <a>deleteConditionalForwarder</a> smart constructor.
data DeleteConditionalForwarder

-- | The directory ID for which you are deleting the conditional forwarder.
delDirectoryId :: Lens' DeleteConditionalForwarder Text

-- | The fully qualified domain name (FQDN) of the remote domain with which
--   you are deleting the conditional forwarder.
delRemoteDomainName :: Lens' DeleteConditionalForwarder Text

-- | Creates a value of <a>DeleteConditionalForwarderResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteConditionalForwarderResponse :: Int -> DeleteConditionalForwarderResponse

-- | The result of a DeleteConditionalForwarder request.
--   
--   <i>See:</i> <a>deleteConditionalForwarderResponse</a> smart
--   constructor.
data DeleteConditionalForwarderResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
drsResponseStatus :: Lens' DeleteConditionalForwarderResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.DeleteConditionalForwarder.DeleteConditionalForwarderResponse
instance Data.Data.Data Network.AWS.DirectoryService.DeleteConditionalForwarder.DeleteConditionalForwarderResponse
instance GHC.Show.Show Network.AWS.DirectoryService.DeleteConditionalForwarder.DeleteConditionalForwarderResponse
instance GHC.Read.Read Network.AWS.DirectoryService.DeleteConditionalForwarder.DeleteConditionalForwarderResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.DeleteConditionalForwarder.DeleteConditionalForwarderResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.DeleteConditionalForwarder.DeleteConditionalForwarder
instance Data.Data.Data Network.AWS.DirectoryService.DeleteConditionalForwarder.DeleteConditionalForwarder
instance GHC.Show.Show Network.AWS.DirectoryService.DeleteConditionalForwarder.DeleteConditionalForwarder
instance GHC.Read.Read Network.AWS.DirectoryService.DeleteConditionalForwarder.DeleteConditionalForwarder
instance GHC.Classes.Eq Network.AWS.DirectoryService.DeleteConditionalForwarder.DeleteConditionalForwarder
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.DeleteConditionalForwarder.DeleteConditionalForwarder
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.DeleteConditionalForwarder.DeleteConditionalForwarder
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DeleteConditionalForwarder.DeleteConditionalForwarder
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.DeleteConditionalForwarder.DeleteConditionalForwarder
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.DeleteConditionalForwarder.DeleteConditionalForwarder
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.DeleteConditionalForwarder.DeleteConditionalForwarder
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.DeleteConditionalForwarder.DeleteConditionalForwarder
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.DeleteConditionalForwarder.DeleteConditionalForwarderResponse


-- | AWS Directory Service for Microsoft Active Directory allows you to
--   configure trust relationships. For example, you can establish a trust
--   between your Microsoft AD in the AWS cloud, and your existing
--   on-premises Microsoft Active Directory. This would allow you to
--   provide users and groups access to resources in either domain, with a
--   single set of credentials.
--   
--   This action initiates the creation of the AWS side of a trust
--   relationship between a Microsoft AD in the AWS cloud and an external
--   domain.
module Network.AWS.DirectoryService.CreateTrust

-- | Creates a value of <a>CreateTrust</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ctConditionalForwarderIPAddrs</a> - The IP addresses of the
--   remote DNS server associated with RemoteDomainName.</li>
--   <li><a>ctTrustType</a> - The trust relationship type.</li>
--   <li><a>ctDirectoryId</a> - The Directory ID of the Microsoft AD in the
--   AWS cloud for which to establish the trust relationship.</li>
--   <li><a>ctRemoteDomainName</a> - The Fully Qualified Domain Name (FQDN)
--   of the external domain for which to create the trust
--   relationship.</li>
--   <li><a>ctTrustPassword</a> - The trust password. The must be the same
--   password that was used when creating the trust relationship on the
--   external domain.</li>
--   <li><a>ctTrustDirection</a> - The direction of the trust
--   relationship.</li>
--   </ul>
createTrust :: Text -> Text -> Text -> TrustDirection -> CreateTrust

-- | AWS Directory Service for Microsoft Active Directory allows you to
--   configure trust relationships. For example, you can establish a trust
--   between your Microsoft AD in the AWS cloud, and your existing
--   on-premises Microsoft Active Directory. This would allow you to
--   provide users and groups access to resources in either domain, with a
--   single set of credentials.
--   
--   This action initiates the creation of the AWS side of a trust
--   relationship between a Microsoft AD in the AWS cloud and an external
--   domain.
--   
--   <i>See:</i> <a>createTrust</a> smart constructor.
data CreateTrust

-- | The IP addresses of the remote DNS server associated with
--   RemoteDomainName.
ctConditionalForwarderIPAddrs :: Lens' CreateTrust [Text]

-- | The trust relationship type.
ctTrustType :: Lens' CreateTrust (Maybe TrustType)

-- | The Directory ID of the Microsoft AD in the AWS cloud for which to
--   establish the trust relationship.
ctDirectoryId :: Lens' CreateTrust Text

-- | The Fully Qualified Domain Name (FQDN) of the external domain for
--   which to create the trust relationship.
ctRemoteDomainName :: Lens' CreateTrust Text

-- | The trust password. The must be the same password that was used when
--   creating the trust relationship on the external domain.
ctTrustPassword :: Lens' CreateTrust Text

-- | The direction of the trust relationship.
ctTrustDirection :: Lens' CreateTrust TrustDirection

-- | Creates a value of <a>CreateTrustResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ctrsTrustId</a> - A unique identifier for the trust
--   relationship that was created.</li>
--   <li><a>ctrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createTrustResponse :: Int -> CreateTrustResponse

-- | The result of a CreateTrust request.
--   
--   <i>See:</i> <a>createTrustResponse</a> smart constructor.
data CreateTrustResponse

-- | A unique identifier for the trust relationship that was created.
ctrsTrustId :: Lens' CreateTrustResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ctrsResponseStatus :: Lens' CreateTrustResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.CreateTrust.CreateTrustResponse
instance Data.Data.Data Network.AWS.DirectoryService.CreateTrust.CreateTrustResponse
instance GHC.Show.Show Network.AWS.DirectoryService.CreateTrust.CreateTrustResponse
instance GHC.Read.Read Network.AWS.DirectoryService.CreateTrust.CreateTrustResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.CreateTrust.CreateTrustResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.CreateTrust.CreateTrust
instance Data.Data.Data Network.AWS.DirectoryService.CreateTrust.CreateTrust
instance GHC.Show.Show Network.AWS.DirectoryService.CreateTrust.CreateTrust
instance GHC.Read.Read Network.AWS.DirectoryService.CreateTrust.CreateTrust
instance GHC.Classes.Eq Network.AWS.DirectoryService.CreateTrust.CreateTrust
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.CreateTrust.CreateTrust
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.CreateTrust.CreateTrust
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.CreateTrust.CreateTrust
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.CreateTrust.CreateTrust
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.CreateTrust.CreateTrust
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.CreateTrust.CreateTrust
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.CreateTrust.CreateTrust
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.CreateTrust.CreateTrustResponse


-- | Creates a snapshot of a Simple AD or Microsoft AD directory in the AWS
--   cloud.
module Network.AWS.DirectoryService.CreateSnapshot

-- | Creates a value of <a>CreateSnapshot</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csName</a> - The descriptive name to apply to the
--   snapshot.</li>
--   <li><a>csDirectoryId</a> - The identifier of the directory of which to
--   take a snapshot.</li>
--   </ul>
createSnapshot :: Text -> CreateSnapshot

-- | Contains the inputs for the <a>CreateSnapshot</a> operation.
--   
--   <i>See:</i> <a>createSnapshot</a> smart constructor.
data CreateSnapshot

-- | The descriptive name to apply to the snapshot.
csName :: Lens' CreateSnapshot (Maybe Text)

-- | The identifier of the directory of which to take a snapshot.
csDirectoryId :: Lens' CreateSnapshot Text

-- | Creates a value of <a>CreateSnapshotResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csrsSnapshotId</a> - The identifier of the snapshot that was
--   created.</li>
--   <li><a>csrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createSnapshotResponse :: Int -> CreateSnapshotResponse

-- | Contains the results of the <a>CreateSnapshot</a> operation.
--   
--   <i>See:</i> <a>createSnapshotResponse</a> smart constructor.
data CreateSnapshotResponse

-- | The identifier of the snapshot that was created.
csrsSnapshotId :: Lens' CreateSnapshotResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
csrsResponseStatus :: Lens' CreateSnapshotResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.CreateSnapshot.CreateSnapshotResponse
instance Data.Data.Data Network.AWS.DirectoryService.CreateSnapshot.CreateSnapshotResponse
instance GHC.Show.Show Network.AWS.DirectoryService.CreateSnapshot.CreateSnapshotResponse
instance GHC.Read.Read Network.AWS.DirectoryService.CreateSnapshot.CreateSnapshotResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.CreateSnapshot.CreateSnapshotResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.CreateSnapshot.CreateSnapshot
instance Data.Data.Data Network.AWS.DirectoryService.CreateSnapshot.CreateSnapshot
instance GHC.Show.Show Network.AWS.DirectoryService.CreateSnapshot.CreateSnapshot
instance GHC.Read.Read Network.AWS.DirectoryService.CreateSnapshot.CreateSnapshot
instance GHC.Classes.Eq Network.AWS.DirectoryService.CreateSnapshot.CreateSnapshot
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.CreateSnapshot.CreateSnapshot
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.CreateSnapshot.CreateSnapshot
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.CreateSnapshot.CreateSnapshot
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.CreateSnapshot.CreateSnapshot
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.CreateSnapshot.CreateSnapshot
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.CreateSnapshot.CreateSnapshot
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.CreateSnapshot.CreateSnapshot
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.CreateSnapshot.CreateSnapshotResponse


-- | Creates a Microsoft AD in the AWS cloud.
--   
--   Before you call <i>CreateMicrosoftAD</i> , ensure that all of the
--   required permissions have been explicitly granted through a policy.
--   For details about what permissions are required to run the
--   <i>CreateMicrosoftAD</i> operation, see <a>AWS Directory Service API
--   Permissions: Actions, Resources, and Conditions Reference</a> .
module Network.AWS.DirectoryService.CreateMicrosoftAD

-- | Creates a value of <a>CreateMicrosoftAD</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmadShortName</a> - The NetBIOS name for your domain. A short
--   identifier for your domain, such as <tt>CORP</tt> . If you don't
--   specify a NetBIOS name, it will default to the first part of your
--   directory DNS. For example, <tt>CORP</tt> for the directory DNS
--   <tt>corp.example.com</tt> .</li>
--   <li><a>cmadDescription</a> - A textual description for the directory.
--   This label will appear on the AWS console <tt>Directory Details</tt>
--   page after the directory is created.</li>
--   <li><a>cmadName</a> - The fully qualified domain name for the
--   directory, such as <tt>corp.example.com</tt> . This name will resolve
--   inside your VPC only. It does not need to be publicly resolvable.</li>
--   <li><a>cmadPassword</a> - The password for the default administrative
--   user named <tt>Admin</tt> .</li>
--   <li><a>cmadVPCSettings</a> - Undocumented member.</li>
--   </ul>
createMicrosoftAD :: Text -> Text -> DirectoryVPCSettings -> CreateMicrosoftAD

-- | Creates a Microsoft AD in the AWS cloud.
--   
--   <i>See:</i> <a>createMicrosoftAD</a> smart constructor.
data CreateMicrosoftAD

-- | The NetBIOS name for your domain. A short identifier for your domain,
--   such as <tt>CORP</tt> . If you don't specify a NetBIOS name, it will
--   default to the first part of your directory DNS. For example,
--   <tt>CORP</tt> for the directory DNS <tt>corp.example.com</tt> .
cmadShortName :: Lens' CreateMicrosoftAD (Maybe Text)

-- | A textual description for the directory. This label will appear on the
--   AWS console <tt>Directory Details</tt> page after the directory is
--   created.
cmadDescription :: Lens' CreateMicrosoftAD (Maybe Text)

-- | The fully qualified domain name for the directory, such as
--   <tt>corp.example.com</tt> . This name will resolve inside your VPC
--   only. It does not need to be publicly resolvable.
cmadName :: Lens' CreateMicrosoftAD Text

-- | The password for the default administrative user named <tt>Admin</tt>
--   .
cmadPassword :: Lens' CreateMicrosoftAD Text

-- | Undocumented member.
cmadVPCSettings :: Lens' CreateMicrosoftAD DirectoryVPCSettings

-- | Creates a value of <a>CreateMicrosoftADResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmadrsDirectoryId</a> - The identifier of the directory that
--   was created.</li>
--   <li><a>cmadrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createMicrosoftADResponse :: Int -> CreateMicrosoftADResponse

-- | Result of a CreateMicrosoftAD request.
--   
--   <i>See:</i> <a>createMicrosoftADResponse</a> smart constructor.
data CreateMicrosoftADResponse

-- | The identifier of the directory that was created.
cmadrsDirectoryId :: Lens' CreateMicrosoftADResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cmadrsResponseStatus :: Lens' CreateMicrosoftADResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.CreateMicrosoftAD.CreateMicrosoftADResponse
instance Data.Data.Data Network.AWS.DirectoryService.CreateMicrosoftAD.CreateMicrosoftADResponse
instance GHC.Show.Show Network.AWS.DirectoryService.CreateMicrosoftAD.CreateMicrosoftADResponse
instance GHC.Read.Read Network.AWS.DirectoryService.CreateMicrosoftAD.CreateMicrosoftADResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.CreateMicrosoftAD.CreateMicrosoftADResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.CreateMicrosoftAD.CreateMicrosoftAD
instance Data.Data.Data Network.AWS.DirectoryService.CreateMicrosoftAD.CreateMicrosoftAD
instance GHC.Show.Show Network.AWS.DirectoryService.CreateMicrosoftAD.CreateMicrosoftAD
instance GHC.Read.Read Network.AWS.DirectoryService.CreateMicrosoftAD.CreateMicrosoftAD
instance GHC.Classes.Eq Network.AWS.DirectoryService.CreateMicrosoftAD.CreateMicrosoftAD
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.CreateMicrosoftAD.CreateMicrosoftAD
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.CreateMicrosoftAD.CreateMicrosoftAD
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.CreateMicrosoftAD.CreateMicrosoftAD
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.CreateMicrosoftAD.CreateMicrosoftAD
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.CreateMicrosoftAD.CreateMicrosoftAD
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.CreateMicrosoftAD.CreateMicrosoftAD
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.CreateMicrosoftAD.CreateMicrosoftAD
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.CreateMicrosoftAD.CreateMicrosoftADResponse


-- | Creates a Simple AD directory.
--   
--   Before you call <i>CreateDirectory</i> , ensure that all of the
--   required permissions have been explicitly granted through a policy.
--   For details about what permissions are required to run the
--   <i>CreateDirectory</i> operation, see <a>AWS Directory Service API
--   Permissions: Actions, Resources, and Conditions Reference</a> .
module Network.AWS.DirectoryService.CreateDirectory

-- | Creates a value of <a>CreateDirectory</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cShortName</a> - The short name of the directory, such as
--   <tt>CORP</tt> .</li>
--   <li><a>cVPCSettings</a> - A <tt>DirectoryVpcSettings</tt> object that
--   contains additional information for the operation.</li>
--   <li><a>cDescription</a> - A textual description for the
--   directory.</li>
--   <li><a>cName</a> - The fully qualified name for the directory, such as
--   <tt>corp.example.com</tt> .</li>
--   <li><a>cPassword</a> - The password for the directory administrator.
--   The directory creation process creates a directory administrator
--   account with the username <tt>Administrator</tt> and this
--   password.</li>
--   <li><a>cSize</a> - The size of the directory.</li>
--   </ul>
createDirectory :: Text -> Text -> DirectorySize -> CreateDirectory

-- | Contains the inputs for the <a>CreateDirectory</a> operation.
--   
--   <i>See:</i> <a>createDirectory</a> smart constructor.
data CreateDirectory

-- | The short name of the directory, such as <tt>CORP</tt> .
cShortName :: Lens' CreateDirectory (Maybe Text)

-- | A <tt>DirectoryVpcSettings</tt> object that contains additional
--   information for the operation.
cVPCSettings :: Lens' CreateDirectory (Maybe DirectoryVPCSettings)

-- | A textual description for the directory.
cDescription :: Lens' CreateDirectory (Maybe Text)

-- | The fully qualified name for the directory, such as
--   <tt>corp.example.com</tt> .
cName :: Lens' CreateDirectory Text

-- | The password for the directory administrator. The directory creation
--   process creates a directory administrator account with the username
--   <tt>Administrator</tt> and this password.
cPassword :: Lens' CreateDirectory Text

-- | The size of the directory.
cSize :: Lens' CreateDirectory DirectorySize

-- | Creates a value of <a>CreateDirectoryResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crsDirectoryId</a> - The identifier of the directory that was
--   created.</li>
--   <li><a>crsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createDirectoryResponse :: Int -> CreateDirectoryResponse

-- | Contains the results of the <a>CreateDirectory</a> operation.
--   
--   <i>See:</i> <a>createDirectoryResponse</a> smart constructor.
data CreateDirectoryResponse

-- | The identifier of the directory that was created.
crsDirectoryId :: Lens' CreateDirectoryResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
crsResponseStatus :: Lens' CreateDirectoryResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.CreateDirectory.CreateDirectoryResponse
instance Data.Data.Data Network.AWS.DirectoryService.CreateDirectory.CreateDirectoryResponse
instance GHC.Show.Show Network.AWS.DirectoryService.CreateDirectory.CreateDirectoryResponse
instance GHC.Read.Read Network.AWS.DirectoryService.CreateDirectory.CreateDirectoryResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.CreateDirectory.CreateDirectoryResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.CreateDirectory.CreateDirectory
instance Data.Data.Data Network.AWS.DirectoryService.CreateDirectory.CreateDirectory
instance GHC.Show.Show Network.AWS.DirectoryService.CreateDirectory.CreateDirectory
instance GHC.Read.Read Network.AWS.DirectoryService.CreateDirectory.CreateDirectory
instance GHC.Classes.Eq Network.AWS.DirectoryService.CreateDirectory.CreateDirectory
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.CreateDirectory.CreateDirectory
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.CreateDirectory.CreateDirectory
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.CreateDirectory.CreateDirectory
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.CreateDirectory.CreateDirectory
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.CreateDirectory.CreateDirectory
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.CreateDirectory.CreateDirectory
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.CreateDirectory.CreateDirectory
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.CreateDirectory.CreateDirectoryResponse


-- | Creates a conditional forwarder associated with your AWS directory.
--   Conditional forwarders are required in order to set up a trust
--   relationship with another domain. The conditional forwarder points to
--   the trusted domain.
module Network.AWS.DirectoryService.CreateConditionalForwarder

-- | Creates a value of <a>CreateConditionalForwarder</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccfDirectoryId</a> - The directory ID of the AWS directory for
--   which you are creating the conditional forwarder.</li>
--   <li><a>ccfRemoteDomainName</a> - The fully qualified domain name
--   (FQDN) of the remote domain with which you will set up a trust
--   relationship.</li>
--   <li><a>ccfDNSIPAddrs</a> - The IP addresses of the remote DNS server
--   associated with RemoteDomainName.</li>
--   </ul>
createConditionalForwarder :: Text -> Text -> CreateConditionalForwarder

-- | Initiates the creation of a conditional forwarder for your AWS
--   Directory Service for Microsoft Active Directory. Conditional
--   forwarders are required in order to set up a trust relationship with
--   another domain.
--   
--   <i>See:</i> <a>createConditionalForwarder</a> smart constructor.
data CreateConditionalForwarder

-- | The directory ID of the AWS directory for which you are creating the
--   conditional forwarder.
ccfDirectoryId :: Lens' CreateConditionalForwarder Text

-- | The fully qualified domain name (FQDN) of the remote domain with which
--   you will set up a trust relationship.
ccfRemoteDomainName :: Lens' CreateConditionalForwarder Text

-- | The IP addresses of the remote DNS server associated with
--   RemoteDomainName.
ccfDNSIPAddrs :: Lens' CreateConditionalForwarder [Text]

-- | Creates a value of <a>CreateConditionalForwarderResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccfrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createConditionalForwarderResponse :: Int -> CreateConditionalForwarderResponse

-- | The result of a CreateConditinalForwarder request.
--   
--   <i>See:</i> <a>createConditionalForwarderResponse</a> smart
--   constructor.
data CreateConditionalForwarderResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ccfrsResponseStatus :: Lens' CreateConditionalForwarderResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.CreateConditionalForwarder.CreateConditionalForwarderResponse
instance Data.Data.Data Network.AWS.DirectoryService.CreateConditionalForwarder.CreateConditionalForwarderResponse
instance GHC.Show.Show Network.AWS.DirectoryService.CreateConditionalForwarder.CreateConditionalForwarderResponse
instance GHC.Read.Read Network.AWS.DirectoryService.CreateConditionalForwarder.CreateConditionalForwarderResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.CreateConditionalForwarder.CreateConditionalForwarderResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.CreateConditionalForwarder.CreateConditionalForwarder
instance Data.Data.Data Network.AWS.DirectoryService.CreateConditionalForwarder.CreateConditionalForwarder
instance GHC.Show.Show Network.AWS.DirectoryService.CreateConditionalForwarder.CreateConditionalForwarder
instance GHC.Read.Read Network.AWS.DirectoryService.CreateConditionalForwarder.CreateConditionalForwarder
instance GHC.Classes.Eq Network.AWS.DirectoryService.CreateConditionalForwarder.CreateConditionalForwarder
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.CreateConditionalForwarder.CreateConditionalForwarder
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.CreateConditionalForwarder.CreateConditionalForwarder
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.CreateConditionalForwarder.CreateConditionalForwarder
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.CreateConditionalForwarder.CreateConditionalForwarder
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.CreateConditionalForwarder.CreateConditionalForwarder
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.CreateConditionalForwarder.CreateConditionalForwarder
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.CreateConditionalForwarder.CreateConditionalForwarder
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.CreateConditionalForwarder.CreateConditionalForwarderResponse


-- | Creates a computer account in the specified directory, and joins the
--   computer to the directory.
module Network.AWS.DirectoryService.CreateComputer

-- | Creates a value of <a>CreateComputer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccComputerAttributes</a> - An array of <a>Attribute</a> objects
--   that contain any LDAP attributes to apply to the computer
--   account.</li>
--   <li><a>ccOrganizationalUnitDistinguishedName</a> - The fully-qualified
--   distinguished name of the organizational unit to place the computer
--   account in.</li>
--   <li><a>ccDirectoryId</a> - The identifier of the directory in which to
--   create the computer account.</li>
--   <li><a>ccComputerName</a> - The name of the computer account.</li>
--   <li><a>ccPassword</a> - A one-time password that is used to join the
--   computer to the directory. You should generate a random, strong
--   password to use for this parameter.</li>
--   </ul>
createComputer :: Text -> Text -> Text -> CreateComputer

-- | Contains the inputs for the <a>CreateComputer</a> operation.
--   
--   <i>See:</i> <a>createComputer</a> smart constructor.
data CreateComputer

-- | An array of <a>Attribute</a> objects that contain any LDAP attributes
--   to apply to the computer account.
ccComputerAttributes :: Lens' CreateComputer [Attribute]

-- | The fully-qualified distinguished name of the organizational unit to
--   place the computer account in.
ccOrganizationalUnitDistinguishedName :: Lens' CreateComputer (Maybe Text)

-- | The identifier of the directory in which to create the computer
--   account.
ccDirectoryId :: Lens' CreateComputer Text

-- | The name of the computer account.
ccComputerName :: Lens' CreateComputer Text

-- | A one-time password that is used to join the computer to the
--   directory. You should generate a random, strong password to use for
--   this parameter.
ccPassword :: Lens' CreateComputer Text

-- | Creates a value of <a>CreateComputerResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccrsComputer</a> - A <a>Computer</a> object that represents the
--   computer account.</li>
--   <li><a>ccrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createComputerResponse :: Int -> CreateComputerResponse

-- | Contains the results for the <a>CreateComputer</a> operation.
--   
--   <i>See:</i> <a>createComputerResponse</a> smart constructor.
data CreateComputerResponse

-- | A <a>Computer</a> object that represents the computer account.
ccrsComputer :: Lens' CreateComputerResponse (Maybe Computer)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ccrsResponseStatus :: Lens' CreateComputerResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.CreateComputer.CreateComputerResponse
instance Data.Data.Data Network.AWS.DirectoryService.CreateComputer.CreateComputerResponse
instance GHC.Show.Show Network.AWS.DirectoryService.CreateComputer.CreateComputerResponse
instance GHC.Read.Read Network.AWS.DirectoryService.CreateComputer.CreateComputerResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.CreateComputer.CreateComputerResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.CreateComputer.CreateComputer
instance Data.Data.Data Network.AWS.DirectoryService.CreateComputer.CreateComputer
instance GHC.Show.Show Network.AWS.DirectoryService.CreateComputer.CreateComputer
instance GHC.Read.Read Network.AWS.DirectoryService.CreateComputer.CreateComputer
instance GHC.Classes.Eq Network.AWS.DirectoryService.CreateComputer.CreateComputer
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.CreateComputer.CreateComputer
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.CreateComputer.CreateComputer
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.CreateComputer.CreateComputer
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.CreateComputer.CreateComputer
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.CreateComputer.CreateComputer
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.CreateComputer.CreateComputer
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.CreateComputer.CreateComputer
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.CreateComputer.CreateComputerResponse


-- | Creates an alias for a directory and assigns the alias to the
--   directory. The alias is used to construct the access URL for the
--   directory, such as <tt><a>http://&lt;alias&gt;.awsapps.com</a></tt> .
--   
--   <i>Important:</i> After an alias has been created, it cannot be
--   deleted or reused, so this operation should only be used when
--   absolutely necessary.
module Network.AWS.DirectoryService.CreateAlias

-- | Creates a value of <a>CreateAlias</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>caDirectoryId</a> - The identifier of the directory for which
--   to create the alias.</li>
--   <li><a>caAlias</a> - The requested alias. The alias must be unique
--   amongst all aliases in AWS. This operation throws an
--   <tt>EntityAlreadyExistsException</tt> error if the alias already
--   exists.</li>
--   </ul>
createAlias :: Text -> Text -> CreateAlias

-- | Contains the inputs for the <a>CreateAlias</a> operation.
--   
--   <i>See:</i> <a>createAlias</a> smart constructor.
data CreateAlias

-- | The identifier of the directory for which to create the alias.
caDirectoryId :: Lens' CreateAlias Text

-- | The requested alias. The alias must be unique amongst all aliases in
--   AWS. This operation throws an <tt>EntityAlreadyExistsException</tt>
--   error if the alias already exists.
caAlias :: Lens' CreateAlias Text

-- | Creates a value of <a>CreateAliasResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>carsDirectoryId</a> - The identifier of the directory.</li>
--   <li><a>carsAlias</a> - The alias for the directory.</li>
--   <li><a>carsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createAliasResponse :: Int -> CreateAliasResponse

-- | Contains the results of the <a>CreateAlias</a> operation.
--   
--   <i>See:</i> <a>createAliasResponse</a> smart constructor.
data CreateAliasResponse

-- | The identifier of the directory.
carsDirectoryId :: Lens' CreateAliasResponse (Maybe Text)

-- | The alias for the directory.
carsAlias :: Lens' CreateAliasResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
carsResponseStatus :: Lens' CreateAliasResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.CreateAlias.CreateAliasResponse
instance Data.Data.Data Network.AWS.DirectoryService.CreateAlias.CreateAliasResponse
instance GHC.Show.Show Network.AWS.DirectoryService.CreateAlias.CreateAliasResponse
instance GHC.Read.Read Network.AWS.DirectoryService.CreateAlias.CreateAliasResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.CreateAlias.CreateAliasResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.CreateAlias.CreateAlias
instance Data.Data.Data Network.AWS.DirectoryService.CreateAlias.CreateAlias
instance GHC.Show.Show Network.AWS.DirectoryService.CreateAlias.CreateAlias
instance GHC.Read.Read Network.AWS.DirectoryService.CreateAlias.CreateAlias
instance GHC.Classes.Eq Network.AWS.DirectoryService.CreateAlias.CreateAlias
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.CreateAlias.CreateAlias
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.CreateAlias.CreateAlias
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.CreateAlias.CreateAlias
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.CreateAlias.CreateAlias
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.CreateAlias.CreateAlias
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.CreateAlias.CreateAlias
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.CreateAlias.CreateAlias
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.CreateAlias.CreateAliasResponse


-- | Creates an AD Connector to connect to an on-premises directory.
--   
--   Before you call <i>ConnectDirectory</i> , ensure that all of the
--   required permissions have been explicitly granted through a policy.
--   For details about what permissions are required to run the
--   <i>ConnectDirectory</i> operation, see <a>AWS Directory Service API
--   Permissions: Actions, Resources, and Conditions Reference</a> .
module Network.AWS.DirectoryService.ConnectDirectory

-- | Creates a value of <a>ConnectDirectory</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdShortName</a> - The NetBIOS name of the on-premises
--   directory, such as <tt>CORP</tt> .</li>
--   <li><a>cdDescription</a> - A textual description for the
--   directory.</li>
--   <li><a>cdName</a> - The fully-qualified name of the on-premises
--   directory, such as <tt>corp.example.com</tt> .</li>
--   <li><a>cdPassword</a> - The password for the on-premises user
--   account.</li>
--   <li><a>cdSize</a> - The size of the directory.</li>
--   <li><a>cdConnectSettings</a> - A <a>DirectoryConnectSettings</a>
--   object that contains additional information for the operation.</li>
--   </ul>
connectDirectory :: Text -> Text -> DirectorySize -> DirectoryConnectSettings -> ConnectDirectory

-- | Contains the inputs for the <a>ConnectDirectory</a> operation.
--   
--   <i>See:</i> <a>connectDirectory</a> smart constructor.
data ConnectDirectory

-- | The NetBIOS name of the on-premises directory, such as <tt>CORP</tt> .
cdShortName :: Lens' ConnectDirectory (Maybe Text)

-- | A textual description for the directory.
cdDescription :: Lens' ConnectDirectory (Maybe Text)

-- | The fully-qualified name of the on-premises directory, such as
--   <tt>corp.example.com</tt> .
cdName :: Lens' ConnectDirectory Text

-- | The password for the on-premises user account.
cdPassword :: Lens' ConnectDirectory Text

-- | The size of the directory.
cdSize :: Lens' ConnectDirectory DirectorySize

-- | A <a>DirectoryConnectSettings</a> object that contains additional
--   information for the operation.
cdConnectSettings :: Lens' ConnectDirectory DirectoryConnectSettings

-- | Creates a value of <a>ConnectDirectoryResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdrsDirectoryId</a> - The identifier of the new directory.</li>
--   <li><a>cdrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
connectDirectoryResponse :: Int -> ConnectDirectoryResponse

-- | Contains the results of the <a>ConnectDirectory</a> operation.
--   
--   <i>See:</i> <a>connectDirectoryResponse</a> smart constructor.
data ConnectDirectoryResponse

-- | The identifier of the new directory.
cdrsDirectoryId :: Lens' ConnectDirectoryResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cdrsResponseStatus :: Lens' ConnectDirectoryResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.ConnectDirectory.ConnectDirectoryResponse
instance Data.Data.Data Network.AWS.DirectoryService.ConnectDirectory.ConnectDirectoryResponse
instance GHC.Show.Show Network.AWS.DirectoryService.ConnectDirectory.ConnectDirectoryResponse
instance GHC.Read.Read Network.AWS.DirectoryService.ConnectDirectory.ConnectDirectoryResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.ConnectDirectory.ConnectDirectoryResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.ConnectDirectory.ConnectDirectory
instance Data.Data.Data Network.AWS.DirectoryService.ConnectDirectory.ConnectDirectory
instance GHC.Show.Show Network.AWS.DirectoryService.ConnectDirectory.ConnectDirectory
instance GHC.Read.Read Network.AWS.DirectoryService.ConnectDirectory.ConnectDirectory
instance GHC.Classes.Eq Network.AWS.DirectoryService.ConnectDirectory.ConnectDirectory
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.ConnectDirectory.ConnectDirectory
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.ConnectDirectory.ConnectDirectory
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.ConnectDirectory.ConnectDirectory
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.ConnectDirectory.ConnectDirectory
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.ConnectDirectory.ConnectDirectory
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.ConnectDirectory.ConnectDirectory
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.ConnectDirectory.ConnectDirectory
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.ConnectDirectory.ConnectDirectoryResponse


-- | Cancels an in-progress schema extension to a Microsoft AD directory.
--   Once a schema extension has started replicating to all domain
--   controllers, the task can no longer be canceled. A schema extension
--   can be canceled during any of the following states;
--   <tt>Initializing</tt> , <tt>CreatingSnapshot</tt> , and
--   <tt>UpdatingSchema</tt> .
module Network.AWS.DirectoryService.CancelSchemaExtension

-- | Creates a value of <a>CancelSchemaExtension</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cseDirectoryId</a> - The identifier of the directory whose
--   schema extension will be canceled.</li>
--   <li><a>cseSchemaExtensionId</a> - The identifier of the schema
--   extension that will be canceled.</li>
--   </ul>
cancelSchemaExtension :: Text -> Text -> CancelSchemaExtension

-- | <i>See:</i> <a>cancelSchemaExtension</a> smart constructor.
data CancelSchemaExtension

-- | The identifier of the directory whose schema extension will be
--   canceled.
cseDirectoryId :: Lens' CancelSchemaExtension Text

-- | The identifier of the schema extension that will be canceled.
cseSchemaExtensionId :: Lens' CancelSchemaExtension Text

-- | Creates a value of <a>CancelSchemaExtensionResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csersResponseStatus</a> - -- | The response status code.</li>
--   </ul>
cancelSchemaExtensionResponse :: Int -> CancelSchemaExtensionResponse

-- | <i>See:</i> <a>cancelSchemaExtensionResponse</a> smart constructor.
data CancelSchemaExtensionResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
csersResponseStatus :: Lens' CancelSchemaExtensionResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.CancelSchemaExtension.CancelSchemaExtensionResponse
instance Data.Data.Data Network.AWS.DirectoryService.CancelSchemaExtension.CancelSchemaExtensionResponse
instance GHC.Show.Show Network.AWS.DirectoryService.CancelSchemaExtension.CancelSchemaExtensionResponse
instance GHC.Read.Read Network.AWS.DirectoryService.CancelSchemaExtension.CancelSchemaExtensionResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.CancelSchemaExtension.CancelSchemaExtensionResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.CancelSchemaExtension.CancelSchemaExtension
instance Data.Data.Data Network.AWS.DirectoryService.CancelSchemaExtension.CancelSchemaExtension
instance GHC.Show.Show Network.AWS.DirectoryService.CancelSchemaExtension.CancelSchemaExtension
instance GHC.Read.Read Network.AWS.DirectoryService.CancelSchemaExtension.CancelSchemaExtension
instance GHC.Classes.Eq Network.AWS.DirectoryService.CancelSchemaExtension.CancelSchemaExtension
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.CancelSchemaExtension.CancelSchemaExtension
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.CancelSchemaExtension.CancelSchemaExtension
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.CancelSchemaExtension.CancelSchemaExtension
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.CancelSchemaExtension.CancelSchemaExtension
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.CancelSchemaExtension.CancelSchemaExtension
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.CancelSchemaExtension.CancelSchemaExtension
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.CancelSchemaExtension.CancelSchemaExtension
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.CancelSchemaExtension.CancelSchemaExtensionResponse


-- | Adds or overwrites one or more tags for the specified Amazon Directory
--   Services directory. Each directory can have a maximum of 50 tags. Each
--   tag consists of a key and optional value. Tag keys must be unique to
--   each resource.
module Network.AWS.DirectoryService.AddTagsToResource

-- | Creates a value of <a>AddTagsToResource</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>attrResourceId</a> - Identifier (ID) for the directory to which
--   to add the tag.</li>
--   <li><a>attrTags</a> - The tags to be assigned to the Amazon Directory
--   Services directory.</li>
--   </ul>
addTagsToResource :: Text -> AddTagsToResource

-- | <i>See:</i> <a>addTagsToResource</a> smart constructor.
data AddTagsToResource

-- | Identifier (ID) for the directory to which to add the tag.
attrResourceId :: Lens' AddTagsToResource Text

-- | The tags to be assigned to the Amazon Directory Services directory.
attrTags :: Lens' AddTagsToResource [Tag]

-- | Creates a value of <a>AddTagsToResourceResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>attrrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
addTagsToResourceResponse :: Int -> AddTagsToResourceResponse

-- | <i>See:</i> <a>addTagsToResourceResponse</a> smart constructor.
data AddTagsToResourceResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
attrrsResponseStatus :: Lens' AddTagsToResourceResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.AddTagsToResource.AddTagsToResourceResponse
instance Data.Data.Data Network.AWS.DirectoryService.AddTagsToResource.AddTagsToResourceResponse
instance GHC.Show.Show Network.AWS.DirectoryService.AddTagsToResource.AddTagsToResourceResponse
instance GHC.Read.Read Network.AWS.DirectoryService.AddTagsToResource.AddTagsToResourceResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.AddTagsToResource.AddTagsToResourceResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.AddTagsToResource.AddTagsToResource
instance Data.Data.Data Network.AWS.DirectoryService.AddTagsToResource.AddTagsToResource
instance GHC.Show.Show Network.AWS.DirectoryService.AddTagsToResource.AddTagsToResource
instance GHC.Read.Read Network.AWS.DirectoryService.AddTagsToResource.AddTagsToResource
instance GHC.Classes.Eq Network.AWS.DirectoryService.AddTagsToResource.AddTagsToResource
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.AddTagsToResource.AddTagsToResource
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.AddTagsToResource.AddTagsToResource
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.AddTagsToResource.AddTagsToResource
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.AddTagsToResource.AddTagsToResource
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.AddTagsToResource.AddTagsToResource
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.AddTagsToResource.AddTagsToResource
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.AddTagsToResource.AddTagsToResource
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.AddTagsToResource.AddTagsToResourceResponse


-- | If the DNS server for your on-premises domain uses a publicly
--   addressable IP address, you must add a CIDR address block to correctly
--   route traffic to and from your Microsoft AD on Amazon Web Services.
--   <i>AddIpRoutes</i> adds this address block. You can also use
--   <i>AddIpRoutes</i> to facilitate routing traffic that uses public IP
--   ranges from your Microsoft AD on AWS to a peer VPC.
--   
--   Before you call <i>AddIpRoutes</i> , ensure that all of the required
--   permissions have been explicitly granted through a policy. For details
--   about what permissions are required to run the <i>AddIpRoutes</i>
--   operation, see <a>AWS Directory Service API Permissions: Actions,
--   Resources, and Conditions Reference</a> .
module Network.AWS.DirectoryService.AddIPRoutes

-- | Creates a value of <a>AddIPRoutes</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>airUpdateSecurityGroupForDirectoryControllers</a> - If set to
--   true, updates the inbound and outbound rules of the security group
--   that has the description: "AWS created security group for <i>directory
--   ID</i> directory controllers." Following are the new rules: Inbound: *
--   Type: Custom UDP Rule, Protocol: UDP, Range: 88, Source: 0.0.0.0<i>0 *
--   Type: Custom UDP Rule, Protocol: UDP, Range: 123, Source: 0.0.0.0</i>0
--   * Type: Custom UDP Rule, Protocol: UDP, Range: 138, Source:
--   0.0.0.0<i>0 * Type: Custom UDP Rule, Protocol: UDP, Range: 389,
--   Source: 0.0.0.0</i>0 * Type: Custom UDP Rule, Protocol: UDP, Range:
--   464, Source: 0.0.0.0<i>0 * Type: Custom UDP Rule, Protocol: UDP,
--   Range: 445, Source: 0.0.0.0</i>0 * Type: Custom TCP Rule, Protocol:
--   TCP, Range: 88, Source: 0.0.0.0<i>0 * Type: Custom TCP Rule, Protocol:
--   TCP, Range: 135, Source: 0.0.0.0</i>0 * Type: Custom TCP Rule,
--   Protocol: TCP, Range: 445, Source: 0.0.0.0<i>0 * Type: Custom TCP
--   Rule, Protocol: TCP, Range: 464, Source: 0.0.0.0</i>0 * Type: Custom
--   TCP Rule, Protocol: TCP, Range: 636, Source: 0.0.0.0<i>0 * Type:
--   Custom TCP Rule, Protocol: TCP, Range: 1024-65535, Source:
--   0.0.0.0</i>0 * Type: Custom TCP Rule, Protocol: TCP, Range:
--   3268-33269, Source: 0.0.0.0<i>0 * Type: DNS (UDP), Protocol: UDP,
--   Range: 53, Source: 0.0.0.0</i>0 * Type: DNS (TCP), Protocol: TCP,
--   Range: 53, Source: 0.0.0.0<i>0 * Type: LDAP, Protocol: TCP, Range:
--   389, Source: 0.0.0.0</i>0 * Type: All ICMP, Protocol: All, Range:
--   N<i>A, Source: 0.0.0.0</i>0 Outbound: * Type: All traffic, Protocol:
--   All, Range: All, Destination: 0.0.0.0/0 These security rules impact an
--   internal network interface that is not exposed publicly.</li>
--   <li><a>airDirectoryId</a> - Identifier (ID) of the directory to which
--   to add the address block.</li>
--   <li><a>airIPRoutes</a> - IP address blocks, using CIDR format, of the
--   traffic to route. This is often the IP address block of the DNS server
--   used for your on-premises domain.</li>
--   </ul>
addIPRoutes :: Text -> AddIPRoutes

-- | <i>See:</i> <a>addIPRoutes</a> smart constructor.
data AddIPRoutes

-- | If set to true, updates the inbound and outbound rules of the security
--   group that has the description: "AWS created security group for
--   <i>directory ID</i> directory controllers." Following are the new
--   rules: Inbound: * Type: Custom UDP Rule, Protocol: UDP, Range: 88,
--   Source: 0.0.0.0<i>0 * Type: Custom UDP Rule, Protocol: UDP, Range:
--   123, Source: 0.0.0.0</i>0 * Type: Custom UDP Rule, Protocol: UDP,
--   Range: 138, Source: 0.0.0.0<i>0 * Type: Custom UDP Rule, Protocol:
--   UDP, Range: 389, Source: 0.0.0.0</i>0 * Type: Custom UDP Rule,
--   Protocol: UDP, Range: 464, Source: 0.0.0.0<i>0 * Type: Custom UDP
--   Rule, Protocol: UDP, Range: 445, Source: 0.0.0.0</i>0 * Type: Custom
--   TCP Rule, Protocol: TCP, Range: 88, Source: 0.0.0.0<i>0 * Type: Custom
--   TCP Rule, Protocol: TCP, Range: 135, Source: 0.0.0.0</i>0 * Type:
--   Custom TCP Rule, Protocol: TCP, Range: 445, Source: 0.0.0.0<i>0 *
--   Type: Custom TCP Rule, Protocol: TCP, Range: 464, Source: 0.0.0.0</i>0
--   * Type: Custom TCP Rule, Protocol: TCP, Range: 636, Source:
--   0.0.0.0<i>0 * Type: Custom TCP Rule, Protocol: TCP, Range: 1024-65535,
--   Source: 0.0.0.0</i>0 * Type: Custom TCP Rule, Protocol: TCP, Range:
--   3268-33269, Source: 0.0.0.0<i>0 * Type: DNS (UDP), Protocol: UDP,
--   Range: 53, Source: 0.0.0.0</i>0 * Type: DNS (TCP), Protocol: TCP,
--   Range: 53, Source: 0.0.0.0<i>0 * Type: LDAP, Protocol: TCP, Range:
--   389, Source: 0.0.0.0</i>0 * Type: All ICMP, Protocol: All, Range:
--   N<i>A, Source: 0.0.0.0</i>0 Outbound: * Type: All traffic, Protocol:
--   All, Range: All, Destination: 0.0.0.0/0 These security rules impact an
--   internal network interface that is not exposed publicly.
airUpdateSecurityGroupForDirectoryControllers :: Lens' AddIPRoutes (Maybe Bool)

-- | Identifier (ID) of the directory to which to add the address block.
airDirectoryId :: Lens' AddIPRoutes Text

-- | IP address blocks, using CIDR format, of the traffic to route. This is
--   often the IP address block of the DNS server used for your on-premises
--   domain.
airIPRoutes :: Lens' AddIPRoutes [IPRoute]

-- | Creates a value of <a>AddIPRoutesResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>airrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
addIPRoutesResponse :: Int -> AddIPRoutesResponse

-- | <i>See:</i> <a>addIPRoutesResponse</a> smart constructor.
data AddIPRoutesResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
airrsResponseStatus :: Lens' AddIPRoutesResponse Int
instance GHC.Generics.Generic Network.AWS.DirectoryService.AddIPRoutes.AddIPRoutesResponse
instance Data.Data.Data Network.AWS.DirectoryService.AddIPRoutes.AddIPRoutesResponse
instance GHC.Show.Show Network.AWS.DirectoryService.AddIPRoutes.AddIPRoutesResponse
instance GHC.Read.Read Network.AWS.DirectoryService.AddIPRoutes.AddIPRoutesResponse
instance GHC.Classes.Eq Network.AWS.DirectoryService.AddIPRoutes.AddIPRoutesResponse
instance GHC.Generics.Generic Network.AWS.DirectoryService.AddIPRoutes.AddIPRoutes
instance Data.Data.Data Network.AWS.DirectoryService.AddIPRoutes.AddIPRoutes
instance GHC.Show.Show Network.AWS.DirectoryService.AddIPRoutes.AddIPRoutes
instance GHC.Read.Read Network.AWS.DirectoryService.AddIPRoutes.AddIPRoutes
instance GHC.Classes.Eq Network.AWS.DirectoryService.AddIPRoutes.AddIPRoutes
instance Network.AWS.Types.AWSRequest Network.AWS.DirectoryService.AddIPRoutes.AddIPRoutes
instance Data.Hashable.Class.Hashable Network.AWS.DirectoryService.AddIPRoutes.AddIPRoutes
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.AddIPRoutes.AddIPRoutes
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.DirectoryService.AddIPRoutes.AddIPRoutes
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.DirectoryService.AddIPRoutes.AddIPRoutes
instance Network.AWS.Data.Path.ToPath Network.AWS.DirectoryService.AddIPRoutes.AddIPRoutes
instance Network.AWS.Data.Query.ToQuery Network.AWS.DirectoryService.AddIPRoutes.AddIPRoutes
instance Control.DeepSeq.NFData Network.AWS.DirectoryService.AddIPRoutes.AddIPRoutesResponse


-- | <b>AWS Directory Service</b>
--   
--   This is the <i>AWS Directory Service API Reference</i> . This guide
--   provides detailed information about AWS Directory Service operations,
--   data types, parameters, and errors.
module Network.AWS.DirectoryService

-- | API version <tt>2015-04-16</tt> of the Amazon Directory Service SDK
--   configuration.
directoryService :: Service

-- | The specified directory is unavailable or could not be found.
_DirectoryUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An authentication error occurred.
_AuthenticationFailedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | One or more parameters are not valid.
_InvalidParameterException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The operation is not supported.
_UnsupportedOperationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified entity already exists.
_EntityAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The maximum number of directories in the region has been reached. You
--   can use the <tt>GetDirectoryLimits</tt> operation to determine your
--   directory limits in the region.
_DirectoryLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The maximum allowed number of IP addresses was exceeded. The default
--   limit is 100 IP address blocks.
_IPRouteLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified entity could not be found.
_EntityDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The account does not have sufficient permission to perform the
--   operation.
_InsufficientPermissionsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The <i>NextToken</i> value is not valid.
_InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An exception has occurred in AWS Directory Service.
_ServiceException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The maximum number of manual snapshots for the directory has been
--   reached. You can use the <tt>GetSnapshotLimits</tt> operation to
--   determine the snapshot limits for a directory.
_SnapshotLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The maximum allowed number of tags was exceeded.
_TagLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | A client exception has occurred.
_ClientException :: AsError a => Getting (First ServiceError) a ServiceError
data DirectorySize
Large :: DirectorySize
Small :: DirectorySize
data DirectoryStage
DSActive :: DirectoryStage
DSCreated :: DirectoryStage
DSCreating :: DirectoryStage
DSDeleted :: DirectoryStage
DSDeleting :: DirectoryStage
DSFailed :: DirectoryStage
DSImpaired :: DirectoryStage
DSInoperable :: DirectoryStage
DSRequested :: DirectoryStage
DSRestoreFailed :: DirectoryStage
DSRestoring :: DirectoryStage
data DirectoryType
ADConnector :: DirectoryType
MicrosoftAD :: DirectoryType
SimpleAD :: DirectoryType
data IPRouteStatusMsg
AddFailed :: IPRouteStatusMsg
Added :: IPRouteStatusMsg
Adding :: IPRouteStatusMsg
RemoveFailed :: IPRouteStatusMsg
Removed :: IPRouteStatusMsg
Removing :: IPRouteStatusMsg
data RadiusAuthenticationProtocol
Chap :: RadiusAuthenticationProtocol
MsCHAPV1 :: RadiusAuthenticationProtocol
MsCHAPV2 :: RadiusAuthenticationProtocol
Pap :: RadiusAuthenticationProtocol
data RadiusStatus
Completed :: RadiusStatus
Creating :: RadiusStatus
Failed :: RadiusStatus
data ReplicationScope
Domain :: ReplicationScope
data SchemaExtensionStatus
SESCancelInProgress :: SchemaExtensionStatus
SESCancelled :: SchemaExtensionStatus
SESCompleted :: SchemaExtensionStatus
SESCreatingSnapshot :: SchemaExtensionStatus
SESFailed :: SchemaExtensionStatus
SESInitializing :: SchemaExtensionStatus
SESReplicating :: SchemaExtensionStatus
SESRollbackInProgress :: SchemaExtensionStatus
SESUpdatingSchema :: SchemaExtensionStatus
data SnapshotStatus
SSCompleted :: SnapshotStatus
SSCreating :: SnapshotStatus
SSFailed :: SnapshotStatus
data SnapshotType
Auto :: SnapshotType
Manual :: SnapshotType
data TopicStatus
TDeleted :: TopicStatus
TFailed :: TopicStatus
TRegistered :: TopicStatus
TTopicNotFound :: TopicStatus
data TrustDirection
OneWayIncoming :: TrustDirection
OneWayOutgoing :: TrustDirection
TwoWay :: TrustDirection
data TrustState
TSCreated :: TrustState
TSCreating :: TrustState
TSDeleted :: TrustState
TSDeleting :: TrustState
TSFailed :: TrustState
TSVerified :: TrustState
TSVerifyFailed :: TrustState
TSVerifying :: TrustState
data TrustType
Forest :: TrustType

-- | Represents a named directory attribute.
--   
--   <i>See:</i> <a>attribute</a> smart constructor.
data Attribute

-- | Creates a value of <a>Attribute</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aValue</a> - The value of the attribute.</li>
--   <li><a>aName</a> - The name of the attribute.</li>
--   </ul>
attribute :: Attribute

-- | The value of the attribute.
aValue :: Lens' Attribute (Maybe Text)

-- | The name of the attribute.
aName :: Lens' Attribute (Maybe Text)

-- | Contains information about a computer account in a directory.
--   
--   <i>See:</i> <a>computer</a> smart constructor.
data Computer

-- | Creates a value of <a>Computer</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cComputerId</a> - The identifier of the computer.</li>
--   <li><a>cComputerAttributes</a> - An array of <a>Attribute</a> objects
--   containing the LDAP attributes that belong to the computer
--   account.</li>
--   <li><a>cComputerName</a> - The computer name.</li>
--   </ul>
computer :: Computer

-- | The identifier of the computer.
cComputerId :: Lens' Computer (Maybe Text)

-- | An array of <a>Attribute</a> objects containing the LDAP attributes
--   that belong to the computer account.
cComputerAttributes :: Lens' Computer [Attribute]

-- | The computer name.
cComputerName :: Lens' Computer (Maybe Text)

-- | Points to a remote domain with which you are setting up a trust
--   relationship. Conditional forwarders are required in order to set up a
--   trust relationship with another domain.
--   
--   <i>See:</i> <a>conditionalForwarder</a> smart constructor.
data ConditionalForwarder

-- | Creates a value of <a>ConditionalForwarder</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cfDNSIPAddrs</a> - The IP addresses of the remote DNS server
--   associated with RemoteDomainName. This is the IP address of the DNS
--   server that your conditional forwarder points to.</li>
--   <li><a>cfRemoteDomainName</a> - The fully qualified domain name (FQDN)
--   of the remote domains pointed to by the conditional forwarder.</li>
--   <li><a>cfReplicationScope</a> - The replication scope of the
--   conditional forwarder. The only allowed value is <tt>Domain</tt> ,
--   which will replicate the conditional forwarder to all of the domain
--   controllers for your AWS directory.</li>
--   </ul>
conditionalForwarder :: ConditionalForwarder

-- | The IP addresses of the remote DNS server associated with
--   RemoteDomainName. This is the IP address of the DNS server that your
--   conditional forwarder points to.
cfDNSIPAddrs :: Lens' ConditionalForwarder [Text]

-- | The fully qualified domain name (FQDN) of the remote domains pointed
--   to by the conditional forwarder.
cfRemoteDomainName :: Lens' ConditionalForwarder (Maybe Text)

-- | The replication scope of the conditional forwarder. The only allowed
--   value is <tt>Domain</tt> , which will replicate the conditional
--   forwarder to all of the domain controllers for your AWS directory.
cfReplicationScope :: Lens' ConditionalForwarder (Maybe ReplicationScope)

-- | Contains information for the <tt>ConnectDirectory</tt> operation when
--   an AD Connector directory is being created.
--   
--   <i>See:</i> <a>directoryConnectSettings</a> smart constructor.
data DirectoryConnectSettings

-- | Creates a value of <a>DirectoryConnectSettings</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcsVPCId</a> - The identifier of the VPC in which the AD
--   Connector is created.</li>
--   <li><a>dcsSubnetIds</a> - A list of subnet identifiers in the VPC in
--   which the AD Connector is created.</li>
--   <li><a>dcsCustomerDNSIPs</a> - A list of one or more IP addresses of
--   DNS servers or domain controllers in the on-premises directory.</li>
--   <li><a>dcsCustomerUserName</a> - The username of an account in the
--   on-premises directory that is used to connect to the directory. This
--   account must have the following privileges: * Read users and groups *
--   Create computer objects * Join computers to the domain</li>
--   </ul>
directoryConnectSettings :: Text -> Text -> DirectoryConnectSettings

-- | The identifier of the VPC in which the AD Connector is created.
dcsVPCId :: Lens' DirectoryConnectSettings Text

-- | A list of subnet identifiers in the VPC in which the AD Connector is
--   created.
dcsSubnetIds :: Lens' DirectoryConnectSettings [Text]

-- | A list of one or more IP addresses of DNS servers or domain
--   controllers in the on-premises directory.
dcsCustomerDNSIPs :: Lens' DirectoryConnectSettings [Text]

-- | The username of an account in the on-premises directory that is used
--   to connect to the directory. This account must have the following
--   privileges: * Read users and groups * Create computer objects * Join
--   computers to the domain
dcsCustomerUserName :: Lens' DirectoryConnectSettings Text

-- | Contains information about an AD Connector directory.
--   
--   <i>See:</i> <a>directoryConnectSettingsDescription</a> smart
--   constructor.
data DirectoryConnectSettingsDescription

-- | Creates a value of <a>DirectoryConnectSettingsDescription</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcsdCustomerUserName</a> - The username of the service account
--   in the on-premises directory.</li>
--   <li><a>dcsdSubnetIds</a> - A list of subnet identifiers in the VPC
--   that the AD connector is in.</li>
--   <li><a>dcsdVPCId</a> - The identifier of the VPC that the AD Connector
--   is in.</li>
--   <li><a>dcsdSecurityGroupId</a> - The security group identifier for the
--   AD Connector directory.</li>
--   <li><a>dcsdConnectIPs</a> - The IP addresses of the AD Connector
--   servers.</li>
--   <li><a>dcsdAvailabilityZones</a> - A list of the Availability Zones
--   that the directory is in.</li>
--   </ul>
directoryConnectSettingsDescription :: DirectoryConnectSettingsDescription

-- | The username of the service account in the on-premises directory.
dcsdCustomerUserName :: Lens' DirectoryConnectSettingsDescription (Maybe Text)

-- | A list of subnet identifiers in the VPC that the AD connector is in.
dcsdSubnetIds :: Lens' DirectoryConnectSettingsDescription [Text]

-- | The identifier of the VPC that the AD Connector is in.
dcsdVPCId :: Lens' DirectoryConnectSettingsDescription (Maybe Text)

-- | The security group identifier for the AD Connector directory.
dcsdSecurityGroupId :: Lens' DirectoryConnectSettingsDescription (Maybe Text)

-- | The IP addresses of the AD Connector servers.
dcsdConnectIPs :: Lens' DirectoryConnectSettingsDescription [Text]

-- | A list of the Availability Zones that the directory is in.
dcsdAvailabilityZones :: Lens' DirectoryConnectSettingsDescription [Text]

-- | Contains information about an AWS Directory Service directory.
--   
--   <i>See:</i> <a>directoryDescription</a> smart constructor.
data DirectoryDescription

-- | Creates a value of <a>DirectoryDescription</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddRadiusStatus</a> - The status of the RADIUS MFA server
--   connection.</li>
--   <li><a>ddStage</a> - The current stage of the directory.</li>
--   <li><a>ddDirectoryId</a> - The directory identifier.</li>
--   <li><a>ddAccessURL</a> - The access URL for the directory, such as
--   <tt><a>http://&lt;alias&gt;.awsapps.com</a></tt> . If no alias has
--   been created for the directory, <tt><a>alias</a></tt> is the directory
--   identifier, such as <tt>d-XXXXXXXXXX</tt> .</li>
--   <li><a>ddShortName</a> - The short name of the directory.</li>
--   <li><a>ddSize</a> - The directory size.</li>
--   <li><a>ddRadiusSettings</a> - A <a>RadiusSettings</a> object that
--   contains information about the RADIUS server configured for this
--   directory.</li>
--   <li><a>ddLaunchTime</a> - Specifies when the directory was
--   created.</li>
--   <li><a>ddAlias</a> - The alias for the directory. If no alias has been
--   created for the directory, the alias is the directory identifier, such
--   as <tt>d-XXXXXXXXXX</tt> .</li>
--   <li><a>ddName</a> - The fully-qualified name of the directory.</li>
--   <li><a>ddStageLastUpdatedDateTime</a> - The date and time that the
--   stage was last updated.</li>
--   <li><a>ddSSOEnabled</a> - Indicates if single-sign on is enabled for
--   the directory. For more information, see <tt>EnableSso</tt> and
--   <tt>DisableSso</tt> .</li>
--   <li><a>ddDNSIPAddrs</a> - The IP addresses of the DNS servers for the
--   directory. For a Simple AD or Microsoft AD directory, these are the IP
--   addresses of the Simple AD or Microsoft AD directory servers. For an
--   AD Connector directory, these are the IP addresses of the DNS servers
--   or domain controllers in the on-premises directory to which the AD
--   Connector is connected.</li>
--   <li><a>ddVPCSettings</a> - A <tt>DirectoryVpcSettingsDescription</tt>
--   object that contains additional information about a directory. This
--   member is only present if the directory is a Simple AD or Managed AD
--   directory.</li>
--   <li><a>ddType</a> - The directory size.</li>
--   <li><a>ddStageReason</a> - Additional information about the directory
--   stage.</li>
--   <li><a>ddConnectSettings</a> - A
--   <a>DirectoryConnectSettingsDescription</a> object that contains
--   additional information about an AD Connector directory. This member is
--   only present if the directory is an AD Connector directory.</li>
--   <li><a>ddDescription</a> - The textual description for the
--   directory.</li>
--   </ul>
directoryDescription :: DirectoryDescription

-- | The status of the RADIUS MFA server connection.
ddRadiusStatus :: Lens' DirectoryDescription (Maybe RadiusStatus)

-- | The current stage of the directory.
ddStage :: Lens' DirectoryDescription (Maybe DirectoryStage)

-- | The directory identifier.
ddDirectoryId :: Lens' DirectoryDescription (Maybe Text)

-- | The access URL for the directory, such as
--   <tt><a>http://&lt;alias&gt;.awsapps.com</a></tt> . If no alias has
--   been created for the directory, <tt><a>alias</a></tt> is the directory
--   identifier, such as <tt>d-XXXXXXXXXX</tt> .
ddAccessURL :: Lens' DirectoryDescription (Maybe Text)

-- | The short name of the directory.
ddShortName :: Lens' DirectoryDescription (Maybe Text)

-- | The directory size.
ddSize :: Lens' DirectoryDescription (Maybe DirectorySize)

-- | A <a>RadiusSettings</a> object that contains information about the
--   RADIUS server configured for this directory.
ddRadiusSettings :: Lens' DirectoryDescription (Maybe RadiusSettings)

-- | Specifies when the directory was created.
ddLaunchTime :: Lens' DirectoryDescription (Maybe UTCTime)

-- | The alias for the directory. If no alias has been created for the
--   directory, the alias is the directory identifier, such as
--   <tt>d-XXXXXXXXXX</tt> .
ddAlias :: Lens' DirectoryDescription (Maybe Text)

-- | The fully-qualified name of the directory.
ddName :: Lens' DirectoryDescription (Maybe Text)

-- | The date and time that the stage was last updated.
ddStageLastUpdatedDateTime :: Lens' DirectoryDescription (Maybe UTCTime)

-- | Indicates if single-sign on is enabled for the directory. For more
--   information, see <tt>EnableSso</tt> and <tt>DisableSso</tt> .
ddSSOEnabled :: Lens' DirectoryDescription (Maybe Bool)

-- | The IP addresses of the DNS servers for the directory. For a Simple AD
--   or Microsoft AD directory, these are the IP addresses of the Simple AD
--   or Microsoft AD directory servers. For an AD Connector directory,
--   these are the IP addresses of the DNS servers or domain controllers in
--   the on-premises directory to which the AD Connector is connected.
ddDNSIPAddrs :: Lens' DirectoryDescription [Text]

-- | A <tt>DirectoryVpcSettingsDescription</tt> object that contains
--   additional information about a directory. This member is only present
--   if the directory is a Simple AD or Managed AD directory.
ddVPCSettings :: Lens' DirectoryDescription (Maybe DirectoryVPCSettingsDescription)

-- | The directory size.
ddType :: Lens' DirectoryDescription (Maybe DirectoryType)

-- | Additional information about the directory stage.
ddStageReason :: Lens' DirectoryDescription (Maybe Text)

-- | A <a>DirectoryConnectSettingsDescription</a> object that contains
--   additional information about an AD Connector directory. This member is
--   only present if the directory is an AD Connector directory.
ddConnectSettings :: Lens' DirectoryDescription (Maybe DirectoryConnectSettingsDescription)

-- | The textual description for the directory.
ddDescription :: Lens' DirectoryDescription (Maybe Text)

-- | Contains directory limit information for a region.
--   
--   <i>See:</i> <a>directoryLimits</a> smart constructor.
data DirectoryLimits

-- | Creates a value of <a>DirectoryLimits</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlConnectedDirectoriesCurrentCount</a> - The current number of
--   connected directories in the region.</li>
--   <li><a>dlCloudOnlyMicrosoftADLimitReached</a> - Indicates if the
--   Microsoft AD directory limit has been reached.</li>
--   <li><a>dlConnectedDirectoriesLimit</a> - The maximum number of
--   connected directories allowed in the region.</li>
--   <li><a>dlConnectedDirectoriesLimitReached</a> - Indicates if the
--   connected directory limit has been reached.</li>
--   <li><a>dlCloudOnlyMicrosoftADLimit</a> - The maximum number of
--   Microsoft AD directories allowed in the region.</li>
--   <li><a>dlCloudOnlyDirectoriesLimit</a> - The maximum number of cloud
--   directories allowed in the region.</li>
--   <li><a>dlCloudOnlyDirectoriesCurrentCount</a> - The current number of
--   cloud directories in the region.</li>
--   <li><a>dlCloudOnlyDirectoriesLimitReached</a> - Indicates if the cloud
--   directory limit has been reached.</li>
--   <li><a>dlCloudOnlyMicrosoftADCurrentCount</a> - The current number of
--   Microsoft AD directories in the region.</li>
--   </ul>
directoryLimits :: DirectoryLimits

-- | The current number of connected directories in the region.
dlConnectedDirectoriesCurrentCount :: Lens' DirectoryLimits (Maybe Natural)

-- | Indicates if the Microsoft AD directory limit has been reached.
dlCloudOnlyMicrosoftADLimitReached :: Lens' DirectoryLimits (Maybe Bool)

-- | The maximum number of connected directories allowed in the region.
dlConnectedDirectoriesLimit :: Lens' DirectoryLimits (Maybe Natural)

-- | Indicates if the connected directory limit has been reached.
dlConnectedDirectoriesLimitReached :: Lens' DirectoryLimits (Maybe Bool)

-- | The maximum number of Microsoft AD directories allowed in the region.
dlCloudOnlyMicrosoftADLimit :: Lens' DirectoryLimits (Maybe Natural)

-- | The maximum number of cloud directories allowed in the region.
dlCloudOnlyDirectoriesLimit :: Lens' DirectoryLimits (Maybe Natural)

-- | The current number of cloud directories in the region.
dlCloudOnlyDirectoriesCurrentCount :: Lens' DirectoryLimits (Maybe Natural)

-- | Indicates if the cloud directory limit has been reached.
dlCloudOnlyDirectoriesLimitReached :: Lens' DirectoryLimits (Maybe Bool)

-- | The current number of Microsoft AD directories in the region.
dlCloudOnlyMicrosoftADCurrentCount :: Lens' DirectoryLimits (Maybe Natural)

-- | Contains VPC information for the <tt>CreateDirectory</tt> or
--   <tt>CreateMicrosoftAD</tt> operation.
--   
--   <i>See:</i> <a>directoryVPCSettings</a> smart constructor.
data DirectoryVPCSettings

-- | Creates a value of <a>DirectoryVPCSettings</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvsVPCId</a> - The identifier of the VPC in which to create the
--   directory.</li>
--   <li><a>dvsSubnetIds</a> - The identifiers of the subnets for the
--   directory servers. The two subnets must be in different Availability
--   Zones. AWS Directory Service creates a directory server and a DNS
--   server in each of these subnets.</li>
--   </ul>
directoryVPCSettings :: Text -> DirectoryVPCSettings

-- | The identifier of the VPC in which to create the directory.
dvsVPCId :: Lens' DirectoryVPCSettings Text

-- | The identifiers of the subnets for the directory servers. The two
--   subnets must be in different Availability Zones. AWS Directory Service
--   creates a directory server and a DNS server in each of these subnets.
dvsSubnetIds :: Lens' DirectoryVPCSettings [Text]

-- | Contains information about the directory.
--   
--   <i>See:</i> <a>directoryVPCSettingsDescription</a> smart constructor.
data DirectoryVPCSettingsDescription

-- | Creates a value of <a>DirectoryVPCSettingsDescription</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvsdSubnetIds</a> - The identifiers of the subnets for the
--   directory servers.</li>
--   <li><a>dvsdVPCId</a> - The identifier of the VPC that the directory is
--   in.</li>
--   <li><a>dvsdSecurityGroupId</a> - The security group identifier for the
--   directory. If the directory was created before 8<i>1</i>2014, this is
--   the identifier of the directory members security group that was
--   created when the directory was created. If the directory was created
--   after this date, this value is null.</li>
--   <li><a>dvsdAvailabilityZones</a> - The list of Availability Zones that
--   the directory is in.</li>
--   </ul>
directoryVPCSettingsDescription :: DirectoryVPCSettingsDescription

-- | The identifiers of the subnets for the directory servers.
dvsdSubnetIds :: Lens' DirectoryVPCSettingsDescription [Text]

-- | The identifier of the VPC that the directory is in.
dvsdVPCId :: Lens' DirectoryVPCSettingsDescription (Maybe Text)

-- | The security group identifier for the directory. If the directory was
--   created before 8<i>1</i>2014, this is the identifier of the directory
--   members security group that was created when the directory was
--   created. If the directory was created after this date, this value is
--   null.
dvsdSecurityGroupId :: Lens' DirectoryVPCSettingsDescription (Maybe Text)

-- | The list of Availability Zones that the directory is in.
dvsdAvailabilityZones :: Lens' DirectoryVPCSettingsDescription [Text]

-- | Information about SNS topic and AWS Directory Service directory
--   associations.
--   
--   <i>See:</i> <a>eventTopic</a> smart constructor.
data EventTopic

-- | Creates a value of <a>EventTopic</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>etStatus</a> - The topic registration status.</li>
--   <li><a>etDirectoryId</a> - The Directory ID of an AWS Directory
--   Service directory that will publish status messages to an SNS
--   topic.</li>
--   <li><a>etTopicName</a> - The name of an AWS SNS topic the receives
--   status messages from the directory.</li>
--   <li><a>etTopicARN</a> - The SNS topic ARN (Amazon Resource Name).</li>
--   <li><a>etCreatedDateTime</a> - The date and time of when you
--   associated your directory with the SNS topic.</li>
--   </ul>
eventTopic :: EventTopic

-- | The topic registration status.
etStatus :: Lens' EventTopic (Maybe TopicStatus)

-- | The Directory ID of an AWS Directory Service directory that will
--   publish status messages to an SNS topic.
etDirectoryId :: Lens' EventTopic (Maybe Text)

-- | The name of an AWS SNS topic the receives status messages from the
--   directory.
etTopicName :: Lens' EventTopic (Maybe Text)

-- | The SNS topic ARN (Amazon Resource Name).
etTopicARN :: Lens' EventTopic (Maybe Text)

-- | The date and time of when you associated your directory with the SNS
--   topic.
etCreatedDateTime :: Lens' EventTopic (Maybe UTCTime)

-- | IP address block. This is often the address block of the DNS server
--   used for your on-premises domain.
--   
--   <i>See:</i> <a>ipRoute</a> smart constructor.
data IPRoute

-- | Creates a value of <a>IPRoute</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>irCidrIP</a> - IP address block using CIDR format, for example
--   10.0.0.0<i>24. This is often the address block of the DNS server used
--   for your on-premises domain. For a single IP address use a CIDR
--   address block with </i>32. For example 10.0.0.0/32.</li>
--   <li><a>irDescription</a> - Description of the address block.</li>
--   </ul>
ipRoute :: IPRoute

-- | IP address block using CIDR format, for example 10.0.0.0<i>24. This is
--   often the address block of the DNS server used for your on-premises
--   domain. For a single IP address use a CIDR address block with </i>32.
--   For example 10.0.0.0/32.
irCidrIP :: Lens' IPRoute (Maybe Text)

-- | Description of the address block.
irDescription :: Lens' IPRoute (Maybe Text)

-- | Information about one or more IP address blocks.
--   
--   <i>See:</i> <a>ipRouteInfo</a> smart constructor.
data IPRouteInfo

-- | Creates a value of <a>IPRouteInfo</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iriDirectoryId</a> - Identifier (ID) of the directory
--   associated with the IP addresses.</li>
--   <li><a>iriIPRouteStatusReason</a> - The reason for the
--   IpRouteStatusMsg.</li>
--   <li><a>iriAddedDateTime</a> - The date and time the address block was
--   added to the directory.</li>
--   <li><a>iriCidrIP</a> - IP address block in the <tt>IpRoute</tt> .</li>
--   <li><a>iriIPRouteStatusMsg</a> - The status of the IP address
--   block.</li>
--   <li><a>iriDescription</a> - Description of the <tt>IpRouteInfo</tt>
--   .</li>
--   </ul>
ipRouteInfo :: IPRouteInfo

-- | Identifier (ID) of the directory associated with the IP addresses.
iriDirectoryId :: Lens' IPRouteInfo (Maybe Text)

-- | The reason for the IpRouteStatusMsg.
iriIPRouteStatusReason :: Lens' IPRouteInfo (Maybe Text)

-- | The date and time the address block was added to the directory.
iriAddedDateTime :: Lens' IPRouteInfo (Maybe UTCTime)

-- | IP address block in the <tt>IpRoute</tt> .
iriCidrIP :: Lens' IPRouteInfo (Maybe Text)

-- | The status of the IP address block.
iriIPRouteStatusMsg :: Lens' IPRouteInfo (Maybe IPRouteStatusMsg)

-- | Description of the <tt>IpRouteInfo</tt> .
iriDescription :: Lens' IPRouteInfo (Maybe Text)

-- | Contains information about a Remote Authentication Dial In User
--   Service (RADIUS) server.
--   
--   <i>See:</i> <a>radiusSettings</a> smart constructor.
data RadiusSettings

-- | Creates a value of <a>RadiusSettings</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rsDisplayLabel</a> - Not currently used.</li>
--   <li><a>rsRadiusRetries</a> - The maximum number of times that
--   communication with the RADIUS server is attempted.</li>
--   <li><a>rsAuthenticationProtocol</a> - The protocol specified for your
--   RADIUS endpoints.</li>
--   <li><a>rsRadiusServers</a> - An array of strings that contains the IP
--   addresses of the RADIUS server endpoints, or the IP addresses of your
--   RADIUS server load balancer.</li>
--   <li><a>rsUseSameUsername</a> - Not currently used.</li>
--   <li><a>rsSharedSecret</a> - Not currently used.</li>
--   <li><a>rsRadiusTimeout</a> - The amount of time, in seconds, to wait
--   for the RADIUS server to respond.</li>
--   <li><a>rsRadiusPort</a> - The port that your RADIUS server is using
--   for communications. Your on-premises network must allow inbound
--   traffic over this port from the AWS Directory Service servers.</li>
--   </ul>
radiusSettings :: RadiusSettings

-- | Not currently used.
rsDisplayLabel :: Lens' RadiusSettings (Maybe Text)

-- | The maximum number of times that communication with the RADIUS server
--   is attempted.
rsRadiusRetries :: Lens' RadiusSettings (Maybe Natural)

-- | The protocol specified for your RADIUS endpoints.
rsAuthenticationProtocol :: Lens' RadiusSettings (Maybe RadiusAuthenticationProtocol)

-- | An array of strings that contains the IP addresses of the RADIUS
--   server endpoints, or the IP addresses of your RADIUS server load
--   balancer.
rsRadiusServers :: Lens' RadiusSettings [Text]

-- | Not currently used.
rsUseSameUsername :: Lens' RadiusSettings (Maybe Bool)

-- | Not currently used.
rsSharedSecret :: Lens' RadiusSettings (Maybe Text)

-- | The amount of time, in seconds, to wait for the RADIUS server to
--   respond.
rsRadiusTimeout :: Lens' RadiusSettings (Maybe Natural)

-- | The port that your RADIUS server is using for communications. Your
--   on-premises network must allow inbound traffic over this port from the
--   AWS Directory Service servers.
rsRadiusPort :: Lens' RadiusSettings (Maybe Natural)

-- | Information about a schema extension.
--   
--   <i>See:</i> <a>schemaExtensionInfo</a> smart constructor.
data SchemaExtensionInfo

-- | Creates a value of <a>SchemaExtensionInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>seiDirectoryId</a> - The identifier of the directory to which
--   the schema extension is applied.</li>
--   <li><a>seiSchemaExtensionId</a> - The identifier of the schema
--   extension.</li>
--   <li><a>seiSchemaExtensionStatusReason</a> - The reason for the
--   <tt>SchemaExtensionStatus</tt> .</li>
--   <li><a>seiSchemaExtensionStatus</a> - The current status of the schema
--   extension.</li>
--   <li><a>seiDescription</a> - A description of the schema
--   extension.</li>
--   <li><a>seiEndDateTime</a> - The date and time that the schema
--   extension was completed.</li>
--   <li><a>seiStartDateTime</a> - The date and time that the schema
--   extension started being applied to the directory.</li>
--   </ul>
schemaExtensionInfo :: SchemaExtensionInfo

-- | The identifier of the directory to which the schema extension is
--   applied.
seiDirectoryId :: Lens' SchemaExtensionInfo (Maybe Text)

-- | The identifier of the schema extension.
seiSchemaExtensionId :: Lens' SchemaExtensionInfo (Maybe Text)

-- | The reason for the <tt>SchemaExtensionStatus</tt> .
seiSchemaExtensionStatusReason :: Lens' SchemaExtensionInfo (Maybe Text)

-- | The current status of the schema extension.
seiSchemaExtensionStatus :: Lens' SchemaExtensionInfo (Maybe SchemaExtensionStatus)

-- | A description of the schema extension.
seiDescription :: Lens' SchemaExtensionInfo (Maybe Text)

-- | The date and time that the schema extension was completed.
seiEndDateTime :: Lens' SchemaExtensionInfo (Maybe UTCTime)

-- | The date and time that the schema extension started being applied to
--   the directory.
seiStartDateTime :: Lens' SchemaExtensionInfo (Maybe UTCTime)

-- | Describes a directory snapshot.
--   
--   <i>See:</i> <a>snapshot</a> smart constructor.
data Snapshot

-- | Creates a value of <a>Snapshot</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sStatus</a> - The snapshot status.</li>
--   <li><a>sDirectoryId</a> - The directory identifier.</li>
--   <li><a>sStartTime</a> - The date and time that the snapshot was
--   taken.</li>
--   <li><a>sName</a> - The descriptive name of the snapshot.</li>
--   <li><a>sType</a> - The snapshot type.</li>
--   <li><a>sSnapshotId</a> - The snapshot identifier.</li>
--   </ul>
snapshot :: Snapshot

-- | The snapshot status.
sStatus :: Lens' Snapshot (Maybe SnapshotStatus)

-- | The directory identifier.
sDirectoryId :: Lens' Snapshot (Maybe Text)

-- | The date and time that the snapshot was taken.
sStartTime :: Lens' Snapshot (Maybe UTCTime)

-- | The descriptive name of the snapshot.
sName :: Lens' Snapshot (Maybe Text)

-- | The snapshot type.
sType :: Lens' Snapshot (Maybe SnapshotType)

-- | The snapshot identifier.
sSnapshotId :: Lens' Snapshot (Maybe Text)

-- | Contains manual snapshot limit information for a directory.
--   
--   <i>See:</i> <a>snapshotLimits</a> smart constructor.
data SnapshotLimits

-- | Creates a value of <a>SnapshotLimits</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slManualSnapshotsLimitReached</a> - Indicates if the manual
--   snapshot limit has been reached.</li>
--   <li><a>slManualSnapshotsCurrentCount</a> - The current number of
--   manual snapshots of the directory.</li>
--   <li><a>slManualSnapshotsLimit</a> - The maximum number of manual
--   snapshots allowed.</li>
--   </ul>
snapshotLimits :: SnapshotLimits

-- | Indicates if the manual snapshot limit has been reached.
slManualSnapshotsLimitReached :: Lens' SnapshotLimits (Maybe Bool)

-- | The current number of manual snapshots of the directory.
slManualSnapshotsCurrentCount :: Lens' SnapshotLimits (Maybe Natural)

-- | The maximum number of manual snapshots allowed.
slManualSnapshotsLimit :: Lens' SnapshotLimits (Maybe Natural)

-- | Metadata assigned to an Amazon Directory Services directory consisting
--   of a key-value pair.
--   
--   <i>See:</i> <a>tag</a> smart constructor.
data Tag

-- | Creates a value of <a>Tag</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tagKey</a> - Required name of the tag. The string value can be
--   Unicode characters and cannot be prefixed with "aws:". The string can
--   contain only the set of Unicode letters, digits, white-space, '_',
--   <a>.</a>, <a>/</a>, '=', <a>+</a>, <a>-</a> (Java regex:
--   "^([\p{L}\p{Z}\p{N}_.:/=+\-]*)$").</li>
--   <li><a>tagValue</a> - The optional value of the tag. The string value
--   can be Unicode characters. The string can contain only the set of
--   Unicode letters, digits, white-space, '_', <a>.</a>, <a>/</a>, '=',
--   <a>+</a>, <a>-</a> (Java regex:
--   "^([\p{L}\p{Z}\p{N}_.:/=+\-]*)$").</li>
--   </ul>
tag :: Text -> Text -> Tag

-- | Required name of the tag. The string value can be Unicode characters
--   and cannot be prefixed with "aws:". The string can contain only the
--   set of Unicode letters, digits, white-space, '_', <a>.</a>, <a>/</a>,
--   '=', <a>+</a>, <a>-</a> (Java regex:
--   "^([\p{L}\p{Z}\p{N}_.:/=+\-]*)$").
tagKey :: Lens' Tag Text

-- | The optional value of the tag. The string value can be Unicode
--   characters. The string can contain only the set of Unicode letters,
--   digits, white-space, '_', <a>.</a>, <a>/</a>, '=', <a>+</a>, <a>-</a>
--   (Java regex: "^([\p{L}\p{Z}\p{N}_.:/=+\-]*)$").
tagValue :: Lens' Tag Text

-- | Describes a trust relationship between an Microsoft AD in the AWS
--   cloud and an external domain.
--   
--   <i>See:</i> <a>trust</a> smart constructor.
data Trust

-- | Creates a value of <a>Trust</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tDirectoryId</a> - The Directory ID of the AWS directory
--   involved in the trust relationship.</li>
--   <li><a>tTrustState</a> - The trust relationship state.</li>
--   <li><a>tLastUpdatedDateTime</a> - The date and time that the trust
--   relationship was last updated.</li>
--   <li><a>tTrustDirection</a> - The trust relationship direction.</li>
--   <li><a>tStateLastUpdatedDateTime</a> - The date and time that the
--   TrustState was last updated.</li>
--   <li><a>tTrustType</a> - The trust relationship type.</li>
--   <li><a>tTrustStateReason</a> - The reason for the TrustState.</li>
--   <li><a>tRemoteDomainName</a> - The Fully Qualified Domain Name (FQDN)
--   of the external domain involved in the trust relationship.</li>
--   <li><a>tTrustId</a> - The unique ID of the trust relationship.</li>
--   <li><a>tCreatedDateTime</a> - The date and time that the trust
--   relationship was created.</li>
--   </ul>
trust :: Trust

-- | The Directory ID of the AWS directory involved in the trust
--   relationship.
tDirectoryId :: Lens' Trust (Maybe Text)

-- | The trust relationship state.
tTrustState :: Lens' Trust (Maybe TrustState)

-- | The date and time that the trust relationship was last updated.
tLastUpdatedDateTime :: Lens' Trust (Maybe UTCTime)

-- | The trust relationship direction.
tTrustDirection :: Lens' Trust (Maybe TrustDirection)

-- | The date and time that the TrustState was last updated.
tStateLastUpdatedDateTime :: Lens' Trust (Maybe UTCTime)

-- | The trust relationship type.
tTrustType :: Lens' Trust (Maybe TrustType)

-- | The reason for the TrustState.
tTrustStateReason :: Lens' Trust (Maybe Text)

-- | The Fully Qualified Domain Name (FQDN) of the external domain involved
--   in the trust relationship.
tRemoteDomainName :: Lens' Trust (Maybe Text)

-- | The unique ID of the trust relationship.
tTrustId :: Lens' Trust (Maybe Text)

-- | The date and time that the trust relationship was created.
tCreatedDateTime :: Lens' Trust (Maybe UTCTime)
