{-# 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.ImageBuilder.Types.ComponentSummary
-- 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.ImageBuilder.Types.ComponentSummary where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.ImageBuilder.Types.ComponentState
import Amazonka.ImageBuilder.Types.ComponentType
import Amazonka.ImageBuilder.Types.Platform
import qualified Amazonka.Prelude as Prelude

-- | A high-level summary of a component.
--
-- /See:/ 'newComponentSummary' smart constructor.
data ComponentSummary = ComponentSummary'
  { -- | The Amazon Resource Name (ARN) of the component.
    ComponentSummary -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The change description of the component.
    ComponentSummary -> Maybe Text
changeDescription :: Prelude.Maybe Prelude.Text,
    -- | The date that the component was created.
    ComponentSummary -> Maybe Text
dateCreated :: Prelude.Maybe Prelude.Text,
    -- | The description of the component.
    ComponentSummary -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The name of the component.
    ComponentSummary -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The owner of the component.
    ComponentSummary -> Maybe Text
owner :: Prelude.Maybe Prelude.Text,
    -- | The platform of the component.
    ComponentSummary -> Maybe Platform
platform :: Prelude.Maybe Platform,
    -- | Describes the current status of the component.
    ComponentSummary -> Maybe ComponentState
state :: Prelude.Maybe ComponentState,
    -- | The operating system (OS) version supported by the component. If the OS
    -- information is available, a prefix match is performed against the base
    -- image OS version during image recipe creation.
    ComponentSummary -> Maybe (NonEmpty Text)
supportedOsVersions :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
    -- | The tags associated with the component.
    ComponentSummary -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The type of the component denotes whether the component is used to build
    -- the image or only to test it.
    ComponentSummary -> Maybe ComponentType
type' :: Prelude.Maybe ComponentType,
    -- | The version of the component.
    ComponentSummary -> Maybe Text
version :: Prelude.Maybe Prelude.Text
  }
  deriving (ComponentSummary -> ComponentSummary -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ComponentSummary -> ComponentSummary -> Bool
$c/= :: ComponentSummary -> ComponentSummary -> Bool
== :: ComponentSummary -> ComponentSummary -> Bool
$c== :: ComponentSummary -> ComponentSummary -> Bool
Prelude.Eq, ReadPrec [ComponentSummary]
ReadPrec ComponentSummary
Int -> ReadS ComponentSummary
ReadS [ComponentSummary]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ComponentSummary]
$creadListPrec :: ReadPrec [ComponentSummary]
readPrec :: ReadPrec ComponentSummary
$creadPrec :: ReadPrec ComponentSummary
readList :: ReadS [ComponentSummary]
$creadList :: ReadS [ComponentSummary]
readsPrec :: Int -> ReadS ComponentSummary
$creadsPrec :: Int -> ReadS ComponentSummary
Prelude.Read, Int -> ComponentSummary -> ShowS
[ComponentSummary] -> ShowS
ComponentSummary -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ComponentSummary] -> ShowS
$cshowList :: [ComponentSummary] -> ShowS
show :: ComponentSummary -> String
$cshow :: ComponentSummary -> String
showsPrec :: Int -> ComponentSummary -> ShowS
$cshowsPrec :: Int -> ComponentSummary -> ShowS
Prelude.Show, forall x. Rep ComponentSummary x -> ComponentSummary
forall x. ComponentSummary -> Rep ComponentSummary x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ComponentSummary x -> ComponentSummary
$cfrom :: forall x. ComponentSummary -> Rep ComponentSummary x
Prelude.Generic)

-- |
-- Create a value of 'ComponentSummary' 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:
--
-- 'arn', 'componentSummary_arn' - The Amazon Resource Name (ARN) of the component.
--
-- 'changeDescription', 'componentSummary_changeDescription' - The change description of the component.
--
-- 'dateCreated', 'componentSummary_dateCreated' - The date that the component was created.
--
-- 'description', 'componentSummary_description' - The description of the component.
--
-- 'name', 'componentSummary_name' - The name of the component.
--
-- 'owner', 'componentSummary_owner' - The owner of the component.
--
-- 'platform', 'componentSummary_platform' - The platform of the component.
--
-- 'state', 'componentSummary_state' - Describes the current status of the component.
--
-- 'supportedOsVersions', 'componentSummary_supportedOsVersions' - The operating system (OS) version supported by the component. If the OS
-- information is available, a prefix match is performed against the base
-- image OS version during image recipe creation.
--
-- 'tags', 'componentSummary_tags' - The tags associated with the component.
--
-- 'type'', 'componentSummary_type' - The type of the component denotes whether the component is used to build
-- the image or only to test it.
--
-- 'version', 'componentSummary_version' - The version of the component.
newComponentSummary ::
  ComponentSummary
newComponentSummary :: ComponentSummary
newComponentSummary =
  ComponentSummary'
    { $sel:arn:ComponentSummary' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:changeDescription:ComponentSummary' :: Maybe Text
changeDescription = forall a. Maybe a
Prelude.Nothing,
      $sel:dateCreated:ComponentSummary' :: Maybe Text
dateCreated = forall a. Maybe a
Prelude.Nothing,
      $sel:description:ComponentSummary' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:name:ComponentSummary' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:owner:ComponentSummary' :: Maybe Text
owner = forall a. Maybe a
Prelude.Nothing,
      $sel:platform:ComponentSummary' :: Maybe Platform
platform = forall a. Maybe a
Prelude.Nothing,
      $sel:state:ComponentSummary' :: Maybe ComponentState
state = forall a. Maybe a
Prelude.Nothing,
      $sel:supportedOsVersions:ComponentSummary' :: Maybe (NonEmpty Text)
supportedOsVersions = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:ComponentSummary' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:type':ComponentSummary' :: Maybe ComponentType
type' = forall a. Maybe a
Prelude.Nothing,
      $sel:version:ComponentSummary' :: Maybe Text
version = forall a. Maybe a
Prelude.Nothing
    }

-- | The Amazon Resource Name (ARN) of the component.
componentSummary_arn :: Lens.Lens' ComponentSummary (Prelude.Maybe Prelude.Text)
componentSummary_arn :: Lens' ComponentSummary (Maybe Text)
componentSummary_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComponentSummary' {Maybe Text
arn :: Maybe Text
$sel:arn:ComponentSummary' :: ComponentSummary -> Maybe Text
arn} -> Maybe Text
arn) (\s :: ComponentSummary
s@ComponentSummary' {} Maybe Text
a -> ComponentSummary
s {$sel:arn:ComponentSummary' :: Maybe Text
arn = Maybe Text
a} :: ComponentSummary)

-- | The change description of the component.
componentSummary_changeDescription :: Lens.Lens' ComponentSummary (Prelude.Maybe Prelude.Text)
componentSummary_changeDescription :: Lens' ComponentSummary (Maybe Text)
componentSummary_changeDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComponentSummary' {Maybe Text
changeDescription :: Maybe Text
$sel:changeDescription:ComponentSummary' :: ComponentSummary -> Maybe Text
changeDescription} -> Maybe Text
changeDescription) (\s :: ComponentSummary
s@ComponentSummary' {} Maybe Text
a -> ComponentSummary
s {$sel:changeDescription:ComponentSummary' :: Maybe Text
changeDescription = Maybe Text
a} :: ComponentSummary)

-- | The date that the component was created.
componentSummary_dateCreated :: Lens.Lens' ComponentSummary (Prelude.Maybe Prelude.Text)
componentSummary_dateCreated :: Lens' ComponentSummary (Maybe Text)
componentSummary_dateCreated = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComponentSummary' {Maybe Text
dateCreated :: Maybe Text
$sel:dateCreated:ComponentSummary' :: ComponentSummary -> Maybe Text
dateCreated} -> Maybe Text
dateCreated) (\s :: ComponentSummary
s@ComponentSummary' {} Maybe Text
a -> ComponentSummary
s {$sel:dateCreated:ComponentSummary' :: Maybe Text
dateCreated = Maybe Text
a} :: ComponentSummary)

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

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

-- | The owner of the component.
componentSummary_owner :: Lens.Lens' ComponentSummary (Prelude.Maybe Prelude.Text)
componentSummary_owner :: Lens' ComponentSummary (Maybe Text)
componentSummary_owner = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComponentSummary' {Maybe Text
owner :: Maybe Text
$sel:owner:ComponentSummary' :: ComponentSummary -> Maybe Text
owner} -> Maybe Text
owner) (\s :: ComponentSummary
s@ComponentSummary' {} Maybe Text
a -> ComponentSummary
s {$sel:owner:ComponentSummary' :: Maybe Text
owner = Maybe Text
a} :: ComponentSummary)

-- | The platform of the component.
componentSummary_platform :: Lens.Lens' ComponentSummary (Prelude.Maybe Platform)
componentSummary_platform :: Lens' ComponentSummary (Maybe Platform)
componentSummary_platform = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComponentSummary' {Maybe Platform
platform :: Maybe Platform
$sel:platform:ComponentSummary' :: ComponentSummary -> Maybe Platform
platform} -> Maybe Platform
platform) (\s :: ComponentSummary
s@ComponentSummary' {} Maybe Platform
a -> ComponentSummary
s {$sel:platform:ComponentSummary' :: Maybe Platform
platform = Maybe Platform
a} :: ComponentSummary)

-- | Describes the current status of the component.
componentSummary_state :: Lens.Lens' ComponentSummary (Prelude.Maybe ComponentState)
componentSummary_state :: Lens' ComponentSummary (Maybe ComponentState)
componentSummary_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComponentSummary' {Maybe ComponentState
state :: Maybe ComponentState
$sel:state:ComponentSummary' :: ComponentSummary -> Maybe ComponentState
state} -> Maybe ComponentState
state) (\s :: ComponentSummary
s@ComponentSummary' {} Maybe ComponentState
a -> ComponentSummary
s {$sel:state:ComponentSummary' :: Maybe ComponentState
state = Maybe ComponentState
a} :: ComponentSummary)

-- | The operating system (OS) version supported by the component. If the OS
-- information is available, a prefix match is performed against the base
-- image OS version during image recipe creation.
componentSummary_supportedOsVersions :: Lens.Lens' ComponentSummary (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
componentSummary_supportedOsVersions :: Lens' ComponentSummary (Maybe (NonEmpty Text))
componentSummary_supportedOsVersions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComponentSummary' {Maybe (NonEmpty Text)
supportedOsVersions :: Maybe (NonEmpty Text)
$sel:supportedOsVersions:ComponentSummary' :: ComponentSummary -> Maybe (NonEmpty Text)
supportedOsVersions} -> Maybe (NonEmpty Text)
supportedOsVersions) (\s :: ComponentSummary
s@ComponentSummary' {} Maybe (NonEmpty Text)
a -> ComponentSummary
s {$sel:supportedOsVersions:ComponentSummary' :: Maybe (NonEmpty Text)
supportedOsVersions = Maybe (NonEmpty Text)
a} :: ComponentSummary) 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 tags associated with the component.
componentSummary_tags :: Lens.Lens' ComponentSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
componentSummary_tags :: Lens' ComponentSummary (Maybe (HashMap Text Text))
componentSummary_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComponentSummary' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:ComponentSummary' :: ComponentSummary -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: ComponentSummary
s@ComponentSummary' {} Maybe (HashMap Text Text)
a -> ComponentSummary
s {$sel:tags:ComponentSummary' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: ComponentSummary) 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 type of the component denotes whether the component is used to build
-- the image or only to test it.
componentSummary_type :: Lens.Lens' ComponentSummary (Prelude.Maybe ComponentType)
componentSummary_type :: Lens' ComponentSummary (Maybe ComponentType)
componentSummary_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComponentSummary' {Maybe ComponentType
type' :: Maybe ComponentType
$sel:type':ComponentSummary' :: ComponentSummary -> Maybe ComponentType
type'} -> Maybe ComponentType
type') (\s :: ComponentSummary
s@ComponentSummary' {} Maybe ComponentType
a -> ComponentSummary
s {$sel:type':ComponentSummary' :: Maybe ComponentType
type' = Maybe ComponentType
a} :: ComponentSummary)

-- | The version of the component.
componentSummary_version :: Lens.Lens' ComponentSummary (Prelude.Maybe Prelude.Text)
componentSummary_version :: Lens' ComponentSummary (Maybe Text)
componentSummary_version = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComponentSummary' {Maybe Text
version :: Maybe Text
$sel:version:ComponentSummary' :: ComponentSummary -> Maybe Text
version} -> Maybe Text
version) (\s :: ComponentSummary
s@ComponentSummary' {} Maybe Text
a -> ComponentSummary
s {$sel:version:ComponentSummary' :: Maybe Text
version = Maybe Text
a} :: ComponentSummary)

instance Data.FromJSON ComponentSummary where
  parseJSON :: Value -> Parser ComponentSummary
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"ComponentSummary"
      ( \Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Platform
-> Maybe ComponentState
-> Maybe (NonEmpty Text)
-> Maybe (HashMap Text Text)
-> Maybe ComponentType
-> Maybe Text
-> ComponentSummary
ComponentSummary'
            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
"arn")
            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
"changeDescription")
            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
"dateCreated")
            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
"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
"platform")
            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
"supportedOsVersions")
            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
"tags" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"type")
            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
"version")
      )

instance Prelude.Hashable ComponentSummary where
  hashWithSalt :: Int -> ComponentSummary -> Int
hashWithSalt Int
_salt ComponentSummary' {Maybe (NonEmpty Text)
Maybe Text
Maybe (HashMap Text Text)
Maybe ComponentState
Maybe ComponentType
Maybe Platform
version :: Maybe Text
type' :: Maybe ComponentType
tags :: Maybe (HashMap Text Text)
supportedOsVersions :: Maybe (NonEmpty Text)
state :: Maybe ComponentState
platform :: Maybe Platform
owner :: Maybe Text
name :: Maybe Text
description :: Maybe Text
dateCreated :: Maybe Text
changeDescription :: Maybe Text
arn :: Maybe Text
$sel:version:ComponentSummary' :: ComponentSummary -> Maybe Text
$sel:type':ComponentSummary' :: ComponentSummary -> Maybe ComponentType
$sel:tags:ComponentSummary' :: ComponentSummary -> Maybe (HashMap Text Text)
$sel:supportedOsVersions:ComponentSummary' :: ComponentSummary -> Maybe (NonEmpty Text)
$sel:state:ComponentSummary' :: ComponentSummary -> Maybe ComponentState
$sel:platform:ComponentSummary' :: ComponentSummary -> Maybe Platform
$sel:owner:ComponentSummary' :: ComponentSummary -> Maybe Text
$sel:name:ComponentSummary' :: ComponentSummary -> Maybe Text
$sel:description:ComponentSummary' :: ComponentSummary -> Maybe Text
$sel:dateCreated:ComponentSummary' :: ComponentSummary -> Maybe Text
$sel:changeDescription:ComponentSummary' :: ComponentSummary -> Maybe Text
$sel:arn:ComponentSummary' :: ComponentSummary -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
arn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
changeDescription
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dateCreated
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      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 Platform
platform
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ComponentState
state
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Text)
supportedOsVersions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ComponentType
type'
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
version

instance Prelude.NFData ComponentSummary where
  rnf :: ComponentSummary -> ()
rnf ComponentSummary' {Maybe (NonEmpty Text)
Maybe Text
Maybe (HashMap Text Text)
Maybe ComponentState
Maybe ComponentType
Maybe Platform
version :: Maybe Text
type' :: Maybe ComponentType
tags :: Maybe (HashMap Text Text)
supportedOsVersions :: Maybe (NonEmpty Text)
state :: Maybe ComponentState
platform :: Maybe Platform
owner :: Maybe Text
name :: Maybe Text
description :: Maybe Text
dateCreated :: Maybe Text
changeDescription :: Maybe Text
arn :: Maybe Text
$sel:version:ComponentSummary' :: ComponentSummary -> Maybe Text
$sel:type':ComponentSummary' :: ComponentSummary -> Maybe ComponentType
$sel:tags:ComponentSummary' :: ComponentSummary -> Maybe (HashMap Text Text)
$sel:supportedOsVersions:ComponentSummary' :: ComponentSummary -> Maybe (NonEmpty Text)
$sel:state:ComponentSummary' :: ComponentSummary -> Maybe ComponentState
$sel:platform:ComponentSummary' :: ComponentSummary -> Maybe Platform
$sel:owner:ComponentSummary' :: ComponentSummary -> Maybe Text
$sel:name:ComponentSummary' :: ComponentSummary -> Maybe Text
$sel:description:ComponentSummary' :: ComponentSummary -> Maybe Text
$sel:dateCreated:ComponentSummary' :: ComponentSummary -> Maybe Text
$sel:changeDescription:ComponentSummary' :: ComponentSummary -> Maybe Text
$sel:arn:ComponentSummary' :: ComponentSummary -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
changeDescription
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dateCreated
      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
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 Platform
platform
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ComponentState
state
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Text)
supportedOsVersions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ComponentType
type'
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
version