{-# 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.IoT.DescribeDimension
(
DescribeDimension (..),
newDescribeDimension,
describeDimension_name,
DescribeDimensionResponse (..),
newDescribeDimensionResponse,
describeDimensionResponse_arn,
describeDimensionResponse_creationDate,
describeDimensionResponse_lastModifiedDate,
describeDimensionResponse_name,
describeDimensionResponse_stringValues,
describeDimensionResponse_type,
describeDimensionResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IoT.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data DescribeDimension = DescribeDimension'
{
DescribeDimension -> Text
name :: Prelude.Text
}
deriving (DescribeDimension -> DescribeDimension -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeDimension -> DescribeDimension -> Bool
$c/= :: DescribeDimension -> DescribeDimension -> Bool
== :: DescribeDimension -> DescribeDimension -> Bool
$c== :: DescribeDimension -> DescribeDimension -> Bool
Prelude.Eq, ReadPrec [DescribeDimension]
ReadPrec DescribeDimension
Int -> ReadS DescribeDimension
ReadS [DescribeDimension]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeDimension]
$creadListPrec :: ReadPrec [DescribeDimension]
readPrec :: ReadPrec DescribeDimension
$creadPrec :: ReadPrec DescribeDimension
readList :: ReadS [DescribeDimension]
$creadList :: ReadS [DescribeDimension]
readsPrec :: Int -> ReadS DescribeDimension
$creadsPrec :: Int -> ReadS DescribeDimension
Prelude.Read, Int -> DescribeDimension -> ShowS
[DescribeDimension] -> ShowS
DescribeDimension -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeDimension] -> ShowS
$cshowList :: [DescribeDimension] -> ShowS
show :: DescribeDimension -> String
$cshow :: DescribeDimension -> String
showsPrec :: Int -> DescribeDimension -> ShowS
$cshowsPrec :: Int -> DescribeDimension -> ShowS
Prelude.Show, forall x. Rep DescribeDimension x -> DescribeDimension
forall x. DescribeDimension -> Rep DescribeDimension x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeDimension x -> DescribeDimension
$cfrom :: forall x. DescribeDimension -> Rep DescribeDimension x
Prelude.Generic)
newDescribeDimension ::
Prelude.Text ->
DescribeDimension
newDescribeDimension :: Text -> DescribeDimension
newDescribeDimension Text
pName_ =
DescribeDimension' {$sel:name:DescribeDimension' :: Text
name = Text
pName_}
describeDimension_name :: Lens.Lens' DescribeDimension Prelude.Text
describeDimension_name :: Lens' DescribeDimension Text
describeDimension_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDimension' {Text
name :: Text
$sel:name:DescribeDimension' :: DescribeDimension -> Text
name} -> Text
name) (\s :: DescribeDimension
s@DescribeDimension' {} Text
a -> DescribeDimension
s {$sel:name:DescribeDimension' :: Text
name = Text
a} :: DescribeDimension)
instance Core.AWSRequest DescribeDimension where
type
AWSResponse DescribeDimension =
DescribeDimensionResponse
request :: (Service -> Service)
-> DescribeDimension -> Request DescribeDimension
request Service -> Service
overrides =
forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeDimension
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse DescribeDimension)))
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
-> Maybe POSIX
-> Maybe POSIX
-> Maybe Text
-> Maybe (NonEmpty Text)
-> Maybe DimensionType
-> Int
-> DescribeDimensionResponse
DescribeDimensionResponse'
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
"arn")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"creationDate")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"lastModifiedDate")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"name")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"stringValues")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"type")
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 DescribeDimension where
hashWithSalt :: Int -> DescribeDimension -> Int
hashWithSalt Int
_salt DescribeDimension' {Text
name :: Text
$sel:name:DescribeDimension' :: DescribeDimension -> Text
..} =
Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
instance Prelude.NFData DescribeDimension where
rnf :: DescribeDimension -> ()
rnf DescribeDimension' {Text
name :: Text
$sel:name:DescribeDimension' :: DescribeDimension -> Text
..} = forall a. NFData a => a -> ()
Prelude.rnf Text
name
instance Data.ToHeaders DescribeDimension where
toHeaders :: DescribeDimension -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToPath DescribeDimension where
toPath :: DescribeDimension -> ByteString
toPath DescribeDimension' {Text
name :: Text
$sel:name:DescribeDimension' :: DescribeDimension -> Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"/dimensions/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
name]
instance Data.ToQuery DescribeDimension where
toQuery :: DescribeDimension -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data DescribeDimensionResponse = DescribeDimensionResponse'
{
DescribeDimensionResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
DescribeDimensionResponse -> Maybe POSIX
creationDate :: Prelude.Maybe Data.POSIX,
DescribeDimensionResponse -> Maybe POSIX
lastModifiedDate :: Prelude.Maybe Data.POSIX,
DescribeDimensionResponse -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
DescribeDimensionResponse -> Maybe (NonEmpty Text)
stringValues :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
DescribeDimensionResponse -> Maybe DimensionType
type' :: Prelude.Maybe DimensionType,
DescribeDimensionResponse -> Int
httpStatus :: Prelude.Int
}
deriving (DescribeDimensionResponse -> DescribeDimensionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeDimensionResponse -> DescribeDimensionResponse -> Bool
$c/= :: DescribeDimensionResponse -> DescribeDimensionResponse -> Bool
== :: DescribeDimensionResponse -> DescribeDimensionResponse -> Bool
$c== :: DescribeDimensionResponse -> DescribeDimensionResponse -> Bool
Prelude.Eq, ReadPrec [DescribeDimensionResponse]
ReadPrec DescribeDimensionResponse
Int -> ReadS DescribeDimensionResponse
ReadS [DescribeDimensionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeDimensionResponse]
$creadListPrec :: ReadPrec [DescribeDimensionResponse]
readPrec :: ReadPrec DescribeDimensionResponse
$creadPrec :: ReadPrec DescribeDimensionResponse
readList :: ReadS [DescribeDimensionResponse]
$creadList :: ReadS [DescribeDimensionResponse]
readsPrec :: Int -> ReadS DescribeDimensionResponse
$creadsPrec :: Int -> ReadS DescribeDimensionResponse
Prelude.Read, Int -> DescribeDimensionResponse -> ShowS
[DescribeDimensionResponse] -> ShowS
DescribeDimensionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeDimensionResponse] -> ShowS
$cshowList :: [DescribeDimensionResponse] -> ShowS
show :: DescribeDimensionResponse -> String
$cshow :: DescribeDimensionResponse -> String
showsPrec :: Int -> DescribeDimensionResponse -> ShowS
$cshowsPrec :: Int -> DescribeDimensionResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeDimensionResponse x -> DescribeDimensionResponse
forall x.
DescribeDimensionResponse -> Rep DescribeDimensionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeDimensionResponse x -> DescribeDimensionResponse
$cfrom :: forall x.
DescribeDimensionResponse -> Rep DescribeDimensionResponse x
Prelude.Generic)
newDescribeDimensionResponse ::
Prelude.Int ->
DescribeDimensionResponse
newDescribeDimensionResponse :: Int -> DescribeDimensionResponse
newDescribeDimensionResponse Int
pHttpStatus_ =
DescribeDimensionResponse'
{ $sel:arn:DescribeDimensionResponse' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
$sel:creationDate:DescribeDimensionResponse' :: Maybe POSIX
creationDate = forall a. Maybe a
Prelude.Nothing,
$sel:lastModifiedDate:DescribeDimensionResponse' :: Maybe POSIX
lastModifiedDate = forall a. Maybe a
Prelude.Nothing,
$sel:name:DescribeDimensionResponse' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
$sel:stringValues:DescribeDimensionResponse' :: Maybe (NonEmpty Text)
stringValues = forall a. Maybe a
Prelude.Nothing,
$sel:type':DescribeDimensionResponse' :: Maybe DimensionType
type' = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:DescribeDimensionResponse' :: Int
httpStatus = Int
pHttpStatus_
}
describeDimensionResponse_arn :: Lens.Lens' DescribeDimensionResponse (Prelude.Maybe Prelude.Text)
describeDimensionResponse_arn :: Lens' DescribeDimensionResponse (Maybe Text)
describeDimensionResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDimensionResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:DescribeDimensionResponse' :: DescribeDimensionResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: DescribeDimensionResponse
s@DescribeDimensionResponse' {} Maybe Text
a -> DescribeDimensionResponse
s {$sel:arn:DescribeDimensionResponse' :: Maybe Text
arn = Maybe Text
a} :: DescribeDimensionResponse)
describeDimensionResponse_creationDate :: Lens.Lens' DescribeDimensionResponse (Prelude.Maybe Prelude.UTCTime)
describeDimensionResponse_creationDate :: Lens' DescribeDimensionResponse (Maybe UTCTime)
describeDimensionResponse_creationDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDimensionResponse' {Maybe POSIX
creationDate :: Maybe POSIX
$sel:creationDate:DescribeDimensionResponse' :: DescribeDimensionResponse -> Maybe POSIX
creationDate} -> Maybe POSIX
creationDate) (\s :: DescribeDimensionResponse
s@DescribeDimensionResponse' {} Maybe POSIX
a -> DescribeDimensionResponse
s {$sel:creationDate:DescribeDimensionResponse' :: Maybe POSIX
creationDate = Maybe POSIX
a} :: DescribeDimensionResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time
describeDimensionResponse_lastModifiedDate :: Lens.Lens' DescribeDimensionResponse (Prelude.Maybe Prelude.UTCTime)
describeDimensionResponse_lastModifiedDate :: Lens' DescribeDimensionResponse (Maybe UTCTime)
describeDimensionResponse_lastModifiedDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDimensionResponse' {Maybe POSIX
lastModifiedDate :: Maybe POSIX
$sel:lastModifiedDate:DescribeDimensionResponse' :: DescribeDimensionResponse -> Maybe POSIX
lastModifiedDate} -> Maybe POSIX
lastModifiedDate) (\s :: DescribeDimensionResponse
s@DescribeDimensionResponse' {} Maybe POSIX
a -> DescribeDimensionResponse
s {$sel:lastModifiedDate:DescribeDimensionResponse' :: Maybe POSIX
lastModifiedDate = Maybe POSIX
a} :: DescribeDimensionResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time
describeDimensionResponse_name :: Lens.Lens' DescribeDimensionResponse (Prelude.Maybe Prelude.Text)
describeDimensionResponse_name :: Lens' DescribeDimensionResponse (Maybe Text)
describeDimensionResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDimensionResponse' {Maybe Text
name :: Maybe Text
$sel:name:DescribeDimensionResponse' :: DescribeDimensionResponse -> Maybe Text
name} -> Maybe Text
name) (\s :: DescribeDimensionResponse
s@DescribeDimensionResponse' {} Maybe Text
a -> DescribeDimensionResponse
s {$sel:name:DescribeDimensionResponse' :: Maybe Text
name = Maybe Text
a} :: DescribeDimensionResponse)
describeDimensionResponse_stringValues :: Lens.Lens' DescribeDimensionResponse (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
describeDimensionResponse_stringValues :: Lens' DescribeDimensionResponse (Maybe (NonEmpty Text))
describeDimensionResponse_stringValues = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDimensionResponse' {Maybe (NonEmpty Text)
stringValues :: Maybe (NonEmpty Text)
$sel:stringValues:DescribeDimensionResponse' :: DescribeDimensionResponse -> Maybe (NonEmpty Text)
stringValues} -> Maybe (NonEmpty Text)
stringValues) (\s :: DescribeDimensionResponse
s@DescribeDimensionResponse' {} Maybe (NonEmpty Text)
a -> DescribeDimensionResponse
s {$sel:stringValues:DescribeDimensionResponse' :: Maybe (NonEmpty Text)
stringValues = Maybe (NonEmpty Text)
a} :: DescribeDimensionResponse) 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
describeDimensionResponse_type :: Lens.Lens' DescribeDimensionResponse (Prelude.Maybe DimensionType)
describeDimensionResponse_type :: Lens' DescribeDimensionResponse (Maybe DimensionType)
describeDimensionResponse_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDimensionResponse' {Maybe DimensionType
type' :: Maybe DimensionType
$sel:type':DescribeDimensionResponse' :: DescribeDimensionResponse -> Maybe DimensionType
type'} -> Maybe DimensionType
type') (\s :: DescribeDimensionResponse
s@DescribeDimensionResponse' {} Maybe DimensionType
a -> DescribeDimensionResponse
s {$sel:type':DescribeDimensionResponse' :: Maybe DimensionType
type' = Maybe DimensionType
a} :: DescribeDimensionResponse)
describeDimensionResponse_httpStatus :: Lens.Lens' DescribeDimensionResponse Prelude.Int
describeDimensionResponse_httpStatus :: Lens' DescribeDimensionResponse Int
describeDimensionResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDimensionResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeDimensionResponse' :: DescribeDimensionResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeDimensionResponse
s@DescribeDimensionResponse' {} Int
a -> DescribeDimensionResponse
s {$sel:httpStatus:DescribeDimensionResponse' :: Int
httpStatus = Int
a} :: DescribeDimensionResponse)
instance Prelude.NFData DescribeDimensionResponse where
rnf :: DescribeDimensionResponse -> ()
rnf DescribeDimensionResponse' {Int
Maybe (NonEmpty Text)
Maybe Text
Maybe POSIX
Maybe DimensionType
httpStatus :: Int
type' :: Maybe DimensionType
stringValues :: Maybe (NonEmpty Text)
name :: Maybe Text
lastModifiedDate :: Maybe POSIX
creationDate :: Maybe POSIX
arn :: Maybe Text
$sel:httpStatus:DescribeDimensionResponse' :: DescribeDimensionResponse -> Int
$sel:type':DescribeDimensionResponse' :: DescribeDimensionResponse -> Maybe DimensionType
$sel:stringValues:DescribeDimensionResponse' :: DescribeDimensionResponse -> Maybe (NonEmpty Text)
$sel:name:DescribeDimensionResponse' :: DescribeDimensionResponse -> Maybe Text
$sel:lastModifiedDate:DescribeDimensionResponse' :: DescribeDimensionResponse -> Maybe POSIX
$sel:creationDate:DescribeDimensionResponse' :: DescribeDimensionResponse -> Maybe POSIX
$sel:arn:DescribeDimensionResponse' :: DescribeDimensionResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationDate
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModifiedDate
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Text)
stringValues
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DimensionType
type'
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus