aws-sdk 1.3.5 → 1.3.6
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/aws/api_config/EC2-2011-12-15.yml +2791 -0
- data/lib/aws/core.rb +4 -4
- data/lib/aws/core/client.rb +1 -0
- data/lib/aws/core/client_logging.rb +9 -2
- data/lib/aws/core/lazy_error_classes.rb +1 -1
- data/lib/aws/core/response.rb +5 -0
- data/lib/aws/core/service_interface.rb +3 -2
- data/lib/aws/core/uri_escape.rb +1 -2
- data/lib/aws/ec2.rb +80 -1
- data/lib/aws/ec2/client.rb +29 -10
- data/lib/aws/ec2/client/xml.rb +51 -1
- data/lib/aws/ec2/customer_gateway.rb +90 -0
- data/lib/aws/ec2/customer_gateway_collection.rb +73 -0
- data/lib/aws/ec2/dhcp_options.rb +106 -0
- data/lib/aws/ec2/dhcp_options_collection.rb +87 -0
- data/lib/aws/ec2/filtered_collection.rb +27 -2
- data/lib/aws/ec2/image.rb +7 -4
- data/lib/aws/ec2/instance.rb +54 -2
- data/lib/aws/ec2/instance_collection.rb +5 -3
- data/lib/aws/ec2/internet_gateway.rb +122 -0
- data/lib/aws/ec2/internet_gateway/attachment.rb +78 -0
- data/lib/aws/ec2/internet_gateway_collection.rb +54 -0
- data/lib/aws/ec2/network_acl.rb +254 -0
- data/lib/aws/ec2/network_acl/association.rb +56 -0
- data/lib/aws/ec2/network_acl/entry.rb +147 -0
- data/lib/aws/ec2/network_acl_collection.rb +65 -0
- data/lib/aws/ec2/network_interface.rb +174 -0
- data/lib/aws/ec2/network_interface/attachment.rb +100 -0
- data/lib/aws/ec2/network_interface_collection.rb +103 -0
- data/lib/aws/ec2/region.rb +11 -1
- data/lib/aws/ec2/resource.rb +6 -2
- data/lib/aws/ec2/route_table.rb +204 -0
- data/lib/aws/ec2/route_table/association.rb +119 -0
- data/lib/aws/ec2/route_table/route.rb +113 -0
- data/lib/aws/ec2/route_table_collection.rb +73 -0
- data/lib/aws/ec2/security_group.rb +15 -5
- data/lib/aws/ec2/security_group_collection.rb +15 -12
- data/lib/aws/ec2/subnet.rb +161 -0
- data/lib/aws/ec2/subnet_collection.rb +115 -0
- data/lib/aws/ec2/vpc.rb +166 -0
- data/lib/aws/ec2/vpc_collection.rb +71 -0
- data/lib/aws/ec2/vpn_connection.rb +99 -0
- data/lib/aws/ec2/vpn_connection/telemetry.rb +49 -0
- data/lib/aws/ec2/vpn_connection_collection.rb +96 -0
- data/lib/aws/ec2/vpn_gateway.rb +123 -0
- data/lib/aws/ec2/vpn_gateway/attachment.rb +45 -0
- data/lib/aws/ec2/vpn_gateway_collection.rb +77 -0
- data/lib/aws/iam/login_profile.rb +4 -0
- data/lib/aws/iam/user.rb +6 -0
- data/lib/aws/record/hash_model.rb +3 -3
- data/lib/aws/simple_workflow.rb +6 -3
- data/lib/aws/simple_workflow/activity_task_collection.rb +7 -2
- data/lib/aws/simple_workflow/decision_task_collection.rb +11 -5
- data/lib/aws/simple_workflow/option_formatters.rb +7 -0
- data/lib/net/http/connection_pool.rb +19 -5
- metadata +33 -5
- data/lib/aws/api_config/EC2-2011-02-28.yml +0 -2314
data/lib/aws/core.rb
CHANGED
@@ -25,12 +25,12 @@ require 'aws/core/autoloader'
|
|
25
25
|
# * {AWS::ELB}
|
26
26
|
# * {AWS::IAM}
|
27
27
|
# * {AWS::S3}
|
28
|
-
# * {AWS::SimpleDB}
|
29
|
-
# * {AWS::SimpleEmailService}
|
30
|
-
# * {AWS::SimpleWorkflow}
|
31
28
|
# * {AWS::SNS}
|
32
29
|
# * {AWS::SQS}
|
33
30
|
# * {AWS::STS}
|
31
|
+
# * {AWS::SimpleDB}
|
32
|
+
# * {AWS::SimpleEmailService}
|
33
|
+
# * {AWS::SimpleWorkflow}
|
34
34
|
#
|
35
35
|
# = AWS::Record
|
36
36
|
#
|
@@ -59,7 +59,7 @@ require 'aws/core/autoloader'
|
|
59
59
|
module AWS
|
60
60
|
|
61
61
|
# Current version of the AWS SDK for Ruby
|
62
|
-
VERSION = "1.3.
|
62
|
+
VERSION = "1.3.6"
|
63
63
|
|
64
64
|
register_autoloads(self) do
|
65
65
|
autoload :Errors, 'errors'
|
data/lib/aws/core/client.rb
CHANGED
@@ -53,8 +53,15 @@ module AWS
|
|
53
53
|
status = response.http_response.status
|
54
54
|
service = self.class.service_name
|
55
55
|
|
56
|
-
pattern = "[AWS %s %s %.06f] %s(%s)"
|
57
|
-
parts = [
|
56
|
+
pattern = "[AWS %s %s %.06f %d retries] %s(%s)"
|
57
|
+
parts = [
|
58
|
+
service,
|
59
|
+
status,
|
60
|
+
time.real,
|
61
|
+
response.retry_count,
|
62
|
+
method_name,
|
63
|
+
sanitize_options(options)]
|
64
|
+
|
58
65
|
severity = :info
|
59
66
|
|
60
67
|
if response.error
|
data/lib/aws/core/response.rb
CHANGED
@@ -40,6 +40,10 @@ module AWS
|
|
40
40
|
|
41
41
|
# @return [Boolean] true if the response is cached
|
42
42
|
attr_accessor :cached
|
43
|
+
|
44
|
+
# @return [Integer] Returns the number of times the request
|
45
|
+
# was retried.
|
46
|
+
attr_accessor :retry_count
|
43
47
|
|
44
48
|
# @param [Http::Request] http_request
|
45
49
|
# @param [Http::Response] http_request
|
@@ -47,6 +51,7 @@ module AWS
|
|
47
51
|
@http_request = http_request
|
48
52
|
@http_response = http_response
|
49
53
|
@request_builder = block
|
54
|
+
@retry_count = 0
|
50
55
|
rebuild_request if @request_builder && !http_request
|
51
56
|
end
|
52
57
|
|
@@ -14,7 +14,6 @@
|
|
14
14
|
module AWS
|
15
15
|
module Core
|
16
16
|
|
17
|
-
# @private
|
18
17
|
module ServiceInterface
|
19
18
|
|
20
19
|
def self.included base
|
@@ -40,9 +39,11 @@ module AWS
|
|
40
39
|
# @see AWS::Cofiguration
|
41
40
|
#
|
42
41
|
# @param [Hash] options
|
42
|
+
#
|
43
43
|
# @option options [Configuration] :config An AWS::Configuration
|
44
44
|
# object to initialize this service interface object with. Defaults
|
45
45
|
# to AWS.config when not provided.
|
46
|
+
#
|
46
47
|
def initialize options = {}
|
47
48
|
@config = options[:config]
|
48
49
|
@config ||= AWS.config
|
@@ -50,7 +51,7 @@ module AWS
|
|
50
51
|
@client = config.send(Inflection.ruby_name(self.class.to_s) + '_client')
|
51
52
|
end
|
52
53
|
|
53
|
-
# @
|
54
|
+
# @return [String]
|
54
55
|
def inspect
|
55
56
|
"<#{self.class}>"
|
56
57
|
end
|
data/lib/aws/core/uri_escape.rb
CHANGED
data/lib/aws/ec2.rb
CHANGED
@@ -240,6 +240,10 @@ module AWS
|
|
240
240
|
autoload :Client, 'client'
|
241
241
|
autoload :Collection, 'collection'
|
242
242
|
autoload :ConfigTransform, 'config_transform'
|
243
|
+
autoload :CustomerGateway, 'customer_gateway'
|
244
|
+
autoload :CustomerGatewayCollection, 'customer_gateway_collection'
|
245
|
+
autoload :DHCPOptions, 'dhcp_options'
|
246
|
+
autoload :DHCPOptionsCollection, 'dhcp_options_collection'
|
243
247
|
autoload :ElasticIp, 'elastic_ip'
|
244
248
|
autoload :ElasticIpCollection, 'elastic_ip_collection'
|
245
249
|
autoload :Errors, 'errors'
|
@@ -249,8 +253,14 @@ module AWS
|
|
249
253
|
autoload :ImageCollection, 'image_collection'
|
250
254
|
autoload :Instance, 'instance'
|
251
255
|
autoload :InstanceCollection, 'instance_collection'
|
256
|
+
autoload :InternetGateway, 'internet_gateway'
|
257
|
+
autoload :InternetGatewayCollection, 'internet_gateway_collection'
|
252
258
|
autoload :KeyPair, 'key_pair'
|
253
259
|
autoload :KeyPairCollection, 'key_pair_collection'
|
260
|
+
autoload :NetworkACL, 'network_acl'
|
261
|
+
autoload :NetworkACLCollection, 'network_acl_collection'
|
262
|
+
autoload :NetworkInterface, 'network_interface'
|
263
|
+
autoload :NetworkInterfaceCollection, 'network_interface_collection'
|
254
264
|
autoload :PermissionCollection, 'permission_collection'
|
255
265
|
autoload :Region, 'region'
|
256
266
|
autoload :RegionCollection, 'region_collection'
|
@@ -263,16 +273,26 @@ module AWS
|
|
263
273
|
autoload :Resource, 'resource'
|
264
274
|
autoload :ResourceObject, 'tag_collection'
|
265
275
|
autoload :ResourceTagCollection, 'resource_tag_collection'
|
276
|
+
autoload :RouteTable, 'route_table'
|
277
|
+
autoload :RouteTableCollection, 'route_table_collection'
|
266
278
|
autoload :SecurityGroup, 'security_group'
|
267
279
|
autoload :SecurityGroupCollection, 'security_group_collection'
|
268
280
|
autoload :Snapshot, 'snapshot'
|
269
281
|
autoload :SnapshotCollection, 'snapshot_collection'
|
282
|
+
autoload :Subnet, 'subnet'
|
283
|
+
autoload :SubnetCollection, 'subnet_collection'
|
270
284
|
autoload :Tag, 'tag'
|
271
285
|
autoload :TagCollection, 'tag_collection'
|
272
286
|
autoload :TaggedCollection, 'tagged_collection'
|
273
287
|
autoload :TaggedItem, 'tagged_item'
|
274
288
|
autoload :Volume, 'volume'
|
275
289
|
autoload :VolumeCollection, 'volume_collection'
|
290
|
+
autoload :VPC, 'vpc'
|
291
|
+
autoload :VPCCollection, 'vpc_collection'
|
292
|
+
autoload :VPNConnection, 'vpn_connection'
|
293
|
+
autoload :VPNConnectionCollection, 'vpn_connection_collection'
|
294
|
+
autoload :VPNGateway, 'vpn_gateway'
|
295
|
+
autoload :VPNGatewayCollection, 'vpn_gateway_collection'
|
276
296
|
end
|
277
297
|
|
278
298
|
include Core::ServiceInterface
|
@@ -347,6 +367,65 @@ module AWS
|
|
347
367
|
SnapshotCollection.new(:config => config)
|
348
368
|
end
|
349
369
|
|
350
|
-
|
370
|
+
# @return [VPCCollection] A collection representing
|
371
|
+
# all VPCs in your account.
|
372
|
+
def vpcs
|
373
|
+
VPCCollection.new(:config => config)
|
374
|
+
end
|
375
|
+
|
376
|
+
# @return [SubnetCollection] Returns a collection that represents all
|
377
|
+
# of the subnets associated with this account (across all VPCs).
|
378
|
+
def subnets
|
379
|
+
SubnetCollection.new(:config => config)
|
380
|
+
end
|
381
|
+
|
382
|
+
# @return [NetworkACLCollection] Returns a collection that represents
|
383
|
+
# all of the network ACLs for this account.
|
384
|
+
def network_acls
|
385
|
+
NetworkACLCollection.new(:config => config)
|
386
|
+
end
|
351
387
|
|
388
|
+
# @return [RouteTableCollection] Returns a collection that represents
|
389
|
+
# all of the route tables for this account.
|
390
|
+
def route_tables
|
391
|
+
RouteTableCollection.new(:config => config)
|
392
|
+
end
|
393
|
+
|
394
|
+
# @return [NetworkInterfaceCollection] Returns a collection that
|
395
|
+
# represents all of the network interfaces for this account.
|
396
|
+
def network_interfaces
|
397
|
+
NetworkInterfaceCollection.new(:config => config)
|
398
|
+
end
|
399
|
+
|
400
|
+
# @return [InternetGatewayCollection] Returns a collection that
|
401
|
+
# represents all of the internet gateways for this account.
|
402
|
+
def internet_gateways
|
403
|
+
InternetGatewayCollection.new(:config => config)
|
404
|
+
end
|
405
|
+
|
406
|
+
# @return [CustomerGatewayCollection] Returns a collection that
|
407
|
+
# represents all of the customer gateways for this account.
|
408
|
+
def customer_gateways
|
409
|
+
CustomerGatewayCollection.new(:config => config)
|
410
|
+
end
|
411
|
+
|
412
|
+
# @return [VPNGatewayCollection] Returns a collection that
|
413
|
+
# represents all of the vpn gateways for this account.
|
414
|
+
def vpn_gateways
|
415
|
+
VPNGatewayCollection.new(:config => config)
|
416
|
+
end
|
417
|
+
|
418
|
+
# @return [DHCPOptionsCollection] Returns a collection that
|
419
|
+
# represents all of the dhcp options for this account.
|
420
|
+
def dhcp_options
|
421
|
+
DHCPOptionsCollection.new(:config => config)
|
422
|
+
end
|
423
|
+
|
424
|
+
# @return [VPNConnections] Returns a collection that
|
425
|
+
# represents all of vpn connections for this account.
|
426
|
+
def vpn_connections
|
427
|
+
VPNConnectionCollection.new(:config => config)
|
428
|
+
end
|
429
|
+
|
430
|
+
end
|
352
431
|
end
|
data/lib/aws/ec2/client.rb
CHANGED
@@ -23,27 +23,46 @@ module AWS
|
|
23
23
|
|
24
24
|
include Core::ConfiguredClientMethods
|
25
25
|
|
26
|
-
API_VERSION = '2011-
|
26
|
+
API_VERSION = '2011-12-15'
|
27
27
|
|
28
28
|
REQUEST_CLASS = EC2::Request
|
29
29
|
|
30
30
|
# @private
|
31
31
|
CACHEABLE_REQUESTS = Set[
|
32
|
-
:describe_instances,
|
33
|
-
:describe_instance_attribute,
|
34
|
-
:describe_images,
|
35
|
-
:describe_image_attribute,
|
36
|
-
:describe_volumes,
|
37
|
-
:describe_security_groups,
|
38
32
|
:describe_addresses,
|
33
|
+
:describe_availability_zones,
|
34
|
+
:describe_bundle_tasks,
|
35
|
+
:describe_customer_gateways,
|
36
|
+
:describe_dhcp_options,
|
37
|
+
:describe_image_attribute,
|
38
|
+
:describe_images,
|
39
|
+
:describe_instances,
|
39
40
|
:describe_key_pairs,
|
40
41
|
:describe_regions,
|
41
|
-
:describe_availability_zones,
|
42
42
|
:describe_reserved_instances,
|
43
43
|
:describe_reserved_instances_offerings,
|
44
|
-
:
|
44
|
+
:describe_security_groups,
|
45
45
|
:describe_snapshot_attribute,
|
46
|
-
:
|
46
|
+
:describe_snapshots,
|
47
|
+
:describe_subnets,
|
48
|
+
:describe_volumes,
|
49
|
+
:describe_vpcs,
|
50
|
+
:describe_vpn_connections,
|
51
|
+
:describe_vpn_gateways,
|
52
|
+
:describe_instance_attribute,
|
53
|
+
:describe_spot_instance_requests,
|
54
|
+
:describe_spot_price_history,
|
55
|
+
:describe_spot_datafeed_subscription,
|
56
|
+
:describe_licenses,
|
57
|
+
:describe_placement_groups,
|
58
|
+
:describe_tags,
|
59
|
+
:describe_internet_gateways,
|
60
|
+
:describe_route_tables,
|
61
|
+
:describe_network_acls,
|
62
|
+
:describe_instance_status,
|
63
|
+
:describe_conversion_tasks,
|
64
|
+
:describe_network_interfaces,
|
65
|
+
:describe_network_interface_attribute,
|
47
66
|
]
|
48
67
|
|
49
68
|
configure_client
|
data/lib/aws/ec2/client/xml.rb
CHANGED
@@ -27,6 +27,57 @@ module AWS
|
|
27
27
|
|
28
28
|
define_configured_grammars
|
29
29
|
|
30
|
+
CustomizedDescribeNetworkInterfaces = DescribeNetworkInterfaces.customize do
|
31
|
+
element "networkInterfaceSet" do
|
32
|
+
rename "set"
|
33
|
+
element "item" do
|
34
|
+
element "groupSet" do
|
35
|
+
element "item" do
|
36
|
+
rename :groups
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
CustomizedDescribeCustomerGateways = DescribeCustomerGateways.customize do
|
44
|
+
element "customerGatewaySet" do
|
45
|
+
element "item" do
|
46
|
+
element "type" do
|
47
|
+
rename :vpn_type
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
CustomizedDescribeVpnConnections = DescribeVpnConnections.customize do
|
54
|
+
element "vpnConnectionSet" do
|
55
|
+
element "item" do
|
56
|
+
element "type" do
|
57
|
+
rename :vpn_type
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
CustomizedCreateVpnGateway = CreateVpnGateway.customize do
|
64
|
+
element "vpnGateway" do
|
65
|
+
element "type" do
|
66
|
+
rename :vpn_type
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
CustomizedDescribeVpnGateways = DescribeVpnGateways.customize do
|
72
|
+
element "vpnGatewaySet" do
|
73
|
+
element "item" do
|
74
|
+
element "type" do
|
75
|
+
rename :vpn_type
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
30
81
|
CustomizedDescribeSecurityGroups = DescribeSecurityGroups.customize do
|
31
82
|
element "securityGroupInfo" do
|
32
83
|
element "item" do
|
@@ -119,7 +170,6 @@ module AWS
|
|
119
170
|
end
|
120
171
|
|
121
172
|
end
|
122
|
-
|
123
173
|
end
|
124
174
|
end
|
125
175
|
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
# Copyright 2011-2012 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
|
+
|
17
|
+
# @attr_reader [Symbol] state Returns the gateway state (e.g.
|
18
|
+
# :pending, :available, :deleting, :deleted)
|
19
|
+
#
|
20
|
+
# @attr_reader [String] type The type of VPN connection the customer
|
21
|
+
# gateway supports (e.g. 'ipsec.1').
|
22
|
+
#
|
23
|
+
# @attr_reader [String] ip_address The Internet-routable IP address of
|
24
|
+
# the customer gateway's outside interface.
|
25
|
+
#
|
26
|
+
# @attr_reader [Integer] bgp_asn The customer gateway's Border Gateway
|
27
|
+
# Protocol (BGP) Autonomous System Number (ASN).
|
28
|
+
#
|
29
|
+
class CustomerGateway < Resource
|
30
|
+
|
31
|
+
include TaggedItem
|
32
|
+
|
33
|
+
# @private
|
34
|
+
def initialize customer_gateway_id, options = {}
|
35
|
+
@customer_gateway_id = customer_gateway_id
|
36
|
+
super
|
37
|
+
end
|
38
|
+
|
39
|
+
# @return [String]
|
40
|
+
attr_reader :customer_gateway_id
|
41
|
+
|
42
|
+
alias_method :id, :customer_gateway_id
|
43
|
+
|
44
|
+
attribute :state, :to_sym => true
|
45
|
+
|
46
|
+
attribute :vpn_type, :static => true
|
47
|
+
|
48
|
+
attribute :ip_address, :static => true
|
49
|
+
|
50
|
+
attribute :bgp_asn, :static => true
|
51
|
+
|
52
|
+
populates_from(:create_customer_gateway) do |resp|
|
53
|
+
resp.customer_gateway if resp.customer_gateway.customer_gateway_id == id
|
54
|
+
end
|
55
|
+
|
56
|
+
populates_from(:describe_customer_gateways) do |resp|
|
57
|
+
resp.customer_gateway_set.find do |gateway|
|
58
|
+
gateway.customer_gateway_id == customer_gateway_id
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
# @return [VPNConnectionCollection] Returns a collection
|
63
|
+
# of VPC connections for this gateway.
|
64
|
+
def vpn_connections
|
65
|
+
connections = VPNConnectionCollection.new(:config => config)
|
66
|
+
connections.filter('customer-gateway-id', id)
|
67
|
+
end
|
68
|
+
|
69
|
+
# Deletes this customer gateway.
|
70
|
+
# @return [nil]
|
71
|
+
def delete
|
72
|
+
client_opts = {}
|
73
|
+
client_opts[:customer_gateway_id] = customer_gateway_id
|
74
|
+
client.delete_customer_gateway(client_opts)
|
75
|
+
nil
|
76
|
+
end
|
77
|
+
|
78
|
+
# @return [Boolean] Returns true if the gateway exists.
|
79
|
+
def exists?
|
80
|
+
begin
|
81
|
+
client.describe_customer_gateways(:customer_gateway_ids => [id])
|
82
|
+
true
|
83
|
+
rescue Errors::InvalidCustomerGatewayID::NotFound
|
84
|
+
false
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|