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

commonMain.com.atproto.sync.listBlobs.kt Maven / Gradle / Ivy

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

package com.atproto.sync

import kotlin.Any
import kotlin.Long
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlinx.collections.immutable.toImmutableList
import kotlinx.serialization.Serializable
import sh.christian.ozone.api.Cid
import sh.christian.ozone.api.Did
import sh.christian.ozone.api.model.ReadOnlyList

/**
 * @param did The DID of the repo.
 * @param since Optional revision of the repo to list blobs since.
 */
@Serializable
public data class ListBlobsQueryParams(
  /**
   * The DID of the repo.
   */
  public val did: Did,
  /**
   * Optional revision of the repo to list blobs since.
   */
  public val since: String? = null,
  public val limit: Long? = 500,
  public val cursor: String? = null,
) {
  init {
    require(limit == null || limit >= 1) {
      "limit must be >= 1, but was $limit"
    }
    require(limit == null || limit <= 1_000) {
      "limit must be <= 1_000, but was $limit"
    }
  }

  public fun asList(): ReadOnlyList> = buildList {
    add("did" to did)
    add("since" to since)
    add("limit" to limit)
    add("cursor" to cursor)
  }.toImmutableList()
}

@Serializable
public data class ListBlobsResponse(
  public val cursor: String? = null,
  public val cids: ReadOnlyList,
)




© 2015 - 2024 Weber Informatics LLC | Privacy Policy