{-# 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.Location.UpdateRouteCalculator
(
UpdateRouteCalculator (..),
newUpdateRouteCalculator,
updateRouteCalculator_description,
updateRouteCalculator_pricingPlan,
updateRouteCalculator_calculatorName,
UpdateRouteCalculatorResponse (..),
newUpdateRouteCalculatorResponse,
updateRouteCalculatorResponse_httpStatus,
updateRouteCalculatorResponse_calculatorArn,
updateRouteCalculatorResponse_calculatorName,
updateRouteCalculatorResponse_updateTime,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Location.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data UpdateRouteCalculator = UpdateRouteCalculator'
{
UpdateRouteCalculator -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
UpdateRouteCalculator -> Maybe PricingPlan
pricingPlan :: Prelude.Maybe PricingPlan,
UpdateRouteCalculator -> Text
calculatorName :: Prelude.Text
}
deriving (UpdateRouteCalculator -> UpdateRouteCalculator -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateRouteCalculator -> UpdateRouteCalculator -> Bool
$c/= :: UpdateRouteCalculator -> UpdateRouteCalculator -> Bool
== :: UpdateRouteCalculator -> UpdateRouteCalculator -> Bool
$c== :: UpdateRouteCalculator -> UpdateRouteCalculator -> Bool
Prelude.Eq, ReadPrec [UpdateRouteCalculator]
ReadPrec UpdateRouteCalculator
Int -> ReadS UpdateRouteCalculator
ReadS [UpdateRouteCalculator]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateRouteCalculator]
$creadListPrec :: ReadPrec [UpdateRouteCalculator]
readPrec :: ReadPrec UpdateRouteCalculator
$creadPrec :: ReadPrec UpdateRouteCalculator
readList :: ReadS [UpdateRouteCalculator]
$creadList :: ReadS [UpdateRouteCalculator]
readsPrec :: Int -> ReadS UpdateRouteCalculator
$creadsPrec :: Int -> ReadS UpdateRouteCalculator
Prelude.Read, Int -> UpdateRouteCalculator -> ShowS
[UpdateRouteCalculator] -> ShowS
UpdateRouteCalculator -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateRouteCalculator] -> ShowS
$cshowList :: [UpdateRouteCalculator] -> ShowS
show :: UpdateRouteCalculator -> String
$cshow :: UpdateRouteCalculator -> String
showsPrec :: Int -> UpdateRouteCalculator -> ShowS
$cshowsPrec :: Int -> UpdateRouteCalculator -> ShowS
Prelude.Show, forall x. Rep UpdateRouteCalculator x -> UpdateRouteCalculator
forall x. UpdateRouteCalculator -> Rep UpdateRouteCalculator x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateRouteCalculator x -> UpdateRouteCalculator
$cfrom :: forall x. UpdateRouteCalculator -> Rep UpdateRouteCalculator x
Prelude.Generic)
newUpdateRouteCalculator ::
Prelude.Text ->
UpdateRouteCalculator
newUpdateRouteCalculator :: Text -> UpdateRouteCalculator
newUpdateRouteCalculator Text
pCalculatorName_ =
UpdateRouteCalculator'
{ $sel:description:UpdateRouteCalculator' :: Maybe Text
description =
forall a. Maybe a
Prelude.Nothing,
$sel:pricingPlan:UpdateRouteCalculator' :: Maybe PricingPlan
pricingPlan = forall a. Maybe a
Prelude.Nothing,
$sel:calculatorName:UpdateRouteCalculator' :: Text
calculatorName = Text
pCalculatorName_
}
updateRouteCalculator_description :: Lens.Lens' UpdateRouteCalculator (Prelude.Maybe Prelude.Text)
updateRouteCalculator_description :: Lens' UpdateRouteCalculator (Maybe Text)
updateRouteCalculator_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRouteCalculator' {Maybe Text
description :: Maybe Text
$sel:description:UpdateRouteCalculator' :: UpdateRouteCalculator -> Maybe Text
description} -> Maybe Text
description) (\s :: UpdateRouteCalculator
s@UpdateRouteCalculator' {} Maybe Text
a -> UpdateRouteCalculator
s {$sel:description:UpdateRouteCalculator' :: Maybe Text
description = Maybe Text
a} :: UpdateRouteCalculator)
updateRouteCalculator_pricingPlan :: Lens.Lens' UpdateRouteCalculator (Prelude.Maybe PricingPlan)
updateRouteCalculator_pricingPlan :: Lens' UpdateRouteCalculator (Maybe PricingPlan)
updateRouteCalculator_pricingPlan = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRouteCalculator' {Maybe PricingPlan
pricingPlan :: Maybe PricingPlan
$sel:pricingPlan:UpdateRouteCalculator' :: UpdateRouteCalculator -> Maybe PricingPlan
pricingPlan} -> Maybe PricingPlan
pricingPlan) (\s :: UpdateRouteCalculator
s@UpdateRouteCalculator' {} Maybe PricingPlan
a -> UpdateRouteCalculator
s {$sel:pricingPlan:UpdateRouteCalculator' :: Maybe PricingPlan
pricingPlan = Maybe PricingPlan
a} :: UpdateRouteCalculator)
updateRouteCalculator_calculatorName :: Lens.Lens' UpdateRouteCalculator Prelude.Text
updateRouteCalculator_calculatorName :: Lens' UpdateRouteCalculator Text
updateRouteCalculator_calculatorName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRouteCalculator' {Text
calculatorName :: Text
$sel:calculatorName:UpdateRouteCalculator' :: UpdateRouteCalculator -> Text
calculatorName} -> Text
calculatorName) (\s :: UpdateRouteCalculator
s@UpdateRouteCalculator' {} Text
a -> UpdateRouteCalculator
s {$sel:calculatorName:UpdateRouteCalculator' :: Text
calculatorName = Text
a} :: UpdateRouteCalculator)
instance Core.AWSRequest UpdateRouteCalculator where
type
AWSResponse UpdateRouteCalculator =
UpdateRouteCalculatorResponse
request :: (Service -> Service)
-> UpdateRouteCalculator -> Request UpdateRouteCalculator
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.patchJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateRouteCalculator
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse UpdateRouteCalculator)))
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 ->
Int -> Text -> Text -> ISO8601 -> UpdateRouteCalculatorResponse
UpdateRouteCalculatorResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"CalculatorArn")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"CalculatorName")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"UpdateTime")
)
instance Prelude.Hashable UpdateRouteCalculator where
hashWithSalt :: Int -> UpdateRouteCalculator -> Int
hashWithSalt Int
_salt UpdateRouteCalculator' {Maybe Text
Maybe PricingPlan
Text
calculatorName :: Text
pricingPlan :: Maybe PricingPlan
description :: Maybe Text
$sel:calculatorName:UpdateRouteCalculator' :: UpdateRouteCalculator -> Text
$sel:pricingPlan:UpdateRouteCalculator' :: UpdateRouteCalculator -> Maybe PricingPlan
$sel:description:UpdateRouteCalculator' :: UpdateRouteCalculator -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PricingPlan
pricingPlan
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
calculatorName
instance Prelude.NFData UpdateRouteCalculator where
rnf :: UpdateRouteCalculator -> ()
rnf UpdateRouteCalculator' {Maybe Text
Maybe PricingPlan
Text
calculatorName :: Text
pricingPlan :: Maybe PricingPlan
description :: Maybe Text
$sel:calculatorName:UpdateRouteCalculator' :: UpdateRouteCalculator -> Text
$sel:pricingPlan:UpdateRouteCalculator' :: UpdateRouteCalculator -> Maybe PricingPlan
$sel:description:UpdateRouteCalculator' :: UpdateRouteCalculator -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PricingPlan
pricingPlan
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
calculatorName
instance Data.ToHeaders UpdateRouteCalculator where
toHeaders :: UpdateRouteCalculator -> 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 UpdateRouteCalculator where
toJSON :: UpdateRouteCalculator -> Value
toJSON UpdateRouteCalculator' {Maybe Text
Maybe PricingPlan
Text
calculatorName :: Text
pricingPlan :: Maybe PricingPlan
description :: Maybe Text
$sel:calculatorName:UpdateRouteCalculator' :: UpdateRouteCalculator -> Text
$sel:pricingPlan:UpdateRouteCalculator' :: UpdateRouteCalculator -> Maybe PricingPlan
$sel:description:UpdateRouteCalculator' :: UpdateRouteCalculator -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"Description" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
description,
(Key
"PricingPlan" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe PricingPlan
pricingPlan
]
)
instance Data.ToPath UpdateRouteCalculator where
toPath :: UpdateRouteCalculator -> ByteString
toPath UpdateRouteCalculator' {Maybe Text
Maybe PricingPlan
Text
calculatorName :: Text
pricingPlan :: Maybe PricingPlan
description :: Maybe Text
$sel:calculatorName:UpdateRouteCalculator' :: UpdateRouteCalculator -> Text
$sel:pricingPlan:UpdateRouteCalculator' :: UpdateRouteCalculator -> Maybe PricingPlan
$sel:description:UpdateRouteCalculator' :: UpdateRouteCalculator -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ByteString
"/routes/v0/calculators/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
calculatorName]
instance Data.ToQuery UpdateRouteCalculator where
toQuery :: UpdateRouteCalculator -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data UpdateRouteCalculatorResponse = UpdateRouteCalculatorResponse'
{
UpdateRouteCalculatorResponse -> Int
httpStatus :: Prelude.Int,
UpdateRouteCalculatorResponse -> Text
calculatorArn :: Prelude.Text,
UpdateRouteCalculatorResponse -> Text
calculatorName :: Prelude.Text,
UpdateRouteCalculatorResponse -> ISO8601
updateTime :: Data.ISO8601
}
deriving (UpdateRouteCalculatorResponse
-> UpdateRouteCalculatorResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateRouteCalculatorResponse
-> UpdateRouteCalculatorResponse -> Bool
$c/= :: UpdateRouteCalculatorResponse
-> UpdateRouteCalculatorResponse -> Bool
== :: UpdateRouteCalculatorResponse
-> UpdateRouteCalculatorResponse -> Bool
$c== :: UpdateRouteCalculatorResponse
-> UpdateRouteCalculatorResponse -> Bool
Prelude.Eq, ReadPrec [UpdateRouteCalculatorResponse]
ReadPrec UpdateRouteCalculatorResponse
Int -> ReadS UpdateRouteCalculatorResponse
ReadS [UpdateRouteCalculatorResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateRouteCalculatorResponse]
$creadListPrec :: ReadPrec [UpdateRouteCalculatorResponse]
readPrec :: ReadPrec UpdateRouteCalculatorResponse
$creadPrec :: ReadPrec UpdateRouteCalculatorResponse
readList :: ReadS [UpdateRouteCalculatorResponse]
$creadList :: ReadS [UpdateRouteCalculatorResponse]
readsPrec :: Int -> ReadS UpdateRouteCalculatorResponse
$creadsPrec :: Int -> ReadS UpdateRouteCalculatorResponse
Prelude.Read, Int -> UpdateRouteCalculatorResponse -> ShowS
[UpdateRouteCalculatorResponse] -> ShowS
UpdateRouteCalculatorResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateRouteCalculatorResponse] -> ShowS
$cshowList :: [UpdateRouteCalculatorResponse] -> ShowS
show :: UpdateRouteCalculatorResponse -> String
$cshow :: UpdateRouteCalculatorResponse -> String
showsPrec :: Int -> UpdateRouteCalculatorResponse -> ShowS
$cshowsPrec :: Int -> UpdateRouteCalculatorResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateRouteCalculatorResponse x
-> UpdateRouteCalculatorResponse
forall x.
UpdateRouteCalculatorResponse
-> Rep UpdateRouteCalculatorResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateRouteCalculatorResponse x
-> UpdateRouteCalculatorResponse
$cfrom :: forall x.
UpdateRouteCalculatorResponse
-> Rep UpdateRouteCalculatorResponse x
Prelude.Generic)
newUpdateRouteCalculatorResponse ::
Prelude.Int ->
Prelude.Text ->
Prelude.Text ->
Prelude.UTCTime ->
UpdateRouteCalculatorResponse
newUpdateRouteCalculatorResponse :: Int -> Text -> Text -> UTCTime -> UpdateRouteCalculatorResponse
newUpdateRouteCalculatorResponse
Int
pHttpStatus_
Text
pCalculatorArn_
Text
pCalculatorName_
UTCTime
pUpdateTime_ =
UpdateRouteCalculatorResponse'
{ $sel:httpStatus:UpdateRouteCalculatorResponse' :: Int
httpStatus =
Int
pHttpStatus_,
$sel:calculatorArn:UpdateRouteCalculatorResponse' :: Text
calculatorArn = Text
pCalculatorArn_,
$sel:calculatorName:UpdateRouteCalculatorResponse' :: Text
calculatorName = Text
pCalculatorName_,
$sel:updateTime:UpdateRouteCalculatorResponse' :: ISO8601
updateTime = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pUpdateTime_
}
updateRouteCalculatorResponse_httpStatus :: Lens.Lens' UpdateRouteCalculatorResponse Prelude.Int
updateRouteCalculatorResponse_httpStatus :: Lens' UpdateRouteCalculatorResponse Int
updateRouteCalculatorResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRouteCalculatorResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateRouteCalculatorResponse' :: UpdateRouteCalculatorResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateRouteCalculatorResponse
s@UpdateRouteCalculatorResponse' {} Int
a -> UpdateRouteCalculatorResponse
s {$sel:httpStatus:UpdateRouteCalculatorResponse' :: Int
httpStatus = Int
a} :: UpdateRouteCalculatorResponse)
updateRouteCalculatorResponse_calculatorArn :: Lens.Lens' UpdateRouteCalculatorResponse Prelude.Text
updateRouteCalculatorResponse_calculatorArn :: Lens' UpdateRouteCalculatorResponse Text
updateRouteCalculatorResponse_calculatorArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRouteCalculatorResponse' {Text
calculatorArn :: Text
$sel:calculatorArn:UpdateRouteCalculatorResponse' :: UpdateRouteCalculatorResponse -> Text
calculatorArn} -> Text
calculatorArn) (\s :: UpdateRouteCalculatorResponse
s@UpdateRouteCalculatorResponse' {} Text
a -> UpdateRouteCalculatorResponse
s {$sel:calculatorArn:UpdateRouteCalculatorResponse' :: Text
calculatorArn = Text
a} :: UpdateRouteCalculatorResponse)
updateRouteCalculatorResponse_calculatorName :: Lens.Lens' UpdateRouteCalculatorResponse Prelude.Text
updateRouteCalculatorResponse_calculatorName :: Lens' UpdateRouteCalculatorResponse Text
updateRouteCalculatorResponse_calculatorName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRouteCalculatorResponse' {Text
calculatorName :: Text
$sel:calculatorName:UpdateRouteCalculatorResponse' :: UpdateRouteCalculatorResponse -> Text
calculatorName} -> Text
calculatorName) (\s :: UpdateRouteCalculatorResponse
s@UpdateRouteCalculatorResponse' {} Text
a -> UpdateRouteCalculatorResponse
s {$sel:calculatorName:UpdateRouteCalculatorResponse' :: Text
calculatorName = Text
a} :: UpdateRouteCalculatorResponse)
updateRouteCalculatorResponse_updateTime :: Lens.Lens' UpdateRouteCalculatorResponse Prelude.UTCTime
updateRouteCalculatorResponse_updateTime :: Lens' UpdateRouteCalculatorResponse UTCTime
updateRouteCalculatorResponse_updateTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRouteCalculatorResponse' {ISO8601
updateTime :: ISO8601
$sel:updateTime:UpdateRouteCalculatorResponse' :: UpdateRouteCalculatorResponse -> ISO8601
updateTime} -> ISO8601
updateTime) (\s :: UpdateRouteCalculatorResponse
s@UpdateRouteCalculatorResponse' {} ISO8601
a -> UpdateRouteCalculatorResponse
s {$sel:updateTime:UpdateRouteCalculatorResponse' :: ISO8601
updateTime = ISO8601
a} :: UpdateRouteCalculatorResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
instance Prelude.NFData UpdateRouteCalculatorResponse where
rnf :: UpdateRouteCalculatorResponse -> ()
rnf UpdateRouteCalculatorResponse' {Int
Text
ISO8601
updateTime :: ISO8601
calculatorName :: Text
calculatorArn :: Text
httpStatus :: Int
$sel:updateTime:UpdateRouteCalculatorResponse' :: UpdateRouteCalculatorResponse -> ISO8601
$sel:calculatorName:UpdateRouteCalculatorResponse' :: UpdateRouteCalculatorResponse -> Text
$sel:calculatorArn:UpdateRouteCalculatorResponse' :: UpdateRouteCalculatorResponse -> Text
$sel:httpStatus:UpdateRouteCalculatorResponse' :: UpdateRouteCalculatorResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
calculatorArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
calculatorName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ISO8601
updateTime