{-# 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.EC2.Types.FpgaImage
-- 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.EC2.Types.FpgaImage where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EC2.Internal
import Amazonka.EC2.Types.FpgaImageState
import Amazonka.EC2.Types.PciId
import Amazonka.EC2.Types.ProductCode
import Amazonka.EC2.Types.Tag
import qualified Amazonka.Prelude as Prelude

-- | Describes an Amazon FPGA image (AFI).
--
-- /See:/ 'newFpgaImage' smart constructor.
data FpgaImage = FpgaImage'
  { -- | The date and time the AFI was created.
    FpgaImage -> Maybe ISO8601
createTime :: Prelude.Maybe Data.ISO8601,
    -- | Indicates whether data retention support is enabled for the AFI.
    FpgaImage -> Maybe Bool
dataRetentionSupport :: Prelude.Maybe Prelude.Bool,
    -- | The description of the AFI.
    FpgaImage -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The global FPGA image identifier (AGFI ID).
    FpgaImage -> Maybe Text
fpgaImageGlobalId :: Prelude.Maybe Prelude.Text,
    -- | The FPGA image identifier (AFI ID).
    FpgaImage -> Maybe Text
fpgaImageId :: Prelude.Maybe Prelude.Text,
    FpgaImage -> Maybe [Text]
instanceTypes :: Prelude.Maybe [Prelude.Text],
    -- | The name of the AFI.
    FpgaImage -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The alias of the AFI owner. Possible values include @self@, @amazon@,
    -- and @aws-marketplace@.
    FpgaImage -> Maybe Text
ownerAlias :: Prelude.Maybe Prelude.Text,
    -- | The ID of the Amazon Web Services account that owns the AFI.
    FpgaImage -> Maybe Text
ownerId :: Prelude.Maybe Prelude.Text,
    -- | Information about the PCI bus.
    FpgaImage -> Maybe PciId
pciId :: Prelude.Maybe PciId,
    -- | The product codes for the AFI.
    FpgaImage -> Maybe [ProductCode]
productCodes :: Prelude.Maybe [ProductCode],
    -- | Indicates whether the AFI is public.
    FpgaImage -> Maybe Bool
public :: Prelude.Maybe Prelude.Bool,
    -- | The version of the Amazon Web Services Shell that was used to create the
    -- bitstream.
    FpgaImage -> Maybe Text
shellVersion :: Prelude.Maybe Prelude.Text,
    -- | Information about the state of the AFI.
    FpgaImage -> Maybe FpgaImageState
state :: Prelude.Maybe FpgaImageState,
    -- | Any tags assigned to the AFI.
    FpgaImage -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The time of the most recent update to the AFI.
    FpgaImage -> Maybe ISO8601
updateTime :: Prelude.Maybe Data.ISO8601
  }
  deriving (FpgaImage -> FpgaImage -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FpgaImage -> FpgaImage -> Bool
$c/= :: FpgaImage -> FpgaImage -> Bool
== :: FpgaImage -> FpgaImage -> Bool
$c== :: FpgaImage -> FpgaImage -> Bool
Prelude.Eq, ReadPrec [FpgaImage]
ReadPrec FpgaImage
Int -> ReadS FpgaImage
ReadS [FpgaImage]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [FpgaImage]
$creadListPrec :: ReadPrec [FpgaImage]
readPrec :: ReadPrec FpgaImage
$creadPrec :: ReadPrec FpgaImage
readList :: ReadS [FpgaImage]
$creadList :: ReadS [FpgaImage]
readsPrec :: Int -> ReadS FpgaImage
$creadsPrec :: Int -> ReadS FpgaImage
Prelude.Read, Int -> FpgaImage -> ShowS
[FpgaImage] -> ShowS
FpgaImage -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FpgaImage] -> ShowS
$cshowList :: [FpgaImage] -> ShowS
show :: FpgaImage -> String
$cshow :: FpgaImage -> String
showsPrec :: Int -> FpgaImage -> ShowS
$cshowsPrec :: Int -> FpgaImage -> ShowS
Prelude.Show, forall x. Rep FpgaImage x -> FpgaImage
forall x. FpgaImage -> Rep FpgaImage x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep FpgaImage x -> FpgaImage
$cfrom :: forall x. FpgaImage -> Rep FpgaImage x
Prelude.Generic)

-- |
-- Create a value of 'FpgaImage' 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:
--
-- 'createTime', 'fpgaImage_createTime' - The date and time the AFI was created.
--
-- 'dataRetentionSupport', 'fpgaImage_dataRetentionSupport' - Indicates whether data retention support is enabled for the AFI.
--
-- 'description', 'fpgaImage_description' - The description of the AFI.
--
-- 'fpgaImageGlobalId', 'fpgaImage_fpgaImageGlobalId' - The global FPGA image identifier (AGFI ID).
--
-- 'fpgaImageId', 'fpgaImage_fpgaImageId' - The FPGA image identifier (AFI ID).
--
-- 'instanceTypes', 'fpgaImage_instanceTypes' - Undocumented member.
--
-- 'name', 'fpgaImage_name' - The name of the AFI.
--
-- 'ownerAlias', 'fpgaImage_ownerAlias' - The alias of the AFI owner. Possible values include @self@, @amazon@,
-- and @aws-marketplace@.
--
-- 'ownerId', 'fpgaImage_ownerId' - The ID of the Amazon Web Services account that owns the AFI.
--
-- 'pciId', 'fpgaImage_pciId' - Information about the PCI bus.
--
-- 'productCodes', 'fpgaImage_productCodes' - The product codes for the AFI.
--
-- 'public', 'fpgaImage_public' - Indicates whether the AFI is public.
--
-- 'shellVersion', 'fpgaImage_shellVersion' - The version of the Amazon Web Services Shell that was used to create the
-- bitstream.
--
-- 'state', 'fpgaImage_state' - Information about the state of the AFI.
--
-- 'tags', 'fpgaImage_tags' - Any tags assigned to the AFI.
--
-- 'updateTime', 'fpgaImage_updateTime' - The time of the most recent update to the AFI.
newFpgaImage ::
  FpgaImage
newFpgaImage :: FpgaImage
newFpgaImage =
  FpgaImage'
    { $sel:createTime:FpgaImage' :: Maybe ISO8601
createTime = forall a. Maybe a
Prelude.Nothing,
      $sel:dataRetentionSupport:FpgaImage' :: Maybe Bool
dataRetentionSupport = forall a. Maybe a
Prelude.Nothing,
      $sel:description:FpgaImage' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:fpgaImageGlobalId:FpgaImage' :: Maybe Text
fpgaImageGlobalId = forall a. Maybe a
Prelude.Nothing,
      $sel:fpgaImageId:FpgaImage' :: Maybe Text
fpgaImageId = forall a. Maybe a
Prelude.Nothing,
      $sel:instanceTypes:FpgaImage' :: Maybe [Text]
instanceTypes = forall a. Maybe a
Prelude.Nothing,
      $sel:name:FpgaImage' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:ownerAlias:FpgaImage' :: Maybe Text
ownerAlias = forall a. Maybe a
Prelude.Nothing,
      $sel:ownerId:FpgaImage' :: Maybe Text
ownerId = forall a. Maybe a
Prelude.Nothing,
      $sel:pciId:FpgaImage' :: Maybe PciId
pciId = forall a. Maybe a
Prelude.Nothing,
      $sel:productCodes:FpgaImage' :: Maybe [ProductCode]
productCodes = forall a. Maybe a
Prelude.Nothing,
      $sel:public:FpgaImage' :: Maybe Bool
public = forall a. Maybe a
Prelude.Nothing,
      $sel:shellVersion:FpgaImage' :: Maybe Text
shellVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:state:FpgaImage' :: Maybe FpgaImageState
state = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:FpgaImage' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:updateTime:FpgaImage' :: Maybe ISO8601
updateTime = forall a. Maybe a
Prelude.Nothing
    }

-- | The date and time the AFI was created.
fpgaImage_createTime :: Lens.Lens' FpgaImage (Prelude.Maybe Prelude.UTCTime)
fpgaImage_createTime :: Lens' FpgaImage (Maybe UTCTime)
fpgaImage_createTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FpgaImage' {Maybe ISO8601
createTime :: Maybe ISO8601
$sel:createTime:FpgaImage' :: FpgaImage -> Maybe ISO8601
createTime} -> Maybe ISO8601
createTime) (\s :: FpgaImage
s@FpgaImage' {} Maybe ISO8601
a -> FpgaImage
s {$sel:createTime:FpgaImage' :: Maybe ISO8601
createTime = Maybe ISO8601
a} :: FpgaImage) 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

-- | Indicates whether data retention support is enabled for the AFI.
fpgaImage_dataRetentionSupport :: Lens.Lens' FpgaImage (Prelude.Maybe Prelude.Bool)
fpgaImage_dataRetentionSupport :: Lens' FpgaImage (Maybe Bool)
fpgaImage_dataRetentionSupport = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FpgaImage' {Maybe Bool
dataRetentionSupport :: Maybe Bool
$sel:dataRetentionSupport:FpgaImage' :: FpgaImage -> Maybe Bool
dataRetentionSupport} -> Maybe Bool
dataRetentionSupport) (\s :: FpgaImage
s@FpgaImage' {} Maybe Bool
a -> FpgaImage
s {$sel:dataRetentionSupport:FpgaImage' :: Maybe Bool
dataRetentionSupport = Maybe Bool
a} :: FpgaImage)

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

-- | The global FPGA image identifier (AGFI ID).
fpgaImage_fpgaImageGlobalId :: Lens.Lens' FpgaImage (Prelude.Maybe Prelude.Text)
fpgaImage_fpgaImageGlobalId :: Lens' FpgaImage (Maybe Text)
fpgaImage_fpgaImageGlobalId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FpgaImage' {Maybe Text
fpgaImageGlobalId :: Maybe Text
$sel:fpgaImageGlobalId:FpgaImage' :: FpgaImage -> Maybe Text
fpgaImageGlobalId} -> Maybe Text
fpgaImageGlobalId) (\s :: FpgaImage
s@FpgaImage' {} Maybe Text
a -> FpgaImage
s {$sel:fpgaImageGlobalId:FpgaImage' :: Maybe Text
fpgaImageGlobalId = Maybe Text
a} :: FpgaImage)

-- | The FPGA image identifier (AFI ID).
fpgaImage_fpgaImageId :: Lens.Lens' FpgaImage (Prelude.Maybe Prelude.Text)
fpgaImage_fpgaImageId :: Lens' FpgaImage (Maybe Text)
fpgaImage_fpgaImageId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FpgaImage' {Maybe Text
fpgaImageId :: Maybe Text
$sel:fpgaImageId:FpgaImage' :: FpgaImage -> Maybe Text
fpgaImageId} -> Maybe Text
fpgaImageId) (\s :: FpgaImage
s@FpgaImage' {} Maybe Text
a -> FpgaImage
s {$sel:fpgaImageId:FpgaImage' :: Maybe Text
fpgaImageId = Maybe Text
a} :: FpgaImage)

-- | Undocumented member.
fpgaImage_instanceTypes :: Lens.Lens' FpgaImage (Prelude.Maybe [Prelude.Text])
fpgaImage_instanceTypes :: Lens' FpgaImage (Maybe [Text])
fpgaImage_instanceTypes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FpgaImage' {Maybe [Text]
instanceTypes :: Maybe [Text]
$sel:instanceTypes:FpgaImage' :: FpgaImage -> Maybe [Text]
instanceTypes} -> Maybe [Text]
instanceTypes) (\s :: FpgaImage
s@FpgaImage' {} Maybe [Text]
a -> FpgaImage
s {$sel:instanceTypes:FpgaImage' :: Maybe [Text]
instanceTypes = Maybe [Text]
a} :: FpgaImage) 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 name of the AFI.
fpgaImage_name :: Lens.Lens' FpgaImage (Prelude.Maybe Prelude.Text)
fpgaImage_name :: Lens' FpgaImage (Maybe Text)
fpgaImage_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FpgaImage' {Maybe Text
name :: Maybe Text
$sel:name:FpgaImage' :: FpgaImage -> Maybe Text
name} -> Maybe Text
name) (\s :: FpgaImage
s@FpgaImage' {} Maybe Text
a -> FpgaImage
s {$sel:name:FpgaImage' :: Maybe Text
name = Maybe Text
a} :: FpgaImage)

-- | The alias of the AFI owner. Possible values include @self@, @amazon@,
-- and @aws-marketplace@.
fpgaImage_ownerAlias :: Lens.Lens' FpgaImage (Prelude.Maybe Prelude.Text)
fpgaImage_ownerAlias :: Lens' FpgaImage (Maybe Text)
fpgaImage_ownerAlias = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FpgaImage' {Maybe Text
ownerAlias :: Maybe Text
$sel:ownerAlias:FpgaImage' :: FpgaImage -> Maybe Text
ownerAlias} -> Maybe Text
ownerAlias) (\s :: FpgaImage
s@FpgaImage' {} Maybe Text
a -> FpgaImage
s {$sel:ownerAlias:FpgaImage' :: Maybe Text
ownerAlias = Maybe Text
a} :: FpgaImage)

-- | The ID of the Amazon Web Services account that owns the AFI.
fpgaImage_ownerId :: Lens.Lens' FpgaImage (Prelude.Maybe Prelude.Text)
fpgaImage_ownerId :: Lens' FpgaImage (Maybe Text)
fpgaImage_ownerId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FpgaImage' {Maybe Text
ownerId :: Maybe Text
$sel:ownerId:FpgaImage' :: FpgaImage -> Maybe Text
ownerId} -> Maybe Text
ownerId) (\s :: FpgaImage
s@FpgaImage' {} Maybe Text
a -> FpgaImage
s {$sel:ownerId:FpgaImage' :: Maybe Text
ownerId = Maybe Text
a} :: FpgaImage)

-- | Information about the PCI bus.
fpgaImage_pciId :: Lens.Lens' FpgaImage (Prelude.Maybe PciId)
fpgaImage_pciId :: Lens' FpgaImage (Maybe PciId)
fpgaImage_pciId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FpgaImage' {Maybe PciId
pciId :: Maybe PciId
$sel:pciId:FpgaImage' :: FpgaImage -> Maybe PciId
pciId} -> Maybe PciId
pciId) (\s :: FpgaImage
s@FpgaImage' {} Maybe PciId
a -> FpgaImage
s {$sel:pciId:FpgaImage' :: Maybe PciId
pciId = Maybe PciId
a} :: FpgaImage)

-- | The product codes for the AFI.
fpgaImage_productCodes :: Lens.Lens' FpgaImage (Prelude.Maybe [ProductCode])
fpgaImage_productCodes :: Lens' FpgaImage (Maybe [ProductCode])
fpgaImage_productCodes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FpgaImage' {Maybe [ProductCode]
productCodes :: Maybe [ProductCode]
$sel:productCodes:FpgaImage' :: FpgaImage -> Maybe [ProductCode]
productCodes} -> Maybe [ProductCode]
productCodes) (\s :: FpgaImage
s@FpgaImage' {} Maybe [ProductCode]
a -> FpgaImage
s {$sel:productCodes:FpgaImage' :: Maybe [ProductCode]
productCodes = Maybe [ProductCode]
a} :: FpgaImage) 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

-- | Indicates whether the AFI is public.
fpgaImage_public :: Lens.Lens' FpgaImage (Prelude.Maybe Prelude.Bool)
fpgaImage_public :: Lens' FpgaImage (Maybe Bool)
fpgaImage_public = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FpgaImage' {Maybe Bool
public :: Maybe Bool
$sel:public:FpgaImage' :: FpgaImage -> Maybe Bool
public} -> Maybe Bool
public) (\s :: FpgaImage
s@FpgaImage' {} Maybe Bool
a -> FpgaImage
s {$sel:public:FpgaImage' :: Maybe Bool
public = Maybe Bool
a} :: FpgaImage)

-- | The version of the Amazon Web Services Shell that was used to create the
-- bitstream.
fpgaImage_shellVersion :: Lens.Lens' FpgaImage (Prelude.Maybe Prelude.Text)
fpgaImage_shellVersion :: Lens' FpgaImage (Maybe Text)
fpgaImage_shellVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FpgaImage' {Maybe Text
shellVersion :: Maybe Text
$sel:shellVersion:FpgaImage' :: FpgaImage -> Maybe Text
shellVersion} -> Maybe Text
shellVersion) (\s :: FpgaImage
s@FpgaImage' {} Maybe Text
a -> FpgaImage
s {$sel:shellVersion:FpgaImage' :: Maybe Text
shellVersion = Maybe Text
a} :: FpgaImage)

-- | Information about the state of the AFI.
fpgaImage_state :: Lens.Lens' FpgaImage (Prelude.Maybe FpgaImageState)
fpgaImage_state :: Lens' FpgaImage (Maybe FpgaImageState)
fpgaImage_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FpgaImage' {Maybe FpgaImageState
state :: Maybe FpgaImageState
$sel:state:FpgaImage' :: FpgaImage -> Maybe FpgaImageState
state} -> Maybe FpgaImageState
state) (\s :: FpgaImage
s@FpgaImage' {} Maybe FpgaImageState
a -> FpgaImage
s {$sel:state:FpgaImage' :: Maybe FpgaImageState
state = Maybe FpgaImageState
a} :: FpgaImage)

-- | Any tags assigned to the AFI.
fpgaImage_tags :: Lens.Lens' FpgaImage (Prelude.Maybe [Tag])
fpgaImage_tags :: Lens' FpgaImage (Maybe [Tag])
fpgaImage_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FpgaImage' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:FpgaImage' :: FpgaImage -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: FpgaImage
s@FpgaImage' {} Maybe [Tag]
a -> FpgaImage
s {$sel:tags:FpgaImage' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: FpgaImage) 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 time of the most recent update to the AFI.
fpgaImage_updateTime :: Lens.Lens' FpgaImage (Prelude.Maybe Prelude.UTCTime)
fpgaImage_updateTime :: Lens' FpgaImage (Maybe UTCTime)
fpgaImage_updateTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FpgaImage' {Maybe ISO8601
updateTime :: Maybe ISO8601
$sel:updateTime:FpgaImage' :: FpgaImage -> Maybe ISO8601
updateTime} -> Maybe ISO8601
updateTime) (\s :: FpgaImage
s@FpgaImage' {} Maybe ISO8601
a -> FpgaImage
s {$sel:updateTime:FpgaImage' :: Maybe ISO8601
updateTime = Maybe ISO8601
a} :: FpgaImage) 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

instance Data.FromXML FpgaImage where
  parseXML :: [Node] -> Either String FpgaImage
parseXML [Node]
x =
    Maybe ISO8601
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PciId
-> Maybe [ProductCode]
-> Maybe Bool
-> Maybe Text
-> Maybe FpgaImageState
-> Maybe [Tag]
-> Maybe ISO8601
-> FpgaImage
FpgaImage'
      forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"createTime")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"dataRetentionSupport")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"description")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"fpgaImageGlobalId")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"fpgaImageId")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"instanceTypes"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"name")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ownerAlias")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ownerId")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"pciId")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"productCodes"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"public")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"shellVersion")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"state")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"tags"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"updateTime")

instance Prelude.Hashable FpgaImage where
  hashWithSalt :: Int -> FpgaImage -> Int
hashWithSalt Int
_salt FpgaImage' {Maybe Bool
Maybe [Text]
Maybe [ProductCode]
Maybe [Tag]
Maybe Text
Maybe ISO8601
Maybe FpgaImageState
Maybe PciId
updateTime :: Maybe ISO8601
tags :: Maybe [Tag]
state :: Maybe FpgaImageState
shellVersion :: Maybe Text
public :: Maybe Bool
productCodes :: Maybe [ProductCode]
pciId :: Maybe PciId
ownerId :: Maybe Text
ownerAlias :: Maybe Text
name :: Maybe Text
instanceTypes :: Maybe [Text]
fpgaImageId :: Maybe Text
fpgaImageGlobalId :: Maybe Text
description :: Maybe Text
dataRetentionSupport :: Maybe Bool
createTime :: Maybe ISO8601
$sel:updateTime:FpgaImage' :: FpgaImage -> Maybe ISO8601
$sel:tags:FpgaImage' :: FpgaImage -> Maybe [Tag]
$sel:state:FpgaImage' :: FpgaImage -> Maybe FpgaImageState
$sel:shellVersion:FpgaImage' :: FpgaImage -> Maybe Text
$sel:public:FpgaImage' :: FpgaImage -> Maybe Bool
$sel:productCodes:FpgaImage' :: FpgaImage -> Maybe [ProductCode]
$sel:pciId:FpgaImage' :: FpgaImage -> Maybe PciId
$sel:ownerId:FpgaImage' :: FpgaImage -> Maybe Text
$sel:ownerAlias:FpgaImage' :: FpgaImage -> Maybe Text
$sel:name:FpgaImage' :: FpgaImage -> Maybe Text
$sel:instanceTypes:FpgaImage' :: FpgaImage -> Maybe [Text]
$sel:fpgaImageId:FpgaImage' :: FpgaImage -> Maybe Text
$sel:fpgaImageGlobalId:FpgaImage' :: FpgaImage -> Maybe Text
$sel:description:FpgaImage' :: FpgaImage -> Maybe Text
$sel:dataRetentionSupport:FpgaImage' :: FpgaImage -> Maybe Bool
$sel:createTime:FpgaImage' :: FpgaImage -> Maybe ISO8601
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
createTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
dataRetentionSupport
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
fpgaImageGlobalId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
fpgaImageId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
instanceTypes
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ownerAlias
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ownerId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PciId
pciId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [ProductCode]
productCodes
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
public
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
shellVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FpgaImageState
state
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
updateTime

instance Prelude.NFData FpgaImage where
  rnf :: FpgaImage -> ()
rnf FpgaImage' {Maybe Bool
Maybe [Text]
Maybe [ProductCode]
Maybe [Tag]
Maybe Text
Maybe ISO8601
Maybe FpgaImageState
Maybe PciId
updateTime :: Maybe ISO8601
tags :: Maybe [Tag]
state :: Maybe FpgaImageState
shellVersion :: Maybe Text
public :: Maybe Bool
productCodes :: Maybe [ProductCode]
pciId :: Maybe PciId
ownerId :: Maybe Text
ownerAlias :: Maybe Text
name :: Maybe Text
instanceTypes :: Maybe [Text]
fpgaImageId :: Maybe Text
fpgaImageGlobalId :: Maybe Text
description :: Maybe Text
dataRetentionSupport :: Maybe Bool
createTime :: Maybe ISO8601
$sel:updateTime:FpgaImage' :: FpgaImage -> Maybe ISO8601
$sel:tags:FpgaImage' :: FpgaImage -> Maybe [Tag]
$sel:state:FpgaImage' :: FpgaImage -> Maybe FpgaImageState
$sel:shellVersion:FpgaImage' :: FpgaImage -> Maybe Text
$sel:public:FpgaImage' :: FpgaImage -> Maybe Bool
$sel:productCodes:FpgaImage' :: FpgaImage -> Maybe [ProductCode]
$sel:pciId:FpgaImage' :: FpgaImage -> Maybe PciId
$sel:ownerId:FpgaImage' :: FpgaImage -> Maybe Text
$sel:ownerAlias:FpgaImage' :: FpgaImage -> Maybe Text
$sel:name:FpgaImage' :: FpgaImage -> Maybe Text
$sel:instanceTypes:FpgaImage' :: FpgaImage -> Maybe [Text]
$sel:fpgaImageId:FpgaImage' :: FpgaImage -> Maybe Text
$sel:fpgaImageGlobalId:FpgaImage' :: FpgaImage -> Maybe Text
$sel:description:FpgaImage' :: FpgaImage -> Maybe Text
$sel:dataRetentionSupport:FpgaImage' :: FpgaImage -> Maybe Bool
$sel:createTime:FpgaImage' :: FpgaImage -> Maybe ISO8601
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
createTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
dataRetentionSupport
      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
fpgaImageGlobalId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
fpgaImageId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
instanceTypes
      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
ownerAlias
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ownerId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PciId
pciId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [ProductCode]
productCodes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
public
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
shellVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FpgaImageState
state
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
updateTime