{-# 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.SSMContacts.ListContacts
(
ListContacts (..),
newListContacts,
listContacts_aliasPrefix,
listContacts_maxResults,
listContacts_nextToken,
listContacts_type,
ListContactsResponse (..),
newListContactsResponse,
listContactsResponse_contacts,
listContactsResponse_nextToken,
listContactsResponse_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.SSMContacts.Types
data ListContacts = ListContacts'
{
ListContacts -> Maybe Text
aliasPrefix :: Prelude.Maybe Prelude.Text,
ListContacts -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
ListContacts -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
ListContacts -> Maybe ContactType
type' :: Prelude.Maybe ContactType
}
deriving (ListContacts -> ListContacts -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListContacts -> ListContacts -> Bool
$c/= :: ListContacts -> ListContacts -> Bool
== :: ListContacts -> ListContacts -> Bool
$c== :: ListContacts -> ListContacts -> Bool
Prelude.Eq, ReadPrec [ListContacts]
ReadPrec ListContacts
Int -> ReadS ListContacts
ReadS [ListContacts]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListContacts]
$creadListPrec :: ReadPrec [ListContacts]
readPrec :: ReadPrec ListContacts
$creadPrec :: ReadPrec ListContacts
readList :: ReadS [ListContacts]
$creadList :: ReadS [ListContacts]
readsPrec :: Int -> ReadS ListContacts
$creadsPrec :: Int -> ReadS ListContacts
Prelude.Read, Int -> ListContacts -> ShowS
[ListContacts] -> ShowS
ListContacts -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListContacts] -> ShowS
$cshowList :: [ListContacts] -> ShowS
show :: ListContacts -> String
$cshow :: ListContacts -> String
showsPrec :: Int -> ListContacts -> ShowS
$cshowsPrec :: Int -> ListContacts -> ShowS
Prelude.Show, forall x. Rep ListContacts x -> ListContacts
forall x. ListContacts -> Rep ListContacts x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListContacts x -> ListContacts
$cfrom :: forall x. ListContacts -> Rep ListContacts x
Prelude.Generic)
newListContacts ::
ListContacts
newListContacts :: ListContacts
newListContacts =
ListContacts'
{ $sel:aliasPrefix:ListContacts' :: Maybe Text
aliasPrefix = forall a. Maybe a
Prelude.Nothing,
$sel:maxResults:ListContacts' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
$sel:nextToken:ListContacts' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
$sel:type':ListContacts' :: Maybe ContactType
type' = forall a. Maybe a
Prelude.Nothing
}
listContacts_aliasPrefix :: Lens.Lens' ListContacts (Prelude.Maybe Prelude.Text)
listContacts_aliasPrefix :: Lens' ListContacts (Maybe Text)
listContacts_aliasPrefix = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListContacts' {Maybe Text
aliasPrefix :: Maybe Text
$sel:aliasPrefix:ListContacts' :: ListContacts -> Maybe Text
aliasPrefix} -> Maybe Text
aliasPrefix) (\s :: ListContacts
s@ListContacts' {} Maybe Text
a -> ListContacts
s {$sel:aliasPrefix:ListContacts' :: Maybe Text
aliasPrefix = Maybe Text
a} :: ListContacts)
listContacts_maxResults :: Lens.Lens' ListContacts (Prelude.Maybe Prelude.Natural)
listContacts_maxResults :: Lens' ListContacts (Maybe Natural)
listContacts_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListContacts' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:ListContacts' :: ListContacts -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: ListContacts
s@ListContacts' {} Maybe Natural
a -> ListContacts
s {$sel:maxResults:ListContacts' :: Maybe Natural
maxResults = Maybe Natural
a} :: ListContacts)
listContacts_nextToken :: Lens.Lens' ListContacts (Prelude.Maybe Prelude.Text)
listContacts_nextToken :: Lens' ListContacts (Maybe Text)
listContacts_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListContacts' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListContacts' :: ListContacts -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListContacts
s@ListContacts' {} Maybe Text
a -> ListContacts
s {$sel:nextToken:ListContacts' :: Maybe Text
nextToken = Maybe Text
a} :: ListContacts)
listContacts_type :: Lens.Lens' ListContacts (Prelude.Maybe ContactType)
listContacts_type :: Lens' ListContacts (Maybe ContactType)
listContacts_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListContacts' {Maybe ContactType
type' :: Maybe ContactType
$sel:type':ListContacts' :: ListContacts -> Maybe ContactType
type'} -> Maybe ContactType
type') (\s :: ListContacts
s@ListContacts' {} Maybe ContactType
a -> ListContacts
s {$sel:type':ListContacts' :: Maybe ContactType
type' = Maybe ContactType
a} :: ListContacts)
instance Core.AWSPager ListContacts where
page :: ListContacts -> AWSResponse ListContacts -> Maybe ListContacts
page ListContacts
rq AWSResponse ListContacts
rs
| forall a. AWSTruncated a => a -> Bool
Core.stop
( AWSResponse ListContacts
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListContactsResponse (Maybe Text)
listContactsResponse_nextToken
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 ListContacts
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListContactsResponse (Maybe [Contact])
listContactsResponse_contacts
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.$ ListContacts
rq
forall a b. a -> (a -> b) -> b
Prelude.& Lens' ListContacts (Maybe Text)
listContacts_nextToken
forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListContacts
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListContactsResponse (Maybe Text)
listContactsResponse_nextToken
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 ListContacts where
type AWSResponse ListContacts = ListContactsResponse
request :: (Service -> Service) -> ListContacts -> Request ListContacts
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 ListContacts
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse ListContacts)))
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 [Contact] -> Maybe Text -> Int -> ListContactsResponse
ListContactsResponse'
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
"Contacts" 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.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"NextToken")
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 ListContacts where
hashWithSalt :: Int -> ListContacts -> Int
hashWithSalt Int
_salt ListContacts' {Maybe Natural
Maybe Text
Maybe ContactType
type' :: Maybe ContactType
nextToken :: Maybe Text
maxResults :: Maybe Natural
aliasPrefix :: Maybe Text
$sel:type':ListContacts' :: ListContacts -> Maybe ContactType
$sel:nextToken:ListContacts' :: ListContacts -> Maybe Text
$sel:maxResults:ListContacts' :: ListContacts -> Maybe Natural
$sel:aliasPrefix:ListContacts' :: ListContacts -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
aliasPrefix
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxResults
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ContactType
type'
instance Prelude.NFData ListContacts where
rnf :: ListContacts -> ()
rnf ListContacts' {Maybe Natural
Maybe Text
Maybe ContactType
type' :: Maybe ContactType
nextToken :: Maybe Text
maxResults :: Maybe Natural
aliasPrefix :: Maybe Text
$sel:type':ListContacts' :: ListContacts -> Maybe ContactType
$sel:nextToken:ListContacts' :: ListContacts -> Maybe Text
$sel:maxResults:ListContacts' :: ListContacts -> Maybe Natural
$sel:aliasPrefix:ListContacts' :: ListContacts -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
aliasPrefix
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
maxResults
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ContactType
type'
instance Data.ToHeaders ListContacts where
toHeaders :: ListContacts -> 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
"SSMContacts.ListContacts" :: 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 ListContacts where
toJSON :: ListContacts -> Value
toJSON ListContacts' {Maybe Natural
Maybe Text
Maybe ContactType
type' :: Maybe ContactType
nextToken :: Maybe Text
maxResults :: Maybe Natural
aliasPrefix :: Maybe Text
$sel:type':ListContacts' :: ListContacts -> Maybe ContactType
$sel:nextToken:ListContacts' :: ListContacts -> Maybe Text
$sel:maxResults:ListContacts' :: ListContacts -> Maybe Natural
$sel:aliasPrefix:ListContacts' :: ListContacts -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"AliasPrefix" 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
aliasPrefix,
(Key
"MaxResults" 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 Natural
maxResults,
(Key
"NextToken" 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
nextToken,
(Key
"Type" 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 ContactType
type'
]
)
instance Data.ToPath ListContacts where
toPath :: ListContacts -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery ListContacts where
toQuery :: ListContacts -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data ListContactsResponse = ListContactsResponse'
{
ListContactsResponse -> Maybe [Contact]
contacts :: Prelude.Maybe [Contact],
ListContactsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
ListContactsResponse -> Int
httpStatus :: Prelude.Int
}
deriving (ListContactsResponse -> ListContactsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListContactsResponse -> ListContactsResponse -> Bool
$c/= :: ListContactsResponse -> ListContactsResponse -> Bool
== :: ListContactsResponse -> ListContactsResponse -> Bool
$c== :: ListContactsResponse -> ListContactsResponse -> Bool
Prelude.Eq, ReadPrec [ListContactsResponse]
ReadPrec ListContactsResponse
Int -> ReadS ListContactsResponse
ReadS [ListContactsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListContactsResponse]
$creadListPrec :: ReadPrec [ListContactsResponse]
readPrec :: ReadPrec ListContactsResponse
$creadPrec :: ReadPrec ListContactsResponse
readList :: ReadS [ListContactsResponse]
$creadList :: ReadS [ListContactsResponse]
readsPrec :: Int -> ReadS ListContactsResponse
$creadsPrec :: Int -> ReadS ListContactsResponse
Prelude.Read, Int -> ListContactsResponse -> ShowS
[ListContactsResponse] -> ShowS
ListContactsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListContactsResponse] -> ShowS
$cshowList :: [ListContactsResponse] -> ShowS
show :: ListContactsResponse -> String
$cshow :: ListContactsResponse -> String
showsPrec :: Int -> ListContactsResponse -> ShowS
$cshowsPrec :: Int -> ListContactsResponse -> ShowS
Prelude.Show, forall x. Rep ListContactsResponse x -> ListContactsResponse
forall x. ListContactsResponse -> Rep ListContactsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListContactsResponse x -> ListContactsResponse
$cfrom :: forall x. ListContactsResponse -> Rep ListContactsResponse x
Prelude.Generic)
newListContactsResponse ::
Prelude.Int ->
ListContactsResponse
newListContactsResponse :: Int -> ListContactsResponse
newListContactsResponse Int
pHttpStatus_ =
ListContactsResponse'
{ $sel:contacts:ListContactsResponse' :: Maybe [Contact]
contacts = forall a. Maybe a
Prelude.Nothing,
$sel:nextToken:ListContactsResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:ListContactsResponse' :: Int
httpStatus = Int
pHttpStatus_
}
listContactsResponse_contacts :: Lens.Lens' ListContactsResponse (Prelude.Maybe [Contact])
listContactsResponse_contacts :: Lens' ListContactsResponse (Maybe [Contact])
listContactsResponse_contacts = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListContactsResponse' {Maybe [Contact]
contacts :: Maybe [Contact]
$sel:contacts:ListContactsResponse' :: ListContactsResponse -> Maybe [Contact]
contacts} -> Maybe [Contact]
contacts) (\s :: ListContactsResponse
s@ListContactsResponse' {} Maybe [Contact]
a -> ListContactsResponse
s {$sel:contacts:ListContactsResponse' :: Maybe [Contact]
contacts = Maybe [Contact]
a} :: ListContactsResponse) 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
listContactsResponse_nextToken :: Lens.Lens' ListContactsResponse (Prelude.Maybe Prelude.Text)
listContactsResponse_nextToken :: Lens' ListContactsResponse (Maybe Text)
listContactsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListContactsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListContactsResponse' :: ListContactsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListContactsResponse
s@ListContactsResponse' {} Maybe Text
a -> ListContactsResponse
s {$sel:nextToken:ListContactsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListContactsResponse)
listContactsResponse_httpStatus :: Lens.Lens' ListContactsResponse Prelude.Int
listContactsResponse_httpStatus :: Lens' ListContactsResponse Int
listContactsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListContactsResponse' {Int
httpStatus :: Int
$sel:httpStatus:ListContactsResponse' :: ListContactsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ListContactsResponse
s@ListContactsResponse' {} Int
a -> ListContactsResponse
s {$sel:httpStatus:ListContactsResponse' :: Int
httpStatus = Int
a} :: ListContactsResponse)
instance Prelude.NFData ListContactsResponse where
rnf :: ListContactsResponse -> ()
rnf ListContactsResponse' {Int
Maybe [Contact]
Maybe Text
httpStatus :: Int
nextToken :: Maybe Text
contacts :: Maybe [Contact]
$sel:httpStatus:ListContactsResponse' :: ListContactsResponse -> Int
$sel:nextToken:ListContactsResponse' :: ListContactsResponse -> Maybe Text
$sel:contacts:ListContactsResponse' :: ListContactsResponse -> Maybe [Contact]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [Contact]
contacts
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus