Files
prowler/docs/api-reference/openapi.json
T
Andoni A. 00441e776d feat(api): add OpenAPI schema postprocessing hooks for Mintlify compatibility
Add three postprocessing hooks to fix OpenAPI 3.0.x compatibility issues
generated by drf-spectacular-jsonapi:

1. fix_empty_id_fields: Fixes empty id field definitions ({}) in JSON:API
   request schemas (particularly PATCH/update requests) by replacing them
   with proper schema: {"type": "string", "format": "uuid", "description": "..."}

2. fix_pattern_properties: Converts patternProperties to additionalProperties
   for OpenAPI 3.0 compatibility. patternProperties is only available in
   OpenAPI 3.1+, but drf-spectacular generates 3.0.3 specs. This is needed
   for the Prowler mutelist configuration which uses dynamic keys.

3. fix_type_formats: Fixes invalid type values like "email" that
   drf-spectacular generates from Django's EmailField. Converts them to
   proper OpenAPI format: "type": "string" with "format": "email".
   Also handles "url" → "uri" and "uuid" formats.

These hooks ensure the generated OpenAPI schema validates correctly with
Mintlify and other OpenAPI 3.0.x tools.
2025-11-05 11:36:24 +01:00

25727 lines
802 KiB
JSON

{
"openapi": "3.0.3",
"info": {
"title": "Prowler API",
"version": "1.15.0",
"description": "Prowler API specification.\n\nThis file is auto-generated."
},
"paths": {
"/api/v1/api-keys": {
"get": {
"operationId": "api_keys_list",
"description": "Retrieve a list of API keys for the tenant, with filtering support.",
"summary": "List API keys",
"parameters": [
{
"in": "query",
"name": "fields[api-keys]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"prefix",
"expires_at",
"revoked",
"inserted_at",
"last_used_at",
"entity"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[expires_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[expires_at__gte]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[expires_at__lte]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__gte]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__lte]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[name]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[name__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[prefix]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[prefix__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[revoked]",
"schema": {
"type": "boolean"
}
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"entity"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"-name",
"prefix",
"-prefix",
"revoked",
"-revoked",
"inserted_at",
"-inserted_at",
"expires_at",
"-expires_at"
]
}
},
"explode": false
}
],
"tags": [
"API Keys"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedTenantApiKeyList"
}
}
},
"description": ""
}
}
},
"post": {
"operationId": "api_keys_create",
"description": "Create a new API key for the tenant.",
"summary": "Create a new API key",
"tags": [
"API Keys"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TenantApiKeyCreateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/TenantApiKeyCreateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/TenantApiKeyCreateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"201": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TenantApiKeyCreateResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/api-keys/{id}": {
"get": {
"operationId": "api_keys_retrieve",
"description": "Fetch detailed information about a specific API key by its ID.",
"summary": "Retrieve API key details",
"parameters": [
{
"in": "query",
"name": "fields[api-keys]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"prefix",
"expires_at",
"revoked",
"inserted_at",
"last_used_at",
"entity"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this tenant api key.",
"required": true
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"entity"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
}
],
"tags": [
"API Keys"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TenantApiKeyResponse"
}
}
},
"description": ""
}
}
},
"patch": {
"operationId": "api_keys_partial_update",
"description": "Modify certain fields of an existing API key without affecting other settings.",
"summary": "Partially update an API key",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this tenant api key.",
"required": true
}
],
"tags": [
"API Keys"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PatchedTenantApiKeyUpdateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/PatchedTenantApiKeyUpdateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/PatchedTenantApiKeyUpdateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TenantApiKeyUpdateResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/api-keys/{id}/revoke": {
"delete": {
"operationId": "api_keys_revoke_destroy",
"description": "Revoke an API key by its ID. This action is irreversible and will prevent the key from being used.",
"summary": "Revoke an API key",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this tenant api key.",
"required": true
}
],
"tags": [
"API Keys"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/OpenApiResponseResponse"
}
}
},
"description": "API key was successfully revoked"
}
}
}
},
"/api/v1/compliance-overviews": {
"get": {
"operationId": "compliance_overviews_list",
"description": "Retrieve an overview of all the compliance in a given scan.",
"summary": "List compliance overviews for a scan",
"parameters": [
{
"in": "query",
"name": "fields[compliance-overviews]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"framework",
"version",
"requirements_passed",
"requirements_failed",
"requirements_manual",
"total_requirements"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[compliance_id]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[compliance_id__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[framework]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[framework__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[framework__iexact]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__date]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[inserted_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[region]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[scan_id]",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "Related scan ID.",
"required": true
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[version]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[version__icontains]",
"schema": {
"type": "string"
}
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"compliance_id",
"-compliance_id"
]
}
},
"explode": false
}
],
"tags": [
"Compliance Overview"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedComplianceOverviewList"
}
}
},
"description": "Compliance overviews obtained successfully"
},
"202": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TaskResponse"
},
"examples": {
"Task queued": {
"summary": "Task queued",
"value": {
"data": {
"type": "tasks",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"attributes": {
"inserted_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"name": "string",
"state": "available",
"result": null,
"task_args": null,
"metadata": null
}
}
}
}
}
}
},
"description": "The task is in progress"
},
"500": {
"description": "Compliance overviews generation task failed"
}
}
}
},
"/api/v1/compliance-overviews/attributes": {
"get": {
"operationId": "compliance_overviews_attributes_retrieve",
"description": "Retrieve detailed attribute information for all requirements in a specific compliance framework along with the associated check IDs for each requirement.",
"summary": "Get compliance requirement attributes",
"parameters": [
{
"in": "query",
"name": "fields[compliance-requirements-attributes]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"compliance_name",
"framework_description",
"name",
"framework",
"version",
"description",
"attributes"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[compliance_id]",
"schema": {
"type": "string"
},
"description": "Compliance framework ID to get attributes for.",
"required": true
}
],
"tags": [
"Compliance Overview"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedComplianceOverviewAttributesList"
}
}
},
"description": "Compliance attributes obtained successfully"
}
}
}
},
"/api/v1/compliance-overviews/metadata": {
"get": {
"operationId": "compliance_overviews_metadata_retrieve",
"description": "Fetch unique metadata values from a set of compliance overviews. This is useful for dynamic filtering.",
"summary": "Retrieve metadata values from compliance overviews",
"parameters": [
{
"in": "query",
"name": "fields[compliance-overviews-metadata]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"regions"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[scan_id]",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "Related scan ID.",
"required": true
}
],
"tags": [
"Compliance Overview"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/OpenApiResponseResponse"
}
}
},
"description": "Compliance overviews metadata obtained successfully"
},
"202": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TaskResponse"
},
"examples": {
"Task queued": {
"summary": "Task queued",
"value": {
"data": {
"type": "tasks",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"attributes": {
"inserted_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"name": "string",
"state": "available",
"result": null,
"task_args": null,
"metadata": null
}
}
}
}
}
}
},
"description": "The task is in progress"
},
"500": {
"description": "Compliance overviews generation task failed"
}
}
}
},
"/api/v1/compliance-overviews/requirements": {
"get": {
"operationId": "compliance_overviews_requirements_retrieve",
"description": "Retrieve a detailed overview of compliance requirements in a given scan, grouped by compliance framework. This endpoint provides requirement-level details and aggregates status across regions.",
"summary": "List compliance requirements overview for a scan",
"parameters": [
{
"in": "query",
"name": "fields[compliance-requirements-details]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"framework",
"version",
"description",
"status"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[compliance_id]",
"schema": {
"type": "string"
},
"description": "Compliance ID.",
"required": true
},
{
"in": "query",
"name": "filter[compliance_id__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[framework]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[framework__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[framework__iexact]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__date]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[inserted_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[region]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[scan_id]",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "Related scan ID.",
"required": true
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[version]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[version__icontains]",
"schema": {
"type": "string"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"compliance_id",
"-compliance_id"
]
}
},
"explode": false
}
],
"tags": [
"Compliance Overview"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedComplianceOverviewDetailList"
}
}
},
"description": "Compliance requirement details obtained successfully"
},
"202": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TaskResponse"
},
"examples": {
"Task queued": {
"summary": "Task queued",
"value": {
"data": {
"type": "tasks",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"attributes": {
"inserted_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"name": "string",
"state": "available",
"result": null,
"task_args": null,
"metadata": null
}
}
}
}
}
}
},
"description": "The task is in progress"
},
"500": {
"description": "Compliance overviews generation task failed"
}
}
}
},
"/api/v1/findings": {
"get": {
"operationId": "findings_list",
"description": "Retrieve a list of all findings with options for filtering by various criteria.",
"summary": "List all findings",
"parameters": [
{
"in": "query",
"name": "fields[findings]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"uid",
"delta",
"status",
"status_extended",
"severity",
"check_id",
"check_metadata",
"raw_result",
"inserted_at",
"updated_at",
"first_seen_at",
"muted",
"muted_reason",
"url",
"scan",
"resources"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[check_id]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[check_id__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[check_id__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[delta]",
"schema": {
"type": "string",
"x-spec-enum-id": "fef6b0e2506af8bc",
"nullable": true,
"enum": [
"changed",
"new"
]
},
"description": "* `new` - New\n* `changed` - Changed"
},
{
"in": "query",
"name": "filter[delta__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[id]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[id__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[impact]",
"schema": {
"type": "string",
"x-spec-enum-id": "c93e070ed135d9bf",
"enum": [
"critical",
"high",
"informational",
"low",
"medium"
]
},
"description": "* `critical` - Critical\n* `high` - High\n* `medium` - Medium\n* `low` - Low\n* `informational` - Informational"
},
{
"in": "query",
"name": "filter[impact__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
},
"description": "At least one of the variations of the `filter[inserted_at]` filter must be provided.",
"required": true
},
{
"in": "query",
"name": "filter[inserted_at__date]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__gte]",
"schema": {
"type": "string",
"format": "date"
},
"description": "Maximum date range is 7 days."
},
{
"in": "query",
"name": "filter[inserted_at__lte]",
"schema": {
"type": "string",
"format": "date"
},
"description": "Maximum date range is 7 days."
},
{
"in": "query",
"name": "filter[muted]",
"schema": {
"type": "boolean"
},
"description": "If this filter is not provided, muted and non-muted findings will be returned."
},
{
"in": "query",
"name": "filter[provider]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[provider__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_alias]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_type]",
"schema": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
},
"description": "* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure"
},
{
"in": "query",
"name": "filter[provider_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[region]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resource_name]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_name__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_name__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resource_type]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_type__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resource_uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_uid__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resources]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[scan]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[scan__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[severity]",
"schema": {
"type": "string",
"x-spec-enum-id": "c93e070ed135d9bf",
"enum": [
"critical",
"high",
"informational",
"low",
"medium"
]
},
"description": "* `critical` - Critical\n* `high` - High\n* `medium` - Medium\n* `low` - Low\n* `informational` - Informational"
},
{
"in": "query",
"name": "filter[severity__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[status]",
"schema": {
"type": "string",
"x-spec-enum-id": "ce612ddbfa464789",
"enum": [
"FAIL",
"MANUAL",
"PASS"
]
},
"description": "* `FAIL` - Fail\n* `PASS` - Pass\n* `MANUAL` - Manual"
},
{
"in": "query",
"name": "filter[status__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[updated_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[updated_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[updated_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"scan",
"resources"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"status",
"-status",
"severity",
"-severity",
"check_id",
"-check_id",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at"
]
}
},
"explode": false
}
],
"tags": [
"Finding"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedFindingList"
}
}
},
"description": ""
}
}
}
},
"/api/v1/findings/{id}": {
"get": {
"operationId": "findings_retrieve",
"description": "Fetch detailed information about a specific finding by its ID.",
"summary": "Retrieve data from a specific finding",
"parameters": [
{
"in": "query",
"name": "fields[findings]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"uid",
"delta",
"status",
"status_extended",
"severity",
"check_id",
"check_metadata",
"raw_result",
"inserted_at",
"updated_at",
"first_seen_at",
"muted",
"muted_reason",
"url",
"scan",
"resources"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this finding.",
"required": true
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"scan",
"resources"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
}
],
"tags": [
"Finding"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/FindingResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/findings/findings_services_regions": {
"get": {
"operationId": "findings_findings_services_regions_retrieve",
"description": "Fetch services and regions affected in findings.",
"summary": "Retrieve the services and regions that are impacted by findings",
"parameters": [
{
"in": "query",
"name": "fields[finding-dynamic-filters]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"services",
"regions"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[check_id]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[check_id__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[check_id__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[delta]",
"schema": {
"type": "string",
"x-spec-enum-id": "fef6b0e2506af8bc",
"nullable": true,
"enum": [
"changed",
"new"
]
},
"description": "* `new` - New\n* `changed` - Changed"
},
{
"in": "query",
"name": "filter[delta__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[id]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[id__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[impact]",
"schema": {
"type": "string",
"x-spec-enum-id": "c93e070ed135d9bf",
"enum": [
"critical",
"high",
"informational",
"low",
"medium"
]
},
"description": "* `critical` - Critical\n* `high` - High\n* `medium` - Medium\n* `low` - Low\n* `informational` - Informational"
},
{
"in": "query",
"name": "filter[impact__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__date]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__gte]",
"schema": {
"type": "string",
"format": "date"
},
"description": "Maximum date range is 7 days."
},
{
"in": "query",
"name": "filter[inserted_at__lte]",
"schema": {
"type": "string",
"format": "date"
},
"description": "Maximum date range is 7 days."
},
{
"in": "query",
"name": "filter[muted]",
"schema": {
"type": "boolean"
},
"description": "If this filter is not provided, muted and non-muted findings will be returned."
},
{
"in": "query",
"name": "filter[provider]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[provider__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_alias]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_type]",
"schema": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
},
"description": "* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure"
},
{
"in": "query",
"name": "filter[provider_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[region]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resource_name]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_name__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_name__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resource_type]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_type__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resource_uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_uid__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resources]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[scan]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[scan__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[severity]",
"schema": {
"type": "string",
"x-spec-enum-id": "c93e070ed135d9bf",
"enum": [
"critical",
"high",
"informational",
"low",
"medium"
]
},
"description": "* `critical` - Critical\n* `high` - High\n* `medium` - Medium\n* `low` - Low\n* `informational` - Informational"
},
{
"in": "query",
"name": "filter[severity__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[status]",
"schema": {
"type": "string",
"x-spec-enum-id": "ce612ddbfa464789",
"enum": [
"FAIL",
"MANUAL",
"PASS"
]
},
"description": "* `FAIL` - Fail\n* `PASS` - Pass\n* `MANUAL` - Manual"
},
{
"in": "query",
"name": "filter[status__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[updated_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[updated_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[updated_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"status",
"-status",
"severity",
"-severity",
"check_id",
"-check_id",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at"
]
}
},
"explode": false
}
],
"tags": [
"Finding"
],
"security": [
{
"JWT or API Key": []
}
],
"deprecated": true,
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/FindingDynamicFilterResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/findings/latest": {
"get": {
"operationId": "findings_latest_retrieve",
"description": "Retrieve a list of the latest findings from the latest scans for each provider with options for filtering by various criteria.",
"summary": "List the latest findings",
"parameters": [
{
"in": "query",
"name": "fields[findings]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"uid",
"delta",
"status",
"status_extended",
"severity",
"check_id",
"check_metadata",
"raw_result",
"inserted_at",
"updated_at",
"first_seen_at",
"muted",
"muted_reason",
"url",
"scan",
"resources"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[check_id]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[check_id__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[check_id__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[delta]",
"schema": {
"type": "string",
"x-spec-enum-id": "fef6b0e2506af8bc",
"nullable": true,
"enum": [
"changed",
"new"
]
},
"description": "* `new` - New\n* `changed` - Changed"
},
{
"in": "query",
"name": "filter[delta__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[id]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[id__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[impact]",
"schema": {
"type": "string",
"x-spec-enum-id": "c93e070ed135d9bf",
"enum": [
"critical",
"high",
"informational",
"low",
"medium"
]
},
"description": "* `critical` - Critical\n* `high` - High\n* `medium` - Medium\n* `low` - Low\n* `informational` - Informational"
},
{
"in": "query",
"name": "filter[impact__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[muted]",
"schema": {
"type": "boolean"
},
"description": "If this filter is not provided, muted and non-muted findings will be returned."
},
{
"in": "query",
"name": "filter[provider]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[provider__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_alias]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_type]",
"schema": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
},
"description": "* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure"
},
{
"in": "query",
"name": "filter[provider_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[region]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resource_name]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_name__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_name__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resource_type]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_type__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resource_uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_uid__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resources]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[severity]",
"schema": {
"type": "string",
"x-spec-enum-id": "c93e070ed135d9bf",
"enum": [
"critical",
"high",
"informational",
"low",
"medium"
]
},
"description": "* `critical` - Critical\n* `high` - High\n* `medium` - Medium\n* `low` - Low\n* `informational` - Informational"
},
{
"in": "query",
"name": "filter[severity__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[status]",
"schema": {
"type": "string",
"x-spec-enum-id": "ce612ddbfa464789",
"enum": [
"FAIL",
"MANUAL",
"PASS"
]
},
"description": "* `FAIL` - Fail\n* `PASS` - Pass\n* `MANUAL` - Manual"
},
{
"in": "query",
"name": "filter[status__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[updated_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"scan",
"resources"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"status",
"-status",
"severity",
"-severity",
"check_id",
"-check_id",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at"
]
}
},
"explode": false
}
],
"tags": [
"Finding"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/FindingResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/findings/metadata": {
"get": {
"operationId": "findings_metadata_retrieve",
"description": "Fetch unique metadata values from a set of findings. This is useful for dynamic filtering.",
"summary": "Retrieve metadata values from findings",
"parameters": [
{
"in": "query",
"name": "fields[findings-metadata]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"services",
"regions",
"resource_types"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[check_id]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[check_id__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[check_id__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[delta]",
"schema": {
"type": "string",
"x-spec-enum-id": "fef6b0e2506af8bc",
"nullable": true,
"enum": [
"changed",
"new"
]
},
"description": "* `new` - New\n* `changed` - Changed"
},
{
"in": "query",
"name": "filter[delta__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[id]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[id__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[impact]",
"schema": {
"type": "string",
"x-spec-enum-id": "c93e070ed135d9bf",
"enum": [
"critical",
"high",
"informational",
"low",
"medium"
]
},
"description": "* `critical` - Critical\n* `high` - High\n* `medium` - Medium\n* `low` - Low\n* `informational` - Informational"
},
{
"in": "query",
"name": "filter[impact__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
},
"description": "At least one of the variations of the `filter[inserted_at]` filter must be provided.",
"required": true
},
{
"in": "query",
"name": "filter[inserted_at__date]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__gte]",
"schema": {
"type": "string",
"format": "date"
},
"description": "Maximum date range is 7 days."
},
{
"in": "query",
"name": "filter[inserted_at__lte]",
"schema": {
"type": "string",
"format": "date"
},
"description": "Maximum date range is 7 days."
},
{
"in": "query",
"name": "filter[muted]",
"schema": {
"type": "boolean"
},
"description": "If this filter is not provided, muted and non-muted findings will be returned."
},
{
"in": "query",
"name": "filter[provider]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[provider__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_alias]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_type]",
"schema": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
},
"description": "* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure"
},
{
"in": "query",
"name": "filter[provider_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[region]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resource_name]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_name__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_name__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resource_type]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_type__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resource_uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_uid__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resources]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[scan]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[scan__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[severity]",
"schema": {
"type": "string",
"x-spec-enum-id": "c93e070ed135d9bf",
"enum": [
"critical",
"high",
"informational",
"low",
"medium"
]
},
"description": "* `critical` - Critical\n* `high` - High\n* `medium` - Medium\n* `low` - Low\n* `informational` - Informational"
},
{
"in": "query",
"name": "filter[severity__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[status]",
"schema": {
"type": "string",
"x-spec-enum-id": "ce612ddbfa464789",
"enum": [
"FAIL",
"MANUAL",
"PASS"
]
},
"description": "* `FAIL` - Fail\n* `PASS` - Pass\n* `MANUAL` - Manual"
},
{
"in": "query",
"name": "filter[status__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[updated_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[updated_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[updated_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"status",
"-status",
"severity",
"-severity",
"check_id",
"-check_id",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at"
]
}
},
"explode": false
}
],
"tags": [
"Finding"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/FindingMetadataResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/findings/metadata/latest": {
"get": {
"operationId": "findings_metadata_latest_retrieve",
"description": "Fetch unique metadata values from a set of findings from the latest scans for each provider. This is useful for dynamic filtering.",
"summary": "Retrieve metadata values from the latest findings",
"parameters": [
{
"in": "query",
"name": "fields[findings-metadata]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"services",
"regions",
"resource_types"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[check_id]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[check_id__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[check_id__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[delta]",
"schema": {
"type": "string",
"x-spec-enum-id": "fef6b0e2506af8bc",
"nullable": true,
"enum": [
"changed",
"new"
]
},
"description": "* `new` - New\n* `changed` - Changed"
},
{
"in": "query",
"name": "filter[delta__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[id]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[id__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[impact]",
"schema": {
"type": "string",
"x-spec-enum-id": "c93e070ed135d9bf",
"enum": [
"critical",
"high",
"informational",
"low",
"medium"
]
},
"description": "* `critical` - Critical\n* `high` - High\n* `medium` - Medium\n* `low` - Low\n* `informational` - Informational"
},
{
"in": "query",
"name": "filter[impact__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[muted]",
"schema": {
"type": "boolean"
},
"description": "If this filter is not provided, muted and non-muted findings will be returned."
},
{
"in": "query",
"name": "filter[provider]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[provider__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_alias]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_type]",
"schema": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
},
"description": "* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure"
},
{
"in": "query",
"name": "filter[provider_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[region]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resource_name]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_name__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_name__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resource_type]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_type__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resource_uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_uid__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[resource_uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[resources]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[severity]",
"schema": {
"type": "string",
"x-spec-enum-id": "c93e070ed135d9bf",
"enum": [
"critical",
"high",
"informational",
"low",
"medium"
]
},
"description": "* `critical` - Critical\n* `high` - High\n* `medium` - Medium\n* `low` - Low\n* `informational` - Informational"
},
{
"in": "query",
"name": "filter[severity__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[status]",
"schema": {
"type": "string",
"x-spec-enum-id": "ce612ddbfa464789",
"enum": [
"FAIL",
"MANUAL",
"PASS"
]
},
"description": "* `FAIL` - Fail\n* `PASS` - Pass\n* `MANUAL` - Manual"
},
{
"in": "query",
"name": "filter[status__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[updated_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"status",
"-status",
"severity",
"-severity",
"check_id",
"-check_id",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at"
]
}
},
"explode": false
}
],
"tags": [
"Finding"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/FindingMetadataResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/integrations": {
"get": {
"operationId": "integrations_list",
"description": "Retrieve a list of all configured integrations with options for filtering by various criteria.",
"summary": "List all integrations",
"parameters": [
{
"in": "query",
"name": "fields[integrations]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"enabled",
"connected",
"connection_last_checked_at",
"integration_type",
"configuration",
"providers",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__date]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[inserted_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[integration_type]",
"schema": {
"type": "string",
"x-spec-enum-id": "6cfd0ff9cf4d6dcc",
"enum": [
"amazon_s3",
"aws_security_hub",
"jira",
"slack"
]
},
"description": "* `amazon_s3` - Amazon S3\n* `aws_security_hub` - AWS Security Hub\n* `jira` - JIRA\n* `slack` - Slack"
},
{
"in": "query",
"name": "filter[integration_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "6cfd0ff9cf4d6dcc",
"enum": [
"amazon_s3",
"aws_security_hub",
"jira",
"slack"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `amazon_s3` - Amazon S3\n* `aws_security_hub` - AWS Security Hub\n* `jira` - JIRA\n* `slack` - Slack",
"explode": false,
"style": "form"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"providers"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"-id",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at",
"enabled",
"-enabled",
"connected",
"-connected",
"connection_last_checked_at",
"-connection_last_checked_at",
"integration_type",
"-integration_type",
"configuration",
"-configuration",
"providers",
"-providers",
"url",
"-url"
]
}
},
"explode": false
}
],
"tags": [
"Integration"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedIntegrationList"
}
}
},
"description": ""
}
}
},
"post": {
"operationId": "integrations_create",
"description": "Register a new integration with the system, providing necessary configuration details.",
"summary": "Create a new integration",
"tags": [
"Integration"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/IntegrationCreateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/IntegrationCreateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/IntegrationCreateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"201": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/IntegrationCreateResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/integrations/{integration_pk}/jira/dispatches": {
"post": {
"operationId": "integrations_jira_dispatches_create",
"description": "Send a set of filtered findings to the given integration. At least one finding filter must be provided.",
"summary": "Send findings to a Jira integration",
"parameters": [
{
"in": "query",
"name": "filter[finding_id]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[finding_id__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "path",
"name": "integration_pk",
"schema": {
"type": "string"
},
"required": true
}
],
"tags": [
"Integration"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/IntegrationJiraDispatchRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/IntegrationJiraDispatchRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/IntegrationJiraDispatchRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"202": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TaskResponse"
},
"examples": {
"Task queued": {
"summary": "Task queued",
"value": {
"data": {
"type": "tasks",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"attributes": {
"inserted_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"name": "string",
"state": "available",
"result": null,
"task_args": null,
"metadata": null
}
}
}
}
}
}
},
"description": ""
}
}
}
},
"/api/v1/integrations/{id}": {
"get": {
"operationId": "integrations_retrieve",
"description": "Fetch detailed information about a specific integration by its ID.",
"summary": "Retrieve integration details",
"parameters": [
{
"in": "query",
"name": "fields[integrations]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"enabled",
"connected",
"connection_last_checked_at",
"integration_type",
"configuration",
"providers",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this integration.",
"required": true
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"providers"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
}
],
"tags": [
"Integration"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/IntegrationResponse"
}
}
},
"description": ""
}
}
},
"patch": {
"operationId": "integrations_partial_update",
"description": "Modify certain fields of an existing integration without affecting other settings.",
"summary": "Partially update an integration",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this integration.",
"required": true
}
],
"tags": [
"Integration"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PatchedIntegrationUpdateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/PatchedIntegrationUpdateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/PatchedIntegrationUpdateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/IntegrationUpdateResponse"
}
}
},
"description": ""
}
}
},
"delete": {
"operationId": "integrations_destroy",
"description": "Remove an integration from the system by its ID.",
"summary": "Delete an integration",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this integration.",
"required": true
}
],
"tags": [
"Integration"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "No response body"
}
}
}
},
"/api/v1/integrations/{id}/connection": {
"post": {
"operationId": "integrations_connection_create",
"description": "Try to verify integration connection",
"summary": "Check integration connection",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this integration.",
"required": true
}
],
"tags": [
"Integration"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"202": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TaskResponse"
},
"examples": {
"Task queued": {
"summary": "Task queued",
"value": {
"data": {
"type": "tasks",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"attributes": {
"inserted_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"name": "string",
"state": "available",
"result": null,
"task_args": null,
"metadata": null
}
}
}
}
}
}
},
"description": ""
}
}
}
},
"/api/v1/invitations/accept": {
"post": {
"operationId": "invitations_accept_create",
"description": "Accept an invitation to an existing tenant. This invitation cannot be expired and the emails must match.",
"summary": "Accept an invitation",
"tags": [
"Invitation"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/InvitationAcceptRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/InvitationAcceptRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/InvitationAcceptRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"201": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/OpenApiResponseResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/lighthouse-configurations": {
"get": {
"operationId": "lighthouse_configurations_list",
"description": "Retrieve a list of all Lighthouse AI configurations.",
"summary": "List all Lighthouse AI configurations",
"parameters": [
{
"in": "query",
"name": "fields[lighthouse-configurations]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"api_key",
"model",
"temperature",
"max_tokens",
"business_context",
"is_active",
"inserted_at",
"updated_at",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"-name",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at",
"is_active",
"-is_active"
]
}
},
"explode": false
}
],
"tags": [
"Lighthouse AI"
],
"security": [
{
"JWT or API Key": []
}
],
"deprecated": true,
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedLighthouseConfigList"
}
}
},
"description": ""
}
}
},
"post": {
"operationId": "lighthouse_configurations_create",
"description": "Create a new Lighthouse AI configuration with the specified details.",
"summary": "Create a new Lighthouse AI configuration",
"tags": [
"Lighthouse AI"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/LighthouseConfigCreateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/LighthouseConfigCreateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/LighthouseConfigCreateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"deprecated": true,
"responses": {
"201": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/LighthouseConfigCreateResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/lighthouse-configurations/{id}": {
"patch": {
"operationId": "lighthouse_configurations_partial_update",
"description": "Update certain fields of an existing Lighthouse AI configuration.",
"summary": "Partially update a Lighthouse AI configuration",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string"
},
"required": true
}
],
"tags": [
"Lighthouse AI"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PatchedLighthouseConfigUpdateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/PatchedLighthouseConfigUpdateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/PatchedLighthouseConfigUpdateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"deprecated": true,
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/LighthouseConfigUpdateResponse"
}
}
},
"description": ""
}
}
},
"delete": {
"operationId": "lighthouse_configurations_destroy",
"description": "Remove a Lighthouse AI configuration by its ID.",
"summary": "Delete a Lighthouse AI configuration",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string"
},
"required": true
}
],
"tags": [
"Lighthouse AI"
],
"security": [
{
"JWT or API Key": []
}
],
"deprecated": true,
"responses": {
"204": {
"description": "No response body"
}
}
}
},
"/api/v1/lighthouse-configurations/{id}/connection": {
"post": {
"operationId": "lighthouse_configurations_connection_create",
"description": "Verify the connection to the OpenAI API for a specific Lighthouse AI configuration.",
"summary": "Check the connection to the OpenAI API",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string"
},
"required": true
}
],
"tags": [
"Lighthouse AI"
],
"security": [
{
"JWT or API Key": []
}
],
"deprecated": true,
"responses": {
"202": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TaskResponse"
},
"examples": {
"Task queued": {
"summary": "Task queued",
"value": {
"data": {
"type": "tasks",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"attributes": {
"inserted_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"name": "string",
"state": "available",
"result": null,
"task_args": null,
"metadata": null
}
}
}
}
}
}
},
"description": ""
}
}
}
},
"/api/v1/lighthouse/configuration": {
"get": {
"operationId": "lighthouse_configuration_list",
"description": "Retrieve current tenant-level Lighthouse AI settings. Returns a single configuration object.",
"summary": "Get Lighthouse AI Tenant config",
"parameters": [
{
"in": "query",
"name": "fields[lighthouse-configurations]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"business_context",
"default_provider",
"default_models",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"-id",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at",
"business_context",
"-business_context",
"default_provider",
"-default_provider",
"default_models",
"-default_models",
"url",
"-url"
]
}
},
"explode": false
}
],
"tags": [
"Lighthouse AI"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedLighthouseTenantConfigList"
}
}
},
"description": ""
}
}
},
"patch": {
"operationId": "lighthouse_configuration_partial_update",
"description": "Update tenant-level settings. Validates that the default provider is configured and active and that default model IDs exist for the chosen providers. Auto-creates configuration if it doesn't exist.",
"summary": "Update Lighthouse AI Tenant config",
"tags": [
"Lighthouse AI"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PatchedLighthouseTenantConfigUpdateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/PatchedLighthouseTenantConfigUpdateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/PatchedLighthouseTenantConfigUpdateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/LighthouseTenantConfigUpdateResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/lighthouse/models": {
"get": {
"operationId": "lighthouse_models_list",
"description": "List available LLM models per configured provider for the current tenant.",
"summary": "List all LLM models",
"parameters": [
{
"in": "query",
"name": "fields[lighthouse-models]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"provider_configuration",
"model_id",
"model_name",
"default_parameters",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[model_id]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[model_id__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[model_id__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_type]",
"schema": {
"type": "string",
"x-spec-enum-id": "30bc523cb9ec0e8b",
"enum": [
"bedrock",
"openai",
"openai_compatible"
]
},
"description": "LLM provider name\n\n* `openai` - OpenAI\n* `bedrock` - AWS Bedrock\n* `openai_compatible` - OpenAI Compatible"
},
{
"in": "query",
"name": "filter[provider_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "30bc523cb9ec0e8b",
"enum": [
"bedrock",
"openai",
"openai_compatible"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `openai` - OpenAI\n* `bedrock` - AWS Bedrock\n* `openai_compatible` - OpenAI Compatible",
"explode": false,
"style": "form"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"-id",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at",
"provider_configuration",
"-provider_configuration",
"model_id",
"-model_id",
"model_name",
"-model_name",
"default_parameters",
"-default_parameters",
"url",
"-url"
]
}
},
"explode": false
}
],
"tags": [
"Lighthouse AI"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedLighthouseProviderModelsList"
}
}
},
"description": ""
}
}
}
},
"/api/v1/lighthouse/models/{id}": {
"get": {
"operationId": "lighthouse_models_retrieve",
"description": "Get details for a specific LLM model.",
"summary": "Retrieve LLM model details",
"parameters": [
{
"in": "query",
"name": "fields[lighthouse-models]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"provider_configuration",
"model_id",
"model_name",
"default_parameters",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this lighthouse provider models.",
"required": true
}
],
"tags": [
"Lighthouse AI"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/LighthouseProviderModelsResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/lighthouse/providers": {
"get": {
"operationId": "lighthouse_providers_list",
"description": "Retrieve all LLM provider configurations for the current tenant",
"summary": "List all LLM provider configurations",
"parameters": [
{
"in": "query",
"name": "fields[lighthouse-providers]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"provider_type",
"base_url",
"is_active",
"credentials",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[is_active]",
"schema": {
"type": "boolean"
}
},
{
"in": "query",
"name": "filter[provider_type]",
"schema": {
"type": "string",
"x-spec-enum-id": "30bc523cb9ec0e8b",
"enum": [
"bedrock",
"openai",
"openai_compatible"
]
},
"description": "LLM provider name\n\n* `openai` - OpenAI\n* `bedrock` - AWS Bedrock\n* `openai_compatible` - OpenAI Compatible"
},
{
"in": "query",
"name": "filter[provider_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "30bc523cb9ec0e8b",
"enum": [
"bedrock",
"openai",
"openai_compatible"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `openai` - OpenAI\n* `bedrock` - AWS Bedrock\n* `openai_compatible` - OpenAI Compatible",
"explode": false,
"style": "form"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"-id",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at",
"provider_type",
"-provider_type",
"base_url",
"-base_url",
"is_active",
"-is_active",
"credentials",
"-credentials",
"url",
"-url"
]
}
},
"explode": false
}
],
"tags": [
"Lighthouse AI"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedLighthouseProviderConfigList"
}
}
},
"description": ""
}
}
},
"post": {
"operationId": "lighthouse_providers_create",
"description": "Create a per-tenant configuration for an LLM provider. Only one configuration per provider type is allowed per tenant.",
"summary": "Create LLM provider configuration",
"tags": [
"Lighthouse AI"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/LighthouseProviderConfigCreateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/LighthouseProviderConfigCreateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/LighthouseProviderConfigCreateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"201": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/LighthouseProviderConfigCreateResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/lighthouse/providers/{id}": {
"get": {
"operationId": "lighthouse_providers_retrieve",
"description": "Get details for a specific provider configuration in the current tenant.",
"summary": "Retrieve LLM provider configuration",
"parameters": [
{
"in": "query",
"name": "fields[lighthouse-providers]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"provider_type",
"base_url",
"is_active",
"credentials",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this lighthouse provider configuration.",
"required": true
}
],
"tags": [
"Lighthouse AI"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/LighthouseProviderConfigResponse"
}
}
},
"description": ""
}
}
},
"patch": {
"operationId": "lighthouse_providers_partial_update",
"description": "Partially update a provider configuration (e.g., base_url, is_active).",
"summary": "Update LLM provider configuration",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this lighthouse provider configuration.",
"required": true
}
],
"tags": [
"Lighthouse AI"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PatchedLighthouseProviderConfigUpdateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/PatchedLighthouseProviderConfigUpdateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/PatchedLighthouseProviderConfigUpdateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/LighthouseProviderConfigUpdateResponse"
}
}
},
"description": ""
}
}
},
"delete": {
"operationId": "lighthouse_providers_destroy",
"description": "Delete a provider configuration. Any tenant defaults that reference this provider are cleared during deletion.",
"summary": "Delete LLM provider configuration",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this lighthouse provider configuration.",
"required": true
}
],
"tags": [
"Lighthouse AI"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "No response body"
}
}
}
},
"/api/v1/lighthouse/providers/{id}/connection": {
"post": {
"operationId": "lighthouse_providers_connection_create",
"description": "Validate provider credentials asynchronously and toggle is_active.",
"summary": "Check LLM provider connection",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this lighthouse provider configuration.",
"required": true
}
],
"tags": [
"Lighthouse AI"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"202": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TaskResponse"
},
"examples": {
"Task queued": {
"summary": "Task queued",
"value": {
"data": {
"type": "tasks",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"attributes": {
"inserted_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"name": "string",
"state": "available",
"result": null,
"task_args": null,
"metadata": null
}
}
}
}
}
}
},
"description": ""
}
}
}
},
"/api/v1/lighthouse/providers/{id}/refresh-models": {
"post": {
"operationId": "lighthouse_providers_refresh_models_create",
"description": "Fetch available models for this provider configuration and upsert into catalog. Supports OpenAI, OpenAI-compatible, and AWS Bedrock providers.",
"summary": "Refresh LLM models catalog",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this lighthouse provider configuration.",
"required": true
}
],
"tags": [
"Lighthouse AI"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"202": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TaskResponse"
},
"examples": {
"Task queued": {
"summary": "Task queued",
"value": {
"data": {
"type": "tasks",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"attributes": {
"inserted_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"name": "string",
"state": "available",
"result": null,
"task_args": null,
"metadata": null
}
}
}
}
}
}
},
"description": ""
}
}
}
},
"/api/v1/mute-rules": {
"get": {
"operationId": "mute_rules_list",
"description": "Retrieve a list of all mute rules with filtering options.",
"summary": "List all mute rules",
"parameters": [
{
"in": "query",
"name": "fields[mute-rules]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"name",
"reason",
"enabled",
"created_by",
"finding_uids"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[created_by]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[enabled]",
"schema": {
"type": "boolean"
}
},
{
"in": "query",
"name": "filter[id]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[id__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[inserted_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[name]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[name__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[reason__icontains]",
"schema": {
"type": "string"
}
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[updated_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[updated_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[updated_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"created_by"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"-name",
"enabled",
"-enabled",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at"
]
}
},
"explode": false
}
],
"tags": [
"Mute Rules"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedMuteRuleList"
}
}
},
"description": ""
}
}
},
"post": {
"operationId": "mute_rules_create",
"description": "Create a new mute rule by providing finding IDs, name, and reason. The rule will immediately mute the selected findings and launch a background task to mute all historical findings with matching UIDs.",
"summary": "Create a new mute rule",
"tags": [
"Mute Rules"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/MuteRuleCreateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/MuteRuleCreateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/MuteRuleCreateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"201": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/MuteRuleCreateResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/mute-rules/{id}": {
"get": {
"operationId": "mute_rules_retrieve",
"description": "Fetch detailed information about a specific mute rule by ID.",
"summary": "Retrieve a mute rule",
"parameters": [
{
"in": "query",
"name": "fields[mute-rules]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"name",
"reason",
"enabled",
"created_by",
"finding_uids"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this mute rule.",
"required": true
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"created_by"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
}
],
"tags": [
"Mute Rules"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/MuteRuleResponse"
}
}
},
"description": ""
}
}
},
"patch": {
"operationId": "mute_rules_partial_update",
"description": "Update certain fields of an existing mute rule (e.g., name, reason, enabled).",
"summary": "Partially update a mute rule",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this mute rule.",
"required": true
}
],
"tags": [
"Mute Rules"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PatchedMuteRuleUpdateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/PatchedMuteRuleUpdateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/PatchedMuteRuleUpdateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/SerializerMetaclassResponse"
}
}
},
"description": ""
}
}
},
"delete": {
"operationId": "mute_rules_destroy",
"description": "Remove a mute rule from the system. Note: Previously muted findings remain muted.",
"summary": "Delete a mute rule",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this mute rule.",
"required": true
}
],
"tags": [
"Mute Rules"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "No response body"
}
}
}
},
"/api/v1/overviews/findings": {
"get": {
"operationId": "overviews_findings_retrieve",
"description": "Fetch aggregated findings data across all providers, grouped by various metrics such as passed, failed, muted, and total findings. This endpoint calculates summary statistics based on the latest scans for each provider and applies any provided filters, such as region, provider type, and scan date.",
"summary": "Get aggregated findings data",
"parameters": [
{
"in": "query",
"name": "fields[findings-overview]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"new",
"changed",
"unchanged",
"fail_new",
"fail_changed",
"pass_new",
"pass_changed",
"muted_new",
"muted_changed",
"total",
"fail",
"muted",
"pass"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__date]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[inserted_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[provider_id]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[provider_id__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_type]",
"schema": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
},
"description": "* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure"
},
{
"in": "query",
"name": "filter[provider_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[region]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"-id",
"new",
"-new",
"changed",
"-changed",
"unchanged",
"-unchanged",
"fail_new",
"-fail_new",
"fail_changed",
"-fail_changed",
"pass_new",
"-pass_new",
"pass_changed",
"-pass_changed",
"muted_new",
"-muted_new",
"muted_changed",
"-muted_changed",
"total",
"-total",
"fail",
"-fail",
"muted",
"-muted",
"pass",
"-pass"
]
}
},
"explode": false
}
],
"tags": [
"Overview"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/OverviewFindingResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/overviews/findings_severity": {
"get": {
"operationId": "overviews_findings_severity_retrieve",
"description": "Retrieve an aggregated summary of findings grouped by severity levels, such as low, medium, high, and critical. The response includes the total count of findings for each severity, considering only the latest scans for each provider. Additional filters can be applied to narrow down results by region, provider type, or other attributes.",
"summary": "Get findings data by severity",
"parameters": [
{
"in": "query",
"name": "fields[findings-severity-overview]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"critical",
"high",
"medium",
"low",
"informational"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__date]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[inserted_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[provider_id]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[provider_id__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_type]",
"schema": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
},
"description": "* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure"
},
{
"in": "query",
"name": "filter[provider_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[region]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[status]",
"schema": {
"type": "string",
"enum": [
"FAIL",
"PASS"
]
},
"description": "* `FAIL` - Fail\n* `PASS` - Pass"
},
{
"in": "query",
"name": "filter[status__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"-id",
"critical",
"-critical",
"high",
"-high",
"medium",
"-medium",
"low",
"-low",
"informational",
"-informational"
]
}
},
"explode": false
}
],
"tags": [
"Overview"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/OverviewSeverityResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/overviews/providers": {
"get": {
"operationId": "overviews_providers_retrieve",
"description": "Retrieve an aggregated overview of findings and resources grouped by providers. The response includes the count of passed, failed, and manual findings, along with the total number of resources managed by each provider. Only the latest findings for each provider are considered in the aggregation to ensure accurate and up-to-date insights.",
"summary": "Get aggregated provider data",
"parameters": [
{
"in": "query",
"name": "fields[providers-overview]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"findings",
"resources"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
}
],
"tags": [
"Overview"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/OverviewProviderResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/overviews/providers/count": {
"get": {
"operationId": "overviews_providers_count_retrieve",
"description": "Retrieve the number of providers grouped by provider type. This endpoint counts every provider in the tenant, including those without completed scans.",
"summary": "Get provider counts grouped by type",
"parameters": [
{
"in": "query",
"name": "fields[providers-count-overview]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"count"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
}
],
"tags": [
"Overview"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/OverviewProviderCountResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/overviews/services": {
"get": {
"operationId": "overviews_services_retrieve",
"description": "Retrieve an aggregated summary of findings grouped by service. The response includes the total count of findings for each service, as long as there are at least one finding for that service. At least one of the `inserted_at` filters must be provided.",
"summary": "Get findings data by service",
"parameters": [
{
"in": "query",
"name": "fields[services-overview]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"total",
"fail",
"muted",
"pass"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__date]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[inserted_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[provider_id]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[provider_id__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_type]",
"schema": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
},
"description": "* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure"
},
{
"in": "query",
"name": "filter[provider_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[region]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"-id",
"total",
"-total",
"fail",
"-fail",
"muted",
"-muted",
"pass",
"-pass"
]
}
},
"explode": false
}
],
"tags": [
"Overview"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/OverviewServiceResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/processors": {
"get": {
"operationId": "processors_list",
"description": "Retrieve a list of all configured processors with options for filtering by various criteria.",
"summary": "List all processors",
"parameters": [
{
"in": "query",
"name": "fields[processors]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"processor_type",
"configuration",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[processor_type]",
"schema": {
"type": "string",
"x-spec-enum-id": "53cda4a99fe3d655",
"enum": [
"mutelist"
]
},
"description": "* `mutelist` - Mutelist"
},
{
"in": "query",
"name": "filter[processor_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "53cda4a99fe3d655",
"enum": [
"mutelist"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `mutelist` - Mutelist",
"explode": false,
"style": "form"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"-id",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at",
"processor_type",
"-processor_type",
"configuration",
"-configuration",
"url",
"-url"
]
}
},
"explode": false
}
],
"tags": [
"Processor"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedProcessorList"
}
}
},
"description": ""
}
}
},
"post": {
"operationId": "processors_create",
"description": "Register a new processor with the system, providing necessary configuration details. There can only be one processor of each type per tenant.",
"summary": "Create a new processor",
"tags": [
"Processor"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ProcessorCreateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/ProcessorCreateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/ProcessorCreateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"201": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ProcessorCreateResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/processors/{id}": {
"get": {
"operationId": "processors_retrieve",
"description": "Fetch detailed information about a specific processor by its ID.",
"summary": "Retrieve processor details",
"parameters": [
{
"in": "query",
"name": "fields[processors]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"processor_type",
"configuration",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this processor.",
"required": true
}
],
"tags": [
"Processor"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ProcessorResponse"
}
}
},
"description": ""
}
}
},
"patch": {
"operationId": "processors_partial_update",
"description": "Modify certain fields of an existing processor without affecting other settings.",
"summary": "Partially update a processor",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this processor.",
"required": true
}
],
"tags": [
"Processor"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PatchedProcessorUpdateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/PatchedProcessorUpdateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/PatchedProcessorUpdateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ProcessorUpdateResponse"
}
}
},
"description": ""
}
}
},
"delete": {
"operationId": "processors_destroy",
"description": "Remove a processor from the system by its ID.",
"summary": "Delete a processor",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this processor.",
"required": true
}
],
"tags": [
"Processor"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "No response body"
}
}
}
},
"/api/v1/provider-groups": {
"get": {
"operationId": "provider_groups_list",
"description": "Retrieve a list of all provider groups with options for filtering by various criteria.",
"summary": "List all provider groups",
"parameters": [
{
"in": "query",
"name": "fields[provider-groups]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"inserted_at",
"updated_at",
"providers",
"roles",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[id]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[id__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[inserted_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[name]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[name__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[updated_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[updated_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[updated_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"-id",
"name",
"-name",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at",
"providers",
"-providers",
"roles",
"-roles",
"url",
"-url"
]
}
},
"explode": false
}
],
"tags": [
"Provider Group"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedProviderGroupList"
}
}
},
"description": ""
}
}
},
"post": {
"operationId": "provider_groups_create",
"description": "Add a new provider group to the system by providing the required provider group details.",
"summary": "Create a new provider group",
"tags": [
"Provider Group"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ProviderGroupCreateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/ProviderGroupCreateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/ProviderGroupCreateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"201": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ProviderGroupCreateResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/provider-groups/{id}": {
"get": {
"operationId": "provider_groups_retrieve",
"description": "Fetch detailed information about a specific provider group by their ID.",
"summary": "Retrieve data from a provider group",
"parameters": [
{
"in": "query",
"name": "fields[provider-groups]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"inserted_at",
"updated_at",
"providers",
"roles",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this provider group.",
"required": true
}
],
"tags": [
"Provider Group"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ProviderGroupResponse"
}
}
},
"description": ""
}
}
},
"patch": {
"operationId": "provider_groups_partial_update",
"description": "Update certain fields of an existing provider group's information without affecting other fields.",
"summary": "Partially update a provider group",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this provider group.",
"required": true
}
],
"tags": [
"Provider Group"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PatchedProviderGroupUpdateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/PatchedProviderGroupUpdateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/PatchedProviderGroupUpdateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/SerializerMetaclassResponse"
}
}
},
"description": ""
}
}
},
"delete": {
"operationId": "provider_groups_destroy",
"description": "Remove a provider group from the system by their ID.",
"summary": "Delete a provider group",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this provider group.",
"required": true
}
],
"tags": [
"Provider Group"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "No response body"
}
}
}
},
"/api/v1/provider-groups/{id}/relationships/providers": {
"post": {
"operationId": "provider_groups_relationships_providers_create",
"description": "Add a new provider_group-providers relationship to the system by providing the required provider_group-providers details.",
"summary": "Create a new provider_group-providers relationship",
"tags": [
"Provider Group"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ProviderGroupMembershipRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/ProviderGroupMembershipRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/ProviderGroupMembershipRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "Relationship created successfully"
},
"400": {
"description": "Bad request (e.g., relationship already exists)"
}
}
},
"patch": {
"operationId": "provider_groups_relationships_providers_partial_update",
"description": "Update the provider_group-providers relationship information without affecting other fields.",
"summary": "Partially update a provider_group-providers relationship",
"tags": [
"Provider Group"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PatchedProviderGroupMembershipRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/PatchedProviderGroupMembershipRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/PatchedProviderGroupMembershipRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "Relationship updated successfully"
}
}
},
"delete": {
"operationId": "provider_groups_relationships_providers_destroy",
"description": "Remove the provider_group-providers relationship from the system by their ID.",
"summary": "Delete a provider_group-providers relationship",
"tags": [
"Provider Group"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "Relationship deleted successfully"
}
}
}
},
"/api/v1/providers": {
"get": {
"operationId": "providers_list",
"description": "Retrieve a list of all providers with options for filtering by various criteria.",
"summary": "List all providers",
"parameters": [
{
"in": "query",
"name": "fields[providers]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"provider",
"uid",
"alias",
"connection",
"secret",
"provider_groups",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[alias]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[alias__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[alias__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[connected]",
"schema": {
"type": "boolean"
},
"description": "Filter by connection status. Set to True to return only\n connected providers, or False to return only providers with failed\n connections. If not specified, both connected and failed providers are\n included. Providers with no connection attempt (status is null) are\n excluded from this filter."
},
{
"in": "query",
"name": "filter[id]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[id__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
},
"description": "Filter by date when the provider was added\n (format: YYYY-MM-DD)"
},
{
"in": "query",
"name": "filter[inserted_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[inserted_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[provider]",
"schema": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
},
"description": "* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure"
},
{
"in": "query",
"name": "filter[provider__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_type]",
"schema": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
},
"description": "* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure"
},
{
"in": "query",
"name": "filter[provider_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure",
"explode": false,
"style": "form"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[uid__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[updated_at]",
"schema": {
"type": "string",
"format": "date"
},
"description": "Filter by date when the provider was updated\n (format: YYYY-MM-DD)"
},
{
"in": "query",
"name": "filter[updated_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[updated_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"provider_groups"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"provider",
"-provider",
"uid",
"-uid",
"alias",
"-alias",
"connected",
"-connected",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at"
]
}
},
"explode": false
}
],
"tags": [
"Provider"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedProviderList"
}
}
},
"description": ""
}
}
},
"post": {
"operationId": "providers_create",
"description": "Add a new provider to the system by providing the required provider details.",
"summary": "Create a new provider",
"tags": [
"Provider"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ProviderCreateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/ProviderCreateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/ProviderCreateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"201": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ProviderCreateResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/providers/{id}": {
"get": {
"operationId": "providers_retrieve",
"description": "Fetch detailed information about a specific provider by their ID.",
"summary": "Retrieve data from a provider",
"parameters": [
{
"in": "query",
"name": "fields[providers]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"provider",
"uid",
"alias",
"connection",
"secret",
"provider_groups",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this provider.",
"required": true
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"provider_groups"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
}
],
"tags": [
"Provider"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ProviderResponse"
}
}
},
"description": ""
}
}
},
"patch": {
"operationId": "providers_partial_update",
"description": "Update certain fields of an existing provider's information without affecting other fields.",
"summary": "Partially update a provider",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this provider.",
"required": true
}
],
"tags": [
"Provider"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PatchedProviderUpdateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/PatchedProviderUpdateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/PatchedProviderUpdateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/SerializerMetaclassResponse"
}
}
},
"description": ""
}
}
},
"delete": {
"operationId": "providers_destroy",
"description": "Remove a provider from the system by their ID.",
"summary": "Delete a provider",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this provider.",
"required": true
}
],
"tags": [
"Provider"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"202": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TaskResponse"
},
"examples": {
"Task queued": {
"summary": "Task queued",
"value": {
"data": {
"type": "tasks",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"attributes": {
"inserted_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"name": "string",
"state": "available",
"result": null,
"task_args": null,
"metadata": null
}
}
}
}
}
}
},
"description": ""
}
}
}
},
"/api/v1/providers/{id}/connection": {
"post": {
"operationId": "providers_connection_create",
"description": "Try to verify connection. For instance, Role & Credentials are set correctly",
"summary": "Check connection",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this provider.",
"required": true
}
],
"tags": [
"Provider"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"202": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TaskResponse"
},
"examples": {
"Task queued": {
"summary": "Task queued",
"value": {
"data": {
"type": "tasks",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"attributes": {
"inserted_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"name": "string",
"state": "available",
"result": null,
"task_args": null,
"metadata": null
}
}
}
}
}
}
},
"description": ""
}
}
}
},
"/api/v1/providers/secrets": {
"get": {
"operationId": "providers_secrets_list",
"description": "Retrieve a list of all secrets with options for filtering by various criteria.",
"summary": "List all secrets",
"parameters": [
{
"in": "query",
"name": "fields[provider-secrets]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"name",
"secret_type",
"provider",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
},
"description": "Filter by date when the secret was added (format: YYYY-MM-DD)"
},
{
"in": "query",
"name": "filter[name]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[name__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[updated_at]",
"schema": {
"type": "string",
"format": "date"
},
"description": "Filter by date when the secret was updated (format: YYYY-MM-DD)"
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"-name",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at"
]
}
},
"explode": false
}
],
"tags": [
"Provider"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedProviderSecretList"
}
}
},
"description": ""
}
}
},
"post": {
"operationId": "providers_secrets_create",
"description": "Add a new secret to the system by providing the required secret details.",
"summary": "Create a new secret",
"tags": [
"Provider"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ProviderSecretCreateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/ProviderSecretCreateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/ProviderSecretCreateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"201": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ProviderSecretCreateResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/providers/secrets/{id}": {
"get": {
"operationId": "providers_secrets_retrieve",
"description": "Fetch detailed information about a specific secret by their ID.",
"summary": "Retrieve data from a secret",
"parameters": [
{
"in": "query",
"name": "fields[provider-secrets]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"name",
"secret_type",
"provider",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"required": true
}
],
"tags": [
"Provider"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ProviderSecretResponse"
}
}
},
"description": ""
}
}
},
"patch": {
"operationId": "providers_secrets_partial_update",
"description": "Update certain fields of an existing secret's information without affecting other fields.",
"summary": "Partially update a secret",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"required": true
}
],
"tags": [
"Provider"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PatchedProviderSecretUpdateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/PatchedProviderSecretUpdateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/PatchedProviderSecretUpdateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ProviderSecretUpdateResponse"
}
}
},
"description": ""
}
}
},
"delete": {
"operationId": "providers_secrets_destroy",
"description": "Remove a secret from the system by their ID.",
"summary": "Delete a secret",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"required": true
}
],
"tags": [
"Provider"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "No response body"
}
}
}
},
"/api/v1/resources": {
"get": {
"operationId": "resources_list",
"description": "Retrieve a list of all resources with options for filtering by various criteria. Resources are objects that are discovered by Prowler. They can be anything from a single host to a whole VPC.",
"summary": "List all resources",
"parameters": [
{
"in": "query",
"name": "fields[resources]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"uid",
"name",
"region",
"service",
"tags",
"provider",
"findings",
"failed_findings_count",
"url",
"type"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[inserted_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[name]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[name__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[provider__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_alias]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_type]",
"schema": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
},
"description": "* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure"
},
{
"in": "query",
"name": "filter[provider_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[region]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[scan]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[scan__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[tag]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[tag_key]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[tag_value]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[tags]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[type]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[type__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[type__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[uid__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[updated_at]",
"schema": {
"type": "string",
"format": "date"
},
"description": "At least one of the variations of the `filter[updated_at]` filter must be provided.",
"required": true
},
{
"in": "query",
"name": "filter[updated_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[updated_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"findings",
"provider"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"provider_uid",
"-provider_uid",
"uid",
"-uid",
"name",
"-name",
"region",
"-region",
"service",
"-service",
"type",
"-type",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at"
]
}
},
"explode": false
}
],
"tags": [
"Resource"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedResourceList"
}
}
},
"description": ""
}
}
}
},
"/api/v1/resources/{id}": {
"get": {
"operationId": "resources_retrieve",
"description": "Fetch detailed information about a specific resource by their ID. A Resource is an object that is discovered by Prowler. It can be anything from a single host to a whole VPC.",
"summary": "Retrieve data for a resource",
"parameters": [
{
"in": "query",
"name": "fields[resources]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"uid",
"name",
"region",
"service",
"tags",
"provider",
"findings",
"failed_findings_count",
"url",
"type"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this resource.",
"required": true
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"findings",
"provider"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
}
],
"tags": [
"Resource"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ResourceResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/resources/latest": {
"get": {
"operationId": "resources_latest_retrieve",
"description": "Retrieve a list of the latest resources from the latest scans for each provider with options for filtering by various criteria.",
"summary": "List the latest resources",
"parameters": [
{
"in": "query",
"name": "fields[resources]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"uid",
"name",
"region",
"service",
"tags",
"provider",
"findings",
"failed_findings_count",
"url",
"type"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[name]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[name__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[provider__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_alias]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_type]",
"schema": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
},
"description": "* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure"
},
{
"in": "query",
"name": "filter[provider_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[region]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[tag]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[tag_key]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[tag_value]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[tags]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[type]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[type__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[type__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[uid__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"findings",
"provider"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"provider_uid",
"-provider_uid",
"uid",
"-uid",
"name",
"-name",
"region",
"-region",
"service",
"-service",
"type",
"-type",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at"
]
}
},
"explode": false
}
],
"tags": [
"Resource"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ResourceResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/resources/metadata": {
"get": {
"operationId": "resources_metadata_retrieve",
"description": "Fetch unique metadata values from a set of resources. This is useful for dynamic filtering.",
"summary": "Retrieve metadata values from resources",
"parameters": [
{
"in": "query",
"name": "fields[resources-metadata]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"services",
"regions",
"types"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[inserted_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[name]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[name__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[provider__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_alias]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_type]",
"schema": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
},
"description": "* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure"
},
{
"in": "query",
"name": "filter[provider_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[region]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[scan]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[scan__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[tag]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[tag_key]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[tag_value]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[tags]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[type]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[type__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[type__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[uid__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[updated_at]",
"schema": {
"type": "string",
"format": "date"
},
"description": "At least one of the variations of the `filter[updated_at]` filter must be provided.",
"required": true
},
{
"in": "query",
"name": "filter[updated_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[updated_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"provider_uid",
"-provider_uid",
"uid",
"-uid",
"name",
"-name",
"region",
"-region",
"service",
"-service",
"type",
"-type",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at"
]
}
},
"explode": false
}
],
"tags": [
"Resource"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ResourceMetadataResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/resources/metadata/latest": {
"get": {
"operationId": "resources_metadata_latest_retrieve",
"description": "Fetch unique metadata values from a set of resources from the latest scans for each provider. This is useful for dynamic filtering.",
"summary": "Retrieve metadata values from the latest resources",
"parameters": [
{
"in": "query",
"name": "fields[resources-metadata]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"services",
"regions",
"types"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[name]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[name__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[provider__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_alias]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_type]",
"schema": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
},
"description": "* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure"
},
{
"in": "query",
"name": "filter[provider_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[region]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[region__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[service__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[tag]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[tag_key]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[tag_value]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[tags]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[type]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[type__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[type__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[uid__icontains]",
"schema": {
"type": "string"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"provider_uid",
"-provider_uid",
"uid",
"-uid",
"name",
"-name",
"region",
"-region",
"service",
"-service",
"type",
"-type",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at"
]
}
},
"explode": false
}
],
"tags": [
"Resource"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ResourceMetadataResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/roles": {
"get": {
"operationId": "roles_list",
"description": "Retrieve a list of all roles with options for filtering by various criteria.",
"summary": "List all roles",
"parameters": [
{
"in": "query",
"name": "fields[roles]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"manage_users",
"manage_account",
"manage_integrations",
"manage_providers",
"manage_scans",
"permission_state",
"unlimited_visibility",
"inserted_at",
"updated_at",
"provider_groups",
"users",
"invitations",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[id]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[id__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[inserted_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[name]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[name__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[permission_state]",
"schema": {
"type": "string",
"enum": [
"limited",
"none",
"unlimited"
]
},
"description": "* `unlimited` - Unlimited permissions\n* `limited` - Limited permissions\n* `none` - No permissions"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[updated_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[updated_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[updated_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"-id",
"name",
"-name",
"manage_users",
"-manage_users",
"manage_account",
"-manage_account",
"manage_integrations",
"-manage_integrations",
"manage_providers",
"-manage_providers",
"manage_scans",
"-manage_scans",
"permission_state",
"-permission_state",
"unlimited_visibility",
"-unlimited_visibility",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at",
"provider_groups",
"-provider_groups",
"users",
"-users",
"invitations",
"-invitations",
"url",
"-url"
]
}
},
"explode": false
}
],
"tags": [
"Role"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedRoleList"
}
}
},
"description": ""
}
}
},
"post": {
"operationId": "roles_create",
"description": "Add a new role to the system by providing the required role details.",
"summary": "Create a new role",
"tags": [
"Role"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/RoleCreateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/RoleCreateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/RoleCreateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"201": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/RoleCreateResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/roles/{id}": {
"get": {
"operationId": "roles_retrieve",
"description": "Fetch detailed information about a specific role by their ID.",
"summary": "Retrieve data from a role",
"parameters": [
{
"in": "query",
"name": "fields[roles]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"manage_users",
"manage_account",
"manage_integrations",
"manage_providers",
"manage_scans",
"permission_state",
"unlimited_visibility",
"inserted_at",
"updated_at",
"provider_groups",
"users",
"invitations",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this role.",
"required": true
}
],
"tags": [
"Role"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/RoleResponse"
}
}
},
"description": ""
}
}
},
"patch": {
"operationId": "roles_partial_update",
"description": "Update selected fields on an existing role. When changing the `users` relationship of a role that grants MANAGE_ACCOUNT, the API blocks attempts that would leave the tenant without any MANAGE_ACCOUNT assignees and prevents callers from removing their own assignment to that role.",
"summary": "Partially update a role",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this role.",
"required": true
}
],
"tags": [
"Role"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PatchedRoleUpdateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/PatchedRoleUpdateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/PatchedRoleUpdateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/SerializerMetaclassResponse"
}
}
},
"description": ""
}
}
},
"delete": {
"operationId": "roles_destroy",
"description": "Delete the specified role. The API rejects deletion of the last role in the tenant that grants MANAGE_ACCOUNT.",
"summary": "Delete a role",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this role.",
"required": true
}
],
"tags": [
"Role"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "No response body"
}
}
}
},
"/api/v1/roles/{id}/relationships/provider_groups": {
"post": {
"operationId": "roles_relationships_provider_groups_create",
"description": "Add a new role-provider_groups relationship to the system by providing the required role-provider_groups details.",
"summary": "Create a new role-provider_groups relationship",
"tags": [
"Role"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/RoleProviderGroupRelationshipRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/RoleProviderGroupRelationshipRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/RoleProviderGroupRelationshipRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "Relationship created successfully"
},
"400": {
"description": "Bad request (e.g., relationship already exists)"
}
}
},
"patch": {
"operationId": "roles_relationships_provider_groups_partial_update",
"description": "Update the role-provider_groups relationship information without affecting other fields.",
"summary": "Partially update a role-provider_groups relationship",
"tags": [
"Role"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PatchedRoleProviderGroupRelationshipRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/PatchedRoleProviderGroupRelationshipRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/PatchedRoleProviderGroupRelationshipRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "Relationship updated successfully"
}
}
},
"delete": {
"operationId": "roles_relationships_provider_groups_destroy",
"description": "Remove the role-provider_groups relationship from the system by their ID.",
"summary": "Delete a role-provider_groups relationship",
"tags": [
"Role"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "Relationship deleted successfully"
}
}
}
},
"/api/v1/saml-config": {
"get": {
"operationId": "saml_config_list",
"description": "Returns all the SAML-based SSO configurations associated with the current tenant.",
"summary": "List all SSO configurations",
"parameters": [
{
"in": "query",
"name": "fields[saml-configurations]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"email_domain",
"metadata_xml",
"created_at",
"updated_at"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"-id",
"email_domain",
"-email_domain",
"metadata_xml",
"-metadata_xml",
"created_at",
"-created_at",
"updated_at",
"-updated_at"
]
}
},
"explode": false
}
],
"tags": [
"SAML"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedSAMLConfigurationList"
}
}
},
"description": ""
}
}
},
"post": {
"operationId": "saml_config_create",
"description": "Creates a new SAML SSO configuration for the current tenant, including email domain and metadata XML.",
"summary": "Create the SSO configuration",
"tags": [
"SAML"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/SAMLConfigurationRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/SAMLConfigurationRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/SAMLConfigurationRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"201": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/SAMLConfigurationResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/saml-config/{id}": {
"get": {
"operationId": "saml_config_retrieve",
"description": "Returns the details of a specific SAML configuration belonging to the current tenant.",
"summary": "Retrieve SSO configuration details",
"parameters": [
{
"in": "query",
"name": "fields[saml-configurations]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"email_domain",
"metadata_xml",
"created_at",
"updated_at"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this saml configuration.",
"required": true
}
],
"tags": [
"SAML"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/SAMLConfigurationResponse"
}
}
},
"description": ""
}
}
},
"patch": {
"operationId": "saml_config_partial_update",
"description": "Partially updates an existing SAML SSO configuration. Supports changes to email domain and metadata XML.",
"summary": "Update the SSO configuration",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this saml configuration.",
"required": true
}
],
"tags": [
"SAML"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PatchedSAMLConfigurationRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/PatchedSAMLConfigurationRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/PatchedSAMLConfigurationRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/SAMLConfigurationResponse"
}
}
},
"description": ""
}
}
},
"delete": {
"operationId": "saml_config_destroy",
"description": "Deletes an existing SAML SSO configuration associated with the current tenant.",
"summary": "Delete the SSO configuration",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this saml configuration.",
"required": true
}
],
"tags": [
"SAML"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "No response body"
}
}
}
},
"/api/v1/scans": {
"get": {
"operationId": "scans_list",
"description": "Retrieve a list of all scans with options for filtering by various criteria.",
"summary": "List all scans",
"parameters": [
{
"in": "query",
"name": "fields[scans]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"trigger",
"state",
"unique_resource_count",
"progress",
"duration",
"provider",
"task",
"inserted_at",
"started_at",
"completed_at",
"scheduled_at",
"next_scan_at",
"processor",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[completed_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[name]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[name__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[next_scan_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[next_scan_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[next_scan_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[provider]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"in": "query",
"name": "filter[provider__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_alias]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_alias__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_type]",
"schema": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
},
"description": "* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure"
},
{
"in": "query",
"name": "filter[provider_type__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"enum": [
"aws",
"azure",
"gcp",
"github",
"iac",
"kubernetes",
"m365",
"oraclecloud"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[provider_uid]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[provider_uid__in]",
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Multiple values may be separated by commas.",
"explode": false,
"style": "form"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[started_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[started_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[started_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[state]",
"schema": {
"type": "string",
"x-spec-enum-id": "d38ba07264e1ed34",
"enum": [
"available",
"cancelled",
"completed",
"executing",
"failed",
"scheduled"
]
},
"description": "* `available` - Available\n* `scheduled` - Scheduled\n* `executing` - Executing\n* `completed` - Completed\n* `failed` - Failed\n* `cancelled` - Cancelled"
},
{
"in": "query",
"name": "filter[state__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"x-spec-enum-id": "d38ba07264e1ed34",
"enum": [
"available",
"cancelled",
"completed",
"executing",
"failed",
"scheduled"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `available` - Available\n* `scheduled` - Scheduled\n* `executing` - Executing\n* `completed` - Completed\n* `failed` - Failed\n* `cancelled` - Cancelled",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[trigger]",
"schema": {
"type": "string",
"x-spec-enum-id": "2e52c981d1c89bdf",
"enum": [
"manual",
"scheduled"
]
},
"description": "* `scheduled` - Scheduled\n* `manual` - Manual"
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"provider"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"-name",
"trigger",
"-trigger",
"attempted_at",
"-attempted_at",
"scheduled_at",
"-scheduled_at",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at"
]
}
},
"explode": false
}
],
"tags": [
"Scan"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedScanList"
}
}
},
"description": ""
}
}
},
"post": {
"operationId": "scans_create",
"description": "Trigger a manual scan by providing the required scan details. If `scanner_args` are not provided, the system will automatically use the default settings from the associated provider. If you do provide `scanner_args`, these settings will be merged with the provider's defaults. This means that your provided settings will override the defaults only where they conflict, while the rest of the default settings will remain intact.",
"summary": "Trigger a manual scan",
"tags": [
"Scan"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ScanCreateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/ScanCreateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/ScanCreateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"202": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TaskResponse"
},
"examples": {
"Task queued": {
"summary": "Task queued",
"value": {
"data": {
"type": "tasks",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"attributes": {
"inserted_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"name": "string",
"state": "available",
"result": null,
"task_args": null,
"metadata": null
}
}
}
}
}
}
},
"description": ""
}
}
}
},
"/api/v1/scans/{id}": {
"get": {
"operationId": "scans_retrieve",
"description": "Fetch detailed information about a specific scan by its ID.",
"summary": "Retrieve data from a specific scan",
"parameters": [
{
"in": "query",
"name": "fields[scans]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"trigger",
"state",
"unique_resource_count",
"progress",
"duration",
"provider",
"task",
"inserted_at",
"started_at",
"completed_at",
"scheduled_at",
"next_scan_at",
"processor",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this scan.",
"required": true
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"provider"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
}
],
"tags": [
"Scan"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ScanResponse"
}
}
},
"description": ""
}
}
},
"patch": {
"operationId": "scans_partial_update",
"description": "Update certain fields of an existing scan without affecting other fields.",
"summary": "Partially update a scan",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this scan.",
"required": true
}
],
"tags": [
"Scan"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PatchedScanUpdateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/PatchedScanUpdateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/PatchedScanUpdateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ScanUpdateResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/scans/{id}/compliance/{name}": {
"get": {
"operationId": "scans_compliance_retrieve",
"description": "Download a specific compliance report (e.g., 'cis_1.4_aws') as a CSV file.",
"summary": "Retrieve compliance report as CSV",
"parameters": [
{
"in": "query",
"name": "fields[scan-reports]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"name"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this scan.",
"required": true
},
{
"in": "path",
"name": "name",
"schema": {
"type": "string"
},
"description": "The compliance report name, like 'cis_1.4_aws'",
"required": true
}
],
"tags": [
"Scan"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"description": "CSV file containing the compliance report"
},
"404": {
"description": "Compliance report not found"
}
}
}
},
"/api/v1/scans/{id}/report": {
"get": {
"operationId": "scans_report_retrieve",
"description": "Returns a ZIP file containing the requested report",
"summary": "Download ZIP report",
"parameters": [
{
"in": "query",
"name": "fields[scan-reports]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this scan.",
"required": true
}
],
"tags": [
"Scan"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"description": "Report obtained successfully"
},
"202": {
"description": "The task is in progress"
},
"403": {
"description": "There is a problem with credentials"
},
"404": {
"description": "The scan has no reports, or the report generation task has not started yet"
}
}
}
},
"/api/v1/scans/{id}/threatscore": {
"get": {
"operationId": "scans_threatscore_retrieve",
"description": "Download a specific threatscore report (e.g., 'prowler_threatscore_aws') as a PDF file.",
"summary": "Retrieve threatscore report",
"parameters": [
{
"in": "query",
"name": "fields[scans]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"trigger",
"state",
"unique_resource_count",
"progress",
"duration",
"provider",
"task",
"inserted_at",
"started_at",
"completed_at",
"scheduled_at",
"next_scan_at",
"processor",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this scan.",
"required": true
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"provider"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
}
],
"tags": [
"Scan"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"description": "PDF file containing the threatscore report"
},
"202": {
"description": "The task is in progress"
},
"401": {
"description": "API key missing or user not Authenticated"
},
"403": {
"description": "There is a problem with credentials"
},
"404": {
"description": "The scan has no threatscore reports, or the threatscore report generation task has not started yet"
}
}
}
},
"/api/v1/schedules/daily": {
"post": {
"operationId": "schedules_daily_create",
"description": "Schedules a daily scan for the specified provider. This endpoint creates a periodic task that will execute a scan every 24 hours.",
"summary": "Create a daily schedule scan for a given provider",
"tags": [
"Schedule"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/ScheduleDailyCreateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/ScheduleDailyCreateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/ScheduleDailyCreateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"202": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TaskResponse"
},
"examples": {
"Task queued": {
"summary": "Task queued",
"value": {
"data": {
"type": "tasks",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"attributes": {
"inserted_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"name": "string",
"state": "available",
"result": null,
"task_args": null,
"metadata": null
}
}
}
}
}
}
},
"description": ""
}
}
}
},
"/api/v1/tasks": {
"get": {
"operationId": "tasks_list",
"description": "Retrieve a list of all tasks with options for filtering by name, state, and other criteria.",
"summary": "List all tasks",
"parameters": [
{
"in": "query",
"name": "fields[tasks]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"completed_at",
"name",
"state",
"result",
"task_args",
"metadata"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[name]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[name__icontains]",
"schema": {
"type": "string"
}
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[state]",
"schema": {
"type": "string",
"title": "Task State",
"enum": [
"available",
"cancelled",
"completed",
"executing",
"failed",
"scheduled"
]
},
"description": "Current state of the task being run\n\n* `available` - Available\n* `scheduled` - Scheduled\n* `executing` - Executing\n* `completed` - Completed\n* `failed` - Failed\n* `cancelled` - Cancelled"
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"-inserted_at",
"completed_at",
"-completed_at",
"name",
"-name",
"state",
"-state"
]
}
},
"explode": false
}
],
"tags": [
"Task"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedTaskList"
}
}
},
"description": ""
}
}
}
},
"/api/v1/tasks/{id}": {
"get": {
"operationId": "tasks_retrieve",
"description": "Fetch detailed information about a specific task by its ID.",
"summary": "Retrieve data from a specific task",
"parameters": [
{
"in": "query",
"name": "fields[tasks]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"completed_at",
"name",
"state",
"result",
"task_args",
"metadata"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this task.",
"required": true
}
],
"tags": [
"Task"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TaskResponse"
}
}
},
"description": ""
}
}
},
"delete": {
"operationId": "tasks_destroy",
"description": "Try to revoke a task using its ID. Only tasks that are not yet in progress can be revoked.",
"summary": "Revoke a task",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this task.",
"required": true
}
],
"tags": [
"Task"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"202": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TaskResponse"
},
"examples": {
"Task queued": {
"summary": "Task queued",
"value": {
"data": {
"type": "tasks",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"attributes": {
"inserted_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"name": "string",
"state": "available",
"result": null,
"task_args": null,
"metadata": null
}
}
}
}
}
}
},
"description": ""
}
}
}
},
"/api/v1/tenants": {
"get": {
"operationId": "tenants_list",
"description": "Retrieve a list of all tenants with options for filtering by various criteria.",
"summary": "List all tenants",
"parameters": [
{
"in": "query",
"name": "fields[tenants]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"memberships"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__date]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[inserted_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[name]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[name__icontains]",
"schema": {
"type": "string"
}
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[updated_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[updated_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[updated_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"-name",
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at"
]
}
},
"explode": false
}
],
"tags": [
"Tenant"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedTenantList"
}
}
},
"description": ""
}
}
},
"post": {
"operationId": "tenants_create",
"description": "Add a new tenant to the system by providing the required tenant details.",
"summary": "Create a new tenant",
"tags": [
"Tenant"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TenantRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/TenantRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/TenantRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"201": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TenantResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/tenants/{id}": {
"get": {
"operationId": "tenants_retrieve",
"description": "Fetch detailed information about a specific tenant by their ID.",
"summary": "Retrieve data from a tenant",
"parameters": [
{
"in": "query",
"name": "fields[tenants]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"memberships"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this tenant.",
"required": true
}
],
"tags": [
"Tenant"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TenantResponse"
}
}
},
"description": ""
}
}
},
"patch": {
"operationId": "tenants_partial_update",
"description": "Update certain fields of an existing tenant's information without affecting other fields.",
"summary": "Partially update a tenant",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this tenant.",
"required": true
}
],
"tags": [
"Tenant"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PatchedTenantRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/PatchedTenantRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/PatchedTenantRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TenantResponse"
}
}
},
"description": ""
}
}
},
"delete": {
"operationId": "tenants_destroy",
"description": "Remove a tenant from the system by their ID.",
"summary": "Delete a tenant",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this tenant.",
"required": true
}
],
"tags": [
"Tenant"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "No response body"
}
}
}
},
"/api/v1/tenants/{tenant_pk}/memberships": {
"get": {
"operationId": "tenants_memberships_list",
"description": "List the membership details of users in a tenant you are a part of.",
"summary": "List tenant memberships",
"parameters": [
{
"in": "query",
"name": "fields[memberships]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"user",
"tenant",
"role",
"date_joined"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"-id",
"user",
"-user",
"tenant",
"-tenant",
"role",
"-role",
"date_joined",
"-date_joined"
]
}
},
"explode": false
},
{
"in": "path",
"name": "tenant_pk",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "Tenant ID",
"required": true
}
],
"tags": [
"Tenant"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedMembershipList"
}
}
},
"description": ""
}
}
}
},
"/api/v1/tenants/{tenant_pk}/memberships/{id}": {
"delete": {
"operationId": "tenants_memberships_destroy",
"description": "Delete the membership details of users in a tenant. You need to be one of the owners to delete a membership that is not yours. If you are the last owner of a tenant, you cannot delete your own membership.",
"summary": "Delete tenant memberships",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this membership.",
"required": true
},
{
"in": "path",
"name": "tenant_pk",
"schema": {
"type": "string",
"format": "uuid"
},
"required": true
}
],
"tags": [
"Tenant"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "No response body"
}
}
}
},
"/api/v1/tenants/invitations": {
"get": {
"operationId": "tenants_invitations_list",
"description": "Retrieve a list of all tenant invitations with options for filtering by various criteria.",
"summary": "List all invitations",
"parameters": [
{
"in": "query",
"name": "fields[invitations]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"email",
"state",
"token",
"roles",
"expires_at",
"inviter",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[email]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[email__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[expires_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[expires_at__date]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[expires_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[expires_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[inserted_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__date]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[inserted_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[inserted_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[inviter]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[state]",
"schema": {
"type": "string",
"x-spec-enum-id": "92a1c1fd12e13e25",
"enum": [
"accepted",
"expired",
"pending",
"revoked"
]
},
"description": "* `pending` - Invitation is pending\n* `accepted` - Invitation was accepted by a user\n* `expired` - Invitation expired after the configured time\n* `revoked` - Invitation was revoked by a user"
},
{
"in": "query",
"name": "filter[state__in]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"accepted",
"expired",
"pending",
"revoked"
]
}
},
"description": "Multiple values may be separated by commas.\n\n* `pending` - Invitation is pending\n* `accepted` - Invitation was accepted by a user\n* `expired` - Invitation expired after the configured time\n* `revoked` - Invitation was revoked by a user",
"explode": false,
"style": "form"
},
{
"in": "query",
"name": "filter[updated_at]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[updated_at__date]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[updated_at__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[updated_at__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"-inserted_at",
"updated_at",
"-updated_at",
"expires_at",
"-expires_at",
"state",
"-state",
"inviter",
"-inviter"
]
}
},
"explode": false
}
],
"tags": [
"Invitation"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedInvitationList"
}
}
},
"description": ""
}
}
},
"post": {
"operationId": "tenants_invitations_create",
"description": "Add a new tenant invitation to the system by providing the required invitation details. The invited user will have to accept the invitations or create an account using the given code.",
"summary": "Invite a user to a tenant",
"tags": [
"Invitation"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/InvitationCreateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/InvitationCreateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/InvitationCreateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"201": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/InvitationCreateResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/tenants/invitations/{id}": {
"get": {
"operationId": "tenants_invitations_retrieve",
"description": "Fetch detailed information about a specific invitation by its ID.",
"summary": "Retrieve data from a tenant invitation",
"parameters": [
{
"in": "query",
"name": "fields[invitations]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"inserted_at",
"updated_at",
"email",
"state",
"token",
"roles",
"expires_at",
"inviter",
"url"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"required": true
}
],
"tags": [
"Invitation"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/InvitationResponse"
}
}
},
"description": ""
}
}
},
"patch": {
"operationId": "tenants_invitations_partial_update",
"description": "Update certain fields of an existing tenant invitation's information without affecting other fields.",
"summary": "Partially update a tenant invitation",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"required": true
}
],
"tags": [
"Invitation"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PatchedInvitationUpdateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/PatchedInvitationUpdateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/PatchedInvitationUpdateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/InvitationUpdateResponse"
}
}
},
"description": ""
}
}
},
"delete": {
"operationId": "tenants_invitations_destroy",
"description": "Revoke a tenant invitation from the system by their ID.",
"summary": "Revoke a tenant invitation",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"required": true
}
],
"tags": [
"Invitation"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "No response body"
}
}
}
},
"/api/v1/tokens": {
"post": {
"operationId": "tokens_create",
"description": "Obtain a token by providing valid credentials and an optional tenant ID.",
"summary": "Obtain a token",
"tags": [
"Token"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TokenRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/TokenRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/TokenRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
},
{}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TokenResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/tokens/refresh": {
"post": {
"operationId": "tokens_refresh_create",
"description": "Refresh an access token by providing a valid refresh token. Former refresh tokens are invalidated when a new one is issued.",
"summary": "Refresh a token",
"tags": [
"Token"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TokenRefreshRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/TokenRefreshRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/TokenRefreshRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
},
{}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TokenRefreshResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/tokens/switch": {
"post": {
"operationId": "tokens_switch_create",
"description": "Switch tenant by providing a valid tenant ID. The authenticated user must belong to the tenant.",
"summary": "Switch tenant using a valid tenant ID",
"tags": [
"Token"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TokenSwitchTenantRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/TokenSwitchTenantRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/TokenSwitchTenantRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/TokenSwitchTenantResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/users": {
"get": {
"operationId": "users_list",
"description": "Retrieve a list of all users with options for filtering by various criteria.",
"summary": "List all users",
"parameters": [
{
"in": "query",
"name": "fields[users]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"email",
"company_name",
"date_joined",
"memberships",
"roles"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[company_name]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[company_name__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[date_joined]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[date_joined__date]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[date_joined__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[date_joined__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[email]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[email__icontains]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[is_active]",
"schema": {
"type": "boolean"
}
},
{
"in": "query",
"name": "filter[name]",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[name__icontains]",
"schema": {
"type": "string"
}
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"roles",
"memberships"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"-name",
"email",
"-email",
"company_name",
"-company_name",
"date_joined",
"-date_joined",
"is_active",
"-is_active"
]
}
},
"explode": false
}
],
"tags": [
"User"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedUserList"
}
}
},
"description": ""
}
}
},
"post": {
"operationId": "users_create",
"description": "Create a new user account by providing the necessary registration details.",
"summary": "Register a new user",
"parameters": [
{
"in": "query",
"name": "invitation_token",
"schema": {
"type": "string",
"example": "F3NMFPNDZHR4Z9"
},
"description": "Optional invitation code for joining an existing tenant."
}
],
"tags": [
"User"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/UserCreateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/UserCreateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/UserCreateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
},
{}
],
"responses": {
"201": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/UserCreateResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/users/{id}": {
"get": {
"operationId": "users_retrieve",
"description": "Fetch detailed information about an authenticated user.",
"summary": "Retrieve a user's information",
"parameters": [
{
"in": "query",
"name": "fields[users]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"email",
"company_name",
"date_joined",
"memberships",
"roles"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this user.",
"required": true
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"roles",
"memberships"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
}
],
"tags": [
"User"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/UserResponse"
}
}
},
"description": ""
}
}
},
"patch": {
"operationId": "users_partial_update",
"description": "Partially update information about a user.",
"summary": "Update user information",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this user.",
"required": true
}
],
"tags": [
"User"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PatchedUserUpdateRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/PatchedUserUpdateRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/PatchedUserUpdateRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/UserUpdateResponse"
}
}
},
"description": ""
}
}
},
"delete": {
"operationId": "users_destroy",
"description": "Remove the current user account from the system.",
"summary": "Delete the user account",
"parameters": [
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this user.",
"required": true
}
],
"tags": [
"User"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "No response body"
}
}
}
},
"/api/v1/users/{id}/relationships/roles": {
"post": {
"operationId": "users_relationships_roles_create",
"description": "Add a new user-roles relationship to the system by providing the required user-roles details.",
"summary": "Create a new user-roles relationship",
"tags": [
"User"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/UserRoleRelationshipRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/UserRoleRelationshipRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/UserRoleRelationshipRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "Relationship created successfully"
},
"400": {
"description": "Bad request (e.g., relationship already exists)"
}
}
},
"patch": {
"operationId": "users_relationships_roles_partial_update",
"description": "Update the user-roles relationship information without affecting other fields. If the update would remove MANAGE_ACCOUNT from the last remaining user in the tenant, the API rejects the request with a 400 response.",
"summary": "Partially update a user-roles relationship",
"tags": [
"User"
],
"requestBody": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PatchedUserRoleRelationshipRequest"
}
},
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/PatchedUserRoleRelationshipRequest"
}
},
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/PatchedUserRoleRelationshipRequest"
}
}
},
"required": true
},
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "Relationship updated successfully"
}
}
},
"delete": {
"operationId": "users_relationships_roles_destroy",
"description": "Remove the user-roles relationship from the system by their ID. If removing MANAGE_ACCOUNT would take it away from the last remaining user in the tenant, the API rejects the request with a 400 response. Users also cannot delete their own role assignments; attempting to do so returns a 400 response.",
"summary": "Delete a user-roles relationship",
"tags": [
"User"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"204": {
"description": "Relationship deleted successfully"
}
}
}
},
"/api/v1/users/{user_pk}/memberships": {
"get": {
"operationId": "users_memberships_list",
"description": "Retrieve a list of all user memberships with options for filtering by various criteria.",
"summary": "List user memberships",
"parameters": [
{
"in": "query",
"name": "fields[memberships]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"user",
"tenant",
"role",
"date_joined"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "filter[date_joined]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[date_joined__date]",
"schema": {
"type": "string",
"format": "date"
}
},
{
"in": "query",
"name": "filter[date_joined__gte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[date_joined__lte]",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"in": "query",
"name": "filter[role]",
"schema": {
"type": "string",
"x-spec-enum-id": "12c359ee5dc51001",
"enum": [
"member",
"owner"
]
},
"description": "* `owner` - Owner\n* `member` - Member"
},
{
"name": "filter[search]",
"required": false,
"in": "query",
"description": "A search term.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "filter[tenant]",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "page[number]",
"required": false,
"in": "query",
"description": "A page number within the paginated result set.",
"schema": {
"type": "integer"
}
},
{
"name": "page[size]",
"required": false,
"in": "query",
"description": "Number of results to return per page.",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"required": false,
"in": "query",
"description": "[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"tenant",
"-tenant",
"role",
"-role",
"date_joined",
"-date_joined"
]
}
},
"explode": false
},
{
"in": "path",
"name": "user_pk",
"schema": {
"type": "string",
"format": "uuid"
},
"required": true
}
],
"tags": [
"User"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/PaginatedMembershipList"
}
}
},
"description": ""
}
}
}
},
"/api/v1/users/{user_pk}/memberships/{id}": {
"get": {
"operationId": "users_memberships_retrieve",
"description": "Fetch detailed information about a specific user membership by their ID.",
"summary": "Retrieve membership data from the user",
"parameters": [
{
"in": "query",
"name": "fields[memberships]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"user",
"tenant",
"role",
"date_joined"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "path",
"name": "id",
"schema": {
"type": "string",
"format": "uuid"
},
"description": "A UUID string identifying this membership.",
"required": true
},
{
"in": "path",
"name": "user_pk",
"schema": {
"type": "string",
"format": "uuid"
},
"required": true
}
],
"tags": [
"User"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/MembershipResponse"
}
}
},
"description": ""
}
}
}
},
"/api/v1/users/me": {
"get": {
"operationId": "users_me_retrieve",
"description": "Fetch detailed information about the authenticated user.",
"summary": "Retrieve the current user's information",
"parameters": [
{
"in": "query",
"name": "fields[users]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"name",
"email",
"company_name",
"date_joined",
"memberships",
"roles"
]
}
},
"description": "endpoint return only specific fields in the response on a per-type basis by including a fields[TYPE] query parameter.",
"explode": false
},
{
"in": "query",
"name": "include",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"roles",
"memberships"
]
}
},
"description": "include query parameter to allow the client to customize which related resources should be returned.",
"explode": false
}
],
"tags": [
"User"
],
"security": [
{
"JWT or API Key": []
}
],
"responses": {
"200": {
"content": {
"application/vnd.api+json": {
"schema": {
"$ref": "#/components/schemas/UserResponse"
}
}
},
"description": ""
}
}
}
}
},
"components": {
"schemas": {
"ComplianceOverview": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"compliance-overviews"
]
},
"id": {},
"attributes": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"framework": {
"type": "string"
},
"version": {
"type": "string"
},
"requirements_passed": {
"type": "integer"
},
"requirements_failed": {
"type": "integer"
},
"requirements_manual": {
"type": "integer"
},
"total_requirements": {
"type": "integer"
}
},
"required": [
"id",
"framework",
"version",
"requirements_passed",
"requirements_failed",
"requirements_manual",
"total_requirements"
]
}
}
},
"ComplianceOverviewAttributes": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"compliance-requirements-attributes"
]
},
"id": {},
"attributes": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"compliance_name": {
"type": "string"
},
"framework_description": {
"type": "string"
},
"name": {
"type": "string"
},
"framework": {
"type": "string"
},
"version": {
"type": "string"
},
"description": {
"type": "string"
},
"attributes": {}
},
"required": [
"id",
"compliance_name",
"framework_description",
"name",
"framework",
"version",
"description",
"attributes"
]
}
}
},
"ComplianceOverviewDetail": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"compliance-requirements-details"
]
},
"id": {},
"attributes": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"framework": {
"type": "string"
},
"version": {
"type": "string"
},
"description": {
"type": "string"
},
"status": {
"enum": [
"FAIL",
"PASS",
"MANUAL"
],
"type": "string",
"description": "* `FAIL` - Fail\n* `PASS` - Pass\n* `MANUAL` - Manual",
"x-spec-enum-id": "ce612ddbfa464789"
}
},
"required": [
"id",
"framework",
"version",
"description",
"status"
]
}
}
},
"ComplianceOverviewMetadata": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"compliance-overviews-metadata"
]
},
"id": {},
"attributes": {
"type": "object",
"properties": {
"regions": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"regions"
]
}
}
},
"Finding": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"findings"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"uid": {
"type": "string",
"maxLength": 300
},
"delta": {
"enum": [
"new",
"changed",
null
],
"type": "string",
"description": "* `new` - New\n* `changed` - Changed",
"x-spec-enum-id": "fef6b0e2506af8bc",
"nullable": true
},
"status": {
"enum": [
"FAIL",
"PASS",
"MANUAL"
],
"type": "string",
"description": "* `FAIL` - Fail\n* `PASS` - Pass\n* `MANUAL` - Manual",
"x-spec-enum-id": "ce612ddbfa464789"
},
"status_extended": {
"type": "string",
"nullable": true
},
"severity": {
"enum": [
"critical",
"high",
"medium",
"low",
"informational"
],
"type": "string",
"description": "* `critical` - Critical\n* `high` - High\n* `medium` - Medium\n* `low` - Low\n* `informational` - Informational",
"x-spec-enum-id": "c93e070ed135d9bf"
},
"check_id": {
"type": "string",
"maxLength": 100
},
"check_metadata": {},
"raw_result": {},
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"first_seen_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"nullable": true
},
"muted": {
"type": "boolean"
},
"muted_reason": {
"type": "string",
"nullable": true,
"minLength": 3,
"maxLength": 500
}
},
"required": [
"uid",
"status",
"severity",
"check_id"
]
},
"relationships": {
"type": "object",
"properties": {
"scan": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"scans"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier"
},
"resources": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"resources"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type resources",
"title": "resources",
"readOnly": true
}
},
"required": [
"scan"
]
}
}
},
"FindingDynamicFilter": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"finding-dynamic-filters"
]
},
"id": {},
"attributes": {
"type": "object",
"properties": {
"services": {
"type": "array",
"items": {
"type": "string"
}
},
"regions": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"services",
"regions"
]
}
}
},
"FindingDynamicFilterResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/FindingDynamicFilter"
}
},
"required": [
"data"
]
},
"FindingMetadata": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"findings-metadata"
]
},
"id": {},
"attributes": {
"type": "object",
"properties": {
"services": {
"type": "array",
"items": {
"type": "string"
}
},
"regions": {
"type": "array",
"items": {
"type": "string"
}
},
"resource_types": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"services",
"regions",
"resource_types"
]
}
}
},
"FindingMetadataResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/FindingMetadata"
}
},
"required": [
"data"
]
},
"FindingResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Finding"
}
},
"required": [
"data"
]
},
"Integration": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"integrations"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"enabled": {
"type": "boolean"
},
"connected": {
"type": "boolean",
"nullable": true
},
"connection_last_checked_at": {
"type": "string",
"format": "date-time",
"nullable": true
},
"integration_type": {
"enum": [
"amazon_s3",
"aws_security_hub",
"jira",
"slack"
],
"type": "string",
"description": "* `amazon_s3` - Amazon S3\n* `aws_security_hub` - AWS Security Hub\n* `jira` - JIRA\n* `slack` - Slack",
"x-spec-enum-id": "6cfd0ff9cf4d6dcc"
},
"configuration": {}
},
"required": [
"integration_type"
]
},
"relationships": {
"type": "object",
"properties": {
"providers": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"providers"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type providers",
"title": "providers"
}
},
"required": [
"providers"
]
}
}
},
"IntegrationCreate": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"integrations"
]
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"enabled": {
"type": "boolean"
},
"connected": {
"type": "boolean",
"readOnly": true,
"nullable": true
},
"connection_last_checked_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"nullable": true
},
"integration_type": {
"enum": [
"amazon_s3",
"aws_security_hub",
"jira",
"slack"
],
"type": "string",
"description": "* `amazon_s3` - Amazon S3\n* `aws_security_hub` - AWS Security Hub\n* `jira` - JIRA\n* `slack` - Slack",
"x-spec-enum-id": "6cfd0ff9cf4d6dcc"
},
"configuration": {
"oneOf": [
{
"type": "object",
"title": "Amazon S3",
"properties": {
"bucket_name": {
"type": "string",
"description": "The name of the S3 bucket where files will be stored."
},
"output_directory": {
"type": "string",
"description": "The directory path within the bucket where files will be saved. Optional - defaults to \"output\" if not provided. Path will be normalized to remove excessive slashes and invalid characters are not allowed (< > : \" | ? *). Maximum length is 900 characters.",
"maxLength": 900,
"pattern": "^[^<>:\"|?*]+$",
"default": "output"
}
},
"required": [
"bucket_name"
]
},
{
"type": "object",
"title": "AWS Security Hub",
"properties": {
"send_only_fails": {
"type": "boolean",
"default": false,
"description": "If true, only findings with status 'FAIL' will be sent to Security Hub."
},
"archive_previous_findings": {
"type": "boolean",
"default": false,
"description": "If true, archives findings that are not present in the current execution."
}
}
},
{
"type": "object",
"title": "JIRA",
"description": "JIRA integration does not accept any configuration in the payload. Leave it as an empty JSON object (`{}`).",
"properties": {},
"additionalProperties": false
}
]
},
"credentials": {
"oneOf": [
{
"type": "object",
"title": "AWS Credentials",
"properties": {
"role_arn": {
"type": "string",
"description": "The Amazon Resource Name (ARN) of the role to assume. Required for AWS role assumption."
},
"external_id": {
"type": "string",
"description": "An identifier to enhance security for role assumption."
},
"aws_access_key_id": {
"type": "string",
"description": "The AWS access key ID. Only required if the environment lacks pre-configured AWS credentials."
},
"aws_secret_access_key": {
"type": "string",
"description": "The AWS secret access key. Required if 'aws_access_key_id' is provided or if no AWS credentials are pre-configured."
},
"aws_session_token": {
"type": "string",
"description": "The session token for temporary credentials, if applicable."
},
"session_duration": {
"type": "integer",
"minimum": 900,
"maximum": 43200,
"default": 3600,
"description": "The duration (in seconds) for the role session."
},
"role_session_name": {
"type": "string",
"description": "An identifier for the role session, useful for tracking sessions in AWS logs. The regex used to validate this parameter is a string of characters consisting of upper- and lower-case alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@-\n\nExamples:\n- MySession123\n- User_Session-1\n- Test.Session@2",
"pattern": "^[a-zA-Z0-9=,.@_-]+$"
}
}
},
{
"type": "object",
"title": "JIRA Credentials",
"properties": {
"user_mail": {
"type": "string",
"format": "email",
"description": "The email address of the JIRA user account."
},
"api_token": {
"type": "string",
"description": "The API token for authentication with JIRA. This can be generated from your Atlassian account settings."
},
"domain": {
"type": "string",
"description": "The JIRA domain/instance URL (e.g., 'your-domain.atlassian.net')."
}
},
"required": [
"user_mail",
"api_token",
"domain"
]
}
],
"writeOnly": true
}
},
"required": [
"integration_type",
"configuration",
"credentials"
]
},
"relationships": {
"type": "object",
"properties": {
"providers": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"providers"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type providers",
"title": "providers"
}
}
}
}
},
"IntegrationCreateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"integrations"
]
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"enabled": {
"type": "boolean"
},
"connected": {
"type": "boolean",
"readOnly": true,
"nullable": true
},
"connection_last_checked_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"nullable": true
},
"integration_type": {
"enum": [
"amazon_s3",
"aws_security_hub",
"jira",
"slack"
],
"type": "string",
"description": "* `amazon_s3` - Amazon S3\n* `aws_security_hub` - AWS Security Hub\n* `jira` - JIRA\n* `slack` - Slack",
"x-spec-enum-id": "6cfd0ff9cf4d6dcc"
},
"configuration": {
"oneOf": [
{
"type": "object",
"title": "Amazon S3",
"properties": {
"bucket_name": {
"type": "string",
"description": "The name of the S3 bucket where files will be stored."
},
"output_directory": {
"type": "string",
"description": "The directory path within the bucket where files will be saved. Optional - defaults to \"output\" if not provided. Path will be normalized to remove excessive slashes and invalid characters are not allowed (< > : \" | ? *). Maximum length is 900 characters.",
"maxLength": 900,
"pattern": "^[^<>:\"|?*]+$",
"default": "output"
}
},
"required": [
"bucket_name"
]
},
{
"type": "object",
"title": "AWS Security Hub",
"properties": {
"send_only_fails": {
"type": "boolean",
"default": false,
"description": "If true, only findings with status 'FAIL' will be sent to Security Hub."
},
"archive_previous_findings": {
"type": "boolean",
"default": false,
"description": "If true, archives findings that are not present in the current execution."
}
}
},
{
"type": "object",
"title": "JIRA",
"description": "JIRA integration does not accept any configuration in the payload. Leave it as an empty JSON object (`{}`).",
"properties": {},
"additionalProperties": false
}
]
},
"credentials": {
"oneOf": [
{
"type": "object",
"title": "AWS Credentials",
"properties": {
"role_arn": {
"type": "string",
"description": "The Amazon Resource Name (ARN) of the role to assume. Required for AWS role assumption."
},
"external_id": {
"type": "string",
"description": "An identifier to enhance security for role assumption."
},
"aws_access_key_id": {
"type": "string",
"description": "The AWS access key ID. Only required if the environment lacks pre-configured AWS credentials."
},
"aws_secret_access_key": {
"type": "string",
"description": "The AWS secret access key. Required if 'aws_access_key_id' is provided or if no AWS credentials are pre-configured."
},
"aws_session_token": {
"type": "string",
"description": "The session token for temporary credentials, if applicable."
},
"session_duration": {
"type": "integer",
"minimum": 900,
"maximum": 43200,
"default": 3600,
"description": "The duration (in seconds) for the role session."
},
"role_session_name": {
"type": "string",
"description": "An identifier for the role session, useful for tracking sessions in AWS logs. The regex used to validate this parameter is a string of characters consisting of upper- and lower-case alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@-\n\nExamples:\n- MySession123\n- User_Session-1\n- Test.Session@2",
"pattern": "^[a-zA-Z0-9=,.@_-]+$"
}
}
},
{
"type": "object",
"title": "JIRA Credentials",
"properties": {
"user_mail": {
"type": "string",
"format": "email",
"description": "The email address of the JIRA user account."
},
"api_token": {
"type": "string",
"description": "The API token for authentication with JIRA. This can be generated from your Atlassian account settings."
},
"domain": {
"type": "string",
"description": "The JIRA domain/instance URL (e.g., 'your-domain.atlassian.net')."
}
},
"required": [
"user_mail",
"api_token",
"domain"
]
}
],
"writeOnly": true
}
},
"required": [
"integration_type",
"configuration",
"credentials"
]
},
"relationships": {
"type": "object",
"properties": {
"providers": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"providers"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type providers",
"title": "providers"
}
}
}
}
}
},
"required": [
"data"
]
},
"IntegrationCreateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/IntegrationCreate"
}
},
"required": [
"data"
]
},
"IntegrationJiraDispatchRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"integrations-jira-dispatches"
]
},
"attributes": {
"type": "object",
"properties": {
"project_key": {
"type": "string",
"minLength": 1
},
"issue_type": {
"enum": [
"Task"
],
"type": "string",
"description": "* `Task` - Task",
"x-spec-enum-id": "b527b0cec62087c1"
}
},
"required": [
"project_key",
"issue_type"
]
}
}
}
},
"required": [
"data"
]
},
"IntegrationResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Integration"
}
},
"required": [
"data"
]
},
"IntegrationUpdate": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"integrations"
]
},
"id": {},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"enabled": {
"type": "boolean"
},
"connected": {
"type": "boolean",
"readOnly": true,
"nullable": true
},
"connection_last_checked_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"nullable": true
},
"integration_type": {
"enum": [
"amazon_s3",
"aws_security_hub",
"jira",
"slack"
],
"type": "string",
"description": "* `amazon_s3` - Amazon S3\n* `aws_security_hub` - AWS Security Hub\n* `jira` - JIRA\n* `slack` - Slack",
"x-spec-enum-id": "6cfd0ff9cf4d6dcc",
"readOnly": true
},
"configuration": {
"oneOf": [
{
"type": "object",
"title": "Amazon S3",
"properties": {
"bucket_name": {
"type": "string",
"description": "The name of the S3 bucket where files will be stored."
},
"output_directory": {
"type": "string",
"description": "The directory path within the bucket where files will be saved. Optional - defaults to \"output\" if not provided. Path will be normalized to remove excessive slashes and invalid characters are not allowed (< > : \" | ? *). Maximum length is 900 characters.",
"maxLength": 900,
"pattern": "^[^<>:\"|?*]+$",
"default": "output"
}
},
"required": [
"bucket_name"
]
},
{
"type": "object",
"title": "AWS Security Hub",
"properties": {
"send_only_fails": {
"type": "boolean",
"default": false,
"description": "If true, only findings with status 'FAIL' will be sent to Security Hub."
},
"archive_previous_findings": {
"type": "boolean",
"default": false,
"description": "If true, archives findings that are not present in the current execution."
}
}
},
{
"type": "object",
"title": "JIRA",
"description": "JIRA integration does not accept any configuration in the payload. Leave it as an empty JSON object (`{}`).",
"properties": {},
"additionalProperties": false
}
]
},
"credentials": {
"oneOf": [
{
"type": "object",
"title": "AWS Credentials",
"properties": {
"role_arn": {
"type": "string",
"description": "The Amazon Resource Name (ARN) of the role to assume. Required for AWS role assumption."
},
"external_id": {
"type": "string",
"description": "An identifier to enhance security for role assumption."
},
"aws_access_key_id": {
"type": "string",
"description": "The AWS access key ID. Only required if the environment lacks pre-configured AWS credentials."
},
"aws_secret_access_key": {
"type": "string",
"description": "The AWS secret access key. Required if 'aws_access_key_id' is provided or if no AWS credentials are pre-configured."
},
"aws_session_token": {
"type": "string",
"description": "The session token for temporary credentials, if applicable."
},
"session_duration": {
"type": "integer",
"minimum": 900,
"maximum": 43200,
"default": 3600,
"description": "The duration (in seconds) for the role session."
},
"role_session_name": {
"type": "string",
"description": "An identifier for the role session, useful for tracking sessions in AWS logs. The regex used to validate this parameter is a string of characters consisting of upper- and lower-case alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@-\n\nExamples:\n- MySession123\n- User_Session-1\n- Test.Session@2",
"pattern": "^[a-zA-Z0-9=,.@_-]+$"
}
}
},
{
"type": "object",
"title": "JIRA Credentials",
"properties": {
"user_mail": {
"type": "string",
"format": "email",
"description": "The email address of the JIRA user account."
},
"api_token": {
"type": "string",
"description": "The API token for authentication with JIRA. This can be generated from your Atlassian account settings."
},
"domain": {
"type": "string",
"description": "The JIRA domain/instance URL (e.g., 'your-domain.atlassian.net')."
}
},
"required": [
"user_mail",
"api_token",
"domain"
]
}
],
"writeOnly": true
}
}
},
"relationships": {
"type": "object",
"properties": {
"providers": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"providers"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type providers",
"title": "providers"
}
}
}
}
},
"IntegrationUpdateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/IntegrationUpdate"
}
},
"required": [
"data"
]
},
"Invitation": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"invitations"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"email": {
"type": "string",
"format": "email",
"maxLength": 254
},
"state": {
"enum": [
"pending",
"accepted",
"expired",
"revoked"
],
"type": "string",
"description": "* `pending` - Invitation is pending\n* `accepted` - Invitation was accepted by a user\n* `expired` - Invitation expired after the configured time\n* `revoked` - Invitation was revoked by a user",
"x-spec-enum-id": "92a1c1fd12e13e25"
},
"token": {
"type": "string",
"readOnly": true
},
"expires_at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"email"
]
},
"relationships": {
"type": "object",
"properties": {
"roles": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"roles"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type roles",
"title": "roles"
},
"inviter": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"users"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"nullable": true
}
},
"required": [
"roles"
]
}
}
},
"InvitationAcceptRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"invitations"
]
},
"attributes": {
"type": "object",
"properties": {
"invitation_token": {
"type": "string",
"writeOnly": true,
"minLength": 1
}
},
"required": [
"invitation_token"
]
}
}
}
},
"required": [
"data"
]
},
"InvitationCreate": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"invitations"
]
},
"attributes": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"maxLength": 254
},
"expires_at": {
"type": "string",
"format": "date-time",
"description": "UTC. Default 7 days. If this attribute is provided, it must be at least 24 hours in the future."
},
"state": {
"enum": [
"pending",
"accepted",
"expired",
"revoked"
],
"type": "string",
"description": "* `pending` - Invitation is pending\n* `accepted` - Invitation was accepted by a user\n* `expired` - Invitation expired after the configured time\n* `revoked` - Invitation was revoked by a user",
"x-spec-enum-id": "92a1c1fd12e13e25",
"readOnly": true
},
"token": {
"type": "string",
"readOnly": true
}
},
"required": [
"email"
]
},
"relationships": {
"type": "object",
"properties": {
"inviter": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"users"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"readOnly": true,
"nullable": true
},
"roles": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"roles"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type roles",
"title": "roles"
}
},
"required": [
"roles"
]
}
}
},
"InvitationCreateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"invitations"
]
},
"attributes": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"minLength": 1,
"maxLength": 254
},
"expires_at": {
"type": "string",
"format": "date-time",
"description": "UTC. Default 7 days. If this attribute is provided, it must be at least 24 hours in the future."
},
"state": {
"enum": [
"pending",
"accepted",
"expired",
"revoked"
],
"type": "string",
"description": "* `pending` - Invitation is pending\n* `accepted` - Invitation was accepted by a user\n* `expired` - Invitation expired after the configured time\n* `revoked` - Invitation was revoked by a user",
"x-spec-enum-id": "92a1c1fd12e13e25",
"readOnly": true
},
"token": {
"type": "string",
"readOnly": true,
"minLength": 1
}
},
"required": [
"email"
]
},
"relationships": {
"type": "object",
"properties": {
"inviter": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"users"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"readOnly": true,
"nullable": true
},
"roles": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"roles"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type roles",
"title": "roles"
}
},
"required": [
"roles"
]
}
}
}
},
"required": [
"data"
]
},
"InvitationCreateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/InvitationCreate"
}
},
"required": [
"data"
]
},
"InvitationResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Invitation"
}
},
"required": [
"data"
]
},
"InvitationUpdate": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"invitations"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"maxLength": 254
},
"expires_at": {
"type": "string",
"format": "date-time"
},
"state": {
"enum": [
"pending",
"accepted",
"expired",
"revoked"
],
"type": "string",
"description": "* `pending` - Invitation is pending\n* `accepted` - Invitation was accepted by a user\n* `expired` - Invitation expired after the configured time\n* `revoked` - Invitation was revoked by a user",
"x-spec-enum-id": "92a1c1fd12e13e25",
"readOnly": true
},
"token": {
"type": "string",
"readOnly": true
}
}
},
"relationships": {
"type": "object",
"properties": {
"roles": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"roles"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type roles",
"title": "roles"
}
}
}
}
},
"InvitationUpdateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/InvitationUpdate"
}
},
"required": [
"data"
]
},
"LighthouseConfig": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"lighthouse-configurations"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the configuration",
"maxLength": 100,
"minLength": 3
},
"api_key": {
"type": "string"
},
"model": {
"enum": [
"gpt-4o-2024-11-20",
"gpt-4o-2024-08-06",
"gpt-4o-2024-05-13",
"gpt-4o",
"gpt-4o-mini-2024-07-18",
"gpt-4o-mini",
"gpt-5-2025-08-07",
"gpt-5",
"gpt-5-mini-2025-08-07",
"gpt-5-mini"
],
"type": "string",
"x-spec-enum-id": "bd2108eb25b2d472",
"description": "Must be one of the supported model names\n\n* `gpt-4o-2024-11-20` - GPT-4o v2024-11-20\n* `gpt-4o-2024-08-06` - GPT-4o v2024-08-06\n* `gpt-4o-2024-05-13` - GPT-4o v2024-05-13\n* `gpt-4o` - GPT-4o Default\n* `gpt-4o-mini-2024-07-18` - GPT-4o Mini v2024-07-18\n* `gpt-4o-mini` - GPT-4o Mini Default\n* `gpt-5-2025-08-07` - GPT-5 v2025-08-07\n* `gpt-5` - GPT-5 Default\n* `gpt-5-mini-2025-08-07` - GPT-5 Mini v2025-08-07\n* `gpt-5-mini` - GPT-5 Mini Default"
},
"temperature": {
"type": "number",
"format": "double",
"description": "Must be between 0 and 1"
},
"max_tokens": {
"type": "integer",
"maximum": 2147483647,
"minimum": -2147483648,
"description": "Must be between 500 and 5000"
},
"business_context": {
"type": "string",
"description": "Additional business context for this AI model configuration"
},
"is_active": {
"type": "boolean",
"readOnly": true
},
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
}
},
"required": [
"name"
]
}
}
},
"LighthouseConfigCreate": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"lighthouse-configurations"
]
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the configuration",
"maxLength": 100,
"minLength": 3
},
"api_key": {
"type": "string",
"writeOnly": true
},
"model": {
"enum": [
"gpt-4o-2024-11-20",
"gpt-4o-2024-08-06",
"gpt-4o-2024-05-13",
"gpt-4o",
"gpt-4o-mini-2024-07-18",
"gpt-4o-mini",
"gpt-5-2025-08-07",
"gpt-5",
"gpt-5-mini-2025-08-07",
"gpt-5-mini"
],
"type": "string",
"x-spec-enum-id": "bd2108eb25b2d472",
"description": "Must be one of the supported model names\n\n* `gpt-4o-2024-11-20` - GPT-4o v2024-11-20\n* `gpt-4o-2024-08-06` - GPT-4o v2024-08-06\n* `gpt-4o-2024-05-13` - GPT-4o v2024-05-13\n* `gpt-4o` - GPT-4o Default\n* `gpt-4o-mini-2024-07-18` - GPT-4o Mini v2024-07-18\n* `gpt-4o-mini` - GPT-4o Mini Default\n* `gpt-5-2025-08-07` - GPT-5 v2025-08-07\n* `gpt-5` - GPT-5 Default\n* `gpt-5-mini-2025-08-07` - GPT-5 Mini v2025-08-07\n* `gpt-5-mini` - GPT-5 Mini Default"
},
"temperature": {
"type": "number",
"format": "double",
"description": "Must be between 0 and 1"
},
"max_tokens": {
"type": "integer",
"maximum": 2147483647,
"minimum": -2147483648,
"description": "Must be between 500 and 5000"
},
"business_context": {
"type": "string",
"description": "Additional business context for this AI model configuration"
},
"is_active": {
"type": "boolean",
"readOnly": true
},
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
}
},
"required": [
"name",
"api_key"
]
}
}
},
"LighthouseConfigCreateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"lighthouse-configurations"
]
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 3,
"description": "Name of the configuration",
"maxLength": 100
},
"api_key": {
"type": "string",
"writeOnly": true,
"minLength": 1
},
"model": {
"enum": [
"gpt-4o-2024-11-20",
"gpt-4o-2024-08-06",
"gpt-4o-2024-05-13",
"gpt-4o",
"gpt-4o-mini-2024-07-18",
"gpt-4o-mini",
"gpt-5-2025-08-07",
"gpt-5",
"gpt-5-mini-2025-08-07",
"gpt-5-mini"
],
"type": "string",
"x-spec-enum-id": "bd2108eb25b2d472",
"description": "Must be one of the supported model names\n\n* `gpt-4o-2024-11-20` - GPT-4o v2024-11-20\n* `gpt-4o-2024-08-06` - GPT-4o v2024-08-06\n* `gpt-4o-2024-05-13` - GPT-4o v2024-05-13\n* `gpt-4o` - GPT-4o Default\n* `gpt-4o-mini-2024-07-18` - GPT-4o Mini v2024-07-18\n* `gpt-4o-mini` - GPT-4o Mini Default\n* `gpt-5-2025-08-07` - GPT-5 v2025-08-07\n* `gpt-5` - GPT-5 Default\n* `gpt-5-mini-2025-08-07` - GPT-5 Mini v2025-08-07\n* `gpt-5-mini` - GPT-5 Mini Default"
},
"temperature": {
"type": "number",
"format": "double",
"description": "Must be between 0 and 1"
},
"max_tokens": {
"type": "integer",
"maximum": 2147483647,
"minimum": -2147483648,
"description": "Must be between 500 and 5000"
},
"business_context": {
"type": "string",
"description": "Additional business context for this AI model configuration"
},
"is_active": {
"type": "boolean",
"readOnly": true
},
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
}
},
"required": [
"name",
"api_key"
]
}
}
}
},
"required": [
"data"
]
},
"LighthouseConfigCreateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/LighthouseConfigCreate"
}
},
"required": [
"data"
]
},
"LighthouseConfigUpdate": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"lighthouse-configurations"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the configuration",
"maxLength": 100,
"minLength": 3
},
"api_key": {
"type": "string",
"writeOnly": true
},
"model": {
"enum": [
"gpt-4o-2024-11-20",
"gpt-4o-2024-08-06",
"gpt-4o-2024-05-13",
"gpt-4o",
"gpt-4o-mini-2024-07-18",
"gpt-4o-mini",
"gpt-5-2025-08-07",
"gpt-5",
"gpt-5-mini-2025-08-07",
"gpt-5-mini"
],
"type": "string",
"x-spec-enum-id": "bd2108eb25b2d472",
"description": "Must be one of the supported model names\n\n* `gpt-4o-2024-11-20` - GPT-4o v2024-11-20\n* `gpt-4o-2024-08-06` - GPT-4o v2024-08-06\n* `gpt-4o-2024-05-13` - GPT-4o v2024-05-13\n* `gpt-4o` - GPT-4o Default\n* `gpt-4o-mini-2024-07-18` - GPT-4o Mini v2024-07-18\n* `gpt-4o-mini` - GPT-4o Mini Default\n* `gpt-5-2025-08-07` - GPT-5 v2025-08-07\n* `gpt-5` - GPT-5 Default\n* `gpt-5-mini-2025-08-07` - GPT-5 Mini v2025-08-07\n* `gpt-5-mini` - GPT-5 Mini Default"
},
"temperature": {
"type": "number",
"format": "double",
"description": "Must be between 0 and 1"
},
"max_tokens": {
"type": "integer",
"maximum": 2147483647,
"minimum": -2147483648,
"description": "Must be between 500 and 5000"
},
"business_context": {
"type": "string",
"description": "Additional business context for this AI model configuration"
},
"is_active": {
"type": "boolean",
"readOnly": true
}
}
}
}
},
"LighthouseConfigUpdateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/LighthouseConfigUpdate"
}
},
"required": [
"data"
]
},
"LighthouseProviderConfig": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"lighthouse-providers"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"provider_type": {
"enum": [
"openai",
"bedrock",
"openai_compatible"
],
"type": "string",
"x-spec-enum-id": "30bc523cb9ec0e8b",
"description": "LLM provider name\n\n* `openai` - OpenAI\n* `bedrock` - AWS Bedrock\n* `openai_compatible` - OpenAI Compatible"
},
"base_url": {
"type": "string",
"format": "uri",
"nullable": true,
"maxLength": 200
},
"is_active": {
"type": "boolean",
"readOnly": true
},
"credentials": {
"readOnly": true
}
},
"required": [
"provider_type"
]
}
}
},
"LighthouseProviderConfigCreate": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"lighthouse-providers"
]
},
"attributes": {
"type": "object",
"properties": {
"provider_type": {
"enum": [
"openai",
"bedrock",
"openai_compatible"
],
"type": "string",
"x-spec-enum-id": "30bc523cb9ec0e8b",
"description": "LLM provider type. Determines which credential format to use. See 'credentials' field documentation for provider-specific requirements.\n\n* `openai` - OpenAI\n* `bedrock` - AWS Bedrock\n* `openai_compatible` - OpenAI Compatible"
},
"base_url": {
"type": "string",
"format": "uri",
"nullable": true,
"description": "Base URL for the LLM provider API. Required for 'openai_compatible' provider type."
},
"credentials": {
"oneOf": [
{
"type": "object",
"title": "OpenAI Credentials",
"properties": {
"api_key": {
"type": "string",
"description": "OpenAI API key. Must start with 'sk-' followed by alphanumeric characters, hyphens, or underscores.",
"pattern": "^sk-[\\w-]+$"
}
},
"required": [
"api_key"
]
},
{
"type": "object",
"title": "AWS Bedrock Credentials",
"properties": {
"access_key_id": {
"type": "string",
"description": "AWS access key ID.",
"pattern": "^AKIA[0-9A-Z]{16}$"
},
"secret_access_key": {
"type": "string",
"description": "AWS secret access key.",
"pattern": "^[A-Za-z0-9/+=]{40}$"
},
"region": {
"type": "string",
"description": "AWS region identifier where Bedrock is available. Examples: us-east-1, us-west-2, eu-west-1, ap-northeast-1.",
"pattern": "^[a-z]{2}-[a-z]+-\\d+$"
}
},
"required": [
"access_key_id",
"secret_access_key",
"region"
]
},
{
"type": "object",
"title": "OpenAI Compatible Credentials",
"properties": {
"api_key": {
"type": "string",
"description": "API key for OpenAI-compatible provider. The format varies by provider. Note: The 'base_url' field (separate from credentials) is required when using this provider type."
}
},
"required": [
"api_key"
]
}
],
"writeOnly": true
},
"is_active": {
"type": "boolean"
}
},
"required": [
"provider_type",
"credentials"
]
}
}
},
"LighthouseProviderConfigCreateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"lighthouse-providers"
]
},
"attributes": {
"type": "object",
"properties": {
"provider_type": {
"enum": [
"openai",
"bedrock",
"openai_compatible"
],
"type": "string",
"x-spec-enum-id": "30bc523cb9ec0e8b",
"description": "LLM provider type. Determines which credential format to use. See 'credentials' field documentation for provider-specific requirements.\n\n* `openai` - OpenAI\n* `bedrock` - AWS Bedrock\n* `openai_compatible` - OpenAI Compatible"
},
"base_url": {
"type": "string",
"format": "uri",
"nullable": true,
"minLength": 1,
"description": "Base URL for the LLM provider API. Required for 'openai_compatible' provider type."
},
"credentials": {
"oneOf": [
{
"type": "object",
"title": "OpenAI Credentials",
"properties": {
"api_key": {
"type": "string",
"description": "OpenAI API key. Must start with 'sk-' followed by alphanumeric characters, hyphens, or underscores.",
"pattern": "^sk-[\\w-]+$"
}
},
"required": [
"api_key"
]
},
{
"type": "object",
"title": "AWS Bedrock Credentials",
"properties": {
"access_key_id": {
"type": "string",
"description": "AWS access key ID.",
"pattern": "^AKIA[0-9A-Z]{16}$"
},
"secret_access_key": {
"type": "string",
"description": "AWS secret access key.",
"pattern": "^[A-Za-z0-9/+=]{40}$"
},
"region": {
"type": "string",
"description": "AWS region identifier where Bedrock is available. Examples: us-east-1, us-west-2, eu-west-1, ap-northeast-1.",
"pattern": "^[a-z]{2}-[a-z]+-\\d+$"
}
},
"required": [
"access_key_id",
"secret_access_key",
"region"
]
},
{
"type": "object",
"title": "OpenAI Compatible Credentials",
"properties": {
"api_key": {
"type": "string",
"description": "API key for OpenAI-compatible provider. The format varies by provider. Note: The 'base_url' field (separate from credentials) is required when using this provider type."
}
},
"required": [
"api_key"
]
}
],
"writeOnly": true
},
"is_active": {
"type": "boolean"
}
},
"required": [
"provider_type",
"credentials"
]
}
}
}
},
"required": [
"data"
]
},
"LighthouseProviderConfigCreateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/LighthouseProviderConfigCreate"
}
},
"required": [
"data"
]
},
"LighthouseProviderConfigResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/LighthouseProviderConfig"
}
},
"required": [
"data"
]
},
"LighthouseProviderConfigUpdate": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"lighthouse-providers"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"provider_type": {
"enum": [
"openai",
"bedrock",
"openai_compatible"
],
"type": "string",
"x-spec-enum-id": "30bc523cb9ec0e8b",
"readOnly": true,
"description": "LLM provider name\n\n* `openai` - OpenAI\n* `bedrock` - AWS Bedrock\n* `openai_compatible` - OpenAI Compatible"
},
"base_url": {
"type": "string",
"format": "uri",
"nullable": true,
"description": "Base URL for the LLM provider API. Required for 'openai_compatible' provider type."
},
"credentials": {
"oneOf": [
{
"type": "object",
"title": "OpenAI Credentials",
"properties": {
"api_key": {
"type": "string",
"description": "OpenAI API key. Must start with 'sk-' followed by alphanumeric characters, hyphens, or underscores.",
"pattern": "^sk-[\\w-]+$"
}
},
"required": [
"api_key"
]
},
{
"type": "object",
"title": "AWS Bedrock Credentials",
"properties": {
"access_key_id": {
"type": "string",
"description": "AWS access key ID.",
"pattern": "^AKIA[0-9A-Z]{16}$"
},
"secret_access_key": {
"type": "string",
"description": "AWS secret access key.",
"pattern": "^[A-Za-z0-9/+=]{40}$"
},
"region": {
"type": "string",
"description": "AWS region identifier where Bedrock is available. Examples: us-east-1, us-west-2, eu-west-1, ap-northeast-1.",
"pattern": "^[a-z]{2}-[a-z]+-\\d+$"
}
},
"required": [
"access_key_id",
"secret_access_key",
"region"
]
},
{
"type": "object",
"title": "OpenAI Compatible Credentials",
"properties": {
"api_key": {
"type": "string",
"description": "API key for OpenAI-compatible provider. The format varies by provider. Note: The 'base_url' field (separate from credentials) is required when using this provider type."
}
},
"required": [
"api_key"
]
}
],
"writeOnly": true
},
"is_active": {
"type": "boolean"
}
}
}
}
},
"LighthouseProviderConfigUpdateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/LighthouseProviderConfigUpdate"
}
},
"required": [
"data"
]
},
"LighthouseProviderModels": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"lighthouse-models"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"model_id": {
"type": "string",
"maxLength": 100
},
"model_name": {
"type": "string",
"maxLength": 100
},
"default_parameters": {}
},
"required": [
"model_id",
"model_name"
]
},
"relationships": {
"type": "object",
"properties": {
"provider_configuration": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"lighthouse-providers"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"readOnly": true
}
}
}
}
},
"LighthouseProviderModelsResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/LighthouseProviderModels"
}
},
"required": [
"data"
]
},
"LighthouseTenantConfig": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"lighthouse-configurations"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"business_context": {
"type": "string"
},
"default_provider": {
"type": "string",
"maxLength": 50
},
"default_models": {},
"url": {
"type": "string",
"readOnly": true
}
}
}
}
},
"LighthouseTenantConfigUpdate": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"lighthouse-configurations"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"business_context": {
"type": "string"
},
"default_provider": {
"type": "string",
"maxLength": 50
},
"default_models": {}
}
}
}
},
"LighthouseTenantConfigUpdateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/LighthouseTenantConfigUpdate"
}
},
"required": [
"data"
]
},
"Membership": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"memberships"
]
},
"attributes": {
"type": "object",
"properties": {
"role": {
"enum": [
"owner",
"member"
],
"type": "string",
"description": "* `owner` - Owner\n* `member` - Member",
"x-spec-enum-id": "12c359ee5dc51001"
},
"date_joined": {
"type": "string",
"format": "date-time",
"readOnly": true
}
},
"required": [
"role"
]
},
"relationships": {
"type": "object",
"properties": {
"user": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string",
"enum": [
"users"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"readOnly": true
},
"tenant": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string",
"enum": [
"tenants"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"readOnly": true
}
}
}
}
},
"MembershipResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Membership"
}
},
"required": [
"data"
]
},
"MuteRule": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"mute-rules"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"name": {
"type": "string",
"description": "Human-readable name for this rule",
"maxLength": 100,
"minLength": 3
},
"reason": {
"type": "string",
"description": "Reason for muting",
"minLength": 3,
"maxLength": 500
},
"enabled": {
"type": "boolean",
"description": "Whether this rule is currently enabled"
},
"finding_uids": {
"type": "array",
"items": {
"type": "string"
},
"readOnly": true,
"description": "List of finding UIDs that are muted by this rule"
}
},
"required": [
"name",
"reason"
]
},
"relationships": {
"type": "object",
"properties": {
"created_by": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"users"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"nullable": true
}
}
}
}
},
"MuteRuleCreate": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"mute-rules"
]
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"name": {
"type": "string",
"description": "Human-readable name for this rule",
"maxLength": 100,
"minLength": 3
},
"reason": {
"type": "string",
"description": "Reason for muting",
"minLength": 3,
"maxLength": 500
},
"enabled": {
"type": "boolean",
"readOnly": true,
"description": "Whether this rule is currently enabled"
},
"finding_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
},
"writeOnly": true,
"description": "List of Finding IDs to mute (will be converted to UIDs)"
},
"finding_uids": {
"type": "array",
"items": {
"type": "string"
},
"readOnly": true,
"description": "List of finding UIDs that are muted by this rule"
}
},
"required": [
"name",
"reason",
"finding_ids"
]
},
"relationships": {
"type": "object",
"properties": {
"created_by": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"users"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"readOnly": true,
"nullable": true
}
}
}
}
},
"MuteRuleCreateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"mute-rules"
]
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"name": {
"type": "string",
"minLength": 3,
"description": "Human-readable name for this rule",
"maxLength": 100
},
"reason": {
"type": "string",
"minLength": 3,
"description": "Reason for muting",
"maxLength": 500
},
"enabled": {
"type": "boolean",
"readOnly": true,
"description": "Whether this rule is currently enabled"
},
"finding_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
},
"writeOnly": true,
"description": "List of Finding IDs to mute (will be converted to UIDs)"
},
"finding_uids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"readOnly": true,
"description": "List of finding UIDs that are muted by this rule"
}
},
"required": [
"name",
"reason",
"finding_ids"
]
},
"relationships": {
"type": "object",
"properties": {
"created_by": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"users"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"readOnly": true,
"nullable": true
}
}
}
}
}
},
"required": [
"data"
]
},
"MuteRuleCreateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/MuteRuleCreate"
}
},
"required": [
"data"
]
},
"MuteRuleResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/MuteRule"
}
},
"required": [
"data"
]
},
"OpenApiResponseResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/TenantApiKey"
}
},
"required": [
"data"
]
},
"OverviewFinding": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"findings-overview"
]
},
"id": {},
"attributes": {
"type": "object",
"properties": {
"id": {
"type": "string",
"default": "n/a"
},
"new": {
"type": "integer"
},
"changed": {
"type": "integer"
},
"unchanged": {
"type": "integer"
},
"fail_new": {
"type": "integer"
},
"fail_changed": {
"type": "integer"
},
"pass_new": {
"type": "integer"
},
"pass_changed": {
"type": "integer"
},
"muted_new": {
"type": "integer"
},
"muted_changed": {
"type": "integer"
},
"total": {
"type": "integer"
},
"fail": {
"type": "integer"
},
"muted": {
"type": "integer"
},
"pass": {
"type": "integer"
}
},
"required": [
"new",
"changed",
"unchanged",
"fail_new",
"fail_changed",
"pass_new",
"pass_changed",
"muted_new",
"muted_changed",
"total",
"fail",
"muted",
"pass"
]
}
}
},
"OverviewFindingResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/OverviewFinding"
}
},
"required": [
"data"
]
},
"OverviewProvider": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"providers-overview"
]
},
"id": {},
"attributes": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"findings": {
"type": "object",
"properties": {
"pass": {
"type": "integer"
},
"fail": {
"type": "integer"
},
"muted": {
"type": "integer"
},
"total": {
"type": "integer"
}
},
"readOnly": true
},
"resources": {
"type": "object",
"properties": {
"total": {
"type": "integer"
}
},
"readOnly": true
}
},
"required": [
"id"
]
}
}
},
"OverviewProviderCount": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"providers-count-overview"
]
},
"id": {},
"attributes": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"count": {
"type": "integer"
}
},
"required": [
"id",
"count"
]
}
}
},
"OverviewProviderCountResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/OverviewProviderCount"
}
},
"required": [
"data"
]
},
"OverviewProviderResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/OverviewProvider"
}
},
"required": [
"data"
]
},
"OverviewService": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"services-overview"
]
},
"id": {},
"attributes": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"total": {
"type": "integer"
},
"fail": {
"type": "integer"
},
"muted": {
"type": "integer"
},
"pass": {
"type": "integer"
}
},
"required": [
"id",
"total",
"fail",
"muted",
"pass"
]
}
}
},
"OverviewServiceResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/OverviewService"
}
},
"required": [
"data"
]
},
"OverviewSeverity": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"findings-severity-overview"
]
},
"id": {},
"attributes": {
"type": "object",
"properties": {
"id": {
"type": "string",
"default": "n/a"
},
"critical": {
"type": "integer"
},
"high": {
"type": "integer"
},
"medium": {
"type": "integer"
},
"low": {
"type": "integer"
},
"informational": {
"type": "integer"
}
},
"required": [
"critical",
"high",
"medium",
"low",
"informational"
]
}
}
},
"OverviewSeverityResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/OverviewSeverity"
}
},
"required": [
"data"
]
},
"PaginatedComplianceOverviewAttributesList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ComplianceOverviewAttributes"
}
}
},
"required": [
"data"
]
},
"PaginatedComplianceOverviewDetailList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ComplianceOverviewDetail"
}
}
},
"required": [
"data"
]
},
"PaginatedComplianceOverviewList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ComplianceOverview"
}
}
},
"required": [
"data"
]
},
"PaginatedFindingList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Finding"
}
}
},
"required": [
"data"
]
},
"PaginatedIntegrationList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Integration"
}
}
},
"required": [
"data"
]
},
"PaginatedInvitationList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Invitation"
}
}
},
"required": [
"data"
]
},
"PaginatedLighthouseConfigList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LighthouseConfig"
}
}
},
"required": [
"data"
]
},
"PaginatedLighthouseProviderConfigList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LighthouseProviderConfig"
}
}
},
"required": [
"data"
]
},
"PaginatedLighthouseProviderModelsList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LighthouseProviderModels"
}
}
},
"required": [
"data"
]
},
"PaginatedLighthouseTenantConfigList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LighthouseTenantConfig"
}
}
},
"required": [
"data"
]
},
"PaginatedMembershipList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Membership"
}
}
},
"required": [
"data"
]
},
"PaginatedMuteRuleList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MuteRule"
}
}
},
"required": [
"data"
]
},
"PaginatedProcessorList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Processor"
}
}
},
"required": [
"data"
]
},
"PaginatedProviderGroupList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ProviderGroup"
}
}
},
"required": [
"data"
]
},
"PaginatedProviderList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Provider"
}
}
},
"required": [
"data"
]
},
"PaginatedProviderSecretList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ProviderSecret"
}
}
},
"required": [
"data"
]
},
"PaginatedResourceList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Resource"
}
}
},
"required": [
"data"
]
},
"PaginatedRoleList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Role"
}
}
},
"required": [
"data"
]
},
"PaginatedSAMLConfigurationList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SAMLConfiguration"
}
}
},
"required": [
"data"
]
},
"PaginatedScanList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Scan"
}
}
},
"required": [
"data"
]
},
"PaginatedTaskList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Task"
}
}
},
"required": [
"data"
]
},
"PaginatedTenantApiKeyList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TenantApiKey"
}
}
},
"required": [
"data"
]
},
"PaginatedTenantList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Tenant"
}
}
},
"required": [
"data"
]
},
"PaginatedUserList": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/User"
}
}
},
"required": [
"data"
]
},
"PatchedIntegrationUpdateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"integrations"
]
},
"id": {
"type": "string",
"format": "uuid",
"description": "Unique identifier for this resource object."
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"enabled": {
"type": "boolean"
},
"connected": {
"type": "boolean",
"readOnly": true,
"nullable": true
},
"connection_last_checked_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"nullable": true
},
"integration_type": {
"enum": [
"amazon_s3",
"aws_security_hub",
"jira",
"slack"
],
"type": "string",
"description": "* `amazon_s3` - Amazon S3\n* `aws_security_hub` - AWS Security Hub\n* `jira` - JIRA\n* `slack` - Slack",
"x-spec-enum-id": "6cfd0ff9cf4d6dcc",
"readOnly": true
},
"configuration": {
"oneOf": [
{
"type": "object",
"title": "Amazon S3",
"properties": {
"bucket_name": {
"type": "string",
"description": "The name of the S3 bucket where files will be stored."
},
"output_directory": {
"type": "string",
"description": "The directory path within the bucket where files will be saved. Optional - defaults to \"output\" if not provided. Path will be normalized to remove excessive slashes and invalid characters are not allowed (< > : \" | ? *). Maximum length is 900 characters.",
"maxLength": 900,
"pattern": "^[^<>:\"|?*]+$",
"default": "output"
}
},
"required": [
"bucket_name"
]
},
{
"type": "object",
"title": "AWS Security Hub",
"properties": {
"send_only_fails": {
"type": "boolean",
"default": false,
"description": "If true, only findings with status 'FAIL' will be sent to Security Hub."
},
"archive_previous_findings": {
"type": "boolean",
"default": false,
"description": "If true, archives findings that are not present in the current execution."
}
}
},
{
"type": "object",
"title": "JIRA",
"description": "JIRA integration does not accept any configuration in the payload. Leave it as an empty JSON object (`{}`).",
"properties": {},
"additionalProperties": false
}
]
},
"credentials": {
"oneOf": [
{
"type": "object",
"title": "AWS Credentials",
"properties": {
"role_arn": {
"type": "string",
"description": "The Amazon Resource Name (ARN) of the role to assume. Required for AWS role assumption."
},
"external_id": {
"type": "string",
"description": "An identifier to enhance security for role assumption."
},
"aws_access_key_id": {
"type": "string",
"description": "The AWS access key ID. Only required if the environment lacks pre-configured AWS credentials."
},
"aws_secret_access_key": {
"type": "string",
"description": "The AWS secret access key. Required if 'aws_access_key_id' is provided or if no AWS credentials are pre-configured."
},
"aws_session_token": {
"type": "string",
"description": "The session token for temporary credentials, if applicable."
},
"session_duration": {
"type": "integer",
"minimum": 900,
"maximum": 43200,
"default": 3600,
"description": "The duration (in seconds) for the role session."
},
"role_session_name": {
"type": "string",
"description": "An identifier for the role session, useful for tracking sessions in AWS logs. The regex used to validate this parameter is a string of characters consisting of upper- and lower-case alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@-\n\nExamples:\n- MySession123\n- User_Session-1\n- Test.Session@2",
"pattern": "^[a-zA-Z0-9=,.@_-]+$"
}
}
},
{
"type": "object",
"title": "JIRA Credentials",
"properties": {
"user_mail": {
"type": "string",
"format": "email",
"description": "The email address of the JIRA user account."
},
"api_token": {
"type": "string",
"description": "The API token for authentication with JIRA. This can be generated from your Atlassian account settings."
},
"domain": {
"type": "string",
"description": "The JIRA domain/instance URL (e.g., 'your-domain.atlassian.net')."
}
},
"required": [
"user_mail",
"api_token",
"domain"
]
}
],
"writeOnly": true
}
}
},
"relationships": {
"type": "object",
"properties": {
"providers": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"providers"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type providers",
"title": "providers"
}
}
}
}
}
},
"required": [
"data"
]
},
"PatchedInvitationUpdateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"invitations"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"minLength": 1,
"maxLength": 254
},
"expires_at": {
"type": "string",
"format": "date-time"
},
"state": {
"enum": [
"pending",
"accepted",
"expired",
"revoked"
],
"type": "string",
"description": "* `pending` - Invitation is pending\n* `accepted` - Invitation was accepted by a user\n* `expired` - Invitation expired after the configured time\n* `revoked` - Invitation was revoked by a user",
"x-spec-enum-id": "92a1c1fd12e13e25",
"readOnly": true
},
"token": {
"type": "string",
"readOnly": true,
"minLength": 1
}
}
},
"relationships": {
"type": "object",
"properties": {
"roles": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"roles"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type roles",
"title": "roles"
}
}
}
}
}
},
"required": [
"data"
]
},
"PatchedLighthouseConfigUpdateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"lighthouse-configurations"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 3,
"description": "Name of the configuration",
"maxLength": 100
},
"api_key": {
"type": "string",
"writeOnly": true,
"minLength": 1
},
"model": {
"enum": [
"gpt-4o-2024-11-20",
"gpt-4o-2024-08-06",
"gpt-4o-2024-05-13",
"gpt-4o",
"gpt-4o-mini-2024-07-18",
"gpt-4o-mini",
"gpt-5-2025-08-07",
"gpt-5",
"gpt-5-mini-2025-08-07",
"gpt-5-mini"
],
"type": "string",
"x-spec-enum-id": "bd2108eb25b2d472",
"description": "Must be one of the supported model names\n\n* `gpt-4o-2024-11-20` - GPT-4o v2024-11-20\n* `gpt-4o-2024-08-06` - GPT-4o v2024-08-06\n* `gpt-4o-2024-05-13` - GPT-4o v2024-05-13\n* `gpt-4o` - GPT-4o Default\n* `gpt-4o-mini-2024-07-18` - GPT-4o Mini v2024-07-18\n* `gpt-4o-mini` - GPT-4o Mini Default\n* `gpt-5-2025-08-07` - GPT-5 v2025-08-07\n* `gpt-5` - GPT-5 Default\n* `gpt-5-mini-2025-08-07` - GPT-5 Mini v2025-08-07\n* `gpt-5-mini` - GPT-5 Mini Default"
},
"temperature": {
"type": "number",
"format": "double",
"description": "Must be between 0 and 1"
},
"max_tokens": {
"type": "integer",
"maximum": 2147483647,
"minimum": -2147483648,
"description": "Must be between 500 and 5000"
},
"business_context": {
"type": "string",
"description": "Additional business context for this AI model configuration"
},
"is_active": {
"type": "boolean",
"readOnly": true
}
}
}
}
}
},
"required": [
"data"
]
},
"PatchedLighthouseProviderConfigUpdateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"lighthouse-providers"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"provider_type": {
"enum": [
"openai",
"bedrock",
"openai_compatible"
],
"type": "string",
"x-spec-enum-id": "30bc523cb9ec0e8b",
"readOnly": true,
"description": "LLM provider name\n\n* `openai` - OpenAI\n* `bedrock` - AWS Bedrock\n* `openai_compatible` - OpenAI Compatible"
},
"base_url": {
"type": "string",
"format": "uri",
"nullable": true,
"minLength": 1,
"description": "Base URL for the LLM provider API. Required for 'openai_compatible' provider type."
},
"credentials": {
"oneOf": [
{
"type": "object",
"title": "OpenAI Credentials",
"properties": {
"api_key": {
"type": "string",
"description": "OpenAI API key. Must start with 'sk-' followed by alphanumeric characters, hyphens, or underscores.",
"pattern": "^sk-[\\w-]+$"
}
},
"required": [
"api_key"
]
},
{
"type": "object",
"title": "AWS Bedrock Credentials",
"properties": {
"access_key_id": {
"type": "string",
"description": "AWS access key ID.",
"pattern": "^AKIA[0-9A-Z]{16}$"
},
"secret_access_key": {
"type": "string",
"description": "AWS secret access key.",
"pattern": "^[A-Za-z0-9/+=]{40}$"
},
"region": {
"type": "string",
"description": "AWS region identifier where Bedrock is available. Examples: us-east-1, us-west-2, eu-west-1, ap-northeast-1.",
"pattern": "^[a-z]{2}-[a-z]+-\\d+$"
}
},
"required": [
"access_key_id",
"secret_access_key",
"region"
]
},
{
"type": "object",
"title": "OpenAI Compatible Credentials",
"properties": {
"api_key": {
"type": "string",
"description": "API key for OpenAI-compatible provider. The format varies by provider. Note: The 'base_url' field (separate from credentials) is required when using this provider type."
}
},
"required": [
"api_key"
]
}
],
"writeOnly": true
},
"is_active": {
"type": "boolean"
}
}
}
}
}
},
"required": [
"data"
]
},
"PatchedLighthouseTenantConfigUpdateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"lighthouse-configurations"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"business_context": {
"type": "string"
},
"default_provider": {
"type": "string",
"maxLength": 50
},
"default_models": {}
}
}
}
}
},
"required": [
"data"
]
},
"PatchedMuteRuleUpdateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"mute-rules"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 3,
"description": "Human-readable name for this rule",
"maxLength": 100
},
"reason": {
"type": "string",
"minLength": 3,
"description": "Reason for muting",
"maxLength": 500
},
"enabled": {
"type": "boolean",
"description": "Whether this rule is currently enabled"
}
}
}
}
}
},
"required": [
"data"
]
},
"PatchedProcessorUpdateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"processors"
]
},
"id": {
"type": "string",
"format": "uuid",
"description": "Unique identifier for this resource object."
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"configuration": {
"oneOf": [
{
"type": "object",
"title": "Mutelist",
"properties": {
"Mutelist": {
"type": "object",
"properties": {
"Accounts": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"Checks": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"Regions": {
"type": "array",
"items": {
"type": "string"
}
},
"Resources": {
"type": "array",
"items": {
"type": "string"
}
},
"Tags": {
"type": "array",
"items": {
"type": "string"
}
},
"Exceptions": {
"type": "object",
"properties": {
"Accounts": {
"type": "array",
"items": {
"type": "string"
}
},
"Regions": {
"type": "array",
"items": {
"type": "string"
}
},
"Resources": {
"type": "array",
"items": {
"type": "string"
}
},
"Tags": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"Description": {
"type": "string"
}
},
"required": [
"Regions",
"Resources"
],
"additionalProperties": false
}
}
},
"required": [
"Checks"
],
"additionalProperties": false
}
}
},
"required": [
"Accounts"
],
"additionalProperties": false
}
},
"additionalProperties": false
}
]
}
},
"required": [
"configuration"
]
}
}
}
},
"required": [
"data"
]
},
"PatchedProviderGroupMembershipRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"provider_groups-provider"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"providers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ProviderResourceIdentifierRequest"
},
"description": "List of resource identifier objects representing providers."
}
},
"required": [
"providers"
]
}
}
}
},
"required": [
"data"
]
},
"PatchedProviderGroupUpdateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"provider-groups"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
}
},
"required": [
"name"
]
},
"relationships": {
"type": "object",
"properties": {
"providers": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"providers"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type providers",
"title": "providers"
},
"roles": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"roles"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type roles",
"title": "roles"
}
}
}
}
}
},
"required": [
"data"
]
},
"PatchedProviderSecretUpdateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"provider-secrets"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"name": {
"type": "string",
"nullable": true,
"maxLength": 100,
"minLength": 3
},
"secret_type": {
"enum": [
"static",
"role",
"service_account"
],
"type": "string",
"description": "* `static` - Key-value pairs\n* `role` - Role assumption\n* `service_account` - GCP Service Account Key",
"x-spec-enum-id": "20c74ebcd6671497"
},
"secret": {
"oneOf": [
{
"type": "object",
"title": "AWS Static Credentials",
"properties": {
"aws_access_key_id": {
"type": "string",
"description": "The AWS access key ID. Required for environments where no IAM role is being assumed and direct AWS access is needed."
},
"aws_secret_access_key": {
"type": "string",
"description": "The AWS secret access key. Must accompany 'aws_access_key_id' to authorize access to AWS resources."
},
"aws_session_token": {
"type": "string",
"description": "The session token associated with temporary credentials. Only needed for session-based or temporary AWS access."
}
},
"required": [
"aws_access_key_id",
"aws_secret_access_key"
]
},
{
"type": "object",
"title": "AWS Assume Role",
"properties": {
"role_arn": {
"type": "string",
"description": "The Amazon Resource Name (ARN) of the role to assume. Required for AWS role assumption."
},
"external_id": {
"type": "string",
"description": "An identifier to enhance security for role assumption."
},
"aws_access_key_id": {
"type": "string",
"description": "The AWS access key ID. Only required if the environment lacks pre-configured AWS credentials."
},
"aws_secret_access_key": {
"type": "string",
"description": "The AWS secret access key. Required if 'aws_access_key_id' is provided or if no AWS credentials are pre-configured."
},
"aws_session_token": {
"type": "string",
"description": "The session token for temporary credentials, if applicable."
},
"session_duration": {
"type": "integer",
"minimum": 900,
"maximum": 43200,
"default": 3600,
"description": "The duration (in seconds) for the role session."
},
"role_session_name": {
"type": "string",
"description": "An identifier for the role session, useful for tracking sessions in AWS logs. The regex used to validate this parameter is a string of characters consisting of upper- and lower-case alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@-\n\nExamples:\n- MySession123\n- User_Session-1\n- Test.Session@2",
"pattern": "^[a-zA-Z0-9=,.@_-]+$"
}
},
"required": [
"role_arn",
"external_id"
]
},
{
"type": "object",
"title": "Azure Static Credentials",
"properties": {
"client_id": {
"type": "string",
"description": "The Azure application (client) ID for authentication in Azure AD."
},
"client_secret": {
"type": "string",
"description": "The client secret associated with the application (client) ID, providing secure access."
},
"tenant_id": {
"type": "string",
"description": "The Azure tenant ID, representing the directory where the application is registered."
}
},
"required": [
"client_id",
"client_secret",
"tenant_id"
]
},
{
"type": "object",
"title": "M365 Static Credentials",
"properties": {
"client_id": {
"type": "string",
"description": "The Azure application (client) ID for authentication in Azure AD."
},
"tenant_id": {
"type": "string",
"description": "The Azure tenant ID, representing the directory where the application is registered."
},
"client_secret": {
"type": "string",
"description": "The client secret associated with the application (client) ID, providing secure access."
},
"user": {
"type": "string",
"description": "User microsoft email address.",
"deprecated": true,
"format": "email"
},
"password": {
"type": "string",
"description": "User password.",
"deprecated": true
}
},
"required": [
"client_id",
"client_secret",
"tenant_id",
"user",
"password"
]
},
{
"type": "object",
"title": "M365 Certificate Credentials",
"properties": {
"client_id": {
"type": "string",
"description": "The Azure application (client) ID for authentication in Azure AD."
},
"tenant_id": {
"type": "string",
"description": "The Azure tenant ID, representing the directory where the application is registered."
},
"certificate_content": {
"type": "string",
"description": "The certificate content in base64 format for certificate-based authentication."
}
},
"required": [
"client_id",
"tenant_id",
"certificate_content"
]
},
{
"type": "object",
"title": "GCP Static Credentials",
"properties": {
"client_id": {
"type": "string",
"description": "The client ID from Google Cloud, used to identify the application for GCP access."
},
"client_secret": {
"type": "string",
"description": "The client secret associated with the GCP client ID, required for secure access."
},
"refresh_token": {
"type": "string",
"description": "A refresh token that allows the application to obtain new access tokens for extended use."
}
},
"required": [
"client_id",
"client_secret",
"refresh_token"
]
},
{
"type": "object",
"title": "GCP Service Account Key",
"properties": {
"service_account_key": {
"type": "object",
"description": "The service account key for GCP."
}
},
"required": [
"service_account_key"
]
},
{
"type": "object",
"title": "Kubernetes Static Credentials",
"properties": {
"kubeconfig_content": {
"type": "string",
"description": "The content of the Kubernetes kubeconfig file, encoded as a string."
}
},
"required": [
"kubeconfig_content"
]
},
{
"type": "object",
"title": "GitHub Personal Access Token",
"properties": {
"personal_access_token": {
"type": "string",
"description": "GitHub personal access token for authentication."
}
},
"required": [
"personal_access_token"
]
},
{
"type": "object",
"title": "GitHub OAuth App Token",
"properties": {
"oauth_app_token": {
"type": "string",
"description": "GitHub OAuth App token for authentication."
}
},
"required": [
"oauth_app_token"
]
},
{
"type": "object",
"title": "GitHub App Credentials",
"properties": {
"github_app_id": {
"type": "integer",
"description": "GitHub App ID for authentication."
},
"github_app_key": {
"type": "string",
"description": "Path to the GitHub App private key file."
}
},
"required": [
"github_app_id",
"github_app_key"
]
},
{
"type": "object",
"title": "IaC Repository Credentials",
"properties": {
"repository_url": {
"type": "string",
"description": "Repository URL to scan for IaC files."
},
"access_token": {
"type": "string",
"description": "Optional access token for private repositories."
}
},
"required": [
"repository_url"
]
},
{
"type": "object",
"title": "Oracle Cloud Infrastructure (OCI) API Key Credentials",
"properties": {
"user": {
"type": "string",
"description": "The OCID of the user to authenticate with."
},
"fingerprint": {
"type": "string",
"description": "The fingerprint of the API signing key."
},
"key_file": {
"type": "string",
"description": "The path to the private key file for API signing. Either key_file or key_content must be provided."
},
"key_content": {
"type": "string",
"description": "The content of the private key for API signing (base64 encoded). Either key_file or key_content must be provided."
},
"tenancy": {
"type": "string",
"description": "The OCID of the tenancy."
},
"region": {
"type": "string",
"description": "The OCI region identifier (e.g., us-ashburn-1, us-phoenix-1)."
},
"pass_phrase": {
"type": "string",
"description": "The passphrase for the private key, if encrypted."
}
},
"required": [
"user",
"fingerprint",
"tenancy",
"region"
]
}
],
"writeOnly": true
}
},
"required": [
"secret"
]
},
"relationships": {
"type": "object",
"properties": {
"provider": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"providers"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"readOnly": true
}
}
}
}
}
},
"required": [
"data"
]
},
"PatchedProviderUpdateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"providers"
]
},
"id": {
"type": "string",
"format": "uuid",
"description": "Unique identifier for this resource object."
},
"attributes": {
"type": "object",
"properties": {
"alias": {
"type": "string",
"nullable": true,
"description": "Human readable name to identify the provider, e.g. 'Production AWS Account', 'Dev Environment'",
"maxLength": 100,
"minLength": 3
}
}
}
}
}
},
"required": [
"data"
]
},
"PatchedRoleProviderGroupRelationshipRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"role-provider_groups"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"provider_groups": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ProviderGroupResourceIdentifierRequest"
},
"description": "List of resource identifier objects representing provider groups."
}
},
"required": [
"provider_groups"
]
}
}
}
},
"required": [
"data"
]
},
"PatchedRoleUpdateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"roles"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"manage_users": {
"type": "boolean"
},
"manage_account": {
"type": "boolean"
},
"manage_integrations": {
"type": "boolean"
},
"manage_providers": {
"type": "boolean"
},
"manage_scans": {
"type": "boolean"
},
"permission_state": {
"type": "string",
"readOnly": true
},
"unlimited_visibility": {
"type": "boolean"
},
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
}
},
"required": [
"name"
]
},
"relationships": {
"type": "object",
"properties": {
"provider_groups": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"provider-groups"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type provider-groups",
"title": "provider-groups"
},
"users": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"users"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type users",
"title": "users"
},
"invitations": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"invitations"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type invitations",
"title": "invitations",
"readOnly": true
}
}
}
}
}
},
"required": [
"data"
]
},
"PatchedSAMLConfigurationRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"saml-configurations"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"email_domain": {
"type": "string",
"minLength": 1,
"description": "Email domain used to identify the tenant, e.g. prowlerdemo.com",
"maxLength": 254
},
"metadata_xml": {
"type": "string",
"minLength": 1,
"description": "Raw IdP metadata XML to configure SingleSignOnService, certificates, etc."
},
"created_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
}
},
"required": [
"email_domain",
"metadata_xml"
]
}
}
}
},
"required": [
"data"
]
},
"PatchedScanUpdateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"scans"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"nullable": true,
"maxLength": 100,
"minLength": 3
}
}
}
}
}
},
"required": [
"data"
]
},
"PatchedTenantApiKeyUpdateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"api-keys"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 3,
"maxLength": 100
},
"prefix": {
"type": "string",
"readOnly": true,
"minLength": 1,
"description": "Unique prefix to identify the API key"
},
"expires_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"last_used_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"nullable": true,
"description": "Last time this API key was used for authentication"
}
},
"required": [
"name"
]
},
"relationships": {
"type": "object",
"properties": {
"entity": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"users"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"readOnly": true,
"nullable": true
}
}
}
}
}
},
"required": [
"data"
]
},
"PatchedTenantRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"tenants"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"required": [
"name"
]
},
"relationships": {
"type": "object",
"properties": {
"memberships": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"memberships"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type memberships",
"title": "memberships",
"readOnly": true
}
}
}
}
}
},
"required": [
"data"
]
},
"PatchedUserRoleRelationshipRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"user-roles"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"roles": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RoleResourceIdentifierRequest"
},
"description": "List of resource identifier objects representing roles."
}
},
"required": [
"roles"
]
}
}
}
},
"required": [
"data"
]
},
"PatchedUserUpdateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"users"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 3,
"maxLength": 150
},
"password": {
"type": "string",
"writeOnly": true,
"minLength": 1
},
"email": {
"type": "string",
"format": "email",
"minLength": 1,
"description": "Case insensitive",
"maxLength": 254
},
"company_name": {
"type": "string",
"maxLength": 150
}
},
"required": [
"name",
"email"
]
}
}
}
},
"required": [
"data"
]
},
"Processor": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"processors"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"processor_type": {
"enum": [
"mutelist"
],
"type": "string",
"description": "* `mutelist` - Mutelist",
"x-spec-enum-id": "53cda4a99fe3d655"
},
"configuration": {
"oneOf": [
{
"type": "object",
"title": "Mutelist",
"properties": {
"Mutelist": {
"type": "object",
"properties": {
"Accounts": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"Checks": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"Regions": {
"type": "array",
"items": {
"type": "string"
}
},
"Resources": {
"type": "array",
"items": {
"type": "string"
}
},
"Tags": {
"type": "array",
"items": {
"type": "string"
}
},
"Exceptions": {
"type": "object",
"properties": {
"Accounts": {
"type": "array",
"items": {
"type": "string"
}
},
"Regions": {
"type": "array",
"items": {
"type": "string"
}
},
"Resources": {
"type": "array",
"items": {
"type": "string"
}
},
"Tags": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"Description": {
"type": "string"
}
},
"required": [
"Regions",
"Resources"
],
"additionalProperties": false
}
}
},
"required": [
"Checks"
],
"additionalProperties": false
}
}
},
"required": [
"Accounts"
],
"additionalProperties": false
}
},
"additionalProperties": false
}
]
}
},
"required": [
"processor_type",
"configuration"
]
}
}
},
"ProcessorCreate": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"processors"
]
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"processor_type": {
"enum": [
"mutelist"
],
"type": "string",
"description": "* `mutelist` - Mutelist",
"x-spec-enum-id": "53cda4a99fe3d655"
},
"configuration": {
"oneOf": [
{
"type": "object",
"title": "Mutelist",
"properties": {
"Mutelist": {
"type": "object",
"properties": {
"Accounts": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"Checks": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"Regions": {
"type": "array",
"items": {
"type": "string"
}
},
"Resources": {
"type": "array",
"items": {
"type": "string"
}
},
"Tags": {
"type": "array",
"items": {
"type": "string"
}
},
"Exceptions": {
"type": "object",
"properties": {
"Accounts": {
"type": "array",
"items": {
"type": "string"
}
},
"Regions": {
"type": "array",
"items": {
"type": "string"
}
},
"Resources": {
"type": "array",
"items": {
"type": "string"
}
},
"Tags": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"Description": {
"type": "string"
}
},
"required": [
"Regions",
"Resources"
],
"additionalProperties": false
}
}
},
"required": [
"Checks"
],
"additionalProperties": false
}
}
},
"required": [
"Accounts"
],
"additionalProperties": false
}
},
"additionalProperties": false
}
]
}
},
"required": [
"processor_type",
"configuration"
]
}
}
},
"ProcessorCreateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"processors"
]
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"processor_type": {
"enum": [
"mutelist"
],
"type": "string",
"description": "* `mutelist` - Mutelist",
"x-spec-enum-id": "53cda4a99fe3d655"
},
"configuration": {
"oneOf": [
{
"type": "object",
"title": "Mutelist",
"properties": {
"Mutelist": {
"type": "object",
"properties": {
"Accounts": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"Checks": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"Regions": {
"type": "array",
"items": {
"type": "string"
}
},
"Resources": {
"type": "array",
"items": {
"type": "string"
}
},
"Tags": {
"type": "array",
"items": {
"type": "string"
}
},
"Exceptions": {
"type": "object",
"properties": {
"Accounts": {
"type": "array",
"items": {
"type": "string"
}
},
"Regions": {
"type": "array",
"items": {
"type": "string"
}
},
"Resources": {
"type": "array",
"items": {
"type": "string"
}
},
"Tags": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"Description": {
"type": "string"
}
},
"required": [
"Regions",
"Resources"
],
"additionalProperties": false
}
}
},
"required": [
"Checks"
],
"additionalProperties": false
}
}
},
"required": [
"Accounts"
],
"additionalProperties": false
}
},
"additionalProperties": false
}
]
}
},
"required": [
"processor_type",
"configuration"
]
}
}
}
},
"required": [
"data"
]
},
"ProcessorCreateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/ProcessorCreate"
}
},
"required": [
"data"
]
},
"ProcessorResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Processor"
}
},
"required": [
"data"
]
},
"ProcessorUpdate": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"processors"
]
},
"id": {},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"configuration": {
"oneOf": [
{
"type": "object",
"title": "Mutelist",
"properties": {
"Mutelist": {
"type": "object",
"properties": {
"Accounts": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"Checks": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"Regions": {
"type": "array",
"items": {
"type": "string"
}
},
"Resources": {
"type": "array",
"items": {
"type": "string"
}
},
"Tags": {
"type": "array",
"items": {
"type": "string"
}
},
"Exceptions": {
"type": "object",
"properties": {
"Accounts": {
"type": "array",
"items": {
"type": "string"
}
},
"Regions": {
"type": "array",
"items": {
"type": "string"
}
},
"Resources": {
"type": "array",
"items": {
"type": "string"
}
},
"Tags": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"Description": {
"type": "string"
}
},
"required": [
"Regions",
"Resources"
],
"additionalProperties": false
}
}
},
"required": [
"Checks"
],
"additionalProperties": false
}
}
},
"required": [
"Accounts"
],
"additionalProperties": false
}
},
"additionalProperties": false
}
]
}
},
"required": [
"configuration"
]
}
}
},
"ProcessorUpdateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/ProcessorUpdate"
}
},
"required": [
"data"
]
},
"Provider": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"providers"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"provider": {
"enum": [
"aws",
"azure",
"gcp",
"kubernetes",
"m365",
"github",
"iac",
"oraclecloud"
],
"type": "string",
"description": "* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure",
"x-spec-enum-id": "cfe6f885ff538a1a"
},
"uid": {
"type": "string",
"title": "Unique identifier for the provider, set by the provider",
"maxLength": 250,
"minLength": 3
},
"alias": {
"type": "string",
"nullable": true,
"maxLength": 100,
"minLength": 3
},
"connection": {
"type": "object",
"properties": {
"connected": {
"type": "boolean"
},
"last_checked_at": {
"type": "string",
"format": "date-time"
}
},
"readOnly": true
}
},
"required": [
"provider",
"uid"
]
},
"relationships": {
"type": "object",
"properties": {
"secret": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"provider-secrets"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier"
},
"provider_groups": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"provider-groups"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type provider-groups",
"title": "provider-groups",
"readOnly": true
}
},
"required": [
"secret"
]
}
}
},
"ProviderCreate": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"providers"
]
},
"attributes": {
"type": "object",
"properties": {
"alias": {
"type": "string",
"nullable": true,
"description": "Human readable name to identify the provider, e.g. 'Production AWS Account', 'Dev Environment'",
"maxLength": 100,
"minLength": 3
},
"provider": {
"enum": [
"aws",
"azure",
"gcp",
"kubernetes",
"m365",
"github",
"iac",
"oraclecloud"
],
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"description": "Type of provider to create.\n\n* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure"
},
"uid": {
"type": "string",
"title": "Unique identifier for the provider, set by the provider",
"description": "Unique identifier for the provider, set by the provider, e.g. AWS account ID, Azure subscription ID, GCP project ID, etc.",
"maxLength": 250,
"minLength": 3
}
},
"required": [
"uid"
]
}
}
},
"ProviderCreateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"providers"
]
},
"attributes": {
"type": "object",
"properties": {
"alias": {
"type": "string",
"nullable": true,
"description": "Human readable name to identify the provider, e.g. 'Production AWS Account', 'Dev Environment'",
"maxLength": 100,
"minLength": 3
},
"provider": {
"enum": [
"aws",
"azure",
"gcp",
"kubernetes",
"m365",
"github",
"iac",
"oraclecloud"
],
"type": "string",
"x-spec-enum-id": "cfe6f885ff538a1a",
"description": "Type of provider to create.\n\n* `aws` - AWS\n* `azure` - Azure\n* `gcp` - GCP\n* `kubernetes` - Kubernetes\n* `m365` - M365\n* `github` - GitHub\n* `iac` - IaC\n* `oraclecloud` - Oracle Cloud Infrastructure"
},
"uid": {
"type": "string",
"minLength": 3,
"title": "Unique identifier for the provider, set by the provider",
"description": "Unique identifier for the provider, set by the provider, e.g. AWS account ID, Azure subscription ID, GCP project ID, etc.",
"maxLength": 250
}
},
"required": [
"uid"
]
}
}
}
},
"required": [
"data"
]
},
"ProviderCreateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/ProviderCreate"
}
},
"required": [
"data"
]
},
"ProviderGroup": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"provider-groups"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 255
},
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
}
},
"required": [
"name"
]
},
"relationships": {
"type": "object",
"properties": {
"providers": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"providers"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type providers",
"title": "providers"
},
"roles": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"roles"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type roles",
"title": "roles"
}
}
}
}
},
"ProviderGroupCreate": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"provider-groups"
]
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 255
},
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
}
},
"required": [
"name"
]
},
"relationships": {
"type": "object",
"properties": {
"providers": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"providers"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type providers",
"title": "providers"
},
"roles": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"roles"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type roles",
"title": "roles"
}
}
}
}
},
"ProviderGroupCreateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"provider-groups"
]
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
}
},
"required": [
"name"
]
},
"relationships": {
"type": "object",
"properties": {
"providers": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"providers"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type providers",
"title": "providers"
},
"roles": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"roles"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type roles",
"title": "roles"
}
}
}
}
}
},
"required": [
"data"
]
},
"ProviderGroupCreateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/ProviderGroupCreate"
}
},
"required": [
"data"
]
},
"ProviderGroupMembershipRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"provider_groups-provider"
]
},
"attributes": {
"type": "object",
"properties": {
"providers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ProviderResourceIdentifierRequest"
},
"description": "List of resource identifier objects representing providers."
}
},
"required": [
"providers"
]
}
}
}
},
"required": [
"data"
]
},
"ProviderGroupResourceIdentifierRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"provider-group-identifier"
]
},
"attributes": {
"type": "object",
"properties": {
"resource_type": {
"type": "string",
"minLength": 1
},
"id": {
"type": "string",
"format": "uuid"
}
},
"required": [
"resource_type",
"id"
]
}
}
}
},
"required": [
"data"
]
},
"ProviderGroupResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/ProviderGroup"
}
},
"required": [
"data"
]
},
"ProviderResourceIdentifierRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"provider-identifier"
]
},
"attributes": {
"type": "object",
"properties": {
"resource_type": {
"type": "string",
"minLength": 1
},
"id": {
"type": "string",
"format": "uuid"
}
},
"required": [
"resource_type",
"id"
]
}
}
}
},
"required": [
"data"
]
},
"ProviderResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Provider"
}
},
"required": [
"data"
]
},
"ProviderSecret": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"provider-secrets"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"name": {
"type": "string",
"nullable": true,
"maxLength": 100,
"minLength": 3
},
"secret_type": {
"enum": [
"static",
"role",
"service_account"
],
"type": "string",
"description": "* `static` - Key-value pairs\n* `role` - Role assumption\n* `service_account` - GCP Service Account Key",
"x-spec-enum-id": "20c74ebcd6671497"
}
},
"required": [
"secret_type"
]
},
"relationships": {
"type": "object",
"properties": {
"provider": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"providers"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier"
}
},
"required": [
"provider"
]
}
}
},
"ProviderSecretCreate": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"provider-secrets"
]
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"name": {
"type": "string",
"nullable": true,
"maxLength": 100,
"minLength": 3
},
"secret_type": {
"enum": [
"static",
"role",
"service_account"
],
"type": "string",
"description": "* `static` - Key-value pairs\n* `role` - Role assumption\n* `service_account` - GCP Service Account Key",
"x-spec-enum-id": "20c74ebcd6671497"
},
"secret": {
"oneOf": [
{
"type": "object",
"title": "AWS Static Credentials",
"properties": {
"aws_access_key_id": {
"type": "string",
"description": "The AWS access key ID. Required for environments where no IAM role is being assumed and direct AWS access is needed."
},
"aws_secret_access_key": {
"type": "string",
"description": "The AWS secret access key. Must accompany 'aws_access_key_id' to authorize access to AWS resources."
},
"aws_session_token": {
"type": "string",
"description": "The session token associated with temporary credentials. Only needed for session-based or temporary AWS access."
}
},
"required": [
"aws_access_key_id",
"aws_secret_access_key"
]
},
{
"type": "object",
"title": "AWS Assume Role",
"properties": {
"role_arn": {
"type": "string",
"description": "The Amazon Resource Name (ARN) of the role to assume. Required for AWS role assumption."
},
"external_id": {
"type": "string",
"description": "An identifier to enhance security for role assumption."
},
"aws_access_key_id": {
"type": "string",
"description": "The AWS access key ID. Only required if the environment lacks pre-configured AWS credentials."
},
"aws_secret_access_key": {
"type": "string",
"description": "The AWS secret access key. Required if 'aws_access_key_id' is provided or if no AWS credentials are pre-configured."
},
"aws_session_token": {
"type": "string",
"description": "The session token for temporary credentials, if applicable."
},
"session_duration": {
"type": "integer",
"minimum": 900,
"maximum": 43200,
"default": 3600,
"description": "The duration (in seconds) for the role session."
},
"role_session_name": {
"type": "string",
"description": "An identifier for the role session, useful for tracking sessions in AWS logs. The regex used to validate this parameter is a string of characters consisting of upper- and lower-case alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@-\n\nExamples:\n- MySession123\n- User_Session-1\n- Test.Session@2",
"pattern": "^[a-zA-Z0-9=,.@_-]+$"
}
},
"required": [
"role_arn",
"external_id"
]
},
{
"type": "object",
"title": "Azure Static Credentials",
"properties": {
"client_id": {
"type": "string",
"description": "The Azure application (client) ID for authentication in Azure AD."
},
"client_secret": {
"type": "string",
"description": "The client secret associated with the application (client) ID, providing secure access."
},
"tenant_id": {
"type": "string",
"description": "The Azure tenant ID, representing the directory where the application is registered."
}
},
"required": [
"client_id",
"client_secret",
"tenant_id"
]
},
{
"type": "object",
"title": "M365 Static Credentials",
"properties": {
"client_id": {
"type": "string",
"description": "The Azure application (client) ID for authentication in Azure AD."
},
"tenant_id": {
"type": "string",
"description": "The Azure tenant ID, representing the directory where the application is registered."
},
"client_secret": {
"type": "string",
"description": "The client secret associated with the application (client) ID, providing secure access."
},
"user": {
"type": "string",
"description": "User microsoft email address.",
"deprecated": true,
"format": "email"
},
"password": {
"type": "string",
"description": "User password.",
"deprecated": true
}
},
"required": [
"client_id",
"client_secret",
"tenant_id",
"user",
"password"
]
},
{
"type": "object",
"title": "M365 Certificate Credentials",
"properties": {
"client_id": {
"type": "string",
"description": "The Azure application (client) ID for authentication in Azure AD."
},
"tenant_id": {
"type": "string",
"description": "The Azure tenant ID, representing the directory where the application is registered."
},
"certificate_content": {
"type": "string",
"description": "The certificate content in base64 format for certificate-based authentication."
}
},
"required": [
"client_id",
"tenant_id",
"certificate_content"
]
},
{
"type": "object",
"title": "GCP Static Credentials",
"properties": {
"client_id": {
"type": "string",
"description": "The client ID from Google Cloud, used to identify the application for GCP access."
},
"client_secret": {
"type": "string",
"description": "The client secret associated with the GCP client ID, required for secure access."
},
"refresh_token": {
"type": "string",
"description": "A refresh token that allows the application to obtain new access tokens for extended use."
}
},
"required": [
"client_id",
"client_secret",
"refresh_token"
]
},
{
"type": "object",
"title": "GCP Service Account Key",
"properties": {
"service_account_key": {
"type": "object",
"description": "The service account key for GCP."
}
},
"required": [
"service_account_key"
]
},
{
"type": "object",
"title": "Kubernetes Static Credentials",
"properties": {
"kubeconfig_content": {
"type": "string",
"description": "The content of the Kubernetes kubeconfig file, encoded as a string."
}
},
"required": [
"kubeconfig_content"
]
},
{
"type": "object",
"title": "GitHub Personal Access Token",
"properties": {
"personal_access_token": {
"type": "string",
"description": "GitHub personal access token for authentication."
}
},
"required": [
"personal_access_token"
]
},
{
"type": "object",
"title": "GitHub OAuth App Token",
"properties": {
"oauth_app_token": {
"type": "string",
"description": "GitHub OAuth App token for authentication."
}
},
"required": [
"oauth_app_token"
]
},
{
"type": "object",
"title": "GitHub App Credentials",
"properties": {
"github_app_id": {
"type": "integer",
"description": "GitHub App ID for authentication."
},
"github_app_key": {
"type": "string",
"description": "Path to the GitHub App private key file."
}
},
"required": [
"github_app_id",
"github_app_key"
]
},
{
"type": "object",
"title": "IaC Repository Credentials",
"properties": {
"repository_url": {
"type": "string",
"description": "Repository URL to scan for IaC files."
},
"access_token": {
"type": "string",
"description": "Optional access token for private repositories."
}
},
"required": [
"repository_url"
]
},
{
"type": "object",
"title": "Oracle Cloud Infrastructure (OCI) API Key Credentials",
"properties": {
"user": {
"type": "string",
"description": "The OCID of the user to authenticate with."
},
"fingerprint": {
"type": "string",
"description": "The fingerprint of the API signing key."
},
"key_file": {
"type": "string",
"description": "The path to the private key file for API signing. Either key_file or key_content must be provided."
},
"key_content": {
"type": "string",
"description": "The content of the private key for API signing (base64 encoded). Either key_file or key_content must be provided."
},
"tenancy": {
"type": "string",
"description": "The OCID of the tenancy."
},
"region": {
"type": "string",
"description": "The OCI region identifier (e.g., us-ashburn-1, us-phoenix-1)."
},
"pass_phrase": {
"type": "string",
"description": "The passphrase for the private key, if encrypted."
}
},
"required": [
"user",
"fingerprint",
"tenancy",
"region"
]
}
],
"writeOnly": true
}
},
"required": [
"secret_type",
"secret"
]
},
"relationships": {
"type": "object",
"properties": {
"provider": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"providers"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier"
}
},
"required": [
"provider"
]
}
}
},
"ProviderSecretCreateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"provider-secrets"
]
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"name": {
"type": "string",
"nullable": true,
"maxLength": 100,
"minLength": 3
},
"secret_type": {
"enum": [
"static",
"role",
"service_account"
],
"type": "string",
"description": "* `static` - Key-value pairs\n* `role` - Role assumption\n* `service_account` - GCP Service Account Key",
"x-spec-enum-id": "20c74ebcd6671497"
},
"secret": {
"oneOf": [
{
"type": "object",
"title": "AWS Static Credentials",
"properties": {
"aws_access_key_id": {
"type": "string",
"description": "The AWS access key ID. Required for environments where no IAM role is being assumed and direct AWS access is needed."
},
"aws_secret_access_key": {
"type": "string",
"description": "The AWS secret access key. Must accompany 'aws_access_key_id' to authorize access to AWS resources."
},
"aws_session_token": {
"type": "string",
"description": "The session token associated with temporary credentials. Only needed for session-based or temporary AWS access."
}
},
"required": [
"aws_access_key_id",
"aws_secret_access_key"
]
},
{
"type": "object",
"title": "AWS Assume Role",
"properties": {
"role_arn": {
"type": "string",
"description": "The Amazon Resource Name (ARN) of the role to assume. Required for AWS role assumption."
},
"external_id": {
"type": "string",
"description": "An identifier to enhance security for role assumption."
},
"aws_access_key_id": {
"type": "string",
"description": "The AWS access key ID. Only required if the environment lacks pre-configured AWS credentials."
},
"aws_secret_access_key": {
"type": "string",
"description": "The AWS secret access key. Required if 'aws_access_key_id' is provided or if no AWS credentials are pre-configured."
},
"aws_session_token": {
"type": "string",
"description": "The session token for temporary credentials, if applicable."
},
"session_duration": {
"type": "integer",
"minimum": 900,
"maximum": 43200,
"default": 3600,
"description": "The duration (in seconds) for the role session."
},
"role_session_name": {
"type": "string",
"description": "An identifier for the role session, useful for tracking sessions in AWS logs. The regex used to validate this parameter is a string of characters consisting of upper- and lower-case alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@-\n\nExamples:\n- MySession123\n- User_Session-1\n- Test.Session@2",
"pattern": "^[a-zA-Z0-9=,.@_-]+$"
}
},
"required": [
"role_arn",
"external_id"
]
},
{
"type": "object",
"title": "Azure Static Credentials",
"properties": {
"client_id": {
"type": "string",
"description": "The Azure application (client) ID for authentication in Azure AD."
},
"client_secret": {
"type": "string",
"description": "The client secret associated with the application (client) ID, providing secure access."
},
"tenant_id": {
"type": "string",
"description": "The Azure tenant ID, representing the directory where the application is registered."
}
},
"required": [
"client_id",
"client_secret",
"tenant_id"
]
},
{
"type": "object",
"title": "M365 Static Credentials",
"properties": {
"client_id": {
"type": "string",
"description": "The Azure application (client) ID for authentication in Azure AD."
},
"tenant_id": {
"type": "string",
"description": "The Azure tenant ID, representing the directory where the application is registered."
},
"client_secret": {
"type": "string",
"description": "The client secret associated with the application (client) ID, providing secure access."
},
"user": {
"type": "string",
"description": "User microsoft email address.",
"deprecated": true,
"format": "email"
},
"password": {
"type": "string",
"description": "User password.",
"deprecated": true
}
},
"required": [
"client_id",
"client_secret",
"tenant_id",
"user",
"password"
]
},
{
"type": "object",
"title": "M365 Certificate Credentials",
"properties": {
"client_id": {
"type": "string",
"description": "The Azure application (client) ID for authentication in Azure AD."
},
"tenant_id": {
"type": "string",
"description": "The Azure tenant ID, representing the directory where the application is registered."
},
"certificate_content": {
"type": "string",
"description": "The certificate content in base64 format for certificate-based authentication."
}
},
"required": [
"client_id",
"tenant_id",
"certificate_content"
]
},
{
"type": "object",
"title": "GCP Static Credentials",
"properties": {
"client_id": {
"type": "string",
"description": "The client ID from Google Cloud, used to identify the application for GCP access."
},
"client_secret": {
"type": "string",
"description": "The client secret associated with the GCP client ID, required for secure access."
},
"refresh_token": {
"type": "string",
"description": "A refresh token that allows the application to obtain new access tokens for extended use."
}
},
"required": [
"client_id",
"client_secret",
"refresh_token"
]
},
{
"type": "object",
"title": "GCP Service Account Key",
"properties": {
"service_account_key": {
"type": "object",
"description": "The service account key for GCP."
}
},
"required": [
"service_account_key"
]
},
{
"type": "object",
"title": "Kubernetes Static Credentials",
"properties": {
"kubeconfig_content": {
"type": "string",
"description": "The content of the Kubernetes kubeconfig file, encoded as a string."
}
},
"required": [
"kubeconfig_content"
]
},
{
"type": "object",
"title": "GitHub Personal Access Token",
"properties": {
"personal_access_token": {
"type": "string",
"description": "GitHub personal access token for authentication."
}
},
"required": [
"personal_access_token"
]
},
{
"type": "object",
"title": "GitHub OAuth App Token",
"properties": {
"oauth_app_token": {
"type": "string",
"description": "GitHub OAuth App token for authentication."
}
},
"required": [
"oauth_app_token"
]
},
{
"type": "object",
"title": "GitHub App Credentials",
"properties": {
"github_app_id": {
"type": "integer",
"description": "GitHub App ID for authentication."
},
"github_app_key": {
"type": "string",
"description": "Path to the GitHub App private key file."
}
},
"required": [
"github_app_id",
"github_app_key"
]
},
{
"type": "object",
"title": "IaC Repository Credentials",
"properties": {
"repository_url": {
"type": "string",
"description": "Repository URL to scan for IaC files."
},
"access_token": {
"type": "string",
"description": "Optional access token for private repositories."
}
},
"required": [
"repository_url"
]
},
{
"type": "object",
"title": "Oracle Cloud Infrastructure (OCI) API Key Credentials",
"properties": {
"user": {
"type": "string",
"description": "The OCID of the user to authenticate with."
},
"fingerprint": {
"type": "string",
"description": "The fingerprint of the API signing key."
},
"key_file": {
"type": "string",
"description": "The path to the private key file for API signing. Either key_file or key_content must be provided."
},
"key_content": {
"type": "string",
"description": "The content of the private key for API signing (base64 encoded). Either key_file or key_content must be provided."
},
"tenancy": {
"type": "string",
"description": "The OCID of the tenancy."
},
"region": {
"type": "string",
"description": "The OCI region identifier (e.g., us-ashburn-1, us-phoenix-1)."
},
"pass_phrase": {
"type": "string",
"description": "The passphrase for the private key, if encrypted."
}
},
"required": [
"user",
"fingerprint",
"tenancy",
"region"
]
}
],
"writeOnly": true
}
},
"required": [
"secret_type",
"secret"
]
},
"relationships": {
"type": "object",
"properties": {
"provider": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"providers"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier"
}
},
"required": [
"provider"
]
}
}
}
},
"required": [
"data"
]
},
"ProviderSecretCreateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/ProviderSecretCreate"
}
},
"required": [
"data"
]
},
"ProviderSecretResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/ProviderSecret"
}
},
"required": [
"data"
]
},
"ProviderSecretUpdate": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"provider-secrets"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"name": {
"type": "string",
"nullable": true,
"maxLength": 100,
"minLength": 3
},
"secret_type": {
"enum": [
"static",
"role",
"service_account"
],
"type": "string",
"description": "* `static` - Key-value pairs\n* `role` - Role assumption\n* `service_account` - GCP Service Account Key",
"x-spec-enum-id": "20c74ebcd6671497"
},
"secret": {
"oneOf": [
{
"type": "object",
"title": "AWS Static Credentials",
"properties": {
"aws_access_key_id": {
"type": "string",
"description": "The AWS access key ID. Required for environments where no IAM role is being assumed and direct AWS access is needed."
},
"aws_secret_access_key": {
"type": "string",
"description": "The AWS secret access key. Must accompany 'aws_access_key_id' to authorize access to AWS resources."
},
"aws_session_token": {
"type": "string",
"description": "The session token associated with temporary credentials. Only needed for session-based or temporary AWS access."
}
},
"required": [
"aws_access_key_id",
"aws_secret_access_key"
]
},
{
"type": "object",
"title": "AWS Assume Role",
"properties": {
"role_arn": {
"type": "string",
"description": "The Amazon Resource Name (ARN) of the role to assume. Required for AWS role assumption."
},
"external_id": {
"type": "string",
"description": "An identifier to enhance security for role assumption."
},
"aws_access_key_id": {
"type": "string",
"description": "The AWS access key ID. Only required if the environment lacks pre-configured AWS credentials."
},
"aws_secret_access_key": {
"type": "string",
"description": "The AWS secret access key. Required if 'aws_access_key_id' is provided or if no AWS credentials are pre-configured."
},
"aws_session_token": {
"type": "string",
"description": "The session token for temporary credentials, if applicable."
},
"session_duration": {
"type": "integer",
"minimum": 900,
"maximum": 43200,
"default": 3600,
"description": "The duration (in seconds) for the role session."
},
"role_session_name": {
"type": "string",
"description": "An identifier for the role session, useful for tracking sessions in AWS logs. The regex used to validate this parameter is a string of characters consisting of upper- and lower-case alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@-\n\nExamples:\n- MySession123\n- User_Session-1\n- Test.Session@2",
"pattern": "^[a-zA-Z0-9=,.@_-]+$"
}
},
"required": [
"role_arn",
"external_id"
]
},
{
"type": "object",
"title": "Azure Static Credentials",
"properties": {
"client_id": {
"type": "string",
"description": "The Azure application (client) ID for authentication in Azure AD."
},
"client_secret": {
"type": "string",
"description": "The client secret associated with the application (client) ID, providing secure access."
},
"tenant_id": {
"type": "string",
"description": "The Azure tenant ID, representing the directory where the application is registered."
}
},
"required": [
"client_id",
"client_secret",
"tenant_id"
]
},
{
"type": "object",
"title": "M365 Static Credentials",
"properties": {
"client_id": {
"type": "string",
"description": "The Azure application (client) ID for authentication in Azure AD."
},
"tenant_id": {
"type": "string",
"description": "The Azure tenant ID, representing the directory where the application is registered."
},
"client_secret": {
"type": "string",
"description": "The client secret associated with the application (client) ID, providing secure access."
},
"user": {
"type": "string",
"description": "User microsoft email address.",
"deprecated": true,
"format": "email"
},
"password": {
"type": "string",
"description": "User password.",
"deprecated": true
}
},
"required": [
"client_id",
"client_secret",
"tenant_id",
"user",
"password"
]
},
{
"type": "object",
"title": "M365 Certificate Credentials",
"properties": {
"client_id": {
"type": "string",
"description": "The Azure application (client) ID for authentication in Azure AD."
},
"tenant_id": {
"type": "string",
"description": "The Azure tenant ID, representing the directory where the application is registered."
},
"certificate_content": {
"type": "string",
"description": "The certificate content in base64 format for certificate-based authentication."
}
},
"required": [
"client_id",
"tenant_id",
"certificate_content"
]
},
{
"type": "object",
"title": "GCP Static Credentials",
"properties": {
"client_id": {
"type": "string",
"description": "The client ID from Google Cloud, used to identify the application for GCP access."
},
"client_secret": {
"type": "string",
"description": "The client secret associated with the GCP client ID, required for secure access."
},
"refresh_token": {
"type": "string",
"description": "A refresh token that allows the application to obtain new access tokens for extended use."
}
},
"required": [
"client_id",
"client_secret",
"refresh_token"
]
},
{
"type": "object",
"title": "GCP Service Account Key",
"properties": {
"service_account_key": {
"type": "object",
"description": "The service account key for GCP."
}
},
"required": [
"service_account_key"
]
},
{
"type": "object",
"title": "Kubernetes Static Credentials",
"properties": {
"kubeconfig_content": {
"type": "string",
"description": "The content of the Kubernetes kubeconfig file, encoded as a string."
}
},
"required": [
"kubeconfig_content"
]
},
{
"type": "object",
"title": "GitHub Personal Access Token",
"properties": {
"personal_access_token": {
"type": "string",
"description": "GitHub personal access token for authentication."
}
},
"required": [
"personal_access_token"
]
},
{
"type": "object",
"title": "GitHub OAuth App Token",
"properties": {
"oauth_app_token": {
"type": "string",
"description": "GitHub OAuth App token for authentication."
}
},
"required": [
"oauth_app_token"
]
},
{
"type": "object",
"title": "GitHub App Credentials",
"properties": {
"github_app_id": {
"type": "integer",
"description": "GitHub App ID for authentication."
},
"github_app_key": {
"type": "string",
"description": "Path to the GitHub App private key file."
}
},
"required": [
"github_app_id",
"github_app_key"
]
},
{
"type": "object",
"title": "IaC Repository Credentials",
"properties": {
"repository_url": {
"type": "string",
"description": "Repository URL to scan for IaC files."
},
"access_token": {
"type": "string",
"description": "Optional access token for private repositories."
}
},
"required": [
"repository_url"
]
},
{
"type": "object",
"title": "Oracle Cloud Infrastructure (OCI) API Key Credentials",
"properties": {
"user": {
"type": "string",
"description": "The OCID of the user to authenticate with."
},
"fingerprint": {
"type": "string",
"description": "The fingerprint of the API signing key."
},
"key_file": {
"type": "string",
"description": "The path to the private key file for API signing. Either key_file or key_content must be provided."
},
"key_content": {
"type": "string",
"description": "The content of the private key for API signing (base64 encoded). Either key_file or key_content must be provided."
},
"tenancy": {
"type": "string",
"description": "The OCID of the tenancy."
},
"region": {
"type": "string",
"description": "The OCI region identifier (e.g., us-ashburn-1, us-phoenix-1)."
},
"pass_phrase": {
"type": "string",
"description": "The passphrase for the private key, if encrypted."
}
},
"required": [
"user",
"fingerprint",
"tenancy",
"region"
]
}
],
"writeOnly": true
}
},
"required": [
"secret"
]
},
"relationships": {
"type": "object",
"properties": {
"provider": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"providers"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"readOnly": true
}
}
}
}
},
"ProviderSecretUpdateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/ProviderSecretUpdate"
}
},
"required": [
"data"
]
},
"Resource": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"resources"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"uid": {
"type": "string",
"title": "Unique identifier for the resource, set by the provider"
},
"name": {
"type": "string",
"title": "Name of the resource, as set in the provider"
},
"region": {
"type": "string",
"title": "Location of the resource, as set by the provider"
},
"service": {
"type": "string",
"title": "Service of the resource, as set by the provider"
},
"tags": {
"type": "object",
"description": "Tags associated with the resource",
"example": {
"env": "prod",
"owner": "johndoe"
},
"readOnly": true
},
"failed_findings_count": {
"type": "integer",
"readOnly": true
},
"type": {
"type": "string",
"readOnly": true
}
},
"required": [
"uid",
"name",
"region",
"service"
]
},
"relationships": {
"type": "object",
"properties": {
"provider": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"providers"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier"
},
"findings": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"findings"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"readOnly": true
}
},
"required": [
"provider"
]
}
}
},
"ResourceMetadata": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"resources-metadata"
]
},
"id": {},
"attributes": {
"type": "object",
"properties": {
"services": {
"type": "array",
"items": {
"type": "string"
}
},
"regions": {
"type": "array",
"items": {
"type": "string"
}
},
"types": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"services",
"regions",
"types"
]
}
}
},
"ResourceMetadataResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/ResourceMetadata"
}
},
"required": [
"data"
]
},
"ResourceResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Resource"
}
},
"required": [
"data"
]
},
"Role": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"roles"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 255
},
"manage_users": {
"type": "boolean"
},
"manage_account": {
"type": "boolean"
},
"manage_integrations": {
"type": "boolean"
},
"manage_providers": {
"type": "boolean"
},
"manage_scans": {
"type": "boolean"
},
"permission_state": {
"type": "string",
"readOnly": true
},
"unlimited_visibility": {
"type": "boolean"
},
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
}
},
"required": [
"name"
]
},
"relationships": {
"type": "object",
"properties": {
"provider_groups": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"provider-groups"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type provider-groups",
"title": "provider-groups"
},
"users": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"users"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type users",
"title": "users"
},
"invitations": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"invitations"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type invitations",
"title": "invitations",
"readOnly": true
}
}
}
}
},
"RoleCreate": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"roles"
]
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 255
},
"manage_users": {
"type": "boolean"
},
"manage_account": {
"type": "boolean"
},
"manage_integrations": {
"type": "boolean"
},
"manage_providers": {
"type": "boolean"
},
"manage_scans": {
"type": "boolean"
},
"permission_state": {
"type": "string",
"readOnly": true
},
"unlimited_visibility": {
"type": "boolean"
},
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
}
},
"required": [
"name"
]
},
"relationships": {
"type": "object",
"properties": {
"provider_groups": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"provider-groups"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type provider-groups",
"title": "provider-groups"
},
"users": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"users"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type users",
"title": "users"
},
"invitations": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"invitations"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type invitations",
"title": "invitations",
"readOnly": true
}
}
}
}
},
"RoleCreateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"roles"
]
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"manage_users": {
"type": "boolean"
},
"manage_account": {
"type": "boolean"
},
"manage_integrations": {
"type": "boolean"
},
"manage_providers": {
"type": "boolean"
},
"manage_scans": {
"type": "boolean"
},
"permission_state": {
"type": "string",
"readOnly": true
},
"unlimited_visibility": {
"type": "boolean"
},
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
}
},
"required": [
"name"
]
},
"relationships": {
"type": "object",
"properties": {
"provider_groups": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"provider-groups"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type provider-groups",
"title": "provider-groups"
},
"users": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"users"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type users",
"title": "users"
},
"invitations": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"invitations"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type invitations",
"title": "invitations",
"readOnly": true
}
}
}
}
}
},
"required": [
"data"
]
},
"RoleCreateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/RoleCreate"
}
},
"required": [
"data"
]
},
"RoleProviderGroupRelationshipRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"role-provider_groups"
]
},
"attributes": {
"type": "object",
"properties": {
"provider_groups": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ProviderGroupResourceIdentifierRequest"
},
"description": "List of resource identifier objects representing provider groups."
}
},
"required": [
"provider_groups"
]
}
}
}
},
"required": [
"data"
]
},
"RoleResourceIdentifierRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"role-identifier"
]
},
"attributes": {
"type": "object",
"properties": {
"resource_type": {
"type": "string",
"minLength": 1
},
"id": {
"type": "string",
"format": "uuid"
}
},
"required": [
"resource_type",
"id"
]
}
}
}
},
"required": [
"data"
]
},
"RoleResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Role"
}
},
"required": [
"data"
]
},
"SAMLConfiguration": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"saml-configurations"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"email_domain": {
"type": "string",
"description": "Email domain used to identify the tenant, e.g. prowlerdemo.com",
"maxLength": 254
},
"metadata_xml": {
"type": "string",
"description": "Raw IdP metadata XML to configure SingleSignOnService, certificates, etc."
},
"created_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
}
},
"required": [
"email_domain",
"metadata_xml"
]
}
}
},
"SAMLConfigurationRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"saml-configurations"
]
},
"attributes": {
"type": "object",
"properties": {
"email_domain": {
"type": "string",
"minLength": 1,
"description": "Email domain used to identify the tenant, e.g. prowlerdemo.com",
"maxLength": 254
},
"metadata_xml": {
"type": "string",
"minLength": 1,
"description": "Raw IdP metadata XML to configure SingleSignOnService, certificates, etc."
},
"created_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
}
},
"required": [
"email_domain",
"metadata_xml"
]
}
}
}
},
"required": [
"data"
]
},
"SAMLConfigurationResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/SAMLConfiguration"
}
},
"required": [
"data"
]
},
"Scan": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"scans"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"nullable": true,
"maxLength": 100,
"minLength": 3
},
"trigger": {
"enum": [
"scheduled",
"manual"
],
"type": "string",
"description": "* `scheduled` - Scheduled\n* `manual` - Manual",
"x-spec-enum-id": "2e52c981d1c89bdf",
"readOnly": true
},
"state": {
"enum": [
"available",
"scheduled",
"executing",
"completed",
"failed",
"cancelled"
],
"type": "string",
"description": "* `available` - Available\n* `scheduled` - Scheduled\n* `executing` - Executing\n* `completed` - Completed\n* `failed` - Failed\n* `cancelled` - Cancelled",
"x-spec-enum-id": "d38ba07264e1ed34",
"readOnly": true
},
"unique_resource_count": {
"type": "integer",
"maximum": 2147483647,
"minimum": -2147483648
},
"progress": {
"type": "integer",
"maximum": 2147483647,
"minimum": -2147483648
},
"duration": {
"type": "integer",
"maximum": 2147483647,
"minimum": -2147483648,
"nullable": true
},
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"started_at": {
"type": "string",
"format": "date-time",
"nullable": true
},
"completed_at": {
"type": "string",
"format": "date-time",
"nullable": true
},
"scheduled_at": {
"type": "string",
"format": "date-time",
"nullable": true
},
"next_scan_at": {
"type": "string",
"format": "date-time",
"nullable": true
}
}
},
"relationships": {
"type": "object",
"properties": {
"provider": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"providers"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier"
},
"task": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"tasks"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"nullable": true
},
"processor": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"processors"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"nullable": true
}
},
"required": [
"provider"
]
}
}
},
"ScanCreateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"scans"
]
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"nullable": true,
"maxLength": 100,
"minLength": 3
}
}
},
"relationships": {
"type": "object",
"properties": {
"provider": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"providers"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier"
}
},
"required": [
"provider"
]
}
}
}
},
"required": [
"data"
]
},
"ScanResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Scan"
}
},
"required": [
"data"
]
},
"ScanUpdate": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"scans"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"nullable": true,
"maxLength": 100,
"minLength": 3
}
}
}
}
},
"ScanUpdateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/ScanUpdate"
}
},
"required": [
"data"
]
},
"ScheduleDailyCreateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"daily-schedules"
]
},
"attributes": {
"type": "object",
"properties": {
"provider_id": {
"type": "string",
"format": "uuid"
}
},
"required": [
"provider_id"
]
}
}
}
},
"required": [
"data"
]
},
"SerializerMetaclassResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/MuteRule"
}
},
"required": [
"data"
]
},
"Task": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"tasks"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"completed_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"name": {
"type": "string",
"readOnly": true
},
"state": {
"type": "string",
"enum": [
"available",
"scheduled",
"executing",
"completed",
"failed",
"cancelled"
],
"readOnly": true
},
"result": {
"readOnly": true
},
"task_args": {
"readOnly": true
},
"metadata": {
"readOnly": true
}
}
}
}
},
"TaskResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Task"
}
},
"required": [
"data"
]
},
"Tenant": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"tenants"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 100
}
},
"required": [
"name"
]
},
"relationships": {
"type": "object",
"properties": {
"memberships": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"memberships"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type memberships",
"title": "memberships",
"readOnly": true
}
}
}
}
},
"TenantApiKey": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"api-keys"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 100,
"minLength": 3
},
"prefix": {
"type": "string",
"readOnly": true,
"description": "Unique prefix to identify the API key"
},
"expires_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"revoked": {
"type": "boolean",
"description": "If the API key is revoked, entities cannot use it anymore. (This cannot be undone.)"
},
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"last_used_at": {
"type": "string",
"format": "date-time",
"nullable": true,
"description": "Last time this API key was used for authentication"
}
},
"required": [
"name"
]
},
"relationships": {
"type": "object",
"properties": {
"entity": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"users"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"nullable": true
}
}
}
}
},
"TenantApiKeyCreate": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"api-keys"
]
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 100,
"minLength": 3
},
"prefix": {
"type": "string",
"readOnly": true,
"description": "Unique prefix to identify the API key"
},
"expires_at": {
"type": "string",
"format": "date-time"
},
"revoked": {
"type": "boolean",
"readOnly": true,
"description": "If the API key is revoked, entities cannot use it anymore. (This cannot be undone.)"
},
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"last_used_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"nullable": true,
"description": "Last time this API key was used for authentication"
},
"api_key": {
"type": "string",
"readOnly": true
}
},
"required": [
"name"
]
},
"relationships": {
"type": "object",
"properties": {
"entity": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"users"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"readOnly": true,
"nullable": true
}
}
}
}
},
"TenantApiKeyCreateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"api-keys"
]
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 3,
"maxLength": 100
},
"prefix": {
"type": "string",
"readOnly": true,
"minLength": 1,
"description": "Unique prefix to identify the API key"
},
"expires_at": {
"type": "string",
"format": "date-time"
},
"revoked": {
"type": "boolean",
"readOnly": true,
"description": "If the API key is revoked, entities cannot use it anymore. (This cannot be undone.)"
},
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"last_used_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"nullable": true,
"description": "Last time this API key was used for authentication"
},
"api_key": {
"type": "string",
"readOnly": true
}
},
"required": [
"name"
]
},
"relationships": {
"type": "object",
"properties": {
"entity": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"users"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"readOnly": true,
"nullable": true
}
}
}
}
}
},
"required": [
"data"
]
},
"TenantApiKeyCreateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/TenantApiKeyCreate"
}
},
"required": [
"data"
]
},
"TenantApiKeyResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/TenantApiKey"
}
},
"required": [
"data"
]
},
"TenantApiKeyUpdate": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"api-keys"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 100,
"minLength": 3
},
"prefix": {
"type": "string",
"readOnly": true,
"description": "Unique prefix to identify the API key"
},
"expires_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"inserted_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"last_used_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"nullable": true,
"description": "Last time this API key was used for authentication"
}
},
"required": [
"name"
]
},
"relationships": {
"type": "object",
"properties": {
"entity": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"users"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"readOnly": true,
"nullable": true
}
}
}
}
},
"TenantApiKeyUpdateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/TenantApiKeyUpdate"
}
},
"required": [
"data"
]
},
"TenantRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"tenants"
]
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"required": [
"name"
]
},
"relationships": {
"type": "object",
"properties": {
"memberships": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"title": "Resource Identifier",
"description": "The identifier of the related object."
},
"type": {
"type": "string",
"enum": [
"memberships"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"data"
],
"description": "A related resource object from type memberships",
"title": "memberships",
"readOnly": true
}
}
}
}
}
},
"required": [
"data"
]
},
"TenantResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Tenant"
}
},
"required": [
"data"
]
},
"Token": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"tokens"
]
},
"attributes": {
"type": "object",
"properties": {
"email": {
"type": "string",
"writeOnly": true
},
"password": {
"type": "string",
"writeOnly": true
},
"tenant_id": {
"type": "string",
"format": "uuid",
"writeOnly": true,
"description": "If not provided, the tenant ID of the first membership that was added to the user will be used."
},
"refresh": {
"type": "string",
"readOnly": true
},
"access": {
"type": "string",
"readOnly": true
}
},
"required": [
"email",
"password"
]
}
}
},
"TokenRefresh": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"tokens-refresh"
]
},
"attributes": {
"type": "object",
"properties": {
"refresh": {
"type": "string"
},
"access": {
"type": "string",
"readOnly": true
}
},
"required": [
"refresh"
]
}
}
},
"TokenRefreshRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"tokens-refresh"
]
},
"attributes": {
"type": "object",
"properties": {
"refresh": {
"type": "string",
"minLength": 1
},
"access": {
"type": "string",
"readOnly": true,
"minLength": 1
}
},
"required": [
"refresh"
]
}
}
}
},
"required": [
"data"
]
},
"TokenRefreshResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/TokenRefresh"
}
},
"required": [
"data"
]
},
"TokenRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"tokens"
]
},
"attributes": {
"type": "object",
"properties": {
"email": {
"type": "string",
"writeOnly": true,
"minLength": 1
},
"password": {
"type": "string",
"writeOnly": true,
"minLength": 1
},
"tenant_id": {
"type": "string",
"format": "uuid",
"writeOnly": true,
"description": "If not provided, the tenant ID of the first membership that was added to the user will be used."
},
"refresh": {
"type": "string",
"readOnly": true,
"minLength": 1
},
"access": {
"type": "string",
"readOnly": true,
"minLength": 1
}
},
"required": [
"email",
"password"
]
}
}
}
},
"required": [
"data"
]
},
"TokenResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Token"
}
},
"required": [
"data"
]
},
"TokenSwitchTenant": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"tokens-switch-tenant"
]
},
"attributes": {
"type": "object",
"properties": {
"tenant_id": {
"type": "string",
"format": "uuid",
"writeOnly": true,
"description": "The tenant ID for which to request a new token."
},
"access": {
"type": "string",
"readOnly": true
},
"refresh": {
"type": "string",
"readOnly": true
}
},
"required": [
"tenant_id"
]
}
}
},
"TokenSwitchTenantRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"tokens-switch-tenant"
]
},
"attributes": {
"type": "object",
"properties": {
"tenant_id": {
"type": "string",
"format": "uuid",
"writeOnly": true,
"description": "The tenant ID for which to request a new token."
},
"access": {
"type": "string",
"readOnly": true,
"minLength": 1
},
"refresh": {
"type": "string",
"readOnly": true,
"minLength": 1
}
},
"required": [
"tenant_id"
]
}
}
}
},
"required": [
"data"
]
},
"TokenSwitchTenantResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/TokenSwitchTenant"
}
},
"required": [
"data"
]
},
"User": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"users"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 150,
"minLength": 3
},
"email": {
"type": "string",
"format": "email",
"description": "Case insensitive",
"maxLength": 254
},
"company_name": {
"type": "string",
"maxLength": 150
},
"date_joined": {
"type": "string",
"format": "date-time",
"readOnly": true
}
},
"required": [
"name",
"email"
]
},
"relationships": {
"type": "object",
"properties": {
"memberships": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"memberships"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"readOnly": true
},
"roles": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"roles"
],
"title": "Resource Type Name",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."
}
},
"required": [
"id",
"type"
]
}
},
"required": [
"data"
],
"description": "The identifier of the related object.",
"title": "Resource Identifier",
"readOnly": true
}
}
}
}
},
"UserCreate": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"users"
]
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 150,
"minLength": 3
},
"password": {
"type": "string",
"writeOnly": true
},
"email": {
"type": "string",
"format": "email",
"description": "Case insensitive",
"maxLength": 254
},
"company_name": {
"type": "string"
}
},
"required": [
"name",
"password",
"email"
]
}
}
},
"UserCreateRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"users"
]
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 3,
"maxLength": 150
},
"password": {
"type": "string",
"writeOnly": true,
"minLength": 1
},
"email": {
"type": "string",
"format": "email",
"minLength": 1,
"description": "Case insensitive",
"maxLength": 254
},
"company_name": {
"type": "string",
"minLength": 1
}
},
"required": [
"name",
"password",
"email"
]
}
}
}
},
"required": [
"data"
]
},
"UserCreateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/UserCreate"
}
},
"required": [
"data"
]
},
"UserResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/User"
}
},
"required": [
"data"
]
},
"UserRoleRelationshipRequest": {
"type": "object",
"properties": {
"data": {
"type": "object",
"required": [
"type"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"user-roles"
]
},
"attributes": {
"type": "object",
"properties": {
"roles": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RoleResourceIdentifierRequest"
},
"description": "List of resource identifier objects representing roles."
}
},
"required": [
"roles"
]
}
}
}
},
"required": [
"data"
]
},
"UserUpdate": {
"type": "object",
"required": [
"type",
"id"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.",
"enum": [
"users"
]
},
"id": {
"type": "string",
"format": "uuid"
},
"attributes": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 150,
"minLength": 3
},
"password": {
"type": "string",
"writeOnly": true
},
"email": {
"type": "string",
"format": "email",
"description": "Case insensitive",
"maxLength": 254
},
"company_name": {
"type": "string",
"maxLength": 150
}
},
"required": [
"name",
"email"
]
}
}
},
"UserUpdateResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/UserUpdate"
}
},
"required": [
"data"
]
}
},
"securitySchemes": {
"JWT or API Key": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "JWT",
"description": "Supports both JWT Bearer tokens and API Key authentication. Use `Bearer <token>` for JWT or `Api-Key <key>` for API keys."
}
}
},
"tags": [
{
"name": "User",
"description": "Endpoints for managing user accounts."
},
{
"name": "Token",
"description": "Endpoints for token management, including obtaining a new token and refreshing an existing token for authentication purposes."
},
{
"name": "Tenant",
"description": "Endpoints for managing tenants, along with their memberships."
},
{
"name": "Invitation",
"description": "Endpoints for tenant invitations management, allowing retrieval and filtering of invitations, creating new invitations, accepting and revoking them."
},
{
"name": "Role",
"description": "Endpoints for managing RBAC roles within tenants, allowing creation, retrieval, updating, and deletion of role configurations and permissions."
},
{
"name": "Provider",
"description": "Endpoints for managing providers (AWS, GCP, Azure, etc...)."
},
{
"name": "Provider Group",
"description": "Endpoints for managing provider groups."
},
{
"name": "Task",
"description": "Endpoints for task management, allowing retrieval of task status and revoking tasks that have not started."
},
{
"name": "Scan",
"description": "Endpoints for triggering manual scans and viewing scan results."
},
{
"name": "Schedule",
"description": "Endpoints for managing scan schedules, allowing configuration of automated scans with different scheduling options."
},
{
"name": "Resource",
"description": "Endpoints for managing resources discovered by scans, allowing retrieval and filtering of resource information."
},
{
"name": "Finding",
"description": "Endpoints for managing findings, allowing retrieval and filtering of findings that result from scans."
},
{
"name": "Processor",
"description": "Endpoints for managing post-processors used to process Prowler findings, including registration, configuration, and deletion of post-processing actions."
},
{
"name": "Compliance Overview",
"description": "Endpoints for checking the compliance overview, allowing filtering by scan, provider or compliance framework ID."
},
{
"name": "Overview",
"description": "Endpoints for retrieving aggregated summaries of resources from the system."
},
{
"name": "Integration",
"description": "Endpoints for managing third-party integrations, including registration, configuration, retrieval, and deletion of integrations such as S3, JIRA, or other services."
},
{
"name": "Lighthouse AI",
"description": "Endpoints for managing Lighthouse AI configurations, including creation, retrieval, updating, and deletion of configurations such as OpenAI keys, models, and business context."
},
{
"name": "SAML",
"description": "Endpoints for Single Sign-On authentication management via SAML for seamless user authentication."
},
{
"name": "API Keys",
"description": "Endpoints for API keys management. These can be used as an alternative to JWT authorization."
},
{
"name": "Mute Rules",
"description": "Endpoints for simple mute rules management. These can be used as an alternative to the Mutelist Processor if you need to mute specific findings across your tenant with a specific reason."
}
]
}