convection 1.1.7 → 2.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ea376ec81c3edad8005e4e4fbbbb2275c086ee20
4
- data.tar.gz: ce38ff02d964e2fd90a821123f943babc334b51f
3
+ metadata.gz: 8835c1ffa38c162454a2b0ccd3d0e7b6c449e5d4
4
+ data.tar.gz: d5b208cd2633e490c318f71e1fe6267e43f69f92
5
5
  SHA512:
6
- metadata.gz: 90c91f1a06ecd94537694a8705e6485b32a74d9907d892882fb15656d355e587f943c195171587e8cb264ef0d265dcb50e20c4b1407c8f80e1a5fffc397a3b12
7
- data.tar.gz: 3943530ef51c52c5d02878e0ca1f47865fb2a86fd8f31a9fd87eec866615551749809526fc16380b651db8e953b4ddc26fe52ed2e151a058fe2cbabef6b84527
6
+ metadata.gz: 792cb42b688ccd93f1682f514e015a4d2c6ebd680eb72aba0bc2027d8a59a97af739d611bfa2d04dfb527d871a7fa9837ba91771fa6f1a9507787c11617e55f8
7
+ data.tar.gz: bd5f229ccc8e897466ee302920d8953d576f71fc68ae794fa80bdd2da228a44a26e62ec10bc7b20afc5457e7e0fdb57126f562e8d7b0c519e62a67a980aac68f
data/.travis.yml CHANGED
@@ -1,9 +1,5 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.0.0
4
- - 2.1.3
5
- - 2.1.5
6
- - 2.1.6
7
3
  - 2.2.0
8
4
  - 2.2.1
9
5
  - 2.2.2
data/convection.gemspec CHANGED
@@ -22,4 +22,6 @@ Gem::Specification.new do |spec|
22
22
  spec.add_runtime_dependency 'httparty', '~> 0.13'
23
23
  spec.add_runtime_dependency 'netaddr', '~> 1.5'
24
24
  spec.add_runtime_dependency 'thor', '~> 0.19'
25
+
26
+ spec.required_ruby_version = '>= 2.2'
25
27
  end
data/docs/index.md CHANGED
@@ -47,5 +47,12 @@ We highly recommend consulting the [getting started guide](./docs/getting-starte
47
47
 
48
48
  Additionally you can generate the Ruby API documentation by executing `bundle exec rake yard`.
49
49
 
50
+ ## TODO: Script to automatically create new AWS resources
51
+ Amazon publishes a spec for Cloudformation:
52
+ https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification.html
53
+
54
+ We should create a tool that uses that to create convection resource
55
+ code.
56
+
50
57
  ## License
51
58
  Convection is distributed under the MIT license - please refer to the [LICENSE](LICENSE.md) for more information.
@@ -21,15 +21,32 @@ module Convection
21
21
  property :engine_version, 'EngineVersion'
22
22
  property :notification_topic_arn, 'NotificationTopicArn'
23
23
  property :num_cache_clusters, 'NumCacheClusters'
24
+ property :num_node_groups, 'NumNodeGroups'
24
25
  property :port, 'Port'
25
26
  property :preferred_cache_cluster_azs, 'PreferredCacheClusterAZs', :type => :list
26
27
  property :preferred_maintenance_window, 'PreferredMaintenanceWindow'
28
+ property :primary_cluster_id, 'PrimaryClusterId'
29
+ property :replicas_per_node_group, 'ReplicasPerNodeGroup'
27
30
  property :replication_group_description, 'ReplicationGroupDescription'
31
+ property :replication_group_id, 'ReplicationGroupId'
28
32
  property :security_group_ids, 'SecurityGroupIds', :type => :list
29
33
  property :snapshot_arns, 'SnapshotArns', :type => :list
34
+ property :snapshot_name, 'SnapshotName'
30
35
  property :snapshot_retention_limit, 'SnapshotRetentionLimit'
31
36
  property :snapshot_window, 'SnapshotWindow'
32
37
 
38
+ # NodeGroupConfiguration is a list of NodeGroupConfiguration properties.
39
+ def node_group_configuration(&block)
40
+ config = ResourceProperty::ElasticacheReplicationGroupNodeGroupConfiguration.new(self)
41
+ config.instance_exec(&block) if block
42
+
43
+ prop = properties['NodeGroupConfiguration']
44
+ prop = [] if prop.nil?
45
+ prop << config
46
+
47
+ properties['NodeGroupConfiguration'].set(prop)
48
+ end
49
+
33
50
  def render(*args)
34
51
  super.tap do |resource|
35
52
  render_tags(resource)
@@ -0,0 +1,18 @@
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-elasticache-replicationgroup-nodegroupconfiguration.html
8
+ # Amazon ElastiCache ReplicationGroup NodeGroupConfiguration}
9
+ class ElasticacheReplicationGroupNodeGroupConfiguration < ResourceProperty
10
+ property :primary_availability_zone, 'PrimaryAvailabilityZone'
11
+ property :replica_availability_zones, 'ReplicaAvailabilityZones', :type => :list
12
+ property :replica_count, 'ReplicaCount'
13
+ property :slots, 'Slots'
14
+ end
15
+ end
16
+ end
17
+ end
18
+ 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: 1.1.7
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Manero
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-14 00:00:00.000000000 Z
11
+ date: 2017-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
@@ -268,6 +268,7 @@ files:
268
268
  - lib/convection/model/template/resource_property/aws_ec2_spot_fleet_request_config_data_launch_specifications_block_device_mapping_ebs.rb
269
269
  - lib/convection/model/template/resource_property/aws_ec2_spot_fleet_request_config_data_launch_specifications_network_interface.rb
270
270
  - lib/convection/model/template/resource_property/aws_ec2_spot_fleet_request_config_data_launch_specifications_security_groups.rb
271
+ - lib/convection/model/template/resource_property/aws_elasticache_replication_group_node_group_configuration.rb
271
272
  - lib/convection/model/template/resource_property/aws_elbv2_listener_certificates.rb
272
273
  - lib/convection/model/template/resource_property/aws_elbv2_listener_default_action.rb
273
274
  - lib/convection/model/template/resource_property/aws_elbv2_listener_rule_action.rb
@@ -350,7 +351,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
350
351
  requirements:
351
352
  - - ">="
352
353
  - !ruby/object:Gem::Version
353
- version: '0'
354
+ version: '2.2'
354
355
  required_rubygems_version: !ruby/object:Gem::Requirement
355
356
  requirements:
356
357
  - - ">="