{-# 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.Inspector2.CreateFilter
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates a filter resource using specified filter criteria.
module Amazonka.Inspector2.CreateFilter
  ( -- * Creating a Request
    CreateFilter (..),
    newCreateFilter,

    -- * Request Lenses
    createFilter_description,
    createFilter_reason,
    createFilter_tags,
    createFilter_action,
    createFilter_filterCriteria,
    createFilter_name,

    -- * Destructuring the Response
    CreateFilterResponse (..),
    newCreateFilterResponse,

    -- * Response Lenses
    createFilterResponse_httpStatus,
    createFilterResponse_arn,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Inspector2.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newCreateFilter' smart constructor.
data CreateFilter = CreateFilter'
  { -- | A description of the filter.
    CreateFilter -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The reason for creating the filter.
    CreateFilter -> Maybe Text
reason :: Prelude.Maybe Prelude.Text,
    -- | A list of tags for the filter.
    CreateFilter -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | Defines the action that is to be applied to the findings that match the
    -- filter.
    CreateFilter -> FilterAction
action :: FilterAction,
    -- | Defines the criteria to be used in the filter for querying findings.
    CreateFilter -> FilterCriteria
filterCriteria :: FilterCriteria,
    -- | The name of the filter. Minimum length of 3. Maximum length of 64. Valid
    -- characters include alphanumeric characters, dot (.), underscore (_), and
    -- dash (-). Spaces are not allowed.
    CreateFilter -> Text
name :: Prelude.Text
  }
  deriving (CreateFilter -> CreateFilter -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateFilter -> CreateFilter -> Bool
$c/= :: CreateFilter -> CreateFilter -> Bool
== :: CreateFilter -> CreateFilter -> Bool
$c== :: CreateFilter -> CreateFilter -> Bool
Prelude.Eq, ReadPrec [CreateFilter]
ReadPrec CreateFilter
Int -> ReadS CreateFilter
ReadS [CreateFilter]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateFilter]
$creadListPrec :: ReadPrec [CreateFilter]
readPrec :: ReadPrec CreateFilter
$creadPrec :: ReadPrec CreateFilter
readList :: ReadS [CreateFilter]
$creadList :: ReadS [CreateFilter]
readsPrec :: Int -> ReadS CreateFilter
$creadsPrec :: Int -> ReadS CreateFilter
Prelude.Read, Int -> CreateFilter -> ShowS
[CreateFilter] -> ShowS
CreateFilter -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateFilter] -> ShowS
$cshowList :: [CreateFilter] -> ShowS
show :: CreateFilter -> String
$cshow :: CreateFilter -> String
showsPrec :: Int -> CreateFilter -> ShowS
$cshowsPrec :: Int -> CreateFilter -> ShowS
Prelude.Show, forall x. Rep CreateFilter x -> CreateFilter
forall x. CreateFilter -> Rep CreateFilter x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateFilter x -> CreateFilter
$cfrom :: forall x. CreateFilter -> Rep CreateFilter x
Prelude.Generic)

-- |
-- Create a value of 'CreateFilter' 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:
--
-- 'description', 'createFilter_description' - A description of the filter.
--
-- 'reason', 'createFilter_reason' - The reason for creating the filter.
--
-- 'tags', 'createFilter_tags' - A list of tags for the filter.
--
-- 'action', 'createFilter_action' - Defines the action that is to be applied to the findings that match the
-- filter.
--
-- 'filterCriteria', 'createFilter_filterCriteria' - Defines the criteria to be used in the filter for querying findings.
--
-- 'name', 'createFilter_name' - The name of the filter. Minimum length of 3. Maximum length of 64. Valid
-- characters include alphanumeric characters, dot (.), underscore (_), and
-- dash (-). Spaces are not allowed.
newCreateFilter ::
  -- | 'action'
  FilterAction ->
  -- | 'filterCriteria'
  FilterCriteria ->
  -- | 'name'
  Prelude.Text ->
  CreateFilter
newCreateFilter :: FilterAction -> FilterCriteria -> Text -> CreateFilter
newCreateFilter FilterAction
pAction_ FilterCriteria
pFilterCriteria_ Text
pName_ =
  CreateFilter'
    { $sel:description:CreateFilter' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:reason:CreateFilter' :: Maybe Text
reason = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:CreateFilter' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:action:CreateFilter' :: FilterAction
action = FilterAction
pAction_,
      $sel:filterCriteria:CreateFilter' :: FilterCriteria
filterCriteria = FilterCriteria
pFilterCriteria_,
      $sel:name:CreateFilter' :: Text
name = Text
pName_
    }

-- | A description of the filter.
createFilter_description :: Lens.Lens' CreateFilter (Prelude.Maybe Prelude.Text)
createFilter_description :: Lens' CreateFilter (Maybe Text)
createFilter_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFilter' {Maybe Text
description :: Maybe Text
$sel:description:CreateFilter' :: CreateFilter -> Maybe Text
description} -> Maybe Text
description) (\s :: CreateFilter
s@CreateFilter' {} Maybe Text
a -> CreateFilter
s {$sel:description:CreateFilter' :: Maybe Text
description = Maybe Text
a} :: CreateFilter)

-- | The reason for creating the filter.
createFilter_reason :: Lens.Lens' CreateFilter (Prelude.Maybe Prelude.Text)
createFilter_reason :: Lens' CreateFilter (Maybe Text)
createFilter_reason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFilter' {Maybe Text
reason :: Maybe Text
$sel:reason:CreateFilter' :: CreateFilter -> Maybe Text
reason} -> Maybe Text
reason) (\s :: CreateFilter
s@CreateFilter' {} Maybe Text
a -> CreateFilter
s {$sel:reason:CreateFilter' :: Maybe Text
reason = Maybe Text
a} :: CreateFilter)

-- | A list of tags for the filter.
createFilter_tags :: Lens.Lens' CreateFilter (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
createFilter_tags :: Lens' CreateFilter (Maybe (HashMap Text Text))
createFilter_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFilter' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:CreateFilter' :: CreateFilter -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: CreateFilter
s@CreateFilter' {} Maybe (HashMap Text Text)
a -> CreateFilter
s {$sel:tags:CreateFilter' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: CreateFilter) 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

-- | Defines the action that is to be applied to the findings that match the
-- filter.
createFilter_action :: Lens.Lens' CreateFilter FilterAction
createFilter_action :: Lens' CreateFilter FilterAction
createFilter_action = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFilter' {FilterAction
action :: FilterAction
$sel:action:CreateFilter' :: CreateFilter -> FilterAction
action} -> FilterAction
action) (\s :: CreateFilter
s@CreateFilter' {} FilterAction
a -> CreateFilter
s {$sel:action:CreateFilter' :: FilterAction
action = FilterAction
a} :: CreateFilter)

-- | Defines the criteria to be used in the filter for querying findings.
createFilter_filterCriteria :: Lens.Lens' CreateFilter FilterCriteria
createFilter_filterCriteria :: Lens' CreateFilter FilterCriteria
createFilter_filterCriteria = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFilter' {FilterCriteria
filterCriteria :: FilterCriteria
$sel:filterCriteria:CreateFilter' :: CreateFilter -> FilterCriteria
filterCriteria} -> FilterCriteria
filterCriteria) (\s :: CreateFilter
s@CreateFilter' {} FilterCriteria
a -> CreateFilter
s {$sel:filterCriteria:CreateFilter' :: FilterCriteria
filterCriteria = FilterCriteria
a} :: CreateFilter)

-- | The name of the filter. Minimum length of 3. Maximum length of 64. Valid
-- characters include alphanumeric characters, dot (.), underscore (_), and
-- dash (-). Spaces are not allowed.
createFilter_name :: Lens.Lens' CreateFilter Prelude.Text
createFilter_name :: Lens' CreateFilter Text
createFilter_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFilter' {Text
name :: Text
$sel:name:CreateFilter' :: CreateFilter -> Text
name} -> Text
name) (\s :: CreateFilter
s@CreateFilter' {} Text
a -> CreateFilter
s {$sel:name:CreateFilter' :: Text
name = Text
a} :: CreateFilter)

instance Core.AWSRequest CreateFilter where
  type AWSResponse CreateFilter = CreateFilterResponse
  request :: (Service -> Service) -> CreateFilter -> Request CreateFilter
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateFilter
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateFilter)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Int -> Text -> CreateFilterResponse
CreateFilterResponse'
            forall (f :: * -> *) a b. Functor 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))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"arn")
      )

instance Prelude.Hashable CreateFilter where
  hashWithSalt :: Int -> CreateFilter -> Int
hashWithSalt Int
_salt CreateFilter' {Maybe Text
Maybe (HashMap Text Text)
Text
FilterAction
FilterCriteria
name :: Text
filterCriteria :: FilterCriteria
action :: FilterAction
tags :: Maybe (HashMap Text Text)
reason :: Maybe Text
description :: Maybe Text
$sel:name:CreateFilter' :: CreateFilter -> Text
$sel:filterCriteria:CreateFilter' :: CreateFilter -> FilterCriteria
$sel:action:CreateFilter' :: CreateFilter -> FilterAction
$sel:tags:CreateFilter' :: CreateFilter -> Maybe (HashMap Text Text)
$sel:reason:CreateFilter' :: CreateFilter -> Maybe Text
$sel:description:CreateFilter' :: CreateFilter -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
reason
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` FilterAction
action
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` FilterCriteria
filterCriteria
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name

instance Prelude.NFData CreateFilter where
  rnf :: CreateFilter -> ()
rnf CreateFilter' {Maybe Text
Maybe (HashMap Text Text)
Text
FilterAction
FilterCriteria
name :: Text
filterCriteria :: FilterCriteria
action :: FilterAction
tags :: Maybe (HashMap Text Text)
reason :: Maybe Text
description :: Maybe Text
$sel:name:CreateFilter' :: CreateFilter -> Text
$sel:filterCriteria:CreateFilter' :: CreateFilter -> FilterCriteria
$sel:action:CreateFilter' :: CreateFilter -> FilterAction
$sel:tags:CreateFilter' :: CreateFilter -> Maybe (HashMap Text Text)
$sel:reason:CreateFilter' :: CreateFilter -> Maybe Text
$sel:description:CreateFilter' :: CreateFilter -> Maybe Text
..} =
    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
reason
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf FilterAction
action
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf FilterCriteria
filterCriteria
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name

instance Data.ToHeaders CreateFilter where
  toHeaders :: CreateFilter -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON CreateFilter where
  toJSON :: CreateFilter -> Value
toJSON CreateFilter' {Maybe Text
Maybe (HashMap Text Text)
Text
FilterAction
FilterCriteria
name :: Text
filterCriteria :: FilterCriteria
action :: FilterAction
tags :: Maybe (HashMap Text Text)
reason :: Maybe Text
description :: Maybe Text
$sel:name:CreateFilter' :: CreateFilter -> Text
$sel:filterCriteria:CreateFilter' :: CreateFilter -> FilterCriteria
$sel:action:CreateFilter' :: CreateFilter -> FilterAction
$sel:tags:CreateFilter' :: CreateFilter -> Maybe (HashMap Text Text)
$sel:reason:CreateFilter' :: CreateFilter -> Maybe Text
$sel:description:CreateFilter' :: CreateFilter -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"description" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
description,
            (Key
"reason" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
reason,
            (Key
"tags" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (HashMap Text Text)
tags,
            forall a. a -> Maybe a
Prelude.Just (Key
"action" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= FilterAction
action),
            forall a. a -> Maybe a
Prelude.Just
              (Key
"filterCriteria" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= FilterCriteria
filterCriteria),
            forall a. a -> Maybe a
Prelude.Just (Key
"name" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
name)
          ]
      )

instance Data.ToPath CreateFilter where
  toPath :: CreateFilter -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/filters/create"

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

-- | /See:/ 'newCreateFilterResponse' smart constructor.
data CreateFilterResponse = CreateFilterResponse'
  { -- | The response's http status code.
    CreateFilterResponse -> Int
httpStatus :: Prelude.Int,
    -- | The Amazon Resource Number (ARN) of the successfully created filter.
    CreateFilterResponse -> Text
arn :: Prelude.Text
  }
  deriving (CreateFilterResponse -> CreateFilterResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateFilterResponse -> CreateFilterResponse -> Bool
$c/= :: CreateFilterResponse -> CreateFilterResponse -> Bool
== :: CreateFilterResponse -> CreateFilterResponse -> Bool
$c== :: CreateFilterResponse -> CreateFilterResponse -> Bool
Prelude.Eq, ReadPrec [CreateFilterResponse]
ReadPrec CreateFilterResponse
Int -> ReadS CreateFilterResponse
ReadS [CreateFilterResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateFilterResponse]
$creadListPrec :: ReadPrec [CreateFilterResponse]
readPrec :: ReadPrec CreateFilterResponse
$creadPrec :: ReadPrec CreateFilterResponse
readList :: ReadS [CreateFilterResponse]
$creadList :: ReadS [CreateFilterResponse]
readsPrec :: Int -> ReadS CreateFilterResponse
$creadsPrec :: Int -> ReadS CreateFilterResponse
Prelude.Read, Int -> CreateFilterResponse -> ShowS
[CreateFilterResponse] -> ShowS
CreateFilterResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateFilterResponse] -> ShowS
$cshowList :: [CreateFilterResponse] -> ShowS
show :: CreateFilterResponse -> String
$cshow :: CreateFilterResponse -> String
showsPrec :: Int -> CreateFilterResponse -> ShowS
$cshowsPrec :: Int -> CreateFilterResponse -> ShowS
Prelude.Show, forall x. Rep CreateFilterResponse x -> CreateFilterResponse
forall x. CreateFilterResponse -> Rep CreateFilterResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateFilterResponse x -> CreateFilterResponse
$cfrom :: forall x. CreateFilterResponse -> Rep CreateFilterResponse x
Prelude.Generic)

-- |
-- Create a value of 'CreateFilterResponse' 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:
--
-- 'httpStatus', 'createFilterResponse_httpStatus' - The response's http status code.
--
-- 'arn', 'createFilterResponse_arn' - The Amazon Resource Number (ARN) of the successfully created filter.
newCreateFilterResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'arn'
  Prelude.Text ->
  CreateFilterResponse
newCreateFilterResponse :: Int -> Text -> CreateFilterResponse
newCreateFilterResponse Int
pHttpStatus_ Text
pArn_ =
  CreateFilterResponse'
    { $sel:httpStatus:CreateFilterResponse' :: Int
httpStatus = Int
pHttpStatus_,
      $sel:arn:CreateFilterResponse' :: Text
arn = Text
pArn_
    }

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

-- | The Amazon Resource Number (ARN) of the successfully created filter.
createFilterResponse_arn :: Lens.Lens' CreateFilterResponse Prelude.Text
createFilterResponse_arn :: Lens' CreateFilterResponse Text
createFilterResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFilterResponse' {Text
arn :: Text
$sel:arn:CreateFilterResponse' :: CreateFilterResponse -> Text
arn} -> Text
arn) (\s :: CreateFilterResponse
s@CreateFilterResponse' {} Text
a -> CreateFilterResponse
s {$sel:arn:CreateFilterResponse' :: Text
arn = Text
a} :: CreateFilterResponse)

instance Prelude.NFData CreateFilterResponse where
  rnf :: CreateFilterResponse -> ()
rnf CreateFilterResponse' {Int
Text
arn :: Text
httpStatus :: Int
$sel:arn:CreateFilterResponse' :: CreateFilterResponse -> Text
$sel:httpStatus:CreateFilterResponse' :: CreateFilterResponse -> Int
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
arn