kerryb-amazon-ec2 0.3.6
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +265 -0
- data/LICENSE +66 -0
- data/README.rdoc +322 -0
- data/Rakefile +35 -0
- data/bin/ec2-gem-example.rb +67 -0
- data/bin/ec2sh +62 -0
- data/bin/setup.rb +25 -0
- data/lib/EC2/availability_zones.rb +41 -0
- data/lib/EC2/console.rb +44 -0
- data/lib/EC2/elastic_ips.rb +153 -0
- data/lib/EC2/exceptions.rb +147 -0
- data/lib/EC2/image_attributes.rb +166 -0
- data/lib/EC2/images.rb +134 -0
- data/lib/EC2/instances.rb +213 -0
- data/lib/EC2/keypairs.rb +94 -0
- data/lib/EC2/products.rb +43 -0
- data/lib/EC2/responses.rb +64 -0
- data/lib/EC2/security_groups.rb +232 -0
- data/lib/EC2/snapshots.rb +94 -0
- data/lib/EC2/volumes.rb +170 -0
- data/lib/EC2.rb +270 -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 +336 -0
- data/test/test_EC2_keypairs.rb +123 -0
- data/test/test_EC2_products.rb +48 -0
- data/test/test_EC2_responses.rb +52 -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_helper.rb +19 -0
- metadata +120 -0
data/Rakefile
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake/gempackagetask'
|
3
|
+
require 'rake/testtask'
|
4
|
+
require 'rake/rdoctask'
|
5
|
+
|
6
|
+
# read the contents of the gemspec, eval it, and assign it to 'spec'
|
7
|
+
# this lets us maintain all gemspec info in one place. Nice and DRY.
|
8
|
+
spec = eval(IO.read("amazon-ec2.gemspec"))
|
9
|
+
|
10
|
+
Rake::GemPackageTask.new(spec) do |pkg|
|
11
|
+
pkg.gem_spec = spec
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "Package and then install the gem locally"
|
15
|
+
task :install => [:package] do
|
16
|
+
sh %{sudo gem install pkg/#{GEM}-#{VER}}
|
17
|
+
end
|
18
|
+
|
19
|
+
desc "Package and then install the gem locally omitting documentation"
|
20
|
+
task :install_nodoc => [:package] do
|
21
|
+
sh %{sudo gem install --no-ri --no-rdoc pkg/#{GEM}-#{VER}}
|
22
|
+
end
|
23
|
+
|
24
|
+
Rake::TestTask.new do |t|
|
25
|
+
t.libs << "test"
|
26
|
+
t.test_files = FileList['test/test*.rb']
|
27
|
+
t.verbose = true
|
28
|
+
end
|
29
|
+
|
30
|
+
Rake::RDocTask.new do |rd|
|
31
|
+
rd.main = "README.rdoc"
|
32
|
+
rd.rdoc_files.include("README.rdoc", "lib/**/*.rb")
|
33
|
+
rd.rdoc_dir = 'doc'
|
34
|
+
rd.options = spec.rdoc_options
|
35
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Amazon Web Services EC2 Query API Ruby library
|
4
|
+
#
|
5
|
+
# Ruby Gem Name:: amazon-ec2
|
6
|
+
# Author:: Glenn Rempe (mailto:glenn@rempe.us)
|
7
|
+
# Copyright:: Copyright (c) 2007-2008 Glenn Rempe
|
8
|
+
# License:: Distributes under the same terms as Ruby
|
9
|
+
# Home:: http://github.com/grempe/amazon-ec2/tree/master
|
10
|
+
#++
|
11
|
+
|
12
|
+
require 'rubygems'
|
13
|
+
require File.dirname(__FILE__) + '/../lib/EC2'
|
14
|
+
require 'pp'
|
15
|
+
|
16
|
+
# pull these from the local shell environment variables set in ~/.bash_login
|
17
|
+
# or using appropriate methods specific to your login shell.
|
18
|
+
#
|
19
|
+
# e.g. in ~/.bash_login
|
20
|
+
#
|
21
|
+
# # For amazon-ec2 and amazon s3 ruby gems
|
22
|
+
# export AMAZON_ACCESS_KEY_ID="FOO"
|
23
|
+
# export AMAZON_SECRET_ACCESS_KEY="BAR"
|
24
|
+
|
25
|
+
ACCESS_KEY_ID = ENV['AMAZON_ACCESS_KEY_ID']
|
26
|
+
SECRET_ACCESS_KEY = ENV['AMAZON_SECRET_ACCESS_KEY']
|
27
|
+
|
28
|
+
if ACCESS_KEY_ID.nil? || ACCESS_KEY_ID.empty?
|
29
|
+
puts "Error : You must add the shell environment variables AMAZON_ACCESS_KEY_ID and AMAZON_SECRET_ACCESS_KEY before calling #{$0}!"
|
30
|
+
exit
|
31
|
+
end
|
32
|
+
|
33
|
+
# us-east-1.ec2.amazonaws.com == ec2.amazonaws.com
|
34
|
+
# eu-west-1.ec2.amazonaws.com for the european region
|
35
|
+
# test different servers by running something like:
|
36
|
+
# export EC2_URL='https://ec2.amazonaws.com';./bin/ec2-gem-example.rb
|
37
|
+
if ENV['EC2_URL']
|
38
|
+
ec2 = EC2::Base.new( :access_key_id => ACCESS_KEY_ID, :secret_access_key => SECRET_ACCESS_KEY, :server => URI.parse(ENV['EC2_URL']).host )
|
39
|
+
else
|
40
|
+
# default server is US ec2.amazonaws.com
|
41
|
+
ec2 = EC2::Base.new( :access_key_id => ACCESS_KEY_ID, :secret_access_key => SECRET_ACCESS_KEY )
|
42
|
+
end
|
43
|
+
|
44
|
+
puts "----- ec2.methods.sort -----"
|
45
|
+
p ec2.methods.sort
|
46
|
+
|
47
|
+
puts "----- listing images owned by 'amazon' -----"
|
48
|
+
ec2.describe_images(:owner_id => "amazon").imagesSet.item.each do |image|
|
49
|
+
image.keys.each do |key|
|
50
|
+
puts "#{key} => #{image[key]}"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
puts "----- listing all running instances -----"
|
55
|
+
pp ec2.describe_instances()
|
56
|
+
|
57
|
+
puts "----- creating a security group -----"
|
58
|
+
pp ec2.create_security_group(:group_name => "ec2-example-rb-test-group", :group_description => "ec-example.rb test group description.")
|
59
|
+
|
60
|
+
puts "----- listing security groups -----"
|
61
|
+
pp ec2.describe_security_groups()
|
62
|
+
|
63
|
+
puts "----- deleting a security group -----"
|
64
|
+
pp ec2.delete_security_group(:group_name => "ec2-example-rb-test-group")
|
65
|
+
|
66
|
+
puts "----- listing my keypairs (verbose mode) -----"
|
67
|
+
pp ec2.describe_keypairs()
|
data/bin/ec2sh
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Amazon Web Services EC2 Query API Ruby library
|
4
|
+
#
|
5
|
+
# Ruby Gem Name:: amazon-ec2
|
6
|
+
# Author:: Glenn Rempe (mailto:glenn@rempe.us)
|
7
|
+
# Copyright:: Copyright (c) 2007-2008 Glenn Rempe
|
8
|
+
# License:: Distributes under the same terms as Ruby
|
9
|
+
# Home:: http://github.com/grempe/amazon-ec2/tree/master
|
10
|
+
#++
|
11
|
+
|
12
|
+
# CREDITS : Credit for this bit of shameful ripoff coolness
|
13
|
+
# goes to Marcel Molina and his AWS::S3 gem. Thanks!
|
14
|
+
|
15
|
+
# Usage : running this starts up an irb session and
|
16
|
+
# sets up the connection to EC2 as a class variable called
|
17
|
+
# '@ec2'. So just do something like the following on the
|
18
|
+
# shell command line:
|
19
|
+
|
20
|
+
# macbook-pro:~ glenn$ ec2sh
|
21
|
+
# >> @ec2.describe_images
|
22
|
+
# => [#<EC2::Item image_location...
|
23
|
+
|
24
|
+
ec2_lib = File.dirname(__FILE__) + '/../lib/EC2'
|
25
|
+
setup = File.dirname(__FILE__) + '/setup'
|
26
|
+
irb_name = RUBY_PLATFORM =~ /mswin32/ ? 'irb.bat' : 'irb'
|
27
|
+
|
28
|
+
if ( ENV['AMAZON_ACCESS_KEY_ID'] && ENV['AMAZON_SECRET_ACCESS_KEY'] )
|
29
|
+
|
30
|
+
welcome_message = <<-MESSAGE
|
31
|
+
|
32
|
+
'ec2sh' usage :
|
33
|
+
This is an interactive 'irb' command shell that allows you to use all
|
34
|
+
commands available to the amazon-ec2 gem. You'll find this to be a
|
35
|
+
great tool to help you debug issues and practice running commands
|
36
|
+
against the live EC2 servers prior to putting them in your code.
|
37
|
+
|
38
|
+
The EC2 connection is wired to the class instance '@ec2'. Make method calls
|
39
|
+
on this to execute commands on EC2. Adding a #to_s
|
40
|
+
at the end of any command should give you a full String representation of the
|
41
|
+
response.
|
42
|
+
|
43
|
+
Examples to try:
|
44
|
+
|
45
|
+
returns : all ec2 public methods
|
46
|
+
>> @ec2.methods.sort
|
47
|
+
|
48
|
+
returns : a string representation of ALL images
|
49
|
+
>> @ec2.describe_images.to_s
|
50
|
+
|
51
|
+
returns : an Array of EC2::Response objects, each an EC2 image and its data
|
52
|
+
>> @ec2.describe_images.imagesSet.item
|
53
|
+
>> @ec2.describe_images.imagesSet.item[0] (an OpenStruct of a single item in that array)
|
54
|
+
>> @ec2.describe_images.imagesSet.item[0].to_s (a String representation of that OpenStruct item)
|
55
|
+
|
56
|
+
MESSAGE
|
57
|
+
|
58
|
+
puts welcome_message
|
59
|
+
exec "#{irb_name} -r #{ec2_lib} -r #{setup} --simple-prompt"
|
60
|
+
else
|
61
|
+
puts "You must define AMAZON_ACCESS_KEY_ID and AMAZON_SECRET_ACCESS_KEY as shell environment variables before running #{$0}!"
|
62
|
+
end
|
data/bin/setup.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Amazon Web Services EC2 Query API Ruby library
|
4
|
+
#
|
5
|
+
# Ruby Gem Name:: amazon-ec2
|
6
|
+
# Author:: Glenn Rempe (mailto:glenn@rempe.us)
|
7
|
+
# Copyright:: Copyright (c) 2007-2008 Glenn Rempe
|
8
|
+
# License:: Distributes under the same terms as Ruby
|
9
|
+
# Home:: http://github.com/grempe/amazon-ec2/tree/master
|
10
|
+
#++
|
11
|
+
|
12
|
+
if ENV['AMAZON_ACCESS_KEY_ID'] && ENV['AMAZON_SECRET_ACCESS_KEY']
|
13
|
+
opts = {
|
14
|
+
:access_key_id => ENV['AMAZON_ACCESS_KEY_ID'],
|
15
|
+
:secret_access_key => ENV['AMAZON_SECRET_ACCESS_KEY']
|
16
|
+
}
|
17
|
+
if ENV['EC2_URL']
|
18
|
+
opts[:server] = URI.parse(ENV['EC2_URL']).host
|
19
|
+
end
|
20
|
+
@ec2 = EC2::Base.new(opts)
|
21
|
+
end
|
22
|
+
|
23
|
+
puts "EC2 Server: #{opts[:server]}"
|
24
|
+
|
25
|
+
include EC2
|
@@ -0,0 +1,41 @@
|
|
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
|
+
module EC2
|
12
|
+
|
13
|
+
class Base
|
14
|
+
|
15
|
+
#Amazon Developer Guide Docs:
|
16
|
+
#
|
17
|
+
# The DescribeAvailabilityZones operation describes availability zones that are currently
|
18
|
+
# available to the account and their states.
|
19
|
+
#
|
20
|
+
# An optional list of zone names can be passed.
|
21
|
+
#
|
22
|
+
#Required Arguments:
|
23
|
+
#
|
24
|
+
# none
|
25
|
+
#
|
26
|
+
#Optional Arguments:
|
27
|
+
#
|
28
|
+
# :zone_name => Array (default : [])
|
29
|
+
#
|
30
|
+
|
31
|
+
def describe_availability_zones( options = {} )
|
32
|
+
|
33
|
+
options = { :zone_name => [] }.merge(options)
|
34
|
+
|
35
|
+
params = pathlist("ZoneName", options[:zone_name] )
|
36
|
+
|
37
|
+
return response_generator(:action => "DescribeAvailabilityZones", :params => params)
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/lib/EC2/console.rb
ADDED
@@ -0,0 +1,44 @@
|
|
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
|
+
module EC2
|
12
|
+
|
13
|
+
class Base
|
14
|
+
|
15
|
+
#Amazon Developer Guide Docs:
|
16
|
+
#
|
17
|
+
# The GetConsoleOutput operation retrieves console output that has been posted for the specified instance.
|
18
|
+
#
|
19
|
+
# Instance console output is buffered and posted shortly after instance boot, reboot and once the instance
|
20
|
+
# is terminated. Only the most recent 64 KB of posted output is available. Console output is available for
|
21
|
+
# at least 1 hour after the most recent post.
|
22
|
+
#
|
23
|
+
#Required Arguments:
|
24
|
+
#
|
25
|
+
# :instance_id => String (default : "")
|
26
|
+
#
|
27
|
+
#Optional Arguments:
|
28
|
+
#
|
29
|
+
# none
|
30
|
+
#
|
31
|
+
def get_console_output( options ={} )
|
32
|
+
|
33
|
+
options = {:instance_id => ""}.merge(options)
|
34
|
+
|
35
|
+
raise ArgumentError, "No instance ID provided" if options[:instance_id].nil? || options[:instance_id].empty?
|
36
|
+
|
37
|
+
params = { "InstanceId" => options[:instance_id] }
|
38
|
+
|
39
|
+
return response_generator(:action => "GetConsoleOutput", :params => params)
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
@@ -0,0 +1,153 @@
|
|
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
|
+
module EC2
|
12
|
+
|
13
|
+
class Base
|
14
|
+
|
15
|
+
|
16
|
+
#Amazon Developer Guide Docs:
|
17
|
+
#
|
18
|
+
# The AllocateAddress operation acquires an elastic IP address for use with your account.
|
19
|
+
#
|
20
|
+
#Required Arguments:
|
21
|
+
#
|
22
|
+
# none
|
23
|
+
#
|
24
|
+
#Optional Arguments:
|
25
|
+
#
|
26
|
+
# none
|
27
|
+
#
|
28
|
+
def allocate_address
|
29
|
+
|
30
|
+
return response_generator(:action => "AllocateAddress")
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
#Amazon Developer Guide Docs:
|
35
|
+
#
|
36
|
+
# The DescribeAddresses operation lists elastic IP addresses assigned to your account.
|
37
|
+
#
|
38
|
+
#Required Arguments:
|
39
|
+
#
|
40
|
+
# :public_ip => Array (default : [], can be empty)
|
41
|
+
#
|
42
|
+
#Optional Arguments:
|
43
|
+
#
|
44
|
+
# none
|
45
|
+
#
|
46
|
+
def describe_addresses( options = {} )
|
47
|
+
|
48
|
+
options = { :public_ip => [] }.merge(options)
|
49
|
+
|
50
|
+
params = pathlist("PublicIp", options[:public_ip])
|
51
|
+
|
52
|
+
return response_generator(:action => "DescribeAddresses", :params => params)
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
#Amazon Developer Guide Docs:
|
57
|
+
#
|
58
|
+
# The ReleaseAddress operation releases an elastic IP address associated with your account.
|
59
|
+
#
|
60
|
+
# If you run this operation on an elastic IP address that is already released, the address
|
61
|
+
# might be assigned to another account which will cause Amazon EC2 to return an error.
|
62
|
+
#
|
63
|
+
# Note : Releasing an IP address automatically disassociates it from any instance
|
64
|
+
# with which it is associated. For more information, see DisassociateAddress.
|
65
|
+
#
|
66
|
+
# Important! After releasing an elastic IP address, it is released to the IP
|
67
|
+
# address pool and might no longer be available to your account. Make sure
|
68
|
+
# to update your DNS records and any servers or devices that communicate
|
69
|
+
# with the address.
|
70
|
+
#
|
71
|
+
#Required Arguments:
|
72
|
+
#
|
73
|
+
# :public_ip => String (default : '')
|
74
|
+
#
|
75
|
+
#Optional Arguments:
|
76
|
+
#
|
77
|
+
# none
|
78
|
+
#
|
79
|
+
def release_address( options = {} )
|
80
|
+
|
81
|
+
options = { :public_ip => '' }.merge(options)
|
82
|
+
|
83
|
+
raise ArgumentError, "No ':public_ip' provided" if options[:public_ip].nil? || options[:public_ip].empty?
|
84
|
+
|
85
|
+
params = { "PublicIp" => options[:public_ip] }
|
86
|
+
|
87
|
+
return response_generator(:action => "ReleaseAddress", :params => params)
|
88
|
+
|
89
|
+
end
|
90
|
+
|
91
|
+
#Amazon Developer Guide Docs:
|
92
|
+
#
|
93
|
+
# The AssociateAddress operation associates an elastic IP address with an instance.
|
94
|
+
#
|
95
|
+
# If the IP address is currently assigned to another instance, the IP address
|
96
|
+
# is assigned to the new instance. This is an idempotent operation. If you enter
|
97
|
+
# it more than once, Amazon EC2 does not return an error.
|
98
|
+
#
|
99
|
+
#Required Arguments:
|
100
|
+
#
|
101
|
+
# :instance_id => String (default : '')
|
102
|
+
# :public_ip => String (default : '')
|
103
|
+
#
|
104
|
+
#Optional Arguments:
|
105
|
+
#
|
106
|
+
# none
|
107
|
+
#
|
108
|
+
def associate_address( options = {} )
|
109
|
+
|
110
|
+
options = { :instance_id => '', :public_ip => '' }.merge(options)
|
111
|
+
|
112
|
+
raise ArgumentError, "No ':instance_id' provided" if options[:instance_id].nil? || options[:instance_id].empty?
|
113
|
+
raise ArgumentError, "No ':public_ip' provided" if options[:public_ip].nil? || options[:public_ip].empty?
|
114
|
+
|
115
|
+
params = {
|
116
|
+
"InstanceId" => options[:instance_id],
|
117
|
+
"PublicIp" => options[:public_ip]
|
118
|
+
}
|
119
|
+
|
120
|
+
return response_generator(:action => "AssociateAddress", :params => params)
|
121
|
+
|
122
|
+
end
|
123
|
+
|
124
|
+
#Amazon Developer Guide Docs:
|
125
|
+
#
|
126
|
+
# The DisassociateAddress operation disassociates the specified elastic IP
|
127
|
+
# address from the instance to which it is assigned. This is an idempotent
|
128
|
+
# operation. If you enter it more than once, Amazon EC2 does not return
|
129
|
+
# an error.
|
130
|
+
#
|
131
|
+
#Required Arguments:
|
132
|
+
#
|
133
|
+
# :public_ip => String (default : '')
|
134
|
+
#
|
135
|
+
#Optional Arguments:
|
136
|
+
#
|
137
|
+
# none
|
138
|
+
#
|
139
|
+
def disassociate_address( options = {} )
|
140
|
+
|
141
|
+
options = { :public_ip => '' }.merge(options)
|
142
|
+
|
143
|
+
raise ArgumentError, "No ':public_ip' provided" if options[:public_ip].nil? || options[:public_ip].empty?
|
144
|
+
|
145
|
+
params = { "PublicIp" => options[:public_ip] }
|
146
|
+
|
147
|
+
return response_generator(:action => "DisassociateAddress", :params => params)
|
148
|
+
|
149
|
+
end
|
150
|
+
|
151
|
+
end
|
152
|
+
|
153
|
+
end
|
@@ -0,0 +1,147 @@
|
|
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
|
+
module EC2
|
12
|
+
|
13
|
+
# OUR CUSTOM ERROR CODES
|
14
|
+
|
15
|
+
# All of our errors are superclassed by Error < RuntimeError
|
16
|
+
class Error < RuntimeError #:nodoc:
|
17
|
+
end
|
18
|
+
|
19
|
+
# A client side only argument error
|
20
|
+
class ArgumentError < Error #:nodoc:
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
# AWS EC2 CLIENT ERROR CODES
|
25
|
+
|
26
|
+
# AWS EC2 can throw error exceptions that contain a '.' in them.
|
27
|
+
# since we can't name an exception class with that '.' I compressed
|
28
|
+
# each class name into the non-dot version. This allows us to retain
|
29
|
+
# the granularity of the exception.
|
30
|
+
|
31
|
+
# User not authorized.
|
32
|
+
class AuthFailure < Error #:nodoc:
|
33
|
+
end
|
34
|
+
|
35
|
+
# Invalid AWS Account
|
36
|
+
class InvalidClientTokenId < Error #:nodoc:
|
37
|
+
end
|
38
|
+
|
39
|
+
# Invalid Parameters for Value
|
40
|
+
class InvalidParameterValue < Error #:nodoc:
|
41
|
+
end
|
42
|
+
|
43
|
+
# Specified AMI has an unparsable manifest.
|
44
|
+
class InvalidManifest < Error #:nodoc:
|
45
|
+
end
|
46
|
+
|
47
|
+
# Specified AMI ID is not valid.
|
48
|
+
class InvalidAMIIDMalformed < Error #:nodoc:
|
49
|
+
end
|
50
|
+
|
51
|
+
# Specified AMI ID does not exist.
|
52
|
+
class InvalidAMIIDNotFound < Error #:nodoc:
|
53
|
+
end
|
54
|
+
|
55
|
+
# Specified AMI ID has been deregistered and is no longer available.
|
56
|
+
class InvalidAMIIDUnavailable < Error #:nodoc:
|
57
|
+
end
|
58
|
+
|
59
|
+
# Specified instance ID is not valid.
|
60
|
+
class InvalidInstanceIDMalformed < Error #:nodoc:
|
61
|
+
end
|
62
|
+
|
63
|
+
# Specified instance ID does not exist.
|
64
|
+
class InvalidInstanceIDNotFound < Error #:nodoc:
|
65
|
+
end
|
66
|
+
|
67
|
+
# Specified keypair name does not exist.
|
68
|
+
class InvalidKeyPairNotFound < Error #:nodoc:
|
69
|
+
end
|
70
|
+
|
71
|
+
# Attempt to create a duplicate keypair.
|
72
|
+
class InvalidKeyPairDuplicate < Error #:nodoc:
|
73
|
+
end
|
74
|
+
|
75
|
+
# Specified group name does not exist.
|
76
|
+
class InvalidGroupNotFound < Error #:nodoc:
|
77
|
+
end
|
78
|
+
|
79
|
+
# Attempt to create a duplicate group.
|
80
|
+
class InvalidGroupDuplicate < Error #:nodoc:
|
81
|
+
end
|
82
|
+
|
83
|
+
# Specified group can not be deleted because it is in use.
|
84
|
+
class InvalidGroupInUse < Error #:nodoc:
|
85
|
+
end
|
86
|
+
|
87
|
+
# Specified group name is a reserved name.
|
88
|
+
class InvalidGroupReserved < Error #:nodoc:
|
89
|
+
end
|
90
|
+
|
91
|
+
# Attempt to authorize a permission that has already been authorized.
|
92
|
+
class InvalidPermissionDuplicate < Error #:nodoc:
|
93
|
+
end
|
94
|
+
|
95
|
+
# Specified permission is invalid.
|
96
|
+
class InvalidPermissionMalformed < Error #:nodoc:
|
97
|
+
end
|
98
|
+
|
99
|
+
# Specified reservation ID is invalid.
|
100
|
+
class InvalidReservationIDMalformed < Error #:nodoc:
|
101
|
+
end
|
102
|
+
|
103
|
+
# Specified reservation ID does not exist.
|
104
|
+
class InvalidReservationIDNotFound < Error #:nodoc:
|
105
|
+
end
|
106
|
+
|
107
|
+
# User has reached max allowed concurrent running instances.
|
108
|
+
class InstanceLimitExceeded < Error #:nodoc:
|
109
|
+
end
|
110
|
+
|
111
|
+
# An invalid set of parameters were passed as arguments
|
112
|
+
# e.g. RunInstances was called with minCount and maxCount set to 0 or minCount > maxCount.
|
113
|
+
class InvalidParameterCombination < Error #:nodoc:
|
114
|
+
end
|
115
|
+
|
116
|
+
# An unknown parameter was passed as an argument
|
117
|
+
class UnknownParameter < Error #:nodoc:
|
118
|
+
end
|
119
|
+
|
120
|
+
# The user ID is neither in the form of an AWS account ID or one
|
121
|
+
# of the special values accepted by the owner or executableBy flags
|
122
|
+
# in the DescribeImages call.
|
123
|
+
class InvalidUserIDMalformed < Error #:nodoc:
|
124
|
+
end
|
125
|
+
|
126
|
+
# The value of an item added to, or removed from, an image attribute is invalid.
|
127
|
+
class InvalidAMIAttributeItemValue < Error #:nodoc:
|
128
|
+
end
|
129
|
+
|
130
|
+
# AWS EC2 SERVER ERROR CODES
|
131
|
+
|
132
|
+
# Internal AWS EC2 Error.
|
133
|
+
class InternalError < Error #:nodoc:
|
134
|
+
end
|
135
|
+
|
136
|
+
# There are not enough available instances to satify your minimum request.
|
137
|
+
class InsufficientInstanceCapacity < Error #:nodoc:
|
138
|
+
end
|
139
|
+
|
140
|
+
# The server is overloaded and cannot handle request.
|
141
|
+
class Unavailable < Error #:nodoc:
|
142
|
+
end
|
143
|
+
|
144
|
+
class SignatureDoesNotMatch < Error #:nodoc:
|
145
|
+
end
|
146
|
+
|
147
|
+
end
|