{-# 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.Athena.GetCalculationExecution -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes a previously submitted calculation execution. module Amazonka.Athena.GetCalculationExecution ( -- * Creating a Request GetCalculationExecution (..), newGetCalculationExecution, -- * Request Lenses getCalculationExecution_calculationExecutionId, -- * Destructuring the Response GetCalculationExecutionResponse (..), newGetCalculationExecutionResponse, -- * Response Lenses getCalculationExecutionResponse_calculationExecutionId, getCalculationExecutionResponse_description, getCalculationExecutionResponse_result, getCalculationExecutionResponse_sessionId, getCalculationExecutionResponse_statistics, getCalculationExecutionResponse_status, getCalculationExecutionResponse_workingDirectory, getCalculationExecutionResponse_httpStatus, ) where import Amazonka.Athena.Types import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newGetCalculationExecution' smart constructor. data GetCalculationExecution = GetCalculationExecution' { -- | The calculation execution UUID. calculationExecutionId :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'GetCalculationExecution' 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: -- -- 'calculationExecutionId', 'getCalculationExecution_calculationExecutionId' - The calculation execution UUID. newGetCalculationExecution :: -- | 'calculationExecutionId' Prelude.Text -> GetCalculationExecution newGetCalculationExecution pCalculationExecutionId_ = GetCalculationExecution' { calculationExecutionId = pCalculationExecutionId_ } -- | The calculation execution UUID. getCalculationExecution_calculationExecutionId :: Lens.Lens' GetCalculationExecution Prelude.Text getCalculationExecution_calculationExecutionId = Lens.lens (\GetCalculationExecution' {calculationExecutionId} -> calculationExecutionId) (\s@GetCalculationExecution' {} a -> s {calculationExecutionId = a} :: GetCalculationExecution) instance Core.AWSRequest GetCalculationExecution where type AWSResponse GetCalculationExecution = GetCalculationExecutionResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> GetCalculationExecutionResponse' Prelude.<$> (x Data..?> "CalculationExecutionId") Prelude.<*> (x Data..?> "Description") Prelude.<*> (x Data..?> "Result") Prelude.<*> (x Data..?> "SessionId") Prelude.<*> (x Data..?> "Statistics") Prelude.<*> (x Data..?> "Status") Prelude.<*> (x Data..?> "WorkingDirectory") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable GetCalculationExecution where hashWithSalt _salt GetCalculationExecution' {..} = _salt `Prelude.hashWithSalt` calculationExecutionId instance Prelude.NFData GetCalculationExecution where rnf GetCalculationExecution' {..} = Prelude.rnf calculationExecutionId instance Data.ToHeaders GetCalculationExecution where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "AmazonAthena.GetCalculationExecution" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON GetCalculationExecution where toJSON GetCalculationExecution' {..} = Data.object ( Prelude.catMaybes [ Prelude.Just ( "CalculationExecutionId" Data..= calculationExecutionId ) ] ) instance Data.ToPath GetCalculationExecution where toPath = Prelude.const "/" instance Data.ToQuery GetCalculationExecution where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newGetCalculationExecutionResponse' smart constructor. data GetCalculationExecutionResponse = GetCalculationExecutionResponse' { -- | The calculation execution UUID. calculationExecutionId :: Prelude.Maybe Prelude.Text, -- | The description of the calculation execution. description :: Prelude.Maybe Prelude.Text, -- | Contains result information. This field is populated only if the -- calculation is completed. result :: Prelude.Maybe CalculationResult, -- | The session ID that the calculation ran in. sessionId :: Prelude.Maybe Prelude.Text, -- | Contains information about the data processing unit (DPU) execution time -- and progress. This field is populated only when statistics are -- available. statistics :: Prelude.Maybe CalculationStatistics, -- | Contains information about the status of the calculation. status :: Prelude.Maybe CalculationStatus, -- | The Amazon S3 location in which calculation results are stored. workingDirectory :: Prelude.Maybe Prelude.Text, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'GetCalculationExecutionResponse' 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: -- -- 'calculationExecutionId', 'getCalculationExecutionResponse_calculationExecutionId' - The calculation execution UUID. -- -- 'description', 'getCalculationExecutionResponse_description' - The description of the calculation execution. -- -- 'result', 'getCalculationExecutionResponse_result' - Contains result information. This field is populated only if the -- calculation is completed. -- -- 'sessionId', 'getCalculationExecutionResponse_sessionId' - The session ID that the calculation ran in. -- -- 'statistics', 'getCalculationExecutionResponse_statistics' - Contains information about the data processing unit (DPU) execution time -- and progress. This field is populated only when statistics are -- available. -- -- 'status', 'getCalculationExecutionResponse_status' - Contains information about the status of the calculation. -- -- 'workingDirectory', 'getCalculationExecutionResponse_workingDirectory' - The Amazon S3 location in which calculation results are stored. -- -- 'httpStatus', 'getCalculationExecutionResponse_httpStatus' - The response's http status code. newGetCalculationExecutionResponse :: -- | 'httpStatus' Prelude.Int -> GetCalculationExecutionResponse newGetCalculationExecutionResponse pHttpStatus_ = GetCalculationExecutionResponse' { calculationExecutionId = Prelude.Nothing, description = Prelude.Nothing, result = Prelude.Nothing, sessionId = Prelude.Nothing, statistics = Prelude.Nothing, status = Prelude.Nothing, workingDirectory = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | The calculation execution UUID. getCalculationExecutionResponse_calculationExecutionId :: Lens.Lens' GetCalculationExecutionResponse (Prelude.Maybe Prelude.Text) getCalculationExecutionResponse_calculationExecutionId = Lens.lens (\GetCalculationExecutionResponse' {calculationExecutionId} -> calculationExecutionId) (\s@GetCalculationExecutionResponse' {} a -> s {calculationExecutionId = a} :: GetCalculationExecutionResponse) -- | The description of the calculation execution. getCalculationExecutionResponse_description :: Lens.Lens' GetCalculationExecutionResponse (Prelude.Maybe Prelude.Text) getCalculationExecutionResponse_description = Lens.lens (\GetCalculationExecutionResponse' {description} -> description) (\s@GetCalculationExecutionResponse' {} a -> s {description = a} :: GetCalculationExecutionResponse) -- | Contains result information. This field is populated only if the -- calculation is completed. getCalculationExecutionResponse_result :: Lens.Lens' GetCalculationExecutionResponse (Prelude.Maybe CalculationResult) getCalculationExecutionResponse_result = Lens.lens (\GetCalculationExecutionResponse' {result} -> result) (\s@GetCalculationExecutionResponse' {} a -> s {result = a} :: GetCalculationExecutionResponse) -- | The session ID that the calculation ran in. getCalculationExecutionResponse_sessionId :: Lens.Lens' GetCalculationExecutionResponse (Prelude.Maybe Prelude.Text) getCalculationExecutionResponse_sessionId = Lens.lens (\GetCalculationExecutionResponse' {sessionId} -> sessionId) (\s@GetCalculationExecutionResponse' {} a -> s {sessionId = a} :: GetCalculationExecutionResponse) -- | Contains information about the data processing unit (DPU) execution time -- and progress. This field is populated only when statistics are -- available. getCalculationExecutionResponse_statistics :: Lens.Lens' GetCalculationExecutionResponse (Prelude.Maybe CalculationStatistics) getCalculationExecutionResponse_statistics = Lens.lens (\GetCalculationExecutionResponse' {statistics} -> statistics) (\s@GetCalculationExecutionResponse' {} a -> s {statistics = a} :: GetCalculationExecutionResponse) -- | Contains information about the status of the calculation. getCalculationExecutionResponse_status :: Lens.Lens' GetCalculationExecutionResponse (Prelude.Maybe CalculationStatus) getCalculationExecutionResponse_status = Lens.lens (\GetCalculationExecutionResponse' {status} -> status) (\s@GetCalculationExecutionResponse' {} a -> s {status = a} :: GetCalculationExecutionResponse) -- | The Amazon S3 location in which calculation results are stored. getCalculationExecutionResponse_workingDirectory :: Lens.Lens' GetCalculationExecutionResponse (Prelude.Maybe Prelude.Text) getCalculationExecutionResponse_workingDirectory = Lens.lens (\GetCalculationExecutionResponse' {workingDirectory} -> workingDirectory) (\s@GetCalculationExecutionResponse' {} a -> s {workingDirectory = a} :: GetCalculationExecutionResponse) -- | The response's http status code. getCalculationExecutionResponse_httpStatus :: Lens.Lens' GetCalculationExecutionResponse Prelude.Int getCalculationExecutionResponse_httpStatus = Lens.lens (\GetCalculationExecutionResponse' {httpStatus} -> httpStatus) (\s@GetCalculationExecutionResponse' {} a -> s {httpStatus = a} :: GetCalculationExecutionResponse) instance Prelude.NFData GetCalculationExecutionResponse where rnf GetCalculationExecutionResponse' {..} = Prelude.rnf calculationExecutionId `Prelude.seq` Prelude.rnf description `Prelude.seq` Prelude.rnf result `Prelude.seq` Prelude.rnf sessionId `Prelude.seq` Prelude.rnf statistics `Prelude.seq` Prelude.rnf status `Prelude.seq` Prelude.rnf workingDirectory `Prelude.seq` Prelude.rnf httpStatus