{-# 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 -- -- 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 or 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 or 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