{-# 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.WorkspaceBundle
-- 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.WorkspaceBundle 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.BundleType
import Amazonka.WorkSpaces.Types.ComputeType
import Amazonka.WorkSpaces.Types.RootStorage
import Amazonka.WorkSpaces.Types.UserStorage
import Amazonka.WorkSpaces.Types.WorkspaceBundleState

-- | Describes a WorkSpace bundle.
--
-- /See:/ 'newWorkspaceBundle' smart constructor.
data WorkspaceBundle = WorkspaceBundle'
  { -- | The identifier of the bundle.
    WorkspaceBundle -> Maybe Text
bundleId :: Prelude.Maybe Prelude.Text,
    -- | The type of WorkSpace bundle.
    WorkspaceBundle -> Maybe BundleType
bundleType :: Prelude.Maybe BundleType,
    -- | The compute type of the bundle. For more information, see
    -- <http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles Amazon WorkSpaces Bundles>.
    WorkspaceBundle -> Maybe ComputeType
computeType :: Prelude.Maybe ComputeType,
    -- | The time when the bundle was created.
    WorkspaceBundle -> Maybe POSIX
creationTime :: Prelude.Maybe Data.POSIX,
    -- | The description of the bundle.
    WorkspaceBundle -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The identifier of the image that was used to create the bundle.
    WorkspaceBundle -> Maybe Text
imageId :: Prelude.Maybe Prelude.Text,
    -- | The last time that the bundle was updated.
    WorkspaceBundle -> Maybe POSIX
lastUpdatedTime :: Prelude.Maybe Data.POSIX,
    -- | The name of the bundle.
    WorkspaceBundle -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The owner of the bundle. This is the account identifier of the owner, or
    -- @AMAZON@ if the bundle is provided by Amazon Web Services.
    WorkspaceBundle -> Maybe Text
owner :: Prelude.Maybe Prelude.Text,
    -- | The size of the root volume.
    WorkspaceBundle -> Maybe RootStorage
rootStorage :: Prelude.Maybe RootStorage,
    -- | The state of the WorkSpace bundle.
    WorkspaceBundle -> Maybe WorkspaceBundleState
state :: Prelude.Maybe WorkspaceBundleState,
    -- | The size of the user volume.
    WorkspaceBundle -> Maybe UserStorage
userStorage :: Prelude.Maybe UserStorage
  }
  deriving (WorkspaceBundle -> WorkspaceBundle -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: WorkspaceBundle -> WorkspaceBundle -> Bool
$c/= :: WorkspaceBundle -> WorkspaceBundle -> Bool
== :: WorkspaceBundle -> WorkspaceBundle -> Bool
$c== :: WorkspaceBundle -> WorkspaceBundle -> Bool
Prelude.Eq, ReadPrec [WorkspaceBundle]
ReadPrec WorkspaceBundle
Int -> ReadS WorkspaceBundle
ReadS [WorkspaceBundle]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [WorkspaceBundle]
$creadListPrec :: ReadPrec [WorkspaceBundle]
readPrec :: ReadPrec WorkspaceBundle
$creadPrec :: ReadPrec WorkspaceBundle
readList :: ReadS [WorkspaceBundle]
$creadList :: ReadS [WorkspaceBundle]
readsPrec :: Int -> ReadS WorkspaceBundle
$creadsPrec :: Int -> ReadS WorkspaceBundle
Prelude.Read, Int -> WorkspaceBundle -> ShowS
[WorkspaceBundle] -> ShowS
WorkspaceBundle -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [WorkspaceBundle] -> ShowS
$cshowList :: [WorkspaceBundle] -> ShowS
show :: WorkspaceBundle -> String
$cshow :: WorkspaceBundle -> String
showsPrec :: Int -> WorkspaceBundle -> ShowS
$cshowsPrec :: Int -> WorkspaceBundle -> ShowS
Prelude.Show, forall x. Rep WorkspaceBundle x -> WorkspaceBundle
forall x. WorkspaceBundle -> Rep WorkspaceBundle x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep WorkspaceBundle x -> WorkspaceBundle
$cfrom :: forall x. WorkspaceBundle -> Rep WorkspaceBundle x
Prelude.Generic)

-- |
-- Create a value of 'WorkspaceBundle' 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:
--
-- 'bundleId', 'workspaceBundle_bundleId' - The identifier of the bundle.
--
-- 'bundleType', 'workspaceBundle_bundleType' - The type of WorkSpace bundle.
--
-- 'computeType', 'workspaceBundle_computeType' - The compute type of the bundle. For more information, see
-- <http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles Amazon WorkSpaces Bundles>.
--
-- 'creationTime', 'workspaceBundle_creationTime' - The time when the bundle was created.
--
-- 'description', 'workspaceBundle_description' - The description of the bundle.
--
-- 'imageId', 'workspaceBundle_imageId' - The identifier of the image that was used to create the bundle.
--
-- 'lastUpdatedTime', 'workspaceBundle_lastUpdatedTime' - The last time that the bundle was updated.
--
-- 'name', 'workspaceBundle_name' - The name of the bundle.
--
-- 'owner', 'workspaceBundle_owner' - The owner of the bundle. This is the account identifier of the owner, or
-- @AMAZON@ if the bundle is provided by Amazon Web Services.
--
-- 'rootStorage', 'workspaceBundle_rootStorage' - The size of the root volume.
--
-- 'state', 'workspaceBundle_state' - The state of the WorkSpace bundle.
--
-- 'userStorage', 'workspaceBundle_userStorage' - The size of the user volume.
newWorkspaceBundle ::
  WorkspaceBundle
newWorkspaceBundle :: WorkspaceBundle
newWorkspaceBundle =
  WorkspaceBundle'
    { $sel:bundleId:WorkspaceBundle' :: Maybe Text
bundleId = forall a. Maybe a
Prelude.Nothing,
      $sel:bundleType:WorkspaceBundle' :: Maybe BundleType
bundleType = forall a. Maybe a
Prelude.Nothing,
      $sel:computeType:WorkspaceBundle' :: Maybe ComputeType
computeType = forall a. Maybe a
Prelude.Nothing,
      $sel:creationTime:WorkspaceBundle' :: Maybe POSIX
creationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:description:WorkspaceBundle' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:imageId:WorkspaceBundle' :: Maybe Text
imageId = forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdatedTime:WorkspaceBundle' :: Maybe POSIX
lastUpdatedTime = forall a. Maybe a
Prelude.Nothing,
      $sel:name:WorkspaceBundle' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:owner:WorkspaceBundle' :: Maybe Text
owner = forall a. Maybe a
Prelude.Nothing,
      $sel:rootStorage:WorkspaceBundle' :: Maybe RootStorage
rootStorage = forall a. Maybe a
Prelude.Nothing,
      $sel:state:WorkspaceBundle' :: Maybe WorkspaceBundleState
state = forall a. Maybe a
Prelude.Nothing,
      $sel:userStorage:WorkspaceBundle' :: Maybe UserStorage
userStorage = forall a. Maybe a
Prelude.Nothing
    }

-- | The identifier of the bundle.
workspaceBundle_bundleId :: Lens.Lens' WorkspaceBundle (Prelude.Maybe Prelude.Text)
workspaceBundle_bundleId :: Lens' WorkspaceBundle (Maybe Text)
workspaceBundle_bundleId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceBundle' {Maybe Text
bundleId :: Maybe Text
$sel:bundleId:WorkspaceBundle' :: WorkspaceBundle -> Maybe Text
bundleId} -> Maybe Text
bundleId) (\s :: WorkspaceBundle
s@WorkspaceBundle' {} Maybe Text
a -> WorkspaceBundle
s {$sel:bundleId:WorkspaceBundle' :: Maybe Text
bundleId = Maybe Text
a} :: WorkspaceBundle)

-- | The type of WorkSpace bundle.
workspaceBundle_bundleType :: Lens.Lens' WorkspaceBundle (Prelude.Maybe BundleType)
workspaceBundle_bundleType :: Lens' WorkspaceBundle (Maybe BundleType)
workspaceBundle_bundleType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceBundle' {Maybe BundleType
bundleType :: Maybe BundleType
$sel:bundleType:WorkspaceBundle' :: WorkspaceBundle -> Maybe BundleType
bundleType} -> Maybe BundleType
bundleType) (\s :: WorkspaceBundle
s@WorkspaceBundle' {} Maybe BundleType
a -> WorkspaceBundle
s {$sel:bundleType:WorkspaceBundle' :: Maybe BundleType
bundleType = Maybe BundleType
a} :: WorkspaceBundle)

-- | The compute type of the bundle. For more information, see
-- <http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles Amazon WorkSpaces Bundles>.
workspaceBundle_computeType :: Lens.Lens' WorkspaceBundle (Prelude.Maybe ComputeType)
workspaceBundle_computeType :: Lens' WorkspaceBundle (Maybe ComputeType)
workspaceBundle_computeType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceBundle' {Maybe ComputeType
computeType :: Maybe ComputeType
$sel:computeType:WorkspaceBundle' :: WorkspaceBundle -> Maybe ComputeType
computeType} -> Maybe ComputeType
computeType) (\s :: WorkspaceBundle
s@WorkspaceBundle' {} Maybe ComputeType
a -> WorkspaceBundle
s {$sel:computeType:WorkspaceBundle' :: Maybe ComputeType
computeType = Maybe ComputeType
a} :: WorkspaceBundle)

-- | The time when the bundle was created.
workspaceBundle_creationTime :: Lens.Lens' WorkspaceBundle (Prelude.Maybe Prelude.UTCTime)
workspaceBundle_creationTime :: Lens' WorkspaceBundle (Maybe UTCTime)
workspaceBundle_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceBundle' {Maybe POSIX
creationTime :: Maybe POSIX
$sel:creationTime:WorkspaceBundle' :: WorkspaceBundle -> Maybe POSIX
creationTime} -> Maybe POSIX
creationTime) (\s :: WorkspaceBundle
s@WorkspaceBundle' {} Maybe POSIX
a -> WorkspaceBundle
s {$sel:creationTime:WorkspaceBundle' :: Maybe POSIX
creationTime = Maybe POSIX
a} :: WorkspaceBundle) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The description of the bundle.
workspaceBundle_description :: Lens.Lens' WorkspaceBundle (Prelude.Maybe Prelude.Text)
workspaceBundle_description :: Lens' WorkspaceBundle (Maybe Text)
workspaceBundle_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceBundle' {Maybe Text
description :: Maybe Text
$sel:description:WorkspaceBundle' :: WorkspaceBundle -> Maybe Text
description} -> Maybe Text
description) (\s :: WorkspaceBundle
s@WorkspaceBundle' {} Maybe Text
a -> WorkspaceBundle
s {$sel:description:WorkspaceBundle' :: Maybe Text
description = Maybe Text
a} :: WorkspaceBundle)

-- | The identifier of the image that was used to create the bundle.
workspaceBundle_imageId :: Lens.Lens' WorkspaceBundle (Prelude.Maybe Prelude.Text)
workspaceBundle_imageId :: Lens' WorkspaceBundle (Maybe Text)
workspaceBundle_imageId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceBundle' {Maybe Text
imageId :: Maybe Text
$sel:imageId:WorkspaceBundle' :: WorkspaceBundle -> Maybe Text
imageId} -> Maybe Text
imageId) (\s :: WorkspaceBundle
s@WorkspaceBundle' {} Maybe Text
a -> WorkspaceBundle
s {$sel:imageId:WorkspaceBundle' :: Maybe Text
imageId = Maybe Text
a} :: WorkspaceBundle)

-- | The last time that the bundle was updated.
workspaceBundle_lastUpdatedTime :: Lens.Lens' WorkspaceBundle (Prelude.Maybe Prelude.UTCTime)
workspaceBundle_lastUpdatedTime :: Lens' WorkspaceBundle (Maybe UTCTime)
workspaceBundle_lastUpdatedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceBundle' {Maybe POSIX
lastUpdatedTime :: Maybe POSIX
$sel:lastUpdatedTime:WorkspaceBundle' :: WorkspaceBundle -> Maybe POSIX
lastUpdatedTime} -> Maybe POSIX
lastUpdatedTime) (\s :: WorkspaceBundle
s@WorkspaceBundle' {} Maybe POSIX
a -> WorkspaceBundle
s {$sel:lastUpdatedTime:WorkspaceBundle' :: Maybe POSIX
lastUpdatedTime = Maybe POSIX
a} :: WorkspaceBundle) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

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

-- | The owner of the bundle. This is the account identifier of the owner, or
-- @AMAZON@ if the bundle is provided by Amazon Web Services.
workspaceBundle_owner :: Lens.Lens' WorkspaceBundle (Prelude.Maybe Prelude.Text)
workspaceBundle_owner :: Lens' WorkspaceBundle (Maybe Text)
workspaceBundle_owner = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceBundle' {Maybe Text
owner :: Maybe Text
$sel:owner:WorkspaceBundle' :: WorkspaceBundle -> Maybe Text
owner} -> Maybe Text
owner) (\s :: WorkspaceBundle
s@WorkspaceBundle' {} Maybe Text
a -> WorkspaceBundle
s {$sel:owner:WorkspaceBundle' :: Maybe Text
owner = Maybe Text
a} :: WorkspaceBundle)

-- | The size of the root volume.
workspaceBundle_rootStorage :: Lens.Lens' WorkspaceBundle (Prelude.Maybe RootStorage)
workspaceBundle_rootStorage :: Lens' WorkspaceBundle (Maybe RootStorage)
workspaceBundle_rootStorage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceBundle' {Maybe RootStorage
rootStorage :: Maybe RootStorage
$sel:rootStorage:WorkspaceBundle' :: WorkspaceBundle -> Maybe RootStorage
rootStorage} -> Maybe RootStorage
rootStorage) (\s :: WorkspaceBundle
s@WorkspaceBundle' {} Maybe RootStorage
a -> WorkspaceBundle
s {$sel:rootStorage:WorkspaceBundle' :: Maybe RootStorage
rootStorage = Maybe RootStorage
a} :: WorkspaceBundle)

-- | The state of the WorkSpace bundle.
workspaceBundle_state :: Lens.Lens' WorkspaceBundle (Prelude.Maybe WorkspaceBundleState)
workspaceBundle_state :: Lens' WorkspaceBundle (Maybe WorkspaceBundleState)
workspaceBundle_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceBundle' {Maybe WorkspaceBundleState
state :: Maybe WorkspaceBundleState
$sel:state:WorkspaceBundle' :: WorkspaceBundle -> Maybe WorkspaceBundleState
state} -> Maybe WorkspaceBundleState
state) (\s :: WorkspaceBundle
s@WorkspaceBundle' {} Maybe WorkspaceBundleState
a -> WorkspaceBundle
s {$sel:state:WorkspaceBundle' :: Maybe WorkspaceBundleState
state = Maybe WorkspaceBundleState
a} :: WorkspaceBundle)

-- | The size of the user volume.
workspaceBundle_userStorage :: Lens.Lens' WorkspaceBundle (Prelude.Maybe UserStorage)
workspaceBundle_userStorage :: Lens' WorkspaceBundle (Maybe UserStorage)
workspaceBundle_userStorage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceBundle' {Maybe UserStorage
userStorage :: Maybe UserStorage
$sel:userStorage:WorkspaceBundle' :: WorkspaceBundle -> Maybe UserStorage
userStorage} -> Maybe UserStorage
userStorage) (\s :: WorkspaceBundle
s@WorkspaceBundle' {} Maybe UserStorage
a -> WorkspaceBundle
s {$sel:userStorage:WorkspaceBundle' :: Maybe UserStorage
userStorage = Maybe UserStorage
a} :: WorkspaceBundle)

instance Data.FromJSON WorkspaceBundle where
  parseJSON :: Value -> Parser WorkspaceBundle
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"WorkspaceBundle"
      ( \Object
x ->
          Maybe Text
-> Maybe BundleType
-> Maybe ComputeType
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe RootStorage
-> Maybe WorkspaceBundleState
-> Maybe UserStorage
-> WorkspaceBundle
WorkspaceBundle'
            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
"BundleId")
            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
"BundleType")
            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
"ComputeType")
            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
"CreationTime")
            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
"Description")
            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
"ImageId")
            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
"LastUpdatedTime")
            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
"Name")
            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
"Owner")
            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
"RootStorage")
            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
"UserStorage")
      )

instance Prelude.Hashable WorkspaceBundle where
  hashWithSalt :: Int -> WorkspaceBundle -> Int
hashWithSalt Int
_salt WorkspaceBundle' {Maybe Text
Maybe POSIX
Maybe BundleType
Maybe ComputeType
Maybe RootStorage
Maybe UserStorage
Maybe WorkspaceBundleState
userStorage :: Maybe UserStorage
state :: Maybe WorkspaceBundleState
rootStorage :: Maybe RootStorage
owner :: Maybe Text
name :: Maybe Text
lastUpdatedTime :: Maybe POSIX
imageId :: Maybe Text
description :: Maybe Text
creationTime :: Maybe POSIX
computeType :: Maybe ComputeType
bundleType :: Maybe BundleType
bundleId :: Maybe Text
$sel:userStorage:WorkspaceBundle' :: WorkspaceBundle -> Maybe UserStorage
$sel:state:WorkspaceBundle' :: WorkspaceBundle -> Maybe WorkspaceBundleState
$sel:rootStorage:WorkspaceBundle' :: WorkspaceBundle -> Maybe RootStorage
$sel:owner:WorkspaceBundle' :: WorkspaceBundle -> Maybe Text
$sel:name:WorkspaceBundle' :: WorkspaceBundle -> Maybe Text
$sel:lastUpdatedTime:WorkspaceBundle' :: WorkspaceBundle -> Maybe POSIX
$sel:imageId:WorkspaceBundle' :: WorkspaceBundle -> Maybe Text
$sel:description:WorkspaceBundle' :: WorkspaceBundle -> Maybe Text
$sel:creationTime:WorkspaceBundle' :: WorkspaceBundle -> Maybe POSIX
$sel:computeType:WorkspaceBundle' :: WorkspaceBundle -> Maybe ComputeType
$sel:bundleType:WorkspaceBundle' :: WorkspaceBundle -> Maybe BundleType
$sel:bundleId:WorkspaceBundle' :: WorkspaceBundle -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
bundleId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BundleType
bundleType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ComputeType
computeType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
creationTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
imageId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastUpdatedTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
owner
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe RootStorage
rootStorage
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WorkspaceBundleState
state
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UserStorage
userStorage

instance Prelude.NFData WorkspaceBundle where
  rnf :: WorkspaceBundle -> ()
rnf WorkspaceBundle' {Maybe Text
Maybe POSIX
Maybe BundleType
Maybe ComputeType
Maybe RootStorage
Maybe UserStorage
Maybe WorkspaceBundleState
userStorage :: Maybe UserStorage
state :: Maybe WorkspaceBundleState
rootStorage :: Maybe RootStorage
owner :: Maybe Text
name :: Maybe Text
lastUpdatedTime :: Maybe POSIX
imageId :: Maybe Text
description :: Maybe Text
creationTime :: Maybe POSIX
computeType :: Maybe ComputeType
bundleType :: Maybe BundleType
bundleId :: Maybe Text
$sel:userStorage:WorkspaceBundle' :: WorkspaceBundle -> Maybe UserStorage
$sel:state:WorkspaceBundle' :: WorkspaceBundle -> Maybe WorkspaceBundleState
$sel:rootStorage:WorkspaceBundle' :: WorkspaceBundle -> Maybe RootStorage
$sel:owner:WorkspaceBundle' :: WorkspaceBundle -> Maybe Text
$sel:name:WorkspaceBundle' :: WorkspaceBundle -> Maybe Text
$sel:lastUpdatedTime:WorkspaceBundle' :: WorkspaceBundle -> Maybe POSIX
$sel:imageId:WorkspaceBundle' :: WorkspaceBundle -> Maybe Text
$sel:description:WorkspaceBundle' :: WorkspaceBundle -> Maybe Text
$sel:creationTime:WorkspaceBundle' :: WorkspaceBundle -> Maybe POSIX
$sel:computeType:WorkspaceBundle' :: WorkspaceBundle -> Maybe ComputeType
$sel:bundleType:WorkspaceBundle' :: WorkspaceBundle -> Maybe BundleType
$sel:bundleId:WorkspaceBundle' :: WorkspaceBundle -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
bundleId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe BundleType
bundleType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ComputeType
computeType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
imageId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastUpdatedTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
owner
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RootStorage
rootStorage
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe WorkspaceBundleState
state
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UserStorage
userStorage