module Network.AWS.STS.Types
(
STS
, RESTError
, ns
, Credentials
, credentials
, cAccessKeyId
, cExpiration
, cSecretAccessKey
, cSessionToken
, FederatedUser
, federatedUser
, fuArn
, fuFederatedUserId
, AssumedRoleUser
, assumedRoleUser
, aruArn
, aruAssumedRoleId
) where
import Network.AWS.Error
import Network.AWS.Prelude
import Network.AWS.Signing.V4
import qualified GHC.Exts
data STS
instance AWSService STS where
type Sg STS = V4
type Er STS = RESTError
service = Service
{ _svcEndpoint = global
, _svcAbbrev = "STS"
, _svcPrefix = "sts"
, _svcVersion = "2011-06-15"
, _svcTargetPrefix = Nothing
, _svcJSONVersion = Nothing
}
handle = restError statusSuccess
ns :: Text
ns = "https://sts.amazonaws.com/doc/2011-06-15/"
data Credentials = Credentials
{ _cAccessKeyId :: Text
, _cExpiration :: ISO8601
, _cSecretAccessKey :: Text
, _cSessionToken :: Text
} deriving (Eq, Ord, Show)
credentials :: Text
-> Text
-> Text
-> UTCTime
-> Credentials
credentials p1 p2 p3 p4 = Credentials
{ _cAccessKeyId = p1
, _cSecretAccessKey = p2
, _cSessionToken = p3
, _cExpiration = withIso _Time (const id) p4
}
cAccessKeyId :: Lens' Credentials Text
cAccessKeyId = lens _cAccessKeyId (\s a -> s { _cAccessKeyId = a })
cExpiration :: Lens' Credentials UTCTime
cExpiration = lens _cExpiration (\s a -> s { _cExpiration = a }) . _Time
cSecretAccessKey :: Lens' Credentials Text
cSecretAccessKey = lens _cSecretAccessKey (\s a -> s { _cSecretAccessKey = a })
cSessionToken :: Lens' Credentials Text
cSessionToken = lens _cSessionToken (\s a -> s { _cSessionToken = a })
instance FromXML Credentials where
parseXML x = Credentials
<$> x .@ "AccessKeyId"
<*> x .@ "Expiration"
<*> x .@ "SecretAccessKey"
<*> x .@ "SessionToken"
instance ToQuery Credentials where
toQuery Credentials{..} = mconcat
[ "AccessKeyId" =? _cAccessKeyId
, "Expiration" =? _cExpiration
, "SecretAccessKey" =? _cSecretAccessKey
, "SessionToken" =? _cSessionToken
]
data FederatedUser = FederatedUser
{ _fuArn :: Text
, _fuFederatedUserId :: Text
} deriving (Eq, Ord, Show)
federatedUser :: Text
-> Text
-> FederatedUser
federatedUser p1 p2 = FederatedUser
{ _fuFederatedUserId = p1
, _fuArn = p2
}
fuArn :: Lens' FederatedUser Text
fuArn = lens _fuArn (\s a -> s { _fuArn = a })
fuFederatedUserId :: Lens' FederatedUser Text
fuFederatedUserId =
lens _fuFederatedUserId (\s a -> s { _fuFederatedUserId = a })
instance FromXML FederatedUser where
parseXML x = FederatedUser
<$> x .@ "Arn"
<*> x .@ "FederatedUserId"
instance ToQuery FederatedUser where
toQuery FederatedUser{..} = mconcat
[ "Arn" =? _fuArn
, "FederatedUserId" =? _fuFederatedUserId
]
data AssumedRoleUser = AssumedRoleUser
{ _aruArn :: Text
, _aruAssumedRoleId :: Text
} deriving (Eq, Ord, Show)
assumedRoleUser :: Text
-> Text
-> AssumedRoleUser
assumedRoleUser p1 p2 = AssumedRoleUser
{ _aruAssumedRoleId = p1
, _aruArn = p2
}
aruArn :: Lens' AssumedRoleUser Text
aruArn = lens _aruArn (\s a -> s { _aruArn = a })
aruAssumedRoleId :: Lens' AssumedRoleUser Text
aruAssumedRoleId = lens _aruAssumedRoleId (\s a -> s { _aruAssumedRoleId = a })
instance FromXML AssumedRoleUser where
parseXML x = AssumedRoleUser
<$> x .@ "Arn"
<*> x .@ "AssumedRoleId"
instance ToQuery AssumedRoleUser where
toQuery AssumedRoleUser{..} = mconcat
[ "Arn" =? _aruArn
, "AssumedRoleId" =? _aruAssumedRoleId
]