1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.jclouds.vcloud.terremark.options;
20
21 import java.util.Map;
22
23 import org.jclouds.vcloud.domain.network.NetworkConfig;
24 import org.jclouds.vcloud.options.InstantiateVAppTemplateOptions;
25
26 import com.google.common.collect.Maps;
27
28
29
30
31
32
33 public class TerremarkInstantiateVAppTemplateOptions extends InstantiateVAppTemplateOptions {
34
35 private final Map<String, String> properties = Maps.newLinkedHashMap();
36
37 public TerremarkInstantiateVAppTemplateOptions sshKeyFingerprint(String sshKeyFingerprint) {
38 productProperty("sshKeyFingerprint", sshKeyFingerprint);
39 return this;
40 }
41
42 public TerremarkInstantiateVAppTemplateOptions primaryDNS(String primaryDNS) {
43 productProperty("primaryDNS", primaryDNS);
44 return this;
45 }
46
47 public TerremarkInstantiateVAppTemplateOptions secondaryDNS(String secondaryDNS) {
48 productProperty("secondaryDNS", secondaryDNS);
49 return this;
50 }
51
52 public TerremarkInstantiateVAppTemplateOptions withPassword(String password) {
53 productProperty("password", password);
54 return this;
55 }
56
57 public TerremarkInstantiateVAppTemplateOptions inGroup(String group) {
58 productProperty("group", group);
59 return this;
60 }
61
62 public TerremarkInstantiateVAppTemplateOptions inRow(String row) {
63 productProperty("row", row);
64 return this;
65 }
66
67 public static class Builder {
68
69
70
71
72 public static TerremarkInstantiateVAppTemplateOptions processorCount(int cpuCount) {
73 TerremarkInstantiateVAppTemplateOptions options = new TerremarkInstantiateVAppTemplateOptions();
74 return options.processorCount(cpuCount);
75 }
76
77
78
79
80 public static TerremarkInstantiateVAppTemplateOptions memory(long megabytes) {
81 TerremarkInstantiateVAppTemplateOptions options = new TerremarkInstantiateVAppTemplateOptions();
82 return options.memory(megabytes);
83 }
84
85
86
87
88 public static TerremarkInstantiateVAppTemplateOptions disk(long kilobytes) {
89 TerremarkInstantiateVAppTemplateOptions options = new TerremarkInstantiateVAppTemplateOptions();
90 return options.disk(kilobytes);
91 }
92
93
94
95
96 public static TerremarkInstantiateVAppTemplateOptions addNetworkConfig(NetworkConfig networkConfig) {
97 TerremarkInstantiateVAppTemplateOptions options = new TerremarkInstantiateVAppTemplateOptions();
98 return options.addNetworkConfig(networkConfig);
99 }
100
101
102
103
104 public static TerremarkInstantiateVAppTemplateOptions withPassword(String password) {
105 TerremarkInstantiateVAppTemplateOptions options = new TerremarkInstantiateVAppTemplateOptions();
106 return options.withPassword(password);
107 }
108
109
110
111
112 public static TerremarkInstantiateVAppTemplateOptions inGroup(String group) {
113 TerremarkInstantiateVAppTemplateOptions options = new TerremarkInstantiateVAppTemplateOptions();
114 return options.inGroup(group);
115 }
116
117
118
119
120 public static TerremarkInstantiateVAppTemplateOptions inRow(String row) {
121 TerremarkInstantiateVAppTemplateOptions options = new TerremarkInstantiateVAppTemplateOptions();
122 return options.inRow(row);
123 }
124
125
126
127
128 public static TerremarkInstantiateVAppTemplateOptions sshKeyFingerprint(String sshKeyFingerprint) {
129 TerremarkInstantiateVAppTemplateOptions options = new TerremarkInstantiateVAppTemplateOptions();
130 return options.sshKeyFingerprint(sshKeyFingerprint);
131 }
132
133
134
135
136 public static TerremarkInstantiateVAppTemplateOptions primaryDNS(String primaryDNS) {
137 TerremarkInstantiateVAppTemplateOptions options = new TerremarkInstantiateVAppTemplateOptions();
138 return options.primaryDNS(primaryDNS);
139 }
140
141
142
143
144 public static TerremarkInstantiateVAppTemplateOptions secondaryDNS(String secondaryDNS) {
145 TerremarkInstantiateVAppTemplateOptions options = new TerremarkInstantiateVAppTemplateOptions();
146 return options.secondaryDNS(secondaryDNS);
147 }
148
149
150
151
152 public static TerremarkInstantiateVAppTemplateOptions productProperty(String key, String value) {
153 TerremarkInstantiateVAppTemplateOptions options = new TerremarkInstantiateVAppTemplateOptions();
154 return (TerremarkInstantiateVAppTemplateOptions) options.productProperty(key, value);
155 }
156
157
158
159
160 public static TerremarkInstantiateVAppTemplateOptions productProperties(Map<String, String> properties) {
161 TerremarkInstantiateVAppTemplateOptions options = new TerremarkInstantiateVAppTemplateOptions();
162 return (TerremarkInstantiateVAppTemplateOptions) options.productProperties(properties);
163 }
164
165 }
166
167 @Override
168 public TerremarkInstantiateVAppTemplateOptions processorCount(int cpuCount) {
169 return (TerremarkInstantiateVAppTemplateOptions) super.processorCount(cpuCount);
170 }
171
172 @Override
173 public TerremarkInstantiateVAppTemplateOptions addNetworkConfig(NetworkConfig networkConfig) {
174 return (TerremarkInstantiateVAppTemplateOptions) super.addNetworkConfig(networkConfig);
175 }
176
177 @Override
178 public TerremarkInstantiateVAppTemplateOptions memory(long megabytes) {
179 return (TerremarkInstantiateVAppTemplateOptions) super.memory(megabytes);
180 }
181
182 @Override
183 public TerremarkInstantiateVAppTemplateOptions disk(long kilobytes) {
184 throw new IllegalArgumentException("changing the boot disk size is unsupported in terremark");
185 }
186
187 public TerremarkInstantiateVAppTemplateOptions productProperties(Map<String, String> properties) {
188 this.properties.putAll(properties);
189 return this;
190 }
191
192 public TerremarkInstantiateVAppTemplateOptions productProperty(String key, String value) {
193 this.properties.put(key, value);
194 return this;
195 }
196
197 public Map<String, String> getProperties() {
198 return properties;
199 }
200 }