{-# 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.DefaultWorkspaceCreationProperties
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.WorkSpaces.Types.DefaultWorkspaceCreationProperties where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude

-- | Describes the default values that are used to create WorkSpaces. For
-- more information, see
-- <https://docs.aws.amazon.com/workspaces/latest/adminguide/update-directory-details.html Update Directory Details for Your WorkSpaces>.
--
-- /See:/ 'newDefaultWorkspaceCreationProperties' smart constructor.
data DefaultWorkspaceCreationProperties = DefaultWorkspaceCreationProperties'
  { -- | The identifier of the default security group to apply to WorkSpaces when
    -- they are created. For more information, see
    -- <https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-security-groups.html Security Groups for Your WorkSpaces>.
    DefaultWorkspaceCreationProperties -> Maybe Text
customSecurityGroupId :: Prelude.Maybe Prelude.Text,
    -- | Specifies whether WorkSpace users are local administrators on their
    -- WorkSpaces.
    DefaultWorkspaceCreationProperties -> Maybe Bool
userEnabledAsLocalAdministrator :: Prelude.Maybe Prelude.Bool,
    -- | Specifies whether the directory is enabled for Amazon WorkDocs.
    DefaultWorkspaceCreationProperties -> Maybe Bool
enableWorkDocs :: Prelude.Maybe Prelude.Bool,
    -- | Specifies whether maintenance mode is enabled for WorkSpaces. For more
    -- information, see
    -- <https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html WorkSpace Maintenance>.
    DefaultWorkspaceCreationProperties -> Maybe Bool
enableMaintenanceMode :: Prelude.Maybe Prelude.Bool,
    -- | Specifies whether to automatically assign an Elastic public IP address
    -- to WorkSpaces in this directory by default. If enabled, the Elastic
    -- public IP address allows outbound internet access from your WorkSpaces
    -- when you’re using an internet gateway in the Amazon VPC in which your
    -- WorkSpaces are located. If you\'re using a Network Address Translation
    -- (NAT) gateway for outbound internet access from your VPC, or if your
    -- WorkSpaces are in public subnets and you manually assign them Elastic IP
    -- addresses, you should disable this setting. This setting applies to new
    -- WorkSpaces that you launch or to existing WorkSpaces that you rebuild.
    -- For more information, see
    -- <https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-vpc.html Configure a VPC for Amazon WorkSpaces>.
    DefaultWorkspaceCreationProperties -> Maybe Bool
enableInternetAccess :: Prelude.Maybe Prelude.Bool,
    -- | The organizational unit (OU) in the directory for the WorkSpace machine
    -- accounts.
    DefaultWorkspaceCreationProperties -> Maybe Text
defaultOu :: Prelude.Maybe Prelude.Text
  }
  deriving (DefaultWorkspaceCreationProperties
-> DefaultWorkspaceCreationProperties -> Bool
(DefaultWorkspaceCreationProperties
 -> DefaultWorkspaceCreationProperties -> Bool)
-> (DefaultWorkspaceCreationProperties
    -> DefaultWorkspaceCreationProperties -> Bool)
-> Eq DefaultWorkspaceCreationProperties
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DefaultWorkspaceCreationProperties
-> DefaultWorkspaceCreationProperties -> Bool
$c/= :: DefaultWorkspaceCreationProperties
-> DefaultWorkspaceCreationProperties -> Bool
== :: DefaultWorkspaceCreationProperties
-> DefaultWorkspaceCreationProperties -> Bool
$c== :: DefaultWorkspaceCreationProperties
-> DefaultWorkspaceCreationProperties -> Bool
Prelude.Eq, ReadPrec [DefaultWorkspaceCreationProperties]
ReadPrec DefaultWorkspaceCreationProperties
Int -> ReadS DefaultWorkspaceCreationProperties
ReadS [DefaultWorkspaceCreationProperties]
(Int -> ReadS DefaultWorkspaceCreationProperties)
-> ReadS [DefaultWorkspaceCreationProperties]
-> ReadPrec DefaultWorkspaceCreationProperties
-> ReadPrec [DefaultWorkspaceCreationProperties]
-> Read DefaultWorkspaceCreationProperties
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DefaultWorkspaceCreationProperties]
$creadListPrec :: ReadPrec [DefaultWorkspaceCreationProperties]
readPrec :: ReadPrec DefaultWorkspaceCreationProperties
$creadPrec :: ReadPrec DefaultWorkspaceCreationProperties
readList :: ReadS [DefaultWorkspaceCreationProperties]
$creadList :: ReadS [DefaultWorkspaceCreationProperties]
readsPrec :: Int -> ReadS DefaultWorkspaceCreationProperties
$creadsPrec :: Int -> ReadS DefaultWorkspaceCreationProperties
Prelude.Read, Int -> DefaultWorkspaceCreationProperties -> ShowS
[DefaultWorkspaceCreationProperties] -> ShowS
DefaultWorkspaceCreationProperties -> String
(Int -> DefaultWorkspaceCreationProperties -> ShowS)
-> (DefaultWorkspaceCreationProperties -> String)
-> ([DefaultWorkspaceCreationProperties] -> ShowS)
-> Show DefaultWorkspaceCreationProperties
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DefaultWorkspaceCreationProperties] -> ShowS
$cshowList :: [DefaultWorkspaceCreationProperties] -> ShowS
show :: DefaultWorkspaceCreationProperties -> String
$cshow :: DefaultWorkspaceCreationProperties -> String
showsPrec :: Int -> DefaultWorkspaceCreationProperties -> ShowS
$cshowsPrec :: Int -> DefaultWorkspaceCreationProperties -> ShowS
Prelude.Show, (forall x.
 DefaultWorkspaceCreationProperties
 -> Rep DefaultWorkspaceCreationProperties x)
-> (forall x.
    Rep DefaultWorkspaceCreationProperties x
    -> DefaultWorkspaceCreationProperties)
-> Generic DefaultWorkspaceCreationProperties
forall x.
Rep DefaultWorkspaceCreationProperties x
-> DefaultWorkspaceCreationProperties
forall x.
DefaultWorkspaceCreationProperties
-> Rep DefaultWorkspaceCreationProperties x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DefaultWorkspaceCreationProperties x
-> DefaultWorkspaceCreationProperties
$cfrom :: forall x.
DefaultWorkspaceCreationProperties
-> Rep DefaultWorkspaceCreationProperties x
Prelude.Generic)

-- |
-- Create a value of 'DefaultWorkspaceCreationProperties' 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:
--
-- 'customSecurityGroupId', 'defaultWorkspaceCreationProperties_customSecurityGroupId' - The identifier of the default security group to apply to WorkSpaces when
-- they are created. For more information, see
-- <https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-security-groups.html Security Groups for Your WorkSpaces>.
--
-- 'userEnabledAsLocalAdministrator', 'defaultWorkspaceCreationProperties_userEnabledAsLocalAdministrator' - Specifies whether WorkSpace users are local administrators on their
-- WorkSpaces.
--
-- 'enableWorkDocs', 'defaultWorkspaceCreationProperties_enableWorkDocs' - Specifies whether the directory is enabled for Amazon WorkDocs.
--
-- 'enableMaintenanceMode', 'defaultWorkspaceCreationProperties_enableMaintenanceMode' - Specifies whether maintenance mode is enabled for WorkSpaces. For more
-- information, see
-- <https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html WorkSpace Maintenance>.
--
-- 'enableInternetAccess', 'defaultWorkspaceCreationProperties_enableInternetAccess' - Specifies whether to automatically assign an Elastic public IP address
-- to WorkSpaces in this directory by default. If enabled, the Elastic
-- public IP address allows outbound internet access from your WorkSpaces
-- when you’re using an internet gateway in the Amazon VPC in which your
-- WorkSpaces are located. If you\'re using a Network Address Translation
-- (NAT) gateway for outbound internet access from your VPC, or if your
-- WorkSpaces are in public subnets and you manually assign them Elastic IP
-- addresses, you should disable this setting. This setting applies to new
-- WorkSpaces that you launch or to existing WorkSpaces that you rebuild.
-- For more information, see
-- <https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-vpc.html Configure a VPC for Amazon WorkSpaces>.
--
-- 'defaultOu', 'defaultWorkspaceCreationProperties_defaultOu' - The organizational unit (OU) in the directory for the WorkSpace machine
-- accounts.
newDefaultWorkspaceCreationProperties ::
  DefaultWorkspaceCreationProperties
newDefaultWorkspaceCreationProperties :: DefaultWorkspaceCreationProperties
newDefaultWorkspaceCreationProperties =
  DefaultWorkspaceCreationProperties' :: Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> DefaultWorkspaceCreationProperties
DefaultWorkspaceCreationProperties'
    { $sel:customSecurityGroupId:DefaultWorkspaceCreationProperties' :: Maybe Text
customSecurityGroupId =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:userEnabledAsLocalAdministrator:DefaultWorkspaceCreationProperties' :: Maybe Bool
userEnabledAsLocalAdministrator =
        Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:enableWorkDocs:DefaultWorkspaceCreationProperties' :: Maybe Bool
enableWorkDocs = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:enableMaintenanceMode:DefaultWorkspaceCreationProperties' :: Maybe Bool
enableMaintenanceMode = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:enableInternetAccess:DefaultWorkspaceCreationProperties' :: Maybe Bool
enableInternetAccess = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:defaultOu:DefaultWorkspaceCreationProperties' :: Maybe Text
defaultOu = Maybe Text
forall a. Maybe a
Prelude.Nothing
    }

-- | The identifier of the default security group to apply to WorkSpaces when
-- they are created. For more information, see
-- <https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-security-groups.html Security Groups for Your WorkSpaces>.
defaultWorkspaceCreationProperties_customSecurityGroupId :: Lens.Lens' DefaultWorkspaceCreationProperties (Prelude.Maybe Prelude.Text)
defaultWorkspaceCreationProperties_customSecurityGroupId :: (Maybe Text -> f (Maybe Text))
-> DefaultWorkspaceCreationProperties
-> f DefaultWorkspaceCreationProperties
defaultWorkspaceCreationProperties_customSecurityGroupId = (DefaultWorkspaceCreationProperties -> Maybe Text)
-> (DefaultWorkspaceCreationProperties
    -> Maybe Text -> DefaultWorkspaceCreationProperties)
-> Lens
     DefaultWorkspaceCreationProperties
     DefaultWorkspaceCreationProperties
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DefaultWorkspaceCreationProperties' {Maybe Text
customSecurityGroupId :: Maybe Text
$sel:customSecurityGroupId:DefaultWorkspaceCreationProperties' :: DefaultWorkspaceCreationProperties -> Maybe Text
customSecurityGroupId} -> Maybe Text
customSecurityGroupId) (\s :: DefaultWorkspaceCreationProperties
s@DefaultWorkspaceCreationProperties' {} Maybe Text
a -> DefaultWorkspaceCreationProperties
s {$sel:customSecurityGroupId:DefaultWorkspaceCreationProperties' :: Maybe Text
customSecurityGroupId = Maybe Text
a} :: DefaultWorkspaceCreationProperties)

-- | Specifies whether WorkSpace users are local administrators on their
-- WorkSpaces.
defaultWorkspaceCreationProperties_userEnabledAsLocalAdministrator :: Lens.Lens' DefaultWorkspaceCreationProperties (Prelude.Maybe Prelude.Bool)
defaultWorkspaceCreationProperties_userEnabledAsLocalAdministrator :: (Maybe Bool -> f (Maybe Bool))
-> DefaultWorkspaceCreationProperties
-> f DefaultWorkspaceCreationProperties
defaultWorkspaceCreationProperties_userEnabledAsLocalAdministrator = (DefaultWorkspaceCreationProperties -> Maybe Bool)
-> (DefaultWorkspaceCreationProperties
    -> Maybe Bool -> DefaultWorkspaceCreationProperties)
-> Lens
     DefaultWorkspaceCreationProperties
     DefaultWorkspaceCreationProperties
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DefaultWorkspaceCreationProperties' {Maybe Bool
userEnabledAsLocalAdministrator :: Maybe Bool
$sel:userEnabledAsLocalAdministrator:DefaultWorkspaceCreationProperties' :: DefaultWorkspaceCreationProperties -> Maybe Bool
userEnabledAsLocalAdministrator} -> Maybe Bool
userEnabledAsLocalAdministrator) (\s :: DefaultWorkspaceCreationProperties
s@DefaultWorkspaceCreationProperties' {} Maybe Bool
a -> DefaultWorkspaceCreationProperties
s {$sel:userEnabledAsLocalAdministrator:DefaultWorkspaceCreationProperties' :: Maybe Bool
userEnabledAsLocalAdministrator = Maybe Bool
a} :: DefaultWorkspaceCreationProperties)

-- | Specifies whether the directory is enabled for Amazon WorkDocs.
defaultWorkspaceCreationProperties_enableWorkDocs :: Lens.Lens' DefaultWorkspaceCreationProperties (Prelude.Maybe Prelude.Bool)
defaultWorkspaceCreationProperties_enableWorkDocs :: (Maybe Bool -> f (Maybe Bool))
-> DefaultWorkspaceCreationProperties
-> f DefaultWorkspaceCreationProperties
defaultWorkspaceCreationProperties_enableWorkDocs = (DefaultWorkspaceCreationProperties -> Maybe Bool)
-> (DefaultWorkspaceCreationProperties
    -> Maybe Bool -> DefaultWorkspaceCreationProperties)
-> Lens
     DefaultWorkspaceCreationProperties
     DefaultWorkspaceCreationProperties
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DefaultWorkspaceCreationProperties' {Maybe Bool
enableWorkDocs :: Maybe Bool
$sel:enableWorkDocs:DefaultWorkspaceCreationProperties' :: DefaultWorkspaceCreationProperties -> Maybe Bool
enableWorkDocs} -> Maybe Bool
enableWorkDocs) (\s :: DefaultWorkspaceCreationProperties
s@DefaultWorkspaceCreationProperties' {} Maybe Bool
a -> DefaultWorkspaceCreationProperties
s {$sel:enableWorkDocs:DefaultWorkspaceCreationProperties' :: Maybe Bool
enableWorkDocs = Maybe Bool
a} :: DefaultWorkspaceCreationProperties)

-- | Specifies whether maintenance mode is enabled for WorkSpaces. For more
-- information, see
-- <https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html WorkSpace Maintenance>.
defaultWorkspaceCreationProperties_enableMaintenanceMode :: Lens.Lens' DefaultWorkspaceCreationProperties (Prelude.Maybe Prelude.Bool)
defaultWorkspaceCreationProperties_enableMaintenanceMode :: (Maybe Bool -> f (Maybe Bool))
-> DefaultWorkspaceCreationProperties
-> f DefaultWorkspaceCreationProperties
defaultWorkspaceCreationProperties_enableMaintenanceMode = (DefaultWorkspaceCreationProperties -> Maybe Bool)
-> (DefaultWorkspaceCreationProperties
    -> Maybe Bool -> DefaultWorkspaceCreationProperties)
-> Lens
     DefaultWorkspaceCreationProperties
     DefaultWorkspaceCreationProperties
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DefaultWorkspaceCreationProperties' {Maybe Bool
enableMaintenanceMode :: Maybe Bool
$sel:enableMaintenanceMode:DefaultWorkspaceCreationProperties' :: DefaultWorkspaceCreationProperties -> Maybe Bool
enableMaintenanceMode} -> Maybe Bool
enableMaintenanceMode) (\s :: DefaultWorkspaceCreationProperties
s@DefaultWorkspaceCreationProperties' {} Maybe Bool
a -> DefaultWorkspaceCreationProperties
s {$sel:enableMaintenanceMode:DefaultWorkspaceCreationProperties' :: Maybe Bool
enableMaintenanceMode = Maybe Bool
a} :: DefaultWorkspaceCreationProperties)

-- | Specifies whether to automatically assign an Elastic public IP address
-- to WorkSpaces in this directory by default. If enabled, the Elastic
-- public IP address allows outbound internet access from your WorkSpaces
-- when you’re using an internet gateway in the Amazon VPC in which your
-- WorkSpaces are located. If you\'re using a Network Address Translation
-- (NAT) gateway for outbound internet access from your VPC, or if your
-- WorkSpaces are in public subnets and you manually assign them Elastic IP
-- addresses, you should disable this setting. This setting applies to new
-- WorkSpaces that you launch or to existing WorkSpaces that you rebuild.
-- For more information, see
-- <https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-vpc.html Configure a VPC for Amazon WorkSpaces>.
defaultWorkspaceCreationProperties_enableInternetAccess :: Lens.Lens' DefaultWorkspaceCreationProperties (Prelude.Maybe Prelude.Bool)
defaultWorkspaceCreationProperties_enableInternetAccess :: (Maybe Bool -> f (Maybe Bool))
-> DefaultWorkspaceCreationProperties
-> f DefaultWorkspaceCreationProperties
defaultWorkspaceCreationProperties_enableInternetAccess = (DefaultWorkspaceCreationProperties -> Maybe Bool)
-> (DefaultWorkspaceCreationProperties
    -> Maybe Bool -> DefaultWorkspaceCreationProperties)
-> Lens
     DefaultWorkspaceCreationProperties
     DefaultWorkspaceCreationProperties
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DefaultWorkspaceCreationProperties' {Maybe Bool
enableInternetAccess :: Maybe Bool
$sel:enableInternetAccess:DefaultWorkspaceCreationProperties' :: DefaultWorkspaceCreationProperties -> Maybe Bool
enableInternetAccess} -> Maybe Bool
enableInternetAccess) (\s :: DefaultWorkspaceCreationProperties
s@DefaultWorkspaceCreationProperties' {} Maybe Bool
a -> DefaultWorkspaceCreationProperties
s {$sel:enableInternetAccess:DefaultWorkspaceCreationProperties' :: Maybe Bool
enableInternetAccess = Maybe Bool
a} :: DefaultWorkspaceCreationProperties)

-- | The organizational unit (OU) in the directory for the WorkSpace machine
-- accounts.
defaultWorkspaceCreationProperties_defaultOu :: Lens.Lens' DefaultWorkspaceCreationProperties (Prelude.Maybe Prelude.Text)
defaultWorkspaceCreationProperties_defaultOu :: (Maybe Text -> f (Maybe Text))
-> DefaultWorkspaceCreationProperties
-> f DefaultWorkspaceCreationProperties
defaultWorkspaceCreationProperties_defaultOu = (DefaultWorkspaceCreationProperties -> Maybe Text)
-> (DefaultWorkspaceCreationProperties
    -> Maybe Text -> DefaultWorkspaceCreationProperties)
-> Lens
     DefaultWorkspaceCreationProperties
     DefaultWorkspaceCreationProperties
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DefaultWorkspaceCreationProperties' {Maybe Text
defaultOu :: Maybe Text
$sel:defaultOu:DefaultWorkspaceCreationProperties' :: DefaultWorkspaceCreationProperties -> Maybe Text
defaultOu} -> Maybe Text
defaultOu) (\s :: DefaultWorkspaceCreationProperties
s@DefaultWorkspaceCreationProperties' {} Maybe Text
a -> DefaultWorkspaceCreationProperties
s {$sel:defaultOu:DefaultWorkspaceCreationProperties' :: Maybe Text
defaultOu = Maybe Text
a} :: DefaultWorkspaceCreationProperties)

instance
  Core.FromJSON
    DefaultWorkspaceCreationProperties
  where
  parseJSON :: Value -> Parser DefaultWorkspaceCreationProperties
parseJSON =
    String
-> (Object -> Parser DefaultWorkspaceCreationProperties)
-> Value
-> Parser DefaultWorkspaceCreationProperties
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"DefaultWorkspaceCreationProperties"
      ( \Object
x ->
          Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> DefaultWorkspaceCreationProperties
DefaultWorkspaceCreationProperties'
            (Maybe Text
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Text
 -> DefaultWorkspaceCreationProperties)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> DefaultWorkspaceCreationProperties)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"CustomSecurityGroupId")
            Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> DefaultWorkspaceCreationProperties)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> DefaultWorkspaceCreationProperties)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"UserEnabledAsLocalAdministrator")
            Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> DefaultWorkspaceCreationProperties)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Bool -> Maybe Text -> DefaultWorkspaceCreationProperties)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"EnableWorkDocs")
            Parser
  (Maybe Bool
   -> Maybe Bool -> Maybe Text -> DefaultWorkspaceCreationProperties)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool -> Maybe Text -> DefaultWorkspaceCreationProperties)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"EnableMaintenanceMode")
            Parser
  (Maybe Bool -> Maybe Text -> DefaultWorkspaceCreationProperties)
-> Parser (Maybe Bool)
-> Parser (Maybe Text -> DefaultWorkspaceCreationProperties)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"EnableInternetAccess")
            Parser (Maybe Text -> DefaultWorkspaceCreationProperties)
-> Parser (Maybe Text) -> Parser DefaultWorkspaceCreationProperties
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DefaultOu")
      )

instance
  Prelude.Hashable
    DefaultWorkspaceCreationProperties

instance
  Prelude.NFData
    DefaultWorkspaceCreationProperties