{-# 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 #-}
module Amazonka.GroundStation.UpdateConfig
(
UpdateConfig (..),
newUpdateConfig,
updateConfig_configData,
updateConfig_configId,
updateConfig_configType,
updateConfig_name,
ConfigIdResponse (..),
newConfigIdResponse,
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
data UpdateConfig = UpdateConfig'
{
UpdateConfig -> ConfigTypeData
configData :: ConfigTypeData,
UpdateConfig -> Text
configId :: Prelude.Text,
UpdateConfig -> ConfigCapabilityType
configType :: ConfigCapabilityType,
UpdateConfig -> Text
name :: Prelude.Text
}
deriving (UpdateConfig -> UpdateConfig -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateConfig -> UpdateConfig -> Bool
$c/= :: UpdateConfig -> UpdateConfig -> Bool
== :: UpdateConfig -> UpdateConfig -> Bool
$c== :: UpdateConfig -> UpdateConfig -> Bool
Prelude.Eq, ReadPrec [UpdateConfig]
ReadPrec UpdateConfig
Int -> ReadS UpdateConfig
ReadS [UpdateConfig]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateConfig]
$creadListPrec :: ReadPrec [UpdateConfig]
readPrec :: ReadPrec UpdateConfig
$creadPrec :: ReadPrec UpdateConfig
readList :: ReadS [UpdateConfig]
$creadList :: ReadS [UpdateConfig]
readsPrec :: Int -> ReadS UpdateConfig
$creadsPrec :: Int -> ReadS UpdateConfig
Prelude.Read, Int -> UpdateConfig -> ShowS
[UpdateConfig] -> ShowS
UpdateConfig -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateConfig] -> ShowS
$cshowList :: [UpdateConfig] -> ShowS
show :: UpdateConfig -> String
$cshow :: UpdateConfig -> String
showsPrec :: Int -> UpdateConfig -> ShowS
$cshowsPrec :: Int -> UpdateConfig -> ShowS
Prelude.Show, forall x. Rep UpdateConfig x -> UpdateConfig
forall x. UpdateConfig -> Rep UpdateConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateConfig x -> UpdateConfig
$cfrom :: forall x. UpdateConfig -> Rep UpdateConfig x
Prelude.Generic)
newUpdateConfig ::
ConfigTypeData ->
Prelude.Text ->
ConfigCapabilityType ->
Prelude.Text ->
UpdateConfig
newUpdateConfig :: ConfigTypeData
-> Text -> ConfigCapabilityType -> Text -> UpdateConfig
newUpdateConfig
ConfigTypeData
pConfigData_
Text
pConfigId_
ConfigCapabilityType
pConfigType_
Text
pName_ =
UpdateConfig'
{ $sel:configData:UpdateConfig' :: ConfigTypeData
configData = ConfigTypeData
pConfigData_,
$sel:configId:UpdateConfig' :: Text
configId = Text
pConfigId_,
$sel:configType:UpdateConfig' :: ConfigCapabilityType
configType = ConfigCapabilityType
pConfigType_,
$sel:name:UpdateConfig' :: Text
name = Text
pName_
}
updateConfig_configData :: Lens.Lens' UpdateConfig ConfigTypeData
updateConfig_configData :: Lens' UpdateConfig ConfigTypeData
updateConfig_configData = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateConfig' {ConfigTypeData
configData :: ConfigTypeData
$sel:configData:UpdateConfig' :: UpdateConfig -> ConfigTypeData
configData} -> ConfigTypeData
configData) (\s :: UpdateConfig
s@UpdateConfig' {} ConfigTypeData
a -> UpdateConfig
s {$sel:configData:UpdateConfig' :: ConfigTypeData
configData = ConfigTypeData
a} :: UpdateConfig)
updateConfig_configId :: Lens.Lens' UpdateConfig Prelude.Text
updateConfig_configId :: Lens' UpdateConfig Text
updateConfig_configId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateConfig' {Text
configId :: Text
$sel:configId:UpdateConfig' :: UpdateConfig -> Text
configId} -> Text
configId) (\s :: UpdateConfig
s@UpdateConfig' {} Text
a -> UpdateConfig
s {$sel:configId:UpdateConfig' :: Text
configId = Text
a} :: UpdateConfig)
updateConfig_configType :: Lens.Lens' UpdateConfig ConfigCapabilityType
updateConfig_configType :: Lens' UpdateConfig ConfigCapabilityType
updateConfig_configType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateConfig' {ConfigCapabilityType
configType :: ConfigCapabilityType
$sel:configType:UpdateConfig' :: UpdateConfig -> ConfigCapabilityType
configType} -> ConfigCapabilityType
configType) (\s :: UpdateConfig
s@UpdateConfig' {} ConfigCapabilityType
a -> UpdateConfig
s {$sel:configType:UpdateConfig' :: ConfigCapabilityType
configType = ConfigCapabilityType
a} :: UpdateConfig)
updateConfig_name :: Lens.Lens' UpdateConfig Prelude.Text
updateConfig_name :: Lens' UpdateConfig Text
updateConfig_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateConfig' {Text
name :: Text
$sel:name:UpdateConfig' :: UpdateConfig -> Text
name} -> Text
name) (\s :: UpdateConfig
s@UpdateConfig' {} Text
a -> UpdateConfig
s {$sel:name:UpdateConfig' :: Text
name = Text
a} :: UpdateConfig)
instance Core.AWSRequest UpdateConfig where
type AWSResponse UpdateConfig = ConfigIdResponse
request :: (Service -> Service) -> UpdateConfig -> Request UpdateConfig
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.putJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateConfig
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse UpdateConfig)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
(\Int
s ResponseHeaders
h Object
x -> forall a. FromJSON a => Object -> Either String a
Data.eitherParseJSON Object
x)
instance Prelude.Hashable UpdateConfig where
hashWithSalt :: Int -> UpdateConfig -> Int
hashWithSalt Int
_salt UpdateConfig' {Text
ConfigCapabilityType
ConfigTypeData
name :: Text
configType :: ConfigCapabilityType
configId :: Text
configData :: ConfigTypeData
$sel:name:UpdateConfig' :: UpdateConfig -> Text
$sel:configType:UpdateConfig' :: UpdateConfig -> ConfigCapabilityType
$sel:configId:UpdateConfig' :: UpdateConfig -> Text
$sel:configData:UpdateConfig' :: UpdateConfig -> ConfigTypeData
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ConfigTypeData
configData
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
configId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ConfigCapabilityType
configType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
instance Prelude.NFData UpdateConfig where
rnf :: UpdateConfig -> ()
rnf UpdateConfig' {Text
ConfigCapabilityType
ConfigTypeData
name :: Text
configType :: ConfigCapabilityType
configId :: Text
configData :: ConfigTypeData
$sel:name:UpdateConfig' :: UpdateConfig -> Text
$sel:configType:UpdateConfig' :: UpdateConfig -> ConfigCapabilityType
$sel:configId:UpdateConfig' :: UpdateConfig -> Text
$sel:configData:UpdateConfig' :: UpdateConfig -> ConfigTypeData
..} =
forall a. NFData a => a -> ()
Prelude.rnf ConfigTypeData
configData
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
configId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ConfigCapabilityType
configType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name
instance Data.ToHeaders UpdateConfig where
toHeaders :: UpdateConfig -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON UpdateConfig where
toJSON :: UpdateConfig -> Value
toJSON UpdateConfig' {Text
ConfigCapabilityType
ConfigTypeData
name :: Text
configType :: ConfigCapabilityType
configId :: Text
configData :: ConfigTypeData
$sel:name:UpdateConfig' :: UpdateConfig -> Text
$sel:configType:UpdateConfig' :: UpdateConfig -> ConfigCapabilityType
$sel:configId:UpdateConfig' :: UpdateConfig -> Text
$sel:configData:UpdateConfig' :: UpdateConfig -> ConfigTypeData
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just (Key
"configData" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= ConfigTypeData
configData),
forall a. a -> Maybe a
Prelude.Just (Key
"name" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
name)
]
)
instance Data.ToPath UpdateConfig where
toPath :: UpdateConfig -> ByteString
toPath UpdateConfig' {Text
ConfigCapabilityType
ConfigTypeData
name :: Text
configType :: ConfigCapabilityType
configId :: Text
configData :: ConfigTypeData
$sel:name:UpdateConfig' :: UpdateConfig -> Text
$sel:configType:UpdateConfig' :: UpdateConfig -> ConfigCapabilityType
$sel:configId:UpdateConfig' :: UpdateConfig -> Text
$sel:configData:UpdateConfig' :: UpdateConfig -> ConfigTypeData
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"/config/",
forall a. ToByteString a => a -> ByteString
Data.toBS ConfigCapabilityType
configType,
ByteString
"/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
configId
]
instance Data.ToQuery UpdateConfig where
toQuery :: UpdateConfig -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty