gonextcloud/docs/README.md

1604 lines
36 KiB
Markdown
Raw Normal View History

# gonextcloud
--
import "gitlab.bertha.cloud/partitio/Nextcloud-Partitio/gonextcloud"
2018-10-26 07:38:48 +00:00
Package gonextcloud is a Go client for the Nextcloud Provisioning API.
2018-10-26 07:38:48 +00:00
For more information about the Provisioning API, see the documentation:
https://docs.nextcloud.com/server/13/admin_manual/configuration_user/user_provisioning_api.html
2018-10-26 07:38:48 +00:00
### Usage
2018-10-26 07:38:48 +00:00
You use the library by creating a client object and calling methods on it.
2018-10-26 07:38:48 +00:00
For example, to list all the Nextcloud's instance users:
2018-10-26 13:35:50 +00:00
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)
2018-10-26 07:38:48 +00:00
}
## Usage
2018-10-26 07:38:48 +00:00
#### type Apps
type Apps struct {
}
2018-10-26 07:38:48 +00:00
Apps contains all Apps available actions
#### func (*Apps) Disable
func (a *Apps) Disable(name string) error
2018-10-26 07:38:48 +00:00
Disable disables an app
2018-10-26 07:38:48 +00:00
#### func (*Apps) Enable
func (a *Apps) Enable(name string) error
2018-10-26 07:38:48 +00:00
Enable enables an app
2018-10-26 07:38:48 +00:00
#### func (*Apps) Infos
func (a *Apps) Infos(name string) (types.App, error)
2018-10-26 07:38:48 +00:00
Infos return the app's details
2018-10-26 07:38:48 +00:00
#### func (*Apps) List
func (a *Apps) List() ([]string, error)
2018-10-26 07:38:48 +00:00
List return the list of the Nextcloud Apps
2018-10-26 07:38:48 +00:00
#### func (*Apps) ListDisabled
func (a *Apps) ListDisabled() ([]string, error)
2018-10-26 07:38:48 +00:00
ListDisabled lists the disabled apps
2018-10-26 07:38:48 +00:00
#### func (*Apps) ListEnabled
func (a *Apps) ListEnabled() ([]string, error)
2018-10-26 07:38:48 +00:00
ListEnabled lists the enabled apps
2018-10-26 07:38:48 +00:00
#### type AppsConfig
type AppsConfig struct {
}
2018-10-26 07:38:48 +00:00
AppsConfig contains all Apps Configuration available actions
#### func (*AppsConfig) DeleteValue
func (a *AppsConfig) DeleteValue(id, key, value string) error
2018-10-26 07:38:48 +00:00
DeleteValue delete the config value and (!! be careful !!) the key
2018-10-26 07:38:48 +00:00
#### func (*AppsConfig) Details
func (a *AppsConfig) Details(appID string) (map[string]string, error)
2018-10-26 07:38:48 +00:00
Details returns all the config's key, values pair of the app
2018-10-26 07:38:48 +00:00
#### func (*AppsConfig) Get
func (a *AppsConfig) Get() (map[string]map[string]string, error)
2018-10-26 07:38:48 +00:00
Get returns all apps AppConfigDetails
2018-10-26 07:38:48 +00:00
#### func (*AppsConfig) Keys
func (a *AppsConfig) Keys(id string) (keys []string, err error)
2018-10-26 07:38:48 +00:00
Keys returns the app's config keys
2018-10-26 07:38:48 +00:00
#### func (*AppsConfig) List
func (a *AppsConfig) List() (apps []string, err error)
2018-10-26 07:38:48 +00:00
List lists all the available apps
2018-10-26 07:38:48 +00:00
#### func (*AppsConfig) SetValue
func (a *AppsConfig) SetValue(id, key, value string) error
2018-10-26 07:38:48 +00:00
SetValue set the config value for the given app's key
2018-10-26 07:38:48 +00:00
#### func (*AppsConfig) Value
func (a *AppsConfig) Value(id, key string) (string, error)
2018-10-26 07:38:48 +00:00
Value get the config value for the given app's key
#### type Client
type Client struct {
}
2018-10-26 07:38:48 +00:00
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
2018-10-26 07:38:48 +00:00
#### func (*Client) Monitoring
func (c *Client) Monitoring() (*types.Monitoring, error)
2018-10-26 07:38:48 +00:00
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
2018-10-26 07:38:48 +00:00
#### type GroupFolders
type GroupFolders struct {
}
2018-10-26 07:38:48 +00:00
GroupFolders contains all Groups Folders available actions
#### func (*GroupFolders) AddGroup
func (g *GroupFolders) AddGroup(folderID int, groupName string) error
2018-10-26 07:38:48 +00:00
AddGroup adds group to folder
2018-10-26 07:38:48 +00:00
#### func (*GroupFolders) Create
func (g *GroupFolders) Create(name string) (id int, err error)
2018-10-26 07:38:48 +00:00
Create creates a group folder
2018-10-26 07:38:48 +00:00
#### func (*GroupFolders) Get
func (g *GroupFolders) Get(id int) (types.GroupFolder, error)
2018-10-26 07:38:48 +00:00
Get returns the group folder details
2018-10-26 07:38:48 +00:00
#### func (*GroupFolders) List
func (g *GroupFolders) List() (map[int]types.GroupFolder, error)
2018-10-26 07:38:48 +00:00
List returns the groups folders
2018-10-26 07:38:48 +00:00
#### func (*GroupFolders) RemoveGroup
func (g *GroupFolders) RemoveGroup(folderID int, groupName string) error
2018-10-26 07:38:48 +00:00
RemoveGroup remove a group from the group folder
2018-10-26 07:38:48 +00:00
#### func (*GroupFolders) Rename
func (g *GroupFolders) Rename(groupID int, name string) error
2018-10-26 07:38:48 +00:00
Rename renames the group folder
2018-10-26 07:38:48 +00:00
#### func (*GroupFolders) SetGroupPermissions
func (g *GroupFolders) SetGroupPermissions(folderID int, groupName string, permission types.SharePermission) error
2018-10-26 07:38:48 +00:00
SetGroupPermissions set groups permissions
2018-10-26 07:38:48 +00:00
#### 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
2018-10-26 07:38:48 +00:00
#### type Groups
type Groups struct {
}
2018-10-26 07:38:48 +00:00
Groups contains all Groups available actions
#### func (*Groups) Create
func (g *Groups) Create(name string) error
2018-10-26 07:38:48 +00:00
Create creates a group
2018-10-26 07:38:48 +00:00
#### func (*Groups) Delete
func (g *Groups) Delete(name string) error
2018-10-26 07:38:48 +00:00
Delete deletes the group
2018-10-26 07:38:48 +00:00
#### 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"`
}
```
2018-10-26 07:38:48 +00:00
App
#### type AppConfigResponse
2018-07-25 14:59:55 +00:00
```go
type AppConfigResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data struct {
Data []string `json:"data"`
} `json:"data"`
} `json:"ocs"`
2018-10-26 07:38:48 +00:00
}
2018-07-25 14:59:55 +00:00
```
2018-10-26 07:38:48 +00:00
#### type AppListResponse
2018-07-25 14:59:55 +00:00
```go
type AppListResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data struct {
Apps []string `json:"apps"`
} `json:"data"`
} `json:"ocs"`
2018-07-25 14:59:55 +00:00
}
```
AppListResponse
2018-07-25 14:59:55 +00:00
#### type AppResponse
2018-10-26 07:38:48 +00:00
```go
type AppResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data App `json:"data"`
} `json:"ocs"`
}
2018-07-25 14:59:55 +00:00
```
AppResponse
#### type AppcConfigValueResponse
2018-07-25 14:59:55 +00:00
2018-10-26 07:38:48 +00:00
```go
type AppcConfigValueResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data struct {
Data string `json:"data"`
} `json:"data"`
} `json:"ocs"`
}
2018-10-26 07:38:48 +00:00
```
#### type Apps
2018-07-25 14:59:55 +00:00
```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
}
2018-07-25 14:59:55 +00:00
```
Apps available methods
#### type AppsConfig
2018-07-25 14:59:55 +00:00
2018-10-26 07:38:48 +00:00
```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)
}
2018-10-26 07:38:48 +00:00
```
AppsConfig available methods
#### type Auth
2018-07-25 14:59:55 +00:00
```go
type Auth interface {
Login(username string, password string) error
Logout() error
}
2018-07-25 14:59:55 +00:00
```
#### type BaseResponse
2018-10-26 07:38:48 +00:00
```go
type BaseResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data []string `json:"data"`
} `json:"ocs"`
}
2018-10-26 07:38:48 +00:00
```
2018-07-25 14:59:55 +00:00
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"`
}
2018-07-25 14:59:55 +00:00
```
Capabilities
#### type CapabilitiesResponse
2018-07-25 14:59:55 +00:00
2018-10-26 07:38:48 +00:00
```go
type CapabilitiesResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data struct {
Version Version `json:"version"`
Capabilities Capabilities `json:"capabilities"`
} `json:"data"`
} `json:"ocs"`
2018-07-25 14:59:55 +00:00
}
```
CapabilitiesResponse
2018-07-25 14:59:55 +00:00
#### type Client
2018-07-25 14:59:55 +00:00
```go
type Client interface {
Apps() Apps
AppsConfig() AppsConfig
GroupFolders() GroupFolders
Notifications() Notifications
Shares() Shares
Users() Users
Groups() Groups
2018-07-25 14:59:55 +00:00
}
```
Client is the main client interface
2018-07-25 14:59:55 +00:00
#### type ErrorResponse
2018-07-25 14:59:55 +00:00
```go
type ErrorResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data []interface{} `json:"data"`
} `json:"ocs"`
2018-07-25 14:59:55 +00:00
}
```
ErrorResponse
2018-07-25 14:59:55 +00:00
#### type Group
2018-07-25 14:59:55 +00:00
```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"`
}
2018-07-25 14:59:55 +00:00
```
Group
#### type GroupFolder
2018-07-25 14:59:55 +00:00
2018-10-26 07:38:48 +00:00
```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"`
}
2018-10-26 07:38:48 +00:00
```
#### type GroupFolderBadFormatGroups
2018-07-25 14:59:55 +00:00
```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"`
}
2018-07-25 14:59:55 +00:00
```
#### func (*GroupFolderBadFormatGroups) FormatGroupFolder
2018-07-25 14:59:55 +00:00
2018-10-26 07:38:48 +00:00
```go
func (gf *GroupFolderBadFormatGroups) FormatGroupFolder() GroupFolder
2018-10-26 07:38:48 +00:00
```
#### type GroupFolderBadFormatIDAndGroups
2018-07-25 14:59:55 +00:00
```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"`
}
2018-07-25 14:59:55 +00:00
```
#### func (*GroupFolderBadFormatIDAndGroups) FormatGroupFolder
2018-07-25 14:59:55 +00:00
2018-10-26 07:38:48 +00:00
```go
func (gf *GroupFolderBadFormatIDAndGroups) FormatGroupFolder() GroupFolder
2018-07-25 14:59:55 +00:00
```
#### type GroupFolders
2018-07-25 14:59:55 +00:00
2018-10-26 07:38:48 +00:00
```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
}
2018-10-26 07:38:48 +00:00
```
GroupFolders available methods
#### type GroupFoldersCreateResponse
2018-07-25 14:59:55 +00:00
```go
type GroupFoldersCreateResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data GroupFolderBadFormatIDAndGroups `json:"data"`
} `json:"ocs"`
}
2018-07-25 14:59:55 +00:00
```
#### type GroupFoldersListResponse
2018-10-26 07:38:48 +00:00
```go
type GroupFoldersListResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data map[string]GroupFolderBadFormatIDAndGroups `json:"data"`
} `json:"ocs"`
}
2018-10-26 07:38:48 +00:00
```
2018-07-25 14:59:55 +00:00
#### type GroupFoldersResponse
2018-07-25 14:59:55 +00:00
```go
type GroupFoldersResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data GroupFolderBadFormatGroups `json:"data"`
} `json:"ocs"`
}
2018-10-26 07:38:48 +00:00
```
#### type GroupListDetailsResponse
2018-10-26 07:38:48 +00:00
```go
type GroupListDetailsResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data struct {
Groups []Group `json:"groups"`
} `json:"data"`
} `json:"ocs"`
2018-07-25 14:59:55 +00:00
}
```
GroupListDetailsResponse
2018-07-25 14:59:55 +00:00
#### type GroupListResponse
2018-07-25 14:59:55 +00:00
```go
type GroupListResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data struct {
Groups []string `json:"groups"`
} `json:"data"`
} `json:"ocs"`
2018-07-25 14:59:55 +00:00
}
```
GroupListResponse
2018-10-26 07:38:48 +00:00
#### type Groups
2018-10-26 07:38:48 +00:00
```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)
}
2018-10-26 07:38:48 +00:00
```
Groups available methods
#### type Meta
2018-10-26 07:38:48 +00:00
```go
type Meta struct {
Status string `json:"status"`
Statuscode int `json:"statuscode"`
Message string `json:"message"`
Totalitems string `json:"totalitems"`
Itemsperpage string `json:"itemsperpage"`
}
2018-10-26 07:38:48 +00:00
```
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"`
}
2018-10-26 07:38:48 +00:00
```
#### type MonitoringResponse
2018-10-26 07:38:48 +00:00
```go
type MonitoringResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data Monitoring `json:"data"`
} `json:"ocs"`
}
2018-10-26 07:38:48 +00:00
```
#### type Notification
2018-10-26 07:38:48 +00:00
```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"`
}
2018-10-26 07:38:48 +00:00
```
#### type NotificationResponse
2018-10-26 07:38:48 +00:00
```go
type NotificationResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data Notification `json:"data"`
} `json:"ocs"`
}
2018-10-26 07:38:48 +00:00
```
#### type Notifications
2018-10-26 07:38:48 +00:00
```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
}
2018-10-26 07:38:48 +00:00
```
Notifications available methods
#### type NotificationsListResponse
2018-10-26 07:38:48 +00:00
```go
type NotificationsListResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data []Notification `json:"data"`
} `json:"ocs"`
}
2018-10-26 07:38:48 +00:00
```
2018-07-25 14:59:55 +00:00
#### 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"`
}
2018-10-26 07:38:48 +00:00
```
#### type SharePermission
2018-10-26 07:38:48 +00:00
```go
type SharePermission int
2018-10-26 07:38:48 +00:00
```
#### type ShareType
2018-10-26 07:38:48 +00:00
```go
type ShareType int
2018-10-26 07:38:48 +00:00
```
#### type ShareUpdate
2018-07-25 14:59:55 +00:00
```go
type ShareUpdate struct {
ShareID int
Permissions SharePermission
Password string
PublicUpload bool
ExpireDate string
}
2018-07-25 14:59:55 +00:00
```
#### type Shares
2018-07-25 14:59:55 +00:00
```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
}
2018-07-25 14:59:55 +00:00
```
2018-10-26 07:38:48 +00:00
Shares available methods
#### type SharesListResponse
2018-10-26 07:38:48 +00:00
```go
type SharesListResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data []Share `json:"data"`
} `json:"ocs"`
}
2018-10-26 07:38:48 +00:00
```
#### type SharesResponse
2018-10-26 07:38:48 +00:00
```go
type SharesResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data Share `json:"data"`
} `json:"ocs"`
}
2018-10-26 07:38:48 +00:00
```
#### type Storage
2018-10-26 07:38:48 +00:00
```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"`
}
2018-10-26 07:38:48 +00:00
```
#### type System
2018-10-26 07:38:48 +00:00
```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"`
}
2018-10-26 07:38:48 +00:00
```
#### type UpdateError
2018-10-26 07:38:48 +00:00
```go
type UpdateError struct {
Field string
Error error
}
2018-10-26 07:38:48 +00:00
```
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"`
}
2018-10-26 07:38:48 +00:00
```
Users
#### type UserListDetailsResponse
2018-10-26 07:38:48 +00:00
```go
type UserListDetailsResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data struct {
Users map[string]User `json:"users"`
} `json:"data"`
} `json:"ocs"`
}
2018-10-26 07:38:48 +00:00
```
#### type UserListResponse
2018-10-26 07:38:48 +00:00
```go
type UserListResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data struct {
Users []string `json:"users"`
} `json:"data"`
} `json:"ocs"`
}
2018-10-26 07:38:48 +00:00
```
UserListResponse
#### type UserResponse
2018-10-26 07:38:48 +00:00
```go
type UserResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data User `json:"data"`
} `json:"ocs"`
}
2018-10-26 07:38:48 +00:00
```
UserResponse
#### type UserUpdateError
2018-10-26 07:38:48 +00:00
```go
type UserUpdateError struct {
Errors map[string]error
}
2018-10-26 07:38:48 +00:00
```
UpdateError contains the errors resulting from a UserUpdate or a UserCreateFull
call
#### func NewUpdateError
2018-10-26 07:38:48 +00:00
```go
func NewUpdateError(errors chan UpdateError) *UserUpdateError
2018-10-26 07:38:48 +00:00
```
NewUpdateError returns an UpdateError based on an UpdateError channel
2018-10-26 07:38:48 +00:00
#### func (*UserUpdateError) Error
2018-10-26 07:38:48 +00:00
```go
func (e *UserUpdateError) Error() string
2018-10-26 07:38:48 +00:00
```
#### type Users
2018-10-26 07:38:48 +00:00
```go
type Users interface {
2018-10-26 07:38:48 +00:00
List() ([]string, error)
ListDetails() (map[string]User, error)
Get(name string) (*User, error)
2018-10-26 07:38:48 +00:00
Search(search string) ([]string, error)
Create(username string, password string, user *User) error
CreateWithoutPassword(username, email, displayName, quota, language string, groups ...string) error
2018-10-26 07:38:48 +00:00
Delete(name string) error
Enable(name string) error
Disable(name string) error
SendWelcomeEmail(name string) error
Update(user *User) error
2018-10-26 07:38:48 +00:00
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"`
}
```