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

commonMain.tools.ozone.moderation.BlobView.kt Maven / Gradle / Ivy

The newest version!
@file:Suppress("DEPRECATION")

package tools.ozone.moderation

import kotlin.Long
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmInline
import kotlinx.serialization.KSerializer
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import sh.christian.ozone.api.Cid
import sh.christian.ozone.api.model.JsonContent
import sh.christian.ozone.api.model.Timestamp
import sh.christian.ozone.api.runtime.valueClassSerializer

@Serializable
public sealed interface BlobViewDetailsUnion {
  public class ImageDetailsSerializer : KSerializer by valueClassSerializer(
    serialName = "tools.ozone.moderation.defs#imageDetails",
    constructor = ::ImageDetails,
    valueProvider = ImageDetails::value,
    valueSerializerProvider = { tools.ozone.moderation.ImageDetails.serializer() },
  )

  @JvmInline
  @Serializable(with = ImageDetailsSerializer::class)
  @SerialName("tools.ozone.moderation.defs#imageDetails")
  public value class ImageDetails(
    public val `value`: tools.ozone.moderation.ImageDetails,
  ) : BlobViewDetailsUnion

  public class VideoDetailsSerializer : KSerializer by valueClassSerializer(
    serialName = "tools.ozone.moderation.defs#videoDetails",
    constructor = ::VideoDetails,
    valueProvider = VideoDetails::value,
    valueSerializerProvider = { tools.ozone.moderation.VideoDetails.serializer() },
  )

  @JvmInline
  @Serializable(with = VideoDetailsSerializer::class)
  @SerialName("tools.ozone.moderation.defs#videoDetails")
  public value class VideoDetails(
    public val `value`: tools.ozone.moderation.VideoDetails,
  ) : BlobViewDetailsUnion

  @JvmInline
  @Serializable
  public value class Unknown(
    public val `value`: JsonContent,
  ) : BlobViewDetailsUnion
}

@Serializable
public data class BlobView(
  public val cid: Cid,
  public val mimeType: String,
  public val size: Long,
  public val createdAt: Timestamp,
  public val details: BlobViewDetailsUnion? = null,
  public val moderation: Moderation? = null,
)




© 2015 - 2024 Weber Informatics LLC | Privacy Policy