{-# 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.LookoutEquipment.DescribeLabel
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns the name of the label.
module Amazonka.LookoutEquipment.DescribeLabel
  ( -- * Creating a Request
    DescribeLabel (..),
    newDescribeLabel,

    -- * Request Lenses
    describeLabel_labelGroupName,
    describeLabel_labelId,

    -- * Destructuring the Response
    DescribeLabelResponse (..),
    newDescribeLabelResponse,

    -- * Response Lenses
    describeLabelResponse_createdAt,
    describeLabelResponse_endTime,
    describeLabelResponse_equipment,
    describeLabelResponse_faultCode,
    describeLabelResponse_labelGroupArn,
    describeLabelResponse_labelGroupName,
    describeLabelResponse_labelId,
    describeLabelResponse_notes,
    describeLabelResponse_rating,
    describeLabelResponse_startTime,
    describeLabelResponse_httpStatus,
  )
where

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

-- | /See:/ 'newDescribeLabel' smart constructor.
data DescribeLabel = DescribeLabel'
  { -- | Returns the name of the group containing the label.
    DescribeLabel -> Text
labelGroupName :: Prelude.Text,
    -- | Returns the ID of the label.
    DescribeLabel -> Text
labelId :: Prelude.Text
  }
  deriving (DescribeLabel -> DescribeLabel -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeLabel -> DescribeLabel -> Bool
$c/= :: DescribeLabel -> DescribeLabel -> Bool
== :: DescribeLabel -> DescribeLabel -> Bool
$c== :: DescribeLabel -> DescribeLabel -> Bool
Prelude.Eq, ReadPrec [DescribeLabel]
ReadPrec DescribeLabel
Int -> ReadS DescribeLabel
ReadS [DescribeLabel]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeLabel]
$creadListPrec :: ReadPrec [DescribeLabel]
readPrec :: ReadPrec DescribeLabel
$creadPrec :: ReadPrec DescribeLabel
readList :: ReadS [DescribeLabel]
$creadList :: ReadS [DescribeLabel]
readsPrec :: Int -> ReadS DescribeLabel
$creadsPrec :: Int -> ReadS DescribeLabel
Prelude.Read, Int -> DescribeLabel -> ShowS
[DescribeLabel] -> ShowS
DescribeLabel -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeLabel] -> ShowS
$cshowList :: [DescribeLabel] -> ShowS
show :: DescribeLabel -> String
$cshow :: DescribeLabel -> String
showsPrec :: Int -> DescribeLabel -> ShowS
$cshowsPrec :: Int -> DescribeLabel -> ShowS
Prelude.Show, forall x. Rep DescribeLabel x -> DescribeLabel
forall x. DescribeLabel -> Rep DescribeLabel x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeLabel x -> DescribeLabel
$cfrom :: forall x. DescribeLabel -> Rep DescribeLabel x
Prelude.Generic)

-- |
-- Create a value of 'DescribeLabel' 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:
--
-- 'labelGroupName', 'describeLabel_labelGroupName' - Returns the name of the group containing the label.
--
-- 'labelId', 'describeLabel_labelId' - Returns the ID of the label.
newDescribeLabel ::
  -- | 'labelGroupName'
  Prelude.Text ->
  -- | 'labelId'
  Prelude.Text ->
  DescribeLabel
newDescribeLabel :: Text -> Text -> DescribeLabel
newDescribeLabel Text
pLabelGroupName_ Text
pLabelId_ =
  DescribeLabel'
    { $sel:labelGroupName:DescribeLabel' :: Text
labelGroupName = Text
pLabelGroupName_,
      $sel:labelId:DescribeLabel' :: Text
labelId = Text
pLabelId_
    }

-- | Returns the name of the group containing the label.
describeLabel_labelGroupName :: Lens.Lens' DescribeLabel Prelude.Text
describeLabel_labelGroupName :: Lens' DescribeLabel Text
describeLabel_labelGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabel' {Text
labelGroupName :: Text
$sel:labelGroupName:DescribeLabel' :: DescribeLabel -> Text
labelGroupName} -> Text
labelGroupName) (\s :: DescribeLabel
s@DescribeLabel' {} Text
a -> DescribeLabel
s {$sel:labelGroupName:DescribeLabel' :: Text
labelGroupName = Text
a} :: DescribeLabel)

-- | Returns the ID of the label.
describeLabel_labelId :: Lens.Lens' DescribeLabel Prelude.Text
describeLabel_labelId :: Lens' DescribeLabel Text
describeLabel_labelId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabel' {Text
labelId :: Text
$sel:labelId:DescribeLabel' :: DescribeLabel -> Text
labelId} -> Text
labelId) (\s :: DescribeLabel
s@DescribeLabel' {} Text
a -> DescribeLabel
s {$sel:labelId:DescribeLabel' :: Text
labelId = Text
a} :: DescribeLabel)

instance Core.AWSRequest DescribeLabel where
  type
    AWSResponse DescribeLabel =
      DescribeLabelResponse
  request :: (Service -> Service) -> DescribeLabel -> Request DescribeLabel
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 DescribeLabel
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeLabel)))
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 POSIX
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe LabelRating
-> Maybe POSIX
-> Int
-> DescribeLabelResponse
DescribeLabelResponse'
            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
"CreatedAt")
            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
"EndTime")
            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
"Equipment")
            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
"FaultCode")
            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
"LabelGroupArn")
            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
"LabelGroupName")
            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
"LabelId")
            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
"Notes")
            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
"Rating")
            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
"StartTime")
            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 DescribeLabel where
  hashWithSalt :: Int -> DescribeLabel -> Int
hashWithSalt Int
_salt DescribeLabel' {Text
labelId :: Text
labelGroupName :: Text
$sel:labelId:DescribeLabel' :: DescribeLabel -> Text
$sel:labelGroupName:DescribeLabel' :: DescribeLabel -> Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
labelGroupName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
labelId

instance Prelude.NFData DescribeLabel where
  rnf :: DescribeLabel -> ()
rnf DescribeLabel' {Text
labelId :: Text
labelGroupName :: Text
$sel:labelId:DescribeLabel' :: DescribeLabel -> Text
$sel:labelGroupName:DescribeLabel' :: DescribeLabel -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
labelGroupName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
labelId

instance Data.ToHeaders DescribeLabel where
  toHeaders :: DescribeLabel -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"AWSLookoutEquipmentFrontendService.DescribeLabel" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.0" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON DescribeLabel where
  toJSON :: DescribeLabel -> Value
toJSON DescribeLabel' {Text
labelId :: Text
labelGroupName :: Text
$sel:labelId:DescribeLabel' :: DescribeLabel -> Text
$sel:labelGroupName:DescribeLabel' :: DescribeLabel -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ forall a. a -> Maybe a
Prelude.Just
              (Key
"LabelGroupName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
labelGroupName),
            forall a. a -> Maybe a
Prelude.Just (Key
"LabelId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
labelId)
          ]
      )

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

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

-- | /See:/ 'newDescribeLabelResponse' smart constructor.
data DescribeLabelResponse = DescribeLabelResponse'
  { -- | The time at which the label was created.
    DescribeLabelResponse -> Maybe POSIX
createdAt :: Prelude.Maybe Data.POSIX,
    -- | The end time of the requested label.
    DescribeLabelResponse -> Maybe POSIX
endTime :: Prelude.Maybe Data.POSIX,
    -- | Indicates that a label pertains to a particular piece of equipment.
    DescribeLabelResponse -> Maybe Text
equipment :: Prelude.Maybe Prelude.Text,
    -- | Indicates the type of anomaly associated with the label.
    --
    -- Data in this field will be retained for service usage. Follow best
    -- practices for the security of your data.
    DescribeLabelResponse -> Maybe Text
faultCode :: Prelude.Maybe Prelude.Text,
    -- | The ARN of the requested label group.
    DescribeLabelResponse -> Maybe Text
labelGroupArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the requested label group.
    DescribeLabelResponse -> Maybe Text
labelGroupName :: Prelude.Maybe Prelude.Text,
    -- | The ID of the requested label.
    DescribeLabelResponse -> Maybe Text
labelId :: Prelude.Maybe Prelude.Text,
    -- | Metadata providing additional information about the label.
    --
    -- Data in this field will be retained for service usage. Follow best
    -- practices for the security of your data.
    DescribeLabelResponse -> Maybe Text
notes :: Prelude.Maybe Prelude.Text,
    -- | Indicates whether a labeled event represents an anomaly.
    DescribeLabelResponse -> Maybe LabelRating
rating :: Prelude.Maybe LabelRating,
    -- | The start time of the requested label.
    DescribeLabelResponse -> Maybe POSIX
startTime :: Prelude.Maybe Data.POSIX,
    -- | The response's http status code.
    DescribeLabelResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeLabelResponse -> DescribeLabelResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeLabelResponse -> DescribeLabelResponse -> Bool
$c/= :: DescribeLabelResponse -> DescribeLabelResponse -> Bool
== :: DescribeLabelResponse -> DescribeLabelResponse -> Bool
$c== :: DescribeLabelResponse -> DescribeLabelResponse -> Bool
Prelude.Eq, ReadPrec [DescribeLabelResponse]
ReadPrec DescribeLabelResponse
Int -> ReadS DescribeLabelResponse
ReadS [DescribeLabelResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeLabelResponse]
$creadListPrec :: ReadPrec [DescribeLabelResponse]
readPrec :: ReadPrec DescribeLabelResponse
$creadPrec :: ReadPrec DescribeLabelResponse
readList :: ReadS [DescribeLabelResponse]
$creadList :: ReadS [DescribeLabelResponse]
readsPrec :: Int -> ReadS DescribeLabelResponse
$creadsPrec :: Int -> ReadS DescribeLabelResponse
Prelude.Read, Int -> DescribeLabelResponse -> ShowS
[DescribeLabelResponse] -> ShowS
DescribeLabelResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeLabelResponse] -> ShowS
$cshowList :: [DescribeLabelResponse] -> ShowS
show :: DescribeLabelResponse -> String
$cshow :: DescribeLabelResponse -> String
showsPrec :: Int -> DescribeLabelResponse -> ShowS
$cshowsPrec :: Int -> DescribeLabelResponse -> ShowS
Prelude.Show, forall x. Rep DescribeLabelResponse x -> DescribeLabelResponse
forall x. DescribeLabelResponse -> Rep DescribeLabelResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeLabelResponse x -> DescribeLabelResponse
$cfrom :: forall x. DescribeLabelResponse -> Rep DescribeLabelResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeLabelResponse' 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:
--
-- 'createdAt', 'describeLabelResponse_createdAt' - The time at which the label was created.
--
-- 'endTime', 'describeLabelResponse_endTime' - The end time of the requested label.
--
-- 'equipment', 'describeLabelResponse_equipment' - Indicates that a label pertains to a particular piece of equipment.
--
-- 'faultCode', 'describeLabelResponse_faultCode' - Indicates the type of anomaly associated with the label.
--
-- Data in this field will be retained for service usage. Follow best
-- practices for the security of your data.
--
-- 'labelGroupArn', 'describeLabelResponse_labelGroupArn' - The ARN of the requested label group.
--
-- 'labelGroupName', 'describeLabelResponse_labelGroupName' - The name of the requested label group.
--
-- 'labelId', 'describeLabelResponse_labelId' - The ID of the requested label.
--
-- 'notes', 'describeLabelResponse_notes' - Metadata providing additional information about the label.
--
-- Data in this field will be retained for service usage. Follow best
-- practices for the security of your data.
--
-- 'rating', 'describeLabelResponse_rating' - Indicates whether a labeled event represents an anomaly.
--
-- 'startTime', 'describeLabelResponse_startTime' - The start time of the requested label.
--
-- 'httpStatus', 'describeLabelResponse_httpStatus' - The response's http status code.
newDescribeLabelResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeLabelResponse
newDescribeLabelResponse :: Int -> DescribeLabelResponse
newDescribeLabelResponse Int
pHttpStatus_ =
  DescribeLabelResponse'
    { $sel:createdAt:DescribeLabelResponse' :: Maybe POSIX
createdAt = forall a. Maybe a
Prelude.Nothing,
      $sel:endTime:DescribeLabelResponse' :: Maybe POSIX
endTime = forall a. Maybe a
Prelude.Nothing,
      $sel:equipment:DescribeLabelResponse' :: Maybe Text
equipment = forall a. Maybe a
Prelude.Nothing,
      $sel:faultCode:DescribeLabelResponse' :: Maybe Text
faultCode = forall a. Maybe a
Prelude.Nothing,
      $sel:labelGroupArn:DescribeLabelResponse' :: Maybe Text
labelGroupArn = forall a. Maybe a
Prelude.Nothing,
      $sel:labelGroupName:DescribeLabelResponse' :: Maybe Text
labelGroupName = forall a. Maybe a
Prelude.Nothing,
      $sel:labelId:DescribeLabelResponse' :: Maybe Text
labelId = forall a. Maybe a
Prelude.Nothing,
      $sel:notes:DescribeLabelResponse' :: Maybe Text
notes = forall a. Maybe a
Prelude.Nothing,
      $sel:rating:DescribeLabelResponse' :: Maybe LabelRating
rating = forall a. Maybe a
Prelude.Nothing,
      $sel:startTime:DescribeLabelResponse' :: Maybe POSIX
startTime = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeLabelResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The time at which the label was created.
describeLabelResponse_createdAt :: Lens.Lens' DescribeLabelResponse (Prelude.Maybe Prelude.UTCTime)
describeLabelResponse_createdAt :: Lens' DescribeLabelResponse (Maybe UTCTime)
describeLabelResponse_createdAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelResponse' {Maybe POSIX
createdAt :: Maybe POSIX
$sel:createdAt:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe POSIX
createdAt} -> Maybe POSIX
createdAt) (\s :: DescribeLabelResponse
s@DescribeLabelResponse' {} Maybe POSIX
a -> DescribeLabelResponse
s {$sel:createdAt:DescribeLabelResponse' :: Maybe POSIX
createdAt = Maybe POSIX
a} :: DescribeLabelResponse) 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 end time of the requested label.
describeLabelResponse_endTime :: Lens.Lens' DescribeLabelResponse (Prelude.Maybe Prelude.UTCTime)
describeLabelResponse_endTime :: Lens' DescribeLabelResponse (Maybe UTCTime)
describeLabelResponse_endTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelResponse' {Maybe POSIX
endTime :: Maybe POSIX
$sel:endTime:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe POSIX
endTime} -> Maybe POSIX
endTime) (\s :: DescribeLabelResponse
s@DescribeLabelResponse' {} Maybe POSIX
a -> DescribeLabelResponse
s {$sel:endTime:DescribeLabelResponse' :: Maybe POSIX
endTime = Maybe POSIX
a} :: DescribeLabelResponse) 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

-- | Indicates that a label pertains to a particular piece of equipment.
describeLabelResponse_equipment :: Lens.Lens' DescribeLabelResponse (Prelude.Maybe Prelude.Text)
describeLabelResponse_equipment :: Lens' DescribeLabelResponse (Maybe Text)
describeLabelResponse_equipment = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelResponse' {Maybe Text
equipment :: Maybe Text
$sel:equipment:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe Text
equipment} -> Maybe Text
equipment) (\s :: DescribeLabelResponse
s@DescribeLabelResponse' {} Maybe Text
a -> DescribeLabelResponse
s {$sel:equipment:DescribeLabelResponse' :: Maybe Text
equipment = Maybe Text
a} :: DescribeLabelResponse)

-- | Indicates the type of anomaly associated with the label.
--
-- Data in this field will be retained for service usage. Follow best
-- practices for the security of your data.
describeLabelResponse_faultCode :: Lens.Lens' DescribeLabelResponse (Prelude.Maybe Prelude.Text)
describeLabelResponse_faultCode :: Lens' DescribeLabelResponse (Maybe Text)
describeLabelResponse_faultCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelResponse' {Maybe Text
faultCode :: Maybe Text
$sel:faultCode:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe Text
faultCode} -> Maybe Text
faultCode) (\s :: DescribeLabelResponse
s@DescribeLabelResponse' {} Maybe Text
a -> DescribeLabelResponse
s {$sel:faultCode:DescribeLabelResponse' :: Maybe Text
faultCode = Maybe Text
a} :: DescribeLabelResponse)

-- | The ARN of the requested label group.
describeLabelResponse_labelGroupArn :: Lens.Lens' DescribeLabelResponse (Prelude.Maybe Prelude.Text)
describeLabelResponse_labelGroupArn :: Lens' DescribeLabelResponse (Maybe Text)
describeLabelResponse_labelGroupArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelResponse' {Maybe Text
labelGroupArn :: Maybe Text
$sel:labelGroupArn:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe Text
labelGroupArn} -> Maybe Text
labelGroupArn) (\s :: DescribeLabelResponse
s@DescribeLabelResponse' {} Maybe Text
a -> DescribeLabelResponse
s {$sel:labelGroupArn:DescribeLabelResponse' :: Maybe Text
labelGroupArn = Maybe Text
a} :: DescribeLabelResponse)

-- | The name of the requested label group.
describeLabelResponse_labelGroupName :: Lens.Lens' DescribeLabelResponse (Prelude.Maybe Prelude.Text)
describeLabelResponse_labelGroupName :: Lens' DescribeLabelResponse (Maybe Text)
describeLabelResponse_labelGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelResponse' {Maybe Text
labelGroupName :: Maybe Text
$sel:labelGroupName:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe Text
labelGroupName} -> Maybe Text
labelGroupName) (\s :: DescribeLabelResponse
s@DescribeLabelResponse' {} Maybe Text
a -> DescribeLabelResponse
s {$sel:labelGroupName:DescribeLabelResponse' :: Maybe Text
labelGroupName = Maybe Text
a} :: DescribeLabelResponse)

-- | The ID of the requested label.
describeLabelResponse_labelId :: Lens.Lens' DescribeLabelResponse (Prelude.Maybe Prelude.Text)
describeLabelResponse_labelId :: Lens' DescribeLabelResponse (Maybe Text)
describeLabelResponse_labelId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelResponse' {Maybe Text
labelId :: Maybe Text
$sel:labelId:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe Text
labelId} -> Maybe Text
labelId) (\s :: DescribeLabelResponse
s@DescribeLabelResponse' {} Maybe Text
a -> DescribeLabelResponse
s {$sel:labelId:DescribeLabelResponse' :: Maybe Text
labelId = Maybe Text
a} :: DescribeLabelResponse)

-- | Metadata providing additional information about the label.
--
-- Data in this field will be retained for service usage. Follow best
-- practices for the security of your data.
describeLabelResponse_notes :: Lens.Lens' DescribeLabelResponse (Prelude.Maybe Prelude.Text)
describeLabelResponse_notes :: Lens' DescribeLabelResponse (Maybe Text)
describeLabelResponse_notes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelResponse' {Maybe Text
notes :: Maybe Text
$sel:notes:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe Text
notes} -> Maybe Text
notes) (\s :: DescribeLabelResponse
s@DescribeLabelResponse' {} Maybe Text
a -> DescribeLabelResponse
s {$sel:notes:DescribeLabelResponse' :: Maybe Text
notes = Maybe Text
a} :: DescribeLabelResponse)

-- | Indicates whether a labeled event represents an anomaly.
describeLabelResponse_rating :: Lens.Lens' DescribeLabelResponse (Prelude.Maybe LabelRating)
describeLabelResponse_rating :: Lens' DescribeLabelResponse (Maybe LabelRating)
describeLabelResponse_rating = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelResponse' {Maybe LabelRating
rating :: Maybe LabelRating
$sel:rating:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe LabelRating
rating} -> Maybe LabelRating
rating) (\s :: DescribeLabelResponse
s@DescribeLabelResponse' {} Maybe LabelRating
a -> DescribeLabelResponse
s {$sel:rating:DescribeLabelResponse' :: Maybe LabelRating
rating = Maybe LabelRating
a} :: DescribeLabelResponse)

-- | The start time of the requested label.
describeLabelResponse_startTime :: Lens.Lens' DescribeLabelResponse (Prelude.Maybe Prelude.UTCTime)
describeLabelResponse_startTime :: Lens' DescribeLabelResponse (Maybe UTCTime)
describeLabelResponse_startTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelResponse' {Maybe POSIX
startTime :: Maybe POSIX
$sel:startTime:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe POSIX
startTime} -> Maybe POSIX
startTime) (\s :: DescribeLabelResponse
s@DescribeLabelResponse' {} Maybe POSIX
a -> DescribeLabelResponse
s {$sel:startTime:DescribeLabelResponse' :: Maybe POSIX
startTime = Maybe POSIX
a} :: DescribeLabelResponse) 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 response's http status code.
describeLabelResponse_httpStatus :: Lens.Lens' DescribeLabelResponse Prelude.Int
describeLabelResponse_httpStatus :: Lens' DescribeLabelResponse Int
describeLabelResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeLabelResponse' :: DescribeLabelResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeLabelResponse
s@DescribeLabelResponse' {} Int
a -> DescribeLabelResponse
s {$sel:httpStatus:DescribeLabelResponse' :: Int
httpStatus = Int
a} :: DescribeLabelResponse)

instance Prelude.NFData DescribeLabelResponse where
  rnf :: DescribeLabelResponse -> ()
rnf DescribeLabelResponse' {Int
Maybe Text
Maybe POSIX
Maybe LabelRating
httpStatus :: Int
startTime :: Maybe POSIX
rating :: Maybe LabelRating
notes :: Maybe Text
labelId :: Maybe Text
labelGroupName :: Maybe Text
labelGroupArn :: Maybe Text
faultCode :: Maybe Text
equipment :: Maybe Text
endTime :: Maybe POSIX
createdAt :: Maybe POSIX
$sel:httpStatus:DescribeLabelResponse' :: DescribeLabelResponse -> Int
$sel:startTime:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe POSIX
$sel:rating:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe LabelRating
$sel:notes:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe Text
$sel:labelId:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe Text
$sel:labelGroupName:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe Text
$sel:labelGroupArn:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe Text
$sel:faultCode:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe Text
$sel:equipment:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe Text
$sel:endTime:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe POSIX
$sel:createdAt:DescribeLabelResponse' :: DescribeLabelResponse -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createdAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
endTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
equipment
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
faultCode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
labelGroupArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
labelGroupName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
labelId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
notes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LabelRating
rating
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
startTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus