Module: SparkleFormation::SparkleAttribute::Aws
- Defined in:
- lib/sparkle_formation/sparkle_attribute/aws.rb
Overview
AWS specific helper implementations
Instance Method Summary collapse
-
#_account_id ⇒ Hash
(also: #account_id!)
Account ID generator.
-
#_and(*args) ⇒ Hash
(also: #and!)
Fn::And generator.
-
#_cf_attr(logical_id, attribute_name) ⇒ Hash
(also: #_cf_get_att, #get_att!, #attr!)
Fn::GetAtt generator.
-
#_cf_base64(arg) ⇒ Hash
(also: #base64!)
Fn::Base64 generator.
-
#_cf_get_azs(region = nil) ⇒ Hash
(also: #get_azs!, #azs!)
Fn::GetAZs generator.
-
#_cf_join(*args, opts = {}) ⇒ Hash
(also: #join!)
Fn::Join generator.
-
#_cf_map(map_name, top_level_key, second_level_key) ⇒ Hash
(also: #_cf_find_in_map, #find_in_map!, #map!)
Fn::FindInMap generator.
-
#_cf_ref(thing) ⇒ Hash
(also: #_ref, #ref!)
Ref generator.
-
#_cf_select(index, item) ⇒ Hash
(also: #select!)
Fn::Select generator.
-
#_cf_split(string, delimiter) ⇒ Hash
(also: #split!)
Split generator.
-
#_cf_value_import(thing) ⇒ Hash
(also: #_import_value, #import_value!)
ValueImport generator.
-
#_condition(name) ⇒ Hash
(also: #condition!)
Condition generator.
-
#_depends_on(*args) ⇒ Array<String>
(also: #depends_on!)
Resource dependency generator.
-
#_equals(v1, v2) ⇒ Hash
(also: #equals!)
Fn::Equals generator.
-
#_if(cond, true_value, false_value) ⇒ Hash
(also: #if!)
Fn::If generator.
-
#_no_value ⇒ Hash
(also: #no_value!)
No value generator.
-
#_not(arg) ⇒ Hash
(also: #not!)
Fn::Not generator.
-
#_notification_arns ⇒ Hash
(also: #notification_arns!)
Notification ARNs generator.
-
#_on_condition(name) ⇒ SparkleStruct
(also: #on_condition!)
Condition setter.
-
#_or(*args) ⇒ Hash
(also: #or!)
Fn::Or generator.
-
#_region ⇒ Hash
(also: #region!)
Region generator.
-
#_stack_id ⇒ Hash
(also: #stack_id!)
Stack ID generator.
-
#_stack_name ⇒ Hash
(also: #stack_name!)
Stack name generator.
-
#_stack_output(stack_name, output_name) ⇒ Object
(also: #stack_output!)
Reference output value from nested stack.
-
#_tags(hash) ⇒ SparkleStruct
(also: #tags!)
Set tags on a resource.
-
#taggable? ⇒ TrueClass, FalseClass
Resource can be tagged.
Instance Method Details
#_account_id ⇒ Hash Also known as: account_id!
Account ID generator
273 274 275 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 273 def _account_id _ref('AWS::AccountId') end |
#_and(*args) ⇒ Hash Also known as: and!
symbols will be processed and set as condition. strings will be set as condition directly. procs will be evaluated
Fn::And generator
187 188 189 190 191 192 193 194 195 196 197 198 199 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 187 def _and(*args) { 'Fn::And' => _array( *args.map{|v| if(v.is_a?(Symbol) || v.is_a?(String)) _condition(v) else v end } ) } end |
#_cf_attr(logical_id, attribute_name) ⇒ Hash Also known as: _cf_get_att, get_att!, attr!
93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 93 def _cf_attr(*args) r_name = args.first args = args.slice(1, args.size) __t_stringish(r_name) args = args.map do |thing| if(thing.is_a?(Symbol)) _process_key(thing, :force) else thing end end {'Fn::GetAtt' => [__attribute_key(r_name), *args]} end |
#_cf_base64(arg) ⇒ Hash Also known as: base64!
Fn::Base64 generator
114 115 116 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 114 def _cf_base64(arg) {'Fn::Base64' => arg} end |
#_cf_get_azs(region = nil) ⇒ Hash Also known as: get_azs!, azs!
Fn::GetAZs generator
123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 123 def _cf_get_azs(region=nil) region = case region when Symbol _cf_ref(region) when NilClass '' else region end {'Fn::GetAZs' => region} end |
#_cf_join(*args, opts = {}) ⇒ Hash Also known as: join!
18 19 20 21 22 23 24 25 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 18 def _cf_join(*args) = args.detect{|i| i.is_a?(Hash) && i[:options]} || {:options => {}} args.delete() unless(args.size == 1) args = [args] end {'Fn::Join' => [[:options][:delimiter] || '', *args]} end |
#_cf_map(map_name, top_level_key, second_level_key) ⇒ Hash Also known as: _cf_find_in_map, find_in_map!, map!
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 69 def _cf_map(thing, key, *suffix) __t_stringish(thing) suffix = suffix.map do |item| if(item.is_a?(Symbol)) _process_key(item, :force) else item end end thing = __attribute_key(thing) if(key.is_a?(Symbol)) key = ref!(key) end {'Fn::FindInMap' => [thing, key, *suffix]} end |
#_cf_ref(thing) ⇒ Hash Also known as: _ref, ref!
Symbol value will force key processing
Ref generator
45 46 47 48 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 45 def _cf_ref(thing) __t_stringish(thing) {'Ref' => __attribute_key(thing)} end |
#_cf_select(index, item) ⇒ Hash Also known as: select!
Fn::Select generator
142 143 144 145 146 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 142 def _cf_select(index, item) index = index.is_a?(Symbol) ? _cf_ref(index) : index item = _cf_ref(item) if item.is_a?(Symbol) {'Fn::Select' => [index, item]} end |
#_cf_split(string, delimiter) ⇒ Hash Also known as: split!
Split generator
33 34 35 36 37 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 33 def _cf_split(string, delimiter) __t_stringish(string) __t_stringish(delimiter) {'Fn::Split' => [delimiter, string]} end |
#_cf_value_import(thing) ⇒ Hash Also known as: _import_value, import_value!
ValueImport generator
56 57 58 59 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 56 def _cf_value_import(thing) __t_stringish(thing) {'Fn::ImportValue' => __attribute_key(thing)} end |
#_condition(name) ⇒ Hash Also known as: condition!
Condition generator
153 154 155 156 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 153 def _condition(name) __t_stringish(name) {'Condition' => __attribute_key(name)} end |
#_depends_on(resource_name) ⇒ Array<String> #_depends_on(resource_names) ⇒ Array<String> #_depends_on(*resource_names) ⇒ Array<String> Also known as: depends_on!
this will directly modify the struct at its current context to inject depends on structure
Resource dependency generator
303 304 305 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 303 def _depends_on(*args) _set('DependsOn', [args].flatten.compact.map{|s| __attribute_key(s)}) end |
#_equals(v1, v2) ⇒ Hash Also known as: equals!
Fn::Equals generator
207 208 209 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 207 def _equals(v1, v2) {'Fn::Equals' => _array(v1, v2)} end |
#_if(cond, true_value, false_value) ⇒ Hash Also known as: if!
Fn::If generator
176 177 178 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 176 def _if(cond, true_value, false_value) {'Fn::If' => _array(__attribute_key(cond), true_value, false_value)} end |
#_no_value ⇒ Hash Also known as: no_value!
No value generator
249 250 251 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 249 def _no_value _ref('AWS::NoValue') end |
#_not(arg) ⇒ Hash Also known as: not!
Fn::Not generator
216 217 218 219 220 221 222 223 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 216 def _not(arg) if(arg.is_a?(String) || arg.is_a?(Symbol)) arg = _condition(arg) else arg = _array(arg).first end {'Fn::Not' => [arg]} end |
#_notification_arns ⇒ Hash Also known as: notification_arns!
Notification ARNs generator
265 266 267 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 265 def _notification_arns _ref('AWS::NotificationARNs') end |
#_on_condition(name) ⇒ SparkleStruct Also known as: on_condition!
this is used to set a => “Name” into the current context, generally the top level of a resource
Condition setter
165 166 167 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 165 def _on_condition(name) _set(*_condition(name).to_a.flatten) end |
#_or(*args) ⇒ Hash Also known as: or!
Fn::Or generator
231 232 233 234 235 236 237 238 239 240 241 242 243 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 231 def _or(*args) { 'Fn::Or' => _array( *args.map{|v| if(v.is_a?(Symbol) || v.is_a?(String)) _condition(v) else v end } ) } end |
#_region ⇒ Hash Also known as: region!
Region generator
257 258 259 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 257 def _region _ref('AWS::Region') end |
#_stack_id ⇒ Hash Also known as: stack_id!
Stack ID generator
281 282 283 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 281 def _stack_id _ref('AWS::StackId') end |
#_stack_name ⇒ Hash Also known as: stack_name!
Stack name generator
289 290 291 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 289 def _stack_name _ref('AWS::StackName') end |
#_stack_output(stack_name, output_name) ⇒ Object Also known as: stack_output!
Reference output value from nested stack
312 313 314 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 312 def _stack_output(stack_name, output_name) _cf_attr(_process_key(stack_name), "Outputs.#{__attribute_key(output_name)}") end |
#_tags(hash) ⇒ SparkleStruct Also known as:
Set tags on a resource
333 334 335 336 337 338 339 340 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 333 def (hash) __t_hashish(hash) _set('Tags', hash.map{ |k, v| {'Key' => __attribute_key(k), 'Value' => v} } ) end |
#taggable? ⇒ TrueClass, FalseClass
Returns resource can be tagged.
318 319 320 321 322 323 324 325 326 327 |
# File 'lib/sparkle_formation/sparkle_attribute/aws.rb', line 318 def taggable? if(self[:type]) resource = _self.lookup(self[:type].gsub('::', '_').downcase) resource && resource[:properties].include?('Tags') else if(_parent) _parent.taggable? end end end |