aws-sdk 1.4.1 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.yardopts +0 -1
- data/lib/aws/api_config/AutoScaling-2011-01-01.yml +772 -544
- data/lib/aws/api_config/CloudFormation-2010-05-15.yml +284 -185
- data/lib/aws/api_config/DynamoDB-2011-12-05.yml +458 -738
- data/lib/aws/api_config/EC2-2011-12-15.yml +3502 -2653
- data/lib/aws/api_config/ELB-2011-08-15.yml +484 -352
- data/lib/aws/api_config/IAM-2010-05-08.yml +899 -711
- data/lib/aws/api_config/SNS-2010-03-31.yml +235 -167
- data/lib/aws/api_config/SQS-2011-10-01.yml +290 -251
- data/lib/aws/api_config/STS-2011-06-15.yml +35 -41
- data/lib/aws/api_config/SimpleDB-2009-04-15.yml +290 -263
- data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +144 -130
- data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +697 -1139
- data/lib/aws/auto_scaling/activity_collection.rb +1 -1
- data/lib/aws/auto_scaling/client.rb +724 -9
- data/lib/aws/auto_scaling/errors.rb +1 -5
- data/lib/aws/auto_scaling/group.rb +1 -1
- data/lib/aws/auto_scaling/group_collection.rb +1 -1
- data/lib/aws/auto_scaling/instance_collection.rb +1 -1
- data/lib/aws/auto_scaling/launch_configuration.rb +1 -1
- data/lib/aws/auto_scaling/launch_configuration_collection.rb +1 -1
- data/lib/aws/auto_scaling/notification_configuration_collection.rb +1 -1
- data/lib/aws/auto_scaling/request.rb +1 -2
- data/lib/aws/auto_scaling/scaling_policy_collection.rb +1 -1
- data/lib/aws/auto_scaling/scheduled_action_collection.rb +3 -3
- data/lib/aws/auto_scaling/tag_collection.rb +1 -1
- data/lib/aws/cloud_formation.rb +1 -18
- data/lib/aws/cloud_formation/client.rb +314 -8
- data/lib/aws/cloud_formation/errors.rb +1 -5
- data/lib/aws/cloud_formation/request.rb +1 -2
- data/lib/aws/cloud_formation/stack.rb +4 -3
- data/lib/aws/cloud_formation/stack_collection.rb +2 -2
- data/lib/aws/cloud_formation/stack_resource_collection.rb +1 -1
- data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +2 -2
- data/lib/aws/cloud_formation/stack_summary_collection.rb +1 -1
- data/lib/aws/core.rb +29 -14
- data/lib/aws/core/async_handle.rb +11 -12
- data/lib/aws/core/client.rb +112 -102
- data/lib/aws/core/client/query_json.rb +110 -0
- data/lib/aws/core/client/query_xml.rb +122 -0
- data/lib/aws/core/data.rb +242 -0
- data/lib/aws/core/http/request.rb +7 -4
- data/lib/aws/core/lazy_error_classes.rb +60 -38
- data/lib/aws/core/option_grammar.rb +1 -0
- data/lib/aws/core/policy.rb +2 -1
- data/lib/aws/core/resource.rb +38 -33
- data/lib/aws/core/response.rb +109 -44
- data/lib/aws/core/signature/version_2.rb +42 -0
- data/lib/aws/core/signature/version_3.rb +73 -0
- data/lib/aws/core/signature/version_3_http.rb +72 -0
- data/lib/aws/core/signature/version_4.rb +138 -0
- data/lib/aws/core/uri_escape.rb +6 -9
- data/lib/aws/core/xml/frame.rb +242 -0
- data/lib/aws/core/xml/frame_stack.rb +85 -0
- data/lib/aws/core/xml/grammar.rb +299 -0
- data/lib/aws/core/xml/parser.rb +70 -0
- data/lib/aws/core/xml/root_frame.rb +65 -0
- data/lib/aws/core/{configured_xml_grammars.rb → xml/sax_handlers/libxml.rb} +22 -20
- data/lib/aws/core/xml/sax_handlers/nokogiri.rb +55 -0
- data/lib/aws/core/{authorize_with_session_token.rb → xml/sax_handlers/ox.rb} +19 -7
- data/lib/aws/core/{configured_option_grammars.rb → xml/sax_handlers/rexml.rb} +22 -23
- data/lib/aws/core/xml/stub.rb +123 -0
- data/lib/aws/dynamo_db/batch_get.rb +1 -1
- data/lib/aws/dynamo_db/client.rb +796 -14
- data/lib/aws/dynamo_db/errors.rb +1 -38
- data/lib/aws/dynamo_db/item_collection.rb +29 -28
- data/lib/aws/dynamo_db/request.rb +3 -53
- data/lib/aws/dynamo_db/table.rb +6 -2
- data/lib/aws/ec2/attachment.rb +1 -1
- data/lib/aws/ec2/client.rb +3954 -9
- data/lib/aws/ec2/dhcp_options.rb +3 -3
- data/lib/aws/ec2/errors.rb +10 -4
- data/lib/aws/ec2/instance.rb +7 -6
- data/lib/aws/ec2/instance_collection.rb +2 -2
- data/lib/aws/ec2/key_pair_collection.rb +3 -3
- data/lib/aws/ec2/network_acl.rb +4 -2
- data/lib/aws/ec2/network_acl/entry.rb +10 -10
- data/lib/aws/ec2/network_interface.rb +2 -3
- data/lib/aws/ec2/network_interface/attachment.rb +8 -8
- data/lib/aws/ec2/permission_collection.rb +3 -3
- data/lib/aws/ec2/request.rb +1 -3
- data/lib/aws/ec2/resource_tag_collection.rb +4 -8
- data/lib/aws/ec2/route_table.rb +3 -2
- data/lib/aws/ec2/route_table/route.rb +7 -7
- data/lib/aws/ec2/security_group.rb +2 -2
- data/lib/aws/ec2/security_group/egress_ip_permission_collection.rb +16 -5
- data/lib/aws/ec2/security_group/ingress_ip_permission_collection.rb +4 -3
- data/lib/aws/ec2/security_group/ip_permission.rb +1 -2
- data/lib/aws/ec2/snapshot_collection.rb +6 -3
- data/lib/aws/ec2/subnet.rb +1 -1
- data/lib/aws/ec2/volume.rb +1 -3
- data/lib/aws/ec2/volume_collection.rb +2 -0
- data/lib/aws/elb/availability_zone_collection.rb +2 -2
- data/lib/aws/elb/backend_server_policy_collection.rb +1 -1
- data/lib/aws/elb/client.rb +513 -9
- data/lib/aws/elb/errors.rb +2 -6
- data/lib/aws/elb/instance_collection.rb +2 -2
- data/lib/aws/elb/request.rb +1 -1
- data/lib/aws/errors.rb +61 -74
- data/lib/aws/iam.rb +2 -3
- data/lib/aws/iam/client.rb +1178 -10
- data/lib/aws/iam/collection.rb +2 -1
- data/lib/aws/iam/errors.rb +1 -6
- data/lib/aws/iam/group.rb +8 -9
- data/lib/aws/iam/request.rb +1 -1
- data/lib/aws/iam/server_certificate_collection.rb +8 -5
- data/lib/aws/iam/signing_certificate.rb +1 -1
- data/lib/aws/iam/user.rb +2 -2
- data/lib/aws/iam/user_policy.rb +3 -2
- data/lib/aws/rails.rb +1 -2
- data/lib/aws/record.rb +3 -3
- data/lib/aws/record/abstract_base.rb +0 -3
- data/lib/aws/record/attributes.rb +7 -7
- data/lib/aws/record/model.rb +19 -19
- data/lib/aws/record/model/finder_methods.rb +7 -7
- data/lib/aws/s3/bucket.rb +7 -2
- data/lib/aws/s3/client.rb +391 -398
- data/lib/aws/s3/client/xml.rb +44 -71
- data/lib/aws/s3/data_options.rb +3 -2
- data/lib/aws/s3/errors.rb +8 -11
- data/lib/aws/s3/multipart_upload_collection.rb +1 -3
- data/lib/aws/s3/object_collection.rb +2 -1
- data/lib/aws/s3/object_metadata.rb +2 -2
- data/lib/aws/s3/paginated_collection.rb +2 -2
- data/lib/aws/s3/prefix_and_delimiter_collection.rb +1 -1
- data/lib/aws/s3/presigned_post.rb +18 -17
- data/lib/aws/s3/request.rb +4 -3
- data/lib/aws/s3/s3_object.rb +8 -10
- data/lib/aws/simple_db/attribute.rb +2 -2
- data/lib/aws/simple_db/attribute_collection.rb +14 -4
- data/lib/aws/simple_db/client.rb +313 -14
- data/lib/aws/simple_db/domain.rb +1 -1
- data/lib/aws/simple_db/domain_collection.rb +4 -4
- data/lib/aws/simple_db/domain_metadata.rb +1 -1
- data/lib/aws/simple_db/errors.rb +14 -2
- data/lib/aws/simple_db/expect_condition_option.rb +1 -1
- data/lib/aws/simple_db/item.rb +1 -1
- data/lib/aws/simple_db/item_collection.rb +9 -9
- data/lib/aws/simple_db/item_data.rb +9 -6
- data/lib/aws/simple_db/request.rb +1 -1
- data/lib/aws/simple_email_service.rb +8 -7
- data/lib/aws/simple_email_service/client.rb +174 -9
- data/lib/aws/simple_email_service/email_address_collection.rb +0 -1
- data/lib/aws/simple_email_service/errors.rb +1 -5
- data/lib/aws/simple_email_service/quotas.rb +8 -6
- data/lib/aws/simple_email_service/request.rb +7 -1
- data/lib/aws/simple_workflow/client.rb +1383 -6
- data/lib/aws/simple_workflow/decision_task.rb +1 -3
- data/lib/aws/simple_workflow/errors.rb +1 -38
- data/lib/aws/simple_workflow/history_event_collection.rb +2 -2
- data/lib/aws/simple_workflow/request.rb +5 -49
- data/lib/aws/simple_workflow/type.rb +1 -1
- data/lib/aws/simple_workflow/type_collection.rb +4 -3
- data/lib/aws/simple_workflow/workflow_execution_collection.rb +2 -2
- data/lib/aws/sns/client.rb +345 -9
- data/lib/aws/sns/errors.rb +1 -5
- data/lib/aws/sns/request.rb +1 -2
- data/lib/aws/sns/subscription_collection.rb +2 -2
- data/lib/aws/sns/topic.rb +15 -14
- data/lib/aws/sns/topic_collection.rb +1 -1
- data/lib/aws/sqs/client.rb +334 -9
- data/lib/aws/sqs/errors.rb +1 -6
- data/lib/aws/sqs/queue.rb +20 -21
- data/lib/aws/sqs/queue_collection.rb +3 -3
- data/lib/aws/sqs/request.rb +2 -2
- data/lib/aws/sts.rb +8 -10
- data/lib/aws/sts/client.rb +67 -10
- data/lib/aws/sts/errors.rb +1 -5
- data/lib/aws/sts/request.rb +1 -1
- data/lib/user.rb +49 -0
- metadata +21 -28
- data/lib/aws/auto_scaling/client/xml.rb +0 -32
- data/lib/aws/cloud_formation/client/xml.rb +0 -32
- data/lib/aws/core/api_config.rb +0 -44
- data/lib/aws/core/authorize_v2.rb +0 -39
- data/lib/aws/core/authorize_v3.rb +0 -38
- data/lib/aws/core/authorize_v4.rb +0 -149
- data/lib/aws/core/configured_client_methods.rb +0 -76
- data/lib/aws/core/configured_grammars.rb +0 -63
- data/lib/aws/core/configured_json_client_methods.rb +0 -74
- data/lib/aws/core/ignore_result_element.rb +0 -34
- data/lib/aws/core/json_client.rb +0 -41
- data/lib/aws/core/xml_grammar.rb +0 -957
- data/lib/aws/ec2/client/xml.rb +0 -175
- data/lib/aws/elb/client/xml.rb +0 -33
- data/lib/aws/elb/listener_spec.rb +0 -14
- data/lib/aws/iam/client/xml.rb +0 -34
- data/lib/aws/simple_db/client/options.rb +0 -32
- data/lib/aws/simple_db/client/xml.rb +0 -63
- data/lib/aws/simple_email_service/client/xml.rb +0 -34
- data/lib/aws/sns/client/xml.rb +0 -34
- data/lib/aws/sqs/client/xml.rb +0 -33
- data/lib/aws/sts/client/xml.rb +0 -34
data/lib/aws/ec2/dhcp_options.rb
CHANGED
@@ -45,9 +45,9 @@ module AWS
|
|
45
45
|
|
46
46
|
# @return [Hash]
|
47
47
|
def configuration
|
48
|
-
dhcp_configuration_set.inject({}) do |config,opt|
|
49
|
-
key = opt
|
50
|
-
values = opt
|
48
|
+
dhcp_configuration_set.to_a.inject({}) do |config,opt|
|
49
|
+
key = opt[:key].gsub(/-/, '_').to_sym
|
50
|
+
values = opt[:value_set].map{|v| v[:value] }
|
51
51
|
values = values.first if key == :domain_name
|
52
52
|
values = values.first.to_i if key == :netbios_node_type
|
53
53
|
config.merge(key => values)
|
data/lib/aws/ec2/errors.rb
CHANGED
@@ -13,13 +13,19 @@
|
|
13
13
|
|
14
14
|
module AWS
|
15
15
|
class EC2
|
16
|
-
|
17
|
-
# @private
|
18
16
|
module Errors
|
19
17
|
|
20
|
-
|
18
|
+
# @private
|
19
|
+
GRAMMAR = Core::XML::Grammar.customize do
|
20
|
+
element "Errors" do
|
21
|
+
ignore
|
22
|
+
element "Error" do
|
23
|
+
ignore
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
21
27
|
|
22
|
-
|
28
|
+
extend Core::LazyErrorClasses
|
23
29
|
|
24
30
|
end
|
25
31
|
end
|
data/lib/aws/ec2/instance.rb
CHANGED
@@ -343,7 +343,7 @@ module AWS
|
|
343
343
|
|
344
344
|
provider(:terminate_instances, :start_instances, :stop_instances) do |provider|
|
345
345
|
provider.find do |resp|
|
346
|
-
resp.instances_set.find {
|
346
|
+
resp.instances_set.find {|i| i.instance_id == id }
|
347
347
|
end
|
348
348
|
provider.provides :status, :get_as => :current_state
|
349
349
|
provider.provides :status_code, :get_as => :current_state
|
@@ -351,7 +351,7 @@ module AWS
|
|
351
351
|
|
352
352
|
provider(:monitor_instances, :unmonitor_instances) do |provider|
|
353
353
|
provider.find do |resp|
|
354
|
-
resp.instances_set.find {
|
354
|
+
resp.instances_set.find {|i| i.instance_id == id }
|
355
355
|
end
|
356
356
|
provider.provides :monitoring
|
357
357
|
end
|
@@ -448,8 +448,8 @@ module AWS
|
|
448
448
|
# Enables or disables monitoring for this instance.
|
449
449
|
# @param [Boolean] state A true or false value. Enables monintoring
|
450
450
|
# for a true value, disables it for a false value.
|
451
|
-
def monitoring_enabled=
|
452
|
-
|
451
|
+
def monitoring_enabled= state
|
452
|
+
state ? enable_monitoring : disable_monitoring
|
453
453
|
end
|
454
454
|
|
455
455
|
# @return [Booelan] Returns +true+ if CloudWatch monitoring is
|
@@ -656,8 +656,9 @@ module AWS
|
|
656
656
|
protected
|
657
657
|
def attributes_from_response_object(obj)
|
658
658
|
if atts = super(obj)
|
659
|
-
|
660
|
-
obj.
|
659
|
+
if obj[:instance_state]
|
660
|
+
atts[:status] = obj[:instance_state].name.tr("-","_").to_sym
|
661
|
+
end
|
661
662
|
atts
|
662
663
|
end
|
663
664
|
end
|
@@ -261,8 +261,8 @@ module AWS
|
|
261
261
|
# @yield [Instance] Yields each instance in the collection.
|
262
262
|
def each(&block)
|
263
263
|
response = filtered_request(:describe_instances)
|
264
|
-
response.reservation_set.each do |
|
265
|
-
|
264
|
+
response.reservation_set.each do |reservation|
|
265
|
+
reservation.instances_set.each do |i|
|
266
266
|
yield(Instance.new(i.instance_id, :config => config))
|
267
267
|
end
|
268
268
|
end
|
@@ -85,9 +85,9 @@ module AWS
|
|
85
85
|
response = client.send(client_method, options)
|
86
86
|
|
87
87
|
options = {}
|
88
|
-
options[:fingerprint] = response.key_fingerprint
|
89
|
-
if response
|
90
|
-
options[:private_key] = response.key_material
|
88
|
+
options[:fingerprint] = response.data[:key_fingerprint]
|
89
|
+
if response[:key_material]
|
90
|
+
options[:private_key] = response.data[:key_material]
|
91
91
|
end
|
92
92
|
|
93
93
|
KeyPair.new(response.key_name, options)
|
data/lib/aws/ec2/network_acl.rb
CHANGED
@@ -21,7 +21,7 @@ module AWS
|
|
21
21
|
#
|
22
22
|
# @attr_reader [String] vpc_id
|
23
23
|
#
|
24
|
-
# @attr_reader [Boolean] default
|
24
|
+
# @attr_reader [Boolean] default Returns true if this is the default
|
25
25
|
# network ACL.
|
26
26
|
#
|
27
27
|
class NetworkACL < Resource
|
@@ -40,7 +40,9 @@ module AWS
|
|
40
40
|
|
41
41
|
attribute :vpc_id, :static => true
|
42
42
|
|
43
|
-
attribute :default
|
43
|
+
attribute :default, :static => true
|
44
|
+
|
45
|
+
alias_method :default?, :default
|
44
46
|
|
45
47
|
attribute :entry_set
|
46
48
|
|
@@ -20,18 +20,18 @@ module AWS
|
|
20
20
|
|
21
21
|
def initialize network_acl, details
|
22
22
|
@network_acl = network_acl
|
23
|
-
@rule_number = details
|
24
|
-
@protocol = details
|
25
|
-
@action = details
|
26
|
-
@egress = details
|
23
|
+
@rule_number = details[:rule_number]
|
24
|
+
@protocol = details[:protocol].to_i
|
25
|
+
@action = details[:rule_action].to_sym
|
26
|
+
@egress = details[:egress]
|
27
27
|
@ingress = !@egress
|
28
|
-
@cidr_block = details
|
29
|
-
if details
|
30
|
-
@icmp_type =
|
31
|
-
@icmp_code =
|
28
|
+
@cidr_block = details[:cidr_block]
|
29
|
+
if type_code = details[:icmp_type_code]
|
30
|
+
@icmp_type = type_code[:type]
|
31
|
+
@icmp_code = type_code[:code]
|
32
32
|
end
|
33
|
-
if details
|
34
|
-
@port_range = (
|
33
|
+
if range = details[:port_range]
|
34
|
+
@port_range = (range[:from]..range[:to])
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -45,10 +45,9 @@ module AWS
|
|
45
45
|
|
46
46
|
attribute :private_dns_name, :static => true
|
47
47
|
|
48
|
-
mutable_attribute :source_dest_check
|
49
|
-
:set_as => :source_dest_check
|
48
|
+
mutable_attribute :source_dest_check
|
50
49
|
|
51
|
-
alias_method :source_dest_check
|
50
|
+
alias_method :source_dest_check?, :source_dest_check
|
52
51
|
|
53
52
|
attribute :attachment_details, :as => :attachment
|
54
53
|
|
@@ -20,15 +20,15 @@ module AWS
|
|
20
20
|
|
21
21
|
def initialize network_interface, details
|
22
22
|
@network_interface = network_interface
|
23
|
-
@attachment_id = details
|
24
|
-
@instance = Instance.new(details
|
25
|
-
:owner_id => details
|
23
|
+
@attachment_id = details[:attachment_id]
|
24
|
+
@instance = Instance.new(details[:instance_id],
|
25
|
+
:owner_id => details[:instance_owner_id],
|
26
26
|
:config => network_interface.config)
|
27
|
-
@instance_owner_id = details
|
28
|
-
@device_index = details
|
29
|
-
@status = details
|
30
|
-
@attach_time = details
|
31
|
-
@delete_on_termination = details
|
27
|
+
@instance_owner_id = details[:instance_owner_id]
|
28
|
+
@device_index = details[:device_index]
|
29
|
+
@status = details[:status].to_sym
|
30
|
+
@attach_time = details[:attach_time]
|
31
|
+
@delete_on_termination = details[:delete_on_termination]
|
32
32
|
end
|
33
33
|
|
34
34
|
# @return [String] Returns the attachment id.
|
@@ -35,8 +35,8 @@ module AWS
|
|
35
35
|
def each(&block)
|
36
36
|
resp = client.send(describe_call, describe_params)
|
37
37
|
resp.send(inflected_permissions_attribute).each do |permission|
|
38
|
-
if permission
|
39
|
-
user_id = permission
|
38
|
+
if permission[:user_id]
|
39
|
+
user_id = permission[:user_id]
|
40
40
|
yield(user_id)
|
41
41
|
end
|
42
42
|
end
|
@@ -57,7 +57,7 @@ module AWS
|
|
57
57
|
def public?
|
58
58
|
resp = client.send(describe_call, describe_params)
|
59
59
|
resp.send(inflected_permissions_attribute).any? do |permission|
|
60
|
-
permission
|
60
|
+
permission[:group] and permission[:group] == "all"
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
data/lib/aws/ec2/request.rb
CHANGED
@@ -57,9 +57,8 @@ module AWS
|
|
57
57
|
@tags.to_a.empty?
|
58
58
|
end
|
59
59
|
|
60
|
+
# @param [String or Symbol] key The key of the tag to check.
|
60
61
|
# @return [Boolean] True if the resource has a tag for the given key.
|
61
|
-
#
|
62
|
-
# @param [String or Symbol] The key of the tag to check.
|
63
62
|
def has_key?(key)
|
64
63
|
if cached = cached_tags
|
65
64
|
return cached.has_key?(key.to_s)
|
@@ -70,9 +69,8 @@ module AWS
|
|
70
69
|
alias_method :include?, :has_key?
|
71
70
|
alias_method :member?, :has_key?
|
72
71
|
|
72
|
+
# @param [String or Symbol] value The value to check.
|
73
73
|
# @return [Boolean] True if the resource has a tag with the given value.
|
74
|
-
#
|
75
|
-
# @param [String or Symbol] The value to check.
|
76
74
|
def has_value?(value)
|
77
75
|
if cached = cached_tags
|
78
76
|
return cached.values.include?(value)
|
@@ -82,10 +80,8 @@ module AWS
|
|
82
80
|
alias_method :value?, :has_value?
|
83
81
|
|
84
82
|
# Changes the value of a tag.
|
85
|
-
#
|
86
|
-
# @param [String
|
87
|
-
#
|
88
|
-
# @param [String] The new value. If this is nil, the tag will
|
83
|
+
# @param [String or Symbol] key The key of the tag to set.
|
84
|
+
# @param [String] value The new value. If this is nil, the tag will
|
89
85
|
# be deleted.
|
90
86
|
def []=(key, value)
|
91
87
|
if value
|
data/lib/aws/ec2/route_table.rb
CHANGED
@@ -107,8 +107,9 @@ module AWS
|
|
107
107
|
# {RouteTable::Association} objects (association to subnets).
|
108
108
|
def associations
|
109
109
|
association_set.collect do |details|
|
110
|
-
|
111
|
-
|
110
|
+
Association.new(self,
|
111
|
+
details[:route_table_association_id],
|
112
|
+
details[:subnet_id])
|
112
113
|
end
|
113
114
|
end
|
114
115
|
|
@@ -32,22 +32,22 @@ module AWS
|
|
32
32
|
|
33
33
|
@destination_cidr_block = details.destination_cidr_block
|
34
34
|
|
35
|
-
if details
|
35
|
+
if details[:gateway_id]
|
36
36
|
@internet_gateway = InternetGateway.new(
|
37
|
-
details
|
37
|
+
details[:gateway_id],
|
38
38
|
:config => route_table.config)
|
39
39
|
end
|
40
40
|
|
41
|
-
if details
|
42
|
-
@instance = Instance.new(details
|
41
|
+
if details[:instance_id]
|
42
|
+
@instance = Instance.new(details[:instance_id],
|
43
43
|
:vpc_id => route_table.vpc_id,
|
44
|
-
:owner_id => details
|
44
|
+
:owner_id => details[:instance_owner_id],
|
45
45
|
:config => route_table.config)
|
46
46
|
end
|
47
47
|
|
48
|
-
if details
|
48
|
+
if details[:network_interface_id]
|
49
49
|
@network_interface = NetworkInterface.new(
|
50
|
-
details
|
50
|
+
details[:network_interface_id],
|
51
51
|
:vpc_id => route_table.vpc_id,
|
52
52
|
:config => route_table.config)
|
53
53
|
end
|
@@ -114,7 +114,7 @@ module AWS
|
|
114
114
|
# # only allow ping from a particular address
|
115
115
|
# security_group.allow_ping('123.123.123.123/0')
|
116
116
|
#
|
117
|
-
# @param [String]
|
117
|
+
# @param [String] sources One or more IP ranges to allow ping from.
|
118
118
|
# Defaults to 0.0.0.0/0
|
119
119
|
#
|
120
120
|
# @return [nil]
|
@@ -127,7 +127,7 @@ module AWS
|
|
127
127
|
# Removes ingress rules for ICMP pings. Defaults to 0.0.0.0/0 for
|
128
128
|
# the list of IP ranges to revoke.
|
129
129
|
#
|
130
|
-
# @param [String]
|
130
|
+
# @param [String] sources One or more IP ranges to disallow ping from.
|
131
131
|
# Defaults to 0.0.0.0/0
|
132
132
|
#
|
133
133
|
# @return [nil]
|
@@ -14,14 +14,25 @@
|
|
14
14
|
module AWS
|
15
15
|
class EC2
|
16
16
|
class SecurityGroup < Resource
|
17
|
-
class EgressIpPermissionCollection
|
17
|
+
class EgressIpPermissionCollection
|
18
|
+
|
19
|
+
include Core::Model
|
20
|
+
include Enumerable
|
21
|
+
|
22
|
+
def initialize security_group, options = {}
|
23
|
+
@security_group = security_group
|
24
|
+
super
|
25
|
+
end
|
26
|
+
|
27
|
+
# @return [SecurityGroup]
|
28
|
+
attr_reader :security_group
|
18
29
|
|
19
30
|
def each
|
20
31
|
security_group.ip_permissions_list_egress.each do |p|
|
21
32
|
|
22
33
|
# egress permissions don't always have ports
|
23
|
-
if p
|
24
|
-
ports = [p
|
34
|
+
if p[:from_port]
|
35
|
+
ports = [p[:from_port], p[:to_port]]
|
25
36
|
else
|
26
37
|
ports = nil
|
27
38
|
end
|
@@ -29,8 +40,8 @@ module AWS
|
|
29
40
|
ip_ranges = p.ip_ranges.collect{|ip| ip.cidr_ip }
|
30
41
|
|
31
42
|
groups = p.groups.collect do |group|
|
32
|
-
SecurityGroup.new(group
|
33
|
-
:owner_id => group
|
43
|
+
SecurityGroup.new(group[:group_id],
|
44
|
+
:owner_id => group[:user_id],
|
34
45
|
:vpc_id => security_group.vpc_id,
|
35
46
|
:config => config)
|
36
47
|
end
|
@@ -20,17 +20,18 @@ module AWS
|
|
20
20
|
include Core::Model
|
21
21
|
include Enumerable
|
22
22
|
|
23
|
-
attr_reader :security_group
|
24
|
-
|
25
23
|
def initialize security_group, options = {}
|
26
24
|
@security_group = security_group
|
27
25
|
super
|
28
26
|
end
|
29
27
|
|
28
|
+
# @return [SecurityGroup]
|
29
|
+
attr_reader :security_group
|
30
|
+
|
30
31
|
def each
|
31
32
|
security_group.ip_permissions_list.each do |p|
|
32
33
|
|
33
|
-
ports = p
|
34
|
+
ports = p[:from_port] ? [p[:from_port], p[:to_port]] : nil
|
34
35
|
|
35
36
|
ip_ranges = p.ip_ranges.collect{|ip| ip.cidr_ip }
|
36
37
|
|
@@ -20,8 +20,7 @@ module AWS
|
|
20
20
|
|
21
21
|
# @param protocol [:tcp, :udp, :icmp]
|
22
22
|
#
|
23
|
-
# @param
|
24
|
-
# to open ports for.
|
23
|
+
# @param [Integer,Range<Integer>] ports A port or port range to allow.
|
25
24
|
#
|
26
25
|
# @param [Hash] options
|
27
26
|
#
|
@@ -94,14 +94,17 @@ module AWS
|
|
94
94
|
# @param [Hash] opts Options for creating the snapshot.
|
95
95
|
# Either +:volume+ or +:volume_id+ is required.
|
96
96
|
#
|
97
|
-
# @
|
97
|
+
# @option opts [Volume] :volume The Amazon EBS volume of which
|
98
98
|
# to take a snapshot.
|
99
99
|
#
|
100
|
-
# @
|
100
|
+
# @option opts [String] :volume_id The ID of the Amazon EBS
|
101
101
|
# volume of which to take a snapshot.
|
102
102
|
#
|
103
|
-
# @
|
103
|
+
# @option opts [String] :description An optional description of
|
104
104
|
# the snapshot. May contain up to 255 characters.
|
105
|
+
#
|
106
|
+
# @return [Snapshot]
|
107
|
+
#
|
105
108
|
def create opts = {}
|
106
109
|
if volume = opts.delete(:volume)
|
107
110
|
opts[:volume_id] = volume.id
|
data/lib/aws/ec2/subnet.rb
CHANGED
@@ -92,7 +92,7 @@ module AWS
|
|
92
92
|
# route table associated with this subnet, that association
|
93
93
|
# is replaced.
|
94
94
|
#
|
95
|
-
# @param [RouteTable,String]
|
95
|
+
# @param [RouteTable,String] route_table A {RouteTable} object or
|
96
96
|
# a route table id string.
|
97
97
|
#
|
98
98
|
# @return [RouteTable::Association]
|
data/lib/aws/ec2/volume.rb
CHANGED
@@ -66,9 +66,7 @@ module AWS
|
|
66
66
|
|
67
67
|
attribute :snapshot_id, :static => true
|
68
68
|
|
69
|
-
attribute :size, :static => true
|
70
|
-
translates_output {|value| value.to_i if value }
|
71
|
-
end
|
69
|
+
attribute :size, :static => true
|
72
70
|
|
73
71
|
attribute :availability_zone_name, :as => :availability_zone,
|
74
72
|
:static => true
|
@@ -74,7 +74,9 @@ module AWS
|
|
74
74
|
# The Availability Zone in which to create the new volume.
|
75
75
|
# To get a list of the availability zones you can use, see
|
76
76
|
# {EC2#availability_zones}.
|
77
|
+
#
|
77
78
|
# @return [Volume]
|
79
|
+
#
|
78
80
|
def create options = {}
|
79
81
|
if snapshot = options.delete(:snapshot)
|
80
82
|
options[:snapshot_id] = snapshot.id
|