{-# 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.IoTDeviceAdvisor.UpdateSuiteDefinition
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates a Device Advisor test suite.
--
-- Requires permission to access the
-- <https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions UpdateSuiteDefinition>
-- action.
module Amazonka.IoTDeviceAdvisor.UpdateSuiteDefinition
  ( -- * Creating a Request
    UpdateSuiteDefinition (..),
    newUpdateSuiteDefinition,

    -- * Request Lenses
    updateSuiteDefinition_suiteDefinitionId,
    updateSuiteDefinition_suiteDefinitionConfiguration,

    -- * Destructuring the Response
    UpdateSuiteDefinitionResponse (..),
    newUpdateSuiteDefinitionResponse,

    -- * Response Lenses
    updateSuiteDefinitionResponse_createdAt,
    updateSuiteDefinitionResponse_lastUpdatedAt,
    updateSuiteDefinitionResponse_suiteDefinitionArn,
    updateSuiteDefinitionResponse_suiteDefinitionId,
    updateSuiteDefinitionResponse_suiteDefinitionName,
    updateSuiteDefinitionResponse_suiteDefinitionVersion,
    updateSuiteDefinitionResponse_httpStatus,
  )
where

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

-- | /See:/ 'newUpdateSuiteDefinition' smart constructor.
data UpdateSuiteDefinition = UpdateSuiteDefinition'
  { -- | Suite definition ID of the test suite to be updated.
    UpdateSuiteDefinition -> Text
suiteDefinitionId :: Prelude.Text,
    -- | Updates a Device Advisor test suite with suite definition configuration.
    UpdateSuiteDefinition -> SuiteDefinitionConfiguration
suiteDefinitionConfiguration :: SuiteDefinitionConfiguration
  }
  deriving (UpdateSuiteDefinition -> UpdateSuiteDefinition -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateSuiteDefinition -> UpdateSuiteDefinition -> Bool
$c/= :: UpdateSuiteDefinition -> UpdateSuiteDefinition -> Bool
== :: UpdateSuiteDefinition -> UpdateSuiteDefinition -> Bool
$c== :: UpdateSuiteDefinition -> UpdateSuiteDefinition -> Bool
Prelude.Eq, ReadPrec [UpdateSuiteDefinition]
ReadPrec UpdateSuiteDefinition
Int -> ReadS UpdateSuiteDefinition
ReadS [UpdateSuiteDefinition]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateSuiteDefinition]
$creadListPrec :: ReadPrec [UpdateSuiteDefinition]
readPrec :: ReadPrec UpdateSuiteDefinition
$creadPrec :: ReadPrec UpdateSuiteDefinition
readList :: ReadS [UpdateSuiteDefinition]
$creadList :: ReadS [UpdateSuiteDefinition]
readsPrec :: Int -> ReadS UpdateSuiteDefinition
$creadsPrec :: Int -> ReadS UpdateSuiteDefinition
Prelude.Read, Int -> UpdateSuiteDefinition -> ShowS
[UpdateSuiteDefinition] -> ShowS
UpdateSuiteDefinition -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateSuiteDefinition] -> ShowS
$cshowList :: [UpdateSuiteDefinition] -> ShowS
show :: UpdateSuiteDefinition -> String
$cshow :: UpdateSuiteDefinition -> String
showsPrec :: Int -> UpdateSuiteDefinition -> ShowS
$cshowsPrec :: Int -> UpdateSuiteDefinition -> ShowS
Prelude.Show, forall x. Rep UpdateSuiteDefinition x -> UpdateSuiteDefinition
forall x. UpdateSuiteDefinition -> Rep UpdateSuiteDefinition x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateSuiteDefinition x -> UpdateSuiteDefinition
$cfrom :: forall x. UpdateSuiteDefinition -> Rep UpdateSuiteDefinition x
Prelude.Generic)

-- |
-- Create a value of 'UpdateSuiteDefinition' 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:
--
-- 'suiteDefinitionId', 'updateSuiteDefinition_suiteDefinitionId' - Suite definition ID of the test suite to be updated.
--
-- 'suiteDefinitionConfiguration', 'updateSuiteDefinition_suiteDefinitionConfiguration' - Updates a Device Advisor test suite with suite definition configuration.
newUpdateSuiteDefinition ::
  -- | 'suiteDefinitionId'
  Prelude.Text ->
  -- | 'suiteDefinitionConfiguration'
  SuiteDefinitionConfiguration ->
  UpdateSuiteDefinition
newUpdateSuiteDefinition :: Text -> SuiteDefinitionConfiguration -> UpdateSuiteDefinition
newUpdateSuiteDefinition
  Text
pSuiteDefinitionId_
  SuiteDefinitionConfiguration
pSuiteDefinitionConfiguration_ =
    UpdateSuiteDefinition'
      { $sel:suiteDefinitionId:UpdateSuiteDefinition' :: Text
suiteDefinitionId =
          Text
pSuiteDefinitionId_,
        $sel:suiteDefinitionConfiguration:UpdateSuiteDefinition' :: SuiteDefinitionConfiguration
suiteDefinitionConfiguration =
          SuiteDefinitionConfiguration
pSuiteDefinitionConfiguration_
      }

-- | Suite definition ID of the test suite to be updated.
updateSuiteDefinition_suiteDefinitionId :: Lens.Lens' UpdateSuiteDefinition Prelude.Text
updateSuiteDefinition_suiteDefinitionId :: Lens' UpdateSuiteDefinition Text
updateSuiteDefinition_suiteDefinitionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSuiteDefinition' {Text
suiteDefinitionId :: Text
$sel:suiteDefinitionId:UpdateSuiteDefinition' :: UpdateSuiteDefinition -> Text
suiteDefinitionId} -> Text
suiteDefinitionId) (\s :: UpdateSuiteDefinition
s@UpdateSuiteDefinition' {} Text
a -> UpdateSuiteDefinition
s {$sel:suiteDefinitionId:UpdateSuiteDefinition' :: Text
suiteDefinitionId = Text
a} :: UpdateSuiteDefinition)

-- | Updates a Device Advisor test suite with suite definition configuration.
updateSuiteDefinition_suiteDefinitionConfiguration :: Lens.Lens' UpdateSuiteDefinition SuiteDefinitionConfiguration
updateSuiteDefinition_suiteDefinitionConfiguration :: Lens' UpdateSuiteDefinition SuiteDefinitionConfiguration
updateSuiteDefinition_suiteDefinitionConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSuiteDefinition' {SuiteDefinitionConfiguration
suiteDefinitionConfiguration :: SuiteDefinitionConfiguration
$sel:suiteDefinitionConfiguration:UpdateSuiteDefinition' :: UpdateSuiteDefinition -> SuiteDefinitionConfiguration
suiteDefinitionConfiguration} -> SuiteDefinitionConfiguration
suiteDefinitionConfiguration) (\s :: UpdateSuiteDefinition
s@UpdateSuiteDefinition' {} SuiteDefinitionConfiguration
a -> UpdateSuiteDefinition
s {$sel:suiteDefinitionConfiguration:UpdateSuiteDefinition' :: SuiteDefinitionConfiguration
suiteDefinitionConfiguration = SuiteDefinitionConfiguration
a} :: UpdateSuiteDefinition)

instance Core.AWSRequest UpdateSuiteDefinition where
  type
    AWSResponse UpdateSuiteDefinition =
      UpdateSuiteDefinitionResponse
  request :: (Service -> Service)
-> UpdateSuiteDefinition -> Request UpdateSuiteDefinition
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.patchJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateSuiteDefinition
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateSuiteDefinition)))
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
-> Int
-> UpdateSuiteDefinitionResponse
UpdateSuiteDefinitionResponse'
            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
"lastUpdatedAt")
            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
"suiteDefinitionArn")
            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
"suiteDefinitionId")
            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
"suiteDefinitionName")
            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
"suiteDefinitionVersion")
            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 UpdateSuiteDefinition where
  hashWithSalt :: Int -> UpdateSuiteDefinition -> Int
hashWithSalt Int
_salt UpdateSuiteDefinition' {Text
SuiteDefinitionConfiguration
suiteDefinitionConfiguration :: SuiteDefinitionConfiguration
suiteDefinitionId :: Text
$sel:suiteDefinitionConfiguration:UpdateSuiteDefinition' :: UpdateSuiteDefinition -> SuiteDefinitionConfiguration
$sel:suiteDefinitionId:UpdateSuiteDefinition' :: UpdateSuiteDefinition -> Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
suiteDefinitionId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` SuiteDefinitionConfiguration
suiteDefinitionConfiguration

instance Prelude.NFData UpdateSuiteDefinition where
  rnf :: UpdateSuiteDefinition -> ()
rnf UpdateSuiteDefinition' {Text
SuiteDefinitionConfiguration
suiteDefinitionConfiguration :: SuiteDefinitionConfiguration
suiteDefinitionId :: Text
$sel:suiteDefinitionConfiguration:UpdateSuiteDefinition' :: UpdateSuiteDefinition -> SuiteDefinitionConfiguration
$sel:suiteDefinitionId:UpdateSuiteDefinition' :: UpdateSuiteDefinition -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
suiteDefinitionId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf SuiteDefinitionConfiguration
suiteDefinitionConfiguration

instance Data.ToHeaders UpdateSuiteDefinition where
  toHeaders :: UpdateSuiteDefinition -> 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.ToJSON UpdateSuiteDefinition where
  toJSON :: UpdateSuiteDefinition -> Value
toJSON UpdateSuiteDefinition' {Text
SuiteDefinitionConfiguration
suiteDefinitionConfiguration :: SuiteDefinitionConfiguration
suiteDefinitionId :: Text
$sel:suiteDefinitionConfiguration:UpdateSuiteDefinition' :: UpdateSuiteDefinition -> SuiteDefinitionConfiguration
$sel:suiteDefinitionId:UpdateSuiteDefinition' :: UpdateSuiteDefinition -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ forall a. a -> Maybe a
Prelude.Just
              ( Key
"suiteDefinitionConfiguration"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= SuiteDefinitionConfiguration
suiteDefinitionConfiguration
              )
          ]
      )

instance Data.ToPath UpdateSuiteDefinition where
  toPath :: UpdateSuiteDefinition -> ByteString
toPath UpdateSuiteDefinition' {Text
SuiteDefinitionConfiguration
suiteDefinitionConfiguration :: SuiteDefinitionConfiguration
suiteDefinitionId :: Text
$sel:suiteDefinitionConfiguration:UpdateSuiteDefinition' :: UpdateSuiteDefinition -> SuiteDefinitionConfiguration
$sel:suiteDefinitionId:UpdateSuiteDefinition' :: UpdateSuiteDefinition -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/suiteDefinitions/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
suiteDefinitionId]

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

-- | /See:/ 'newUpdateSuiteDefinitionResponse' smart constructor.
data UpdateSuiteDefinitionResponse = UpdateSuiteDefinitionResponse'
  { -- | Timestamp of when the test suite was created.
    UpdateSuiteDefinitionResponse -> Maybe POSIX
createdAt :: Prelude.Maybe Data.POSIX,
    -- | Timestamp of when the test suite was updated.
    UpdateSuiteDefinitionResponse -> Maybe POSIX
lastUpdatedAt :: Prelude.Maybe Data.POSIX,
    -- | Amazon Resource Name (ARN) of the updated test suite.
    UpdateSuiteDefinitionResponse -> Maybe Text
suiteDefinitionArn :: Prelude.Maybe Prelude.Text,
    -- | Suite definition ID of the updated test suite.
    UpdateSuiteDefinitionResponse -> Maybe Text
suiteDefinitionId :: Prelude.Maybe Prelude.Text,
    -- | Updates the suite definition name. This is a required parameter.
    UpdateSuiteDefinitionResponse -> Maybe Text
suiteDefinitionName :: Prelude.Maybe Prelude.Text,
    -- | Suite definition version of the updated test suite.
    UpdateSuiteDefinitionResponse -> Maybe Text
suiteDefinitionVersion :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    UpdateSuiteDefinitionResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdateSuiteDefinitionResponse
-> UpdateSuiteDefinitionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateSuiteDefinitionResponse
-> UpdateSuiteDefinitionResponse -> Bool
$c/= :: UpdateSuiteDefinitionResponse
-> UpdateSuiteDefinitionResponse -> Bool
== :: UpdateSuiteDefinitionResponse
-> UpdateSuiteDefinitionResponse -> Bool
$c== :: UpdateSuiteDefinitionResponse
-> UpdateSuiteDefinitionResponse -> Bool
Prelude.Eq, ReadPrec [UpdateSuiteDefinitionResponse]
ReadPrec UpdateSuiteDefinitionResponse
Int -> ReadS UpdateSuiteDefinitionResponse
ReadS [UpdateSuiteDefinitionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateSuiteDefinitionResponse]
$creadListPrec :: ReadPrec [UpdateSuiteDefinitionResponse]
readPrec :: ReadPrec UpdateSuiteDefinitionResponse
$creadPrec :: ReadPrec UpdateSuiteDefinitionResponse
readList :: ReadS [UpdateSuiteDefinitionResponse]
$creadList :: ReadS [UpdateSuiteDefinitionResponse]
readsPrec :: Int -> ReadS UpdateSuiteDefinitionResponse
$creadsPrec :: Int -> ReadS UpdateSuiteDefinitionResponse
Prelude.Read, Int -> UpdateSuiteDefinitionResponse -> ShowS
[UpdateSuiteDefinitionResponse] -> ShowS
UpdateSuiteDefinitionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateSuiteDefinitionResponse] -> ShowS
$cshowList :: [UpdateSuiteDefinitionResponse] -> ShowS
show :: UpdateSuiteDefinitionResponse -> String
$cshow :: UpdateSuiteDefinitionResponse -> String
showsPrec :: Int -> UpdateSuiteDefinitionResponse -> ShowS
$cshowsPrec :: Int -> UpdateSuiteDefinitionResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateSuiteDefinitionResponse x
-> UpdateSuiteDefinitionResponse
forall x.
UpdateSuiteDefinitionResponse
-> Rep UpdateSuiteDefinitionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateSuiteDefinitionResponse x
-> UpdateSuiteDefinitionResponse
$cfrom :: forall x.
UpdateSuiteDefinitionResponse
-> Rep UpdateSuiteDefinitionResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateSuiteDefinitionResponse' 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', 'updateSuiteDefinitionResponse_createdAt' - Timestamp of when the test suite was created.
--
-- 'lastUpdatedAt', 'updateSuiteDefinitionResponse_lastUpdatedAt' - Timestamp of when the test suite was updated.
--
-- 'suiteDefinitionArn', 'updateSuiteDefinitionResponse_suiteDefinitionArn' - Amazon Resource Name (ARN) of the updated test suite.
--
-- 'suiteDefinitionId', 'updateSuiteDefinitionResponse_suiteDefinitionId' - Suite definition ID of the updated test suite.
--
-- 'suiteDefinitionName', 'updateSuiteDefinitionResponse_suiteDefinitionName' - Updates the suite definition name. This is a required parameter.
--
-- 'suiteDefinitionVersion', 'updateSuiteDefinitionResponse_suiteDefinitionVersion' - Suite definition version of the updated test suite.
--
-- 'httpStatus', 'updateSuiteDefinitionResponse_httpStatus' - The response's http status code.
newUpdateSuiteDefinitionResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateSuiteDefinitionResponse
newUpdateSuiteDefinitionResponse :: Int -> UpdateSuiteDefinitionResponse
newUpdateSuiteDefinitionResponse Int
pHttpStatus_ =
  UpdateSuiteDefinitionResponse'
    { $sel:createdAt:UpdateSuiteDefinitionResponse' :: Maybe POSIX
createdAt =
        forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdatedAt:UpdateSuiteDefinitionResponse' :: Maybe POSIX
lastUpdatedAt = forall a. Maybe a
Prelude.Nothing,
      $sel:suiteDefinitionArn:UpdateSuiteDefinitionResponse' :: Maybe Text
suiteDefinitionArn = forall a. Maybe a
Prelude.Nothing,
      $sel:suiteDefinitionId:UpdateSuiteDefinitionResponse' :: Maybe Text
suiteDefinitionId = forall a. Maybe a
Prelude.Nothing,
      $sel:suiteDefinitionName:UpdateSuiteDefinitionResponse' :: Maybe Text
suiteDefinitionName = forall a. Maybe a
Prelude.Nothing,
      $sel:suiteDefinitionVersion:UpdateSuiteDefinitionResponse' :: Maybe Text
suiteDefinitionVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:UpdateSuiteDefinitionResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Timestamp of when the test suite was created.
updateSuiteDefinitionResponse_createdAt :: Lens.Lens' UpdateSuiteDefinitionResponse (Prelude.Maybe Prelude.UTCTime)
updateSuiteDefinitionResponse_createdAt :: Lens' UpdateSuiteDefinitionResponse (Maybe UTCTime)
updateSuiteDefinitionResponse_createdAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSuiteDefinitionResponse' {Maybe POSIX
createdAt :: Maybe POSIX
$sel:createdAt:UpdateSuiteDefinitionResponse' :: UpdateSuiteDefinitionResponse -> Maybe POSIX
createdAt} -> Maybe POSIX
createdAt) (\s :: UpdateSuiteDefinitionResponse
s@UpdateSuiteDefinitionResponse' {} Maybe POSIX
a -> UpdateSuiteDefinitionResponse
s {$sel:createdAt:UpdateSuiteDefinitionResponse' :: Maybe POSIX
createdAt = Maybe POSIX
a} :: UpdateSuiteDefinitionResponse) 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

-- | Timestamp of when the test suite was updated.
updateSuiteDefinitionResponse_lastUpdatedAt :: Lens.Lens' UpdateSuiteDefinitionResponse (Prelude.Maybe Prelude.UTCTime)
updateSuiteDefinitionResponse_lastUpdatedAt :: Lens' UpdateSuiteDefinitionResponse (Maybe UTCTime)
updateSuiteDefinitionResponse_lastUpdatedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSuiteDefinitionResponse' {Maybe POSIX
lastUpdatedAt :: Maybe POSIX
$sel:lastUpdatedAt:UpdateSuiteDefinitionResponse' :: UpdateSuiteDefinitionResponse -> Maybe POSIX
lastUpdatedAt} -> Maybe POSIX
lastUpdatedAt) (\s :: UpdateSuiteDefinitionResponse
s@UpdateSuiteDefinitionResponse' {} Maybe POSIX
a -> UpdateSuiteDefinitionResponse
s {$sel:lastUpdatedAt:UpdateSuiteDefinitionResponse' :: Maybe POSIX
lastUpdatedAt = Maybe POSIX
a} :: UpdateSuiteDefinitionResponse) 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

-- | Amazon Resource Name (ARN) of the updated test suite.
updateSuiteDefinitionResponse_suiteDefinitionArn :: Lens.Lens' UpdateSuiteDefinitionResponse (Prelude.Maybe Prelude.Text)
updateSuiteDefinitionResponse_suiteDefinitionArn :: Lens' UpdateSuiteDefinitionResponse (Maybe Text)
updateSuiteDefinitionResponse_suiteDefinitionArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSuiteDefinitionResponse' {Maybe Text
suiteDefinitionArn :: Maybe Text
$sel:suiteDefinitionArn:UpdateSuiteDefinitionResponse' :: UpdateSuiteDefinitionResponse -> Maybe Text
suiteDefinitionArn} -> Maybe Text
suiteDefinitionArn) (\s :: UpdateSuiteDefinitionResponse
s@UpdateSuiteDefinitionResponse' {} Maybe Text
a -> UpdateSuiteDefinitionResponse
s {$sel:suiteDefinitionArn:UpdateSuiteDefinitionResponse' :: Maybe Text
suiteDefinitionArn = Maybe Text
a} :: UpdateSuiteDefinitionResponse)

-- | Suite definition ID of the updated test suite.
updateSuiteDefinitionResponse_suiteDefinitionId :: Lens.Lens' UpdateSuiteDefinitionResponse (Prelude.Maybe Prelude.Text)
updateSuiteDefinitionResponse_suiteDefinitionId :: Lens' UpdateSuiteDefinitionResponse (Maybe Text)
updateSuiteDefinitionResponse_suiteDefinitionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSuiteDefinitionResponse' {Maybe Text
suiteDefinitionId :: Maybe Text
$sel:suiteDefinitionId:UpdateSuiteDefinitionResponse' :: UpdateSuiteDefinitionResponse -> Maybe Text
suiteDefinitionId} -> Maybe Text
suiteDefinitionId) (\s :: UpdateSuiteDefinitionResponse
s@UpdateSuiteDefinitionResponse' {} Maybe Text
a -> UpdateSuiteDefinitionResponse
s {$sel:suiteDefinitionId:UpdateSuiteDefinitionResponse' :: Maybe Text
suiteDefinitionId = Maybe Text
a} :: UpdateSuiteDefinitionResponse)

-- | Updates the suite definition name. This is a required parameter.
updateSuiteDefinitionResponse_suiteDefinitionName :: Lens.Lens' UpdateSuiteDefinitionResponse (Prelude.Maybe Prelude.Text)
updateSuiteDefinitionResponse_suiteDefinitionName :: Lens' UpdateSuiteDefinitionResponse (Maybe Text)
updateSuiteDefinitionResponse_suiteDefinitionName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSuiteDefinitionResponse' {Maybe Text
suiteDefinitionName :: Maybe Text
$sel:suiteDefinitionName:UpdateSuiteDefinitionResponse' :: UpdateSuiteDefinitionResponse -> Maybe Text
suiteDefinitionName} -> Maybe Text
suiteDefinitionName) (\s :: UpdateSuiteDefinitionResponse
s@UpdateSuiteDefinitionResponse' {} Maybe Text
a -> UpdateSuiteDefinitionResponse
s {$sel:suiteDefinitionName:UpdateSuiteDefinitionResponse' :: Maybe Text
suiteDefinitionName = Maybe Text
a} :: UpdateSuiteDefinitionResponse)

-- | Suite definition version of the updated test suite.
updateSuiteDefinitionResponse_suiteDefinitionVersion :: Lens.Lens' UpdateSuiteDefinitionResponse (Prelude.Maybe Prelude.Text)
updateSuiteDefinitionResponse_suiteDefinitionVersion :: Lens' UpdateSuiteDefinitionResponse (Maybe Text)
updateSuiteDefinitionResponse_suiteDefinitionVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSuiteDefinitionResponse' {Maybe Text
suiteDefinitionVersion :: Maybe Text
$sel:suiteDefinitionVersion:UpdateSuiteDefinitionResponse' :: UpdateSuiteDefinitionResponse -> Maybe Text
suiteDefinitionVersion} -> Maybe Text
suiteDefinitionVersion) (\s :: UpdateSuiteDefinitionResponse
s@UpdateSuiteDefinitionResponse' {} Maybe Text
a -> UpdateSuiteDefinitionResponse
s {$sel:suiteDefinitionVersion:UpdateSuiteDefinitionResponse' :: Maybe Text
suiteDefinitionVersion = Maybe Text
a} :: UpdateSuiteDefinitionResponse)

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

instance Prelude.NFData UpdateSuiteDefinitionResponse where
  rnf :: UpdateSuiteDefinitionResponse -> ()
rnf UpdateSuiteDefinitionResponse' {Int
Maybe Text
Maybe POSIX
httpStatus :: Int
suiteDefinitionVersion :: Maybe Text
suiteDefinitionName :: Maybe Text
suiteDefinitionId :: Maybe Text
suiteDefinitionArn :: Maybe Text
lastUpdatedAt :: Maybe POSIX
createdAt :: Maybe POSIX
$sel:httpStatus:UpdateSuiteDefinitionResponse' :: UpdateSuiteDefinitionResponse -> Int
$sel:suiteDefinitionVersion:UpdateSuiteDefinitionResponse' :: UpdateSuiteDefinitionResponse -> Maybe Text
$sel:suiteDefinitionName:UpdateSuiteDefinitionResponse' :: UpdateSuiteDefinitionResponse -> Maybe Text
$sel:suiteDefinitionId:UpdateSuiteDefinitionResponse' :: UpdateSuiteDefinitionResponse -> Maybe Text
$sel:suiteDefinitionArn:UpdateSuiteDefinitionResponse' :: UpdateSuiteDefinitionResponse -> Maybe Text
$sel:lastUpdatedAt:UpdateSuiteDefinitionResponse' :: UpdateSuiteDefinitionResponse -> Maybe POSIX
$sel:createdAt:UpdateSuiteDefinitionResponse' :: UpdateSuiteDefinitionResponse -> 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
lastUpdatedAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
suiteDefinitionArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
suiteDefinitionId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
suiteDefinitionName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
suiteDefinitionVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus