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.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +6 -0
  3. data/README.md +2 -0
  4. data/bin/convection +9 -4
  5. data/docs/getting-started.md +6 -2
  6. data/docs/index.md +2 -0
  7. data/lib/convection/model/template/resource/aws_certificate_manager_certificate.rb +34 -0
  8. data/lib/convection/model/template/resource/aws_elb.rb +1 -0
  9. data/lib/convection/model/template/resource/aws_elbv2_listener.rb +35 -0
  10. data/lib/convection/model/template/resource/aws_elbv2_listener_rule.rb +39 -0
  11. data/lib/convection/model/template/resource/aws_elbv2_load_balancer.rb +38 -0
  12. data/lib/convection/model/template/resource/aws_elbv2_target_group.rb +60 -0
  13. data/lib/convection/model/template/resource/aws_route53_recordset.rb +18 -4
  14. data/lib/convection/model/template/resource/aws_s3_bucket.rb +7 -0
  15. data/lib/convection/model/template/resource_property/aws_certificate_manager_certificate_domain_validation_option.rb +16 -0
  16. data/lib/convection/model/template/resource_property/aws_cloudfront_defaultcachebehavior.rb +1 -0
  17. data/lib/convection/model/template/resource_property/aws_elbv2_listener_certificates.rb +15 -0
  18. data/lib/convection/model/template/resource_property/aws_elbv2_listener_default_action.rb +17 -0
  19. data/lib/convection/model/template/resource_property/aws_elbv2_listener_rule_action.rb +17 -0
  20. data/lib/convection/model/template/resource_property/aws_elbv2_listener_rule_condition.rb +17 -0
  21. data/lib/convection/model/template/resource_property/aws_elbv2_load_balancer_attribute.rb +17 -0
  22. data/lib/convection/model/template/resource_property/aws_elbv2_target_group_attribute.rb +17 -0
  23. data/lib/convection/model/template/resource_property/aws_elbv2_target_group_matcher.rb +15 -0
  24. data/lib/convection/model/template/resource_property/aws_elbv2_target_group_target_description.rb +16 -0
  25. data/lib/convection/model/template/resource_property/aws_route53_alias_target.rb +17 -0
  26. data/lib/convection/model/template/resource_property/aws_route53_geolocation.rb +17 -0
  27. data/lib/convection/model/template/resource_property/aws_s3_website_configuration.rb +30 -0
  28. data/lib/convection/model/template/resource_property/aws_s3_website_configuration_redirect_all_requests_to.rb +16 -0
  29. data/lib/convection/model/template/resource_property/aws_s3_website_configuration_routing_rule.rb +28 -0
  30. data/lib/convection/model/template/resource_property/aws_s3_website_configuration_routing_rule_redirect_rule.rb +19 -0
  31. data/lib/convection/model/template/resource_property/aws_s3_website_configuration_routing_rule_routing_rule_condition.rb +16 -0
  32. data/yard_extensions/type_handler.rb +5 -0
  33. metadata +23 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6ad55266b8d4a5fd1a16d8b8c396a3c2ecc22b27
4
- data.tar.gz: 4c5ae734856b196c13f39fc42fd85fc69745a6bb
3
+ metadata.gz: 2907e41b969e077bc2ac2cee703ff8bef61d730b
4
+ data.tar.gz: 2909f0be3908981a8828c72ddee7b840471bc9f0
5
5
  SHA512:
6
- metadata.gz: 018341e258e456483c9f5ebde1116cd8a71196fb972b865c62f08f0f3b87dca8a0f010e6b9e9d995c36b39240b9cdc54b0dbb7abd9f58dd252951eed766c9447
7
- data.tar.gz: 8a9a17d9ee215c6b6c1c26340e99bae7a13518f7a24d62362d02aa3302916a7f8cea93b07840c003cfa8f4859c65ffdf4af4b6496b256fb1101a2de42943cf96
6
+ metadata.gz: fc91f97a7303f5c3bb7bca558568b933a8a2f514a6efe5d3a29a6e20d59eed3b27d14139ee574587aae3cc31ae95f30c068d31cd67d263323992a061493e49f2
7
+ data.tar.gz: fd7b48f9acc7b0be07f8fc3f2205d3dd42709d0bc40be0d310b4258174a69fe32bcdac404a61a92e6c985e18826c16d3c905580dd8c792f56c9755f1a07dd315
data/.gitignore CHANGED
@@ -17,3 +17,9 @@ mkmf.log
17
17
  keys
18
18
  VERSION
19
19
  attic
20
+
21
+ .ruby-gemset
22
+
23
+ *.swp
24
+ *.swo
25
+ *.gem
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
- @cloud = Control::Cloud.new
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
- @cloud = Control::Cloud.new
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
@@ -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-pv" in their
595
- name. The most recent one, from March 2015, has ID ami-c02b04a8.
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 :alias_target, 'AliasTarget'
12
+ property :alias_tgt, 'AliasTarget'
13
13
  property :comment, 'Comment'
14
14
  property :failover, 'Failover'
15
- property :geo_location, 'GeoLocation', :array
15
+ property :geo_loc, 'GeoLocation'
16
16
  property :health_check_id, 'HealthCheckId'
17
- property :zone, 'HostedZoneId'
18
- property :zone_name, 'HostedZoneName'
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
@@ -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
@@ -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.1
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-10-07 00:00:00.000000000 Z
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