3.1 Overview

The entry point to the REST client API is https://[serveraddress]/rest.  This root resource contains a list of related links.

[Request]
> curl –k –u admin:novell https://amethyst.wal.novell.com:8443/rest
 
[Response]
{
   "links":[{ 
      "rel":"binders",
      "href":"/binders"
   },{
      "rel":"library_entities",
      "href":"/workspaces/1/library_entities"
   },{
      "rel":"net_folders",
      "href":"/net_folders"   
   },{
      "rel":"principals",
      "href":"/principals"    
   },{
      "rel":"release_info",
      "href":"/release_info" 
   },{
      "rel":"self",
      "href":"/self" 
   },{
      "rel":"zone_config",
      "href":"/zone_config"
   },{
     ...
   },...]
}

3.1.1 Resource Representations

BaseRestObject

{
  "href":string,
  "links":[ 
    Link Resource 
  ]   
}

Binder

Extends DefinableEntity

{
  "path": string,
  "library_info": LibraryInfo Resource
}

BinderBrief

Extends DefinableEntityBrief

{
  "path": string,
  "library": boolean,
  "mirrored": boolean,
  "home_dir": boolean,
  "library_info": LibraryInfo Resource
}

DefinableEntity

Extends SearchableObject

{
  "id": long,
  "parent_binder": ParentBinder Resource,
  "title": string,
  "description": Description Resource,  
  "entity_type": string ("folder", "folder_entry", "group", "user", or "workspace"),
  "permalink": string,
  "creation": HistoryStamp Resource,
  "modification": HistoryStamp Resource  
}

DefinableEntityBrief

Extends SearchableObject

 "id": long,
 "parent_binder": ParentBinder Resource,
 "title": string,
 "description": Description Resource, 
 "entity_type": string ("folder", "folder_entry", "group", "user", or "workspace"),
 "permalink": string,
 "creation": HistoryStamp Resource,
 "modification": HistoryStamp Resource

Description

{
  "text": string,
  "format": integer (1=html, 2=text),
  "format_str": string ("html" or "text")   
}

DesktopAppConfig

{
  "enabled": boolean,
  "allow_cached_password", boolean,
  "auto_update_url": string,
  "max_file_size": long,
  "sync_interval": integer,
  "process_config": DesktopAppProcessConfigApp Resource
}

DesktopAppProcessConfig

{
  "allow_unlisted_processes": boolean,
  "allow_unlisted_process_override": boolean,
  "allowed_processes":[ string ],
  "blocked_processes":[ string ]
}

EntityId

{
  "id": long,
  "href": string,
  "type": string ("folder", "folderEntry", "user", "group" or "workspace")
}

FileProperties

{
  "id": string,
  "name": string,
  "doc_type": "file",
  "creation": HistoryStamp Resource,
  "modification": HistoryStamp Resource,
  "length": long,
  "md5": string,
  "version_number": integer,
  "owning_entity": EntityId Resource,
  "parent_binder": ParentBinder Resource,
  "permalink": string,
  "links": [
    Link Resource
  ]
}

Folder

Extends Binder

{
  "library": boolean,
  "mirrored": boolean
}

HistoryStamp

{
  "principal": LongIdLinkPair,
  "date": iso_8601_date
}

LibraryInfo

{
  "mod_date": iso_8601_date,
  "disk_space": long,
  "file_count": integer,
  "folder_count": integer,
  "mirrored_sync_date": iso_8601_date
}

Link

{
  "rel": string,
  "href": string   
}

Locale

{
  "country": string,
  "language": string  
}

LongIdLinkPair

{
  "id": long,
  "href": string   
}

MobileAppConfig

{
  "enabled": boolean,
  "allow_cached_password": boolean,
  "allow_cached_content": boolean,
  "allow_play_with_other_apps": boolean,
  "force_pin_code": boolean,
  "sync_interval": integer,
  "allow_cut_copy": boolean,
  "allow_screen_capture": boolean,
  "allow_rooted_device": boolean,
  "allow_open_in_apps": string ("all", "none" or "selected"),
  "android_app_whitelist": [
    string
  ],
  "ios_app_whitelist": [
    string
  ] 
}

ParentBinder

{
  "id": long,
  "href": string,
  "path": string
}   

Principal

Extends DefinableEntity

{
  "disabled": boolean, 
  "email": string,
  "name": string 
}

SearchableObject

Extends BaseRestObject

{
  "doctype": string ("binder", "file" or "entry")
}

StringIdLinkPair

{
  "id": string,
  "href": string   
}

User

Extends Principal

{
  "first_name": string,
  "middle_name": string,
  "last_name": string,
  "organization": string, 
  "phone": string,
  "locale": Locale Resource,
  "time_zone": string,
  "avatar": StringIdLinkPair resource, 
  "disk_space_quota": long, 
  "disk_space_used": long,
  "file_size_limit": long,
  "hidden_files_folder": LongIdLinkPair Resource,
  "workspace": LongIdLinkPair Resource,
  "mobile_app_config": MobileAppConfig Resource,
  "desktop_app_config": DesktopAppConfig Resource,
  "groups": [
    LongIdLinkPair Resource
  ]         
} 

Workspace

Extends Binder

{
}