>
Die LeitzCloud API basiert auf REST. Unsere API ist so konzipiert, dass sie, um vorhersehbare, ressourcenorientierte URLs zu haben, HTTP-Antwortcodes verwenden können, die API-Fehler anzeigen. Wir verwenden integrierte HTTP-Funktionen, wie z.B. HTTP-Authentifizierung und HTTP-Verben, die von handelsüblichen HTTP-Clients verstanden werden können. JSON wird in allen API Antworten, einschließlich Fehlern, zurückgeschickt.
https://<hostname:port>/api/2
Alle Anfragen an die LeitzCloud API müssen über HTTPS Wege erfolgen. Nicht-HTTPS-Anfragen werden abgelehnt.
LeitzCloud verwendet herkömmliche HTTP-Antwortcodes, um den Erfolg oder Misserfolg einer API-Anfrage anzuzeigen. Im Allgemeinen werden Codes im Bereich 2xx verwendet, die einen Erfolg angeben. Codes im Bereich 4xx zeigen einen Fehler an, der sich aus den bereitgestellten Informationen ergibt (d.h. ein erforderlicher Parameter war fehlend oder ungültig, die Anforderung ist fehlerhaft, etc.) und Codes im Bereich von 5xx zeigen einen Fehler mit dem LeitzCloud-Server an.
Alle API-Antworten geben ein JSON-Objekt zurück. Aus Gründen der Konsistenz gilt dies auch für den Fall, dass der HTTP-Statuscode den vollen Funktionsumfang beantworten kann. Beispielsweise zeigen einige API-Methoden einfach an, dass sie mit einem HTTP 200-Statuscode erfolgreich waren. In diesen Fällen ist die Antwort wie folgt:
HTTP status code: 200
Response body:
{
"status": "ok"
}
Ein weiterer Fall ist die Rückgabe eines HTTP 304-Statuscodes, der angibt, dass der Client seine zwischengespeicherte Antwort aus einer früheren Version verwenden sollte. Zum Beispiel:
HTTP status code: 304
Response body:
{
"status": "not_modified"
}
Genaue Antworten finden Sie in den Details der einzelnen Methoden.
Im Fall einer Fehlermeldung verwendet die API einen entsprechenden HTTP-Statuscode in der Antwort. JSON gibt eine Angabe der Fehlerart und falls vorhanden, eine lesbare Beschreibung des Fehlers an.
Im Folgenden finden Sie häufige Fehler, die bei der Arbeit mit der API auftreten können:
HTTP status code: 400
Response body:
{
"error": "invalid_request"
}
HTTP status code: 401
Response body:
{
"error": "access_denied"
}
HTTP status code: 403
Response body:
{
"error": "forbidden"
}
HTTP status code: 404
Response body:
{
"error": "not_found"
}
HTTP status code: 500
Response body:
{
"error": "unknown"
}
HTTP status code: 400
Response body:
{
"error": "insecure_transport",
"error_description": "Requests MUST utilize https."
}
HTTP status code: 400
Response body:
{
"error": "invalid_request",
"error_description": "Missing required parameter: <param>"
}
HTTP status code: 400
Response body:
{
"error": "invalid_request",
"error_description": "Invalid value for parameter: <param>"
}
HTTP status code: 400
Response body:
{
"error": "invalid_date_format",
"error_description": "Invalid date format. The expected format is: JJJJ-MM-TT"
}
HTTP status code: 400
Response body:
{
"error": "invalid_datetime_format",
"error_description": "Invalid datetime format. The expected format is: JJJJ-MM-TT SS:MM:SS"
}
Fehler, die für bestimmte Methoden spezifisch sind, können in den Methodendetails gefunden werden.
Die wichtigsten API-Versionen werden anhand der Endpunkt-URL ausgewählt. Es ist unsere Absicht, die Abwärtskompatibilität innerhalb eines großen Zeitraums aufrechtzuerhalten, außer wenn es sich um Sicherheitsprobleme handelt. Die verwendete Minor-API-Version kann durch Aufruf der
Version Methode
festgelegt werden.
Sofern nicht anders angegeben, erfordern alle LeitzCloud API-Methoden eine Authentifizierung über OAuth2. Derzeit unterstützt es das Passwort,refresh token grants, mit authorization code und client credential grants, die in naher Zukunft kommen.
Der OAuth2-Anbieter ist nicht spezifisch für eine API-Version. Weitere Informationen zum Erhalten, Aktualisieren und Widerrufen von OAuth2-Zugriffstoken finden Sie unter der OAuth2-Dokumentation.
Die Version
Methode gibt die genaue API-Version im Format <major>.<minor>.<revision> zurück.
Eine Authentifizierung ist nicht erforderlich.
GET /api/2/version
HTTP status code: 200
Response body:
{
"version": "2.0.9"
}
"root"
Der eindeutige Identifikator der Rootdatei
Der Name der Rootdatei
"/"
Ob die Rootdatei gesperrt ist
Der Typ der Rootdatei: "Synchronisieren", "Teilen" oder "Sichern"
Die Gesamtgröße der Rootdatei in Bytes
Die Gesamtgröße der Rootdatei in menschengerechter Formatierung
Eine Liste der Berechtigungen des authentifizierten Benutzers auf der Rootdatei
Ein Hash der Root-Metadaten, die für das Ergebnis-Caching verwendet werden
{
"children": [
...child files and folders...
],
"hash": "<hash>",
"id": 1,
"is_locked": false,
"name": "Example Files",
"path": "/",
"permissions": [
"FILE_VIEW",
"FILE_READ",
"FILE_WRITE"
],
"root_type": "sync",
"space_used": 10000,
"space_used_formatted": "10k",
"type": "root"
}
"file"
Die eindeutige Kennung der Datei
Die eindeutige Revisionskennung der Datei
Der Bezeichner der Rootdatei, die die Datei enthält
Der absolute Pfad der Datei innerhalb des Root-/ Stammverzeichnisses
Ob die Datei gelöscht wird
Datum und Uhrzeit in UTC, zu dem die Datei im Format JJJJ-MM-TT SS:MM:SS erstellt wurde
Datum Uhrzeit in UTC, in dem die Datei zuletzt im Format JJJJ-MM-TT SS:MM:SS geändert wurde
Die Größe der Datei in Bytes
Die Größe der Datei in menschengerechter Formatierung
Ob die Datei gesperrt ist
Eine Liste der Berechtigungen des authentifizierten Benutzers für die Datei
{
"created": "2015-01-01T01:02:03",
"id": 1,
"is_deleted": false,
"is_locked": false,
"modified": "2015-01-01T02:03:04",
"path": "/path/to/file.ext",
"permissions": [
"FILE_VIEW",
"FILE_READ",
"FILE_WRITE"
],
"revision_id": 1,
"root_id": 1,
"size": 12205,
"size_formatted": "11.92k",
"type": "file"
}
"folder"
Die eindeutige Kennung des Ordners
Der Bezeichner der Rootdatei, die den Ordner enthält
Der absolute Pfad des Ordners innerhalb des Stammverzeichnisses
Ob der Ordner gelöscht wird
Ob der Ordner gesperrt ist
Eine Liste der Berechtigungen des authentifizierten Benutzers für den Ordner
Ein Hash der Ordnermetadaten, die für das Ergebnis-Caching verwendet werden
{
"children": [
...child files and folders...
],
"hash": "<hash>",
"id": 1,
"is_deleted": false,
"is_locked": false,
"path": "/path/to/name",
"permissions": [
"FILE_VIEW",
"FILE_READ",
"FILE_WRITE"
],
"root_id": 1,
"type": "folder"
}
"file_share"
Die eindeutige Kennung der Dateifreigabe
Die Kennung der gemeinsamen Datei oder null, wenn es sich um einen gemeinsamen Ordner handelt
Die Kennung des gemeinsamen Ordners oder null, wenn es sich um eine gemeinsame Datei handelt
Der Bezeichner des Stammverzeichnisses, das die Datei oder den Ordner enthält
Der Share-Hash, mit dem der eindeutige Share-Link erstellt wurde
Das Datum/ Die Uhrzeit in der UTC, zu dem die Freigabe abläuft. Das Format lautet: JJJJ-MM-TT SS:MM:SS oder null, wenn sie keinen Ablaufzeitpunkt besitzt
Ob der Benutzer Lesezugriff hat. Möglicherweise nicht vorhanden, wenn es keinen Benutzerkontext gibt
Ob der Benutzer Schreibzugriff hat. Möglicherweise nicht vorhanden, wenn es keinen Benutzerkontext gibt
Ob der Benutzer Löschzugriff hat. Möglicherweise nicht vorhanden, wenn es keinen Benutzerkontext gibt
{
"creator_id": 2,
"delete_access": false,
"expires": null,
"file_id": 4,
"folder_id": null,
"hash": "06d0d4833ea65c",
"id": 7,
"read_access": true,
"root_id": 3,
"type": "share",
"write_access": false
}
"root_space_usage"
Anzahl der gelöschten Dateien
Anzahl der gelöschten Revisionen
Platzverbrauch der gelöschten Dateien in Bytes
Platzverbrauch der gelöschten Dateien in einer benutzerfreundlichen Formatierung
Gesamtzahl der Dateien
Speicherverbrauch von nicht gelöschten Dateien in Bytes
Platzverbrauch von nicht gelöschten Dateien in einer benutzerfreundlichen Formatierung
Gesamter Platzbedarf in Bytes
Gesamter Platzbedarf in menschengerechter Formatierung
Anzahl der Revisionen
Platzverbrauch von Revisionen in Bytes
Platzverbrauch von Revisionen in menschengerechter Formatierung
Die Gesamtzahl der Roots, die in den Nutzungskennzahlen enthalten sind
{
"del_file_count": 5,
"del_revision_count": 5,
"deleted_size": 395168,
"deleted_size_formatted": "385.91 KB",
"file_count": 504,
"head_size": 41533273,
"head_size_formatted": "39.61 MB",
"physical_size": 43199769,
"physical_size_formatted": "41.20 MB",
"revision_count": 2275,
"revision_size": 1271328,
"revision_size_formatted": "1.21 MB",
"root_count": 21,
"type": "root_space_usage"
}
GET /api/2/files/<root_id>/<file_id>
HTTP status code: 200
Response body:
{
...a file object...
}
GET /api/2/files/<root_id>/<file_id>/download
HTTP status code: 200 Response body: <binary file data>
POST /api/2/files/<root_id>/<file_id>/share
POST /api/2/files/<root_id>/<file_id>/rename
HTTP status code: 400
Response body:
{
"error": "invalid_name"
}
HTTP status code: 400
Response body:
{
"error": "invalid_extension"
}
HTTP status code: 409
Response body:
{
"error": "name_conflict"
}
POST /api/2/files/<root_id>/<file_id>/move
HTTP status code: 409
Response body:
{
"error": "name_conflict"
}
POST /api/2/files/<root_id>/<file_id>/lock
HTTP status code: 200
POST /api/2/files/<root_id>/<file_id>/unlock
HTTP status code: 200
POST /api/2/files/<root_id>/<file_id>/delete
HTTP status code: 200
GET /api/2/files/<root_id>/folder/<folder_id>
include_children
"true" ist.
HTTP status code: 200
Response body:
{
...a folder object...
}
Children
ist eine Liste von Datei- und Ordnermetadatenobjekten innerhalb des Ordners. Sie ist nur vorhanden, wenn include_children
"true" ist.
Der hash
Wert eine Signatur für die Antwortdaten darstellt. Wenn der Hash-Wert in der Antwort
identisch mit dem vom Client übergebenen Hash-Wert ist, dann wird HTTP 304 Not Modified zurückgegeben. Hash
ist nur vorhanden wenn include_children
"true" ist.
POST /api/2/files/<root_id>/folder/<folder_id>/upload
HTTP status code: 200
Response body:
{
...file metadata...
}
HTTP status code: 400
Response body:
{
"error": "no_file_received",
"error_description": "Missing required file: file"
}
HTTP status code: 409
Response body:
{
"error": "policy_error"
}
HTTP status code: 400
Response body:
{
"error": "invalid_name"
}
HTTP status code: 400
Response body:
{
"error": "invalid_extension"
}
HTTP status code: 409
Response body:
{
"error": "name_conflict"
}
POST /api/2/files/<root_id>/folder/<folder_id>/create_folder
HTTP status code: 200
Response body:
{
...folder metadata...
}
HTTP status code: 400
Response body:
{
"error": "invalid_name"
}
HTTP status code: 400
Response body:
{
"error": "name_too_long"
}
HTTP status code: 409
Response body:
{
"error": "name_conflict"
}
GET /api/2/files/<root_id>/folder/<folder_id>/download
HTTP status code: 200 Response body: <binary zip file data>
POST /api/2/files/<root_id>/folder/<folder_id>/share
POST /api/2/files/<root_id>/folder/<folder_id>/rename
HTTP status code: 400
Response body:
{
"error": "invalid_name"
}
HTTP status code: 400
Response body:
{
"error": "name_too_long"
}
HTTP status code: 409
Response body:
{
"error": "name_conflict"
}
POST /api/2/files/<root_id>/folder/<folder_id>/move
HTTP status code: 409
Response body:
{
"error": "name_conflict"
}
POST /api/2/files/<root_id>/folder/<folder_id>/lock
HTTP status code: 200
POST /api/2/files/<root_id>/folder/<folder_id>/unlock
HTTP status code: 200
POST /api/2/files/<root_id>/folder/<folder_id>/delete
HTTP status code: 200
GET /api/2/files/<root_id>
children
in die Antwort einbezogen werden sollen. "true" oder "false". Voreinstellung " true".include_children
"true" ist.
HTTP status code: 200
Response body:
{
...a root object...
}
Mögliche Werte für root_type
sind "sync", "share", und "backup".
Children
ist eine Liste von Datei- und Ordnermetadatenobjekten auf der obersten Ebene des Root. Sie ist nur vorhanden, wenn
include_children
"true" ist.
Der hash
Wert stellt eine Signatur für die Antwortdaten dar. Wenn der Hash-Wert in der Antwort
identisch mit dem vom Client übergebenen Hash-Wert wäre, dann wird HTTP 304 Not Modified zurückgegeben. Hash
ist nur vorhanden wenn include_children
"true" ist.
HTTP status code: 304
POST /api/2/files/<root_id>/upload
HTTP status code: 200
Response body:
{
...file metadata...
}
HTTP status code: 400
Response body:
{
"error": "no_file_received",
"error_description": "Missing required file: file"
}
HTTP status code: 409
Response body:
{
"error": "policy_error"
}
HTTP status code: 400
Response body:
{
"error": "invalid_name"
}
HTTP status code: 400
Response body:
{
"error": "invalid_extension"
}
HTTP status code: 409
Response body:
{
"error": "name_conflict"
}
POST /api/2/files/<root_id>/create_folder
HTTP status code: 200
Response body:
{
...folder metadata...
}
HTTP status code: 400
Response body:
{
"error": "invalid_name"
}
HTTP status code: 400
Response body:
{
"error": "name_too_long"
}
HTTP status code: 409
Response body:
{
"error": "name_conflict"
}
GET /api/2/files/<root_id>/search
HTTP status code: 200
Response body:
{
"results": [
...file and folder metadata...
]
}
GET /api/2/files/<root_id>/modified_since
HTTP status code: 200
Response body:
{
"results": [
...file metadata...
]
}
POST /api/2/files/<root_id>/lock
HTTP status code: 200
POST /api/2/files/<root_id>/unlock
HTTP status code: 200
Die folgenden Fehler können für jede Dateisystemmethode auftreten und sind in den Methodenbeschreibungen nicht ausdrücklich erwähnt.
HTTP status code: 403
Response body:
{
"error": "forbidden"
}
HTTP status code: 404
Response body:
{
"error": "not_found"
}
HTTP status code: 409
Response body:
{
"error": "resource_locked"
}
HTTP status code: 410
Response body:
{
"error": "root_deleted",
"error_description": "Root was previously deleted."
}
HTTP status code: 503
Response body:
{
"error": "temporarily_unavailable",
"error_description": "Service is temporarily unavailable.""
}
Ein Unternehmen repräsentiert eine Sammlung von Personen, Maschinen, Roots und anderen Kinderorganisationen. Zugriffskontrolle, Richtlinien und die meisten Systemeinstellungen werden auf Unternehmensebene angewendet.
"organisation"
Der eindeutige Identifikator für das Unternehmen
Die eindeutige Kennung der übergeordneten Organisation
Der Name der Organisation
Der URL-freundliche Name des Unternehmens
Eine Beschreibung des Unternehmens
Die Kontakt-Email-Adresse des Unternehmens
Der Hostname, den die Agenten Ihrer Organisation für die Verbindung verwenden
Datum/Uhrzeit in UTC, in dem das Unternehmen im Format JJJJ-MM-TT SS:MM:SS angelegt wurde.
Ob die Bandbreitenbegrenzung für das Unternehmen aktiviert ist
Ob das Unternehmen aktiv ist
Datum/Uhrzeit in UTC der Testphase des Unternehmens läuft im Format JJJJJ-MM-TT SS:MM:SS ab
Ob der Privatsphärenmodus für das Unternehmen aktiviert ist
{
"active": true,
"bandwidth_throttle": null,
"created": "2013-10-08T05:45:40",
"default_encryption": 1,
"description": "",
"email": "organization@example.com",
"email_server_id": null,
"email_templates": false,
"hostname": "",
"id": 2,
"name": "Example Organization",
"parent_id": 1,
"plan_id": null,
"policy": {
...a policy object...
},
"privacy_mode": false,
"share_disclaimer": null,
"slug": "example-organization",
"subscription_uuid": null,
"throttle_exception_days": null,
"throttle_exception_dow": null,
"throttle_exception_end": null,
"throttle_exception_start": null,
"throttle_exception_throttle": null,
"throttled": false,
"trial_until": null,
"type": "organization"
}
"policy"
Der Identifikator des Unternehmens, zu dem die Richtlinie gehört
Ob Administratoren Dateien durchsuchen können
Ob Administratoren Remote-Dateien anzeigen können
Ob Administratoren Benutzer anlegen können
Ob Backups aktiviert sind
Ob benutzerdefiniertes Branding aktiviert ist
Eine kommagetrennte Liste von Dateierweiterungen, die nicht hochgeladen werden dürfen
Eine kommagetrennte Liste von Dateierweiterungen
Die maximale hochgeladene Dateigröße in XX
Die maximal zulässige Anzahl von Unterorganisationen
Die maximal zulässige Anzahl von Benutzern
Die minimal zulässige Anzahl von Benutzern
Ob die PSA-Integration aktiviert ist
Ob gelöschte Dateien automatisch gelöscht werden
Die Häufigkeit, mit der gelöschte Dateien automatisch gelöscht werden
Ob mobile App-Benutzer eine PIN-Verriegelung verwenden müssen
Ob Benutzer aufgefordert werden, eine zweistufige Verifizierung zu aktivieren
Ob Benutzer aufgefordert werden, eine zweistufige Verifizierung zu aktivieren
Der maximale Raum, der von dem Unternehmen genutzt werden darf
Der maximale Platz, der von dem Unternehmen in menschenfreundlicher Form genutzt werden darf
Ob Dateirevisionen automatisch abgeschnitten/ getrimmt werden
Ob es Benutzern erlaubt ist, Backup-Roots zu erstellen
Ob Benutzer Dateien freigeben dürfen
Ob Benutzer Dateien sperren dürfen
Ob es Benutzern erlaubt ist, gelöschte Dateien unwiderruflich zu löschen
Ob es Benutzern erlaubt ist, Dateirevisionen zu trimmen
Ob der WebDAV-Zugriff aktiviert ist
{
"ad_enabled": true,
"admin_browse_files": true,
"admin_browse_remote": true,
"admin_create_users": true,
"backups_enabled": true,
"branding_enabled": true,
"change_password_frequency": null,
"company_id": 2,
"deactivate_token_frequency": "",
"excluded_extensions": ".$$,.$db,.113,.3g2,.3gp,.3gp2,.3gpp,.3mm,.a,.abf,.abk,.afm,.ani,.ann,.asf,.avi,.avs,.bac,.bak,.bck,.bcm,.bdb,.bdf,.bkf,.bkp,.bmk,.bsc,.bsf,.cab,.cf1,.chm,.chq,.chw,.cnt,.com,.cpl,.cur,.dev,.dfont,.dll,.dmp,.drv,.dv,.dvd,.dvr,.dvr-ms,.eot,.evt,.exe,.ffa,.ffl,.ffo,.ffx,.flc,.flv,.fnt,.fon,.ftg,.fts,.fxp,.gid,.grp,.hdd,.hlp,.hxi,.hxq,.hxr,.hxs,.ico,.idb,.idx,.ilk,.img,.inf,.ini,.ins,.ipf,.iso,.isp,.its,.jar,.jse,.kbd,.kext,.key,.lex,.lib,.library-ms,.lnk,.log,.lwfn,.m1p,.m1v,.m2p,.m2v,.m4v,.mem,.mkv,.mov,.mp2,.mp2v,.mp4,.mpe,.mpeg,.mpg,.mpv,.mpv2,.msc,.msi,.msm,.msp,.mst,.ncb,.nt,.nvram,.o,.obj,.obs,.ocx,.old,.ost,.otf,.pch,.pf,.pfa,.pfb,.pfm,.pnf,.pol,.pref,.prf,.prg,.prn,.pvs,.pwl,.qt,.rdb,.reg,.rll,.rox,.sbr,.scf,.scr,.sdb,.shb,.suit,.swf,.swp,.sys,.theme,.tivo,.tmp,.tms,.ttc,.ttf,.v2i,.vbe,.vga,.vgd,.vhd,.video,.vmc,.vmdk,.vmsd,.vmsn,.vmx,.vxd,.win,.wpk",
"file_server_enabled": false,
"locked_extensions": ".doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.txt,.xlsb,.xlsm,.csv,.docm,.dotx,.dotm,.pub,.wpd,.odt,.ott,.oth,.odm,.ots,.odp,.odg,.otp,.odf,.oxt,.odc,.ods,.vdx,.vsx,.vtx,.one",
"max_file_size": 1,
"monthly_cost_cents": 0,
"monthly_cost_currency": "",
"num_orgs_maximum": 10,
"num_users_maximum": 0,
"num_users_minimum": 0,
"psa_enabled": true,
"purge_deleted": false,
"purge_deleted_frequency": "",
"require_mobile_lock": true,
"require_two_step_auth": false,
"secure_shares": false,
"service_plans_enabled": false,
"space_quota": "1073741824",
"trial_length_days": 30,
"trim_revisions": false,
"trim_revisions_x": "",
"type": "policy",
"user_create_backups": true,
"user_create_shares": true,
"user_lock_files": true,
"user_purge_deleted": false,
"user_trim_revisions": false,
"webdav_enabled": true
}
"organization_usage"
Ein Root Space Nutzungsobjekt der Backup-Nutzungskennzahlen
Ein Root Space Nutzungsobjekt von Kennzahlen zur Nutzung der Team-Shares
Ein Root Space Nutzungsobjekt der gesamten Nutzungskennzahlen für alle Roots
Ein Root Space Nutzungsobjekt der Kennzahlen zur Benutzer-Root-Nutzung
{
"backup_space_usage": {
...a root space usage object...
},
"counts": {
...an organization usage counts object...
},
"team_share_space_usage": {
...a root space usage object...
},
"total_space_usage": {
...a root space usage object...
},
"type": "organization_usage",
"user_space_usage": {
...a root space usage object...
}
}
"organization_usage_counts"
Gesamtzahl der Konten
Anzahl der Admin-Konten
Anzahl der Gruppen
Anzahl der Gäste
Anzahl der Maschinen
Anzahl der Unternehmen
{
"accounts": 11,
"admin_accounts": 5,
"groups": 8,
"guests": 4,
"machines": 6,
"organizations": 7,
"type": "organization_usage_counts"
}
GET /api/2/organization/<organization_id> GET /api/2/organization/<license_key>
HTTP status code: 200
Response body:
{
...an organization object...
}
POST /api/2/organization/<organization_id>/organizations/create
Gibt die erstellte Organisation zurück
HTTP status code: 200
Response body:
{
...an organization object...
}
POST /api/2/organization/<organization_id>/update
Gibt die aktualisierte Organisation zurück
HTTP status code: 200
Response body:
{
...an organization object...
}
POST /api/2/organization/<organization_id>/disable
POST /api/2/organization/<organization_id>/enable
POST /api/2/organization/<organization_id>/delete
POST /api/2/organization/<organization_id>/policy/update
Gibt die aktualisierte Organisation zurück
HTTP status code: 200
Response body:
{
...an organization object...
}
GET /api/2/organization/<organization_id>/organizations
HTTP status code: 200
Response body:
{
"offset": 0,
"results": [
...up to 100 organization objects...
],
"total": 42
}
GET /api/2/organization/<organization_id>/roots
HTTP status code: 200
Response body:
{
"offset": 0,
"results": [
...up to 100 root objects...
],
"total": 42
}
GET /api/2/organization/<organization_id>/root/<root_id>
HTTP status code: 200
Response body:
{
...a root object...
}
GET /api/2/organization/<organization_id>/shares
HTTP status code: 200
Response body:
{
"offset": 0,
"results": [
...up to 100 root objects...
],
"total": 42
}
POST /api/2/organization/<organization_id>/shares/create
Gibt die erstellte Freigabe zurück.
HTTP status code: 200
Response body:
{
...a root object...
}
GET /api/2/organization/<organization_id>/share/<root_id>
HTTP status code: 200
Response body:
{
...a root object...
}
POST /api/2/organization/<organization_id>/share/<root_id>/update
Gibt die aktualisierte Freigabe zurück.
HTTP status code: 200
Response body:
{
...a root object...
}
GET /api/2/organization/<organization_id>/share/<root_id>/subscribers
HTTP status code: 200
Response body:
{
"external_subscribers": {"one@example.com": "invited", "two@example.com": "accepted"},
"from_group": [[2, "web", "COLLABORATOR"], [2, "webdav", "COLLABORATOR"], [2, "future", "COLLABORATOR"]],
"group_subscribers": [[1, "web", "COLLABORATOR"], [1, "webdav", "COLLABORATOR"], [1, "machines", "COLLABORATOR"]],
"subscribers": [[1, "web", "COLLABORATOR"], [3, "web", "COLLABORATOR"], [3, "future", "COLLABORATOR"]]
}
POST /api/2/organization/<organization_id>/share/<root_id>/subscribers/update
HTTP status code: 200
POST /api/2/organization/<organization_id>/share/<root_id>/delete
HTTP status code: 200
GET /api/2/organization/<organization_id>/machines
HTTP status code: 200
Response body:
{
"offset": 0,
"results": [
...up to 100 machine objects...
],
"total": 42
}
GET /api/2/organization/<organization_id>/persons
HTTP status code: 200
Response body:
{
"offset": 0,
"results": [
...up to 100 person objects...
],
"total": 42
}
GET /api/2/organization/<organization_id>/guests
HTTP status code: 200
Response body:
{
"offset": 0,
"results": [
...up to 100 guest objects...
],
"total": 42
}
GET /api/2/organization/<organization_id>/groups
HTTP status code: 200
Response body:
{
"offset": 0,
"results": [
...up to 100 group objects...
],
"total": 12
}
GET /api/2/organization/<organization_id>/auth_sources
HTTP status code: 200
Response body:
{
"offset": 0,
"results": [
...up to 100 authentication source objects...
],
"total": 42
}
GET /api/2/organization/<organization_id>/activity
HTTP status code: 200
Response body:
{
"offset": 0,
"results": [
...up to 100 activity objects in reverse chronological order...
],
"total": 42
}
GET /api/2/organization/<organization_id>/metrics/usage
HTTP status code: 200
Response body:
{
...an organization usage object...
}
Die folgenden Fehler können für jede Organisationsmethode auftreten und werden in den Methodenbeschreibungen nicht explizit erwähnt.
HTTP status code: 403
Response body:
{
"error": "forbidden"
}
HTTP status code: 404
Response body:
{
"error": "not_found"
}
Ein Personenobjekt repräsentiert ein Leitz-Cloud-Benutzerkonto.
"person"
Der eindeutige Identifikator für die Person
Die E-Mail-Adresse der Person
Der Benutzername der Person
Die Kennung der Firma, zu der die Person gehört
Der Vorname der Person
Der Nachname der Person
Der Name der Person, der für die Anzeige formatiert ist
Der Identifikator der Sync-Root der Person
Eine Liste von Root-Objekten bei dem die Person abonniert ist
Das Raumkontingent der Person in Bytes
Das Raumkontingent der Person in menschengerechter Formatierung
Der von der Person belegte Platz in Bytes
Der Platz, den die Person in einer menschenfreundlichen Formatierung einnimmt
Ob die Firmenpolitik der Person es erlaubt, Teamshares anzulegen.
Das erweiterte Unternehmen Richtlinienobjekt
{
"can_share": true,
"company_policy": {
...
},
"display_name": "First Last",
"email": "user@example.com",
"first_name": "First",
"id": 1,
"last_name": "Last",
"root_id": 1,
"roots": [
...
],
"space_quota": 10000,
"space_quota_formatted": "10k",
"space_usage": 100,
"space_usage_formatted": "100b",
"type": "person",
"username": ""
}
Die person
Methode gibt Informationen über den authentifizierten Benutzer oder einen Benutzer mit einer bestimmten ID oder E-Mail-Adresse zurück.
GET /api/2/person GET /api/2/person/<person_id> GET /api/2/person/<email>
HTTP status code: 200
Response body:
{
...a person object...
}
POST /api/2/person/create
Gibt die erstellte Person zurück.
HTTP status code: 200
Response body:
{
...a person object...
}
POST /api/2/person/<person_id>/update
Gibt die aktualisierte Person zurück.
HTTP status code: 200
Response body:
{
...a person object...
}
POST /api/2/person/<person_id>/delete
HTTP status code: 200
Erstellen Sie eine Synchronisierungs-Root für ein Konto, wenn es noch nicht vorhanden ist
POST /api/2/person/<person_id>/roots/create
Gibt die erstellte Root zurück.
HTTP status code: 200
Response body:
{
...a root object...
}
GET /api/2/person/<person_id>/activity
HTTP status code: 200
Response body:
{
"offset": 0,
"results": [
...up to 100 activity objects in reverse chronological order...
],
"total": 42
}
Die folgenden Fehler können für jede Personenmethode auftreten und werden in den Methodenbeschreibungen nicht explizit erwähnt.
HTTP status code: 403
Response body:
{
"error": "forbidden"
}
HTTP status code: 404
Response body:
{
"error": "not_found"
}
Ein Gast repräsentiert ein eingeschränktes Konto mit eingeschränktem Zugriff auf freigegebene Dateien.
"guest"
Die eindeutige Kennung für den Gast
Die Kennung der Firma, zu der der Gast gehört
Die Kennung der Person, die den Gast angelegt hat
Die Email-Adresse des Gastes
Der Vorname des Gastes
Der Nachname des Gastes
Ob das Gastkonto aktiv ist
Datum/Uhrzeit in UTC, in dem der Gast im Format JJJJ-MM-TT SS:MM:SS angelegt wurde
{
"active": true,
"company_id": 1,
"created": "2015-01-01T01:02:03",
"creator_id": 1,
"email": "guest@example.com",
"first_name": "First",
"id": 1,
"last_name": "Last",
"type": "guest"
}
Erstellen Sie sich einen Gast über seine ID oder Email-Adresse.
GET /api/2/guest/<guest_id> GET /api/2/guest/<email>
HTTP status code: 200
Response body:
{
...a guest object...
}
POST /api/2/guest/create
Gibt den erstellten Gast zurück.
HTTP status code: 200
Response body:
{
...a guest object...
}
POST /api/2/guest/<guest_id>/update
Gibt den aktualisierten Gast zurück.
HTTP status code: 200
Response body:
{
...a guest object...
}
POST /api/2/guest/<guest_id>/delete
HTTP status code: 200
GET /api/2/guest/<guest_id>/shares
HTTP status code: 200
Response body:
{
"results": [
...file share objects...
]
}
POST /api/2/guest/<guest_id>/convert
Gibt das erstellte Konto zurück.
HTTP status code: 200
Response body:
{
...a person object...
}
Tritt auf, wenn die Umwandlung des Gastkontos das Kontolimit des Unternehmens überschreiten würde.
HTTP status code: 409
Response body:
{
"error": "user_limit_exceeded",
"error_description": "User limit has been reached."
}
Eine Gruppe stellt eine Sammlung von Benutzern und anderen Gruppen dar.
"group"
Der eindeutige Identifikator für die Gruppe
Die eindeutige Kennung für die Organisation der Gruppe
Der Gruppenname
Datum/Uhrzeit in UTC, in dem die Gruppe im Format JJJJ-MM-TT SS:MM:SS erstellt wurde.
Ob die Gruppe aktiv ist
{
"active": true,
"company_id": 2,
"created": "2016-03-30T05:57:23",
"id": 1,
"name": "Example Group",
"type": "group"
}
POST /api/2/group/create
Gibt die erstellte Gruppe zurück.
HTTP status code: 200
Response body:
{
...a group object...
}
GET /api/2/group/<group_id>
HTTP status code: 200
Response body:
{
...a group object...
}
POST /api/2/group/<group_id>/update
Gibt die aktualisierte Gruppe zurück.
HTTP status code: 200
Response body:
{
...a group object...
}
GET /api/2/group/<group_id>/members
HTTP status code: 200
Response body:
{
"member_groups": [
2
],
"member_groups_from_group": [
3
],
"members": [
2,
3
],
"members_from_group": [
1
]
}
include_from_group
"true" ist.include_from_group
"true" ist.POST /api/2/group/<group_id>/members/update
HTTP status code: 200
POST /api/2/group/<group_id>/delete
HTTP status code: 200
Ein Computer stellt eine Vorrichtung dar, die zur Verbindung mit der LeitzCloud verwendet wird, wie beispielsweise ein Computer, Telefon oder Tablett.
"machine"
Die eindeutige Kennung für die Maschine
Ein beschreibender Name für das Gerät, wie beispielsweise der Hostname oder der Gerätehersteller und das Modell
Datum/Uhrzeit in UTC, an dem sich das Gerät zuletzt im Format JJJJ-MM-TT SS:MM:SS angemeldet hat. Wird vom Desktop-Agenten verwendet
Eine global eindeutige Kennung, die der Maschine zugeordnet ist
Datum/Uhrzeit in UTC, in dem das Gerät im Format JJJJ-MM-TT SS:MM:SS erstellt wurde
Der Systemtyp des Gerätes, wie z.B. "win", "osx", "android", "ios" oder "winphone"
Die Systemversion des Gerätes, z.B. "5.1.0"
Die auf der Maschine installierte Agentenversion. Wird vom Desktop-Agenten verwendet
Ob die Bandbreitenbegrenzung für die Maschine aktiviert ist
Der Gerätentyp
Das Datum/Uhrzeit in UTC, in dem die Maschine zuletzt im Format JJJJ-MM-TT SS:MM:SS getrennt wurde. Wird vom Desktop-Agenten verwendet
{
"agent_version": null,
"bandwidth_throttle": null,
"created": "2015-01-01T01:02:03",
"dns_name": "Google Nexus 6",
"guid": "794f7f67-3bd6-407c-9274-be735b880143",
"health_report_period_minutes": null,
"id": 1,
"last_disconnect": null,
"last_login": null,
"locked": false,
"machine_type": "mobile",
"manual_collisions": true,
"nickname": null,
"os_type": "android",
"os_version": "5.1.0",
"throttle_exception_days": null,
"throttle_exception_dow": null,
"throttle_exception_end": null,
"throttle_exception_start": null,
"throttle_exception_throttle": null,
"throttled": false,
"type": "machine"
}
Eine Maschinenzuordnung stellt einen Pfad auf einem Dateiserver-fähigen Rechner dar, der einem Root zugeordnet ist.
"machine_mapping"
Der eindeutige Identifikator für das Mapping
Die Kennung des Dateiserver-fähigen Rechners, dem die Root zugeordnet ist
Der Mapping-Name
Der Pfad auf dem Dateiserver-fähigen Computer, dem die Root zugeordnet ist
Die Kennung des Kontos, wenn die abgebildete Root eine Kontoroot ist
Der Bezeichner der abgebildeten Root
Ob die zugeordnete Root eine Freigabe ist
{
"id": 1234,
"machine_id": 1,
"name": "Example Share",
"path": "C:\Example1",
"person_id": null,
"root_id": 2,
"share": true,
"type": "machine_mapping"
}
Ein Backup stellt eine Backup-Root dar, die einem Pfad auf einem Dateiserver-fähigen Rechner zugeordnet ist.
"backup"
Die eindeutige Kennung für das Backup
Die Kennung des Dateiserver-fähigen Rechners, dem die Root zugeordnet ist
Der Pfad auf dem Dateiserver-fähigen Computer, von dem aus Dateien gesichert werden
{
"id": 1234,
"machine_id": 1,
"path": "C:\\Example",
"type": "backup"
}
GET /api/2/machine/<machine_id>
HTTP status code: 200
Response body:
{
...a machine object...
}
GET /api/2/machine/<machine_id>/status
HTTP status code: 200
Response body:
{
"results": {
"subscriptions": [
{
"excl_files": 1,
"rsub_id": 1234,
"synced": true,
"synced_folder": "C:\\Example"
}
],
"synced": true,
"transfers": []
}
}
POST /api/2/machine/<machine_id>/server/enable
HTTP status code: 200
POST /api/2/machine/<machine_id>/server/disable
HTTP status code: 200
POST /api/2/machine/<machine_id>/ls
HTTP status code: 200
Response body:
{
"results": [
"Example1",
"Example2"
]
}
GET /api/2/machine/<machine_id>/mappings
HTTP status code: 200
Response body:
{
"results": [
...machine_mapping objects...
]
}
POST /api/2/machine/<machine_id>/mappings/create
Gibt das erstellte Mapping zurück.
HTTP status code: 200
Response body:
{
...a machine_mapping object...
}
GET /api/2/machine/<machine_id>/mapping/<mapping_id>
HTTP status code: 200
Response body:
{
...a machine_mapping object...
}
POST /api/2/machine/<machine_id>/mapping/<mapping_id>/delete
HTTP status code: 200
GET /api/2/machine/<machine_id>/backups
HTTP status code: 200
Response body:
{
"results": [
...backup objects...
]
}
POST /api/2/machine/<machine_id>/backups/create
Gibt das erstellte Backup zurück
HTTP status code: 200
Response body:
{
...a backup object...
}
GET /api/2/machine/<machine_id>/backup/<root_id>
HTTP status code: 200
Response body:
{
...a backup object...
}
POST /api/2/machine/<machine_id>/backup/<root_id>/restore
Returns the updated backup object.
HTTP status code: 200
Response body:
{
...a backup object...
}
POST /api/2/machine/<machine_id>/backup/<root_id>/delete
HTTP status code: 200
Die folgenden Fehler können bei jedem Maschinenverfahren auftreten und sind in den Methodenbeschreibungen nicht explizit erwähnt.
HTTP status code: 403
Response body:
{
"error": "forbidden"
}
HTTP status code: 404
Response body:
{
"error": "not_found"
}
Eine Aktivität stellt eine protokollierte Aktion dar, die Details der agierenden Einheit und der betroffenen Einheit enthält.
"activity"
Der eindeutige Identifikator für die Aktivität
Der Entitätstyp, der die Aktivität auslöst
Die Beschreibung der Einheit, die die Aktivität auslöst
Zusätzliche Beschreibung der ergriffenen Maßnahmen
Der Entitätstyp, auf den reagiert wurde
Die Beschreibung des Entitätstyps, auf den reagiert wird
Die Beschreibung der getroffenen Maßnahmen
Die Kennung der Aktivitätsart für diese Aktivität
Datum/Uhrzeit in UTC, zu dem die Aktivität im Format JJJJ-MM-TT SS:MM:SS stattgefunden hat
{
"acted_on_company_id": 1,
"acted_on_group_id": null,
"acted_on_guest_id": null,
"acted_on_machine_id": null,
"acted_on_person_id": null,
"acted_on_root_id": null,
"acted_on_text": "Example Company",
"acted_on_type": "site",
"action_text": null,
"activity_type_id": 8,
"actor_company_id": null,
"actor_guest_id": null,
"actor_machine_id": null,
"actor_person_id": 1,
"actor_text": "First Last",
"actor_type": "person",
"created": "2015-01-01T01:02:03",
"data_text": "increased from 4.00G to 100.00G",
"id": 123,
"processed": true,
"type": "activity"
}
"activity_type"
Der eindeutige Identifikator für die Aktivitätsart
Die Beschreibung der Aktivität
ob die Aktivität im Rahmen eines Gerätes ausgeführt wird
ob die Aktivität im Rahmen eines Benutzers durchgeführt wird
ob die Aktivität auf Systemebene ausgeführt wird
{
"activity": "added organization",
"id": 3,
"machine_scope": false,
"system_scope": false,
"type": "activity_type",
"user_scope": false
}
GET /api/2/activity/types
HTTP status code: 200
Response body:
{
"results": [
...a list of activity objects...
]
}
GET /api/2/activity/<activity_id>
HTTP status code: 200
Response body:
{
...an activity object...
}
POST /api/2/activity/create
Gibt den erstellten Aktivitätsdatensatz zurück.
HTTP status code: 200
Response body:
{
...an activity object...
}
Die folgenden Fehler können für jede Aktivitätsmethode auftreten und werden in den Methodenbeschreibungen nicht explizit erwähnt.
HTTP status code: 403
Response body:
{
"error": "forbidden"
}
HTTP status code: 404
Response body:
{
"error": "not_found"
}
Eine Authentifizierungsquelle stellt einen Verzeichnisserver dar, von dem Benutzer importiert werden können.
"auth_source"
Die eindeutige Kennung für die Authentifizierungsquelle
Der Hostname des Verzeichnis-Servers
Der Domänenname auf dem Verzeichnisserver, der für den Import von Benutzern verwendet werden soll
Der Benutzername, mit dem auf den Verzeichnisserver zugegriffen wurde
Die Portnummer des Verzeichnis-Servers
Ob der Verzeichnisserver SSL/TLS verwendet
{
"domain": "example.com",
"host": "localhost",
"id": 1,
"login": "example",
"machine_id": null,
"port": null,
"protocol": null,
"ssl": false,
"type": "auth_source"
}