openapi: 3.0.1
info:
title: AuroraX Application.wadl Operations - SITL API
description: "## Overview\n\nThis webpage is an interactive documentation interface for the AuroraX RESTful API. This API\nis used by several applications including the AuroraX Conjunction Search, Event Explorer,\nKeogramist, PyAuroraX, and IDL-AuroraX. You can view these applications and libraries at\nhttps://aurorax.space and\nhttps://github.com/aurorax-space.\n\nDetailed documentation about the AuroraX platform and examples of using this API can be found at\nhttps://docs.aurorax.space.\n\nBelow, we outline the major categories of endpoints available for use:\n\n| Interface | Description |\n| ---------------- | --------------------------------------------------------------------------- |\n| Accounts | Operations relating to user accounts, API keys, and saved user data |\n| Authentication | Authentication using an email address and password, or an API key |\n| Availability | Retrieve information describing what data is in the database |\n| Data Sources | Interact with data sources |\n| Conjunctions | Search for conjunctions between multiple sets of data sources |\n| Ephemeris | Search and manage ephemeris data associated with a data source |\n| Data Products | Search and manage data products data associated with a data source |\n| Utils | Utilities, such as describing a search query in an SQL-like format |\n\n## Authentication\n\nAuroraX allows for two methods of authentication:\n\n1. Authenticate via username and password using the /authenticate endpoint to obtain an access\n token. Access tokens need to be sent on every request for secure resources. Inactive access tokens\n timeout after 30 minutes.\n\n2. Authenticate using an API key sent in the request header (key called 'x-aurorax-api-key')\n\nMore information can be found\nhere.\n\n## Errors\n\nThis API uses standard HTTP status codes to indicate the success or failure of the\nAPI call. When an error occurs, the body of the response will be JSON and contain an error code\nand message. All errors will respond with this format:\n```\n{\n \"error_code\": \"DUPLICATE\",\n \"error_message\": \"There was a duplicate record found. No changes were made.\"\n}\n```\n"
version: stable
servers:
- url: https://api.aurorax.space
description: AuroraX production server
variables: {}
- url: https://api.staging.aurorax.space
description: AuroraX staging server
variables: {}
- url: http://localhost:8080/
description: Local Development and Debugging
variables: {}
tags:
- name: Operations - SITL
description: Endpoints for Scientist In The Loop (SITL) operations
paths:
/api/v1/ops/sitl/arctics/data_products:
get:
tags:
- Operations - SITL
summary: Retrieve ARCTICS SITL data products
operationId: get_data_products_api_v1_ops_sitl_arctics_data_products_get
security:
- HTTPBearer: []
- APIKeyHeader: []
parameters:
- name: date
in: query
required: true
schema:
type: string
format: date
title: Date
- name: site_uid
in: query
required: true
schema:
type: string
title: Site Uid
- name: device_uid
in: query
required: true
schema:
type: string
title: Device Uid
responses:
'200':
description: ARCTICS SITL data products for a given day
content:
application/json:
schema:
$ref: '#/components/schemas/ARCTICSDataProductsResponse'
'401':
description: Authentication failed
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'403':
description: The supplied credentials do not permit access to this endpoint
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/ops/sitl/arctics/keep_times:
get:
tags:
- Operations - SITL
summary: Retrieve timeframes to keep ARCTICS data for
operationId: get_keep_times_api_v1_ops_sitl_arctics_keep_times_get
security:
- HTTPBearer: []
- APIKeyHeader: []
parameters:
- name: start
in: query
required: true
schema:
type: string
format: date-time
title: Start
- name: end
in: query
required: true
schema:
type: string
format: date-time
title: End
- name: site_uid
in: query
required: false
schema:
nullable: true
type: string
title: Site Uid
- name: device_uid
in: query
required: false
schema:
nullable: true
type: string
title: Device Uid
- name: instrument_uid
in: query
required: false
schema:
nullable: true
type: string
title: Instrument Uid
responses:
'200':
description: ARCTICS saved timeframes
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ARCTICSKeepTimeframe'
title: Response Get Keep Times Api V1 Ops Sitl Arctics Keep Times Get
'401':
description: Authentication failed
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'403':
description: The supplied credentials do not permit access to this endpoint
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
post:
tags:
- Operations - SITL
summary: Upload a timeframe to keep ARCTICS data for
description: Upload a timeframe to keep ARCTICS data for.
operationId: upload_timeframe_api_v1_ops_sitl_arctics_keep_times_post
security:
- HTTPBearer: []
- APIKeyHeader: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ARCTICSUploadTimeframeRequest'
responses:
'201':
description: Timeframe successfully ingested
'401':
description: Authentication failed
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'403':
description: The supplied credentials do not permit access to this endpoint
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'500':
description: Timeframe upload error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Operations - SITL
summary: Delete a timeframe to keep ARCTICS data for
description: Delete a timeframe to keep ARCTICS data for.
operationId: delete_timeframe_api_v1_ops_sitl_arctics_keep_times_delete
security:
- HTTPBearer: []
- APIKeyHeader: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ARCTICSDeleteTimeframeRequest'
responses:
'200':
description: Timeframe successfully deleted
'401':
description: Authentication failed
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'403':
description: The supplied credentials do not permit access to this endpoint
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'404':
description: Timeframe to delete was not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'500':
description: Timeframe deletion error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/ops/sitl/logging:
post:
tags:
- Operations - SITL
summary: Upload a SITL log event
description: "Upload a SITL log message.\n\nNotes:\n - Possible values for category: arctics, trex_rgb_burst\n - Possible values for level: debug, info, warning, error"
operationId: upload_log_messages_api_v1_ops_sitl_logging_post
security:
- HTTPBearer: []
- APIKeyHeader: []
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/SITLLogMessage'
title: Request Obj
responses:
'201':
description: Log message successfully ingested
'401':
description: Authentication failed
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'403':
description: The supplied credentials do not permit access to this endpoint
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'500':
description: Log message upload error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
get:
tags:
- Operations - SITL
summary: Retrieve SITL log events
description: "Retrieve SITL log messages.\n\nNotes:\n - ordering key is 'timestamp'\n - if level parameter is not supplied, it will return log messages from all levels"
operationId: get_log_messages_api_v1_ops_sitl_logging_get
security:
- HTTPBearer: []
- APIKeyHeader: []
parameters:
- name: start
in: query
required: true
schema:
type: string
format: date-time
title: Start
- name: end
in: query
required: true
schema:
type: string
format: date-time
title: End
- name: category
in: query
required: true
schema:
enum:
- arctics
- trex_rgb_burst
type: string
title: Category
- name: level
in: query
required: false
schema:
nullable: true
enum:
- debug
- info
- warning
- error
type: string
title: Level
- name: order
in: query
required: false
schema:
enum:
- ascending
- descending
type: string
default: ascending
title: Order
responses:
'200':
description: SITL log events
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/SITLLogMessage'
title: Response Get Log Messages Api V1 Ops Sitl Logging Get
'401':
description: Authentication failed
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'403':
description: The supplied credentials do not permit access to this endpoint
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'500':
description: Log message retrieval error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
ARCTICSKeogramRecord:
properties:
url:
type: string
title: Url
timestamp:
type: string
format: date-time
title: Timestamp
modified_time:
type: string
format: date-time
title: Modified Time
filesize_bytes:
type: integer
title: Filesize Bytes
filesize_str:
type: string
title: Filesize Str
type: object
required:
- url
- timestamp
- modified_time
- filesize_bytes
- filesize_str
title: ARCTICSKeogramRecord
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
SITLLogMessage:
properties:
category:
type: string
enum:
- arctics
- trex_rgb_burst
title: Category
level:
type: string
enum:
- debug
- info
- warning
- error
title: Level
timestamp:
nullable: true
type: string
format: date-time
title: Timestamp
message:
type: string
title: Message
type: object
required:
- category
- level
- message
title: SITLLogMessage
ARCTICSKeepTimeframe:
properties:
start:
type: string
format: date-time
title: Start
end:
type: string
format: date-time
title: End
site_uid:
type: string
title: Site Uid
device_uid:
type: string
title: Device Uid
instrument_uid:
type: string
enum:
- smile
title: Instrument Uid
last_updated_user:
type: string
title: Last Updated User
last_updated_ts:
type: string
format: date-time
title: Last Updated Ts
type: object
required:
- start
- end
- site_uid
- device_uid
- instrument_uid
- last_updated_user
- last_updated_ts
title: ARCTICSKeepTimeframe
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ARCTICSDeleteTimeframeRequest:
properties:
start:
type: string
format: date-time
title: Start
end:
type: string
format: date-time
title: End
instrument_uid:
type: string
enum:
- smile
title: Instrument Uid
site_uid:
type: string
title: Site Uid
device_uid:
type: string
title: Device Uid
type: object
required:
- start
- end
- instrument_uid
- site_uid
- device_uid
title: ARCTICSDeleteTimeframeRequest
ARCTICSMontageRecord:
properties:
url:
type: string
title: Url
timestamp:
type: string
format: date-time
title: Timestamp
modified_time:
type: string
format: date-time
title: Modified Time
filesize_bytes:
type: integer
title: Filesize Bytes
filesize_str:
type: string
title: Filesize Str
type: object
required:
- url
- timestamp
- modified_time
- filesize_bytes
- filesize_str
title: ARCTICSMontageRecord
ARCTICSDataProductsResponse:
properties:
date:
type: string
format: date
title: Date
site_uid:
type: string
title: Site Uid
device_uid:
type: string
title: Device Uid
dp_daily_keogram:
nullable: true
$ref: '#/components/schemas/ARCTICSKeogramRecord'
dp_hourly_keograms:
items:
$ref: '#/components/schemas/ARCTICSKeogramRecord'
type: array
title: Dp Hourly Keograms
default: []
dp_daily_montage:
nullable: true
$ref: '#/components/schemas/ARCTICSMontageRecord'
dp_hourly_montages:
items:
$ref: '#/components/schemas/ARCTICSMontageRecord'
type: array
title: Dp Hourly Montages
default: []
dp_daily_movie_lowres:
nullable: true
$ref: '#/components/schemas/ARCTICSMovieRecord'
type: object
required:
- date
- site_uid
- device_uid
title: ARCTICSDataProductsResponse
ErrorMessage:
properties:
detail:
type: string
title: Detail
type: object
required:
- detail
title: ErrorMessage
ARCTICSMovieRecord:
properties:
url:
type: string
title: Url
timestamp:
type: string
format: date-time
title: Timestamp
modified_time:
type: string
format: date-time
title: Modified Time
filesize_bytes:
type: integer
title: Filesize Bytes
filesize_str:
type: string
title: Filesize Str
duration_seconds:
type: number
title: Duration Seconds
duration_str:
type: string
title: Duration Str
type: object
required:
- url
- timestamp
- modified_time
- filesize_bytes
- filesize_str
- duration_seconds
- duration_str
title: ARCTICSMovieRecord
ARCTICSUploadTimeframeRequest:
properties:
start:
type: string
format: date-time
title: Start
end:
type: string
format: date-time
title: End
instrument_uid:
type: string
enum:
- smile
title: Instrument Uid
site_uid:
type: string
title: Site Uid
device_uid:
type: string
title: Device Uid
username:
type: string
title: Username
type: object
required:
- start
- end
- instrument_uid
- site_uid
- device_uid
- username
title: ARCTICSUploadTimeframeRequest
securitySchemes:
AccessToken:
type: http
description: Send the Authorization header found in the response of a successful /authentication request on all secure endpoints. Copy it verbatim to the request header. It is fine to send this header on all requests to the API. The value in Swagger UI should only include the access token part (leave out 'Bearer').
name: Authorization
in: header
scheme: bearer
bearerFormat: Generated by server
ApiKeyAuth:
type: apiKey
description: API keys are intended to be used by non-interactive software interfacing with the REST API. These can be used instead of an Access Token approach.
name: x-aurorax-api-key
in: header