forked from mystiq/dex
104c9761c6
The only thing using this AFAIK is dexctl in api_driver mode, which no-one uses - it's a sort of weird API which requires a client to create other clients, and gives all clients the ability to list all other clients. So we are removing it.
335 lines
7.7 KiB
JSON
335 lines
7.7 KiB
JSON
{
|
|
"kind": "discovery#restDescription",
|
|
"discoveryVersion": "v1",
|
|
"id": "dex:v1",
|
|
"name": "workerschema",
|
|
"version": "v1",
|
|
"title": "Dex API",
|
|
"description": "The Dex REST API",
|
|
"documentationLink": "http://github.com/coreos/dex",
|
|
"protocol": "rest",
|
|
"icons": {
|
|
"x16": "",
|
|
"x32": ""
|
|
},
|
|
"labels": [],
|
|
"baseUrl": "$ENDPOINT/api/v1/",
|
|
"basePath": "/api/v1/",
|
|
"rootUrl": "$ENDPOINT/",
|
|
"servicePath": "api/v1/",
|
|
"batchPath": "batch",
|
|
"parameters": {},
|
|
"auth": {},
|
|
"schemas": {
|
|
"Error": {
|
|
"id": "Error",
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"type": "string"
|
|
},
|
|
"error_description": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"RefreshClient": {
|
|
"id": "Client",
|
|
"type": "object",
|
|
"description": "A client with associated public metadata.",
|
|
"properties": {
|
|
"clientID": {
|
|
"type": "string"
|
|
},
|
|
"clientName": {
|
|
"type": "string"
|
|
},
|
|
"logoURI": {
|
|
"type": "string"
|
|
},
|
|
"clientURI": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"RefreshClientList": {
|
|
"id": "RefreshClientList",
|
|
"type": "object",
|
|
"properties": {
|
|
"clients": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "RefreshClient"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"User": {
|
|
"id": "User",
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"displayName": {
|
|
"type": "string"
|
|
},
|
|
"emailVerified": {
|
|
"type": "boolean"
|
|
},
|
|
"admin": {
|
|
"type": "boolean"
|
|
},
|
|
"disabled": {
|
|
"type": "boolean"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"UserResponse": {
|
|
"id": "UserResponse",
|
|
"type": "object",
|
|
"properties": {
|
|
"user": {
|
|
"$ref": "User"
|
|
}
|
|
}
|
|
},
|
|
"UsersResponse": {
|
|
"id": "UsersResponse",
|
|
"type": "object",
|
|
"properties": {
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "User"
|
|
}
|
|
},
|
|
"nextPageToken": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"UserCreateRequest": {
|
|
"id": "UserCreateRequest",
|
|
"type": "object",
|
|
"properties": {
|
|
"user": {
|
|
"$ref": "User"
|
|
},
|
|
"redirectURL": {
|
|
"type": "string",
|
|
"format": "url"
|
|
}
|
|
}
|
|
},
|
|
"UserCreateResponse": {
|
|
"id": "UserCreateResponse",
|
|
"type": "object",
|
|
"properties": {
|
|
"user": {
|
|
"type": "object",
|
|
"$ref": "User"
|
|
},
|
|
"resetPasswordLink": {
|
|
"type": "string"
|
|
},
|
|
"emailSent": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"UserDisableRequest": {
|
|
"id": "UserDisableRequest",
|
|
"type": "object",
|
|
"properties": {
|
|
"disable": {
|
|
"type": "boolean",
|
|
"description": "If true, disable this user, if false, enable them. No error is signaled if the user state doesn't change."
|
|
}
|
|
}
|
|
},
|
|
"UserDisableResponse": {
|
|
"id": "UserDisableResponse",
|
|
"type": "object",
|
|
"properties": {
|
|
"ok": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"ResendEmailInvitationRequest": {
|
|
"id": "UserDisableRequest",
|
|
"type": "object",
|
|
"properties": {
|
|
"redirectURL": {
|
|
"type": "string",
|
|
"format": "url"
|
|
}
|
|
}
|
|
},
|
|
"ResendEmailInvitationResponse": {
|
|
"id": "UserDisableResponse",
|
|
"type": "object",
|
|
"properties": {
|
|
"resetPasswordLink": {
|
|
"type": "string"
|
|
},
|
|
"emailSent": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"resources": {
|
|
"Users": {
|
|
"methods": {
|
|
"List": {
|
|
"id": "dex.User.List",
|
|
"description": "Retrieve a page of User objects.",
|
|
"httpMethod": "GET",
|
|
"path": "users",
|
|
"parameters": {
|
|
"nextPageToken": {
|
|
"type": "string",
|
|
"location": "query"
|
|
},
|
|
"maxResults": {
|
|
"type": "integer",
|
|
"location": "query"
|
|
}
|
|
},
|
|
"response": {
|
|
"$ref": "UsersResponse"
|
|
}
|
|
},
|
|
"Get": {
|
|
"id": "dex.User.Get",
|
|
"description": "Get a single User object by id.",
|
|
"httpMethod": "GET",
|
|
"path": "users/{id}",
|
|
"parameters": {
|
|
"id": {
|
|
"type": "string",
|
|
"required": true,
|
|
"location": "path"
|
|
}
|
|
},
|
|
"parameterOrder": [
|
|
"id"
|
|
],
|
|
"response": {
|
|
"$ref": "UserResponse"
|
|
}
|
|
},
|
|
"Create": {
|
|
"id": "dex.User.Create",
|
|
"description": "Create a new User.",
|
|
"httpMethod": "POST",
|
|
"path": "users",
|
|
"request": {
|
|
"$ref": "UserCreateRequest"
|
|
},
|
|
"response": {
|
|
"$ref": "UserCreateResponse"
|
|
}
|
|
},
|
|
"Disable": {
|
|
"id": "dex.User.Disable",
|
|
"description": "Enable or disable a user.",
|
|
"httpMethod": "POST",
|
|
"path": "users/{id}/disable",
|
|
"parameters": {
|
|
"id": {
|
|
"type": "string",
|
|
"required": true,
|
|
"location": "path"
|
|
}
|
|
},
|
|
"parameterOrder": [
|
|
"id"
|
|
],
|
|
"request": {
|
|
"$ref": "UserDisableRequest"
|
|
},
|
|
"response": {
|
|
"$ref": "UserDisableResponse"
|
|
}
|
|
},
|
|
"ResendEmailInvitation": {
|
|
"id": "dex.User.ResendEmailInvitation",
|
|
"description": "Resend invitation email to an existing user with unverified email.",
|
|
"httpMethod": "POST",
|
|
"path": "users/{id}/resend-invitation",
|
|
"parameters": {
|
|
"id": {
|
|
"type": "string",
|
|
"required": true,
|
|
"location": "path"
|
|
}
|
|
},
|
|
"parameterOrder": [
|
|
"id"
|
|
],
|
|
"request": {
|
|
"$ref": "ResendEmailInvitationRequest"
|
|
},
|
|
"response": {
|
|
"$ref": "ResendEmailInvitationResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"RefreshClient": {
|
|
"methods": {
|
|
"List": {
|
|
"id": "dex.RefreshClient.List",
|
|
"description": "List all clients that hold refresh tokens for the specified user.",
|
|
"httpMethod": "GET",
|
|
"path": "account/{userid}/refresh",
|
|
"parameters": {
|
|
"userid": {
|
|
"type": "string",
|
|
"required": true,
|
|
"location": "path"
|
|
}
|
|
},
|
|
"parameterOrder": [
|
|
"userid"
|
|
],
|
|
"response": {
|
|
"$ref": "RefreshClientList"
|
|
}
|
|
},
|
|
"Revoke": {
|
|
"id": "dex.RefreshClient.Revoke",
|
|
"description": "Revoke all refresh tokens issues to the client for the specified user.",
|
|
"httpMethod": "DELETE",
|
|
"path": "account/{userid}/refresh/{clientid}",
|
|
"parameterOrder": [
|
|
"userid",
|
|
"clientid"
|
|
],
|
|
"parameters": {
|
|
"clientid": {
|
|
"type": "string",
|
|
"required": true,
|
|
"location": "path"
|
|
},
|
|
"userid": {
|
|
"type": "string",
|
|
"required": true,
|
|
"location": "path"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|