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.

Reply via email to