{
  "service": "jumpcloud",
  "displayName": "JumpCloud",
  "categories": [
    "Security"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "JUMPCLOUD_API_KEY",
      "description": "JumpCloud API key sent with the x-api-key header. In the JumpCloud Admin Console, open the username menu in the top-right corner and retrieve it from API Settings: https://console.jumpcloud.com/.",
      "extraFields": [
        {
          "key": "region",
          "label": "Region",
          "inputType": "text",
          "required": false,
          "secret": false,
          "placeholder": "us",
          "description": "JumpCloud data-center region for this account. Use us for console.jumpcloud.com, eu for console.eu.jumpcloud.com, or in for console.in.jumpcloud.com."
        },
        {
          "key": "orgId",
          "label": "Organization ID",
          "inputType": "text",
          "required": false,
          "secret": false,
          "placeholder": "org_...",
          "description": "Optional JumpCloud organization ID sent with the x-org-id header for multi-tenant admin accounts."
        }
      ]
    }
  ],
  "homepageUrl": "https://jumpcloud.com/",
  "actions": [
    {
      "id": "jumpcloud.get_system",
      "service": "jumpcloud",
      "name": "get_system",
      "description": "Get a JumpCloud system by ID through the v1 Systems API.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The JumpCloud object identifier."
          },
          "fields": {
            "type": "string",
            "minLength": 1,
            "description": "Space-separated fields to include in the returned JumpCloud records."
          },
          "filter": {
            "type": "string",
            "minLength": 1,
            "description": "JumpCloud v1 filter expression such as department:$eq:Finance."
          },
          "orgId": {
            "type": "string",
            "minLength": 1,
            "description": "Optional JumpCloud organization ID to send with the x-org-id header for multi-tenant admin accounts."
          },
          "region": {
            "type": "string",
            "enum": [
              "us",
              "eu",
              "in"
            ],
            "description": "The JumpCloud data-center region to call."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input parameters for reading a single JumpCloud record."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "system": {
            "type": "object",
            "properties": {
              "_id": {
                "type": "string",
                "minLength": 1,
                "description": "The JumpCloud object identifier."
              },
              "displayName": {
                "type": "string",
                "description": "The JumpCloud system display name."
              },
              "hostname": {
                "type": "string",
                "description": "The system hostname."
              },
              "os": {
                "type": "string",
                "description": "The operating system name."
              },
              "version": {
                "type": "string",
                "description": "The operating system version."
              },
              "active": {
                "type": "boolean",
                "description": "Whether the system is active."
              },
              "agentVersion": {
                "type": "string",
                "description": "The installed JumpCloud agent version."
              }
            },
            "additionalProperties": true,
            "description": "JumpCloud system record."
          }
        },
        "additionalProperties": false,
        "description": "Response returned when reading a JumpCloud system."
      }
    },
    {
      "id": "jumpcloud.get_system_user",
      "service": "jumpcloud",
      "name": "get_system_user",
      "description": "Get a JumpCloud system user by ID through the v1 Systemusers API.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The JumpCloud object identifier."
          },
          "fields": {
            "type": "string",
            "minLength": 1,
            "description": "Space-separated fields to include in the returned JumpCloud records."
          },
          "filter": {
            "type": "string",
            "minLength": 1,
            "description": "JumpCloud v1 filter expression such as department:$eq:Finance."
          },
          "orgId": {
            "type": "string",
            "minLength": 1,
            "description": "Optional JumpCloud organization ID to send with the x-org-id header for multi-tenant admin accounts."
          },
          "region": {
            "type": "string",
            "enum": [
              "us",
              "eu",
              "in"
            ],
            "description": "The JumpCloud data-center region to call."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input parameters for reading a single JumpCloud record."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "systemUser": {
            "type": "object",
            "properties": {
              "_id": {
                "type": "string",
                "minLength": 1,
                "description": "The JumpCloud object identifier."
              },
              "username": {
                "type": "string",
                "description": "The JumpCloud username."
              },
              "email": {
                "type": "string",
                "description": "The user's email address."
              },
              "firstname": {
                "type": "string",
                "description": "The user's first name."
              },
              "lastname": {
                "type": "string",
                "description": "The user's last name."
              },
              "displayname": {
                "type": "string",
                "description": "The user's display name."
              },
              "state": {
                "type": "string",
                "description": "The JumpCloud user state."
              },
              "activated": {
                "type": "boolean",
                "description": "Whether the user is activated."
              },
              "suspended": {
                "type": "boolean",
                "description": "Whether the user is suspended."
              }
            },
            "additionalProperties": true,
            "description": "JumpCloud system user record."
          }
        },
        "additionalProperties": false,
        "description": "Response returned when reading a JumpCloud system user."
      }
    },
    {
      "id": "jumpcloud.list_system_users",
      "service": "jumpcloud",
      "name": "list_system_users",
      "description": "List JumpCloud system users through the v1 Systemusers API.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "fields": {
            "type": "string",
            "minLength": 1,
            "description": "Space-separated fields to include in the returned JumpCloud records."
          },
          "filter": {
            "type": "string",
            "minLength": 1,
            "description": "JumpCloud v1 filter expression such as department:$eq:Finance."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of records to return at once. JumpCloud limits this to 100."
          },
          "orgId": {
            "type": "string",
            "minLength": 1,
            "description": "Optional JumpCloud organization ID to send with the x-org-id header for multi-tenant admin accounts."
          },
          "region": {
            "type": "string",
            "enum": [
              "us",
              "eu",
              "in"
            ],
            "description": "The JumpCloud data-center region to call."
          },
          "search": {
            "type": "string",
            "minLength": 1,
            "description": "JumpCloud search object serialized as a query string value, matching the v1 API search parameter."
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "The offset into the JumpCloud record collection."
          },
          "sort": {
            "type": "string",
            "minLength": 1,
            "description": "Space-separated fields used to sort the collection. Prefix a field with - for descending order."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing JumpCloud records."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "_id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The JumpCloud object identifier."
                },
                "username": {
                  "type": "string",
                  "description": "The JumpCloud username."
                },
                "email": {
                  "type": "string",
                  "description": "The user's email address."
                },
                "firstname": {
                  "type": "string",
                  "description": "The user's first name."
                },
                "lastname": {
                  "type": "string",
                  "description": "The user's last name."
                },
                "displayname": {
                  "type": "string",
                  "description": "The user's display name."
                },
                "state": {
                  "type": "string",
                  "description": "The JumpCloud user state."
                },
                "activated": {
                  "type": "boolean",
                  "description": "Whether the user is activated."
                },
                "suspended": {
                  "type": "boolean",
                  "description": "Whether the user is suspended."
                }
              },
              "additionalProperties": true,
              "description": "JumpCloud system user record."
            },
            "description": "JumpCloud system users returned by the API."
          },
          "meta": {
            "type": "object",
            "properties": {
              "totalCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "Total number of records reported by JumpCloud."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "JumpCloud pagination metadata returned by the connector."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw JumpCloud object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "Response returned when listing JumpCloud system users."
      }
    },
    {
      "id": "jumpcloud.list_systems",
      "service": "jumpcloud",
      "name": "list_systems",
      "description": "List JumpCloud systems through the v1 Systems API.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "fields": {
            "type": "string",
            "minLength": 1,
            "description": "Space-separated fields to include in the returned JumpCloud records."
          },
          "filter": {
            "type": "string",
            "minLength": 1,
            "description": "JumpCloud v1 filter expression such as department:$eq:Finance."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of records to return at once. JumpCloud limits this to 100."
          },
          "orgId": {
            "type": "string",
            "minLength": 1,
            "description": "Optional JumpCloud organization ID to send with the x-org-id header for multi-tenant admin accounts."
          },
          "region": {
            "type": "string",
            "enum": [
              "us",
              "eu",
              "in"
            ],
            "description": "The JumpCloud data-center region to call."
          },
          "search": {
            "type": "string",
            "minLength": 1,
            "description": "JumpCloud search object serialized as a query string value, matching the v1 API search parameter."
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "The offset into the JumpCloud record collection."
          },
          "sort": {
            "type": "string",
            "minLength": 1,
            "description": "Space-separated fields used to sort the collection. Prefix a field with - for descending order."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing JumpCloud records."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "_id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The JumpCloud object identifier."
                },
                "displayName": {
                  "type": "string",
                  "description": "The JumpCloud system display name."
                },
                "hostname": {
                  "type": "string",
                  "description": "The system hostname."
                },
                "os": {
                  "type": "string",
                  "description": "The operating system name."
                },
                "version": {
                  "type": "string",
                  "description": "The operating system version."
                },
                "active": {
                  "type": "boolean",
                  "description": "Whether the system is active."
                },
                "agentVersion": {
                  "type": "string",
                  "description": "The installed JumpCloud agent version."
                }
              },
              "additionalProperties": true,
              "description": "JumpCloud system record."
            },
            "description": "JumpCloud systems returned by the API."
          },
          "meta": {
            "type": "object",
            "properties": {
              "totalCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "Total number of records reported by JumpCloud."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "JumpCloud pagination metadata returned by the connector."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw JumpCloud object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "Response returned when listing JumpCloud systems."
      }
    }
  ]
}
