openapi: 3.2.0 info: title: Airia Web Endpoints API version: 1.0.0 servers: - url: https://api.airia.ai tags: - name: Endpoints paths: /v1/security/endpoints: get: tags: - Endpoints operationId: Endpoints_GetAll2 parameters: - name: x-correlation-id in: header schema: type: string responses: 200: description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/EndpointSummaryV1' summary: Endpoints get all2 x-summary-source: derived /v1/security/endpoints/export/json: get: tags: - Endpoints operationId: Endpoints_ExportJson2 parameters: - name: x-correlation-id in: header schema: type: string responses: 200: description: '' content: application/octet-stream: schema: type: string format: binary summary: Endpoints export json2 x-summary-source: derived /v1/security/endpoints/export/csv: get: tags: - Endpoints operationId: Endpoints_ExportCsv2 parameters: - name: x-correlation-id in: header schema: type: string responses: 200: description: '' content: application/octet-stream: schema: type: string format: binary summary: Endpoints export csv2 x-summary-source: derived /v1/security/endpoints/reconcile-actions: get: tags: - Endpoints operationId: Endpoints_GetReconcileActions2 parameters: - name: DeviceId in: query schema: type: - string - 'null' x-position: 1 - name: ClientId in: query schema: type: - string - 'null' x-position: 2 - name: Applied in: query schema: type: - boolean - 'null' x-position: 3 - name: From in: query schema: type: - string - 'null' format: date-time x-position: 4 - name: To in: query schema: type: - string - 'null' format: date-time x-position: 5 - name: PageNumber in: query schema: type: integer format: int32 x-position: 6 - name: PageSize in: query schema: type: integer format: int32 x-position: 7 - name: x-correlation-id in: header schema: type: string responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/PagedResultOfEndpointAgentReconcileActionV1' summary: Endpoints get reconcile actions2 x-summary-source: derived /v1/security/endpoints/{deviceId}: get: tags: - Endpoints operationId: Endpoints_GetDetail2 parameters: - name: deviceId in: path required: true schema: type: string x-position: 1 - name: x-correlation-id in: header schema: type: string responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/EndpointDetailV1' 404: description: '' content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' summary: Endpoints get detail2 x-summary-source: derived delete: tags: - Endpoints operationId: Endpoints_Delete2 parameters: - name: deviceId in: path required: true schema: type: string x-position: 1 - name: x-correlation-id in: header schema: type: string responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/EndpointDeletionResultV1' 400: description: '' content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' 404: description: '' content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' summary: Endpoints delete2 x-summary-source: derived /v1/security/endpoints/{deviceId}/reconcile-actions: get: tags: - Endpoints operationId: Endpoints_GetDeviceReconcileActions2 parameters: - name: deviceId in: path required: true schema: type: string x-position: 1 - name: DeviceId in: query schema: type: - string - 'null' x-position: 2 - name: ClientId in: query schema: type: - string - 'null' x-position: 3 - name: Applied in: query schema: type: - boolean - 'null' x-position: 4 - name: From in: query schema: type: - string - 'null' format: date-time x-position: 5 - name: To in: query schema: type: - string - 'null' format: date-time x-position: 6 - name: PageNumber in: query schema: type: integer format: int32 x-position: 7 - name: PageSize in: query schema: type: integer format: int32 x-position: 8 - name: x-correlation-id in: header schema: type: string responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/PagedResultOfEndpointAgentReconcileActionV1' summary: Endpoints get device reconcile actions2 x-summary-source: derived /v1/security/endpoints/findings/{findingId}: get: tags: - Endpoints operationId: Endpoints_GetFindingHistory2 parameters: - name: findingId in: path required: true schema: type: string x-position: 1 - name: IncludeTotalCount in: query schema: type: boolean x-position: 2 - name: PageNumber in: query schema: type: integer format: int32 x-position: 3 - name: PageSize in: query schema: type: integer format: int32 x-position: 4 - name: x-correlation-id in: header schema: type: string responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/PagedResultV2OfEndpointFindingRecordV1' summary: Endpoints get finding history2 x-summary-source: derived /v1/security/endpoints/findings: get: tags: - Endpoints operationId: Endpoints_GetFindings2 parameters: - name: FindingId in: query schema: type: - string - 'null' x-position: 1 - name: AppId in: query schema: type: - string - 'null' format: guid x-position: 2 - name: ClientId in: query schema: type: - string - 'null' x-position: 3 - name: Kind in: query schema: type: - string - 'null' x-position: 4 - name: DeviceId in: query schema: type: - string - 'null' x-position: 5 - name: From in: query schema: type: - string - 'null' format: date-time x-position: 6 - name: To in: query schema: type: - string - 'null' format: date-time x-position: 7 - name: IncludeTotalCount in: query schema: type: boolean x-position: 8 - name: PageNumber in: query schema: type: integer format: int32 x-position: 9 - name: PageSize in: query schema: type: integer format: int32 x-position: 10 - name: x-correlation-id in: header schema: type: string responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/PagedResultV2OfEndpointFindingRecordV1' summary: Endpoints get findings2 x-summary-source: derived components: schemas: EndpointDeletionStatusV1: type: string description: '' x-enumNames: - Deleted - NotFound - ExternallySourced enum: - Deleted - NotFound - ExternallySourced EndpointAppRefV1: type: object additionalProperties: false properties: appId: type: string name: type: string mcpCount: type: integer format: int32 plaintextSecretCount: type: integer format: int32 routedThroughGateway: type: boolean EndpointDeletionResultV1: type: object additionalProperties: false properties: status: $ref: '#/components/schemas/EndpointDeletionStatusV1' deviceId: type: string hostName: type: string removedAppCount: type: integer format: int32 retainedAppCount: type: integer format: int32 PagedResultOfEndpointAgentReconcileActionV1: type: object additionalProperties: false properties: items: type: array items: $ref: '#/components/schemas/EndpointAgentReconcileActionV1' totalCount: type: integer format: int32 PagedResultV2OfEndpointFindingRecordV1: type: object additionalProperties: false properties: items: type: array items: $ref: '#/components/schemas/EndpointFindingRecordV1' totalCount: type: - integer - 'null' format: int32 hasMore: type: - boolean - 'null' OllamaModelV1: type: object additionalProperties: false properties: name: type: string tag: type: string digest: type: string manifestPath: type: string manifestSizeBytes: type: integer format: int64 logicalSizeBytes: type: integer format: int64 onDiskSizeBytes: type: integer format: int64 loadState: type: string blobs: type: array items: $ref: '#/components/schemas/OllamaBlobV1' AiApiKeyFinding: type: object additionalProperties: false properties: provider: type: string configPath: type: string line: type: - integer - 'null' format: int32 EndpointAgentReconcileActionV1: type: object additionalProperties: false properties: id: type: string format: guid deviceId: type: string clientId: type: string action: type: string configPath: type: string location: type: string logicalId: type: - string - 'null' before: type: - string - 'null' after: type: - string - 'null' applied: type: boolean agentVersion: type: string occurredAt: type: string format: date-time ingestedAt: type: string format: date-time ProblemDetails: type: object additionalProperties: {} properties: type: type: - string - 'null' title: type: - string - 'null' status: type: - integer - 'null' format: int32 detail: type: - string - 'null' instance: type: - string - 'null' OllamaBlobV1: type: object additionalProperties: false properties: descriptorKind: type: string digest: type: string mediaType: type: string path: type: string declaredSizeBytes: type: integer format: int64 actualSizeBytes: type: - integer - 'null' format: int64 EndpointSummaryV1: type: object additionalProperties: false properties: deviceId: type: string hostName: type: string userName: type: string userEmail: type: string os: type: string agentVersion: type: string serialNumber: type: string appCount: type: integer format: int32 mcpCount: type: integer format: int32 capabilities: type: array items: type: string plaintextSecretCount: type: integer format: int32 routedAppCount: type: integer format: int32 llmRoutedAppCount: type: integer format: int32 mcpRoutedServerCount: type: integer format: int32 policyRevision: type: - integer - 'null' format: int64 policyMode: type: string mdmManaged: type: boolean keystoreEntryPresent: type: boolean lastSeen: type: string format: date-time apps: type: array items: $ref: '#/components/schemas/EndpointAppRefV1' sources: type: array items: type: string externalDeviceId: type: string matchConfidence: type: string localIp: type: string externalIp: type: string machineDomain: type: string lastLoginUser: type: string sensorVersion: type: string entityType: type: string cid: type: string EndpointFindingRecordV1: type: object additionalProperties: false properties: id: type: string format: guid findingId: type: string appId: type: - string - 'null' format: guid clientId: type: string kind: type: string configId: type: - string - 'null' configPath: type: - string - 'null' location: type: - string - 'null' tags: type: array items: type: string data: type: object additionalProperties: type: - string - 'null' deviceId: type: string hostName: type: string userName: type: string agentVersion: type: string occurredAt: type: string format: date-time ingestedAt: type: string format: date-time EndpointDeviceReportV1: allOf: - $ref: '#/components/schemas/DeviceReportV1' - type: object additionalProperties: false properties: appId: type: string appName: type: string OllamaDetailV1: type: object additionalProperties: false properties: serverState: type: string serverObservedAt: type: string format: date-time inventoryStatus: type: string inventoryObservedAt: type: - string - 'null' format: date-time lastInventoryAttemptAt: type: string format: date-time scanErrorCount: type: integer format: int32 omittedModelCount: type: integer format: int32 retentionDroppedModelCount: type: integer format: int32 retentionDroppedBlobCount: type: integer format: int32 models: type: array items: $ref: '#/components/schemas/OllamaModelV1' ConfigParseErrorV1: type: object additionalProperties: false properties: configPath: type: string configId: type: - string - 'null' errorClass: type: string errorMessage: type: string McpServerV1: type: object additionalProperties: false properties: name: type: string scope: type: string transport: type: string endpoint: type: string authType: type: string hasPlaintextSecret: type: boolean routedThroughGateway: type: boolean sanctioned: type: boolean replaceableTier: type: string capability: type: - string - 'null' reportedByDeviceIds: type: array items: type: string DeviceReportV1: type: object additionalProperties: false properties: deviceId: type: string hostName: type: string userName: type: string userEmail: type: string os: type: string version: type: string lastSeen: type: string format: date-time llmApiBaseUrl: type: string llmApiConfigSource: type: string llmApiRouted: type: boolean gatewayConfigurationName: type: - string - 'null' keystoreEntryPresent: type: boolean aiApiKeyFindings: type: array items: $ref: '#/components/schemas/AiApiKeyFinding' managedPolicyPresent: type: boolean mdmEnforcedKeys: type: array items: type: string configParseErrors: type: integer format: int32 parseErrors: type: array items: $ref: '#/components/schemas/ConfigParseErrorV1' mcpServerCount: type: integer format: int32 policyRevision: type: - integer - 'null' format: int64 policyMode: type: string ollama: oneOf: - $ref: '#/components/schemas/OllamaDetailV1' EndpointDetailV1: allOf: - $ref: '#/components/schemas/EndpointSummaryV1' - type: object additionalProperties: false properties: reports: type: array items: $ref: '#/components/schemas/EndpointDeviceReportV1' mcpServers: type: array items: $ref: '#/components/schemas/McpServerV1' securitySchemes: ApiKey: type: apiKey description: API Key Authentication name: X-API-Key in: header Cookies: type: apiKey description: Cookie based Authentication name: Cookie in: header x-generator: NSwag v14.7.1.0 (NJsonSchema v11.6.1.0 (Newtonsoft.Json v13.0.0.0))