~ubuntu-branches/ubuntu/raring/eucalyptus/raring

« back to all changes in this revision

Viewing changes to clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/VmControl.groovy

  • Committer: Package Import Robot
  • Author(s): Brian Thomason
  • Date: 2011-11-29 13:17:52 UTC
  • mfrom: (1.2.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 185.
  • Revision ID: package-import@ubuntu.com-20111129131752-rq31al3ntutv2vvl
Tags: upstream-3.0.999beta1
ImportĀ upstreamĀ versionĀ 3.0.999beta1

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*******************************************************************************
2
 
*Copyright (c) 2009  Eucalyptus Systems, Inc.
3
 
4
 
*  This program is free software: you can redistribute it and/or modify
5
 
*  it under the terms of the GNU General Public License as published by
6
 
*  the Free Software Foundation, only version 3 of the License.
7
 
8
 
9
 
*  This file is distributed in the hope that it will be useful, but WITHOUT
10
 
*  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
 
*  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12
 
*  for more details.
13
 
14
 
*  You should have received a copy of the GNU General Public License along
15
 
*  with this program.  If not, see <http://www.gnu.org/licenses/>.
16
 
17
 
*  Please contact Eucalyptus Systems, Inc., 130 Castilian
18
 
*  Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/>
19
 
*  if you need additional information or have any questions.
20
 
21
 
*  This file may incorporate work covered under the following copyright and
22
 
*  permission notice:
23
 
24
 
*    Software License Agreement (BSD License)
25
 
26
 
*    Copyright (c) 2008, Regents of the University of California
27
 
*    All rights reserved.
28
 
29
 
*    Redistribution and use of this software in source and binary forms, with
30
 
*    or without modification, are permitted provided that the following
31
 
*    conditions are met:
32
 
33
 
*      Redistributions of source code must retain the above copyright notice,
34
 
*      this list of conditions and the following disclaimer.
35
 
36
 
*      Redistributions in binary form must reproduce the above copyright
37
 
*      notice, this list of conditions and the following disclaimer in the
38
 
*      documentation and/or other materials provided with the distribution.
39
 
40
 
*    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
41
 
*    IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
42
 
*    TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
43
 
*    PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
44
 
*    OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
45
 
*    EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
46
 
*    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
47
 
*    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
48
 
*    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
49
 
*    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
50
 
*    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
51
 
*    THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
52
 
*    LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
53
 
*    SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
54
 
*    IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
55
 
*    BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
56
 
*    THE REGENTSā€™ DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
57
 
*    OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
58
 
*    WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
59
 
*    ANY SUCH LICENSES OR RIGHTS.
60
 
*******************************************************************************/
 
2
 *Copyright (c) 2009  Eucalyptus Systems, Inc.
 
3
 * 
 
4
 *  This program is free software: you can redistribute it and/or modify
 
5
 *  it under the terms of the GNU General Public License as published by
 
6
 *  the Free Software Foundation, only version 3 of the License.
 
7
 * 
 
8
 * 
 
9
 *  This file is distributed in the hope that it will be useful, but WITHOUT
 
10
 *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 
11
 *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 
12
 *  for more details.
 
13
 * 
 
14
 *  You should have received a copy of the GNU General Public License along
 
15
 *  with this program.  If not, see <http://www.gnu.org/licenses/>.
 
16
 * 
 
17
 *  Please contact Eucalyptus Systems, Inc., 130 Castilian
 
18
 *  Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/>
 
19
 *  if you need additional information or have any questions.
 
20
 * 
 
21
 *  This file may incorporate work covered under the following copyright and
 
22
 *  permission notice:
 
23
 * 
 
24
 *    Software License Agreement (BSD License)
 
25
 * 
 
26
 *    Copyright (c) 2008, Regents of the University of California
 
27
 *    All rights reserved.
 
28
 * 
 
29
 *    Redistribution and use of this software in source and binary forms, with
 
30
 *    or without modification, are permitted provided that the following
 
31
 *    conditions are met:
 
32
 * 
 
33
 *      Redistributions of source code must retain the above copyright notice,
 
34
 *      this list of conditions and the following disclaimer.
 
35
 * 
 
36
 *      Redistributions in binary form must reproduce the above copyright
 
37
 *      notice, this list of conditions and the following disclaimer in the
 
38
 *      documentation and/or other materials provided with the distribution.
 
39
 * 
 
40
 *    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 
41
 *    IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 
42
 *    TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 
43
 *    PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
 
44
 *    OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 
45
 *    EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 
46
 *    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 
47
 *    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 
48
 *    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 
49
 *    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 
50
 *    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
 
51
 *    THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
 
52
 *    LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
 
53
 *    SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
 
54
 *    IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
 
55
 *    BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
 
56
 *    THE REGENTS' DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
 
57
 *    OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
 
58
 *    WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
 
59
 *    ANY SUCH LICENSES OR RIGHTS.
 
60
 *******************************************************************************/
61
61
/*
62
62
 * Author: chris grzegorczyk <grze@eucalyptus.com>
63
63
 */
64
64
package edu.ucsb.eucalyptus.msgs
65
65
 
66
 
import com.eucalyptus.binding.HttpEmbedded;
67
 
import com.eucalyptus.binding.HttpParameterMapping;
 
66
import com.eucalyptus.binding.HttpEmbedded
 
67
import com.eucalyptus.binding.HttpParameterMapping
68
68
 
69
 
public class VmControlMessage extends EucalyptusMessage {}
 
69
public class VmControlMessage extends EucalyptusMessage {
 
70
  
 
71
  public VmControlMessage( ) {
 
72
    super( );
 
73
  }
 
74
  
 
75
  public VmControlMessage( EucalyptusMessage msg ) {
 
76
    super( msg );
 
77
  }
 
78
  
 
79
  public VmControlMessage( String userId ) {
 
80
    super( userId );
 
81
  }
 
82
}
 
83
public class ResourceTagMessage extends EucalyptusMessage {
 
84
  
 
85
  public ResourceTagMessage( ) {
 
86
    super( );
 
87
  }
 
88
  
 
89
  public ResourceTagMessage( EucalyptusMessage msg ) {
 
90
    super( msg );
 
91
  }
 
92
  
 
93
  public ResourceTagMessage( String userId ) {
 
94
    super( userId );
 
95
  }
 
96
}
 
97
public class VmPlacementMessage extends EucalyptusMessage {
 
98
  
 
99
  public VmPlacementMessage( ) {
 
100
    super( );
 
101
  }
 
102
  
 
103
  public VmPlacementMessage( EucalyptusMessage msg ) {
 
104
    super( msg );
 
105
  }
 
106
  
 
107
  public VmPlacementMessage( String userId ) {
 
108
    super( userId );
 
109
  }
 
110
}
70
111
/** *******************************************************************************/
71
112
public class TerminateInstancesResponseType extends VmControlMessage {
72
113
  boolean terminated = false;
73
114
  ArrayList<TerminateInstancesItemType> instancesSet = new ArrayList<TerminateInstancesItemType>();
74
115
}
75
116
public class TerminateInstancesType extends VmControlMessage {
76
 
 
 
117
  
77
118
  @HttpParameterMapping (parameter = "InstanceId")
78
119
  ArrayList<String> instancesSet = new ArrayList<String>();
79
 
 
80
 
  def TerminateInstancesType() {}
81
 
 
 
120
  
 
121
  def TerminateInstancesType() {
 
122
  }
 
123
  
82
124
  def TerminateInstancesType(String instanceId) {
83
125
    this.instancesSet.add(instanceId);
84
126
  }
85
 
 
86
 
  def TerminateInstancesType(String instanceId, EucalyptusMessage parent) {
87
 
    this.instancesSet.add(instanceId);
88
 
    this.correlationId = parent.correlationId;
89
 
    this.userId = parent.userId;
90
 
    this.effectiveUserId = parent.effectiveUserId;
91
 
  }
92
127
}
93
128
/** *******************************************************************************/
 
129
 
94
130
public class DescribeInstancesType extends VmControlMessage {
95
 
 
 
131
  
96
132
  @HttpParameterMapping (parameter = "InstanceId")
97
133
  ArrayList<String> instancesSet = new ArrayList<String>();
 
134
  @HttpParameterMapping (parameter = "FilterSet")
 
135
  ArrayList<Filter> filterSet = new ArrayList<Filter>();
98
136
}
99
137
public class DescribeInstancesResponseType extends VmControlMessage {
100
 
 
 
138
  
101
139
  ArrayList<ReservationInfoType> reservationSet = new ArrayList<ReservationInfoType>();
102
140
}
103
141
/** *******************************************************************************/
 
142
 
104
143
public class RebootInstancesType extends VmControlMessage {
105
 
 
 
144
  
106
145
  @HttpParameterMapping (parameter = "InstanceId")
107
146
  ArrayList<String> instancesSet = new ArrayList<String>();
108
 
 
109
 
  def RebootInstancesType() {}
 
147
  
 
148
  def RebootInstancesType() {
 
149
  }
110
150
  def RebootInstancesType(String instanceId) {
111
151
    this.instancesSet.add(instanceId);
112
152
  }
113
 
 
114
 
  def RebootInstancesType(String instanceId, EucalyptusMessage parent) {
115
 
    this.instancesSet.add(instanceId);
116
 
    this.correlationId = parent.correlationId;
117
 
    this.userId = parent.userId;
118
 
    this.effectiveUserId = parent.effectiveUserId;
119
 
  }
120
153
}
121
154
public class RebootInstancesResponseType extends VmControlMessage {
122
 
 
123
 
  boolean _return;
124
155
}
125
156
/** *******************************************************************************/
126
157
public class RunInstancesResponseType extends VmControlMessage {
127
 
 
 
158
  
128
159
  ReservationInfoType rsvInfo;
129
160
}
 
161
 
 
162
 
130
163
public class RunInstancesType extends VmControlMessage {
131
 
 
 
164
  
132
165
  String imageId;
133
166
  String reservationId;
134
167
  int minCount;
147
180
  String ramdiskId; //** added 2008-02-01  **/
148
181
  @HttpParameterMapping (parameter = "Placement.AvailabilityZone")
149
182
  String availabilityZone = "default"; //** added 2008-02-01  **/
 
183
  @HttpParameterMapping (parameter = "Placement.GroupName")
 
184
  String placementGroup = "default"; //** added 2010-02-01  **/
150
185
  @HttpEmbedded (multiple = true)
151
186
  ArrayList<BlockDeviceMappingItemType> blockDeviceMapping = new ArrayList<BlockDeviceMappingItemType>(); //** added 2008-02-01  **/
152
 
  boolean monitoring = false;
 
187
  Boolean monitoring = false;
153
188
  String subnetId;
154
 
  String vpcId;
155
189
  Boolean disableTerminate;
156
 
  String shutdownAction;
157
 
 
158
 
 
 
190
  String shutdownAction = "stop"; //or "terminate"
 
191
  /** InstanceLicenseRequest license; **/
 
192
  String privateIpAddress = "";
 
193
  String clientToken = "";
 
194
  
159
195
  ArrayList<Integer> networkIndexList = new ArrayList<Integer>();
160
196
  String privateMacBase;
161
197
  String publicMacBase;
162
198
  int macLimit;
163
199
  int vlan;
164
200
  VmTypeInfo vmType = new VmTypeInfo();
165
 
 
166
 
 
 
201
  
 
202
  
167
203
  public Object clone() {
168
204
    RunInstancesType c = (RunInstancesType) super.clone();
169
205
    c.instanceIds = new ArrayList<String>();
170
206
    if ( this.instanceIds != null )
171
 
    for ( String b: this.instanceIds )
172
 
      c.instanceIds.add((String) b.clone());
 
207
      for ( String b: this.instanceIds )
 
208
        c.instanceIds.add((String) b.clone());
173
209
    c.blockDeviceMapping = new ArrayList<BlockDeviceMappingItemType>();
174
210
    if ( this.blockDeviceMapping != null )
175
 
    for ( BlockDeviceMappingItemType b: this.blockDeviceMapping )
176
 
      c.blockDeviceMapping.add((BlockDeviceMappingItemType) b.clone());
 
211
      for ( BlockDeviceMappingItemType b: this.blockDeviceMapping )
 
212
        c.blockDeviceMapping.add((BlockDeviceMappingItemType) b.clone());
177
213
    if ( this.vmType != null )
178
 
    c.vmType = (VmTypeInfo) this.vmType.clone();
 
214
      c.vmType = (VmTypeInfo) this.vmType.clone();
179
215
    c.networkIndexList = this.networkIndexList.clone( );
180
216
    return c;
181
217
  }
182
 
 
 
218
  
183
219
}
184
220
/** *******************************************************************************/
185
221
public class GetConsoleOutputResponseType extends VmControlMessage {
186
 
 
 
222
  
187
223
  String instanceId;
188
224
  Date timestamp;
189
225
  String output;
190
226
}
 
227
 
191
228
public class GetConsoleOutputType extends VmControlMessage {
192
229
  @HttpParameterMapping (parameter = "InstanceId.1")
193
230
  String instanceId;
194
231
}
 
232
 
 
233
public class GetPasswordDataType extends VmControlMessage {
 
234
  String instanceId;
 
235
}
 
236
public class GetPasswordDataResponseType extends VmControlMessage {
 
237
  
 
238
  String instanceId;
 
239
  Date timestamp;
 
240
  String output;
 
241
}
195
242
/** *******************************************************************************/
196
243
public class ReservationInfoType extends EucalyptusData {
197
244
  String reservationId;
198
245
  String ownerId;
199
246
  ArrayList<String> groupSet = new ArrayList<String>();
200
247
  ArrayList<RunningInstancesItemType> instancesSet = new ArrayList<RunningInstancesItemType>();
201
 
 
 
248
  
202
249
  def ReservationInfoType(final reservationId, final ownerId, final groupSet) {
203
250
    this.reservationId = reservationId;
204
251
    this.ownerId = ownerId;
205
 
    this.groupSet = groupSet;
 
252
    this.groupSet.addAll( groupSet );
206
253
  }
207
 
 
 
254
  
208
255
  def ReservationInfoType() {
209
256
  }
210
257
}
211
 
public class RunningInstancesItemType extends EucalyptusData {
 
258
public class RunningInstancesItemType extends EucalyptusData implements Comparable<RunningInstancesItemType> {
212
259
  String instanceId;
213
260
  String imageId;
214
261
  String stateCode;
224
271
  String placement;
225
272
  String kernel;
226
273
  String ramdisk;
227
 
  boolean monitoring = false;
228
 
}
 
274
  String platform;
 
275
  Boolean monitoring = false;
 
276
  Boolean disableApiTermination = false;
 
277
  Boolean instanceInitiatedShutdownBehavior = "stop"; //or "terminate"
 
278
  String ipAddress;
 
279
  String privateIpAddress;
 
280
  String rootDeviceType = "instance-store";
 
281
  String rootDeviceName = "/dev/sda1";
 
282
  ArrayList<InstanceBlockDeviceMapping> blockDevices = new ArrayList<InstanceBlockDeviceMapping>();
 
283
  @Override
 
284
  public int compareTo( RunningInstancesItemType that ) {
 
285
    return this.instanceId.compareTo( that.instanceId );
 
286
  }
 
287
  @Override
 
288
  public int hashCode( ) {
 
289
    final int prime = 31;
 
290
    int result = 1;
 
291
    result = prime * result + ( ( this.instanceId == null )
 
292
        ? 0
 
293
        : this.instanceId.hashCode( ) );
 
294
    return result;
 
295
  }
 
296
  @Override
 
297
  public boolean equals( Object obj ) {
 
298
    if ( this.is( obj ) ) {
 
299
      return true;
 
300
    }
 
301
    if ( obj == null ) {
 
302
      return false;
 
303
    }
 
304
    if ( !getClass( ).equals( obj.getClass( ) ) ) {
 
305
      return false;
 
306
    }
 
307
    RunningInstancesItemType other = ( RunningInstancesItemType ) obj;
 
308
    if ( this.instanceId == null ) {
 
309
      if ( other.instanceId != null ) {
 
310
        return false;
 
311
      }
 
312
    } else if ( !this.instanceId.equals( other.instanceId ) ) {
 
313
      return false;
 
314
    }
 
315
    return true;
 
316
  }
 
317
  
 
318
}
 
319
 
 
320
public class InstanceBlockDeviceMapping extends EucalyptusData {
 
321
  String deviceName;
 
322
  EbsInstanceBlockDeviceMapping ebs;
 
323
  public InstanceBlockDeviceMapping() {}
 
324
  public InstanceBlockDeviceMapping( String deviceName ) {
 
325
    this.deviceName = deviceName;
 
326
  }
 
327
  public InstanceBlockDeviceMapping( String deviceName, String volumeId, String status, Date attachTime ) {
 
328
    this.deviceName = deviceName;
 
329
    this.ebs = new EbsInstanceBlockDeviceMapping( volumeId, status, attachTime );
 
330
  }
 
331
}
 
332
 
 
333
public class EbsInstanceBlockDeviceMapping extends EucalyptusData {
 
334
  String volumeId;
 
335
  String status;
 
336
  Date attachTime;
 
337
  Boolean deleteOnTermination = Boolean.TRUE;
 
338
  public EbsInstanceBlockDeviceMapping() {}
 
339
  public EbsInstanceBlockDeviceMapping( String volumeId, String status, Date attachTime ) {
 
340
    this.volumeId = volumeId;
 
341
    this.status = status;
 
342
    this.attachTime = attachTime;
 
343
  }
 
344
}
 
345
public class EbsDeviceMapping extends EucalyptusData {  //** added 2008-02-01  **/
 
346
  String virtualName; // ephemeralN, root, ami, swap
 
347
  String snapshotId;
 
348
  Integer volumeSize = null;
 
349
  Boolean deleteOnTermination = Boolean.TRUE;
 
350
}
 
351
 
229
352
public class BlockDeviceMappingItemType extends EucalyptusData {  //** added 2008-02-01  **/
230
353
  String virtualName; // ephemeralN, root, ami, swap
231
354
  String deviceName;
232
 
//  Integer deviceSize; // in megabytes
233
 
//  String format; // optional, defaults to none (none, ext3, ntfs, swap)
 
355
  Integer size; // in megabytes //TODO:GRZE: maybe remove
 
356
  String format; // optional, defaults to none (none, ext3, ntfs, swap) //TODO:GRZE: maybe remove
 
357
  @HttpEmbedded (multiple = true)
 
358
  EbsDeviceMapping ebs;
234
359
  def BlockDeviceMappingItemType(final virtualName, final deviceName) {
235
360
    this.virtualName = virtualName;
236
361
    this.deviceName = deviceName;
237
362
  }
238
 
 
 
363
  
239
364
  def BlockDeviceMappingItemType() {
240
365
  }
241
366
}
249
374
  String previousStateName;
250
375
  String shutdownStateCode;
251
376
  String shutdownStateName;
252
 
 
 
377
  
253
378
  def TerminateInstancesItemType(final instanceId, final previousStateCode, final previousStateName, final shutdownStateCode, final shutdownStateName) {
254
379
    this.instanceId = instanceId;
255
380
    this.previousStateCode = previousStateCode;
257
382
    this.shutdownStateCode = shutdownStateCode;
258
383
    this.shutdownStateName = shutdownStateName;
259
384
  }
260
 
 
 
385
  
261
386
  def TerminateInstancesItemType() {
262
387
  }
 
388
 
 
389
  @Override
 
390
  public int hashCode( ) {
 
391
    final int prime = 31;
 
392
    int result = 1;
 
393
    result = prime * result + ( ( this.instanceId == null ) ? 0 : this.instanceId.hashCode( ) );
 
394
    return result;
 
395
  }
 
396
 
 
397
  @Override
 
398
  public boolean equals( Object obj ) {
 
399
    if ( this.is( obj ) ) {
 
400
      return true;
 
401
    }
 
402
    if ( obj == null ) {
 
403
      return false;
 
404
    }
 
405
    if ( !getClass( ).is( obj.getClass( ) ) ) {
 
406
      return false;
 
407
    }
 
408
    TerminateInstancesItemType other = ( TerminateInstancesItemType ) obj;
 
409
    if ( this.instanceId == null ) {
 
410
      if ( other.instanceId != null ) {
 
411
        return false;
 
412
      }
 
413
    } else if ( !this.instanceId.equals( other.instanceId ) ) {
 
414
      return false;
 
415
    }
 
416
    return true;
 
417
  }
 
418
  
 
419
}
 
420
 
 
421
public class StopInstancesResponseType extends VmControlMessage{
 
422
  ArrayList<TerminateInstancesItemType> instancesSet = new ArrayList<TerminateInstancesItemType>();
 
423
  public StopInstancesResponseType() {  }
 
424
}
 
425
 
 
426
public class StopInstancesType extends VmControlMessage{
 
427
  @HttpParameterMapping( parameter = "InstanceId" )
 
428
  ArrayList<String> instancesSet = new ArrayList<String>();
 
429
  Boolean force;
 
430
  public StopInstancesType() {  }
 
431
}
 
432
public class StartInstancesResponseType extends VmControlMessage{
 
433
  ArrayList<TerminateInstancesItemType> instancesSet = new ArrayList<TerminateInstancesItemType>();
 
434
  public StartInstancesResponseType() {  }
 
435
}
 
436
 
 
437
public class StartInstancesType extends VmControlMessage{
 
438
  @HttpParameterMapping( parameter = "InstanceId" )
 
439
  ArrayList<String> instancesSet = new ArrayList<String>();
 
440
  public StartInstancesType() {  }
 
441
}
 
442
 
 
443
public class ModifyInstanceAttributeType extends VmControlMessage {
 
444
  String instanceId;
 
445
  Attr element;
 
446
  String value;
 
447
  enum Attr { instanceType, kernel, ramdisk, userData, disableApiTermination, instanceInitiatedShutdownBehavior };
 
448
  ArrayList<BlockDeviceMappingItemType> blockDeviceMapping = new ArrayList<BlockDeviceMappingItemType>();
 
449
  public ModifyInstanceAttributeType() {  }
 
450
  public void instanceType( String value ) { this.element = Attr.instanceType; this.value = value; }
 
451
  public void kernel( String value ) { this.element = Attr.kernel; this.value = value; }
 
452
  public void ramdisk( String value ) { this.element = Attr.ramdisk; this.value = value; }
 
453
  public void userData( String value ) { this.element = Attr.userData; this.value = value; }
 
454
  public void disableApiTermination( String value ) { this.element = Attr.disableApiTermination; this.value = value; }
 
455
  public void instanceInitiatedShutdownBehavior( String value ) { this.element = Attr.instanceInitiatedShutdownBehavior; this.value = value; }
 
456
}
 
457
public class ModifyInstanceAttributeResponseType extends VmControlMessage {
 
458
  public ModifyInstanceAttributeResponseType() {  }
 
459
}
 
460
 
 
461
public class ResetInstanceAttributeType extends VmControlMessage {
 
462
  String instanceId;
 
463
  public ResetInstanceAttributeType() {  }
 
464
}
 
465
public class ResetInstanceAttributeResponseType extends VmControlMessage {
 
466
  public ResetInstanceAttributeResponseType() {  }
 
467
}
 
468
 
 
469
public class DescribeInstanceAttributeType extends VmControlMessage {
 
470
  String instanceId;
 
471
  public DescribeInstanceAttributeType() {  }
 
472
}
 
473
public class DescribeInstanceAttributeResponseType extends VmControlMessage {
 
474
  String requestId;
 
475
  String instanceId;
 
476
  String instanceType;
 
477
  String kernel;
 
478
  String ramdisk;
 
479
  String userData;
 
480
  String disableApiTermination;
 
481
  String instanceInitiatedShutdownBehavior;
 
482
  String rootDeviceName;
 
483
  ArrayList<BlockDeviceMappingItemType> blockDeviceMapping = new ArrayList<BlockDeviceMappingItemType>();
 
484
  public DescribeInstanceAttributeResponseType() {  }
 
485
}
 
486
public class MonitorInstanceState extends EucalyptusData {
 
487
  String instanceId;
 
488
  String monitoringState;
 
489
  public MonitorInstanceState() {}
 
490
}
 
491
public class MonitorInstancesResponseType extends VmControlMessage {
 
492
  ArrayList<MonitorInstanceState> instancesSet = new ArrayList<MonitorInstanceState>();
 
493
  public MonitorInstancesResponseType() {  }
 
494
}
 
495
 
 
496
public class MonitorInstancesType extends VmControlMessage {
 
497
  ArrayList<String> instancesSet = new ArrayList<String>();
 
498
  public MonitorInstancesType() {  }
 
499
}
 
500
public class UnmonitorInstancesResponseType extends VmControlMessage {
 
501
  ArrayList<MonitorInstanceState> instancesSet = new ArrayList<MonitorInstanceState>();
 
502
  public UnmonitorInstancesResponseType() {  }
 
503
}
 
504
 
 
505
public class UnmonitorInstancesType extends VmControlMessage {
 
506
  ArrayList<String> instancesSet = new ArrayList<String>();
 
507
  public MonitorInstancesType() {  }
263
508
}
264
509