{-# 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.SSM.DescribeDocument
(
DescribeDocument (..),
newDescribeDocument,
describeDocument_documentVersion,
describeDocument_versionName,
describeDocument_name,
DescribeDocumentResponse (..),
newDescribeDocumentResponse,
describeDocumentResponse_document,
describeDocumentResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.SSM.Types
data DescribeDocument = DescribeDocument'
{
DescribeDocument -> Maybe Text
documentVersion :: Prelude.Maybe Prelude.Text,
DescribeDocument -> Maybe Text
versionName :: Prelude.Maybe Prelude.Text,
DescribeDocument -> Text
name :: Prelude.Text
}
deriving (DescribeDocument -> DescribeDocument -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeDocument -> DescribeDocument -> Bool
$c/= :: DescribeDocument -> DescribeDocument -> Bool
== :: DescribeDocument -> DescribeDocument -> Bool
$c== :: DescribeDocument -> DescribeDocument -> Bool
Prelude.Eq, ReadPrec [DescribeDocument]
ReadPrec DescribeDocument
Int -> ReadS DescribeDocument
ReadS [DescribeDocument]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeDocument]
$creadListPrec :: ReadPrec [DescribeDocument]
readPrec :: ReadPrec DescribeDocument
$creadPrec :: ReadPrec DescribeDocument
readList :: ReadS [DescribeDocument]
$creadList :: ReadS [DescribeDocument]
readsPrec :: Int -> ReadS DescribeDocument
$creadsPrec :: Int -> ReadS DescribeDocument
Prelude.Read, Int -> DescribeDocument -> ShowS
[DescribeDocument] -> ShowS
DescribeDocument -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeDocument] -> ShowS
$cshowList :: [DescribeDocument] -> ShowS
show :: DescribeDocument -> String
$cshow :: DescribeDocument -> String
showsPrec :: Int -> DescribeDocument -> ShowS
$cshowsPrec :: Int -> DescribeDocument -> ShowS
Prelude.Show, forall x. Rep DescribeDocument x -> DescribeDocument
forall x. DescribeDocument -> Rep DescribeDocument x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeDocument x -> DescribeDocument
$cfrom :: forall x. DescribeDocument -> Rep DescribeDocument x
Prelude.Generic)
newDescribeDocument ::
Prelude.Text ->
DescribeDocument
newDescribeDocument :: Text -> DescribeDocument
newDescribeDocument Text
pName_ =
DescribeDocument'
{ $sel:documentVersion:DescribeDocument' :: Maybe Text
documentVersion =
forall a. Maybe a
Prelude.Nothing,
$sel:versionName:DescribeDocument' :: Maybe Text
versionName = forall a. Maybe a
Prelude.Nothing,
$sel:name:DescribeDocument' :: Text
name = Text
pName_
}
describeDocument_documentVersion :: Lens.Lens' DescribeDocument (Prelude.Maybe Prelude.Text)
describeDocument_documentVersion :: Lens' DescribeDocument (Maybe Text)
describeDocument_documentVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDocument' {Maybe Text
documentVersion :: Maybe Text
$sel:documentVersion:DescribeDocument' :: DescribeDocument -> Maybe Text
documentVersion} -> Maybe Text
documentVersion) (\s :: DescribeDocument
s@DescribeDocument' {} Maybe Text
a -> DescribeDocument
s {$sel:documentVersion:DescribeDocument' :: Maybe Text
documentVersion = Maybe Text
a} :: DescribeDocument)
describeDocument_versionName :: Lens.Lens' DescribeDocument (Prelude.Maybe Prelude.Text)
describeDocument_versionName :: Lens' DescribeDocument (Maybe Text)
describeDocument_versionName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDocument' {Maybe Text
versionName :: Maybe Text
$sel:versionName:DescribeDocument' :: DescribeDocument -> Maybe Text
versionName} -> Maybe Text
versionName) (\s :: DescribeDocument
s@DescribeDocument' {} Maybe Text
a -> DescribeDocument
s {$sel:versionName:DescribeDocument' :: Maybe Text
versionName = Maybe Text
a} :: DescribeDocument)
describeDocument_name :: Lens.Lens' DescribeDocument Prelude.Text
describeDocument_name :: Lens' DescribeDocument Text
describeDocument_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDocument' {Text
name :: Text
$sel:name:DescribeDocument' :: DescribeDocument -> Text
name} -> Text
name) (\s :: DescribeDocument
s@DescribeDocument' {} Text
a -> DescribeDocument
s {$sel:name:DescribeDocument' :: Text
name = Text
a} :: DescribeDocument)
instance Core.AWSRequest DescribeDocument where
type
AWSResponse DescribeDocument =
DescribeDocumentResponse
request :: (Service -> Service)
-> DescribeDocument -> Request DescribeDocument
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 DescribeDocument
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeDocument)))
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 DocumentDescription -> Int -> DescribeDocumentResponse
DescribeDocumentResponse'
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
"Document")
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 DescribeDocument where
hashWithSalt :: Int -> DescribeDocument -> Int
hashWithSalt Int
_salt DescribeDocument' {Maybe Text
Text
name :: Text
versionName :: Maybe Text
documentVersion :: Maybe Text
$sel:name:DescribeDocument' :: DescribeDocument -> Text
$sel:versionName:DescribeDocument' :: DescribeDocument -> Maybe Text
$sel:documentVersion:DescribeDocument' :: DescribeDocument -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
documentVersion
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
versionName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
instance Prelude.NFData DescribeDocument where
rnf :: DescribeDocument -> ()
rnf DescribeDocument' {Maybe Text
Text
name :: Text
versionName :: Maybe Text
documentVersion :: Maybe Text
$sel:name:DescribeDocument' :: DescribeDocument -> Text
$sel:versionName:DescribeDocument' :: DescribeDocument -> Maybe Text
$sel:documentVersion:DescribeDocument' :: DescribeDocument -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
documentVersion
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
versionName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name
instance Data.ToHeaders DescribeDocument where
toHeaders :: DescribeDocument -> 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
"AmazonSSM.DescribeDocument" :: 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 DescribeDocument where
toJSON :: DescribeDocument -> Value
toJSON DescribeDocument' {Maybe Text
Text
name :: Text
versionName :: Maybe Text
documentVersion :: Maybe Text
$sel:name:DescribeDocument' :: DescribeDocument -> Text
$sel:versionName:DescribeDocument' :: DescribeDocument -> Maybe Text
$sel:documentVersion:DescribeDocument' :: DescribeDocument -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"DocumentVersion" 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
documentVersion,
(Key
"VersionName" 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
versionName,
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 DescribeDocument where
toPath :: DescribeDocument -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery DescribeDocument where
toQuery :: DescribeDocument -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data DescribeDocumentResponse = DescribeDocumentResponse'
{
DescribeDocumentResponse -> Maybe DocumentDescription
document :: Prelude.Maybe DocumentDescription,
DescribeDocumentResponse -> Int
httpStatus :: Prelude.Int
}
deriving (DescribeDocumentResponse -> DescribeDocumentResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeDocumentResponse -> DescribeDocumentResponse -> Bool
$c/= :: DescribeDocumentResponse -> DescribeDocumentResponse -> Bool
== :: DescribeDocumentResponse -> DescribeDocumentResponse -> Bool
$c== :: DescribeDocumentResponse -> DescribeDocumentResponse -> Bool
Prelude.Eq, ReadPrec [DescribeDocumentResponse]
ReadPrec DescribeDocumentResponse
Int -> ReadS DescribeDocumentResponse
ReadS [DescribeDocumentResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeDocumentResponse]
$creadListPrec :: ReadPrec [DescribeDocumentResponse]
readPrec :: ReadPrec DescribeDocumentResponse
$creadPrec :: ReadPrec DescribeDocumentResponse
readList :: ReadS [DescribeDocumentResponse]
$creadList :: ReadS [DescribeDocumentResponse]
readsPrec :: Int -> ReadS DescribeDocumentResponse
$creadsPrec :: Int -> ReadS DescribeDocumentResponse
Prelude.Read, Int -> DescribeDocumentResponse -> ShowS
[DescribeDocumentResponse] -> ShowS
DescribeDocumentResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeDocumentResponse] -> ShowS
$cshowList :: [DescribeDocumentResponse] -> ShowS
show :: DescribeDocumentResponse -> String
$cshow :: DescribeDocumentResponse -> String
showsPrec :: Int -> DescribeDocumentResponse -> ShowS
$cshowsPrec :: Int -> DescribeDocumentResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeDocumentResponse x -> DescribeDocumentResponse
forall x.
DescribeDocumentResponse -> Rep DescribeDocumentResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeDocumentResponse x -> DescribeDocumentResponse
$cfrom :: forall x.
DescribeDocumentResponse -> Rep DescribeDocumentResponse x
Prelude.Generic)
newDescribeDocumentResponse ::
Prelude.Int ->
DescribeDocumentResponse
newDescribeDocumentResponse :: Int -> DescribeDocumentResponse
newDescribeDocumentResponse Int
pHttpStatus_ =
DescribeDocumentResponse'
{ $sel:document:DescribeDocumentResponse' :: Maybe DocumentDescription
document =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:DescribeDocumentResponse' :: Int
httpStatus = Int
pHttpStatus_
}
describeDocumentResponse_document :: Lens.Lens' DescribeDocumentResponse (Prelude.Maybe DocumentDescription)
describeDocumentResponse_document :: Lens' DescribeDocumentResponse (Maybe DocumentDescription)
describeDocumentResponse_document = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDocumentResponse' {Maybe DocumentDescription
document :: Maybe DocumentDescription
$sel:document:DescribeDocumentResponse' :: DescribeDocumentResponse -> Maybe DocumentDescription
document} -> Maybe DocumentDescription
document) (\s :: DescribeDocumentResponse
s@DescribeDocumentResponse' {} Maybe DocumentDescription
a -> DescribeDocumentResponse
s {$sel:document:DescribeDocumentResponse' :: Maybe DocumentDescription
document = Maybe DocumentDescription
a} :: DescribeDocumentResponse)
describeDocumentResponse_httpStatus :: Lens.Lens' DescribeDocumentResponse Prelude.Int
describeDocumentResponse_httpStatus :: Lens' DescribeDocumentResponse Int
describeDocumentResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDocumentResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeDocumentResponse' :: DescribeDocumentResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeDocumentResponse
s@DescribeDocumentResponse' {} Int
a -> DescribeDocumentResponse
s {$sel:httpStatus:DescribeDocumentResponse' :: Int
httpStatus = Int
a} :: DescribeDocumentResponse)
instance Prelude.NFData DescribeDocumentResponse where
rnf :: DescribeDocumentResponse -> ()
rnf DescribeDocumentResponse' {Int
Maybe DocumentDescription
httpStatus :: Int
document :: Maybe DocumentDescription
$sel:httpStatus:DescribeDocumentResponse' :: DescribeDocumentResponse -> Int
$sel:document:DescribeDocumentResponse' :: DescribeDocumentResponse -> Maybe DocumentDescription
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe DocumentDescription
document
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus