{
  "service": "maintainx",
  "displayName": "MaintainX",
  "categories": [
    "Productivity",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "MAINTAINX_API_KEY",
      "description": "MaintainX REST API key sent with the Authorization: Bearer header. Generate a key in MaintainX under Settings > Integrations > API Keys: https://app.getmaintainx.com/settings/integrations/apiKeys."
    }
  ],
  "homepageUrl": "https://www.getmaintainx.com/",
  "actions": [
    {
      "id": "maintainx.create_location",
      "service": "maintainx",
      "name": "create_location",
      "description": "Create a MaintainX location.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "MaintainX location name."
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "description": "MaintainX location description."
              },
              {
                "type": "null"
              }
            ]
          },
          "address": {
            "anyOf": [
              {
                "type": "string",
                "description": "Postal address of the MaintainX location."
              },
              {
                "type": "null"
              }
            ]
          },
          "barcode": {
            "anyOf": [
              {
                "type": "string",
                "description": "Encoded MaintainX location barcode."
              },
              {
                "type": "null"
              }
            ]
          },
          "parentId": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "Parent MaintainX location id."
              },
              {
                "type": "null"
              }
            ]
          },
          "extraFields": {
            "type": "object",
            "additionalProperties": {
              "description": "Value."
            },
            "description": "MaintainX custom fields keyed by exact custom field labels."
          },
          "vendorIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One MaintainX numeric identifier."
            },
            "description": "Vendor ids assigned to the location.",
            "minItems": 1
          },
          "organizationId": {
            "type": "integer",
            "minimum": 1,
            "description": "MaintainX organization id for multi-organization tokens."
          },
          "skipWebhook": {
            "type": "boolean",
            "description": "Whether MaintainX should skip triggering subscribed webhooks."
          }
        },
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "description": "Input payload for creating a MaintainX location."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "description": "Global MaintainX identifier of the created resource."
          }
        },
        "additionalProperties": false,
        "description": "MaintainX identifier response."
      }
    },
    {
      "id": "maintainx.create_user",
      "service": "maintainx",
      "name": "create_user",
      "description": "Create a MaintainX user.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "minLength": 1,
            "description": "MaintainX user's first name."
          },
          "lastName": {
            "type": "string",
            "minLength": 1,
            "description": "MaintainX user's last name."
          },
          "email": {
            "anyOf": [
              {
                "type": "string",
                "description": "MaintainX user's email address.",
                "format": "email"
              },
              {
                "type": "null"
              }
            ]
          },
          "phoneNumber": {
            "anyOf": [
              {
                "type": "string",
                "description": "MaintainX user's phone number."
              },
              {
                "type": "null"
              }
            ]
          },
          "role": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "ADMIN",
                  "MEMBER",
                  "OPERATOR",
                  "REQUESTER",
                  "SERVICE_ACCOUNT"
                ],
                "description": "MaintainX user role."
              },
              {
                "type": "null"
              }
            ]
          },
          "customRole": {
            "anyOf": [
              {
                "type": "string",
                "description": "MaintainX custom role assigned to the user."
              },
              {
                "type": "null"
              }
            ]
          },
          "authType": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "NORMAL",
                  "SAML",
                  "OIDC"
                ],
                "description": "MaintainX user authentication type."
              },
              {
                "type": "null"
              }
            ]
          },
          "inviteType": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "ALL",
                  "EMAIL",
                  "SMS",
                  "NONE"
                ],
                "description": "How MaintainX should invite the user."
              },
              {
                "type": "null"
              }
            ]
          },
          "hourlyRate": {
            "anyOf": [
              {
                "type": "integer",
                "description": "User hourly rate in cents."
              },
              {
                "type": "null"
              }
            ]
          },
          "externalData": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "Arbitrary external data object."
                  },
                  {
                    "type": "number",
                    "description": "Numeric external data value."
                  },
                  {
                    "type": "string",
                    "minLength": 1,
                    "description": "String external data value."
                  }
                ],
                "description": "Extra data attached to the MaintainX record."
              },
              {
                "type": "null"
              }
            ]
          },
          "extraFields": {
            "type": "object",
            "additionalProperties": {
              "description": "Value."
            },
            "description": "MaintainX custom fields keyed by exact custom field labels."
          },
          "organizationId": {
            "type": "integer",
            "minimum": 1,
            "description": "MaintainX organization id for multi-organization tokens."
          },
          "skipWebhook": {
            "type": "boolean",
            "description": "Whether MaintainX should skip triggering subscribed webhooks."
          }
        },
        "additionalProperties": false,
        "required": [
          "firstName",
          "lastName"
        ],
        "description": "Input payload for creating a MaintainX user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "description": "Global MaintainX identifier of the created resource."
          }
        },
        "additionalProperties": false,
        "description": "MaintainX identifier response."
      }
    },
    {
      "id": "maintainx.create_work_order",
      "service": "maintainx",
      "name": "create_work_order",
      "description": "Create a MaintainX work order.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "MaintainX work order title."
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "description": "MaintainX work order description."
              },
              {
                "type": "null"
              }
            ]
          },
          "assetId": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "MaintainX asset id assigned to the work order."
              },
              {
                "type": "null"
              }
            ]
          },
          "locationId": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "MaintainX location id assigned to the work order."
              },
              {
                "type": "null"
              }
            ]
          },
          "priority": {
            "type": "string",
            "enum": [
              "NONE",
              "LOW",
              "MEDIUM",
              "HIGH"
            ],
            "description": "MaintainX work order priority."
          },
          "type": {
            "type": "string",
            "enum": [
              "OTHER",
              "REACTIVE",
              "PREVENTIVE"
            ],
            "description": "MaintainX work order type."
          },
          "dueDate": {
            "anyOf": [
              {
                "type": "string",
                "description": "Due date and time for the work order.",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "startDate": {
            "anyOf": [
              {
                "type": "string",
                "description": "Date and time when the work order should appear.",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "estimatedTime": {
            "anyOf": [
              {
                "type": "integer",
                "description": "Estimated time in seconds required to complete the work order."
              },
              {
                "type": "null"
              }
            ]
          },
          "requesterId": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 1,
                    "description": "MaintainX requester user id."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              {
                "type": "string",
                "minLength": 1,
                "description": "Requester email address."
              }
            ],
            "description": "MaintainX requester id or requester email address."
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One MaintainX string value."
            },
            "description": "Categories assigned to the work order.",
            "minItems": 1
          },
          "assignees": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "USER",
                    "TEAM"
                  ],
                  "description": "Whether the assignee id refers to a user or a team."
                },
                "id": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": 1,
                      "description": "MaintainX user or team numeric identifier."
                    },
                    {
                      "type": "string",
                      "minLength": 1,
                      "description": "MaintainX user email address."
                    }
                  ],
                  "description": "MaintainX user or team id, or a user email address."
                }
              },
              "additionalProperties": false,
              "description": "MaintainX work order assignee reference."
            },
            "description": "MaintainX users or teams assigned to the work order."
          },
          "externalData": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "Arbitrary external data object."
                  },
                  {
                    "type": "number",
                    "description": "Numeric external data value."
                  },
                  {
                    "type": "string",
                    "minLength": 1,
                    "description": "String external data value."
                  }
                ],
                "description": "Extra data attached to the MaintainX record."
              },
              {
                "type": "null"
              }
            ]
          },
          "extraFields": {
            "type": "object",
            "additionalProperties": {
              "description": "Value."
            },
            "description": "MaintainX custom fields keyed by exact custom field labels."
          },
          "vendorIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One MaintainX numeric identifier."
            },
            "description": "Vendor ids assigned to the work order.",
            "minItems": 1
          },
          "partsUsed": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "Parts-used object."
            },
            "description": "Parts used in this MaintainX work order."
          },
          "workRequestId": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "Work request id approved by this work order."
              },
              {
                "type": "null"
              }
            ]
          },
          "workOrderTemplateId": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "Work order template id used to create this work order."
              },
              {
                "type": "null"
              }
            ]
          },
          "procedureTemplateId": {
            "anyOf": [
              {
                "type": "number",
                "description": "Procedure template id to attach to the work order."
              },
              {
                "type": "null"
              }
            ]
          },
          "parentId": {
            "anyOf": [
              {
                "type": "number",
                "description": "Parent work order id for sub-work orders."
              },
              {
                "type": "null"
              }
            ]
          },
          "isParent": {
            "anyOf": [
              {
                "type": "boolean",
                "description": "Whether the work order is a parent work order."
              },
              {
                "type": "null"
              }
            ]
          },
          "organizationId": {
            "type": "integer",
            "minimum": 1,
            "description": "MaintainX organization id for multi-organization tokens."
          },
          "skipWebhook": {
            "type": "boolean",
            "description": "Whether MaintainX should skip triggering subscribed webhooks."
          }
        },
        "additionalProperties": false,
        "required": [
          "title"
        ],
        "description": "Input payload for creating a MaintainX work order."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "description": "Global MaintainX identifier of the created resource."
          }
        },
        "additionalProperties": false,
        "description": "MaintainX identifier response."
      }
    },
    {
      "id": "maintainx.create_work_order_comment",
      "service": "maintainx",
      "name": "create_work_order_comment",
      "description": "Create a comment on a MaintainX work order.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "MaintainX work order id."
          },
          "content": {
            "type": "string",
            "minLength": 1,
            "description": "Comment content to post."
          },
          "skipWebhook": {
            "type": "boolean",
            "description": "Whether MaintainX should skip triggering subscribed webhooks."
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "content"
        ],
        "description": "Input payload for creating a MaintainX work order comment."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "description": "Global MaintainX identifier of the created resource."
          }
        },
        "additionalProperties": false,
        "description": "MaintainX identifier response."
      }
    },
    {
      "id": "maintainx.delete_location",
      "service": "maintainx",
      "name": "delete_location",
      "description": "Delete a MaintainX location by id.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "MaintainX location id."
          },
          "skipWebhook": {
            "type": "boolean",
            "description": "Whether MaintainX should skip triggering subscribed webhooks."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input payload for deleting a MaintainX location."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ok": {
            "type": "boolean",
            "description": "Whether MaintainX accepted the request."
          }
        },
        "additionalProperties": false,
        "description": "MaintainX empty success response."
      }
    },
    {
      "id": "maintainx.get_location",
      "service": "maintainx",
      "name": "get_location",
      "description": "Retrieve one MaintainX location by id.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "MaintainX location id."
          }
        },
        "additionalProperties": false,
        "description": "Path parameters for retrieving a MaintainX location."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "object",
            "additionalProperties": true,
            "description": "Location returned by MaintainX."
          }
        },
        "additionalProperties": false,
        "description": "MaintainX location response."
      }
    },
    {
      "id": "maintainx.get_user",
      "service": "maintainx",
      "name": "get_user",
      "description": "Retrieve one MaintainX user by id.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "MaintainX user id."
          },
          "organizationId": {
            "type": "integer",
            "minimum": 1,
            "description": "MaintainX organization id for multi-organization tokens."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Path and query parameters for retrieving a MaintainX user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "additionalProperties": true,
            "description": "User returned by MaintainX."
          }
        },
        "additionalProperties": false,
        "description": "MaintainX user response."
      }
    },
    {
      "id": "maintainx.get_work_order",
      "service": "maintainx",
      "name": "get_work_order",
      "description": "Retrieve one MaintainX work order by global id.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "MaintainX work order id."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One MaintainX string value."
            },
            "description": "MaintainX work order fields to expand.",
            "minItems": 1
          },
          "useSequentialId": {
            "type": "boolean",
            "description": "Whether the id is the organization-specific sequential id."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Path and query parameters for retrieving a MaintainX work order."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "workOrder": {
            "type": "object",
            "additionalProperties": true,
            "description": "Work order returned by MaintainX."
          }
        },
        "additionalProperties": false,
        "description": "MaintainX work order response."
      }
    },
    {
      "id": "maintainx.list_locations",
      "service": "maintainx",
      "name": "list_locations",
      "description": "List MaintainX locations with filters and cursor pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "MaintainX pagination cursor from a previous response."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Maximum number of records to return."
          },
          "organizationId": {
            "type": "integer",
            "minimum": 1,
            "description": "MaintainX organization id for multi-organization tokens."
          },
          "organizationIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One MaintainX organization id."
            },
            "description": "MaintainX organization ids for endpoints that can query multiple organizations.",
            "minItems": 1
          },
          "name": {
            "type": "string",
            "description": "Filter MaintainX locations by name."
          },
          "customFieldName": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One MaintainX string value."
            },
            "description": "Custom field names to include.",
            "minItems": 1
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One MaintainX string value."
            },
            "description": "MaintainX location fields to expand.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing MaintainX locations."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "locations": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "MaintainX location."
            },
            "description": "Locations returned by MaintainX."
          },
          "nextCursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "Cursor for the next page when MaintainX returned one."
              },
              {
                "type": "null"
              }
            ]
          },
          "nextPageUrl": {
            "anyOf": [
              {
                "type": "string",
                "description": "MaintainX relative URL for the next page when returned."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "locations"
        ],
        "description": "MaintainX location list response."
      }
    },
    {
      "id": "maintainx.list_users",
      "service": "maintainx",
      "name": "list_users",
      "description": "List MaintainX users with filters and cursor pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "MaintainX pagination cursor from a previous response."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Maximum number of records to return."
          },
          "organizationId": {
            "type": "integer",
            "minimum": 1,
            "description": "MaintainX organization id for multi-organization tokens."
          },
          "onlyAssignable": {
            "type": "boolean",
            "description": "Whether to only return assignable users."
          },
          "email": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One MaintainX string value."
            },
            "description": "Email addresses to filter users by.",
            "minItems": 1
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One MaintainX string value."
            },
            "description": "MaintainX user fields to expand.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing MaintainX users."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "MaintainX user."
            },
            "description": "Users returned by MaintainX."
          },
          "nextCursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "Cursor for the next page when MaintainX returned one."
              },
              {
                "type": "null"
              }
            ]
          },
          "nextPageUrl": {
            "anyOf": [
              {
                "type": "string",
                "description": "MaintainX relative URL for the next page when returned."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "users"
        ],
        "description": "MaintainX user list response."
      }
    },
    {
      "id": "maintainx.list_work_order_comments",
      "service": "maintainx",
      "name": "list_work_order_comments",
      "description": "List comments on a MaintainX work order.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "MaintainX work order id."
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "MaintainX pagination cursor from a previous response."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Maximum number of records to return."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Path and query parameters for listing MaintainX work order comments."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "comments": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "MaintainX comment."
            },
            "description": "Comments returned by MaintainX."
          },
          "nextCursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "Cursor for the next page when MaintainX returned one."
              },
              {
                "type": "null"
              }
            ]
          },
          "nextPageUrl": {
            "anyOf": [
              {
                "type": "string",
                "description": "MaintainX relative URL for the next page when returned."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "comments"
        ],
        "description": "MaintainX work order comments response."
      }
    },
    {
      "id": "maintainx.list_work_orders",
      "service": "maintainx",
      "name": "list_work_orders",
      "description": "List MaintainX work orders with filters and cursor pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "MaintainX pagination cursor from a previous response."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "Maximum number of records to return."
          },
          "organizationId": {
            "type": "integer",
            "minimum": 1,
            "description": "MaintainX organization id for multi-organization tokens."
          },
          "title": {
            "type": "string",
            "description": "Filter MaintainX work orders by title."
          },
          "assets": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One MaintainX numeric identifier."
            },
            "description": "Asset ids to include.",
            "minItems": 1
          },
          "notAssets": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One MaintainX numeric identifier."
            },
            "description": "Asset ids to exclude.",
            "minItems": 1
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One MaintainX numeric identifier."
            },
            "description": "Location ids to include.",
            "minItems": 1
          },
          "notLocations": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One MaintainX numeric identifier."
            },
            "description": "Location ids to exclude.",
            "minItems": 1
          },
          "parts": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One MaintainX numeric identifier."
            },
            "description": "Part ids to include.",
            "minItems": 1
          },
          "notParts": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One MaintainX numeric identifier."
            },
            "description": "Part ids to exclude.",
            "minItems": 1
          },
          "vendors": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One MaintainX numeric identifier."
            },
            "description": "Vendor ids to include.",
            "minItems": 1
          },
          "notVendors": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One MaintainX numeric identifier."
            },
            "description": "Vendor ids to exclude.",
            "minItems": 1
          },
          "assignees": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One MaintainX numeric identifier."
            },
            "description": "Assignee user ids to include.",
            "minItems": 1
          },
          "teams": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One MaintainX numeric identifier."
            },
            "description": "Team ids to include.",
            "minItems": 1
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One MaintainX string value."
            },
            "description": "Categories to include.",
            "minItems": 1
          },
          "notCategories": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One MaintainX string value."
            },
            "description": "Categories to exclude.",
            "minItems": 1
          },
          "priorities": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "NONE",
                "LOW",
                "MEDIUM",
                "HIGH"
              ],
              "description": "MaintainX work order priority."
            },
            "description": "Work order priorities to include.",
            "minItems": 1
          },
          "statuses": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "OPEN",
                "IN_PROGRESS",
                "ON_HOLD",
                "DONE",
                "CANCELED",
                "SKIPPED"
              ],
              "description": "MaintainX work order status."
            },
            "description": "Work order statuses to include.",
            "minItems": 1
          },
          "partStatuses": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One MaintainX string value."
            },
            "description": "Part statuses to include.",
            "minItems": 1
          },
          "showUpcoming": {
            "type": "boolean",
            "description": "Whether to include work orders with future start dates."
          },
          "sort": {
            "type": "string",
            "enum": [
              "-completedAt",
              "-createdAt",
              "-dueDate",
              "-startedAt",
              "-updatedAt",
              "completedAt",
              "createdAt",
              "dueDate",
              "startedAt",
              "updatedAt"
            ],
            "description": "MaintainX work order sort attribute."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One MaintainX string value."
            },
            "description": "MaintainX work order fields to expand.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing MaintainX work orders."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "workOrders": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "MaintainX work order."
            },
            "description": "Work orders returned by MaintainX."
          },
          "nextCursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "Cursor for the next page when MaintainX returned one."
              },
              {
                "type": "null"
              }
            ]
          },
          "nextPageUrl": {
            "anyOf": [
              {
                "type": "string",
                "description": "MaintainX relative URL for the next page when returned."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "workOrders"
        ],
        "description": "MaintainX work order list response."
      }
    },
    {
      "id": "maintainx.update_location",
      "service": "maintainx",
      "name": "update_location",
      "description": "Update a MaintainX location.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "MaintainX location id."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "MaintainX location name."
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "description": "MaintainX location description."
              },
              {
                "type": "null"
              }
            ]
          },
          "address": {
            "anyOf": [
              {
                "type": "string",
                "description": "Postal address of the MaintainX location."
              },
              {
                "type": "null"
              }
            ]
          },
          "barcode": {
            "anyOf": [
              {
                "type": "string",
                "description": "Encoded MaintainX location barcode."
              },
              {
                "type": "null"
              }
            ]
          },
          "parentId": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "Parent MaintainX location id."
              },
              {
                "type": "null"
              }
            ]
          },
          "extraFields": {
            "type": "object",
            "additionalProperties": {
              "description": "Value."
            },
            "description": "MaintainX custom fields keyed by exact custom field labels."
          },
          "vendorIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One MaintainX numeric identifier."
            },
            "description": "Vendor ids assigned to the location.",
            "minItems": 1
          },
          "skipWebhook": {
            "type": "boolean",
            "description": "Whether MaintainX should skip triggering subscribed webhooks."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input payload for updating a MaintainX location."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "object",
            "additionalProperties": true,
            "description": "Location returned by MaintainX."
          }
        },
        "additionalProperties": false,
        "description": "MaintainX location response."
      }
    },
    {
      "id": "maintainx.update_user",
      "service": "maintainx",
      "name": "update_user",
      "description": "Update a MaintainX user.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "MaintainX user id."
          },
          "firstName": {
            "type": "string",
            "minLength": 1,
            "description": "MaintainX user's first name."
          },
          "lastName": {
            "type": "string",
            "minLength": 1,
            "description": "MaintainX user's last name."
          },
          "email": {
            "anyOf": [
              {
                "type": "string",
                "description": "MaintainX user's email address.",
                "format": "email"
              },
              {
                "type": "null"
              }
            ]
          },
          "phoneNumber": {
            "anyOf": [
              {
                "type": "string",
                "description": "MaintainX user's phone number."
              },
              {
                "type": "null"
              }
            ]
          },
          "role": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "ADMIN",
                  "MEMBER",
                  "OPERATOR",
                  "REQUESTER",
                  "SERVICE_ACCOUNT"
                ],
                "description": "MaintainX user role."
              },
              {
                "type": "null"
              }
            ]
          },
          "customRole": {
            "anyOf": [
              {
                "type": "string",
                "description": "MaintainX custom role assigned to the user."
              },
              {
                "type": "null"
              }
            ]
          },
          "authType": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "NORMAL",
                  "SAML",
                  "OIDC"
                ],
                "description": "MaintainX user authentication type."
              },
              {
                "type": "null"
              }
            ]
          },
          "inviteType": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "ALL",
                  "EMAIL",
                  "SMS",
                  "NONE"
                ],
                "description": "How MaintainX should invite the user."
              },
              {
                "type": "null"
              }
            ]
          },
          "hourlyRate": {
            "anyOf": [
              {
                "type": "integer",
                "description": "User hourly rate in cents."
              },
              {
                "type": "null"
              }
            ]
          },
          "externalData": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "Arbitrary external data object."
                  },
                  {
                    "type": "number",
                    "description": "Numeric external data value."
                  },
                  {
                    "type": "string",
                    "minLength": 1,
                    "description": "String external data value."
                  }
                ],
                "description": "Extra data attached to the MaintainX record."
              },
              {
                "type": "null"
              }
            ]
          },
          "extraFields": {
            "type": "object",
            "additionalProperties": {
              "description": "Value."
            },
            "description": "MaintainX custom fields keyed by exact custom field labels."
          },
          "organizationId": {
            "type": "integer",
            "minimum": 1,
            "description": "MaintainX organization id for multi-organization tokens."
          },
          "skipWebhook": {
            "type": "boolean",
            "description": "Whether MaintainX should skip triggering subscribed webhooks."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input payload for updating a MaintainX user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "additionalProperties": true,
            "description": "User returned by MaintainX."
          }
        },
        "additionalProperties": false,
        "description": "MaintainX user response."
      }
    },
    {
      "id": "maintainx.update_work_order",
      "service": "maintainx",
      "name": "update_work_order",
      "description": "Update a MaintainX work order.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "MaintainX work order id."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "MaintainX work order title."
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "description": "MaintainX work order description."
              },
              {
                "type": "null"
              }
            ]
          },
          "assetId": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "MaintainX asset id assigned to the work order."
              },
              {
                "type": "null"
              }
            ]
          },
          "locationId": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "MaintainX location id assigned to the work order."
              },
              {
                "type": "null"
              }
            ]
          },
          "priority": {
            "type": "string",
            "enum": [
              "NONE",
              "LOW",
              "MEDIUM",
              "HIGH"
            ],
            "description": "MaintainX work order priority."
          },
          "type": {
            "type": "string",
            "enum": [
              "OTHER",
              "REACTIVE",
              "PREVENTIVE"
            ],
            "description": "MaintainX work order type."
          },
          "dueDate": {
            "anyOf": [
              {
                "type": "string",
                "description": "Due date and time for the work order.",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "startDate": {
            "anyOf": [
              {
                "type": "string",
                "description": "Date and time when the work order should appear.",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "estimatedTime": {
            "anyOf": [
              {
                "type": "integer",
                "description": "Estimated time in seconds required to complete the work order."
              },
              {
                "type": "null"
              }
            ]
          },
          "requesterId": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 1,
                    "description": "MaintainX requester user id."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              {
                "type": "string",
                "minLength": 1,
                "description": "Requester email address."
              }
            ],
            "description": "MaintainX requester id or requester email address."
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One MaintainX string value."
            },
            "description": "Categories assigned to the work order.",
            "minItems": 1
          },
          "assignees": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "USER",
                    "TEAM"
                  ],
                  "description": "Whether the assignee id refers to a user or a team."
                },
                "id": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": 1,
                      "description": "MaintainX user or team numeric identifier."
                    },
                    {
                      "type": "string",
                      "minLength": 1,
                      "description": "MaintainX user email address."
                    }
                  ],
                  "description": "MaintainX user or team id, or a user email address."
                }
              },
              "additionalProperties": false,
              "description": "MaintainX work order assignee reference."
            },
            "description": "MaintainX users or teams assigned to the work order."
          },
          "externalData": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "Arbitrary external data object."
                  },
                  {
                    "type": "number",
                    "description": "Numeric external data value."
                  },
                  {
                    "type": "string",
                    "minLength": 1,
                    "description": "String external data value."
                  }
                ],
                "description": "Extra data attached to the MaintainX record."
              },
              {
                "type": "null"
              }
            ]
          },
          "extraFields": {
            "type": "object",
            "additionalProperties": {
              "description": "Value."
            },
            "description": "MaintainX custom fields keyed by exact custom field labels."
          },
          "vendorIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One MaintainX numeric identifier."
            },
            "description": "Vendor ids assigned to the work order.",
            "minItems": 1
          },
          "partsUsed": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "Parts-used object."
            },
            "description": "Parts used in this MaintainX work order."
          },
          "workRequestId": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "Work request id approved by this work order."
              },
              {
                "type": "null"
              }
            ]
          },
          "workOrderTemplateId": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "Work order template id used to create this work order."
              },
              {
                "type": "null"
              }
            ]
          },
          "procedureTemplateId": {
            "anyOf": [
              {
                "type": "number",
                "description": "Procedure template id to attach to the work order."
              },
              {
                "type": "null"
              }
            ]
          },
          "parentId": {
            "anyOf": [
              {
                "type": "number",
                "description": "Parent work order id for sub-work orders."
              },
              {
                "type": "null"
              }
            ]
          },
          "isParent": {
            "anyOf": [
              {
                "type": "boolean",
                "description": "Whether the work order is a parent work order."
              },
              {
                "type": "null"
              }
            ]
          },
          "skipWebhook": {
            "type": "boolean",
            "description": "Whether MaintainX should skip triggering subscribed webhooks."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One MaintainX string value."
            },
            "description": "MaintainX work order fields to expand in the response.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input payload for updating a MaintainX work order."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "workOrder": {
            "type": "object",
            "additionalProperties": true,
            "description": "Work order returned by MaintainX."
          }
        },
        "additionalProperties": false,
        "description": "MaintainX work order response."
      }
    },
    {
      "id": "maintainx.update_work_order_status",
      "service": "maintainx",
      "name": "update_work_order_status",
      "description": "Update the status of a MaintainX work order.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "MaintainX work order id."
          },
          "status": {
            "type": "string",
            "enum": [
              "OPEN",
              "IN_PROGRESS",
              "ON_HOLD",
              "DONE",
              "CANCELED"
            ],
            "description": "MaintainX status to set on the work order."
          },
          "skipWebhook": {
            "type": "boolean",
            "description": "Whether MaintainX should skip triggering subscribed webhooks."
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "status"
        ],
        "description": "Input payload for updating a MaintainX work order status."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "workOrder": {
            "type": "object",
            "additionalProperties": true,
            "description": "Work order returned by MaintainX."
          }
        },
        "additionalProperties": false,
        "description": "MaintainX work order response."
      }
    }
  ]
}
