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

commonMain.io.github.tim06.xrayConfiguration.outbounds.settings.WireguardOutboundConfigurationObject.kt Maven / Gradle / Ivy

package io.github.tim06.xrayConfiguration.outbounds.settings

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class WireguardOutboundConfigurationObject(
    @SerialName("secretKey")
    val secretKey: String,
    @SerialName("address")
    val address: List,
    @SerialName("peers")
    val peers: List,
    @SerialName("mtu")
    val mtu: Int,
    @SerialName("reserved")
    val reserved: List,
    @SerialName("workers")
    val workers: Int,
    @SerialName("domainStrategy")
    val domainStrategy: DomainStrategy,
) : OutboundConfigurationObject {

    @Serializable
    data class Peer(
        @SerialName("endpoint")
        val endpoint: String,
        @SerialName("publicKey")
        val publicKey: String,
        @SerialName("preSharedKey")
        val preSharedKey: String,
        @SerialName("keepAlive")
        val keepAlive: Int,
        @SerialName("allowedIPs")
        val allowedIPs: List,
    )

    @Serializable
    enum class DomainStrategy {
        @SerialName("ForceIPv6v4")
        ForceIPv6v4,

        @SerialName("ForceIPv6")
        ForceIPv6,

        @SerialName("ForceIPv4v6")
        ForceIPv4v6,

        @SerialName("ForceIPv4")
        ForceIPv4,

        @SerialName("ForceIP")
        ForceIP,
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy