{
  "opencollection": "1.0.0",
  "info": {
    "name": "Weaviate REST authz API",
    "version": "1.38.0-dev"
  },
  "request": {
    "auth": {
      "type": "apikey",
      "key": "Authorization",
      "value": "{{Authorization}}",
      "placement": "header"
    }
  },
  "items": [
    {
      "info": {
        "name": "authz",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Weaviate Get All Roles",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/authz/roles"
          },
          "docs": "Get all roles and their assigned permissions."
        },
        {
          "info": {
            "name": "Weaviate Create New Role",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/authz/roles",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new role with the specified permissions."
        },
        {
          "info": {
            "name": "Weaviate Add Permissions To A Role",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/authz/roles/:id/add-permissions",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "The name (ID) of the role being modified."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Add new permissions to an existing role without affecting current permissions."
        },
        {
          "info": {
            "name": "Weaviate Remove Permissions From A Role",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/authz/roles/:id/remove-permissions",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "The name of the role being modified."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Permissions can be revoked from a specified role. Removing all permissions from a role will delete the role itself."
        },
        {
          "info": {
            "name": "Weaviate Get A Role",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/authz/roles/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "The name of the role."
              }
            ]
          },
          "docs": "Fetch a role by its name."
        },
        {
          "info": {
            "name": "Weaviate Delete A Role",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "http://localhost:8080/authz/roles/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "The name of the role."
              }
            ]
          },
          "docs": "Deleting a role will remove it from the system, and revoke the associated permissions from all users who had this role."
        },
        {
          "info": {
            "name": "Weaviate Check Whether A Role Possesses A Permission",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/authz/roles/:id/has-permission",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "The name of the role."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Check whether a role has the specified permissions."
        },
        {
          "info": {
            "name": "Weaviate Get Users Assigned To A Role",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/authz/roles/:id/users",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "The name of the role."
              }
            ]
          },
          "docs": "Get all the users (`db` + `oidc`) who have been assigned a specific role. Deprecated, will be removed when v1.29 is not supported anymore."
        },
        {
          "info": {
            "name": "Weaviate Get Users Assigned To A Role",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/authz/roles/:id/user-assignments",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "The name (ID) of the role."
              }
            ]
          },
          "docs": "Fetch a list of users which have the specified role."
        },
        {
          "info": {
            "name": "Weaviate Get Groups That Have A Specific Role Assigned",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/authz/roles/:id/group-assignments",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "The unique name of the role."
              }
            ]
          },
          "docs": "Retrieves a list of all groups that have been assigned a specific role, identified by its name."
        },
        {
          "info": {
            "name": "Weaviate Get Roles Assigned To A User",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/authz/users/:id/roles",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "The name of the user."
              }
            ]
          },
          "docs": "Retrieve the roles assigned to a specific user (`db` + `oidc`). Deprecated, will be removed when 1.29 is not supported anymore"
        },
        {
          "info": {
            "name": "Weaviate Get Roles Assigned To A User",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/authz/users/:id/roles/:userType",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "The name of the user."
              },
              {
                "name": "userType",
                "value": "",
                "type": "path",
                "description": "The type of the user."
              },
              {
                "name": "includeFullRoles",
                "value": "",
                "type": "query",
                "description": "Whether to include detailed role information like its assigned permissions."
              }
            ]
          },
          "docs": "Get all the roles for a specific user (`db` or `oidc`)."
        },
        {
          "info": {
            "name": "Weaviate Assign A Role To A User",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/authz/users/:id/assign",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "The name of the user."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Assign one or more roles to a user. Users can have multiple roles."
        },
        {
          "info": {
            "name": "Weaviate Revoke A Role From A User",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/authz/users/:id/revoke",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "The name of the user."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Remove one or more roles from a user."
        },
        {
          "info": {
            "name": "Weaviate Assign A Role To A Group",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/authz/groups/:id/assign",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "The name of the group."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Assign roles to the specified group."
        },
        {
          "info": {
            "name": "Weaviate Revoke A Role From A Group",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/authz/groups/:id/revoke",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "The name of the group."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Revoke roles from the specified group."
        },
        {
          "info": {
            "name": "Weaviate Get Roles Assigned To A Specific Group",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/authz/groups/:id/roles/:groupType",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "The unique name of the group."
              },
              {
                "name": "groupType",
                "value": "",
                "type": "path",
                "description": "The type of the group."
              },
              {
                "name": "includeFullRoles",
                "value": "",
                "type": "query",
                "description": "If true, the response will include the full role definitions with all associated permissions. If false, only role names are returned."
              }
            ]
          },
          "docs": "Retrieves a list of all roles assigned to a specific group. The group must be identified by both its name (`id`) and its type (`db` or `oidc`)."
        },
        {
          "info": {
            "name": "Weaviate List All Groups Of A Specific Type",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/authz/groups/:groupType",
            "params": [
              {
                "name": "groupType",
                "value": "",
                "type": "path",
                "description": "The type of group to retrieve."
              }
            ]
          },
          "docs": "Retrieves a list of all available group names for a specified group type (`oidc` or `db`)."
        }
      ]
    }
  ],
  "bundled": true
}