# 1. declare a resource type foo
class foo {
# 2. define a resource type myfile
define myfile {
$file_name = $name
file { "$file_name":
path => "/tmp/$file_name",
ensure => 'file',
}
}
# 3. define a resource type that declares virtual resources of type myfile
define create_a_file { @myfile { $name:; } }
# 4. get a list of files to create
$files = ['a', 'list', 'of', 'files']
# 5. declare create_a_file resources for all files
create_a_file { $files:; }
# 6. realize myfile resources for all virtually declared myfile resource types
Myfile <||> # yes, capital M
}
# 7. declare resouce type foo
class { 'foo':; }