# gonextcloud -- import "gitlab.bertha.cloud/partitio/Nextcloud-Partitio/gonextcloud" Package gonextcloud is a Go client for the Nextcloud Provisioning API. For more information about the Provisioning API, see the documentation: https://docs.nextcloud.com/server/13/admin_manual/configuration_user/user_provisioning_api.html ### Usage You use the library by creating a client object and calling methods on it. For example, to list all the Nextcloud's instance users: package main import ( "fmt" "gitlab.bertha.cloud/partitio/Nextcloud-Partitio/gonextcloud" ) func main() { url := "https://www.mynextcloud.com" username := "admin" password := "password" c, err := gonextcloud.NewClient(url) if err != nil { panic(err) } if err := c.Login(username, password); err != nil { panic(err) } defer c.Logout() users, err := c.Users().List() if err != nil { panic(err) } fmt.Println("Users :", users) } ## Usage #### type Apps type Apps struct { } Apps contains all Apps available actions #### func (*Apps) Disable func (a *Apps) Disable(name string) error Disable disables an app #### func (*Apps) Enable func (a *Apps) Enable(name string) error Enable enables an app #### func (*Apps) Infos func (a *Apps) Infos(name string) (types.App, error) Infos return the app's details #### func (*Apps) List func (a *Apps) List() ([]string, error) List return the list of the Nextcloud Apps #### func (*Apps) ListDisabled func (a *Apps) ListDisabled() ([]string, error) ListDisabled lists the disabled apps #### func (*Apps) ListEnabled func (a *Apps) ListEnabled() ([]string, error) ListEnabled lists the enabled apps #### type AppsConfig type AppsConfig struct { } AppsConfig contains all Apps Configuration available actions #### func (*AppsConfig) DeleteValue func (a *AppsConfig) DeleteValue(id, key, value string) error DeleteValue delete the config value and (!! be careful !!) the key #### func (*AppsConfig) Details func (a *AppsConfig) Details(appID string) (map[string]string, error) Details returns all the config's key, values pair of the app #### func (*AppsConfig) Get func (a *AppsConfig) Get() (map[string]map[string]string, error) Get returns all apps AppConfigDetails #### func (*AppsConfig) Keys func (a *AppsConfig) Keys(id string) (keys []string, err error) Keys returns the app's config keys #### func (*AppsConfig) List func (a *AppsConfig) List() (apps []string, err error) List lists all the available apps #### func (*AppsConfig) SetValue func (a *AppsConfig) SetValue(id, key, value string) error SetValue set the config value for the given app's key #### func (*AppsConfig) Value func (a *AppsConfig) Value(id, key string) (string, error) Value get the config value for the given app's key #### type Client type Client struct { } Client is the API client that performs all operations against a Nextcloud server. #### func NewClient func NewClient(hostname string) (*Client, error) NewClient create a new Client from the Nextcloud Instance URL #### func (*Client) Apps func (c *Client) Apps() types.Apps #### func (*Client) AppsConfig func (c *Client) AppsConfig() types.AppsConfig #### func (*Client) GroupFolders func (c *Client) GroupFolders() types.GroupFolders #### func (*Client) Groups func (c *Client) Groups() types.Groups #### func (*Client) Login func (c *Client) Login(username string, password string) error Login perform login and create a session with the Nextcloud API. #### func (*Client) Logout func (c *Client) Logout() error Logout logs out from the Nextcloud API, close the session and delete session's cookie #### func (*Client) Monitoring func (c *Client) Monitoring() (*types.Monitoring, error) Monitoring return nextcloud monitoring statistics #### func (*Client) Notifications func (c *Client) Notifications() types.Notifications #### func (*Client) Shares func (c *Client) Shares() types.Shares #### func (*Client) Users func (c *Client) Users() types.Users #### type GroupFolders type GroupFolders struct { } GroupFolders contains all Groups Folders available actions #### func (*GroupFolders) AddGroup func (g *GroupFolders) AddGroup(folderID int, groupName string) error AddGroup adds group to folder #### func (*GroupFolders) Create func (g *GroupFolders) Create(name string) (id int, err error) Create creates a group folder #### func (*GroupFolders) Get func (g *GroupFolders) Get(id int) (types.GroupFolder, error) Get returns the group folder details #### func (*GroupFolders) List func (g *GroupFolders) List() (map[int]types.GroupFolder, error) List returns the groups folders #### func (*GroupFolders) RemoveGroup func (g *GroupFolders) RemoveGroup(folderID int, groupName string) error RemoveGroup remove a group from the group folder #### func (*GroupFolders) Rename func (g *GroupFolders) Rename(groupID int, name string) error Rename renames the group folder #### func (*GroupFolders) SetGroupPermissions func (g *GroupFolders) SetGroupPermissions(folderID int, groupName string, permission types.SharePermission) error SetGroupPermissions set groups permissions #### func (*GroupFolders) SetQuota func (g *GroupFolders) SetQuota(folderID int, quota int) error SetQuota set quota on the group folder. quota in bytes, use -3 for unlimited #### type Groups type Groups struct { } Groups contains all Groups available actions #### func (*Groups) Create func (g *Groups) Create(name string) error Create creates a group #### func (*Groups) Delete func (g *Groups) Delete(name string) error Delete deletes the group #### func (*Groups) List func (g *Groups) List() ([]string, error) List lists the Nextcloud groups #### func (*Groups) ListDetails func (g *Groups) ListDetails() ([]types.Group, error) ListDetails lists the Nextcloud groups #### func (*Groups) Search func (g *Groups) Search(search string) ([]string, error) Search return the list of groups matching the search string #### func (*Groups) SubAdminList func (g *Groups) SubAdminList(name string) ([]string, error) SubAdminList lists the group's subadmins #### func (*Groups) Users func (g *Groups) Users(name string) ([]string, error) Users list the group's users #### type Notifications type Notifications struct { } Notifications contains all Notifications available actions #### func (*Notifications) AdminAvailable func (n *Notifications) AdminAvailable() error AdminAvailable returns an error if the admin-notifications app is not installed #### func (*Notifications) Available func (n *Notifications) Available() error Available returns an error if the notifications app is not installed #### func (*Notifications) Create func (n *Notifications) Create(userID, title, message string) error Create creates a notification (if the user is an admin) #### func (*Notifications) Delete func (n *Notifications) Delete(id int) error Delete deletes the notification corresponding to the id #### func (*Notifications) DeleteAll func (n *Notifications) DeleteAll() error DeleteAll deletes all notifications #### func (*Notifications) Get func (n *Notifications) Get(id int) (types.Notification, error) Get returns the notification corresponding to the id #### func (*Notifications) List func (n *Notifications) List() ([]types.Notification, error) List returns all the notifications #### type Routes type Routes struct { } Routes references the available routes #### type Shares type Shares struct { } Shares contains all Shares available actions #### func (*Shares) Create func (s *Shares) Create( path string, shareType types.ShareType, permission types.SharePermission, shareWith string, publicUpload bool, password string, ) (types.Share, error) Create create a share #### func (*Shares) Delete func (s *Shares) Delete(shareID int) error Delete Remove the given share. #### func (*Shares) Get func (s *Shares) Get(shareID string) (types.Share, error) Get information about a known Share #### func (*Shares) GetFromPath func (s *Shares) GetFromPath(path string, reshares bool, subfiles bool) ([]types.Share, error) GetFromPath return shares from a specific file or folder #### func (*Shares) List func (s *Shares) List() ([]types.Share, error) List list all shares of the logged in user #### func (*Shares) Update func (s *Shares) Update(shareUpdate types.ShareUpdate) error Update update share details expireDate expireDate expects a well formatted date string, e.g. ‘YYYY-MM-DD’ #### func (*Shares) UpdateExpireDate func (s *Shares) UpdateExpireDate(shareID int, expireDate string) error UpdateExpireDate updates the share's expire date expireDate expects a well formatted date string, e.g. ‘YYYY-MM-DD’ #### func (*Shares) UpdatePassword func (s *Shares) UpdatePassword(shareID int, password string) error UpdatePassword updates share password #### func (*Shares) UpdatePermissions func (s *Shares) UpdatePermissions(shareID int, permissions types.SharePermission) error UpdatePermissions update permissions #### func (*Shares) UpdatePublicUpload func (s *Shares) UpdatePublicUpload(shareID int, public bool) error UpdatePublicUpload enable or disable public upload #### type Users type Users struct { } Users contains all Users available actions #### func (*Users) Create func (u *Users) Create(username string, password string, user *types.User) error Create create a new user #### func (*Users) CreateWithoutPassword func (u *Users) CreateWithoutPassword(username, email, displayName string) error CreateWithoutPassword create a user without provisioning a password, the email address must be provided to send an init password email #### func (*Users) Delete func (u *Users) Delete(name string) error Delete delete the user #### func (*Users) Disable func (u *Users) Disable(name string) error Disable disables the user #### func (*Users) Enable func (u *Users) Enable(name string) error Enable enables the user #### func (*Users) Get func (u *Users) Get(name string) (*types.User, error) Get return the details about the specified user #### func (*Users) GroupAdd func (u *Users) GroupAdd(name string, group string) error GroupAdd adds a the user to the group #### func (*Users) GroupDemote func (u *Users) GroupDemote(name string, group string) error GroupDemote demotes the user #### func (*Users) GroupList func (u *Users) GroupList(name string) ([]string, error) GroupList lists the user's groups #### func (*Users) GroupPromote func (u *Users) GroupPromote(name string, group string) error GroupPromote promotes the user as group admin #### func (*Users) GroupRemove func (u *Users) GroupRemove(name string, group string) error GroupRemove removes the user from the group #### func (*Users) GroupSubAdminList func (u *Users) GroupSubAdminList(name string) ([]string, error) GroupSubAdminList lists the groups where he is subadmin #### func (*Users) List func (u *Users) List() ([]string, error) List return the Nextcloud'user list #### func (*Users) ListDetails func (u *Users) ListDetails() (map[string]types.User, error) ListDetails return a map of user with details #### func (*Users) Search func (u *Users) Search(search string) ([]string, error) Search returns the users whose name match the search string #### func (*Users) SendWelcomeEmail func (u *Users) SendWelcomeEmail(name string) error SendWelcomeEmail (re)send the welcome mail to the user (return an error if the user has not configured his email) #### func (*Users) Update func (u *Users) Update(user *types.User) error Update takes a *types.Users struct to update the user's information #### func (*Users) UpdateAddress func (u *Users) UpdateAddress(name string, address string) error UpdateAddress update the user's address #### func (*Users) UpdateDisplayName func (u *Users) UpdateDisplayName(name string, displayName string) error UpdateDisplayName update the user's display name #### func (*Users) UpdateEmail func (u *Users) UpdateEmail(name string, email string) error UpdateEmail update the user's email #### func (*Users) UpdatePassword func (u *Users) UpdatePassword(name string, password string) error UpdatePassword update the user's password #### func (*Users) UpdatePhone func (u *Users) UpdatePhone(name string, phone string) error UpdatePhone update the user's phone #### func (*Users) UpdateQuota func (u *Users) UpdateQuota(name string, quota int) error UpdateQuota update the user's quota (bytes) #### func (*Users) UpdateTwitter func (u *Users) UpdateTwitter(name string, twitter string) error UpdateTwitter update the user's twitter #### func (*Users) UpdateWebSite func (u *Users) UpdateWebSite(name string, website string) error UpdateWebSite update the user's website # types -- import "gitlab.bertha.cloud/partitio/Nextcloud-Partitio/gonextcloud/types" ## Usage ```go const ( UserShare ShareType = 0 GroupShare ShareType = 1 PublicLinkShare ShareType = 3 FederatedCloudShare ShareType = 6 ReadPermission SharePermission = 1 UpdatePermission SharePermission = 2 CreatePermission SharePermission = 4 DeletePermission SharePermission = 8 ReSharePermission SharePermission = 16 AllPermissions SharePermission = 31 ) ``` #### type APIError ```go type APIError struct { Code int Message string } ``` APIError contains the returned error code and message from the Nextcloud's API #### func ErrorFromMeta ```go func ErrorFromMeta(meta Meta) *APIError ``` ErrorFromMeta return a types.APIError from the Response's types.Meta #### func (*APIError) Error ```go func (e *APIError) Error() string ``` Error return the types.APIError string #### type ActiveUsers ```go type ActiveUsers struct { Last5Minutes int `json:"last5minutes"` Last1Hour int `json:"last1hour"` Last24Hours int `json:"last24hours"` } ``` #### type App ```go type App struct { ID string `json:"id"` Ocsid string `json:"ocsid"` Name string `json:"name"` Summary string `json:"summary"` Description string `json:"description"` Licence string `json:"licence"` Author string `json:"author"` Version string `json:"version"` Namespace string `json:"namespace"` Types []string `json:"types"` Documentation struct { Admin string `json:"admin"` Developer string `json:"developer"` User string `json:"user"` } `json:"documentation"` Category []string `json:"category"` Website string `json:"website"` Bugs string `json:"bugs"` Repository struct { Attributes struct { Type string `json:"type"` } `json:"@attributes"` Value string `json:"@value"` } `json:"repository"` Screenshot []interface{} `json:"screenshot"` Dependencies struct { Owncloud struct { Attributes struct { MinVersion string `json:"min-version"` MaxVersion string `json:"max-version"` } `json:"@attributes"` } `json:"owncloud"` Nextcloud struct { Attributes struct { MinVersion string `json:"min-version"` MaxVersion string `json:"max-version"` } `json:"@attributes"` } `json:"nextcloud"` } `json:"dependencies"` Settings struct { Admin []string `json:"admin"` AdminSection []string `json:"admin-section"` Personal []interface{} `json:"personal"` PersonalSection []interface{} `json:"personal-section"` } `json:"settings"` Info []interface{} `json:"info"` Remote []interface{} `json:"remote"` Public []interface{} `json:"public"` RepairSteps struct { Install []interface{} `json:"install"` PreMigration []interface{} `json:"pre-migration"` PostMigration []interface{} `json:"post-migration"` LiveMigration []interface{} `json:"live-migration"` Uninstall []interface{} `json:"uninstall"` } `json:"repair-steps"` BackgroundJobs []interface{} `json:"background-jobs"` TwoFactorProviders []interface{} `json:"two-factor-providers"` Commands []interface{} `json:"commands"` Activity struct { Filters []interface{} `json:"filters"` Settings []interface{} `json:"settings"` Providers []interface{} `json:"providers"` } `json:"activity"` } ``` App #### type AppConfigResponse ```go type AppConfigResponse struct { Ocs struct { Meta Meta `json:"meta"` Data struct { Data []string `json:"data"` } `json:"data"` } `json:"ocs"` } ``` #### type AppListResponse ```go type AppListResponse struct { Ocs struct { Meta Meta `json:"meta"` Data struct { Apps []string `json:"apps"` } `json:"data"` } `json:"ocs"` } ``` AppListResponse #### type AppResponse ```go type AppResponse struct { Ocs struct { Meta Meta `json:"meta"` Data App `json:"data"` } `json:"ocs"` } ``` AppResponse #### type AppcConfigValueResponse ```go type AppcConfigValueResponse struct { Ocs struct { Meta Meta `json:"meta"` Data struct { Data string `json:"data"` } `json:"data"` } `json:"ocs"` } ``` #### type Apps ```go type Apps interface { List() ([]string, error) ListEnabled() ([]string, error) ListDisabled() ([]string, error) Infos(name string) (App, error) Enable(name string) error Disable(name string) error } ``` Apps available methods #### type AppsConfig ```go type AppsConfig interface { List() (apps []string, err error) Keys(id string) (keys []string, err error) Value(id, key string) (string, error) SetValue(id, key, value string) error DeleteValue(id, key, value string) error Get() (map[string]map[string]string, error) Details(appID string) (map[string]string, error) } ``` AppsConfig available methods #### type Auth ```go type Auth interface { Login(username string, password string) error Logout() error } ``` #### type BaseResponse ```go type BaseResponse struct { Ocs struct { Meta Meta `json:"meta"` Data []string `json:"data"` } `json:"ocs"` } ``` BaseResponse #### type Capabilities ```go type Capabilities struct { Core struct { Pollinterval int `json:"pollinterval"` WebdavRoot string `json:"webdav-root"` } `json:"core"` Bruteforce struct { Delay int `json:"delay"` } `json:"bruteforce"` Activity struct { Apiv2 []string `json:"apiv2"` } `json:"activity"` Ocm struct { Enabled bool `json:"enabled"` APIVersion string `json:"apiVersion"` EndPoint string `json:"endPoint"` ShareTypes []struct { Name string `json:"name"` Protocols struct { Webdav string `json:"webdav"` } `json:"protocols"` } `json:"shareTypes"` } `json:"ocm"` Dav struct { Chunking string `json:"chunking"` } `json:"dav"` FilesSharing struct { APIEnabled bool `json:"api_enabled"` Public struct { Enabled bool `json:"enabled"` Password struct { Enforced bool `json:"enforced"` } `json:"password"` ExpireDate struct { Enabled bool `json:"enabled"` } `json:"expire_date"` SendMail bool `json:"send_mail"` Upload bool `json:"upload"` UploadFilesDrop bool `json:"upload_files_drop"` } `json:"public"` Resharing bool `json:"resharing"` User struct { SendMail bool `json:"send_mail"` ExpireDate struct { Enabled bool `json:"enabled"` } `json:"expire_date"` } `json:"user"` GroupSharing bool `json:"group_sharing"` Group struct { Enabled bool `json:"enabled"` ExpireDate struct { Enabled bool `json:"enabled"` } `json:"expire_date"` } `json:"group"` DefaultPermissions int `json:"default_permissions"` Federation struct { Outgoing bool `json:"outgoing"` Incoming bool `json:"incoming"` ExpireDate struct { Enabled bool `json:"enabled"` } `json:"expire_date"` } `json:"federation"` Sharebymail struct { Enabled bool `json:"enabled"` UploadFilesDrop struct { Enabled bool `json:"enabled"` } `json:"upload_files_drop"` Password struct { Enabled bool `json:"enabled"` } `json:"password"` ExpireDate struct { Enabled bool `json:"enabled"` } `json:"expire_date"` } `json:"sharebymail"` } `json:"files_sharing"` Notifications struct { OcsEndpoints []string `json:"ocs-endpoints"` Push []string `json:"push"` AdminNotifications []string `json:"admin-notifications"` } `json:"notifications"` PasswordPolicy struct { MinLength int `json:"minLength"` EnforceNonCommonPassword bool `json:"enforceNonCommonPassword"` EnforceNumericCharacters bool `json:"enforceNumericCharacters"` EnforceSpecialCharacters bool `json:"enforceSpecialCharacters"` EnforceUpperLowerCase bool `json:"enforceUpperLowerCase"` } `json:"password_policy"` Theming struct { Name string `json:"name"` URL string `json:"url"` Slogan string `json:"slogan"` Color string `json:"color"` ColorText string `json:"color-text"` ColorElement string `json:"color-element"` Logo string `json:"logo"` Background string `json:"background"` BackgroundPlain bool `json:"background-plain"` BackgroundDefault bool `json:"background-default"` } `json:"theming"` Files struct { Bigfilechunking bool `json:"bigfilechunking"` BlacklistedFiles []string `json:"blacklisted_files"` Undelete bool `json:"undelete"` Versioning bool `json:"versioning"` } `json:"files"` Registration struct { Enabled bool `json:"enabled"` APIRoot string `json:"apiRoot"` APILevel string `json:"apiLevel"` } `json:"registration"` } ``` Capabilities #### type CapabilitiesResponse ```go type CapabilitiesResponse struct { Ocs struct { Meta Meta `json:"meta"` Data struct { Version Version `json:"version"` Capabilities Capabilities `json:"capabilities"` } `json:"data"` } `json:"ocs"` } ``` CapabilitiesResponse #### type Client ```go type Client interface { Apps() Apps AppsConfig() AppsConfig GroupFolders() GroupFolders Notifications() Notifications Shares() Shares Users() Users Groups() Groups } ``` Client is the main client interface #### type ErrorResponse ```go type ErrorResponse struct { Ocs struct { Meta Meta `json:"meta"` Data []interface{} `json:"data"` } `json:"ocs"` } ``` ErrorResponse #### type Group ```go type Group struct { ID string `json:"id"` Displayname string `json:"displayname"` UserCount int `json:"usercount"` Disabled int `json:"disabled"` CanAdd bool `json:"canAdd"` CanRemove bool `json:"canRemove"` } ``` Group #### type GroupFolder ```go type GroupFolder struct { ID int `json:"id"` MountPoint string `json:"mount_point"` Groups map[string]SharePermission `json:"groups"` Quota int `json:"quota"` Size int `json:"size"` } ``` #### type GroupFolderBadFormatGroups ```go type GroupFolderBadFormatGroups struct { ID int `json:"id"` MountPoint string `json:"mount_point"` Groups map[string]string `json:"groups"` Quota string `json:"quota"` Size int `json:"size"` } ``` #### func (*GroupFolderBadFormatGroups) FormatGroupFolder ```go func (gf *GroupFolderBadFormatGroups) FormatGroupFolder() GroupFolder ``` #### type GroupFolderBadFormatIDAndGroups ```go type GroupFolderBadFormatIDAndGroups struct { ID string `json:"id"` MountPoint string `json:"mount_point"` Groups map[string]string `json:"groups"` Quota string `json:"quota"` Size int `json:"size"` } ``` #### func (*GroupFolderBadFormatIDAndGroups) FormatGroupFolder ```go func (gf *GroupFolderBadFormatIDAndGroups) FormatGroupFolder() GroupFolder ``` #### type GroupFolders ```go type GroupFolders interface { List() (map[int]GroupFolder, error) Get(id int) (GroupFolder, error) Create(name string) (id int, err error) Rename(groupID int, name string) error AddGroup(folderID int, groupName string) error RemoveGroup(folderID int, groupName string) error SetGroupPermissions(folderID int, groupName string, permission SharePermission) error SetQuota(folderID int, quota int) error } ``` GroupFolders available methods #### type GroupFoldersCreateResponse ```go type GroupFoldersCreateResponse struct { Ocs struct { Meta Meta `json:"meta"` Data GroupFolderBadFormatIDAndGroups `json:"data"` } `json:"ocs"` } ``` #### type GroupFoldersListResponse ```go type GroupFoldersListResponse struct { Ocs struct { Meta Meta `json:"meta"` Data map[string]GroupFolderBadFormatIDAndGroups `json:"data"` } `json:"ocs"` } ``` #### type GroupFoldersResponse ```go type GroupFoldersResponse struct { Ocs struct { Meta Meta `json:"meta"` Data GroupFolderBadFormatGroups `json:"data"` } `json:"ocs"` } ``` #### type GroupListDetailsResponse ```go type GroupListDetailsResponse struct { Ocs struct { Meta Meta `json:"meta"` Data struct { Groups []Group `json:"groups"` } `json:"data"` } `json:"ocs"` } ``` GroupListDetailsResponse #### type GroupListResponse ```go type GroupListResponse struct { Ocs struct { Meta Meta `json:"meta"` Data struct { Groups []string `json:"groups"` } `json:"data"` } `json:"ocs"` } ``` GroupListResponse #### type Groups ```go type Groups interface { List() ([]string, error) ListDetails() ([]Group, error) Users(name string) ([]string, error) Search(search string) ([]string, error) Create(name string) error Delete(name string) error SubAdminList(name string) ([]string, error) } ``` Groups available methods #### type Meta ```go type Meta struct { Status string `json:"status"` Statuscode int `json:"statuscode"` Message string `json:"message"` Totalitems string `json:"totalitems"` Itemsperpage string `json:"itemsperpage"` } ``` Meta #### type Monitoring ```go type Monitoring struct { Nextcloud struct { System System `json:"system"` Storage Storage `json:"storage"` Shares struct { NumShares int `json:"num_shares"` NumSharesUser int `json:"num_shares_user"` NumSharesGroups int `json:"num_shares_groups"` NumSharesLink int `json:"num_shares_link"` NumSharesLinkNoPassword int `json:"num_shares_link_no_password"` NumFedSharesSent int `json:"num_fed_shares_sent"` NumFedSharesReceived int `json:"num_fed_shares_received"` } `json:"shares"` } `json:"nextcloud"` Server struct { Webserver string `json:"webserver"` Php struct { Version string `json:"version"` MemoryLimit int `json:"memory_limit"` MaxExecutionTime int `json:"max_execution_time"` UploadMaxFilesize int `json:"upload_max_filesize"` } `json:"php"` Database struct { Type string `json:"type"` Version string `json:"version"` Size int `json:"size"` } `json:"database"` } `json:"server"` ActiveUsers ActiveUsers `json:"activeUsers"` } ``` #### type MonitoringResponse ```go type MonitoringResponse struct { Ocs struct { Meta Meta `json:"meta"` Data Monitoring `json:"data"` } `json:"ocs"` } ``` #### type Notification ```go type Notification struct { NotificationID int `json:"notification_id"` App string `json:"app"` User string `json:"user"` Datetime time.Time `json:"datetime"` ObjectType string `json:"object_type"` ObjectID string `json:"object_id"` Subject string `json:"subject"` Message string `json:"message"` Link string `json:"link"` SubjectRich string `json:"subjectRich"` SubjectRichParameters []interface{} `json:"subjectRichParameters"` MessageRich string `json:"messageRich"` MessageRichParameters []interface{} `json:"messageRichParameters"` Icon string `json:"icon"` Actions []interface{} `json:"actions"` } ``` #### type NotificationResponse ```go type NotificationResponse struct { Ocs struct { Meta Meta `json:"meta"` Data Notification `json:"data"` } `json:"ocs"` } ``` #### type Notifications ```go type Notifications interface { List() ([]Notification, error) Get(id int) (Notification, error) Delete(id int) error DeleteAll() error Create(userID, title, message string) error AdminAvailable() error Available() error } ``` Notifications available methods #### type NotificationsListResponse ```go type NotificationsListResponse struct { Ocs struct { Meta Meta `json:"meta"` Data []Notification `json:"data"` } `json:"ocs"` } ``` #### type Share ```go type Share struct { ID string `json:"id"` ShareType int `json:"share_type"` UIDOwner string `json:"uid_owner"` DisplaynameOwner string `json:"displayname_owner"` Permissions int `json:"permissions"` Stime int `json:"stime"` Parent interface{} `json:"parent"` Expiration string `json:"expiration"` Token string `json:"token"` UIDFileOwner string `json:"uid_file_owner"` DisplaynameFileOwner string `json:"displayname_file_owner"` Path string `json:"path"` ItemType string `json:"item_type"` Mimetype string `json:"mimetype"` StorageID string `json:"storage_id"` Storage int `json:"storage"` ItemSource int `json:"item_source"` FileSource int `json:"file_source"` FileParent int `json:"file_parent"` FileTarget string `json:"file_target"` ShareWith string `json:"share_with"` ShareWithDisplayname string `json:"share_with_displayname"` MailSend int `json:"mail_send"` Tags []string `json:"tags"` } ``` #### type SharePermission ```go type SharePermission int ``` #### type ShareType ```go type ShareType int ``` #### type ShareUpdate ```go type ShareUpdate struct { ShareID int Permissions SharePermission Password string PublicUpload bool ExpireDate string } ``` #### type Shares ```go type Shares interface { List() ([]Share, error) GetFromPath(path string, reshares bool, subfiles bool) ([]Share, error) Get(shareID string) (Share, error) Create( path string, shareType ShareType, permission SharePermission, shareWith string, publicUpload bool, password string, ) (Share, error) Delete(shareID int) error Update(shareUpdate ShareUpdate) error UpdateExpireDate(shareID int, expireDate string) error UpdatePublicUpload(shareID int, public bool) error UpdatePassword(shareID int, password string) error UpdatePermissions(shareID int, permissions SharePermission) error } ``` Shares available methods #### type SharesListResponse ```go type SharesListResponse struct { Ocs struct { Meta Meta `json:"meta"` Data []Share `json:"data"` } `json:"ocs"` } ``` #### type SharesResponse ```go type SharesResponse struct { Ocs struct { Meta Meta `json:"meta"` Data Share `json:"data"` } `json:"ocs"` } ``` #### type Storage ```go type Storage struct { NumUsers int `json:"num_users"` NumFiles int `json:"num_files"` NumStorages int `json:"num_storages"` NumStoragesLocal int `json:"num_storages_local"` NumStoragesHome int `json:"num_storages_home"` NumStoragesOther int `json:"num_storages_other"` } ``` #### type System ```go type System struct { Version string `json:"version"` Theme string `json:"theme"` EnableAvatars string `json:"enable_avatars"` EnablePreviews string `json:"enable_previews"` MemcacheLocal string `json:"memcache.local"` MemcacheDistributed string `json:"memcache.distributed"` FilelockingEnabled string `json:"filelocking.enabled"` MemcacheLocking string `json:"memcache.locking"` Debug string `json:"debug"` Freespace int64 `json:"freespace"` Cpuload []float32 `json:"cpuload"` MemTotal int `json:"mem_total"` MemFree int `json:"mem_free"` SwapTotal int `json:"swap_total"` SwapFree int `json:"swap_free"` } ``` #### type UpdateError ```go type UpdateError struct { Field string Error error } ``` UpdateError contains the user's field and corresponding error #### type User ```go type User struct { Enabled bool `json:"enabled"` ID string `json:"id"` Quota struct { Free int64 `json:"free"` Used int `json:"used"` Total int64 `json:"total"` Relative float64 `json:"relative"` Quota int `json:"quota"` } `json:"quota"` Email string `json:"email"` Displayname string `json:"displayname"` Phone string `json:"phone"` Address string `json:"address"` Website string `json:"website"` Twitter string `json:"twitter"` Groups []string `json:"groups"` Language string `json:"language,omitempty"` StorageLocation string `json:"storageLocation,omitempty"` LastLogin int64 `json:"lastLogin,omitempty"` Backend string `json:"backend,omitempty"` Subadmin []interface{} `json:"subadmin,omitempty"` Locale string `json:"locale,omitempty"` } ``` Users #### type UserListDetailsResponse ```go type UserListDetailsResponse struct { Ocs struct { Meta Meta `json:"meta"` Data struct { Users map[string]User `json:"users"` } `json:"data"` } `json:"ocs"` } ``` #### type UserListResponse ```go type UserListResponse struct { Ocs struct { Meta Meta `json:"meta"` Data struct { Users []string `json:"users"` } `json:"data"` } `json:"ocs"` } ``` UserListResponse #### type UserResponse ```go type UserResponse struct { Ocs struct { Meta Meta `json:"meta"` Data User `json:"data"` } `json:"ocs"` } ``` UserResponse #### type UserUpdateError ```go type UserUpdateError struct { Errors map[string]error } ``` UpdateError contains the errors resulting from a UserUpdate or a UserCreateFull call #### func NewUpdateError ```go func NewUpdateError(errors chan UpdateError) *UserUpdateError ``` NewUpdateError returns an UpdateError based on an UpdateError channel #### func (*UserUpdateError) Error ```go func (e *UserUpdateError) Error() string ``` #### type Users ```go type Users interface { List() ([]string, error) ListDetails() (map[string]User, error) Get(name string) (*User, error) Search(search string) ([]string, error) Create(username string, password string, user *User) error CreateWithoutPassword(username, email, displayName, quota, language string, groups ...string) error Delete(name string) error Enable(name string) error Disable(name string) error SendWelcomeEmail(name string) error Update(user *User) error UpdateEmail(name string, email string) error UpdateDisplayName(name string, displayName string) error UpdatePhone(name string, phone string) error UpdateAddress(name string, address string) error UpdateWebSite(name string, website string) error UpdateTwitter(name string, twitter string) error UpdatePassword(name string, password string) error UpdateQuota(name string, quota int) error GroupList(name string) ([]string, error) GroupAdd(name string, group string) error GroupRemove(name string, group string) error GroupPromote(name string, group string) error GroupDemote(name string, group string) error GroupSubAdminList(name string) ([]string, error) } ``` Users available methods #### type Version ```go type Version struct { Major int `json:"major"` Minor int `json:"minor"` Micro int `json:"micro"` String string `json:"string"` Edition string `json:"edition"` } ```