# NEWT IRIS
We use a subset of a language called graphql to generate these queries.
You will need to call a function with a specified parameter, and describe the fields you would like returned.
## Syntax
```
function_name(param: value) {
field1,
field2,
field3 {
nestedfield1,
nestedfield2
}
}
```
returns
```
{
"data": {
"newt": {
"function_name": // json {} or []
}
}
}
```
## Valid Calls:
1. Please call with ONE of the parameters specified
2. Please include the fields you want returned
3. DEPRACATED: To pass this into NEWT please double escape any quotes (`"`) and trim newlines
### User Info
Call with either UID or username. Returns user information along with basic account information for each system
```
user(uid: Int, username: String): {
uid,
name,
firstname,
lastname,
middlename,
ldapUsers {
shell,
hostname,
loginType,
status,
homedir,
gid,
gname,
}
organization,
workphone,
otherPhones,
email
}
```
eg.
```
data = 'user(username: "myusername") {uid, name, firstname, lastname, middlename, ldapUsers {shell, hostname, loginType, status, homedir, gid, gname, } organization, workphone, otherPhones, email }'
$.newt_ajax({
url: "/account/iris",
type: "POST",
data: {query: data},
success: function(output) {
console.log(output.data)
}
})
```
### Project Info
Returns Project Information
```
project(projectId: Int, repoName: String) {
projectId,
label,
description,
repoName,
imageId,
imageType,
imageUrl,
scicat,
program,
office,
allocationType,
allocationPool,
organization {
organizationId,
label,
description,
}
}
```
eg.
```
data='project(repoName: "m12345"){projectId, label, description, repoName, imageId, imageType, imageUrl, scicat, program, office, allocationType, allocationPool, organization {organizationId,label,description}}'
$.newt_ajax({
url: "/account/iris",
type: "POST",
data: {query: data},
success: function(output) {
console.log(output.data)
}
})
```
### Allocation Information for User
Returns per repo usage for the user
```
accounts(uid: Int, username: String) {
projectId,
repoName,
repoType,
currentAlloc,
usedAlloc,
users {
uid,
name,
firstname,
lastname,
middlename,
userAlloc,
userAllocPct,
usedAlloc
}
}
```
eg.
```
data = 'accounts(username: "myusername") {projectId, repoName, repoType, currentAlloc, usedAlloc, users {uid, name, firstname, lastname, middlename, userAlloc, userAllocPct, usedAlloc } }'
$.newt_ajax({
url: "/account/iris",
type: "POST",
data: {query: data},
success: function(output) {
console.log(output.data)
}
})
```
### Allocation Information for Project
Returns repo usage for all users in a repo
```
accounts(projectId: Int, repoName: String) {
projectId,
repoName,
repoType,
currentAlloc,
usedAlloc,
users {
uid,
name,
firstname,
lastname,
middlename,
userAlloc,
userAllocPct,
usedAlloc
}
}
```
eg.
```
data = 'accounts(repoName: "myreponame") {projectId, repoName, repoType, currentAlloc, usedAlloc, users {uid, name, firstname, lastname, middlename, userAlloc, userAllocPct, usedAlloc } }'
$.newt_ajax({
url: "/account/iris",
type: "POST",
data: {query: data},
success: function(output) {
console.log(output.data)
}
})
```
### HPSS Usage Information for User
Returns HPSS storage used across repos for a given user
```
hpss(uid: Int, username: String) {
projectId,
repoName,
currentAlloc,
users {
uid,
name,
userAllocPct,
pctChargedToProject,
bytesUsed,
fileCount
}
}
```
eg.
```
data = 'hpss(username: "myusername") {projectId, repoName, currentAlloc, users {uid, name, userAllocPct, pctChargedToProject, bytesUsed, fileCount } } '
$.newt_ajax({
url: "/account/iris",
type: "POST",
data: {query: data},
success: function(output) {
console.log(output.data)
}
})
```
### HPSS Usage Information for Project
Returns HPSS storage used for all users in a given repo
```
hpss(projectId: Int, repoName: String) {
projectId,
repoName,
currentAlloc,
users {
uid,
name,
userAllocPct,
pctChargedToProject,
bytesUsed,
fileCount
}
}
```
eg.
```
data = 'hpss(repoName: "myreponame") {projectId, repoName, currentAlloc, users {uid, name, userAllocPct, pctChargedToProject, bytesUsed, fileCount } } '
$.newt_ajax({
url: "/account/iris",
type: "POST",
data: {query: data},
success: function(output) {
console.log(output.data)
}
})
```
### Project Role Information
Returns list of project roles per user
```
roles(uid: Int, username: String) {
uid,
name,
firstname,
lastname,
middlename,
projectId,
repoName,
role
}
```
eg.
```
data = 'roles(username: "myusername") {uid, name, firstname, lastname, middlename, projectId, repoName, role }'
$.newt_ajax({
url: "/account/iris",
type: "POST",
data: {query: data},
success: function(output) {
console.log(output.data)
}
})
```
### User Role Information
Returns list of user roles per project
```
roles(projectId: Int, repoName: String) {
uid,
name,
firstname,
lastname,
middlename,
projectId,
repoName,
role
}
```
eg.
```
data = 'roles(repoName: "myrepo") {uid, name, firstname, lastname, middlename, projectId, repoName, role }'
$.newt_ajax({
url: "/account/iris",
type: "POST",
data: {query: data},
success: function(output) {
console.log(output.data)
}
})
```
### User Group Information
Returns list of groups for the user
```
groups(uid: Int, username: String) {
gid,
name,
projectId,
repoName
}
```
eg.
```
data = 'groups(username: "myusername") {gid, name, projectId, repoName}'
$.newt_ajax({
url: "/account/iris",
type: "POST",
data: {query: data},
success: function(output) {
console.log(output.data)
}
})
```
### Project Group Information
Returns list of groups for the project
```
groups(projectId: Int, repoName: String) {
gid,
name,
projectId,
repoName
}
```
eg.
```
data = 'groups(repoName: "myreponame") {gid, name, projectId, repoName}'
$.newt_ajax({
url: "/account/iris",
type: "POST",
data: {query: data},
success: function(output) {
console.log(output.data)
}
})
```