{-# 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.LicenseManager.CreateToken
(
CreateToken (..),
newCreateToken,
createToken_expirationInDays,
createToken_roleArns,
createToken_tokenProperties,
createToken_licenseArn,
createToken_clientToken,
CreateTokenResponse (..),
newCreateTokenResponse,
createTokenResponse_token,
createTokenResponse_tokenId,
createTokenResponse_tokenType,
createTokenResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.LicenseManager.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateToken = CreateToken'
{
CreateToken -> Maybe Int
expirationInDays :: Prelude.Maybe Prelude.Int,
CreateToken -> Maybe [Text]
roleArns :: Prelude.Maybe [Prelude.Text],
CreateToken -> Maybe [Text]
tokenProperties :: Prelude.Maybe [Prelude.Text],
CreateToken -> Text
licenseArn :: Prelude.Text,
CreateToken -> Text
clientToken :: Prelude.Text
}
deriving (CreateToken -> CreateToken -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateToken -> CreateToken -> Bool
$c/= :: CreateToken -> CreateToken -> Bool
== :: CreateToken -> CreateToken -> Bool
$c== :: CreateToken -> CreateToken -> Bool
Prelude.Eq, ReadPrec [CreateToken]
ReadPrec CreateToken
Int -> ReadS CreateToken
ReadS [CreateToken]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateToken]
$creadListPrec :: ReadPrec [CreateToken]
readPrec :: ReadPrec CreateToken
$creadPrec :: ReadPrec CreateToken
readList :: ReadS [CreateToken]
$creadList :: ReadS [CreateToken]
readsPrec :: Int -> ReadS CreateToken
$creadsPrec :: Int -> ReadS CreateToken
Prelude.Read, Int -> CreateToken -> ShowS
[CreateToken] -> ShowS
CreateToken -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateToken] -> ShowS
$cshowList :: [CreateToken] -> ShowS
show :: CreateToken -> String
$cshow :: CreateToken -> String
showsPrec :: Int -> CreateToken -> ShowS
$cshowsPrec :: Int -> CreateToken -> ShowS
Prelude.Show, forall x. Rep CreateToken x -> CreateToken
forall x. CreateToken -> Rep CreateToken x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateToken x -> CreateToken
$cfrom :: forall x. CreateToken -> Rep CreateToken x
Prelude.Generic)
newCreateToken ::
Prelude.Text ->
Prelude.Text ->
CreateToken
newCreateToken :: Text -> Text -> CreateToken
newCreateToken Text
pLicenseArn_ Text
pClientToken_ =
CreateToken'
{ $sel:expirationInDays:CreateToken' :: Maybe Int
expirationInDays = forall a. Maybe a
Prelude.Nothing,
$sel:roleArns:CreateToken' :: Maybe [Text]
roleArns = forall a. Maybe a
Prelude.Nothing,
$sel:tokenProperties:CreateToken' :: Maybe [Text]
tokenProperties = forall a. Maybe a
Prelude.Nothing,
$sel:licenseArn:CreateToken' :: Text
licenseArn = Text
pLicenseArn_,
$sel:clientToken:CreateToken' :: Text
clientToken = Text
pClientToken_
}
createToken_expirationInDays :: Lens.Lens' CreateToken (Prelude.Maybe Prelude.Int)
createToken_expirationInDays :: Lens' CreateToken (Maybe Int)
createToken_expirationInDays = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateToken' {Maybe Int
expirationInDays :: Maybe Int
$sel:expirationInDays:CreateToken' :: CreateToken -> Maybe Int
expirationInDays} -> Maybe Int
expirationInDays) (\s :: CreateToken
s@CreateToken' {} Maybe Int
a -> CreateToken
s {$sel:expirationInDays:CreateToken' :: Maybe Int
expirationInDays = Maybe Int
a} :: CreateToken)
createToken_roleArns :: Lens.Lens' CreateToken (Prelude.Maybe [Prelude.Text])
createToken_roleArns :: Lens' CreateToken (Maybe [Text])
createToken_roleArns = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateToken' {Maybe [Text]
roleArns :: Maybe [Text]
$sel:roleArns:CreateToken' :: CreateToken -> Maybe [Text]
roleArns} -> Maybe [Text]
roleArns) (\s :: CreateToken
s@CreateToken' {} Maybe [Text]
a -> CreateToken
s {$sel:roleArns:CreateToken' :: Maybe [Text]
roleArns = Maybe [Text]
a} :: CreateToken) 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
createToken_tokenProperties :: Lens.Lens' CreateToken (Prelude.Maybe [Prelude.Text])
createToken_tokenProperties :: Lens' CreateToken (Maybe [Text])
createToken_tokenProperties = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateToken' {Maybe [Text]
tokenProperties :: Maybe [Text]
$sel:tokenProperties:CreateToken' :: CreateToken -> Maybe [Text]
tokenProperties} -> Maybe [Text]
tokenProperties) (\s :: CreateToken
s@CreateToken' {} Maybe [Text]
a -> CreateToken
s {$sel:tokenProperties:CreateToken' :: Maybe [Text]
tokenProperties = Maybe [Text]
a} :: CreateToken) 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
createToken_licenseArn :: Lens.Lens' CreateToken Prelude.Text
createToken_licenseArn :: Lens' CreateToken Text
createToken_licenseArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateToken' {Text
licenseArn :: Text
$sel:licenseArn:CreateToken' :: CreateToken -> Text
licenseArn} -> Text
licenseArn) (\s :: CreateToken
s@CreateToken' {} Text
a -> CreateToken
s {$sel:licenseArn:CreateToken' :: Text
licenseArn = Text
a} :: CreateToken)
createToken_clientToken :: Lens.Lens' CreateToken Prelude.Text
createToken_clientToken :: Lens' CreateToken Text
createToken_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateToken' {Text
clientToken :: Text
$sel:clientToken:CreateToken' :: CreateToken -> Text
clientToken} -> Text
clientToken) (\s :: CreateToken
s@CreateToken' {} Text
a -> CreateToken
s {$sel:clientToken:CreateToken' :: Text
clientToken = Text
a} :: CreateToken)
instance Core.AWSRequest CreateToken where
type AWSResponse CreateToken = CreateTokenResponse
request :: (Service -> Service) -> CreateToken -> Request CreateToken
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 CreateToken
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateToken)))
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 Text -> Maybe TokenType -> Int -> CreateTokenResponse
CreateTokenResponse'
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
"Token")
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
"TokenId")
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
"TokenType")
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 CreateToken where
hashWithSalt :: Int -> CreateToken -> Int
hashWithSalt Int
_salt CreateToken' {Maybe Int
Maybe [Text]
Text
clientToken :: Text
licenseArn :: Text
tokenProperties :: Maybe [Text]
roleArns :: Maybe [Text]
expirationInDays :: Maybe Int
$sel:clientToken:CreateToken' :: CreateToken -> Text
$sel:licenseArn:CreateToken' :: CreateToken -> Text
$sel:tokenProperties:CreateToken' :: CreateToken -> Maybe [Text]
$sel:roleArns:CreateToken' :: CreateToken -> Maybe [Text]
$sel:expirationInDays:CreateToken' :: CreateToken -> Maybe Int
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
expirationInDays
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
roleArns
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
tokenProperties
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
licenseArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
clientToken
instance Prelude.NFData CreateToken where
rnf :: CreateToken -> ()
rnf CreateToken' {Maybe Int
Maybe [Text]
Text
clientToken :: Text
licenseArn :: Text
tokenProperties :: Maybe [Text]
roleArns :: Maybe [Text]
expirationInDays :: Maybe Int
$sel:clientToken:CreateToken' :: CreateToken -> Text
$sel:licenseArn:CreateToken' :: CreateToken -> Text
$sel:tokenProperties:CreateToken' :: CreateToken -> Maybe [Text]
$sel:roleArns:CreateToken' :: CreateToken -> Maybe [Text]
$sel:expirationInDays:CreateToken' :: CreateToken -> Maybe Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
expirationInDays
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
roleArns
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
tokenProperties
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
licenseArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
clientToken
instance Data.ToHeaders CreateToken where
toHeaders :: CreateToken -> 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
"AWSLicenseManager.CreateToken" ::
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 CreateToken where
toJSON :: CreateToken -> Value
toJSON CreateToken' {Maybe Int
Maybe [Text]
Text
clientToken :: Text
licenseArn :: Text
tokenProperties :: Maybe [Text]
roleArns :: Maybe [Text]
expirationInDays :: Maybe Int
$sel:clientToken:CreateToken' :: CreateToken -> Text
$sel:licenseArn:CreateToken' :: CreateToken -> Text
$sel:tokenProperties:CreateToken' :: CreateToken -> Maybe [Text]
$sel:roleArns:CreateToken' :: CreateToken -> Maybe [Text]
$sel:expirationInDays:CreateToken' :: CreateToken -> Maybe Int
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"ExpirationInDays" 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 Int
expirationInDays,
(Key
"RoleArns" 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]
roleArns,
(Key
"TokenProperties" 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]
tokenProperties,
forall a. a -> Maybe a
Prelude.Just (Key
"LicenseArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
licenseArn),
forall a. a -> Maybe a
Prelude.Just (Key
"ClientToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
clientToken)
]
)
instance Data.ToPath CreateToken where
toPath :: CreateToken -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateToken where
toQuery :: CreateToken -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateTokenResponse = CreateTokenResponse'
{
CreateTokenResponse -> Maybe Text
token :: Prelude.Maybe Prelude.Text,
CreateTokenResponse -> Maybe Text
tokenId :: Prelude.Maybe Prelude.Text,
CreateTokenResponse -> Maybe TokenType
tokenType :: Prelude.Maybe TokenType,
CreateTokenResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateTokenResponse -> CreateTokenResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateTokenResponse -> CreateTokenResponse -> Bool
$c/= :: CreateTokenResponse -> CreateTokenResponse -> Bool
== :: CreateTokenResponse -> CreateTokenResponse -> Bool
$c== :: CreateTokenResponse -> CreateTokenResponse -> Bool
Prelude.Eq, ReadPrec [CreateTokenResponse]
ReadPrec CreateTokenResponse
Int -> ReadS CreateTokenResponse
ReadS [CreateTokenResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateTokenResponse]
$creadListPrec :: ReadPrec [CreateTokenResponse]
readPrec :: ReadPrec CreateTokenResponse
$creadPrec :: ReadPrec CreateTokenResponse
readList :: ReadS [CreateTokenResponse]
$creadList :: ReadS [CreateTokenResponse]
readsPrec :: Int -> ReadS CreateTokenResponse
$creadsPrec :: Int -> ReadS CreateTokenResponse
Prelude.Read, Int -> CreateTokenResponse -> ShowS
[CreateTokenResponse] -> ShowS
CreateTokenResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateTokenResponse] -> ShowS
$cshowList :: [CreateTokenResponse] -> ShowS
show :: CreateTokenResponse -> String
$cshow :: CreateTokenResponse -> String
showsPrec :: Int -> CreateTokenResponse -> ShowS
$cshowsPrec :: Int -> CreateTokenResponse -> ShowS
Prelude.Show, forall x. Rep CreateTokenResponse x -> CreateTokenResponse
forall x. CreateTokenResponse -> Rep CreateTokenResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateTokenResponse x -> CreateTokenResponse
$cfrom :: forall x. CreateTokenResponse -> Rep CreateTokenResponse x
Prelude.Generic)
newCreateTokenResponse ::
Prelude.Int ->
CreateTokenResponse
newCreateTokenResponse :: Int -> CreateTokenResponse
newCreateTokenResponse Int
pHttpStatus_ =
CreateTokenResponse'
{ $sel:token:CreateTokenResponse' :: Maybe Text
token = forall a. Maybe a
Prelude.Nothing,
$sel:tokenId:CreateTokenResponse' :: Maybe Text
tokenId = forall a. Maybe a
Prelude.Nothing,
$sel:tokenType:CreateTokenResponse' :: Maybe TokenType
tokenType = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateTokenResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createTokenResponse_token :: Lens.Lens' CreateTokenResponse (Prelude.Maybe Prelude.Text)
createTokenResponse_token :: Lens' CreateTokenResponse (Maybe Text)
createTokenResponse_token = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateTokenResponse' {Maybe Text
token :: Maybe Text
$sel:token:CreateTokenResponse' :: CreateTokenResponse -> Maybe Text
token} -> Maybe Text
token) (\s :: CreateTokenResponse
s@CreateTokenResponse' {} Maybe Text
a -> CreateTokenResponse
s {$sel:token:CreateTokenResponse' :: Maybe Text
token = Maybe Text
a} :: CreateTokenResponse)
createTokenResponse_tokenId :: Lens.Lens' CreateTokenResponse (Prelude.Maybe Prelude.Text)
createTokenResponse_tokenId :: Lens' CreateTokenResponse (Maybe Text)
createTokenResponse_tokenId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateTokenResponse' {Maybe Text
tokenId :: Maybe Text
$sel:tokenId:CreateTokenResponse' :: CreateTokenResponse -> Maybe Text
tokenId} -> Maybe Text
tokenId) (\s :: CreateTokenResponse
s@CreateTokenResponse' {} Maybe Text
a -> CreateTokenResponse
s {$sel:tokenId:CreateTokenResponse' :: Maybe Text
tokenId = Maybe Text
a} :: CreateTokenResponse)
createTokenResponse_tokenType :: Lens.Lens' CreateTokenResponse (Prelude.Maybe TokenType)
createTokenResponse_tokenType :: Lens' CreateTokenResponse (Maybe TokenType)
createTokenResponse_tokenType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateTokenResponse' {Maybe TokenType
tokenType :: Maybe TokenType
$sel:tokenType:CreateTokenResponse' :: CreateTokenResponse -> Maybe TokenType
tokenType} -> Maybe TokenType
tokenType) (\s :: CreateTokenResponse
s@CreateTokenResponse' {} Maybe TokenType
a -> CreateTokenResponse
s {$sel:tokenType:CreateTokenResponse' :: Maybe TokenType
tokenType = Maybe TokenType
a} :: CreateTokenResponse)
createTokenResponse_httpStatus :: Lens.Lens' CreateTokenResponse Prelude.Int
createTokenResponse_httpStatus :: Lens' CreateTokenResponse Int
createTokenResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateTokenResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateTokenResponse' :: CreateTokenResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateTokenResponse
s@CreateTokenResponse' {} Int
a -> CreateTokenResponse
s {$sel:httpStatus:CreateTokenResponse' :: Int
httpStatus = Int
a} :: CreateTokenResponse)
instance Prelude.NFData CreateTokenResponse where
rnf :: CreateTokenResponse -> ()
rnf CreateTokenResponse' {Int
Maybe Text
Maybe TokenType
httpStatus :: Int
tokenType :: Maybe TokenType
tokenId :: Maybe Text
token :: Maybe Text
$sel:httpStatus:CreateTokenResponse' :: CreateTokenResponse -> Int
$sel:tokenType:CreateTokenResponse' :: CreateTokenResponse -> Maybe TokenType
$sel:tokenId:CreateTokenResponse' :: CreateTokenResponse -> Maybe Text
$sel:token:CreateTokenResponse' :: CreateTokenResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
token
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
tokenId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TokenType
tokenType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus