{-# 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.Forecast.CreateMonitor
(
CreateMonitor (..),
newCreateMonitor,
createMonitor_tags,
createMonitor_monitorName,
createMonitor_resourceArn,
CreateMonitorResponse (..),
newCreateMonitorResponse,
createMonitorResponse_monitorArn,
createMonitorResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Forecast.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateMonitor = CreateMonitor'
{
CreateMonitor -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
CreateMonitor -> Text
monitorName :: Prelude.Text,
CreateMonitor -> Text
resourceArn :: Prelude.Text
}
deriving (CreateMonitor -> CreateMonitor -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateMonitor -> CreateMonitor -> Bool
$c/= :: CreateMonitor -> CreateMonitor -> Bool
== :: CreateMonitor -> CreateMonitor -> Bool
$c== :: CreateMonitor -> CreateMonitor -> Bool
Prelude.Eq, Int -> CreateMonitor -> ShowS
[CreateMonitor] -> ShowS
CreateMonitor -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateMonitor] -> ShowS
$cshowList :: [CreateMonitor] -> ShowS
show :: CreateMonitor -> String
$cshow :: CreateMonitor -> String
showsPrec :: Int -> CreateMonitor -> ShowS
$cshowsPrec :: Int -> CreateMonitor -> ShowS
Prelude.Show, forall x. Rep CreateMonitor x -> CreateMonitor
forall x. CreateMonitor -> Rep CreateMonitor x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateMonitor x -> CreateMonitor
$cfrom :: forall x. CreateMonitor -> Rep CreateMonitor x
Prelude.Generic)
newCreateMonitor ::
Prelude.Text ->
Prelude.Text ->
CreateMonitor
newCreateMonitor :: Text -> Text -> CreateMonitor
newCreateMonitor Text
pMonitorName_ Text
pResourceArn_ =
CreateMonitor'
{ $sel:tags:CreateMonitor' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
$sel:monitorName:CreateMonitor' :: Text
monitorName = Text
pMonitorName_,
$sel:resourceArn:CreateMonitor' :: Text
resourceArn = Text
pResourceArn_
}
createMonitor_tags :: Lens.Lens' CreateMonitor (Prelude.Maybe [Tag])
createMonitor_tags :: Lens' CreateMonitor (Maybe [Tag])
createMonitor_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMonitor' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:CreateMonitor' :: CreateMonitor -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: CreateMonitor
s@CreateMonitor' {} Maybe [Tag]
a -> CreateMonitor
s {$sel:tags:CreateMonitor' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: CreateMonitor) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
createMonitor_monitorName :: Lens.Lens' CreateMonitor Prelude.Text
createMonitor_monitorName :: Lens' CreateMonitor Text
createMonitor_monitorName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMonitor' {Text
monitorName :: Text
$sel:monitorName:CreateMonitor' :: CreateMonitor -> Text
monitorName} -> Text
monitorName) (\s :: CreateMonitor
s@CreateMonitor' {} Text
a -> CreateMonitor
s {$sel:monitorName:CreateMonitor' :: Text
monitorName = Text
a} :: CreateMonitor)
createMonitor_resourceArn :: Lens.Lens' CreateMonitor Prelude.Text
createMonitor_resourceArn :: Lens' CreateMonitor Text
createMonitor_resourceArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMonitor' {Text
resourceArn :: Text
$sel:resourceArn:CreateMonitor' :: CreateMonitor -> Text
resourceArn} -> Text
resourceArn) (\s :: CreateMonitor
s@CreateMonitor' {} Text
a -> CreateMonitor
s {$sel:resourceArn:CreateMonitor' :: Text
resourceArn = Text
a} :: CreateMonitor)
instance Core.AWSRequest CreateMonitor where
type
AWSResponse CreateMonitor =
CreateMonitorResponse
request :: (Service -> Service) -> CreateMonitor -> Request CreateMonitor
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateMonitor
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateMonitor)))
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 ->
Maybe Text -> Int -> CreateMonitorResponse
CreateMonitorResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"MonitorArn")
forall (f :: * -> *) a b. Applicative f => 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))
)
instance Prelude.Hashable CreateMonitor where
hashWithSalt :: Int -> CreateMonitor -> Int
hashWithSalt Int
_salt CreateMonitor' {Maybe [Tag]
Text
resourceArn :: Text
monitorName :: Text
tags :: Maybe [Tag]
$sel:resourceArn:CreateMonitor' :: CreateMonitor -> Text
$sel:monitorName:CreateMonitor' :: CreateMonitor -> Text
$sel:tags:CreateMonitor' :: CreateMonitor -> Maybe [Tag]
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
monitorName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
resourceArn
instance Prelude.NFData CreateMonitor where
rnf :: CreateMonitor -> ()
rnf CreateMonitor' {Maybe [Tag]
Text
resourceArn :: Text
monitorName :: Text
tags :: Maybe [Tag]
$sel:resourceArn:CreateMonitor' :: CreateMonitor -> Text
$sel:monitorName:CreateMonitor' :: CreateMonitor -> Text
$sel:tags:CreateMonitor' :: CreateMonitor -> Maybe [Tag]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
monitorName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
resourceArn
instance Data.ToHeaders CreateMonitor where
toHeaders :: CreateMonitor -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"AmazonForecast.CreateMonitor" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON CreateMonitor where
toJSON :: CreateMonitor -> Value
toJSON CreateMonitor' {Maybe [Tag]
Text
resourceArn :: Text
monitorName :: Text
tags :: Maybe [Tag]
$sel:resourceArn:CreateMonitor' :: CreateMonitor -> Text
$sel:monitorName:CreateMonitor' :: CreateMonitor -> Text
$sel:tags:CreateMonitor' :: CreateMonitor -> Maybe [Tag]
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"Tags" 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 [Tag]
tags,
forall a. a -> Maybe a
Prelude.Just (Key
"MonitorName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
monitorName),
forall a. a -> Maybe a
Prelude.Just (Key
"ResourceArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
resourceArn)
]
)
instance Data.ToPath CreateMonitor where
toPath :: CreateMonitor -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateMonitor where
toQuery :: CreateMonitor -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateMonitorResponse = CreateMonitorResponse'
{
CreateMonitorResponse -> Maybe Text
monitorArn :: Prelude.Maybe Prelude.Text,
CreateMonitorResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateMonitorResponse -> CreateMonitorResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateMonitorResponse -> CreateMonitorResponse -> Bool
$c/= :: CreateMonitorResponse -> CreateMonitorResponse -> Bool
== :: CreateMonitorResponse -> CreateMonitorResponse -> Bool
$c== :: CreateMonitorResponse -> CreateMonitorResponse -> Bool
Prelude.Eq, ReadPrec [CreateMonitorResponse]
ReadPrec CreateMonitorResponse
Int -> ReadS CreateMonitorResponse
ReadS [CreateMonitorResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateMonitorResponse]
$creadListPrec :: ReadPrec [CreateMonitorResponse]
readPrec :: ReadPrec CreateMonitorResponse
$creadPrec :: ReadPrec CreateMonitorResponse
readList :: ReadS [CreateMonitorResponse]
$creadList :: ReadS [CreateMonitorResponse]
readsPrec :: Int -> ReadS CreateMonitorResponse
$creadsPrec :: Int -> ReadS CreateMonitorResponse
Prelude.Read, Int -> CreateMonitorResponse -> ShowS
[CreateMonitorResponse] -> ShowS
CreateMonitorResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateMonitorResponse] -> ShowS
$cshowList :: [CreateMonitorResponse] -> ShowS
show :: CreateMonitorResponse -> String
$cshow :: CreateMonitorResponse -> String
showsPrec :: Int -> CreateMonitorResponse -> ShowS
$cshowsPrec :: Int -> CreateMonitorResponse -> ShowS
Prelude.Show, forall x. Rep CreateMonitorResponse x -> CreateMonitorResponse
forall x. CreateMonitorResponse -> Rep CreateMonitorResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateMonitorResponse x -> CreateMonitorResponse
$cfrom :: forall x. CreateMonitorResponse -> Rep CreateMonitorResponse x
Prelude.Generic)
newCreateMonitorResponse ::
Prelude.Int ->
CreateMonitorResponse
newCreateMonitorResponse :: Int -> CreateMonitorResponse
newCreateMonitorResponse Int
pHttpStatus_ =
CreateMonitorResponse'
{ $sel:monitorArn:CreateMonitorResponse' :: Maybe Text
monitorArn =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateMonitorResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createMonitorResponse_monitorArn :: Lens.Lens' CreateMonitorResponse (Prelude.Maybe Prelude.Text)
createMonitorResponse_monitorArn :: Lens' CreateMonitorResponse (Maybe Text)
createMonitorResponse_monitorArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMonitorResponse' {Maybe Text
monitorArn :: Maybe Text
$sel:monitorArn:CreateMonitorResponse' :: CreateMonitorResponse -> Maybe Text
monitorArn} -> Maybe Text
monitorArn) (\s :: CreateMonitorResponse
s@CreateMonitorResponse' {} Maybe Text
a -> CreateMonitorResponse
s {$sel:monitorArn:CreateMonitorResponse' :: Maybe Text
monitorArn = Maybe Text
a} :: CreateMonitorResponse)
createMonitorResponse_httpStatus :: Lens.Lens' CreateMonitorResponse Prelude.Int
createMonitorResponse_httpStatus :: Lens' CreateMonitorResponse Int
createMonitorResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMonitorResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateMonitorResponse' :: CreateMonitorResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateMonitorResponse
s@CreateMonitorResponse' {} Int
a -> CreateMonitorResponse
s {$sel:httpStatus:CreateMonitorResponse' :: Int
httpStatus = Int
a} :: CreateMonitorResponse)
instance Prelude.NFData CreateMonitorResponse where
rnf :: CreateMonitorResponse -> ()
rnf CreateMonitorResponse' {Int
Maybe Text
httpStatus :: Int
monitorArn :: Maybe Text
$sel:httpStatus:CreateMonitorResponse' :: CreateMonitorResponse -> Int
$sel:monitorArn:CreateMonitorResponse' :: CreateMonitorResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
monitorArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus