{-# 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.ResourceGroupsTagging.GetTagKeys
(
GetTagKeys (..),
newGetTagKeys,
getTagKeys_paginationToken,
GetTagKeysResponse (..),
newGetTagKeysResponse,
getTagKeysResponse_paginationToken,
getTagKeysResponse_tagKeys,
getTagKeysResponse_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 Amazonka.ResourceGroupsTagging.Types
import qualified Amazonka.Response as Response
data GetTagKeys = GetTagKeys'
{
:: Prelude.Maybe Prelude.Text
}
deriving (GetTagKeys -> GetTagKeys -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetTagKeys -> GetTagKeys -> Bool
$c/= :: GetTagKeys -> GetTagKeys -> Bool
== :: GetTagKeys -> GetTagKeys -> Bool
$c== :: GetTagKeys -> GetTagKeys -> Bool
Prelude.Eq, ReadPrec [GetTagKeys]
ReadPrec GetTagKeys
Int -> ReadS GetTagKeys
ReadS [GetTagKeys]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetTagKeys]
$creadListPrec :: ReadPrec [GetTagKeys]
readPrec :: ReadPrec GetTagKeys
$creadPrec :: ReadPrec GetTagKeys
readList :: ReadS [GetTagKeys]
$creadList :: ReadS [GetTagKeys]
readsPrec :: Int -> ReadS GetTagKeys
$creadsPrec :: Int -> ReadS GetTagKeys
Prelude.Read, Int -> GetTagKeys -> ShowS
[GetTagKeys] -> ShowS
GetTagKeys -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetTagKeys] -> ShowS
$cshowList :: [GetTagKeys] -> ShowS
show :: GetTagKeys -> String
$cshow :: GetTagKeys -> String
showsPrec :: Int -> GetTagKeys -> ShowS
$cshowsPrec :: Int -> GetTagKeys -> ShowS
Prelude.Show, forall x. Rep GetTagKeys x -> GetTagKeys
forall x. GetTagKeys -> Rep GetTagKeys x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetTagKeys x -> GetTagKeys
$cfrom :: forall x. GetTagKeys -> Rep GetTagKeys x
Prelude.Generic)
newGetTagKeys ::
GetTagKeys
newGetTagKeys :: GetTagKeys
newGetTagKeys =
GetTagKeys' {$sel:paginationToken:GetTagKeys' :: Maybe Text
paginationToken = forall a. Maybe a
Prelude.Nothing}
getTagKeys_paginationToken :: Lens.Lens' GetTagKeys (Prelude.Maybe Prelude.Text)
= forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTagKeys' {Maybe Text
paginationToken :: Maybe Text
$sel:paginationToken:GetTagKeys' :: GetTagKeys -> Maybe Text
paginationToken} -> Maybe Text
paginationToken) (\s :: GetTagKeys
s@GetTagKeys' {} Maybe Text
a -> GetTagKeys
s {$sel:paginationToken:GetTagKeys' :: Maybe Text
paginationToken = Maybe Text
a} :: GetTagKeys)
instance Core.AWSPager GetTagKeys where
page :: GetTagKeys -> AWSResponse GetTagKeys -> Maybe GetTagKeys
page GetTagKeys
rq AWSResponse GetTagKeys
rs
| forall a. AWSTruncated a => a -> Bool
Core.stop
( AWSResponse GetTagKeys
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' GetTagKeysResponse (Maybe Text)
getTagKeysResponse_paginationToken
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
) =
forall a. Maybe a
Prelude.Nothing
| forall a. AWSTruncated a => a -> Bool
Core.stop
( AWSResponse GetTagKeys
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' GetTagKeysResponse (Maybe [Text])
getTagKeysResponse_tagKeys
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
) =
forall a. Maybe a
Prelude.Nothing
| Bool
Prelude.otherwise =
forall a. a -> Maybe a
Prelude.Just
forall a b. (a -> b) -> a -> b
Prelude.$ GetTagKeys
rq
forall a b. a -> (a -> b) -> b
Prelude.& Lens' GetTagKeys (Maybe Text)
getTagKeys_paginationToken
forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse GetTagKeys
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' GetTagKeysResponse (Maybe Text)
getTagKeysResponse_paginationToken
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
instance Core.AWSRequest GetTagKeys where
type AWSResponse GetTagKeys = GetTagKeysResponse
request :: (Service -> Service) -> GetTagKeys -> Request GetTagKeys
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 GetTagKeys
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetTagKeys)))
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 [Text] -> Int -> GetTagKeysResponse
GetTagKeysResponse'
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
"PaginationToken")
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
"TagKeys" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
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 GetTagKeys where
hashWithSalt :: Int -> GetTagKeys -> Int
hashWithSalt Int
_salt GetTagKeys' {Maybe Text
paginationToken :: Maybe Text
$sel:paginationToken:GetTagKeys' :: GetTagKeys -> Maybe Text
..} =
Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
paginationToken
instance Prelude.NFData GetTagKeys where
rnf :: GetTagKeys -> ()
rnf GetTagKeys' {Maybe Text
paginationToken :: Maybe Text
$sel:paginationToken:GetTagKeys' :: GetTagKeys -> Maybe Text
..} = forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
paginationToken
instance Data.ToHeaders GetTagKeys where
toHeaders :: GetTagKeys -> 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
"ResourceGroupsTaggingAPI_20170126.GetTagKeys" ::
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 GetTagKeys where
toJSON :: GetTagKeys -> Value
toJSON GetTagKeys' {Maybe Text
paginationToken :: Maybe Text
$sel:paginationToken:GetTagKeys' :: GetTagKeys -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"PaginationToken" 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
paginationToken
]
)
instance Data.ToPath GetTagKeys where
toPath :: GetTagKeys -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery GetTagKeys where
toQuery :: GetTagKeys -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data GetTagKeysResponse = GetTagKeysResponse'
{
:: Prelude.Maybe Prelude.Text,
GetTagKeysResponse -> Maybe [Text]
tagKeys :: Prelude.Maybe [Prelude.Text],
GetTagKeysResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GetTagKeysResponse -> GetTagKeysResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetTagKeysResponse -> GetTagKeysResponse -> Bool
$c/= :: GetTagKeysResponse -> GetTagKeysResponse -> Bool
== :: GetTagKeysResponse -> GetTagKeysResponse -> Bool
$c== :: GetTagKeysResponse -> GetTagKeysResponse -> Bool
Prelude.Eq, ReadPrec [GetTagKeysResponse]
ReadPrec GetTagKeysResponse
Int -> ReadS GetTagKeysResponse
ReadS [GetTagKeysResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetTagKeysResponse]
$creadListPrec :: ReadPrec [GetTagKeysResponse]
readPrec :: ReadPrec GetTagKeysResponse
$creadPrec :: ReadPrec GetTagKeysResponse
readList :: ReadS [GetTagKeysResponse]
$creadList :: ReadS [GetTagKeysResponse]
readsPrec :: Int -> ReadS GetTagKeysResponse
$creadsPrec :: Int -> ReadS GetTagKeysResponse
Prelude.Read, Int -> GetTagKeysResponse -> ShowS
[GetTagKeysResponse] -> ShowS
GetTagKeysResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetTagKeysResponse] -> ShowS
$cshowList :: [GetTagKeysResponse] -> ShowS
show :: GetTagKeysResponse -> String
$cshow :: GetTagKeysResponse -> String
showsPrec :: Int -> GetTagKeysResponse -> ShowS
$cshowsPrec :: Int -> GetTagKeysResponse -> ShowS
Prelude.Show, forall x. Rep GetTagKeysResponse x -> GetTagKeysResponse
forall x. GetTagKeysResponse -> Rep GetTagKeysResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetTagKeysResponse x -> GetTagKeysResponse
$cfrom :: forall x. GetTagKeysResponse -> Rep GetTagKeysResponse x
Prelude.Generic)
newGetTagKeysResponse ::
Prelude.Int ->
GetTagKeysResponse
newGetTagKeysResponse :: Int -> GetTagKeysResponse
newGetTagKeysResponse Int
pHttpStatus_ =
GetTagKeysResponse'
{ $sel:paginationToken:GetTagKeysResponse' :: Maybe Text
paginationToken =
forall a. Maybe a
Prelude.Nothing,
$sel:tagKeys:GetTagKeysResponse' :: Maybe [Text]
tagKeys = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetTagKeysResponse' :: Int
httpStatus = Int
pHttpStatus_
}
getTagKeysResponse_paginationToken :: Lens.Lens' GetTagKeysResponse (Prelude.Maybe Prelude.Text)
= forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTagKeysResponse' {Maybe Text
paginationToken :: Maybe Text
$sel:paginationToken:GetTagKeysResponse' :: GetTagKeysResponse -> Maybe Text
paginationToken} -> Maybe Text
paginationToken) (\s :: GetTagKeysResponse
s@GetTagKeysResponse' {} Maybe Text
a -> GetTagKeysResponse
s {$sel:paginationToken:GetTagKeysResponse' :: Maybe Text
paginationToken = Maybe Text
a} :: GetTagKeysResponse)
getTagKeysResponse_tagKeys :: Lens.Lens' GetTagKeysResponse (Prelude.Maybe [Prelude.Text])
getTagKeysResponse_tagKeys :: Lens' GetTagKeysResponse (Maybe [Text])
getTagKeysResponse_tagKeys = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTagKeysResponse' {Maybe [Text]
tagKeys :: Maybe [Text]
$sel:tagKeys:GetTagKeysResponse' :: GetTagKeysResponse -> Maybe [Text]
tagKeys} -> Maybe [Text]
tagKeys) (\s :: GetTagKeysResponse
s@GetTagKeysResponse' {} Maybe [Text]
a -> GetTagKeysResponse
s {$sel:tagKeys:GetTagKeysResponse' :: Maybe [Text]
tagKeys = Maybe [Text]
a} :: GetTagKeysResponse) 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
getTagKeysResponse_httpStatus :: Lens.Lens' GetTagKeysResponse Prelude.Int
getTagKeysResponse_httpStatus :: Lens' GetTagKeysResponse Int
getTagKeysResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTagKeysResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetTagKeysResponse' :: GetTagKeysResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetTagKeysResponse
s@GetTagKeysResponse' {} Int
a -> GetTagKeysResponse
s {$sel:httpStatus:GetTagKeysResponse' :: Int
httpStatus = Int
a} :: GetTagKeysResponse)
instance Prelude.NFData GetTagKeysResponse where
rnf :: GetTagKeysResponse -> ()
rnf GetTagKeysResponse' {Int
Maybe [Text]
Maybe Text
httpStatus :: Int
tagKeys :: Maybe [Text]
paginationToken :: Maybe Text
$sel:httpStatus:GetTagKeysResponse' :: GetTagKeysResponse -> Int
$sel:tagKeys:GetTagKeysResponse' :: GetTagKeysResponse -> Maybe [Text]
$sel:paginationToken:GetTagKeysResponse' :: GetTagKeysResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
paginationToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
tagKeys
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus