{-# 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.OpenSearchServerless.GetAccessPolicy
(
GetAccessPolicy (..),
newGetAccessPolicy,
getAccessPolicy_name,
getAccessPolicy_type,
GetAccessPolicyResponse (..),
newGetAccessPolicyResponse,
getAccessPolicyResponse_accessPolicyDetail,
getAccessPolicyResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.OpenSearchServerless.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data GetAccessPolicy = GetAccessPolicy'
{
GetAccessPolicy -> Text
name :: Prelude.Text,
GetAccessPolicy -> AccessPolicyType
type' :: AccessPolicyType
}
deriving (GetAccessPolicy -> GetAccessPolicy -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetAccessPolicy -> GetAccessPolicy -> Bool
$c/= :: GetAccessPolicy -> GetAccessPolicy -> Bool
== :: GetAccessPolicy -> GetAccessPolicy -> Bool
$c== :: GetAccessPolicy -> GetAccessPolicy -> Bool
Prelude.Eq, ReadPrec [GetAccessPolicy]
ReadPrec GetAccessPolicy
Int -> ReadS GetAccessPolicy
ReadS [GetAccessPolicy]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetAccessPolicy]
$creadListPrec :: ReadPrec [GetAccessPolicy]
readPrec :: ReadPrec GetAccessPolicy
$creadPrec :: ReadPrec GetAccessPolicy
readList :: ReadS [GetAccessPolicy]
$creadList :: ReadS [GetAccessPolicy]
readsPrec :: Int -> ReadS GetAccessPolicy
$creadsPrec :: Int -> ReadS GetAccessPolicy
Prelude.Read, Int -> GetAccessPolicy -> ShowS
[GetAccessPolicy] -> ShowS
GetAccessPolicy -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetAccessPolicy] -> ShowS
$cshowList :: [GetAccessPolicy] -> ShowS
show :: GetAccessPolicy -> String
$cshow :: GetAccessPolicy -> String
showsPrec :: Int -> GetAccessPolicy -> ShowS
$cshowsPrec :: Int -> GetAccessPolicy -> ShowS
Prelude.Show, forall x. Rep GetAccessPolicy x -> GetAccessPolicy
forall x. GetAccessPolicy -> Rep GetAccessPolicy x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetAccessPolicy x -> GetAccessPolicy
$cfrom :: forall x. GetAccessPolicy -> Rep GetAccessPolicy x
Prelude.Generic)
newGetAccessPolicy ::
Prelude.Text ->
AccessPolicyType ->
GetAccessPolicy
newGetAccessPolicy :: Text -> AccessPolicyType -> GetAccessPolicy
newGetAccessPolicy Text
pName_ AccessPolicyType
pType_ =
GetAccessPolicy' {$sel:name:GetAccessPolicy' :: Text
name = Text
pName_, $sel:type':GetAccessPolicy' :: AccessPolicyType
type' = AccessPolicyType
pType_}
getAccessPolicy_name :: Lens.Lens' GetAccessPolicy Prelude.Text
getAccessPolicy_name :: Lens' GetAccessPolicy Text
getAccessPolicy_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAccessPolicy' {Text
name :: Text
$sel:name:GetAccessPolicy' :: GetAccessPolicy -> Text
name} -> Text
name) (\s :: GetAccessPolicy
s@GetAccessPolicy' {} Text
a -> GetAccessPolicy
s {$sel:name:GetAccessPolicy' :: Text
name = Text
a} :: GetAccessPolicy)
getAccessPolicy_type :: Lens.Lens' GetAccessPolicy AccessPolicyType
getAccessPolicy_type :: Lens' GetAccessPolicy AccessPolicyType
getAccessPolicy_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAccessPolicy' {AccessPolicyType
type' :: AccessPolicyType
$sel:type':GetAccessPolicy' :: GetAccessPolicy -> AccessPolicyType
type'} -> AccessPolicyType
type') (\s :: GetAccessPolicy
s@GetAccessPolicy' {} AccessPolicyType
a -> GetAccessPolicy
s {$sel:type':GetAccessPolicy' :: AccessPolicyType
type' = AccessPolicyType
a} :: GetAccessPolicy)
instance Core.AWSRequest GetAccessPolicy where
type
AWSResponse GetAccessPolicy =
GetAccessPolicyResponse
request :: (Service -> Service) -> GetAccessPolicy -> Request GetAccessPolicy
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 GetAccessPolicy
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetAccessPolicy)))
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 AccessPolicyDetail -> Int -> GetAccessPolicyResponse
GetAccessPolicyResponse'
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
"accessPolicyDetail")
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 GetAccessPolicy where
hashWithSalt :: Int -> GetAccessPolicy -> Int
hashWithSalt Int
_salt GetAccessPolicy' {Text
AccessPolicyType
type' :: AccessPolicyType
name :: Text
$sel:type':GetAccessPolicy' :: GetAccessPolicy -> AccessPolicyType
$sel:name:GetAccessPolicy' :: GetAccessPolicy -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` AccessPolicyType
type'
instance Prelude.NFData GetAccessPolicy where
rnf :: GetAccessPolicy -> ()
rnf GetAccessPolicy' {Text
AccessPolicyType
type' :: AccessPolicyType
name :: Text
$sel:type':GetAccessPolicy' :: GetAccessPolicy -> AccessPolicyType
$sel:name:GetAccessPolicy' :: GetAccessPolicy -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
name seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf AccessPolicyType
type'
instance Data.ToHeaders GetAccessPolicy where
toHeaders :: GetAccessPolicy -> 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
"OpenSearchServerless.GetAccessPolicy" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.0" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON GetAccessPolicy where
toJSON :: GetAccessPolicy -> Value
toJSON GetAccessPolicy' {Text
AccessPolicyType
type' :: AccessPolicyType
name :: Text
$sel:type':GetAccessPolicy' :: GetAccessPolicy -> AccessPolicyType
$sel:name:GetAccessPolicy' :: GetAccessPolicy -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just (Key
"name" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
name),
forall a. a -> Maybe a
Prelude.Just (Key
"type" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= AccessPolicyType
type')
]
)
instance Data.ToPath GetAccessPolicy where
toPath :: GetAccessPolicy -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery GetAccessPolicy where
toQuery :: GetAccessPolicy -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data GetAccessPolicyResponse = GetAccessPolicyResponse'
{
GetAccessPolicyResponse -> Maybe AccessPolicyDetail
accessPolicyDetail :: Prelude.Maybe AccessPolicyDetail,
GetAccessPolicyResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GetAccessPolicyResponse -> GetAccessPolicyResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetAccessPolicyResponse -> GetAccessPolicyResponse -> Bool
$c/= :: GetAccessPolicyResponse -> GetAccessPolicyResponse -> Bool
== :: GetAccessPolicyResponse -> GetAccessPolicyResponse -> Bool
$c== :: GetAccessPolicyResponse -> GetAccessPolicyResponse -> Bool
Prelude.Eq, ReadPrec [GetAccessPolicyResponse]
ReadPrec GetAccessPolicyResponse
Int -> ReadS GetAccessPolicyResponse
ReadS [GetAccessPolicyResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetAccessPolicyResponse]
$creadListPrec :: ReadPrec [GetAccessPolicyResponse]
readPrec :: ReadPrec GetAccessPolicyResponse
$creadPrec :: ReadPrec GetAccessPolicyResponse
readList :: ReadS [GetAccessPolicyResponse]
$creadList :: ReadS [GetAccessPolicyResponse]
readsPrec :: Int -> ReadS GetAccessPolicyResponse
$creadsPrec :: Int -> ReadS GetAccessPolicyResponse
Prelude.Read, Int -> GetAccessPolicyResponse -> ShowS
[GetAccessPolicyResponse] -> ShowS
GetAccessPolicyResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetAccessPolicyResponse] -> ShowS
$cshowList :: [GetAccessPolicyResponse] -> ShowS
show :: GetAccessPolicyResponse -> String
$cshow :: GetAccessPolicyResponse -> String
showsPrec :: Int -> GetAccessPolicyResponse -> ShowS
$cshowsPrec :: Int -> GetAccessPolicyResponse -> ShowS
Prelude.Show, forall x. Rep GetAccessPolicyResponse x -> GetAccessPolicyResponse
forall x. GetAccessPolicyResponse -> Rep GetAccessPolicyResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetAccessPolicyResponse x -> GetAccessPolicyResponse
$cfrom :: forall x. GetAccessPolicyResponse -> Rep GetAccessPolicyResponse x
Prelude.Generic)
newGetAccessPolicyResponse ::
Prelude.Int ->
GetAccessPolicyResponse
newGetAccessPolicyResponse :: Int -> GetAccessPolicyResponse
newGetAccessPolicyResponse Int
pHttpStatus_ =
GetAccessPolicyResponse'
{ $sel:accessPolicyDetail:GetAccessPolicyResponse' :: Maybe AccessPolicyDetail
accessPolicyDetail =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetAccessPolicyResponse' :: Int
httpStatus = Int
pHttpStatus_
}
getAccessPolicyResponse_accessPolicyDetail :: Lens.Lens' GetAccessPolicyResponse (Prelude.Maybe AccessPolicyDetail)
getAccessPolicyResponse_accessPolicyDetail :: Lens' GetAccessPolicyResponse (Maybe AccessPolicyDetail)
getAccessPolicyResponse_accessPolicyDetail = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAccessPolicyResponse' {Maybe AccessPolicyDetail
accessPolicyDetail :: Maybe AccessPolicyDetail
$sel:accessPolicyDetail:GetAccessPolicyResponse' :: GetAccessPolicyResponse -> Maybe AccessPolicyDetail
accessPolicyDetail} -> Maybe AccessPolicyDetail
accessPolicyDetail) (\s :: GetAccessPolicyResponse
s@GetAccessPolicyResponse' {} Maybe AccessPolicyDetail
a -> GetAccessPolicyResponse
s {$sel:accessPolicyDetail:GetAccessPolicyResponse' :: Maybe AccessPolicyDetail
accessPolicyDetail = Maybe AccessPolicyDetail
a} :: GetAccessPolicyResponse)
getAccessPolicyResponse_httpStatus :: Lens.Lens' GetAccessPolicyResponse Prelude.Int
getAccessPolicyResponse_httpStatus :: Lens' GetAccessPolicyResponse Int
getAccessPolicyResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAccessPolicyResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetAccessPolicyResponse' :: GetAccessPolicyResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetAccessPolicyResponse
s@GetAccessPolicyResponse' {} Int
a -> GetAccessPolicyResponse
s {$sel:httpStatus:GetAccessPolicyResponse' :: Int
httpStatus = Int
a} :: GetAccessPolicyResponse)
instance Prelude.NFData GetAccessPolicyResponse where
rnf :: GetAccessPolicyResponse -> ()
rnf GetAccessPolicyResponse' {Int
Maybe AccessPolicyDetail
httpStatus :: Int
accessPolicyDetail :: Maybe AccessPolicyDetail
$sel:httpStatus:GetAccessPolicyResponse' :: GetAccessPolicyResponse -> Int
$sel:accessPolicyDetail:GetAccessPolicyResponse' :: GetAccessPolicyResponse -> Maybe AccessPolicyDetail
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe AccessPolicyDetail
accessPolicyDetail
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus