{-# 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.CreateLabel
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates a label for an event.
module Amazonka.LookoutEquipment.CreateLabel
  ( -- * Creating a Request
    CreateLabel (..),
    newCreateLabel,

    -- * Request Lenses
    createLabel_equipment,
    createLabel_faultCode,
    createLabel_notes,
    createLabel_labelGroupName,
    createLabel_startTime,
    createLabel_endTime,
    createLabel_rating,
    createLabel_clientToken,

    -- * Destructuring the Response
    CreateLabelResponse (..),
    newCreateLabelResponse,

    -- * Response Lenses
    createLabelResponse_labelId,
    createLabelResponse_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:/ 'newCreateLabel' smart constructor.
data CreateLabel = CreateLabel'
  { -- | Indicates that a label pertains to a particular piece of equipment.
    --
    -- Data in this field will be retained for service usage. Follow best
    -- practices for the security of your data.
    CreateLabel -> Maybe Text
equipment :: Prelude.Maybe Prelude.Text,
    -- | Provides additional information about the label. The fault code must be
    -- defined in the FaultCodes attribute of the label group.
    --
    -- Data in this field will be retained for service usage. Follow best
    -- practices for the security of your data.
    CreateLabel -> Maybe Text
faultCode :: 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.
    CreateLabel -> Maybe Text
notes :: Prelude.Maybe Prelude.Text,
    -- | The name of a group of labels.
    --
    -- Data in this field will be retained for service usage. Follow best
    -- practices for the security of your data.
    CreateLabel -> Text
labelGroupName :: Prelude.Text,
    -- | The start time of the labeled event.
    CreateLabel -> POSIX
startTime :: Data.POSIX,
    -- | The end time of the labeled event.
    CreateLabel -> POSIX
endTime :: Data.POSIX,
    -- | Indicates whether a labeled event represents an anomaly.
    CreateLabel -> LabelRating
rating :: LabelRating,
    -- | A unique identifier for the request to create a label. If you do not set
    -- the client request token, Lookout for Equipment generates one.
    CreateLabel -> Text
clientToken :: Prelude.Text
  }
  deriving (CreateLabel -> CreateLabel -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateLabel -> CreateLabel -> Bool
$c/= :: CreateLabel -> CreateLabel -> Bool
== :: CreateLabel -> CreateLabel -> Bool
$c== :: CreateLabel -> CreateLabel -> Bool
Prelude.Eq, ReadPrec [CreateLabel]
ReadPrec CreateLabel
Int -> ReadS CreateLabel
ReadS [CreateLabel]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateLabel]
$creadListPrec :: ReadPrec [CreateLabel]
readPrec :: ReadPrec CreateLabel
$creadPrec :: ReadPrec CreateLabel
readList :: ReadS [CreateLabel]
$creadList :: ReadS [CreateLabel]
readsPrec :: Int -> ReadS CreateLabel
$creadsPrec :: Int -> ReadS CreateLabel
Prelude.Read, Int -> CreateLabel -> ShowS
[CreateLabel] -> ShowS
CreateLabel -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateLabel] -> ShowS
$cshowList :: [CreateLabel] -> ShowS
show :: CreateLabel -> String
$cshow :: CreateLabel -> String
showsPrec :: Int -> CreateLabel -> ShowS
$cshowsPrec :: Int -> CreateLabel -> ShowS
Prelude.Show, forall x. Rep CreateLabel x -> CreateLabel
forall x. CreateLabel -> Rep CreateLabel x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateLabel x -> CreateLabel
$cfrom :: forall x. CreateLabel -> Rep CreateLabel x
Prelude.Generic)

-- |
-- Create a value of 'CreateLabel' 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:
--
-- 'equipment', 'createLabel_equipment' - Indicates that a label pertains to a particular piece of equipment.
--
-- Data in this field will be retained for service usage. Follow best
-- practices for the security of your data.
--
-- 'faultCode', 'createLabel_faultCode' - Provides additional information about the label. The fault code must be
-- defined in the FaultCodes attribute of the label group.
--
-- Data in this field will be retained for service usage. Follow best
-- practices for the security of your data.
--
-- 'notes', 'createLabel_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.
--
-- 'labelGroupName', 'createLabel_labelGroupName' - The name of a group of labels.
--
-- Data in this field will be retained for service usage. Follow best
-- practices for the security of your data.
--
-- 'startTime', 'createLabel_startTime' - The start time of the labeled event.
--
-- 'endTime', 'createLabel_endTime' - The end time of the labeled event.
--
-- 'rating', 'createLabel_rating' - Indicates whether a labeled event represents an anomaly.
--
-- 'clientToken', 'createLabel_clientToken' - A unique identifier for the request to create a label. If you do not set
-- the client request token, Lookout for Equipment generates one.
newCreateLabel ::
  -- | 'labelGroupName'
  Prelude.Text ->
  -- | 'startTime'
  Prelude.UTCTime ->
  -- | 'endTime'
  Prelude.UTCTime ->
  -- | 'rating'
  LabelRating ->
  -- | 'clientToken'
  Prelude.Text ->
  CreateLabel
newCreateLabel :: Text -> UTCTime -> UTCTime -> LabelRating -> Text -> CreateLabel
newCreateLabel
  Text
pLabelGroupName_
  UTCTime
pStartTime_
  UTCTime
pEndTime_
  LabelRating
pRating_
  Text
pClientToken_ =
    CreateLabel'
      { $sel:equipment:CreateLabel' :: Maybe Text
equipment = forall a. Maybe a
Prelude.Nothing,
        $sel:faultCode:CreateLabel' :: Maybe Text
faultCode = forall a. Maybe a
Prelude.Nothing,
        $sel:notes:CreateLabel' :: Maybe Text
notes = forall a. Maybe a
Prelude.Nothing,
        $sel:labelGroupName:CreateLabel' :: Text
labelGroupName = Text
pLabelGroupName_,
        $sel:startTime:CreateLabel' :: POSIX
startTime = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pStartTime_,
        $sel:endTime:CreateLabel' :: POSIX
endTime = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pEndTime_,
        $sel:rating:CreateLabel' :: LabelRating
rating = LabelRating
pRating_,
        $sel:clientToken:CreateLabel' :: Text
clientToken = Text
pClientToken_
      }

-- | Indicates that a label pertains to a particular piece of equipment.
--
-- Data in this field will be retained for service usage. Follow best
-- practices for the security of your data.
createLabel_equipment :: Lens.Lens' CreateLabel (Prelude.Maybe Prelude.Text)
createLabel_equipment :: Lens' CreateLabel (Maybe Text)
createLabel_equipment = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateLabel' {Maybe Text
equipment :: Maybe Text
$sel:equipment:CreateLabel' :: CreateLabel -> Maybe Text
equipment} -> Maybe Text
equipment) (\s :: CreateLabel
s@CreateLabel' {} Maybe Text
a -> CreateLabel
s {$sel:equipment:CreateLabel' :: Maybe Text
equipment = Maybe Text
a} :: CreateLabel)

-- | Provides additional information about the label. The fault code must be
-- defined in the FaultCodes attribute of the label group.
--
-- Data in this field will be retained for service usage. Follow best
-- practices for the security of your data.
createLabel_faultCode :: Lens.Lens' CreateLabel (Prelude.Maybe Prelude.Text)
createLabel_faultCode :: Lens' CreateLabel (Maybe Text)
createLabel_faultCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateLabel' {Maybe Text
faultCode :: Maybe Text
$sel:faultCode:CreateLabel' :: CreateLabel -> Maybe Text
faultCode} -> Maybe Text
faultCode) (\s :: CreateLabel
s@CreateLabel' {} Maybe Text
a -> CreateLabel
s {$sel:faultCode:CreateLabel' :: Maybe Text
faultCode = Maybe Text
a} :: CreateLabel)

-- | 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.
createLabel_notes :: Lens.Lens' CreateLabel (Prelude.Maybe Prelude.Text)
createLabel_notes :: Lens' CreateLabel (Maybe Text)
createLabel_notes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateLabel' {Maybe Text
notes :: Maybe Text
$sel:notes:CreateLabel' :: CreateLabel -> Maybe Text
notes} -> Maybe Text
notes) (\s :: CreateLabel
s@CreateLabel' {} Maybe Text
a -> CreateLabel
s {$sel:notes:CreateLabel' :: Maybe Text
notes = Maybe Text
a} :: CreateLabel)

-- | The name of a group of labels.
--
-- Data in this field will be retained for service usage. Follow best
-- practices for the security of your data.
createLabel_labelGroupName :: Lens.Lens' CreateLabel Prelude.Text
createLabel_labelGroupName :: Lens' CreateLabel Text
createLabel_labelGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateLabel' {Text
labelGroupName :: Text
$sel:labelGroupName:CreateLabel' :: CreateLabel -> Text
labelGroupName} -> Text
labelGroupName) (\s :: CreateLabel
s@CreateLabel' {} Text
a -> CreateLabel
s {$sel:labelGroupName:CreateLabel' :: Text
labelGroupName = Text
a} :: CreateLabel)

-- | The start time of the labeled event.
createLabel_startTime :: Lens.Lens' CreateLabel Prelude.UTCTime
createLabel_startTime :: Lens' CreateLabel UTCTime
createLabel_startTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateLabel' {POSIX
startTime :: POSIX
$sel:startTime:CreateLabel' :: CreateLabel -> POSIX
startTime} -> POSIX
startTime) (\s :: CreateLabel
s@CreateLabel' {} POSIX
a -> CreateLabel
s {$sel:startTime:CreateLabel' :: POSIX
startTime = POSIX
a} :: CreateLabel) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The end time of the labeled event.
createLabel_endTime :: Lens.Lens' CreateLabel Prelude.UTCTime
createLabel_endTime :: Lens' CreateLabel UTCTime
createLabel_endTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateLabel' {POSIX
endTime :: POSIX
$sel:endTime:CreateLabel' :: CreateLabel -> POSIX
endTime} -> POSIX
endTime) (\s :: CreateLabel
s@CreateLabel' {} POSIX
a -> CreateLabel
s {$sel:endTime:CreateLabel' :: POSIX
endTime = POSIX
a} :: CreateLabel) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

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

-- | A unique identifier for the request to create a label. If you do not set
-- the client request token, Lookout for Equipment generates one.
createLabel_clientToken :: Lens.Lens' CreateLabel Prelude.Text
createLabel_clientToken :: Lens' CreateLabel Text
createLabel_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateLabel' {Text
clientToken :: Text
$sel:clientToken:CreateLabel' :: CreateLabel -> Text
clientToken} -> Text
clientToken) (\s :: CreateLabel
s@CreateLabel' {} Text
a -> CreateLabel
s {$sel:clientToken:CreateLabel' :: Text
clientToken = Text
a} :: CreateLabel)

instance Core.AWSRequest CreateLabel where
  type AWSResponse CreateLabel = CreateLabelResponse
  request :: (Service -> Service) -> CreateLabel -> Request CreateLabel
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 CreateLabel
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateLabel)))
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 -> Int -> CreateLabelResponse
CreateLabelResponse'
            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
"LabelId")
            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 CreateLabel where
  hashWithSalt :: Int -> CreateLabel -> Int
hashWithSalt Int
_salt CreateLabel' {Maybe Text
Text
POSIX
LabelRating
clientToken :: Text
rating :: LabelRating
endTime :: POSIX
startTime :: POSIX
labelGroupName :: Text
notes :: Maybe Text
faultCode :: Maybe Text
equipment :: Maybe Text
$sel:clientToken:CreateLabel' :: CreateLabel -> Text
$sel:rating:CreateLabel' :: CreateLabel -> LabelRating
$sel:endTime:CreateLabel' :: CreateLabel -> POSIX
$sel:startTime:CreateLabel' :: CreateLabel -> POSIX
$sel:labelGroupName:CreateLabel' :: CreateLabel -> Text
$sel:notes:CreateLabel' :: CreateLabel -> Maybe Text
$sel:faultCode:CreateLabel' :: CreateLabel -> Maybe Text
$sel:equipment:CreateLabel' :: CreateLabel -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
equipment
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
faultCode
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
notes
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
labelGroupName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` POSIX
startTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` POSIX
endTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` LabelRating
rating
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
clientToken

instance Prelude.NFData CreateLabel where
  rnf :: CreateLabel -> ()
rnf CreateLabel' {Maybe Text
Text
POSIX
LabelRating
clientToken :: Text
rating :: LabelRating
endTime :: POSIX
startTime :: POSIX
labelGroupName :: Text
notes :: Maybe Text
faultCode :: Maybe Text
equipment :: Maybe Text
$sel:clientToken:CreateLabel' :: CreateLabel -> Text
$sel:rating:CreateLabel' :: CreateLabel -> LabelRating
$sel:endTime:CreateLabel' :: CreateLabel -> POSIX
$sel:startTime:CreateLabel' :: CreateLabel -> POSIX
$sel:labelGroupName:CreateLabel' :: CreateLabel -> Text
$sel:notes:CreateLabel' :: CreateLabel -> Maybe Text
$sel:faultCode:CreateLabel' :: CreateLabel -> Maybe Text
$sel:equipment:CreateLabel' :: CreateLabel -> Maybe Text
..} =
    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
notes
      seq :: forall a b. a -> b -> b
`Prelude.seq` 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 POSIX
startTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
endTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf LabelRating
rating
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
clientToken

instance Data.ToHeaders CreateLabel where
  toHeaders :: CreateLabel -> 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.CreateLabel" ::
                          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 CreateLabel where
  toJSON :: CreateLabel -> Value
toJSON CreateLabel' {Maybe Text
Text
POSIX
LabelRating
clientToken :: Text
rating :: LabelRating
endTime :: POSIX
startTime :: POSIX
labelGroupName :: Text
notes :: Maybe Text
faultCode :: Maybe Text
equipment :: Maybe Text
$sel:clientToken:CreateLabel' :: CreateLabel -> Text
$sel:rating:CreateLabel' :: CreateLabel -> LabelRating
$sel:endTime:CreateLabel' :: CreateLabel -> POSIX
$sel:startTime:CreateLabel' :: CreateLabel -> POSIX
$sel:labelGroupName:CreateLabel' :: CreateLabel -> Text
$sel:notes:CreateLabel' :: CreateLabel -> Maybe Text
$sel:faultCode:CreateLabel' :: CreateLabel -> Maybe Text
$sel:equipment:CreateLabel' :: CreateLabel -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"Equipment" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
equipment,
            (Key
"FaultCode" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
faultCode,
            (Key
"Notes" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
notes,
            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
"StartTime" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= POSIX
startTime),
            forall a. a -> Maybe a
Prelude.Just (Key
"EndTime" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= POSIX
endTime),
            forall a. a -> Maybe a
Prelude.Just (Key
"Rating" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= LabelRating
rating),
            forall a. a -> Maybe a
Prelude.Just (Key
"ClientToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
clientToken)
          ]
      )

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

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

-- | /See:/ 'newCreateLabelResponse' smart constructor.
data CreateLabelResponse = CreateLabelResponse'
  { -- | The ID of the label that you have created.
    CreateLabelResponse -> Maybe Text
labelId :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    CreateLabelResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (CreateLabelResponse -> CreateLabelResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateLabelResponse -> CreateLabelResponse -> Bool
$c/= :: CreateLabelResponse -> CreateLabelResponse -> Bool
== :: CreateLabelResponse -> CreateLabelResponse -> Bool
$c== :: CreateLabelResponse -> CreateLabelResponse -> Bool
Prelude.Eq, ReadPrec [CreateLabelResponse]
ReadPrec CreateLabelResponse
Int -> ReadS CreateLabelResponse
ReadS [CreateLabelResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateLabelResponse]
$creadListPrec :: ReadPrec [CreateLabelResponse]
readPrec :: ReadPrec CreateLabelResponse
$creadPrec :: ReadPrec CreateLabelResponse
readList :: ReadS [CreateLabelResponse]
$creadList :: ReadS [CreateLabelResponse]
readsPrec :: Int -> ReadS CreateLabelResponse
$creadsPrec :: Int -> ReadS CreateLabelResponse
Prelude.Read, Int -> CreateLabelResponse -> ShowS
[CreateLabelResponse] -> ShowS
CreateLabelResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateLabelResponse] -> ShowS
$cshowList :: [CreateLabelResponse] -> ShowS
show :: CreateLabelResponse -> String
$cshow :: CreateLabelResponse -> String
showsPrec :: Int -> CreateLabelResponse -> ShowS
$cshowsPrec :: Int -> CreateLabelResponse -> ShowS
Prelude.Show, forall x. Rep CreateLabelResponse x -> CreateLabelResponse
forall x. CreateLabelResponse -> Rep CreateLabelResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateLabelResponse x -> CreateLabelResponse
$cfrom :: forall x. CreateLabelResponse -> Rep CreateLabelResponse x
Prelude.Generic)

-- |
-- Create a value of 'CreateLabelResponse' 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:
--
-- 'labelId', 'createLabelResponse_labelId' - The ID of the label that you have created.
--
-- 'httpStatus', 'createLabelResponse_httpStatus' - The response's http status code.
newCreateLabelResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  CreateLabelResponse
newCreateLabelResponse :: Int -> CreateLabelResponse
newCreateLabelResponse Int
pHttpStatus_ =
  CreateLabelResponse'
    { $sel:labelId:CreateLabelResponse' :: Maybe Text
labelId = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:CreateLabelResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The ID of the label that you have created.
createLabelResponse_labelId :: Lens.Lens' CreateLabelResponse (Prelude.Maybe Prelude.Text)
createLabelResponse_labelId :: Lens' CreateLabelResponse (Maybe Text)
createLabelResponse_labelId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateLabelResponse' {Maybe Text
labelId :: Maybe Text
$sel:labelId:CreateLabelResponse' :: CreateLabelResponse -> Maybe Text
labelId} -> Maybe Text
labelId) (\s :: CreateLabelResponse
s@CreateLabelResponse' {} Maybe Text
a -> CreateLabelResponse
s {$sel:labelId:CreateLabelResponse' :: Maybe Text
labelId = Maybe Text
a} :: CreateLabelResponse)

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

instance Prelude.NFData CreateLabelResponse where
  rnf :: CreateLabelResponse -> ()
rnf CreateLabelResponse' {Int
Maybe Text
httpStatus :: Int
labelId :: Maybe Text
$sel:httpStatus:CreateLabelResponse' :: CreateLabelResponse -> Int
$sel:labelId:CreateLabelResponse' :: CreateLabelResponse -> Maybe Text
..} =
    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 Int
httpStatus