Estamos usando o backend YAML da Hiera, mas tenho certeza de que o mesmo é possível para o JSON e outros.
Você pode apenas formatar a sua string da maneira que você quer em YAML e o Puppet aceitará isso da forma mais feliz.
Por exemplo:
---
hiera::input: |
my string
with newlines
preserved
Observe o |
após o nome da chave hiera::input
. Ele informa ao analisador YAML que tratar o seguinte valor como um bloco, preservando as novas linhas e qualquer outro recuo.
Consulte as seções 2.3 e 8.1.2 da especificação YAML para informações detalhadas.