Files
prowler/src/backend/api/specs/v1.yaml
T
Víctor Fernández Poyatos 8130880f2d chore(Tenant, Provider, Scan, Task, Resource): PRWLR-4966 Update default ordering in viewsets (#51)
* chore(Tenant, Provider, Scan, Task, Resource): PRWLR-4966 set default ordering to -inserted_at

* chore: PRWLR-4966 update API schema
2024-10-04 14:33:18 +02:00

3901 lines
107 KiB
YAML

openapi: 3.0.3
info:
title: Prowler API
version: 1.0.0
description: |-
Prowler API specification.
This file is auto-generated.
paths:
/api/v1/findings:
get:
operationId: findings_list
description: Retrieve a list of all findings with options for filtering by various
criteria. If no `scan` or `inserted_at` filter is provided, a default filter
will be applied that will return all findings for the current day.
summary: List all findings
parameters:
- in: query
name: fields[Findings]
schema:
type: array
items:
type: string
enum:
- delta
- status
- status_extended
- severity
- check_id
- check_metadata
- raw_result
- inserted_at
- updated_at
- 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
nullable: true
enum:
- changed
- new
description: |-
* `new` - New
* `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[impact]
schema:
type: string
enum:
- critical
- high
- informational
- low
- medium
description: |-
* `critical` - Critical
* `high` - High
* `medium` - Medium
* `low` - Low
* `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
- in: query
name: filter[inserted_at__lte]
schema:
type: string
format: date
- 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
enum:
- aws
- azure
- gcp
- kubernetes
description: |-
* `aws` - AWS
* `azure` - Azure
* `gcp` - GCP
* `kubernetes` - Kubernetes
- in: query
name: filter[provider_type__in]
schema:
type: array
items:
type: string
enum:
- aws
- azure
- gcp
- kubernetes
description: |-
Multiple values may be separated by commas.
* `aws` - AWS
* `azure` - Azure
* `gcp` - GCP
* `kubernetes` - Kubernetes
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
- in: query
name: filter[scan__in]
schema:
type: string
- 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
enum:
- critical
- high
- informational
- low
- medium
description: |-
* `critical` - Critical
* `high` - High
* `medium` - Medium
* `low` - Low
* `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
enum:
- FAIL
- MANUAL
- MUTED
- PASS
description: |-
* `FAIL` - Fail
* `PASS` - Pass
* `MANUAL` - Manual
* `MUTED` - Muted
- 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[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:
- id
- -id
- status
- -status
- severity
- -severity
- check_id
- -check_id
- inserted_at
- -inserted_at
- updated_at
- -updated_at
explode: false
tags:
- Finding
security:
- jwtAuth: []
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:
- delta
- status
- status_extended
- severity
- check_id
- check_metadata
- raw_result
- inserted_at
- updated_at
- 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:
- jwtAuth: []
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/FindingResponse'
description: ''
/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[Provider]
schema:
type: array
items:
type: string
enum:
- inserted_at
- updated_at
- provider
- uid
- alias
- connection
- scanner_args
- 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
- 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[provider]
schema:
type: string
enum:
- aws
- azure
- gcp
- kubernetes
description: |-
* `aws` - AWS
* `azure` - Azure
* `gcp` - GCP
* `kubernetes` - Kubernetes
- in: query
name: filter[provider__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[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
- 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:
- provider
- -provider
- uid
- -uid
- alias
- -alias
- connected
- -connected
- inserted_at
- -inserted_at
- updated_at
- -updated_at
explode: false
tags:
- Provider
security:
- jwtAuth: []
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:
- jwtAuth: []
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[Provider]
schema:
type: array
items:
type: string
enum:
- inserted_at
- updated_at
- provider
- uid
- alias
- connection
- scanner_args
- 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
tags:
- Provider
security:
- jwtAuth: []
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:
- jwtAuth: []
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:
- jwtAuth: []
responses:
'202':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/OpenApiResponseResponse'
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:
- jwtAuth: []
responses:
'202':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/OpenApiResponseResponse'
description: ''
/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[Resource]
schema:
type: array
items:
type: string
enum:
- inserted_at
- updated_at
- uid
- name
- region
- service
- tags
- provider
- findings
- 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
enum:
- aws
- azure
- gcp
- kubernetes
description: |-
* `aws` - AWS
* `azure` - Azure
* `gcp` - GCP
* `kubernetes` - Kubernetes
- in: query
name: filter[provider_type__in]
schema:
type: array
items:
type: string
enum:
- aws
- azure
- gcp
- kubernetes
description: |-
Multiple values may be separated by commas.
* `aws` - AWS
* `azure` - Azure
* `gcp` - GCP
* `kubernetes` - Kubernetes
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: 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:
- findings
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:
- jwtAuth: []
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[Resource]
schema:
type: array
items:
type: string
enum:
- inserted_at
- updated_at
- uid
- name
- region
- service
- tags
- provider
- findings
- 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
description: include query parameter to allow the client to customize which
related resources should be returned.
explode: false
tags:
- Resource
security:
- jwtAuth: []
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/ResourceResponse'
description: ''
/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[Scan]
schema:
type: array
items:
type: string
enum:
- name
- trigger
- state
- unique_resource_count
- progress
- scanner_args
- duration
- provider
- task
- started_at
- completed_at
- scheduled_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
- 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[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
enum:
- aws
- azure
- gcp
- kubernetes
description: |-
* `aws` - AWS
* `azure` - Azure
* `gcp` - GCP
* `kubernetes` - Kubernetes
- in: query
name: filter[provider_type__in]
schema:
type: array
items:
type: string
enum:
- aws
- azure
- gcp
- kubernetes
description: |-
Multiple values may be separated by commas.
* `aws` - AWS
* `azure` - Azure
* `gcp` - GCP
* `kubernetes` - Kubernetes
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[trigger]
schema:
type: string
enum:
- manual
- scheduled
description: |-
* `scheduled` - Scheduled
* `manual` - Manual
- 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:
- jwtAuth: []
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:
- jwtAuth: []
responses:
'202':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/OpenApiResponseResponse'
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[Scan]
schema:
type: array
items:
type: string
enum:
- name
- trigger
- state
- unique_resource_count
- progress
- scanner_args
- duration
- provider
- task
- started_at
- completed_at
- scheduled_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
- in: path
name: id
schema:
type: string
format: uuid
description: A UUID string identifying this scan.
required: true
tags:
- Scan
security:
- jwtAuth: []
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:
- jwtAuth: []
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/ScanUpdateResponse'
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[Task]
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
* `available` - Available
* `scheduled` - Scheduled
* `executing` - Executing
* `completed` - Completed
* `failed` - Failed
* `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:
- jwtAuth: []
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[Task]
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:
- jwtAuth: []
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:
- jwtAuth: []
responses:
'202':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/OpenApiResponseResponse'
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[Tenant]
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:
- jwtAuth: []
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:
- jwtAuth: []
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[Tenant]
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:
- jwtAuth: []
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:
- jwtAuth: []
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:
- jwtAuth: []
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[Membership]
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:
- jwtAuth: []
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:
- jwtAuth: []
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:
- jwtAuth: []
- {}
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:
- jwtAuth: []
- {}
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/TokenRefreshResponse'
description: ''
/api/v1/users:
post:
operationId: users_create
description: Create a new user account by providing the necessary registration
details.
summary: Register a new user
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:
- jwtAuth: []
- {}
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. It only
allows using your own user ID.
summary: Retrieve a user's information
parameters:
- in: query
name: fields[User]
schema:
type: array
items:
type: string
enum:
- name
- email
- company_name
- date_joined
- 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 user.
required: true
tags:
- User
security:
- jwtAuth: []
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/UserResponse'
description: ''
patch:
operationId: users_partial_update
description: Partially update the authenticated user's information.
summary: Update the current user's 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:
- jwtAuth: []
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/UserUpdateResponse'
description: ''
delete:
operationId: users_destroy
description: Remove the authenticated user's account from the system.
summary: Delete the current user's account
parameters:
- in: path
name: id
schema:
type: string
format: uuid
description: A UUID string identifying this user.
required: true
tags:
- User
security:
- jwtAuth: []
responses:
'204':
description: No response body
/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[Membership]
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
enum:
- member
- owner
description: |-
* `owner` - Owner
* `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:
- jwtAuth: []
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[Membership]
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:
- jwtAuth: []
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[User]
schema:
type: array
items:
type: string
enum:
- name
- email
- company_name
- date_joined
- memberships
description: endpoint return only specific fields in the response on a per-type
basis by including a fields[TYPE] query parameter.
explode: false
tags:
- User
security:
- jwtAuth: []
responses:
'200':
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/UserResponse'
description: ''
components:
schemas:
Finding:
type: object
required:
- type
- id
additionalProperties: false
properties:
type:
allOf:
- $ref: '#/components/schemas/FindingTypeEnum'
description: The [type](https://jsonapi.org/format/#document-resource-object-identification)
member is used to describe resource objects that share common attributes
and relationships.
id:
type: string
format: uuid
attributes:
type: object
properties:
delta:
enum:
- new
- changed
- null
type: string
description: |-
* `new` - New
* `changed` - Changed
nullable: true
status:
enum:
- FAIL
- PASS
- MANUAL
- MUTED
type: string
description: |-
* `FAIL` - Fail
* `PASS` - Pass
* `MANUAL` - Manual
* `MUTED` - Muted
status_extended:
type: string
nullable: true
severity:
enum:
- critical
- high
- medium
- low
- informational
type: string
description: |-
* `critical` - Critical
* `high` - High
* `medium` - Medium
* `low` - Low
* `informational` - Informational
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
required:
- 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:
- Scan
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: object
properties:
id:
type: string
type:
type: string
enum:
- Resource
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:
- scan
FindingResponse:
type: object
properties:
data:
$ref: '#/components/schemas/Finding'
required:
- data
FindingTypeEnum:
type: string
enum:
- Findings
Membership:
type: object
required:
- type
- id
additionalProperties: false
properties:
type:
allOf:
- $ref: '#/components/schemas/MembershipTypeEnum'
description: The [type](https://jsonapi.org/format/#document-resource-object-identification)
member is used to describe resource objects that share common attributes
and relationships.
id:
type: string
format: uuid
attributes:
type: object
properties:
role:
enum:
- owner
- member
type: string
description: |-
* `owner` - Owner
* `member` - Member
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:
- User
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:
- Tenant
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
MembershipTypeEnum:
type: string
enum:
- Membership
OpenApiResponseResponse:
type: object
properties:
data:
$ref: '#/components/schemas/Task'
required:
- data
PaginatedFindingList:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Finding'
required:
- data
PaginatedMembershipList:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Membership'
required:
- data
PaginatedProviderList:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Provider'
required:
- data
PaginatedResourceList:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Resource'
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
PaginatedTenantList:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Tenant'
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:
- Provider
id: {}
attributes:
type: object
properties:
alias:
type: string
nullable: true
maxLength: 100
minLength: 3
scanner_args: {}
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:
- Scan
id:
type: string
format: uuid
attributes:
type: object
properties:
name:
type: string
nullable: true
maxLength: 100
minLength: 3
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:
- Tenant
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:
- Membership
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 Membership
title: Membership
readOnly: true
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:
- User
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
maxLength: 254
company_name:
type: string
maxLength: 150
required:
- name
- email
required:
- data
Provider:
type: object
required:
- type
- id
additionalProperties: false
properties:
type:
allOf:
- $ref: '#/components/schemas/Type4e8Enum'
description: The [type](https://jsonapi.org/format/#document-resource-object-identification)
member is used to describe resource objects that share common attributes
and relationships.
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
type: string
description: |-
* `aws` - AWS
* `azure` - Azure
* `gcp` - GCP
* `kubernetes` - Kubernetes
uid:
type: string
title: Unique identifier for the provider, set by the provider
maxLength: 63
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
scanner_args: {}
required:
- provider
- uid
ProviderCreate:
type: object
required:
- type
additionalProperties: false
properties:
type:
allOf:
- $ref: '#/components/schemas/Type4e8Enum'
description: The [type](https://jsonapi.org/format/#document-resource-object-identification)
member is used to describe resource objects that share common attributes
and relationships.
attributes:
type: object
properties:
alias:
type: string
nullable: true
maxLength: 100
minLength: 3
provider:
enum:
- aws
- azure
- gcp
- kubernetes
type: string
description: |-
* `aws` - AWS
* `azure` - Azure
* `gcp` - GCP
* `kubernetes` - Kubernetes
uid:
type: string
title: Unique identifier for the provider, set by the provider
maxLength: 63
minLength: 3
scanner_args: {}
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:
- Provider
attributes:
type: object
properties:
alias:
type: string
nullable: true
maxLength: 100
minLength: 3
provider:
enum:
- aws
- azure
- gcp
- kubernetes
type: string
description: |-
* `aws` - AWS
* `azure` - Azure
* `gcp` - GCP
* `kubernetes` - Kubernetes
uid:
type: string
minLength: 3
title: Unique identifier for the provider, set by the provider
maxLength: 63
scanner_args: {}
required:
- uid
required:
- data
ProviderCreateResponse:
type: object
properties:
data:
$ref: '#/components/schemas/ProviderCreate'
required:
- data
ProviderResponse:
type: object
properties:
data:
$ref: '#/components/schemas/Provider'
required:
- data
Resource:
type: object
required:
- type
- id
additionalProperties: false
properties:
type:
allOf:
- $ref: '#/components/schemas/ResourceTypeEnum'
description: The [type](https://jsonapi.org/format/#document-resource-object-identification)
member is used to describe resource objects that share common attributes
and relationships.
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
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:
- Provider
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:
- Finding
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
ResourceResponse:
type: object
properties:
data:
$ref: '#/components/schemas/Resource'
required:
- data
ResourceTypeEnum:
type: string
enum:
- Resource
Scan:
type: object
required:
- type
- id
additionalProperties: false
properties:
type:
allOf:
- $ref: '#/components/schemas/Type2bbEnum'
description: The [type](https://jsonapi.org/format/#document-resource-object-identification)
member is used to describe resource objects that share common attributes
and relationships.
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
* `manual` - Manual
readOnly: true
state:
enum:
- available
- scheduled
- executing
- completed
- failed
- cancelled
type: string
description: |-
* `available` - Available
* `scheduled` - Scheduled
* `executing` - Executing
* `completed` - Completed
* `failed` - Failed
* `cancelled` - Cancelled
readOnly: true
unique_resource_count:
type: integer
maximum: 2147483647
minimum: -2147483648
progress:
type: integer
maximum: 2147483647
minimum: -2147483648
scanner_args: {}
duration:
type: integer
maximum: 2147483647
minimum: -2147483648
nullable: 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
relationships:
type: object
properties:
provider:
type: object
properties:
data:
type: object
properties:
id:
type: string
format: uuid
type:
type: string
enum:
- Provider
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:
- Task
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:
- Scan
attributes:
type: object
properties:
scanner_args: {}
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:
- Provider
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:
allOf:
- $ref: '#/components/schemas/Type2bbEnum'
description: The [type](https://jsonapi.org/format/#document-resource-object-identification)
member is used to describe resource objects that share common attributes
and relationships.
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
SerializerMetaclassResponse:
type: object
properties:
data:
$ref: '#/components/schemas/Provider'
required:
- data
Task:
type: object
required:
- type
additionalProperties: false
properties:
type:
allOf:
- $ref: '#/components/schemas/TaskTypeEnum'
description: The [type](https://jsonapi.org/format/#document-resource-object-identification)
member is used to describe resource objects that share common attributes
and relationships.
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
TaskTypeEnum:
type: string
enum:
- Task
Tenant:
type: object
required:
- type
- id
additionalProperties: false
properties:
type:
allOf:
- $ref: '#/components/schemas/TenantTypeEnum'
description: The [type](https://jsonapi.org/format/#document-resource-object-identification)
member is used to describe resource objects that share common attributes
and relationships.
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:
- Membership
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 Membership
title: Membership
readOnly: true
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:
- Tenant
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:
- Membership
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 Membership
title: Membership
readOnly: true
required:
- data
TenantResponse:
type: object
properties:
data:
$ref: '#/components/schemas/Tenant'
required:
- data
TenantTypeEnum:
type: string
enum:
- Tenant
Token:
type: object
required:
- type
additionalProperties: false
properties:
type:
allOf:
- $ref: '#/components/schemas/TokenTypeEnum'
description: The [type](https://jsonapi.org/format/#document-resource-object-identification)
member is used to describe resource objects that share common attributes
and relationships.
attributes:
type: object
properties:
email:
type: string
format: email
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:
allOf:
- $ref: '#/components/schemas/TokenRefreshTypeEnum'
description: The [type](https://jsonapi.org/format/#document-resource-object-identification)
member is used to describe resource objects that share common attributes
and relationships.
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:
- TokenRefresh
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
TokenRefreshTypeEnum:
type: string
enum:
- TokenRefresh
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:
- Token
attributes:
type: object
properties:
email:
type: string
format: email
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
TokenTypeEnum:
type: string
enum:
- Token
Type2bbEnum:
type: string
enum:
- Scan
Type4e8Enum:
type: string
enum:
- Provider
TypeAddEnum:
type: string
enum:
- User
User:
type: object
required:
- type
- id
additionalProperties: false
properties:
type:
allOf:
- $ref: '#/components/schemas/TypeAddEnum'
description: The [type](https://jsonapi.org/format/#document-resource-object-identification)
member is used to describe resource objects that share common attributes
and relationships.
id:
type: string
format: uuid
attributes:
type: object
properties:
name:
type: string
maxLength: 150
minLength: 3
email:
type: string
format: email
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: array
items:
type: object
properties:
id:
type: string
format: uuid
title: Resource Identifier
description: The identifier of the related object.
type:
type: string
enum:
- Membership
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 Membership
title: Membership
readOnly: true
UserCreate:
type: object
required:
- type
additionalProperties: false
properties:
type:
allOf:
- $ref: '#/components/schemas/TypeAddEnum'
description: The [type](https://jsonapi.org/format/#document-resource-object-identification)
member is used to describe resource objects that share common attributes
and relationships.
attributes:
type: object
properties:
name:
type: string
maxLength: 150
minLength: 3
password:
type: string
writeOnly: true
email:
type: string
format: email
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:
- User
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
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
UserUpdate:
type: object
required:
- type
- id
additionalProperties: false
properties:
type:
allOf:
- $ref: '#/components/schemas/TypeAddEnum'
description: The [type](https://jsonapi.org/format/#document-resource-object-identification)
member is used to describe resource objects that share common attributes
and relationships.
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
maxLength: 254
company_name:
type: string
maxLength: 150
required:
- name
- email
UserUpdateResponse:
type: object
properties:
data:
$ref: '#/components/schemas/UserUpdate'
required:
- data
securitySchemes:
jwtAuth:
type: http
scheme: bearer
bearerFormat: JWT