commonMain.com.atproto.sync.subscribeReposCommit.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.sync
import kotlin.Boolean
import kotlin.ByteArray
import kotlin.Deprecated
import kotlin.Long
import kotlin.String
import kotlin.Suppress
import kotlinx.serialization.Serializable
import kotlinx.serialization.cbor.ByteString
import sh.christian.ozone.api.Did
import sh.christian.ozone.api.model.ReadOnlyList
import sh.christian.ozone.api.model.Timestamp
/**
* Represents an update of repository state. Note that empty commits are allowed, which include no
* repo data changes, but an update to rev and signature.
*
* @param seq The stream sequence number of this message.
* @param tooBig Indicates that this commit contained too many ops, or data size was too large.
* Consumers will need to make a separate request to get missing data.
* @param repo The repo this event comes from.
* @param commit Repo commit object CID.
* @param rev The rev of the emitted commit. Note that this information is also in the commit object
* included in blocks, unless this is a tooBig event.
* @param since The rev of the last emitted commit from this repo (if any).
* @param blocks CAR file containing relevant blocks, as a diff since the previous repo state.
* @param time Timestamp of when this message was originally broadcast.
*/
@Serializable
public data class SubscribeReposCommit(
/**
* The stream sequence number of this message.
*/
public val seq: Long,
@Deprecated("DEPRECATED -- unused")
public val rebase: Boolean,
/**
* Indicates that this commit contained too many ops, or data size was too large. Consumers will
* need to make a separate request to get missing data.
*/
public val tooBig: Boolean,
/**
* The repo this event comes from.
*/
public val repo: Did,
/**
* Repo commit object CID.
*/
@ByteString
public val commit: ByteArray,
@Deprecated("DEPRECATED -- unused. WARNING -- nullable and optional; stick with optional to ensure golang interoperability.")
@ByteString
public val prev: ByteArray? = null,
/**
* The rev of the emitted commit. Note that this information is also in the commit object included
* in blocks, unless this is a tooBig event.
*/
public val rev: String,
/**
* The rev of the last emitted commit from this repo (if any).
*/
public val since: String? = null,
/**
* CAR file containing relevant blocks, as a diff since the previous repo state.
*/
@ByteString
public val blocks: ByteArray,
public val ops: ReadOnlyList,
@ByteString
public val blobs: ReadOnlyList,
/**
* Timestamp of when this message was originally broadcast.
*/
public val time: Timestamp,
) {
init {
require(blocks.count() <= 1_000_000) {
"blocks.count() must be <= 1_000_000, but was ${blocks.count()}"
}
require(ops.count() <= 200) {
"ops.count() must be <= 200, but was ${ops.count()}"
}
}
}