1
1
package com .github .dockerjava .api .model ;
2
2
3
+ import com .fasterxml .jackson .annotation .JsonIgnore ;
3
4
import com .fasterxml .jackson .annotation .JsonIgnoreProperties ;
4
5
import com .fasterxml .jackson .annotation .JsonProperty ;
5
6
import com .github .dockerjava .core .RemoteApiVersion ;
8
9
import org .apache .commons .lang .builder .ToStringBuilder ;
9
10
10
11
import javax .annotation .CheckForNull ;
12
+ import java .util .Arrays ;
11
13
import java .util .List ;
12
14
13
15
/**
16
+ * Types taken form
17
+ * {@see https://github.com/docker/engine-api/blob/release/1.10/types/network/network.go}
18
+ * Docker named it EndpointSettings
19
+ *
14
20
* @see ContainerNetworkSettings
15
21
* @author Kanstantsin Shautsou
16
22
*/
@@ -20,16 +26,16 @@ public class ContainerNetwork {
20
26
* FIXME verify
21
27
*/
22
28
@ JsonProperty ("IPAMConfig" )
23
- private Network . Ipam . Config ipamConfig ;
29
+ private Ipam ipamConfig ;
24
30
25
31
/**
26
32
* FIXME verify
27
33
*/
28
34
@ JsonProperty ("Links" )
29
- private List < String > links ;
35
+ private Links links ;
30
36
31
37
/**
32
- * FIXME no docs, unknown field.
38
+ * Add network-scoped alias for the container
33
39
* Type picked from `docker/vendor/src/github.com/docker/engine-api/types/network/network.go`
34
40
*
35
41
* @since {@link RemoteApiVersion#VERSION_1_22}
@@ -80,6 +86,14 @@ public ContainerNetwork withAliases(List<String> aliases) {
80
86
return this ;
81
87
}
82
88
89
+ /**
90
+ * @see #aliases
91
+ */
92
+ public ContainerNetwork withAliases (String ... aliases ) {
93
+ this .aliases = Arrays .asList (aliases );
94
+ return this ;
95
+ }
96
+
83
97
/**
84
98
* @see #endpointId
85
99
*/
@@ -155,7 +169,7 @@ public String getIpAddress() {
155
169
/**
156
170
* @see #ipAddress
157
171
*/
158
- public ContainerNetwork withIpAddress (String ipAddress ) {
172
+ public ContainerNetwork withIpv4Address (String ipAddress ) {
159
173
this .ipAddress = ipAddress ;
160
174
return this ;
161
175
}
@@ -164,14 +178,14 @@ public ContainerNetwork withIpAddress(String ipAddress) {
164
178
* @see #ipamConfig
165
179
*/
166
180
@ CheckForNull
167
- public Network . Ipam . Config getIpamConfig () {
181
+ public Ipam getIpamConfig () {
168
182
return ipamConfig ;
169
183
}
170
184
171
185
/**
172
186
* @see #ipamConfig
173
187
*/
174
- public ContainerNetwork withIpamConfig (Network . Ipam . Config ipamConfig ) {
188
+ public ContainerNetwork withIpamConfig (Ipam ipamConfig ) {
175
189
this .ipamConfig = ipamConfig ;
176
190
return this ;
177
191
}
@@ -212,15 +226,24 @@ public ContainerNetwork withIpV6Gateway(String ipV6Gateway) {
212
226
* @see #links
213
227
*/
214
228
@ CheckForNull
215
- public List <String > getLinks () {
216
- return links ;
229
+ @ JsonIgnore
230
+ public Link [] getLinks () {
231
+ return links == null ? new Link [0 ] : links .getLinks ();
232
+ }
233
+
234
+ /**
235
+ * @see #links
236
+ */
237
+ public ContainerNetwork withLinks (List <Link > links ) {
238
+ this .links = new Links (links );
239
+ return this ;
217
240
}
218
241
219
242
/**
220
243
* @see #links
221
244
*/
222
- public ContainerNetwork withLinks (List < String > links ) {
223
- this .links = links ;
245
+ public ContainerNetwork withLinks (Link ... links ) {
246
+ this .links = new Links ( links ) ;
224
247
return this ;
225
248
}
226
249
@@ -270,4 +293,34 @@ public boolean equals(Object o) {
270
293
public int hashCode () {
271
294
return HashCodeBuilder .reflectionHashCode (this );
272
295
}
296
+
297
+ /**
298
+ * Docker named it EndpointIPAMConfig
299
+ */
300
+ public static class Ipam {
301
+
302
+ @ JsonProperty ("IPv4Address" )
303
+ private String ipv4Address ;
304
+
305
+ @ JsonProperty ("IPv6Address" )
306
+ private String ipv6Address ;
307
+
308
+ public String getIpv4Address () {
309
+ return ipv4Address ;
310
+ }
311
+
312
+ public String getIpv6Address () {
313
+ return ipv6Address ;
314
+ }
315
+
316
+ public Ipam withIpv4Address (String ipv4Address ) {
317
+ this .ipv4Address = ipv4Address ;
318
+ return this ;
319
+ }
320
+
321
+ public Ipam withIpv6Address (String ipv6Address ) {
322
+ this .ipv6Address = ipv6Address ;
323
+ return this ;
324
+ }
325
+ }
273
326
}
0 commit comments