amazonka-healthlake-2.0: gen/Amazonka/HealthLake/CreateFHIRDatastore.hs
{-# 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.CreateFHIRDatastore
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates a Data Store that can ingest and export FHIR formatted data.
module Amazonka.HealthLake.CreateFHIRDatastore
( -- * Creating a Request
CreateFHIRDatastore (..),
newCreateFHIRDatastore,
-- * Request Lenses
createFHIRDatastore_clientToken,
createFHIRDatastore_datastoreName,
createFHIRDatastore_preloadDataConfig,
createFHIRDatastore_sseConfiguration,
createFHIRDatastore_tags,
createFHIRDatastore_datastoreTypeVersion,
-- * Destructuring the Response
CreateFHIRDatastoreResponse (..),
newCreateFHIRDatastoreResponse,
-- * Response Lenses
createFHIRDatastoreResponse_httpStatus,
createFHIRDatastoreResponse_datastoreId,
createFHIRDatastoreResponse_datastoreArn,
createFHIRDatastoreResponse_datastoreStatus,
createFHIRDatastoreResponse_datastoreEndpoint,
)
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:/ 'newCreateFHIRDatastore' smart constructor.
data CreateFHIRDatastore = CreateFHIRDatastore'
{ -- | Optional user provided token used for ensuring idempotency.
clientToken :: Prelude.Maybe Prelude.Text,
-- | The user generated name for the Data Store.
datastoreName :: Prelude.Maybe Prelude.Text,
-- | Optional parameter to preload data upon creation of the Data Store.
-- Currently, the only supported preloaded data is synthetic data generated
-- from Synthea.
preloadDataConfig :: Prelude.Maybe PreloadDataConfig,
-- | The server-side encryption key configuration for a customer provided
-- encryption key specified for creating a Data Store.
sseConfiguration :: Prelude.Maybe SseConfiguration,
-- | Resource tags that are applied to a Data Store when it is created.
tags :: Prelude.Maybe [Tag],
-- | The FHIR version of the Data Store. The only supported version is R4.
datastoreTypeVersion :: FHIRVersion
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'CreateFHIRDatastore' 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:
--
-- 'clientToken', 'createFHIRDatastore_clientToken' - Optional user provided token used for ensuring idempotency.
--
-- 'datastoreName', 'createFHIRDatastore_datastoreName' - The user generated name for the Data Store.
--
-- 'preloadDataConfig', 'createFHIRDatastore_preloadDataConfig' - Optional parameter to preload data upon creation of the Data Store.
-- Currently, the only supported preloaded data is synthetic data generated
-- from Synthea.
--
-- 'sseConfiguration', 'createFHIRDatastore_sseConfiguration' - The server-side encryption key configuration for a customer provided
-- encryption key specified for creating a Data Store.
--
-- 'tags', 'createFHIRDatastore_tags' - Resource tags that are applied to a Data Store when it is created.
--
-- 'datastoreTypeVersion', 'createFHIRDatastore_datastoreTypeVersion' - The FHIR version of the Data Store. The only supported version is R4.
newCreateFHIRDatastore ::
-- | 'datastoreTypeVersion'
FHIRVersion ->
CreateFHIRDatastore
newCreateFHIRDatastore pDatastoreTypeVersion_ =
CreateFHIRDatastore'
{ clientToken = Prelude.Nothing,
datastoreName = Prelude.Nothing,
preloadDataConfig = Prelude.Nothing,
sseConfiguration = Prelude.Nothing,
tags = Prelude.Nothing,
datastoreTypeVersion = pDatastoreTypeVersion_
}
-- | Optional user provided token used for ensuring idempotency.
createFHIRDatastore_clientToken :: Lens.Lens' CreateFHIRDatastore (Prelude.Maybe Prelude.Text)
createFHIRDatastore_clientToken = Lens.lens (\CreateFHIRDatastore' {clientToken} -> clientToken) (\s@CreateFHIRDatastore' {} a -> s {clientToken = a} :: CreateFHIRDatastore)
-- | The user generated name for the Data Store.
createFHIRDatastore_datastoreName :: Lens.Lens' CreateFHIRDatastore (Prelude.Maybe Prelude.Text)
createFHIRDatastore_datastoreName = Lens.lens (\CreateFHIRDatastore' {datastoreName} -> datastoreName) (\s@CreateFHIRDatastore' {} a -> s {datastoreName = a} :: CreateFHIRDatastore)
-- | Optional parameter to preload data upon creation of the Data Store.
-- Currently, the only supported preloaded data is synthetic data generated
-- from Synthea.
createFHIRDatastore_preloadDataConfig :: Lens.Lens' CreateFHIRDatastore (Prelude.Maybe PreloadDataConfig)
createFHIRDatastore_preloadDataConfig = Lens.lens (\CreateFHIRDatastore' {preloadDataConfig} -> preloadDataConfig) (\s@CreateFHIRDatastore' {} a -> s {preloadDataConfig = a} :: CreateFHIRDatastore)
-- | The server-side encryption key configuration for a customer provided
-- encryption key specified for creating a Data Store.
createFHIRDatastore_sseConfiguration :: Lens.Lens' CreateFHIRDatastore (Prelude.Maybe SseConfiguration)
createFHIRDatastore_sseConfiguration = Lens.lens (\CreateFHIRDatastore' {sseConfiguration} -> sseConfiguration) (\s@CreateFHIRDatastore' {} a -> s {sseConfiguration = a} :: CreateFHIRDatastore)
-- | Resource tags that are applied to a Data Store when it is created.
createFHIRDatastore_tags :: Lens.Lens' CreateFHIRDatastore (Prelude.Maybe [Tag])
createFHIRDatastore_tags = Lens.lens (\CreateFHIRDatastore' {tags} -> tags) (\s@CreateFHIRDatastore' {} a -> s {tags = a} :: CreateFHIRDatastore) Prelude.. Lens.mapping Lens.coerced
-- | The FHIR version of the Data Store. The only supported version is R4.
createFHIRDatastore_datastoreTypeVersion :: Lens.Lens' CreateFHIRDatastore FHIRVersion
createFHIRDatastore_datastoreTypeVersion = Lens.lens (\CreateFHIRDatastore' {datastoreTypeVersion} -> datastoreTypeVersion) (\s@CreateFHIRDatastore' {} a -> s {datastoreTypeVersion = a} :: CreateFHIRDatastore)
instance Core.AWSRequest CreateFHIRDatastore where
type
AWSResponse CreateFHIRDatastore =
CreateFHIRDatastoreResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
CreateFHIRDatastoreResponse'
Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
Prelude.<*> (x Data..:> "DatastoreId")
Prelude.<*> (x Data..:> "DatastoreArn")
Prelude.<*> (x Data..:> "DatastoreStatus")
Prelude.<*> (x Data..:> "DatastoreEndpoint")
)
instance Prelude.Hashable CreateFHIRDatastore where
hashWithSalt _salt CreateFHIRDatastore' {..} =
_salt
`Prelude.hashWithSalt` clientToken
`Prelude.hashWithSalt` datastoreName
`Prelude.hashWithSalt` preloadDataConfig
`Prelude.hashWithSalt` sseConfiguration
`Prelude.hashWithSalt` tags
`Prelude.hashWithSalt` datastoreTypeVersion
instance Prelude.NFData CreateFHIRDatastore where
rnf CreateFHIRDatastore' {..} =
Prelude.rnf clientToken
`Prelude.seq` Prelude.rnf datastoreName
`Prelude.seq` Prelude.rnf preloadDataConfig
`Prelude.seq` Prelude.rnf sseConfiguration
`Prelude.seq` Prelude.rnf tags
`Prelude.seq` Prelude.rnf datastoreTypeVersion
instance Data.ToHeaders CreateFHIRDatastore where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "X-Amz-Target"
Data.=# ( "HealthLake.CreateFHIRDatastore" ::
Prelude.ByteString
),
"Content-Type"
Data.=# ( "application/x-amz-json-1.0" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON CreateFHIRDatastore where
toJSON CreateFHIRDatastore' {..} =
Data.object
( Prelude.catMaybes
[ ("ClientToken" Data..=) Prelude.<$> clientToken,
("DatastoreName" Data..=) Prelude.<$> datastoreName,
("PreloadDataConfig" Data..=)
Prelude.<$> preloadDataConfig,
("SseConfiguration" Data..=)
Prelude.<$> sseConfiguration,
("Tags" Data..=) Prelude.<$> tags,
Prelude.Just
( "DatastoreTypeVersion"
Data..= datastoreTypeVersion
)
]
)
instance Data.ToPath CreateFHIRDatastore where
toPath = Prelude.const "/"
instance Data.ToQuery CreateFHIRDatastore where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newCreateFHIRDatastoreResponse' smart constructor.
data CreateFHIRDatastoreResponse = CreateFHIRDatastoreResponse'
{ -- | The response's http status code.
httpStatus :: Prelude.Int,
-- | The AWS-generated Data Store id. This id is in the output from the
-- initial Data Store creation call.
datastoreId :: Prelude.Text,
-- | The datastore ARN is generated during the creation of the Data Store and
-- can be found in the output from the initial Data Store creation call.
datastoreArn :: Prelude.Text,
-- | The status of the FHIR Data Store. Possible statuses are ‘CREATING’,
-- ‘ACTIVE’, ‘DELETING’, ‘DELETED’.
datastoreStatus :: DatastoreStatus,
-- | The AWS endpoint for the created Data Store. For preview, only US-east-1
-- endpoints are supported.
datastoreEndpoint :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'CreateFHIRDatastoreResponse' 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:
--
-- 'httpStatus', 'createFHIRDatastoreResponse_httpStatus' - The response's http status code.
--
-- 'datastoreId', 'createFHIRDatastoreResponse_datastoreId' - The AWS-generated Data Store id. This id is in the output from the
-- initial Data Store creation call.
--
-- 'datastoreArn', 'createFHIRDatastoreResponse_datastoreArn' - The datastore ARN is generated during the creation of the Data Store and
-- can be found in the output from the initial Data Store creation call.
--
-- 'datastoreStatus', 'createFHIRDatastoreResponse_datastoreStatus' - The status of the FHIR Data Store. Possible statuses are ‘CREATING’,
-- ‘ACTIVE’, ‘DELETING’, ‘DELETED’.
--
-- 'datastoreEndpoint', 'createFHIRDatastoreResponse_datastoreEndpoint' - The AWS endpoint for the created Data Store. For preview, only US-east-1
-- endpoints are supported.
newCreateFHIRDatastoreResponse ::
-- | 'httpStatus'
Prelude.Int ->
-- | 'datastoreId'
Prelude.Text ->
-- | 'datastoreArn'
Prelude.Text ->
-- | 'datastoreStatus'
DatastoreStatus ->
-- | 'datastoreEndpoint'
Prelude.Text ->
CreateFHIRDatastoreResponse
newCreateFHIRDatastoreResponse
pHttpStatus_
pDatastoreId_
pDatastoreArn_
pDatastoreStatus_
pDatastoreEndpoint_ =
CreateFHIRDatastoreResponse'
{ httpStatus =
pHttpStatus_,
datastoreId = pDatastoreId_,
datastoreArn = pDatastoreArn_,
datastoreStatus = pDatastoreStatus_,
datastoreEndpoint = pDatastoreEndpoint_
}
-- | The response's http status code.
createFHIRDatastoreResponse_httpStatus :: Lens.Lens' CreateFHIRDatastoreResponse Prelude.Int
createFHIRDatastoreResponse_httpStatus = Lens.lens (\CreateFHIRDatastoreResponse' {httpStatus} -> httpStatus) (\s@CreateFHIRDatastoreResponse' {} a -> s {httpStatus = a} :: CreateFHIRDatastoreResponse)
-- | The AWS-generated Data Store id. This id is in the output from the
-- initial Data Store creation call.
createFHIRDatastoreResponse_datastoreId :: Lens.Lens' CreateFHIRDatastoreResponse Prelude.Text
createFHIRDatastoreResponse_datastoreId = Lens.lens (\CreateFHIRDatastoreResponse' {datastoreId} -> datastoreId) (\s@CreateFHIRDatastoreResponse' {} a -> s {datastoreId = a} :: CreateFHIRDatastoreResponse)
-- | The datastore ARN is generated during the creation of the Data Store and
-- can be found in the output from the initial Data Store creation call.
createFHIRDatastoreResponse_datastoreArn :: Lens.Lens' CreateFHIRDatastoreResponse Prelude.Text
createFHIRDatastoreResponse_datastoreArn = Lens.lens (\CreateFHIRDatastoreResponse' {datastoreArn} -> datastoreArn) (\s@CreateFHIRDatastoreResponse' {} a -> s {datastoreArn = a} :: CreateFHIRDatastoreResponse)
-- | The status of the FHIR Data Store. Possible statuses are ‘CREATING’,
-- ‘ACTIVE’, ‘DELETING’, ‘DELETED’.
createFHIRDatastoreResponse_datastoreStatus :: Lens.Lens' CreateFHIRDatastoreResponse DatastoreStatus
createFHIRDatastoreResponse_datastoreStatus = Lens.lens (\CreateFHIRDatastoreResponse' {datastoreStatus} -> datastoreStatus) (\s@CreateFHIRDatastoreResponse' {} a -> s {datastoreStatus = a} :: CreateFHIRDatastoreResponse)
-- | The AWS endpoint for the created Data Store. For preview, only US-east-1
-- endpoints are supported.
createFHIRDatastoreResponse_datastoreEndpoint :: Lens.Lens' CreateFHIRDatastoreResponse Prelude.Text
createFHIRDatastoreResponse_datastoreEndpoint = Lens.lens (\CreateFHIRDatastoreResponse' {datastoreEndpoint} -> datastoreEndpoint) (\s@CreateFHIRDatastoreResponse' {} a -> s {datastoreEndpoint = a} :: CreateFHIRDatastoreResponse)
instance Prelude.NFData CreateFHIRDatastoreResponse where
rnf CreateFHIRDatastoreResponse' {..} =
Prelude.rnf httpStatus
`Prelude.seq` Prelude.rnf datastoreId
`Prelude.seq` Prelude.rnf datastoreArn
`Prelude.seq` Prelude.rnf datastoreStatus
`Prelude.seq` Prelude.rnf datastoreEndpoint