Hi Dirk,

this is possible using the Resource API
<https://puppet.com/docs/puppet/6.0/custom_resources.html>, and instead of
using the `set`
<https://github.com/puppetlabs/puppet-resource_api/blob/241916209b92e9ef17bcba7f2d25fcf8b91d301e/lib/puppet/resource_api/simple_provider.rb#L9-L50>
method implemented in SimpleProvider (which is the default if you do `pdk
new provider`) create your own simpler version.

The Resource API is part of puppet 6, and available as side-loadable gem
for previous versions. There is a puppet module
<https://forge.puppet.com/puppetlabs/resource_api> to install it.


Regards, David

On Mon, Feb 25, 2019 at 7:47 AM Dirk Heinrichs <dhein...@opentext.com>
wrote:

> Hi,
>
> I need to write a custom type to configure a third party tool through REST
> API calls. This means I have to:
>
>
>    1. Get the configuration via REST call and provide it as hash
>    2. Modify the requested attributes
>    3. Upload the modified configuration and request the the tool to
>    restart itself (both via REST API).
>
>
> This doesn't sound like a classical ensurable type to me. However, I've
> got some difficulties to understand how to write a type that isn't
> ensurable and how such a type would interact with its provider (in case I
> need one at all), so that it's still idempotent. The resource call should
> then look like this:
>
> myconfig { 'somename':
> option1 => 'value1',
> option2 => 'value2',
> ...,
> require => [Something],
> }
>
> Could someone please point me into the right direction?
>
> Thanks a lot...
>
> Dirk
>
> --
>
> *Dirk Heinrichs*
> Senior Systems Engineer, Delivery Pipeline
> OpenText ™ Discovery | Recommind
> *Phone*: +49 2226 15966 18 <+49%202226%201596618>
> *Email*: dhein...@opentext.com
> *Website*: www.recommind.de
> Recommind GmbH, Von-Liebig-Straße 1, 53359 Rheinbach
> <https://maps.google.com/?q=Von-Liebig-Stra%C3%9Fe+1,+53359+Rheinbach&entry=gmail&source=g>
> Vertretungsberechtigte Geschäftsführer John Marshall Doolittle, Gordon
> Davies, Christian Waida, Registergericht Amtsgericht Bonn, Registernummer
> HRB 10646
> This e-mail may contain confidential and/or privileged information. If you
> are not the intended recipient (or have received this e-mail in error)
> please notify the sender immediately and destroy this e-mail. Any
> unauthorized copying, disclosure or distribution of the material in this
> e-mail is strictly forbidden
> Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte
> Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail
> irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und
> vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte
> Weitergabe dieser Mail sind nicht gestattet.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to puppet-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/puppet-users/192ca5b4da8bda73365493c34a48dc85d2c7a2d9.camel%40opentext.com
> <https://groups.google.com/d/msgid/puppet-users/192ca5b4da8bda73365493c34a48dc85d2c7a2d9.camel%40opentext.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
-- 
Cheers, David

https://twitter.com/dev_el_ops

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/CALF7fHazGnRuVFVwPGPAp_Ku7aKBRF1J5MgLEiHB0Drfw0P8Sg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to