From 6448bf0b706aa9dc984c73f273ae1c62bcb24681 Mon Sep 17 00:00:00 2001 From: Natan Vieira do Nascimento Date: Fri, 18 Aug 2023 17:47:04 -0300 Subject: [PATCH] Add `networkSettings` property to container inspection --- api/yoki.api | 66 ++++++++++++++++++- .../yoki/models/container/Container.kt | 22 +++++++ 2 files changed, 85 insertions(+), 3 deletions(-) diff --git a/api/yoki.api b/api/yoki.api index 1a27de5c..885661ba 100644 --- a/api/yoki.api +++ b/api/yoki.api @@ -1218,7 +1218,7 @@ public final class me/devnatan/yoki/models/ThrottleDevice$Companion { public final class me/devnatan/yoki/models/container/Container { public static final field Companion Lme/devnatan/yoki/models/container/Container$Companion; - public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/devnatan/yoki/models/container/ContainerState;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/devnatan/yoki/models/container/ContainerState;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;Lme/devnatan/yoki/models/container/NetworkSettings;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V public final fun component1 ()Ljava/lang/String; public final fun component10 ()Ljava/lang/String; public final fun component11 ()Ljava/lang/String; @@ -1232,6 +1232,7 @@ public final class me/devnatan/yoki/models/container/Container { public final fun component19 ()Ljava/lang/Long; public final fun component2 ()Ljava/lang/String; public final fun component20 ()Ljava/lang/Long; + public final fun component21 ()Lme/devnatan/yoki/models/container/NetworkSettings; public final fun component3 ()Ljava/lang/String; public final fun component4 ()Ljava/util/List; public final fun component5 ()Lme/devnatan/yoki/models/container/ContainerState; @@ -1239,8 +1240,8 @@ public final class me/devnatan/yoki/models/container/Container { public final fun component7 ()Ljava/lang/String; public final fun component8 ()Ljava/lang/String; public final fun component9 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/devnatan/yoki/models/container/ContainerState;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;)Lme/devnatan/yoki/models/container/Container; - public static synthetic fun copy$default (Lme/devnatan/yoki/models/container/Container;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/devnatan/yoki/models/container/ContainerState;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;ILjava/lang/Object;)Lme/devnatan/yoki/models/container/Container; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/devnatan/yoki/models/container/ContainerState;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;Lme/devnatan/yoki/models/container/NetworkSettings;)Lme/devnatan/yoki/models/container/Container; + public static synthetic fun copy$default (Lme/devnatan/yoki/models/container/Container;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/devnatan/yoki/models/container/ContainerState;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;Lme/devnatan/yoki/models/container/NetworkSettings;ILjava/lang/Object;)Lme/devnatan/yoki/models/container/Container; public fun equals (Ljava/lang/Object;)Z public final fun getAppArmorProfile ()Ljava/lang/String; public final fun getArgs ()Ljava/util/List; @@ -1255,6 +1256,7 @@ public final class me/devnatan/yoki/models/container/Container { public final fun getLogsPath ()Ljava/lang/String; public final fun getMountLabel ()Ljava/lang/String; public final fun getName ()Ljava/lang/String; + public final fun getNetworkSettings ()Lme/devnatan/yoki/models/container/NetworkSettings; public final fun getPath ()Ljava/lang/String; public final fun getPlatform ()Ljava/lang/String; public final fun getProcessLabel ()Ljava/lang/String; @@ -2037,6 +2039,64 @@ public final class me/devnatan/yoki/models/container/ContainerWaitResult$Error$C public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class me/devnatan/yoki/models/container/NetworkSettings { + public static final field Companion Lme/devnatan/yoki/models/container/NetworkSettings$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;ZLjava/lang/String;ILjava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component10 ()Ljava/lang/String; + public final fun component11 ()Ljava/lang/String; + public final fun component12 ()Ljava/util/Map; + public final fun component13 ()Ljava/lang/String; + public final fun component14 ()Ljava/lang/String; + public final fun component15 ()Ljava/lang/String; + public final fun component16 ()Ljava/util/List; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Z + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()I + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/Integer; + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Ljava/lang/Integer; + public final fun copy (Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;ILjava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Lme/devnatan/yoki/models/container/NetworkSettings; + public static synthetic fun copy$default (Lme/devnatan/yoki/models/container/NetworkSettings;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;ILjava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lme/devnatan/yoki/models/container/NetworkSettings; + public fun equals (Ljava/lang/Object;)Z + public final fun getBridge ()Ljava/lang/String; + public final fun getEndpointId ()Ljava/lang/String; + public final fun getGateway ()Ljava/lang/String; + public final fun getGlobalIPv6Address ()Ljava/lang/String; + public final fun getGlobalIPv6PrefixLength ()Ljava/lang/Integer; + public final fun getHairpinMode ()Z + public final fun getIpAddress ()Ljava/lang/String; + public final fun getIpAddressPrefixLength ()Ljava/lang/Integer; + public final fun getIpv6Gateway ()Ljava/lang/String; + public final fun getLinkLocalIPv6Address ()Ljava/lang/String; + public final fun getLinkLocalIPv6PrefixLength ()I + public final fun getMacAddress ()Ljava/lang/String; + public final fun getNetworks ()Ljava/util/List; + public final fun getPorts ()Ljava/util/Map; + public final fun getSandboxId ()Ljava/lang/String; + public final fun getSandboxKey ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/devnatan/yoki/models/container/NetworkSettings;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/devnatan/yoki/models/container/NetworkSettings$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/devnatan/yoki/models/container/NetworkSettings$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/devnatan/yoki/models/container/NetworkSettings; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/devnatan/yoki/models/container/NetworkSettings;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/devnatan/yoki/models/container/NetworkSettings$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class me/devnatan/yoki/models/exec/ExecCreateOptions { public static final field Companion Lme/devnatan/yoki/models/exec/ExecCreateOptions$Companion; public fun ()V diff --git a/src/commonMain/kotlin/me/devnatan/yoki/models/container/Container.kt b/src/commonMain/kotlin/me/devnatan/yoki/models/container/Container.kt index e477a375..481d6b97 100644 --- a/src/commonMain/kotlin/me/devnatan/yoki/models/container/Container.kt +++ b/src/commonMain/kotlin/me/devnatan/yoki/models/container/Container.kt @@ -3,6 +3,7 @@ package me.devnatan.yoki.models.container import kotlinx.datetime.Instant import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable +import me.devnatan.yoki.models.network.EndpointSettings @Serializable public data class Container internal constructor( @@ -26,7 +27,28 @@ public data class Container internal constructor( @SerialName("ExecIDs") val execIds: List? = null, @SerialName("SizeRw") val sizeRw: Long? = null, @SerialName("SizeRootFs") val sizeRootFs: Long? = null, + @SerialName("NetworkSettings") val networkSettings: NetworkSettings, ) { val createdAt: Instant by lazy { Instant.parse(createdAtRaw) } } + +@Serializable +public data class NetworkSettings internal constructor( + @SerialName("Bridge") public val bridge: String, + @SerialName("SandboxID") public val sandboxId: String, + @SerialName("HairpinMode") public val hairpinMode: Boolean, + @SerialName("LinkLocalIPv6Address") public val linkLocalIPv6Address: String, + @SerialName("LinkLocalIPv6PrefixLen") public val linkLocalIPv6PrefixLength: Int, + @SerialName("GlobalIPv6Address") public val globalIPv6Address: String? = null, + @SerialName("GlobalIPv6PrefixLen") public val globalIPv6PrefixLength: Int? = null, + @SerialName("IPAddress") public val ipAddress: String? = null, + @SerialName("IPPrefixLen") public val ipAddressPrefixLength: Int? = null, + @SerialName("IPv6Gateway") public val ipv6Gateway: String? = null, + @SerialName("MacAddress") public val macAddress: String? = null, + @SerialName("Ports") public val ports: Map> = emptyMap(), + @SerialName("SandboxKey") public val sandboxKey: String, + @SerialName("EndpointID") public val endpointId: String, + @SerialName("Gateway") public val gateway: String, + @SerialName("Networks") public val networks: List = emptyList(), +)