{-# 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.KafkaConnect.DescribeCustomPlugin
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- A summary description of the custom plugin.
module Amazonka.KafkaConnect.DescribeCustomPlugin
  ( -- * Creating a Request
    DescribeCustomPlugin (..),
    newDescribeCustomPlugin,

    -- * Request Lenses
    describeCustomPlugin_customPluginArn,

    -- * Destructuring the Response
    DescribeCustomPluginResponse (..),
    newDescribeCustomPluginResponse,

    -- * Response Lenses
    describeCustomPluginResponse_creationTime,
    describeCustomPluginResponse_customPluginArn,
    describeCustomPluginResponse_customPluginState,
    describeCustomPluginResponse_description,
    describeCustomPluginResponse_latestRevision,
    describeCustomPluginResponse_name,
    describeCustomPluginResponse_stateDescription,
    describeCustomPluginResponse_httpStatus,
  )
where

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

-- | /See:/ 'newDescribeCustomPlugin' smart constructor.
data DescribeCustomPlugin = DescribeCustomPlugin'
  { -- | Returns information about a custom plugin.
    DescribeCustomPlugin -> Text
customPluginArn :: Prelude.Text
  }
  deriving (DescribeCustomPlugin -> DescribeCustomPlugin -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeCustomPlugin -> DescribeCustomPlugin -> Bool
$c/= :: DescribeCustomPlugin -> DescribeCustomPlugin -> Bool
== :: DescribeCustomPlugin -> DescribeCustomPlugin -> Bool
$c== :: DescribeCustomPlugin -> DescribeCustomPlugin -> Bool
Prelude.Eq, ReadPrec [DescribeCustomPlugin]
ReadPrec DescribeCustomPlugin
Int -> ReadS DescribeCustomPlugin
ReadS [DescribeCustomPlugin]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeCustomPlugin]
$creadListPrec :: ReadPrec [DescribeCustomPlugin]
readPrec :: ReadPrec DescribeCustomPlugin
$creadPrec :: ReadPrec DescribeCustomPlugin
readList :: ReadS [DescribeCustomPlugin]
$creadList :: ReadS [DescribeCustomPlugin]
readsPrec :: Int -> ReadS DescribeCustomPlugin
$creadsPrec :: Int -> ReadS DescribeCustomPlugin
Prelude.Read, Int -> DescribeCustomPlugin -> ShowS
[DescribeCustomPlugin] -> ShowS
DescribeCustomPlugin -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeCustomPlugin] -> ShowS
$cshowList :: [DescribeCustomPlugin] -> ShowS
show :: DescribeCustomPlugin -> String
$cshow :: DescribeCustomPlugin -> String
showsPrec :: Int -> DescribeCustomPlugin -> ShowS
$cshowsPrec :: Int -> DescribeCustomPlugin -> ShowS
Prelude.Show, forall x. Rep DescribeCustomPlugin x -> DescribeCustomPlugin
forall x. DescribeCustomPlugin -> Rep DescribeCustomPlugin x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeCustomPlugin x -> DescribeCustomPlugin
$cfrom :: forall x. DescribeCustomPlugin -> Rep DescribeCustomPlugin x
Prelude.Generic)

-- |
-- Create a value of 'DescribeCustomPlugin' 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:
--
-- 'customPluginArn', 'describeCustomPlugin_customPluginArn' - Returns information about a custom plugin.
newDescribeCustomPlugin ::
  -- | 'customPluginArn'
  Prelude.Text ->
  DescribeCustomPlugin
newDescribeCustomPlugin :: Text -> DescribeCustomPlugin
newDescribeCustomPlugin Text
pCustomPluginArn_ =
  DescribeCustomPlugin'
    { $sel:customPluginArn:DescribeCustomPlugin' :: Text
customPluginArn =
        Text
pCustomPluginArn_
    }

-- | Returns information about a custom plugin.
describeCustomPlugin_customPluginArn :: Lens.Lens' DescribeCustomPlugin Prelude.Text
describeCustomPlugin_customPluginArn :: Lens' DescribeCustomPlugin Text
describeCustomPlugin_customPluginArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCustomPlugin' {Text
customPluginArn :: Text
$sel:customPluginArn:DescribeCustomPlugin' :: DescribeCustomPlugin -> Text
customPluginArn} -> Text
customPluginArn) (\s :: DescribeCustomPlugin
s@DescribeCustomPlugin' {} Text
a -> DescribeCustomPlugin
s {$sel:customPluginArn:DescribeCustomPlugin' :: Text
customPluginArn = Text
a} :: DescribeCustomPlugin)

instance Core.AWSRequest DescribeCustomPlugin where
  type
    AWSResponse DescribeCustomPlugin =
      DescribeCustomPluginResponse
  request :: (Service -> Service)
-> DescribeCustomPlugin -> Request DescribeCustomPlugin
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 DescribeCustomPlugin
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeCustomPlugin)))
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 ISO8601
-> Maybe Text
-> Maybe CustomPluginState
-> Maybe Text
-> Maybe CustomPluginRevisionSummary
-> Maybe Text
-> Maybe StateDescription
-> Int
-> DescribeCustomPluginResponse
DescribeCustomPluginResponse'
            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
"creationTime")
            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
"customPluginArn")
            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
"customPluginState")
            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
"description")
            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
"latestRevision")
            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
"name")
            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
"stateDescription")
            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 DescribeCustomPlugin where
  hashWithSalt :: Int -> DescribeCustomPlugin -> Int
hashWithSalt Int
_salt DescribeCustomPlugin' {Text
customPluginArn :: Text
$sel:customPluginArn:DescribeCustomPlugin' :: DescribeCustomPlugin -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
customPluginArn

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

instance Data.ToHeaders DescribeCustomPlugin where
  toHeaders :: DescribeCustomPlugin -> 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 DescribeCustomPlugin where
  toPath :: DescribeCustomPlugin -> ByteString
toPath DescribeCustomPlugin' {Text
customPluginArn :: Text
$sel:customPluginArn:DescribeCustomPlugin' :: DescribeCustomPlugin -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/v1/custom-plugins/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
customPluginArn]

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

-- | /See:/ 'newDescribeCustomPluginResponse' smart constructor.
data DescribeCustomPluginResponse = DescribeCustomPluginResponse'
  { -- | The time that the custom plugin was created.
    DescribeCustomPluginResponse -> Maybe ISO8601
creationTime :: Prelude.Maybe Data.ISO8601,
    -- | The Amazon Resource Name (ARN) of the custom plugin.
    DescribeCustomPluginResponse -> Maybe Text
customPluginArn :: Prelude.Maybe Prelude.Text,
    -- | The state of the custom plugin.
    DescribeCustomPluginResponse -> Maybe CustomPluginState
customPluginState :: Prelude.Maybe CustomPluginState,
    -- | The description of the custom plugin.
    DescribeCustomPluginResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The latest successfully created revision of the custom plugin. If there
    -- are no successfully created revisions, this field will be absent.
    DescribeCustomPluginResponse -> Maybe CustomPluginRevisionSummary
latestRevision :: Prelude.Maybe CustomPluginRevisionSummary,
    -- | The name of the custom plugin.
    DescribeCustomPluginResponse -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | Details about the state of a custom plugin.
    DescribeCustomPluginResponse -> Maybe StateDescription
stateDescription :: Prelude.Maybe StateDescription,
    -- | The response's http status code.
    DescribeCustomPluginResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeCustomPluginResponse
-> DescribeCustomPluginResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeCustomPluginResponse
-> DescribeCustomPluginResponse -> Bool
$c/= :: DescribeCustomPluginResponse
-> DescribeCustomPluginResponse -> Bool
== :: DescribeCustomPluginResponse
-> DescribeCustomPluginResponse -> Bool
$c== :: DescribeCustomPluginResponse
-> DescribeCustomPluginResponse -> Bool
Prelude.Eq, ReadPrec [DescribeCustomPluginResponse]
ReadPrec DescribeCustomPluginResponse
Int -> ReadS DescribeCustomPluginResponse
ReadS [DescribeCustomPluginResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeCustomPluginResponse]
$creadListPrec :: ReadPrec [DescribeCustomPluginResponse]
readPrec :: ReadPrec DescribeCustomPluginResponse
$creadPrec :: ReadPrec DescribeCustomPluginResponse
readList :: ReadS [DescribeCustomPluginResponse]
$creadList :: ReadS [DescribeCustomPluginResponse]
readsPrec :: Int -> ReadS DescribeCustomPluginResponse
$creadsPrec :: Int -> ReadS DescribeCustomPluginResponse
Prelude.Read, Int -> DescribeCustomPluginResponse -> ShowS
[DescribeCustomPluginResponse] -> ShowS
DescribeCustomPluginResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeCustomPluginResponse] -> ShowS
$cshowList :: [DescribeCustomPluginResponse] -> ShowS
show :: DescribeCustomPluginResponse -> String
$cshow :: DescribeCustomPluginResponse -> String
showsPrec :: Int -> DescribeCustomPluginResponse -> ShowS
$cshowsPrec :: Int -> DescribeCustomPluginResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeCustomPluginResponse x -> DescribeCustomPluginResponse
forall x.
DescribeCustomPluginResponse -> Rep DescribeCustomPluginResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeCustomPluginResponse x -> DescribeCustomPluginResponse
$cfrom :: forall x.
DescribeCustomPluginResponse -> Rep DescribeCustomPluginResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeCustomPluginResponse' 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:
--
-- 'creationTime', 'describeCustomPluginResponse_creationTime' - The time that the custom plugin was created.
--
-- 'customPluginArn', 'describeCustomPluginResponse_customPluginArn' - The Amazon Resource Name (ARN) of the custom plugin.
--
-- 'customPluginState', 'describeCustomPluginResponse_customPluginState' - The state of the custom plugin.
--
-- 'description', 'describeCustomPluginResponse_description' - The description of the custom plugin.
--
-- 'latestRevision', 'describeCustomPluginResponse_latestRevision' - The latest successfully created revision of the custom plugin. If there
-- are no successfully created revisions, this field will be absent.
--
-- 'name', 'describeCustomPluginResponse_name' - The name of the custom plugin.
--
-- 'stateDescription', 'describeCustomPluginResponse_stateDescription' - Details about the state of a custom plugin.
--
-- 'httpStatus', 'describeCustomPluginResponse_httpStatus' - The response's http status code.
newDescribeCustomPluginResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeCustomPluginResponse
newDescribeCustomPluginResponse :: Int -> DescribeCustomPluginResponse
newDescribeCustomPluginResponse Int
pHttpStatus_ =
  DescribeCustomPluginResponse'
    { $sel:creationTime:DescribeCustomPluginResponse' :: Maybe ISO8601
creationTime =
        forall a. Maybe a
Prelude.Nothing,
      $sel:customPluginArn:DescribeCustomPluginResponse' :: Maybe Text
customPluginArn = forall a. Maybe a
Prelude.Nothing,
      $sel:customPluginState:DescribeCustomPluginResponse' :: Maybe CustomPluginState
customPluginState = forall a. Maybe a
Prelude.Nothing,
      $sel:description:DescribeCustomPluginResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:latestRevision:DescribeCustomPluginResponse' :: Maybe CustomPluginRevisionSummary
latestRevision = forall a. Maybe a
Prelude.Nothing,
      $sel:name:DescribeCustomPluginResponse' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:stateDescription:DescribeCustomPluginResponse' :: Maybe StateDescription
stateDescription = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeCustomPluginResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The time that the custom plugin was created.
describeCustomPluginResponse_creationTime :: Lens.Lens' DescribeCustomPluginResponse (Prelude.Maybe Prelude.UTCTime)
describeCustomPluginResponse_creationTime :: Lens' DescribeCustomPluginResponse (Maybe UTCTime)
describeCustomPluginResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCustomPluginResponse' {Maybe ISO8601
creationTime :: Maybe ISO8601
$sel:creationTime:DescribeCustomPluginResponse' :: DescribeCustomPluginResponse -> Maybe ISO8601
creationTime} -> Maybe ISO8601
creationTime) (\s :: DescribeCustomPluginResponse
s@DescribeCustomPluginResponse' {} Maybe ISO8601
a -> DescribeCustomPluginResponse
s {$sel:creationTime:DescribeCustomPluginResponse' :: Maybe ISO8601
creationTime = Maybe ISO8601
a} :: DescribeCustomPluginResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The Amazon Resource Name (ARN) of the custom plugin.
describeCustomPluginResponse_customPluginArn :: Lens.Lens' DescribeCustomPluginResponse (Prelude.Maybe Prelude.Text)
describeCustomPluginResponse_customPluginArn :: Lens' DescribeCustomPluginResponse (Maybe Text)
describeCustomPluginResponse_customPluginArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCustomPluginResponse' {Maybe Text
customPluginArn :: Maybe Text
$sel:customPluginArn:DescribeCustomPluginResponse' :: DescribeCustomPluginResponse -> Maybe Text
customPluginArn} -> Maybe Text
customPluginArn) (\s :: DescribeCustomPluginResponse
s@DescribeCustomPluginResponse' {} Maybe Text
a -> DescribeCustomPluginResponse
s {$sel:customPluginArn:DescribeCustomPluginResponse' :: Maybe Text
customPluginArn = Maybe Text
a} :: DescribeCustomPluginResponse)

-- | The state of the custom plugin.
describeCustomPluginResponse_customPluginState :: Lens.Lens' DescribeCustomPluginResponse (Prelude.Maybe CustomPluginState)
describeCustomPluginResponse_customPluginState :: Lens' DescribeCustomPluginResponse (Maybe CustomPluginState)
describeCustomPluginResponse_customPluginState = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCustomPluginResponse' {Maybe CustomPluginState
customPluginState :: Maybe CustomPluginState
$sel:customPluginState:DescribeCustomPluginResponse' :: DescribeCustomPluginResponse -> Maybe CustomPluginState
customPluginState} -> Maybe CustomPluginState
customPluginState) (\s :: DescribeCustomPluginResponse
s@DescribeCustomPluginResponse' {} Maybe CustomPluginState
a -> DescribeCustomPluginResponse
s {$sel:customPluginState:DescribeCustomPluginResponse' :: Maybe CustomPluginState
customPluginState = Maybe CustomPluginState
a} :: DescribeCustomPluginResponse)

-- | The description of the custom plugin.
describeCustomPluginResponse_description :: Lens.Lens' DescribeCustomPluginResponse (Prelude.Maybe Prelude.Text)
describeCustomPluginResponse_description :: Lens' DescribeCustomPluginResponse (Maybe Text)
describeCustomPluginResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCustomPluginResponse' {Maybe Text
description :: Maybe Text
$sel:description:DescribeCustomPluginResponse' :: DescribeCustomPluginResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: DescribeCustomPluginResponse
s@DescribeCustomPluginResponse' {} Maybe Text
a -> DescribeCustomPluginResponse
s {$sel:description:DescribeCustomPluginResponse' :: Maybe Text
description = Maybe Text
a} :: DescribeCustomPluginResponse)

-- | The latest successfully created revision of the custom plugin. If there
-- are no successfully created revisions, this field will be absent.
describeCustomPluginResponse_latestRevision :: Lens.Lens' DescribeCustomPluginResponse (Prelude.Maybe CustomPluginRevisionSummary)
describeCustomPluginResponse_latestRevision :: Lens'
  DescribeCustomPluginResponse (Maybe CustomPluginRevisionSummary)
describeCustomPluginResponse_latestRevision = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCustomPluginResponse' {Maybe CustomPluginRevisionSummary
latestRevision :: Maybe CustomPluginRevisionSummary
$sel:latestRevision:DescribeCustomPluginResponse' :: DescribeCustomPluginResponse -> Maybe CustomPluginRevisionSummary
latestRevision} -> Maybe CustomPluginRevisionSummary
latestRevision) (\s :: DescribeCustomPluginResponse
s@DescribeCustomPluginResponse' {} Maybe CustomPluginRevisionSummary
a -> DescribeCustomPluginResponse
s {$sel:latestRevision:DescribeCustomPluginResponse' :: Maybe CustomPluginRevisionSummary
latestRevision = Maybe CustomPluginRevisionSummary
a} :: DescribeCustomPluginResponse)

-- | The name of the custom plugin.
describeCustomPluginResponse_name :: Lens.Lens' DescribeCustomPluginResponse (Prelude.Maybe Prelude.Text)
describeCustomPluginResponse_name :: Lens' DescribeCustomPluginResponse (Maybe Text)
describeCustomPluginResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCustomPluginResponse' {Maybe Text
name :: Maybe Text
$sel:name:DescribeCustomPluginResponse' :: DescribeCustomPluginResponse -> Maybe Text
name} -> Maybe Text
name) (\s :: DescribeCustomPluginResponse
s@DescribeCustomPluginResponse' {} Maybe Text
a -> DescribeCustomPluginResponse
s {$sel:name:DescribeCustomPluginResponse' :: Maybe Text
name = Maybe Text
a} :: DescribeCustomPluginResponse)

-- | Details about the state of a custom plugin.
describeCustomPluginResponse_stateDescription :: Lens.Lens' DescribeCustomPluginResponse (Prelude.Maybe StateDescription)
describeCustomPluginResponse_stateDescription :: Lens' DescribeCustomPluginResponse (Maybe StateDescription)
describeCustomPluginResponse_stateDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCustomPluginResponse' {Maybe StateDescription
stateDescription :: Maybe StateDescription
$sel:stateDescription:DescribeCustomPluginResponse' :: DescribeCustomPluginResponse -> Maybe StateDescription
stateDescription} -> Maybe StateDescription
stateDescription) (\s :: DescribeCustomPluginResponse
s@DescribeCustomPluginResponse' {} Maybe StateDescription
a -> DescribeCustomPluginResponse
s {$sel:stateDescription:DescribeCustomPluginResponse' :: Maybe StateDescription
stateDescription = Maybe StateDescription
a} :: DescribeCustomPluginResponse)

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

instance Prelude.NFData DescribeCustomPluginResponse where
  rnf :: DescribeCustomPluginResponse -> ()
rnf DescribeCustomPluginResponse' {Int
Maybe Text
Maybe ISO8601
Maybe CustomPluginState
Maybe CustomPluginRevisionSummary
Maybe StateDescription
httpStatus :: Int
stateDescription :: Maybe StateDescription
name :: Maybe Text
latestRevision :: Maybe CustomPluginRevisionSummary
description :: Maybe Text
customPluginState :: Maybe CustomPluginState
customPluginArn :: Maybe Text
creationTime :: Maybe ISO8601
$sel:httpStatus:DescribeCustomPluginResponse' :: DescribeCustomPluginResponse -> Int
$sel:stateDescription:DescribeCustomPluginResponse' :: DescribeCustomPluginResponse -> Maybe StateDescription
$sel:name:DescribeCustomPluginResponse' :: DescribeCustomPluginResponse -> Maybe Text
$sel:latestRevision:DescribeCustomPluginResponse' :: DescribeCustomPluginResponse -> Maybe CustomPluginRevisionSummary
$sel:description:DescribeCustomPluginResponse' :: DescribeCustomPluginResponse -> Maybe Text
$sel:customPluginState:DescribeCustomPluginResponse' :: DescribeCustomPluginResponse -> Maybe CustomPluginState
$sel:customPluginArn:DescribeCustomPluginResponse' :: DescribeCustomPluginResponse -> Maybe Text
$sel:creationTime:DescribeCustomPluginResponse' :: DescribeCustomPluginResponse -> Maybe ISO8601
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
customPluginArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CustomPluginState
customPluginState
      seq :: forall a b. a -> b -> b
`Prelude.seq` 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 CustomPluginRevisionSummary
latestRevision
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe StateDescription
stateDescription
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus