GENI Clearinghouse Project Authority (PA) controller interface
The PA maintains a list of projects, their details and members and provides
access to creating, looking up, updating, deleting projects.
Supports these methods:
- project_id <= create_project(project_name, lead_id, lead_email,
purpose)
- success <= delete_project(project_id);
- [project_name, lead_id, project_email, project_purpose] <=
lookup_project(project_id);
- success <= update_project(project_id, project_email,
project_purpose);
- success <= change_lead(project_id, previous_lead_id, new_lead_id);
- success <= add_project_member(project_id, member_id, role)
- success <= remove_project_member(project_id, member_id)
- success <= change_member_role(project_id, member_id, role)
- [member_id, role]* <= get_project_members(project_id, role=null)
- [project_id]* <= get_projects_for_member(member_id, is_member,
role=null)
Methods summary
public
boolean
|
#
create_project( dict $args_dict )
Create and register new project within clearinghouse
Create and register new project within clearinghouse
Parameters
- $args_dict
dict $args_dict Dictionary containing name/value pairs:
- "operation" : name of this method ("create_project")
- "project_name" : name of project being created
- "lead_id" : UUID of project lead
- "project_purpose" : description of project purpose
Returns
boolean Success/Failure
|
public
boolean
|
#
delete_project( dict $args_dict )
Delete given project of given ID
Delete given project of given ID
Parameters
- $args_dict
dict $args_dict Dictionary containing name/value pairs:
- "operation" : name of this method ("delete_project")
- "project_id" : ID of project to be deleted
Returns
boolean Success/Failure
|
public
boolean
|
#
update_project( dict $args_dict )
Update details of given project
Update details of given project
Parameters
- $args_dict
dict $args_dict Dictionary containing name/value pairs:
- "operation" : name of this method ("update_project")
- "project_id" : ID of project to be modified
- "project_name" : new name of project
- "project_purpose" : new purpose of project
Returns
boolean Success/Failure
|
public
boolean
|
#
change_lead( dict $args_dict )
Update lead of given project
Update lead of given project
Parameters
- $args_dict
dict $args_dict Dictionary containing name/value pairs:
- "operation" : name of this method ("change_lead")
- "project_id" : ID of project to be modified
- "previous_lead_id" : ID of previous project lead
- "lead_id" : ID of new project lead
Returns
boolean Success/Failure
|
public
boolean
|
#
add_project_member( dict $args_dict )
Add a member of given role to given project
Add a member of given role to given project
Parameters
- $args_dict
dict $args_dict Dictionary containing name/value pairs:
- "operation" : name of this method ("add_project_member")
- "project_id" : ID of project to be modified
- "member_id : ID of member to be associated with given project
- "role_type" : role of member within project
Returns
boolean Success/Failure
|
public
boolean
|
#
remove_project_member( dict $args_dict )
Remove a member from given project
Remove a member from given project
Parameters
- $args_dict
dict $args_dict Dictionary containing name/value pairs:
- "operation" : name of this method ("remove_project_member")
- "project_id" : ID of project to be modified
- "member_id : ID of member to be disassociated with given project
Returns
boolean Success/Failure
|
public
boolean
|
#
change_member_role( dict $args_dict )
Change role of given member in given project
Change role of given member in given project
Parameters
- $args_dict
dict $args_dict Dictionary containing name/value pairs:
- "operation" : name of this method ("change_member_role")
- "project_id" : ID of project to be modified
- "member_id : ID of member whose role within project is to be modified
- "role_type" : role to be associated with given member
Returns
boolean Success/Failure
|
public
array
|
#
get_projects( dict $args_dict )
Return list of all project ID's, optionally limited by lead_id
Return list of all project ID's, optionally limited by lead_id
Parameters
- $args_dict
dict $args_dict Dictionary containing name/value pairs:
- "operation" : name of this method ("get_projects")
- "lead_id" : ID of lead of projects to be provided [optional]
Returns
array List of project IDs associated with given lead ID (if provided)
|
public
array
|
#
lookup_projects( dict $args_dict )
Return list of all projects and data. Optionally, filtered by lead_id if
provided
Return list of all projects and data. Optionally, filtered by lead_id if
provided
Parameters
- $args_dict
dict $args_dict Dictionary containing name/value pairs:
- "operation" : name of this method ("lookup_projects")
- "lead_id" : ID of lead of projects to be provided [optional]
Returns
array List of project ID, project name, lead_id, project_email, creation time and
project purpose for projects of given lead ID (if provided)
|
public
dict
|
#
lookup_project( dict $args_dict )
Return information about project with given ID or name Optionally, filtered
by lead_id if provided
Return information about project with given ID or name Optionally, filtered
by lead_id if provided
Parameters
- $args_dict
dict $args_dict Dictionary containing name/value pairs:
- "operation" : name of this method ("lookup_project")
- "lead_id" : ID of lead of project [optional]
- "project_id" : ID of project to be provided
- "project_name" : name of project to be provided
- NOTE: At least one of preceding two tags is required
Returns
dict Project ID, project name, lead_id, project_email, creation time and project
purpose for projects of given lead ID (if provided)
|
public
array
|
#
get_project_members( dict $args_dict )
Return list of member ID's and roles associated with given project.
If role is provided, filter to members of given role
Return list of member ID's and roles associated with given project.
If role is provided, filter to members of given role
Parameters
- $args_dict
dict $args_dict Dictionary containing name/value pairs:
- "operation" : name of this method ("get_project_members")
- "project_id" : ID of project to be modified
- "role_type" : role filter to be applied to query [optional]
Returns
array List of (member_id, role) tuples for members of given project
|
public
arrary
|
#
get_projects_for_member( dict $args_dict )
Return list of project ID's for given member_id
Optionally indicate sense of 'is member' or 'is not member'
If is_member is true, return projects for which member is a member
If is_member is false, return projects for which member is NOT a member
Optionally indicate role type of member
If role is provided, filter on projects
for which member has given role (is_member = true)
for which member does NOT have given role (is_member = false)
Return list of project ID's for given member_id
Optionally indicate sense of 'is member' or 'is not member'
If is_member is true, return projects for which member is a member
If is_member is false, return projects for which member is NOT a member
Optionally indicate role type of member
If role is provided, filter on projects
for which member has given role (is_member = true)
for which member does NOT have given role (is_member = false)
Parameters
- $args_dict
dict $args_dict Dictionary containing name/value pairs:
- "operation" : name of this method ("get_projects_for_member")
- "member_id" : ID of member about which projects are being queried
- "is_member" : determines sense of 'member_id' query match [optional]
- "role_type" : role associated with given member [optional]
Returns
arrary List of ID's of given projects
|
public
number
|
#
get_version( dict $args_dict )
Get the version of the API of this particular service provider
Get the version of the API of this particular service provider
Parameters
- $args_dict
dict $args_dict Dictionary containing 'operation' argument
Returns
number Version of API of this particular service provider
|