10Duke Scale C++ Client
All Classes Namespaces Files Functions Variables Typedefs Enumerations Pages
tenduke::se Namespace Reference

Detailed Description

Classes, functions and globals of 10Duke Scale C++ Client.

This namespace contains classes, functions and globals related to 10Duke Scale.

Namespaces

namespace  http
 10Duke Scale C++ Client -specific HTTP implementation.
 
namespace  licensing
 Licensing operations for 10Duke Scale.
 

Classes

class  APIRequest
 Interface for 10Duke Scale API-requests. More...
 
class  BackendConfiguration
 Configuration for the 10Duke Scale backend to bootstrap the client. More...
 
class  ClientProperties
 Properties of the client ("Client application claims") More...
 
class  ClientPropertiesBuilder
 For building the client properties fluently. More...
 
struct  ClientState
 Container for client state. More...
 
class  DeserializeStateFromJSON
 Service for deserializing client state from JSON. More...
 
class  Filter
 Filter-definition for the REST-API. More...
 
class  Paging
 Paging-ocnfiguration for the REST-API. More...
 
class  SerializeStateToJSON
 Serializes client state to JSON. More...
 
class  StatefulAPIRequest
 A tenduke::se::APIRequest, which uses tenduke::oidc::OIDCSession to maintain request authorization. More...
 
class  TendukeClient
 Base 10Duke Scale client, usable standalone for licensekey-based operations without user login. More...
 
class  TendukeClientWithOIDCSession
 10Duke Scale client, which authorizes requests with OIDC/OAuth and maintains the OIDC session state automatically. More...
 
class  TendukeClientWithOIDCSessionImpl
 Implementation of tenduke::se::TendukeClientWithOIDCSession. More...
 

Functions

std::unique_ptr<::tenduke::se::TendukeClientWithOIDCSessioncreateClient (const ::tenduke::TendukeServices &services, const ::tenduke::se::ClientProperties &clientProperties, const ::tenduke::se::BackendConfiguration &backendConfiguration, const std::shared_ptr< const ::tenduke::oauth::OAuthConfiguration > &oauthConfiguration, const std::shared_ptr< const ::tenduke::oidc::OIDCConfiguration > &oidcConfiguration, const ::tenduke::se::ClientState &initialState, const std::shared_ptr<::tenduke::oidc::OIDCSession > &oidcSession)
 Creates the 10Duke Scale client with given parameters.
 
std::unique_ptr<::tenduke::se::TendukeClientWithOIDCSessioncreateTendukeClientForBrowser (const std::string &clientIdentifier, const ::tenduke::se::BackendConfiguration &backendConfiguration, const ::tenduke::se::ClientProperties &clientProperties, const ::tenduke::oauth::OAuthBackendConfiguration &oauthBackendConfiguration, const ::tenduke::oidc::OIDCConfiguration &oidcConfiguration, const ::tenduke::oidc::osbrowser::BrowserAuthenticationConfig &authenticationConfig, const std::string &initialStateAsJSON="", const ::tenduke::ServiceConfiguration &serviceConfiguration=::tenduke::ServiceConfiguration())
 Creates stateful client, which authenticates user with default OS-browser, using provided configuration.
 
std::unique_ptr<::tenduke::se::TendukeClientWithOIDCSessioncreateTendukeClientForBrowserUsingAutodiscovery (const std::string &clientIdentifier, const ::tenduke::se::BackendConfiguration &backendConfiguration, const ::tenduke::se::ClientProperties &clientProperties, const std::string &oidcAutodiscoveryURL, const ::tenduke::oidc::osbrowser::BrowserAuthenticationConfig &authenticationConfig, const std::string &initialStateAsJSON="", const ::tenduke::ServiceConfiguration &serviceConfiguration=::tenduke::ServiceConfiguration())
 Creates stateful client, which authenticates user with default OS-browser, using OIDC auto-discovery.
 
std::unique_ptr<::tenduke::se::TendukeClientWithOIDCSessioncreateTendukeClientForDevice (const std::string &clientIdentifier, const ::tenduke::se::BackendConfiguration &backendConfiguration, const ::tenduke::se::ClientProperties &clientProperties, const ::tenduke::oauth::OAuthBackendConfiguration &oauthBackendConfiguration, const ::tenduke::oidc::OIDCConfiguration &oidcConfiguration, const ::tenduke::oidc::device::DeviceAuthenticationConfig &authenticationConfig, const std::string &initialStateAsJSON="", const ::tenduke::ServiceConfiguration &serviceConfiguration=::tenduke::ServiceConfiguration())
 Creates stateful client, which authenticates user with OAuth Device Flow, using provided configuration.
 
std::unique_ptr<::tenduke::se::TendukeClientWithOIDCSessioncreateTendukeClientForDeviceClientUsingAutodiscovery (const std::string &clientIdentifier, const ::tenduke::se::BackendConfiguration &backendConfiguration, const ::tenduke::se::ClientProperties &clientProperties, const std::string &oidcAutodiscoveryURL, const ::tenduke::oidc::device::DeviceAuthenticationConfig &authenticationConfig, const std::string &initialStateAsJSON="", const ::tenduke::ServiceConfiguration &serviceConfiguration=::tenduke::ServiceConfiguration())
 Creates stateful client, which authenticates user with OAuth Device Flow, using OIDC auto-discovery.
 
std::unique_ptr<::tenduke::se::TendukeClientcreateTendukeClientForLicenseKeyUsage (const std::string &clientIdentifier, const ::tenduke::se::BackendConfiguration &backendConfiguration, const ::tenduke::se::ClientProperties &clientProperties, const std::string &initialStateAsJson="", const ::tenduke::ServiceConfiguration &serviceConfiguration=::tenduke::ServiceConfiguration())
 Creates a client for using license-key -operations only.
 

Variables

const std::string VERSION = "version"
 
const std::string LEASE_TOKEN = "token"
 
const std::string LEASE_LICENSEKEY = "licenseKey"
 
const std::string LEASE_METERED = "metered"
 
const std::string LEASES = "leases"
 
const std::string KEY_TYPE = "type"
 
const std::string KEY_PEM = "pem"
 
const std::string KEYS = "tokenValidationKeys"
 
const std::string LICENSING = "licensing"
 
const std::string OIDC_ACCESSTOKEN = "accessToken"
 
const std::string OIDC_REFRESHTOKEN = "refreshToken"
 
const std::string OIDC_IDTOKEN = "idToken"
 
const std::string OIDC_EXPIRESAT = "expiresAt"
 
const std::string OIDC_SESSION = "session"
 
const std::string OIDC = "oidc"
 
const std::string OIDC_USERINFOENDPOINT = "userinfoEndpoint"
 
const std::string OIDC_ISSUER = "issuer"
 
const std::string OIDC_DIGESTALGORITHM = "digestAlgorithm"
 
const std::string OIDC_VERIFICATIONKEY = "verificationKey"
 
const std::string OIDC_CONFIGURATION = "configuration"
 
const std::string OAUTH_CLIENTID = "clientId"
 
const std::string OAUTH_CLIENTSECRET = "clientSecret"
 
const std::string OAUTH_FLOW = "flow"
 
const std::string OAUTH_REDIRECTURI = "redirectURI"
 
const std::string OAUTH_AUTHORIZATIONENDPOINTURL = "authorizationEndpointUrl"
 
const std::string OAUTH_TOKENENDPOINTURL = "tokenEndpointUrl"
 
const std::string OAUTH_DEVICEAUTHORIZATIONENDPOINTURL = "deviceAuthorizationEndpointUrl"
 
const std::string OAUTH_CONFIGURATION = "configuration"
 
const std::string OAUTH = "oauth"
 

Function Documentation

◆ createClient()

std::unique_ptr<::tenduke::se::TendukeClientWithOIDCSession > tenduke::se::createClient ( const ::tenduke::TendukeServices & services,
const ::tenduke::se::ClientProperties & clientProperties,
const ::tenduke::se::BackendConfiguration & backendConfiguration,
const std::shared_ptr< const ::tenduke::oauth::OAuthConfiguration > & oauthConfiguration,
const std::shared_ptr< const ::tenduke::oidc::OIDCConfiguration > & oidcConfiguration,
const ::tenduke::se::ClientState & initialState,
const std::shared_ptr<::tenduke::oidc::OIDCSession > & oidcSession )

Creates the 10Duke Scale client with given parameters.

This factory function is mostly for internal use.

Parameters
services-
clientProperties-
backendConfiguration-
oauthConfiguration-
oidcConfiguration-
initialState-
oidcSession-
Returns
-

◆ createTendukeClientForBrowser()

std::unique_ptr<::tenduke::se::TendukeClientWithOIDCSession > tenduke::se::createTendukeClientForBrowser ( const std::string & clientIdentifier,
const ::tenduke::se::BackendConfiguration & backendConfiguration,
const ::tenduke::se::ClientProperties & clientProperties,
const ::tenduke::oauth::OAuthBackendConfiguration & oauthBackendConfiguration,
const ::tenduke::oidc::OIDCConfiguration & oidcConfiguration,
const ::tenduke::oidc::osbrowser::BrowserAuthenticationConfig & authenticationConfig,
const std::string & initialStateAsJSON = "",
const ::tenduke::ServiceConfiguration & serviceConfiguration = ::tenduke::ServiceConfiguration() )

Creates stateful client, which authenticates user with default OS-browser, using provided configuration.

Parameters
clientIdentifieridentifies the client, used as User-Agent in HTTP-requests
backendConfigurationconfiguration of 10Duke Scale backend
clientPropertiesclient properties, see the class for details
oauthBackendConfigurationOAuth backend configuration (for user authentication)
oidcConfigurationOIDC configuration (for user authentication)
authenticationConfigconfiguration for browser-based OIDC authentication
initialStateAsJSONinitial client state as JSON. Optional.
serviceConfigurationgeneric service configuration. Optional.
Returns
-

◆ createTendukeClientForBrowserUsingAutodiscovery()

std::unique_ptr<::tenduke::se::TendukeClientWithOIDCSession > tenduke::se::createTendukeClientForBrowserUsingAutodiscovery ( const std::string & clientIdentifier,
const ::tenduke::se::BackendConfiguration & backendConfiguration,
const ::tenduke::se::ClientProperties & clientProperties,
const std::string & oidcAutodiscoveryURL,
const ::tenduke::oidc::osbrowser::BrowserAuthenticationConfig & authenticationConfig,
const std::string & initialStateAsJSON = "",
const ::tenduke::ServiceConfiguration & serviceConfiguration = ::tenduke::ServiceConfiguration() )

Creates stateful client, which authenticates user with default OS-browser, using OIDC auto-discovery.

Parameters
clientIdentifieridentifies the client, used as User-Agent in HTTP-requests
backendConfiguration10Duke Scale backend configuration
clientPropertiesClient properties
oidcAutodiscoveryURLURL to OIDC-autodiscovery document
authenticationConfigconfiguration for browser-based OIDC authentication
initialStateAsJSONinitial client state as JSON. Optional.
serviceConfigurationgeneric service configuration. Optional.
Returns
-

◆ createTendukeClientForDevice()

std::unique_ptr<::tenduke::se::TendukeClientWithOIDCSession > tenduke::se::createTendukeClientForDevice ( const std::string & clientIdentifier,
const ::tenduke::se::BackendConfiguration & backendConfiguration,
const ::tenduke::se::ClientProperties & clientProperties,
const ::tenduke::oauth::OAuthBackendConfiguration & oauthBackendConfiguration,
const ::tenduke::oidc::OIDCConfiguration & oidcConfiguration,
const ::tenduke::oidc::device::DeviceAuthenticationConfig & authenticationConfig,
const std::string & initialStateAsJSON = "",
const ::tenduke::ServiceConfiguration & serviceConfiguration = ::tenduke::ServiceConfiguration() )

Creates stateful client, which authenticates user with OAuth Device Flow, using provided configuration.

Parameters
clientIdentifieridentifies the client, used as User-Agent in HTTP-requests
oauthBackendConfigurationOAuth backend configuration (for user authentication)
oidcConfigurationOIDC configuration (for user authentication)
backendConfiguration10Duke Scale backend configuration
clientPropertiesClient properties
authenticationConfig-
initialStateAsJSONInitial client state as JSON.
serviceConfiguration-
Returns
-

◆ createTendukeClientForDeviceClientUsingAutodiscovery()

std::unique_ptr<::TendukeClientWithOIDCSession > tenduke::se::createTendukeClientForDeviceClientUsingAutodiscovery ( const std::string & clientIdentifier,
const ::tenduke::se::BackendConfiguration & backendConfiguration,
const ::tenduke::se::ClientProperties & clientProperties,
const std::string & oidcAutodiscoveryURL,
const ::tenduke::oidc::device::DeviceAuthenticationConfig & authenticationConfig,
const std::string & initialStateAsJSON = "",
const ::tenduke::ServiceConfiguration & serviceConfiguration = ::tenduke::ServiceConfiguration() )

Creates stateful client, which authenticates user with OAuth Device Flow, using OIDC auto-discovery.

Parameters
clientIdentifieridentifies the client, used as User-Agent in HTTP-requests
backendConfiguration10Duke Scale backend configuration
clientPropertiesClient properties
oidcAutodiscoveryURLURL to OIDC discovery document
authenticationConfig-
initialStateAsJSONInitial client state as JSON.
serviceConfiguration-
Returns
-

◆ createTendukeClientForLicenseKeyUsage()

std::unique_ptr<::TendukeClient > tenduke::se::createTendukeClientForLicenseKeyUsage ( const std::string & clientIdentifier,
const ::tenduke::se::BackendConfiguration & backendConfiguration,
const ::tenduke::se::ClientProperties & clientProperties,
const std::string & initialStateAsJson = "",
const ::tenduke::ServiceConfiguration & serviceConfiguration = ::tenduke::ServiceConfiguration() )

Creates a client for using license-key -operations only.

This client does not maintain or do any logins and is really useful only for license-key operations (checkouts, heartbeats and releases or metered use with license key).

Calling any other endpoints of LicensingClient will cause errors.

Parameters
clientIdentifieridentifies the client, used as User-Agent in HTTP-requests
backendConfiguration10Duke Scale backend configuration
clientPropertiesClient properties
initialStateAsJsonInitial client state as JSON.
serviceConfigurationGeneric service configuration
Returns
-