{-# 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.CreateFieldLevelEncryptionProfile
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Create a field-level encryption profile.
module Amazonka.CloudFront.CreateFieldLevelEncryptionProfile
  ( -- * Creating a Request
    CreateFieldLevelEncryptionProfile (..),
    newCreateFieldLevelEncryptionProfile,

    -- * Request Lenses
    createFieldLevelEncryptionProfile_fieldLevelEncryptionProfileConfig,

    -- * Destructuring the Response
    CreateFieldLevelEncryptionProfileResponse (..),
    newCreateFieldLevelEncryptionProfileResponse,

    -- * Response Lenses
    createFieldLevelEncryptionProfileResponse_eTag,
    createFieldLevelEncryptionProfileResponse_fieldLevelEncryptionProfile,
    createFieldLevelEncryptionProfileResponse_location,
    createFieldLevelEncryptionProfileResponse_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:/ 'newCreateFieldLevelEncryptionProfile' smart constructor.
data CreateFieldLevelEncryptionProfile = CreateFieldLevelEncryptionProfile'
  { -- | The request to create a field-level encryption profile.
    CreateFieldLevelEncryptionProfile
-> FieldLevelEncryptionProfileConfig
fieldLevelEncryptionProfileConfig :: FieldLevelEncryptionProfileConfig
  }
  deriving (CreateFieldLevelEncryptionProfile
-> CreateFieldLevelEncryptionProfile -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateFieldLevelEncryptionProfile
-> CreateFieldLevelEncryptionProfile -> Bool
$c/= :: CreateFieldLevelEncryptionProfile
-> CreateFieldLevelEncryptionProfile -> Bool
== :: CreateFieldLevelEncryptionProfile
-> CreateFieldLevelEncryptionProfile -> Bool
$c== :: CreateFieldLevelEncryptionProfile
-> CreateFieldLevelEncryptionProfile -> Bool
Prelude.Eq, ReadPrec [CreateFieldLevelEncryptionProfile]
ReadPrec CreateFieldLevelEncryptionProfile
Int -> ReadS CreateFieldLevelEncryptionProfile
ReadS [CreateFieldLevelEncryptionProfile]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateFieldLevelEncryptionProfile]
$creadListPrec :: ReadPrec [CreateFieldLevelEncryptionProfile]
readPrec :: ReadPrec CreateFieldLevelEncryptionProfile
$creadPrec :: ReadPrec CreateFieldLevelEncryptionProfile
readList :: ReadS [CreateFieldLevelEncryptionProfile]
$creadList :: ReadS [CreateFieldLevelEncryptionProfile]
readsPrec :: Int -> ReadS CreateFieldLevelEncryptionProfile
$creadsPrec :: Int -> ReadS CreateFieldLevelEncryptionProfile
Prelude.Read, Int -> CreateFieldLevelEncryptionProfile -> ShowS
[CreateFieldLevelEncryptionProfile] -> ShowS
CreateFieldLevelEncryptionProfile -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateFieldLevelEncryptionProfile] -> ShowS
$cshowList :: [CreateFieldLevelEncryptionProfile] -> ShowS
show :: CreateFieldLevelEncryptionProfile -> String
$cshow :: CreateFieldLevelEncryptionProfile -> String
showsPrec :: Int -> CreateFieldLevelEncryptionProfile -> ShowS
$cshowsPrec :: Int -> CreateFieldLevelEncryptionProfile -> ShowS
Prelude.Show, forall x.
Rep CreateFieldLevelEncryptionProfile x
-> CreateFieldLevelEncryptionProfile
forall x.
CreateFieldLevelEncryptionProfile
-> Rep CreateFieldLevelEncryptionProfile x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateFieldLevelEncryptionProfile x
-> CreateFieldLevelEncryptionProfile
$cfrom :: forall x.
CreateFieldLevelEncryptionProfile
-> Rep CreateFieldLevelEncryptionProfile x
Prelude.Generic)

-- |
-- Create a value of 'CreateFieldLevelEncryptionProfile' 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:
--
-- 'fieldLevelEncryptionProfileConfig', 'createFieldLevelEncryptionProfile_fieldLevelEncryptionProfileConfig' - The request to create a field-level encryption profile.
newCreateFieldLevelEncryptionProfile ::
  -- | 'fieldLevelEncryptionProfileConfig'
  FieldLevelEncryptionProfileConfig ->
  CreateFieldLevelEncryptionProfile
newCreateFieldLevelEncryptionProfile :: FieldLevelEncryptionProfileConfig
-> CreateFieldLevelEncryptionProfile
newCreateFieldLevelEncryptionProfile
  FieldLevelEncryptionProfileConfig
pFieldLevelEncryptionProfileConfig_ =
    CreateFieldLevelEncryptionProfile'
      { $sel:fieldLevelEncryptionProfileConfig:CreateFieldLevelEncryptionProfile' :: FieldLevelEncryptionProfileConfig
fieldLevelEncryptionProfileConfig =
          FieldLevelEncryptionProfileConfig
pFieldLevelEncryptionProfileConfig_
      }

-- | The request to create a field-level encryption profile.
createFieldLevelEncryptionProfile_fieldLevelEncryptionProfileConfig :: Lens.Lens' CreateFieldLevelEncryptionProfile FieldLevelEncryptionProfileConfig
createFieldLevelEncryptionProfile_fieldLevelEncryptionProfileConfig :: Lens'
  CreateFieldLevelEncryptionProfile FieldLevelEncryptionProfileConfig
createFieldLevelEncryptionProfile_fieldLevelEncryptionProfileConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFieldLevelEncryptionProfile' {FieldLevelEncryptionProfileConfig
fieldLevelEncryptionProfileConfig :: FieldLevelEncryptionProfileConfig
$sel:fieldLevelEncryptionProfileConfig:CreateFieldLevelEncryptionProfile' :: CreateFieldLevelEncryptionProfile
-> FieldLevelEncryptionProfileConfig
fieldLevelEncryptionProfileConfig} -> FieldLevelEncryptionProfileConfig
fieldLevelEncryptionProfileConfig) (\s :: CreateFieldLevelEncryptionProfile
s@CreateFieldLevelEncryptionProfile' {} FieldLevelEncryptionProfileConfig
a -> CreateFieldLevelEncryptionProfile
s {$sel:fieldLevelEncryptionProfileConfig:CreateFieldLevelEncryptionProfile' :: FieldLevelEncryptionProfileConfig
fieldLevelEncryptionProfileConfig = FieldLevelEncryptionProfileConfig
a} :: CreateFieldLevelEncryptionProfile)

instance
  Core.AWSRequest
    CreateFieldLevelEncryptionProfile
  where
  type
    AWSResponse CreateFieldLevelEncryptionProfile =
      CreateFieldLevelEncryptionProfileResponse
  request :: (Service -> Service)
-> CreateFieldLevelEncryptionProfile
-> Request CreateFieldLevelEncryptionProfile
request Service -> Service
overrides =
    forall a. (ToRequest a, ToElement a) => Service -> a -> Request a
Request.postXML (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateFieldLevelEncryptionProfile
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse CreateFieldLevelEncryptionProfile)))
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
-> Maybe Text
-> Int
-> CreateFieldLevelEncryptionProfileResponse
CreateFieldLevelEncryptionProfileResponse'
            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.<*> (ResponseHeaders
h forall a.
FromText a =>
ResponseHeaders -> HeaderName -> Either String (Maybe a)
Data..#? HeaderName
"Location")
            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
    CreateFieldLevelEncryptionProfile
  where
  hashWithSalt :: Int -> CreateFieldLevelEncryptionProfile -> Int
hashWithSalt
    Int
_salt
    CreateFieldLevelEncryptionProfile' {FieldLevelEncryptionProfileConfig
fieldLevelEncryptionProfileConfig :: FieldLevelEncryptionProfileConfig
$sel:fieldLevelEncryptionProfileConfig:CreateFieldLevelEncryptionProfile' :: CreateFieldLevelEncryptionProfile
-> FieldLevelEncryptionProfileConfig
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` FieldLevelEncryptionProfileConfig
fieldLevelEncryptionProfileConfig

instance
  Prelude.NFData
    CreateFieldLevelEncryptionProfile
  where
  rnf :: CreateFieldLevelEncryptionProfile -> ()
rnf CreateFieldLevelEncryptionProfile' {FieldLevelEncryptionProfileConfig
fieldLevelEncryptionProfileConfig :: FieldLevelEncryptionProfileConfig
$sel:fieldLevelEncryptionProfileConfig:CreateFieldLevelEncryptionProfile' :: CreateFieldLevelEncryptionProfile
-> FieldLevelEncryptionProfileConfig
..} =
    forall a. NFData a => a -> ()
Prelude.rnf FieldLevelEncryptionProfileConfig
fieldLevelEncryptionProfileConfig

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

instance
  Data.ToHeaders
    CreateFieldLevelEncryptionProfile
  where
  toHeaders :: CreateFieldLevelEncryptionProfile -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance
  Data.ToPath
    CreateFieldLevelEncryptionProfile
  where
  toPath :: CreateFieldLevelEncryptionProfile -> ByteString
toPath =
    forall a b. a -> b -> a
Prelude.const
      ByteString
"/2020-05-31/field-level-encryption-profile"

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

-- | /See:/ 'newCreateFieldLevelEncryptionProfileResponse' smart constructor.
data CreateFieldLevelEncryptionProfileResponse = CreateFieldLevelEncryptionProfileResponse'
  { -- | The current version of the field level encryption profile. For example:
    -- @E2QWRUHAPOMQZL@.
    CreateFieldLevelEncryptionProfileResponse -> Maybe Text
eTag :: Prelude.Maybe Prelude.Text,
    -- | Returned when you create a new field-level encryption profile.
    CreateFieldLevelEncryptionProfileResponse
-> Maybe FieldLevelEncryptionProfile
fieldLevelEncryptionProfile :: Prelude.Maybe FieldLevelEncryptionProfile,
    -- | The fully qualified URI of the new profile resource just created.
    CreateFieldLevelEncryptionProfileResponse -> Maybe Text
location :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    CreateFieldLevelEncryptionProfileResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (CreateFieldLevelEncryptionProfileResponse
-> CreateFieldLevelEncryptionProfileResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateFieldLevelEncryptionProfileResponse
-> CreateFieldLevelEncryptionProfileResponse -> Bool
$c/= :: CreateFieldLevelEncryptionProfileResponse
-> CreateFieldLevelEncryptionProfileResponse -> Bool
== :: CreateFieldLevelEncryptionProfileResponse
-> CreateFieldLevelEncryptionProfileResponse -> Bool
$c== :: CreateFieldLevelEncryptionProfileResponse
-> CreateFieldLevelEncryptionProfileResponse -> Bool
Prelude.Eq, ReadPrec [CreateFieldLevelEncryptionProfileResponse]
ReadPrec CreateFieldLevelEncryptionProfileResponse
Int -> ReadS CreateFieldLevelEncryptionProfileResponse
ReadS [CreateFieldLevelEncryptionProfileResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateFieldLevelEncryptionProfileResponse]
$creadListPrec :: ReadPrec [CreateFieldLevelEncryptionProfileResponse]
readPrec :: ReadPrec CreateFieldLevelEncryptionProfileResponse
$creadPrec :: ReadPrec CreateFieldLevelEncryptionProfileResponse
readList :: ReadS [CreateFieldLevelEncryptionProfileResponse]
$creadList :: ReadS [CreateFieldLevelEncryptionProfileResponse]
readsPrec :: Int -> ReadS CreateFieldLevelEncryptionProfileResponse
$creadsPrec :: Int -> ReadS CreateFieldLevelEncryptionProfileResponse
Prelude.Read, Int -> CreateFieldLevelEncryptionProfileResponse -> ShowS
[CreateFieldLevelEncryptionProfileResponse] -> ShowS
CreateFieldLevelEncryptionProfileResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateFieldLevelEncryptionProfileResponse] -> ShowS
$cshowList :: [CreateFieldLevelEncryptionProfileResponse] -> ShowS
show :: CreateFieldLevelEncryptionProfileResponse -> String
$cshow :: CreateFieldLevelEncryptionProfileResponse -> String
showsPrec :: Int -> CreateFieldLevelEncryptionProfileResponse -> ShowS
$cshowsPrec :: Int -> CreateFieldLevelEncryptionProfileResponse -> ShowS
Prelude.Show, forall x.
Rep CreateFieldLevelEncryptionProfileResponse x
-> CreateFieldLevelEncryptionProfileResponse
forall x.
CreateFieldLevelEncryptionProfileResponse
-> Rep CreateFieldLevelEncryptionProfileResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateFieldLevelEncryptionProfileResponse x
-> CreateFieldLevelEncryptionProfileResponse
$cfrom :: forall x.
CreateFieldLevelEncryptionProfileResponse
-> Rep CreateFieldLevelEncryptionProfileResponse x
Prelude.Generic)

-- |
-- Create a value of 'CreateFieldLevelEncryptionProfileResponse' 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', 'createFieldLevelEncryptionProfileResponse_eTag' - The current version of the field level encryption profile. For example:
-- @E2QWRUHAPOMQZL@.
--
-- 'fieldLevelEncryptionProfile', 'createFieldLevelEncryptionProfileResponse_fieldLevelEncryptionProfile' - Returned when you create a new field-level encryption profile.
--
-- 'location', 'createFieldLevelEncryptionProfileResponse_location' - The fully qualified URI of the new profile resource just created.
--
-- 'httpStatus', 'createFieldLevelEncryptionProfileResponse_httpStatus' - The response's http status code.
newCreateFieldLevelEncryptionProfileResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  CreateFieldLevelEncryptionProfileResponse
newCreateFieldLevelEncryptionProfileResponse :: Int -> CreateFieldLevelEncryptionProfileResponse
newCreateFieldLevelEncryptionProfileResponse
  Int
pHttpStatus_ =
    CreateFieldLevelEncryptionProfileResponse'
      { $sel:eTag:CreateFieldLevelEncryptionProfileResponse' :: Maybe Text
eTag =
          forall a. Maybe a
Prelude.Nothing,
        $sel:fieldLevelEncryptionProfile:CreateFieldLevelEncryptionProfileResponse' :: Maybe FieldLevelEncryptionProfile
fieldLevelEncryptionProfile =
          forall a. Maybe a
Prelude.Nothing,
        $sel:location:CreateFieldLevelEncryptionProfileResponse' :: Maybe Text
location = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:CreateFieldLevelEncryptionProfileResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | The current version of the field level encryption profile. For example:
-- @E2QWRUHAPOMQZL@.
createFieldLevelEncryptionProfileResponse_eTag :: Lens.Lens' CreateFieldLevelEncryptionProfileResponse (Prelude.Maybe Prelude.Text)
createFieldLevelEncryptionProfileResponse_eTag :: Lens' CreateFieldLevelEncryptionProfileResponse (Maybe Text)
createFieldLevelEncryptionProfileResponse_eTag = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFieldLevelEncryptionProfileResponse' {Maybe Text
eTag :: Maybe Text
$sel:eTag:CreateFieldLevelEncryptionProfileResponse' :: CreateFieldLevelEncryptionProfileResponse -> Maybe Text
eTag} -> Maybe Text
eTag) (\s :: CreateFieldLevelEncryptionProfileResponse
s@CreateFieldLevelEncryptionProfileResponse' {} Maybe Text
a -> CreateFieldLevelEncryptionProfileResponse
s {$sel:eTag:CreateFieldLevelEncryptionProfileResponse' :: Maybe Text
eTag = Maybe Text
a} :: CreateFieldLevelEncryptionProfileResponse)

-- | Returned when you create a new field-level encryption profile.
createFieldLevelEncryptionProfileResponse_fieldLevelEncryptionProfile :: Lens.Lens' CreateFieldLevelEncryptionProfileResponse (Prelude.Maybe FieldLevelEncryptionProfile)
createFieldLevelEncryptionProfileResponse_fieldLevelEncryptionProfile :: Lens'
  CreateFieldLevelEncryptionProfileResponse
  (Maybe FieldLevelEncryptionProfile)
createFieldLevelEncryptionProfileResponse_fieldLevelEncryptionProfile = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFieldLevelEncryptionProfileResponse' {Maybe FieldLevelEncryptionProfile
fieldLevelEncryptionProfile :: Maybe FieldLevelEncryptionProfile
$sel:fieldLevelEncryptionProfile:CreateFieldLevelEncryptionProfileResponse' :: CreateFieldLevelEncryptionProfileResponse
-> Maybe FieldLevelEncryptionProfile
fieldLevelEncryptionProfile} -> Maybe FieldLevelEncryptionProfile
fieldLevelEncryptionProfile) (\s :: CreateFieldLevelEncryptionProfileResponse
s@CreateFieldLevelEncryptionProfileResponse' {} Maybe FieldLevelEncryptionProfile
a -> CreateFieldLevelEncryptionProfileResponse
s {$sel:fieldLevelEncryptionProfile:CreateFieldLevelEncryptionProfileResponse' :: Maybe FieldLevelEncryptionProfile
fieldLevelEncryptionProfile = Maybe FieldLevelEncryptionProfile
a} :: CreateFieldLevelEncryptionProfileResponse)

-- | The fully qualified URI of the new profile resource just created.
createFieldLevelEncryptionProfileResponse_location :: Lens.Lens' CreateFieldLevelEncryptionProfileResponse (Prelude.Maybe Prelude.Text)
createFieldLevelEncryptionProfileResponse_location :: Lens' CreateFieldLevelEncryptionProfileResponse (Maybe Text)
createFieldLevelEncryptionProfileResponse_location = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFieldLevelEncryptionProfileResponse' {Maybe Text
location :: Maybe Text
$sel:location:CreateFieldLevelEncryptionProfileResponse' :: CreateFieldLevelEncryptionProfileResponse -> Maybe Text
location} -> Maybe Text
location) (\s :: CreateFieldLevelEncryptionProfileResponse
s@CreateFieldLevelEncryptionProfileResponse' {} Maybe Text
a -> CreateFieldLevelEncryptionProfileResponse
s {$sel:location:CreateFieldLevelEncryptionProfileResponse' :: Maybe Text
location = Maybe Text
a} :: CreateFieldLevelEncryptionProfileResponse)

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

instance
  Prelude.NFData
    CreateFieldLevelEncryptionProfileResponse
  where
  rnf :: CreateFieldLevelEncryptionProfileResponse -> ()
rnf CreateFieldLevelEncryptionProfileResponse' {Int
Maybe Text
Maybe FieldLevelEncryptionProfile
httpStatus :: Int
location :: Maybe Text
fieldLevelEncryptionProfile :: Maybe FieldLevelEncryptionProfile
eTag :: Maybe Text
$sel:httpStatus:CreateFieldLevelEncryptionProfileResponse' :: CreateFieldLevelEncryptionProfileResponse -> Int
$sel:location:CreateFieldLevelEncryptionProfileResponse' :: CreateFieldLevelEncryptionProfileResponse -> Maybe Text
$sel:fieldLevelEncryptionProfile:CreateFieldLevelEncryptionProfileResponse' :: CreateFieldLevelEncryptionProfileResponse
-> Maybe FieldLevelEncryptionProfile
$sel:eTag:CreateFieldLevelEncryptionProfileResponse' :: CreateFieldLevelEncryptionProfileResponse -> 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 Maybe Text
location
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus