{-# 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.WorkspaceImage
-- 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.WorkspaceImage 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.OperatingSystem
import Amazonka.WorkSpaces.Types.UpdateResult
import Amazonka.WorkSpaces.Types.WorkspaceImageRequiredTenancy
import Amazonka.WorkSpaces.Types.WorkspaceImageState

-- | Describes a WorkSpace image.
--
-- /See:/ 'newWorkspaceImage' smart constructor.
data WorkspaceImage = WorkspaceImage'
  { -- | The date when the image was created. If the image has been shared, the
    -- Amazon Web Services account that the image has been shared with sees the
    -- original creation date of the image.
    WorkspaceImage -> Maybe POSIX
created :: Prelude.Maybe Data.POSIX,
    -- | The description of the image.
    WorkspaceImage -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The error code that is returned for the image.
    WorkspaceImage -> Maybe Text
errorCode :: Prelude.Maybe Prelude.Text,
    -- | The text of the error message that is returned for the image.
    WorkspaceImage -> Maybe Text
errorMessage :: Prelude.Maybe Prelude.Text,
    -- | The identifier of the image.
    WorkspaceImage -> Maybe Text
imageId :: Prelude.Maybe Prelude.Text,
    -- | The name of the image.
    WorkspaceImage -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The operating system that the image is running.
    WorkspaceImage -> Maybe OperatingSystem
operatingSystem :: Prelude.Maybe OperatingSystem,
    -- | The identifier of the Amazon Web Services account that owns the image.
    WorkspaceImage -> Maybe Text
ownerAccountId :: Prelude.Maybe Prelude.Text,
    -- | Specifies whether the image is running on dedicated hardware. When Bring
    -- Your Own License (BYOL) is enabled, this value is 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>.
    WorkspaceImage -> Maybe WorkspaceImageRequiredTenancy
requiredTenancy :: Prelude.Maybe WorkspaceImageRequiredTenancy,
    -- | The status of the image.
    WorkspaceImage -> Maybe WorkspaceImageState
state :: Prelude.Maybe WorkspaceImageState,
    -- | The updates (if any) that are available for the specified image.
    WorkspaceImage -> Maybe UpdateResult
updates :: Prelude.Maybe UpdateResult
  }
  deriving (WorkspaceImage -> WorkspaceImage -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: WorkspaceImage -> WorkspaceImage -> Bool
$c/= :: WorkspaceImage -> WorkspaceImage -> Bool
== :: WorkspaceImage -> WorkspaceImage -> Bool
$c== :: WorkspaceImage -> WorkspaceImage -> Bool
Prelude.Eq, ReadPrec [WorkspaceImage]
ReadPrec WorkspaceImage
Int -> ReadS WorkspaceImage
ReadS [WorkspaceImage]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [WorkspaceImage]
$creadListPrec :: ReadPrec [WorkspaceImage]
readPrec :: ReadPrec WorkspaceImage
$creadPrec :: ReadPrec WorkspaceImage
readList :: ReadS [WorkspaceImage]
$creadList :: ReadS [WorkspaceImage]
readsPrec :: Int -> ReadS WorkspaceImage
$creadsPrec :: Int -> ReadS WorkspaceImage
Prelude.Read, Int -> WorkspaceImage -> ShowS
[WorkspaceImage] -> ShowS
WorkspaceImage -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [WorkspaceImage] -> ShowS
$cshowList :: [WorkspaceImage] -> ShowS
show :: WorkspaceImage -> String
$cshow :: WorkspaceImage -> String
showsPrec :: Int -> WorkspaceImage -> ShowS
$cshowsPrec :: Int -> WorkspaceImage -> ShowS
Prelude.Show, forall x. Rep WorkspaceImage x -> WorkspaceImage
forall x. WorkspaceImage -> Rep WorkspaceImage x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep WorkspaceImage x -> WorkspaceImage
$cfrom :: forall x. WorkspaceImage -> Rep WorkspaceImage x
Prelude.Generic)

-- |
-- Create a value of 'WorkspaceImage' 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:
--
-- 'created', 'workspaceImage_created' - The date when the image was created. If the image has been shared, the
-- Amazon Web Services account that the image has been shared with sees the
-- original creation date of the image.
--
-- 'description', 'workspaceImage_description' - The description of the image.
--
-- 'errorCode', 'workspaceImage_errorCode' - The error code that is returned for the image.
--
-- 'errorMessage', 'workspaceImage_errorMessage' - The text of the error message that is returned for the image.
--
-- 'imageId', 'workspaceImage_imageId' - The identifier of the image.
--
-- 'name', 'workspaceImage_name' - The name of the image.
--
-- 'operatingSystem', 'workspaceImage_operatingSystem' - The operating system that the image is running.
--
-- 'ownerAccountId', 'workspaceImage_ownerAccountId' - The identifier of the Amazon Web Services account that owns the image.
--
-- 'requiredTenancy', 'workspaceImage_requiredTenancy' - Specifies whether the image is running on dedicated hardware. When Bring
-- Your Own License (BYOL) is enabled, this value is 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>.
--
-- 'state', 'workspaceImage_state' - The status of the image.
--
-- 'updates', 'workspaceImage_updates' - The updates (if any) that are available for the specified image.
newWorkspaceImage ::
  WorkspaceImage
newWorkspaceImage :: WorkspaceImage
newWorkspaceImage =
  WorkspaceImage'
    { $sel:created:WorkspaceImage' :: Maybe POSIX
created = forall a. Maybe a
Prelude.Nothing,
      $sel:description:WorkspaceImage' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:errorCode:WorkspaceImage' :: Maybe Text
errorCode = forall a. Maybe a
Prelude.Nothing,
      $sel:errorMessage:WorkspaceImage' :: Maybe Text
errorMessage = forall a. Maybe a
Prelude.Nothing,
      $sel:imageId:WorkspaceImage' :: Maybe Text
imageId = forall a. Maybe a
Prelude.Nothing,
      $sel:name:WorkspaceImage' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:operatingSystem:WorkspaceImage' :: Maybe OperatingSystem
operatingSystem = forall a. Maybe a
Prelude.Nothing,
      $sel:ownerAccountId:WorkspaceImage' :: Maybe Text
ownerAccountId = forall a. Maybe a
Prelude.Nothing,
      $sel:requiredTenancy:WorkspaceImage' :: Maybe WorkspaceImageRequiredTenancy
requiredTenancy = forall a. Maybe a
Prelude.Nothing,
      $sel:state:WorkspaceImage' :: Maybe WorkspaceImageState
state = forall a. Maybe a
Prelude.Nothing,
      $sel:updates:WorkspaceImage' :: Maybe UpdateResult
updates = forall a. Maybe a
Prelude.Nothing
    }

-- | The date when the image was created. If the image has been shared, the
-- Amazon Web Services account that the image has been shared with sees the
-- original creation date of the image.
workspaceImage_created :: Lens.Lens' WorkspaceImage (Prelude.Maybe Prelude.UTCTime)
workspaceImage_created :: Lens' WorkspaceImage (Maybe UTCTime)
workspaceImage_created = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceImage' {Maybe POSIX
created :: Maybe POSIX
$sel:created:WorkspaceImage' :: WorkspaceImage -> Maybe POSIX
created} -> Maybe POSIX
created) (\s :: WorkspaceImage
s@WorkspaceImage' {} Maybe POSIX
a -> WorkspaceImage
s {$sel:created:WorkspaceImage' :: Maybe POSIX
created = Maybe POSIX
a} :: WorkspaceImage) 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 image.
workspaceImage_description :: Lens.Lens' WorkspaceImage (Prelude.Maybe Prelude.Text)
workspaceImage_description :: Lens' WorkspaceImage (Maybe Text)
workspaceImage_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceImage' {Maybe Text
description :: Maybe Text
$sel:description:WorkspaceImage' :: WorkspaceImage -> Maybe Text
description} -> Maybe Text
description) (\s :: WorkspaceImage
s@WorkspaceImage' {} Maybe Text
a -> WorkspaceImage
s {$sel:description:WorkspaceImage' :: Maybe Text
description = Maybe Text
a} :: WorkspaceImage)

-- | The error code that is returned for the image.
workspaceImage_errorCode :: Lens.Lens' WorkspaceImage (Prelude.Maybe Prelude.Text)
workspaceImage_errorCode :: Lens' WorkspaceImage (Maybe Text)
workspaceImage_errorCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceImage' {Maybe Text
errorCode :: Maybe Text
$sel:errorCode:WorkspaceImage' :: WorkspaceImage -> Maybe Text
errorCode} -> Maybe Text
errorCode) (\s :: WorkspaceImage
s@WorkspaceImage' {} Maybe Text
a -> WorkspaceImage
s {$sel:errorCode:WorkspaceImage' :: Maybe Text
errorCode = Maybe Text
a} :: WorkspaceImage)

-- | The text of the error message that is returned for the image.
workspaceImage_errorMessage :: Lens.Lens' WorkspaceImage (Prelude.Maybe Prelude.Text)
workspaceImage_errorMessage :: Lens' WorkspaceImage (Maybe Text)
workspaceImage_errorMessage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceImage' {Maybe Text
errorMessage :: Maybe Text
$sel:errorMessage:WorkspaceImage' :: WorkspaceImage -> Maybe Text
errorMessage} -> Maybe Text
errorMessage) (\s :: WorkspaceImage
s@WorkspaceImage' {} Maybe Text
a -> WorkspaceImage
s {$sel:errorMessage:WorkspaceImage' :: Maybe Text
errorMessage = Maybe Text
a} :: WorkspaceImage)

-- | The identifier of the image.
workspaceImage_imageId :: Lens.Lens' WorkspaceImage (Prelude.Maybe Prelude.Text)
workspaceImage_imageId :: Lens' WorkspaceImage (Maybe Text)
workspaceImage_imageId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceImage' {Maybe Text
imageId :: Maybe Text
$sel:imageId:WorkspaceImage' :: WorkspaceImage -> Maybe Text
imageId} -> Maybe Text
imageId) (\s :: WorkspaceImage
s@WorkspaceImage' {} Maybe Text
a -> WorkspaceImage
s {$sel:imageId:WorkspaceImage' :: Maybe Text
imageId = Maybe Text
a} :: WorkspaceImage)

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

-- | The operating system that the image is running.
workspaceImage_operatingSystem :: Lens.Lens' WorkspaceImage (Prelude.Maybe OperatingSystem)
workspaceImage_operatingSystem :: Lens' WorkspaceImage (Maybe OperatingSystem)
workspaceImage_operatingSystem = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceImage' {Maybe OperatingSystem
operatingSystem :: Maybe OperatingSystem
$sel:operatingSystem:WorkspaceImage' :: WorkspaceImage -> Maybe OperatingSystem
operatingSystem} -> Maybe OperatingSystem
operatingSystem) (\s :: WorkspaceImage
s@WorkspaceImage' {} Maybe OperatingSystem
a -> WorkspaceImage
s {$sel:operatingSystem:WorkspaceImage' :: Maybe OperatingSystem
operatingSystem = Maybe OperatingSystem
a} :: WorkspaceImage)

-- | The identifier of the Amazon Web Services account that owns the image.
workspaceImage_ownerAccountId :: Lens.Lens' WorkspaceImage (Prelude.Maybe Prelude.Text)
workspaceImage_ownerAccountId :: Lens' WorkspaceImage (Maybe Text)
workspaceImage_ownerAccountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceImage' {Maybe Text
ownerAccountId :: Maybe Text
$sel:ownerAccountId:WorkspaceImage' :: WorkspaceImage -> Maybe Text
ownerAccountId} -> Maybe Text
ownerAccountId) (\s :: WorkspaceImage
s@WorkspaceImage' {} Maybe Text
a -> WorkspaceImage
s {$sel:ownerAccountId:WorkspaceImage' :: Maybe Text
ownerAccountId = Maybe Text
a} :: WorkspaceImage)

-- | Specifies whether the image is running on dedicated hardware. When Bring
-- Your Own License (BYOL) is enabled, this value is 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>.
workspaceImage_requiredTenancy :: Lens.Lens' WorkspaceImage (Prelude.Maybe WorkspaceImageRequiredTenancy)
workspaceImage_requiredTenancy :: Lens' WorkspaceImage (Maybe WorkspaceImageRequiredTenancy)
workspaceImage_requiredTenancy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceImage' {Maybe WorkspaceImageRequiredTenancy
requiredTenancy :: Maybe WorkspaceImageRequiredTenancy
$sel:requiredTenancy:WorkspaceImage' :: WorkspaceImage -> Maybe WorkspaceImageRequiredTenancy
requiredTenancy} -> Maybe WorkspaceImageRequiredTenancy
requiredTenancy) (\s :: WorkspaceImage
s@WorkspaceImage' {} Maybe WorkspaceImageRequiredTenancy
a -> WorkspaceImage
s {$sel:requiredTenancy:WorkspaceImage' :: Maybe WorkspaceImageRequiredTenancy
requiredTenancy = Maybe WorkspaceImageRequiredTenancy
a} :: WorkspaceImage)

-- | The status of the image.
workspaceImage_state :: Lens.Lens' WorkspaceImage (Prelude.Maybe WorkspaceImageState)
workspaceImage_state :: Lens' WorkspaceImage (Maybe WorkspaceImageState)
workspaceImage_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceImage' {Maybe WorkspaceImageState
state :: Maybe WorkspaceImageState
$sel:state:WorkspaceImage' :: WorkspaceImage -> Maybe WorkspaceImageState
state} -> Maybe WorkspaceImageState
state) (\s :: WorkspaceImage
s@WorkspaceImage' {} Maybe WorkspaceImageState
a -> WorkspaceImage
s {$sel:state:WorkspaceImage' :: Maybe WorkspaceImageState
state = Maybe WorkspaceImageState
a} :: WorkspaceImage)

-- | The updates (if any) that are available for the specified image.
workspaceImage_updates :: Lens.Lens' WorkspaceImage (Prelude.Maybe UpdateResult)
workspaceImage_updates :: Lens' WorkspaceImage (Maybe UpdateResult)
workspaceImage_updates = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkspaceImage' {Maybe UpdateResult
updates :: Maybe UpdateResult
$sel:updates:WorkspaceImage' :: WorkspaceImage -> Maybe UpdateResult
updates} -> Maybe UpdateResult
updates) (\s :: WorkspaceImage
s@WorkspaceImage' {} Maybe UpdateResult
a -> WorkspaceImage
s {$sel:updates:WorkspaceImage' :: Maybe UpdateResult
updates = Maybe UpdateResult
a} :: WorkspaceImage)

instance Data.FromJSON WorkspaceImage where
  parseJSON :: Value -> Parser WorkspaceImage
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"WorkspaceImage"
      ( \Object
x ->
          Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe OperatingSystem
-> Maybe Text
-> Maybe WorkspaceImageRequiredTenancy
-> Maybe WorkspaceImageState
-> Maybe UpdateResult
-> WorkspaceImage
WorkspaceImage'
            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
"Created")
            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
"ErrorCode")
            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
"ErrorMessage")
            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
"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
"OperatingSystem")
            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
"OwnerAccountId")
            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
"RequiredTenancy")
            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
"Updates")
      )

instance Prelude.Hashable WorkspaceImage where
  hashWithSalt :: Int -> WorkspaceImage -> Int
hashWithSalt Int
_salt WorkspaceImage' {Maybe Text
Maybe POSIX
Maybe OperatingSystem
Maybe UpdateResult
Maybe WorkspaceImageRequiredTenancy
Maybe WorkspaceImageState
updates :: Maybe UpdateResult
state :: Maybe WorkspaceImageState
requiredTenancy :: Maybe WorkspaceImageRequiredTenancy
ownerAccountId :: Maybe Text
operatingSystem :: Maybe OperatingSystem
name :: Maybe Text
imageId :: Maybe Text
errorMessage :: Maybe Text
errorCode :: Maybe Text
description :: Maybe Text
created :: Maybe POSIX
$sel:updates:WorkspaceImage' :: WorkspaceImage -> Maybe UpdateResult
$sel:state:WorkspaceImage' :: WorkspaceImage -> Maybe WorkspaceImageState
$sel:requiredTenancy:WorkspaceImage' :: WorkspaceImage -> Maybe WorkspaceImageRequiredTenancy
$sel:ownerAccountId:WorkspaceImage' :: WorkspaceImage -> Maybe Text
$sel:operatingSystem:WorkspaceImage' :: WorkspaceImage -> Maybe OperatingSystem
$sel:name:WorkspaceImage' :: WorkspaceImage -> Maybe Text
$sel:imageId:WorkspaceImage' :: WorkspaceImage -> Maybe Text
$sel:errorMessage:WorkspaceImage' :: WorkspaceImage -> Maybe Text
$sel:errorCode:WorkspaceImage' :: WorkspaceImage -> Maybe Text
$sel:description:WorkspaceImage' :: WorkspaceImage -> Maybe Text
$sel:created:WorkspaceImage' :: WorkspaceImage -> Maybe POSIX
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
created
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
errorCode
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
errorMessage
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
imageId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe OperatingSystem
operatingSystem
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ownerAccountId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WorkspaceImageRequiredTenancy
requiredTenancy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WorkspaceImageState
state
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UpdateResult
updates

instance Prelude.NFData WorkspaceImage where
  rnf :: WorkspaceImage -> ()
rnf WorkspaceImage' {Maybe Text
Maybe POSIX
Maybe OperatingSystem
Maybe UpdateResult
Maybe WorkspaceImageRequiredTenancy
Maybe WorkspaceImageState
updates :: Maybe UpdateResult
state :: Maybe WorkspaceImageState
requiredTenancy :: Maybe WorkspaceImageRequiredTenancy
ownerAccountId :: Maybe Text
operatingSystem :: Maybe OperatingSystem
name :: Maybe Text
imageId :: Maybe Text
errorMessage :: Maybe Text
errorCode :: Maybe Text
description :: Maybe Text
created :: Maybe POSIX
$sel:updates:WorkspaceImage' :: WorkspaceImage -> Maybe UpdateResult
$sel:state:WorkspaceImage' :: WorkspaceImage -> Maybe WorkspaceImageState
$sel:requiredTenancy:WorkspaceImage' :: WorkspaceImage -> Maybe WorkspaceImageRequiredTenancy
$sel:ownerAccountId:WorkspaceImage' :: WorkspaceImage -> Maybe Text
$sel:operatingSystem:WorkspaceImage' :: WorkspaceImage -> Maybe OperatingSystem
$sel:name:WorkspaceImage' :: WorkspaceImage -> Maybe Text
$sel:imageId:WorkspaceImage' :: WorkspaceImage -> Maybe Text
$sel:errorMessage:WorkspaceImage' :: WorkspaceImage -> Maybe Text
$sel:errorCode:WorkspaceImage' :: WorkspaceImage -> Maybe Text
$sel:description:WorkspaceImage' :: WorkspaceImage -> Maybe Text
$sel:created:WorkspaceImage' :: WorkspaceImage -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
created
      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
errorCode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
errorMessage
      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 Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe OperatingSystem
operatingSystem
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ownerAccountId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe WorkspaceImageRequiredTenancy
requiredTenancy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe WorkspaceImageState
state
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UpdateResult
updates