{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.WorkSpaces.Types.WorkspaceDirectory
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.WorkSpaces.Types.WorkspaceDirectory where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.WorkSpaces.Types.CertificateBasedAuthProperties
import Amazonka.WorkSpaces.Types.DefaultWorkspaceCreationProperties
import Amazonka.WorkSpaces.Types.SamlProperties
import Amazonka.WorkSpaces.Types.SelfservicePermissions
import Amazonka.WorkSpaces.Types.Tenancy
import Amazonka.WorkSpaces.Types.WorkspaceAccessProperties
import Amazonka.WorkSpaces.Types.WorkspaceDirectoryState
import Amazonka.WorkSpaces.Types.WorkspaceDirectoryType

-- | Describes a directory that is used with Amazon WorkSpaces.
--
-- /See:/ 'newWorkspaceDirectory' smart constructor.
data WorkspaceDirectory = WorkspaceDirectory'
  { -- | The directory alias.
    WorkspaceDirectory -> Maybe Text
alias :: Prelude.Maybe Prelude.Text,
    -- | The certificate-based authentication properties used to authenticate
    -- SAML 2.0 Identity Provider (IdP) user identities to Active Directory for
    -- WorkSpaces login.
    WorkspaceDirectory -> Maybe CertificateBasedAuthProperties
certificateBasedAuthProperties :: Prelude.Maybe CertificateBasedAuthProperties,
    -- | The user name for the service account.
    WorkspaceDirectory -> Maybe Text
customerUserName :: Prelude.Maybe Prelude.Text,
    -- | The directory identifier.
    WorkspaceDirectory -> Maybe Text
directoryId :: Prelude.Maybe Prelude.Text,
    -- | The name of the directory.
    WorkspaceDirectory -> Maybe Text
directoryName :: Prelude.Maybe Prelude.Text,
    -- | The directory type.
    WorkspaceDirectory -> Maybe WorkspaceDirectoryType
directoryType :: Prelude.Maybe WorkspaceDirectoryType,
    -- | The IP addresses of the DNS servers for the directory.
    WorkspaceDirectory -> Maybe [Text]
dnsIpAddresses :: Prelude.Maybe [Prelude.Text],
    -- | The identifier of the IAM role. This is the role that allows Amazon
    -- WorkSpaces to make calls to other services, such as Amazon EC2, on your
    -- behalf.
    WorkspaceDirectory -> Maybe Text
iamRoleId :: Prelude.Maybe Prelude.Text,
    -- | The registration code for the directory. This is the code that users
    -- enter in their Amazon WorkSpaces client application to connect to the
    -- directory.
    WorkspaceDirectory -> Maybe Text
registrationCode :: Prelude.Maybe Prelude.Text,
    -- | Describes the enablement status, user access URL, and relay state
    -- parameter name that are used for configuring federation with an SAML 2.0
    -- identity provider.
    WorkspaceDirectory -> Maybe SamlProperties
samlProperties :: Prelude.Maybe SamlProperties,
    -- | The default self-service permissions for WorkSpaces in the directory.
    WorkspaceDirectory -> Maybe SelfservicePermissions
selfservicePermissions :: Prelude.Maybe SelfservicePermissions,
    -- | The state of the directory\'s registration with Amazon WorkSpaces. After
    -- a directory is deregistered, the @DEREGISTERED@ state is returned very
    -- briefly before the directory metadata is cleaned up, so this state is
    -- rarely returned. To confirm that a directory is deregistered, check for
    -- the directory ID by using
    -- <https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaceDirectories.html DescribeWorkspaceDirectories>.
    -- If the directory ID isn\'t returned, then the directory has been
    -- successfully deregistered.
    WorkspaceDirectory -> Maybe WorkspaceDirectoryState
state :: Prelude.Maybe WorkspaceDirectoryState,
    -- | The identifiers of the subnets used with the directory.
    WorkspaceDirectory -> Maybe [Text]
subnetIds :: Prelude.Maybe [Prelude.Text],
    -- | Specifies whether the directory is dedicated or shared. To use Bring
    -- Your Own License (BYOL), this value must be set to @DEDICATED@. For more
    -- information, see
    -- <https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html Bring Your Own Windows Desktop Images>.
    WorkspaceDirectory -> Maybe Tenancy
tenancy :: Prelude.Maybe Tenancy,
    -- | The devices and operating systems that users can use to access
    -- WorkSpaces.
    WorkspaceDirectory -> Maybe WorkspaceAccessProperties
workspaceAccessProperties :: Prelude.Maybe WorkspaceAccessProperties,
    -- | The default creation properties for all WorkSpaces in the directory.
    WorkspaceDirectory -> Maybe DefaultWorkspaceCreationProperties
workspaceCreationProperties :: Prelude.Maybe DefaultWorkspaceCreationProperties,
    -- | The identifier of the security group that is assigned to new WorkSpaces.
    WorkspaceDirectory -> Maybe Text
workspaceSecurityGroupId :: Prelude.Maybe Prelude.Text,
    -- | The identifiers of the IP access control groups associated with the
    -- directory.
    WorkspaceDirectory -> Maybe [Text]
ipGroupIds :: Prelude.Maybe [Prelude.Text]
  }
  deriving (WorkspaceDirectory -> WorkspaceDirectory -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: WorkspaceDirectory -> WorkspaceDirectory -> Bool
$c/= :: WorkspaceDirectory -> WorkspaceDirectory -> Bool
== :: WorkspaceDirectory -> WorkspaceDirectory -> Bool
$c== :: WorkspaceDirectory -> WorkspaceDirectory -> Bool
Prelude.Eq, ReadPrec [WorkspaceDirectory]
ReadPrec WorkspaceDirectory
Int -> ReadS WorkspaceDirectory
ReadS [WorkspaceDirectory]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [WorkspaceDirectory]
$creadListPrec :: ReadPrec [WorkspaceDirectory]
readPrec :: ReadPrec WorkspaceDirectory
$creadPrec :: ReadPrec WorkspaceDirectory
readList :: ReadS [WorkspaceDirectory]
$creadList :: ReadS [WorkspaceDirectory]
readsPrec :: Int -> ReadS WorkspaceDirectory
$creadsPrec :: Int -> ReadS WorkspaceDirectory
Prelude.Read, Int -> WorkspaceDirectory -> ShowS
[WorkspaceDirectory] -> ShowS
WorkspaceDirectory -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [WorkspaceDirectory] -> ShowS
$cshowList :: [WorkspaceDirectory] -> ShowS
show :: WorkspaceDirectory -> String
$cshow :: WorkspaceDirectory -> String
showsPrec :: Int -> WorkspaceDirectory -> ShowS
$cshowsPrec :: Int -> WorkspaceDirectory -> ShowS
Prelude.Show, forall x. Rep WorkspaceDirectory x -> WorkspaceDirectory
forall x. WorkspaceDirectory -> Rep WorkspaceDirectory x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep WorkspaceDirectory x -> WorkspaceDirectory
$cfrom :: forall x. WorkspaceDirectory -> Rep WorkspaceDirectory x
Prelude.Generic)

-- |
-- Create a value of 'WorkspaceDirectory' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'alias', 'workspaceDirectory_alias' - The directory alias.
--
-- 'certificateBasedAuthProperties', 'workspaceDirectory_certificateBasedAuthProperties' - The certificate-based authentication properties used to authenticate
-- SAML 2.0 Identity Provider (IdP) user identities to Active Directory for
-- WorkSpaces login.
--
-- 'customerUserName', 'workspaceDirectory_customerUserName' - The user name for the service account.
--
-- 'directoryId', 'workspaceDirectory_directoryId' - The directory identifier.
--
-- 'directoryName', 'workspaceDirectory_directoryName' - The name of the directory.
--
-- 'directoryType', 'workspaceDirectory_directoryType' - The directory type.
--
-- 'dnsIpAddresses', 'workspaceDirectory_dnsIpAddresses' - The IP addresses of the DNS servers for the directory.
--
-- 'iamRoleId', 'workspaceDirectory_iamRoleId' - The identifier of the IAM role. This is the role that allows Amazon
-- WorkSpaces to make calls to other services, such as Amazon EC2, on your
-- behalf.
--
-- 'registrationCode', 'workspaceDirectory_registrationCode' - The registration code for the directory. This is the code that users
-- enter in their Amazon WorkSpaces client application to connect to the
-- directory.
--
-- 'samlProperties', 'workspaceDirectory_samlProperties' - Describes the enablement status, user access URL, and relay state
-- parameter name that are used for configuring federation with an SAML 2.0
-- identity provider.
--
-- 'selfservicePermissions', 'workspaceDirectory_selfservicePermissions' - The default self-service permissions for WorkSpaces in the directory.
--
-- 'state', 'workspaceDirectory_state' - The state of the directory\'s registration with Amazon WorkSpaces. After
-- a directory is deregistered, the @DEREGISTERED@ state is returned very
-- briefly before the directory metadata is cleaned up, so this state is
-- rarely returned. To confirm that a directory is deregistered, check for
-- the directory ID by using
-- <https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaceDirectories.html DescribeWorkspaceDirectories>.
-- If the directory ID isn\'t returned, then the directory has been
-- successfully deregistered.
--
-- 'subnetIds', 'workspaceDirectory_subnetIds' - The identifiers of the subnets used with the directory.
--
-- 'tenancy', 'workspaceDirectory_tenancy' - Specifies whether the directory is dedicated or shared. To use Bring
-- Your Own License (BYOL), this value must be set to @DEDICATED@. For more
-- information, see
-- <https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html Bring Your Own Windows Desktop Images>.
--
-- 'workspaceAccessProperties', 'workspaceDirectory_workspaceAccessProperties' - The devices and operating systems that users can use to access
-- WorkSpaces.
--
-- 'workspaceCreationProperties', 'workspaceDirectory_workspaceCreationProperties' - The default creation properties for all WorkSpaces in the directory.
--
-- 'workspaceSecurityGroupId', 'workspaceDirectory_workspaceSecurityGroupId' - The identifier of the security group that is assigned to new WorkSpaces.
--
-- 'ipGroupIds', 'workspaceDirectory_ipGroupIds' - The identifiers of the IP access control groups associated with the
-- directory.
newWorkspaceDirectory ::
  WorkspaceDirectory
newWorkspaceDirectory :: WorkspaceDirectory
newWorkspaceDirectory =
  WorkspaceDirectory'
    { $sel:alias:WorkspaceDirectory' :: Maybe Text
alias = forall a. Maybe a
Prelude.Nothing,
      $sel:certificateBasedAuthProperties:WorkspaceDirectory' :: Maybe CertificateBasedAuthProperties
certificateBasedAuthProperties = forall a. Maybe a
Prelude.Nothing,
      $sel:customerUserName:WorkspaceDirectory' :: Maybe Text
customerUserName = forall a. Maybe a
Prelude.Nothing,
      $sel:directoryId:WorkspaceDirectory' :: Maybe Text
directoryId = forall a. Maybe a
Prelude.Nothing,
      $sel:directoryName:WorkspaceDirectory' :: Maybe Text
directoryName = forall a. Maybe a
Prelude.Nothing,
      $sel:directoryType:WorkspaceDirectory' :: Maybe WorkspaceDirectoryType
directoryType = forall a. Maybe a
Prelude.Nothing,
      $sel:dnsIpAddresses:WorkspaceDirectory' :: Maybe [Text]
dnsIpAddresses = forall a. Maybe a
Prelude.Nothing,
      $sel:iamRoleId:WorkspaceDirectory' :: Maybe Text
iamRoleId = forall a. Maybe a
Prelude.Nothing,
      $sel:registrationCode:WorkspaceDirectory' :: Maybe Text
registrationCode = forall a. Maybe a
Prelude.Nothing,
      $sel:samlProperties:WorkspaceDirectory' :: Maybe SamlProperties
samlProperties = forall a. Maybe a
Prelude.Nothing,
      $sel:selfservicePermissions:WorkspaceDirectory' :: Maybe SelfservicePermissions
selfservicePermissions = forall a. Maybe a
Prelude.Nothing,
      $sel:state:WorkspaceDirectory' :: Maybe WorkspaceDirectoryState
state = forall a. Maybe a
Prelude.Nothing,
      $sel:subnetIds:WorkspaceDirectory' :: Maybe [Text]
subnetIds = forall a. Maybe a
Prelude.Nothing,
      $sel:tenancy:WorkspaceDirectory' :: Maybe Tenancy
tenancy = forall a. Maybe a
Prelude.Nothing,
      $sel:workspaceAccessProperties:WorkspaceDirectory' :: Maybe WorkspaceAccessProperties
workspaceAccessProperties = forall a. Maybe a
Prelude.Nothing,
      $sel:workspaceCreationProperties:WorkspaceDirectory' :: Maybe DefaultWorkspaceCreationProperties
workspaceCreationProperties = forall a. Maybe a
Prelude.Nothing,
      $sel:workspaceSecurityGroupId:WorkspaceDirectory' :: Maybe Text
workspaceSecurityGroupId = forall a. Maybe a
Prelude.Nothing,
      $sel:ipGroupIds:WorkspaceDirectory' :: Maybe [Text]
ipGroupIds = forall a. Maybe a
Prelude.Nothing
    }

-- | The directory alias.
workspaceDirectory_alias :: Lens.Lens' WorkspaceDirectory (Prelude.Maybe Prelude.Text)
workspaceDirectory_alias :: Lens' WorkspaceDirectory (Maybe Text)
workspaceDirectory_alias = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceDirectory' {Maybe Text
alias :: Maybe Text
$sel:alias:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
alias} -> Maybe Text
alias) (\s :: WorkspaceDirectory
s@WorkspaceDirectory' {} Maybe Text
a -> WorkspaceDirectory
s {$sel:alias:WorkspaceDirectory' :: Maybe Text
alias = Maybe Text
a} :: WorkspaceDirectory)

-- | The certificate-based authentication properties used to authenticate
-- SAML 2.0 Identity Provider (IdP) user identities to Active Directory for
-- WorkSpaces login.
workspaceDirectory_certificateBasedAuthProperties :: Lens.Lens' WorkspaceDirectory (Prelude.Maybe CertificateBasedAuthProperties)
workspaceDirectory_certificateBasedAuthProperties :: Lens' WorkspaceDirectory (Maybe CertificateBasedAuthProperties)
workspaceDirectory_certificateBasedAuthProperties = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceDirectory' {Maybe CertificateBasedAuthProperties
certificateBasedAuthProperties :: Maybe CertificateBasedAuthProperties
$sel:certificateBasedAuthProperties:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe CertificateBasedAuthProperties
certificateBasedAuthProperties} -> Maybe CertificateBasedAuthProperties
certificateBasedAuthProperties) (\s :: WorkspaceDirectory
s@WorkspaceDirectory' {} Maybe CertificateBasedAuthProperties
a -> WorkspaceDirectory
s {$sel:certificateBasedAuthProperties:WorkspaceDirectory' :: Maybe CertificateBasedAuthProperties
certificateBasedAuthProperties = Maybe CertificateBasedAuthProperties
a} :: WorkspaceDirectory)

-- | The user name for the service account.
workspaceDirectory_customerUserName :: Lens.Lens' WorkspaceDirectory (Prelude.Maybe Prelude.Text)
workspaceDirectory_customerUserName :: Lens' WorkspaceDirectory (Maybe Text)
workspaceDirectory_customerUserName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceDirectory' {Maybe Text
customerUserName :: Maybe Text
$sel:customerUserName:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
customerUserName} -> Maybe Text
customerUserName) (\s :: WorkspaceDirectory
s@WorkspaceDirectory' {} Maybe Text
a -> WorkspaceDirectory
s {$sel:customerUserName:WorkspaceDirectory' :: Maybe Text
customerUserName = Maybe Text
a} :: WorkspaceDirectory)

-- | The directory identifier.
workspaceDirectory_directoryId :: Lens.Lens' WorkspaceDirectory (Prelude.Maybe Prelude.Text)
workspaceDirectory_directoryId :: Lens' WorkspaceDirectory (Maybe Text)
workspaceDirectory_directoryId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceDirectory' {Maybe Text
directoryId :: Maybe Text
$sel:directoryId:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
directoryId} -> Maybe Text
directoryId) (\s :: WorkspaceDirectory
s@WorkspaceDirectory' {} Maybe Text
a -> WorkspaceDirectory
s {$sel:directoryId:WorkspaceDirectory' :: Maybe Text
directoryId = Maybe Text
a} :: WorkspaceDirectory)

-- | The name of the directory.
workspaceDirectory_directoryName :: Lens.Lens' WorkspaceDirectory (Prelude.Maybe Prelude.Text)
workspaceDirectory_directoryName :: Lens' WorkspaceDirectory (Maybe Text)
workspaceDirectory_directoryName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceDirectory' {Maybe Text
directoryName :: Maybe Text
$sel:directoryName:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
directoryName} -> Maybe Text
directoryName) (\s :: WorkspaceDirectory
s@WorkspaceDirectory' {} Maybe Text
a -> WorkspaceDirectory
s {$sel:directoryName:WorkspaceDirectory' :: Maybe Text
directoryName = Maybe Text
a} :: WorkspaceDirectory)

-- | The directory type.
workspaceDirectory_directoryType :: Lens.Lens' WorkspaceDirectory (Prelude.Maybe WorkspaceDirectoryType)
workspaceDirectory_directoryType :: Lens' WorkspaceDirectory (Maybe WorkspaceDirectoryType)
workspaceDirectory_directoryType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceDirectory' {Maybe WorkspaceDirectoryType
directoryType :: Maybe WorkspaceDirectoryType
$sel:directoryType:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe WorkspaceDirectoryType
directoryType} -> Maybe WorkspaceDirectoryType
directoryType) (\s :: WorkspaceDirectory
s@WorkspaceDirectory' {} Maybe WorkspaceDirectoryType
a -> WorkspaceDirectory
s {$sel:directoryType:WorkspaceDirectory' :: Maybe WorkspaceDirectoryType
directoryType = Maybe WorkspaceDirectoryType
a} :: WorkspaceDirectory)

-- | The IP addresses of the DNS servers for the directory.
workspaceDirectory_dnsIpAddresses :: Lens.Lens' WorkspaceDirectory (Prelude.Maybe [Prelude.Text])
workspaceDirectory_dnsIpAddresses :: Lens' WorkspaceDirectory (Maybe [Text])
workspaceDirectory_dnsIpAddresses = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceDirectory' {Maybe [Text]
dnsIpAddresses :: Maybe [Text]
$sel:dnsIpAddresses:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe [Text]
dnsIpAddresses} -> Maybe [Text]
dnsIpAddresses) (\s :: WorkspaceDirectory
s@WorkspaceDirectory' {} Maybe [Text]
a -> WorkspaceDirectory
s {$sel:dnsIpAddresses:WorkspaceDirectory' :: Maybe [Text]
dnsIpAddresses = Maybe [Text]
a} :: WorkspaceDirectory) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The identifier of the IAM role. This is the role that allows Amazon
-- WorkSpaces to make calls to other services, such as Amazon EC2, on your
-- behalf.
workspaceDirectory_iamRoleId :: Lens.Lens' WorkspaceDirectory (Prelude.Maybe Prelude.Text)
workspaceDirectory_iamRoleId :: Lens' WorkspaceDirectory (Maybe Text)
workspaceDirectory_iamRoleId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceDirectory' {Maybe Text
iamRoleId :: Maybe Text
$sel:iamRoleId:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
iamRoleId} -> Maybe Text
iamRoleId) (\s :: WorkspaceDirectory
s@WorkspaceDirectory' {} Maybe Text
a -> WorkspaceDirectory
s {$sel:iamRoleId:WorkspaceDirectory' :: Maybe Text
iamRoleId = Maybe Text
a} :: WorkspaceDirectory)

-- | The registration code for the directory. This is the code that users
-- enter in their Amazon WorkSpaces client application to connect to the
-- directory.
workspaceDirectory_registrationCode :: Lens.Lens' WorkspaceDirectory (Prelude.Maybe Prelude.Text)
workspaceDirectory_registrationCode :: Lens' WorkspaceDirectory (Maybe Text)
workspaceDirectory_registrationCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceDirectory' {Maybe Text
registrationCode :: Maybe Text
$sel:registrationCode:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
registrationCode} -> Maybe Text
registrationCode) (\s :: WorkspaceDirectory
s@WorkspaceDirectory' {} Maybe Text
a -> WorkspaceDirectory
s {$sel:registrationCode:WorkspaceDirectory' :: Maybe Text
registrationCode = Maybe Text
a} :: WorkspaceDirectory)

-- | Describes the enablement status, user access URL, and relay state
-- parameter name that are used for configuring federation with an SAML 2.0
-- identity provider.
workspaceDirectory_samlProperties :: Lens.Lens' WorkspaceDirectory (Prelude.Maybe SamlProperties)
workspaceDirectory_samlProperties :: Lens' WorkspaceDirectory (Maybe SamlProperties)
workspaceDirectory_samlProperties = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceDirectory' {Maybe SamlProperties
samlProperties :: Maybe SamlProperties
$sel:samlProperties:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe SamlProperties
samlProperties} -> Maybe SamlProperties
samlProperties) (\s :: WorkspaceDirectory
s@WorkspaceDirectory' {} Maybe SamlProperties
a -> WorkspaceDirectory
s {$sel:samlProperties:WorkspaceDirectory' :: Maybe SamlProperties
samlProperties = Maybe SamlProperties
a} :: WorkspaceDirectory)

-- | The default self-service permissions for WorkSpaces in the directory.
workspaceDirectory_selfservicePermissions :: Lens.Lens' WorkspaceDirectory (Prelude.Maybe SelfservicePermissions)
workspaceDirectory_selfservicePermissions :: Lens' WorkspaceDirectory (Maybe SelfservicePermissions)
workspaceDirectory_selfservicePermissions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceDirectory' {Maybe SelfservicePermissions
selfservicePermissions :: Maybe SelfservicePermissions
$sel:selfservicePermissions:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe SelfservicePermissions
selfservicePermissions} -> Maybe SelfservicePermissions
selfservicePermissions) (\s :: WorkspaceDirectory
s@WorkspaceDirectory' {} Maybe SelfservicePermissions
a -> WorkspaceDirectory
s {$sel:selfservicePermissions:WorkspaceDirectory' :: Maybe SelfservicePermissions
selfservicePermissions = Maybe SelfservicePermissions
a} :: WorkspaceDirectory)

-- | The state of the directory\'s registration with Amazon WorkSpaces. After
-- a directory is deregistered, the @DEREGISTERED@ state is returned very
-- briefly before the directory metadata is cleaned up, so this state is
-- rarely returned. To confirm that a directory is deregistered, check for
-- the directory ID by using
-- <https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaceDirectories.html DescribeWorkspaceDirectories>.
-- If the directory ID isn\'t returned, then the directory has been
-- successfully deregistered.
workspaceDirectory_state :: Lens.Lens' WorkspaceDirectory (Prelude.Maybe WorkspaceDirectoryState)
workspaceDirectory_state :: Lens' WorkspaceDirectory (Maybe WorkspaceDirectoryState)
workspaceDirectory_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceDirectory' {Maybe WorkspaceDirectoryState
state :: Maybe WorkspaceDirectoryState
$sel:state:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe WorkspaceDirectoryState
state} -> Maybe WorkspaceDirectoryState
state) (\s :: WorkspaceDirectory
s@WorkspaceDirectory' {} Maybe WorkspaceDirectoryState
a -> WorkspaceDirectory
s {$sel:state:WorkspaceDirectory' :: Maybe WorkspaceDirectoryState
state = Maybe WorkspaceDirectoryState
a} :: WorkspaceDirectory)

-- | The identifiers of the subnets used with the directory.
workspaceDirectory_subnetIds :: Lens.Lens' WorkspaceDirectory (Prelude.Maybe [Prelude.Text])
workspaceDirectory_subnetIds :: Lens' WorkspaceDirectory (Maybe [Text])
workspaceDirectory_subnetIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceDirectory' {Maybe [Text]
subnetIds :: Maybe [Text]
$sel:subnetIds:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe [Text]
subnetIds} -> Maybe [Text]
subnetIds) (\s :: WorkspaceDirectory
s@WorkspaceDirectory' {} Maybe [Text]
a -> WorkspaceDirectory
s {$sel:subnetIds:WorkspaceDirectory' :: Maybe [Text]
subnetIds = Maybe [Text]
a} :: WorkspaceDirectory) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Specifies whether the directory is dedicated or shared. To use Bring
-- Your Own License (BYOL), this value must be set to @DEDICATED@. For more
-- information, see
-- <https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html Bring Your Own Windows Desktop Images>.
workspaceDirectory_tenancy :: Lens.Lens' WorkspaceDirectory (Prelude.Maybe Tenancy)
workspaceDirectory_tenancy :: Lens' WorkspaceDirectory (Maybe Tenancy)
workspaceDirectory_tenancy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceDirectory' {Maybe Tenancy
tenancy :: Maybe Tenancy
$sel:tenancy:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Tenancy
tenancy} -> Maybe Tenancy
tenancy) (\s :: WorkspaceDirectory
s@WorkspaceDirectory' {} Maybe Tenancy
a -> WorkspaceDirectory
s {$sel:tenancy:WorkspaceDirectory' :: Maybe Tenancy
tenancy = Maybe Tenancy
a} :: WorkspaceDirectory)

-- | The devices and operating systems that users can use to access
-- WorkSpaces.
workspaceDirectory_workspaceAccessProperties :: Lens.Lens' WorkspaceDirectory (Prelude.Maybe WorkspaceAccessProperties)
workspaceDirectory_workspaceAccessProperties :: Lens' WorkspaceDirectory (Maybe WorkspaceAccessProperties)
workspaceDirectory_workspaceAccessProperties = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceDirectory' {Maybe WorkspaceAccessProperties
workspaceAccessProperties :: Maybe WorkspaceAccessProperties
$sel:workspaceAccessProperties:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe WorkspaceAccessProperties
workspaceAccessProperties} -> Maybe WorkspaceAccessProperties
workspaceAccessProperties) (\s :: WorkspaceDirectory
s@WorkspaceDirectory' {} Maybe WorkspaceAccessProperties
a -> WorkspaceDirectory
s {$sel:workspaceAccessProperties:WorkspaceDirectory' :: Maybe WorkspaceAccessProperties
workspaceAccessProperties = Maybe WorkspaceAccessProperties
a} :: WorkspaceDirectory)

-- | The default creation properties for all WorkSpaces in the directory.
workspaceDirectory_workspaceCreationProperties :: Lens.Lens' WorkspaceDirectory (Prelude.Maybe DefaultWorkspaceCreationProperties)
workspaceDirectory_workspaceCreationProperties :: Lens' WorkspaceDirectory (Maybe DefaultWorkspaceCreationProperties)
workspaceDirectory_workspaceCreationProperties = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceDirectory' {Maybe DefaultWorkspaceCreationProperties
workspaceCreationProperties :: Maybe DefaultWorkspaceCreationProperties
$sel:workspaceCreationProperties:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe DefaultWorkspaceCreationProperties
workspaceCreationProperties} -> Maybe DefaultWorkspaceCreationProperties
workspaceCreationProperties) (\s :: WorkspaceDirectory
s@WorkspaceDirectory' {} Maybe DefaultWorkspaceCreationProperties
a -> WorkspaceDirectory
s {$sel:workspaceCreationProperties:WorkspaceDirectory' :: Maybe DefaultWorkspaceCreationProperties
workspaceCreationProperties = Maybe DefaultWorkspaceCreationProperties
a} :: WorkspaceDirectory)

-- | The identifier of the security group that is assigned to new WorkSpaces.
workspaceDirectory_workspaceSecurityGroupId :: Lens.Lens' WorkspaceDirectory (Prelude.Maybe Prelude.Text)
workspaceDirectory_workspaceSecurityGroupId :: Lens' WorkspaceDirectory (Maybe Text)
workspaceDirectory_workspaceSecurityGroupId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceDirectory' {Maybe Text
workspaceSecurityGroupId :: Maybe Text
$sel:workspaceSecurityGroupId:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
workspaceSecurityGroupId} -> Maybe Text
workspaceSecurityGroupId) (\s :: WorkspaceDirectory
s@WorkspaceDirectory' {} Maybe Text
a -> WorkspaceDirectory
s {$sel:workspaceSecurityGroupId:WorkspaceDirectory' :: Maybe Text
workspaceSecurityGroupId = Maybe Text
a} :: WorkspaceDirectory)

-- | The identifiers of the IP access control groups associated with the
-- directory.
workspaceDirectory_ipGroupIds :: Lens.Lens' WorkspaceDirectory (Prelude.Maybe [Prelude.Text])
workspaceDirectory_ipGroupIds :: Lens' WorkspaceDirectory (Maybe [Text])
workspaceDirectory_ipGroupIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceDirectory' {Maybe [Text]
ipGroupIds :: Maybe [Text]
$sel:ipGroupIds:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe [Text]
ipGroupIds} -> Maybe [Text]
ipGroupIds) (\s :: WorkspaceDirectory
s@WorkspaceDirectory' {} Maybe [Text]
a -> WorkspaceDirectory
s {$sel:ipGroupIds:WorkspaceDirectory' :: Maybe [Text]
ipGroupIds = Maybe [Text]
a} :: WorkspaceDirectory) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance Data.FromJSON WorkspaceDirectory where
  parseJSON :: Value -> Parser WorkspaceDirectory
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"WorkspaceDirectory"
      ( \Object
x ->
          Maybe Text
-> Maybe CertificateBasedAuthProperties
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe WorkspaceDirectoryType
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe SamlProperties
-> Maybe SelfservicePermissions
-> Maybe WorkspaceDirectoryState
-> Maybe [Text]
-> Maybe Tenancy
-> Maybe WorkspaceAccessProperties
-> Maybe DefaultWorkspaceCreationProperties
-> Maybe Text
-> Maybe [Text]
-> WorkspaceDirectory
WorkspaceDirectory'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Alias")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CertificateBasedAuthProperties")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CustomerUserName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DirectoryId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DirectoryName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DirectoryType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DnsIpAddresses" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"IamRoleId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"RegistrationCode")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SamlProperties")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SelfservicePermissions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"State")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SubnetIds" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Tenancy")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"WorkspaceAccessProperties")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"WorkspaceCreationProperties")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"WorkspaceSecurityGroupId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ipGroupIds" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
      )

instance Prelude.Hashable WorkspaceDirectory where
  hashWithSalt :: Int -> WorkspaceDirectory -> Int
hashWithSalt Int
_salt WorkspaceDirectory' {Maybe [Text]
Maybe Text
Maybe CertificateBasedAuthProperties
Maybe DefaultWorkspaceCreationProperties
Maybe SamlProperties
Maybe SelfservicePermissions
Maybe Tenancy
Maybe WorkspaceAccessProperties
Maybe WorkspaceDirectoryState
Maybe WorkspaceDirectoryType
ipGroupIds :: Maybe [Text]
workspaceSecurityGroupId :: Maybe Text
workspaceCreationProperties :: Maybe DefaultWorkspaceCreationProperties
workspaceAccessProperties :: Maybe WorkspaceAccessProperties
tenancy :: Maybe Tenancy
subnetIds :: Maybe [Text]
state :: Maybe WorkspaceDirectoryState
selfservicePermissions :: Maybe SelfservicePermissions
samlProperties :: Maybe SamlProperties
registrationCode :: Maybe Text
iamRoleId :: Maybe Text
dnsIpAddresses :: Maybe [Text]
directoryType :: Maybe WorkspaceDirectoryType
directoryName :: Maybe Text
directoryId :: Maybe Text
customerUserName :: Maybe Text
certificateBasedAuthProperties :: Maybe CertificateBasedAuthProperties
alias :: Maybe Text
$sel:ipGroupIds:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe [Text]
$sel:workspaceSecurityGroupId:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
$sel:workspaceCreationProperties:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe DefaultWorkspaceCreationProperties
$sel:workspaceAccessProperties:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe WorkspaceAccessProperties
$sel:tenancy:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Tenancy
$sel:subnetIds:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe [Text]
$sel:state:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe WorkspaceDirectoryState
$sel:selfservicePermissions:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe SelfservicePermissions
$sel:samlProperties:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe SamlProperties
$sel:registrationCode:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
$sel:iamRoleId:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
$sel:dnsIpAddresses:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe [Text]
$sel:directoryType:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe WorkspaceDirectoryType
$sel:directoryName:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
$sel:directoryId:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
$sel:customerUserName:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
$sel:certificateBasedAuthProperties:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe CertificateBasedAuthProperties
$sel:alias:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
alias
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CertificateBasedAuthProperties
certificateBasedAuthProperties
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
customerUserName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
directoryId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
directoryName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WorkspaceDirectoryType
directoryType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
dnsIpAddresses
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
iamRoleId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
registrationCode
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SamlProperties
samlProperties
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SelfservicePermissions
selfservicePermissions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WorkspaceDirectoryState
state
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
subnetIds
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Tenancy
tenancy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WorkspaceAccessProperties
workspaceAccessProperties
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DefaultWorkspaceCreationProperties
workspaceCreationProperties
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
workspaceSecurityGroupId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
ipGroupIds

instance Prelude.NFData WorkspaceDirectory where
  rnf :: WorkspaceDirectory -> ()
rnf WorkspaceDirectory' {Maybe [Text]
Maybe Text
Maybe CertificateBasedAuthProperties
Maybe DefaultWorkspaceCreationProperties
Maybe SamlProperties
Maybe SelfservicePermissions
Maybe Tenancy
Maybe WorkspaceAccessProperties
Maybe WorkspaceDirectoryState
Maybe WorkspaceDirectoryType
ipGroupIds :: Maybe [Text]
workspaceSecurityGroupId :: Maybe Text
workspaceCreationProperties :: Maybe DefaultWorkspaceCreationProperties
workspaceAccessProperties :: Maybe WorkspaceAccessProperties
tenancy :: Maybe Tenancy
subnetIds :: Maybe [Text]
state :: Maybe WorkspaceDirectoryState
selfservicePermissions :: Maybe SelfservicePermissions
samlProperties :: Maybe SamlProperties
registrationCode :: Maybe Text
iamRoleId :: Maybe Text
dnsIpAddresses :: Maybe [Text]
directoryType :: Maybe WorkspaceDirectoryType
directoryName :: Maybe Text
directoryId :: Maybe Text
customerUserName :: Maybe Text
certificateBasedAuthProperties :: Maybe CertificateBasedAuthProperties
alias :: Maybe Text
$sel:ipGroupIds:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe [Text]
$sel:workspaceSecurityGroupId:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
$sel:workspaceCreationProperties:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe DefaultWorkspaceCreationProperties
$sel:workspaceAccessProperties:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe WorkspaceAccessProperties
$sel:tenancy:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Tenancy
$sel:subnetIds:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe [Text]
$sel:state:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe WorkspaceDirectoryState
$sel:selfservicePermissions:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe SelfservicePermissions
$sel:samlProperties:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe SamlProperties
$sel:registrationCode:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
$sel:iamRoleId:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
$sel:dnsIpAddresses:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe [Text]
$sel:directoryType:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe WorkspaceDirectoryType
$sel:directoryName:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
$sel:directoryId:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
$sel:customerUserName:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
$sel:certificateBasedAuthProperties:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe CertificateBasedAuthProperties
$sel:alias:WorkspaceDirectory' :: WorkspaceDirectory -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
alias
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CertificateBasedAuthProperties
certificateBasedAuthProperties
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
customerUserName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
directoryId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
directoryName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe WorkspaceDirectoryType
directoryType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
dnsIpAddresses
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
iamRoleId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
registrationCode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SamlProperties
samlProperties
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SelfservicePermissions
selfservicePermissions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe WorkspaceDirectoryState
state
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
subnetIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Tenancy
tenancy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe WorkspaceAccessProperties
workspaceAccessProperties
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe DefaultWorkspaceCreationProperties
workspaceCreationProperties
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
workspaceSecurityGroupId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
ipGroupIds