id: jumpcloud
name: JumpCloud
version: 1.0.0
description: "JumpCloud (API v1) — identity and device containment: list and read users, suspend/activate a user, and list systems (devices). API-key authentication; stdlib-only, no extra Python dependencies."
changelog: "1.0.0 — Initial release: list/get users, suspend/activate user, list systems."
category: identity

# Per-instance configuration. Auth header 'x-api-key: <api_key>'.
config_schema:
  properties:
    api_key:
      type: string
      description: "JumpCloud API key"
      x-soar-sensitive: true
    org_id:
      type: string
      description: "Organization ID (required for multi-tenant admins)"
  required:
    - api_key

commands:
  - id: list_users
    name: jumpcloud-list-users
    description: "List users."
    risk: read
    inputs_schema:
      properties:
        search: { type: string, description: "Optional email/username search" }
        limit: { type: number, description: "Max users (default 50)" }
      required: []
    outputs_schema: { properties: {} }
  - id: get_user
    name: jumpcloud-get-user
    description: "Get a single user by ID."
    risk: read
    inputs_schema:
      properties:
        user_id: { type: string, description: "System user ID" }
      required: [user_id]
    outputs_schema: { properties: {} }
  - id: suspend_user
    name: jumpcloud-suspend-user
    description: "Suspend a user (containment)."
    inputs_schema:
      properties:
        user_id: { type: string, description: "System user ID" }
      required: [user_id]
    outputs_schema: { properties: {} }
  - id: activate_user
    name: jumpcloud-activate-user
    description: "Un-suspend (activate) a user."
    inputs_schema:
      properties:
        user_id: { type: string, description: "System user ID" }
      required: [user_id]
    outputs_schema: { properties: {} }
  - id: list_systems
    name: jumpcloud-list-systems
    description: "List systems (managed devices)."
    risk: read
    inputs_schema:
      properties:
        limit: { type: number, description: "Max systems (default 50)" }
      required: []
    outputs_schema: { properties: {} }

  - id: test_connection
    name: jumpcloud-test-connection
    description: "Verify the API key (used by the Test button)."
    risk: read
    inputs_schema:
      properties: {}
      required: []
    outputs_schema: { properties: {} }
