awspec 0.69.1 → 0.70.0
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +13 -1
- data/.travis.yml +1 -0
- data/Rakefile +10 -1
- data/awspec.gemspec +3 -3
- data/doc/_resource_types/cloudwatch_logs.md +40 -0
- data/doc/_resource_types/ec2_account_attributes.md +8 -0
- data/doc/_resource_types/lambda_account_settings.md +10 -0
- data/doc/_resource_types/rds_account_attributes.md +8 -0
- data/doc/_resource_types/ses_send_quota.md +9 -0
- data/doc/contributing.md +10 -0
- data/doc/resource_types.md +262 -27
- data/lib/awspec/error.rb +2 -0
- data/lib/awspec/ext.rb +1 -0
- data/lib/awspec/ext/hash.rb +10 -0
- data/lib/awspec/generator.rb +6 -0
- data/lib/awspec/generator/doc/type.rb +35 -1
- data/lib/awspec/generator/doc/type/account.rb +71 -0
- data/lib/awspec/generator/doc/type/account_attribute.rb +69 -0
- data/lib/awspec/generator/doc/type/account_attribute_base.rb +32 -0
- data/lib/awspec/generator/doc/type/base.rb +10 -3
- data/lib/awspec/generator/doc/type/cloudwatch_logs.rb +17 -0
- data/lib/awspec/generator/doc/type/ec2_account_attributes.rb +17 -0
- data/lib/awspec/generator/doc/type/lambda_account_settings.rb +17 -0
- data/lib/awspec/generator/doc/type/rds_account_attributes.rb +17 -0
- data/lib/awspec/generator/doc/type/ses_send_quota.rb +17 -0
- data/lib/awspec/generator/template.rb +38 -1
- data/lib/awspec/helper/finder.rb +8 -1
- data/lib/awspec/helper/finder/account_attributes.rb +61 -0
- data/lib/awspec/helper/finder/cloudwatch_logs.rb +35 -0
- data/lib/awspec/helper/type.rb +31 -0
- data/lib/awspec/matcher.rb +3 -0
- data/lib/awspec/matcher/have_subscription_filter.rb +9 -0
- data/lib/awspec/shared_context.rb +8 -0
- data/lib/awspec/stub/account.rb +146 -0
- data/lib/awspec/stub/cloudwatch_logs.rb +34 -0
- data/lib/awspec/stub/ecs.rb +9 -9
- data/lib/awspec/stub/ecs_cluster.rb +9 -9
- data/lib/awspec/stub/ecs_container_instance.rb +9 -9
- data/lib/awspec/toolbox.rb +6 -1
- data/lib/awspec/type/account.rb +35 -0
- data/lib/awspec/type/account_attribute.rb +28 -0
- data/lib/awspec/type/account_attribute_base.rb +4 -0
- data/lib/awspec/type/acm.rb +1 -1
- data/lib/awspec/type/alb.rb +1 -1
- data/lib/awspec/type/ami.rb +1 -1
- data/lib/awspec/type/autoscaling_group.rb +3 -2
- data/lib/awspec/type/base.rb +6 -25
- data/lib/awspec/type/cloudfront_distribution.rb +1 -1
- data/lib/awspec/type/cloudtrail.rb +1 -1
- data/lib/awspec/type/cloudwatch_alarm.rb +1 -1
- data/lib/awspec/type/cloudwatch_event.rb +1 -1
- data/lib/awspec/type/cloudwatch_logs.rb +27 -0
- data/lib/awspec/type/customer_gateway.rb +1 -1
- data/lib/awspec/type/directconnect_virtual_interface.rb +1 -1
- data/lib/awspec/type/ebs.rb +1 -1
- data/lib/awspec/type/ec2.rb +1 -1
- data/lib/awspec/type/ec2_account_attributes.rb +7 -0
- data/lib/awspec/type/ecr_repository.rb +1 -1
- data/lib/awspec/type/ecs_cluster.rb +1 -1
- data/lib/awspec/type/ecs_container_instance.rb +1 -1
- data/lib/awspec/type/ecs_service.rb +1 -1
- data/lib/awspec/type/ecs_task_definition.rb +1 -1
- data/lib/awspec/type/efs.rb +1 -1
- data/lib/awspec/type/elasticache.rb +1 -1
- data/lib/awspec/type/elasticache_cache_parameter_group.rb +1 -1
- data/lib/awspec/type/elasticsearch.rb +1 -1
- data/lib/awspec/type/elastictranscoder_pipeline.rb +1 -1
- data/lib/awspec/type/elb.rb +3 -2
- data/lib/awspec/type/iam_group.rb +1 -1
- data/lib/awspec/type/iam_policy.rb +1 -1
- data/lib/awspec/type/iam_role.rb +1 -1
- data/lib/awspec/type/iam_user.rb +1 -1
- data/lib/awspec/type/internet_gateway.rb +1 -1
- data/lib/awspec/type/kms.rb +1 -1
- data/lib/awspec/type/lambda.rb +1 -1
- data/lib/awspec/type/lambda_account_settings.rb +7 -0
- data/lib/awspec/type/launch_configuration.rb +1 -1
- data/lib/awspec/type/nat_gateway.rb +1 -1
- data/lib/awspec/type/network_acl.rb +1 -1
- data/lib/awspec/type/network_interface.rb +1 -1
- data/lib/awspec/type/rds.rb +1 -1
- data/lib/awspec/type/rds_account_attributes.rb +7 -0
- data/lib/awspec/type/rds_db_cluster_parameter_group.rb +1 -1
- data/lib/awspec/type/rds_db_parameter_group.rb +1 -1
- data/lib/awspec/type/resource_base.rb +24 -0
- data/lib/awspec/type/route53_hosted_zone.rb +1 -1
- data/lib/awspec/type/route_table.rb +1 -1
- data/lib/awspec/type/s3_bucket.rb +1 -1
- data/lib/awspec/type/security_group.rb +1 -1
- data/lib/awspec/type/ses_identity.rb +1 -1
- data/lib/awspec/type/ses_send_quota.rb +7 -0
- data/lib/awspec/type/subnet.rb +1 -1
- data/lib/awspec/type/vpc.rb +1 -1
- data/lib/awspec/type/vpn_connection.rb +1 -1
- data/lib/awspec/type/vpn_gateway.rb +1 -1
- data/lib/awspec/type/waf_web_acl.rb +1 -1
- data/lib/awspec/version.rb +1 -1
- metadata +36 -8
data/lib/awspec/error.rb
CHANGED
data/lib/awspec/ext.rb
CHANGED
data/lib/awspec/generator.rb
CHANGED
|
@@ -26,9 +26,15 @@ require 'awspec/generator/spec/iam_role'
|
|
|
26
26
|
# Doc
|
|
27
27
|
require 'awspec/generator/doc/type'
|
|
28
28
|
require 'awspec/generator/doc/type/base'
|
|
29
|
+
require 'awspec/generator/doc/type/account_attribute_base'
|
|
29
30
|
Awspec::Helper::Type::TYPES.each do |type|
|
|
30
31
|
require 'awspec/generator/doc/type/' + type
|
|
31
32
|
end
|
|
33
|
+
Awspec::Helper::Type::ACCOUNT_ATTRIBUTES.each do |type|
|
|
34
|
+
require 'awspec/generator/doc/type/' + type
|
|
35
|
+
end
|
|
36
|
+
require 'awspec/generator/doc/type/account'
|
|
37
|
+
require 'awspec/generator/doc/type/account_attribute'
|
|
32
38
|
|
|
33
39
|
# Template
|
|
34
40
|
require 'awspec/generator/template'
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
module Awspec::Generator
|
|
2
2
|
module Doc
|
|
3
3
|
module Type
|
|
4
|
+
# rubocop:disable Metrics/MethodLength
|
|
4
5
|
def self.generate_doc
|
|
5
6
|
Aws.config[:stub_responses] = true
|
|
6
7
|
types = Awspec::Helper::Type::TYPES
|
|
7
8
|
types.delete('base')
|
|
8
|
-
links = types.map do |type|
|
|
9
|
+
links = types.sort.map do |type|
|
|
9
10
|
'[' + type + '](#' + type + ')'
|
|
10
11
|
end
|
|
12
|
+
links.push('[account](#account)') # add account
|
|
11
13
|
header = <<-'EOF'
|
|
12
14
|
# Resource Types
|
|
13
15
|
|
|
@@ -19,6 +21,38 @@ EOF
|
|
|
19
21
|
types.map do |type|
|
|
20
22
|
doc += eval "Awspec::Generator::Doc::Type::#{type.camelize}.new.generate_doc"
|
|
21
23
|
end
|
|
24
|
+
|
|
25
|
+
# account and attributes
|
|
26
|
+
attributes = Awspec::Helper::Type::ACCOUNT_ATTRIBUTES
|
|
27
|
+
|
|
28
|
+
doc += <<-'EOF'
|
|
29
|
+
# Account and Attributes
|
|
30
|
+
|
|
31
|
+
EOF
|
|
32
|
+
doc += Awspec::Generator::Doc::Type::Account.new.generate_doc
|
|
33
|
+
|
|
34
|
+
doc += <<-'EOF'
|
|
35
|
+
## :unlock: Another way: Test with account_attribute type
|
|
36
|
+
|
|
37
|
+
EOF
|
|
38
|
+
|
|
39
|
+
doc += Awspec::Generator::Doc::Type::AccountAttribute.new.generate_doc
|
|
40
|
+
|
|
41
|
+
doc += <<-'EOF'
|
|
42
|
+
## :unlock: Another way: Test with separated resource types
|
|
43
|
+
|
|
44
|
+
EOF
|
|
45
|
+
|
|
46
|
+
links = attributes.map do |type|
|
|
47
|
+
'[' + type + '](#' + type + ')'
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
doc += links.join("\n| ") + "\n"
|
|
51
|
+
|
|
52
|
+
attributes.map do |type|
|
|
53
|
+
doc += eval "Awspec::Generator::Doc::Type::#{type.camelize}.new.generate_doc"
|
|
54
|
+
end
|
|
55
|
+
|
|
22
56
|
doc.sub(/\n*\z/, '')
|
|
23
57
|
end
|
|
24
58
|
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
module Awspec::Generator
|
|
2
|
+
module Doc
|
|
3
|
+
module Type
|
|
4
|
+
class Account < Base
|
|
5
|
+
def initialize
|
|
6
|
+
super
|
|
7
|
+
@type_name = 'Account'
|
|
8
|
+
@type = Awspec::Type::Account.new
|
|
9
|
+
@ret = @type.resource_via_client
|
|
10
|
+
@matchers = []
|
|
11
|
+
@ignore_matchers = []
|
|
12
|
+
@describes = []
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def generate_doc
|
|
16
|
+
@account_spec = ERB.new(account_spec_template, nil, '-').result(binding).gsub(/^\n/, '')
|
|
17
|
+
super
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def account_spec_template
|
|
21
|
+
template = <<-'EOF'
|
|
22
|
+
describe account do
|
|
23
|
+
<% @ret.members.each do |key| %>
|
|
24
|
+
<%- if @ret[key].is_a?(String) -%>
|
|
25
|
+
its(:<%= key %>) { should eq '<%= @ret[key] %>' }
|
|
26
|
+
<%- else -%>
|
|
27
|
+
<% @ret[key].members.each do |attribute| %>
|
|
28
|
+
<%- if @ret[key][attribute].is_a?(Array) -%>
|
|
29
|
+
its('<%= key %>.<%= attribute %>') { should eq <%= @ret[key][attribute] %> }
|
|
30
|
+
<%- elsif @ret[key][attribute].is_a?(String) -%>
|
|
31
|
+
its('<%= key %>.<%= attribute %>') { should eq '<%= @ret[key][attribute] %>' }
|
|
32
|
+
<%- elsif @ret[key][attribute].is_a?(Struct) -%>
|
|
33
|
+
<% @ret[key][attribute].members.each do |k| %>
|
|
34
|
+
its('<%= key %>.<%= attribute %>.<%= k %>') { should eq <%= @ret[key][attribute][k] %> }
|
|
35
|
+
<% end %>
|
|
36
|
+
<%- else -%>
|
|
37
|
+
its('<%= key %>.<%= attribute %>') { should eq <%= @ret[key][attribute] %> }
|
|
38
|
+
<%- end -%>
|
|
39
|
+
<% end %>
|
|
40
|
+
<% end %>
|
|
41
|
+
<%- end -%>
|
|
42
|
+
end
|
|
43
|
+
EOF
|
|
44
|
+
template
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def doc_template
|
|
48
|
+
template = <<-'EOF'
|
|
49
|
+
## <a name="<%= @type_name.gsub(/ /, '_').underscore %>"><%= @type_name.gsub(/ /, '_').underscore %></a>
|
|
50
|
+
|
|
51
|
+
<%= @type_name %> resource type.
|
|
52
|
+
<%- if @descriptions.include?('first') -%><%= @descriptions['first'] %><%- end -%>
|
|
53
|
+
|
|
54
|
+
```ruby
|
|
55
|
+
<%= @account_spec %>```
|
|
56
|
+
|
|
57
|
+
<% @matchers.each do |matcher| %>
|
|
58
|
+
### <%= matcher %>
|
|
59
|
+
<%- if @descriptions.include?(matcher) -%><%= @descriptions[matcher] %><%- end -%>
|
|
60
|
+
<% end %>
|
|
61
|
+
<%- if @descriptions.include?('advanced') -%>
|
|
62
|
+
|
|
63
|
+
### :unlock: Advanced use
|
|
64
|
+
<%= @descriptions['advanced'] %><%- end -%>
|
|
65
|
+
EOF
|
|
66
|
+
template
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
module Awspec::Generator
|
|
2
|
+
module Doc
|
|
3
|
+
module Type
|
|
4
|
+
class AccountAttribute < Base
|
|
5
|
+
def initialize
|
|
6
|
+
Awspec::Stub.load 'account'
|
|
7
|
+
@type_name = 'Account Attribute'
|
|
8
|
+
@type = Awspec::Type::Account.new
|
|
9
|
+
@ret = Awspec::Type::Account.new.resource_via_client
|
|
10
|
+
@matchers = []
|
|
11
|
+
@ignore_matchers = []
|
|
12
|
+
@describes = []
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def generate_doc
|
|
16
|
+
@account_attribute_spec = ERB.new(account_attribute_spec_template, nil, '-').result(binding).gsub(/^\n/, '')
|
|
17
|
+
super
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def account_attribute_spec_template
|
|
21
|
+
template = <<-'EOF'
|
|
22
|
+
<% @ret.members.each do |key| %>
|
|
23
|
+
<%- next if @ret[key].is_a?(String) -%>
|
|
24
|
+
describe account_attribute('<%= key %>') do
|
|
25
|
+
<% @ret[key].members.each do |attribute| %>
|
|
26
|
+
<%- if @ret[key][attribute].is_a?(Array) -%>
|
|
27
|
+
its('<%= attribute %>') { should eq <%= @ret[key][attribute] %> }
|
|
28
|
+
<%- elsif @ret[key][attribute].is_a?(String) -%>
|
|
29
|
+
its('<%= attribute %>') { should eq '<%= @ret[key][attribute] %>' }
|
|
30
|
+
<%- elsif @ret[key][attribute].is_a?(Struct) -%>
|
|
31
|
+
<% @ret[key][attribute].members.each do |k| %>
|
|
32
|
+
its('<%= attribute %>.<%= k %>') { should eq <%= @ret[key][attribute][k] %> }
|
|
33
|
+
<% end %>
|
|
34
|
+
<%- else -%>
|
|
35
|
+
its('<%= attribute %>') { should eq <%= @ret[key][attribute] %> }
|
|
36
|
+
<%- end -%>
|
|
37
|
+
<% end %>
|
|
38
|
+
end
|
|
39
|
+
<%= ' ' %>
|
|
40
|
+
<% end %>
|
|
41
|
+
EOF
|
|
42
|
+
template
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def doc_template
|
|
46
|
+
template = <<-'EOF'
|
|
47
|
+
## <a name="<%= @type_name.gsub(/ /, '_').underscore %>"><%= @type_name.gsub(/ /, '_').underscore %></a>
|
|
48
|
+
|
|
49
|
+
<%= @type_name %> resource type.
|
|
50
|
+
<%- if @descriptions.include?('first') -%><%= @descriptions['first'] %><%- end -%>
|
|
51
|
+
|
|
52
|
+
```ruby
|
|
53
|
+
<%= @account_attribute_spec %>```
|
|
54
|
+
|
|
55
|
+
<% @matchers.each do |matcher| %>
|
|
56
|
+
### <%= matcher %>
|
|
57
|
+
<%- if @descriptions.include?(matcher) -%><%= @descriptions[matcher] %><%- end -%>
|
|
58
|
+
<% end %>
|
|
59
|
+
<%- if @descriptions.include?('advanced') -%>
|
|
60
|
+
|
|
61
|
+
### :unlock: Advanced use
|
|
62
|
+
<%= @descriptions['advanced'] %><%- end -%>
|
|
63
|
+
EOF
|
|
64
|
+
template
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
module Awspec::Generator
|
|
2
|
+
module Doc
|
|
3
|
+
module Type
|
|
4
|
+
class AccountAttributeBase < Base
|
|
5
|
+
def initialize
|
|
6
|
+
Awspec::Stub.load 'account'
|
|
7
|
+
@type_name = type_name
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def doc_template
|
|
11
|
+
template = <<-'EOF'
|
|
12
|
+
## <a name="<%= @type_name.gsub(/ /, '_').underscore %>"><%= @type_name.gsub(/ /, '_').underscore %></a>
|
|
13
|
+
|
|
14
|
+
<%= @type_name %> account attributes.
|
|
15
|
+
<%- if @descriptions.include?('first') -%><%= @descriptions['first'] %><%- end -%>
|
|
16
|
+
<% @matchers.each do |matcher| %>
|
|
17
|
+
### <%= matcher %>
|
|
18
|
+
<%- if @descriptions.include?(matcher) -%><%= @descriptions[matcher] %><%- end -%>
|
|
19
|
+
<% end %>
|
|
20
|
+
<%- unless its.empty? -%>### <%= its.join(', ') %><%- end -%>
|
|
21
|
+
<%- if @descriptions.include?('advanced') -%>
|
|
22
|
+
|
|
23
|
+
### :unlock: Advanced use
|
|
24
|
+
<%= @descriptions['advanced'] %><%- end -%>
|
|
25
|
+
|
|
26
|
+
EOF
|
|
27
|
+
template
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -11,6 +11,7 @@ module Awspec::Generator
|
|
|
11
11
|
self.class.to_s.split('::').last
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
# rubocop:disable Metrics/MethodLength
|
|
14
15
|
def generate_doc
|
|
15
16
|
@matchers += collect_matchers - @ignore_matchers
|
|
16
17
|
@matchers.sort! do |a, b|
|
|
@@ -18,9 +19,15 @@ module Awspec::Generator
|
|
|
18
19
|
next ret if ret != 0
|
|
19
20
|
a.casecmp(b)
|
|
20
21
|
end
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
if @ret.respond_to?(:members)
|
|
23
|
+
@describes += @ret.members.select do |describe|
|
|
24
|
+
if @ret[describe].is_a?(Array)
|
|
25
|
+
next true unless @ret[describe].first.is_a?(Array) || @ret[describe].first.is_a?(Hash) || @ret[describe].first.is_a?(Struct) # rubocop:disable Metrics/LineLength
|
|
26
|
+
else
|
|
27
|
+
next true unless @ret[describe].is_a?(Hash) || @ret[describe].is_a?(Struct)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
24
31
|
its = @describes.map do |describe|
|
|
25
32
|
'its(:' + describe.to_s + ')'
|
|
26
33
|
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Awspec::Generator
|
|
2
|
+
module Doc
|
|
3
|
+
module Type
|
|
4
|
+
class CloudwatchLogs < Base
|
|
5
|
+
def initialize
|
|
6
|
+
super
|
|
7
|
+
@type_name = 'CloudwatchLogs'
|
|
8
|
+
@type = Awspec::Type::CloudwatchLogs.new('my-cloudwatch-logs-group')
|
|
9
|
+
@ret = @type.resource_via_client
|
|
10
|
+
@matchers = []
|
|
11
|
+
@ignore_matchers = []
|
|
12
|
+
@describes = []
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Awspec::Generator
|
|
2
|
+
module Doc
|
|
3
|
+
module Type
|
|
4
|
+
class Ec2AccountAttributes < AccountAttributeBase
|
|
5
|
+
def initialize
|
|
6
|
+
super
|
|
7
|
+
@type_name = 'Ec2AccountAttributes'
|
|
8
|
+
@type = Awspec::Type::Ec2AccountAttributes.new
|
|
9
|
+
@ret = @type.resource_via_client
|
|
10
|
+
@matchers = []
|
|
11
|
+
@ignore_matchers = []
|
|
12
|
+
@describes = []
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Awspec::Generator
|
|
2
|
+
module Doc
|
|
3
|
+
module Type
|
|
4
|
+
class LambdaAccountSettings < AccountAttributeBase
|
|
5
|
+
def initialize
|
|
6
|
+
super
|
|
7
|
+
@type_name = 'LambdaAccountSettings'
|
|
8
|
+
@type = Awspec::Type::LambdaAccountSettings.new
|
|
9
|
+
@ret = @type.resource_via_client
|
|
10
|
+
@matchers = []
|
|
11
|
+
@ignore_matchers = []
|
|
12
|
+
@describes = []
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Awspec::Generator
|
|
2
|
+
module Doc
|
|
3
|
+
module Type
|
|
4
|
+
class RdsAccountAttributes < AccountAttributeBase
|
|
5
|
+
def initialize
|
|
6
|
+
super
|
|
7
|
+
@type_name = 'RdsAccountAttributes'
|
|
8
|
+
@type = Awspec::Type::RdsAccountAttributes.new
|
|
9
|
+
@ret = @type.resource_via_client
|
|
10
|
+
@matchers = []
|
|
11
|
+
@ignore_matchers = []
|
|
12
|
+
@describes = []
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Awspec::Generator
|
|
2
|
+
module Doc
|
|
3
|
+
module Type
|
|
4
|
+
class SesSendQuota < AccountAttributeBase
|
|
5
|
+
def initialize
|
|
6
|
+
super
|
|
7
|
+
@type_name = 'SesSendQuota'
|
|
8
|
+
@type = Awspec::Type::SesSendQuota.new
|
|
9
|
+
@ret = @type.resource_via_client
|
|
10
|
+
@matchers = []
|
|
11
|
+
@ignore_matchers = []
|
|
12
|
+
@describes = []
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
module Awspec::Generator
|
|
2
|
+
# rubocop:disable Metrics/ClassLength
|
|
2
3
|
class Template
|
|
3
4
|
def self.generate(type)
|
|
4
5
|
@type = type
|
|
6
|
+
@account_attribute = false
|
|
5
7
|
@root_path = File.dirname(__FILE__) + '/../../../'
|
|
6
8
|
generate_stub
|
|
7
9
|
generate_type
|
|
@@ -11,11 +13,22 @@ module Awspec::Generator
|
|
|
11
13
|
put_message
|
|
12
14
|
end
|
|
13
15
|
|
|
16
|
+
def self.generate_account_attribute(type)
|
|
17
|
+
@type = type
|
|
18
|
+
@account_attribute = true
|
|
19
|
+
@root_path = File.dirname(__FILE__) + '/../../../'
|
|
20
|
+
generate_type
|
|
21
|
+
generate_account_attribute_generator_doc
|
|
22
|
+
generate_resource_type_doc
|
|
23
|
+
put_message
|
|
24
|
+
end
|
|
25
|
+
|
|
14
26
|
def self.generate_type
|
|
15
27
|
path = 'lib/awspec/type/' + @type.underscore + '.rb'
|
|
28
|
+
base = @account_attribute ? 'AccountAttributeBase' : 'ResourceBase'
|
|
16
29
|
content = <<-"EOF"
|
|
17
30
|
module Awspec::Type
|
|
18
|
-
class #{@type.camelize} <
|
|
31
|
+
class #{@type.camelize} < #{base}
|
|
19
32
|
def resource_via_client
|
|
20
33
|
@resource_via_client ||= # FIXME
|
|
21
34
|
end
|
|
@@ -76,6 +89,30 @@ EOF
|
|
|
76
89
|
self.file_check_and_puts(path, content)
|
|
77
90
|
end
|
|
78
91
|
|
|
92
|
+
def self.generate_account_attribute_generator_doc
|
|
93
|
+
path = 'lib/awspec/generator/doc/type/' + @type.underscore + '.rb'
|
|
94
|
+
content = <<-"EOF"
|
|
95
|
+
module Awspec::Generator
|
|
96
|
+
module Doc
|
|
97
|
+
module Type
|
|
98
|
+
class #{@type.camelize} < AccountAttributeBase
|
|
99
|
+
def initialize
|
|
100
|
+
super
|
|
101
|
+
@type_name = '#{@type.camelize}'
|
|
102
|
+
@type = Awspec::Type::#{@type.camelize}.new
|
|
103
|
+
@ret = @type.resource_via_client
|
|
104
|
+
@matchers = []
|
|
105
|
+
@ignore_matchers = []
|
|
106
|
+
@describes = []
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
EOF
|
|
113
|
+
self.file_check_and_puts(path, content)
|
|
114
|
+
end
|
|
115
|
+
|
|
79
116
|
def self.generate_resource_type_doc
|
|
80
117
|
path = 'doc/_resource_types/' + @type.underscore + '.md'
|
|
81
118
|
content = <<-"EOF"
|