{-# 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.
suiteDefinitionId :: Prelude.Text,
-- | Suite run ID for the test suite run.
suiteRunId :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, 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 pSuiteDefinitionId_ pSuiteRunId_ =
GetSuiteRun'
{ suiteDefinitionId =
pSuiteDefinitionId_,
suiteRunId = pSuiteRunId_
}
-- | Suite definition ID for the test suite run.
getSuiteRun_suiteDefinitionId :: Lens.Lens' GetSuiteRun Prelude.Text
getSuiteRun_suiteDefinitionId = Lens.lens (\GetSuiteRun' {suiteDefinitionId} -> suiteDefinitionId) (\s@GetSuiteRun' {} a -> s {suiteDefinitionId = a} :: GetSuiteRun)
-- | Suite run ID for the test suite run.
getSuiteRun_suiteRunId :: Lens.Lens' GetSuiteRun Prelude.Text
getSuiteRun_suiteRunId = Lens.lens (\GetSuiteRun' {suiteRunId} -> suiteRunId) (\s@GetSuiteRun' {} a -> s {suiteRunId = a} :: GetSuiteRun)
instance Core.AWSRequest GetSuiteRun where
type AWSResponse GetSuiteRun = GetSuiteRunResponse
request overrides =
Request.get (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
GetSuiteRunResponse'
Prelude.<$> (x Data..?> "endTime")
Prelude.<*> (x Data..?> "errorReason")
Prelude.<*> (x Data..?> "startTime")
Prelude.<*> (x Data..?> "status")
Prelude.<*> (x Data..?> "suiteDefinitionId")
Prelude.<*> (x Data..?> "suiteDefinitionVersion")
Prelude.<*> (x Data..?> "suiteRunArn")
Prelude.<*> (x Data..?> "suiteRunConfiguration")
Prelude.<*> (x Data..?> "suiteRunId")
Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)
Prelude.<*> (x Data..?> "testResult")
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable GetSuiteRun where
hashWithSalt _salt GetSuiteRun' {..} =
_salt
`Prelude.hashWithSalt` suiteDefinitionId
`Prelude.hashWithSalt` suiteRunId
instance Prelude.NFData GetSuiteRun where
rnf GetSuiteRun' {..} =
Prelude.rnf suiteDefinitionId
`Prelude.seq` Prelude.rnf suiteRunId
instance Data.ToHeaders GetSuiteRun where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToPath GetSuiteRun where
toPath GetSuiteRun' {..} =
Prelude.mconcat
[ "/suiteDefinitions/",
Data.toBS suiteDefinitionId,
"/suiteRuns/",
Data.toBS suiteRunId
]
instance Data.ToQuery GetSuiteRun where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newGetSuiteRunResponse' smart constructor.
data GetSuiteRunResponse = GetSuiteRunResponse'
{ -- | Date (in Unix epoch time) when the test suite run ended.
endTime :: Prelude.Maybe Data.POSIX,
-- | Error reason for any test suite run failure.
errorReason :: Prelude.Maybe Prelude.Text,
-- | Date (in Unix epoch time) when the test suite run started.
startTime :: Prelude.Maybe Data.POSIX,
-- | Status for the test suite run.
status :: Prelude.Maybe SuiteRunStatus,
-- | Suite definition ID for the test suite run.
suiteDefinitionId :: Prelude.Maybe Prelude.Text,
-- | Suite definition version for the test suite run.
suiteDefinitionVersion :: Prelude.Maybe Prelude.Text,
-- | The ARN of the suite run.
suiteRunArn :: Prelude.Maybe Prelude.Text,
-- | Suite run configuration for the test suite run.
suiteRunConfiguration :: Prelude.Maybe SuiteRunConfiguration,
-- | Suite run ID for the test suite run.
suiteRunId :: Prelude.Maybe Prelude.Text,
-- | The tags attached to the suite run.
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
-- | Test results for the test suite run.
testResult :: Prelude.Maybe TestResult,
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, 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 pHttpStatus_ =
GetSuiteRunResponse'
{ endTime = Prelude.Nothing,
errorReason = Prelude.Nothing,
startTime = Prelude.Nothing,
status = Prelude.Nothing,
suiteDefinitionId = Prelude.Nothing,
suiteDefinitionVersion = Prelude.Nothing,
suiteRunArn = Prelude.Nothing,
suiteRunConfiguration = Prelude.Nothing,
suiteRunId = Prelude.Nothing,
tags = Prelude.Nothing,
testResult = Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | Date (in Unix epoch time) when the test suite run ended.
getSuiteRunResponse_endTime :: Lens.Lens' GetSuiteRunResponse (Prelude.Maybe Prelude.UTCTime)
getSuiteRunResponse_endTime = Lens.lens (\GetSuiteRunResponse' {endTime} -> endTime) (\s@GetSuiteRunResponse' {} a -> s {endTime = a} :: GetSuiteRunResponse) Prelude.. Lens.mapping Data._Time
-- | Error reason for any test suite run failure.
getSuiteRunResponse_errorReason :: Lens.Lens' GetSuiteRunResponse (Prelude.Maybe Prelude.Text)
getSuiteRunResponse_errorReason = Lens.lens (\GetSuiteRunResponse' {errorReason} -> errorReason) (\s@GetSuiteRunResponse' {} a -> s {errorReason = 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.lens (\GetSuiteRunResponse' {startTime} -> startTime) (\s@GetSuiteRunResponse' {} a -> s {startTime = a} :: GetSuiteRunResponse) Prelude.. Lens.mapping Data._Time
-- | Status for the test suite run.
getSuiteRunResponse_status :: Lens.Lens' GetSuiteRunResponse (Prelude.Maybe SuiteRunStatus)
getSuiteRunResponse_status = Lens.lens (\GetSuiteRunResponse' {status} -> status) (\s@GetSuiteRunResponse' {} a -> s {status = a} :: GetSuiteRunResponse)
-- | Suite definition ID for the test suite run.
getSuiteRunResponse_suiteDefinitionId :: Lens.Lens' GetSuiteRunResponse (Prelude.Maybe Prelude.Text)
getSuiteRunResponse_suiteDefinitionId = Lens.lens (\GetSuiteRunResponse' {suiteDefinitionId} -> suiteDefinitionId) (\s@GetSuiteRunResponse' {} a -> s {suiteDefinitionId = a} :: GetSuiteRunResponse)
-- | Suite definition version for the test suite run.
getSuiteRunResponse_suiteDefinitionVersion :: Lens.Lens' GetSuiteRunResponse (Prelude.Maybe Prelude.Text)
getSuiteRunResponse_suiteDefinitionVersion = Lens.lens (\GetSuiteRunResponse' {suiteDefinitionVersion} -> suiteDefinitionVersion) (\s@GetSuiteRunResponse' {} a -> s {suiteDefinitionVersion = a} :: GetSuiteRunResponse)
-- | The ARN of the suite run.
getSuiteRunResponse_suiteRunArn :: Lens.Lens' GetSuiteRunResponse (Prelude.Maybe Prelude.Text)
getSuiteRunResponse_suiteRunArn = Lens.lens (\GetSuiteRunResponse' {suiteRunArn} -> suiteRunArn) (\s@GetSuiteRunResponse' {} a -> s {suiteRunArn = a} :: GetSuiteRunResponse)
-- | Suite run configuration for the test suite run.
getSuiteRunResponse_suiteRunConfiguration :: Lens.Lens' GetSuiteRunResponse (Prelude.Maybe SuiteRunConfiguration)
getSuiteRunResponse_suiteRunConfiguration = Lens.lens (\GetSuiteRunResponse' {suiteRunConfiguration} -> suiteRunConfiguration) (\s@GetSuiteRunResponse' {} a -> s {suiteRunConfiguration = a} :: GetSuiteRunResponse)
-- | Suite run ID for the test suite run.
getSuiteRunResponse_suiteRunId :: Lens.Lens' GetSuiteRunResponse (Prelude.Maybe Prelude.Text)
getSuiteRunResponse_suiteRunId = Lens.lens (\GetSuiteRunResponse' {suiteRunId} -> suiteRunId) (\s@GetSuiteRunResponse' {} a -> s {suiteRunId = 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.lens (\GetSuiteRunResponse' {tags} -> tags) (\s@GetSuiteRunResponse' {} a -> s {tags = a} :: GetSuiteRunResponse) Prelude.. Lens.mapping Lens.coerced
-- | Test results for the test suite run.
getSuiteRunResponse_testResult :: Lens.Lens' GetSuiteRunResponse (Prelude.Maybe TestResult)
getSuiteRunResponse_testResult = Lens.lens (\GetSuiteRunResponse' {testResult} -> testResult) (\s@GetSuiteRunResponse' {} a -> s {testResult = a} :: GetSuiteRunResponse)
-- | The response's http status code.
getSuiteRunResponse_httpStatus :: Lens.Lens' GetSuiteRunResponse Prelude.Int
getSuiteRunResponse_httpStatus = Lens.lens (\GetSuiteRunResponse' {httpStatus} -> httpStatus) (\s@GetSuiteRunResponse' {} a -> s {httpStatus = a} :: GetSuiteRunResponse)
instance Prelude.NFData GetSuiteRunResponse where
rnf GetSuiteRunResponse' {..} =
Prelude.rnf endTime
`Prelude.seq` Prelude.rnf errorReason
`Prelude.seq` Prelude.rnf startTime
`Prelude.seq` Prelude.rnf status
`Prelude.seq` Prelude.rnf suiteDefinitionId
`Prelude.seq` Prelude.rnf suiteDefinitionVersion
`Prelude.seq` Prelude.rnf suiteRunArn
`Prelude.seq` Prelude.rnf suiteRunConfiguration
`Prelude.seq` Prelude.rnf suiteRunId
`Prelude.seq` Prelude.rnf tags
`Prelude.seq` Prelude.rnf testResult
`Prelude.seq` Prelude.rnf httpStatus