"""
Client automatically generated by SDKgen please do not edit this file manually
https://sdkgen.app
"""

import sdkgen

from authorization_tag import AuthorizationTag
from system_tag import SystemTag
from consumer_tag import ConsumerTag
from backend_tag import BackendTag

class Client(sdkgen.ClientAbstract):
    def __init__(self, base_url: str, credentials: sdkgen.CredentialsInterface):
        super().__init__(base_url, credentials)
    pass

    def authorization(self) -> AuthorizationTag:
        return AuthorizationTag(
            self.http_client,
            self.parser
        )
    pass

    def system(self) -> SystemTag:
        return SystemTag(
            self.http_client,
            self.parser
        )
    pass

    def consumer(self) -> ConsumerTag:
        return ConsumerTag(
            self.http_client,
            self.parser
        )
    pass

    def backend(self) -> BackendTag:
        return BackendTag(
            self.http_client,
            self.parser
        )
    pass



    @staticmethod
    def build(clientId: str, clientSecret: str, tokenStore: sdkgen.TokenStoreInterface, scopes: List[str]):
        return Client("https://api.typehub.cloud/", sdkgen.OAuth2(clientId, clientSecret, "https://api.typehub.cloud/authorization/token", "", tokenStore, scopes))
    pass
