fog-aws 0.11.0 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +22 -1
- data/lib/fog/aws.rb +2 -0
- data/lib/fog/aws/cloud_formation.rb +14 -0
- data/lib/fog/aws/compute.rb +2 -0
- data/lib/fog/aws/models/compute/security_group.rb +49 -26
- data/lib/fog/aws/models/compute/vpc.rb +6 -0
- data/lib/fog/aws/models/support/flagged_resource.rb +14 -0
- data/lib/fog/aws/models/support/flagged_resources.rb +11 -0
- data/lib/fog/aws/models/support/trusted_advisor_check.rb +65 -0
- data/lib/fog/aws/models/support/trusted_advisor_checks.rb +21 -0
- data/lib/fog/aws/parsers/cloud_formation/basic.rb +8 -0
- data/lib/fog/aws/parsers/cloud_formation/create_change_set.rb +16 -0
- data/lib/fog/aws/parsers/cloud_formation/describe_account_limits.rb +26 -0
- data/lib/fog/aws/parsers/cloud_formation/describe_change_set.rb +135 -0
- data/lib/fog/aws/parsers/cloud_formation/describe_stack_resource.rb +28 -0
- data/lib/fog/aws/parsers/cloud_formation/estimate_template_cost.rb +16 -0
- data/lib/fog/aws/parsers/cloud_formation/get_stack_policy.rb +16 -0
- data/lib/fog/aws/parsers/cloud_formation/get_template_summary.rb +62 -0
- data/lib/fog/aws/parsers/cloud_formation/list_change_sets.rb +30 -0
- data/lib/fog/aws/parsers/compute/describe_vpcs.rb +3 -1
- data/lib/fog/aws/requests/cloud_formation/cancel_update_stack.rb +25 -0
- data/lib/fog/aws/requests/cloud_formation/continue_update_rollback.rb +26 -0
- data/lib/fog/aws/requests/cloud_formation/create_change_set.rb +70 -0
- data/lib/fog/aws/requests/cloud_formation/create_stack.rb +14 -0
- data/lib/fog/aws/requests/cloud_formation/delete_change_set.rb +26 -0
- data/lib/fog/aws/requests/cloud_formation/delete_stack.rb +1 -1
- data/lib/fog/aws/requests/cloud_formation/describe_account_limits.rb +27 -0
- data/lib/fog/aws/requests/cloud_formation/describe_change_set.rb +43 -0
- data/lib/fog/aws/requests/cloud_formation/describe_stack_resource.rb +40 -0
- data/lib/fog/aws/requests/cloud_formation/estimate_template_cost.rb +48 -0
- data/lib/fog/aws/requests/cloud_formation/execute_change_set.rb +26 -0
- data/lib/fog/aws/requests/cloud_formation/get_stack_policy.rb +27 -0
- data/lib/fog/aws/requests/cloud_formation/get_template_summary.rb +46 -0
- data/lib/fog/aws/requests/cloud_formation/list_change_sets.rb +40 -0
- data/lib/fog/aws/requests/cloud_formation/set_stack_policy.rb +38 -0
- data/lib/fog/aws/requests/cloud_formation/signal_resource.rb +32 -0
- data/lib/fog/aws/requests/cloud_formation/update_stack.rb +49 -0
- data/lib/fog/aws/requests/compute/authorize_security_group_egress.rb +112 -0
- data/lib/fog/aws/requests/compute/revoke_security_group_egress.rb +98 -0
- data/lib/fog/aws/requests/support/describe_trusted_advisor_check_result.rb +31 -0
- data/lib/fog/aws/requests/support/describe_trusted_advisor_checks.rb +29 -0
- data/lib/fog/aws/support.rb +170 -0
- data/lib/fog/aws/version.rb +1 -1
- data/tests/models/compute/security_group_tests.rb +24 -0
- data/tests/models/support/trusted_advisor_tests.rb +25 -0
- data/tests/requests/support/helper.rb +43 -0
- data/tests/requests/support/trusted_advisor_check_tests.rb +16 -0
- metadata +36 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2cad9d793cac288d1f03fc73d7d531608f269b4c
|
4
|
+
data.tar.gz: 2dafa327b192217ba04f4a20b4adf7cddaa09be3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5aa5e8a00c298e743959011f936c5a4b6d8640c30501aaeb5e2593cb9ff6e69ca7cd5c6f9a3b35e247b382099d0ceabb5b21270a39364a265e1a1a84f769853d
|
7
|
+
data.tar.gz: 87e376f15aa50548604c98047f491ce81698c0807cb04993d343f4f7cb17a481893d8a9d0d81a99109c537665b4b8bbb9f0054d7d7bef4162b272ca9307eaa7f
|
data/CHANGELOG.md
CHANGED
@@ -2,7 +2,28 @@
|
|
2
2
|
|
3
3
|
## [Unreleased](https://github.com/fog/fog-aws/tree/HEAD)
|
4
4
|
|
5
|
-
[Full Changelog](https://github.com/fog/fog-aws/compare/v0.
|
5
|
+
[Full Changelog](https://github.com/fog/fog-aws/compare/v0.11.0...HEAD)
|
6
|
+
|
7
|
+
**Implemented enhancements:**
|
8
|
+
|
9
|
+
- Add gestion of egress security group rules [\#290](https://github.com/fog/fog-aws/pull/290) ([KevinLoiseau](https://github.com/KevinLoiseau))
|
10
|
+
|
11
|
+
**Closed issues:**
|
12
|
+
|
13
|
+
- Fog directory appends local system path with amazon url when i try to give dynamic fog directory [\#295](https://github.com/fog/fog-aws/issues/295)
|
14
|
+
- Getting OperationAborted error on file storage operation [\#288](https://github.com/fog/fog-aws/issues/288)
|
15
|
+
- AWS Elasticsearch API [\#286](https://github.com/fog/fog-aws/issues/286)
|
16
|
+
- Disable chunked encoding [\#285](https://github.com/fog/fog-aws/issues/285)
|
17
|
+
|
18
|
+
**Merged pull requests:**
|
19
|
+
|
20
|
+
- add support endpoint and models/requests for trusted advisor checks [\#300](https://github.com/fog/fog-aws/pull/300) ([ehowe](https://github.com/ehowe))
|
21
|
+
- Add attribute is\_default in vpc [\#299](https://github.com/fog/fog-aws/pull/299) ([zhitongLBN](https://github.com/zhitongLBN))
|
22
|
+
- Cloud Formation: additional parameters [\#298](https://github.com/fog/fog-aws/pull/298) ([neillturner](https://github.com/neillturner))
|
23
|
+
- Cloud Formation: support for change sets, stack policy and other missing calls. [\#297](https://github.com/fog/fog-aws/pull/297) ([neillturner](https://github.com/neillturner))
|
24
|
+
|
25
|
+
## [v0.11.0](https://github.com/fog/fog-aws/tree/v0.11.0) (2016-08-04)
|
26
|
+
[Full Changelog](https://github.com/fog/fog-aws/compare/v0.10.0...v0.11.0)
|
6
27
|
|
7
28
|
**Merged pull requests:**
|
8
29
|
|
data/lib/fog/aws.rb
CHANGED
@@ -52,6 +52,7 @@ module Fog
|
|
52
52
|
autoload :SNS, File.expand_path('../aws/sns', __FILE__)
|
53
53
|
autoload :SQS, File.expand_path('../aws/sqs', __FILE__)
|
54
54
|
autoload :STS, File.expand_path('../aws/sts', __FILE__)
|
55
|
+
autoload :Support, File.expand_path('../aws/support', __FILE__)
|
55
56
|
autoload :SimpleDB, File.expand_path('../aws/simpledb', __FILE__)
|
56
57
|
|
57
58
|
service(:auto_scaling, 'AutoScaling')
|
@@ -81,6 +82,7 @@ module Fog
|
|
81
82
|
service(:sqs, 'SQS')
|
82
83
|
service(:storage, 'Storage')
|
83
84
|
service(:sts, 'STS')
|
85
|
+
service(:support, 'Support')
|
84
86
|
|
85
87
|
def self.indexed_param(key, values)
|
86
88
|
params = {}
|
@@ -7,14 +7,28 @@ module Fog
|
|
7
7
|
recognizes :host, :path, :port, :scheme, :persistent, :region, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :instrumentor, :instrumentor_name
|
8
8
|
|
9
9
|
request_path 'fog/aws/requests/cloud_formation'
|
10
|
+
request :cancel_update_stack
|
11
|
+
request :continue_update_rollback
|
12
|
+
request :create_change_set
|
10
13
|
request :create_stack
|
11
14
|
request :update_stack
|
15
|
+
request :delete_change_set
|
12
16
|
request :delete_stack
|
17
|
+
request :describe_account_limits
|
18
|
+
request :describe_change_set
|
13
19
|
request :describe_stack_events
|
20
|
+
request :describe_stack_resource
|
14
21
|
request :describe_stack_resources
|
15
22
|
request :describe_stacks
|
23
|
+
request :estimate_template_cost
|
24
|
+
request :execute_change_set
|
25
|
+
request :get_stack_policy
|
16
26
|
request :get_template
|
27
|
+
request :get_template_summary
|
28
|
+
request :set_stack_policy
|
29
|
+
request :signal_resource
|
17
30
|
request :validate_template
|
31
|
+
request :list_change_sets
|
18
32
|
request :list_stacks
|
19
33
|
request :list_stack_resources
|
20
34
|
|
data/lib/fog/aws/compute.rb
CHANGED
@@ -54,6 +54,7 @@ module Fog
|
|
54
54
|
request :attach_classic_link_vpc
|
55
55
|
request :attach_internet_gateway
|
56
56
|
request :attach_volume
|
57
|
+
request :authorize_security_group_egress
|
57
58
|
request :authorize_security_group_ingress
|
58
59
|
request :cancel_spot_instance_requests
|
59
60
|
request :create_dhcp_options
|
@@ -150,6 +151,7 @@ module Fog
|
|
150
151
|
request :register_image
|
151
152
|
request :request_spot_instances
|
152
153
|
request :reset_network_interface_attribute
|
154
|
+
request :revoke_security_group_egress
|
153
155
|
request :revoke_security_group_ingress
|
154
156
|
request :run_instances
|
155
157
|
request :terminate_instances
|
@@ -82,22 +82,16 @@ module Fog
|
|
82
82
|
def authorize_port_range(range, options = {})
|
83
83
|
requires_one :name, :group_id
|
84
84
|
|
85
|
-
ip_permission =
|
86
|
-
'FromPort' => range.begin,
|
87
|
-
'ToPort' => range.end,
|
88
|
-
'IpProtocol' => options[:ip_protocol] || 'tcp'
|
89
|
-
}
|
85
|
+
ip_permission = fetch_ip_permission(range, options)
|
90
86
|
|
91
|
-
if options[:
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
else
|
96
|
-
ip_permission['Groups'] = [
|
97
|
-
group_info(options[:group])
|
98
|
-
]
|
87
|
+
if options[:direction].nil? || options[:direction] == 'ingress'
|
88
|
+
authorize_port_range_ingress group_id, ip_permission
|
89
|
+
elsif options[:direction] == 'egress'
|
90
|
+
authorize_port_range_egress group_id, ip_permission
|
99
91
|
end
|
92
|
+
end
|
100
93
|
|
94
|
+
def authorize_port_range_ingress(group_id, ip_permission)
|
101
95
|
service.authorize_security_group_ingress(
|
102
96
|
name,
|
103
97
|
'GroupId' => group_id,
|
@@ -105,6 +99,14 @@ module Fog
|
|
105
99
|
)
|
106
100
|
end
|
107
101
|
|
102
|
+
def authorize_port_range_egress(group_id, ip_permission)
|
103
|
+
service.authorize_security_group_egress(
|
104
|
+
name,
|
105
|
+
'GroupId' => group_id,
|
106
|
+
'IpPermissions' => [ ip_permission ]
|
107
|
+
)
|
108
|
+
end
|
109
|
+
|
108
110
|
# Removes an existing security group
|
109
111
|
#
|
110
112
|
# security_group.destroy
|
@@ -196,22 +198,16 @@ module Fog
|
|
196
198
|
def revoke_port_range(range, options = {})
|
197
199
|
requires_one :name, :group_id
|
198
200
|
|
199
|
-
ip_permission =
|
200
|
-
'FromPort' => range.begin,
|
201
|
-
'ToPort' => range.end,
|
202
|
-
'IpProtocol' => options[:ip_protocol] || 'tcp'
|
203
|
-
}
|
201
|
+
ip_permission = fetch_ip_permission(range, options)
|
204
202
|
|
205
|
-
if options[:
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
else
|
210
|
-
ip_permission['Groups'] = [
|
211
|
-
group_info(options[:group])
|
212
|
-
]
|
203
|
+
if options[:direction].nil? || options[:direction] == 'ingress'
|
204
|
+
revoke_port_range_ingress group_id, ip_permission
|
205
|
+
elsif options[:direction] == 'egress'
|
206
|
+
revoke_port_range_egress group_id, ip_permission
|
213
207
|
end
|
208
|
+
end
|
214
209
|
|
210
|
+
def revoke_port_range_ingress(group_id, ip_permission)
|
215
211
|
service.revoke_security_group_ingress(
|
216
212
|
name,
|
217
213
|
'GroupId' => group_id,
|
@@ -219,6 +215,14 @@ module Fog
|
|
219
215
|
)
|
220
216
|
end
|
221
217
|
|
218
|
+
def revoke_port_range_egress(group_id, ip_permission)
|
219
|
+
service.revoke_security_group_egress(
|
220
|
+
name,
|
221
|
+
'GroupId' => group_id,
|
222
|
+
'IpPermissions' => [ ip_permission ]
|
223
|
+
)
|
224
|
+
end
|
225
|
+
|
222
226
|
# Reload a security group
|
223
227
|
#
|
224
228
|
# >> g = AWS.security_groups.get(:name => "some_name")
|
@@ -314,6 +318,25 @@ module Fog
|
|
314
318
|
|
315
319
|
info
|
316
320
|
end
|
321
|
+
|
322
|
+
def fetch_ip_permission(range, options)
|
323
|
+
ip_permission = {
|
324
|
+
'FromPort' => range.begin,
|
325
|
+
'ToPort' => range.end,
|
326
|
+
'IpProtocol' => options[:ip_protocol] || 'tcp'
|
327
|
+
}
|
328
|
+
|
329
|
+
if options[:group].nil?
|
330
|
+
ip_permission['IpRanges'] = [
|
331
|
+
{ 'CidrIp' => options[:cidr_ip] || '0.0.0.0/0' }
|
332
|
+
]
|
333
|
+
else
|
334
|
+
ip_permission['Groups'] = [
|
335
|
+
group_info(options[:group])
|
336
|
+
]
|
337
|
+
end
|
338
|
+
ip_permission
|
339
|
+
end
|
317
340
|
end
|
318
341
|
end
|
319
342
|
end
|
@@ -9,6 +9,7 @@ module Fog
|
|
9
9
|
attribute :dhcp_options_id, :aliases => 'dhcpOptionsId'
|
10
10
|
attribute :tags, :aliases => 'tagSet'
|
11
11
|
attribute :tenancy, :aliases => 'instanceTenancy'
|
12
|
+
attribute :is_default, :aliases => 'isDefault'
|
12
13
|
|
13
14
|
def initialize(attributes={})
|
14
15
|
self.dhcp_options_id ||= "default"
|
@@ -21,6 +22,11 @@ module Fog
|
|
21
22
|
state == 'available'
|
22
23
|
end
|
23
24
|
|
25
|
+
def is_default?
|
26
|
+
require :is_default
|
27
|
+
is_default
|
28
|
+
end
|
29
|
+
|
24
30
|
# Removes an existing vpc
|
25
31
|
#
|
26
32
|
# vpc.destroy
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class Support
|
4
|
+
class FlaggedResource < Fog::Model
|
5
|
+
identity :resource_id, :aliases => "resourceId"
|
6
|
+
|
7
|
+
attribute :is_suppressed, :aliases => "isSuppressed", :type => :boolean
|
8
|
+
attribute :metadata
|
9
|
+
attribute :region
|
10
|
+
attribute :status
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class Support
|
4
|
+
class TrustedAdvisorCheck < Fog::Model
|
5
|
+
identity :id, :aliases => 'checkId'
|
6
|
+
|
7
|
+
attribute :name
|
8
|
+
attribute :category
|
9
|
+
attribute :description
|
10
|
+
attribute :metadata
|
11
|
+
attribute :flagged_resources, :aliases => 'flaggedResources'
|
12
|
+
attribute :resources_summary, :aliases => 'resourcesSummary'
|
13
|
+
attribute :status
|
14
|
+
attribute :timestamp
|
15
|
+
attribute :category_specific_summary, :aliases => 'categorySpecificSummary'
|
16
|
+
|
17
|
+
def populate_extended_attributes(lazy=false)
|
18
|
+
return if lazy == true
|
19
|
+
data = service.describe_trusted_advisor_check_result(:id => self.identity).body["result"]
|
20
|
+
merge_attributes(data)
|
21
|
+
end
|
22
|
+
|
23
|
+
def flagged_resources(lazy=true)
|
24
|
+
if attributes[:flagged_resources].nil?
|
25
|
+
populate_extended_attributes(lazy)
|
26
|
+
|
27
|
+
if attributes[:flagged_resources]
|
28
|
+
map_flagged_resources!
|
29
|
+
service.flagged_resources.load(attributes[:flagged_resources])
|
30
|
+
else
|
31
|
+
nil
|
32
|
+
end
|
33
|
+
else
|
34
|
+
if attributes[:flagged_resources].first['metadata'].is_a?(Array)
|
35
|
+
map_flagged_resources!
|
36
|
+
end
|
37
|
+
service.flagged_resources.load(attributes[:flagged_resources])
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def category_specific_summary(lazy=true)
|
42
|
+
populate_extended_attributes(lazy) if attributes[:category_specific_summary].nil?
|
43
|
+
attributes[:category_stecific_summary]
|
44
|
+
end
|
45
|
+
|
46
|
+
def resources_summary(lazy=true)
|
47
|
+
populate_extended_attributes(lazy) if attributes[:resources_summary].nil?
|
48
|
+
attributes[:resources_summary]
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
52
|
+
|
53
|
+
def map_flagged_resources!
|
54
|
+
attributes[:flagged_resources].map! do |fr|
|
55
|
+
fr['metadata'] = fr['metadata'].each_with_index.inject({}) do |hash,(data,index)|
|
56
|
+
hash[self.metadata[index]] = data
|
57
|
+
hash
|
58
|
+
end
|
59
|
+
fr
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'fog/aws/models/support/trusted_advisor_check'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module AWS
|
5
|
+
class Support
|
6
|
+
class TrustedAdvisorChecks < Fog::Collection
|
7
|
+
model Fog::AWS::Support::TrustedAdvisorCheck
|
8
|
+
|
9
|
+
def all
|
10
|
+
data = service.describe_trusted_advisor_checks.body['checks']
|
11
|
+
load(data)
|
12
|
+
end
|
13
|
+
|
14
|
+
def get(id)
|
15
|
+
data = service.describe_trusted_advisor_check_result(:id => id).body['result']
|
16
|
+
new(data).populate_extended_attributes
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module CloudFormation
|
5
|
+
class DescribeAccountLimits < Fog::Parsers::Base
|
6
|
+
def reset
|
7
|
+
@limit = {}
|
8
|
+
@response = { 'AccountLimits' => [] }
|
9
|
+
end
|
10
|
+
|
11
|
+
def end_element(name)
|
12
|
+
case name
|
13
|
+
when 'Name', 'Value'
|
14
|
+
@limit[name] = value
|
15
|
+
when 'member'
|
16
|
+
@response['AccountLimits'] << @limit
|
17
|
+
@limit = {}
|
18
|
+
when 'RequestId'
|
19
|
+
@response[name] = value
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,135 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module CloudFormation
|
5
|
+
class DescribeChangeSet < Fog::Parsers::Base
|
6
|
+
def reset
|
7
|
+
@response = fresh_change_set
|
8
|
+
reset_parameter
|
9
|
+
reset_change
|
10
|
+
reset_resource_change
|
11
|
+
reset_resource_change_detail
|
12
|
+
reset_resource_target_definition
|
13
|
+
end
|
14
|
+
|
15
|
+
def reset_parameter
|
16
|
+
@parameter = {}
|
17
|
+
end
|
18
|
+
|
19
|
+
def reset_change
|
20
|
+
@change = {}
|
21
|
+
end
|
22
|
+
|
23
|
+
def reset_resource_change
|
24
|
+
@resource_change = {'Details' => [], 'Scope' => [] }
|
25
|
+
end
|
26
|
+
|
27
|
+
def reset_resource_change_detail
|
28
|
+
@resource_change_detail = {}
|
29
|
+
end
|
30
|
+
|
31
|
+
def reset_resource_target_definition
|
32
|
+
@resource_target_definition = {}
|
33
|
+
end
|
34
|
+
|
35
|
+
def fresh_change_set
|
36
|
+
{'Capabilities' => [], 'Changes' => [], 'NotificationARNs' => [], 'Parameters' => [], 'Tags' => []}
|
37
|
+
end
|
38
|
+
|
39
|
+
def start_element(name, attrs=[])
|
40
|
+
super
|
41
|
+
case name
|
42
|
+
when 'Capabilities'
|
43
|
+
@in_capabilities = true
|
44
|
+
when 'Changes'
|
45
|
+
@in_changes = true
|
46
|
+
when 'ResourceChange'
|
47
|
+
@in_resource_change = true
|
48
|
+
when 'Scope'
|
49
|
+
@in_scope = true
|
50
|
+
when 'Details'
|
51
|
+
@in_details = true
|
52
|
+
when 'Target'
|
53
|
+
@in_target = true
|
54
|
+
when 'NotificationARNs'
|
55
|
+
@in_notification_arns = true
|
56
|
+
when 'Parameters'
|
57
|
+
@in_parameters = true
|
58
|
+
when 'Tags'
|
59
|
+
@in_tags = true
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def end_element(name)
|
64
|
+
case name
|
65
|
+
when 'ChangeSetId', 'ChangeSetName', 'Description', 'ExecutionStatus', 'StackId', 'StackName', 'StatusReason'
|
66
|
+
@response[name] = value
|
67
|
+
when 'CreationTime'
|
68
|
+
@response[name] = Time.parse(value)
|
69
|
+
when 'member'
|
70
|
+
if @in_capabilities
|
71
|
+
@response['Capabilities'] << value
|
72
|
+
elsif @in_scope
|
73
|
+
@resource_change['Scope'] << value
|
74
|
+
elsif @in_notification_arns
|
75
|
+
@response['NotificationARNs'] << value
|
76
|
+
elsif @in_parameters
|
77
|
+
@response['Parameters'] << @parameter
|
78
|
+
reset_parameter
|
79
|
+
elsif @in_tags
|
80
|
+
@response['Tags'] << @tag
|
81
|
+
reset_tag
|
82
|
+
elsif @in_details
|
83
|
+
@resource_change['Details'] << @resource_change_detail
|
84
|
+
reset_resource_change_detail
|
85
|
+
elsif @in_changes
|
86
|
+
@response['Changes'] << @change
|
87
|
+
reset_change
|
88
|
+
end
|
89
|
+
when 'ParameterValue', 'ParameterKey'
|
90
|
+
@parameter[name] = value if @in_parameters
|
91
|
+
when 'Parameters'
|
92
|
+
@in_parameters = false
|
93
|
+
when 'Value', 'Key'
|
94
|
+
@tag[name] = value if @in_tags
|
95
|
+
when 'Tags'
|
96
|
+
@in_tags = false
|
97
|
+
when 'Capabilities'
|
98
|
+
@in_capabilities = false
|
99
|
+
when 'Scope'
|
100
|
+
@in_scope = false
|
101
|
+
when 'NotificationARNs'
|
102
|
+
@in_notification_arns = false
|
103
|
+
when 'Type'
|
104
|
+
@change[name] = value if @in_changes
|
105
|
+
when 'Changes'
|
106
|
+
@in_changes = false
|
107
|
+
when 'ResourceChange'
|
108
|
+
if @in_resource_change
|
109
|
+
@change[name] = @resource_change
|
110
|
+
@in_resource_change = false
|
111
|
+
end
|
112
|
+
when 'Action','LogicalResourceId','PhysicalResourceId','Replacement','ResourceType'
|
113
|
+
@resource_change[name] = value if @in_resource_change
|
114
|
+
when 'Details'
|
115
|
+
@in_details = false
|
116
|
+
when 'CausingEntity','ChangeSource','Evaluation'
|
117
|
+
if @in_details
|
118
|
+
@resource_change_detail[name] = value
|
119
|
+
end
|
120
|
+
when 'Attribute','Name','RequiresRecreation'
|
121
|
+
if @in_target
|
122
|
+
@resource_target_definition[name] = value
|
123
|
+
end
|
124
|
+
when 'Target'
|
125
|
+
if @in_target
|
126
|
+
@resource_change_detail[name] = @resource_target_definition
|
127
|
+
@in_target = false
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|