2022-12-11 19:02:27 +01:00
{
"info" : {
2022-12-12 12:50:41 +01:00
"title" : "DD API NotaBLE" ,
"description" : "NotaBLE \u00e9s la col\u00b7laboraci\u00f3 entre Gwido i el Workspace educatiu DD.\n\n\u00c9s un projecte de Xnet, IsardVDI, Gwido i Taller de M\u00fasics, guanyador de la Ciutat Proactiva 2021, suport a la innovaci\u00f3 urbana de la Fundaci\u00f3 BitHabitat." ,
2022-12-11 19:02:27 +01:00
"version" : "2022.11.0" ,
"termsOfService" : ""
} ,
"paths" : {
"/ddapi/users" : {
"get" : {
"summary" : "List all registered users on DD." ,
"responses" : {
"200" : {
"description" : "The list of users registered on DD" ,
"schema" : {
"$ref" : "#/definitions/Users"
} ,
"examples" : "[{\n \"keycloak_id\": \"a773d249-a113-4542-8101-3a50f4cd28c2\",\n \"id\": \"ID\",\n \"username\": \"ID\",\n \"enabled\": true,\n \"first\": \"NAME\",\n \"last\": \"LASTNAME\",\n \"role\": \"student\",\n \"email\": \"ID@DOMAIN\",\n \"groups\": [\n \"GRUP\",\n \"student\"\n ],\n \"quota\": \"500 MB\",\n \"quota_used_bytes\": \"0 MB\"\n}]\n"
}
}
}
} ,
"/ddapi/users/filter" : {
"post" : {
"summary" : "List registered users on DD with a filter applied." ,
"responses" : {
"200" : {
"description" : "The list of users registered on DD with the filter applied.\n" ,
"schema" : {
"$ref" : "#/definitions/Users"
}
}
} ,
"parameters" : [
{
"in" : "body" ,
"name" : "filter" ,
"description" : "The filter to apply to users registered on DD" ,
"schema" : {
"type" : "object" ,
"required" : [
"filter"
] ,
"properties" : {
"text" : {
"type" : "string"
}
}
}
}
] ,
"consumes" : [
"application/json"
]
}
} ,
"/ddapi/groups" : {
"get" : {
"summary" : "List all registered groups on DD." ,
"responses" : {
"200" : {
"description" : "The list of groups registered on DD" ,
"schema" : {
"$ref" : "#/definitions/Groups"
} ,
"examples" : "[{\n \"keycloak_id\": \"f6ec2bda-bec9-415f-bcb7-f5ae644bfec5\",\n \"id\": \"ID\",\n \"name\": \"NAME\",\n \"path\": \"PATH\",\n \"description\": \"DESCRIPITON\",\n}]\n"
}
}
}
} ,
"/ddapi/roles" : {
"get" : {
"summary" : "List all roles configured on DD." ,
"responses" : {
"200" : {
"description" : "The list of roles configured on DD" ,
"schema" : {
"$ref" : "#/definitions/Roles"
} ,
"examples" : "[{\n \"keycloak_id\": \"f6ec2bda-bec9-415f-bcb7-f5ae644bfec5\",\n \"id\": \"ID\",\n \"name\": \"NAME\",\n \"description\": \"DESCRIPITON\",\n}]\n"
}
}
}
} ,
"/ddapi/role/users" : {
"post" : {
"summary" : "List registered users on DD with a the given role." ,
"responses" : {
"200" : {
"description" : "The list of users registered on DD with the filter applied.\n" ,
"schema" : {
"$ref" : "#/definitions/Users"
}
}
} ,
"parameters" : [
{
"in" : "body" ,
"name" : "role" ,
"description" : "The role to search users registered on DD.\nOne of 'id', 'name' and 'keycloak_id' must be provided.\nThis is also the order in which the parameters are checked,\nin case multiple are provided.\n" ,
"schema" : {
"type" : "object" ,
"properties" : {
"id" : {
"type" : "string" ,
"required" : false
} ,
"name" : {
"type" : "string" ,
"required" : false
} ,
"keycloak_id" : {
"type" : "string" ,
"format" : "uuid" ,
"required" : false
}
}
}
}
] ,
"consumes" : [
"application/json"
]
}
} ,
"/ddapi/user/{user_ddid}" : {
"put" : {
"summary" : "Modify a user in DD" ,
"responses" : {
"200" : {
"schema" : {
"type" : "object"
}
} ,
"404" : {
"description" : "The user does not exist\n"
}
} ,
"parameters" : [
{
"in" : "body" ,
"name" : "user" ,
"description" : "The user to be modified on DD.\n" ,
"schema" : {
"type" : "object" ,
"properties" : {
"first" : {
"required" : false ,
"type" : "string"
} ,
"last" : {
"required" : false ,
"type" : "string"
} ,
"email" : {
"required" : false ,
"type" : "string" ,
"format" : "email"
} ,
"password" : {
"required" : false ,
"type" : "string" ,
"format" : "email"
} ,
"password_temporary" : {
"required" : false ,
"type" : "bool"
} ,
"quota" : {
"required" : false ,
"type" : "string"
} ,
"enabled" : {
"required" : false ,
"type" : "bool"
} ,
"role" : {
"required" : false
} ,
"groups" : {
"required" : false ,
"type" : "array" ,
"items" : {
"type" : "string"
}
}
}
}
}
] ,
"consumes" : [
"application/json"
]
2022-12-12 12:50:41 +01:00
} ,
"delete" : {
"summary" : "Delete a registered user in DD" ,
"responses" : {
"200" : {
"schema" : {
"type" : "object"
}
} ,
"404" : {
"description" : "The user does not exist\n"
}
} ,
"parameters" : [
{
"in" : "url" ,
"name" : "user_ddid" ,
"description" : "The user to delete from DD\n" ,
"schema" : {
"type" : "string"
}
}
] ,
"consumes" : [
"application/json"
]
} ,
"get" : {
"summary" : "Get a registered user in DD" ,
"responses" : {
"200" : {
"description" : "The user as it exists on DD\n" ,
"schema" : {
"$ref" : "#/definitions/User"
}
} ,
"404" : {
"description" : "The user does not exist\n"
}
} ,
"parameters" : [
{
"in" : "url" ,
"name" : "user_ddid" ,
"description" : "The user to retrieve from DD\n" ,
"schema" : {
"type" : "string"
}
}
] ,
"consumes" : [
"application/json"
]
2022-12-11 19:02:27 +01:00
}
} ,
"/ddapi/user" : {
"post" : {
"summary" : "Register a new user in DD" ,
"responses" : {
"200" : {
"description" : "The keycloak_id of the newly registered user\n" ,
"schema" : {
"$ref" : "#/definitions/KeycloakId"
} ,
"examples" : "{ \"keycloak_id\": \"f6ec2bda-bec9-415f-bcb7-f5ae644bfec5\" }\n"
} ,
"409" : {
"description" : "The user already exists\n"
}
} ,
"parameters" : [
{
"in" : "body" ,
"name" : "user" ,
"description" : "The user to be registered on DD.\n" ,
"schema" : {
"type" : "object" ,
"properties" : {
"username" : {
"required" : true ,
"type" : "string"
} ,
"first" : {
"required" : true ,
"type" : "string"
} ,
"last" : {
"required" : true ,
"type" : "string"
} ,
"email" : {
"required" : true ,
"type" : "string" ,
"format" : "email"
} ,
"password" : {
"required" : true ,
"type" : "string" ,
"format" : "email"
} ,
"password_temporary" : {
"required" : false ,
"type" : "bool"
} ,
"quota" : {
"required" : true ,
"type" : "string"
} ,
"enabled" : {
"required" : true ,
"type" : "bool"
} ,
"role" : {
"required" : true
} ,
"groups" : {
"required" : true ,
"type" : "array" ,
"items" : {
"type" : "string"
}
}
}
}
}
] ,
"consumes" : [
"application/json"
]
}
} ,
"/ddapi/group/{group_id}" : {
2022-12-12 12:50:41 +01:00
"delete" : {
"summary" : "Delete a registered group in DD" ,
2022-12-11 19:02:27 +01:00
"responses" : {
"200" : {
"schema" : {
2022-12-12 12:50:41 +01:00
"type" : "object"
2022-12-11 19:02:27 +01:00
}
} ,
"404" : {
"description" : "The group does not exist\n"
}
} ,
"parameters" : [
{
"in" : "url" ,
"name" : "group_id" ,
2022-12-12 12:50:41 +01:00
"description" : "The group to delete from DD\n" ,
2022-12-11 19:02:27 +01:00
"schema" : {
"type" : "string"
}
}
] ,
"consumes" : [
"application/json"
]
} ,
2022-12-12 12:50:41 +01:00
"get" : {
"summary" : "Get a registered group in DD" ,
2022-12-11 19:02:27 +01:00
"responses" : {
"200" : {
2022-12-12 12:50:41 +01:00
"description" : "The group as it exists on DD\n" ,
2022-12-11 19:02:27 +01:00
"schema" : {
2022-12-12 12:50:41 +01:00
"$ref" : "#/definitions/Group"
2022-12-11 19:02:27 +01:00
}
} ,
"404" : {
"description" : "The group does not exist\n"
}
} ,
"parameters" : [
{
"in" : "url" ,
"name" : "group_id" ,
2022-12-12 12:50:41 +01:00
"description" : "The group to retrieve from DD\n" ,
2022-12-11 19:02:27 +01:00
"schema" : {
"type" : "string"
}
}
] ,
"consumes" : [
"application/json"
]
}
} ,
"/ddapi/group" : {
"post" : {
"summary" : "Register a new group in DD" ,
"responses" : {
"200" : {
"description" : "The keycloak_id of the newly registered group\n" ,
"schema" : {
"$ref" : "#/definitions/KeycloakId"
}
} ,
"409" : {
"description" : "The group already exists\n"
}
} ,
"parameters" : [
{
"in" : "body" ,
"name" : "group" ,
"description" : "The group to be registered on DD.\n" ,
"schema" : {
"type" : "object" ,
"properties" : {
"name" : {
"required" : true ,
"type" : "string"
} ,
"description" : {
"required" : false ,
"type" : "string"
} ,
"parent" : {
"required" : false ,
"type" : "string"
}
}
}
}
] ,
"consumes" : [
"application/json"
]
}
}
} ,
"definitions" : {
"User" : {
"type" : "object" ,
"properties" : {
"keycloak_id" : {
"type" : "string" ,
"format" : "uuid"
} ,
"id" : {
"type" : "string"
} ,
"username" : {
"type" : "string"
} ,
"enabled" : {
"type" : "boolean"
} ,
"first" : {
"type" : "string"
} ,
"last" : {
"type" : "string"
} ,
"role" : {
"type" : "string"
} ,
"email" : {
"type" : "string" ,
"fomat" : "email"
} ,
"groups" : {
"type" : "array" ,
"items" : {
"type" : "string"
}
} ,
"quota" : {
"type" : "string"
} ,
"quota_used_bytes" : {
"type" : "string"
}
}
} ,
"Users" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/User"
}
} ,
"Group" : {
"type" : "object" ,
"properties" : {
"keycloak_id" : {
"type" : "string" ,
"format" : "uuid"
} ,
"id" : {
"type" : "string"
} ,
"name" : {
"type" : "string"
} ,
"path" : {
"type" : "string"
} ,
"description" : {
"type" : "string"
}
}
} ,
"Groups" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Group"
}
} ,
"Role" : {
"type" : "object" ,
"properties" : {
"keycloak_id" : {
"type" : "string" ,
"format" : "uuid"
} ,
"id" : {
"type" : "string"
} ,
"name" : {
"type" : "string"
} ,
"description" : {
"type" : "string"
}
}
} ,
"Roles" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Role"
}
} ,
"KeycloakId" : {
"type" : "object" ,
"properties" : {
"keycloak_id" : {
"required" : true ,
"type" : "string"
}
}
}
} ,
"swagger" : "2.0" ,
"externalDocs" : {
"description" : "Online Documentation" ,
2022-12-12 12:50:41 +01:00
"url" : "https://dd.digitalitzacio-democratica.xnet-x.net/docs/integrations.ca/"
2022-12-11 19:02:27 +01:00
} ,
"securityDefinitions" : {
"dd_jwt" : {
"type" : "apiKey" ,
"in" : "header" ,
"name" : "Authorization" ,
"description" : "JWS token using API_SECRET (e.g. 'bearer X.Y')"
}
} ,
"security" : {
"dd_jwt" : {
"$ref" : "#/securityDefinitions/dd_jwt"
}
} ,
"swagger_ui" : true
}