nirvdrum-amazon-ec2 0.7.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. data/.gitignore +9 -0
  2. data/.yardopts +1 -0
  3. data/ChangeLog +304 -0
  4. data/LICENSE +66 -0
  5. data/README.rdoc +359 -0
  6. data/README_dev.rdoc +10 -0
  7. data/Rakefile +70 -0
  8. data/VERSION +1 -0
  9. data/amazon-ec2.gemspec +142 -0
  10. data/bin/ec2-gem-example.rb +137 -0
  11. data/bin/ec2-gem-profile.rb +10 -0
  12. data/bin/ec2sh +62 -0
  13. data/bin/setup.rb +29 -0
  14. data/deps.rip +1 -0
  15. data/lib/AWS.rb +321 -0
  16. data/lib/AWS/Autoscaling.rb +70 -0
  17. data/lib/AWS/Autoscaling/autoscaling.rb +273 -0
  18. data/lib/AWS/Cloudwatch.rb +32 -0
  19. data/lib/AWS/Cloudwatch/monitoring.rb +80 -0
  20. data/lib/AWS/EC2.rb +33 -0
  21. data/lib/AWS/EC2/availability_zones.rb +29 -0
  22. data/lib/AWS/EC2/console.rb +25 -0
  23. data/lib/AWS/EC2/devpay.rb +18 -0
  24. data/lib/AWS/EC2/elastic_ips.rb +86 -0
  25. data/lib/AWS/EC2/image_attributes.rb +133 -0
  26. data/lib/AWS/EC2/images.rb +117 -0
  27. data/lib/AWS/EC2/instances.rb +234 -0
  28. data/lib/AWS/EC2/keypairs.rb +47 -0
  29. data/lib/AWS/EC2/products.rb +21 -0
  30. data/lib/AWS/EC2/security_groups.rb +164 -0
  31. data/lib/AWS/EC2/snapshots.rb +102 -0
  32. data/lib/AWS/EC2/spot_instance_requests.rb +105 -0
  33. data/lib/AWS/EC2/volumes.rb +100 -0
  34. data/lib/AWS/ELB.rb +71 -0
  35. data/lib/AWS/ELB/load_balancers.rb +178 -0
  36. data/lib/AWS/RDS.rb +73 -0
  37. data/lib/AWS/RDS/rds.rb +522 -0
  38. data/lib/AWS/exceptions.rb +200 -0
  39. data/lib/AWS/responses.rb +21 -0
  40. data/perftools/ec2prof +0 -0
  41. data/perftools/ec2prof-results.dot +132 -0
  42. data/perftools/ec2prof-results.txt +100 -0
  43. data/perftools/ec2prof.symbols +102 -0
  44. data/test/test_Autoscaling_groups.rb +337 -0
  45. data/test/test_EC2.rb +68 -0
  46. data/test/test_EC2_availability_zones.rb +49 -0
  47. data/test/test_EC2_console.rb +54 -0
  48. data/test/test_EC2_elastic_ips.rb +144 -0
  49. data/test/test_EC2_image_attributes.rb +238 -0
  50. data/test/test_EC2_images.rb +229 -0
  51. data/test/test_EC2_instances.rb +611 -0
  52. data/test/test_EC2_keypairs.rb +123 -0
  53. data/test/test_EC2_products.rb +48 -0
  54. data/test/test_EC2_responses.rb +53 -0
  55. data/test/test_EC2_s3_xmlsimple.rb +80 -0
  56. data/test/test_EC2_security_groups.rb +205 -0
  57. data/test/test_EC2_snapshots.rb +83 -0
  58. data/test/test_EC2_spot_instance_requests.rb +178 -0
  59. data/test/test_EC2_volumes.rb +142 -0
  60. data/test/test_ELB_load_balancers.rb +239 -0
  61. data/test/test_RDS.rb +354 -0
  62. data/test/test_helper.rb +23 -0
  63. data/wsdl/2007-08-29.ec2.wsdl +1269 -0
  64. data/wsdl/2008-02-01.ec2.wsdl +1614 -0
  65. data/wsdl/2008-05-05.ec2.wsdl +2052 -0
  66. data/wsdl/2008-12-01.ec2.wsdl +2354 -0
  67. data/wsdl/2009-10-31.ec2.wsdl +4261 -0
  68. data/wsdl/2009-11-30.ec2.wsdl +4668 -0
  69. metadata +199 -0
@@ -0,0 +1,354 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ context "rds databases " do
4
+ before do
5
+ @rds = AWS::RDS::Base.new( :access_key_id => "not a key", :secret_access_key => "not a secret" )
6
+
7
+ @create_db_instance_body = <<-RESPONSE
8
+ <CreateDBInstanceResponse xmlns="http://rds.amazonaws.com/admin/2009-10-16/">
9
+ <CreateDBInstanceResult>
10
+ <DBInstance>
11
+ <Engine>MySQL5.1</Engine>
12
+ <BackupRetentionPeriod>1</BackupRetentionPeriod>
13
+ <DBInstanceStatus>creating</DBInstanceStatus>
14
+ <DBInstanceIdentifier>mydbinstance</DBInstanceIdentifier>
15
+ <PreferredBackupWindow>03:00-05:00</PreferredBackupWindow>
16
+ <DBSecurityGroups>
17
+ <DBSecurityGroup>
18
+ <Status>active</Status>
19
+ <DBSecurityGroupName>default</DBSecurityGroupName>
20
+ </DBSecurityGroup>
21
+ </DBSecurityGroups>
22
+ <PreferredMaintenanceWindow>sun:05:00-sun:09:00</PreferredMaintenanceWindow>
23
+ <AllocatedStorage>10</AllocatedStorage>
24
+ <DBInstanceClass>db.m1.large</DBInstanceClass>
25
+ <MasterUsername>master</MasterUsername>
26
+ </DBInstance>
27
+ </CreateDBInstanceResult>
28
+ <ResponseMetadata>
29
+ <RequestId>e6fb58c5-bf34-11de-b88d-993294bf1c81</RequestId>
30
+ </ResponseMetadata>
31
+ </CreateDBInstanceResponse>
32
+ RESPONSE
33
+ @create_db_security_group = <<-RESPONSE
34
+ <CreateDBSecurityGroupResponse xmlns="http://rds.amazonaws.com/admin/2009-10-16/">
35
+ <CreateDBSecurityGroupResult>
36
+ <DBSecurityGroup>
37
+ <EC2SecurityGroups/>
38
+ <DBSecurityGroupDescription>My new DBSecurityGroup</DBSecurityGroupDescription>
39
+ <IPRanges/>
40
+ <OwnerId>621567473609</OwnerId>
41
+ <DBSecurityGroupName>mydbsecuritygroup4</DBSecurityGroupName>
42
+ </DBSecurityGroup>
43
+ </CreateDBSecurityGroupResult>
44
+ <ResponseMetadata>
45
+ <RequestId>c9cf9ff2-bf36-11de-b88d-993294bf1c81</RequestId>
46
+ </ResponseMetadata>
47
+ </CreateDBSecurityGroupResponse>
48
+ RESPONSE
49
+ end
50
+
51
+ specify "should be able to be create a db_instance" do
52
+ @rds.stubs(:make_request).with('CreateDBInstance', {'Engine' => 'MySQL5.1',
53
+ 'MasterUsername' => 'master',
54
+ 'DBInstanceClass' => 'db.m1.large',
55
+ 'DBInstanceIdentifier' => 'testdb',
56
+ 'AllocatedStorage' => '10',
57
+ 'MasterUserPassword' => 'SecretPassword01'}).
58
+ returns stub(:body => @create_db_instance_body, :is_a? => true)
59
+ response = @rds.create_db_instance(
60
+ :db_instance_class => "db.m1.large",
61
+ :db_instance_identifier=>"testdb",
62
+ :allocated_storage => 10,
63
+ :engine => "MySQL5.1",
64
+ :master_user_password => "SecretPassword01",
65
+ :master_username => "master"
66
+ )
67
+ response.should.be.an.instance_of Hash
68
+
69
+ assert_equal response.CreateDBInstanceResult.DBInstance.AllocatedStorage, "10"
70
+ end
71
+
72
+ specify "should be able to create_db_security_group" do
73
+ @rds.stubs(:make_request).with('CreateDBSecurityGroup', {
74
+ 'DBSecurityGroupName' => 'mydbsecuritygroup',
75
+ 'DBSecurityGroupDescription' => 'My new DBSecurityGroup'}).
76
+ returns stub(:body => @create_db_security_group, :is_a? => true)
77
+ response = @rds.create_db_security_group(
78
+ :db_security_group_name => "mydbsecuritygroup",
79
+ :db_security_group_description => "My new DBSecurityGroup"
80
+ )
81
+ response.should.be.an.instance_of Hash
82
+
83
+ assert_equal response.CreateDBSecurityGroupResult.DBSecurityGroup.DBSecurityGroupName, "mydbsecuritygroup4"
84
+ end
85
+
86
+ specify "should be able to create_db_parameter_group" do
87
+ body =<<-EOE
88
+ <CreateDBParameterGroupResponse xmlns="http://rds.amazonaws.com/admin/2009-10-16/">
89
+ <CreateDBParameterGroupResult>
90
+ <DBParameterGroup>
91
+ <Engine>mysql5.1</Engine>
92
+ <Description>My new DBParameterGroup</Description>
93
+ <DBParameterGroupName>mydbparametergroup3</DBParameterGroupName>
94
+ </DBParameterGroup>
95
+ </CreateDBParameterGroupResult>
96
+ <ResponseMetadata>
97
+ <RequestId>0b447b66-bf36-11de-a88b-7b5b3d23b3a7</RequestId>
98
+ </ResponseMetadata>
99
+ </CreateDBParameterGroupResponse>
100
+ EOE
101
+ @rds.stubs(:make_request).with('CreateDBParameterGroup', {'Engine' => 'MySQL5.1',
102
+ 'DBParameterGroupName' => 'mydbsecuritygroup',
103
+ 'Description' => 'My test DBSecurity group'}).
104
+ returns stub(:body => body, :is_a? => true)
105
+ response = @rds.create_db_parameter_group(
106
+ :db_parameter_group_name => "mydbsecuritygroup",
107
+ :description => "My test DBSecurity group",
108
+ :engine => "MySQL5.1"
109
+ )
110
+ response.should.be.an.instance_of Hash
111
+
112
+ assert_equal response.CreateDBParameterGroupResult.DBParameterGroup.DBParameterGroupName, "mydbparametergroup3"
113
+ end
114
+
115
+ specify "should be able to create_db_snapshot" do
116
+ body =<<-EOE
117
+ <CreateDBSnapshotResponse xmlns="http://rds.amazonaws.com/admin/2009-10-16/">
118
+ <CreateDBSnapshotResult>
119
+ <DBSnapshot>
120
+ <Port>3306</Port>
121
+ <Status>creating</Status>
122
+ <Engine>mysql5.1</Engine>
123
+ <AvailabilityZone>us-east-1d</AvailabilityZone>
124
+ <InstanceCreateTime>2009-10-21T04:05:43.609Z</InstanceCreateTime>
125
+ <AllocatedStorage>50</AllocatedStorage>
126
+ <DBInstanceIdentifier>mynewdbinstance</DBInstanceIdentifier>
127
+ <MasterUsername>sa</MasterUsername>
128
+ <DBSnapshotIdentifier>mynewdbsnapshot3</DBSnapshotIdentifier>
129
+ </DBSnapshot>
130
+ </CreateDBSnapshotResult>
131
+ <ResponseMetadata>
132
+ <RequestId>48e870fd-bf38-11de-a88b-7b5b3d23b3a7</RequestId>
133
+ </ResponseMetadata>
134
+ </CreateDBSnapshotResponse>
135
+ EOE
136
+ @rds.stubs(:make_request).with('CreateDBSnapshot', {'DBSnapshotIdentifier' => 'mynewdbsnapshot3', 'DBInstanceIdentifier' => 'mynewdbinstance'}).
137
+ returns stub(:body => body, :is_a? => true)
138
+ response = @rds.create_db_snapshot(
139
+ :db_snapshot_identifier => "mynewdbsnapshot3",
140
+ :db_instance_identifier => "mynewdbinstance"
141
+ )
142
+ response.should.be.an.instance_of Hash
143
+
144
+ assert_equal response.CreateDBSnapshotResult.DBSnapshot.DBSnapshotIdentifier, "mynewdbsnapshot3"
145
+ end
146
+
147
+ specify "should be able to authorize_db_security_group" do
148
+ body =<<-EOE
149
+ <AuthorizeDBSecurityGroupIngressResponse xmlns="http://rds.amazonaws.com/admin/2009-10-16/">
150
+ <AuthorizeDBSecurityGroupIngressResult>
151
+ <DBSecurityGroup>
152
+ <EC2SecurityGroups/>
153
+ <DBSecurityGroupDescription>My new DBSecurityGroup</DBSecurityGroupDescription>
154
+ <IPRanges>
155
+ <IPRange>
156
+ <CIDRIP>192.168.1.1/24</CIDRIP>
157
+ <Status>authorizing</Status>
158
+ </IPRange>
159
+ </IPRanges>
160
+ <OwnerId>621567473609</OwnerId>
161
+ <DBSecurityGroupName>mydbsecuritygroup</DBSecurityGroupName>
162
+ </DBSecurityGroup>
163
+ </AuthorizeDBSecurityGroupIngressResult>
164
+ <ResponseMetadata>
165
+ <RequestId>d9799197-bf2d-11de-b88d-993294bf1c81</RequestId>
166
+ </ResponseMetadata>
167
+ </AuthorizeDBSecurityGroupIngressResponse>
168
+ EOE
169
+ @rds.stubs(:make_request).with('AuthorizeDBSecurityGroupIngress', {'CIDRIP' => '192.168.1.1/24', 'DBSecurityGroupName' => 'mydbsecuritygroup'}).
170
+ returns stub(:body => body, :is_a? => true)
171
+ response = @rds.authorize_db_security_group(
172
+ :db_security_group_name => "mydbsecuritygroup",
173
+ :cidrip => "192.168.1.1/24"
174
+ )
175
+ response.should.be.an.instance_of Hash
176
+
177
+ assert_equal response.AuthorizeDBSecurityGroupIngressResult.DBSecurityGroup.IPRanges.IPRange.CIDRIP, "192.168.1.1/24"
178
+ end
179
+
180
+ specify "should be able to delete_db_parameter_group" do
181
+ body =<<-EOE
182
+ <DeleteDBParameterGroupResponse xmlns="http://rds.amazonaws.com/admin/2009-10-16/">
183
+ <ResponseMetadata>
184
+ <RequestId>4dc38be9-bf3b-11de-a88b-7b5b3d23b3a7</RequestId>
185
+ </ResponseMetadata>
186
+ </DeleteDBParameterGroupResponse>
187
+ EOE
188
+ @rds.stubs(:make_request).with('DeleteDBParameterGroup', {'DBParameterGroupName' => 'mydbsecuritygroup'}).
189
+ returns stub(:body => body, :is_a? => true)
190
+ response = @rds.delete_db_parameter_group(
191
+ :db_parameter_group_name => "mydbsecuritygroup"
192
+ )
193
+ response.should.be.an.instance_of Hash
194
+ end
195
+
196
+ specify "should be able to delete_db_security_group" do
197
+ body =<<-EOE
198
+ <DeleteDBParameterGroupResponse xmlns="http://rds.amazonaws.com/admin/2009-10-16/">
199
+ <ResponseMetadata>
200
+ <RequestId>4dc38be9-bf3b-11de-a88b-7b5b3d23b3a7</RequestId>
201
+ </ResponseMetadata>
202
+ </DeleteDBParameterGroupResponse>
203
+ EOE
204
+ @rds.stubs(:make_request).with('DeleteDBSecurityGroup', {'DBSecurityGroupName' => 'mydbsecuritygroup'}).
205
+ returns stub(:body => body, :is_a? => true)
206
+ response = @rds.delete_db_security_group(
207
+ :db_security_group_name => "mydbsecuritygroup"
208
+ )
209
+ response.should.be.an.instance_of Hash
210
+ end
211
+
212
+ specify "should be able to delete_db_snapshot" do
213
+ body =<<-EOE
214
+ <DeleteDBParameterGroupResponse xmlns="http://rds.amazonaws.com/admin/2009-10-16/">
215
+ <ResponseMetadata>
216
+ <RequestId>4dc38be9-bf3b-11de-a88b-7b5b3d23b3a7</RequestId>
217
+ </ResponseMetadata>
218
+ </DeleteDBParameterGroupResponse>
219
+ EOE
220
+ @rds.stubs(:make_request).with('DeleteDBSnapshot', {'DBSnapshotIdentifier' => 'snapshotname'}).
221
+ returns stub(:body => body, :is_a? => true)
222
+ response = @rds.delete_db_snapshot(
223
+ :db_snapshot_identifier => "snapshotname"
224
+ )
225
+ response.should.be.an.instance_of Hash
226
+ end
227
+
228
+ specify "should be able to describe_db_instances" do
229
+ body =<<-EOE
230
+ <DescribeDBInstancesResponse xmlns="http://rds.amazonaws.com/admin/2009-10-16/">
231
+ <DescribeDBInstancesResult>
232
+ <DBInstances>
233
+ <DBInstance>
234
+ <LatestRestorableTime>2009-10-22T18:59:59Z</LatestRestorableTime>
235
+ <Engine>mysql5.1</Engine>
236
+ <BackupRetentionPeriod>3</BackupRetentionPeriod>
237
+ <DBInstanceStatus>available</DBInstanceStatus>
238
+ <DBParameterGroups>
239
+ <DBParameterGroup>
240
+ <ParameterApplyStatus>pending-reboot</ParameterApplyStatus>
241
+ <DBParameterGroupName>default.mysql5.1</DBParameterGroupName>
242
+ </DBParameterGroup>
243
+ </DBParameterGroups>
244
+ <Endpoint>
245
+ <Port>8443</Port>
246
+ <Address>dbinstancename.clouwupjnvmq.us-east-1-devo.rds.amazonaws.com</Address>
247
+ </Endpoint>
248
+ <DBInstanceIdentifier>dbinstancename</DBInstanceIdentifier>
249
+ <PreferredBackupWindow>03:00-05:00</PreferredBackupWindow>
250
+ <DBSecurityGroups>
251
+ <DBSecurityGroup>
252
+ <Status>active</Status>
253
+ <DBSecurityGroupName>default</DBSecurityGroupName>
254
+ </DBSecurityGroup>
255
+ </DBSecurityGroups>
256
+ <DBName>testdb</DBName>
257
+ <PreferredMaintenanceWindow>sun:05:00-sun:09:00</PreferredMaintenanceWindow>
258
+ <AvailabilityZone>us-east-1a</AvailabilityZone>
259
+ <InstanceCreateTime>2009-09-11T00:50:45.523Z</InstanceCreateTime>
260
+ <AllocatedStorage>20</AllocatedStorage>
261
+ <DBInstanceClass>db.m1.xlarge</DBInstanceClass>
262
+ <MasterUsername>sa</MasterUsername>
263
+ </DBInstance>
264
+ </DBInstances>
265
+ </DescribeDBInstancesResult>
266
+ <ResponseMetadata>
267
+ <RequestId>4f1fae46-bf3d-11de-a88b-7b5b3d23b3a7</RequestId>
268
+ </ResponseMetadata>
269
+ </DescribeDBInstancesResponse>
270
+ EOE
271
+ @rds.stubs(:make_request).with('DescribeDBInstances', {'MaxRecords' => '100'}).
272
+ returns stub(:body => body, :is_a? => true)
273
+ response = @rds.describe_db_instances(
274
+ :max_records => "100"
275
+ )
276
+ response.should.be.an.instance_of Hash
277
+ end
278
+
279
+ specify "should be able to describe_db_instances" do
280
+ body =<<-EOE
281
+ <DescribeEngineDefaultParametersResponse xmlns="http://rds.amazonaws.com/admin/2009-10-16/">
282
+ <DescribeEngineDefaultParametersResult>
283
+ <EngineDefaults>
284
+ <Engine>mysql5.1</Engine>
285
+ <Marker>bWF4X3VzZXJfY29ubmVjdGlvbnM=</Marker>
286
+ <Parameters>
287
+ <Parameter>
288
+ <DataType>boolean</DataType>
289
+ <Source>engine-default</Source>
290
+ <IsModifiable>true</IsModifiable>
291
+ <Description>Controls whether user-defined functions that have only an xxx symbol for the main function can be loaded</Description>
292
+ <ApplyType>static</ApplyType>
293
+ <AllowedValues>ON,OFF</AllowedValues>
294
+ <ParameterName>allow-suspicious-udfs</ParameterName>
295
+ </Parameter>
296
+ <Parameter>
297
+ <DataType>integer</DataType>
298
+ <Source>engine-default</Source>
299
+ <IsModifiable>true</IsModifiable>
300
+ <Description>Intended for use with master-to-master replication, and can be used to control the operation of AUTO_INCREMENT columns</Description>
301
+ <ApplyType>dynamic</ApplyType>
302
+ <AllowedValues>1-65535</AllowedValues>
303
+ <ParameterName>auto_increment_increment</ParameterName>
304
+ </Parameter>
305
+ </Parameters>
306
+ </EngineDefaults>
307
+ </DescribeEngineDefaultParametersResult>
308
+ <ResponseMetadata>
309
+ <RequestId>811f4032-bf3e-11de-b88d-993294bf1c81</RequestId>
310
+ </ResponseMetadata>
311
+ </DescribeEngineDefaultParametersResponse>
312
+ EOE
313
+ @rds.stubs(:make_request).with('DescribeEngineDefaultParameters', {'Engine' => 'MySQL5.1'}).
314
+ returns stub(:body => body, :is_a? => true)
315
+ response = @rds.describe_engine_default_parameters(
316
+ :engine => "MySQL5.1"
317
+ )
318
+ response.should.be.an.instance_of Hash
319
+ end
320
+
321
+ specify "should be able to describe_db_instances" do
322
+ body =<<-EOE
323
+ <ModifyDBParameterGroupResponse xmlns="http://rds.amazonaws.com/admin/2009-10-16/">
324
+ <ModifyDBParameterGroupResult>
325
+ <DBParameterGroupName>mydbparametergroup</DBParameterGroupName>
326
+ </ModifyDBParameterGroupResult>
327
+ <ResponseMetadata>
328
+ <RequestId>5ba91f97-bf51-11de-bf60-ef2e377db6f3</RequestId>
329
+ </ResponseMetadata>
330
+ </ModifyDBParameterGroupResponse>
331
+ EOE
332
+
333
+ @rds.stubs(:make_request).with('ModifyDBParameterGroup', {
334
+ 'DBParameterGroupName' => 'mytestdb',
335
+ 'Parameters.member.1.ParameterName' => 'max_user_connections',
336
+ 'Parameters.member.1.ParameterValue' => '24',
337
+ 'Parameters.member.1.ApplyMethod' => 'pending-reboot',
338
+ 'Parameters.member.2.ParameterName' => 'max_allowed_packet',
339
+ 'Parameters.member.2.ParameterValue' => '1024',
340
+ 'Parameters.member.2.ApplyMethod' => 'immediate',
341
+ }).
342
+ returns stub(:body => body, :is_a? => true)
343
+ response = @rds.modify_db_parameter_group(
344
+ :db_parameter_group_name => "mytestdb",
345
+ :parameters => [
346
+ {:name => "max_user_connections", :value => "24", :apply_method => "pending-reboot"},
347
+ {:name => "max_allowed_packet", :value => "1024", :apply_method => "immediate"}
348
+ ]
349
+ )
350
+ response.should.be.an.instance_of Hash
351
+ end
352
+
353
+ end
354
+
@@ -0,0 +1,23 @@
1
+ #--
2
+ # Amazon Web Services EC2 Query API Ruby library
3
+ #
4
+ # Ruby Gem Name:: amazon-ec2
5
+ # Author:: Glenn Rempe (mailto:glenn@rempe.us)
6
+ # Copyright:: Copyright (c) 2007-2008 Glenn Rempe
7
+ # License:: Distributes under the same terms as Ruby
8
+ # Home:: http://github.com/grempe/amazon-ec2/tree/master
9
+ #++
10
+
11
+ require 'rubygems'
12
+ gem 'test-unit'
13
+
14
+ %w[ test/unit test/spec mocha ].each { |f|
15
+ begin
16
+ require f
17
+ rescue LoadError
18
+ abort "Unable to load required gem for test: #{f}"
19
+ end
20
+ }
21
+
22
+ require File.dirname(__FILE__) + '/../lib/AWS'
23
+
@@ -0,0 +1,1269 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
3
+ xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://ec2.amazonaws.com/doc/2007-08-29/"
4
+ targetNamespace="http://ec2.amazonaws.com/doc/2007-08-29/">
5
+
6
+ <types>
7
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
8
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9
+ xmlns:tns="http://ec2.amazonaws.com/doc/2007-08-29/"
10
+ targetNamespace="http://ec2.amazonaws.com/doc/2007-08-29/"
11
+ elementFormDefault="qualified">
12
+
13
+ <xs:annotation>
14
+ <xs:documentation xml:lang="en">
15
+
16
+ </xs:documentation>
17
+ </xs:annotation>
18
+
19
+ <!-- RegisterImage request definitions -->
20
+
21
+ <xs:element name="RegisterImage" type="tns:RegisterImageType"/>
22
+
23
+ <xs:complexType name="RegisterImageType">
24
+ <xs:sequence>
25
+ <xs:element name="imageLocation" type="xs:string"/>
26
+ </xs:sequence>
27
+ </xs:complexType>
28
+
29
+ <!-- RegisterImage response definitions -->
30
+
31
+ <xs:element name="RegisterImageResponse" type="tns:RegisterImageResponseType"/>
32
+ <xs:complexType name="RegisterImageResponseType">
33
+ <xs:sequence>
34
+ <xs:element name="imageId" type="xs:string"/>
35
+ </xs:sequence>
36
+ </xs:complexType>
37
+
38
+ <!-- DeregisterImage request definitions -->
39
+
40
+ <xs:element name="DeregisterImage" type="tns:DeregisterImageType"/>
41
+
42
+ <xs:complexType name="DeregisterImageType">
43
+ <xs:sequence>
44
+ <xs:element name="imageId" type="xs:string"/>
45
+ </xs:sequence>
46
+ </xs:complexType>
47
+
48
+ <!-- DeregisterImage response definitions -->
49
+
50
+ <xs:element name="DeregisterImageResponse" type="tns:DeregisterImageResponseType"/>
51
+
52
+ <xs:complexType name="DeregisterImageResponseType">
53
+ <xs:sequence>
54
+ <xs:element name="return" type="xs:boolean"/>
55
+ </xs:sequence>
56
+ </xs:complexType>
57
+
58
+ <!-- CreateKeyPair request definitions -->
59
+
60
+ <xs:element name="CreateKeyPair" type="tns:CreateKeyPairType"/>
61
+
62
+ <xs:complexType name="CreateKeyPairType">
63
+ <xs:sequence>
64
+ <xs:element name="keyName" type="xs:string"/>
65
+ </xs:sequence>
66
+ </xs:complexType>
67
+
68
+ <!-- CreateKeyPair response definitions -->
69
+
70
+ <xs:element name="CreateKeyPairResponse" type="tns:CreateKeyPairResponseType"/>
71
+
72
+ <xs:complexType name="CreateKeyPairResponseType">
73
+ <xs:sequence>
74
+ <xs:element name="keyName" type="xs:string"/>
75
+ <xs:element name="keyFingerprint" type="xs:string"/>
76
+ <xs:element name="keyMaterial" type="xs:string"/>
77
+ </xs:sequence>
78
+ </xs:complexType>
79
+
80
+ <!-- DeleteKeyPair request definitions -->
81
+
82
+ <xs:element name="DeleteKeyPair" type="tns:DeleteKeyPairType" />
83
+
84
+ <xs:complexType name="DeleteKeyPairType">
85
+ <xs:sequence>
86
+ <xs:element name="keyName" type="xs:string"/>
87
+ </xs:sequence>
88
+ </xs:complexType>
89
+
90
+ <!-- DeleteKeyPair response definitions -->
91
+
92
+ <xs:element name="DeleteKeyPairResponse" type="tns:DeleteKeyPairResponseType"/>
93
+
94
+ <xs:complexType name="DeleteKeyPairResponseType">
95
+ <xs:sequence>
96
+ <xs:element name="return" type="xs:boolean"/>
97
+ </xs:sequence>
98
+ </xs:complexType>
99
+
100
+ <!-- DescribeKeyPairs Request definitions -->
101
+
102
+ <xs:element name="DescribeKeyPairs" type="tns:DescribeKeyPairsType"/>
103
+
104
+ <xs:complexType name="DescribeKeyPairsType">
105
+ <xs:sequence>
106
+ <xs:element name="keySet" type="tns:DescribeKeyPairsInfoType"/>
107
+ </xs:sequence>
108
+ </xs:complexType>
109
+
110
+ <xs:complexType name="DescribeKeyPairsInfoType">
111
+ <xs:sequence>
112
+ <xs:element name="item" type="tns:DescribeKeyPairsItemType" minOccurs="0" maxOccurs="unbounded"/>
113
+ </xs:sequence>
114
+ </xs:complexType>
115
+
116
+ <xs:complexType name="DescribeKeyPairsItemType">
117
+ <xs:sequence>
118
+ <xs:element name="keyName" type="xs:string"/>
119
+ </xs:sequence>
120
+ </xs:complexType>
121
+
122
+ <!-- DescribeKeyPairs Response definitions -->
123
+
124
+ <xs:element name="DescribeKeyPairsResponse" type="tns:DescribeKeyPairsResponseType"/>
125
+
126
+ <xs:complexType name="DescribeKeyPairsResponseType">
127
+ <xs:sequence>
128
+ <xs:element name="keySet" type="tns:DescribeKeyPairsResponseInfoType"/>
129
+ </xs:sequence>
130
+ </xs:complexType>
131
+
132
+ <xs:complexType name="DescribeKeyPairsResponseInfoType">
133
+ <xs:sequence>
134
+ <xs:element name="item" type="tns:DescribeKeyPairsResponseItemType" minOccurs="0" maxOccurs="unbounded"/>
135
+ </xs:sequence>
136
+ </xs:complexType>
137
+
138
+ <xs:complexType name="DescribeKeyPairsResponseItemType">
139
+ <xs:sequence>
140
+ <xs:element name="keyName" type="xs:string" />
141
+ <xs:element name="keyFingerprint" type="xs:string" />
142
+ </xs:sequence>
143
+ </xs:complexType>
144
+
145
+ <!-- RunInstances request definitions -->
146
+
147
+ <xs:element name="RunInstances" type="tns:RunInstancesType"/>
148
+
149
+ <xs:complexType name="RunInstancesType">
150
+ <xs:sequence>
151
+ <xs:element name="imageId" type="xs:string"/>
152
+ <xs:element name="minCount" type="xs:int"/>
153
+ <xs:element name="maxCount" type="xs:int"/>
154
+ <xs:element name="keyName" type="xs:string" minOccurs="0" />
155
+ <xs:element name="groupSet" type="tns:GroupSetType"/>
156
+ <xs:element name="additionalInfo" type="xs:string" minOccurs="0"/>
157
+ <xs:element name="userData" type="tns:UserDataType" minOccurs="0" maxOccurs="1"/>
158
+ <xs:element name="addressingType" type="xs:string" minOccurs="0" maxOccurs="1"/>
159
+ <xs:element name="instanceType" type="xs:string" />
160
+ </xs:sequence>
161
+ </xs:complexType>
162
+
163
+ <xs:complexType name="GroupSetType">
164
+ <xs:sequence>
165
+ <xs:element name="item" type="tns:GroupItemType" minOccurs="0" maxOccurs="unbounded"/>
166
+ </xs:sequence>
167
+ </xs:complexType>
168
+
169
+ <xs:complexType name="GroupItemType">
170
+ <xs:sequence>
171
+ <xs:element name="groupId" type="xs:string"/>
172
+ </xs:sequence>
173
+ </xs:complexType>
174
+
175
+ <xs:complexType name="UserDataType" mixed="true">
176
+ <xs:sequence>
177
+ <xs:element name="data" type="xs:string"/>
178
+ </xs:sequence>
179
+ <xs:attribute name="version" type="xs:string" use="required" fixed="1.0"/>
180
+ <xs:attribute name="encoding" type="xs:string" use="required" fixed="base64"/>
181
+ </xs:complexType>
182
+
183
+ <!-- RunInstances response definitions -->
184
+
185
+ <xs:element name="RunInstancesResponse" type="tns:ReservationInfoType"/>
186
+
187
+ <xs:complexType name="ReservationInfoType">
188
+ <xs:sequence>
189
+ <xs:element name="reservationId" type="xs:string"/>
190
+ <xs:element name="ownerId" type="xs:string"/>
191
+ <xs:element name="groupSet" type="tns:GroupSetType"/>
192
+ <xs:element name="instancesSet" type="tns:RunningInstancesSetType"/>
193
+ </xs:sequence>
194
+ </xs:complexType>
195
+
196
+ <xs:complexType name="RunningInstancesSetType">
197
+ <xs:sequence>
198
+ <xs:element name="item" type="tns:RunningInstancesItemType" minOccurs="1" maxOccurs="unbounded"/>
199
+ </xs:sequence>
200
+ </xs:complexType>
201
+
202
+ <xs:complexType name="RunningInstancesItemType">
203
+ <xs:sequence>
204
+ <xs:element name="instanceId" type="xs:string"/>
205
+ <xs:element name="imageId" type="xs:string"/>
206
+ <xs:element name="instanceState" type="tns:InstanceStateType"/>
207
+ <xs:element name="privateDnsName" type="xs:string"/>
208
+ <xs:element name="dnsName" type="xs:string"/>
209
+ <xs:element name="reason" type="xs:string" minOccurs="0"/>
210
+ <xs:element name="keyName" type="xs:string" minOccurs="0"/>
211
+ <xs:element name="amiLaunchIndex" type="xs:string" minOccurs="0" maxOccurs="1"/>
212
+ <xs:element name="productCodes" type="tns:ProductCodesSetType" minOccurs="0" maxOccurs="1" />
213
+ <xs:element name="instanceType" type="xs:string"/>
214
+ <xs:element name="launchTime" type="xs:dateTime" />
215
+ </xs:sequence>
216
+ </xs:complexType>
217
+
218
+ <!-- GetConsoleOutput request definitions -->
219
+
220
+ <xs:element name="GetConsoleOutput" type="tns:GetConsoleOutputType"/>
221
+
222
+ <xs:complexType name="GetConsoleOutputType">
223
+ <xs:sequence>
224
+ <xs:element name="instanceId" type="xs:string"/>
225
+ </xs:sequence>
226
+ </xs:complexType>
227
+
228
+ <!-- GetConsoleOutput response definitions -->
229
+
230
+ <xs:element name="GetConsoleOutputResponse" type="tns:GetConsoleOutputResponseType"/>
231
+
232
+ <xs:complexType name="GetConsoleOutputResponseType">
233
+ <xs:sequence>
234
+ <xs:element name="instanceId" type="xs:string" />
235
+ <xs:element name="timestamp" type="xs:dateTime" />
236
+ <xs:element name="output" type="xs:string" />
237
+ </xs:sequence>
238
+ </xs:complexType>
239
+
240
+ <!-- TerminateInstances request definitions -->
241
+
242
+ <xs:element name="TerminateInstances" type="tns:TerminateInstancesType"/>
243
+
244
+ <xs:complexType name="TerminateInstancesType">
245
+ <xs:sequence>
246
+ <xs:element name="instancesSet" type="tns:TerminateInstancesInfoType"/>
247
+ </xs:sequence>
248
+ </xs:complexType>
249
+
250
+ <xs:complexType name="TerminateInstancesInfoType">
251
+ <xs:sequence>
252
+ <xs:element name="item" type="tns:TerminateInstancesItemType" minOccurs="1" maxOccurs="unbounded"/>
253
+ </xs:sequence>
254
+ </xs:complexType>
255
+
256
+ <xs:complexType name="TerminateInstancesItemType">
257
+ <xs:sequence>
258
+ <xs:element name="instanceId" type="xs:string"/>
259
+ </xs:sequence>
260
+ </xs:complexType>
261
+
262
+ <!-- TerminateInstances response definitions -->
263
+
264
+ <xs:element name="TerminateInstancesResponse" type="tns:TerminateInstancesResponseType"/>
265
+
266
+ <xs:complexType name="TerminateInstancesResponseType">
267
+ <xs:sequence>
268
+ <xs:element name="instancesSet" type="tns:TerminateInstancesResponseInfoType"/>
269
+ </xs:sequence>
270
+ </xs:complexType>
271
+
272
+ <xs:complexType name="TerminateInstancesResponseInfoType">
273
+ <xs:sequence>
274
+ <xs:element name="item" type="tns:TerminateInstancesResponseItemType" minOccurs="0" maxOccurs="unbounded"/>
275
+ </xs:sequence>
276
+ </xs:complexType>
277
+
278
+ <xs:complexType name="TerminateInstancesResponseItemType">
279
+ <xs:sequence>
280
+ <xs:element name="instanceId" type="xs:string" />
281
+ <xs:element name="shutdownState" type="tns:InstanceStateType" />
282
+ <xs:element name="previousState" type="tns:InstanceStateType" />
283
+ </xs:sequence>
284
+ </xs:complexType>
285
+
286
+ <!-- RebootInstances request definitions -->
287
+ <xs:element name="RebootInstances" type="tns:RebootInstancesType"/>
288
+
289
+ <xs:complexType name="RebootInstancesType">
290
+ <xs:sequence>
291
+ <xs:element name="instancesSet" type="tns:RebootInstancesInfoType"/>
292
+ </xs:sequence>
293
+ </xs:complexType>
294
+
295
+ <xs:complexType name="RebootInstancesInfoType">
296
+ <xs:sequence>
297
+ <xs:element name="item" type="tns:RebootInstancesItemType" minOccurs="1" maxOccurs="unbounded"/>
298
+ </xs:sequence>
299
+ </xs:complexType>
300
+
301
+ <xs:complexType name="RebootInstancesItemType">
302
+ <xs:sequence>
303
+ <xs:element name="instanceId" type="xs:string"/>
304
+ </xs:sequence>
305
+ </xs:complexType>
306
+
307
+ <!-- RebootInstances response definitions -->
308
+
309
+ <xs:element name="RebootInstancesResponse" type="tns:RebootInstancesResponseType"/>
310
+
311
+ <xs:complexType name="RebootInstancesResponseType">
312
+ <xs:sequence>
313
+ <xs:element name="return" type="xs:boolean"/>
314
+ </xs:sequence>
315
+ </xs:complexType>
316
+
317
+ <!-- DescribeInstances Request definitions -->
318
+
319
+ <xs:element name="DescribeInstances" type="tns:DescribeInstancesType"/>
320
+
321
+ <xs:complexType name="DescribeInstancesType">
322
+ <xs:sequence>
323
+ <xs:element name="instancesSet" type="tns:DescribeInstancesInfoType"/>
324
+ </xs:sequence>
325
+ </xs:complexType>
326
+
327
+ <xs:complexType name="DescribeInstancesInfoType">
328
+ <xs:sequence>
329
+ <xs:element name="item" type="tns:DescribeInstancesItemType" minOccurs="0" maxOccurs="unbounded"/>
330
+ </xs:sequence>
331
+ </xs:complexType>
332
+
333
+ <xs:complexType name="DescribeInstancesItemType">
334
+ <xs:sequence>
335
+ <xs:element name="instanceId" type="xs:string" />
336
+ </xs:sequence>
337
+ </xs:complexType>
338
+
339
+ <!-- DescribeInstances Response definitions -->
340
+
341
+ <xs:element name="DescribeInstancesResponse" type="tns:DescribeInstancesResponseType"/>
342
+
343
+ <xs:complexType name="DescribeInstancesResponseType">
344
+ <xs:sequence>
345
+ <xs:element name="reservationSet" type="tns:ReservationSetType"/>
346
+ </xs:sequence>
347
+ </xs:complexType>
348
+
349
+ <xs:complexType name="ReservationSetType">
350
+ <xs:sequence>
351
+ <xs:element name="item" type="tns:ReservationInfoType" minOccurs="0" maxOccurs="unbounded"/>
352
+ </xs:sequence>
353
+ </xs:complexType>
354
+
355
+ <!-- DescribeImages Request definitions -->
356
+
357
+ <xs:element name="DescribeImages" type="tns:DescribeImagesType"/>
358
+
359
+ <xs:complexType name="DescribeImagesType">
360
+ <xs:sequence>
361
+ <xs:element name="executableBySet" type="tns:DescribeImagesExecutableBySetType" minOccurs="0"/>
362
+ <xs:element name="imagesSet" type="tns:DescribeImagesInfoType"/>
363
+ <xs:element name="ownersSet" type="tns:DescribeImagesOwnersType" minOccurs="0"/>
364
+ </xs:sequence>
365
+ </xs:complexType>
366
+
367
+ <xs:complexType name="DescribeImagesInfoType">
368
+ <xs:sequence>
369
+ <xs:element name="item" type="tns:DescribeImagesItemType" minOccurs="0" maxOccurs="unbounded"/>
370
+ </xs:sequence>
371
+ </xs:complexType>
372
+
373
+ <xs:complexType name="DescribeImagesItemType">
374
+ <xs:sequence>
375
+ <xs:element name="imageId" type="xs:string"/>
376
+ </xs:sequence>
377
+ </xs:complexType>
378
+
379
+ <xs:complexType name="DescribeImagesOwnersType">
380
+ <xs:sequence>
381
+ <xs:element name="item" type="tns:DescribeImagesOwnerType" minOccurs="0" maxOccurs="unbounded"/>
382
+ </xs:sequence>
383
+ </xs:complexType>
384
+
385
+ <xs:complexType name="DescribeImagesOwnerType">
386
+ <xs:sequence>
387
+ <xs:element name="owner" type="xs:string"/>
388
+ </xs:sequence>
389
+ </xs:complexType>
390
+
391
+ <xs:complexType name="DescribeImagesExecutableBySetType" >
392
+ <xs:sequence>
393
+ <xs:element name="item" type="tns:DescribeImagesExecutableByType" minOccurs="0" maxOccurs="unbounded"/>
394
+ </xs:sequence>
395
+ </xs:complexType>
396
+
397
+ <xs:complexType name="DescribeImagesExecutableByType" >
398
+ <xs:sequence>
399
+ <xs:element name="user" type="xs:string" />
400
+ </xs:sequence>
401
+ </xs:complexType>
402
+
403
+ <!-- DescribeImages Response definitions -->
404
+
405
+ <xs:element name="DescribeImagesResponse" type="tns:DescribeImagesResponseType"/>
406
+
407
+ <xs:complexType name="DescribeImagesResponseType">
408
+ <xs:sequence>
409
+ <xs:element name="imagesSet" type="tns:DescribeImagesResponseInfoType"/>
410
+ </xs:sequence>
411
+ </xs:complexType>
412
+
413
+ <xs:complexType name="DescribeImagesResponseInfoType">
414
+ <xs:sequence>
415
+ <xs:element name="item" type="tns:DescribeImagesResponseItemType" minOccurs="0" maxOccurs="unbounded"/>
416
+ </xs:sequence>
417
+ </xs:complexType>
418
+
419
+ <xs:complexType name="DescribeImagesResponseItemType">
420
+ <xs:sequence>
421
+ <xs:element name="imageId" type="xs:string" />
422
+ <xs:element name="imageLocation" type="xs:string" />
423
+ <xs:element name="imageState" type="xs:string" />
424
+ <xs:element name="imageOwnerId" type="xs:string" />
425
+ <xs:element name="isPublic" type="xs:boolean" />
426
+ <xs:element name="productCodes" type="tns:ProductCodesSetType" minOccurs="0" />
427
+ </xs:sequence>
428
+ </xs:complexType>
429
+
430
+ <!-- CreateSecurityGroup Request definitions -->
431
+
432
+ <xs:element name="CreateSecurityGroup"
433
+ type="tns:CreateSecurityGroupType"/>
434
+
435
+ <xs:complexType name="CreateSecurityGroupType">
436
+ <xs:sequence>
437
+ <xs:element name="groupName" type="xs:string"/>
438
+ <xs:element name="groupDescription" type="xs:string"/>
439
+ </xs:sequence>
440
+ </xs:complexType>
441
+
442
+ <!-- CreateSecurityGroup Response definitions -->
443
+
444
+ <xs:element name="CreateSecurityGroupResponse"
445
+ type="tns:CreateSecurityGroupResponseType"/>
446
+
447
+ <xs:complexType name="CreateSecurityGroupResponseType">
448
+ <xs:sequence>
449
+ <xs:element name="return" type="xs:boolean"/>
450
+ </xs:sequence>
451
+ </xs:complexType>
452
+
453
+ <!-- DeleteSecurityGroup Request definitions -->
454
+
455
+ <xs:element name="DeleteSecurityGroup"
456
+ type="tns:DeleteSecurityGroupType"/>
457
+
458
+ <xs:complexType name="DeleteSecurityGroupType">
459
+ <xs:sequence>
460
+ <xs:element name="groupName" type="xs:string"/>
461
+ </xs:sequence>
462
+ </xs:complexType>
463
+
464
+ <!-- DeleteSecurityGroup Response definitions -->
465
+
466
+ <xs:element name="DeleteSecurityGroupResponse"
467
+ type="tns:DeleteSecurityGroupResponseType"/>
468
+
469
+ <xs:complexType name="DeleteSecurityGroupResponseType">
470
+ <xs:sequence>
471
+ <xs:element name="return" type="xs:boolean"/>
472
+ </xs:sequence>
473
+ </xs:complexType>
474
+
475
+ <!-- DescribeSecurityGroups Request definitions -->
476
+
477
+ <xs:element name="DescribeSecurityGroups"
478
+ type="tns:DescribeSecurityGroupsType"/>
479
+
480
+ <xs:complexType name="DescribeSecurityGroupsType">
481
+ <xs:sequence>
482
+ <xs:element name="securityGroupSet" type="tns:DescribeSecurityGroupsSetType"/>
483
+ </xs:sequence>
484
+ </xs:complexType>
485
+
486
+ <xs:complexType name="DescribeSecurityGroupsSetType">
487
+ <xs:sequence>
488
+ <xs:element name="item" type="tns:DescribeSecurityGroupsSetItemType"
489
+ minOccurs="0" maxOccurs="unbounded"/>
490
+ </xs:sequence>
491
+ </xs:complexType>
492
+
493
+ <xs:complexType name="DescribeSecurityGroupsSetItemType">
494
+ <xs:sequence>
495
+ <xs:element name="groupName" type="xs:string"/>
496
+ </xs:sequence>
497
+ </xs:complexType>
498
+
499
+ <!-- DescribeSecurityGroups Response definitions -->
500
+
501
+ <xs:element name="DescribeSecurityGroupsResponse"
502
+ type="tns:DescribeSecurityGroupsResponseType"/>
503
+
504
+ <xs:complexType name="DescribeSecurityGroupsResponseType">
505
+ <xs:sequence>
506
+ <xs:element name="securityGroupInfo" type="tns:SecurityGroupSetType"/>
507
+ </xs:sequence>
508
+ </xs:complexType>
509
+
510
+ <xs:complexType name="IpPermissionSetType">
511
+ <xs:sequence>
512
+ <xs:element name="item" type="tns:IpPermissionType"
513
+ minOccurs="0" maxOccurs="unbounded"/>
514
+ </xs:sequence>
515
+ </xs:complexType>
516
+
517
+ <xs:complexType name="IpPermissionType">
518
+ <xs:sequence>
519
+ <xs:element name="ipProtocol" type="xs:string"/>
520
+ <xs:element name="fromPort" type="xs:int"/>
521
+ <xs:element name="toPort" type="xs:int"/>
522
+ <xs:element name="groups" type="tns:UserIdGroupPairSetType"/>
523
+ <xs:element name="ipRanges" type="tns:IpRangeSetType"/>
524
+ </xs:sequence>
525
+ </xs:complexType>
526
+
527
+ <xs:complexType name="IpRangeSetType">
528
+ <xs:sequence>
529
+ <xs:element name="item" type="tns:IpRangeItemType"
530
+ minOccurs="0" maxOccurs="unbounded"/>
531
+ </xs:sequence>
532
+ </xs:complexType>
533
+
534
+ <xs:complexType name="IpRangeItemType">
535
+ <xs:sequence>
536
+ <xs:element name="cidrIp" type="xs:string"/>
537
+ </xs:sequence>
538
+ </xs:complexType>
539
+
540
+ <xs:complexType name="UserIdGroupPairSetType">
541
+ <xs:sequence>
542
+ <xs:element name="item" type="tns:UserIdGroupPairType"
543
+ minOccurs="0" maxOccurs="unbounded"/>
544
+ </xs:sequence>
545
+ </xs:complexType>
546
+
547
+ <xs:complexType name="UserIdGroupPairType">
548
+ <xs:sequence>
549
+ <xs:element name="userId" type="xs:string"/>
550
+ <xs:element name="groupName" type="xs:string"/>
551
+ </xs:sequence>
552
+ </xs:complexType>
553
+
554
+ <xs:complexType name="SecurityGroupSetType">
555
+ <xs:sequence>
556
+ <xs:element name="item" type="tns:SecurityGroupItemType"
557
+ minOccurs="0" maxOccurs="unbounded"/>
558
+ </xs:sequence>
559
+ </xs:complexType>
560
+
561
+ <xs:complexType name="SecurityGroupItemType">
562
+ <xs:sequence>
563
+ <xs:element name="ownerId" type="xs:string"/>
564
+ <xs:element name="groupName" type="xs:string"/>
565
+ <xs:element name="groupDescription" type="xs:string"/>
566
+ <xs:element name="ipPermissions" type="tns:IpPermissionSetType"/>
567
+ </xs:sequence>
568
+ </xs:complexType>
569
+
570
+ <!-- AuthorizeSecurityGroupIngress Request definitions -->
571
+
572
+ <xs:annotation>
573
+ <xs:documentation xml:lang="en">
574
+ This API call should be treated as under development. The current API specification supports a richer
575
+ set of semantics than we intend to retain in future releases, and the details for this call are still under
576
+ review. Semantically, clients can depend on fine grained CIDR based access control (as currently exposed) but
577
+ for group based access control clients should only depend on the ability to control access for an entire
578
+ (user,group) tuple. Fine grained group based access control at the protocol and port or icmp code:type level
579
+ are not guaranteed to be supported in future releases of this API.
580
+ </xs:documentation>
581
+ </xs:annotation>
582
+
583
+ <xs:element name="AuthorizeSecurityGroupIngress"
584
+ type="tns:AuthorizeSecurityGroupIngressType"/>
585
+
586
+ <xs:complexType name="AuthorizeSecurityGroupIngressType">
587
+ <xs:sequence>
588
+ <xs:element name="userId" type="xs:string"/>
589
+ <xs:element name="groupName" type="xs:string"/>
590
+ <xs:element name="ipPermissions" type="tns:IpPermissionSetType"/>
591
+ </xs:sequence>
592
+ </xs:complexType>
593
+
594
+ <!-- AuthorizeSecurityGroupIngress Response definitions -->
595
+
596
+ <xs:element name="AuthorizeSecurityGroupIngressResponse"
597
+ type="tns:AuthorizeSecurityGroupIngressResponseType"/>
598
+
599
+ <xs:complexType name="AuthorizeSecurityGroupIngressResponseType">
600
+ <xs:sequence>
601
+ <xs:element name="return" type="xs:boolean"/>
602
+ </xs:sequence>
603
+ </xs:complexType>
604
+
605
+ <!-- RevokeSecurityGroupIngress Request definitions -->
606
+
607
+ <xs:annotation>
608
+ <xs:documentation xml:lang="en">
609
+ This API call should be treated as under development. The current API specification supports a richer
610
+ set of semantics than we intend to retain in future releases, and the details for this call are still under
611
+ review. Semantically, clients can depend on fine grained CIDR based access control (as currently exposed) but
612
+ for group based access control clients should only depend on the ability to control access for an entire
613
+ (user,group) tuple. Fine grained group based access control at the protocol and port or icmp code:type level
614
+ are not guaranteed to be supported in future releases of this API.
615
+ </xs:documentation>
616
+ </xs:annotation>
617
+
618
+ <xs:element name="RevokeSecurityGroupIngress"
619
+ type="tns:RevokeSecurityGroupIngressType"/>
620
+
621
+ <xs:complexType name="RevokeSecurityGroupIngressType">
622
+ <xs:sequence>
623
+ <xs:element name="userId" type="xs:string"/>
624
+ <xs:element name="groupName" type="xs:string"/>
625
+ <xs:element name="ipPermissions" type="tns:IpPermissionSetType"/>
626
+ </xs:sequence>
627
+ </xs:complexType>
628
+
629
+ <!-- RevokeSecurityGroupIngress Response definitions -->
630
+
631
+ <xs:element name="RevokeSecurityGroupIngressResponse"
632
+ type="tns:RevokeSecurityGroupIngressResponseType"/>
633
+
634
+ <xs:complexType name="RevokeSecurityGroupIngressResponseType">
635
+ <xs:sequence>
636
+ <xs:element name="return" type="xs:boolean"/>
637
+ </xs:sequence>
638
+ </xs:complexType>
639
+
640
+ <!-- Instance state type definition -->
641
+
642
+ <xs:complexType name="InstanceStateType">
643
+ <xs:sequence>
644
+ <xs:element name="code" type="xs:int"/>
645
+ <xs:element name="name" type="xs:string"/>
646
+ </xs:sequence>
647
+ </xs:complexType>
648
+
649
+ <!-- ModifyImageAttribute Definitions -->
650
+
651
+ <xs:element name="ModifyImageAttribute"
652
+ type="tns:ModifyImageAttributeType"/>
653
+
654
+ <xs:complexType name="ModifyImageAttributeType">
655
+ <xs:sequence>
656
+ <xs:element name="imageId" type="xs:string"/>
657
+ <xs:choice>
658
+ <xs:element name="launchPermission" type="tns:LaunchPermissionOperationType"/>
659
+ <xs:element name="productCodes" type="tns:ProductCodeListType" />
660
+ </xs:choice>
661
+ </xs:sequence>
662
+ </xs:complexType>
663
+
664
+ <xs:complexType name="LaunchPermissionOperationType">
665
+ <xs:choice>
666
+ <xs:element name="add" type="tns:LaunchPermissionListType"/>
667
+ <xs:element name="remove" type="tns:LaunchPermissionListType"/>
668
+ </xs:choice>
669
+ </xs:complexType>
670
+
671
+ <xs:complexType name="LaunchPermissionListType">
672
+ <xs:sequence>
673
+ <xs:element name="item" type="tns:LaunchPermissionItemType" minOccurs="0" maxOccurs="unbounded"/>
674
+ </xs:sequence>
675
+ </xs:complexType>
676
+
677
+ <xs:complexType name="LaunchPermissionItemType">
678
+ <xs:choice>
679
+ <xs:element name="userId" type="xs:string"/>
680
+ <xs:element name="group" type="xs:string" />
681
+ </xs:choice>
682
+ </xs:complexType>
683
+
684
+ <xs:complexType name="ProductCodeListType">
685
+ <xs:sequence>
686
+ <xs:element name="item" type="tns:ProductCodeItemType" minOccurs="0" maxOccurs="unbounded"/>
687
+ </xs:sequence>
688
+ </xs:complexType>
689
+
690
+ <xs:complexType name="ProductCodeItemType">
691
+ <xs:choice>
692
+ <xs:element name="productCode" type="xs:string"/>
693
+ </xs:choice>
694
+ </xs:complexType>
695
+
696
+ <!-- ModifyImageAttributeResponse Definitions -->
697
+
698
+ <xs:element name="ModifyImageAttributeResponse"
699
+ type="tns:ModifyImageAttributeResponseType" />
700
+
701
+ <xs:complexType name="ModifyImageAttributeResponseType">
702
+ <xs:sequence>
703
+ <xs:element name="return" type="xs:boolean"/>
704
+ </xs:sequence>
705
+ </xs:complexType>
706
+
707
+ <!-- ResetImageAttribute Definitions -->
708
+
709
+ <xs:element name="ResetImageAttribute"
710
+ type="tns:ResetImageAttributeType" />
711
+
712
+ <xs:complexType name="ResetImageAttributeType" >
713
+ <xs:sequence>
714
+ <xs:element name="imageId" type="xs:string"/>
715
+ <xs:group ref="tns:ResetImageAttributesGroup"/>
716
+ </xs:sequence>
717
+ </xs:complexType>
718
+
719
+ <xs:group name="ResetImageAttributesGroup" >
720
+ <xs:choice>
721
+ <xs:element name="launchPermission" type="tns:EmptyElementType"/>
722
+ </xs:choice>
723
+ </xs:group>
724
+
725
+ <xs:complexType name="EmptyElementType">
726
+ </xs:complexType>
727
+
728
+ <!-- ResetImageAttributeResponse Definitions -->
729
+
730
+ <xs:element name="ResetImageAttributeResponse"
731
+ type="tns:ResetImageAttributeResponseType" />
732
+
733
+ <xs:complexType name="ResetImageAttributeResponseType">
734
+ <xs:sequence>
735
+ <xs:element name="return" type="xs:boolean" />
736
+ </xs:sequence>
737
+ </xs:complexType>
738
+
739
+ <!-- DescribeImageAttribute Definitions -->
740
+
741
+ <xs:element name="DescribeImageAttribute"
742
+ type="tns:DescribeImageAttributeType" />
743
+
744
+ <xs:complexType name="DescribeImageAttributeType">
745
+ <xs:sequence>
746
+ <xs:element name="imageId" type="xs:string" />
747
+ <xs:group ref="tns:DescribeImageAttributesGroup" />
748
+ </xs:sequence>
749
+ </xs:complexType>
750
+
751
+ <xs:group name="DescribeImageAttributesGroup" >
752
+ <xs:choice>
753
+ <xs:element name="launchPermission" type="tns:EmptyElementType"/>
754
+ <xs:element name="productCodes" type="tns:EmptyElementType" />
755
+ </xs:choice>
756
+ </xs:group>
757
+
758
+ <!-- DescribeImageAttributeResponse Definitions -->
759
+
760
+ <xs:element name="DescribeImageAttributeResponse"
761
+ type="tns:DescribeImageAttributeResponseType" />
762
+
763
+ <xs:complexType name="DescribeImageAttributeResponseType">
764
+ <xs:sequence>
765
+ <xs:element name="imageId" type="xs:string" />
766
+ <xs:choice>
767
+ <xs:element name="launchPermission" type="tns:LaunchPermissionListType"/>
768
+ <xs:element name="productCodes" type="tns:ProductCodeListType" />
769
+ </xs:choice>
770
+ </xs:sequence>
771
+ </xs:complexType>
772
+
773
+ <!-- ConfirmProductInstance Definitions -->
774
+
775
+ <xs:element name="ConfirmProductInstance"
776
+ type="tns:ConfirmProductInstanceType" />
777
+
778
+ <xs:complexType name="ConfirmProductInstanceType" >
779
+ <xs:sequence>
780
+ <xs:element name="productCode" type="xs:string" />
781
+ <xs:element name="instanceId" type="xs:string"/>
782
+ </xs:sequence>
783
+ </xs:complexType>
784
+
785
+ <xs:complexType name="ProductCodesSetType" >
786
+ <xs:sequence>
787
+ <xs:element name="item" type="tns:ProductCodesSetItemType" minOccurs="0" maxOccurs="unbounded" />
788
+ </xs:sequence>
789
+ </xs:complexType>
790
+
791
+ <xs:complexType name="ProductCodesSetItemType" >
792
+ <xs:sequence>
793
+ <xs:element name="productCode" type="xs:string" />
794
+ </xs:sequence>
795
+ </xs:complexType>
796
+
797
+ <!-- ConfirmProductInstanceResponse Definitions -->
798
+
799
+ <xs:element name="ConfirmProductInstanceResponse"
800
+ type="tns:ConfirmProductInstanceResponseType" />
801
+
802
+ <xs:complexType name="ConfirmProductInstanceResponseType">
803
+ <xs:sequence>
804
+ <xs:element name="return" type="xs:boolean" />
805
+ <xs:element name="ownerId" type="xs:string" minOccurs="0" />
806
+ </xs:sequence>
807
+ </xs:complexType>
808
+
809
+ </xs:schema>
810
+ </types>
811
+
812
+ <!-- message definitions -->
813
+
814
+ <message name="RegisterImageRequestMsg">
815
+ <part name="RegisterImageRequestMsgReq" element="tns:RegisterImage" />
816
+ </message>
817
+
818
+ <message name="RegisterImageResponseMsg">
819
+ <part name="RegisterImageResponseMsgResp" element="tns:RegisterImageResponse" />
820
+ </message>
821
+
822
+ <message name="DeregisterImageRequestMsg">
823
+ <part name="DeregisterImageRequestMsgReq" element="tns:DeregisterImage" />
824
+ </message>
825
+
826
+ <message name="DeregisterImageResponseMsg">
827
+ <part name="DeregisterImageResponseMsgResp" element="tns:DeregisterImageResponse" />
828
+ </message>
829
+
830
+ <message name="RunInstancesRequestMsg">
831
+ <part name="RunInstancesRequestMsgReq" element="tns:RunInstances" />
832
+ </message>
833
+
834
+ <message name="RunInstancesResponseMsg">
835
+ <part name="RunInstancesResponseMsgResp" element="tns:RunInstancesResponse" />
836
+ </message>
837
+
838
+ <message name="CreateKeyPairRequestMsg">
839
+ <part name="CreateKeyPairRequestMsgReq" element="tns:CreateKeyPair" />
840
+ </message>
841
+
842
+ <message name="CreateKeyPairResponseMsg">
843
+ <part name="CreateKeyPairResponseMsgResp" element="tns:CreateKeyPairResponse" />
844
+ </message>
845
+
846
+ <message name="DescribeKeyPairsRequestMsg">
847
+ <part name="DescribeKeyPairsRequestMsgReq" element="tns:DescribeKeyPairs" />
848
+ </message>
849
+
850
+ <message name="DescribeKeyPairsResponseMsg">
851
+ <part name="DescribeKeyPairsResponseMsgResp" element="tns:DescribeKeyPairsResponse" />
852
+ </message>
853
+
854
+ <message name="DeleteKeyPairRequestMsg">
855
+ <part name="DeleteKeyPairRequestMsgReq" element="tns:DeleteKeyPair" />
856
+ </message>
857
+
858
+ <message name="DeleteKeyPairResponseMsg">
859
+ <part name="DeleteKeyPairResponseMsgResp" element="tns:DeleteKeyPairResponse" />
860
+ </message>
861
+
862
+ <message name="GetConsoleOutputRequestMsg">
863
+ <part name="GetConsoleOutputRequestMsgReq" element="tns:GetConsoleOutput" />
864
+ </message>
865
+
866
+ <message name="GetConsoleOutputResponseMsg">
867
+ <part name="GetConsoleOutputResponseMsgResp" element="tns:GetConsoleOutputResponse" />
868
+ </message>
869
+
870
+ <message name="TerminateInstancesRequestMsg">
871
+ <part name="TerminateInstancesRequestMsgReq" element="tns:TerminateInstances" />
872
+ </message>
873
+
874
+ <message name="TerminateInstancesResponseMsg">
875
+ <part name="TerminateInstancesResponseMsgResp" element="tns:TerminateInstancesResponse" />
876
+ </message>
877
+
878
+ <message name="RebootInstancesRequestMsg">
879
+ <part name="RebootInstancesRequestMsgReq" element="tns:RebootInstances" />
880
+ </message>
881
+
882
+ <message name="RebootInstancesResponseMsg">
883
+ <part name="RebootInstancesRequestMsgResp" element="tns:RebootInstancesResponse" />
884
+ </message>
885
+
886
+ <message name="DescribeInstancesRequestMsg">
887
+ <part name="DescribeInstancesRequestMsgReq" element="tns:DescribeInstances" />
888
+ </message>
889
+
890
+ <message name="DescribeInstancesResponseMsg">
891
+ <part name="DescribeInstancesRequestMsgResp" element="tns:DescribeInstancesResponse" />
892
+ </message>
893
+
894
+ <message name="DescribeImagesRequestMsg">
895
+ <part name="DescribeImagesRequestMsgReq" element="tns:DescribeImages" />
896
+ </message>
897
+
898
+ <message name="DescribeImagesResponseMsg">
899
+ <part name="DescribeImagesRequestMsgResp" element="tns:DescribeImagesResponse" />
900
+ </message>
901
+
902
+ <message name="CreateSecurityGroupRequestMsg">
903
+ <part name="CreateSecurityGroupRequestMsgReq" element="tns:CreateSecurityGroup" />
904
+ </message>
905
+
906
+ <message name="CreateSecurityGroupResponseMsg">
907
+ <part name="CreateSecurityGroupRequestMsgResp" element="tns:CreateSecurityGroupResponse" />
908
+ </message>
909
+
910
+ <message name="DeleteSecurityGroupRequestMsg">
911
+ <part name="DeleteSecurityGroupRequestMsgReq" element="tns:DeleteSecurityGroup" />
912
+ </message>
913
+
914
+ <message name="DeleteSecurityGroupResponseMsg">
915
+ <part name="DeleteSecurityGroupRequestMsgResp" element="tns:DeleteSecurityGroupResponse" />
916
+ </message>
917
+
918
+ <message name="DescribeSecurityGroupsRequestMsg">
919
+ <part name="DescribeSecurityGroupsRequestMsgReq" element="tns:DescribeSecurityGroups" />
920
+ </message>
921
+
922
+ <message name="DescribeSecurityGroupsResponseMsg">
923
+ <part name="DescribeSecurityGroupsRequestMsgResp" element="tns:DescribeSecurityGroupsResponse" />
924
+ </message>
925
+
926
+ <message name="AuthorizeSecurityGroupIngressRequestMsg">
927
+ <part name="AuthorizeSecurityGroupIngressRequestMsgReq" element="tns:AuthorizeSecurityGroupIngress" />
928
+ </message>
929
+
930
+ <message name="AuthorizeSecurityGroupIngressResponseMsg">
931
+ <part name="AuthorizeSecurityGroupIngressRequestMsgResp" element="tns:AuthorizeSecurityGroupIngressResponse" />
932
+ </message>
933
+
934
+ <message name="RevokeSecurityGroupIngressRequestMsg">
935
+ <part name="RevokeSecurityGroupIngressRequestMsgReq" element="tns:RevokeSecurityGroupIngress" />
936
+ </message>
937
+
938
+ <message name="RevokeSecurityGroupIngressResponseMsg">
939
+ <part name="RevokeSecurityGroupIngressRequestMsgResp" element="tns:RevokeSecurityGroupIngressResponse" />
940
+ </message>
941
+
942
+ <message name="ModifyImageAttributeRequestMsg">
943
+ <part name="ModifyImageAttributeRequestMsgReq" element="tns:ModifyImageAttribute" />
944
+ </message>
945
+
946
+ <message name="ModifyImageAttributeResponseMsg">
947
+ <part name="ModifyImageAttributeRequestMsgResp" element="tns:ModifyImageAttributeResponse" />
948
+ </message>
949
+
950
+ <message name="ResetImageAttributeRequestMsg">
951
+ <part name="ResetImageAttributeRequestMsgReq" element="tns:ResetImageAttribute" />
952
+ </message>
953
+
954
+ <message name="ResetImageAttributeResponseMsg">
955
+ <part name="ResetImageAttributeRequestMsgResp" element="tns:ResetImageAttributeResponse" />
956
+ </message>
957
+
958
+ <message name="DescribeImageAttributeRequestMsg">
959
+ <part name="DescribeImageAttributeRequestMsgReq" element="tns:DescribeImageAttribute" />
960
+ </message>
961
+
962
+ <message name="DescribeImageAttributeResponseMsg">
963
+ <part name="DescribeImageAttributeRequestMsgResp" element="tns:DescribeImageAttributeResponse"/>
964
+ </message>
965
+
966
+ <message name="ConfirmProductInstanceRequestMsg">
967
+ <part name="ConfirmProductInstanceRequestMsgReq" element="tns:ConfirmProductInstance"/>
968
+ </message>
969
+
970
+ <message name="ConfirmProductInstanceResponseMsg">
971
+ <part name="ConfirmProductInstanceRequestMsgResp" element="tns:ConfirmProductInstanceResponse"/>
972
+ </message>
973
+
974
+ <portType name="AmazonEC2PortType">
975
+ <operation name="RegisterImage">
976
+ <input message="tns:RegisterImageRequestMsg" />
977
+ <output message="tns:RegisterImageResponseMsg" />
978
+ </operation>
979
+ <operation name="DeregisterImage">
980
+ <input message="tns:DeregisterImageRequestMsg" />
981
+ <output message="tns:DeregisterImageResponseMsg" />
982
+ </operation>
983
+ <operation name="RunInstances">
984
+ <input message="tns:RunInstancesRequestMsg" />
985
+ <output message="tns:RunInstancesResponseMsg" />
986
+ </operation>
987
+ <operation name="CreateKeyPair">
988
+ <input message="tns:CreateKeyPairRequestMsg" />
989
+ <output message="tns:CreateKeyPairResponseMsg" />
990
+ </operation>
991
+ <operation name="DescribeKeyPairs">
992
+ <input message="tns:DescribeKeyPairsRequestMsg" />
993
+ <output message="tns:DescribeKeyPairsResponseMsg" />
994
+ </operation>
995
+ <operation name="DeleteKeyPair">
996
+ <input message="tns:DeleteKeyPairRequestMsg" />
997
+ <output message="tns:DeleteKeyPairResponseMsg" />
998
+ </operation>
999
+ <operation name="GetConsoleOutput">
1000
+ <input message="tns:GetConsoleOutputRequestMsg" />
1001
+ <output message="tns:GetConsoleOutputResponseMsg" />
1002
+ </operation>
1003
+ <operation name="TerminateInstances">
1004
+ <input message="tns:TerminateInstancesRequestMsg" />
1005
+ <output message="tns:TerminateInstancesResponseMsg" />
1006
+ </operation>
1007
+ <operation name="RebootInstances">
1008
+ <input message="tns:RebootInstancesRequestMsg" />
1009
+ <output message="tns:RebootInstancesResponseMsg" />
1010
+ </operation>
1011
+ <operation name="DescribeInstances">
1012
+ <input message="tns:DescribeInstancesRequestMsg" />
1013
+ <output message="tns:DescribeInstancesResponseMsg" />
1014
+ </operation>
1015
+ <operation name="DescribeImages">
1016
+ <input message="tns:DescribeImagesRequestMsg" />
1017
+ <output message="tns:DescribeImagesResponseMsg" />
1018
+ </operation>
1019
+ <operation name="CreateSecurityGroup">
1020
+ <input message="tns:CreateSecurityGroupRequestMsg" />
1021
+ <output message="tns:CreateSecurityGroupResponseMsg" />
1022
+ </operation>
1023
+ <operation name="DeleteSecurityGroup">
1024
+ <input message="tns:DeleteSecurityGroupRequestMsg" />
1025
+ <output message="tns:DeleteSecurityGroupResponseMsg" />
1026
+ </operation>
1027
+ <operation name="DescribeSecurityGroups">
1028
+ <input message="tns:DescribeSecurityGroupsRequestMsg" />
1029
+ <output message="tns:DescribeSecurityGroupsResponseMsg" />
1030
+ </operation>
1031
+ <operation name="AuthorizeSecurityGroupIngress">
1032
+ <input message="tns:AuthorizeSecurityGroupIngressRequestMsg" />
1033
+ <output message="tns:AuthorizeSecurityGroupIngressResponseMsg" />
1034
+ </operation>
1035
+ <operation name="RevokeSecurityGroupIngress">
1036
+ <input message="tns:RevokeSecurityGroupIngressRequestMsg" />
1037
+ <output message="tns:RevokeSecurityGroupIngressResponseMsg" />
1038
+ </operation>
1039
+ <operation name="ModifyImageAttribute">
1040
+ <input message="tns:ModifyImageAttributeRequestMsg"/>
1041
+ <output message="tns:ModifyImageAttributeResponseMsg"/>
1042
+ </operation>
1043
+ <operation name="ResetImageAttribute">
1044
+ <input message="tns:ResetImageAttributeRequestMsg"/>
1045
+ <output message="tns:ResetImageAttributeResponseMsg"/>
1046
+ </operation>
1047
+ <operation name="DescribeImageAttribute">
1048
+ <input message="tns:DescribeImageAttributeRequestMsg"/>
1049
+ <output message="tns:DescribeImageAttributeResponseMsg"/>
1050
+ </operation>
1051
+ <operation name="ConfirmProductInstance">
1052
+ <input message="tns:ConfirmProductInstanceRequestMsg"/>
1053
+ <output message="tns:ConfirmProductInstanceResponseMsg"/>
1054
+ </operation>
1055
+ </portType>
1056
+
1057
+ <binding name="AmazonEC2Binding" type="tns:AmazonEC2PortType">
1058
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
1059
+
1060
+ <operation name="RegisterImage">
1061
+ <soap:operation soapAction="RegisterImage" />
1062
+ <input>
1063
+ <soap:body use="literal" />
1064
+ </input>
1065
+ <output>
1066
+ <soap:body use="literal" />
1067
+ </output>
1068
+ </operation>
1069
+
1070
+ <operation name="DeregisterImage">
1071
+ <soap:operation soapAction="DeregisterImage" />
1072
+ <input>
1073
+ <soap:body use="literal" />
1074
+ </input>
1075
+ <output>
1076
+ <soap:body use="literal" />
1077
+ </output>
1078
+ </operation>
1079
+
1080
+ <operation name="CreateKeyPair">
1081
+ <soap:operation soapAction="CreateKeyPair" />
1082
+ <input>
1083
+ <soap:body use="literal" />
1084
+ </input>
1085
+ <output>
1086
+ <soap:body use="literal" />
1087
+ </output>
1088
+ </operation>
1089
+
1090
+ <operation name="DescribeKeyPairs">
1091
+ <soap:operation soapAction="DescribeKeyPairs" />
1092
+ <input>
1093
+ <soap:body use="literal" />
1094
+ </input>
1095
+ <output>
1096
+ <soap:body use="literal" />
1097
+ </output>
1098
+ </operation>
1099
+
1100
+ <operation name="DeleteKeyPair">
1101
+ <soap:operation soapAction="DeleteKeyPair" />
1102
+ <input>
1103
+ <soap:body use="literal" />
1104
+ </input>
1105
+ <output>
1106
+ <soap:body use="literal" />
1107
+ </output>
1108
+ </operation>
1109
+
1110
+ <operation name="RunInstances">
1111
+ <soap:operation soapAction="RunInstances" />
1112
+ <input>
1113
+ <soap:body use="literal" />
1114
+ </input>
1115
+ <output>
1116
+ <soap:body use="literal" />
1117
+ </output>
1118
+ </operation>
1119
+
1120
+ <operation name="GetConsoleOutput">
1121
+ <soap:operation soapAction="GetConsoleOutput" />
1122
+ <input>
1123
+ <soap:body use="literal" />
1124
+ </input>
1125
+ <output>
1126
+ <soap:body use="literal" />
1127
+ </output>
1128
+ </operation>
1129
+
1130
+ <operation name="TerminateInstances">
1131
+ <soap:operation soapAction="TerminateInstances" />
1132
+ <input>
1133
+ <soap:body use="literal" />
1134
+ </input>
1135
+ <output>
1136
+ <soap:body use="literal" />
1137
+ </output>
1138
+ </operation>
1139
+
1140
+ <operation name="RebootInstances">
1141
+ <soap:operation soapAction="RebootInstances" />
1142
+ <input>
1143
+ <soap:body use="literal" />
1144
+ </input>
1145
+ <output>
1146
+ <soap:body use="literal" />
1147
+ </output>
1148
+ </operation>
1149
+
1150
+ <operation name="DescribeInstances">
1151
+ <soap:operation soapAction="DescribeInstances" />
1152
+ <input>
1153
+ <soap:body use="literal" />
1154
+ </input>
1155
+ <output>
1156
+ <soap:body use="literal" />
1157
+ </output>
1158
+ </operation>
1159
+
1160
+ <operation name="DescribeImages">
1161
+ <soap:operation soapAction="DescribeImages" />
1162
+ <input>
1163
+ <soap:body use="literal" />
1164
+ </input>
1165
+ <output>
1166
+ <soap:body use="literal" />
1167
+ </output>
1168
+ </operation>
1169
+
1170
+ <operation name="CreateSecurityGroup">
1171
+ <soap:operation soapAction="CreateSecurityGroup" />
1172
+ <input>
1173
+ <soap:body use="literal" />
1174
+ </input>
1175
+ <output>
1176
+ <soap:body use="literal" />
1177
+ </output>
1178
+ </operation>
1179
+
1180
+
1181
+ <operation name="DeleteSecurityGroup">
1182
+ <soap:operation soapAction="DeleteSecurityGroup" />
1183
+ <input>
1184
+ <soap:body use="literal" />
1185
+ </input>
1186
+ <output>
1187
+ <soap:body use="literal" />
1188
+ </output>
1189
+ </operation>
1190
+
1191
+ <operation name="DescribeSecurityGroups">
1192
+ <soap:operation soapAction="DescribeSecurityGroups" />
1193
+ <input>
1194
+ <soap:body use="literal" />
1195
+ </input>
1196
+ <output>
1197
+ <soap:body use="literal" />
1198
+ </output>
1199
+ </operation>
1200
+
1201
+ <operation name="AuthorizeSecurityGroupIngress">
1202
+ <soap:operation soapAction="AuthorizeSecurityGroupIngress" />
1203
+ <input>
1204
+ <soap:body use="literal" />
1205
+ </input>
1206
+ <output>
1207
+ <soap:body use="literal" />
1208
+ </output>
1209
+ </operation>
1210
+
1211
+ <operation name="RevokeSecurityGroupIngress">
1212
+ <soap:operation soapAction="RevokeSecurityGroupIngress" />
1213
+ <input>
1214
+ <soap:body use="literal" />
1215
+ </input>
1216
+ <output>
1217
+ <soap:body use="literal" />
1218
+ </output>
1219
+ </operation>
1220
+
1221
+ <operation name="ModifyImageAttribute">
1222
+ <soap:operation soapAction="ModifyImageAttribute" />
1223
+ <input>
1224
+ <soap:body use="literal"/>
1225
+ </input>
1226
+ <output>
1227
+ <soap:body use="literal"/>
1228
+ </output>
1229
+ </operation>
1230
+
1231
+ <operation name="ResetImageAttribute">
1232
+ <soap:operation soapAction="ResetImageAttribute" />
1233
+ <input>
1234
+ <soap:body use="literal"/>
1235
+ </input>
1236
+ <output>
1237
+ <soap:body use="literal"/>
1238
+ </output>
1239
+ </operation>
1240
+
1241
+ <operation name="DescribeImageAttribute">
1242
+ <soap:operation soapAction="DescribeImageAttribute" />
1243
+ <input>
1244
+ <soap:body use="literal"/>
1245
+ </input>
1246
+ <output>
1247
+ <soap:body use="literal"/>
1248
+ </output>
1249
+ </operation>
1250
+
1251
+ <operation name="ConfirmProductInstance">
1252
+ <soap:operation soapAction="ConfirmProductInstance" />
1253
+ <input>
1254
+ <soap:body use="literal"/>
1255
+ </input>
1256
+ <output>
1257
+ <soap:body use="literal"/>
1258
+ </output>
1259
+ </operation>
1260
+
1261
+ </binding>
1262
+
1263
+ <service name="AmazonEC2">
1264
+ <port name="AmazonEC2Port" binding="tns:AmazonEC2Binding">
1265
+ <soap:address location="https://ec2.amazonaws.com/" />
1266
+ </port>
1267
+ </service>
1268
+
1269
+ </definitions>