{-# 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.EKS.Types.Addon
-- 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.EKS.Types.Addon where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EKS.Types.AddonHealth
import Amazonka.EKS.Types.AddonStatus
import Amazonka.EKS.Types.MarketplaceInformation
import qualified Amazonka.Prelude as Prelude

-- | An Amazon EKS add-on. For more information, see
-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-add-ons.html Amazon EKS add-ons>
-- in the /Amazon EKS User Guide/.
--
-- /See:/ 'newAddon' smart constructor.
data Addon = Addon'
  { -- | The Amazon Resource Name (ARN) of the add-on.
    Addon -> Maybe Text
addonArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the add-on.
    Addon -> Maybe Text
addonName :: Prelude.Maybe Prelude.Text,
    -- | The version of the add-on.
    Addon -> Maybe Text
addonVersion :: Prelude.Maybe Prelude.Text,
    -- | The name of the cluster.
    Addon -> Maybe Text
clusterName :: Prelude.Maybe Prelude.Text,
    -- | The configuration values that you provided.
    Addon -> Maybe Text
configurationValues :: Prelude.Maybe Prelude.Text,
    -- | The date and time that the add-on was created.
    Addon -> Maybe POSIX
createdAt :: Prelude.Maybe Data.POSIX,
    -- | An object that represents the health of the add-on.
    Addon -> Maybe AddonHealth
health :: Prelude.Maybe AddonHealth,
    -- | Information about an Amazon EKS add-on from the Amazon Web Services
    -- Marketplace.
    Addon -> Maybe MarketplaceInformation
marketplaceInformation :: Prelude.Maybe MarketplaceInformation,
    -- | The date and time that the add-on was last modified.
    Addon -> Maybe POSIX
modifiedAt :: Prelude.Maybe Data.POSIX,
    -- | The owner of the add-on.
    Addon -> Maybe Text
owner :: Prelude.Maybe Prelude.Text,
    -- | The publisher of the add-on.
    Addon -> Maybe Text
publisher :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the IAM role that\'s bound to the
    -- Kubernetes service account that the add-on uses.
    Addon -> Maybe Text
serviceAccountRoleArn :: Prelude.Maybe Prelude.Text,
    -- | The status of the add-on.
    Addon -> Maybe AddonStatus
status :: Prelude.Maybe AddonStatus,
    -- | The metadata that you apply to the add-on to assist with categorization
    -- and organization. Each tag consists of a key and an optional value. You
    -- define both. Add-on tags do not propagate to any other resources
    -- associated with the cluster.
    Addon -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)
  }
  deriving (Addon -> Addon -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Addon -> Addon -> Bool
$c/= :: Addon -> Addon -> Bool
== :: Addon -> Addon -> Bool
$c== :: Addon -> Addon -> Bool
Prelude.Eq, ReadPrec [Addon]
ReadPrec Addon
Int -> ReadS Addon
ReadS [Addon]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Addon]
$creadListPrec :: ReadPrec [Addon]
readPrec :: ReadPrec Addon
$creadPrec :: ReadPrec Addon
readList :: ReadS [Addon]
$creadList :: ReadS [Addon]
readsPrec :: Int -> ReadS Addon
$creadsPrec :: Int -> ReadS Addon
Prelude.Read, Int -> Addon -> ShowS
[Addon] -> ShowS
Addon -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Addon] -> ShowS
$cshowList :: [Addon] -> ShowS
show :: Addon -> String
$cshow :: Addon -> String
showsPrec :: Int -> Addon -> ShowS
$cshowsPrec :: Int -> Addon -> ShowS
Prelude.Show, forall x. Rep Addon x -> Addon
forall x. Addon -> Rep Addon x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Addon x -> Addon
$cfrom :: forall x. Addon -> Rep Addon x
Prelude.Generic)

-- |
-- Create a value of 'Addon' 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:
--
-- 'addonArn', 'addon_addonArn' - The Amazon Resource Name (ARN) of the add-on.
--
-- 'addonName', 'addon_addonName' - The name of the add-on.
--
-- 'addonVersion', 'addon_addonVersion' - The version of the add-on.
--
-- 'clusterName', 'addon_clusterName' - The name of the cluster.
--
-- 'configurationValues', 'addon_configurationValues' - The configuration values that you provided.
--
-- 'createdAt', 'addon_createdAt' - The date and time that the add-on was created.
--
-- 'health', 'addon_health' - An object that represents the health of the add-on.
--
-- 'marketplaceInformation', 'addon_marketplaceInformation' - Information about an Amazon EKS add-on from the Amazon Web Services
-- Marketplace.
--
-- 'modifiedAt', 'addon_modifiedAt' - The date and time that the add-on was last modified.
--
-- 'owner', 'addon_owner' - The owner of the add-on.
--
-- 'publisher', 'addon_publisher' - The publisher of the add-on.
--
-- 'serviceAccountRoleArn', 'addon_serviceAccountRoleArn' - The Amazon Resource Name (ARN) of the IAM role that\'s bound to the
-- Kubernetes service account that the add-on uses.
--
-- 'status', 'addon_status' - The status of the add-on.
--
-- 'tags', 'addon_tags' - The metadata that you apply to the add-on to assist with categorization
-- and organization. Each tag consists of a key and an optional value. You
-- define both. Add-on tags do not propagate to any other resources
-- associated with the cluster.
newAddon ::
  Addon
newAddon :: Addon
newAddon =
  Addon'
    { $sel:addonArn:Addon' :: Maybe Text
addonArn = forall a. Maybe a
Prelude.Nothing,
      $sel:addonName:Addon' :: Maybe Text
addonName = forall a. Maybe a
Prelude.Nothing,
      $sel:addonVersion:Addon' :: Maybe Text
addonVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:clusterName:Addon' :: Maybe Text
clusterName = forall a. Maybe a
Prelude.Nothing,
      $sel:configurationValues:Addon' :: Maybe Text
configurationValues = forall a. Maybe a
Prelude.Nothing,
      $sel:createdAt:Addon' :: Maybe POSIX
createdAt = forall a. Maybe a
Prelude.Nothing,
      $sel:health:Addon' :: Maybe AddonHealth
health = forall a. Maybe a
Prelude.Nothing,
      $sel:marketplaceInformation:Addon' :: Maybe MarketplaceInformation
marketplaceInformation = forall a. Maybe a
Prelude.Nothing,
      $sel:modifiedAt:Addon' :: Maybe POSIX
modifiedAt = forall a. Maybe a
Prelude.Nothing,
      $sel:owner:Addon' :: Maybe Text
owner = forall a. Maybe a
Prelude.Nothing,
      $sel:publisher:Addon' :: Maybe Text
publisher = forall a. Maybe a
Prelude.Nothing,
      $sel:serviceAccountRoleArn:Addon' :: Maybe Text
serviceAccountRoleArn = forall a. Maybe a
Prelude.Nothing,
      $sel:status:Addon' :: Maybe AddonStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:Addon' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing
    }

-- | The Amazon Resource Name (ARN) of the add-on.
addon_addonArn :: Lens.Lens' Addon (Prelude.Maybe Prelude.Text)
addon_addonArn :: Lens' Addon (Maybe Text)
addon_addonArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Addon' {Maybe Text
addonArn :: Maybe Text
$sel:addonArn:Addon' :: Addon -> Maybe Text
addonArn} -> Maybe Text
addonArn) (\s :: Addon
s@Addon' {} Maybe Text
a -> Addon
s {$sel:addonArn:Addon' :: Maybe Text
addonArn = Maybe Text
a} :: Addon)

-- | The name of the add-on.
addon_addonName :: Lens.Lens' Addon (Prelude.Maybe Prelude.Text)
addon_addonName :: Lens' Addon (Maybe Text)
addon_addonName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Addon' {Maybe Text
addonName :: Maybe Text
$sel:addonName:Addon' :: Addon -> Maybe Text
addonName} -> Maybe Text
addonName) (\s :: Addon
s@Addon' {} Maybe Text
a -> Addon
s {$sel:addonName:Addon' :: Maybe Text
addonName = Maybe Text
a} :: Addon)

-- | The version of the add-on.
addon_addonVersion :: Lens.Lens' Addon (Prelude.Maybe Prelude.Text)
addon_addonVersion :: Lens' Addon (Maybe Text)
addon_addonVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Addon' {Maybe Text
addonVersion :: Maybe Text
$sel:addonVersion:Addon' :: Addon -> Maybe Text
addonVersion} -> Maybe Text
addonVersion) (\s :: Addon
s@Addon' {} Maybe Text
a -> Addon
s {$sel:addonVersion:Addon' :: Maybe Text
addonVersion = Maybe Text
a} :: Addon)

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

-- | The configuration values that you provided.
addon_configurationValues :: Lens.Lens' Addon (Prelude.Maybe Prelude.Text)
addon_configurationValues :: Lens' Addon (Maybe Text)
addon_configurationValues = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Addon' {Maybe Text
configurationValues :: Maybe Text
$sel:configurationValues:Addon' :: Addon -> Maybe Text
configurationValues} -> Maybe Text
configurationValues) (\s :: Addon
s@Addon' {} Maybe Text
a -> Addon
s {$sel:configurationValues:Addon' :: Maybe Text
configurationValues = Maybe Text
a} :: Addon)

-- | The date and time that the add-on was created.
addon_createdAt :: Lens.Lens' Addon (Prelude.Maybe Prelude.UTCTime)
addon_createdAt :: Lens' Addon (Maybe UTCTime)
addon_createdAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Addon' {Maybe POSIX
createdAt :: Maybe POSIX
$sel:createdAt:Addon' :: Addon -> Maybe POSIX
createdAt} -> Maybe POSIX
createdAt) (\s :: Addon
s@Addon' {} Maybe POSIX
a -> Addon
s {$sel:createdAt:Addon' :: Maybe POSIX
createdAt = Maybe POSIX
a} :: Addon) 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

-- | An object that represents the health of the add-on.
addon_health :: Lens.Lens' Addon (Prelude.Maybe AddonHealth)
addon_health :: Lens' Addon (Maybe AddonHealth)
addon_health = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Addon' {Maybe AddonHealth
health :: Maybe AddonHealth
$sel:health:Addon' :: Addon -> Maybe AddonHealth
health} -> Maybe AddonHealth
health) (\s :: Addon
s@Addon' {} Maybe AddonHealth
a -> Addon
s {$sel:health:Addon' :: Maybe AddonHealth
health = Maybe AddonHealth
a} :: Addon)

-- | Information about an Amazon EKS add-on from the Amazon Web Services
-- Marketplace.
addon_marketplaceInformation :: Lens.Lens' Addon (Prelude.Maybe MarketplaceInformation)
addon_marketplaceInformation :: Lens' Addon (Maybe MarketplaceInformation)
addon_marketplaceInformation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Addon' {Maybe MarketplaceInformation
marketplaceInformation :: Maybe MarketplaceInformation
$sel:marketplaceInformation:Addon' :: Addon -> Maybe MarketplaceInformation
marketplaceInformation} -> Maybe MarketplaceInformation
marketplaceInformation) (\s :: Addon
s@Addon' {} Maybe MarketplaceInformation
a -> Addon
s {$sel:marketplaceInformation:Addon' :: Maybe MarketplaceInformation
marketplaceInformation = Maybe MarketplaceInformation
a} :: Addon)

-- | The date and time that the add-on was last modified.
addon_modifiedAt :: Lens.Lens' Addon (Prelude.Maybe Prelude.UTCTime)
addon_modifiedAt :: Lens' Addon (Maybe UTCTime)
addon_modifiedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Addon' {Maybe POSIX
modifiedAt :: Maybe POSIX
$sel:modifiedAt:Addon' :: Addon -> Maybe POSIX
modifiedAt} -> Maybe POSIX
modifiedAt) (\s :: Addon
s@Addon' {} Maybe POSIX
a -> Addon
s {$sel:modifiedAt:Addon' :: Maybe POSIX
modifiedAt = Maybe POSIX
a} :: Addon) 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 owner of the add-on.
addon_owner :: Lens.Lens' Addon (Prelude.Maybe Prelude.Text)
addon_owner :: Lens' Addon (Maybe Text)
addon_owner = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Addon' {Maybe Text
owner :: Maybe Text
$sel:owner:Addon' :: Addon -> Maybe Text
owner} -> Maybe Text
owner) (\s :: Addon
s@Addon' {} Maybe Text
a -> Addon
s {$sel:owner:Addon' :: Maybe Text
owner = Maybe Text
a} :: Addon)

-- | The publisher of the add-on.
addon_publisher :: Lens.Lens' Addon (Prelude.Maybe Prelude.Text)
addon_publisher :: Lens' Addon (Maybe Text)
addon_publisher = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Addon' {Maybe Text
publisher :: Maybe Text
$sel:publisher:Addon' :: Addon -> Maybe Text
publisher} -> Maybe Text
publisher) (\s :: Addon
s@Addon' {} Maybe Text
a -> Addon
s {$sel:publisher:Addon' :: Maybe Text
publisher = Maybe Text
a} :: Addon)

-- | The Amazon Resource Name (ARN) of the IAM role that\'s bound to the
-- Kubernetes service account that the add-on uses.
addon_serviceAccountRoleArn :: Lens.Lens' Addon (Prelude.Maybe Prelude.Text)
addon_serviceAccountRoleArn :: Lens' Addon (Maybe Text)
addon_serviceAccountRoleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Addon' {Maybe Text
serviceAccountRoleArn :: Maybe Text
$sel:serviceAccountRoleArn:Addon' :: Addon -> Maybe Text
serviceAccountRoleArn} -> Maybe Text
serviceAccountRoleArn) (\s :: Addon
s@Addon' {} Maybe Text
a -> Addon
s {$sel:serviceAccountRoleArn:Addon' :: Maybe Text
serviceAccountRoleArn = Maybe Text
a} :: Addon)

-- | The status of the add-on.
addon_status :: Lens.Lens' Addon (Prelude.Maybe AddonStatus)
addon_status :: Lens' Addon (Maybe AddonStatus)
addon_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Addon' {Maybe AddonStatus
status :: Maybe AddonStatus
$sel:status:Addon' :: Addon -> Maybe AddonStatus
status} -> Maybe AddonStatus
status) (\s :: Addon
s@Addon' {} Maybe AddonStatus
a -> Addon
s {$sel:status:Addon' :: Maybe AddonStatus
status = Maybe AddonStatus
a} :: Addon)

-- | The metadata that you apply to the add-on to assist with categorization
-- and organization. Each tag consists of a key and an optional value. You
-- define both. Add-on tags do not propagate to any other resources
-- associated with the cluster.
addon_tags :: Lens.Lens' Addon (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
addon_tags :: Lens' Addon (Maybe (HashMap Text Text))
addon_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Addon' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:Addon' :: Addon -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: Addon
s@Addon' {} Maybe (HashMap Text Text)
a -> Addon
s {$sel:tags:Addon' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: Addon) 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

instance Data.FromJSON Addon where
  parseJSON :: Value -> Parser Addon
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"Addon"
      ( \Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe AddonHealth
-> Maybe MarketplaceInformation
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe AddonStatus
-> Maybe (HashMap Text Text)
-> Addon
Addon'
            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
"addonArn")
            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
"addonName")
            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
"addonVersion")
            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
"clusterName")
            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
"configurationValues")
            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
"createdAt")
            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
"health")
            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
"marketplaceInformation")
            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
"modifiedAt")
            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
"publisher")
            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
"serviceAccountRoleArn")
            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
"status")
            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)
      )

instance Prelude.Hashable Addon where
  hashWithSalt :: Int -> Addon -> Int
hashWithSalt Int
_salt Addon' {Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Maybe AddonHealth
Maybe AddonStatus
Maybe MarketplaceInformation
tags :: Maybe (HashMap Text Text)
status :: Maybe AddonStatus
serviceAccountRoleArn :: Maybe Text
publisher :: Maybe Text
owner :: Maybe Text
modifiedAt :: Maybe POSIX
marketplaceInformation :: Maybe MarketplaceInformation
health :: Maybe AddonHealth
createdAt :: Maybe POSIX
configurationValues :: Maybe Text
clusterName :: Maybe Text
addonVersion :: Maybe Text
addonName :: Maybe Text
addonArn :: Maybe Text
$sel:tags:Addon' :: Addon -> Maybe (HashMap Text Text)
$sel:status:Addon' :: Addon -> Maybe AddonStatus
$sel:serviceAccountRoleArn:Addon' :: Addon -> Maybe Text
$sel:publisher:Addon' :: Addon -> Maybe Text
$sel:owner:Addon' :: Addon -> Maybe Text
$sel:modifiedAt:Addon' :: Addon -> Maybe POSIX
$sel:marketplaceInformation:Addon' :: Addon -> Maybe MarketplaceInformation
$sel:health:Addon' :: Addon -> Maybe AddonHealth
$sel:createdAt:Addon' :: Addon -> Maybe POSIX
$sel:configurationValues:Addon' :: Addon -> Maybe Text
$sel:clusterName:Addon' :: Addon -> Maybe Text
$sel:addonVersion:Addon' :: Addon -> Maybe Text
$sel:addonName:Addon' :: Addon -> Maybe Text
$sel:addonArn:Addon' :: Addon -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
addonArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
addonName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
addonVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clusterName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
configurationValues
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
createdAt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AddonHealth
health
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MarketplaceInformation
marketplaceInformation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
modifiedAt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
owner
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
publisher
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
serviceAccountRoleArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AddonStatus
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
tags

instance Prelude.NFData Addon where
  rnf :: Addon -> ()
rnf Addon' {Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Maybe AddonHealth
Maybe AddonStatus
Maybe MarketplaceInformation
tags :: Maybe (HashMap Text Text)
status :: Maybe AddonStatus
serviceAccountRoleArn :: Maybe Text
publisher :: Maybe Text
owner :: Maybe Text
modifiedAt :: Maybe POSIX
marketplaceInformation :: Maybe MarketplaceInformation
health :: Maybe AddonHealth
createdAt :: Maybe POSIX
configurationValues :: Maybe Text
clusterName :: Maybe Text
addonVersion :: Maybe Text
addonName :: Maybe Text
addonArn :: Maybe Text
$sel:tags:Addon' :: Addon -> Maybe (HashMap Text Text)
$sel:status:Addon' :: Addon -> Maybe AddonStatus
$sel:serviceAccountRoleArn:Addon' :: Addon -> Maybe Text
$sel:publisher:Addon' :: Addon -> Maybe Text
$sel:owner:Addon' :: Addon -> Maybe Text
$sel:modifiedAt:Addon' :: Addon -> Maybe POSIX
$sel:marketplaceInformation:Addon' :: Addon -> Maybe MarketplaceInformation
$sel:health:Addon' :: Addon -> Maybe AddonHealth
$sel:createdAt:Addon' :: Addon -> Maybe POSIX
$sel:configurationValues:Addon' :: Addon -> Maybe Text
$sel:clusterName:Addon' :: Addon -> Maybe Text
$sel:addonVersion:Addon' :: Addon -> Maybe Text
$sel:addonName:Addon' :: Addon -> Maybe Text
$sel:addonArn:Addon' :: Addon -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
addonArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
addonName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
addonVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clusterName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
configurationValues
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createdAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AddonHealth
health
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MarketplaceInformation
marketplaceInformation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
modifiedAt
      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 Text
publisher
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
serviceAccountRoleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AddonStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags