{-# 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.AppStream.CreateEntitlement
(
CreateEntitlement (..),
newCreateEntitlement,
createEntitlement_description,
createEntitlement_name,
createEntitlement_stackName,
createEntitlement_appVisibility,
createEntitlement_attributes,
CreateEntitlementResponse (..),
newCreateEntitlementResponse,
createEntitlementResponse_entitlement,
createEntitlementResponse_httpStatus,
)
where
import Amazonka.AppStream.Types
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
data CreateEntitlement = CreateEntitlement'
{
CreateEntitlement -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
CreateEntitlement -> Text
name :: Prelude.Text,
CreateEntitlement -> Text
stackName :: Prelude.Text,
CreateEntitlement -> AppVisibility
appVisibility :: AppVisibility,
CreateEntitlement -> NonEmpty EntitlementAttribute
attributes :: Prelude.NonEmpty EntitlementAttribute
}
deriving (CreateEntitlement -> CreateEntitlement -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateEntitlement -> CreateEntitlement -> Bool
$c/= :: CreateEntitlement -> CreateEntitlement -> Bool
== :: CreateEntitlement -> CreateEntitlement -> Bool
$c== :: CreateEntitlement -> CreateEntitlement -> Bool
Prelude.Eq, ReadPrec [CreateEntitlement]
ReadPrec CreateEntitlement
Int -> ReadS CreateEntitlement
ReadS [CreateEntitlement]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateEntitlement]
$creadListPrec :: ReadPrec [CreateEntitlement]
readPrec :: ReadPrec CreateEntitlement
$creadPrec :: ReadPrec CreateEntitlement
readList :: ReadS [CreateEntitlement]
$creadList :: ReadS [CreateEntitlement]
readsPrec :: Int -> ReadS CreateEntitlement
$creadsPrec :: Int -> ReadS CreateEntitlement
Prelude.Read, Int -> CreateEntitlement -> ShowS
[CreateEntitlement] -> ShowS
CreateEntitlement -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateEntitlement] -> ShowS
$cshowList :: [CreateEntitlement] -> ShowS
show :: CreateEntitlement -> String
$cshow :: CreateEntitlement -> String
showsPrec :: Int -> CreateEntitlement -> ShowS
$cshowsPrec :: Int -> CreateEntitlement -> ShowS
Prelude.Show, forall x. Rep CreateEntitlement x -> CreateEntitlement
forall x. CreateEntitlement -> Rep CreateEntitlement x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateEntitlement x -> CreateEntitlement
$cfrom :: forall x. CreateEntitlement -> Rep CreateEntitlement x
Prelude.Generic)
newCreateEntitlement ::
Prelude.Text ->
Prelude.Text ->
AppVisibility ->
Prelude.NonEmpty EntitlementAttribute ->
CreateEntitlement
newCreateEntitlement :: Text
-> Text
-> AppVisibility
-> NonEmpty EntitlementAttribute
-> CreateEntitlement
newCreateEntitlement
Text
pName_
Text
pStackName_
AppVisibility
pAppVisibility_
NonEmpty EntitlementAttribute
pAttributes_ =
CreateEntitlement'
{ $sel:description:CreateEntitlement' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
$sel:name:CreateEntitlement' :: Text
name = Text
pName_,
$sel:stackName:CreateEntitlement' :: Text
stackName = Text
pStackName_,
$sel:appVisibility:CreateEntitlement' :: AppVisibility
appVisibility = AppVisibility
pAppVisibility_,
$sel:attributes:CreateEntitlement' :: NonEmpty EntitlementAttribute
attributes = 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 EntitlementAttribute
pAttributes_
}
createEntitlement_description :: Lens.Lens' CreateEntitlement (Prelude.Maybe Prelude.Text)
createEntitlement_description :: Lens' CreateEntitlement (Maybe Text)
createEntitlement_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEntitlement' {Maybe Text
description :: Maybe Text
$sel:description:CreateEntitlement' :: CreateEntitlement -> Maybe Text
description} -> Maybe Text
description) (\s :: CreateEntitlement
s@CreateEntitlement' {} Maybe Text
a -> CreateEntitlement
s {$sel:description:CreateEntitlement' :: Maybe Text
description = Maybe Text
a} :: CreateEntitlement)
createEntitlement_name :: Lens.Lens' CreateEntitlement Prelude.Text
createEntitlement_name :: Lens' CreateEntitlement Text
createEntitlement_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEntitlement' {Text
name :: Text
$sel:name:CreateEntitlement' :: CreateEntitlement -> Text
name} -> Text
name) (\s :: CreateEntitlement
s@CreateEntitlement' {} Text
a -> CreateEntitlement
s {$sel:name:CreateEntitlement' :: Text
name = Text
a} :: CreateEntitlement)
createEntitlement_stackName :: Lens.Lens' CreateEntitlement Prelude.Text
createEntitlement_stackName :: Lens' CreateEntitlement Text
createEntitlement_stackName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEntitlement' {Text
stackName :: Text
$sel:stackName:CreateEntitlement' :: CreateEntitlement -> Text
stackName} -> Text
stackName) (\s :: CreateEntitlement
s@CreateEntitlement' {} Text
a -> CreateEntitlement
s {$sel:stackName:CreateEntitlement' :: Text
stackName = Text
a} :: CreateEntitlement)
createEntitlement_appVisibility :: Lens.Lens' CreateEntitlement AppVisibility
createEntitlement_appVisibility :: Lens' CreateEntitlement AppVisibility
createEntitlement_appVisibility = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEntitlement' {AppVisibility
appVisibility :: AppVisibility
$sel:appVisibility:CreateEntitlement' :: CreateEntitlement -> AppVisibility
appVisibility} -> AppVisibility
appVisibility) (\s :: CreateEntitlement
s@CreateEntitlement' {} AppVisibility
a -> CreateEntitlement
s {$sel:appVisibility:CreateEntitlement' :: AppVisibility
appVisibility = AppVisibility
a} :: CreateEntitlement)
createEntitlement_attributes :: Lens.Lens' CreateEntitlement (Prelude.NonEmpty EntitlementAttribute)
createEntitlement_attributes :: Lens' CreateEntitlement (NonEmpty EntitlementAttribute)
createEntitlement_attributes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEntitlement' {NonEmpty EntitlementAttribute
attributes :: NonEmpty EntitlementAttribute
$sel:attributes:CreateEntitlement' :: CreateEntitlement -> NonEmpty EntitlementAttribute
attributes} -> NonEmpty EntitlementAttribute
attributes) (\s :: CreateEntitlement
s@CreateEntitlement' {} NonEmpty EntitlementAttribute
a -> CreateEntitlement
s {$sel:attributes:CreateEntitlement' :: NonEmpty EntitlementAttribute
attributes = NonEmpty EntitlementAttribute
a} :: CreateEntitlement) 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 CreateEntitlement where
type
AWSResponse CreateEntitlement =
CreateEntitlementResponse
request :: (Service -> Service)
-> CreateEntitlement -> Request CreateEntitlement
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 CreateEntitlement
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateEntitlement)))
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 Entitlement -> Int -> CreateEntitlementResponse
CreateEntitlementResponse'
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
"Entitlement")
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 CreateEntitlement where
hashWithSalt :: Int -> CreateEntitlement -> Int
hashWithSalt Int
_salt CreateEntitlement' {Maybe Text
NonEmpty EntitlementAttribute
Text
AppVisibility
attributes :: NonEmpty EntitlementAttribute
appVisibility :: AppVisibility
stackName :: Text
name :: Text
description :: Maybe Text
$sel:attributes:CreateEntitlement' :: CreateEntitlement -> NonEmpty EntitlementAttribute
$sel:appVisibility:CreateEntitlement' :: CreateEntitlement -> AppVisibility
$sel:stackName:CreateEntitlement' :: CreateEntitlement -> Text
$sel:name:CreateEntitlement' :: CreateEntitlement -> Text
$sel:description:CreateEntitlement' :: CreateEntitlement -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
stackName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` AppVisibility
appVisibility
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NonEmpty EntitlementAttribute
attributes
instance Prelude.NFData CreateEntitlement where
rnf :: CreateEntitlement -> ()
rnf CreateEntitlement' {Maybe Text
NonEmpty EntitlementAttribute
Text
AppVisibility
attributes :: NonEmpty EntitlementAttribute
appVisibility :: AppVisibility
stackName :: Text
name :: Text
description :: Maybe Text
$sel:attributes:CreateEntitlement' :: CreateEntitlement -> NonEmpty EntitlementAttribute
$sel:appVisibility:CreateEntitlement' :: CreateEntitlement -> AppVisibility
$sel:stackName:CreateEntitlement' :: CreateEntitlement -> Text
$sel:name:CreateEntitlement' :: CreateEntitlement -> Text
$sel:description:CreateEntitlement' :: CreateEntitlement -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
seq :: forall a b. a -> b -> b
`Prelude.seq` 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 Text
stackName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf AppVisibility
appVisibility
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf NonEmpty EntitlementAttribute
attributes
instance Data.ToHeaders CreateEntitlement where
toHeaders :: CreateEntitlement -> 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
"PhotonAdminProxyService.CreateEntitlement" ::
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 CreateEntitlement where
toJSON :: CreateEntitlement -> Value
toJSON CreateEntitlement' {Maybe Text
NonEmpty EntitlementAttribute
Text
AppVisibility
attributes :: NonEmpty EntitlementAttribute
appVisibility :: AppVisibility
stackName :: Text
name :: Text
description :: Maybe Text
$sel:attributes:CreateEntitlement' :: CreateEntitlement -> NonEmpty EntitlementAttribute
$sel:appVisibility:CreateEntitlement' :: CreateEntitlement -> AppVisibility
$sel:stackName:CreateEntitlement' :: CreateEntitlement -> Text
$sel:name:CreateEntitlement' :: CreateEntitlement -> Text
$sel:description:CreateEntitlement' :: CreateEntitlement -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"Description" 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
description,
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
"StackName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
stackName),
forall a. a -> Maybe a
Prelude.Just (Key
"AppVisibility" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= AppVisibility
appVisibility),
forall a. a -> Maybe a
Prelude.Just (Key
"Attributes" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= NonEmpty EntitlementAttribute
attributes)
]
)
instance Data.ToPath CreateEntitlement where
toPath :: CreateEntitlement -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateEntitlement where
toQuery :: CreateEntitlement -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateEntitlementResponse = CreateEntitlementResponse'
{
CreateEntitlementResponse -> Maybe Entitlement
entitlement :: Prelude.Maybe Entitlement,
CreateEntitlementResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateEntitlementResponse -> CreateEntitlementResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateEntitlementResponse -> CreateEntitlementResponse -> Bool
$c/= :: CreateEntitlementResponse -> CreateEntitlementResponse -> Bool
== :: CreateEntitlementResponse -> CreateEntitlementResponse -> Bool
$c== :: CreateEntitlementResponse -> CreateEntitlementResponse -> Bool
Prelude.Eq, ReadPrec [CreateEntitlementResponse]
ReadPrec CreateEntitlementResponse
Int -> ReadS CreateEntitlementResponse
ReadS [CreateEntitlementResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateEntitlementResponse]
$creadListPrec :: ReadPrec [CreateEntitlementResponse]
readPrec :: ReadPrec CreateEntitlementResponse
$creadPrec :: ReadPrec CreateEntitlementResponse
readList :: ReadS [CreateEntitlementResponse]
$creadList :: ReadS [CreateEntitlementResponse]
readsPrec :: Int -> ReadS CreateEntitlementResponse
$creadsPrec :: Int -> ReadS CreateEntitlementResponse
Prelude.Read, Int -> CreateEntitlementResponse -> ShowS
[CreateEntitlementResponse] -> ShowS
CreateEntitlementResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateEntitlementResponse] -> ShowS
$cshowList :: [CreateEntitlementResponse] -> ShowS
show :: CreateEntitlementResponse -> String
$cshow :: CreateEntitlementResponse -> String
showsPrec :: Int -> CreateEntitlementResponse -> ShowS
$cshowsPrec :: Int -> CreateEntitlementResponse -> ShowS
Prelude.Show, forall x.
Rep CreateEntitlementResponse x -> CreateEntitlementResponse
forall x.
CreateEntitlementResponse -> Rep CreateEntitlementResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateEntitlementResponse x -> CreateEntitlementResponse
$cfrom :: forall x.
CreateEntitlementResponse -> Rep CreateEntitlementResponse x
Prelude.Generic)
newCreateEntitlementResponse ::
Prelude.Int ->
CreateEntitlementResponse
newCreateEntitlementResponse :: Int -> CreateEntitlementResponse
newCreateEntitlementResponse Int
pHttpStatus_ =
CreateEntitlementResponse'
{ $sel:entitlement:CreateEntitlementResponse' :: Maybe Entitlement
entitlement =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateEntitlementResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createEntitlementResponse_entitlement :: Lens.Lens' CreateEntitlementResponse (Prelude.Maybe Entitlement)
createEntitlementResponse_entitlement :: Lens' CreateEntitlementResponse (Maybe Entitlement)
createEntitlementResponse_entitlement = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEntitlementResponse' {Maybe Entitlement
entitlement :: Maybe Entitlement
$sel:entitlement:CreateEntitlementResponse' :: CreateEntitlementResponse -> Maybe Entitlement
entitlement} -> Maybe Entitlement
entitlement) (\s :: CreateEntitlementResponse
s@CreateEntitlementResponse' {} Maybe Entitlement
a -> CreateEntitlementResponse
s {$sel:entitlement:CreateEntitlementResponse' :: Maybe Entitlement
entitlement = Maybe Entitlement
a} :: CreateEntitlementResponse)
createEntitlementResponse_httpStatus :: Lens.Lens' CreateEntitlementResponse Prelude.Int
createEntitlementResponse_httpStatus :: Lens' CreateEntitlementResponse Int
createEntitlementResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEntitlementResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateEntitlementResponse' :: CreateEntitlementResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateEntitlementResponse
s@CreateEntitlementResponse' {} Int
a -> CreateEntitlementResponse
s {$sel:httpStatus:CreateEntitlementResponse' :: Int
httpStatus = Int
a} :: CreateEntitlementResponse)
instance Prelude.NFData CreateEntitlementResponse where
rnf :: CreateEntitlementResponse -> ()
rnf CreateEntitlementResponse' {Int
Maybe Entitlement
httpStatus :: Int
entitlement :: Maybe Entitlement
$sel:httpStatus:CreateEntitlementResponse' :: CreateEntitlementResponse -> Int
$sel:entitlement:CreateEntitlementResponse' :: CreateEntitlementResponse -> Maybe Entitlement
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Entitlement
entitlement
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus