{-# 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.IoT.ValidateSecurityProfileBehaviors
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Validates a Device Defender security profile behaviors specification.
--
-- Requires permission to access the
-- <https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions ValidateSecurityProfileBehaviors>
-- action.
module Amazonka.IoT.ValidateSecurityProfileBehaviors
  ( -- * Creating a Request
    ValidateSecurityProfileBehaviors (..),
    newValidateSecurityProfileBehaviors,

    -- * Request Lenses
    validateSecurityProfileBehaviors_behaviors,

    -- * Destructuring the Response
    ValidateSecurityProfileBehaviorsResponse (..),
    newValidateSecurityProfileBehaviorsResponse,

    -- * Response Lenses
    validateSecurityProfileBehaviorsResponse_validationErrors,
    validateSecurityProfileBehaviorsResponse_valid,
    validateSecurityProfileBehaviorsResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import Amazonka.IoT.Types
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newValidateSecurityProfileBehaviors' smart constructor.
data ValidateSecurityProfileBehaviors = ValidateSecurityProfileBehaviors'
  { -- | Specifies the behaviors that, when violated by a device (thing), cause
    -- an alert.
    ValidateSecurityProfileBehaviors -> [Behavior]
behaviors :: [Behavior]
  }
  deriving (ValidateSecurityProfileBehaviors
-> ValidateSecurityProfileBehaviors -> Bool
(ValidateSecurityProfileBehaviors
 -> ValidateSecurityProfileBehaviors -> Bool)
-> (ValidateSecurityProfileBehaviors
    -> ValidateSecurityProfileBehaviors -> Bool)
-> Eq ValidateSecurityProfileBehaviors
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ValidateSecurityProfileBehaviors
-> ValidateSecurityProfileBehaviors -> Bool
$c/= :: ValidateSecurityProfileBehaviors
-> ValidateSecurityProfileBehaviors -> Bool
== :: ValidateSecurityProfileBehaviors
-> ValidateSecurityProfileBehaviors -> Bool
$c== :: ValidateSecurityProfileBehaviors
-> ValidateSecurityProfileBehaviors -> Bool
Prelude.Eq, ReadPrec [ValidateSecurityProfileBehaviors]
ReadPrec ValidateSecurityProfileBehaviors
Int -> ReadS ValidateSecurityProfileBehaviors
ReadS [ValidateSecurityProfileBehaviors]
(Int -> ReadS ValidateSecurityProfileBehaviors)
-> ReadS [ValidateSecurityProfileBehaviors]
-> ReadPrec ValidateSecurityProfileBehaviors
-> ReadPrec [ValidateSecurityProfileBehaviors]
-> Read ValidateSecurityProfileBehaviors
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ValidateSecurityProfileBehaviors]
$creadListPrec :: ReadPrec [ValidateSecurityProfileBehaviors]
readPrec :: ReadPrec ValidateSecurityProfileBehaviors
$creadPrec :: ReadPrec ValidateSecurityProfileBehaviors
readList :: ReadS [ValidateSecurityProfileBehaviors]
$creadList :: ReadS [ValidateSecurityProfileBehaviors]
readsPrec :: Int -> ReadS ValidateSecurityProfileBehaviors
$creadsPrec :: Int -> ReadS ValidateSecurityProfileBehaviors
Prelude.Read, Int -> ValidateSecurityProfileBehaviors -> ShowS
[ValidateSecurityProfileBehaviors] -> ShowS
ValidateSecurityProfileBehaviors -> String
(Int -> ValidateSecurityProfileBehaviors -> ShowS)
-> (ValidateSecurityProfileBehaviors -> String)
-> ([ValidateSecurityProfileBehaviors] -> ShowS)
-> Show ValidateSecurityProfileBehaviors
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ValidateSecurityProfileBehaviors] -> ShowS
$cshowList :: [ValidateSecurityProfileBehaviors] -> ShowS
show :: ValidateSecurityProfileBehaviors -> String
$cshow :: ValidateSecurityProfileBehaviors -> String
showsPrec :: Int -> ValidateSecurityProfileBehaviors -> ShowS
$cshowsPrec :: Int -> ValidateSecurityProfileBehaviors -> ShowS
Prelude.Show, (forall x.
 ValidateSecurityProfileBehaviors
 -> Rep ValidateSecurityProfileBehaviors x)
-> (forall x.
    Rep ValidateSecurityProfileBehaviors x
    -> ValidateSecurityProfileBehaviors)
-> Generic ValidateSecurityProfileBehaviors
forall x.
Rep ValidateSecurityProfileBehaviors x
-> ValidateSecurityProfileBehaviors
forall x.
ValidateSecurityProfileBehaviors
-> Rep ValidateSecurityProfileBehaviors x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ValidateSecurityProfileBehaviors x
-> ValidateSecurityProfileBehaviors
$cfrom :: forall x.
ValidateSecurityProfileBehaviors
-> Rep ValidateSecurityProfileBehaviors x
Prelude.Generic)

-- |
-- Create a value of 'ValidateSecurityProfileBehaviors' 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:
--
-- 'behaviors', 'validateSecurityProfileBehaviors_behaviors' - Specifies the behaviors that, when violated by a device (thing), cause
-- an alert.
newValidateSecurityProfileBehaviors ::
  ValidateSecurityProfileBehaviors
newValidateSecurityProfileBehaviors :: ValidateSecurityProfileBehaviors
newValidateSecurityProfileBehaviors =
  ValidateSecurityProfileBehaviors' :: [Behavior] -> ValidateSecurityProfileBehaviors
ValidateSecurityProfileBehaviors'
    { $sel:behaviors:ValidateSecurityProfileBehaviors' :: [Behavior]
behaviors =
        [Behavior]
forall a. Monoid a => a
Prelude.mempty
    }

-- | Specifies the behaviors that, when violated by a device (thing), cause
-- an alert.
validateSecurityProfileBehaviors_behaviors :: Lens.Lens' ValidateSecurityProfileBehaviors [Behavior]
validateSecurityProfileBehaviors_behaviors :: ([Behavior] -> f [Behavior])
-> ValidateSecurityProfileBehaviors
-> f ValidateSecurityProfileBehaviors
validateSecurityProfileBehaviors_behaviors = (ValidateSecurityProfileBehaviors -> [Behavior])
-> (ValidateSecurityProfileBehaviors
    -> [Behavior] -> ValidateSecurityProfileBehaviors)
-> Lens
     ValidateSecurityProfileBehaviors
     ValidateSecurityProfileBehaviors
     [Behavior]
     [Behavior]
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ValidateSecurityProfileBehaviors' {[Behavior]
behaviors :: [Behavior]
$sel:behaviors:ValidateSecurityProfileBehaviors' :: ValidateSecurityProfileBehaviors -> [Behavior]
behaviors} -> [Behavior]
behaviors) (\s :: ValidateSecurityProfileBehaviors
s@ValidateSecurityProfileBehaviors' {} [Behavior]
a -> ValidateSecurityProfileBehaviors
s {$sel:behaviors:ValidateSecurityProfileBehaviors' :: [Behavior]
behaviors = [Behavior]
a} :: ValidateSecurityProfileBehaviors) (([Behavior] -> f [Behavior])
 -> ValidateSecurityProfileBehaviors
 -> f ValidateSecurityProfileBehaviors)
-> (([Behavior] -> f [Behavior]) -> [Behavior] -> f [Behavior])
-> ([Behavior] -> f [Behavior])
-> ValidateSecurityProfileBehaviors
-> f ValidateSecurityProfileBehaviors
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. ([Behavior] -> f [Behavior]) -> [Behavior] -> f [Behavior]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance
  Core.AWSRequest
    ValidateSecurityProfileBehaviors
  where
  type
    AWSResponse ValidateSecurityProfileBehaviors =
      ValidateSecurityProfileBehaviorsResponse
  request :: ValidateSecurityProfileBehaviors
-> Request ValidateSecurityProfileBehaviors
request = Service
-> ValidateSecurityProfileBehaviors
-> Request ValidateSecurityProfileBehaviors
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy ValidateSecurityProfileBehaviors
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse ValidateSecurityProfileBehaviors)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse ValidateSecurityProfileBehaviors))
-> Logger
-> Service
-> Proxy ValidateSecurityProfileBehaviors
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse ValidateSecurityProfileBehaviors)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe [ValidationError]
-> Maybe Bool -> Int -> ValidateSecurityProfileBehaviorsResponse
ValidateSecurityProfileBehaviorsResponse'
            (Maybe [ValidationError]
 -> Maybe Bool -> Int -> ValidateSecurityProfileBehaviorsResponse)
-> Either String (Maybe [ValidationError])
-> Either
     String
     (Maybe Bool -> Int -> ValidateSecurityProfileBehaviorsResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( Object
x Object -> Key -> Either String (Maybe (Maybe [ValidationError]))
forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Core..?> Key
"validationErrors"
                            Either String (Maybe (Maybe [ValidationError]))
-> Maybe [ValidationError]
-> Either String (Maybe [ValidationError])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [ValidationError]
forall a. Monoid a => a
Prelude.mempty
                        )
            Either
  String
  (Maybe Bool -> Int -> ValidateSecurityProfileBehaviorsResponse)
-> Either String (Maybe Bool)
-> Either String (Int -> ValidateSecurityProfileBehaviorsResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Key -> Either String (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Core..?> Key
"valid")
            Either String (Int -> ValidateSecurityProfileBehaviorsResponse)
-> Either String Int
-> Either String ValidateSecurityProfileBehaviorsResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance
  Prelude.Hashable
    ValidateSecurityProfileBehaviors

instance
  Prelude.NFData
    ValidateSecurityProfileBehaviors

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

instance Core.ToJSON ValidateSecurityProfileBehaviors where
  toJSON :: ValidateSecurityProfileBehaviors -> Value
toJSON ValidateSecurityProfileBehaviors' {[Behavior]
behaviors :: [Behavior]
$sel:behaviors:ValidateSecurityProfileBehaviors' :: ValidateSecurityProfileBehaviors -> [Behavior]
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Key
"behaviors" Key -> [Behavior] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Core..= [Behavior]
behaviors)]
      )

instance Core.ToPath ValidateSecurityProfileBehaviors where
  toPath :: ValidateSecurityProfileBehaviors -> ByteString
toPath =
    ByteString -> ValidateSecurityProfileBehaviors -> ByteString
forall a b. a -> b -> a
Prelude.const
      ByteString
"/security-profile-behaviors/validate"

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

-- | /See:/ 'newValidateSecurityProfileBehaviorsResponse' smart constructor.
data ValidateSecurityProfileBehaviorsResponse = ValidateSecurityProfileBehaviorsResponse'
  { -- | The list of any errors found in the behaviors.
    ValidateSecurityProfileBehaviorsResponse -> Maybe [ValidationError]
validationErrors :: Prelude.Maybe [ValidationError],
    -- | True if the behaviors were valid.
    ValidateSecurityProfileBehaviorsResponse -> Maybe Bool
valid :: Prelude.Maybe Prelude.Bool,
    -- | The response's http status code.
    ValidateSecurityProfileBehaviorsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ValidateSecurityProfileBehaviorsResponse
-> ValidateSecurityProfileBehaviorsResponse -> Bool
(ValidateSecurityProfileBehaviorsResponse
 -> ValidateSecurityProfileBehaviorsResponse -> Bool)
-> (ValidateSecurityProfileBehaviorsResponse
    -> ValidateSecurityProfileBehaviorsResponse -> Bool)
-> Eq ValidateSecurityProfileBehaviorsResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ValidateSecurityProfileBehaviorsResponse
-> ValidateSecurityProfileBehaviorsResponse -> Bool
$c/= :: ValidateSecurityProfileBehaviorsResponse
-> ValidateSecurityProfileBehaviorsResponse -> Bool
== :: ValidateSecurityProfileBehaviorsResponse
-> ValidateSecurityProfileBehaviorsResponse -> Bool
$c== :: ValidateSecurityProfileBehaviorsResponse
-> ValidateSecurityProfileBehaviorsResponse -> Bool
Prelude.Eq, ReadPrec [ValidateSecurityProfileBehaviorsResponse]
ReadPrec ValidateSecurityProfileBehaviorsResponse
Int -> ReadS ValidateSecurityProfileBehaviorsResponse
ReadS [ValidateSecurityProfileBehaviorsResponse]
(Int -> ReadS ValidateSecurityProfileBehaviorsResponse)
-> ReadS [ValidateSecurityProfileBehaviorsResponse]
-> ReadPrec ValidateSecurityProfileBehaviorsResponse
-> ReadPrec [ValidateSecurityProfileBehaviorsResponse]
-> Read ValidateSecurityProfileBehaviorsResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ValidateSecurityProfileBehaviorsResponse]
$creadListPrec :: ReadPrec [ValidateSecurityProfileBehaviorsResponse]
readPrec :: ReadPrec ValidateSecurityProfileBehaviorsResponse
$creadPrec :: ReadPrec ValidateSecurityProfileBehaviorsResponse
readList :: ReadS [ValidateSecurityProfileBehaviorsResponse]
$creadList :: ReadS [ValidateSecurityProfileBehaviorsResponse]
readsPrec :: Int -> ReadS ValidateSecurityProfileBehaviorsResponse
$creadsPrec :: Int -> ReadS ValidateSecurityProfileBehaviorsResponse
Prelude.Read, Int -> ValidateSecurityProfileBehaviorsResponse -> ShowS
[ValidateSecurityProfileBehaviorsResponse] -> ShowS
ValidateSecurityProfileBehaviorsResponse -> String
(Int -> ValidateSecurityProfileBehaviorsResponse -> ShowS)
-> (ValidateSecurityProfileBehaviorsResponse -> String)
-> ([ValidateSecurityProfileBehaviorsResponse] -> ShowS)
-> Show ValidateSecurityProfileBehaviorsResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ValidateSecurityProfileBehaviorsResponse] -> ShowS
$cshowList :: [ValidateSecurityProfileBehaviorsResponse] -> ShowS
show :: ValidateSecurityProfileBehaviorsResponse -> String
$cshow :: ValidateSecurityProfileBehaviorsResponse -> String
showsPrec :: Int -> ValidateSecurityProfileBehaviorsResponse -> ShowS
$cshowsPrec :: Int -> ValidateSecurityProfileBehaviorsResponse -> ShowS
Prelude.Show, (forall x.
 ValidateSecurityProfileBehaviorsResponse
 -> Rep ValidateSecurityProfileBehaviorsResponse x)
-> (forall x.
    Rep ValidateSecurityProfileBehaviorsResponse x
    -> ValidateSecurityProfileBehaviorsResponse)
-> Generic ValidateSecurityProfileBehaviorsResponse
forall x.
Rep ValidateSecurityProfileBehaviorsResponse x
-> ValidateSecurityProfileBehaviorsResponse
forall x.
ValidateSecurityProfileBehaviorsResponse
-> Rep ValidateSecurityProfileBehaviorsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ValidateSecurityProfileBehaviorsResponse x
-> ValidateSecurityProfileBehaviorsResponse
$cfrom :: forall x.
ValidateSecurityProfileBehaviorsResponse
-> Rep ValidateSecurityProfileBehaviorsResponse x
Prelude.Generic)

-- |
-- Create a value of 'ValidateSecurityProfileBehaviorsResponse' 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:
--
-- 'validationErrors', 'validateSecurityProfileBehaviorsResponse_validationErrors' - The list of any errors found in the behaviors.
--
-- 'valid', 'validateSecurityProfileBehaviorsResponse_valid' - True if the behaviors were valid.
--
-- 'httpStatus', 'validateSecurityProfileBehaviorsResponse_httpStatus' - The response's http status code.
newValidateSecurityProfileBehaviorsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ValidateSecurityProfileBehaviorsResponse
newValidateSecurityProfileBehaviorsResponse :: Int -> ValidateSecurityProfileBehaviorsResponse
newValidateSecurityProfileBehaviorsResponse
  Int
pHttpStatus_ =
    ValidateSecurityProfileBehaviorsResponse' :: Maybe [ValidationError]
-> Maybe Bool -> Int -> ValidateSecurityProfileBehaviorsResponse
ValidateSecurityProfileBehaviorsResponse'
      { $sel:validationErrors:ValidateSecurityProfileBehaviorsResponse' :: Maybe [ValidationError]
validationErrors =
          Maybe [ValidationError]
forall a. Maybe a
Prelude.Nothing,
        $sel:valid:ValidateSecurityProfileBehaviorsResponse' :: Maybe Bool
valid = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:ValidateSecurityProfileBehaviorsResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | The list of any errors found in the behaviors.
validateSecurityProfileBehaviorsResponse_validationErrors :: Lens.Lens' ValidateSecurityProfileBehaviorsResponse (Prelude.Maybe [ValidationError])
validateSecurityProfileBehaviorsResponse_validationErrors :: (Maybe [ValidationError] -> f (Maybe [ValidationError]))
-> ValidateSecurityProfileBehaviorsResponse
-> f ValidateSecurityProfileBehaviorsResponse
validateSecurityProfileBehaviorsResponse_validationErrors = (ValidateSecurityProfileBehaviorsResponse
 -> Maybe [ValidationError])
-> (ValidateSecurityProfileBehaviorsResponse
    -> Maybe [ValidationError]
    -> ValidateSecurityProfileBehaviorsResponse)
-> Lens
     ValidateSecurityProfileBehaviorsResponse
     ValidateSecurityProfileBehaviorsResponse
     (Maybe [ValidationError])
     (Maybe [ValidationError])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ValidateSecurityProfileBehaviorsResponse' {Maybe [ValidationError]
validationErrors :: Maybe [ValidationError]
$sel:validationErrors:ValidateSecurityProfileBehaviorsResponse' :: ValidateSecurityProfileBehaviorsResponse -> Maybe [ValidationError]
validationErrors} -> Maybe [ValidationError]
validationErrors) (\s :: ValidateSecurityProfileBehaviorsResponse
s@ValidateSecurityProfileBehaviorsResponse' {} Maybe [ValidationError]
a -> ValidateSecurityProfileBehaviorsResponse
s {$sel:validationErrors:ValidateSecurityProfileBehaviorsResponse' :: Maybe [ValidationError]
validationErrors = Maybe [ValidationError]
a} :: ValidateSecurityProfileBehaviorsResponse) ((Maybe [ValidationError] -> f (Maybe [ValidationError]))
 -> ValidateSecurityProfileBehaviorsResponse
 -> f ValidateSecurityProfileBehaviorsResponse)
-> ((Maybe [ValidationError] -> f (Maybe [ValidationError]))
    -> Maybe [ValidationError] -> f (Maybe [ValidationError]))
-> (Maybe [ValidationError] -> f (Maybe [ValidationError]))
-> ValidateSecurityProfileBehaviorsResponse
-> f ValidateSecurityProfileBehaviorsResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [ValidationError]
  [ValidationError]
  [ValidationError]
  [ValidationError]
-> Iso
     (Maybe [ValidationError])
     (Maybe [ValidationError])
     (Maybe [ValidationError])
     (Maybe [ValidationError])
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 AnIso
  [ValidationError]
  [ValidationError]
  [ValidationError]
  [ValidationError]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | True if the behaviors were valid.
validateSecurityProfileBehaviorsResponse_valid :: Lens.Lens' ValidateSecurityProfileBehaviorsResponse (Prelude.Maybe Prelude.Bool)
validateSecurityProfileBehaviorsResponse_valid :: (Maybe Bool -> f (Maybe Bool))
-> ValidateSecurityProfileBehaviorsResponse
-> f ValidateSecurityProfileBehaviorsResponse
validateSecurityProfileBehaviorsResponse_valid = (ValidateSecurityProfileBehaviorsResponse -> Maybe Bool)
-> (ValidateSecurityProfileBehaviorsResponse
    -> Maybe Bool -> ValidateSecurityProfileBehaviorsResponse)
-> Lens
     ValidateSecurityProfileBehaviorsResponse
     ValidateSecurityProfileBehaviorsResponse
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ValidateSecurityProfileBehaviorsResponse' {Maybe Bool
valid :: Maybe Bool
$sel:valid:ValidateSecurityProfileBehaviorsResponse' :: ValidateSecurityProfileBehaviorsResponse -> Maybe Bool
valid} -> Maybe Bool
valid) (\s :: ValidateSecurityProfileBehaviorsResponse
s@ValidateSecurityProfileBehaviorsResponse' {} Maybe Bool
a -> ValidateSecurityProfileBehaviorsResponse
s {$sel:valid:ValidateSecurityProfileBehaviorsResponse' :: Maybe Bool
valid = Maybe Bool
a} :: ValidateSecurityProfileBehaviorsResponse)

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

instance
  Prelude.NFData
    ValidateSecurityProfileBehaviorsResponse