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 <[email protected]> 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*: [email protected] > *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 [email protected]. > 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 [email protected]. 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.
