convection 1.0.0.pre.beta.1 → 1.0.0.pre.beta.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.
- checksums.yaml +4 -4
- data/.gitignore +6 -0
- data/README.md +2 -0
- data/bin/convection +9 -4
- data/docs/getting-started.md +6 -2
- data/docs/index.md +2 -0
- data/lib/convection/model/template/resource/aws_certificate_manager_certificate.rb +34 -0
- data/lib/convection/model/template/resource/aws_elb.rb +1 -0
- data/lib/convection/model/template/resource/aws_elbv2_listener.rb +35 -0
- data/lib/convection/model/template/resource/aws_elbv2_listener_rule.rb +39 -0
- data/lib/convection/model/template/resource/aws_elbv2_load_balancer.rb +38 -0
- data/lib/convection/model/template/resource/aws_elbv2_target_group.rb +60 -0
- data/lib/convection/model/template/resource/aws_route53_recordset.rb +18 -4
- data/lib/convection/model/template/resource/aws_s3_bucket.rb +7 -0
- data/lib/convection/model/template/resource_property/aws_certificate_manager_certificate_domain_validation_option.rb +16 -0
- data/lib/convection/model/template/resource_property/aws_cloudfront_defaultcachebehavior.rb +1 -0
- data/lib/convection/model/template/resource_property/aws_elbv2_listener_certificates.rb +15 -0
- data/lib/convection/model/template/resource_property/aws_elbv2_listener_default_action.rb +17 -0
- data/lib/convection/model/template/resource_property/aws_elbv2_listener_rule_action.rb +17 -0
- data/lib/convection/model/template/resource_property/aws_elbv2_listener_rule_condition.rb +17 -0
- data/lib/convection/model/template/resource_property/aws_elbv2_load_balancer_attribute.rb +17 -0
- data/lib/convection/model/template/resource_property/aws_elbv2_target_group_attribute.rb +17 -0
- data/lib/convection/model/template/resource_property/aws_elbv2_target_group_matcher.rb +15 -0
- data/lib/convection/model/template/resource_property/aws_elbv2_target_group_target_description.rb +16 -0
- data/lib/convection/model/template/resource_property/aws_route53_alias_target.rb +17 -0
- data/lib/convection/model/template/resource_property/aws_route53_geolocation.rb +17 -0
- data/lib/convection/model/template/resource_property/aws_s3_website_configuration.rb +30 -0
- data/lib/convection/model/template/resource_property/aws_s3_website_configuration_redirect_all_requests_to.rb +16 -0
- data/lib/convection/model/template/resource_property/aws_s3_website_configuration_routing_rule.rb +28 -0
- data/lib/convection/model/template/resource_property/aws_s3_website_configuration_routing_rule_redirect_rule.rb +19 -0
- data/lib/convection/model/template/resource_property/aws_s3_website_configuration_routing_rule_routing_rule_condition.rb +16 -0
- data/yard_extensions/type_handler.rb +5 -0
- metadata +23 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2907e41b969e077bc2ac2cee703ff8bef61d730b
|
4
|
+
data.tar.gz: 2909f0be3908981a8828c72ddee7b840471bc9f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc91f97a7303f5c3bb7bca558568b933a8a2f514a6efe5d3a29a6e20d59eed3b27d14139ee574587aae3cc31ae95f30c068d31cd67d263323992a061493e49f2
|
7
|
+
data.tar.gz: fd7b48f9acc7b0be07f8fc3f2205d3dd42709d0bc40be0d310b4258174a69fe32bcdac404a61a92e6c985e18826c16d3c905580dd8c792f56c9755f1a07dd315
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -45,5 +45,7 @@ Or install it yourself as:
|
|
45
45
|
## Documentation
|
46
46
|
We highly recommend consulting the [getting started guide](./docs/getting-started.md) for a in depth walk through on how to to set up your project and create and deploy a stack. Example stacks and resources are available in the [convection/example](https://github.com/rapid7/convection/tree/master/example) folder
|
47
47
|
|
48
|
+
Additionally you can generate the Ruby API documentation by executing `bundle exec rake yard`.
|
49
|
+
|
48
50
|
## License
|
49
51
|
Convection is distributed under the MIT license - please refer to the [LICENSE](LICENSE.md) for more information.
|
data/bin/convection
CHANGED
@@ -73,19 +73,19 @@ module Convection
|
|
73
73
|
end
|
74
74
|
|
75
75
|
desc 'describe-tasks [--stacks STACKS]', 'Describe tasks for a given stack'
|
76
|
+
option :cloudfile, :type => :string, :default => 'Cloudfile'
|
76
77
|
option :stacks, :type => :array, :desc => 'A ordered space separated list of stacks to diff', default: []
|
77
78
|
def describe_tasks
|
78
|
-
|
79
|
-
@cloud.configure(File.absolute_path(options['cloudfile'], @cwd))
|
79
|
+
init_cloud
|
80
80
|
|
81
81
|
describe_stack_tasks(options[:stacks])
|
82
82
|
end
|
83
83
|
|
84
84
|
desc 'run-tasks [--stack STACK]', 'Run tasks for a given stack'
|
85
|
+
option :cloudfile, :type => :string, :default => 'Cloudfile'
|
85
86
|
option :stack, :desc => 'The stack to run tasks for', :required => true
|
86
87
|
def run_tasks
|
87
|
-
|
88
|
-
@cloud.configure(File.absolute_path(options['cloudfile'], @cwd))
|
88
|
+
init_cloud
|
89
89
|
|
90
90
|
run_stack_tasks(options[:stack])
|
91
91
|
end
|
@@ -219,6 +219,11 @@ module Convection
|
|
219
219
|
end
|
220
220
|
|
221
221
|
def init_cloud
|
222
|
+
if options['cloudfile'].nil?
|
223
|
+
warn 'ERROR: The you must specify the --cloudfile option.'
|
224
|
+
exit 1
|
225
|
+
end
|
226
|
+
|
222
227
|
@cloud = Control::Cloud.new
|
223
228
|
@cloud.configure(File.absolute_path(options['cloudfile'], @cwd))
|
224
229
|
end
|
data/docs/getting-started.md
CHANGED
@@ -591,8 +591,11 @@ update_complete convection-demo-vpc: (AWS::CloudFormation::Stack)
|
|
591
591
|
Now that we've got our security group, we need to set up an EC2 instance that
|
592
592
|
will function as a NAT router. We'll be using one of [Amazon's pre-built NAT
|
593
593
|
images][nat-instance] since we don't need anything custom. Open up the Amazon
|
594
|
-
web console and search for AMIs with the string "amzn-ami-vpc-nat-
|
595
|
-
name. The most recent one, from
|
594
|
+
web console and search for AMIs with the string "amzn-ami-vpc-nat-hvm" in their
|
595
|
+
name. The most recent one, from September 2016, has ID ami-d2ee95c5.
|
596
|
+
Note that the default instance type is m1.small, which doesn't work with
|
597
|
+
hvm AMIs, so you'll need to choose a different instance type, such as
|
598
|
+
t2.small.
|
596
599
|
|
597
600
|
The [AWS::EC2::Instance][cf-ec2] resource handles creating our
|
598
601
|
router instance from the given AMI. Since our router provides internet access,
|
@@ -648,6 +651,7 @@ module Templates
|
|
648
651
|
ec2_instance 'NATInstance' do
|
649
652
|
tag 'Name', "#{stack.cloud}-#{stack.name}-nat"
|
650
653
|
image_id 'ami-c02b04a8'
|
654
|
+
instance_type 't2.small'
|
651
655
|
subnet fn_ref('PublicSubnet')
|
652
656
|
security_group fn_ref('NATSecurityGroup')
|
653
657
|
src_dst_checks false
|
data/docs/index.md
CHANGED
@@ -45,5 +45,7 @@ Or install it yourself as:
|
|
45
45
|
## Documentation
|
46
46
|
We highly recommend consulting the [getting started guide](./docs/getting-started.md) for a in depth walk through on how to to set up your project and create and deploy a stack. Example stacks and resources are available in the [convection/example](https://github.com/rapid7/convection/tree/master/example) folder
|
47
47
|
|
48
|
+
Additionally you can generate the Ruby API documentation by executing `bundle exec rake yard`.
|
49
|
+
|
48
50
|
## License
|
49
51
|
Convection is distributed under the MIT license - please refer to the [LICENSE](LICENSE.md) for more information.
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require_relative '../resource'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class Resource
|
7
|
+
##
|
8
|
+
# AWS::CertificateManager::Certificate
|
9
|
+
##
|
10
|
+
class CertificateManagerCertificate < Resource
|
11
|
+
include Model::Mixin::Taggable
|
12
|
+
|
13
|
+
type 'AWS::CertificateManager::Certificate', :certificate_manager_certificate
|
14
|
+
property :domain_name, 'DomainName'
|
15
|
+
property :domain_validation_options, 'DomainValidationOptions', :type => :list
|
16
|
+
property :subject_alternative_names, 'SubjectAlternativeNames', :type => :list
|
17
|
+
|
18
|
+
# Append a domain_validation_option to domain_validation_options
|
19
|
+
def domain_validation_option(&block)
|
20
|
+
option = ResourceProperty::CertificateManagerCertificateDomainValidationOption.new(self)
|
21
|
+
option.instance_exec(&block) if block
|
22
|
+
domain_validation_options << option
|
23
|
+
end
|
24
|
+
|
25
|
+
def render(*args)
|
26
|
+
super.tap do |resource|
|
27
|
+
render_tags(resource)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -25,6 +25,7 @@ module Convection
|
|
25
25
|
property :policy, 'Policies', :type => :list
|
26
26
|
property :scheme, 'Scheme'
|
27
27
|
property :security_group, 'SecurityGroups', :type => :list
|
28
|
+
alias security_groups security_group
|
28
29
|
property :subnet, 'Subnets', :type => :list
|
29
30
|
|
30
31
|
def render(*args)
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require_relative '../resource'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class Resource
|
7
|
+
##
|
8
|
+
# AWS::ElasticLoadBalancingV2::Listener
|
9
|
+
##
|
10
|
+
class ELBV2Listener < Resource
|
11
|
+
type 'AWS::ElasticLoadBalancingV2::Listener', :elbv2_listener
|
12
|
+
property :certificates, 'Certificates', :type => :list
|
13
|
+
property :default_actions, 'DefaultActions', :type => :list
|
14
|
+
property :load_balancer_arn, 'LoadBalancerArn'
|
15
|
+
property :port, 'Port'
|
16
|
+
property :protocol, 'Protocol'
|
17
|
+
property :ssl_policy, 'SslPolicy'
|
18
|
+
|
19
|
+
def certificate(&block)
|
20
|
+
cert = ResourceProperty::ELBV2ListenerCertificates.new(self)
|
21
|
+
cert.instance_exec(&block) if block
|
22
|
+
certificates << cert
|
23
|
+
end
|
24
|
+
|
25
|
+
# Append an action to default_actions
|
26
|
+
def default_action(&block)
|
27
|
+
action = ResourceProperty::ELBV2ListenerDefaultAction.new(self)
|
28
|
+
action.instance_exec(&block) if block
|
29
|
+
default_actions << action
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require_relative '../resource'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class Resource
|
7
|
+
##
|
8
|
+
# AWS::ElasticLoadBalancingV2::ListenerRule
|
9
|
+
##
|
10
|
+
class ELBV2ListenerRule < Resource
|
11
|
+
type 'AWS::ElasticLoadBalancingV2::ListenerRule', :elbv2_listener_rule
|
12
|
+
property :actions, 'Actions', :type => :list
|
13
|
+
# @note This name is used because "conditions" is a function already defined
|
14
|
+
# in {#Convection::Model::Template} and should not be overridden.
|
15
|
+
property :rule_conditions, 'Conditions', :type => :list
|
16
|
+
property :listener_arn, 'ListenerArn'
|
17
|
+
property :priority, 'Priority'
|
18
|
+
|
19
|
+
# Append an action
|
20
|
+
def action(&block)
|
21
|
+
action = ResourceProperty::ELBV2ListenerRuleAction.new(self)
|
22
|
+
action.instance_exec(&block) if block
|
23
|
+
actions << action
|
24
|
+
end
|
25
|
+
|
26
|
+
# Append a condition
|
27
|
+
#
|
28
|
+
# @note This name is used because "condition" is a function already defined
|
29
|
+
# in {#Convection::Model::Template} and should not be overridden.
|
30
|
+
def rule_condition(&block)
|
31
|
+
cond = ResourceProperty::ELBV2ListenerRuleCondition.new(self)
|
32
|
+
cond.instance_exec(&block) if block
|
33
|
+
rule_conditions << cond
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require_relative '../resource'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class Resource
|
7
|
+
##
|
8
|
+
# AWS::ElasticLoadBalancingV2::LoadBalancer
|
9
|
+
##
|
10
|
+
class ELBV2LoadBalancer < Resource
|
11
|
+
include Model::Mixin::Taggable
|
12
|
+
|
13
|
+
type 'AWS::ElasticLoadBalancingV2::LoadBalancer', :elbv2_load_balancer
|
14
|
+
property :load_balancer_attributes, 'LoadBalancerAttributes', :type => :list
|
15
|
+
property :name, 'Name'
|
16
|
+
property :scheme, 'Scheme'
|
17
|
+
property :security_group, 'SecurityGroups', :type => :list
|
18
|
+
alias security_groups security_group
|
19
|
+
property :subnet, 'Subnets', :type => :list
|
20
|
+
alias subnets subnet
|
21
|
+
|
22
|
+
# Append a load_balancer_attribute to load_balancer_attributes
|
23
|
+
def load_balancer_attribute(&block)
|
24
|
+
attribute = ResourceProperty::ELBV2LoadBalancerAttribute.new(self)
|
25
|
+
attribute.instance_exec(&block) if block
|
26
|
+
load_balancer_attributes << attribute
|
27
|
+
end
|
28
|
+
|
29
|
+
def render(*args)
|
30
|
+
super.tap do |resource|
|
31
|
+
render_tags(resource)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require_relative '../resource'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class Resource
|
7
|
+
##
|
8
|
+
# AWS::ElasticLoadBalancingV2::TargetGroup
|
9
|
+
##
|
10
|
+
class ELBV2TargetGroup < Resource
|
11
|
+
include Model::Mixin::Taggable
|
12
|
+
|
13
|
+
type 'AWS::ElasticLoadBalancingV2::TargetGroup', :elbv2_target_group
|
14
|
+
property :health_check_interval_seconds, 'HealthCheckIntervalSeconds'
|
15
|
+
property :health_check_path, 'HealthCheckPath'
|
16
|
+
property :health_check_port, 'HealthCheckPort'
|
17
|
+
property :health_check_protocol, 'HealthCheckProtocol'
|
18
|
+
property :health_check_timeout_seconds, 'HealthCheckTimeoutSeconds'
|
19
|
+
property :healthy_threshold_count, 'HealthyThresholdCount'
|
20
|
+
property :match, 'Matcher'
|
21
|
+
property :name, 'Name'
|
22
|
+
property :port, 'Port'
|
23
|
+
property :protocol, 'Protocol'
|
24
|
+
property :target_group_attributes, 'TargetGroupAttributes', :type => :list
|
25
|
+
property :targets, 'Targets', :type => :list
|
26
|
+
alias target_descriptions targets
|
27
|
+
property :unhealthy_threshold_count, 'UnhealthyThresholdCount'
|
28
|
+
property :vpc_id, 'VpcId'
|
29
|
+
|
30
|
+
# Append an attribute to target_group_attributes
|
31
|
+
def target_group_attribute(&block)
|
32
|
+
attribute = ResourceProperty::ELBV2TargetGroupAttribute.new(self)
|
33
|
+
attribute.instance_exec(&block) if block
|
34
|
+
target_group_attributes << attribute
|
35
|
+
end
|
36
|
+
|
37
|
+
# Append a target_description to targets
|
38
|
+
def target(&block)
|
39
|
+
target = ResourceProperty::ELBV2TargetGroupTargetDescription.new(self)
|
40
|
+
target.instance_exec(&block) if block
|
41
|
+
targets << target
|
42
|
+
end
|
43
|
+
alias target_description target
|
44
|
+
|
45
|
+
def matcher(&block)
|
46
|
+
m = ResourceProperty::ELBV2TargetGroupMatcher.new(self)
|
47
|
+
m.instance_exec(&block) if block
|
48
|
+
properties['Matcher'].set(m)
|
49
|
+
end
|
50
|
+
|
51
|
+
def render(*args)
|
52
|
+
super.tap do |resource|
|
53
|
+
render_tags(resource)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -9,13 +9,15 @@ module Convection
|
|
9
9
|
##
|
10
10
|
class Route53RecordSet < Resource
|
11
11
|
type 'AWS::Route53::RecordSet', :route53_recordset
|
12
|
-
property :
|
12
|
+
property :alias_tgt, 'AliasTarget'
|
13
13
|
property :comment, 'Comment'
|
14
14
|
property :failover, 'Failover'
|
15
|
-
property :
|
15
|
+
property :geo_loc, 'GeoLocation'
|
16
16
|
property :health_check_id, 'HealthCheckId'
|
17
|
-
property :
|
18
|
-
|
17
|
+
property :hosted_zone_id, 'HostedZoneId'
|
18
|
+
alias zone hosted_zone_id # for backward compatability
|
19
|
+
property :hosted_zone_name, 'HostedZoneName'
|
20
|
+
alias zone_name hosted_zone_name # for backward compatability
|
19
21
|
property :record_name, 'Name'
|
20
22
|
property :region, 'Region'
|
21
23
|
property :record, 'ResourceRecords', :array
|
@@ -23,6 +25,18 @@ module Convection
|
|
23
25
|
property :ttl, 'TTL'
|
24
26
|
property :record_type, 'Type'
|
25
27
|
property :weight, 'Weight'
|
28
|
+
|
29
|
+
def alias_target(&block)
|
30
|
+
a = ResourceProperty::Route53AliasTarget.new(self)
|
31
|
+
a.instance_exec(&block) if block
|
32
|
+
properties['AliasTarget'].set(a)
|
33
|
+
end
|
34
|
+
|
35
|
+
def geo_location(&block)
|
36
|
+
g = ResourceProperty::Route53GeoLocation.new(self)
|
37
|
+
g.instance_exec(&block) if block
|
38
|
+
properties['GeoLocation'].set(g)
|
39
|
+
end
|
26
40
|
end
|
27
41
|
end
|
28
42
|
end
|
@@ -25,6 +25,7 @@ module Convection
|
|
25
25
|
property :notification_configuration, 'NotificationConfiguration'
|
26
26
|
property :replication_configuration, 'ReplicationConfiguration'
|
27
27
|
property :versioning_configuration, 'VersioningConfiguration'
|
28
|
+
property :website_configuration, 'WebsiteConfiguration'
|
28
29
|
|
29
30
|
def cors_configuration(&block)
|
30
31
|
config = ResourceProperty::S3CorsConfiguration.new(self)
|
@@ -43,6 +44,12 @@ module Convection
|
|
43
44
|
properties['ReplicationConfiguration'].set(config)
|
44
45
|
end
|
45
46
|
|
47
|
+
def website_configuration(&block)
|
48
|
+
config = ResourceProperty::S3WebsiteConfiguration.new(self)
|
49
|
+
config.instance_exec(&block) if block
|
50
|
+
properties['WebsiteConfiguration'].set(config)
|
51
|
+
end
|
52
|
+
|
46
53
|
def render(*args)
|
47
54
|
super.tap do |resource|
|
48
55
|
render_tags(resource)
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative '../resource_property'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class ResourceProperty
|
7
|
+
# Represents a {http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-certificate-domainvalidationoption.html
|
8
|
+
# Certificate Manager Certificate DomainValidationOption Type}
|
9
|
+
class CertificateManagerCertificateDomainValidationOption < ResourceProperty
|
10
|
+
property :domain_name, 'DomainName'
|
11
|
+
property :validation_domain, 'ValidationDomain'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -12,6 +12,7 @@ module Convection
|
|
12
12
|
property :compress, 'Compress'
|
13
13
|
property :default_ttl, 'DefaultTTL'
|
14
14
|
property :forwarded_values, 'ForwardedValues'
|
15
|
+
property :max_ttl, 'MaxTTL'
|
15
16
|
property :min_ttl, 'MinTTL'
|
16
17
|
property :smooth_streaming, 'SmoothStreaming'
|
17
18
|
property :target_origin, 'TargetOriginId'
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require_relative '../resource_property'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class ResourceProperty
|
7
|
+
# Represents a {http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificates.html
|
8
|
+
# Elastic Load Balancing Listener Certificates}
|
9
|
+
class ELBV2ListenerCertificates < ResourceProperty
|
10
|
+
property :certificate_arn, 'CertificateArn'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative '../resource_property'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class ResourceProperty
|
7
|
+
# Represents an {http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-defaultactions.html
|
8
|
+
# ELBV2 Listener DefaultAction type}
|
9
|
+
class ELBV2ListenerDefaultAction < ResourceProperty
|
10
|
+
# http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_Action.html
|
11
|
+
property :target_group_arn, 'TargetGroupArn'
|
12
|
+
property :type, 'Type'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative '../resource_property'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class ResourceProperty
|
7
|
+
# Represents an {http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-actions.html
|
8
|
+
# ELBV2 ListenerRule Action Type}
|
9
|
+
class ELBV2ListenerRuleAction < ResourceProperty
|
10
|
+
# http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_Action.html
|
11
|
+
property :target_group_arn, 'TargetGroupArn'
|
12
|
+
property :type, 'Type'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative '../resource_property'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class ResourceProperty
|
7
|
+
# Represents an {http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-conditions.html
|
8
|
+
# ELBV2 ListenerRule Condition Type
|
9
|
+
class ELBV2ListenerRuleCondition < ResourceProperty
|
10
|
+
# http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_RuleCondition.html
|
11
|
+
property :field, 'Field'
|
12
|
+
property :values, 'Values', :type => :list
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative '../resource_property'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class ResourceProperty
|
7
|
+
# Represents an {http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattributes.html
|
8
|
+
# Elastic Load Balancing LoadBalancer LoadBalancerAttributes Type}
|
9
|
+
class ELBV2LoadBalancerAttribute < ResourceProperty
|
10
|
+
# http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_LoadBalancerAttribute.html
|
11
|
+
property :key, 'Key'
|
12
|
+
property :value, 'Value'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative '../resource_property'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class ResourceProperty
|
7
|
+
# Represents an {http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetgroupattributes.html
|
8
|
+
# ELBV2 TargetGroup TargetGroupAttribute Type}
|
9
|
+
class ELBV2TargetGroupAttribute < ResourceProperty
|
10
|
+
# http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_TargetGroupAttribute.html
|
11
|
+
property :key, 'Key'
|
12
|
+
property :value, 'Value'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require_relative '../resource_property'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class ResourceProperty
|
7
|
+
# Represents an {http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-matcher.html
|
8
|
+
# ELBV2 TargetGroup Matcher Type}
|
9
|
+
class ELBV2TargetGroupMatcher < ResourceProperty
|
10
|
+
property :http_code, 'HttpCode'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/convection/model/template/resource_property/aws_elbv2_target_group_target_description.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative '../resource_property'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class ResourceProperty
|
7
|
+
# Represents an {http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetdescription.html
|
8
|
+
# ELBV2 TargetGroup TargetDescription Type}
|
9
|
+
class ELBV2TargetGroupTargetDescription < ResourceProperty
|
10
|
+
property :id, 'Id'
|
11
|
+
property :port, 'Port'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative '../resource_property'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class ResourceProperty
|
7
|
+
# Represents an {http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html
|
8
|
+
# Route53 AliasTarget Property Type}
|
9
|
+
class Route53AliasTarget < ResourceProperty
|
10
|
+
property :dns_name, 'DNSName'
|
11
|
+
property :evaluate_target_health, 'EvaluateTargetHealth'
|
12
|
+
property :hosted_zone_id, 'HostedZoneId'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative '../resource_property'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class ResourceProperty
|
7
|
+
# Represents an {http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html
|
8
|
+
# Route53 GeoLocation Property Type}
|
9
|
+
class Route53GeoLocation < ResourceProperty
|
10
|
+
property :continent_code, 'ContinentCode'
|
11
|
+
property :country_code, 'CountryCode'
|
12
|
+
property :subdivision_code, 'SubdivisionCode'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require_relative '../resource_property'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class ResourceProperty
|
7
|
+
# Represents an {http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration.html
|
8
|
+
# Amazon S3 Website Configuration}
|
9
|
+
class S3WebsiteConfiguration < ResourceProperty
|
10
|
+
property :error_document, 'ErrorDocument'
|
11
|
+
property :index_document, 'IndexDocument'
|
12
|
+
property :redirect_all_reqs_to, 'RedirectAllRequestsTo'
|
13
|
+
property :routing_rules, 'RoutingRules', :type => :list
|
14
|
+
|
15
|
+
def redirect_all_requests_to(&block)
|
16
|
+
redirect_to = ResourceProperty::S3WebsiteConfigurationRedirectAllRequestsTo.new(self)
|
17
|
+
redirect_to.instance_exec(&block) if block
|
18
|
+
properties['RedirectAllRequestsTo'].set(redirect_to)
|
19
|
+
end
|
20
|
+
|
21
|
+
def routing_rule(&block)
|
22
|
+
routing_rule = ResourceProperty::S3WebsiteConfigurationRoutingRule.new(self)
|
23
|
+
routing_rule.instance_exec(&block) if block
|
24
|
+
routing_rules << routing_rule
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative '../resource_property'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class ResourceProperty
|
7
|
+
# Represents an {http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-redirectallrequeststo.html
|
8
|
+
# Amazon S3 Website Configuration Redirect All Requests To}
|
9
|
+
class S3WebsiteConfigurationRedirectAllRequestsTo < ResourceProperty
|
10
|
+
property :host_name, 'HostName'
|
11
|
+
property :protocol, 'Protocol'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/convection/model/template/resource_property/aws_s3_website_configuration_routing_rule.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require_relative '../resource_property'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class ResourceProperty
|
7
|
+
# Represents an {http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html
|
8
|
+
# Amazon S3 Website Configuration Routing Rule}
|
9
|
+
class S3WebsiteConfigurationRoutingRule < ResourceProperty
|
10
|
+
property :redirect_rul, 'RedirectRule'
|
11
|
+
property :routing_rule_cond, 'RoutingRuleCondition'
|
12
|
+
|
13
|
+
def redirect_rule(&block)
|
14
|
+
redr = ResourceProperty::S3WebsiteConfigurationRoutingRuleRedirectRule.new(self)
|
15
|
+
redr.instance_exec(&block) if block
|
16
|
+
properties['RedirectRule'].set(redr)
|
17
|
+
end
|
18
|
+
|
19
|
+
def routing_rule_condition(&block)
|
20
|
+
cond = ResourceProperty::S3WebsiteConfigurationRoutingRuleRoutingRuleCondition.new(self)
|
21
|
+
cond.instance_exec(&block) if block
|
22
|
+
properties['RoutingRuleCondition'].set(cond)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require_relative '../resource_property'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class ResourceProperty
|
7
|
+
# Represents an {http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-redirectrule.html
|
8
|
+
# Amazon S3 Website Configuration Routing Rule Redirect Rule}
|
9
|
+
class S3WebsiteConfigurationRoutingRuleRedirectRule < ResourceProperty
|
10
|
+
property :host_name, 'HostName'
|
11
|
+
property :http_redirect_code, 'HttpRedirectCode'
|
12
|
+
property :protocol, 'Protocol'
|
13
|
+
property :replace_key_prefix_with, 'ReplaceKeyPrefixWith'
|
14
|
+
property :replace_key_with, 'ReplaceKeyWith'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative '../resource_property'
|
2
|
+
|
3
|
+
module Convection
|
4
|
+
module Model
|
5
|
+
class Template
|
6
|
+
class ResourceProperty
|
7
|
+
# Represents an {http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-routingrulecondition.html
|
8
|
+
# Amazon S3 Website Configuration Routing Rule Routing Rule Condition}
|
9
|
+
class S3WebsiteConfigurationRoutingRule < ResourceProperty
|
10
|
+
property :http_error_code_returned_equals, 'HttpErrorCodeReturnedEquals'
|
11
|
+
property :key_prefix_equals, 'KeyPrefixEquals'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -37,6 +37,7 @@ class TypeDslHandler < YARD::Handlers::Ruby::Base
|
|
37
37
|
'AWS::AutoScaling::LifecycleHook' => 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html',
|
38
38
|
'AWS::AutoScaling::ScalingPolicy' => 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html',
|
39
39
|
'AWS::AutoScaling::ScheduledAction' => 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-scheduledaction.html',
|
40
|
+
'AWS::CertificateManager::Certificate' => 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html',
|
40
41
|
'AWS::CloudFormation::Authentication' => 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-authentication.html',
|
41
42
|
'AWS::CloudFormation::CustomResource' => 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html',
|
42
43
|
'AWS::CloudFormation::Init' => 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-init.html',
|
@@ -110,6 +111,10 @@ class TypeDslHandler < YARD::Handlers::Ruby::Base
|
|
110
111
|
'AWS::ElasticBeanstalk::ConfigurationTemplate' => 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-beanstalk-configurationtemplate.html',
|
111
112
|
'AWS::ElasticBeanstalk::Environment' => 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html',
|
112
113
|
'AWS::ElasticLoadBalancing::LoadBalancer' => 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html',
|
114
|
+
'AWS::ElasticLoadBalancingV2::Listener' => 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html',
|
115
|
+
'AWS::ElasticLoadBalancingV2::ListenerRule' => 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html',
|
116
|
+
'AWS::ElasticLoadBalancingV2::LoadBalancer' => 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html',
|
117
|
+
'AWS::ElasticLoadBalancingV2::TargetGroup' => 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html',
|
113
118
|
'AWS::Elasticsearch::Domain' => 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html',
|
114
119
|
'AWS::EMR::Cluster' => 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html',
|
115
120
|
'AWS::EMR::InstanceGroupConfig' => 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html',
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: convection
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.pre.beta.
|
4
|
+
version: 1.0.0.pre.beta.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Manero
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -139,6 +139,7 @@ files:
|
|
139
139
|
- lib/convection/model/template/resource/aws_auto_scaling_auto_scaling_group.rb
|
140
140
|
- lib/convection/model/template/resource/aws_auto_scaling_launch_configuration.rb
|
141
141
|
- lib/convection/model/template/resource/aws_auto_scaling_scaling_policy.rb
|
142
|
+
- lib/convection/model/template/resource/aws_certificate_manager_certificate.rb
|
142
143
|
- lib/convection/model/template/resource/aws_cloud_watch_alarm.rb
|
143
144
|
- lib/convection/model/template/resource/aws_cloudfront_distribution.rb
|
144
145
|
- lib/convection/model/template/resource/aws_directory_service_simple_ad.rb
|
@@ -178,6 +179,10 @@ files:
|
|
178
179
|
- lib/convection/model/template/resource/aws_elasticbeanstalk_configurationtemplate.rb
|
179
180
|
- lib/convection/model/template/resource/aws_elasticbeanstalk_environment.rb
|
180
181
|
- lib/convection/model/template/resource/aws_elb.rb
|
182
|
+
- lib/convection/model/template/resource/aws_elbv2_listener.rb
|
183
|
+
- lib/convection/model/template/resource/aws_elbv2_listener_rule.rb
|
184
|
+
- lib/convection/model/template/resource/aws_elbv2_load_balancer.rb
|
185
|
+
- lib/convection/model/template/resource/aws_elbv2_target_group.rb
|
181
186
|
- lib/convection/model/template/resource/aws_events_rule.rb
|
182
187
|
- lib/convection/model/template/resource/aws_iam_access_key.rb
|
183
188
|
- lib/convection/model/template/resource/aws_iam_group.rb
|
@@ -210,6 +215,7 @@ files:
|
|
210
215
|
- lib/convection/model/template/resource_attribute/update_policy.rb
|
211
216
|
- lib/convection/model/template/resource_collection.rb
|
212
217
|
- lib/convection/model/template/resource_property.rb
|
218
|
+
- lib/convection/model/template/resource_property/aws_certificate_manager_certificate_domain_validation_option.rb
|
213
219
|
- lib/convection/model/template/resource_property/aws_cloudfront_cachebehavior.rb
|
214
220
|
- lib/convection/model/template/resource_property/aws_cloudfront_customerrorresponse.rb
|
215
221
|
- lib/convection/model/template/resource_property/aws_cloudfront_customorigin.rb
|
@@ -226,14 +232,29 @@ files:
|
|
226
232
|
- lib/convection/model/template/resource_property/aws_ec2_block_store_block_device.rb
|
227
233
|
- lib/convection/model/template/resource_property/aws_ec2_mount_point.rb
|
228
234
|
- lib/convection/model/template/resource_property/aws_ec2_network_interface.rb
|
235
|
+
- lib/convection/model/template/resource_property/aws_elbv2_listener_certificates.rb
|
236
|
+
- lib/convection/model/template/resource_property/aws_elbv2_listener_default_action.rb
|
237
|
+
- lib/convection/model/template/resource_property/aws_elbv2_listener_rule_action.rb
|
238
|
+
- lib/convection/model/template/resource_property/aws_elbv2_listener_rule_condition.rb
|
239
|
+
- lib/convection/model/template/resource_property/aws_elbv2_load_balancer_attribute.rb
|
240
|
+
- lib/convection/model/template/resource_property/aws_elbv2_target_group_attribute.rb
|
241
|
+
- lib/convection/model/template/resource_property/aws_elbv2_target_group_matcher.rb
|
242
|
+
- lib/convection/model/template/resource_property/aws_elbv2_target_group_target_description.rb
|
229
243
|
- lib/convection/model/template/resource_property/aws_events_rule_target.rb
|
230
244
|
- lib/convection/model/template/resource_property/aws_lambda_function_code.rb
|
231
245
|
- lib/convection/model/template/resource_property/aws_lambda_vpc_config.rb
|
246
|
+
- lib/convection/model/template/resource_property/aws_route53_alias_target.rb
|
247
|
+
- lib/convection/model/template/resource_property/aws_route53_geolocation.rb
|
232
248
|
- lib/convection/model/template/resource_property/aws_s3_cors_configuration.rb
|
233
249
|
- lib/convection/model/template/resource_property/aws_s3_cors_configuration_rule.rb
|
234
250
|
- lib/convection/model/template/resource_property/aws_s3_replication_configuration.rb
|
235
251
|
- lib/convection/model/template/resource_property/aws_s3_replication_configuration_rule.rb
|
236
252
|
- lib/convection/model/template/resource_property/aws_s3_replication_configuration_rule_destination.rb
|
253
|
+
- lib/convection/model/template/resource_property/aws_s3_website_configuration.rb
|
254
|
+
- lib/convection/model/template/resource_property/aws_s3_website_configuration_redirect_all_requests_to.rb
|
255
|
+
- lib/convection/model/template/resource_property/aws_s3_website_configuration_routing_rule.rb
|
256
|
+
- lib/convection/model/template/resource_property/aws_s3_website_configuration_routing_rule_redirect_rule.rb
|
257
|
+
- lib/convection/model/template/resource_property/aws_s3_website_configuration_routing_rule_routing_rule_condition.rb
|
237
258
|
- lib/convection/version.rb
|
238
259
|
- spec/cf_client_context.rb
|
239
260
|
- spec/collect_availability_zones_task_context.rb
|