commonMain.com.atproto.moderation.createReport.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bluesky-jvm Show documentation
Show all versions of bluesky-jvm Show documentation
Bluesky Social API bindings for Kotlin.
The newest version!
@file:Suppress("DEPRECATION")
package com.atproto.moderation
import com.atproto.admin.RepoRef
import com.atproto.repo.StrongRef
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.Did
import sh.christian.ozone.api.model.Timestamp
import sh.christian.ozone.api.runtime.valueClassSerializer
@Serializable
public sealed interface CreateReportRequestSubjectUnion {
public class AdminRepoRefSerializer : KSerializer by valueClassSerializer(
serialName = "com.atproto.admin.defs#repoRef",
constructor = ::AdminRepoRef,
valueProvider = AdminRepoRef::value,
valueSerializerProvider = { RepoRef.serializer() },
)
@Serializable(with = AdminRepoRefSerializer::class)
@JvmInline
@SerialName("com.atproto.admin.defs#repoRef")
public value class AdminRepoRef(
public val `value`: RepoRef,
) : CreateReportRequestSubjectUnion
public class RepoStrongRefSerializer : KSerializer by valueClassSerializer(
serialName = "com.atproto.repo.strongRef",
constructor = ::RepoStrongRef,
valueProvider = RepoStrongRef::value,
valueSerializerProvider = { StrongRef.serializer() },
)
@Serializable(with = RepoStrongRefSerializer::class)
@JvmInline
@SerialName("com.atproto.repo.strongRef")
public value class RepoStrongRef(
public val `value`: StrongRef,
) : CreateReportRequestSubjectUnion
}
@Serializable
public sealed interface CreateReportResponseSubjectUnion {
public class AdminRepoRefSerializer : KSerializer by valueClassSerializer(
serialName = "com.atproto.admin.defs#repoRef",
constructor = ::AdminRepoRef,
valueProvider = AdminRepoRef::value,
valueSerializerProvider = { RepoRef.serializer() },
)
@Serializable(with = AdminRepoRefSerializer::class)
@JvmInline
@SerialName("com.atproto.admin.defs#repoRef")
public value class AdminRepoRef(
public val `value`: RepoRef,
) : CreateReportResponseSubjectUnion
public class RepoStrongRefSerializer : KSerializer by valueClassSerializer(
serialName = "com.atproto.repo.strongRef",
constructor = ::RepoStrongRef,
valueProvider = RepoStrongRef::value,
valueSerializerProvider = { StrongRef.serializer() },
)
@Serializable(with = RepoStrongRefSerializer::class)
@JvmInline
@SerialName("com.atproto.repo.strongRef")
public value class RepoStrongRef(
public val `value`: StrongRef,
) : CreateReportResponseSubjectUnion
}
/**
* @param reasonType Indicates the broad category of violation the report is for.
* @param reason Additional context about the content and violation.
*/
@Serializable
public data class CreateReportRequest(
/**
* Indicates the broad category of violation the report is for.
*/
public val reasonType: Token,
/**
* Additional context about the content and violation.
*/
public val reason: String? = null,
public val subject: CreateReportRequestSubjectUnion,
) {
init {
require(reason == null || reason.count() <= 20_000) {
"reason.count() must be <= 20_000, but was ${reason?.count()}"
}
}
}
@Serializable
public data class CreateReportResponse(
public val id: Long,
public val reasonType: Token,
public val reason: String? = null,
public val subject: CreateReportResponseSubjectUnion,
public val reportedBy: Did,
public val createdAt: Timestamp,
) {
init {
require(reason == null || reason.count() <= 20_000) {
"reason.count() must be <= 20_000, but was ${reason?.count()}"
}
}
}