{
  "service": "kandji",
  "displayName": "Iru (Kandji)",
  "categories": [
    "Productivity",
    "Security"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Token",
      "placeholder": "KANDJI_API_TOKEN",
      "description": "Kandji tenant-level API token sent as a Bearer token. Create it from Settings > Access in the Kandji web app: https://support.kandji.io/api.",
      "extraFields": [
        {
          "key": "apiUrl",
          "label": "API URL",
          "inputType": "text",
          "required": true,
          "secret": false,
          "placeholder": "https://example.api.kandji.io",
          "description": "Your tenant-specific Kandji API URL from Settings > Access, such as https://example.api.kandji.io or https://example.api.eu.kandji.io."
        }
      ]
    }
  ],
  "homepageUrl": "https://www.iru.com/",
  "actions": [
    {
      "id": "kandji.get_blueprint",
      "service": "kandji",
      "name": "get_blueprint",
      "description": "Get a Kandji blueprint by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "blueprintId": {
            "type": "string",
            "description": "The unique identifier of the Kandji blueprint to retrieve.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The input payload for getting a Kandji blueprint."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "blueprint": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The blueprint ID."
              },
              "name": {
                "type": "string",
                "description": "The blueprint name."
              },
              "type": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A string value returned by Kandji when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A string value returned by Kandji when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "computersCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "An integer value returned by Kandji when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw blueprint object returned by Kandji."
              }
            },
            "additionalProperties": false,
            "description": "A normalized Kandji blueprint record."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when getting a Kandji blueprint."
      }
    },
    {
      "id": "kandji.get_user",
      "service": "kandji",
      "name": "get_user",
      "description": "Get a Kandji directory user by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "description": "The unique identifier of the Kandji directory user to retrieve.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The input payload for getting a Kandji user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The user ID."
              },
              "email": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A string value returned by Kandji when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A string value returned by Kandji when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "active": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "A boolean value returned by Kandji when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "archived": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "A boolean value returned by Kandji when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "deviceCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "An integer value returned by Kandji when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw user object returned by Kandji."
              }
            },
            "additionalProperties": false,
            "description": "A normalized Kandji directory user record."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when getting a Kandji user."
      }
    },
    {
      "id": "kandji.list_blueprints",
      "service": "kandji",
      "name": "list_blueprints",
      "description": "List Kandji blueprints with optional ID, name, and pagination filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "A Kandji UUID value.",
            "format": "uuid"
          },
          "idIn": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "A Kandji UUID value.",
              "format": "uuid"
            },
            "description": "Blueprint IDs used to filter results.",
            "minItems": 1
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The blueprint name used to filter results."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 300,
            "description": "The maximum number of blueprint records to return."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "The zero-based offset used for Kandji blueprint pagination."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Kandji blueprints."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "anyOf": [
              {
                "type": "integer",
                "description": "An integer value returned by Kandji when present."
              },
              {
                "type": "null"
              }
            ]
          },
          "pagination": {
            "type": "object",
            "properties": {
              "next": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The URL for the next page, or null when no next page exists."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "previous": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The URL for the previous page, or null when no previous page exists."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Pagination links returned by Kandji."
          },
          "blueprints": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The blueprint ID."
                },
                "name": {
                  "type": "string",
                  "description": "The blueprint name."
                },
                "type": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A string value returned by Kandji when present."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "description": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A string value returned by Kandji when present."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "computersCount": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "An integer value returned by Kandji when present."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw blueprint object returned by Kandji."
                }
              },
              "additionalProperties": false,
              "description": "A normalized Kandji blueprint record."
            },
            "description": "The blueprints returned by Kandji."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing Kandji blueprints."
      }
    },
    {
      "id": "kandji.list_users",
      "service": "kandji",
      "name": "list_users",
      "description": "List Kandji directory users with optional filters and cursor pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "minLength": 1,
            "description": "Return users with email addresses containing this value."
          },
          "id": {
            "type": "string",
            "description": "A Kandji UUID value.",
            "format": "uuid"
          },
          "integrationId": {
            "type": "string",
            "description": "A Kandji UUID value.",
            "format": "uuid"
          },
          "archived": {
            "type": "boolean",
            "description": "Whether to return archived or non-archived users."
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "The opaque pagination cursor returned by a previous Kandji response."
          },
          "sizePerPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 300,
            "description": "The number of user records to return per page."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Kandji users."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "pagination": {
            "type": "object",
            "properties": {
              "next": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The URL for the next page, or null when no next page exists."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "previous": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The URL for the previous page, or null when no previous page exists."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Pagination links returned by Kandji."
          },
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The user ID."
                },
                "email": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A string value returned by Kandji when present."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A string value returned by Kandji when present."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "active": {
                  "anyOf": [
                    {
                      "type": "boolean",
                      "description": "A boolean value returned by Kandji when present."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "archived": {
                  "anyOf": [
                    {
                      "type": "boolean",
                      "description": "A boolean value returned by Kandji when present."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "deviceCount": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "An integer value returned by Kandji when present."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw user object returned by Kandji."
                }
              },
              "additionalProperties": false,
              "description": "A normalized Kandji directory user record."
            },
            "description": "The users returned by Kandji."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing Kandji users."
      }
    }
  ]
}
