aws-sdk 1.1.3 → 1.1.4
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/ca-bundle.crt +2 -348
- data/lib/aws.rb +24 -49
- data/lib/aws/{common.rb → core.rb} +120 -9
- data/lib/aws/{api_config.rb → core/api_config.rb} +19 -20
- data/lib/aws/core/api_config_transform.rb +36 -0
- data/lib/aws/core/async_handle.rb +91 -0
- data/lib/aws/core/authorize_v2.rb +39 -0
- data/lib/aws/{authorize_v3.rb → core/authorize_v3.rb} +16 -15
- data/lib/aws/{api_config_transform.rb → core/authorize_with_session_token.rb} +9 -12
- data/lib/aws/core/autoloader.rb +64 -0
- data/lib/aws/core/cacheable.rb +78 -0
- data/lib/aws/core/client.rb +471 -0
- data/lib/aws/core/client_logging.rb +125 -0
- data/lib/aws/core/collections.rb +229 -0
- data/lib/aws/core/configuration.rb +358 -0
- data/lib/aws/core/configured_client_methods.rb +76 -0
- data/lib/aws/core/configured_grammars.rb +63 -0
- data/lib/aws/{configured_option_grammars.rb → core/configured_option_grammars.rb} +18 -20
- data/lib/aws/{configured_xml_grammars.rb → core/configured_xml_grammars.rb} +19 -21
- data/lib/aws/core/default_signer.rb +67 -0
- data/lib/aws/core/http/curb_handler.rb +129 -0
- data/lib/aws/core/http/handler.rb +77 -0
- data/lib/aws/core/http/httparty_handler.rb +113 -0
- data/lib/aws/core/http/net_http_handler.rb +124 -0
- data/lib/aws/core/http/request.rb +207 -0
- data/lib/aws/core/http/response.rb +73 -0
- data/lib/aws/{ignore_result_element.rb → core/ignore_result_element.rb} +14 -18
- data/lib/aws/core/indifferent_hash.rb +88 -0
- data/lib/aws/core/inflection.rb +47 -0
- data/lib/aws/core/lazy_error_classes.rb +62 -0
- data/lib/aws/{uri_escape.rb → core/meta_utils.rb} +24 -23
- data/lib/aws/core/model.rb +57 -0
- data/lib/aws/{authorize_with_session_token.rb → core/naming.rb} +9 -8
- data/lib/aws/core/option_grammar.rb +562 -0
- data/lib/aws/core/policy.rb +914 -0
- data/lib/aws/core/resource.rb +380 -0
- data/lib/aws/core/resource_cache.rb +40 -0
- data/lib/aws/core/response.rb +125 -0
- data/lib/aws/core/response_cache.rb +50 -0
- data/lib/aws/core/service_interface.rb +60 -0
- data/lib/aws/core/uri_escape.rb +46 -0
- data/lib/aws/core/xml_grammar.rb +926 -0
- data/lib/aws/ec2.rb +47 -16
- data/lib/aws/ec2/attachment.rb +0 -2
- data/lib/aws/ec2/attachment_collection.rb +1 -6
- data/lib/aws/ec2/availability_zone.rb +0 -2
- data/lib/aws/ec2/availability_zone_collection.rb +0 -3
- data/lib/aws/ec2/client.rb +6 -9
- data/lib/aws/ec2/client/xml.rb +3 -6
- data/lib/aws/ec2/collection.rb +1 -4
- data/lib/aws/ec2/config.rb +18 -0
- data/lib/aws/ec2/elastic_ip.rb +0 -2
- data/lib/aws/ec2/elastic_ip_collection.rb +0 -4
- data/lib/aws/ec2/errors.rb +1 -4
- data/lib/aws/ec2/has_permissions.rb +0 -2
- data/lib/aws/ec2/image.rb +0 -5
- data/lib/aws/ec2/image_collection.rb +0 -6
- data/lib/aws/ec2/instance.rb +23 -9
- data/lib/aws/ec2/instance_collection.rb +85 -22
- data/lib/aws/ec2/key_pair.rb +0 -2
- data/lib/aws/ec2/key_pair_collection.rb +1 -4
- data/lib/aws/ec2/permission_collection.rb +2 -5
- data/lib/aws/ec2/region.rb +0 -2
- data/lib/aws/ec2/region_collection.rb +0 -4
- data/lib/aws/ec2/request.rb +4 -9
- data/lib/aws/ec2/reserved_instances.rb +0 -3
- data/lib/aws/ec2/reserved_instances_collection.rb +0 -4
- data/lib/aws/ec2/reserved_instances_offering.rb +0 -3
- data/lib/aws/ec2/reserved_instances_offering_collection.rb +0 -4
- data/lib/aws/ec2/resource.rb +3 -5
- data/lib/aws/ec2/resource_tag_collection.rb +1 -6
- data/lib/aws/ec2/security_group.rb +204 -72
- data/lib/aws/ec2/security_group/egress_ip_permission_collection.rb +53 -0
- data/lib/aws/ec2/security_group/ip_permission.rb +92 -10
- data/lib/aws/ec2/security_group/ip_permission_collection.rb +14 -15
- data/lib/aws/ec2/security_group_collection.rb +11 -8
- data/lib/aws/ec2/snapshot.rb +0 -4
- data/lib/aws/ec2/snapshot_collection.rb +0 -4
- data/lib/aws/ec2/tag.rb +0 -3
- data/lib/aws/ec2/tag_collection.rb +1 -8
- data/lib/aws/ec2/tagged_item.rb +1 -3
- data/lib/aws/ec2/volume.rb +0 -6
- data/lib/aws/ec2/volume_collection.rb +0 -4
- data/lib/aws/errors.rb +0 -3
- data/lib/aws/iam.rb +33 -12
- data/lib/aws/iam/access_key.rb +0 -3
- data/lib/aws/iam/access_key_collection.rb +0 -3
- data/lib/aws/iam/account_alias_collection.rb +0 -2
- data/lib/aws/iam/client.rb +6 -8
- data/lib/aws/iam/client/xml.rb +4 -8
- data/lib/aws/iam/collection.rb +2 -5
- data/lib/aws/iam/config.rb +18 -0
- data/lib/aws/iam/errors.rb +2 -4
- data/lib/aws/iam/group.rb +0 -5
- data/lib/aws/iam/group_collection.rb +0 -3
- data/lib/aws/iam/group_policy_collection.rb +0 -2
- data/lib/aws/iam/group_user_collection.rb +1 -4
- data/lib/aws/iam/login_profile.rb +0 -2
- data/lib/aws/iam/mfa_device.rb +1 -3
- data/lib/aws/iam/mfa_device_collection.rb +0 -3
- data/lib/aws/iam/policy.rb +2 -4
- data/lib/aws/iam/policy_collection.rb +0 -3
- data/lib/aws/iam/request.rb +3 -7
- data/lib/aws/iam/resource.rb +1 -4
- data/lib/aws/iam/server_certificate.rb +0 -2
- data/lib/aws/iam/server_certificate_collection.rb +0 -3
- data/lib/aws/iam/signing_certificate.rb +0 -2
- data/lib/aws/iam/signing_certificate_collection.rb +0 -3
- data/lib/aws/iam/user.rb +0 -7
- data/lib/aws/iam/user_collection.rb +0 -3
- data/lib/aws/iam/user_group_collection.rb +0 -3
- data/lib/aws/iam/user_policy.rb +0 -2
- data/lib/aws/iam/user_policy_collection.rb +0 -3
- data/lib/aws/rails.rb +5 -4
- data/lib/aws/record.rb +4 -1
- data/lib/aws/record/base.rb +3 -2
- data/lib/aws/record/errors.rb +1 -3
- data/lib/aws/s3.rb +31 -6
- data/lib/aws/s3/access_control_list.rb +0 -2
- data/lib/aws/s3/acl_object.rb +10 -12
- data/lib/aws/s3/bucket.rb +1 -9
- data/lib/aws/s3/bucket_collection.rb +2 -5
- data/lib/aws/s3/bucket_version_collection.rb +1 -5
- data/lib/aws/s3/client.rb +34 -37
- data/lib/aws/s3/client/xml.rb +11 -14
- data/lib/aws/{resource_cache.rb → s3/config.rb} +6 -20
- data/lib/aws/s3/errors.rb +6 -7
- data/lib/aws/s3/multipart_upload.rb +1 -4
- data/lib/aws/s3/multipart_upload_collection.rb +1 -6
- data/lib/aws/s3/object_collection.rb +1 -5
- data/lib/aws/s3/object_metadata.rb +1 -3
- data/lib/aws/s3/object_upload_collection.rb +1 -7
- data/lib/aws/s3/object_version.rb +1 -4
- data/lib/aws/s3/object_version_collection.rb +1 -4
- data/lib/aws/s3/policy.rb +3 -5
- data/lib/aws/s3/prefix_and_delimiter_collection.rb +0 -2
- data/lib/aws/s3/prefixed_collection.rb +0 -2
- data/lib/aws/s3/presigned_post.rb +1 -3
- data/lib/aws/s3/request.rb +2 -5
- data/lib/aws/s3/s3_object.rb +1 -8
- data/lib/aws/s3/tree.rb +8 -6
- data/lib/aws/s3/tree/branch_node.rb +0 -3
- data/lib/aws/s3/tree/child_collection.rb +1 -5
- data/lib/aws/s3/tree/leaf_node.rb +0 -5
- data/lib/aws/s3/tree/parent.rb +1 -4
- data/lib/aws/s3/uploaded_part.rb +1 -3
- data/lib/aws/s3/uploaded_part_collection.rb +1 -5
- data/lib/aws/simple_db.rb +21 -6
- data/lib/aws/simple_db/attribute.rb +1 -6
- data/lib/aws/simple_db/attribute_collection.rb +1 -7
- data/lib/aws/simple_db/client.rb +7 -9
- data/lib/aws/simple_db/client/options.rb +2 -4
- data/lib/aws/simple_db/client/xml.rb +5 -10
- data/lib/aws/{naming.rb → simple_db/config.rb} +3 -14
- data/lib/aws/simple_db/delete_attributes.rb +0 -2
- data/lib/aws/simple_db/domain.rb +1 -6
- data/lib/aws/simple_db/domain_collection.rb +1 -4
- data/lib/aws/simple_db/domain_metadata.rb +1 -3
- data/lib/aws/simple_db/errors.rb +1 -4
- data/lib/aws/simple_db/item.rb +1 -7
- data/lib/aws/simple_db/item_collection.rb +22 -23
- data/lib/aws/simple_db/put_attributes.rb +0 -2
- data/lib/aws/simple_db/request.rb +3 -7
- data/lib/aws/simple_email_service.rb +11 -6
- data/lib/aws/simple_email_service/client.rb +7 -9
- data/lib/aws/simple_email_service/client/options.rb +3 -6
- data/lib/aws/simple_email_service/client/xml.rb +4 -8
- data/lib/aws/simple_email_service/config.rb +19 -0
- data/lib/aws/simple_email_service/email_address_collection.rb +1 -3
- data/lib/aws/simple_email_service/errors.rb +1 -4
- data/lib/aws/simple_email_service/quotas.rb +1 -3
- data/lib/aws/simple_email_service/request.rb +3 -7
- data/lib/aws/sns.rb +15 -8
- data/lib/aws/sns/client.rb +7 -8
- data/lib/aws/sns/client/options.rb +3 -6
- data/lib/aws/sns/client/xml.rb +4 -8
- data/lib/aws/sns/config.rb +18 -0
- data/lib/aws/sns/errors.rb +1 -4
- data/lib/aws/sns/policy.rb +3 -5
- data/lib/aws/sns/request.rb +4 -9
- data/lib/aws/sns/subscription.rb +1 -5
- data/lib/aws/sns/subscription_collection.rb +1 -5
- data/lib/aws/sns/topic.rb +1 -6
- data/lib/aws/sns/topic_collection.rb +1 -4
- data/lib/aws/sns/topic_subscription_collection.rb +1 -4
- data/lib/aws/sqs.rb +14 -5
- data/lib/aws/sqs/client.rb +6 -9
- data/lib/aws/sqs/client/xml.rb +4 -7
- data/lib/aws/sqs/config.rb +18 -0
- data/lib/aws/sqs/errors.rb +1 -4
- data/lib/aws/sqs/policy.rb +3 -5
- data/lib/aws/sqs/queue.rb +2 -7
- data/lib/aws/sqs/queue_collection.rb +4 -5
- data/lib/aws/sqs/received_message.rb +1 -3
- data/lib/aws/sqs/received_sns_message.rb +2 -2
- data/lib/aws/sqs/request.rb +4 -7
- data/lib/aws/sts.rb +12 -6
- data/lib/aws/sts/client.rb +6 -8
- data/lib/aws/sts/client/xml.rb +4 -8
- data/lib/aws/sts/config.rb +18 -0
- data/lib/aws/sts/errors.rb +1 -4
- data/lib/aws/sts/federated_session.rb +0 -2
- data/lib/aws/sts/policy.rb +3 -5
- data/lib/aws/sts/request.rb +3 -7
- metadata +60 -50
- data/lib/aws/async_handle.rb +0 -90
- data/lib/aws/authorize_v2.rb +0 -37
- data/lib/aws/base_client.rb +0 -488
- data/lib/aws/cacheable.rb +0 -79
- data/lib/aws/client_logging.rb +0 -122
- data/lib/aws/collections.rb +0 -230
- data/lib/aws/configuration.rb +0 -357
- data/lib/aws/configured_client_methods.rb +0 -81
- data/lib/aws/configured_grammars.rb +0 -65
- data/lib/aws/default_signer.rb +0 -65
- data/lib/aws/http/curb_handler.rb +0 -127
- data/lib/aws/http/handler.rb +0 -77
- data/lib/aws/http/httparty_handler.rb +0 -103
- data/lib/aws/http/request.rb +0 -165
- data/lib/aws/http/request_param.rb +0 -64
- data/lib/aws/http/response.rb +0 -72
- data/lib/aws/indifferent_hash.rb +0 -86
- data/lib/aws/inflection.rb +0 -46
- data/lib/aws/lazy_error_classes.rb +0 -64
- data/lib/aws/meta_utils.rb +0 -43
- data/lib/aws/model.rb +0 -57
- data/lib/aws/option_grammar.rb +0 -565
- data/lib/aws/policy.rb +0 -914
- data/lib/aws/resource.rb +0 -381
- data/lib/aws/response.rb +0 -125
- data/lib/aws/response_cache.rb +0 -50
- data/lib/aws/service_interface.rb +0 -60
- data/lib/aws/xml_grammar.rb +0 -925
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Copyright 2011 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
|
5
|
+
# the License is located at
|
|
6
|
+
#
|
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
|
8
|
+
#
|
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
|
12
|
+
# language governing permissions and limitations under the License.
|
|
13
|
+
|
|
14
|
+
module AWS
|
|
15
|
+
class EC2
|
|
16
|
+
class SecurityGroup < Resource
|
|
17
|
+
class EgressIpPermissionCollection < IpPermissionCollection
|
|
18
|
+
|
|
19
|
+
def each
|
|
20
|
+
security_group.ip_permissions_list_egress.each do |p|
|
|
21
|
+
|
|
22
|
+
# egress permissions don't always have ports
|
|
23
|
+
if p.respond_to?(:from_port)
|
|
24
|
+
ports = [p.from_port, p.to_port]
|
|
25
|
+
else
|
|
26
|
+
ports = nil
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
ip_ranges = p.ip_ranges.collect{|ip| ip.cidr_ip }
|
|
30
|
+
|
|
31
|
+
groups = p.groups.collect do |group|
|
|
32
|
+
SecurityGroup.new(group.group_id,
|
|
33
|
+
:name => group.group_name,
|
|
34
|
+
:owner_id => group.user_id,
|
|
35
|
+
:vpc_id => group.vpc_id,
|
|
36
|
+
:config => config)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
permission = IpPermission.new(security_group, p.ip_protocol, ports,
|
|
40
|
+
:ip_ranges => ip_ranges,
|
|
41
|
+
:groups => groups,
|
|
42
|
+
:egress => true,
|
|
43
|
+
:config => config)
|
|
44
|
+
|
|
45
|
+
yield(permission)
|
|
46
|
+
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -11,14 +11,12 @@
|
|
|
11
11
|
# ANY KIND, either express or implied. See the License for the specific
|
|
12
12
|
# language governing permissions and limitations under the License.
|
|
13
13
|
|
|
14
|
-
require 'aws/model'
|
|
15
|
-
|
|
16
14
|
module AWS
|
|
17
15
|
class EC2
|
|
18
16
|
class SecurityGroup < Resource
|
|
19
17
|
class IpPermission
|
|
20
18
|
|
|
21
|
-
include Model
|
|
19
|
+
include Core::Model
|
|
22
20
|
|
|
23
21
|
# @param protocol [:tcp, :udp, :icmp]
|
|
24
22
|
# @param port [Range,Integer] An integer or a range of integers
|
|
@@ -28,13 +26,28 @@ module AWS
|
|
|
28
26
|
# to grant permission to.
|
|
29
27
|
# @option options [Array] :groups An array of SecurityGroup objects to
|
|
30
28
|
# grant permission to.
|
|
29
|
+
# @option options [Boolean] :egress (false) When true this IpPermission
|
|
30
|
+
# is assumed to be an egree permission.
|
|
31
31
|
def initialize security_group, protocol, ports, options = {}
|
|
32
|
+
|
|
32
33
|
@security_group = security_group
|
|
33
|
-
|
|
34
|
-
@
|
|
34
|
+
|
|
35
|
+
@protocol = protocol == '-1' ? :any : protocol.to_s.downcase.to_sym
|
|
36
|
+
|
|
35
37
|
@ip_ranges = Array(options[:ip_ranges])
|
|
38
|
+
|
|
36
39
|
@groups = Array(options[:groups])
|
|
40
|
+
|
|
41
|
+
@egress = options[:egress]
|
|
42
|
+
|
|
43
|
+
# not all egress permissions require port ranges, depends on the
|
|
44
|
+
# protocol
|
|
45
|
+
if ports
|
|
46
|
+
@port_range = Array(ports).first.to_i..Array(ports).last.to_i
|
|
47
|
+
end
|
|
48
|
+
|
|
37
49
|
super
|
|
50
|
+
|
|
38
51
|
end
|
|
39
52
|
|
|
40
53
|
# @return [SecurityGroup] The security group this permission is
|
|
@@ -47,21 +60,90 @@ module AWS
|
|
|
47
60
|
# @return [Range] The port range (e.g. 80..80, 4000..4010, etc)
|
|
48
61
|
attr_reader :port_range
|
|
49
62
|
|
|
50
|
-
# @return [Array] An array
|
|
63
|
+
# @return [Array] An array of string CIDR ip addresses.
|
|
51
64
|
attr_reader :ip_ranges
|
|
52
65
|
|
|
53
66
|
# @return [Array] An array of security groups that have been
|
|
54
67
|
# granted access with this permission.
|
|
55
68
|
attr_reader :groups
|
|
56
69
|
|
|
70
|
+
# @return [Boolean] Returns true if this is an egress permission.
|
|
71
|
+
def egress?
|
|
72
|
+
@egress ? true : false
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# Authorizes this permission from its security group.
|
|
76
|
+
# @return [IpPermission] Returns self
|
|
57
77
|
def authorize
|
|
58
|
-
|
|
59
|
-
|
|
78
|
+
|
|
79
|
+
method = egress? ?
|
|
80
|
+
:authorize_security_group_egress :
|
|
81
|
+
:authorize_security_group_ingress
|
|
82
|
+
|
|
83
|
+
client.send(method,
|
|
84
|
+
:group_id => security_group.id,
|
|
85
|
+
:ip_permissions => [format_permission])
|
|
86
|
+
|
|
87
|
+
self
|
|
88
|
+
|
|
60
89
|
end
|
|
61
90
|
|
|
91
|
+
# Revokes this permission from its security group.
|
|
92
|
+
# @return [IpPermission] Returns self
|
|
62
93
|
def revoke
|
|
63
|
-
|
|
64
|
-
|
|
94
|
+
|
|
95
|
+
method = egress? ?
|
|
96
|
+
:revoke_security_group_egress :
|
|
97
|
+
:revoke_security_group_ingress
|
|
98
|
+
|
|
99
|
+
client.send(method,
|
|
100
|
+
:group_id => security_group.id,
|
|
101
|
+
:ip_permissions => [format_permission])
|
|
102
|
+
|
|
103
|
+
self
|
|
104
|
+
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# @return [Boolean] Returns true if the other IpPermission matches
|
|
108
|
+
# this one.
|
|
109
|
+
def == other
|
|
110
|
+
other.is_a?(IpPermission) and
|
|
111
|
+
other.security_group == security_group and
|
|
112
|
+
other.protocol == protocol and
|
|
113
|
+
other.port_range == port_range and
|
|
114
|
+
other.ip_ranges == ip_ranges and
|
|
115
|
+
other.groups == groups and
|
|
116
|
+
other.egress == egress?
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
alias_method :eql?, :==
|
|
120
|
+
|
|
121
|
+
# @private
|
|
122
|
+
protected
|
|
123
|
+
def format_permission
|
|
124
|
+
|
|
125
|
+
permission = {}
|
|
126
|
+
|
|
127
|
+
permission[:ip_protocol] = protocol == :any ? '-1' : protocol.to_s
|
|
128
|
+
|
|
129
|
+
if port_range
|
|
130
|
+
permission[:from_port] = port_range.first
|
|
131
|
+
permission[:to_port] = port_range.last
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
unless ip_ranges.empty?
|
|
135
|
+
permission[:ip_ranges] = ip_ranges.collect{|ip| { :cidr_ip => ip } }
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
unless groups.empty?
|
|
139
|
+
permission[:user_id_group_pairs] = groups.inject([]) do |list,group|
|
|
140
|
+
list << { :group_id => group.id, :user_id => group.owner_id }
|
|
141
|
+
list
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
permission
|
|
146
|
+
|
|
65
147
|
end
|
|
66
148
|
|
|
67
149
|
end
|
|
@@ -11,41 +11,40 @@
|
|
|
11
11
|
# ANY KIND, either express or implied. See the License for the specific
|
|
12
12
|
# language governing permissions and limitations under the License.
|
|
13
13
|
|
|
14
|
-
require 'aws/model'
|
|
15
|
-
|
|
16
14
|
module AWS
|
|
17
15
|
class EC2
|
|
18
16
|
class SecurityGroup < Resource
|
|
19
17
|
|
|
20
18
|
class IpPermissionCollection
|
|
21
19
|
|
|
22
|
-
include Model
|
|
20
|
+
include Core::Model
|
|
23
21
|
include Enumerable
|
|
24
22
|
|
|
25
23
|
attr_reader :security_group
|
|
26
24
|
|
|
27
|
-
def initialize
|
|
28
|
-
super
|
|
25
|
+
def initialize security_group, options = {}
|
|
29
26
|
@security_group = security_group
|
|
27
|
+
super
|
|
30
28
|
end
|
|
31
29
|
|
|
32
30
|
def each
|
|
33
31
|
security_group.ip_permissions_list.each do |p|
|
|
34
32
|
|
|
33
|
+
ports = [p.from_port, p.to_port]
|
|
34
|
+
|
|
35
|
+
ip_ranges = p.ip_ranges.collect{|ip| ip.cidr_ip }
|
|
36
|
+
|
|
35
37
|
groups = p.groups.collect do |group|
|
|
36
38
|
SecurityGroup.new(group.group_id,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
:name => group.group_name,
|
|
40
|
+
:owner_id => group.user_id,
|
|
41
|
+
:config => config)
|
|
40
42
|
end
|
|
41
43
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
:ip_ranges => ip_ranges,
|
|
47
|
-
:groups => groups,
|
|
48
|
-
:config => config)
|
|
44
|
+
permission = IpPermission.new(security_group, p.ip_protocol, ports,
|
|
45
|
+
:ip_ranges => ip_ranges,
|
|
46
|
+
:groups => groups,
|
|
47
|
+
:config => config)
|
|
49
48
|
|
|
50
49
|
yield(permission)
|
|
51
50
|
|
|
@@ -11,11 +11,6 @@
|
|
|
11
11
|
# ANY KIND, either express or implied. See the License for the specific
|
|
12
12
|
# language governing permissions and limitations under the License.
|
|
13
13
|
|
|
14
|
-
require 'aws/model'
|
|
15
|
-
require 'aws/ec2/collection'
|
|
16
|
-
require 'aws/ec2/tagged_collection'
|
|
17
|
-
require 'aws/ec2/security_group'
|
|
18
|
-
|
|
19
14
|
module AWS
|
|
20
15
|
class EC2
|
|
21
16
|
|
|
@@ -31,18 +26,26 @@ module AWS
|
|
|
31
26
|
# of this security group. Accepts alphanumeric characters, spaces,
|
|
32
27
|
# dashes, and underscores. If left blank the description will be set
|
|
33
28
|
# to the name.
|
|
29
|
+
# @option options [String] :vpc_id (nil) The ID of a VPC to create
|
|
30
|
+
# a security group in. If this option is left blank then an
|
|
31
|
+
# EC2 security group is created. If this option is provided a VPC
|
|
32
|
+
# security group will be created.
|
|
34
33
|
# @return [SecurityGroup]
|
|
35
34
|
def create name, options = {}
|
|
36
35
|
|
|
37
36
|
description = options[:description] || name
|
|
38
37
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
create_opts = {}
|
|
39
|
+
create_opts[:group_name] = name
|
|
40
|
+
create_opts[:description] = description
|
|
41
|
+
create_opts[:vpc_id] = options[:vpc_id] if options[:vpc_id]
|
|
42
|
+
|
|
43
|
+
response = client.create_security_group(create_opts)
|
|
42
44
|
|
|
43
45
|
SecurityGroup.new(response.group_id, {
|
|
44
46
|
:name => name,
|
|
45
47
|
:description => description,
|
|
48
|
+
:vpc_id => options[:vpc_id],
|
|
46
49
|
:config => config })
|
|
47
50
|
|
|
48
51
|
end
|
data/lib/aws/ec2/snapshot.rb
CHANGED
|
@@ -11,10 +11,6 @@
|
|
|
11
11
|
# ANY KIND, either express or implied. See the License for the specific
|
|
12
12
|
# language governing permissions and limitations under the License.
|
|
13
13
|
|
|
14
|
-
require 'aws/ec2/resource'
|
|
15
|
-
require 'aws/ec2/has_permissions'
|
|
16
|
-
require 'aws/ec2/tagged_item'
|
|
17
|
-
|
|
18
14
|
module AWS
|
|
19
15
|
class EC2
|
|
20
16
|
|
|
@@ -11,10 +11,6 @@
|
|
|
11
11
|
# ANY KIND, either express or implied. See the License for the specific
|
|
12
12
|
# language governing permissions and limitations under the License.
|
|
13
13
|
|
|
14
|
-
require 'aws/ec2/collection'
|
|
15
|
-
require 'aws/ec2/tagged_collection'
|
|
16
|
-
require 'aws/ec2/snapshot'
|
|
17
|
-
|
|
18
14
|
module AWS
|
|
19
15
|
class EC2
|
|
20
16
|
|
data/lib/aws/ec2/tag.rb
CHANGED
|
@@ -11,13 +11,6 @@
|
|
|
11
11
|
# ANY KIND, either express or implied. See the License for the specific
|
|
12
12
|
# language governing permissions and limitations under the License.
|
|
13
13
|
|
|
14
|
-
require 'aws/model'
|
|
15
|
-
require 'aws/inflection'
|
|
16
|
-
require 'aws/ec2/collection'
|
|
17
|
-
require 'aws/ec2/tag'
|
|
18
|
-
require 'aws/ec2/tagged_item'
|
|
19
|
-
require 'aws/ec2/resource'
|
|
20
|
-
|
|
21
14
|
module AWS
|
|
22
15
|
class EC2
|
|
23
16
|
|
|
@@ -87,7 +80,7 @@ module AWS
|
|
|
87
80
|
response = filtered_request(:describe_tags)
|
|
88
81
|
response.tag_set.each do |tag|
|
|
89
82
|
|
|
90
|
-
resource_class_name = Inflection.class_name(tag.resource_type)
|
|
83
|
+
resource_class_name = Core::Inflection.class_name(tag.resource_type)
|
|
91
84
|
if EC2.const_defined?(resource_class_name)
|
|
92
85
|
resource_class = EC2.const_get(resource_class_name)
|
|
93
86
|
resource = resource_class.new(tag.resource_id, :config => config)
|
data/lib/aws/ec2/tagged_item.rb
CHANGED
|
@@ -11,8 +11,6 @@
|
|
|
11
11
|
# ANY KIND, either express or implied. See the License for the specific
|
|
12
12
|
# language governing permissions and limitations under the License.
|
|
13
13
|
|
|
14
|
-
require 'aws/ec2/resource_tag_collection'
|
|
15
|
-
|
|
16
14
|
module AWS
|
|
17
15
|
class EC2
|
|
18
16
|
module TaggedItem
|
|
@@ -79,7 +77,7 @@ module AWS
|
|
|
79
77
|
|
|
80
78
|
# @private
|
|
81
79
|
def tagging_resource_type
|
|
82
|
-
Inflection.ruby_name(self.class.to_s).tr("_","-")
|
|
80
|
+
Core::Inflection.ruby_name(self.class.to_s).tr("_","-")
|
|
83
81
|
end
|
|
84
82
|
|
|
85
83
|
end
|
data/lib/aws/ec2/volume.rb
CHANGED
|
@@ -11,12 +11,6 @@
|
|
|
11
11
|
# ANY KIND, either express or implied. See the License for the specific
|
|
12
12
|
# language governing permissions and limitations under the License.
|
|
13
13
|
|
|
14
|
-
require 'aws/ec2/resource'
|
|
15
|
-
require 'aws/ec2/tagged_item'
|
|
16
|
-
require 'aws/ec2/availability_zone'
|
|
17
|
-
require 'aws/ec2/attachment'
|
|
18
|
-
require 'aws/ec2/attachment_collection'
|
|
19
|
-
|
|
20
14
|
module AWS
|
|
21
15
|
class EC2
|
|
22
16
|
|
|
@@ -11,10 +11,6 @@
|
|
|
11
11
|
# ANY KIND, either express or implied. See the License for the specific
|
|
12
12
|
# language governing permissions and limitations under the License.
|
|
13
13
|
|
|
14
|
-
require 'aws/ec2/collection'
|
|
15
|
-
require 'aws/ec2/tagged_collection'
|
|
16
|
-
require 'aws/ec2/volume'
|
|
17
|
-
|
|
18
14
|
module AWS
|
|
19
15
|
class EC2
|
|
20
16
|
|
data/lib/aws/errors.rb
CHANGED
data/lib/aws/iam.rb
CHANGED
|
@@ -11,16 +11,8 @@
|
|
|
11
11
|
# ANY KIND, either express or implied. See the License for the specific
|
|
12
12
|
# language governing permissions and limitations under the License.
|
|
13
13
|
|
|
14
|
-
require 'aws/
|
|
15
|
-
require 'aws/
|
|
16
|
-
require 'aws/service_interface'
|
|
17
|
-
require 'aws/iam/client'
|
|
18
|
-
require 'aws/iam/user_collection'
|
|
19
|
-
require 'aws/iam/group_collection'
|
|
20
|
-
require 'aws/iam/signing_certificate_collection'
|
|
21
|
-
require 'aws/iam/server_certificate_collection'
|
|
22
|
-
require 'aws/iam/account_alias_collection'
|
|
23
|
-
require 'aws/iam/access_key_collection'
|
|
14
|
+
require 'aws/core'
|
|
15
|
+
require 'aws/iam/config'
|
|
24
16
|
|
|
25
17
|
module AWS
|
|
26
18
|
|
|
@@ -142,7 +134,36 @@ module AWS
|
|
|
142
134
|
#
|
|
143
135
|
class IAM
|
|
144
136
|
|
|
145
|
-
|
|
137
|
+
AWS.register_autoloads(self) do
|
|
138
|
+
autoload :AccessKey, 'access_key'
|
|
139
|
+
autoload :AccessKeyCollection, 'access_key_collection'
|
|
140
|
+
autoload :AccountAliasCollection, 'account_alias_collection'
|
|
141
|
+
autoload :Client, 'client'
|
|
142
|
+
autoload :Collection, 'collection'
|
|
143
|
+
autoload :Errors, 'errors'
|
|
144
|
+
autoload :Group, 'group'
|
|
145
|
+
autoload :GroupCollection, 'group_collection'
|
|
146
|
+
autoload :GroupPolicyCollection, 'group_policy_collection'
|
|
147
|
+
autoload :GroupUserCollection, 'group_user_collection'
|
|
148
|
+
autoload :LoginProfile, 'login_profile'
|
|
149
|
+
autoload :MFADevice, 'mfa_device'
|
|
150
|
+
autoload :MFADeviceCollection, 'mfa_device_collection'
|
|
151
|
+
autoload :Policy, 'policy'
|
|
152
|
+
autoload :PolicyCollection, 'policy_collection'
|
|
153
|
+
autoload :Request, 'request'
|
|
154
|
+
autoload :Resource, 'resource'
|
|
155
|
+
autoload :ServerCertificate, 'server_certificate'
|
|
156
|
+
autoload :ServerCertificateCollection, 'server_certificate_collection'
|
|
157
|
+
autoload :SigningCertificate, 'signing_certificate'
|
|
158
|
+
autoload :SigningCertificateCollection, 'signing_certificate_collection'
|
|
159
|
+
autoload :User, 'user'
|
|
160
|
+
autoload :UserCollection, 'user_collection'
|
|
161
|
+
autoload :UserGroupCollection, 'user_group_collection'
|
|
162
|
+
autoload :UserPolicy, 'user_policy'
|
|
163
|
+
autoload :UserPolicyCollection, 'user_policy_collection'
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
include Core::ServiceInterface
|
|
146
167
|
|
|
147
168
|
# Returns a collection that represents all AWS users for this account:
|
|
148
169
|
#
|
|
@@ -297,7 +318,7 @@ module AWS
|
|
|
297
318
|
# @return [Hash]
|
|
298
319
|
def account_summary
|
|
299
320
|
client.get_account_summary.summary_map.inject({}) do |h, (k,v)|
|
|
300
|
-
h[Inflection.ruby_name(k).to_sym] = v
|
|
321
|
+
h[Core::Inflection.ruby_name(k).to_sym] = v
|
|
301
322
|
h
|
|
302
323
|
end
|
|
303
324
|
end
|