public suspend fun token()

in runtime/src/commonMain/kotlin/space/jetbrains/api/runtime/SpaceAuth.kt [8:27]


    public suspend fun token(client: HttpClient, appInstance: SpaceAppInstance): SpaceTokenInfo

    public class Token private constructor(
        private val token: SpaceTokenInfo,
        private val gapSecondsForExpiredCheck: Long = 5,
    ) : SpaceAuth {
        public constructor(accessToken: String) : this(SpaceTokenInfo(accessToken, expires = null))

        public constructor(
            accessToken: String,
            expires: Instant? = null,
            gapSecondsForExpiredCheck: Long = 5,
        ) : this(SpaceTokenInfo(accessToken, expires), gapSecondsForExpiredCheck)

        /** If token is expired, throws [TokenExpiredException] */
        override suspend fun token(client: HttpClient, appInstance: SpaceAppInstance): SpaceTokenInfo {
            if (token.expired(gapSeconds = gapSecondsForExpiredCheck)) throw TokenExpiredException()
            return token
        }
    }