amazonka-groundstation-2.0: gen/Amazonka/GroundStation/UpdateConfig.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.GroundStation.UpdateConfig
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates the @Config@ used when scheduling contacts.
--
-- Updating a @Config@ will not update the execution parameters for
-- existing future contacts scheduled with this @Config@.
module Amazonka.GroundStation.UpdateConfig
( -- * Creating a Request
UpdateConfig (..),
newUpdateConfig,
-- * Request Lenses
updateConfig_configData,
updateConfig_configId,
updateConfig_configType,
updateConfig_name,
-- * Destructuring the Response
ConfigIdResponse (..),
newConfigIdResponse,
-- * Response Lenses
configIdResponse_configArn,
configIdResponse_configId,
configIdResponse_configType,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.GroundStation.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
-- |
--
-- /See:/ 'newUpdateConfig' smart constructor.
data UpdateConfig = UpdateConfig'
{ -- | Parameters of a @Config@.
configData :: ConfigTypeData,
-- | UUID of a @Config@.
configId :: Prelude.Text,
-- | Type of a @Config@.
configType :: ConfigCapabilityType,
-- | Name of a @Config@.
name :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'UpdateConfig' 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:
--
-- 'configData', 'updateConfig_configData' - Parameters of a @Config@.
--
-- 'configId', 'updateConfig_configId' - UUID of a @Config@.
--
-- 'configType', 'updateConfig_configType' - Type of a @Config@.
--
-- 'name', 'updateConfig_name' - Name of a @Config@.
newUpdateConfig ::
-- | 'configData'
ConfigTypeData ->
-- | 'configId'
Prelude.Text ->
-- | 'configType'
ConfigCapabilityType ->
-- | 'name'
Prelude.Text ->
UpdateConfig
newUpdateConfig
pConfigData_
pConfigId_
pConfigType_
pName_ =
UpdateConfig'
{ configData = pConfigData_,
configId = pConfigId_,
configType = pConfigType_,
name = pName_
}
-- | Parameters of a @Config@.
updateConfig_configData :: Lens.Lens' UpdateConfig ConfigTypeData
updateConfig_configData = Lens.lens (\UpdateConfig' {configData} -> configData) (\s@UpdateConfig' {} a -> s {configData = a} :: UpdateConfig)
-- | UUID of a @Config@.
updateConfig_configId :: Lens.Lens' UpdateConfig Prelude.Text
updateConfig_configId = Lens.lens (\UpdateConfig' {configId} -> configId) (\s@UpdateConfig' {} a -> s {configId = a} :: UpdateConfig)
-- | Type of a @Config@.
updateConfig_configType :: Lens.Lens' UpdateConfig ConfigCapabilityType
updateConfig_configType = Lens.lens (\UpdateConfig' {configType} -> configType) (\s@UpdateConfig' {} a -> s {configType = a} :: UpdateConfig)
-- | Name of a @Config@.
updateConfig_name :: Lens.Lens' UpdateConfig Prelude.Text
updateConfig_name = Lens.lens (\UpdateConfig' {name} -> name) (\s@UpdateConfig' {} a -> s {name = a} :: UpdateConfig)
instance Core.AWSRequest UpdateConfig where
type AWSResponse UpdateConfig = ConfigIdResponse
request overrides =
Request.putJSON (overrides defaultService)
response =
Response.receiveJSON
(\s h x -> Data.eitherParseJSON x)
instance Prelude.Hashable UpdateConfig where
hashWithSalt _salt UpdateConfig' {..} =
_salt
`Prelude.hashWithSalt` configData
`Prelude.hashWithSalt` configId
`Prelude.hashWithSalt` configType
`Prelude.hashWithSalt` name
instance Prelude.NFData UpdateConfig where
rnf UpdateConfig' {..} =
Prelude.rnf configData
`Prelude.seq` Prelude.rnf configId
`Prelude.seq` Prelude.rnf configType
`Prelude.seq` Prelude.rnf name
instance Data.ToHeaders UpdateConfig where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON UpdateConfig where
toJSON UpdateConfig' {..} =
Data.object
( Prelude.catMaybes
[ Prelude.Just ("configData" Data..= configData),
Prelude.Just ("name" Data..= name)
]
)
instance Data.ToPath UpdateConfig where
toPath UpdateConfig' {..} =
Prelude.mconcat
[ "/config/",
Data.toBS configType,
"/",
Data.toBS configId
]
instance Data.ToQuery UpdateConfig where
toQuery = Prelude.const Prelude.mempty