mirror of
https://gitlab.bertha.cloud/partitio/Nextcloud-Partitio/gonextcloud
synced 2024-11-24 17:56:25 +00:00
1604 lines
36 KiB
Markdown
1604 lines
36 KiB
Markdown
# 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"`
|
||
}
|
||
```
|
||
|