convection 2.2.22 → 2.2.23

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fa7f9873b60c460b9fcbd36f676ddefe61ec5c22
4
- data.tar.gz: 1c24ca31f9437016b6c27f1581f5da2355a939bb
3
+ metadata.gz: e662d6e48792dd9a7a0ea181e7df3434298aed5d
4
+ data.tar.gz: '029532de61278ee217887620c0a3c9ed36e1f17c'
5
5
  SHA512:
6
- metadata.gz: 0d1cced8050c50e5c0e2d1ceb62514fa3f1ad1aa0218ce3af5ba81dc7dab4e83220bfc6f41f3d983e32587373e9250e2dfae85a25ce1c5fd31f9116ead351b71
7
- data.tar.gz: f1a0b5a68ef6e0c2940f6fb53a923ab172a09fafde5cc3189e3b67f2f946c67d8c12b51a5e88802c9adcc1d54da8d3c2d7404b32ab508170cae0e8453bb34de8
6
+ metadata.gz: e93b1fb2eab063235a2265fc2bf624adbc8920a4c6bb0843ec9b99c8ec2fe3a942706ab128e12413270af44c11999c5adf886ad6930ef4245042282a83f001be
7
+ data.tar.gz: b0f378d0ec4cfc7974e2b304495e53d014f210da898f49bae3f5e3aa046fad307803a76182af541f63407326d9b4b2dd6cc9656ed96f8d1aedf2cdbd564b0c5d
data/.gitignore CHANGED
@@ -24,4 +24,5 @@ attic
24
24
  *.swo
25
25
  *.gem
26
26
  *.iml
27
- .rakeTasks
27
+ .rakeTasks
28
+ .idea/
@@ -0,0 +1,70 @@
1
+ require_relative '../resource'
2
+
3
+ module Convection
4
+ module Model
5
+ class Template
6
+ class Resource
7
+ ##
8
+ # AWS::RDS::DBCluster
9
+ #
10
+ # @example
11
+ # rds_cluster 'TestCluster' do
12
+ # availability_zone 'us-east-1','us-east-2'
13
+ # backup_retention 10
14
+ # database_name 'test_database'
15
+ # identifier 'cluster1'
16
+ # cluster_parameter_group_name 'default.aurora5.6'
17
+ # subnet_group 'subnet_group'
18
+ # engine 'aurora'
19
+ # engine_version '5.6.10a'
20
+ # kms_key_id 'kms_key'
21
+ # master_username 'username'
22
+ # master_password 'password'
23
+ # port '3306'
24
+ # preferred_backup_window '12:30-01:30'
25
+ # preferred_maintenance_window 'mon:2:30-mon:3:30'
26
+ # replication_source_identifier 'source_instance'
27
+ # snapshot_identifier
28
+ # storage_encrypted 'false'
29
+ # tag 'Name', 'Test'
30
+ # vpc_security_group 'test_security_group_1' ,'test_security_group_2'
31
+ # end
32
+ ##
33
+ class RDSDBCluster < Resource
34
+ include Model::Mixin::Taggable
35
+
36
+ type 'AWS::RDS::DBCluster', :rds_cluster
37
+
38
+ property :availability_zone, 'AvailabilityZones', :type => :list
39
+ property :backup_retention, 'BackupRetentionPeriod'
40
+ property :database_name, 'DatabaseName'
41
+ property :identifier, 'DBClusterIdentifier'
42
+ property :cluster_parameter_group_name, 'DBClusterParameterGroupName'
43
+ property :subnet_group, 'DBSubnetGroupName'
44
+ property :engine, 'Engine'
45
+ property :engine_version, 'EngineVersion'
46
+ property :kms_key_id, 'KmsKeyId'
47
+ # only specify username and password if you do not specify SnapshotIdentifier
48
+ property :master_username, 'MasterUsername'
49
+ property :master_password, 'MasterUserPassword'
50
+ property :port, 'Port'
51
+ # backup window must be in the format hh24:mi-hh24:mi, atleast 30 mins long, UTC, cannot conflict with maintenance window.
52
+ property :preferred_backup_window, 'PreferredBackupWindow'
53
+ # backup window must be in the format ddd:hh24:mi-ddd:hh24:mi, atleast 30 mins long, UTC, cannot conflict with backup window.
54
+ property :preferred_maintenance_window, 'PreferredMaintenanceWindow'
55
+ property :replication_source_identifier, 'ReplicationSourceIdentifier'
56
+ property :snapshot_identifier, 'SnapshotIdentifier'
57
+ property :storage_encrypted, 'StorageEncrypted'
58
+
59
+ property :vpc_security_group, 'VPCSecurityGroupIds', :type => :list
60
+
61
+ def render(*args)
62
+ super.tap do |resource|
63
+ render_tags(resource)
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,22 @@
1
+ require_relative '../resource'
2
+
3
+ module Convection
4
+ module Model
5
+ class Template
6
+ class Resource
7
+ # @example
8
+ # sns_subscription 'MySubscription' do
9
+ # endpoint 'failures@example.com'
10
+ # protocol 'email'
11
+ # topic_arn 'arn:aws:sns:us-west-2:123456789012:example-topic'
12
+ # end
13
+ class SNSSubscription < Resource
14
+ type 'AWS::SNS::Subscription'
15
+ property :endpoint, 'Endpoint'
16
+ property :protocol, 'Protocol'
17
+ property :topic_arn, 'TopicArn'
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,120 @@
1
+ require 'spec_helper'
2
+
3
+ class Convection::Model::Template::Resource
4
+ describe RDSDBCluster do
5
+ let(:template) do
6
+ Convection.template do
7
+ rds_cluster 'TestCluster' do
8
+ availability_zone 'us-east-1', 'us-east-2'
9
+ backup_retention 10
10
+ database_name 'test_database'
11
+ identifier 'cluster1'
12
+ cluster_parameter_group_name 'default.aurora5.6'
13
+ subnet_group 'subnet_group'
14
+ engine 'aurora'
15
+ engine_version '5.6.10a'
16
+ kms_key_id 'kms_key'
17
+ master_username 'username'
18
+ master_password 'password'
19
+ port '3306'
20
+ preferred_backup_window '12:30-01:30'
21
+ preferred_maintenance_window 'mon:2:30-mon:3:30'
22
+ replication_source_identifier 'source_instance'
23
+ snapshot_identifier
24
+ storage_encrypted 'false'
25
+ tag 'Name', 'Test'
26
+ vpc_security_group 'test-security-group-1', 'test-security-group-2'
27
+ end
28
+ end
29
+ end
30
+
31
+ subject do
32
+ template_json
33
+ .fetch('Resources')
34
+ .fetch('TestCluster')
35
+ .fetch('Properties')
36
+ end
37
+
38
+ it 'sets the DBClusterIdentifier' do
39
+ expect(subject['DBClusterIdentifier']).to eq('cluster1')
40
+ end
41
+
42
+ it 'sets the Engine' do
43
+ expect(subject['Engine']).to eq('aurora')
44
+ end
45
+
46
+ it 'sets the EngineVersion' do
47
+ expect(subject['EngineVersion']).to eq('5.6.10a')
48
+ end
49
+
50
+ it 'sets the StorageEncrypted' do
51
+ expect(subject['StorageEncrypted']).to eq('false')
52
+ end
53
+
54
+ it 'sets the Port' do
55
+ expect(subject['Port']).to eq('3306')
56
+ end
57
+
58
+ it 'sets the BackupRetentionPeriod' do
59
+ expect(subject['BackupRetentionPeriod']).to eq(10)
60
+ end
61
+
62
+ it 'sets the DatabaseName' do
63
+ expect(subject['DatabaseName']).to eq('test_database')
64
+ end
65
+
66
+ it 'sets the MasterUsername' do
67
+ expect(subject['MasterUsername']).to eq('username')
68
+ end
69
+
70
+ it 'sets the MasterUserPassword' do
71
+ expect(subject['MasterUserPassword']).to eq('password')
72
+ end
73
+
74
+ it 'sets the KmsKeyId' do
75
+ expect(subject['KmsKeyId']).to eq('kms_key')
76
+ end
77
+
78
+ it 'sets the PreferredBackupWindow' do
79
+ expect(subject['PreferredBackupWindow']).to eq('12:30-01:30')
80
+ end
81
+
82
+ it 'sets the PreferredMaintenanceWindow' do
83
+ expect(subject['PreferredMaintenanceWindow']).to eq('mon:2:30-mon:3:30')
84
+ end
85
+
86
+ it 'sets the AvailabilityZones' do
87
+ expect(subject['AvailabilityZones']).to match_array(['us-east-1', 'us-east-2'])
88
+ end
89
+
90
+ it 'sets the DBSubnetGroupName' do
91
+ expect(subject['DBSubnetGroupName']).to eq('subnet_group')
92
+ end
93
+
94
+ it 'sets the DBSubnetGroupName' do
95
+ expect(subject['DBSubnetGroupName']).to eq('subnet_group')
96
+ end
97
+
98
+ it 'sets the VPCSecurityGroupIds' do
99
+ expect(subject['VPCSecurityGroupIds']).to match_array(['test-security-group-1', 'test-security-group-2'])
100
+ end
101
+
102
+ it 'sets the ReplicationSourceIdentifier' do
103
+ expect(subject['ReplicationSourceIdentifier']).to eq('source_instance')
104
+ end
105
+
106
+ it 'sets the DBClusterParameterGroupName' do
107
+ expect(subject['DBClusterParameterGroupName']).to eq('default.aurora5.6')
108
+ end
109
+
110
+ it 'sets tags' do
111
+ expect(subject['Tags']).to include(hash_including('Key' => 'Name', 'Value' => 'Test'))
112
+ end
113
+
114
+ private
115
+
116
+ def template_json
117
+ JSON.parse(template.to_json)
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+
3
+ class Convection::Model::Template::Resource
4
+ describe SNSSubscription do
5
+ let(:template) do
6
+ Convection.template do
7
+ sns_subscription 'MySubscription' do
8
+ endpoint 'failures@example.com'
9
+ protocol 'email'
10
+ topic_arn 'arn:aws:sns:us-west-2:123456789012:example-topic'
11
+ end
12
+ end
13
+ end
14
+
15
+ subject do
16
+ template_json
17
+ .fetch('Resources')
18
+ .fetch('MySubscription')
19
+ .fetch('Properties')
20
+ end
21
+
22
+ it 'sets the Endpoint' do
23
+ expect(subject['Endpoint']).to eq('failures@example.com')
24
+ end
25
+
26
+ it 'sets the Protocol' do
27
+ expect(subject['Protocol']).to eq('email')
28
+ end
29
+
30
+ it 'sets the TopicArn' do
31
+ expect(subject['TopicArn']).to eq('arn:aws:sns:us-west-2:123456789012:example-topic')
32
+ end
33
+
34
+ private
35
+
36
+ def template_json
37
+ JSON.parse(template.to_json)
38
+ end
39
+ end
40
+ end
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: 2.2.22
4
+ version: 2.2.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Manero
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-10 00:00:00.000000000 Z
11
+ date: 2018-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -233,6 +233,7 @@ files:
233
233
  - lib/convection/model/template/resource/aws_lambda_version.rb
234
234
  - lib/convection/model/template/resource/aws_logs_loggroup.rb
235
235
  - lib/convection/model/template/resource/aws_logs_subscription_filter.rb
236
+ - lib/convection/model/template/resource/aws_rds_db_cluster.rb
236
237
  - lib/convection/model/template/resource/aws_rds_db_instance.rb
237
238
  - lib/convection/model/template/resource/aws_rds_db_parameter_group.rb
238
239
  - lib/convection/model/template/resource/aws_rds_db_security_group.rb
@@ -243,6 +244,7 @@ files:
243
244
  - lib/convection/model/template/resource/aws_route53_recordset.rb
244
245
  - lib/convection/model/template/resource/aws_s3_bucket.rb
245
246
  - lib/convection/model/template/resource/aws_s3_bucket_policy.rb
247
+ - lib/convection/model/template/resource/aws_sns_subscription.rb
246
248
  - lib/convection/model/template/resource/aws_sns_topic.rb
247
249
  - lib/convection/model/template/resource/aws_sns_topic_policy.rb
248
250
  - lib/convection/model/template/resource/aws_sqs_queue.rb
@@ -335,6 +337,8 @@ files:
335
337
  - spec/convection/model/template/resource/aws_auto_scaling_auto_scaling_group_spec.rb
336
338
  - spec/convection/model/template/resource/aws_efs_file_system_spec.rb
337
339
  - spec/convection/model/template/resource/aws_efs_mount_target_spec.rb
340
+ - spec/convection/model/template/resource/aws_rds_db_cluster_spec.rb
341
+ - spec/convection/model/template/resource/aws_sns_subscription_spec.rb
338
342
  - spec/convection/model/template/resource/directoryservice_simple_ad_spec.rb
339
343
  - spec/convection/model/template/resource/ec2_dhcp_options_spec.rb
340
344
  - spec/convection/model/template/resource/ec2_security_group_spec.rb
@@ -407,6 +411,8 @@ test_files:
407
411
  - spec/convection/model/template/resource/aws_auto_scaling_auto_scaling_group_spec.rb
408
412
  - spec/convection/model/template/resource/aws_efs_file_system_spec.rb
409
413
  - spec/convection/model/template/resource/aws_efs_mount_target_spec.rb
414
+ - spec/convection/model/template/resource/aws_rds_db_cluster_spec.rb
415
+ - spec/convection/model/template/resource/aws_sns_subscription_spec.rb
410
416
  - spec/convection/model/template/resource/directoryservice_simple_ad_spec.rb
411
417
  - spec/convection/model/template/resource/ec2_dhcp_options_spec.rb
412
418
  - spec/convection/model/template/resource/ec2_security_group_spec.rb