Windmill · Capability

Windmill API — user

Windmill API — user. 54 operations. Lead operation: Check if Password Login is Disabled Instance-wide. Self-contained Naftiko capability covering one Windmill business surface.

Run with Naftiko Windmilluser

What You Can Do

GET
Ispasswordlogindisabled — Check if Password Login is Disabled Instance-wide
/v1/auth/is-password-login-disabled
GET
Issmtpconfigured — Check if SMTP is Configured for Password Reset
/v1/auth/is-smtp-configured
POST
Login — Login with Password
/v1/auth/login
POST
Logout — Logout
/v1/auth/logout
POST
Requestpasswordreset — Request Password Reset Email
/v1/auth/request-password-reset
POST
Resetpassword — Reset Password Using Token
/v1/auth/reset-password
POST
Loginwithoauth — Login with Oauth Authorization Flow
/v1/oauth/login-callback/{client-name}
POST
Acceptinvite — Accept Invite to Workspace
/v1/users/accept-invite
GET
Getrunnable — Get All Runnables in Every Workspace
/v1/users/all-runnables
POST
Createuserglobally — Create User
/v1/users/create
POST
Declineinvite — Decline Invite to Workspace
/v1/users/decline-invite
DELETE
Globaluserdelete — Global Delete User (require Super Admin)
/v1/users/delete/{email}
GET
Getcurrentemail — Get Current User Email (if Logged In)
/v1/users/email
GET
Existsemail — Exists Email
/v1/users/exists/{email}
GET
Globalusersexport — Global Export Users (require Super Admin and EE)
/v1/users/export
GET
Listextjwttokens — List External JWT Tokens (ee Only)
/v1/users/ext-jwt-tokens
POST
Leaveinstance — Leave Instance
/v1/users/leave-instance
GET
Listusersassuperadmin — List All Users as Super Admin (require to be Super Amdin)
/v1/users/list-as-super-admin
GET
Listworkspaceinvites — List All Workspace Invites
/v1/users/list-invites
POST
Offboardglobaluser — Offboard a User Globally (reassign Objects Across Workspaces, Optionally Delete)
/v1/users/offboard/{email}
GET
Globaloffboardpreview — Preview Global Offboarding for a User Across All Workspaces (require Super Admin)
/v1/users/offboard-preview/{email}
POST
Submitonboardingdata — Submit User Onboarding Data
/v1/users/onboarding
POST
Globalusersoverwrite — Global Overwrite Users (require Super Admin and EE)
/v1/users/overwrite
GET
Refreshusertoken — Refresh the Current Token
/v1/users/refresh-token
POST
Globaluserrename — Global Rename User (require Super Admin)
/v1/users/rename/{email}
POST
Setlogintypeforuser — Set Login Type for a Specific User (require Super Admin)
/v1/users/set-login-type/{user}
POST
Setpasswordforuser — Set Password for a Specific User (require Super Admin)
/v1/users/set-password-of/{user}
POST
Setpassword — Set Password
/v1/users/setpassword
POST
Createtoken — Create Token
/v1/users/tokens/create
DELETE
Deletetoken — Delete Token
/v1/users/tokens/delete/{token-prefix}
POST
Createtokenimpersonate — Create Token to Impersonate a User (require Superadmin)
/v1/users/tokens/impersonate
GET
Listtokens — List Token
/v1/users/tokens/list
POST
Updatetokenscopes — Update Scopes of an Existing Token (owner Only)
/v1/users/tokens/update-scopes/{token-prefix}
GET
Gettutorialprogress — Get Tutorial Progress
/v1/users/tutorial-progress
POST
Updatetutorialprogress — Update Tutorial Progress
/v1/users/tutorial-progress
POST
Globaluserupdate — Global Update User (require Super Admin)
/v1/users/update/{email}
GET
Getusage — Get Current Usage Outside of Premium Workspaces
/v1/users/usage
GET
Globalusernameinfo — Global Username Info (require Super Admin)
/v1/users/username-info/{email}
GET
Globalwhoami — Get Current Global Whoami (if Logged In)
/v1/users/whoami
POST
Convertusertogroup — Convert Manual User to Group User (require Admin Privilege)
/v1/w/{workspace}/users/convert-to-group/{username}
DELETE
Deleteuser — Delete User (require Admin Privilege)
/v1/w/{workspace}/users/delete/{username}
POST
Exitimpersonation — Exit Service Account Impersonation
/v1/w/{workspace}/users/exit-impersonation
GET
Getuser — Get User (require Admin Privilege)
/v1/w/{workspace}/users/get/{username}
POST
Impersonateserviceaccount — Impersonate a Service Account
/v1/w/{workspace}/users/impersonate-service-account
GET
Isownerofpath — Is Owner of Path
/v1/w/{workspace}/users/is-owner/{path}
GET
Listusers — List Users
/v1/w/{workspace}/users/list
GET
Listusersusage — List Users Usage
/v1/w/{workspace}/users/list-usage
GET
Listusernames — List Usernames
/v1/w/{workspace}/users/list-usernames
POST
Offboardworkspaceuser — Offboard a Workspace User (reassign Objects, Optionally Delete User)
/v1/w/{workspace}/users/offboard/{username}
GET
Offboardpreview — Preview Offboarding for a Workspace User (require Admin Privilege)
/v1/w/{workspace}/users/offboard-preview/{username}
POST
Updateuser — Update User (require Admin Privilege)
/v1/w/{workspace}/users/update/{username}
GET
Usernametoemail — Get Email from Username
/v1/w/{workspace}/users/username-to-email/{username}
GET
Whoami — Whoami
/v1/w/{workspace}/users/whoami
GET
Whois — Whois
/v1/w/{workspace}/users/whois/{username}

MCP Tools

check-if-password-login-is

Check if Password Login is Disabled Instance-wide

read-only idempotent
check-if-smtp-is-configured

Check if SMTP is Configured for Password Reset

read-only idempotent
login-password

Login with Password

logout

Logout

request-password-reset-email

Request Password Reset Email

reset-password-using-token

Reset Password Using Token

login-oauth-authorization-flow

Login with Oauth Authorization Flow

accept-invite-workspace

Accept Invite to Workspace

get-all-runnables-every-workspace

Get All Runnables in Every Workspace

read-only idempotent
create-user

Create User

decline-invite-workspace

Decline Invite to Workspace

global-delete-user-require-super

Global Delete User (require Super Admin)

idempotent
get-current-user-email-if

Get Current User Email (if Logged In)

read-only idempotent
exists-email

Exists Email

read-only idempotent
global-export-users-require-super

Global Export Users (require Super Admin and EE)

read-only idempotent
list-external-jwt-tokens-ee

List External JWT Tokens (ee Only)

read-only idempotent
leave-instance

Leave Instance

list-all-users-super-admin

List All Users as Super Admin (require to be Super Amdin)

read-only idempotent
list-all-workspace-invites

List All Workspace Invites

read-only idempotent
offboard-user-globally-reassign-objects

Offboard a User Globally (reassign Objects Across Workspaces, Optionally Delete)

preview-global-offboarding-user-across

Preview Global Offboarding for a User Across All Workspaces (require Super Admin)

read-only idempotent
submit-user-onboarding-data

Submit User Onboarding Data

global-overwrite-users-require-super

Global Overwrite Users (require Super Admin and EE)

refresh-current-token

Refresh the Current Token

read-only idempotent
global-rename-user-require-super

Global Rename User (require Super Admin)

set-login-type-specific-user

Set Login Type for a Specific User (require Super Admin)

set-password-specific-user-require

Set Password for a Specific User (require Super Admin)

set-password

Set Password

create-token

Create Token

delete-token

Delete Token

idempotent
create-token-impersonate-user-require

Create Token to Impersonate a User (require Superadmin)

list-token

List Token

read-only idempotent
update-scopes-existing-token-owner

Update Scopes of an Existing Token (owner Only)

get-tutorial-progress

Get Tutorial Progress

read-only idempotent
update-tutorial-progress

Update Tutorial Progress

global-update-user-require-super

Global Update User (require Super Admin)

get-current-usage-outside-premium

Get Current Usage Outside of Premium Workspaces

read-only idempotent
global-username-info-require-super

Global Username Info (require Super Admin)

read-only idempotent
get-current-global-whoami-if

Get Current Global Whoami (if Logged In)

read-only idempotent
convert-manual-user-group-user

Convert Manual User to Group User (require Admin Privilege)

delete-user-require-admin-privilege

Delete User (require Admin Privilege)

idempotent
exit-service-account-impersonation

Exit Service Account Impersonation

get-user-require-admin-privilege

Get User (require Admin Privilege)

read-only idempotent
impersonate-service-account

Impersonate a Service Account

is-owner-path

Is Owner of Path

read-only idempotent
list-users

List Users

read-only idempotent
list-users-usage

List Users Usage

read-only idempotent
list-usernames

List Usernames

read-only idempotent
offboard-workspace-user-reassign-objects

Offboard a Workspace User (reassign Objects, Optionally Delete User)

preview-offboarding-workspace-user-require

Preview Offboarding for a Workspace User (require Admin Privilege)

read-only idempotent
update-user-require-admin-privilege

Update User (require Admin Privilege)

get-email-username

Get Email from Username

read-only idempotent
whoami

Whoami

read-only idempotent
whois

Whois

read-only idempotent

Capability Spec

windmill-user.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Windmill API — user
  description: 'Windmill API — user. 54 operations. Lead operation: Check if Password Login is Disabled Instance-wide. Self-contained
    Naftiko capability covering one Windmill business surface.'
  tags:
  - Windmill
  - user
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    WINDMILL_API_KEY: WINDMILL_API_KEY
capability:
  consumes:
  - type: http
    namespace: windmill-user
    baseUri: ''
    description: Windmill API — user business capability. Self-contained, no shared references.
    resources:
    - name: auth-is_password_login_disabled
      path: /auth/is_password_login_disabled
      operations:
      - name: ispasswordlogindisabled
        method: GET
        description: Check if Password Login is Disabled Instance-wide
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: auth-is_smtp_configured
      path: /auth/is_smtp_configured
      operations:
      - name: issmtpconfigured
        method: GET
        description: Check if SMTP is Configured for Password Reset
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: auth-login
      path: /auth/login
      operations:
      - name: login
        method: POST
        description: Login with Password
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: auth-logout
      path: /auth/logout
      operations:
      - name: logout
        method: POST
        description: Logout
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: auth-request_password_reset
      path: /auth/request_password_reset
      operations:
      - name: requestpasswordreset
        method: POST
        description: Request Password Reset Email
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: auth-reset_password
      path: /auth/reset_password
      operations:
      - name: resetpassword
        method: POST
        description: Reset Password Using Token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: oauth-login_callback-client_name
      path: /oauth/login_callback/{client_name}
      operations:
      - name: loginwithoauth
        method: POST
        description: Login with Oauth Authorization Flow
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-accept_invite
      path: /users/accept_invite
      operations:
      - name: acceptinvite
        method: POST
        description: Accept Invite to Workspace
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-all_runnables
      path: /users/all_runnables
      operations:
      - name: getrunnable
        method: GET
        description: Get All Runnables in Every Workspace
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-create
      path: /users/create
      operations:
      - name: createuserglobally
        method: POST
        description: Create User
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-decline_invite
      path: /users/decline_invite
      operations:
      - name: declineinvite
        method: POST
        description: Decline Invite to Workspace
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-delete-email
      path: /users/delete/{email}
      operations:
      - name: globaluserdelete
        method: DELETE
        description: Global Delete User (require Super Admin)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: email
          in: path
          type: string
          required: true
    - name: users-email
      path: /users/email
      operations:
      - name: getcurrentemail
        method: GET
        description: Get Current User Email (if Logged In)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-exists-email
      path: /users/exists/{email}
      operations:
      - name: existsemail
        method: GET
        description: Exists Email
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: email
          in: path
          type: string
          required: true
    - name: users-export
      path: /users/export
      operations:
      - name: globalusersexport
        method: GET
        description: Global Export Users (require Super Admin and EE)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-ext_jwt_tokens
      path: /users/ext_jwt_tokens
      operations:
      - name: listextjwttokens
        method: GET
        description: List External JWT Tokens (ee Only)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: page
          in: query
          type: integer
        - name: per_page
          in: query
          type: integer
        - name: active_only
          in: query
          type: boolean
          description: only tokens used in the last 30 days
    - name: users-leave_instance
      path: /users/leave_instance
      operations:
      - name: leaveinstance
        method: POST
        description: Leave Instance
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-list_as_super_admin
      path: /users/list_as_super_admin
      operations:
      - name: listusersassuperadmin
        method: GET
        description: List All Users as Super Admin (require to be Super Amdin)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: active_only
          in: query
          type: boolean
          description: filter only active users
    - name: users-list_invites
      path: /users/list_invites
      operations:
      - name: listworkspaceinvites
        method: GET
        description: List All Workspace Invites
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-offboard-email
      path: /users/offboard/{email}
      operations:
      - name: offboardglobaluser
        method: POST
        description: Offboard a User Globally (reassign Objects Across Workspaces, Optionally Delete)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: email
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-offboard_preview-email
      path: /users/offboard_preview/{email}
      operations:
      - name: globaloffboardpreview
        method: GET
        description: Preview Global Offboarding for a User Across All Workspaces (require Super Admin)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: email
          in: path
          type: string
          required: true
    - name: users-onboarding
      path: /users/onboarding
      operations:
      - name: submitonboardingdata
        method: POST
        description: Submit User Onboarding Data
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-overwrite
      path: /users/overwrite
      operations:
      - name: globalusersoverwrite
        method: POST
        description: Global Overwrite Users (require Super Admin and EE)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-refresh_token
      path: /users/refresh_token
      operations:
      - name: refreshusertoken
        method: GET
        description: Refresh the Current Token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: if_expiring_in_less_than_s
          in: query
          type: integer
    - name: users-rename-email
      path: /users/rename/{email}
      operations:
      - name: globaluserrename
        method: POST
        description: Global Rename User (require Super Admin)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: email
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-set_login_type-user
      path: /users/set_login_type/{user}
      operations:
      - name: setlogintypeforuser
        method: POST
        description: Set Login Type for a Specific User (require Super Admin)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-set_password_of-user
      path: /users/set_password_of/{user}
      operations:
      - name: setpasswordforuser
        method: POST
        description: Set Password for a Specific User (require Super Admin)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-setpassword
      path: /users/setpassword
      operations:
      - name: setpassword
        method: POST
        description: Set Password
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-tokens-create
      path: /users/tokens/create
      operations:
      - name: createtoken
        method: POST
        description: Create Token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-tokens-delete-token_prefix
      path: /users/tokens/delete/{token_prefix}
      operations:
      - name: deletetoken
        method: DELETE
        description: Delete Token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: token_prefix
          in: path
          type: string
          required: true
    - name: users-tokens-impersonate
      path: /users/tokens/impersonate
      operations:
      - name: createtokenimpersonate
        method: POST
        description: Create Token to Impersonate a User (require Superadmin)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-tokens-list
      path: /users/tokens/list
      operations:
      - name: listtokens
        method: GET
        description: List Token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: exclude_ephemeral
          in: query
          type: boolean
    - name: users-tokens-update_scopes-token_prefix
      path: /users/tokens/update_scopes/{token_prefix}
      operations:
      - name: updatetokenscopes
        method: POST
        description: Update Scopes of an Existing Token (owner Only)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: token_prefix
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-tutorial_progress
      path: /users/tutorial_progress
      operations:
      - name: gettutorialprogress
        method: GET
        description: Get Tutorial Progress
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatetutorialprogress
        method: POST
        description: Update Tutorial Progress
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-update-email
      path: /users/update/{email}
      operations:
      - name: globaluserupdate
        method: POST
        description: Global Update User (require Super Admin)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: email
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-usage
      path: /users/usage
      operations:
      - name: getusage
        method: GET
        description: Get Current Usage Outside of Premium Workspaces
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-username_info-email
      path: /users/username_info/{email}
      operations:
      - name: globalusernameinfo
        method: GET
        description: Global Username Info (require Super Admin)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: email
          in: path
          type: string
          required: true
    - name: users-whoami
      path: /users/whoami
      operations:
      - name: globalwhoami
        method: GET
        description: Get Current Global Whoami (if Logged In)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: w-workspace-users-convert_to_group-username
      path: /w/{workspace}/users/convert_to_group/{username}
      operations:
      - name: convertusertogroup
        method: POST
        description: Convert Manual User to Group User (require Admin Privilege)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: username
          in: path
          type: string
          required: true
    - name: w-workspace-users-delete-username
      path: /w/{workspace}/users/delete/{username}
      operations:
      - name: deleteuser
        method: DELETE
        description: Delete User (require Admin Privilege)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: username
          in: path
          type: string
          required: true
    - name: w-workspace-users-exit_impersonation
      path: /w/{workspace}/users/exit_impersonation
      operations:
      - name: exitimpersonation
        method: POST
        description: Exit Service Account Impersonation
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: w-workspace-users-get-username
      path: /w/{workspace}/users/get/{username}
      operations:
      - name: getuser
        method: GET
        description: Get User (require Admin Privilege)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: username
          in: path
          type: string
          required: true
    - name: w-workspace-users-impersonate_service_account
      path: /w/{workspace}/users/impersonate_service_account
      operations:
      - name: impersonateserviceaccount
        method: POST
        description: Impersonate a Service Account
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: w-workspace-users-is_owner-path
      path: /w/{workspace}/users/is_owner/{path}
      operations:
      - name: isownerofpath
        method: GET
        description: Is Owner of Path
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: w-workspace-users-list
      path: /w/{workspace}/users/list
      operations:
      - name: listusers
        method: GET
        description: List Users
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: w-workspace-users-list_usage
      path: /w/{workspace}/users/list_usage
      operations:
      - name: listusersusage
        method: GET
        description: List Users Usage
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: w-workspace-users-list_usernames
      path: /w/{workspace}/users/list_usernames
      operations:
      - name: listusernames
        method: GET
        description: List Usernames
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: w-workspace-users-offboard-username
      path: /w/{workspace}/users/offboard/{username}
      operations:
      - name: offboardworkspaceuser
        method: POST
        description: Offboard a Workspace User (reassign Objects, Optionally Delete User)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: username
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: w-workspace-users-offboard_preview-username
      path: /w/{workspace}/users/offboard_preview/{username}
      operations:
      - name: offboardpreview
        method: GET
        description: Preview Offboarding for a Workspace User (require Admin Privilege)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: username
          in: path
          type: string
          required: true
    - name: w-workspace-users-update-username
      path: /w/{workspace}/users/update/{username}
      operations:
      - name: updateuser
        method: POST
        description: Update User (require Admin Privilege)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: username
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: w-workspace-users-username_to_email-username
      path: /w/{workspace}/users/username_to_email/{username}
      operations:
      - name: usernametoemail
        method: GET
        description: Get Email from Username
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: username
          in: path
          type: string
          required: true
    - name: w-workspace-users-whoami
      path: /w/{workspace}/users/whoami
      operations:
      - name: whoami
        method: GET
        description: Whoami
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: w-workspace-users-whois-username
      path: /w/{workspace}/users/whois/{username}
      operations:
      - name: whois
        method: GET
        description: Whois
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: username
          in: path
          type: string
          required: true
    authentication:
      type: bearer
      token: '{{env.WINDMILL_API_KEY}}'
  exposes:
  - type: rest
    namespace: windmill-user-rest
    port: 8080
    description: REST adapter for Windmill API — user. One Spectral-compliant resource per consumed operation, prefixed with
      /v1.
    resources:
    - path: /v1/auth/is-password-login-disabled
      name: auth-is-password-login-disabled
      description: REST surface for auth-is_password_login_disabled.
      operations:
      - method: GET
        name: ispasswordlogindisabled
        description: Check if Password Login is Disabled Instance-wide
        call: windmill-user.ispasswordlogindisabled
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/auth/is-smtp-configured
      name: auth-is-smtp-configured
      description: REST surface for auth-is_smtp_configured.
      operations:
      - method: GET
        name: issmtpconfigured
        description: Check if SMTP is Configured for Password Reset
        call: windmill-user.issmtpconfigured
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/auth/login
      name: auth-login
      description: REST surface for auth-login.
      operations:
      - method: POST
        name: login
        description: Login with Password
        call: windmill-user.login
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/auth/logout
      name: auth-logout
      description: REST surface for auth-logout.
      operations:
      - method: POST
        name: logout
        description: Logout
        call: windmill-user.logout
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/auth/request-password-reset
      name: auth-request-password-reset
      description: REST surface for auth-request_password_reset.
      operations:
      - method: POST
        name: requestpasswordreset
        description: Request Password Reset Email
        call: windmill-user.requestpasswordreset
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/auth/reset-password
      name: auth-reset-password
      description: REST surface for auth-reset_password.
      operations:
      - method: POST
        name: resetpassword
        description: Reset Password Using Token
        call: windmill-user.resetpassword
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/oauth/login-callback/{client-name}
      name: oauth-login-callback-client-name
      description: REST surface for oauth-login_callback-client_name.
      operations:
      - method: POST
        name: loginwithoauth
        description: Login with Oauth Authorization Flow
        call: windmill-user.loginwithoauth
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/accept-invite
      name: users-accept-invite
      description: REST surface for users-accept_invite.
      operations:
      - method: POST
        name: acceptinvite
        description: Accept Invite to Workspace
        call: windmill-user.acceptinvite
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/all-runnables
      name: users-all-runnables
      description: REST surface for users-all_runnables.
      operations:
      - method: GET
        name: getrunnable
        description: Get All Runnables in Every Workspace
        call: windmill-user.getrunnable
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/create
      name: users-create
      description: REST surface for users-create.
      operations:
      - method: POST
        name: createuserglobally
        description: Create User
        call: windmill-user.createuserglobally
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/decline-invite
      name: users-decline-invite
      description: REST surface for users-decline_invite.
      operations:
      - method: POST
        name: declineinvite
        description: Decline Invite to Workspace
        call: windmill-user.declineinvite
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/delete/{email}
      name: users-delete-email
      description: REST surface for users-delete-email.
      operations:
      - method: DELETE
        name: globaluserdelete
        description: Global Delete User (require Super Admin)
        call: windmill-user.globaluserdelete
        with:
          email: rest.email
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/email
      name: users-email
      description: REST surface for users-email.
      operations:
      - method: GET
        name: getcurrentemail
        description: Get Current User Email (if Logged In)
        call: windmill-user.getcurrentemail
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/exists/{email}
      name: users-exists-email
      description: REST surface for users-exists-email.
      operations:
      - method: GET
        name: existsemail
        description: Exists Email
        call: windmill-user.existsemail
        with:
          email: rest.email
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/export
      name: users-export
      description: REST surface for users-export.
      operations:
      - method: GET
        name: globalusersexport
        description: Global Export Users (require Super Admin and EE)
        call: windmill-user.globalusersexport
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/ext-jwt-tokens
      name: users-ext-jwt-tokens
      description: REST surface for users-ext_jwt_tokens.
      operations:
      - method: GET
        name: listextjwttokens
        description: List External JWT Tokens (ee Only)
        call: windmill-user.listextjwttokens
        with:
          page: rest.page
          per_page: rest.per_page
          active_only: rest.active_only
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/leave-instance
      name: users-leave-instance
      description: REST surface for users-leave_instance.
      operations:
      - method: POST
        name: leaveinstance
        description: Leave Instance
        call: windmill-user.leaveinstance
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/list-as-super-admin
      name: users-list-as-super-admin
      description: REST surface for users-list_as_super_admin.
      operations:
      - method: GET
        name: listusersassuperadmin
        description: List All Users as Super Admin (require to be Super Amdin)
        call: windmill-user.listusersassuperadmin
        with:
          active_only: rest.active_only
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/list-invites
      name: users-list-invites
      description: REST surface for users-list_invites.
      operations:
      - method: GET
        name: listworkspaceinvites
        description: List All Workspace Invites
        call: windmill-user.listworkspaceinvites
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/offboard/{email}
      name: users-offboard-email
      description: REST surface for users-offboard-email.
      operations:
      - method: POST
        name: offboardglobaluser
        description: Offboard a User Globally (reassign Objects Across Workspaces, Optionally Delete)
        call: windmill-user.offboardglobaluser
        with:
          email: rest.email
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/offboard-preview/{email}
      name: users-offboard-preview-email
      description: REST surface for users-offboard_preview-email.
      operations:
      - method: GET
        name: globaloffboardpreview
        description: Preview Global Offboarding for a User Across All Workspaces (require Super Admin)
        call: windmill-user.globaloffboardp

# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/windmill/refs/heads/main/capabilities/windmill-user.yaml