{
  "service": "lumos",
  "displayName": "Lumos",
  "categories": [
    "Security",
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Token",
      "placeholder": "LUMOS_API_TOKEN",
      "description": "Lumos API token sent as a Bearer token. Create and manage API keys in Lumos API settings: https://developers.lumos.com/docs/rest-api."
    }
  ],
  "homepageUrl": "https://www.lumos.com/",
  "actions": [
    {
      "id": "lumos.get_access_request",
      "service": "lumos",
      "name": "get_access_request",
      "description": "Get a single Lumos access request by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The ID of the access request to retrieve."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "tasks",
                "custom_fields"
              ],
              "description": "An access request expansion field."
            },
            "description": "Access request fields to expand. Lumos currently supports tasks and custom_fields."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input parameters for getting a Lumos access request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "accessRequest": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The ID of the access request."
              },
              "app_id": {
                "type": "string",
                "description": "The ID of the app the request is for."
              },
              "app_name": {
                "type": "string",
                "description": "The name of the app the request is for."
              },
              "status": {
                "type": "string",
                "description": "The current status of the request."
              },
              "expires_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "When the access request expires, if it has an expiration."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "expiration_in_seconds": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The lifetime of time-based access after provisioning, in seconds."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "requested_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "When the access request was created."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "An access request returned by Lumos."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Lumos access request response."
      }
    },
    {
      "id": "lumos.get_appstore_app",
      "service": "lumos",
      "name": "get_appstore_app",
      "description": "Get a single AppStore app from Lumos by app ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "app_id": {
            "type": "string",
            "minLength": 1,
            "description": "The ID of the AppStore app to retrieve."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "custom_attributes"
              ],
              "description": "An AppStore app expansion field."
            },
            "description": "App fields to expand. Lumos currently supports custom_attributes."
          }
        },
        "additionalProperties": false,
        "required": [
          "app_id"
        ],
        "description": "Input parameters for getting a Lumos AppStore app."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "app": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "An AppStore app returned by Lumos."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Lumos AppStore app response."
      }
    },
    {
      "id": "lumos.list_access_requests",
      "service": "lumos",
      "name": "list_access_requests",
      "description": "List access requests in Lumos with optional user and status filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "target_user_id": {
            "type": "string",
            "minLength": 1,
            "description": "Filter requests by the ID of the target user."
          },
          "requester_user_id": {
            "type": "string",
            "minLength": 1,
            "description": "Filter requests by the ID of the requesting user."
          },
          "user_id": {
            "type": "string",
            "minLength": 1,
            "description": "Filter requests by the ID of the user."
          },
          "statuses": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A Lumos access request status."
            },
            "description": "Filter requests by their Lumos status values."
          },
          "sort": {
            "type": "string",
            "enum": [
              "ASC",
              "DESC"
            ],
            "description": "Sort access requests by created date."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "tasks",
                "custom_fields"
              ],
              "description": "An access request expansion field."
            },
            "description": "Access request fields to expand. Lumos currently supports tasks and custom_fields."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The 1-based page number to request from Lumos."
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of items per page. Lumos caps this value at 100."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Lumos access requests."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "accessRequests": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The ID of the access request."
                },
                "app_id": {
                  "type": "string",
                  "description": "The ID of the app the request is for."
                },
                "app_name": {
                  "type": "string",
                  "description": "The name of the app the request is for."
                },
                "status": {
                  "type": "string",
                  "description": "The current status of the request."
                },
                "expires_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "When the access request expires, if it has an expiration."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "expiration_in_seconds": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The lifetime of time-based access after provisioning, in seconds."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "requested_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "When the access request was created."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": true,
              "description": "An access request returned by Lumos."
            },
            "description": "The access requests returned by Lumos."
          },
          "page": {
            "type": "integer",
            "description": "The page number returned by Lumos."
          },
          "size": {
            "type": "integer",
            "description": "The page size returned by Lumos."
          },
          "total": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The total number of items when Lumos returns it."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Lumos response payload."
          }
        },
        "additionalProperties": false,
        "description": "A normalized page of Lumos access requests."
      }
    },
    {
      "id": "lumos.list_appstore_apps",
      "service": "lumos",
      "name": "list_appstore_apps",
      "description": "List AppStore apps in Lumos with optional search and visibility filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "app_id": {
            "type": "string",
            "minLength": 1,
            "description": "Filter apps by the ID of the app."
          },
          "name_search": {
            "type": "string",
            "minLength": 1,
            "description": "Search against name, app instance identifier, and app class ID."
          },
          "exact_match": {
            "type": "boolean",
            "description": "Whether the name_search filter should be an exact match."
          },
          "all_visibilities": {
            "type": "boolean",
            "description": "Whether to include apps regardless of AppStore visibility. Only available to admins."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "custom_attributes"
              ],
              "description": "An AppStore app expansion field."
            },
            "description": "App fields to expand. Lumos currently supports custom_attributes."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The 1-based page number to request from Lumos."
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of items per page. Lumos caps this value at 100."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Lumos AppStore apps."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "apps": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "An AppStore app returned by Lumos."
            },
            "description": "The AppStore apps returned by Lumos."
          },
          "page": {
            "type": "integer",
            "description": "The page number returned by Lumos."
          },
          "size": {
            "type": "integer",
            "description": "The page size returned by Lumos."
          },
          "total": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The total number of items when Lumos returns it."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Lumos response payload."
          }
        },
        "additionalProperties": false,
        "description": "A normalized page of Lumos AppStore apps."
      }
    }
  ]
}
