All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.tools.ozone.team.Token.kt Maven / Gradle / Ivy

There is a newer version: 0.3.1
Show newest version
package tools.ozone.team

import kotlin.String
import kotlinx.serialization.KSerializer
import kotlinx.serialization.Serializable
import sh.christian.ozone.api.model.AtpEnum
import sh.christian.ozone.api.runtime.stringEnumSerializer

public class TokenSerializer : KSerializer by  stringEnumSerializer(Token::safeValueOf)

@Serializable(with = TokenSerializer::class)
public sealed class Token(
  override val `value`: String,
) : AtpEnum() {
  public data object RoleAdmin : Token("tools.ozone.team.defs#roleAdmin")

  public data object RoleModerator : Token("tools.ozone.team.defs#roleModerator")

  public data object RoleTriage : Token("tools.ozone.team.defs#roleTriage")

  public data class Unknown(
    public val rawValue: String,
  ) : Token(rawValue)

  public companion object {
    public fun safeValueOf(`value`: String): Token = when (value) {
      "tools.ozone.team.defs#roleAdmin" -> RoleAdmin
      "tools.ozone.team.defs#roleModerator" -> RoleModerator
      "tools.ozone.team.defs#roleTriage" -> RoleTriage
      else -> Unknown(value)
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy