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

    -- * Request Lenses
    getSuiteRun_suiteDefinitionId,
    getSuiteRun_suiteRunId,

    -- * Destructuring the Response
    GetSuiteRunResponse (..),
    newGetSuiteRunResponse,

    -- * Response Lenses
    getSuiteRunResponse_endTime,
    getSuiteRunResponse_errorReason,
    getSuiteRunResponse_startTime,
    getSuiteRunResponse_status,
    getSuiteRunResponse_suiteDefinitionId,
    getSuiteRunResponse_suiteDefinitionVersion,
    getSuiteRunResponse_suiteRunArn,
    getSuiteRunResponse_suiteRunConfiguration,
    getSuiteRunResponse_suiteRunId,
    getSuiteRunResponse_tags,
    getSuiteRunResponse_testResult,
    getSuiteRunResponse_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:/ 'newGetSuiteRun' smart constructor.
data GetSuiteRun = GetSuiteRun'
  { -- | Suite definition ID for the test suite run.
    GetSuiteRun -> Text
suiteDefinitionId :: Prelude.Text,
    -- | Suite run ID for the test suite run.
    GetSuiteRun -> Text
suiteRunId :: Prelude.Text
  }
  deriving (GetSuiteRun -> GetSuiteRun -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetSuiteRun -> GetSuiteRun -> Bool
$c/= :: GetSuiteRun -> GetSuiteRun -> Bool
== :: GetSuiteRun -> GetSuiteRun -> Bool
$c== :: GetSuiteRun -> GetSuiteRun -> Bool
Prelude.Eq, ReadPrec [GetSuiteRun]
ReadPrec GetSuiteRun
Int -> ReadS GetSuiteRun
ReadS [GetSuiteRun]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetSuiteRun]
$creadListPrec :: ReadPrec [GetSuiteRun]
readPrec :: ReadPrec GetSuiteRun
$creadPrec :: ReadPrec GetSuiteRun
readList :: ReadS [GetSuiteRun]
$creadList :: ReadS [GetSuiteRun]
readsPrec :: Int -> ReadS GetSuiteRun
$creadsPrec :: Int -> ReadS GetSuiteRun
Prelude.Read, Int -> GetSuiteRun -> ShowS
[GetSuiteRun] -> ShowS
GetSuiteRun -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetSuiteRun] -> ShowS
$cshowList :: [GetSuiteRun] -> ShowS
show :: GetSuiteRun -> String
$cshow :: GetSuiteRun -> String
showsPrec :: Int -> GetSuiteRun -> ShowS
$cshowsPrec :: Int -> GetSuiteRun -> ShowS
Prelude.Show, forall x. Rep GetSuiteRun x -> GetSuiteRun
forall x. GetSuiteRun -> Rep GetSuiteRun x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetSuiteRun x -> GetSuiteRun
$cfrom :: forall x. GetSuiteRun -> Rep GetSuiteRun x
Prelude.Generic)

-- |
-- Create a value of 'GetSuiteRun' 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', 'getSuiteRun_suiteDefinitionId' - Suite definition ID for the test suite run.
--
-- 'suiteRunId', 'getSuiteRun_suiteRunId' - Suite run ID for the test suite run.
newGetSuiteRun ::
  -- | 'suiteDefinitionId'
  Prelude.Text ->
  -- | 'suiteRunId'
  Prelude.Text ->
  GetSuiteRun
newGetSuiteRun :: Text -> Text -> GetSuiteRun
newGetSuiteRun Text
pSuiteDefinitionId_ Text
pSuiteRunId_ =
  GetSuiteRun'
    { $sel:suiteDefinitionId:GetSuiteRun' :: Text
suiteDefinitionId =
        Text
pSuiteDefinitionId_,
      $sel:suiteRunId:GetSuiteRun' :: Text
suiteRunId = Text
pSuiteRunId_
    }

-- | Suite definition ID for the test suite run.
getSuiteRun_suiteDefinitionId :: Lens.Lens' GetSuiteRun Prelude.Text
getSuiteRun_suiteDefinitionId :: Lens' GetSuiteRun Text
getSuiteRun_suiteDefinitionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSuiteRun' {Text
suiteDefinitionId :: Text
$sel:suiteDefinitionId:GetSuiteRun' :: GetSuiteRun -> Text
suiteDefinitionId} -> Text
suiteDefinitionId) (\s :: GetSuiteRun
s@GetSuiteRun' {} Text
a -> GetSuiteRun
s {$sel:suiteDefinitionId:GetSuiteRun' :: Text
suiteDefinitionId = Text
a} :: GetSuiteRun)

-- | Suite run ID for the test suite run.
getSuiteRun_suiteRunId :: Lens.Lens' GetSuiteRun Prelude.Text
getSuiteRun_suiteRunId :: Lens' GetSuiteRun Text
getSuiteRun_suiteRunId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSuiteRun' {Text
suiteRunId :: Text
$sel:suiteRunId:GetSuiteRun' :: GetSuiteRun -> Text
suiteRunId} -> Text
suiteRunId) (\s :: GetSuiteRun
s@GetSuiteRun' {} Text
a -> GetSuiteRun
s {$sel:suiteRunId:GetSuiteRun' :: Text
suiteRunId = Text
a} :: GetSuiteRun)

instance Core.AWSRequest GetSuiteRun where
  type AWSResponse GetSuiteRun = GetSuiteRunResponse
  request :: (Service -> Service) -> GetSuiteRun -> Request GetSuiteRun
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 GetSuiteRun
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetSuiteRun)))
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 Text
-> Maybe POSIX
-> Maybe SuiteRunStatus
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe SuiteRunConfiguration
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Maybe TestResult
-> Int
-> GetSuiteRunResponse
GetSuiteRunResponse'
            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
"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
"errorReason")
            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.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"status")
            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
"suiteDefinitionVersion")
            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
"suiteRunArn")
            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
"suiteRunConfiguration")
            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
"suiteRunId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"tags" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"testResult")
            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 GetSuiteRun where
  hashWithSalt :: Int -> GetSuiteRun -> Int
hashWithSalt Int
_salt GetSuiteRun' {Text
suiteRunId :: Text
suiteDefinitionId :: Text
$sel:suiteRunId:GetSuiteRun' :: GetSuiteRun -> Text
$sel:suiteDefinitionId:GetSuiteRun' :: GetSuiteRun -> Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
suiteDefinitionId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
suiteRunId

instance Prelude.NFData GetSuiteRun where
  rnf :: GetSuiteRun -> ()
rnf GetSuiteRun' {Text
suiteRunId :: Text
suiteDefinitionId :: Text
$sel:suiteRunId:GetSuiteRun' :: GetSuiteRun -> Text
$sel:suiteDefinitionId:GetSuiteRun' :: GetSuiteRun -> 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 Text
suiteRunId

instance Data.ToHeaders GetSuiteRun where
  toHeaders :: GetSuiteRun -> 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 GetSuiteRun where
  toPath :: GetSuiteRun -> ByteString
toPath GetSuiteRun' {Text
suiteRunId :: Text
suiteDefinitionId :: Text
$sel:suiteRunId:GetSuiteRun' :: GetSuiteRun -> Text
$sel:suiteDefinitionId:GetSuiteRun' :: GetSuiteRun -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/suiteDefinitions/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
suiteDefinitionId,
        ByteString
"/suiteRuns/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
suiteRunId
      ]

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

-- | /See:/ 'newGetSuiteRunResponse' smart constructor.
data GetSuiteRunResponse = GetSuiteRunResponse'
  { -- | Date (in Unix epoch time) when the test suite run ended.
    GetSuiteRunResponse -> Maybe POSIX
endTime :: Prelude.Maybe Data.POSIX,
    -- | Error reason for any test suite run failure.
    GetSuiteRunResponse -> Maybe Text
errorReason :: Prelude.Maybe Prelude.Text,
    -- | Date (in Unix epoch time) when the test suite run started.
    GetSuiteRunResponse -> Maybe POSIX
startTime :: Prelude.Maybe Data.POSIX,
    -- | Status for the test suite run.
    GetSuiteRunResponse -> Maybe SuiteRunStatus
status :: Prelude.Maybe SuiteRunStatus,
    -- | Suite definition ID for the test suite run.
    GetSuiteRunResponse -> Maybe Text
suiteDefinitionId :: Prelude.Maybe Prelude.Text,
    -- | Suite definition version for the test suite run.
    GetSuiteRunResponse -> Maybe Text
suiteDefinitionVersion :: Prelude.Maybe Prelude.Text,
    -- | The ARN of the suite run.
    GetSuiteRunResponse -> Maybe Text
suiteRunArn :: Prelude.Maybe Prelude.Text,
    -- | Suite run configuration for the test suite run.
    GetSuiteRunResponse -> Maybe SuiteRunConfiguration
suiteRunConfiguration :: Prelude.Maybe SuiteRunConfiguration,
    -- | Suite run ID for the test suite run.
    GetSuiteRunResponse -> Maybe Text
suiteRunId :: Prelude.Maybe Prelude.Text,
    -- | The tags attached to the suite run.
    GetSuiteRunResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | Test results for the test suite run.
    GetSuiteRunResponse -> Maybe TestResult
testResult :: Prelude.Maybe TestResult,
    -- | The response's http status code.
    GetSuiteRunResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetSuiteRunResponse -> GetSuiteRunResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetSuiteRunResponse -> GetSuiteRunResponse -> Bool
$c/= :: GetSuiteRunResponse -> GetSuiteRunResponse -> Bool
== :: GetSuiteRunResponse -> GetSuiteRunResponse -> Bool
$c== :: GetSuiteRunResponse -> GetSuiteRunResponse -> Bool
Prelude.Eq, ReadPrec [GetSuiteRunResponse]
ReadPrec GetSuiteRunResponse
Int -> ReadS GetSuiteRunResponse
ReadS [GetSuiteRunResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetSuiteRunResponse]
$creadListPrec :: ReadPrec [GetSuiteRunResponse]
readPrec :: ReadPrec GetSuiteRunResponse
$creadPrec :: ReadPrec GetSuiteRunResponse
readList :: ReadS [GetSuiteRunResponse]
$creadList :: ReadS [GetSuiteRunResponse]
readsPrec :: Int -> ReadS GetSuiteRunResponse
$creadsPrec :: Int -> ReadS GetSuiteRunResponse
Prelude.Read, Int -> GetSuiteRunResponse -> ShowS
[GetSuiteRunResponse] -> ShowS
GetSuiteRunResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetSuiteRunResponse] -> ShowS
$cshowList :: [GetSuiteRunResponse] -> ShowS
show :: GetSuiteRunResponse -> String
$cshow :: GetSuiteRunResponse -> String
showsPrec :: Int -> GetSuiteRunResponse -> ShowS
$cshowsPrec :: Int -> GetSuiteRunResponse -> ShowS
Prelude.Show, forall x. Rep GetSuiteRunResponse x -> GetSuiteRunResponse
forall x. GetSuiteRunResponse -> Rep GetSuiteRunResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetSuiteRunResponse x -> GetSuiteRunResponse
$cfrom :: forall x. GetSuiteRunResponse -> Rep GetSuiteRunResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetSuiteRunResponse' 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:
--
-- 'endTime', 'getSuiteRunResponse_endTime' - Date (in Unix epoch time) when the test suite run ended.
--
-- 'errorReason', 'getSuiteRunResponse_errorReason' - Error reason for any test suite run failure.
--
-- 'startTime', 'getSuiteRunResponse_startTime' - Date (in Unix epoch time) when the test suite run started.
--
-- 'status', 'getSuiteRunResponse_status' - Status for the test suite run.
--
-- 'suiteDefinitionId', 'getSuiteRunResponse_suiteDefinitionId' - Suite definition ID for the test suite run.
--
-- 'suiteDefinitionVersion', 'getSuiteRunResponse_suiteDefinitionVersion' - Suite definition version for the test suite run.
--
-- 'suiteRunArn', 'getSuiteRunResponse_suiteRunArn' - The ARN of the suite run.
--
-- 'suiteRunConfiguration', 'getSuiteRunResponse_suiteRunConfiguration' - Suite run configuration for the test suite run.
--
-- 'suiteRunId', 'getSuiteRunResponse_suiteRunId' - Suite run ID for the test suite run.
--
-- 'tags', 'getSuiteRunResponse_tags' - The tags attached to the suite run.
--
-- 'testResult', 'getSuiteRunResponse_testResult' - Test results for the test suite run.
--
-- 'httpStatus', 'getSuiteRunResponse_httpStatus' - The response's http status code.
newGetSuiteRunResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetSuiteRunResponse
newGetSuiteRunResponse :: Int -> GetSuiteRunResponse
newGetSuiteRunResponse Int
pHttpStatus_ =
  GetSuiteRunResponse'
    { $sel:endTime:GetSuiteRunResponse' :: Maybe POSIX
endTime = forall a. Maybe a
Prelude.Nothing,
      $sel:errorReason:GetSuiteRunResponse' :: Maybe Text
errorReason = forall a. Maybe a
Prelude.Nothing,
      $sel:startTime:GetSuiteRunResponse' :: Maybe POSIX
startTime = forall a. Maybe a
Prelude.Nothing,
      $sel:status:GetSuiteRunResponse' :: Maybe SuiteRunStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:suiteDefinitionId:GetSuiteRunResponse' :: Maybe Text
suiteDefinitionId = forall a. Maybe a
Prelude.Nothing,
      $sel:suiteDefinitionVersion:GetSuiteRunResponse' :: Maybe Text
suiteDefinitionVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:suiteRunArn:GetSuiteRunResponse' :: Maybe Text
suiteRunArn = forall a. Maybe a
Prelude.Nothing,
      $sel:suiteRunConfiguration:GetSuiteRunResponse' :: Maybe SuiteRunConfiguration
suiteRunConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:suiteRunId:GetSuiteRunResponse' :: Maybe Text
suiteRunId = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:GetSuiteRunResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:testResult:GetSuiteRunResponse' :: Maybe TestResult
testResult = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetSuiteRunResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Date (in Unix epoch time) when the test suite run ended.
getSuiteRunResponse_endTime :: Lens.Lens' GetSuiteRunResponse (Prelude.Maybe Prelude.UTCTime)
getSuiteRunResponse_endTime :: Lens' GetSuiteRunResponse (Maybe UTCTime)
getSuiteRunResponse_endTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSuiteRunResponse' {Maybe POSIX
endTime :: Maybe POSIX
$sel:endTime:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe POSIX
endTime} -> Maybe POSIX
endTime) (\s :: GetSuiteRunResponse
s@GetSuiteRunResponse' {} Maybe POSIX
a -> GetSuiteRunResponse
s {$sel:endTime:GetSuiteRunResponse' :: Maybe POSIX
endTime = Maybe POSIX
a} :: GetSuiteRunResponse) 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

-- | Error reason for any test suite run failure.
getSuiteRunResponse_errorReason :: Lens.Lens' GetSuiteRunResponse (Prelude.Maybe Prelude.Text)
getSuiteRunResponse_errorReason :: Lens' GetSuiteRunResponse (Maybe Text)
getSuiteRunResponse_errorReason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSuiteRunResponse' {Maybe Text
errorReason :: Maybe Text
$sel:errorReason:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe Text
errorReason} -> Maybe Text
errorReason) (\s :: GetSuiteRunResponse
s@GetSuiteRunResponse' {} Maybe Text
a -> GetSuiteRunResponse
s {$sel:errorReason:GetSuiteRunResponse' :: Maybe Text
errorReason = Maybe Text
a} :: GetSuiteRunResponse)

-- | Date (in Unix epoch time) when the test suite run started.
getSuiteRunResponse_startTime :: Lens.Lens' GetSuiteRunResponse (Prelude.Maybe Prelude.UTCTime)
getSuiteRunResponse_startTime :: Lens' GetSuiteRunResponse (Maybe UTCTime)
getSuiteRunResponse_startTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSuiteRunResponse' {Maybe POSIX
startTime :: Maybe POSIX
$sel:startTime:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe POSIX
startTime} -> Maybe POSIX
startTime) (\s :: GetSuiteRunResponse
s@GetSuiteRunResponse' {} Maybe POSIX
a -> GetSuiteRunResponse
s {$sel:startTime:GetSuiteRunResponse' :: Maybe POSIX
startTime = Maybe POSIX
a} :: GetSuiteRunResponse) 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

-- | Status for the test suite run.
getSuiteRunResponse_status :: Lens.Lens' GetSuiteRunResponse (Prelude.Maybe SuiteRunStatus)
getSuiteRunResponse_status :: Lens' GetSuiteRunResponse (Maybe SuiteRunStatus)
getSuiteRunResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSuiteRunResponse' {Maybe SuiteRunStatus
status :: Maybe SuiteRunStatus
$sel:status:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe SuiteRunStatus
status} -> Maybe SuiteRunStatus
status) (\s :: GetSuiteRunResponse
s@GetSuiteRunResponse' {} Maybe SuiteRunStatus
a -> GetSuiteRunResponse
s {$sel:status:GetSuiteRunResponse' :: Maybe SuiteRunStatus
status = Maybe SuiteRunStatus
a} :: GetSuiteRunResponse)

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

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

-- | The ARN of the suite run.
getSuiteRunResponse_suiteRunArn :: Lens.Lens' GetSuiteRunResponse (Prelude.Maybe Prelude.Text)
getSuiteRunResponse_suiteRunArn :: Lens' GetSuiteRunResponse (Maybe Text)
getSuiteRunResponse_suiteRunArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSuiteRunResponse' {Maybe Text
suiteRunArn :: Maybe Text
$sel:suiteRunArn:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe Text
suiteRunArn} -> Maybe Text
suiteRunArn) (\s :: GetSuiteRunResponse
s@GetSuiteRunResponse' {} Maybe Text
a -> GetSuiteRunResponse
s {$sel:suiteRunArn:GetSuiteRunResponse' :: Maybe Text
suiteRunArn = Maybe Text
a} :: GetSuiteRunResponse)

-- | Suite run configuration for the test suite run.
getSuiteRunResponse_suiteRunConfiguration :: Lens.Lens' GetSuiteRunResponse (Prelude.Maybe SuiteRunConfiguration)
getSuiteRunResponse_suiteRunConfiguration :: Lens' GetSuiteRunResponse (Maybe SuiteRunConfiguration)
getSuiteRunResponse_suiteRunConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSuiteRunResponse' {Maybe SuiteRunConfiguration
suiteRunConfiguration :: Maybe SuiteRunConfiguration
$sel:suiteRunConfiguration:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe SuiteRunConfiguration
suiteRunConfiguration} -> Maybe SuiteRunConfiguration
suiteRunConfiguration) (\s :: GetSuiteRunResponse
s@GetSuiteRunResponse' {} Maybe SuiteRunConfiguration
a -> GetSuiteRunResponse
s {$sel:suiteRunConfiguration:GetSuiteRunResponse' :: Maybe SuiteRunConfiguration
suiteRunConfiguration = Maybe SuiteRunConfiguration
a} :: GetSuiteRunResponse)

-- | Suite run ID for the test suite run.
getSuiteRunResponse_suiteRunId :: Lens.Lens' GetSuiteRunResponse (Prelude.Maybe Prelude.Text)
getSuiteRunResponse_suiteRunId :: Lens' GetSuiteRunResponse (Maybe Text)
getSuiteRunResponse_suiteRunId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSuiteRunResponse' {Maybe Text
suiteRunId :: Maybe Text
$sel:suiteRunId:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe Text
suiteRunId} -> Maybe Text
suiteRunId) (\s :: GetSuiteRunResponse
s@GetSuiteRunResponse' {} Maybe Text
a -> GetSuiteRunResponse
s {$sel:suiteRunId:GetSuiteRunResponse' :: Maybe Text
suiteRunId = Maybe Text
a} :: GetSuiteRunResponse)

-- | The tags attached to the suite run.
getSuiteRunResponse_tags :: Lens.Lens' GetSuiteRunResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
getSuiteRunResponse_tags :: Lens' GetSuiteRunResponse (Maybe (HashMap Text Text))
getSuiteRunResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSuiteRunResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: GetSuiteRunResponse
s@GetSuiteRunResponse' {} Maybe (HashMap Text Text)
a -> GetSuiteRunResponse
s {$sel:tags:GetSuiteRunResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: GetSuiteRunResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Test results for the test suite run.
getSuiteRunResponse_testResult :: Lens.Lens' GetSuiteRunResponse (Prelude.Maybe TestResult)
getSuiteRunResponse_testResult :: Lens' GetSuiteRunResponse (Maybe TestResult)
getSuiteRunResponse_testResult = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSuiteRunResponse' {Maybe TestResult
testResult :: Maybe TestResult
$sel:testResult:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe TestResult
testResult} -> Maybe TestResult
testResult) (\s :: GetSuiteRunResponse
s@GetSuiteRunResponse' {} Maybe TestResult
a -> GetSuiteRunResponse
s {$sel:testResult:GetSuiteRunResponse' :: Maybe TestResult
testResult = Maybe TestResult
a} :: GetSuiteRunResponse)

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

instance Prelude.NFData GetSuiteRunResponse where
  rnf :: GetSuiteRunResponse -> ()
rnf GetSuiteRunResponse' {Int
Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Maybe SuiteRunConfiguration
Maybe SuiteRunStatus
Maybe TestResult
httpStatus :: Int
testResult :: Maybe TestResult
tags :: Maybe (HashMap Text Text)
suiteRunId :: Maybe Text
suiteRunConfiguration :: Maybe SuiteRunConfiguration
suiteRunArn :: Maybe Text
suiteDefinitionVersion :: Maybe Text
suiteDefinitionId :: Maybe Text
status :: Maybe SuiteRunStatus
startTime :: Maybe POSIX
errorReason :: Maybe Text
endTime :: Maybe POSIX
$sel:httpStatus:GetSuiteRunResponse' :: GetSuiteRunResponse -> Int
$sel:testResult:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe TestResult
$sel:tags:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe (HashMap Text Text)
$sel:suiteRunId:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe Text
$sel:suiteRunConfiguration:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe SuiteRunConfiguration
$sel:suiteRunArn:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe Text
$sel:suiteDefinitionVersion:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe Text
$sel:suiteDefinitionId:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe Text
$sel:status:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe SuiteRunStatus
$sel:startTime:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe POSIX
$sel:errorReason:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe Text
$sel:endTime:GetSuiteRunResponse' :: GetSuiteRunResponse -> Maybe POSIX
..} =
    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
errorReason
      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 Maybe SuiteRunStatus
status
      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
suiteDefinitionVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
suiteRunArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SuiteRunConfiguration
suiteRunConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
suiteRunId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TestResult
testResult
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus