{-# 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.HealthLake.StartFHIRImportJob -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Begins a FHIR Import job. module Amazonka.HealthLake.StartFHIRImportJob ( -- * Creating a Request StartFHIRImportJob (..), newStartFHIRImportJob, -- * Request Lenses startFHIRImportJob_jobName, startFHIRImportJob_inputDataConfig, startFHIRImportJob_jobOutputDataConfig, startFHIRImportJob_datastoreId, startFHIRImportJob_dataAccessRoleArn, startFHIRImportJob_clientToken, -- * Destructuring the Response StartFHIRImportJobResponse (..), newStartFHIRImportJobResponse, -- * Response Lenses startFHIRImportJobResponse_datastoreId, startFHIRImportJobResponse_httpStatus, startFHIRImportJobResponse_jobId, startFHIRImportJobResponse_jobStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.HealthLake.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newStartFHIRImportJob' smart constructor. data StartFHIRImportJob = StartFHIRImportJob' { -- | The name of the FHIR Import job in the StartFHIRImport job request. jobName :: Prelude.Maybe Prelude.Text, -- | The input properties of the FHIR Import job in the StartFHIRImport job -- request. inputDataConfig :: InputDataConfig, jobOutputDataConfig :: OutputDataConfig, -- | The AWS-generated Data Store ID. datastoreId :: Prelude.Text, -- | The Amazon Resource Name (ARN) that gives Amazon HealthLake access -- permission. dataAccessRoleArn :: Prelude.Text, -- | Optional user provided token used for ensuring idempotency. clientToken :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'StartFHIRImportJob' 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: -- -- 'jobName', 'startFHIRImportJob_jobName' - The name of the FHIR Import job in the StartFHIRImport job request. -- -- 'inputDataConfig', 'startFHIRImportJob_inputDataConfig' - The input properties of the FHIR Import job in the StartFHIRImport job -- request. -- -- 'jobOutputDataConfig', 'startFHIRImportJob_jobOutputDataConfig' - Undocumented member. -- -- 'datastoreId', 'startFHIRImportJob_datastoreId' - The AWS-generated Data Store ID. -- -- 'dataAccessRoleArn', 'startFHIRImportJob_dataAccessRoleArn' - The Amazon Resource Name (ARN) that gives Amazon HealthLake access -- permission. -- -- 'clientToken', 'startFHIRImportJob_clientToken' - Optional user provided token used for ensuring idempotency. newStartFHIRImportJob :: -- | 'inputDataConfig' InputDataConfig -> -- | 'jobOutputDataConfig' OutputDataConfig -> -- | 'datastoreId' Prelude.Text -> -- | 'dataAccessRoleArn' Prelude.Text -> -- | 'clientToken' Prelude.Text -> StartFHIRImportJob newStartFHIRImportJob pInputDataConfig_ pJobOutputDataConfig_ pDatastoreId_ pDataAccessRoleArn_ pClientToken_ = StartFHIRImportJob' { jobName = Prelude.Nothing, inputDataConfig = pInputDataConfig_, jobOutputDataConfig = pJobOutputDataConfig_, datastoreId = pDatastoreId_, dataAccessRoleArn = pDataAccessRoleArn_, clientToken = pClientToken_ } -- | The name of the FHIR Import job in the StartFHIRImport job request. startFHIRImportJob_jobName :: Lens.Lens' StartFHIRImportJob (Prelude.Maybe Prelude.Text) startFHIRImportJob_jobName = Lens.lens (\StartFHIRImportJob' {jobName} -> jobName) (\s@StartFHIRImportJob' {} a -> s {jobName = a} :: StartFHIRImportJob) -- | The input properties of the FHIR Import job in the StartFHIRImport job -- request. startFHIRImportJob_inputDataConfig :: Lens.Lens' StartFHIRImportJob InputDataConfig startFHIRImportJob_inputDataConfig = Lens.lens (\StartFHIRImportJob' {inputDataConfig} -> inputDataConfig) (\s@StartFHIRImportJob' {} a -> s {inputDataConfig = a} :: StartFHIRImportJob) -- | Undocumented member. startFHIRImportJob_jobOutputDataConfig :: Lens.Lens' StartFHIRImportJob OutputDataConfig startFHIRImportJob_jobOutputDataConfig = Lens.lens (\StartFHIRImportJob' {jobOutputDataConfig} -> jobOutputDataConfig) (\s@StartFHIRImportJob' {} a -> s {jobOutputDataConfig = a} :: StartFHIRImportJob) -- | The AWS-generated Data Store ID. startFHIRImportJob_datastoreId :: Lens.Lens' StartFHIRImportJob Prelude.Text startFHIRImportJob_datastoreId = Lens.lens (\StartFHIRImportJob' {datastoreId} -> datastoreId) (\s@StartFHIRImportJob' {} a -> s {datastoreId = a} :: StartFHIRImportJob) -- | The Amazon Resource Name (ARN) that gives Amazon HealthLake access -- permission. startFHIRImportJob_dataAccessRoleArn :: Lens.Lens' StartFHIRImportJob Prelude.Text startFHIRImportJob_dataAccessRoleArn = Lens.lens (\StartFHIRImportJob' {dataAccessRoleArn} -> dataAccessRoleArn) (\s@StartFHIRImportJob' {} a -> s {dataAccessRoleArn = a} :: StartFHIRImportJob) -- | Optional user provided token used for ensuring idempotency. startFHIRImportJob_clientToken :: Lens.Lens' StartFHIRImportJob Prelude.Text startFHIRImportJob_clientToken = Lens.lens (\StartFHIRImportJob' {clientToken} -> clientToken) (\s@StartFHIRImportJob' {} a -> s {clientToken = a} :: StartFHIRImportJob) instance Core.AWSRequest StartFHIRImportJob where type AWSResponse StartFHIRImportJob = StartFHIRImportJobResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> StartFHIRImportJobResponse' Prelude.<$> (x Data..?> "DatastoreId") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) Prelude.<*> (x Data..:> "JobId") Prelude.<*> (x Data..:> "JobStatus") ) instance Prelude.Hashable StartFHIRImportJob where hashWithSalt _salt StartFHIRImportJob' {..} = _salt `Prelude.hashWithSalt` jobName `Prelude.hashWithSalt` inputDataConfig `Prelude.hashWithSalt` jobOutputDataConfig `Prelude.hashWithSalt` datastoreId `Prelude.hashWithSalt` dataAccessRoleArn `Prelude.hashWithSalt` clientToken instance Prelude.NFData StartFHIRImportJob where rnf StartFHIRImportJob' {..} = Prelude.rnf jobName `Prelude.seq` Prelude.rnf inputDataConfig `Prelude.seq` Prelude.rnf jobOutputDataConfig `Prelude.seq` Prelude.rnf datastoreId `Prelude.seq` Prelude.rnf dataAccessRoleArn `Prelude.seq` Prelude.rnf clientToken instance Data.ToHeaders StartFHIRImportJob where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "HealthLake.StartFHIRImportJob" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.0" :: Prelude.ByteString ) ] ) instance Data.ToJSON StartFHIRImportJob where toJSON StartFHIRImportJob' {..} = Data.object ( Prelude.catMaybes [ ("JobName" Data..=) Prelude.<$> jobName, Prelude.Just ("InputDataConfig" Data..= inputDataConfig), Prelude.Just ("JobOutputDataConfig" Data..= jobOutputDataConfig), Prelude.Just ("DatastoreId" Data..= datastoreId), Prelude.Just ("DataAccessRoleArn" Data..= dataAccessRoleArn), Prelude.Just ("ClientToken" Data..= clientToken) ] ) instance Data.ToPath StartFHIRImportJob where toPath = Prelude.const "/" instance Data.ToQuery StartFHIRImportJob where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newStartFHIRImportJobResponse' smart constructor. data StartFHIRImportJobResponse = StartFHIRImportJobResponse' { -- | The AWS-generated Data Store ID. datastoreId :: Prelude.Maybe Prelude.Text, -- | The response's http status code. httpStatus :: Prelude.Int, -- | The AWS-generated job ID. jobId :: Prelude.Text, -- | The status of an import job. jobStatus :: JobStatus } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'StartFHIRImportJobResponse' 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: -- -- 'datastoreId', 'startFHIRImportJobResponse_datastoreId' - The AWS-generated Data Store ID. -- -- 'httpStatus', 'startFHIRImportJobResponse_httpStatus' - The response's http status code. -- -- 'jobId', 'startFHIRImportJobResponse_jobId' - The AWS-generated job ID. -- -- 'jobStatus', 'startFHIRImportJobResponse_jobStatus' - The status of an import job. newStartFHIRImportJobResponse :: -- | 'httpStatus' Prelude.Int -> -- | 'jobId' Prelude.Text -> -- | 'jobStatus' JobStatus -> StartFHIRImportJobResponse newStartFHIRImportJobResponse pHttpStatus_ pJobId_ pJobStatus_ = StartFHIRImportJobResponse' { datastoreId = Prelude.Nothing, httpStatus = pHttpStatus_, jobId = pJobId_, jobStatus = pJobStatus_ } -- | The AWS-generated Data Store ID. startFHIRImportJobResponse_datastoreId :: Lens.Lens' StartFHIRImportJobResponse (Prelude.Maybe Prelude.Text) startFHIRImportJobResponse_datastoreId = Lens.lens (\StartFHIRImportJobResponse' {datastoreId} -> datastoreId) (\s@StartFHIRImportJobResponse' {} a -> s {datastoreId = a} :: StartFHIRImportJobResponse) -- | The response's http status code. startFHIRImportJobResponse_httpStatus :: Lens.Lens' StartFHIRImportJobResponse Prelude.Int startFHIRImportJobResponse_httpStatus = Lens.lens (\StartFHIRImportJobResponse' {httpStatus} -> httpStatus) (\s@StartFHIRImportJobResponse' {} a -> s {httpStatus = a} :: StartFHIRImportJobResponse) -- | The AWS-generated job ID. startFHIRImportJobResponse_jobId :: Lens.Lens' StartFHIRImportJobResponse Prelude.Text startFHIRImportJobResponse_jobId = Lens.lens (\StartFHIRImportJobResponse' {jobId} -> jobId) (\s@StartFHIRImportJobResponse' {} a -> s {jobId = a} :: StartFHIRImportJobResponse) -- | The status of an import job. startFHIRImportJobResponse_jobStatus :: Lens.Lens' StartFHIRImportJobResponse JobStatus startFHIRImportJobResponse_jobStatus = Lens.lens (\StartFHIRImportJobResponse' {jobStatus} -> jobStatus) (\s@StartFHIRImportJobResponse' {} a -> s {jobStatus = a} :: StartFHIRImportJobResponse) instance Prelude.NFData StartFHIRImportJobResponse where rnf StartFHIRImportJobResponse' {..} = Prelude.rnf datastoreId `Prelude.seq` Prelude.rnf httpStatus `Prelude.seq` Prelude.rnf jobId `Prelude.seq` Prelude.rnf jobStatus