cyverse-de/cyverse-groups-client

Name: cyverse-groups-client

Owner: CyVerse Discovery Environment

Description: A Clojure client library for the groups service.

Created: 2017-04-14 00:31:36.0

Updated: 2017-05-04 20:43:45.0

Pushed: 2017-08-23 19:09:50.0

Homepage: null

Size: 46

Language: Clojure

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

iplant-groups-client

A client library for the CyVerse groups service.

Usage
uire '[cyverse-groups-client.core :as c])

reate a client instance.
 client = (c/new-cyverse-groups-client base-url environment-name))

et information about the status of the service.
et-status client)

ormat the folder name prefix for the current environment.
et-folder-name-prefix client)

dd the folder name prefix to a partial foldername.
uild-folder-name client "some:folder:name")

ind folders.
ind-folders client "username" "search-string")

dd a folder with the default display extension (the last component of the folder name).
dd-folder client "username" "some:folder:name" "Description")

dd a folder with a custom display extension.
dd-folder client "username" "some:folder:name" "Description" "custom-extension")

elete a folder.
elete-folder client "username" "some:folder:name")

et information about a specific folder.
et-folder client "username" "some:folder:name")

pdate an existing folder.
pdate-folder client "username" "some:folder:name" {:name              "new:folder:name"
                                                   :description       "New folder description"
                                                   :display_extension "new-extension"})

ist folder privileges.
ist-folder-privileges client "username" "some:folder:name")

evoke folder privileges.
evoke-folder-privilege client "username" "some:folder:name" "subject" "privilege")

rant folder privileges.
rant-folder-privilege client "username" "some:folder:name" "subject" "privilege")

ind groups in any folder.
ind-groups client "username" "search-string")

ind groups within a folder.
ind-groups client "username" "search-string" "some:folder:name")

dd a group.
dd-group client "username" "some:group:name" "group" "Description.")
dd-group client "username" "some:role:name" "role" "Description.")

elete a group.
elete-group client "username" "some:group:name")

et information about a group.
et-group client "username" "some:group:name")

pdate a group.
pdate-group client "username" "some:group:name" {:name              "new:group:name"
                                                 :description       "New group description"
                                                 :display_extension "new-extension"})

ist group privileges.
ist-group-privileges client "username" "some:group:name")
ist-group-privileges client "username" "some:group:name"
                     {:privilege         "privilege-name"
                      :subject-id        "subject-id"
                      :subject-source-id "subject-source-id"
                      :inheritance-level "immediate"})

pdate group privileges for several users.
pdate-group-privileges client "username" "some:group:name" {:updates [{:subject_id "subject"
                                                                       :privileges ["optin"]}
                                                                      {:subject_id "subject1"
                                                                       :privileges ["read" "optin"]}]})

pdate group privileges without overwriting existing privileges.
pdate-group-privileges client "username" "some:group:name" {:updates [{:subject_id "subject"
                                                                       :privileges ["optin"]}
                                                                      {:subject_id "subject1"
                                                                       :privileges ["read" "optin"]}]}
                       {:replace false})

evoke group privileges for several users.
evoke-group-privileges client "username" "some:group:name" {:updates [{:subject_id "subject"
                                                                       :privileges ["optin"]}
                                                                      {:subject_id "subject1"
                                                                       :privileges ["read" "optin"]}]})

evoke group privileges.
evoke-group-privilege client "username" "some:group:name" "subject" "privilege")

rant group privileges.
rant-group-privielge client "username" "some:group:name" "subject" "privilege")

ist the members of a group.
ist-group-members client "username" "some:group:name")

eplace all members of a group.
eplace-group-members client "username" "some:group:name" ["subject1", "subject2"])

emove a member from a group.
emove-group-member client "username" "some:group:name" "subject")

dd a member to a group.
dd-group-member client "username" "some:group:name" "subject")

ind subjects.
ind-subjects client "username" "search-string")

et information about a specific subject.
et-subject client "username" "subject")
License

http://www.cyverse.org/sites/default/files/CyVerse-LICENSE.txt


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.