fdroid-client/index/src/commonMain/kotlin/org/fdroid/index/v2/IndexV2.kt

67 lines
1.5 KiB
Kotlin

package org.fdroid.index.v2
import kotlinx.serialization.Serializable
@Serializable
public data class EntryV2(
val timestamp: Long,
val version: Long,
val maxAge: Int,
val index: FileV2,
val diffs: Map<String, FileV2>,
)
@Serializable
public data class FileV2(
val name: String,
val sha256: String? = null,
val size: Long? = null,
)
@Serializable
public data class IndexV2(
val repo: RepoV2,
val packages: Map<String, PackageV2>,
)
@Serializable
public data class RepoV2(
val name: String,
val icon: FileV2? = null,
val address: String,
val webBaseUrl: String?,
val description: LocalizedTextV2 = emptyMap(),
val mirrors: List<MirrorV2> = emptyList(),
val timestamp: Long,
val antiFeatures: Map<String, AntiFeatureV2> = emptyMap(),
val categories: Map<String, CategoryV2> = emptyMap(),
val releaseChannels: Map<String, ReleaseChannelV2> = emptyMap(),
)
public typealias LocalizedTextV2 = Map<String, String>
public typealias LocalizedFileV2 = Map<String, FileV2>
public typealias LocalizedFileListV2 = Map<String, List<FileV2>>
@Serializable
public data class MirrorV2(
val url: String,
val location: String? = null,
)
@Serializable
public data class AntiFeatureV2(
val icon: FileV2,
val description: LocalizedTextV2,
)
@Serializable
public data class CategoryV2(
val icon: FileV2,
val description: LocalizedTextV2,
)
@Serializable
public data class ReleaseChannelV2(
val description: LocalizedTextV2,
)