newrelic-amazon-ec2 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +8 -0
- data/.yardopts +1 -0
- data/ChangeLog +293 -0
- data/LICENSE +66 -0
- data/README.rdoc +354 -0
- data/README_dev.rdoc +12 -0
- data/Rakefile +101 -0
- data/VERSION +1 -0
- data/amazon-ec2.gemspec +134 -0
- data/bin/ec2-gem-example.rb +137 -0
- data/bin/ec2-gem-profile.rb +10 -0
- data/bin/ec2sh +62 -0
- data/bin/setup.rb +28 -0
- data/deps.rip +1 -0
- data/lib/AWS.rb +292 -0
- data/lib/AWS/Autoscaling.rb +70 -0
- data/lib/AWS/Autoscaling/autoscaling.rb +273 -0
- data/lib/AWS/Cloudwatch.rb +32 -0
- data/lib/AWS/Cloudwatch/monitoring.rb +89 -0
- data/lib/AWS/EC2.rb +33 -0
- data/lib/AWS/EC2/availability_zones.rb +21 -0
- data/lib/AWS/EC2/console.rb +23 -0
- data/lib/AWS/EC2/elastic_ips.rb +81 -0
- data/lib/AWS/EC2/image_attributes.rb +133 -0
- data/lib/AWS/EC2/images.rb +101 -0
- data/lib/AWS/EC2/instances.rb +212 -0
- data/lib/AWS/EC2/keypairs.rb +61 -0
- data/lib/AWS/EC2/products.rb +21 -0
- data/lib/AWS/EC2/security_groups.rb +183 -0
- data/lib/AWS/EC2/snapshots.rb +59 -0
- data/lib/AWS/EC2/volumes.rb +115 -0
- data/lib/AWS/ELB.rb +71 -0
- data/lib/AWS/ELB/load_balancers.rb +178 -0
- data/lib/AWS/exceptions.rb +122 -0
- data/lib/AWS/responses.rb +21 -0
- data/newrelic-amazon-ec2.gemspec +136 -0
- data/perftools/ec2prof +0 -0
- data/perftools/ec2prof-results.dot +132 -0
- data/perftools/ec2prof-results.txt +100 -0
- data/perftools/ec2prof.symbols +102 -0
- data/test/test_Autoscaling_groups.rb +336 -0
- data/test/test_EC2.rb +68 -0
- data/test/test_EC2_availability_zones.rb +49 -0
- data/test/test_EC2_console.rb +54 -0
- data/test/test_EC2_elastic_ips.rb +144 -0
- data/test/test_EC2_image_attributes.rb +238 -0
- data/test/test_EC2_images.rb +197 -0
- data/test/test_EC2_instances.rb +429 -0
- data/test/test_EC2_keypairs.rb +123 -0
- data/test/test_EC2_products.rb +48 -0
- data/test/test_EC2_responses.rb +53 -0
- data/test/test_EC2_s3_xmlsimple.rb +80 -0
- data/test/test_EC2_security_groups.rb +205 -0
- data/test/test_EC2_snapshots.rb +83 -0
- data/test/test_EC2_volumes.rb +142 -0
- data/test/test_ELB_load_balancers.rb +239 -0
- data/test/test_helper.rb +23 -0
- data/wsdl/2007-08-29.ec2.wsdl +1269 -0
- data/wsdl/2008-02-01.ec2.wsdl +1614 -0
- data/wsdl/2008-05-05.ec2.wsdl +2052 -0
- data/wsdl/2008-12-01.ec2.wsdl +2354 -0
- metadata +218 -0
@@ -0,0 +1,142 @@
|
|
1
|
+
#--
|
2
|
+
# Amazon Web Services EC2 Query API Ruby library, EBS volumes support
|
3
|
+
#
|
4
|
+
# Ruby Gem Name:: amazon-ec2
|
5
|
+
# Author:: Yann Klis (mailto:yann.klis@novelys.com)
|
6
|
+
# Copyright:: Copyright (c) 2008 Yann Klis
|
7
|
+
# License:: Distributes under the same terms as Ruby
|
8
|
+
# Home:: http://github.com/grempe/amazon-ec2/tree/master
|
9
|
+
#++
|
10
|
+
|
11
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
12
|
+
|
13
|
+
context "EC2 volumes " do
|
14
|
+
|
15
|
+
before do
|
16
|
+
@ec2 = AWS::EC2::Base.new( :access_key_id => "not a key", :secret_access_key => "not a secret" )
|
17
|
+
|
18
|
+
@describe_volumes_response_body = <<-RESPONSE
|
19
|
+
<DescribeVolumesResponse xmlns="http://ec2.amazonaws.com/doc/2008-05-05">
|
20
|
+
<volumeSet>
|
21
|
+
<item>
|
22
|
+
<volumeId>vol-4282672b</volumeId>
|
23
|
+
<size>800</size>
|
24
|
+
<status>in-use</status>
|
25
|
+
<createTime>2008-05-07T11:51:50.000Z</createTime>
|
26
|
+
<attachmentSet>
|
27
|
+
<item>
|
28
|
+
<volumeId>vol-4282672b</volumeId>
|
29
|
+
<instanceId>i-6058a509</instanceId>
|
30
|
+
<size>800</size>
|
31
|
+
<status>attached</status>
|
32
|
+
<attachTime>2008-05-07T12:51:50.000Z</attachTime>
|
33
|
+
</item>
|
34
|
+
</attachmentSet>
|
35
|
+
</item>
|
36
|
+
</volumeSet>
|
37
|
+
</DescribeVolumesResponse>
|
38
|
+
RESPONSE
|
39
|
+
|
40
|
+
@create_volume_response_body = <<-RESPONSE
|
41
|
+
<CreateVolumeResponse xmlns="http://ec2.amazonaws.com/doc/2008-05-05">
|
42
|
+
<volumeId>vol-4d826724</volumeId>
|
43
|
+
<size>800</size>
|
44
|
+
<status>creating</status>
|
45
|
+
<createTime>2008-05-07T11:51:50.000Z</createTime>
|
46
|
+
<zone>us-east-1a</zone>
|
47
|
+
<snapshotId></snapshotId>
|
48
|
+
</CreateVolumeResponse>
|
49
|
+
RESPONSE
|
50
|
+
|
51
|
+
@delete_volume_response_body = <<-RESPONSE
|
52
|
+
<ReleaseAddressResponse xmlns="http://ec2.amazonaws.com/doc/2008-05-05">
|
53
|
+
<return>true</return>
|
54
|
+
</ReleaseAddressResponse>
|
55
|
+
RESPONSE
|
56
|
+
|
57
|
+
@attach_volume_response_body = <<-RESPONSE
|
58
|
+
<AttachVolumeResponse xmlns="http://ec2.amazonaws.com/doc/2008-05-05">
|
59
|
+
<volumeId>vol-4d826724</volumeId>
|
60
|
+
<instanceId>i-6058a509</instanceId>
|
61
|
+
<device>/dev/sdh</device>
|
62
|
+
<status>attaching</status>
|
63
|
+
<attachTime>2008-05-07T11:51:50.000Z</attachTime>
|
64
|
+
</AttachVolumeResponse>
|
65
|
+
RESPONSE
|
66
|
+
|
67
|
+
@detach_volume_response_body = <<-RESPONSE
|
68
|
+
<DetachVolumeResponse xmlns="http://ec2.amazonaws.com/doc/2008-05-05">
|
69
|
+
<volumeId>vol-4d826724</volumeId>
|
70
|
+
<instanceId>i-6058a509</instanceId>
|
71
|
+
<device>/dev/sdh</device>
|
72
|
+
<status>detaching</status>
|
73
|
+
<attachTime>2008-05-08T11:51:50.000Z</attachTime>
|
74
|
+
</DetachVolumeResponse>
|
75
|
+
RESPONSE
|
76
|
+
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
specify "should be able to be described with describe_volumes" do
|
81
|
+
@ec2.stubs(:make_request).with('DescribeVolumes', {"VolumeId.1"=>"vol-4282672b"}).
|
82
|
+
returns stub(:body => @describe_volumes_response_body, :is_a? => true)
|
83
|
+
|
84
|
+
@ec2.describe_volumes( :volume_id => ["vol-4282672b"] ).should.be.an.instance_of Hash
|
85
|
+
|
86
|
+
response = @ec2.describe_volumes( :volume_id => ["vol-4282672b"] )
|
87
|
+
response.volumeSet.item[0].volumeId.should.equal "vol-4282672b"
|
88
|
+
response.volumeSet.item[0].attachmentSet.item[0]['size'].should.equal "800"
|
89
|
+
response.volumeSet.item[0].attachmentSet.item[0].volumeId.should.equal "vol-4282672b"
|
90
|
+
response.volumeSet.item[0].attachmentSet.item[0].instanceId.should.equal "i-6058a509"
|
91
|
+
end
|
92
|
+
|
93
|
+
specify "should be able to be created with an availability_zone with size" do
|
94
|
+
@ec2.stubs(:make_request).with('CreateVolume', {"AvailabilityZone" => "us-east-1a", "Size"=>"800", "SnapshotId"=>""}).
|
95
|
+
returns stub(:body => @create_volume_response_body, :is_a? => true)
|
96
|
+
|
97
|
+
@ec2.create_volume( :availability_zone => "us-east-1a", :size => "800" ).should.be.an.instance_of Hash
|
98
|
+
|
99
|
+
response = @ec2.create_volume( :availability_zone => "us-east-1a", :size => "800" )
|
100
|
+
response.volumeId.should.equal "vol-4d826724"
|
101
|
+
response['size'].should.equal "800"
|
102
|
+
response.status.should.equal "creating"
|
103
|
+
response.zone.should.equal "us-east-1a"
|
104
|
+
end
|
105
|
+
|
106
|
+
specify "should be able to be deleted with a volume_id" do
|
107
|
+
@ec2.stubs(:make_request).with('DeleteVolume', {"VolumeId" => "vol-4282672b"}).
|
108
|
+
returns stub(:body => @delete_volume_response_body, :is_a? => true)
|
109
|
+
|
110
|
+
@ec2.delete_volume( :volume_id => "vol-4282672b" ).should.be.an.instance_of Hash
|
111
|
+
|
112
|
+
response = @ec2.delete_volume( :volume_id => "vol-4282672b" )
|
113
|
+
response.return.should.equal "true"
|
114
|
+
end
|
115
|
+
|
116
|
+
specify "should be able to be attached with a volume_id with an instance_id with a device" do
|
117
|
+
@ec2.stubs(:make_request).with('AttachVolume', {"VolumeId" => "vol-4d826724", "InstanceId"=>"i-6058a509", "Device"=>"/dev/sdh"}).
|
118
|
+
returns stub(:body => @attach_volume_response_body, :is_a? => true)
|
119
|
+
|
120
|
+
@ec2.attach_volume( :volume_id => "vol-4d826724", :instance_id => "i-6058a509", :device => "/dev/sdh" ).should.be.an.instance_of Hash
|
121
|
+
|
122
|
+
response = @ec2.attach_volume( :volume_id => "vol-4d826724", :instance_id => "i-6058a509", :device => "/dev/sdh" )
|
123
|
+
response.volumeId.should.equal "vol-4d826724"
|
124
|
+
response.instanceId.should.equal "i-6058a509"
|
125
|
+
response.device.should.equal "/dev/sdh"
|
126
|
+
response.status.should.equal "attaching"
|
127
|
+
end
|
128
|
+
|
129
|
+
specify "should be able to be detached with a volume_id with an instance_id" do
|
130
|
+
@ec2.stubs(:make_request).with('DetachVolume', {"VolumeId" => "vol-4d826724", "InstanceId"=>"i-6058a509", "Device"=>"", "Force"=>""}).
|
131
|
+
returns stub(:body => @detach_volume_response_body, :is_a? => true)
|
132
|
+
|
133
|
+
@ec2.detach_volume( :volume_id => "vol-4d826724", :instance_id => "i-6058a509" ).should.be.an.instance_of Hash
|
134
|
+
|
135
|
+
response = @ec2.detach_volume( :volume_id => "vol-4d826724", :instance_id => "i-6058a509" )
|
136
|
+
response.volumeId.should.equal "vol-4d826724"
|
137
|
+
response.instanceId.should.equal "i-6058a509"
|
138
|
+
response.device.should.equal "/dev/sdh"
|
139
|
+
response.status.should.equal "detaching"
|
140
|
+
end
|
141
|
+
|
142
|
+
end
|
@@ -0,0 +1,239 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
context "elb load balancers " do
|
4
|
+
before do
|
5
|
+
@elb = AWS::ELB::Base.new( :access_key_id => "not a key", :secret_access_key => "not a secret" )
|
6
|
+
|
7
|
+
@valid_create_load_balancer_params = {
|
8
|
+
:load_balancer_name => 'Test Name',
|
9
|
+
:availability_zones => ['east-1a'],
|
10
|
+
:listeners => [{:protocol => 'HTTP', :load_balancer_port => '80', :instance_port => '80'}]
|
11
|
+
}
|
12
|
+
|
13
|
+
@create_load_balancer_response_body = <<-RESPONSE
|
14
|
+
<CreateLoadBalancerResult>
|
15
|
+
<DNSName>TestLoadBalancer-380544827.us-east-1.ec2.amazonaws.com</DNSName>
|
16
|
+
</CreateLoadBalancerResult>
|
17
|
+
RESPONSE
|
18
|
+
|
19
|
+
@valid_delete_load_balancer_params = {
|
20
|
+
:load_balancer_name => 'Test Name'
|
21
|
+
}
|
22
|
+
|
23
|
+
@delete_load_balancer_response_body = <<-RESPONSE
|
24
|
+
<DeleteLoadBalancerResult>
|
25
|
+
<return>true</return>
|
26
|
+
</DeleteLoadBalancerResult>
|
27
|
+
RESPONSE
|
28
|
+
|
29
|
+
@valid_describe_load_balancer_params = {
|
30
|
+
}
|
31
|
+
|
32
|
+
@describe_load_balancer_response_body = <<-RESPONSE
|
33
|
+
<DescribeLoadBalancersResponse xmlns="http://elasticloadbalancing.amazonaws.com/doc/2009-05-15/">
|
34
|
+
<DescribeLoadBalancersResult>
|
35
|
+
<LoadBalancerDescriptions>
|
36
|
+
<member>
|
37
|
+
<Listeners>
|
38
|
+
<member>
|
39
|
+
<Protocol>HTTP</Protocol>
|
40
|
+
<LoadBalancerPort>80</LoadBalancerPort>
|
41
|
+
<InstancePort>80</InstancePort>
|
42
|
+
</member>
|
43
|
+
</Listeners>
|
44
|
+
<CreatedTime>2009-07-02T01:07:55.080Z</CreatedTime>
|
45
|
+
<LoadBalancerName>TestLB</LoadBalancerName>
|
46
|
+
<DNSName>TestLB-1459724896.us-east-1.elb.amazonaws.com</DNSName>
|
47
|
+
<HealthCheck>
|
48
|
+
<Interval>30</Interval>
|
49
|
+
<Target>TCP:80</Target>
|
50
|
+
<HealthyThreshold>10</HealthyThreshold>
|
51
|
+
<Timeout>5</Timeout>
|
52
|
+
<UnhealthyThreshold>2</UnhealthyThreshold>
|
53
|
+
</HealthCheck>
|
54
|
+
<Instances/>
|
55
|
+
<AvailabilityZones>
|
56
|
+
<member>us-east-1a</member>
|
57
|
+
</AvailabilityZones>
|
58
|
+
</member>
|
59
|
+
</LoadBalancerDescriptions>
|
60
|
+
</DescribeLoadBalancersResult>
|
61
|
+
<ResponseMetadata>
|
62
|
+
<RequestId>67dd800e-66a5-11de-b844-07deabfcc881</RequestId>
|
63
|
+
</ResponseMetadata>
|
64
|
+
</DescribeLoadBalancersResponse>
|
65
|
+
RESPONSE
|
66
|
+
|
67
|
+
@valid_register_instances_with_load_balancer_params = {
|
68
|
+
:load_balancer_name => 'Test Name',
|
69
|
+
:instances => ['i-6055fa09']
|
70
|
+
}
|
71
|
+
|
72
|
+
@register_instances_with_load_balancer_response_body = <<-RESPONSE
|
73
|
+
<RegisterInstancesWithLoadBalancerResult>
|
74
|
+
<Instances>
|
75
|
+
<member>
|
76
|
+
<InstanceId>i-6055fa09</InstanceId>
|
77
|
+
</member>
|
78
|
+
</Instances>
|
79
|
+
</RegisterInstancesWithLoadBalancerResult>
|
80
|
+
RESPONSE
|
81
|
+
|
82
|
+
@valid_deregister_instances_from_load_balancer_params = @valid_register_instances_with_load_balancer_params
|
83
|
+
@deregister_instances_from_load_balancer_response_body = <<-RESPONSE
|
84
|
+
<DeregisterInstancesFromLoadBalancerResult>
|
85
|
+
<Instances/>
|
86
|
+
</DeregisterInstancesFromLoadBalancerResult>
|
87
|
+
RESPONSE
|
88
|
+
|
89
|
+
@valid_configure_health_check_params = {
|
90
|
+
:load_balancer_name => 'Test Name',
|
91
|
+
:health_check => {
|
92
|
+
:target => 'HTTP:80/servlets-examples/servlet/',
|
93
|
+
:timeout => '2',
|
94
|
+
:interval => '5',
|
95
|
+
:unhealthy_threshold => '2',
|
96
|
+
:healthy_threshold => '2'
|
97
|
+
}
|
98
|
+
}
|
99
|
+
@configure_health_check_response_body = <<-RESPONSE
|
100
|
+
<ConfigureHealthCheckResult>
|
101
|
+
<HealthCheck>
|
102
|
+
<Interval>5</Interval>
|
103
|
+
<Target>HTTP:80/servlets-examples/servlet/</Target>
|
104
|
+
<HealthyThreshold>2</HealthyThreshold>
|
105
|
+
<Timeout>2</Timeout>
|
106
|
+
<UnhealthyThreshold>2</UnhealthyThreshold>
|
107
|
+
</HealthCheck>
|
108
|
+
</ConfigureHealthCheckResult>
|
109
|
+
RESPONSE
|
110
|
+
end
|
111
|
+
|
112
|
+
specify "should be able to be created" do
|
113
|
+
@elb.stubs(:make_request).with('CreateLoadBalancer', {
|
114
|
+
'LoadBalancerName' => 'Test Name',
|
115
|
+
'AvailabilityZones.member.1' => 'east-1a',
|
116
|
+
'Listeners.member.1.Protocol' => 'HTTP',
|
117
|
+
'Listeners.member.1.LoadBalancerPort' => '80',
|
118
|
+
'Listeners.member.1.InstancePort' => '80'
|
119
|
+
}).returns stub(:body => @create_load_balancer_response_body, :is_a? => true)
|
120
|
+
|
121
|
+
response = @elb.create_load_balancer(@valid_create_load_balancer_params)
|
122
|
+
response.should.be.an.instance_of Hash
|
123
|
+
response.DNSName.should.equal "TestLoadBalancer-380544827.us-east-1.ec2.amazonaws.com"
|
124
|
+
end
|
125
|
+
|
126
|
+
specify "method create_load_balancer should reject bad arguments" do
|
127
|
+
@elb.stubs(:make_request).with('CreateLoadBalancer', {
|
128
|
+
'LoadBalancerName' => 'Test Name',
|
129
|
+
'AvailabilityZones.member.1' => 'east-1a',
|
130
|
+
'Listeners.member.1.Protocol' => 'HTTP',
|
131
|
+
'Listeners.member.1.LoadBalancerPort' => '80',
|
132
|
+
'Listeners.member.1.InstancePort' => '80'
|
133
|
+
}).returns stub(:body => @create_load_balancer_response_body, :is_a? => true)
|
134
|
+
|
135
|
+
lambda { @elb.create_load_balancer(@valid_create_load_balancer_params) }.should.not.raise(AWS::ArgumentError)
|
136
|
+
lambda { @elb.create_load_balancer(@valid_create_load_balancer_params.merge(:load_balancer_name=>nil)) }.should.raise(AWS::ArgumentError)
|
137
|
+
lambda { @elb.create_load_balancer(@valid_create_load_balancer_params.merge(:load_balancer_name=>'')) }.should.raise(AWS::ArgumentError)
|
138
|
+
lambda { @elb.create_load_balancer(@valid_create_load_balancer_params.merge(:availability_zones=>'')) }.should.raise(AWS::ArgumentError)
|
139
|
+
lambda { @elb.create_load_balancer(@valid_create_load_balancer_params.merge(:availability_zones=>[])) }.should.raise(AWS::ArgumentError)
|
140
|
+
lambda { @elb.create_load_balancer(@valid_create_load_balancer_params.merge(:listeners=>[])) }.should.raise(AWS::ArgumentError)
|
141
|
+
lambda { @elb.create_load_balancer(@valid_create_load_balancer_params.merge(:listeners=>nil)) }.should.raise(AWS::ArgumentError)
|
142
|
+
end
|
143
|
+
|
144
|
+
specify "should be able to be deleted with delete_load_balancer" do
|
145
|
+
@elb.stubs(:make_request).with('DeleteLoadBalancer', {'LoadBalancerName' => 'Test Name'}).
|
146
|
+
returns stub(:body => @delete_load_balancer_response_body, :is_a? => true)
|
147
|
+
|
148
|
+
response = @elb.delete_load_balancer( :load_balancer_name => "Test Name" )
|
149
|
+
response.should.be.an.instance_of Hash
|
150
|
+
response.return.should.equal "true"
|
151
|
+
end
|
152
|
+
|
153
|
+
specify "should be able to be described with describe_load_balancer" do
|
154
|
+
@elb.stubs(:make_request).with('DescribeLoadBalancers', {}).
|
155
|
+
returns stub(:body => @describe_load_balancer_response_body, :is_a? => true)
|
156
|
+
|
157
|
+
response = @elb.describe_load_balancers()
|
158
|
+
response.should.be.an.instance_of Hash
|
159
|
+
|
160
|
+
response.DescribeLoadBalancersResult.LoadBalancerDescriptions.member.length.should == 1
|
161
|
+
end
|
162
|
+
|
163
|
+
specify "should be able to be register instances to load balancers with register_instances_with_load_balancer" do
|
164
|
+
@elb.stubs(:make_request).with('RegisterInstancesWithLoadBalancer', {
|
165
|
+
'LoadBalancerName' => 'Test Name',
|
166
|
+
'Instances.member.1.InstanceId' => 'i-6055fa09'
|
167
|
+
}).returns stub(:body => @register_instances_with_load_balancer_response_body, :is_a? => true)
|
168
|
+
|
169
|
+
response = @elb.register_instances_with_load_balancer(@valid_register_instances_with_load_balancer_params)
|
170
|
+
response.should.be.an.instance_of Hash
|
171
|
+
|
172
|
+
response.Instances.member.length.should == 1
|
173
|
+
end
|
174
|
+
|
175
|
+
specify "method register_instances_with_load_balancer should reject bad arguments" do
|
176
|
+
@elb.stubs(:make_request).with('RegisterInstancesWithLoadBalancer', {
|
177
|
+
'LoadBalancerName' => 'Test Name',
|
178
|
+
'Instances.member.1.InstanceId' => 'i-6055fa09'
|
179
|
+
}).returns stub(:body => @register_instances_with_load_balancer_response_body, :is_a? => true)
|
180
|
+
|
181
|
+
lambda { @elb.register_instances_with_load_balancer(@valid_register_instances_with_load_balancer_params) }.should.not.raise(AWS::ArgumentError)
|
182
|
+
lambda { @elb.register_instances_with_load_balancer(@valid_register_instances_with_load_balancer_params.merge(:load_balancer_name=>nil)) }.should.raise(AWS::ArgumentError)
|
183
|
+
lambda { @elb.register_instances_with_load_balancer(@valid_register_instances_with_load_balancer_params.merge(:instances=>nil)) }.should.raise(AWS::ArgumentError)
|
184
|
+
lambda { @elb.register_instances_with_load_balancer(@valid_register_instances_with_load_balancer_params.merge(:instances=>[])) }.should.raise(AWS::ArgumentError)
|
185
|
+
end
|
186
|
+
|
187
|
+
specify "should be able to degresiter instances from load balancers with degregister_instances_from_load_balancer" do
|
188
|
+
@elb.stubs(:make_request).with('DeregisterInstancesFromLoadBalancer', {
|
189
|
+
'LoadBalancerName' => 'Test Name',
|
190
|
+
'Instances.member.1' => 'i-6055fa09'
|
191
|
+
}).returns stub(:body => @deregister_instances_from_load_balancer_response_body, :is_a? => true)
|
192
|
+
|
193
|
+
response = @elb.deregister_instances_from_load_balancer(@valid_deregister_instances_from_load_balancer_params)
|
194
|
+
response.should.be.an.instance_of Hash
|
195
|
+
end
|
196
|
+
|
197
|
+
specify "method deregister_instances_from_load_balancer should reject bad arguments" do
|
198
|
+
@elb.stubs(:make_request).with('DeregisterInstancesFromLoadBalancer', {
|
199
|
+
'LoadBalancerName' => 'Test Name',
|
200
|
+
'Instances.member.1' => 'i-6055fa09'
|
201
|
+
}).returns stub(:body => @deregister_instances_from_load_balancer_response_body, :is_a? => true)
|
202
|
+
|
203
|
+
lambda { @elb.deregister_instances_from_load_balancer(@valid_deregister_instances_from_load_balancer_params) }.should.not.raise(AWS::ArgumentError)
|
204
|
+
lambda { @elb.deregister_instances_from_load_balancer(@valid_deregister_instances_from_load_balancer_params.merge(:load_balancer_name=>nil)) }.should.raise(AWS::ArgumentError)
|
205
|
+
lambda { @elb.deregister_instances_from_load_balancer(@valid_deregister_instances_from_load_balancer_params.merge(:instances=>nil)) }.should.raise(AWS::ArgumentError)
|
206
|
+
lambda { @elb.deregister_instances_from_load_balancer(@valid_deregister_instances_from_load_balancer_params.merge(:instances=>[])) }.should.raise(AWS::ArgumentError)
|
207
|
+
end
|
208
|
+
|
209
|
+
specify "should be able to degresiter instances from load balancers with degregister_instances_from_load_balancer" do
|
210
|
+
@elb.stubs(:make_request).with('ConfigureHealthCheck', {
|
211
|
+
'LoadBalancerName' => 'Test Name',
|
212
|
+
'HealthCheck.Interval' => '5',
|
213
|
+
'HealthCheck.Target' => 'HTTP:80/servlets-examples/servlet/',
|
214
|
+
'HealthCheck.HealthyThreshold' => '2',
|
215
|
+
'HealthCheck.Timeout' => '2',
|
216
|
+
'HealthCheck.UnhealthyThreshold' => '2'
|
217
|
+
}).returns stub(:body => @configure_health_check_response_body, :is_a? => true)
|
218
|
+
|
219
|
+
response = @elb.configure_health_check(@valid_configure_health_check_params)
|
220
|
+
response.should.be.an.instance_of Hash
|
221
|
+
end
|
222
|
+
|
223
|
+
specify "method degregister_instances_from_load_balancer should reject bad arguments" do
|
224
|
+
@elb.stubs(:make_request).with('ConfigureHealthCheck', {
|
225
|
+
'LoadBalancerName' => 'Test Name',
|
226
|
+
'HealthCheck.Interval' => '5',
|
227
|
+
'HealthCheck.Target' => 'HTTP:80/servlets-examples/servlet/',
|
228
|
+
'HealthCheck.HealthyThreshold' => '2',
|
229
|
+
'HealthCheck.Timeout' => '2',
|
230
|
+
'HealthCheck.UnhealthyThreshold' => '2'
|
231
|
+
}).returns stub(:body => @configure_health_check_response_body, :is_a? => true)
|
232
|
+
|
233
|
+
lambda { @elb.configure_health_check(@valid_configure_health_check_params) }.should.not.raise(AWS::ArgumentError)
|
234
|
+
lambda { @elb.configure_health_check(@valid_configure_health_check_params.merge(:load_balancer_name=>nil)) }.should.raise(AWS::ArgumentError)
|
235
|
+
lambda { @elb.configure_health_check(@valid_configure_health_check_params.merge(:health_check=>nil)) }.should.raise(AWS::ArgumentError)
|
236
|
+
end
|
237
|
+
|
238
|
+
end
|
239
|
+
|
data/test/test_helper.rb
ADDED
@@ -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>
|