Felder eines Objekts (Client) ändern
-
Hallo zusammen,
ich lege per API ein neues Objekt vom Typ Client an. Hier kann ich Basisdaten mittels cmdb.object.create übermitteln. Als Return bekomme ich die ID aus iDoIt. Anhand dieser ID versuche ich im Nachgang das Element weiter mit Informationen anzureichern. Vor allem aus dem Bereich C__CATG__MODEL sprich Hersteller, Seriennummer etc.
1. Objekt mit Basisdaten erstellen
### Create object if not single request params = { "type": "C__OBJTYPE__CLIENT", "title": "Device from API", "category": 2, "cmdb_status": 1, "description": "Client created from Jamf via API" } jsondata = objIdoit.getJsonData(method='cmdb.object.create', params=params)
2. Datensatz im Nachgang anreichern
#Update device params = { "id": 12345, "title": "Ein neuer fancy Devicename", "category": "C__CATG__MODEL", "data": { "manufacturer":13, "serial": "12345678", } } jsondata = objIdoit.getJsonData(method='cmdb.object.update', params=params)
so gehts leider auch nicht
#Update device params = { "id": 12345, "title": "Ein neuer fancy Devicename", "C__CATG__MODEL":{ "manufacturer":13, "serial": "12345678", } } jsondata = objIdoit.getJsonData(method='cmdb.object.update', params=params)
3. Am Ende noch einen Contact zuweisen (so weit bin ich aber noch nicht)
Leider klappt Schritt 2 nicht....da passt meine Schreibweise der Daten nicht. Es gibt aber auch nirgends ne gscheide (!) Doku/Anleitung für sowas
Jemand ne IDee?
Vg Frank
-
Hab ne Lösung....man muss mal wieder eine ganz andere Funktion, nämlich cmdb.category.savem verwenden....
params = { "object": 123456, "category": "C__CATG__MODEL", "data":{ "manufacturer":13, "serial": "12345dddd678", } } jsondata = objIdoit.getJsonData(method='cmdb.category.save', params=params)``` Und auch hier kann man nur einen einzelnen BEreich bearbeiten. Sprich wenn man dann noch was in GLOBAL ändern will, muss man noch mal ne Abfrage schießen.
-
ich denke dir sollten die Infos aus der Knowledge Base helfen.
-> https://kb.i-doit.com/en/i-doit-pro-add-ons/api/methods/index.html