awspec 1.18.6 → 1.19.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/awspec.gemspec +1 -0
- data/doc/resource_types.md +11 -3
- data/lib/awspec/helper/finder/apigateway.rb +8 -0
- data/lib/awspec/stub/apigateway.rb +39 -0
- data/lib/awspec/type/apigateway.rb +50 -0
- data/lib/awspec/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 104554ac52e531f7d2ddbca1c80dad6f767bdbffad5fe37d389c8a067cfb51d8
|
4
|
+
data.tar.gz: d07bc9d59cad74e8e965c93a5e8921a1705c29ae2560e1a560c441056e7e37a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 84b19f725a887d11227d951cffbb82c6f22f02154154f2c722bcbfe24cfaeac9a13a7317b8daf0a1160417d28f7723945d9a6d3ee41bff506ebdb73ab87e89b2
|
7
|
+
data.tar.gz: dde35d185574f58977c4327e619b533a342db008d6af9e499b9344e11dc4314a6bea6c2798ac721be38c58c1d5685383257a71d5275f35d1f2848dc5d9e56154
|
data/awspec.gemspec
CHANGED
@@ -29,6 +29,7 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.add_runtime_dependency 'rspec-its'
|
30
30
|
spec.add_runtime_dependency 'term-ansicolor'
|
31
31
|
spec.add_runtime_dependency 'thor'
|
32
|
+
spec.add_runtime_dependency 'addressable'
|
32
33
|
spec.add_development_dependency 'bundler', '>= 1.9', '< 3.0'
|
33
34
|
spec.add_development_dependency 'octorelease'
|
34
35
|
spec.add_development_dependency 'pry'
|
data/doc/resource_types.md
CHANGED
@@ -284,6 +284,14 @@ describe apigateway('my-apigateway') do
|
|
284
284
|
end
|
285
285
|
```
|
286
286
|
|
287
|
+
### have_integration_method
|
288
|
+
|
289
|
+
### have_integration_path
|
290
|
+
|
291
|
+
### have_method
|
292
|
+
|
293
|
+
### have_path
|
294
|
+
|
287
295
|
### its(:id), its(:name), its(:description), its(:created_date), its(:version), its(:warnings), its(:binary_media_types), its(:minimum_compression_size), its(:api_key_source), its(:policy), its(:tags)
|
288
296
|
## <a name="autoscaling_group">autoscaling_group</a>
|
289
297
|
|
@@ -1612,7 +1620,7 @@ describe emr('my-emr') do
|
|
1612
1620
|
end
|
1613
1621
|
```
|
1614
1622
|
|
1615
|
-
### its(:id), its(:name), its(:instance_collection_type), its(:log_uri), its(:requested_ami_version), its(:running_ami_version), its(:release_label), its(:auto_terminate), its(:termination_protected), its(:visible_to_all_users), its(:service_role), its(:normalized_instance_hours), its(:master_public_dns_name), its(:configurations), its(:security_configuration), its(:auto_scaling_role), its(:scale_down_behavior), its(:custom_ami_id), its(:ebs_root_volume_size), its(:repo_upgrade_on_boot), its(:cluster_arn), its(:
|
1623
|
+
### its(:id), its(:name), its(:instance_collection_type), its(:log_uri), its(:requested_ami_version), its(:running_ami_version), its(:release_label), its(:auto_terminate), its(:termination_protected), its(:visible_to_all_users), its(:service_role), its(:normalized_instance_hours), its(:master_public_dns_name), its(:configurations), its(:security_configuration), its(:auto_scaling_role), its(:scale_down_behavior), its(:custom_ami_id), its(:ebs_root_volume_size), its(:repo_upgrade_on_boot), its(:cluster_arn), its(:outpost_arn), its(:step_concurrency_level)
|
1616
1624
|
## <a name="firehose">firehose</a>
|
1617
1625
|
|
1618
1626
|
Firehose resource type.
|
@@ -3381,7 +3389,7 @@ end
|
|
3381
3389
|
```
|
3382
3390
|
|
3383
3391
|
|
3384
|
-
### its(:name), its(:type), its(:key_id), its(:last_modified_date), its(:last_modified_user), its(:description), its(:allowed_pattern), its(:version), its(:tier), its(:policies)
|
3392
|
+
### its(:name), its(:type), its(:key_id), its(:last_modified_date), its(:last_modified_user), its(:description), its(:allowed_pattern), its(:version), its(:tier), its(:policies), its(:data_type)
|
3385
3393
|
### :unlock: Advanced use
|
3386
3394
|
|
3387
3395
|
```ruby
|
@@ -3425,7 +3433,7 @@ end
|
|
3425
3433
|
```
|
3426
3434
|
|
3427
3435
|
|
3428
|
-
### its(:availability_zone), its(:availability_zone_id), its(:available_ip_address_count), its(:cidr_block), its(:default_for_az), its(:map_public_ip_on_launch), its(:state), its(:subnet_id), its(:vpc_id), its(:owner_id), its(:assign_ipv_6_address_on_creation), its(:ipv_6_cidr_block_association_set), its(:subnet_arn), its(:outpost_arn)
|
3436
|
+
### its(:availability_zone), its(:availability_zone_id), its(:available_ip_address_count), its(:cidr_block), its(:default_for_az), its(:map_public_ip_on_launch), its(:map_customer_owned_ip_on_launch), its(:customer_owned_ipv_4_pool), its(:state), its(:subnet_id), its(:vpc_id), its(:owner_id), its(:assign_ipv_6_address_on_creation), its(:ipv_6_cidr_block_association_set), its(:subnet_arn), its(:outpost_arn)
|
3429
3437
|
### :unlock: Advanced use
|
3430
3438
|
|
3431
3439
|
`subnet` can use `Aws::EC2::Subnet` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Subnet.html).
|
@@ -22,6 +22,14 @@ module Awspec::Helper
|
|
22
22
|
end
|
23
23
|
nil
|
24
24
|
end
|
25
|
+
|
26
|
+
def find_api_resources_by_id(api_id)
|
27
|
+
all_resources = []
|
28
|
+
apigateway_client.get_resources(rest_api_id: api_id, limit: 500, embed: ['methods']).each do |response|
|
29
|
+
all_resources += response.items
|
30
|
+
end
|
31
|
+
all_resources != [] ? all_resources : nil
|
32
|
+
end
|
25
33
|
end
|
26
34
|
end
|
27
35
|
end
|
@@ -70,6 +70,45 @@ Aws.config[:apigateway] = {
|
|
70
70
|
}
|
71
71
|
}
|
72
72
|
]
|
73
|
+
},
|
74
|
+
get_resources: {
|
75
|
+
position: '1',
|
76
|
+
items: [
|
77
|
+
{
|
78
|
+
path: '/proxy',
|
79
|
+
resource_methods: {
|
80
|
+
'GET' => {
|
81
|
+
http_method: 'GET',
|
82
|
+
method_integration: { http_method: 'POST', uri: 'http://127.0.0.1:8080/hockey' }
|
83
|
+
}
|
84
|
+
}
|
85
|
+
},
|
86
|
+
{
|
87
|
+
path: '/zambonis',
|
88
|
+
resource_methods: {
|
89
|
+
'POST' => {
|
90
|
+
http_method: 'POST',
|
91
|
+
method_integration: { http_method: 'POST',
|
92
|
+
uri: 'http://127.0.0.1:8080/zambonis/{arena}?arena=Saddledome' }
|
93
|
+
}
|
94
|
+
}
|
95
|
+
},
|
96
|
+
{
|
97
|
+
path: '/zambonis/123',
|
98
|
+
resource_methods: {
|
99
|
+
'POST' => {
|
100
|
+
http_method: 'POST',
|
101
|
+
method_integration: { http_method: 'AWS',
|
102
|
+
uri: 'arn:aws:apigateway:us-east-1:cognito-idp:action/ListUsers' }
|
103
|
+
},
|
104
|
+
'GET' => {
|
105
|
+
http_method: 'GET',
|
106
|
+
method_integration: { http_method: 'AWS',
|
107
|
+
uri: 'arn:aws:apigateway:us-east-1:cognito-idp:action/SignUp?username=test' }
|
108
|
+
}
|
109
|
+
}
|
110
|
+
}
|
111
|
+
]
|
73
112
|
}
|
74
113
|
}
|
75
114
|
}
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'addressable/uri'
|
2
|
+
|
1
3
|
module Awspec::Type
|
2
4
|
class Apigateway < ResourceBase
|
3
5
|
aws_resource Aws::APIGateway::Client
|
@@ -11,5 +13,53 @@ module Awspec::Type
|
|
11
13
|
def id
|
12
14
|
@id ||= resource_via_client.id if resource_via_client
|
13
15
|
end
|
16
|
+
|
17
|
+
def api_resources
|
18
|
+
@api_resources.nil? ? @api_resources = find_api_resources_by_id(@id) : @api_resources
|
19
|
+
end
|
20
|
+
|
21
|
+
def has_path?(path)
|
22
|
+
check_existence
|
23
|
+
self.api_resources.each do |resource|
|
24
|
+
return resource if resource.path == path
|
25
|
+
end
|
26
|
+
nil
|
27
|
+
end
|
28
|
+
|
29
|
+
def has_integration_path?(path)
|
30
|
+
check_existence
|
31
|
+
self.api_resources.each do |resource|
|
32
|
+
next if resource.resource_methods.nil?
|
33
|
+
resource.resource_methods.each do |_, method|
|
34
|
+
if method.method_integration.http_method == 'AWS'
|
35
|
+
aws_path = method.method_integration.uri.match(%r{(\/[^\?]+)\??.*$}).captures[0] # Matches for ARN type path
|
36
|
+
return resource if aws_path == path
|
37
|
+
end
|
38
|
+
uri = Addressable::URI.parse(method.method_integration.uri)
|
39
|
+
return resource if uri.path == path
|
40
|
+
end
|
41
|
+
end
|
42
|
+
nil
|
43
|
+
end
|
44
|
+
|
45
|
+
def has_method?(path, http_method)
|
46
|
+
check_existence
|
47
|
+
resource_to_check = has_path?(path)
|
48
|
+
return nil if resource_to_check.nil?
|
49
|
+
resource_to_check.resource_methods.each do |_, method|
|
50
|
+
return resource_to_check if method.http_method == http_method
|
51
|
+
end
|
52
|
+
nil
|
53
|
+
end
|
54
|
+
|
55
|
+
def has_integration_method?(integration_path, http_method)
|
56
|
+
check_existence
|
57
|
+
integration_resource_to_check = has_integration_path?(integration_path)
|
58
|
+
return nil if integration_resource_to_check.nil?
|
59
|
+
integration_resource_to_check.resource_methods.each do |_, method|
|
60
|
+
return integration_resource_to_check if method.method_integration.http_method == http_method
|
61
|
+
end
|
62
|
+
nil
|
63
|
+
end
|
14
64
|
end
|
15
65
|
end
|
data/lib/awspec/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.19.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- k1LoW
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -122,6 +122,20 @@ dependencies:
|
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: addressable
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: bundler
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|