{-# 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.SSM.Types.ParameterHistory
-- 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.SSM.Types.ParameterHistory 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.SSM.Types.ParameterInlinePolicy
import Amazonka.SSM.Types.ParameterTier
import Amazonka.SSM.Types.ParameterType

-- | Information about parameter usage.
--
-- /See:/ 'newParameterHistory' smart constructor.
data ParameterHistory = ParameterHistory'
  { -- | Parameter names can include the following letters and symbols.
    --
    -- a-zA-Z0-9_.-
    ParameterHistory -> Maybe Text
allowedPattern :: Prelude.Maybe Prelude.Text,
    -- | The data type of the parameter, such as @text@ or @aws:ec2:image@. The
    -- default is @text@.
    ParameterHistory -> Maybe Text
dataType :: Prelude.Maybe Prelude.Text,
    -- | Information about the parameter.
    ParameterHistory -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The ID of the query key used for this parameter.
    ParameterHistory -> Maybe Text
keyId :: Prelude.Maybe Prelude.Text,
    -- | Labels assigned to the parameter version.
    ParameterHistory -> Maybe (NonEmpty Text)
labels :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
    -- | Date the parameter was last changed or updated.
    ParameterHistory -> Maybe POSIX
lastModifiedDate :: Prelude.Maybe Data.POSIX,
    -- | Amazon Resource Name (ARN) of the Amazon Web Services user who last
    -- changed the parameter.
    ParameterHistory -> Maybe Text
lastModifiedUser :: Prelude.Maybe Prelude.Text,
    -- | The name of the parameter.
    ParameterHistory -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | Information about the policies assigned to a parameter.
    --
    -- <https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-policies.html Assigning parameter policies>
    -- in the /Amazon Web Services Systems Manager User Guide/.
    ParameterHistory -> Maybe [ParameterInlinePolicy]
policies :: Prelude.Maybe [ParameterInlinePolicy],
    -- | The parameter tier.
    ParameterHistory -> Maybe ParameterTier
tier :: Prelude.Maybe ParameterTier,
    -- | The type of parameter used.
    ParameterHistory -> Maybe ParameterType
type' :: Prelude.Maybe ParameterType,
    -- | The parameter value.
    ParameterHistory -> Maybe (Sensitive Text)
value :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | The parameter version.
    ParameterHistory -> Maybe Integer
version :: Prelude.Maybe Prelude.Integer
  }
  deriving (ParameterHistory -> ParameterHistory -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ParameterHistory -> ParameterHistory -> Bool
$c/= :: ParameterHistory -> ParameterHistory -> Bool
== :: ParameterHistory -> ParameterHistory -> Bool
$c== :: ParameterHistory -> ParameterHistory -> Bool
Prelude.Eq, Int -> ParameterHistory -> ShowS
[ParameterHistory] -> ShowS
ParameterHistory -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ParameterHistory] -> ShowS
$cshowList :: [ParameterHistory] -> ShowS
show :: ParameterHistory -> String
$cshow :: ParameterHistory -> String
showsPrec :: Int -> ParameterHistory -> ShowS
$cshowsPrec :: Int -> ParameterHistory -> ShowS
Prelude.Show, forall x. Rep ParameterHistory x -> ParameterHistory
forall x. ParameterHistory -> Rep ParameterHistory x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ParameterHistory x -> ParameterHistory
$cfrom :: forall x. ParameterHistory -> Rep ParameterHistory x
Prelude.Generic)

-- |
-- Create a value of 'ParameterHistory' 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:
--
-- 'allowedPattern', 'parameterHistory_allowedPattern' - Parameter names can include the following letters and symbols.
--
-- a-zA-Z0-9_.-
--
-- 'dataType', 'parameterHistory_dataType' - The data type of the parameter, such as @text@ or @aws:ec2:image@. The
-- default is @text@.
--
-- 'description', 'parameterHistory_description' - Information about the parameter.
--
-- 'keyId', 'parameterHistory_keyId' - The ID of the query key used for this parameter.
--
-- 'labels', 'parameterHistory_labels' - Labels assigned to the parameter version.
--
-- 'lastModifiedDate', 'parameterHistory_lastModifiedDate' - Date the parameter was last changed or updated.
--
-- 'lastModifiedUser', 'parameterHistory_lastModifiedUser' - Amazon Resource Name (ARN) of the Amazon Web Services user who last
-- changed the parameter.
--
-- 'name', 'parameterHistory_name' - The name of the parameter.
--
-- 'policies', 'parameterHistory_policies' - Information about the policies assigned to a parameter.
--
-- <https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-policies.html Assigning parameter policies>
-- in the /Amazon Web Services Systems Manager User Guide/.
--
-- 'tier', 'parameterHistory_tier' - The parameter tier.
--
-- 'type'', 'parameterHistory_type' - The type of parameter used.
--
-- 'value', 'parameterHistory_value' - The parameter value.
--
-- 'version', 'parameterHistory_version' - The parameter version.
newParameterHistory ::
  ParameterHistory
newParameterHistory :: ParameterHistory
newParameterHistory =
  ParameterHistory'
    { $sel:allowedPattern:ParameterHistory' :: Maybe Text
allowedPattern = forall a. Maybe a
Prelude.Nothing,
      $sel:dataType:ParameterHistory' :: Maybe Text
dataType = forall a. Maybe a
Prelude.Nothing,
      $sel:description:ParameterHistory' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:keyId:ParameterHistory' :: Maybe Text
keyId = forall a. Maybe a
Prelude.Nothing,
      $sel:labels:ParameterHistory' :: Maybe (NonEmpty Text)
labels = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedDate:ParameterHistory' :: Maybe POSIX
lastModifiedDate = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedUser:ParameterHistory' :: Maybe Text
lastModifiedUser = forall a. Maybe a
Prelude.Nothing,
      $sel:name:ParameterHistory' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:policies:ParameterHistory' :: Maybe [ParameterInlinePolicy]
policies = forall a. Maybe a
Prelude.Nothing,
      $sel:tier:ParameterHistory' :: Maybe ParameterTier
tier = forall a. Maybe a
Prelude.Nothing,
      $sel:type':ParameterHistory' :: Maybe ParameterType
type' = forall a. Maybe a
Prelude.Nothing,
      $sel:value:ParameterHistory' :: Maybe (Sensitive Text)
value = forall a. Maybe a
Prelude.Nothing,
      $sel:version:ParameterHistory' :: Maybe Integer
version = forall a. Maybe a
Prelude.Nothing
    }

-- | Parameter names can include the following letters and symbols.
--
-- a-zA-Z0-9_.-
parameterHistory_allowedPattern :: Lens.Lens' ParameterHistory (Prelude.Maybe Prelude.Text)
parameterHistory_allowedPattern :: Lens' ParameterHistory (Maybe Text)
parameterHistory_allowedPattern = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ParameterHistory' {Maybe Text
allowedPattern :: Maybe Text
$sel:allowedPattern:ParameterHistory' :: ParameterHistory -> Maybe Text
allowedPattern} -> Maybe Text
allowedPattern) (\s :: ParameterHistory
s@ParameterHistory' {} Maybe Text
a -> ParameterHistory
s {$sel:allowedPattern:ParameterHistory' :: Maybe Text
allowedPattern = Maybe Text
a} :: ParameterHistory)

-- | The data type of the parameter, such as @text@ or @aws:ec2:image@. The
-- default is @text@.
parameterHistory_dataType :: Lens.Lens' ParameterHistory (Prelude.Maybe Prelude.Text)
parameterHistory_dataType :: Lens' ParameterHistory (Maybe Text)
parameterHistory_dataType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ParameterHistory' {Maybe Text
dataType :: Maybe Text
$sel:dataType:ParameterHistory' :: ParameterHistory -> Maybe Text
dataType} -> Maybe Text
dataType) (\s :: ParameterHistory
s@ParameterHistory' {} Maybe Text
a -> ParameterHistory
s {$sel:dataType:ParameterHistory' :: Maybe Text
dataType = Maybe Text
a} :: ParameterHistory)

-- | Information about the parameter.
parameterHistory_description :: Lens.Lens' ParameterHistory (Prelude.Maybe Prelude.Text)
parameterHistory_description :: Lens' ParameterHistory (Maybe Text)
parameterHistory_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ParameterHistory' {Maybe Text
description :: Maybe Text
$sel:description:ParameterHistory' :: ParameterHistory -> Maybe Text
description} -> Maybe Text
description) (\s :: ParameterHistory
s@ParameterHistory' {} Maybe Text
a -> ParameterHistory
s {$sel:description:ParameterHistory' :: Maybe Text
description = Maybe Text
a} :: ParameterHistory)

-- | The ID of the query key used for this parameter.
parameterHistory_keyId :: Lens.Lens' ParameterHistory (Prelude.Maybe Prelude.Text)
parameterHistory_keyId :: Lens' ParameterHistory (Maybe Text)
parameterHistory_keyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ParameterHistory' {Maybe Text
keyId :: Maybe Text
$sel:keyId:ParameterHistory' :: ParameterHistory -> Maybe Text
keyId} -> Maybe Text
keyId) (\s :: ParameterHistory
s@ParameterHistory' {} Maybe Text
a -> ParameterHistory
s {$sel:keyId:ParameterHistory' :: Maybe Text
keyId = Maybe Text
a} :: ParameterHistory)

-- | Labels assigned to the parameter version.
parameterHistory_labels :: Lens.Lens' ParameterHistory (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
parameterHistory_labels :: Lens' ParameterHistory (Maybe (NonEmpty Text))
parameterHistory_labels = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ParameterHistory' {Maybe (NonEmpty Text)
labels :: Maybe (NonEmpty Text)
$sel:labels:ParameterHistory' :: ParameterHistory -> Maybe (NonEmpty Text)
labels} -> Maybe (NonEmpty Text)
labels) (\s :: ParameterHistory
s@ParameterHistory' {} Maybe (NonEmpty Text)
a -> ParameterHistory
s {$sel:labels:ParameterHistory' :: Maybe (NonEmpty Text)
labels = Maybe (NonEmpty Text)
a} :: ParameterHistory) 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

-- | Date the parameter was last changed or updated.
parameterHistory_lastModifiedDate :: Lens.Lens' ParameterHistory (Prelude.Maybe Prelude.UTCTime)
parameterHistory_lastModifiedDate :: Lens' ParameterHistory (Maybe UTCTime)
parameterHistory_lastModifiedDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ParameterHistory' {Maybe POSIX
lastModifiedDate :: Maybe POSIX
$sel:lastModifiedDate:ParameterHistory' :: ParameterHistory -> Maybe POSIX
lastModifiedDate} -> Maybe POSIX
lastModifiedDate) (\s :: ParameterHistory
s@ParameterHistory' {} Maybe POSIX
a -> ParameterHistory
s {$sel:lastModifiedDate:ParameterHistory' :: Maybe POSIX
lastModifiedDate = Maybe POSIX
a} :: ParameterHistory) 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

-- | Amazon Resource Name (ARN) of the Amazon Web Services user who last
-- changed the parameter.
parameterHistory_lastModifiedUser :: Lens.Lens' ParameterHistory (Prelude.Maybe Prelude.Text)
parameterHistory_lastModifiedUser :: Lens' ParameterHistory (Maybe Text)
parameterHistory_lastModifiedUser = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ParameterHistory' {Maybe Text
lastModifiedUser :: Maybe Text
$sel:lastModifiedUser:ParameterHistory' :: ParameterHistory -> Maybe Text
lastModifiedUser} -> Maybe Text
lastModifiedUser) (\s :: ParameterHistory
s@ParameterHistory' {} Maybe Text
a -> ParameterHistory
s {$sel:lastModifiedUser:ParameterHistory' :: Maybe Text
lastModifiedUser = Maybe Text
a} :: ParameterHistory)

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

-- | Information about the policies assigned to a parameter.
--
-- <https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-policies.html Assigning parameter policies>
-- in the /Amazon Web Services Systems Manager User Guide/.
parameterHistory_policies :: Lens.Lens' ParameterHistory (Prelude.Maybe [ParameterInlinePolicy])
parameterHistory_policies :: Lens' ParameterHistory (Maybe [ParameterInlinePolicy])
parameterHistory_policies = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ParameterHistory' {Maybe [ParameterInlinePolicy]
policies :: Maybe [ParameterInlinePolicy]
$sel:policies:ParameterHistory' :: ParameterHistory -> Maybe [ParameterInlinePolicy]
policies} -> Maybe [ParameterInlinePolicy]
policies) (\s :: ParameterHistory
s@ParameterHistory' {} Maybe [ParameterInlinePolicy]
a -> ParameterHistory
s {$sel:policies:ParameterHistory' :: Maybe [ParameterInlinePolicy]
policies = Maybe [ParameterInlinePolicy]
a} :: ParameterHistory) 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 parameter tier.
parameterHistory_tier :: Lens.Lens' ParameterHistory (Prelude.Maybe ParameterTier)
parameterHistory_tier :: Lens' ParameterHistory (Maybe ParameterTier)
parameterHistory_tier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ParameterHistory' {Maybe ParameterTier
tier :: Maybe ParameterTier
$sel:tier:ParameterHistory' :: ParameterHistory -> Maybe ParameterTier
tier} -> Maybe ParameterTier
tier) (\s :: ParameterHistory
s@ParameterHistory' {} Maybe ParameterTier
a -> ParameterHistory
s {$sel:tier:ParameterHistory' :: Maybe ParameterTier
tier = Maybe ParameterTier
a} :: ParameterHistory)

-- | The type of parameter used.
parameterHistory_type :: Lens.Lens' ParameterHistory (Prelude.Maybe ParameterType)
parameterHistory_type :: Lens' ParameterHistory (Maybe ParameterType)
parameterHistory_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ParameterHistory' {Maybe ParameterType
type' :: Maybe ParameterType
$sel:type':ParameterHistory' :: ParameterHistory -> Maybe ParameterType
type'} -> Maybe ParameterType
type') (\s :: ParameterHistory
s@ParameterHistory' {} Maybe ParameterType
a -> ParameterHistory
s {$sel:type':ParameterHistory' :: Maybe ParameterType
type' = Maybe ParameterType
a} :: ParameterHistory)

-- | The parameter value.
parameterHistory_value :: Lens.Lens' ParameterHistory (Prelude.Maybe Prelude.Text)
parameterHistory_value :: Lens' ParameterHistory (Maybe Text)
parameterHistory_value = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ParameterHistory' {Maybe (Sensitive Text)
value :: Maybe (Sensitive Text)
$sel:value:ParameterHistory' :: ParameterHistory -> Maybe (Sensitive Text)
value} -> Maybe (Sensitive Text)
value) (\s :: ParameterHistory
s@ParameterHistory' {} Maybe (Sensitive Text)
a -> ParameterHistory
s {$sel:value:ParameterHistory' :: Maybe (Sensitive Text)
value = Maybe (Sensitive Text)
a} :: ParameterHistory) 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. Iso' (Sensitive a) a
Data._Sensitive

-- | The parameter version.
parameterHistory_version :: Lens.Lens' ParameterHistory (Prelude.Maybe Prelude.Integer)
parameterHistory_version :: Lens' ParameterHistory (Maybe Integer)
parameterHistory_version = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ParameterHistory' {Maybe Integer
version :: Maybe Integer
$sel:version:ParameterHistory' :: ParameterHistory -> Maybe Integer
version} -> Maybe Integer
version) (\s :: ParameterHistory
s@ParameterHistory' {} Maybe Integer
a -> ParameterHistory
s {$sel:version:ParameterHistory' :: Maybe Integer
version = Maybe Integer
a} :: ParameterHistory)

instance Data.FromJSON ParameterHistory where
  parseJSON :: Value -> Parser ParameterHistory
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"ParameterHistory"
      ( \Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe (NonEmpty Text)
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe [ParameterInlinePolicy]
-> Maybe ParameterTier
-> Maybe ParameterType
-> Maybe (Sensitive Text)
-> Maybe Integer
-> ParameterHistory
ParameterHistory'
            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
"AllowedPattern")
            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
"DataType")
            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
"KeyId")
            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
"Labels")
            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
"LastModifiedDate")
            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
"LastModifiedUser")
            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
"Policies" 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
"Tier")
            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
"Value")
            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 ParameterHistory where
  hashWithSalt :: Int -> ParameterHistory -> Int
hashWithSalt Int
_salt ParameterHistory' {Maybe Integer
Maybe [ParameterInlinePolicy]
Maybe (NonEmpty Text)
Maybe Text
Maybe (Sensitive Text)
Maybe POSIX
Maybe ParameterTier
Maybe ParameterType
version :: Maybe Integer
value :: Maybe (Sensitive Text)
type' :: Maybe ParameterType
tier :: Maybe ParameterTier
policies :: Maybe [ParameterInlinePolicy]
name :: Maybe Text
lastModifiedUser :: Maybe Text
lastModifiedDate :: Maybe POSIX
labels :: Maybe (NonEmpty Text)
keyId :: Maybe Text
description :: Maybe Text
dataType :: Maybe Text
allowedPattern :: Maybe Text
$sel:version:ParameterHistory' :: ParameterHistory -> Maybe Integer
$sel:value:ParameterHistory' :: ParameterHistory -> Maybe (Sensitive Text)
$sel:type':ParameterHistory' :: ParameterHistory -> Maybe ParameterType
$sel:tier:ParameterHistory' :: ParameterHistory -> Maybe ParameterTier
$sel:policies:ParameterHistory' :: ParameterHistory -> Maybe [ParameterInlinePolicy]
$sel:name:ParameterHistory' :: ParameterHistory -> Maybe Text
$sel:lastModifiedUser:ParameterHistory' :: ParameterHistory -> Maybe Text
$sel:lastModifiedDate:ParameterHistory' :: ParameterHistory -> Maybe POSIX
$sel:labels:ParameterHistory' :: ParameterHistory -> Maybe (NonEmpty Text)
$sel:keyId:ParameterHistory' :: ParameterHistory -> Maybe Text
$sel:description:ParameterHistory' :: ParameterHistory -> Maybe Text
$sel:dataType:ParameterHistory' :: ParameterHistory -> Maybe Text
$sel:allowedPattern:ParameterHistory' :: ParameterHistory -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
allowedPattern
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dataType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
keyId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Text)
labels
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastModifiedDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
lastModifiedUser
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [ParameterInlinePolicy]
policies
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ParameterTier
tier
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ParameterType
type'
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
value
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
version

instance Prelude.NFData ParameterHistory where
  rnf :: ParameterHistory -> ()
rnf ParameterHistory' {Maybe Integer
Maybe [ParameterInlinePolicy]
Maybe (NonEmpty Text)
Maybe Text
Maybe (Sensitive Text)
Maybe POSIX
Maybe ParameterTier
Maybe ParameterType
version :: Maybe Integer
value :: Maybe (Sensitive Text)
type' :: Maybe ParameterType
tier :: Maybe ParameterTier
policies :: Maybe [ParameterInlinePolicy]
name :: Maybe Text
lastModifiedUser :: Maybe Text
lastModifiedDate :: Maybe POSIX
labels :: Maybe (NonEmpty Text)
keyId :: Maybe Text
description :: Maybe Text
dataType :: Maybe Text
allowedPattern :: Maybe Text
$sel:version:ParameterHistory' :: ParameterHistory -> Maybe Integer
$sel:value:ParameterHistory' :: ParameterHistory -> Maybe (Sensitive Text)
$sel:type':ParameterHistory' :: ParameterHistory -> Maybe ParameterType
$sel:tier:ParameterHistory' :: ParameterHistory -> Maybe ParameterTier
$sel:policies:ParameterHistory' :: ParameterHistory -> Maybe [ParameterInlinePolicy]
$sel:name:ParameterHistory' :: ParameterHistory -> Maybe Text
$sel:lastModifiedUser:ParameterHistory' :: ParameterHistory -> Maybe Text
$sel:lastModifiedDate:ParameterHistory' :: ParameterHistory -> Maybe POSIX
$sel:labels:ParameterHistory' :: ParameterHistory -> Maybe (NonEmpty Text)
$sel:keyId:ParameterHistory' :: ParameterHistory -> Maybe Text
$sel:description:ParameterHistory' :: ParameterHistory -> Maybe Text
$sel:dataType:ParameterHistory' :: ParameterHistory -> Maybe Text
$sel:allowedPattern:ParameterHistory' :: ParameterHistory -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
allowedPattern
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dataType
      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
keyId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Text)
labels
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModifiedDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lastModifiedUser
      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 [ParameterInlinePolicy]
policies
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ParameterTier
tier
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ParameterType
type'
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
value
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
version