{-# 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.DescribeSMBFileShares
(
DescribeSMBFileShares (..),
newDescribeSMBFileShares,
describeSMBFileShares_fileShareARNList,
DescribeSMBFileSharesResponse (..),
newDescribeSMBFileSharesResponse,
describeSMBFileSharesResponse_sMBFileShareInfoList,
describeSMBFileSharesResponse_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 DescribeSMBFileShares = DescribeSMBFileShares'
{
DescribeSMBFileShares -> NonEmpty Text
fileShareARNList :: Prelude.NonEmpty Prelude.Text
}
deriving (DescribeSMBFileShares -> DescribeSMBFileShares -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeSMBFileShares -> DescribeSMBFileShares -> Bool
$c/= :: DescribeSMBFileShares -> DescribeSMBFileShares -> Bool
== :: DescribeSMBFileShares -> DescribeSMBFileShares -> Bool
$c== :: DescribeSMBFileShares -> DescribeSMBFileShares -> Bool
Prelude.Eq, ReadPrec [DescribeSMBFileShares]
ReadPrec DescribeSMBFileShares
Int -> ReadS DescribeSMBFileShares
ReadS [DescribeSMBFileShares]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeSMBFileShares]
$creadListPrec :: ReadPrec [DescribeSMBFileShares]
readPrec :: ReadPrec DescribeSMBFileShares
$creadPrec :: ReadPrec DescribeSMBFileShares
readList :: ReadS [DescribeSMBFileShares]
$creadList :: ReadS [DescribeSMBFileShares]
readsPrec :: Int -> ReadS DescribeSMBFileShares
$creadsPrec :: Int -> ReadS DescribeSMBFileShares
Prelude.Read, Int -> DescribeSMBFileShares -> ShowS
[DescribeSMBFileShares] -> ShowS
DescribeSMBFileShares -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeSMBFileShares] -> ShowS
$cshowList :: [DescribeSMBFileShares] -> ShowS
show :: DescribeSMBFileShares -> String
$cshow :: DescribeSMBFileShares -> String
showsPrec :: Int -> DescribeSMBFileShares -> ShowS
$cshowsPrec :: Int -> DescribeSMBFileShares -> ShowS
Prelude.Show, forall x. Rep DescribeSMBFileShares x -> DescribeSMBFileShares
forall x. DescribeSMBFileShares -> Rep DescribeSMBFileShares x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeSMBFileShares x -> DescribeSMBFileShares
$cfrom :: forall x. DescribeSMBFileShares -> Rep DescribeSMBFileShares x
Prelude.Generic)
newDescribeSMBFileShares ::
Prelude.NonEmpty Prelude.Text ->
DescribeSMBFileShares
newDescribeSMBFileShares :: NonEmpty Text -> DescribeSMBFileShares
newDescribeSMBFileShares NonEmpty Text
pFileShareARNList_ =
DescribeSMBFileShares'
{ $sel:fileShareARNList:DescribeSMBFileShares' :: NonEmpty Text
fileShareARNList =
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced forall t b. AReview t b -> b -> t
Lens.# NonEmpty Text
pFileShareARNList_
}
describeSMBFileShares_fileShareARNList :: Lens.Lens' DescribeSMBFileShares (Prelude.NonEmpty Prelude.Text)
describeSMBFileShares_fileShareARNList :: Lens' DescribeSMBFileShares (NonEmpty Text)
describeSMBFileShares_fileShareARNList = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeSMBFileShares' {NonEmpty Text
fileShareARNList :: NonEmpty Text
$sel:fileShareARNList:DescribeSMBFileShares' :: DescribeSMBFileShares -> NonEmpty Text
fileShareARNList} -> NonEmpty Text
fileShareARNList) (\s :: DescribeSMBFileShares
s@DescribeSMBFileShares' {} NonEmpty Text
a -> DescribeSMBFileShares
s {$sel:fileShareARNList:DescribeSMBFileShares' :: NonEmpty Text
fileShareARNList = NonEmpty Text
a} :: DescribeSMBFileShares) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
instance Core.AWSRequest DescribeSMBFileShares where
type
AWSResponse DescribeSMBFileShares =
DescribeSMBFileSharesResponse
request :: (Service -> Service)
-> DescribeSMBFileShares -> Request DescribeSMBFileShares
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 DescribeSMBFileShares
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse DescribeSMBFileShares)))
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 [SMBFileShareInfo] -> Int -> DescribeSMBFileSharesResponse
DescribeSMBFileSharesResponse'
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
"SMBFileShareInfoList"
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 DescribeSMBFileShares where
hashWithSalt :: Int -> DescribeSMBFileShares -> Int
hashWithSalt Int
_salt DescribeSMBFileShares' {NonEmpty Text
fileShareARNList :: NonEmpty Text
$sel:fileShareARNList:DescribeSMBFileShares' :: DescribeSMBFileShares -> NonEmpty Text
..} =
Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NonEmpty Text
fileShareARNList
instance Prelude.NFData DescribeSMBFileShares where
rnf :: DescribeSMBFileShares -> ()
rnf DescribeSMBFileShares' {NonEmpty Text
fileShareARNList :: NonEmpty Text
$sel:fileShareARNList:DescribeSMBFileShares' :: DescribeSMBFileShares -> NonEmpty Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf NonEmpty Text
fileShareARNList
instance Data.ToHeaders DescribeSMBFileShares where
toHeaders :: DescribeSMBFileShares -> 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.DescribeSMBFileShares" ::
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 DescribeSMBFileShares where
toJSON :: DescribeSMBFileShares -> Value
toJSON DescribeSMBFileShares' {NonEmpty Text
fileShareARNList :: NonEmpty Text
$sel:fileShareARNList:DescribeSMBFileShares' :: DescribeSMBFileShares -> NonEmpty Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just
(Key
"FileShareARNList" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= NonEmpty Text
fileShareARNList)
]
)
instance Data.ToPath DescribeSMBFileShares where
toPath :: DescribeSMBFileShares -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery DescribeSMBFileShares where
toQuery :: DescribeSMBFileShares -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data DescribeSMBFileSharesResponse = DescribeSMBFileSharesResponse'
{
DescribeSMBFileSharesResponse -> Maybe [SMBFileShareInfo]
sMBFileShareInfoList :: Prelude.Maybe [SMBFileShareInfo],
DescribeSMBFileSharesResponse -> Int
httpStatus :: Prelude.Int
}
deriving (DescribeSMBFileSharesResponse
-> DescribeSMBFileSharesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeSMBFileSharesResponse
-> DescribeSMBFileSharesResponse -> Bool
$c/= :: DescribeSMBFileSharesResponse
-> DescribeSMBFileSharesResponse -> Bool
== :: DescribeSMBFileSharesResponse
-> DescribeSMBFileSharesResponse -> Bool
$c== :: DescribeSMBFileSharesResponse
-> DescribeSMBFileSharesResponse -> Bool
Prelude.Eq, ReadPrec [DescribeSMBFileSharesResponse]
ReadPrec DescribeSMBFileSharesResponse
Int -> ReadS DescribeSMBFileSharesResponse
ReadS [DescribeSMBFileSharesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeSMBFileSharesResponse]
$creadListPrec :: ReadPrec [DescribeSMBFileSharesResponse]
readPrec :: ReadPrec DescribeSMBFileSharesResponse
$creadPrec :: ReadPrec DescribeSMBFileSharesResponse
readList :: ReadS [DescribeSMBFileSharesResponse]
$creadList :: ReadS [DescribeSMBFileSharesResponse]
readsPrec :: Int -> ReadS DescribeSMBFileSharesResponse
$creadsPrec :: Int -> ReadS DescribeSMBFileSharesResponse
Prelude.Read, Int -> DescribeSMBFileSharesResponse -> ShowS
[DescribeSMBFileSharesResponse] -> ShowS
DescribeSMBFileSharesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeSMBFileSharesResponse] -> ShowS
$cshowList :: [DescribeSMBFileSharesResponse] -> ShowS
show :: DescribeSMBFileSharesResponse -> String
$cshow :: DescribeSMBFileSharesResponse -> String
showsPrec :: Int -> DescribeSMBFileSharesResponse -> ShowS
$cshowsPrec :: Int -> DescribeSMBFileSharesResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeSMBFileSharesResponse x
-> DescribeSMBFileSharesResponse
forall x.
DescribeSMBFileSharesResponse
-> Rep DescribeSMBFileSharesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeSMBFileSharesResponse x
-> DescribeSMBFileSharesResponse
$cfrom :: forall x.
DescribeSMBFileSharesResponse
-> Rep DescribeSMBFileSharesResponse x
Prelude.Generic)
newDescribeSMBFileSharesResponse ::
Prelude.Int ->
DescribeSMBFileSharesResponse
newDescribeSMBFileSharesResponse :: Int -> DescribeSMBFileSharesResponse
newDescribeSMBFileSharesResponse Int
pHttpStatus_ =
DescribeSMBFileSharesResponse'
{ $sel:sMBFileShareInfoList:DescribeSMBFileSharesResponse' :: Maybe [SMBFileShareInfo]
sMBFileShareInfoList =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:DescribeSMBFileSharesResponse' :: Int
httpStatus = Int
pHttpStatus_
}
describeSMBFileSharesResponse_sMBFileShareInfoList :: Lens.Lens' DescribeSMBFileSharesResponse (Prelude.Maybe [SMBFileShareInfo])
describeSMBFileSharesResponse_sMBFileShareInfoList :: Lens' DescribeSMBFileSharesResponse (Maybe [SMBFileShareInfo])
describeSMBFileSharesResponse_sMBFileShareInfoList = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeSMBFileSharesResponse' {Maybe [SMBFileShareInfo]
sMBFileShareInfoList :: Maybe [SMBFileShareInfo]
$sel:sMBFileShareInfoList:DescribeSMBFileSharesResponse' :: DescribeSMBFileSharesResponse -> Maybe [SMBFileShareInfo]
sMBFileShareInfoList} -> Maybe [SMBFileShareInfo]
sMBFileShareInfoList) (\s :: DescribeSMBFileSharesResponse
s@DescribeSMBFileSharesResponse' {} Maybe [SMBFileShareInfo]
a -> DescribeSMBFileSharesResponse
s {$sel:sMBFileShareInfoList:DescribeSMBFileSharesResponse' :: Maybe [SMBFileShareInfo]
sMBFileShareInfoList = Maybe [SMBFileShareInfo]
a} :: DescribeSMBFileSharesResponse) 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
describeSMBFileSharesResponse_httpStatus :: Lens.Lens' DescribeSMBFileSharesResponse Prelude.Int
describeSMBFileSharesResponse_httpStatus :: Lens' DescribeSMBFileSharesResponse Int
describeSMBFileSharesResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeSMBFileSharesResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeSMBFileSharesResponse' :: DescribeSMBFileSharesResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeSMBFileSharesResponse
s@DescribeSMBFileSharesResponse' {} Int
a -> DescribeSMBFileSharesResponse
s {$sel:httpStatus:DescribeSMBFileSharesResponse' :: Int
httpStatus = Int
a} :: DescribeSMBFileSharesResponse)
instance Prelude.NFData DescribeSMBFileSharesResponse where
rnf :: DescribeSMBFileSharesResponse -> ()
rnf DescribeSMBFileSharesResponse' {Int
Maybe [SMBFileShareInfo]
httpStatus :: Int
sMBFileShareInfoList :: Maybe [SMBFileShareInfo]
$sel:httpStatus:DescribeSMBFileSharesResponse' :: DescribeSMBFileSharesResponse -> Int
$sel:sMBFileShareInfoList:DescribeSMBFileSharesResponse' :: DescribeSMBFileSharesResponse -> Maybe [SMBFileShareInfo]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [SMBFileShareInfo]
sMBFileShareInfoList
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus