{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.CloudFront.UpdateFieldLevelEncryptionProfile
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Update a field-level encryption profile.
module Amazonka.CloudFront.UpdateFieldLevelEncryptionProfile
  ( -- * Creating a Request
    UpdateFieldLevelEncryptionProfile (..),
    newUpdateFieldLevelEncryptionProfile,

    -- * Request Lenses
    updateFieldLevelEncryptionProfile_ifMatch,
    updateFieldLevelEncryptionProfile_fieldLevelEncryptionProfileConfig,
    updateFieldLevelEncryptionProfile_id,

    -- * Destructuring the Response
    UpdateFieldLevelEncryptionProfileResponse (..),
    newUpdateFieldLevelEncryptionProfileResponse,

    -- * Response Lenses
    updateFieldLevelEncryptionProfileResponse_eTag,
    updateFieldLevelEncryptionProfileResponse_fieldLevelEncryptionProfile,
    updateFieldLevelEncryptionProfileResponse_httpStatus,
  )
where

import Amazonka.CloudFront.Types
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 qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newUpdateFieldLevelEncryptionProfile' smart constructor.
data UpdateFieldLevelEncryptionProfile = UpdateFieldLevelEncryptionProfile'
  { -- | The value of the @ETag@ header that you received when retrieving the
    -- profile identity to update. For example: @E2QWRUHAPOMQZL@.
    UpdateFieldLevelEncryptionProfile -> Maybe Text
ifMatch :: Prelude.Maybe Prelude.Text,
    -- | Request to update a field-level encryption profile.
    UpdateFieldLevelEncryptionProfile
-> FieldLevelEncryptionProfileConfig
fieldLevelEncryptionProfileConfig :: FieldLevelEncryptionProfileConfig,
    -- | The ID of the field-level encryption profile request.
    UpdateFieldLevelEncryptionProfile -> Text
id :: Prelude.Text
  }
  deriving (UpdateFieldLevelEncryptionProfile
-> UpdateFieldLevelEncryptionProfile -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateFieldLevelEncryptionProfile
-> UpdateFieldLevelEncryptionProfile -> Bool
$c/= :: UpdateFieldLevelEncryptionProfile
-> UpdateFieldLevelEncryptionProfile -> Bool
== :: UpdateFieldLevelEncryptionProfile
-> UpdateFieldLevelEncryptionProfile -> Bool
$c== :: UpdateFieldLevelEncryptionProfile
-> UpdateFieldLevelEncryptionProfile -> Bool
Prelude.Eq, ReadPrec [UpdateFieldLevelEncryptionProfile]
ReadPrec UpdateFieldLevelEncryptionProfile
Int -> ReadS UpdateFieldLevelEncryptionProfile
ReadS [UpdateFieldLevelEncryptionProfile]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateFieldLevelEncryptionProfile]
$creadListPrec :: ReadPrec [UpdateFieldLevelEncryptionProfile]
readPrec :: ReadPrec UpdateFieldLevelEncryptionProfile
$creadPrec :: ReadPrec UpdateFieldLevelEncryptionProfile
readList :: ReadS [UpdateFieldLevelEncryptionProfile]
$creadList :: ReadS [UpdateFieldLevelEncryptionProfile]
readsPrec :: Int -> ReadS UpdateFieldLevelEncryptionProfile
$creadsPrec :: Int -> ReadS UpdateFieldLevelEncryptionProfile
Prelude.Read, Int -> UpdateFieldLevelEncryptionProfile -> ShowS
[UpdateFieldLevelEncryptionProfile] -> ShowS
UpdateFieldLevelEncryptionProfile -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateFieldLevelEncryptionProfile] -> ShowS
$cshowList :: [UpdateFieldLevelEncryptionProfile] -> ShowS
show :: UpdateFieldLevelEncryptionProfile -> String
$cshow :: UpdateFieldLevelEncryptionProfile -> String
showsPrec :: Int -> UpdateFieldLevelEncryptionProfile -> ShowS
$cshowsPrec :: Int -> UpdateFieldLevelEncryptionProfile -> ShowS
Prelude.Show, forall x.
Rep UpdateFieldLevelEncryptionProfile x
-> UpdateFieldLevelEncryptionProfile
forall x.
UpdateFieldLevelEncryptionProfile
-> Rep UpdateFieldLevelEncryptionProfile x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateFieldLevelEncryptionProfile x
-> UpdateFieldLevelEncryptionProfile
$cfrom :: forall x.
UpdateFieldLevelEncryptionProfile
-> Rep UpdateFieldLevelEncryptionProfile x
Prelude.Generic)

-- |
-- Create a value of 'UpdateFieldLevelEncryptionProfile' 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:
--
-- 'ifMatch', 'updateFieldLevelEncryptionProfile_ifMatch' - The value of the @ETag@ header that you received when retrieving the
-- profile identity to update. For example: @E2QWRUHAPOMQZL@.
--
-- 'fieldLevelEncryptionProfileConfig', 'updateFieldLevelEncryptionProfile_fieldLevelEncryptionProfileConfig' - Request to update a field-level encryption profile.
--
-- 'id', 'updateFieldLevelEncryptionProfile_id' - The ID of the field-level encryption profile request.
newUpdateFieldLevelEncryptionProfile ::
  -- | 'fieldLevelEncryptionProfileConfig'
  FieldLevelEncryptionProfileConfig ->
  -- | 'id'
  Prelude.Text ->
  UpdateFieldLevelEncryptionProfile
newUpdateFieldLevelEncryptionProfile :: FieldLevelEncryptionProfileConfig
-> Text -> UpdateFieldLevelEncryptionProfile
newUpdateFieldLevelEncryptionProfile
  FieldLevelEncryptionProfileConfig
pFieldLevelEncryptionProfileConfig_
  Text
pId_ =
    UpdateFieldLevelEncryptionProfile'
      { $sel:ifMatch:UpdateFieldLevelEncryptionProfile' :: Maybe Text
ifMatch =
          forall a. Maybe a
Prelude.Nothing,
        $sel:fieldLevelEncryptionProfileConfig:UpdateFieldLevelEncryptionProfile' :: FieldLevelEncryptionProfileConfig
fieldLevelEncryptionProfileConfig =
          FieldLevelEncryptionProfileConfig
pFieldLevelEncryptionProfileConfig_,
        $sel:id:UpdateFieldLevelEncryptionProfile' :: Text
id = Text
pId_
      }

-- | The value of the @ETag@ header that you received when retrieving the
-- profile identity to update. For example: @E2QWRUHAPOMQZL@.
updateFieldLevelEncryptionProfile_ifMatch :: Lens.Lens' UpdateFieldLevelEncryptionProfile (Prelude.Maybe Prelude.Text)
updateFieldLevelEncryptionProfile_ifMatch :: Lens' UpdateFieldLevelEncryptionProfile (Maybe Text)
updateFieldLevelEncryptionProfile_ifMatch = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateFieldLevelEncryptionProfile' {Maybe Text
ifMatch :: Maybe Text
$sel:ifMatch:UpdateFieldLevelEncryptionProfile' :: UpdateFieldLevelEncryptionProfile -> Maybe Text
ifMatch} -> Maybe Text
ifMatch) (\s :: UpdateFieldLevelEncryptionProfile
s@UpdateFieldLevelEncryptionProfile' {} Maybe Text
a -> UpdateFieldLevelEncryptionProfile
s {$sel:ifMatch:UpdateFieldLevelEncryptionProfile' :: Maybe Text
ifMatch = Maybe Text
a} :: UpdateFieldLevelEncryptionProfile)

-- | Request to update a field-level encryption profile.
updateFieldLevelEncryptionProfile_fieldLevelEncryptionProfileConfig :: Lens.Lens' UpdateFieldLevelEncryptionProfile FieldLevelEncryptionProfileConfig
updateFieldLevelEncryptionProfile_fieldLevelEncryptionProfileConfig :: Lens'
  UpdateFieldLevelEncryptionProfile FieldLevelEncryptionProfileConfig
updateFieldLevelEncryptionProfile_fieldLevelEncryptionProfileConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateFieldLevelEncryptionProfile' {FieldLevelEncryptionProfileConfig
fieldLevelEncryptionProfileConfig :: FieldLevelEncryptionProfileConfig
$sel:fieldLevelEncryptionProfileConfig:UpdateFieldLevelEncryptionProfile' :: UpdateFieldLevelEncryptionProfile
-> FieldLevelEncryptionProfileConfig
fieldLevelEncryptionProfileConfig} -> FieldLevelEncryptionProfileConfig
fieldLevelEncryptionProfileConfig) (\s :: UpdateFieldLevelEncryptionProfile
s@UpdateFieldLevelEncryptionProfile' {} FieldLevelEncryptionProfileConfig
a -> UpdateFieldLevelEncryptionProfile
s {$sel:fieldLevelEncryptionProfileConfig:UpdateFieldLevelEncryptionProfile' :: FieldLevelEncryptionProfileConfig
fieldLevelEncryptionProfileConfig = FieldLevelEncryptionProfileConfig
a} :: UpdateFieldLevelEncryptionProfile)

-- | The ID of the field-level encryption profile request.
updateFieldLevelEncryptionProfile_id :: Lens.Lens' UpdateFieldLevelEncryptionProfile Prelude.Text
updateFieldLevelEncryptionProfile_id :: Lens' UpdateFieldLevelEncryptionProfile Text
updateFieldLevelEncryptionProfile_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateFieldLevelEncryptionProfile' {Text
id :: Text
$sel:id:UpdateFieldLevelEncryptionProfile' :: UpdateFieldLevelEncryptionProfile -> Text
id} -> Text
id) (\s :: UpdateFieldLevelEncryptionProfile
s@UpdateFieldLevelEncryptionProfile' {} Text
a -> UpdateFieldLevelEncryptionProfile
s {$sel:id:UpdateFieldLevelEncryptionProfile' :: Text
id = Text
a} :: UpdateFieldLevelEncryptionProfile)

instance
  Core.AWSRequest
    UpdateFieldLevelEncryptionProfile
  where
  type
    AWSResponse UpdateFieldLevelEncryptionProfile =
      UpdateFieldLevelEncryptionProfileResponse
  request :: (Service -> Service)
-> UpdateFieldLevelEncryptionProfile
-> Request UpdateFieldLevelEncryptionProfile
request Service -> Service
overrides =
    forall a. (ToRequest a, ToElement a) => Service -> a -> Request a
Request.putXML (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateFieldLevelEncryptionProfile
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse UpdateFieldLevelEncryptionProfile)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXML
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe Text
-> Maybe FieldLevelEncryptionProfile
-> Int
-> UpdateFieldLevelEncryptionProfileResponse
UpdateFieldLevelEncryptionProfileResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (ResponseHeaders
h forall a.
FromText a =>
ResponseHeaders -> HeaderName -> Either String (Maybe a)
Data..#? HeaderName
"ETag")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall a. FromXML a => [Node] -> Either String a
Data.parseXML [Node]
x)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance
  Prelude.Hashable
    UpdateFieldLevelEncryptionProfile
  where
  hashWithSalt :: Int -> UpdateFieldLevelEncryptionProfile -> Int
hashWithSalt
    Int
_salt
    UpdateFieldLevelEncryptionProfile' {Maybe Text
Text
FieldLevelEncryptionProfileConfig
id :: Text
fieldLevelEncryptionProfileConfig :: FieldLevelEncryptionProfileConfig
ifMatch :: Maybe Text
$sel:id:UpdateFieldLevelEncryptionProfile' :: UpdateFieldLevelEncryptionProfile -> Text
$sel:fieldLevelEncryptionProfileConfig:UpdateFieldLevelEncryptionProfile' :: UpdateFieldLevelEncryptionProfile
-> FieldLevelEncryptionProfileConfig
$sel:ifMatch:UpdateFieldLevelEncryptionProfile' :: UpdateFieldLevelEncryptionProfile -> Maybe Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ifMatch
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` FieldLevelEncryptionProfileConfig
fieldLevelEncryptionProfileConfig
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
id

instance
  Prelude.NFData
    UpdateFieldLevelEncryptionProfile
  where
  rnf :: UpdateFieldLevelEncryptionProfile -> ()
rnf UpdateFieldLevelEncryptionProfile' {Maybe Text
Text
FieldLevelEncryptionProfileConfig
id :: Text
fieldLevelEncryptionProfileConfig :: FieldLevelEncryptionProfileConfig
ifMatch :: Maybe Text
$sel:id:UpdateFieldLevelEncryptionProfile' :: UpdateFieldLevelEncryptionProfile -> Text
$sel:fieldLevelEncryptionProfileConfig:UpdateFieldLevelEncryptionProfile' :: UpdateFieldLevelEncryptionProfile
-> FieldLevelEncryptionProfileConfig
$sel:ifMatch:UpdateFieldLevelEncryptionProfile' :: UpdateFieldLevelEncryptionProfile -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ifMatch
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf FieldLevelEncryptionProfileConfig
fieldLevelEncryptionProfileConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
id

instance
  Data.ToElement
    UpdateFieldLevelEncryptionProfile
  where
  toElement :: UpdateFieldLevelEncryptionProfile -> Element
toElement UpdateFieldLevelEncryptionProfile' {Maybe Text
Text
FieldLevelEncryptionProfileConfig
id :: Text
fieldLevelEncryptionProfileConfig :: FieldLevelEncryptionProfileConfig
ifMatch :: Maybe Text
$sel:id:UpdateFieldLevelEncryptionProfile' :: UpdateFieldLevelEncryptionProfile -> Text
$sel:fieldLevelEncryptionProfileConfig:UpdateFieldLevelEncryptionProfile' :: UpdateFieldLevelEncryptionProfile
-> FieldLevelEncryptionProfileConfig
$sel:ifMatch:UpdateFieldLevelEncryptionProfile' :: UpdateFieldLevelEncryptionProfile -> Maybe Text
..} =
    forall a. ToXML a => Name -> a -> Element
Data.mkElement
      Name
"{http://cloudfront.amazonaws.com/doc/2020-05-31/}FieldLevelEncryptionProfileConfig"
      FieldLevelEncryptionProfileConfig
fieldLevelEncryptionProfileConfig

instance
  Data.ToHeaders
    UpdateFieldLevelEncryptionProfile
  where
  toHeaders :: UpdateFieldLevelEncryptionProfile -> ResponseHeaders
toHeaders UpdateFieldLevelEncryptionProfile' {Maybe Text
Text
FieldLevelEncryptionProfileConfig
id :: Text
fieldLevelEncryptionProfileConfig :: FieldLevelEncryptionProfileConfig
ifMatch :: Maybe Text
$sel:id:UpdateFieldLevelEncryptionProfile' :: UpdateFieldLevelEncryptionProfile -> Text
$sel:fieldLevelEncryptionProfileConfig:UpdateFieldLevelEncryptionProfile' :: UpdateFieldLevelEncryptionProfile
-> FieldLevelEncryptionProfileConfig
$sel:ifMatch:UpdateFieldLevelEncryptionProfile' :: UpdateFieldLevelEncryptionProfile -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat [HeaderName
"If-Match" forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# Maybe Text
ifMatch]

instance
  Data.ToPath
    UpdateFieldLevelEncryptionProfile
  where
  toPath :: UpdateFieldLevelEncryptionProfile -> ByteString
toPath UpdateFieldLevelEncryptionProfile' {Maybe Text
Text
FieldLevelEncryptionProfileConfig
id :: Text
fieldLevelEncryptionProfileConfig :: FieldLevelEncryptionProfileConfig
ifMatch :: Maybe Text
$sel:id:UpdateFieldLevelEncryptionProfile' :: UpdateFieldLevelEncryptionProfile -> Text
$sel:fieldLevelEncryptionProfileConfig:UpdateFieldLevelEncryptionProfile' :: UpdateFieldLevelEncryptionProfile
-> FieldLevelEncryptionProfileConfig
$sel:ifMatch:UpdateFieldLevelEncryptionProfile' :: UpdateFieldLevelEncryptionProfile -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/2020-05-31/field-level-encryption-profile/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
id,
        ByteString
"/config"
      ]

instance
  Data.ToQuery
    UpdateFieldLevelEncryptionProfile
  where
  toQuery :: UpdateFieldLevelEncryptionProfile -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newUpdateFieldLevelEncryptionProfileResponse' smart constructor.
data UpdateFieldLevelEncryptionProfileResponse = UpdateFieldLevelEncryptionProfileResponse'
  { -- | The result of the field-level encryption profile request.
    UpdateFieldLevelEncryptionProfileResponse -> Maybe Text
eTag :: Prelude.Maybe Prelude.Text,
    -- | Return the results of updating the profile.
    UpdateFieldLevelEncryptionProfileResponse
-> Maybe FieldLevelEncryptionProfile
fieldLevelEncryptionProfile :: Prelude.Maybe FieldLevelEncryptionProfile,
    -- | The response's http status code.
    UpdateFieldLevelEncryptionProfileResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdateFieldLevelEncryptionProfileResponse
-> UpdateFieldLevelEncryptionProfileResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateFieldLevelEncryptionProfileResponse
-> UpdateFieldLevelEncryptionProfileResponse -> Bool
$c/= :: UpdateFieldLevelEncryptionProfileResponse
-> UpdateFieldLevelEncryptionProfileResponse -> Bool
== :: UpdateFieldLevelEncryptionProfileResponse
-> UpdateFieldLevelEncryptionProfileResponse -> Bool
$c== :: UpdateFieldLevelEncryptionProfileResponse
-> UpdateFieldLevelEncryptionProfileResponse -> Bool
Prelude.Eq, ReadPrec [UpdateFieldLevelEncryptionProfileResponse]
ReadPrec UpdateFieldLevelEncryptionProfileResponse
Int -> ReadS UpdateFieldLevelEncryptionProfileResponse
ReadS [UpdateFieldLevelEncryptionProfileResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateFieldLevelEncryptionProfileResponse]
$creadListPrec :: ReadPrec [UpdateFieldLevelEncryptionProfileResponse]
readPrec :: ReadPrec UpdateFieldLevelEncryptionProfileResponse
$creadPrec :: ReadPrec UpdateFieldLevelEncryptionProfileResponse
readList :: ReadS [UpdateFieldLevelEncryptionProfileResponse]
$creadList :: ReadS [UpdateFieldLevelEncryptionProfileResponse]
readsPrec :: Int -> ReadS UpdateFieldLevelEncryptionProfileResponse
$creadsPrec :: Int -> ReadS UpdateFieldLevelEncryptionProfileResponse
Prelude.Read, Int -> UpdateFieldLevelEncryptionProfileResponse -> ShowS
[UpdateFieldLevelEncryptionProfileResponse] -> ShowS
UpdateFieldLevelEncryptionProfileResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateFieldLevelEncryptionProfileResponse] -> ShowS
$cshowList :: [UpdateFieldLevelEncryptionProfileResponse] -> ShowS
show :: UpdateFieldLevelEncryptionProfileResponse -> String
$cshow :: UpdateFieldLevelEncryptionProfileResponse -> String
showsPrec :: Int -> UpdateFieldLevelEncryptionProfileResponse -> ShowS
$cshowsPrec :: Int -> UpdateFieldLevelEncryptionProfileResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateFieldLevelEncryptionProfileResponse x
-> UpdateFieldLevelEncryptionProfileResponse
forall x.
UpdateFieldLevelEncryptionProfileResponse
-> Rep UpdateFieldLevelEncryptionProfileResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateFieldLevelEncryptionProfileResponse x
-> UpdateFieldLevelEncryptionProfileResponse
$cfrom :: forall x.
UpdateFieldLevelEncryptionProfileResponse
-> Rep UpdateFieldLevelEncryptionProfileResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateFieldLevelEncryptionProfileResponse' 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:
--
-- 'eTag', 'updateFieldLevelEncryptionProfileResponse_eTag' - The result of the field-level encryption profile request.
--
-- 'fieldLevelEncryptionProfile', 'updateFieldLevelEncryptionProfileResponse_fieldLevelEncryptionProfile' - Return the results of updating the profile.
--
-- 'httpStatus', 'updateFieldLevelEncryptionProfileResponse_httpStatus' - The response's http status code.
newUpdateFieldLevelEncryptionProfileResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateFieldLevelEncryptionProfileResponse
newUpdateFieldLevelEncryptionProfileResponse :: Int -> UpdateFieldLevelEncryptionProfileResponse
newUpdateFieldLevelEncryptionProfileResponse
  Int
pHttpStatus_ =
    UpdateFieldLevelEncryptionProfileResponse'
      { $sel:eTag:UpdateFieldLevelEncryptionProfileResponse' :: Maybe Text
eTag =
          forall a. Maybe a
Prelude.Nothing,
        $sel:fieldLevelEncryptionProfile:UpdateFieldLevelEncryptionProfileResponse' :: Maybe FieldLevelEncryptionProfile
fieldLevelEncryptionProfile =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:UpdateFieldLevelEncryptionProfileResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | The result of the field-level encryption profile request.
updateFieldLevelEncryptionProfileResponse_eTag :: Lens.Lens' UpdateFieldLevelEncryptionProfileResponse (Prelude.Maybe Prelude.Text)
updateFieldLevelEncryptionProfileResponse_eTag :: Lens' UpdateFieldLevelEncryptionProfileResponse (Maybe Text)
updateFieldLevelEncryptionProfileResponse_eTag = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateFieldLevelEncryptionProfileResponse' {Maybe Text
eTag :: Maybe Text
$sel:eTag:UpdateFieldLevelEncryptionProfileResponse' :: UpdateFieldLevelEncryptionProfileResponse -> Maybe Text
eTag} -> Maybe Text
eTag) (\s :: UpdateFieldLevelEncryptionProfileResponse
s@UpdateFieldLevelEncryptionProfileResponse' {} Maybe Text
a -> UpdateFieldLevelEncryptionProfileResponse
s {$sel:eTag:UpdateFieldLevelEncryptionProfileResponse' :: Maybe Text
eTag = Maybe Text
a} :: UpdateFieldLevelEncryptionProfileResponse)

-- | Return the results of updating the profile.
updateFieldLevelEncryptionProfileResponse_fieldLevelEncryptionProfile :: Lens.Lens' UpdateFieldLevelEncryptionProfileResponse (Prelude.Maybe FieldLevelEncryptionProfile)
updateFieldLevelEncryptionProfileResponse_fieldLevelEncryptionProfile :: Lens'
  UpdateFieldLevelEncryptionProfileResponse
  (Maybe FieldLevelEncryptionProfile)
updateFieldLevelEncryptionProfileResponse_fieldLevelEncryptionProfile = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateFieldLevelEncryptionProfileResponse' {Maybe FieldLevelEncryptionProfile
fieldLevelEncryptionProfile :: Maybe FieldLevelEncryptionProfile
$sel:fieldLevelEncryptionProfile:UpdateFieldLevelEncryptionProfileResponse' :: UpdateFieldLevelEncryptionProfileResponse
-> Maybe FieldLevelEncryptionProfile
fieldLevelEncryptionProfile} -> Maybe FieldLevelEncryptionProfile
fieldLevelEncryptionProfile) (\s :: UpdateFieldLevelEncryptionProfileResponse
s@UpdateFieldLevelEncryptionProfileResponse' {} Maybe FieldLevelEncryptionProfile
a -> UpdateFieldLevelEncryptionProfileResponse
s {$sel:fieldLevelEncryptionProfile:UpdateFieldLevelEncryptionProfileResponse' :: Maybe FieldLevelEncryptionProfile
fieldLevelEncryptionProfile = Maybe FieldLevelEncryptionProfile
a} :: UpdateFieldLevelEncryptionProfileResponse)

-- | The response's http status code.
updateFieldLevelEncryptionProfileResponse_httpStatus :: Lens.Lens' UpdateFieldLevelEncryptionProfileResponse Prelude.Int
updateFieldLevelEncryptionProfileResponse_httpStatus :: Lens' UpdateFieldLevelEncryptionProfileResponse Int
updateFieldLevelEncryptionProfileResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateFieldLevelEncryptionProfileResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateFieldLevelEncryptionProfileResponse' :: UpdateFieldLevelEncryptionProfileResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateFieldLevelEncryptionProfileResponse
s@UpdateFieldLevelEncryptionProfileResponse' {} Int
a -> UpdateFieldLevelEncryptionProfileResponse
s {$sel:httpStatus:UpdateFieldLevelEncryptionProfileResponse' :: Int
httpStatus = Int
a} :: UpdateFieldLevelEncryptionProfileResponse)

instance
  Prelude.NFData
    UpdateFieldLevelEncryptionProfileResponse
  where
  rnf :: UpdateFieldLevelEncryptionProfileResponse -> ()
rnf UpdateFieldLevelEncryptionProfileResponse' {Int
Maybe Text
Maybe FieldLevelEncryptionProfile
httpStatus :: Int
fieldLevelEncryptionProfile :: Maybe FieldLevelEncryptionProfile
eTag :: Maybe Text
$sel:httpStatus:UpdateFieldLevelEncryptionProfileResponse' :: UpdateFieldLevelEncryptionProfileResponse -> Int
$sel:fieldLevelEncryptionProfile:UpdateFieldLevelEncryptionProfileResponse' :: UpdateFieldLevelEncryptionProfileResponse
-> Maybe FieldLevelEncryptionProfile
$sel:eTag:UpdateFieldLevelEncryptionProfileResponse' :: UpdateFieldLevelEncryptionProfileResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
eTag
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FieldLevelEncryptionProfile
fieldLevelEncryptionProfile
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus