{-# 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.MediaLive.DescribeInputSecurityGroup
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Produces a summary of an Input Security Group
module Amazonka.MediaLive.DescribeInputSecurityGroup
  ( -- * Creating a Request
    DescribeInputSecurityGroup (..),
    newDescribeInputSecurityGroup,

    -- * Request Lenses
    describeInputSecurityGroup_inputSecurityGroupId,

    -- * Destructuring the Response
    DescribeInputSecurityGroupResponse (..),
    newDescribeInputSecurityGroupResponse,

    -- * Response Lenses
    describeInputSecurityGroupResponse_arn,
    describeInputSecurityGroupResponse_id,
    describeInputSecurityGroupResponse_inputs,
    describeInputSecurityGroupResponse_state,
    describeInputSecurityGroupResponse_tags,
    describeInputSecurityGroupResponse_whitelistRules,
    describeInputSecurityGroupResponse_httpStatus,
  )
where

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

-- | Placeholder documentation for DescribeInputSecurityGroupRequest
--
-- /See:/ 'newDescribeInputSecurityGroup' smart constructor.
data DescribeInputSecurityGroup = DescribeInputSecurityGroup'
  { -- | The id of the Input Security Group to describe
    DescribeInputSecurityGroup -> Text
inputSecurityGroupId :: Prelude.Text
  }
  deriving (DescribeInputSecurityGroup -> DescribeInputSecurityGroup -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeInputSecurityGroup -> DescribeInputSecurityGroup -> Bool
$c/= :: DescribeInputSecurityGroup -> DescribeInputSecurityGroup -> Bool
== :: DescribeInputSecurityGroup -> DescribeInputSecurityGroup -> Bool
$c== :: DescribeInputSecurityGroup -> DescribeInputSecurityGroup -> Bool
Prelude.Eq, ReadPrec [DescribeInputSecurityGroup]
ReadPrec DescribeInputSecurityGroup
Int -> ReadS DescribeInputSecurityGroup
ReadS [DescribeInputSecurityGroup]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeInputSecurityGroup]
$creadListPrec :: ReadPrec [DescribeInputSecurityGroup]
readPrec :: ReadPrec DescribeInputSecurityGroup
$creadPrec :: ReadPrec DescribeInputSecurityGroup
readList :: ReadS [DescribeInputSecurityGroup]
$creadList :: ReadS [DescribeInputSecurityGroup]
readsPrec :: Int -> ReadS DescribeInputSecurityGroup
$creadsPrec :: Int -> ReadS DescribeInputSecurityGroup
Prelude.Read, Int -> DescribeInputSecurityGroup -> ShowS
[DescribeInputSecurityGroup] -> ShowS
DescribeInputSecurityGroup -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeInputSecurityGroup] -> ShowS
$cshowList :: [DescribeInputSecurityGroup] -> ShowS
show :: DescribeInputSecurityGroup -> String
$cshow :: DescribeInputSecurityGroup -> String
showsPrec :: Int -> DescribeInputSecurityGroup -> ShowS
$cshowsPrec :: Int -> DescribeInputSecurityGroup -> ShowS
Prelude.Show, forall x.
Rep DescribeInputSecurityGroup x -> DescribeInputSecurityGroup
forall x.
DescribeInputSecurityGroup -> Rep DescribeInputSecurityGroup x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeInputSecurityGroup x -> DescribeInputSecurityGroup
$cfrom :: forall x.
DescribeInputSecurityGroup -> Rep DescribeInputSecurityGroup x
Prelude.Generic)

-- |
-- Create a value of 'DescribeInputSecurityGroup' 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:
--
-- 'inputSecurityGroupId', 'describeInputSecurityGroup_inputSecurityGroupId' - The id of the Input Security Group to describe
newDescribeInputSecurityGroup ::
  -- | 'inputSecurityGroupId'
  Prelude.Text ->
  DescribeInputSecurityGroup
newDescribeInputSecurityGroup :: Text -> DescribeInputSecurityGroup
newDescribeInputSecurityGroup Text
pInputSecurityGroupId_ =
  DescribeInputSecurityGroup'
    { $sel:inputSecurityGroupId:DescribeInputSecurityGroup' :: Text
inputSecurityGroupId =
        Text
pInputSecurityGroupId_
    }

-- | The id of the Input Security Group to describe
describeInputSecurityGroup_inputSecurityGroupId :: Lens.Lens' DescribeInputSecurityGroup Prelude.Text
describeInputSecurityGroup_inputSecurityGroupId :: Lens' DescribeInputSecurityGroup Text
describeInputSecurityGroup_inputSecurityGroupId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInputSecurityGroup' {Text
inputSecurityGroupId :: Text
$sel:inputSecurityGroupId:DescribeInputSecurityGroup' :: DescribeInputSecurityGroup -> Text
inputSecurityGroupId} -> Text
inputSecurityGroupId) (\s :: DescribeInputSecurityGroup
s@DescribeInputSecurityGroup' {} Text
a -> DescribeInputSecurityGroup
s {$sel:inputSecurityGroupId:DescribeInputSecurityGroup' :: Text
inputSecurityGroupId = Text
a} :: DescribeInputSecurityGroup)

instance Core.AWSRequest DescribeInputSecurityGroup where
  type
    AWSResponse DescribeInputSecurityGroup =
      DescribeInputSecurityGroupResponse
  request :: (Service -> Service)
-> DescribeInputSecurityGroup -> Request DescribeInputSecurityGroup
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeInputSecurityGroup
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeInputSecurityGroup)))
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 ->
          Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe InputSecurityGroupState
-> Maybe (HashMap Text Text)
-> Maybe [InputWhitelistRule]
-> Int
-> DescribeInputSecurityGroupResponse
DescribeInputSecurityGroupResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"arn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"id")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"inputs" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"state")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"tags" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"whitelistRules" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            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 DescribeInputSecurityGroup where
  hashWithSalt :: Int -> DescribeInputSecurityGroup -> Int
hashWithSalt Int
_salt DescribeInputSecurityGroup' {Text
inputSecurityGroupId :: Text
$sel:inputSecurityGroupId:DescribeInputSecurityGroup' :: DescribeInputSecurityGroup -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
inputSecurityGroupId

instance Prelude.NFData DescribeInputSecurityGroup where
  rnf :: DescribeInputSecurityGroup -> ()
rnf DescribeInputSecurityGroup' {Text
inputSecurityGroupId :: Text
$sel:inputSecurityGroupId:DescribeInputSecurityGroup' :: DescribeInputSecurityGroup -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
inputSecurityGroupId

instance Data.ToHeaders DescribeInputSecurityGroup where
  toHeaders :: DescribeInputSecurityGroup -> 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.ToPath DescribeInputSecurityGroup where
  toPath :: DescribeInputSecurityGroup -> ByteString
toPath DescribeInputSecurityGroup' {Text
inputSecurityGroupId :: Text
$sel:inputSecurityGroupId:DescribeInputSecurityGroup' :: DescribeInputSecurityGroup -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/prod/inputSecurityGroups/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
inputSecurityGroupId
      ]

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

-- | Placeholder documentation for DescribeInputSecurityGroupResponse
--
-- /See:/ 'newDescribeInputSecurityGroupResponse' smart constructor.
data DescribeInputSecurityGroupResponse = DescribeInputSecurityGroupResponse'
  { -- | Unique ARN of Input Security Group
    DescribeInputSecurityGroupResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The Id of the Input Security Group
    DescribeInputSecurityGroupResponse -> Maybe Text
id :: Prelude.Maybe Prelude.Text,
    -- | The list of inputs currently using this Input Security Group.
    DescribeInputSecurityGroupResponse -> Maybe [Text]
inputs :: Prelude.Maybe [Prelude.Text],
    -- | The current state of the Input Security Group.
    DescribeInputSecurityGroupResponse -> Maybe InputSecurityGroupState
state :: Prelude.Maybe InputSecurityGroupState,
    -- | A collection of key-value pairs.
    DescribeInputSecurityGroupResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | Whitelist rules and their sync status
    DescribeInputSecurityGroupResponse -> Maybe [InputWhitelistRule]
whitelistRules :: Prelude.Maybe [InputWhitelistRule],
    -- | The response's http status code.
    DescribeInputSecurityGroupResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeInputSecurityGroupResponse
-> DescribeInputSecurityGroupResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeInputSecurityGroupResponse
-> DescribeInputSecurityGroupResponse -> Bool
$c/= :: DescribeInputSecurityGroupResponse
-> DescribeInputSecurityGroupResponse -> Bool
== :: DescribeInputSecurityGroupResponse
-> DescribeInputSecurityGroupResponse -> Bool
$c== :: DescribeInputSecurityGroupResponse
-> DescribeInputSecurityGroupResponse -> Bool
Prelude.Eq, ReadPrec [DescribeInputSecurityGroupResponse]
ReadPrec DescribeInputSecurityGroupResponse
Int -> ReadS DescribeInputSecurityGroupResponse
ReadS [DescribeInputSecurityGroupResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeInputSecurityGroupResponse]
$creadListPrec :: ReadPrec [DescribeInputSecurityGroupResponse]
readPrec :: ReadPrec DescribeInputSecurityGroupResponse
$creadPrec :: ReadPrec DescribeInputSecurityGroupResponse
readList :: ReadS [DescribeInputSecurityGroupResponse]
$creadList :: ReadS [DescribeInputSecurityGroupResponse]
readsPrec :: Int -> ReadS DescribeInputSecurityGroupResponse
$creadsPrec :: Int -> ReadS DescribeInputSecurityGroupResponse
Prelude.Read, Int -> DescribeInputSecurityGroupResponse -> ShowS
[DescribeInputSecurityGroupResponse] -> ShowS
DescribeInputSecurityGroupResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeInputSecurityGroupResponse] -> ShowS
$cshowList :: [DescribeInputSecurityGroupResponse] -> ShowS
show :: DescribeInputSecurityGroupResponse -> String
$cshow :: DescribeInputSecurityGroupResponse -> String
showsPrec :: Int -> DescribeInputSecurityGroupResponse -> ShowS
$cshowsPrec :: Int -> DescribeInputSecurityGroupResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeInputSecurityGroupResponse x
-> DescribeInputSecurityGroupResponse
forall x.
DescribeInputSecurityGroupResponse
-> Rep DescribeInputSecurityGroupResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeInputSecurityGroupResponse x
-> DescribeInputSecurityGroupResponse
$cfrom :: forall x.
DescribeInputSecurityGroupResponse
-> Rep DescribeInputSecurityGroupResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeInputSecurityGroupResponse' 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:
--
-- 'arn', 'describeInputSecurityGroupResponse_arn' - Unique ARN of Input Security Group
--
-- 'id', 'describeInputSecurityGroupResponse_id' - The Id of the Input Security Group
--
-- 'inputs', 'describeInputSecurityGroupResponse_inputs' - The list of inputs currently using this Input Security Group.
--
-- 'state', 'describeInputSecurityGroupResponse_state' - The current state of the Input Security Group.
--
-- 'tags', 'describeInputSecurityGroupResponse_tags' - A collection of key-value pairs.
--
-- 'whitelistRules', 'describeInputSecurityGroupResponse_whitelistRules' - Whitelist rules and their sync status
--
-- 'httpStatus', 'describeInputSecurityGroupResponse_httpStatus' - The response's http status code.
newDescribeInputSecurityGroupResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeInputSecurityGroupResponse
newDescribeInputSecurityGroupResponse :: Int -> DescribeInputSecurityGroupResponse
newDescribeInputSecurityGroupResponse Int
pHttpStatus_ =
  DescribeInputSecurityGroupResponse'
    { $sel:arn:DescribeInputSecurityGroupResponse' :: Maybe Text
arn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:id:DescribeInputSecurityGroupResponse' :: Maybe Text
id = forall a. Maybe a
Prelude.Nothing,
      $sel:inputs:DescribeInputSecurityGroupResponse' :: Maybe [Text]
inputs = forall a. Maybe a
Prelude.Nothing,
      $sel:state:DescribeInputSecurityGroupResponse' :: Maybe InputSecurityGroupState
state = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:DescribeInputSecurityGroupResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:whitelistRules:DescribeInputSecurityGroupResponse' :: Maybe [InputWhitelistRule]
whitelistRules = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeInputSecurityGroupResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Unique ARN of Input Security Group
describeInputSecurityGroupResponse_arn :: Lens.Lens' DescribeInputSecurityGroupResponse (Prelude.Maybe Prelude.Text)
describeInputSecurityGroupResponse_arn :: Lens' DescribeInputSecurityGroupResponse (Maybe Text)
describeInputSecurityGroupResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInputSecurityGroupResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:DescribeInputSecurityGroupResponse' :: DescribeInputSecurityGroupResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: DescribeInputSecurityGroupResponse
s@DescribeInputSecurityGroupResponse' {} Maybe Text
a -> DescribeInputSecurityGroupResponse
s {$sel:arn:DescribeInputSecurityGroupResponse' :: Maybe Text
arn = Maybe Text
a} :: DescribeInputSecurityGroupResponse)

-- | The Id of the Input Security Group
describeInputSecurityGroupResponse_id :: Lens.Lens' DescribeInputSecurityGroupResponse (Prelude.Maybe Prelude.Text)
describeInputSecurityGroupResponse_id :: Lens' DescribeInputSecurityGroupResponse (Maybe Text)
describeInputSecurityGroupResponse_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInputSecurityGroupResponse' {Maybe Text
id :: Maybe Text
$sel:id:DescribeInputSecurityGroupResponse' :: DescribeInputSecurityGroupResponse -> Maybe Text
id} -> Maybe Text
id) (\s :: DescribeInputSecurityGroupResponse
s@DescribeInputSecurityGroupResponse' {} Maybe Text
a -> DescribeInputSecurityGroupResponse
s {$sel:id:DescribeInputSecurityGroupResponse' :: Maybe Text
id = Maybe Text
a} :: DescribeInputSecurityGroupResponse)

-- | The list of inputs currently using this Input Security Group.
describeInputSecurityGroupResponse_inputs :: Lens.Lens' DescribeInputSecurityGroupResponse (Prelude.Maybe [Prelude.Text])
describeInputSecurityGroupResponse_inputs :: Lens' DescribeInputSecurityGroupResponse (Maybe [Text])
describeInputSecurityGroupResponse_inputs = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInputSecurityGroupResponse' {Maybe [Text]
inputs :: Maybe [Text]
$sel:inputs:DescribeInputSecurityGroupResponse' :: DescribeInputSecurityGroupResponse -> Maybe [Text]
inputs} -> Maybe [Text]
inputs) (\s :: DescribeInputSecurityGroupResponse
s@DescribeInputSecurityGroupResponse' {} Maybe [Text]
a -> DescribeInputSecurityGroupResponse
s {$sel:inputs:DescribeInputSecurityGroupResponse' :: Maybe [Text]
inputs = Maybe [Text]
a} :: DescribeInputSecurityGroupResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The current state of the Input Security Group.
describeInputSecurityGroupResponse_state :: Lens.Lens' DescribeInputSecurityGroupResponse (Prelude.Maybe InputSecurityGroupState)
describeInputSecurityGroupResponse_state :: Lens'
  DescribeInputSecurityGroupResponse (Maybe InputSecurityGroupState)
describeInputSecurityGroupResponse_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInputSecurityGroupResponse' {Maybe InputSecurityGroupState
state :: Maybe InputSecurityGroupState
$sel:state:DescribeInputSecurityGroupResponse' :: DescribeInputSecurityGroupResponse -> Maybe InputSecurityGroupState
state} -> Maybe InputSecurityGroupState
state) (\s :: DescribeInputSecurityGroupResponse
s@DescribeInputSecurityGroupResponse' {} Maybe InputSecurityGroupState
a -> DescribeInputSecurityGroupResponse
s {$sel:state:DescribeInputSecurityGroupResponse' :: Maybe InputSecurityGroupState
state = Maybe InputSecurityGroupState
a} :: DescribeInputSecurityGroupResponse)

-- | A collection of key-value pairs.
describeInputSecurityGroupResponse_tags :: Lens.Lens' DescribeInputSecurityGroupResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
describeInputSecurityGroupResponse_tags :: Lens'
  DescribeInputSecurityGroupResponse (Maybe (HashMap Text Text))
describeInputSecurityGroupResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInputSecurityGroupResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:DescribeInputSecurityGroupResponse' :: DescribeInputSecurityGroupResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: DescribeInputSecurityGroupResponse
s@DescribeInputSecurityGroupResponse' {} Maybe (HashMap Text Text)
a -> DescribeInputSecurityGroupResponse
s {$sel:tags:DescribeInputSecurityGroupResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: DescribeInputSecurityGroupResponse) 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

-- | Whitelist rules and their sync status
describeInputSecurityGroupResponse_whitelistRules :: Lens.Lens' DescribeInputSecurityGroupResponse (Prelude.Maybe [InputWhitelistRule])
describeInputSecurityGroupResponse_whitelistRules :: Lens'
  DescribeInputSecurityGroupResponse (Maybe [InputWhitelistRule])
describeInputSecurityGroupResponse_whitelistRules = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInputSecurityGroupResponse' {Maybe [InputWhitelistRule]
whitelistRules :: Maybe [InputWhitelistRule]
$sel:whitelistRules:DescribeInputSecurityGroupResponse' :: DescribeInputSecurityGroupResponse -> Maybe [InputWhitelistRule]
whitelistRules} -> Maybe [InputWhitelistRule]
whitelistRules) (\s :: DescribeInputSecurityGroupResponse
s@DescribeInputSecurityGroupResponse' {} Maybe [InputWhitelistRule]
a -> DescribeInputSecurityGroupResponse
s {$sel:whitelistRules:DescribeInputSecurityGroupResponse' :: Maybe [InputWhitelistRule]
whitelistRules = Maybe [InputWhitelistRule]
a} :: DescribeInputSecurityGroupResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

instance
  Prelude.NFData
    DescribeInputSecurityGroupResponse
  where
  rnf :: DescribeInputSecurityGroupResponse -> ()
rnf DescribeInputSecurityGroupResponse' {Int
Maybe [Text]
Maybe [InputWhitelistRule]
Maybe Text
Maybe (HashMap Text Text)
Maybe InputSecurityGroupState
httpStatus :: Int
whitelistRules :: Maybe [InputWhitelistRule]
tags :: Maybe (HashMap Text Text)
state :: Maybe InputSecurityGroupState
inputs :: Maybe [Text]
id :: Maybe Text
arn :: Maybe Text
$sel:httpStatus:DescribeInputSecurityGroupResponse' :: DescribeInputSecurityGroupResponse -> Int
$sel:whitelistRules:DescribeInputSecurityGroupResponse' :: DescribeInputSecurityGroupResponse -> Maybe [InputWhitelistRule]
$sel:tags:DescribeInputSecurityGroupResponse' :: DescribeInputSecurityGroupResponse -> Maybe (HashMap Text Text)
$sel:state:DescribeInputSecurityGroupResponse' :: DescribeInputSecurityGroupResponse -> Maybe InputSecurityGroupState
$sel:inputs:DescribeInputSecurityGroupResponse' :: DescribeInputSecurityGroupResponse -> Maybe [Text]
$sel:id:DescribeInputSecurityGroupResponse' :: DescribeInputSecurityGroupResponse -> Maybe Text
$sel:arn:DescribeInputSecurityGroupResponse' :: DescribeInputSecurityGroupResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
id
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
inputs
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InputSecurityGroupState
state
      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 Maybe [InputWhitelistRule]
whitelistRules
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus