Code Monkey home page Code Monkey logo

libre-graph-api-go's Introduction

Go API client for libregraph

Libre Graph is a free API for cloud collaboration inspired by the MS Graph API.

Overview

This API client was generated by the OpenAPI Generator project. By using the OpenAPI-spec from a remote server, you can easily generate an API client.

  • API version: v1.0.4
  • Package version: 1.0.0
  • Build package: org.openapitools.codegen.languages.GoClientCodegen

Installation

Install the following dependencies:

go get github.com/stretchr/testify/assert
go get golang.org/x/oauth2
go get golang.org/x/net/context

Put the package under your project folder and add the following in import:

import libregraph "github.com/owncloud/libre-graph-api-go"

To use a proxy, set the environment variable HTTP_PROXY:

os.Setenv("HTTP_PROXY", "http://proxy_name:proxy_port")

Configuration of Server URL

Default configuration comes with Servers field that contains server objects as defined in the OpenAPI specification.

Select Server Configuration

For using other server than the one defined on index 0 set context value sw.ContextServerIndex of type int.

ctx := context.WithValue(context.Background(), libregraph.ContextServerIndex, 1)

Templated Server URL

Templated server URL is formatted using default variables from configuration or from context value sw.ContextServerVariables of type map[string]string.

ctx := context.WithValue(context.Background(), libregraph.ContextServerVariables, map[string]string{
	"basePath": "v2",
})

Note, enum values are always validated and all unused variables are silently ignored.

URLs Configuration per Operation

Each operation can use different server URL defined using OperationServers map in the Configuration. An operation is uniquely identified by "{classname}Service.{nickname}" string. Similar rules for overriding default operation server index and variables applies by using sw.ContextOperationServerIndices and sw.ContextOperationServerVariables context maps.

ctx := context.WithValue(context.Background(), libregraph.ContextOperationServerIndices, map[string]int{
	"{classname}Service.{nickname}": 2,
})
ctx = context.WithValue(context.Background(), libregraph.ContextOperationServerVariables, map[string]map[string]string{
	"{classname}Service.{nickname}": {
		"port": "8443",
	},
})

Documentation for API Endpoints

All URIs are relative to https://ocis.ocis-traefik.latest.owncloud.works/graph/v1.0

Class Method HTTP request Description
ApplicationsApi GetApplication Get /applications/{application-id} Get application by id
ApplicationsApi ListApplications Get /applications Get all applications
DrivesApi CreateDrive Post /drives Create a new drive of a specific type
DrivesApi DeleteDrive Delete /drives/{drive-id} Delete a specific space
DrivesApi GetDrive Get /drives/{drive-id} Get drive by id
DrivesApi UpdateDrive Patch /drives/{drive-id} Update the drive
DrivesGetDrivesApi ListAllDrives Get /drives Get all available drives
DrivesRootApi GetRoot Get /drives/{drive-id}/root Get root from arbitrary space
EducationClassApi AddUserToClass Post /education/classes/{class-id}/members/$ref Assign a user to a class
EducationClassApi CreateClass Post /education/classes Add new education class
EducationClassApi DeleteClass Delete /education/classes/{class-id} Delete education class
EducationClassApi DeleteUserFromClass Delete /education/classes/{class-id}/members/{user-id}/$ref Unassign user from a class
EducationClassApi GetClass Get /education/classes/{class-id} Get class by key
EducationClassApi ListClassMembers Get /education/classes/{class-id}/members Get the educationClass resources owned by an educationSchool
EducationClassApi ListClasses Get /education/classes list education classes
EducationClassApi UpdateClass Patch /education/classes/{class-id} Update properties of a education class
EducationClassTeachersApi AddTeacherToClass Post /education/classes/{class-id}/teachers/$ref Assign a teacher to a class
EducationClassTeachersApi DeleteTeacherFromClass Delete /education/classes/{class-id}/teachers/{user-id}/$ref Unassign user as teacher of a class
EducationClassTeachersApi GetTeachers Get /education/classes/{class-id}/teachers Get the teachers for a class
EducationSchoolApi AddClassToSchool Post /education/schools/{school-id}/classes/$ref Assign a class to a school
EducationSchoolApi AddUserToSchool Post /education/schools/{school-id}/users/$ref Assign a user to a school
EducationSchoolApi CreateSchool Post /education/schools Add new school
EducationSchoolApi DeleteClassFromSchool Delete /education/schools/{school-id}/classes/{class-id}/$ref Unassign class from a school
EducationSchoolApi DeleteSchool Delete /education/schools/{school-id} Delete school
EducationSchoolApi DeleteUserFromSchool Delete /education/schools/{school-id}/users/{user-id}/$ref Unassign user from a school
EducationSchoolApi GetSchool Get /education/schools/{school-id} Get the properties of a specific school
EducationSchoolApi ListSchoolClasses Get /education/schools/{school-id}/classes Get the educationClass resources owned by an educationSchool
EducationSchoolApi ListSchoolUsers Get /education/schools/{school-id}/users Get the educationUser resources associated with an educationSchool
EducationSchoolApi ListSchools Get /education/schools Get a list of schools and their properties
EducationSchoolApi UpdateSchool Patch /education/schools/{school-id} Update properties of a school
EducationUserApi CreateEducationUser Post /education/users Add new education user
EducationUserApi DeleteEducationUser Delete /education/users/{user-id} Delete educationUser
EducationUserApi GetEducationUser Get /education/users/{user-id} Get properties of educationUser
EducationUserApi ListEducationUsers Get /education/users Get entities from education users
EducationUserApi UpdateEducationUser Patch /education/users/{user-id} Update properties of educationUser
GroupApi AddMember Post /groups/{group-id}/members/$ref Add a member to a group
GroupApi DeleteGroup Delete /groups/{group-id} Delete entity from groups
GroupApi DeleteMember Delete /groups/{group-id}/members/{directory-object-id}/$ref Delete member from a group
GroupApi GetGroup Get /groups/{group-id} Get entity from groups by key
GroupApi ListMembers Get /groups/{group-id}/members Get a list of the group's direct members
GroupApi UpdateGroup Patch /groups/{group-id} Update entity in groups
GroupsApi CreateGroup Post /groups Add new entity to groups
GroupsApi ListGroups Get /groups Get entities from groups
MeChangepasswordApi ChangeOwnPassword Post /me/changePassword Chanage your own password
MeDriveApi GetHome Get /me/drive Get personal space for user
MeDriveRootApi HomeGetRoot Get /me/drive/root Get root from personal space
MeDriveRootChildrenApi HomeGetChildren Get /me/drive/root/children Get children from drive
MeDrivesApi ListMyDrives Get /me/drives Get all drives where the current user is a regular member of
MeUserApi GetOwnUser Get /me Get current user
TagsApi AssignTags Put /extensions/org.libregraph/tags Assign tags to a resource
TagsApi GetTags Get /extensions/org.libregraph/tags Get all known tags
TagsApi UnassignTags Delete /extensions/org.libregraph/tags Unassign tags from a resource
UserApi DeleteUser Delete /users/{user-id} Delete entity from users
UserApi ExportPersonalData Post /users/{user-id}/exportPersonalData export personal data of a user
UserApi GetUser Get /users/{user-id} Get entity from users by key
UserApi UpdateUser Patch /users/{user-id} Update entity in users
UserAppRoleAssignmentApi UserCreateAppRoleAssignments Post /users/{user-id}/appRoleAssignments Grant an appRoleAssignment to a user
UserAppRoleAssignmentApi UserDeleteAppRoleAssignments Delete /users/{user-id}/appRoleAssignments/{appRoleAssignment-id} Delete the appRoleAssignment from a user
UserAppRoleAssignmentApi UserListAppRoleAssignments Get /users/{user-id}/appRoleAssignments Get appRoleAssignments from a user
UsersApi CreateUser Post /users Add new entity to users
UsersApi ListUsers Get /users Get entities from users

Documentation For Models

Documentation For Authorization

bearerAuth

  • Type: HTTP Bearer token authentication

Example

auth := context.WithValue(context.Background(), sw.ContextAccessToken, "BEARER_TOKEN_STRING")
r, err := client.Service.Operation(auth, args)

Documentation for Utility Methods

Due to the fact that model structure members are all pointers, this package contains a number of utility functions to easily obtain pointers to values of basic types. Each of these functions takes a value of the given basic type and returns a pointer to it:

  • PtrBool
  • PtrInt
  • PtrInt32
  • PtrInt64
  • PtrFloat
  • PtrFloat32
  • PtrFloat64
  • PtrString
  • PtrTime

Author

libre-graph-api-go's People

Contributors

butonic avatar dragonchaser avatar dragotin avatar excds avatar fschade avatar kobergj avatar kulmann avatar micbar avatar refs avatar rhafer avatar theonering avatar wkloucek avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.