{-# 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.StorageGateway.DescribeTapes
(
DescribeTapes (..),
newDescribeTapes,
describeTapes_limit,
describeTapes_marker,
describeTapes_tapeARNs,
describeTapes_gatewayARN,
DescribeTapesResponse (..),
newDescribeTapesResponse,
describeTapesResponse_marker,
describeTapesResponse_tapes,
describeTapesResponse_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.StorageGateway.Types
data DescribeTapes = DescribeTapes'
{
DescribeTapes -> Maybe Natural
limit :: Prelude.Maybe Prelude.Natural,
DescribeTapes -> Maybe Text
marker :: Prelude.Maybe Prelude.Text,
DescribeTapes -> Maybe [Text]
tapeARNs :: Prelude.Maybe [Prelude.Text],
DescribeTapes -> Text
gatewayARN :: Prelude.Text
}
deriving (DescribeTapes -> DescribeTapes -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeTapes -> DescribeTapes -> Bool
$c/= :: DescribeTapes -> DescribeTapes -> Bool
== :: DescribeTapes -> DescribeTapes -> Bool
$c== :: DescribeTapes -> DescribeTapes -> Bool
Prelude.Eq, ReadPrec [DescribeTapes]
ReadPrec DescribeTapes
Int -> ReadS DescribeTapes
ReadS [DescribeTapes]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeTapes]
$creadListPrec :: ReadPrec [DescribeTapes]
readPrec :: ReadPrec DescribeTapes
$creadPrec :: ReadPrec DescribeTapes
readList :: ReadS [DescribeTapes]
$creadList :: ReadS [DescribeTapes]
readsPrec :: Int -> ReadS DescribeTapes
$creadsPrec :: Int -> ReadS DescribeTapes
Prelude.Read, Int -> DescribeTapes -> ShowS
[DescribeTapes] -> ShowS
DescribeTapes -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeTapes] -> ShowS
$cshowList :: [DescribeTapes] -> ShowS
show :: DescribeTapes -> String
$cshow :: DescribeTapes -> String
showsPrec :: Int -> DescribeTapes -> ShowS
$cshowsPrec :: Int -> DescribeTapes -> ShowS
Prelude.Show, forall x. Rep DescribeTapes x -> DescribeTapes
forall x. DescribeTapes -> Rep DescribeTapes x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeTapes x -> DescribeTapes
$cfrom :: forall x. DescribeTapes -> Rep DescribeTapes x
Prelude.Generic)
newDescribeTapes ::
Prelude.Text ->
DescribeTapes
newDescribeTapes :: Text -> DescribeTapes
newDescribeTapes Text
pGatewayARN_ =
DescribeTapes'
{ $sel:limit:DescribeTapes' :: Maybe Natural
limit = forall a. Maybe a
Prelude.Nothing,
$sel:marker:DescribeTapes' :: Maybe Text
marker = forall a. Maybe a
Prelude.Nothing,
$sel:tapeARNs:DescribeTapes' :: Maybe [Text]
tapeARNs = forall a. Maybe a
Prelude.Nothing,
$sel:gatewayARN:DescribeTapes' :: Text
gatewayARN = Text
pGatewayARN_
}
describeTapes_limit :: Lens.Lens' DescribeTapes (Prelude.Maybe Prelude.Natural)
describeTapes_limit :: Lens' DescribeTapes (Maybe Natural)
describeTapes_limit = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTapes' {Maybe Natural
limit :: Maybe Natural
$sel:limit:DescribeTapes' :: DescribeTapes -> Maybe Natural
limit} -> Maybe Natural
limit) (\s :: DescribeTapes
s@DescribeTapes' {} Maybe Natural
a -> DescribeTapes
s {$sel:limit:DescribeTapes' :: Maybe Natural
limit = Maybe Natural
a} :: DescribeTapes)
describeTapes_marker :: Lens.Lens' DescribeTapes (Prelude.Maybe Prelude.Text)
describeTapes_marker :: Lens' DescribeTapes (Maybe Text)
describeTapes_marker = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTapes' {Maybe Text
marker :: Maybe Text
$sel:marker:DescribeTapes' :: DescribeTapes -> Maybe Text
marker} -> Maybe Text
marker) (\s :: DescribeTapes
s@DescribeTapes' {} Maybe Text
a -> DescribeTapes
s {$sel:marker:DescribeTapes' :: Maybe Text
marker = Maybe Text
a} :: DescribeTapes)
describeTapes_tapeARNs :: Lens.Lens' DescribeTapes (Prelude.Maybe [Prelude.Text])
describeTapes_tapeARNs :: Lens' DescribeTapes (Maybe [Text])
describeTapes_tapeARNs = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTapes' {Maybe [Text]
tapeARNs :: Maybe [Text]
$sel:tapeARNs:DescribeTapes' :: DescribeTapes -> Maybe [Text]
tapeARNs} -> Maybe [Text]
tapeARNs) (\s :: DescribeTapes
s@DescribeTapes' {} Maybe [Text]
a -> DescribeTapes
s {$sel:tapeARNs:DescribeTapes' :: Maybe [Text]
tapeARNs = Maybe [Text]
a} :: DescribeTapes) 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
describeTapes_gatewayARN :: Lens.Lens' DescribeTapes Prelude.Text
describeTapes_gatewayARN :: Lens' DescribeTapes Text
describeTapes_gatewayARN = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTapes' {Text
gatewayARN :: Text
$sel:gatewayARN:DescribeTapes' :: DescribeTapes -> Text
gatewayARN} -> Text
gatewayARN) (\s :: DescribeTapes
s@DescribeTapes' {} Text
a -> DescribeTapes
s {$sel:gatewayARN:DescribeTapes' :: Text
gatewayARN = Text
a} :: DescribeTapes)
instance Core.AWSPager DescribeTapes where
page :: DescribeTapes -> AWSResponse DescribeTapes -> Maybe DescribeTapes
page DescribeTapes
rq AWSResponse DescribeTapes
rs
| forall a. AWSTruncated a => a -> Bool
Core.stop
( AWSResponse DescribeTapes
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeTapesResponse (Maybe Text)
describeTapesResponse_marker
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 DescribeTapes
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeTapesResponse (Maybe [Tape])
describeTapesResponse_tapes
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.$ DescribeTapes
rq
forall a b. a -> (a -> b) -> b
Prelude.& Lens' DescribeTapes (Maybe Text)
describeTapes_marker
forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse DescribeTapes
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeTapesResponse (Maybe Text)
describeTapesResponse_marker
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 DescribeTapes where
type
AWSResponse DescribeTapes =
DescribeTapesResponse
request :: (Service -> Service) -> DescribeTapes -> Request DescribeTapes
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 DescribeTapes
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeTapes)))
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 [Tape] -> Int -> DescribeTapesResponse
DescribeTapesResponse'
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
"Marker")
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
"Tapes" 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 DescribeTapes where
hashWithSalt :: Int -> DescribeTapes -> Int
hashWithSalt Int
_salt DescribeTapes' {Maybe Natural
Maybe [Text]
Maybe Text
Text
gatewayARN :: Text
tapeARNs :: Maybe [Text]
marker :: Maybe Text
limit :: Maybe Natural
$sel:gatewayARN:DescribeTapes' :: DescribeTapes -> Text
$sel:tapeARNs:DescribeTapes' :: DescribeTapes -> Maybe [Text]
$sel:marker:DescribeTapes' :: DescribeTapes -> Maybe Text
$sel:limit:DescribeTapes' :: DescribeTapes -> Maybe Natural
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
limit
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
marker
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
tapeARNs
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
gatewayARN
instance Prelude.NFData DescribeTapes where
rnf :: DescribeTapes -> ()
rnf DescribeTapes' {Maybe Natural
Maybe [Text]
Maybe Text
Text
gatewayARN :: Text
tapeARNs :: Maybe [Text]
marker :: Maybe Text
limit :: Maybe Natural
$sel:gatewayARN:DescribeTapes' :: DescribeTapes -> Text
$sel:tapeARNs:DescribeTapes' :: DescribeTapes -> Maybe [Text]
$sel:marker:DescribeTapes' :: DescribeTapes -> Maybe Text
$sel:limit:DescribeTapes' :: DescribeTapes -> Maybe Natural
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
limit
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
marker
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
tapeARNs
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
gatewayARN
instance Data.ToHeaders DescribeTapes where
toHeaders :: DescribeTapes -> 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
"StorageGateway_20130630.DescribeTapes" ::
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 DescribeTapes where
toJSON :: DescribeTapes -> Value
toJSON DescribeTapes' {Maybe Natural
Maybe [Text]
Maybe Text
Text
gatewayARN :: Text
tapeARNs :: Maybe [Text]
marker :: Maybe Text
limit :: Maybe Natural
$sel:gatewayARN:DescribeTapes' :: DescribeTapes -> Text
$sel:tapeARNs:DescribeTapes' :: DescribeTapes -> Maybe [Text]
$sel:marker:DescribeTapes' :: DescribeTapes -> Maybe Text
$sel:limit:DescribeTapes' :: DescribeTapes -> Maybe Natural
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"Limit" 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
limit,
(Key
"Marker" 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
marker,
(Key
"TapeARNs" 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]
tapeARNs,
forall a. a -> Maybe a
Prelude.Just (Key
"GatewayARN" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
gatewayARN)
]
)
instance Data.ToPath DescribeTapes where
toPath :: DescribeTapes -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery DescribeTapes where
toQuery :: DescribeTapes -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data DescribeTapesResponse = DescribeTapesResponse'
{
DescribeTapesResponse -> Maybe Text
marker :: Prelude.Maybe Prelude.Text,
DescribeTapesResponse -> Maybe [Tape]
tapes :: Prelude.Maybe [Tape],
DescribeTapesResponse -> Int
httpStatus :: Prelude.Int
}
deriving (DescribeTapesResponse -> DescribeTapesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeTapesResponse -> DescribeTapesResponse -> Bool
$c/= :: DescribeTapesResponse -> DescribeTapesResponse -> Bool
== :: DescribeTapesResponse -> DescribeTapesResponse -> Bool
$c== :: DescribeTapesResponse -> DescribeTapesResponse -> Bool
Prelude.Eq, ReadPrec [DescribeTapesResponse]
ReadPrec DescribeTapesResponse
Int -> ReadS DescribeTapesResponse
ReadS [DescribeTapesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeTapesResponse]
$creadListPrec :: ReadPrec [DescribeTapesResponse]
readPrec :: ReadPrec DescribeTapesResponse
$creadPrec :: ReadPrec DescribeTapesResponse
readList :: ReadS [DescribeTapesResponse]
$creadList :: ReadS [DescribeTapesResponse]
readsPrec :: Int -> ReadS DescribeTapesResponse
$creadsPrec :: Int -> ReadS DescribeTapesResponse
Prelude.Read, Int -> DescribeTapesResponse -> ShowS
[DescribeTapesResponse] -> ShowS
DescribeTapesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeTapesResponse] -> ShowS
$cshowList :: [DescribeTapesResponse] -> ShowS
show :: DescribeTapesResponse -> String
$cshow :: DescribeTapesResponse -> String
showsPrec :: Int -> DescribeTapesResponse -> ShowS
$cshowsPrec :: Int -> DescribeTapesResponse -> ShowS
Prelude.Show, forall x. Rep DescribeTapesResponse x -> DescribeTapesResponse
forall x. DescribeTapesResponse -> Rep DescribeTapesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeTapesResponse x -> DescribeTapesResponse
$cfrom :: forall x. DescribeTapesResponse -> Rep DescribeTapesResponse x
Prelude.Generic)
newDescribeTapesResponse ::
Prelude.Int ->
DescribeTapesResponse
newDescribeTapesResponse :: Int -> DescribeTapesResponse
newDescribeTapesResponse Int
pHttpStatus_ =
DescribeTapesResponse'
{ $sel:marker:DescribeTapesResponse' :: Maybe Text
marker = forall a. Maybe a
Prelude.Nothing,
$sel:tapes:DescribeTapesResponse' :: Maybe [Tape]
tapes = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:DescribeTapesResponse' :: Int
httpStatus = Int
pHttpStatus_
}
describeTapesResponse_marker :: Lens.Lens' DescribeTapesResponse (Prelude.Maybe Prelude.Text)
describeTapesResponse_marker :: Lens' DescribeTapesResponse (Maybe Text)
describeTapesResponse_marker = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTapesResponse' {Maybe Text
marker :: Maybe Text
$sel:marker:DescribeTapesResponse' :: DescribeTapesResponse -> Maybe Text
marker} -> Maybe Text
marker) (\s :: DescribeTapesResponse
s@DescribeTapesResponse' {} Maybe Text
a -> DescribeTapesResponse
s {$sel:marker:DescribeTapesResponse' :: Maybe Text
marker = Maybe Text
a} :: DescribeTapesResponse)
describeTapesResponse_tapes :: Lens.Lens' DescribeTapesResponse (Prelude.Maybe [Tape])
describeTapesResponse_tapes :: Lens' DescribeTapesResponse (Maybe [Tape])
describeTapesResponse_tapes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTapesResponse' {Maybe [Tape]
tapes :: Maybe [Tape]
$sel:tapes:DescribeTapesResponse' :: DescribeTapesResponse -> Maybe [Tape]
tapes} -> Maybe [Tape]
tapes) (\s :: DescribeTapesResponse
s@DescribeTapesResponse' {} Maybe [Tape]
a -> DescribeTapesResponse
s {$sel:tapes:DescribeTapesResponse' :: Maybe [Tape]
tapes = Maybe [Tape]
a} :: DescribeTapesResponse) 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
describeTapesResponse_httpStatus :: Lens.Lens' DescribeTapesResponse Prelude.Int
describeTapesResponse_httpStatus :: Lens' DescribeTapesResponse Int
describeTapesResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTapesResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeTapesResponse' :: DescribeTapesResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeTapesResponse
s@DescribeTapesResponse' {} Int
a -> DescribeTapesResponse
s {$sel:httpStatus:DescribeTapesResponse' :: Int
httpStatus = Int
a} :: DescribeTapesResponse)
instance Prelude.NFData DescribeTapesResponse where
rnf :: DescribeTapesResponse -> ()
rnf DescribeTapesResponse' {Int
Maybe [Tape]
Maybe Text
httpStatus :: Int
tapes :: Maybe [Tape]
marker :: Maybe Text
$sel:httpStatus:DescribeTapesResponse' :: DescribeTapesResponse -> Int
$sel:tapes:DescribeTapesResponse' :: DescribeTapesResponse -> Maybe [Tape]
$sel:marker:DescribeTapesResponse' :: DescribeTapesResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
marker
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tape]
tapes
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus