{-# 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.IoTSiteWise.CreateAsset
(
CreateAsset (..),
newCreateAsset,
createAsset_assetDescription,
createAsset_clientToken,
createAsset_tags,
createAsset_assetName,
createAsset_assetModelId,
CreateAssetResponse (..),
newCreateAssetResponse,
createAssetResponse_httpStatus,
createAssetResponse_assetId,
createAssetResponse_assetArn,
createAssetResponse_assetStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IoTSiteWise.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateAsset = CreateAsset'
{
CreateAsset -> Maybe Text
assetDescription :: Prelude.Maybe Prelude.Text,
CreateAsset -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
CreateAsset -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
CreateAsset -> Text
assetName :: Prelude.Text,
CreateAsset -> Text
assetModelId :: Prelude.Text
}
deriving (CreateAsset -> CreateAsset -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateAsset -> CreateAsset -> Bool
$c/= :: CreateAsset -> CreateAsset -> Bool
== :: CreateAsset -> CreateAsset -> Bool
$c== :: CreateAsset -> CreateAsset -> Bool
Prelude.Eq, ReadPrec [CreateAsset]
ReadPrec CreateAsset
Int -> ReadS CreateAsset
ReadS [CreateAsset]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateAsset]
$creadListPrec :: ReadPrec [CreateAsset]
readPrec :: ReadPrec CreateAsset
$creadPrec :: ReadPrec CreateAsset
readList :: ReadS [CreateAsset]
$creadList :: ReadS [CreateAsset]
readsPrec :: Int -> ReadS CreateAsset
$creadsPrec :: Int -> ReadS CreateAsset
Prelude.Read, Int -> CreateAsset -> ShowS
[CreateAsset] -> ShowS
CreateAsset -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateAsset] -> ShowS
$cshowList :: [CreateAsset] -> ShowS
show :: CreateAsset -> String
$cshow :: CreateAsset -> String
showsPrec :: Int -> CreateAsset -> ShowS
$cshowsPrec :: Int -> CreateAsset -> ShowS
Prelude.Show, forall x. Rep CreateAsset x -> CreateAsset
forall x. CreateAsset -> Rep CreateAsset x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateAsset x -> CreateAsset
$cfrom :: forall x. CreateAsset -> Rep CreateAsset x
Prelude.Generic)
newCreateAsset ::
Prelude.Text ->
Prelude.Text ->
CreateAsset
newCreateAsset :: Text -> Text -> CreateAsset
newCreateAsset Text
pAssetName_ Text
pAssetModelId_ =
CreateAsset'
{ $sel:assetDescription:CreateAsset' :: Maybe Text
assetDescription = forall a. Maybe a
Prelude.Nothing,
$sel:clientToken:CreateAsset' :: Maybe Text
clientToken = forall a. Maybe a
Prelude.Nothing,
$sel:tags:CreateAsset' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
$sel:assetName:CreateAsset' :: Text
assetName = Text
pAssetName_,
$sel:assetModelId:CreateAsset' :: Text
assetModelId = Text
pAssetModelId_
}
createAsset_assetDescription :: Lens.Lens' CreateAsset (Prelude.Maybe Prelude.Text)
createAsset_assetDescription :: Lens' CreateAsset (Maybe Text)
createAsset_assetDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAsset' {Maybe Text
assetDescription :: Maybe Text
$sel:assetDescription:CreateAsset' :: CreateAsset -> Maybe Text
assetDescription} -> Maybe Text
assetDescription) (\s :: CreateAsset
s@CreateAsset' {} Maybe Text
a -> CreateAsset
s {$sel:assetDescription:CreateAsset' :: Maybe Text
assetDescription = Maybe Text
a} :: CreateAsset)
createAsset_clientToken :: Lens.Lens' CreateAsset (Prelude.Maybe Prelude.Text)
createAsset_clientToken :: Lens' CreateAsset (Maybe Text)
createAsset_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAsset' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:CreateAsset' :: CreateAsset -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: CreateAsset
s@CreateAsset' {} Maybe Text
a -> CreateAsset
s {$sel:clientToken:CreateAsset' :: Maybe Text
clientToken = Maybe Text
a} :: CreateAsset)
createAsset_tags :: Lens.Lens' CreateAsset (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
createAsset_tags :: Lens' CreateAsset (Maybe (HashMap Text Text))
createAsset_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAsset' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:CreateAsset' :: CreateAsset -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: CreateAsset
s@CreateAsset' {} Maybe (HashMap Text Text)
a -> CreateAsset
s {$sel:tags:CreateAsset' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: CreateAsset) 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
createAsset_assetName :: Lens.Lens' CreateAsset Prelude.Text
createAsset_assetName :: Lens' CreateAsset Text
createAsset_assetName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAsset' {Text
assetName :: Text
$sel:assetName:CreateAsset' :: CreateAsset -> Text
assetName} -> Text
assetName) (\s :: CreateAsset
s@CreateAsset' {} Text
a -> CreateAsset
s {$sel:assetName:CreateAsset' :: Text
assetName = Text
a} :: CreateAsset)
createAsset_assetModelId :: Lens.Lens' CreateAsset Prelude.Text
createAsset_assetModelId :: Lens' CreateAsset Text
createAsset_assetModelId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAsset' {Text
assetModelId :: Text
$sel:assetModelId:CreateAsset' :: CreateAsset -> Text
assetModelId} -> Text
assetModelId) (\s :: CreateAsset
s@CreateAsset' {} Text
a -> CreateAsset
s {$sel:assetModelId:CreateAsset' :: Text
assetModelId = Text
a} :: CreateAsset)
instance Core.AWSRequest CreateAsset where
type AWSResponse CreateAsset = CreateAssetResponse
request :: (Service -> Service) -> CreateAsset -> Request CreateAsset
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 CreateAsset
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateAsset)))
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 -> AssetStatus -> CreateAssetResponse
CreateAssetResponse'
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
"assetId")
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
"assetArn")
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
"assetStatus")
)
instance Prelude.Hashable CreateAsset where
hashWithSalt :: Int -> CreateAsset -> Int
hashWithSalt Int
_salt CreateAsset' {Maybe Text
Maybe (HashMap Text Text)
Text
assetModelId :: Text
assetName :: Text
tags :: Maybe (HashMap Text Text)
clientToken :: Maybe Text
assetDescription :: Maybe Text
$sel:assetModelId:CreateAsset' :: CreateAsset -> Text
$sel:assetName:CreateAsset' :: CreateAsset -> Text
$sel:tags:CreateAsset' :: CreateAsset -> Maybe (HashMap Text Text)
$sel:clientToken:CreateAsset' :: CreateAsset -> Maybe Text
$sel:assetDescription:CreateAsset' :: CreateAsset -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
assetDescription
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
assetName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
assetModelId
instance Prelude.NFData CreateAsset where
rnf :: CreateAsset -> ()
rnf CreateAsset' {Maybe Text
Maybe (HashMap Text Text)
Text
assetModelId :: Text
assetName :: Text
tags :: Maybe (HashMap Text Text)
clientToken :: Maybe Text
assetDescription :: Maybe Text
$sel:assetModelId:CreateAsset' :: CreateAsset -> Text
$sel:assetName:CreateAsset' :: CreateAsset -> Text
$sel:tags:CreateAsset' :: CreateAsset -> Maybe (HashMap Text Text)
$sel:clientToken:CreateAsset' :: CreateAsset -> Maybe Text
$sel:assetDescription:CreateAsset' :: CreateAsset -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
assetDescription
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
assetName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
assetModelId
instance Data.ToHeaders CreateAsset where
toHeaders :: CreateAsset -> 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 CreateAsset where
toJSON :: CreateAsset -> Value
toJSON CreateAsset' {Maybe Text
Maybe (HashMap Text Text)
Text
assetModelId :: Text
assetName :: Text
tags :: Maybe (HashMap Text Text)
clientToken :: Maybe Text
assetDescription :: Maybe Text
$sel:assetModelId:CreateAsset' :: CreateAsset -> Text
$sel:assetName:CreateAsset' :: CreateAsset -> Text
$sel:tags:CreateAsset' :: CreateAsset -> Maybe (HashMap Text Text)
$sel:clientToken:CreateAsset' :: CreateAsset -> Maybe Text
$sel:assetDescription:CreateAsset' :: CreateAsset -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"assetDescription" 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
assetDescription,
(Key
"clientToken" 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
clientToken,
(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 (HashMap Text Text)
tags,
forall a. a -> Maybe a
Prelude.Just (Key
"assetName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
assetName),
forall a. a -> Maybe a
Prelude.Just (Key
"assetModelId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
assetModelId)
]
)
instance Data.ToPath CreateAsset where
toPath :: CreateAsset -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/assets"
instance Data.ToQuery CreateAsset where
toQuery :: CreateAsset -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateAssetResponse = CreateAssetResponse'
{
CreateAssetResponse -> Int
httpStatus :: Prelude.Int,
CreateAssetResponse -> Text
assetId :: Prelude.Text,
CreateAssetResponse -> Text
assetArn :: Prelude.Text,
CreateAssetResponse -> AssetStatus
assetStatus :: AssetStatus
}
deriving (CreateAssetResponse -> CreateAssetResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateAssetResponse -> CreateAssetResponse -> Bool
$c/= :: CreateAssetResponse -> CreateAssetResponse -> Bool
== :: CreateAssetResponse -> CreateAssetResponse -> Bool
$c== :: CreateAssetResponse -> CreateAssetResponse -> Bool
Prelude.Eq, ReadPrec [CreateAssetResponse]
ReadPrec CreateAssetResponse
Int -> ReadS CreateAssetResponse
ReadS [CreateAssetResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateAssetResponse]
$creadListPrec :: ReadPrec [CreateAssetResponse]
readPrec :: ReadPrec CreateAssetResponse
$creadPrec :: ReadPrec CreateAssetResponse
readList :: ReadS [CreateAssetResponse]
$creadList :: ReadS [CreateAssetResponse]
readsPrec :: Int -> ReadS CreateAssetResponse
$creadsPrec :: Int -> ReadS CreateAssetResponse
Prelude.Read, Int -> CreateAssetResponse -> ShowS
[CreateAssetResponse] -> ShowS
CreateAssetResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateAssetResponse] -> ShowS
$cshowList :: [CreateAssetResponse] -> ShowS
show :: CreateAssetResponse -> String
$cshow :: CreateAssetResponse -> String
showsPrec :: Int -> CreateAssetResponse -> ShowS
$cshowsPrec :: Int -> CreateAssetResponse -> ShowS
Prelude.Show, forall x. Rep CreateAssetResponse x -> CreateAssetResponse
forall x. CreateAssetResponse -> Rep CreateAssetResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateAssetResponse x -> CreateAssetResponse
$cfrom :: forall x. CreateAssetResponse -> Rep CreateAssetResponse x
Prelude.Generic)
newCreateAssetResponse ::
Prelude.Int ->
Prelude.Text ->
Prelude.Text ->
AssetStatus ->
CreateAssetResponse
newCreateAssetResponse :: Int -> Text -> Text -> AssetStatus -> CreateAssetResponse
newCreateAssetResponse
Int
pHttpStatus_
Text
pAssetId_
Text
pAssetArn_
AssetStatus
pAssetStatus_ =
CreateAssetResponse'
{ $sel:httpStatus:CreateAssetResponse' :: Int
httpStatus = Int
pHttpStatus_,
$sel:assetId:CreateAssetResponse' :: Text
assetId = Text
pAssetId_,
$sel:assetArn:CreateAssetResponse' :: Text
assetArn = Text
pAssetArn_,
$sel:assetStatus:CreateAssetResponse' :: AssetStatus
assetStatus = AssetStatus
pAssetStatus_
}
createAssetResponse_httpStatus :: Lens.Lens' CreateAssetResponse Prelude.Int
createAssetResponse_httpStatus :: Lens' CreateAssetResponse Int
createAssetResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAssetResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateAssetResponse' :: CreateAssetResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateAssetResponse
s@CreateAssetResponse' {} Int
a -> CreateAssetResponse
s {$sel:httpStatus:CreateAssetResponse' :: Int
httpStatus = Int
a} :: CreateAssetResponse)
createAssetResponse_assetId :: Lens.Lens' CreateAssetResponse Prelude.Text
createAssetResponse_assetId :: Lens' CreateAssetResponse Text
createAssetResponse_assetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAssetResponse' {Text
assetId :: Text
$sel:assetId:CreateAssetResponse' :: CreateAssetResponse -> Text
assetId} -> Text
assetId) (\s :: CreateAssetResponse
s@CreateAssetResponse' {} Text
a -> CreateAssetResponse
s {$sel:assetId:CreateAssetResponse' :: Text
assetId = Text
a} :: CreateAssetResponse)
createAssetResponse_assetArn :: Lens.Lens' CreateAssetResponse Prelude.Text
createAssetResponse_assetArn :: Lens' CreateAssetResponse Text
createAssetResponse_assetArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAssetResponse' {Text
assetArn :: Text
$sel:assetArn:CreateAssetResponse' :: CreateAssetResponse -> Text
assetArn} -> Text
assetArn) (\s :: CreateAssetResponse
s@CreateAssetResponse' {} Text
a -> CreateAssetResponse
s {$sel:assetArn:CreateAssetResponse' :: Text
assetArn = Text
a} :: CreateAssetResponse)
createAssetResponse_assetStatus :: Lens.Lens' CreateAssetResponse AssetStatus
createAssetResponse_assetStatus :: Lens' CreateAssetResponse AssetStatus
createAssetResponse_assetStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAssetResponse' {AssetStatus
assetStatus :: AssetStatus
$sel:assetStatus:CreateAssetResponse' :: CreateAssetResponse -> AssetStatus
assetStatus} -> AssetStatus
assetStatus) (\s :: CreateAssetResponse
s@CreateAssetResponse' {} AssetStatus
a -> CreateAssetResponse
s {$sel:assetStatus:CreateAssetResponse' :: AssetStatus
assetStatus = AssetStatus
a} :: CreateAssetResponse)
instance Prelude.NFData CreateAssetResponse where
rnf :: CreateAssetResponse -> ()
rnf CreateAssetResponse' {Int
Text
AssetStatus
assetStatus :: AssetStatus
assetArn :: Text
assetId :: Text
httpStatus :: Int
$sel:assetStatus:CreateAssetResponse' :: CreateAssetResponse -> AssetStatus
$sel:assetArn:CreateAssetResponse' :: CreateAssetResponse -> Text
$sel:assetId:CreateAssetResponse' :: CreateAssetResponse -> Text
$sel:httpStatus:CreateAssetResponse' :: CreateAssetResponse -> 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
assetId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
assetArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf AssetStatus
assetStatus