{
    "swagger": "2.0",
    "info": {
        "title": "oc-auth",
        "description": "OpenCloud authentication services\n",
        "version": "1.0.0",
        "termsOfService": "http://cloud.o-forge.io/",
        "contact": {
            "email": "admin@o-cloud.io"
        },
        "license": {
            "name": "AGPL",
            "url": "https://www.gnu.org/licenses/agpl-3.0.html"
        }
    },
    "basePath": "/oc/",
    "paths": {
        "/forward": {
            "get": {
                "tags": [
                    "oc-auth/controllersOAuthController"
                ],
                "description": "auth forward\n\u003cbr\u003e",
                "operationId": "OAuthController.AuthForward",
                "parameters": [
                    {
                        "in": "header",
                        "name": "Authorization",
                        "description": "auth token",
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{string}"
                    }
                }
            }
        },
        "/group/": {
            "get": {
                "tags": [
                    "group"
                ],
                "description": "find groups\n\u003cbr\u003e",
                "operationId": "GroupController.GetAll",
                "responses": {
                    "200": {
                        "description": "{group} string"
                    }
                }
            }
        },
        "/group/clear": {
            "delete": {
                "tags": [
                    "group"
                ],
                "description": "clear the group\n\u003cbr\u003e",
                "operationId": "GroupController.Clear",
                "responses": {
                    "200": {
                        "description": "{string} delete success!"
                    }
                }
            }
        },
        "/group/user/{id}": {
            "get": {
                "tags": [
                    "group"
                ],
                "description": "find group by user id\n\u003cbr\u003e",
                "operationId": "GroupController.GetByUser",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the id you want to get",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{auth} string"
                    }
                }
            }
        },
        "/group/{id}": {
            "get": {
                "tags": [
                    "group"
                ],
                "description": "find group by id\n\u003cbr\u003e",
                "operationId": "GroupController.Get",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the id you want to get",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{group} string"
                    }
                }
            },
            "post": {
                "tags": [
                    "group"
                ],
                "description": "create group\n\u003cbr\u003e",
                "operationId": "GroupController.Create",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the id you want to get",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{auth} create success!"
                    }
                }
            },
            "delete": {
                "tags": [
                    "group"
                ],
                "description": "delete the group\n\u003cbr\u003e",
                "operationId": "GroupController.Delete",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "The id you want to delete",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{string} delete success!"
                    }
                }
            }
        },
        "/group/{user_id}/{group_id}": {
            "post": {
                "tags": [
                    "group"
                ],
                "description": "bind the group to user\n\u003cbr\u003e",
                "operationId": "GroupController.Bind",
                "parameters": [
                    {
                        "in": "path",
                        "name": "user_id",
                        "description": "The user_id you want to bind",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "path",
                        "name": "group_id",
                        "description": "The group_id you want to bind",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{string} bind success!"
                    }
                }
            },
            "delete": {
                "tags": [
                    "group"
                ],
                "description": "unbind the group to user\n\u003cbr\u003e",
                "operationId": "GroupController.UnBind",
                "parameters": [
                    {
                        "in": "path",
                        "name": "group_id",
                        "description": "The group_id you want to unbind",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "path",
                        "name": "group_id",
                        "description": "The user_id you want to unbind",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{string} bind success!"
                    }
                }
            }
        },
        "/introspect": {
            "get": {
                "tags": [
                    "oc-auth/controllersOAuthController"
                ],
                "description": "introspect token\n\u003cbr\u003e",
                "operationId": "OAuthController.Introspection",
                "parameters": [
                    {
                        "in": "header",
                        "name": "Authorization",
                        "description": "auth token",
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{string}"
                    }
                }
            }
        },
        "/ldap/login": {
            "post": {
                "tags": [
                    "oc-auth/controllersOAuthController"
                ],
                "description": "authenticate user\n\u003cbr\u003e",
                "operationId": "OAuthController.Login",
                "parameters": [
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The workflow content",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.workflow"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{string}"
                    }
                }
            }
        },
        "/ldap/logout": {
            "delete": {
                "tags": [
                    "oc-auth/controllersOAuthController"
                ],
                "description": "unauthenticate user\n\u003cbr\u003e",
                "operationId": "OAuthController.Logout",
                "parameters": [
                    {
                        "in": "header",
                        "name": "Authorization",
                        "description": "auth token",
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{string}"
                    }
                }
            }
        },
        "/permission/": {
            "get": {
                "tags": [
                    "permission"
                ],
                "description": "find permissions\n\u003cbr\u003e",
                "operationId": "PermissionController.GetAll",
                "responses": {
                    "200": {
                        "description": "{permission} string"
                    }
                }
            }
        },
        "/permission/clear": {
            "delete": {
                "tags": [
                    "permission"
                ],
                "description": "clear the permission\n\u003cbr\u003e",
                "operationId": "PermissionController.Clear",
                "responses": {
                    "200": {
                        "description": "{string} delete success!"
                    }
                }
            }
        },
        "/permission/role/{id}": {
            "get": {
                "tags": [
                    "permission"
                ],
                "description": "find permission by role id\n\u003cbr\u003e",
                "operationId": "PermissionController.GetByRole",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the id you want to get",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{auth} string"
                    }
                }
            }
        },
        "/permission/user/{id}": {
            "get": {
                "tags": [
                    "permission"
                ],
                "description": "find permission by user id\n\u003cbr\u003e",
                "operationId": "PermissionController.GetByUser",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the id you want to get",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{auth} string"
                    }
                }
            }
        },
        "/permission/{id}/{relation}": {
            "get": {
                "tags": [
                    "permission"
                ],
                "description": "find auth by permission\n\u003cbr\u003e",
                "operationId": "PermissionController.Get",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the permission you want to get",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{auth} models.auth"
                    }
                }
            }
        },
        "/permission/{permission_id}/{role_id}/{relation}": {
            "post": {
                "tags": [
                    "permission"
                ],
                "description": "bind the permission to role\n\u003cbr\u003e",
                "operationId": "PermissionController.Bind",
                "parameters": [
                    {
                        "in": "path",
                        "name": "role_id",
                        "description": "The role_id you want to bind",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "path",
                        "name": "method",
                        "description": "The method you want to relate role \u0026 permission",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "path",
                        "name": "permission_id",
                        "description": "The permission_id you want to bind",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{string} bind success!"
                    }
                }
            },
            "delete": {
                "tags": [
                    "permission"
                ],
                "description": "unbind the permission to role\n\u003cbr\u003e",
                "operationId": "PermissionController.UnBind",
                "parameters": [
                    {
                        "in": "path",
                        "name": "role_id",
                        "description": "The role_id you want to unbind",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "path",
                        "name": "relation",
                        "description": "The method you want to unrelate role \u0026 permission",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "path",
                        "name": "permission_id",
                        "description": "The permission_id you want to unbind",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{string} bind success!"
                    }
                }
            }
        },
        "/refresh": {
            "post": {
                "tags": [
                    "oc-auth/controllersOAuthController"
                ],
                "description": "introspect token\n\u003cbr\u003e",
                "operationId": "OAuthController.Introspection",
                "parameters": [
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The token info",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.Token"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{string}"
                    }
                }
            }
        },
        "/role/": {
            "get": {
                "tags": [
                    "role"
                ],
                "description": "find roles\n\u003cbr\u003e",
                "operationId": "RoleController.GetAll",
                "responses": {
                    "200": {
                        "description": "{role} string"
                    }
                }
            }
        },
        "/role/clear": {
            "delete": {
                "tags": [
                    "role"
                ],
                "description": "clear the role\n\u003cbr\u003e",
                "operationId": "RoleController.Clear",
                "responses": {
                    "200": {
                        "description": "{string} delete success!"
                    }
                }
            }
        },
        "/role/user/{id}": {
            "get": {
                "tags": [
                    "role"
                ],
                "description": "find role by user id\n\u003cbr\u003e",
                "operationId": "RoleController.GetByUser",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the id you want to get",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{auth} string"
                    }
                }
            }
        },
        "/role/{id}": {
            "get": {
                "tags": [
                    "role"
                ],
                "description": "find role by id\n\u003cbr\u003e",
                "operationId": "RoleController.Get",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the id you want to get",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{role} string"
                    }
                }
            },
            "post": {
                "tags": [
                    "role"
                ],
                "description": "create role\n\u003cbr\u003e",
                "operationId": "RoleController.Create",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the id you want to get",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{auth} create success!"
                    }
                }
            },
            "delete": {
                "tags": [
                    "role"
                ],
                "description": "delete the role\n\u003cbr\u003e",
                "operationId": "RoleController.Delete",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "The id you want to delete",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{string} delete success!"
                    }
                }
            }
        },
        "/role/{user_id}/{role_id}": {
            "post": {
                "tags": [
                    "role"
                ],
                "description": "bind the role to user\n\u003cbr\u003e",
                "operationId": "RoleController.Bind",
                "parameters": [
                    {
                        "in": "path",
                        "name": "user_id",
                        "description": "The user_id you want to bind",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "path",
                        "name": "role_id",
                        "description": "The role_id you want to bind",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{string} bind success!"
                    }
                }
            },
            "delete": {
                "tags": [
                    "role"
                ],
                "description": "unbind the role to user\n\u003cbr\u003e",
                "operationId": "RoleController.UnBind",
                "parameters": [
                    {
                        "in": "path",
                        "name": "role_id",
                        "description": "The role_id you want to unbind",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "path",
                        "name": "user_id",
                        "description": "The user_id you want to unbind",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{string} bind success!"
                    }
                }
            }
        },
        "/version/": {
            "get": {
                "tags": [
                    "version"
                ],
                "description": "get version\n\u003cbr\u003e",
                "operationId": "VersionController.GetAll",
                "responses": {
                    "200": {
                        "description": ""
                    }
                }
            }
        },
        "/version/discovery": {
            "get": {
                "tags": [
                    "version"
                ],
                "description": "get version\n\u003cbr\u003e",
                "operationId": "VersionController.Get",
                "responses": {
                    "200": {
                        "description": ""
                    }
                }
            }
        }
    },
    "definitions": {
        "models.Token": {
            "title": "Token",
            "type": "object"
        },
        "models.workflow": {
            "title": "workflow",
            "type": "object"
        }
    },
    "tags": [
        {
            "name": "oc-auth/controllersOAuthController",
            "description": "Operations about auth\n"
        },
        {
            "name": "group",
            "description": "Operations about auth\n"
        },
        {
            "name": "role",
            "description": "Operations about auth\n"
        },
        {
            "name": "permission",
            "description": "Operations about auth\n"
        },
        {
            "name": "version",
            "description": "VersionController operations for Version\n"
        }
    ]
}