Skip to content

Commit 6aa95c3

Browse files
authored
add support for DeviceRequests parameter (#1303)
1 parent 61e8c8f commit 6aa95c3

File tree

3 files changed

+92
-0
lines changed

3 files changed

+92
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
package com.github.dockerjava.api.model;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
import lombok.EqualsAndHashCode;
5+
import lombok.ToString;
6+
7+
import java.io.Serializable;
8+
import java.util.List;
9+
import java.util.Map;
10+
11+
@EqualsAndHashCode
12+
@ToString
13+
public class DeviceRequest implements Serializable {
14+
public static final long serialVersionUID = 1L;
15+
16+
@JsonProperty("Driver")
17+
private String driver;
18+
19+
@JsonProperty("Count")
20+
private Integer count;
21+
22+
@JsonProperty("DeviceIDs")
23+
private List<String> deviceIds;
24+
25+
@JsonProperty("Capabilities")
26+
private List<List<String>> capabilities;
27+
28+
@JsonProperty("Options")
29+
private Map<String, String> options;
30+
31+
public String getDriver() {
32+
return driver;
33+
}
34+
35+
public DeviceRequest withDriver(String driver) {
36+
this.driver = driver;
37+
return this;
38+
}
39+
40+
public Integer getCount() {
41+
return count;
42+
}
43+
44+
public DeviceRequest withCount(Integer count) {
45+
this.count = count;
46+
return this;
47+
}
48+
49+
public List<String> getDeviceIds() {
50+
return deviceIds;
51+
}
52+
53+
public DeviceRequest withDeviceIds(List<String> deviceIds) {
54+
this.deviceIds = deviceIds;
55+
return this;
56+
}
57+
58+
public List<List<String>> getCapabilities() {
59+
return capabilities;
60+
}
61+
62+
public DeviceRequest withCapabilities(List<List<String>> capabilities) {
63+
this.capabilities = capabilities;
64+
return this;
65+
}
66+
67+
public Map<String, String> getOptions() {
68+
return options;
69+
}
70+
71+
public DeviceRequest withOptions(Map<String, String> options) {
72+
this.options = options;
73+
return this;
74+
}
75+
}

docker-java-api/src/main/java/com/github/dockerjava/api/model/HostConfig.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,12 @@ public static HostConfig newHostConfig() {
112112
@JsonProperty("DeviceCgroupRules")
113113
private List<String> deviceCgroupRules;
114114

115+
/**
116+
* @since {@link com.github.dockerjava.core.RemoteApiVersion#VERSION_1_40}
117+
*/
118+
@JsonProperty("DeviceRequests")
119+
private List<DeviceRequest> deviceRequests;
120+
115121
/**
116122
* @since {@link RemoteApiVersion#VERSION_1_25}
117123
*/
@@ -1037,6 +1043,16 @@ public HostConfig withDeviceCgroupRules(List<String> deviceCgroupRules) {
10371043
return this;
10381044
}
10391045

1046+
@CheckForNull
1047+
public List<DeviceRequest> getDeviceRequests() {
1048+
return deviceRequests;
1049+
}
1050+
1051+
public HostConfig withDeviceRequests(List<DeviceRequest> deviceRequests) {
1052+
this.deviceRequests = deviceRequests;
1053+
return this;
1054+
}
1055+
10401056
@CheckForNull
10411057
public Long getNanoCPUs() {
10421058
return nanoCPUs;

docker-java-core/src/main/java/com/github/dockerjava/core/RemoteApiVersion.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ public class RemoteApiVersion implements Serializable {
8989
public static final RemoteApiVersion VERSION_1_36 = RemoteApiVersion.create(1, 36);
9090
public static final RemoteApiVersion VERSION_1_37 = RemoteApiVersion.create(1, 37);
9191
public static final RemoteApiVersion VERSION_1_38 = RemoteApiVersion.create(1, 38);
92+
public static final RemoteApiVersion VERSION_1_40 = RemoteApiVersion.create(1, 40);
9293

9394

9495
/**

0 commit comments

Comments
 (0)