swagger: '2.0'
info:
title: Raster Foundry
description: An application to find, view, and analyze geospatial data at any scale
version: "1.18.0"
host: app.rasterfoundry.com
schemes:
- http
- https
basePath: /api
produces:
- application/json
consumes:
- application/json
securityDefinitions:
# X-API-Key: abcdef12345
APIKeyHeader:
type: apiKey
in: header
name: Authorization
security:
- APIKeyHeader: []
x-top-matter:
- title: Introduction
level: 1
content: |
The Raster Foundry API allows developers to find, view, and analyze geospatial data in Raster Foundry. As the name implies, it's especially useful for working with large raster datasets like satellite imagery.
Raster Foundry is built with an openly licensed, open source code base. If you'd like to peek under the hood, make a request, or become a contributor, find us on Github.
- title: Authentication
level: 2
content: |
Our API identifies applications and users with JSON Web Tokens (JWT). Refresh tokens can be created in your Raster Foundry account and used to generate example requests signed with valid session tokens (detailed instructions are available here).
x-resources:
- name: Projects
description: |
Projects are user-defined collections of scenes and are the fundamental unit that tools act on.
further-description:
- title: Project permissions
content: |
Projects are currently private to the user that created them and cannot be discovered by other Raster Foundry users. However, projects can be shared publicly as a tiled web map with a direct link.
Project permissions will eventually expand to include making projects discoverable to all users or just users within an organization.
- name: Scenes
description: |
Scenes are single or multi-image rasters where every image within the scene shares the same metadata characteristics and are always associated with a datasource. This simplest example of a scene is a single-band image like a land classification raster. The most complex example is a multi-image scene made up of multi-band images, like a pre-tiled aerial image where each tile is one piece of a larger coherent scene.
further-description:
- title: Scene permissions
content: |
By default, imported scenes are private to the user that uploaded them and scenes generated from public data sources are discoverable by all users.
Scene permissions will eventually expand to include making imported scenes discoverable to all users or just users within an organization.
- name: Images
description: |
Images are single or multi-band rasters that can be viewed and edited as a single unit but are always associated with a parent scene. They are sometimes synonymous with their parent scenes and other times just one of several images associated with their parent scenes. One common example of an image is a multispectral satellite image; another is a land classification raster.
further-description:
- title: Image permissions
content: |
Images respect the permissions applied to their parent scenes.
- name: Uploads
description: 'Uploads are datasets that a user or application has attempted to upload to Raster Foundry (successfully or unsuccessfully).'
further-description:
- title: Uploads permissions
content: |
All user uploads are private to that user.
- name: Datasources
description: |
Datasources contain information common to all scenes associated with them, such as the number of bands to expect in images associated with that datasource. A datasource can be specific (e.g. a particular earth observation satellite) or generic (e.g. a 3-band sensor on a UAV). All scenes must have an associated datasource.
- name: Tokens
description: |
Tokens are used to securely identify users and applications accessing the API.
- name: Tools
description: |
Tools are algorithms that can be applied to projects manually or automatically.
Tools can range from primitive statistical queries, to algebraic functions, to complex logic trees of operations happening in parallel. Tools can be constructed of other tools, custom-defined operations, or both. They can take any number of projects as inputs.
- name: Users
description: |
Users and third party applications can be managed with the Users resource.
- name: Organizations
description: |
Organizations are associations of users who share uniform access to permissions-protected resources.
- name: Exports
description: |
Projects can be exported, but individual scenes and images cannot.
- name: Shapes
description: |
Shapes are vectors that each user can create and manage. These shapes can then be used in various ways within the Raster Foundry platform.
- name: Licenses
description: |
A license is an official permission or permit to do, use, or own something. Users can add licenses to the data they create and share in Raster Foundry to communicate to others if and how that data can be used.
- name: Teams
description: |
Teams represent groups of users within (and across) organizations. Each team belongs to one organization. A user can be a member of any number of teams.
- name: Admin
description: |
Platforms, Organizations, and Teams can be used to manage users and visibility of projects, analyses, and scenes. Most of these functions will only be available to uses who are administrating groups.
tags:
- name: Users
description: 'Operations involving users and organizations'
- name: Authentication
description: 'Resources to obtain, use, and delete API tokens'
- name: Imagery
description: 'Interact with imagery'
- name: Lab
description: 'Geospatial processing discovery and endpoints'
- name: Statistics
description: 'Statistical metadata about geospatial data'
- name: Permissions
description: 'Resources relating to object-level access'
- name: Admin
description: 'Resources related to administration'
paths:
/users/dropbox-setup/:
x-resource: Users
post:
summary: 'Store a dropbox access token for a user from an authorization code'
tags:
- Users
parameters:
- name: DropboxAuthRequest
in: body
schema:
$ref: '#/definitions/DropboxAuthRequest'
responses:
200:
description: 'Dropbox access token successfully fetched'
/users/me/:
x-resource: Users
get:
summary: 'Get a logged-in user profile'
tags:
- Users
responses:
200:
description: 'Profile found'
schema:
$ref: '#/definitions/UserSelf'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
patch:
summary: 'Update user profile information'
parameters:
- name: Profile
in: body
schema:
$ref: '#/definitions/Auth0UserProfile'
tags:
- Users
responses:
200:
description: 'Profile updated'
schema:
$ref: '#/definitions/Auth0User'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Update user api tokens'
tags:
- Users
parameters:
- name: User
in: body
schema:
$ref: '#/definitions/User'
responses:
204:
description: 'No Content'
404:
description: 'User not found'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/users/me/roles:
x-resource: Users
get:
summary: "Get a logged-in user's roles"
tags:
- Users
responses:
200:
description: 'Roles found'
schema:
type: array
items:
$ref: '#/definitions/UserGroupRoleWithRelated'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/users/search/:
x-resource: Users
get:
summary: 'Search for users'
tags:
- Users
parameters:
- $ref: '#/parameters/search'
responses:
200:
description: 'Up to 5 users matching search'
schema:
type: array
maxItems: 5
items:
$ref: '#/definitions/UserSearched'
/users/{userID}/:
x-resource: Users
get:
summary: 'Get a single user'
tags:
- Users
parameters:
- $ref: '#/parameters/userID'
responses:
200:
description: 'User found'
schema:
$ref: '#/definitions/UserSearched'
404:
description: 'User not found'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Update a user. Dev use only'
tags:
- Users
parameters:
- $ref: '#/parameters/userID'
- name: User
in: body
required: true
schema:
$ref: '#/definitions/User'
responses:
204:
description: 'Update successful (No Content)'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/organizations/search/:
x-resource: Organizations
get:
summary: 'Search for organizations'
tags:
- Users
parameters:
- $ref: '#/parameters/search'
responses:
200:
description: 'Up to 5 organizations matching search'
schema:
type: array
maxItems: 5
items:
$ref: '#/definitions/Organization'
/organizations/{organizationID}/:
x-resource: Organizations
get:
summary: 'Get details for an organization'
tags:
- Users
parameters:
- $ref: '#/parameters/organizationID'
responses:
200:
description: 'Returned organization'
schema:
$ref: '#/definitions/Organization'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/organizations/{organizationID}/users/:
x-resource: Organizations
get:
summary: 'Get users and roles for an organization'
tags:
- Users
parameters:
- $ref: '#/parameters/organizationID'
responses:
200:
description: 'Paginated list of user roles'
schema:
$ref: '#/definitions/UserPaginated'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/platforms/:
x-resource: Admin
get:
summary: 'Get a list of platforms'
tags:
- Admin
parameters:
- $ref: '#/parameters/page'
- $ref: '#/parameters/pageSize'
responses:
200:
description: 'Paginated list platforms'
schema:
$ref: '#/definitions/PlatformsPaginated'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Create a platform'
tags:
- Admin
parameters:
- name: Platform
in: body
schema:
$ref: '#/definitions/Platform'
responses:
201:
description: 'Platform created'
schema:
$ref: '#/definitions/Platform'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/platforms/{platformID}/:
x-resource: Admin
get:
summary: 'Get a platform'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
responses:
200:
description: 'Platform found'
schema:
$ref: '#/definitions/Platform'
404:
description: 'Platform not found'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Update a platform'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
- name: Platform
in: body
schema:
$ref: '#/definitions/Platform'
responses:
204:
description: 'No Content (Update successful)'
404:
description: 'Platform not found'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected Error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete a platform'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
responses:
204:
description: 'Deletion Successful (no content)'
404:
description: |
The UUID parameter does not refer to platform or the user does not have permission to perform this action
schema:
$ref: '#/definitions/Error'
/platforms/{platformID}/members/:
x-resource: Admin
get:
summary: 'Get a list of users for the platform. Platform admin only'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
- $ref: '#/parameters/page'
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/search'
responses:
200:
description: 'Paginated list of users with their platform role'
schema:
$ref: '#/definitions/UserWithRolePaginated'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Move a user to the platform'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
- name: userRole
in: body
required: true
schema:
$ref: '#/definitions/UserRole'
responses:
200:
description: 'List of modified user roles'
schema:
type: array
items:
$ref: '#/definitions/UserGroupRole'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/platforms/{platformID}/teams/search:
x-resource: Admin
get:
summary: 'Get a list of teams that the user can see on the platform.'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
- $ref: '#/parameters/search'
responses:
200:
description: 'List of teams that meet search criteria'
schema:
type: array
items:
$ref: '#/definitions/Team'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/platforms/{platformID}/organizations/:
x-resource: Admin
get:
summary: 'List platform organizations. Platform admin only.'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
- $ref: '#/parameters/page'
- $ref: '#/parameters/pageSize'
responses:
200:
description: 'Paginated Organizations'
schema:
$ref: '#/definitions/OrganizationsPaginated'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Create an Organization.'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
- name: Organization
in: body
required: true
schema:
$ref: '#/definitions/OrganizationCreate'
responses:
201:
description: 'Organization created'
schema:
$ref: '#/definitions/Organization'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/platforms/{platformID}/organizations/{organizationID}/:
x-resource: Admin
get:
summary: 'Fetch platform organization'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
- $ref: '#/parameters/organizationID'
responses:
200:
description: 'Organization found'
schema:
$ref: '#/definitions/Organization'
404:
description: 'Organization not found'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Update platform organization'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
- $ref: '#/parameters/organizationID'
- name: Organization
in: body
required: true
schema:
$ref: '#/definitions/Organization'
responses:
204:
description: 'No Content (success)'
404:
description: 'Organization not found'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Deactivate platform organization'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
- $ref: '#/parameters/organizationID'
responses:
204:
description: 'No Content (success)'
404:
description: 'Organization not found'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/platforms/{platformID}/organizations/{organizationID}/members/:
x-resource: Admin
get:
summary: 'Fetch organization member list. Organization admin only'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
- $ref: '#/parameters/organizationID'
- $ref: '#/parameters/page'
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/search'
responses:
200:
description: 'Paginated Organization members'
schema:
$ref: '#/definitions/UserWithRolePaginated'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Move a user to the organization'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
- $ref: '#/parameters/organizationID'
- name: userOrganizationRole
description: 'Role that the user will have in the organization'
in: body
schema:
$ref: '#/definitions/UserRole'
responses:
200:
description: 'Modified roles'
schema:
type: array
items:
$ref: '#/definitions/UserGroupRole'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/platforms/{platformID}/organizations/{organizationID}/teams/:
x-resource: Admin
get:
summary: 'Fetch organization teams'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
- $ref: '#/parameters/organizationID'
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/page'
- $ref: '#/parameters/search'
responses:
200:
description: 'Organization teams'
schema:
$ref: '#/definitions/TeamsPaginated'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Create organization team'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
- $ref: '#/parameters/organizationID'
- name: team
in: body
required: true
schema:
$ref: '#/definitions/TeamCreate'
responses:
201:
description: 'Team Created'
schema:
$ref: '#/definitions/Team'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/platforms/{platformID}/organizations/{organizationID}/teams/{teamID}/:
x-resource: Admin
get:
summary: 'Fetch team'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
- $ref: '#/parameters/organizationID'
- $ref: '#/parameters/teamID'
responses:
200:
description: 'Team found'
schema:
$ref: '#/definitions/Team'
404:
description: 'Team not found'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Update team'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
- $ref: '#/parameters/organizationID'
- $ref: '#/parameters/teamID'
- name: team
in: body
required: true
schema:
$ref: '#/definitions/Team'
responses:
204:
description: 'No Content (success)'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete team'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
- $ref: '#/parameters/organizationID'
- $ref: '#/parameters/teamID'
responses:
204:
description: 'No Content (success)'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/platforms/{platformID}/organizations/{organizationID}/teams/{teamID}/members/:
x-resource: Admin
get:
summary: 'Fetch team members'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
- $ref: '#/parameters/organizationID'
- $ref: '#/parameters/teamID'
- $ref: '#/parameters/page'
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/search'
responses:
200:
description: 'Organization teams'
schema:
$ref: '#/definitions/TeamsPaginated'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Add team member'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
- $ref: '#/parameters/organizationID'
- $ref: '#/parameters/teamID'
- name: userRole
in: body
required: true
schema:
$ref: '#/definitions/UserRole'
responses:
200:
description: 'List of modified user roles'
schema:
type: array
items:
$ref: '#/definitions/UserGroupRole'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/platforms/{platformID}/organizations/{organizationID}/teams/{teamID}/members/{userID}:
x-resource: Admin
delete:
summary: 'Remove team member'
tags:
- Admin
parameters:
- $ref: '#/parameters/platformID'
- $ref: '#/parameters/organizationID'
- $ref: '#/parameters/teamID'
- $ref: '#/parameters/userID'
responses:
200:
description: 'List of modified user roles'
schema:
type: array
items:
$ref: '#/definitions/UserGroupRole'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/datasources/:
x-resource: Datasources
get:
summary: 'Get a list of datasources'
description: |
Datasources are sensors that share common metadata, like default color corrections. Scenes from
a given datasource can be mosaiced and color corrected together.
tags:
- Datasources
parameters:
- $ref: '#/parameters/owner'
- $ref: '#/parameters/name'
- $ref: '#/parameters/ownershipType'
- $ref: '#/parameters/search'
- $ref: '#/parameters/groupType'
- $ref: '#/parameters/groupId'
responses:
200:
description: SUCCESS
schema:
$ref: '#/definitions/DatasourcePaginated'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: Create a datasource
description: |
Datasources are sensors that share common metadata, like default color corrections. Scenes from
a given datasource can be mosaiced and color corrected together.
tags:
- Datasources
parameters:
- name: datasource
in: body
required: true
schema:
$ref: '#/definitions/DatasourceToCreate'
responses:
201:
description: SUCCESS
schema:
$ref: '#/definitions/Datasource'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/datasources/{datasourceID}:
x-resource: Datasources
get:
summary: 'Get datasource by ID'
parameters:
- $ref: '#/parameters/datasourceID'
tags:
- Datasources
responses:
200:
description: SUCCESS
schema:
$ref: '#/definitions/Datasource'
403:
description: 'Insufficient permissions for resource to get this datasource'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Replace a datasource'
tags:
- Datasources
parameters:
- $ref: '#/parameters/datasourceID'
- name: datasource
in: body
required: true
schema:
allOf:
- $ref: '#/definitions/Datasource'
- $ref: '#/definitions/DatasourceBands'
responses:
204:
description: 'Update successful (no further processing needed)'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete a datasource'
tags:
- Datasources
parameters:
- $ref: '#/parameters/datasourceID'
responses:
200:
description: 'Deletion successful (no content)'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/datasources/{datasourceID}/permissions/:
x-resource: Datasources
get:
summary: 'List access control rules for this datasource'
parameters:
- $ref: '#/parameters/datasourceID'
tags:
- Permissions
responses:
200:
description: 'All access control rules for this datasource'
schema:
type: array
items:
$ref: '#/definitions/AccessControlRule'
403:
description: 'Insufficient permissions for resource to list permissions on this datasource'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Replace permissions defined on this datasource'
tags:
- Permissions
parameters:
- $ref: '#/parameters/datasourceID'
- name: accessControlRules
in: body
required: true
schema:
type: array
items:
$ref: '#/definitions/AccessControlRuleCreate'
responses:
200:
description: 'Access control rules replaced with response successfully'
schema:
type: array
items:
$ref: '#/definitions/AccessControlRule'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Add a new access control rule to this datasource'
tags:
- Permissions
parameters:
- $ref: '#/parameters/datasourceID'
- name: accessControlRule
in: body
required: true
schema:
$ref: '#/definitions/AccessControlRuleCreate'
responses:
200:
description: 'Access control rule appended successfully'
schema:
type: array
items:
$ref: '#/definitions/AccessControlRule'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/uploads/:
x-resource: Uploads
get:
summary: 'Get a list of uploads'
description: |
The uploads API endpoint enables searching, listing, and creating new uploads.
tags:
- Imagery
parameters:
- $ref: '#/parameters/orderingBase'
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/page'
- $ref: '#/parameters/organization'
- $ref: '#/parameters/datasource'
- $ref: '#/parameters/uploadStatus'
- $ref: '#/parameters/owner'
- $ref: '#/parameters/projectId'
- $ref: '#/parameters/layerId'
responses:
200:
description: 'Paginated list of uploads'
schema:
$ref: '#/definitions/UploadPaginated'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Create an upload'
description: |
Create a new upload.
tags:
- Imagery
parameters:
- name: Upload
in: body
schema:
$ref: '#/definitions/UploadCreate'
responses:
201:
description: 'Upload created'
schema:
$ref: '#/definitions/Upload'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/uploads/{uploadID}/:
x-resource: Uploads
get:
summary: 'Get upload details'
tags:
- Imagery
parameters:
- $ref: '#/parameters/uploadID'
responses:
200:
description: 'Info about upload'
schema:
$ref: '#/definitions/Upload'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Update an upload'
description: 'Update an existing upload'
tags:
- Imagery
parameters:
- $ref: '#/parameters/uploadID'
- name: upload
in: body
required: true
schema:
$ref: '#/definitions/UploadCreate'
responses:
204:
description: 'Update successful (no further processing needed)'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete an upload'
tags:
- Imagery
parameters:
- $ref: '#/parameters/uploadID'
responses:
204:
description: 'Deletion successful (no content)'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/uploads/{uploadID}/credentials/:
x-resource: Uploads
get:
summary: 'Get credentials for an AWS S3 bucket'
tags:
- Authentication
- Imagery
parameters:
- $ref: '#/parameters/uploadID'
responses:
200:
description: 'AWS credentials scoped to the upload bucket with prefix'
schema:
$ref: '#/definitions/UploadCredentialsResponse'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/scenes/:
x-resource: Scenes
get:
summary: 'Get a list of scenes'
tags:
- Imagery
parameters:
- $ref: '#/parameters/createdBy'
- $ref: '#/parameters/modifiedBy'
- $ref: '#/parameters/minCreateDatetime'
- $ref: '#/parameters/maxCreateDatetime'
- $ref: '#/parameters/minModifiedDatetime'
- $ref: '#/parameters/maxModifiedDatetime'
- $ref: '#/parameters/owner'
- $ref: '#/parameters/isActive'
- $ref: '#/parameters/maxCloudCover'
- $ref: '#/parameters/minCloudCover'
- $ref: '#/parameters/minAcquisitionDatetime'
- $ref: '#/parameters/maxAcquisitionDatetime'
- $ref: '#/parameters/datasource'
- $ref: '#/parameters/month'
- $ref: '#/parameters/minDayOfMonth'
- $ref: '#/parameters/maxDayOfMonth'
- $ref: '#/parameters/maxSunAzimuth'
- $ref: '#/parameters/minSunAzimuth'
- $ref: '#/parameters/maxSunElevation'
- $ref: '#/parameters/minSunElevation'
- $ref: '#/parameters/bbox'
- $ref: '#/parameters/inProject'
- $ref: '#/parameters/inLayer'
- $ref: '#/parameters/ingested'
- $ref: '#/parameters/ingestStatus'
- $ref: '#/parameters/pending'
- name: projectLayerShape
in: query
type: string
format: uuid
description: 'UUID of layer to filter scenes by AOI shape'
- name: shape
in: query
type: string
format: uuid
description: 'UUID of a shape in shapes table'
- $ref: '#/parameters/ownershipType'
- $ref: '#/parameters/groupType'
- $ref: '#/parameters/groupId'
- name: exactCount
in: query
type: boolean
description: Return the exact count of scenes for a search. This can cause the query to time out if there are enough scenes
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/page'
- $ref: '#/parameters/orderingScene'
- $ref: '#/parameters/forProjectId'
responses:
200:
description: 'Paginated list of scenes'
schema:
$ref: '#/definitions/SceneBrowsePaginated'
503:
description: 'Request timed out. Try using more specific filters.'
schema:
$ref: '#/definitions/Error'
504:
description: 'Request timed out. Try using more specific filters'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: Create a scene
tags:
- Imagery
parameters:
- name: scene
in: body
required: true
schema:
$ref: '#/definitions/Scene'
responses:
201:
description: 'Successfully created a new scene'
schema:
$ref: '#/definitions/Scene'
400:
description: 'Client error creating a scene'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/scenes/{sceneID}/:
x-resource: Scenes
get:
summary: 'Get scene details'
tags:
- Imagery
parameters:
- $ref: '#/parameters/sceneID'
responses:
200:
description: 'Info about Scene'
schema:
$ref: '#/definitions/Scene'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Update a scene'
tags:
- Imagery
parameters:
- name: scene
in: body
required: true
schema:
$ref: '#/definitions/Scene'
- $ref: '#/parameters/sceneID'
responses:
204:
description: 'Update successful (no further processing needed)'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete a scene'
description: |
Warning: this will delete any associated imagery as well.
tags:
- Imagery
parameters:
- $ref: '#/parameters/sceneID'
responses:
204:
description: 'Deletion successful (no content)'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/scenes/{sceneID}/download:
x-resource: Scenes
get:
summary: 'Get list of downloadable Images'
tags:
- Imagery
parameters:
- $ref: '#/parameters/sceneID'
responses:
200:
description: 'An array of downloadable images. Each image has a `downloadUri` property.'
schema:
type: array
items:
$ref: '#/definitions/ImageWithDownloadUri'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/scenes/{sceneID}/permissions/:
x-resource: Scenes
get:
summary: 'List access control rules for this scene'
parameters:
- $ref: '#/parameters/sceneID'
tags:
- Permissions
responses:
200:
description: 'All access control rules for this scene'
schema:
type: array
items:
$ref: '#/definitions/ObjectAccessControlRule'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Replace permissions defined on this scene'
tags:
- Permissions
parameters:
- $ref: '#/parameters/sceneID'
- name: accessControlRules
in: body
required: true
schema:
type: array
items:
$ref: '#/definitions/ObjectAccessControlRule'
responses:
200:
description: 'Access control rules replaced with response successfully'
schema:
type: array
items:
$ref: '#/definitions/ObjectAccessControlRule'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Add a new access control rule to this scene'
tags:
- Permissions
parameters:
- $ref: '#/parameters/sceneID'
- name: accessControlRule
in: body
required: true
schema:
$ref: '#/definitions/ObjectAccessControlRule'
responses:
200:
description: 'Access control rule appended successfully'
schema:
type: array
items:
$ref: '#/definitions/ObjectAccessControlRule'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Remove all access permissions from this scene'
tags:
- Permissions
parameters:
- $ref: '#/parameters/sceneID'
responses:
204:
description: 'No Content. Access control rules deleted successfully'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/scenes/{sceneID}/actions:
x-resource: Scenes
get:
summary: 'List actions a user is allowed to perform on this scene'
tags:
- Permissions
parameters:
- $ref: '#/parameters/sceneID'
responses:
200:
description: |
'List of actions a user is allowed to perform on this scene. A * in the response
indicates the user has full permissions for this project.'
schema:
type: array
items:
type: string
enum:
- 'VIEW'
- 'EDIT'
- 'DELETE'
- '*'
/scenes/{sceneID}/datasource:
x-resource: Scenes
get:
summary: 'Get the datasource for a scene you can view'
tags:
- Imagery
parameters:
- $ref: '#/parameters/sceneID'
responses:
200:
description: 'A datasource'
schema:
$ref: '#/definitions/Datasource'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/scenes/{sceneID}/thumbnail:
x-resource: Scenes
get:
summary: 'Get a thumbnail for this COG scene. Only works for scenes of type COG'
tags:
- Imagery
parameters:
- $ref: '#/parameters/sceneID'
- $ref: '#/parameters/redBand'
- $ref: '#/parameters/greenBand'
- $ref: '#/parameters/blueBand'
- $ref: '#/parameters/brightnessFloor'
- $ref: '#/parameters/queryAuthToken'
- $ref: '#/parameters/width'
- $ref: '#/parameters/height'
produces:
- image/png
responses:
200:
description: 'PNG of a thumbnail for this scene'
schema:
type: string
format: binary
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/:
x-resource: Projects
get:
summary: 'Get a paginated list of projects'
description: |
Get a paginated list of all the projects which a user has permission to view.
tags:
- Imagery
parameters:
- $ref: '#/parameters/orderingBase'
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/page'
- $ref: '#/parameters/owner'
- $ref: '#/parameters/organization'
- $ref: '#/parameters/tagsInclude'
- $ref: '#/parameters/tagsExclude'
- $ref: '#/parameters/ownershipType'
- $ref: '#/parameters/groupType'
- $ref: '#/parameters/groupId'
- $ref: '#/parameters/search'
responses:
200:
description: 'Paginated list of projects'
schema:
$ref: '#/definitions/ProjectPaginated'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Create a project'
tags:
- Imagery
parameters:
- name: project
in: body
required: true
schema:
$ref: '#/definitions/ProjectCreate'
responses:
201:
description: 'Project creation successful'
schema:
$ref: '#/definitions/Project'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/:
x-resource: Projects
get:
summary: 'Get project details'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/analysisId'
- $ref: '#/parameters/queryMapToken'
responses:
200:
description: 'Project found'
schema:
$ref: '#/definitions/Project'
404:
description: 'Resource does not exist'
schema:
$ref: '#/definitions/Error'
403:
description: 'Insufficient permissions for resource'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Perform a complete update of a project.'
tags:
- Imagery
parameters:
- name: project
in: body
required: true
schema:
$ref: '#/definitions/Project'
- $ref: '#/parameters/projectID'
responses:
204:
description: 'Update successful (no further processing needed)'
404:
description: 'Resource does not exist'
schema:
$ref: '#/definitions/Error'
403:
description: 'Insufficient permissions for resource'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete a project'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
responses:
204:
description: 'Deletion successful (no content)'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/datasources/:
x-resource: Projects
get:
summary: 'List datasources for scenes in this project'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/analysisId'
responses:
200:
description: 'A list of datasources'
schema:
type: array
items:
$ref: '#/definitions/DatasourceThin'
/projects/{projectID}/project-color-mode/:
x-resource: Projects
post:
summary: 'Set the color mode on all scenes in the project'
tags:
- Imagery
parameters:
- name: projectColorMode
in: body
required: true
schema:
$ref: '#/definitions/ProjectColorMode'
- $ref: '#/parameters/projectID'
responses:
204:
description: 'Update Successful'
404:
description: 'Resource does not exist'
schema:
$ref: '#/definitions/Error'
403:
description: 'Insufficient permissions for resource'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/labels/:
x-resource: Projects
get:
summary: 'Get a list of the labels used on a project default layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
responses:
200:
description: 'A list of labels'
schema:
type: array
items:
type: string
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/annotation-groups/:
x-resource: Projects
get:
summary: 'Get annotation groups belonging to a project default layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
responses:
200:
description: 'Array containing annotation groups for this project default layer'
schema:
type: array
items:
$ref: '#/definitions/AnnotationGroup'
404:
description: 'Resource does not exist'
schema:
$ref: '#/definitions/Error'
403:
description: 'Insufficient permissions for resource'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Create annotation group for this project default layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- name: annotationGroup
in: body
required: true
schema:
$ref: '#/definitions/AnnotationGroupCreate'
responses:
200:
description: 'Created annotation group'
schema:
$ref: '#/definitions/AnnotationGroup'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/annotation-groups/summary/:
x-resource: Projects
get:
summary: 'Get a summary of the label groups on a project default layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
responses:
200:
description: 'Fetched label summaries'
schema:
type: array
items:
$ref: '#/definitions/LabelSummary'
404:
description: 'Resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/annotation-groups/{annotationGroupID}/:
x-resource: Projects
get:
summary: 'Get annotation group for project default layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/annotationGroupID'
responses:
200:
description: 'fetched annotation group'
schema:
$ref: '#/definitions/AnnotationGroup'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Update annotation group'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/annotationGroupID'
- name: annotationGroup
in: body
required: true
schema:
$ref: '#/definitions/AnnotationGroup'
responses:
200:
description: 'Number of updated annotation groups from this request'
schema:
type: number
format: integer
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete annotation group from project default layer and all associated annotations'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/annotationGroupID'
responses:
200:
description: 'Number of deleted annotation groups from this request'
schema:
type: number
format: integer
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/annotations/:
x-resource: Projects
get:
summary: 'Get annotations belonging to a project default layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/AnnotationLabel'
- $ref: '#/parameters/annotationQualityCheck'
- $ref: '#/parameters/page'
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/queryMapToken'
responses:
200:
description: 'GeoJSON feature collection containing paginated annotations of this project default layer'
schema:
$ref: '#/definitions/AnnotationFeatureCollectionPaginated'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Create annotations for a project default layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- name: annotations
in: body
required: true
schema:
$ref: '#/definitions/AnnotationFeatureCollectionCreate'
responses:
201:
description: 'GeoJSON annotations successfully created'
schema:
$ref: '#/definitions/AnnotationFeatureCollection'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete all annotations from a project default layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
responses:
201:
description: 'Annotations Deleted'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/annotations/shapefile:
x-resource: Projects
get:
summary: 'Get a url for project default layer annotations exported to a shapefile'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/exportAll'
responses:
200:
description: 'Annotations retrieved successfully'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Import annotations from a shapefile to project default layer'
tags:
- Imagery
consumes:
- multipart/form-data
parameters:
- $ref: '#/parameters/projectID'
- in: formData
name: name
type: file
description: The shapefile to upload
responses:
201:
description: 'Annotations imported successfully'
schema:
type: array
items:
$ref: '#/definitions/AnnotationFeature'
400:
description: 'Some records could not be parsed to annotations'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/annotations/{annotationID}:
x-resouce: Projects
get:
summary: 'Get an annotation belonging to a project default layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/annotationID'
responses:
200:
description: 'GeoJSON feature containing one annotation from this project default layer'
schema:
$ref: '#/definitions/AnnotationFeature'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Update an annotation of this project default layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/annotationID'
- name: annotation
in: body
required: true
schema:
$ref: '#/definitions/AnnotationFeatureUpdate'
responses:
204:
description: 'No content, update successful'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete an annotation from project default layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/annotationID'
responses:
204:
description: 'Deletion successful.'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/areas-of-interest/:
x-resource: Projects
get:
summary: 'Get all areas of interest for a project'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/page'
responses:
200:
description: 'JSON summary of the filters and Polygons that make up AOIs for the given project.'
schema:
$ref: '#/definitions/AoiPaginated'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Create an area of interest for a project'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- name: aoi
in: body
required: true
schema:
$ref: '#/definitions/AOI'
responses:
201:
description: 'Area of Interest created.'
schema:
$ref: '#/definitions/AOI'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/scenes/:
x-resource: Projects
get:
summary: 'Get a list of scenes associated with a project'
tags:
- Imagery
parameters:
- $ref: '#/parameters/orderingScene'
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/page'
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/organization'
- $ref: '#/parameters/maxCloudCover'
- $ref: '#/parameters/minCloudCover'
- $ref: '#/parameters/minAcquisitionDatetime'
- $ref: '#/parameters/maxAcquisitionDatetime'
- $ref: '#/parameters/minCreateDatetime'
- $ref: '#/parameters/maxCreateDatetime'
- $ref: '#/parameters/datasource'
- $ref: '#/parameters/month'
- $ref: '#/parameters/minDayOfMonth'
- $ref: '#/parameters/maxDayOfMonth'
- $ref: '#/parameters/maxSunAzimuth'
- $ref: '#/parameters/minSunAzimuth'
- $ref: '#/parameters/maxSunElevation'
- $ref: '#/parameters/minSunElevation'
- $ref: '#/parameters/minResolution'
- $ref: '#/parameters/maxResolution'
- $ref: '#/parameters/tags'
- $ref: '#/parameters/ingested'
- $ref: '#/parameters/ingestStatus'
- $ref: '#/parameters/pending'
responses:
200:
description: 'Paginated list of scenes associated with this project'
schema:
$ref: '#/definitions/ScenePaginated'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Add scenes to a project by their ID'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- name: scenes
in: body
required: true
description: 'UUIDs of scenes to place in project'
schema:
type: array
items:
type: string
format: uuid
responses:
200:
description: 'Number of scenes added to a project'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Replace scenes in a project'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- name: scenes
in: body
required: true
description: 'UUIDs of scenes to replace in project'
schema:
type: array
items:
type: string
format: uuid
responses:
200:
description: 'Scenes in this project'
schema:
type: array
items:
$ref: '#/definitions/Scene'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete scenes from a project'
tags:
- Imagery
parameters:
- name: scenes
in: body
required: true
description: 'UUIDs of scenes to delete in project'
schema:
type: array
items:
type: string
format: uuid
- $ref: '#/parameters/projectID'
responses:
204:
description: 'No content, delete successful'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/scenes/{sceneID}/accept:
post:
summary: 'Approve a pending scene which has passed an area of interest check.'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/sceneID'
responses:
204:
description: 'Successfully accepted the Scene.'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/scenes/accept:
post:
summary: 'Approve a list of pending scenes which have passed an area of interest check.'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- name: scenes
in: body
required: true
description: 'UUIDs of scenes to approve'
schema:
$ref: '#/definitions/BulkAcceptParams'
responses:
204:
description: 'Successfully accepted scenes'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/scenes/bulk-add-from-query/:
x-resource: Projects
post:
summary: 'Add scenes to a project based on search parameters'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- name: combinedSceneQueryParameters
description: 'combined query parameters for finding scenes to add to this project'
in: body
schema:
$ref: '#/definitions/CombinedSceneQueryParams'
responses:
201:
description: 'List of scenes added to project'
schema:
type: array
items:
$ref: '#/definitions/Scene'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/mosaic/:
x-resource: Projects
get:
summary: "Get a list of a project's scene IDs and their color-correction parameters"
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
responses:
200:
description: 'An ordered list of scene IDs and corresponding color correction parameters'
schema:
type: array
items:
$ref: '#/definitions/MosaicDefinition'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/mosaic/bulk-update-color-corrections/:
x-resource: Projects
post:
summary: 'Save color-correction parameters for all scenes in a project'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- name: combinedSceneCorrectionParameters
description: 'Combined color correction parameters'
in: body
schema:
$ref: '#/definitions/CombinedSceneCorrectionParams'
responses:
200:
description: "Successfully updated all scenes' color correction parameters"
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/mosaic/{sceneID}:
x-resource: Projects
get:
summary: "Get a project's saved color-correction parameters"
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/sceneID'
responses:
200:
description: 'Color correction parameters'
schema:
$ref: '#/definitions/ColorCorrection'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Save color-correction parameters for a particular scene'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/sceneID'
- name: updatedColorCorrection
description: 'Updated color corrections'
in: body
schema:
$ref: '#/definitions/ColorCorrection'
responses:
204:
description: 'Successfully updated color correction parameters'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/order:
x-resource: Projects
put:
summary: 'Set a z-index order for scenes within the specified project'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- name: sceneIDs
in: body
description: |
The z order for scenes in this project, relative to each other. The first listed scene will be visualized
on top of all the others, and the last listed scene will be visualized below all the others.
schema:
type: array
items:
type: string
format: uuid
responses:
204:
description: 'Successfully updated order of scenes in project'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/permissions/:
x-resource: Projects
get:
summary: 'List access control rules for this project'
parameters:
- $ref: '#/parameters/projectID'
tags:
- Permissions
responses:
200:
description: 'All access control rules for this project'
schema:
type: array
items:
$ref: '#/definitions/AccessControlRule'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Replace permissions defined on this project'
tags:
- Permissions
parameters:
- $ref: '#/parameters/projectID'
- name: accessControlRules
in: body
required: true
schema:
type: array
items:
$ref: '#/definitions/AccessControlRuleCreate'
responses:
200:
description: 'Access control rules replaced with response successfully'
schema:
type: array
items:
$ref: '#/definitions/AccessControlRule'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Add a new access control rule to this project'
tags:
- Permissions
parameters:
- $ref: '#/parameters/projectID'
- name: accessControlRule
in: body
required: true
schema:
$ref: '#/definitions/AccessControlRuleCreate'
responses:
200:
description: 'Access control rule appended successfully'
schema:
type: array
items:
$ref: '#/definitions/AccessControlRule'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Remove access control rules on this project'
tags:
- Permissions
parameters:
- $ref: '#/parameters/projectID'
responses:
200:
description: 'Access control rules successfully delete'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/actions/:
get:
summary: 'List actions a user is allowed to perform on this project'
tags:
- Permissions
parameters:
- $ref: '#/parameters/projectID'
responses:
200:
description: |
'List of actions a user is allowed to perform on this project. A * in the response
indicates the user has full permissions for this project.'
schema:
type: array
items:
type: string
enum:
- 'VIEW'
- 'EDIT'
- 'DEACTIVATE'
- 'DELETE'
- 'ANNOTATE'
- '*'
/projects/{projectID}/layers/:
x-resource: Projects
get:
summary: 'Get a paginated list of layers for the project'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/page'
responses:
200:
description: 'A list of project layers'
schema:
$ref: '#/definitions/ProjectLayerPaginated'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/layers/stats:
x-resource: Projects
get:
summary: "Count scenes in each layer of this project"
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/page'
responses:
200:
description: 'A list of project layers'
schema:
$ref: '#/definitions/ProjectLayerPaginated'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: Create a new project layer
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- name: ProjectLayer
in: body
schema:
$ref: '#/definitions/ProjectLayer'
responses:
200:
description: Newly created project layer
schema:
$ref: '#/definitions/ProjectLayer'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/layers/{layerID}/:
get:
summary: 'Get project layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
responses:
200:
description: Project Layer
schema:
$ref: '#/definitions/ProjectLayer'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: Update project layer
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- name: ProjectLayer
in: body
schema:
$ref: '#/definitions/ProjectLayer'
responses:
204:
description: 'No Content'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete a project layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
responses:
204:
description: 'No content, delete successful'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/layers/{layerID}/split:
post:
summary: 'Split the project layer according to the given parameters'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- name: SplitOptions
in: body
schema:
$ref: '#/definitions/LayerSplitOptions'
responses:
200:
description: 'List of created layers'
schema:
type: array
items:
$ref: '#/definitions/ProjectLayer'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/layers/{layerID}/scenes:
get:
summary: 'Get a list of scenes for the given layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/page'
- $ref: '#/parameters/ingested'
- $ref: '#/parameters/ingestStatus'
- $ref: '#/parameters/accepted'
responses:
200:
description: Paginated list of scenes associated with this layer
schema:
$ref: '#/definitions/SceneOrderedPaginated'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Add scenes to a project layer by their ID'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- name: scenes
in: body
required: true
description: 'UUIDs of scenes to place in project'
schema:
type: array
items:
type: string
format: uuid
responses:
200:
description: 'List of scenes added to project'
schema:
type: array
items:
$ref: '#/definitions/Scene'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete all scenes from a project layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- name: scenes
in: body
required: true
description: 'UUIDs of scenes to delete in project'
schema:
type: array
items:
type: string
format: uuid
responses:
204:
description: 'No content, delete successful'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/layers/{layerID}/datasources:
x-resource: Projects
get:
summary: 'List datasources for scenes in this project'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- $ref: '#/parameters/analysisId'
responses:
200:
description: 'A list of datasources'
schema:
type: array
items:
$ref: '#/definitions/DatasourceThin'
/projects/{projectID}/layers/{layerID}/mosaic:
x-resource: Projects
get:
summary: "Get a list of a project layer's scene IDs and their color-correction parameters"
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
responses:
200:
description: 'An ordered list of scene IDs and corresponding color correction parameters'
schema:
type: array
items:
$ref: '#/definitions/MosaicDefinition'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/layers/{layerID}/mosaic/{sceneID}:
x-resource: Projects
get:
summary: "Get a scene's saved color-correction parameters in a project layer"
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- $ref: '#/parameters/sceneID'
responses:
200:
description: 'Color correction parameters'
schema:
$ref: '#/definitions/ColorCorrection'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Update color-correction parameters for a particular scene in a project layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- $ref: '#/parameters/sceneID'
- name: updatedColorCorrection
description: 'Updated color corrections'
in: body
schema:
$ref: '#/definitions/ColorCorrection'
responses:
204:
description: 'Successfully updated color correction parameters'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/layers/{layerID}/mosaic/bulk-update-color-corrections/:
x-resource: Projects
post:
summary: 'Set color-correction parameters for all scenes in a project layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- name: combinedSceneCorrectionParameters
description: 'Combined color correction parameters'
in: body
schema:
$ref: '#/definitions/CombinedSceneCorrectionParams'
responses:
200:
description: "Successfully updated all scenes' color correction parameters"
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/layers/{layerID}/order:
x-resource: Projects
put:
summary: 'Set a z-index order for scenes within the specified project layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- name: sceneIDs
in: body
description: |
The z order for scenes in this project, relative to each other. The first listed scene will be visualized
on top of all the others, and the last listed scene will be visualized below all the others.
schema:
type: array
items:
type: string
format: uuid
responses:
204:
description: 'Successfully updated order of scenes in the project layer'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/layers/{layerID}/labels:
x-resource: Projects
get:
summary: 'Get a list of labels used on a project layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
responses:
200:
description: 'A list of labels'
schema:
type: array
items:
type: string
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/layers/{layerID}/annotations/:
x-resource: Projects
get:
summary: 'Get annotations belonging to a project layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- $ref: '#/parameters/AnnotationLabel'
- $ref: '#/parameters/annotationQualityCheck'
- $ref: '#/parameters/page'
- $ref: '#/parameters/pageSize'
responses:
200:
description: 'GeoJSON feature collection containing paginated annotations of this project layer'
schema:
$ref: '#/definitions/AnnotationFeatureCollectionPaginated'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Create annotations for a project layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- name: annotations
in: body
required: true
schema:
$ref: '#/definitions/AnnotationFeatureCollectionCreate'
responses:
201:
description: 'GeoJSON annotations successfully created'
schema:
$ref: '#/definitions/AnnotationFeatureCollection'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete all annotations from a project layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
responses:
201:
description: 'Annotations Deleted'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/layers/{layerID}/annotations/shapefile:
x-resource: Projects
get:
summary: 'Get a url for project layer annotations exported to a shapefile'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- $ref: '#/parameters/exportAll'
responses:
200:
description: 'Annotations retrieved successfully'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Import annotations from a shapefile to project layer'
tags:
- Imagery
consumes:
- multipart/form-data
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- in: formData
name: name
type: file
description: The shapefile to upload
responses:
201:
description: 'Annotations imported successfully'
schema:
type: array
items:
$ref: '#/definitions/AnnotationFeature'
400:
description: 'Some records could not be parsed to annotations'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/layers/{layerID}/annotations/{annotationID}/:
x-resouce: Projects
get:
summary: 'Get an annotation belonging to a project layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- $ref: '#/parameters/annotationID'
responses:
200:
description: 'GeoJSON feature containing one annotation from this project layer'
schema:
$ref: '#/definitions/AnnotationFeature'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Update an annotation of this project layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- $ref: '#/parameters/annotationID'
- name: annotation
in: body
required: true
schema:
$ref: '#/definitions/AnnotationFeatureUpdate'
responses:
204:
description: 'No content, update successful'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete an annotation'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- $ref: '#/parameters/annotationID'
responses:
204:
description: 'Deletion successful.'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/layers/{layerID}/annotation-groups/:
x-resource: Projects
get:
summary: 'Get annotation groups belonging to a project layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
responses:
200:
description: 'Array containing annotation groups for this project layer'
schema:
type: array
items:
$ref: '#/definitions/AnnotationGroup'
404:
description: 'Resource does not exist'
schema:
$ref: '#/definitions/Error'
403:
description: 'Insufficient permissions for resource'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Create annotation group for this project layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- name: annotationGroup
in: body
required: true
schema:
$ref: '#/definitions/AnnotationGroupCreate'
responses:
200:
description: 'Created annotation group'
schema:
$ref: '#/definitions/AnnotationGroup'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/layers/{layerID}/annotation-groups/summary/:
x-resource: Projects
get:
summary: 'Get a summary of the label groups on a project layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
responses:
200:
description: 'Fetched label summaries'
schema:
type: array
items:
$ref: '#/definitions/LabelSummary'
404:
description: 'Resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/layers/{layerID}/annotation-groups/{annotationGroupID}/:
x-resource: Projects
get:
summary: 'Get annotation group for project layer'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- $ref: '#/parameters/annotationGroupID'
responses:
200:
description: 'fetched annotation group'
schema:
$ref: '#/definitions/AnnotationGroup'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Update annotation group'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- $ref: '#/parameters/annotationGroupID'
- name: annotationGroup
in: body
required: true
schema:
$ref: '#/definitions/AnnotationGroup'
responses:
200:
description: 'Number of updated annotation groups from this request'
schema:
type: number
format: integer
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete annotation group from project layer and all associated annotations'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/layerID'
- $ref: '#/parameters/annotationGroupID'
responses:
200:
description: 'Number of deleted annotation groups from this request'
schema:
type: number
format: integer
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/projects/{projectID}/analyses/:
get:
summary: 'List analyses referencing this project'
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectID'
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/page'
responses:
200:
description: 'Paginated list of analyses referencing this project'
schema:
$ref: '#/definitions/ToolRunWithRelatedPaginated'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/areas-of-interest/:
get:
summary: 'Get a list of areas of interest'
tags:
- Imagery
parameters:
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/page'
- $ref: '#/parameters/organization'
- $ref: '#/parameters/owner'
responses:
200:
description: 'A paginated list of all AOIs the user is authorized to view.'
schema:
$ref: '#/definitions/AoiPaginated'
/areas-of-interest/{aoiID}/:
get:
summary: 'Get a specific area of interest'
parameters:
- $ref: '#/parameters/aoiID'
responses:
200:
description: "JSON summary of the given AOI's filters and Polygons."
schema:
$ref: '#/definitions/AOI'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Update an area of interest'
tags:
- Imagery
parameters:
- $ref: '#/parameters/aoiID'
- name: aoi
in: body
required: true
schema:
$ref: '#/definitions/AOI'
responses:
204:
description: 'Update successful.'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete a project'
tags:
- Imagery
parameters:
- $ref: '#/parameters/aoiID'
responses:
204:
description: 'Deletion successful.'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/map-tokens/:
x-resource: Tokens
get:
summary: 'Get a list of map tokens'
description: |
Map tokens are filtered by user
tags:
- Imagery
parameters:
- $ref: '#/parameters/projectId'
- $ref: '#/parameters/organization'
- $ref: '#/parameters/createdBy'
- $ref: '#/parameters/page'
- $ref: '#/parameters/project'
responses:
200:
description: 'Paginated list of map tokens'
schema:
$ref: '#/definitions/MapTokenPaginated'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Create a map token'
tags:
- Imagery
parameters:
- name: MapToken
in: body
schema:
$ref: '#/definitions/MapToken'
responses:
201:
description: 'Map token created'
schema:
$ref: '#/definitions/MapToken'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/map-tokens/{mapTokenID}/:
x-resource: Tokens
get:
summary: 'Get map token details'
tags:
- Imagery
parameters:
- $ref: '#/parameters/mapTokenID'
responses:
200:
description: 'Info about map token'
schema:
$ref: '#/definitions/MapToken'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Update a map token'
tags:
- Imagery
parameters:
- name: mapToken
in: body
required: true
schema:
$ref: '#/definitions/MapToken'
- $ref: '#/parameters/mapTokenID'
responses:
204:
description: 'Update successful (no further processing needed)'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete a map token'
tags:
- Imagery
parameters:
- $ref: '#/parameters/mapTokenID'
responses:
204:
description: 'Deletion successful (no content)'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/tokens/:
x-resource: Tokens
get:
summary: |
Get a list of refresh token summaries
description: |
Note: Only names and identifiers are revealed. Refresh tokens themselves are only revealed once (when they are created) for security purposes.
tags:
- Authentication
responses:
200:
description: 'List of refresh token identifiers'
schema:
type: array
items:
$ref: '#/definitions/RefreshToken'
404:
description: 'No refresh tokens found for user'
schema:
$ref: '#/definitions/Error'
post:
summary: |
Request a new JSON Web Token to use when authenticating with other endpoints
parameters:
- name: authBody
in: body
required: true
description: 'Refresh token object to use when requesting a new JWT'
schema:
type: object
properties:
refresh_token:
type: string
description: 'Refresh token used to generate new JWT'
tags:
- Authentication
responses:
200:
description: 'Retrieved a new auth token'
schema:
$ref: '#/definitions/AuthToken'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/tokens/{refreshTokenID}/:
x-resource: Tokens
delete:
parameters:
- $ref: '#/parameters/refreshTokenID'
summary: 'Delete a refresh token and revoke its access'
tags:
- Authentication
responses:
204:
description: 'Revocation successful, No Content'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/tools/:
x-resource: Tools
get:
summary: 'Get a list of tools'
tags:
- Lab
parameters:
- $ref: '#/parameters/orderingBase'
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/owner'
- $ref: '#/parameters/page'
- $ref: '#/parameters/search'
- $ref: '#/parameters/ownershipType'
- $ref: '#/parameters/groupType'
- $ref: '#/parameters/groupId'
- $ref: '#/parameters/singleSource'
- $ref: '#/parameters/organization'
responses:
200:
description: 'Returns a paginated list of tools'
schema:
$ref: '#/definitions/ToolPaginated'
default:
description: 'Unexpected Error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Create a tool'
parameters:
- name: tool
in: body
required: true
description: 'Tool to create'
schema:
$ref: '#/definitions/Tool'
tags:
- Lab
responses:
201:
description: 'Create a new geoprocessing tool'
schema:
$ref: '#/definitions/Tool'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/tools/{toolID}/:
x-resource: Tools
get:
summary: 'Get details for a particular tool'
tags:
- Lab
parameters:
- $ref: '#/parameters/toolID'
responses:
200:
description: 'Geoprocessing tool record'
schema:
$ref: '#/definitions/Tool'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete a tool'
tags:
- Lab
parameters:
- $ref: '#/parameters/toolID'
responses:
204:
description: 'Delete successful'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Update a tool'
tags:
- Lab
parameters:
- $ref: '#/parameters/toolID'
- name: tool
in: body
required: true
description: 'Tool to create'
schema:
$ref: '#/definitions/Tool'
responses:
204:
description: 'Update an existing geoprocessing tool'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/tools/{toolID}/sources:
x-resource: Tools
get:
summary: 'Returns the leaf nodes for an AST'
tags:
- Lab
parameters:
- $ref: '#/parameters/toolID'
responses:
200:
description: 'Geoprocessing tool record'
schema:
$ref: '#/definitions/Tool'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/tools/{toolID}/permissions/:
x-resource: Tools
get:
summary: 'List access control rules for this tool'
parameters:
- $ref: '#/parameters/toolID'
tags:
- Permissions
responses:
200:
description: 'All access control rules for this tool'
schema:
type: array
items:
$ref: '#/definitions/AccessControlRule'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Replace permissions defined on this tool'
tags:
- Permissions
parameters:
- $ref: '#/parameters/toolID'
- name: accessControlRules
in: body
required: true
schema:
type: array
items:
$ref: '#/definitions/AccessControlRuleCreate'
responses:
200:
description: 'Access control rules replaced with response successfully'
schema:
type: array
items:
$ref: '#/definitions/AccessControlRule'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Add a new access control rule to this tool'
tags:
- Permissions
parameters:
- $ref: '#/parameters/toolID'
- name: accessControlRule
in: body
required: true
schema:
$ref: '#/definitions/AccessControlRuleCreate'
responses:
200:
description: 'Access control rule appended successfully'
schema:
type: array
items:
$ref: '#/definitions/AccessControlRule'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/tools/{toolID}/actions:
x-resource: Tools
get:
summary: 'List actions a user is allowed to perform on this scene'
tags:
- Permissions
parameters:
- $ref: '#/parameters/toolID'
responses:
200:
description: |
'List of actions a user is allowed to perform on this tool. A * in the response
indicates the user has full permissions for this tool.'
schema:
type: array
items:
type: string
enum:
- 'VIEW'
- 'EDIT'
- 'DELETE'
- '*'
/tool-runs/:
x-resource: Tools
get:
summary: 'Get a list of tool runs'
description: |
A tool run is a specific implementation of a tool.
Tool runs can specify inputs and parameters neccessary to execute a tool.
tags:
- Lab
parameters:
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/modifiedBy'
- $ref: '#/parameters/minCreateDatetime'
- $ref: '#/parameters/maxCreateDatetime'
- $ref: '#/parameters/minModifiedDatetime'
- $ref: '#/parameters/maxModifiedDatetime'
- $ref: '#/parameters/page'
- $ref: '#/parameters/projectId'
- $ref: '#/parameters/owner'
- $ref: '#/parameters/createdBy'
- $ref: '#/parameters/ownershipType'
- $ref: '#/parameters/groupType'
- $ref: '#/parameters/groupId'
- $ref: '#/parameters/projectLayer'
- $ref: '#/parameters/templateId'
- $ref: '#/parameters/search'
- $ref: '#/parameters/queryMapToken'
responses:
200:
description: 'Paginated list of tool runs'
schema:
$ref: '#/definitions/ToolRunPaginated'
default:
description: 'Unexpected Error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Create a tool run'
tags:
- Lab
responses:
201:
description: 'Successfully created tool run'
schema:
$ref: '#/definitions/ToolRun'
400:
description: 'Invalid object structure for tool run'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected Error'
schema:
$ref: '#/definitions/Error'
/tool-runs/{toolRunID}/:
x-resource: Tools
get:
summary: 'Get details about a tool-run'
tags:
- Lab
parameters:
- $ref: '#/parameters/toolRunID'
responses:
200:
description: 'Successful tool-run request'
schema:
$ref: '#/definitions/ToolRun'
403:
description: 'Insufficient permissions for resource or tool run not found'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected Error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Update a tool run'
tags:
- Lab
parameters:
- $ref: '#/parameters/toolRunID'
responses:
204:
description: 'Successfully updated tool run'
400:
description: 'Invalid object structure for tool run'
schema:
$ref: '#/definitions/Error'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected Error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete a tool run'
tags:
- Lab
parameters:
- $ref: '#/parameters/toolRunID'
responses:
204:
description: 'Successfully deleted a tool run'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected Error'
schema:
$ref: '#/definitions/Error'
/tool-runs/{toolRunID}/permissions/:
x-resource: Tools
get:
summary: 'List access control rules for this tool run'
parameters:
- $ref: '#/parameters/toolRunID'
tags:
- Permissions
responses:
200:
description: 'All access control rules for this tool run'
schema:
type: array
items:
$ref: '#/definitions/AccessControlRule'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected Error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Replace permissions defined on this tool run'
tags:
- Permissions
parameters:
- $ref: '#/parameters/toolRunID'
- name: accessControlRules
in: body
required: true
schema:
type: array
items:
$ref: '#/definitions/AccessControlRuleCreate'
responses:
200:
description: 'Access control rules replaced with response successfully'
schema:
type: array
items:
$ref: '#/definitions/AccessControlRule'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected Error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Add a new access control rule to this tool run'
tags:
- Permissions
parameters:
- $ref: '#/parameters/toolRunID'
- name: accessControlRule
in: body
required: true
schema:
$ref: '#/definitions/AccessControlRuleCreate'
responses:
200:
description: 'Access control rule appended successfully'
schema:
type: array
items:
$ref: '#/definitions/AccessControlRule'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected Error'
schema:
$ref: '#/definitions/Error'
/tool-runs/{toolRunID}/actions:
get:
summary: 'List actions a user is allowed to perform on this tool run'
tags:
- Permissions
parameters:
- $ref: '#/parameters/toolRunID'
responses:
200:
description: |
'List of actions a user is allowed to perform on this tool run. A * in the response
indicates the user has full permissions for this tool.'
schema:
type: array
items:
type: string
enum:
- 'VIEW'
- 'EDIT'
- 'DELETE'
- '*'
/feed/:
get:
summary: 'Get the cached RSS feed'
parameters:
- $ref: '#/parameters/source'
tags:
- Users
responses:
200:
description: 'RSS feed json as a string'
default:
description: 'Unexpected Error'
schema:
$ref: '#/definitions/Error'
/exports/:
x-resource: Exports
get:
summary: 'Get a list of exports'
tags:
- Imagery
parameters:
- $ref: '#/parameters/orderingBase'
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/page'
- $ref: '#/parameters/organization'
- $ref: '#/parameters/project'
- $ref: '#/parameters/owner'
- $ref: '#/parameters/exportStatus'
- $ref: '#/parameters/layer'
responses:
200:
description: 'Paginated list of exports'
schema:
$ref: '#/definitions/ExportPaginated'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Create an export'
description: |
Create a new export.
tags:
- Imagery
parameters:
- name: Export
in: body
schema:
$ref: '#/definitions/ExportCreate'
responses:
201:
description: 'Export created'
schema:
$ref: '#/definitions/Export'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/exports/{exportID}/:
x-resource: Exports
get:
summary: 'Get export details'
tags:
- Imagery
parameters:
- $ref: '#/parameters/exportID'
responses:
200:
description: 'Info about export'
schema:
$ref: '#/definitions/Export'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Update an export'
tags:
- Imagery
parameters:
- name: upload
in: body
required: true
schema:
$ref: '#/definitions/Export'
- $ref: '#/parameters/exportID'
responses:
204:
description: 'Update successful (no further processing needed)'
404:
description: |
The UUID parameter does not refer to a upload or the user does not have access to the upload it refers to
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete an export'
tags:
- Imagery
parameters:
- $ref: '#/parameters/exportID'
responses:
204:
description: 'Deletion successful (no content)'
404:
description: |
The UUID parameter does not refer to an export or the user does not have access to the export it refers to
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/exports/{exportID}/definition:
x-resource: Exports
get:
summary: 'Get export details'
tags:
- Imagery
parameters:
- $ref: '#/parameters/exportID'
responses:
200:
description: 'Info about export, in export job format'
schema:
$ref: '#/definitions/ExportDefinition'
404:
description: |
UUID parameter does not refer to an export or the user is not able to view the export it refers to
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/exports/{exportID}/files:
x-resource: Exports
get:
summary: 'Get available files for the export'
tags:
- Imagery
parameters:
- $ref: '#/parameters/exportID'
responses:
200:
description: 'List of files within an export'
schema:
type: array
items:
type: string
403:
description: 'Insufficient permissions for resource, resource does not exist, or export is not finished yet'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/exports/{exportID}/files/{filename}:
x-resource: Exports
get:
summary: 'Download a file from an export'
tags:
- Imagery
parameters:
- $ref: '#/parameters/exportID'
- name: filename
required: true
in: path
type: string
description: |
The filename of the file the user wishes to download. Filenames of an export need to first be fetched.
responses:
200:
description: 'The content of the reqested file'
schema:
type: file
403:
description: |
Export has not finished, file does not exist, or user has insufficient permissions to view.
schema:
$ref: '#/definitions/Error'
503:
description: 'The request rate has been exceeded.'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/shapes/:
x-resource: Projects
get:
summary: 'Get shapes belonging to the current user'
tags:
- Imagery
parameters:
- $ref: '#/parameters/page'
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/ownershipType'
- $ref: '#/parameters/groupType'
- $ref: '#/parameters/groupId'
responses:
200:
description: 'GeoJSON feature collection containing paginated shapes'
schema:
$ref: '#/definitions/ShapeFeatureCollectionPaginated'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Create shapes belonging to the current user'
tags:
- Imagery
parameters:
- name: shapes
in: body
required: true
schema:
$ref: '#/definitions/ShapeFeatureCollectionCreate'
responses:
200:
description: GeoJSON shapes successfully created
schema:
type: array
items:
$ref: '#/definitions/ShapeFeatureCollection'
400:
description: 'Invalid object'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/shapes/upload:
x-resource: Projects
post:
summary: 'Create shapes belonging to the current user using POSTed data'
tags:
- Imagery
consumes:
- multipart/form-data
parameters:
- name: name
in: formData
type: file
required: true
responses:
201:
description: 'GeoJSON shapes successfully created'
schema:
type: array
items:
$ref: '#/definitions/ShapeFeatureCollection'
400:
description: 'Invalid shape structure'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/shapes/{shapeID}:
x-resouce: Projects
get:
summary: Get a specific shape
tags:
- Imagery
parameters:
- $ref: '#/parameters/shapeID'
responses:
200:
description: 'GeoJSON feature containing one shape'
schema:
$ref: '#/definitions/ShapeFeature'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Update a specific shape'
tags:
- Imagery
parameters:
- $ref: '#/parameters/shapeID'
- name: shape
in: body
required: true
schema:
$ref: '#/definitions/ShapeFeatureUpdate'
responses:
204:
description: 'Update successful (No Content)'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete a shape'
tags:
- Imagery
parameters:
- $ref: '#/parameters/shapeID'
responses:
204:
description: 'Deletion successful'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/shapes/{shapeID}/permissions/:
x-resource: Shapes
get:
summary: 'List access control rules for this shape'
parameters:
- $ref: '#/parameters/shapeID'
tags:
- Permissions
responses:
200:
description: 'All access control rules for this shape'
schema:
type: array
items:
$ref: '#/definitions/AccessControlRule'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Replace permissions defined on this shape'
tags:
- Permissions
parameters:
- $ref: '#/parameters/shapeID'
- name: accessControlRules
in: body
required: true
schema:
type: array
items:
$ref: '#/definitions/AccessControlRuleCreate'
responses:
200:
description: 'Access control rules replaced with response successfully'
schema:
type: array
items:
$ref: '#/definitions/AccessControlRule'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: 'Add a new access control rule to this shape'
tags:
- Permissions
parameters:
- $ref: '#/parameters/shapeID'
- name: accessControlRule
in: body
required: true
schema:
$ref: '#/definitions/AccessControlRuleCreate'
responses:
200:
description: 'Access control rule appended successfully'
schema:
type: array
items:
$ref: '#/definitions/AccessControlRule'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/licenses/:
x-resource: Licenses
get:
summary: 'Get a list of licenses'
tags:
- Imagery
- Lab
parameters:
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/page'
responses:
200:
description: 'Paginated licenses'
schema:
$ref: '#/definitions/LicensesPaginated'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/licenses/{licenseID}:
x-resource: Licenses
get:
summary: 'Get a license based on its id'
tags:
- Imagery
- Lab
parameters:
- $ref: '#/parameters/licenseID'
responses:
200:
description: 'License object'
schema:
$ref: '#/definitions/License'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/teams/:
x-resource: Teams
get:
summary: 'List teams the user has permission to view'
tags:
- Users
parameters:
- $ref: '#/parameters/pageSize'
- $ref: '#/parameters/page'
responses:
200:
description: 'Paginated teams'
schema:
$ref: '#/definitions/TeamsPaginated'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
post:
summary: Create a team
tags:
- Users
parameters:
- name: team
in: body
required: true
schema:
$ref: '#/definitions/TeamCreate'
responses:
201:
description: 'Team created'
schema:
$ref: '#/definitions/Team'
403:
description: 'Insufficient permissions for resource'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
/teams/{teamID}:
x-resource: Teams
get:
summary: 'Get team details'
tags:
- Users
parameters:
- $ref: '#/parameters/teamID'
responses:
200:
description: 'Detail about a team'
schema:
$ref: '#/definitions/Team'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
put:
summary: 'Update a team'
tags:
- Users
parameters:
- name: team
in: body
required: true
schema:
$ref: '#/definitions/TeamCreate'
- $ref: '#/parameters/teamID'
responses:
204:
description: 'Update successful (No content)'
schema:
$ref: '#/definitions/Team'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
delete:
summary: 'Delete a team'
description: 'Delete a team by id'
tags:
- Users
parameters:
- $ref: '#/parameters/teamID'
responses:
204:
description: 'Deletion successful (no content)'
403:
description: 'Insufficient permissions for resource or resource does not exist'
schema:
$ref: '#/definitions/Error'
default:
description: 'Unexpected error'
schema:
$ref: '#/definitions/Error'
parameters:
projectLayer:
name: projectLayerId
description: "Filter by project layer this analysis was created with"
in: query
type: string
format: uuid
required: false
templateId:
name: templateId
description: "Filter by template this analysis was created with"
in: query
type: string
format: uuid
required: false
colorGroupHex:
name: colorGroupHex
in: query
description: 'Filter by color group hex'
type: string
singleSource:
name: singleSource
in: query
description: |
Whether a template can be sensibly filled in using a single project layer
type: boolean
required: false
analysisId:
name: analysisId
in: query
description: |
UUID for analysis to use as a request\'s authorization context
type: string
format: uuid
required: false
groupType:
name: groupType
in: query
description: 'Filter by group type. Requires a group id'
type: string
required: false
enum:
- PLATFORM
- ORGANIZATION
- TEAM
groupId:
name: groupId
in: query
description: 'Filter by group id. Requires a group type'
type: string
format: uuid
required: false
ownershipType:
name: ownershipType
in: query
description: |
Filter by owned, shared, or inherited.
Inherited objects are those which you have been granted permissions for through group membership.
type: string
required: false
enum:
- 'owned'
- 'shared'
- 'inherited'
orderingBase:
name: ordering
in: query
description: 'Field to order results; meaning of label varies based on endpoint'
type: array
collectionFormat: pipes
items:
type: string
enum:
- 'createdAt,desc'
- 'createdAt,asc'
- 'modifiedAt,desc'
- 'modifiedAt,asc'
annotationQualityCheck:
name: annotationQualityCheck
description: 'Quality check on annotations'
in: query
type: string
enum:
- 'PASS'
- 'FAIL'
- 'NEUTRAL'
AnnotationLabel:
name: AnnotationLabel
in: query
description: 'name of a label'
type: string
name:
name: name
in: query
description: 'name of a datasource to filter to'
type: string
organization:
name: organization
in: query
description: 'UUID for organization to filter by'
type: string
format: uuid
projectId:
name: projectId
in: query
description: 'UUID for project'
type: string
format: uuid
layerId:
name: layerId
in: query
description: 'UUID for a project layer'
type: string
format: uuid
queryAuthToken:
name: token
in: query
description: 'JWT in query parameter'
type: string
queryMapToken:
name: mapToken
in: query
description: 'Map token ID in query parameter'
type: string
format: uuid
width:
name: width
in: query
description: 'Approximate thumbnail rendering width'
type: number
format: integer
height:
name: height
in: query
description: 'Approximate thumbnail rendering height'
type: number
format: integer
redBand:
name: red
in: query
description: 'Index to use for a red band'
type: number
format: integer
greenBand:
name: green
in: query
description: 'Index to use for a green band'
type: number
format: integer
blueBand:
name: blue
in: query
description: 'Index to user for a blue band'
type: number
format: integer
brightnessFloor:
name: floor
in: query
description: 'False minimum brightness for rendering thumbnails'
type: number
format: integer
page:
name: page
in: query
description: 'Paginated results page number'
type: number
format: int32
pageSize:
name: pageSize
in: query
description: 'Number of results to fetch per response page'
type: number
format: int32
refreshTokenID:
name: refreshTokenID
in: path
required: true
type: string
datasourceID:
name: datasourceID
in: path
required: true
type: string
format: uuid
uploadID:
name: uploadID
in: path
required: true
type: string
format: uuid
sceneID:
name: sceneID
in: path
required: true
type: string
format: uuid
projectID:
name: projectID
in: path
required: true
type: string
format: uuid
layerID:
name: layerID
in: path
required: true
type: string
format: uuid
annotationID:
name: annotationID
in: path
required: true
type: string
format: uuid
annotationGroupID:
name: annotationGroupID
in: path
required: true
type: string
format: uuid
aoiID:
name: aoiID
in: path
required: true
type: string
format: uuid
mapTokenID:
name: mapTokenID
in: path
required: true
type: string
format: uuid
toolID:
name: toolID
in: path
required: true
type: string
format: uuid
toolTagID:
name: toolTagID
in: path
required: true
type: string
format: uuid
toolRunID:
name: toolRunID
in: path
required: true
type: string
format: uuid
exportID:
name: exportID
in: path
required: true
type: string
format: uuid
shapeID:
name: shapeID
in: path
required: true
type: string
format: uuid
platformID:
name: platformID
in: path
required: true
type: string
format: uuid
organizationID:
name: organizationID
in: path
required: true
type: string
format: uuid
teamID:
name: teamID
in: path
required: true
type: string
format: uuid
userID:
name: userID
in: path
required: true
type: string
slugLabel:
name: slugLabel
description: 'A url-safe slug label'
in: path
required: true
type: string
forProjectId:
name: forProjectId
description: 'UUID of the project to search for scenes to add'
in: query
type: string
format: uuid
required: false
minCloudCover:
name: minCloudCover
description: 'Only return results with cloud cover greater than this number'
in: query
type: number
minimum: 0
maximum: 1.0
required: false
maxCloudCover:
name: maxCloudCover
description: 'Only return results with cloud cover less than this number'
in: query
type: number
required: false
minAcquisitionDatetime:
name: minAcquisitionDatetime
description: 'Only return results acquired after this datetime'
in: query
type: string
required: false
format: datetime
maxAcquisitionDatetime:
name: maxAcquisitionDatetime
description: 'Only return results acquired before this datetime'
in: query
type: string
required: false
format: datetime
minCreateDatetime:
name: minCreateDatetime
description: 'Only return results created after this datetime'
in: query
type: string
required: false
format: datetime
minModifiedDatetime:
name: minModifiedDatetime
description: 'Only return results modified after this datetime'
in: query
type: string
required: false
format: datetime
minSunElevation:
name: minSunElevation
description: 'Only return results with sun elevation greater than this value'
in: query
type: number
required: false
maxSunElevation:
name: maxSunElevation
description: 'Only return results with sun elevation less than this value'
in: query
type: number
required: false
minSunAzimuth:
name: minSunAzimuth
description: 'Only return results with sun elevation greater than this value'
in: query
type: number
required: false
maxSunAzimuth:
name: maxSunAzimuth
description: 'Only return results with sun azium greater than this value'
in: query
type: number
required: false
maxCreateDatetime:
name: maxCreateDatetime
description: 'Only return results created before this datetime'
in: query
type: string
required: false
format: datetime
maxModifiedDatetime:
name: maxModifiedDatetime
description: 'Only return results modified before this datetime'
in: query
type: string
required: false
format: datetime
tagsInclude:
name: tagsInclude
description: 'Only return results that contain these tags'
in: query
type: array
required: false
items:
type: string
tagsExclude:
name: tagsExclude
description: 'Only return results that omit these tags'
in: query
type: array
required: false
items:
type: string
tags:
name: tags
description: 'Only return results that contain these tags'
in: query
type: array
required: false
items:
type: string
datasource:
name: datasource
description: 'Only return results belonging to this datasource'
in: query
type: array
required: false
items:
type: string
format: uuid
uploadStatus:
name: uploadStatus
description: 'Status of upload'
in: query
type: string
required: false
enum:
- 'CREATED'
- 'UPLOADING'
- 'UPLOADED'
- 'QUEUED'
- 'PROCESSING'
- 'COMPLETE'
- 'FAILED'
- 'ABORTED'
month:
name: month
description: 'Only return results from this month'
required: false
in: query
type: array
items:
type: number
format: int
maximum: 12
minimum: 1
minDayOfMonth:
name: minDayOfMonth
description: 'Only return results with acquisition day-of-month greater-than or equal-to this day'
in: query
type: number
maxDayOfMonth:
name: maxDayOfMonth
description: 'Only return results with acquisition day-of-month less-than or equal-to this day'
in: query
type: number
orderingScene:
name: ordering
in: query
description: 'Fields to sort scenes by'
type: array
collectionFormat: pipes
items:
type: string
enum:
- 'createdAt,desc'
- 'createdAt,asc'
- 'modifiedAt,desc'
- 'modifiedAt,asc'
- 'organization,asc'
- 'organization,desc'
- 'datasource,asc'
- 'datasource,desc'
- 'month,asc'
- 'month,desc'
- 'createDatetime,asc'
- 'createDatetime,desc'
- 'acquisitionDatetime,asc'
- 'acquisitionDatetime,desc'
- 'sunAzimuth,asc'
- 'sunAzimuth,desc'
- 'cloudCover,asc'
- 'cloudCover,desc'
toolTag:
name: toolTag
description: 'Only return results that contain these tool tags'
in: query
type: array
required: false
items:
type: string
format: uuid
toolCategory:
name: toolCategory
description: 'Only return results that satisfy this category'
in: query
type: array
required: false
items:
type: string
minRating:
name: minRating
description: 'Only return results greater than this rating'
in: query
type: number
required: false
maxRating:
name: maxRating
description: 'Only return results less than this rating'
in: query
type: number
required: false
search:
name: search
description: 'Full text search string'
in: query
type: string
required: false
exportAll:
name: exportAll
description: 'Export all annotations from a project'
in: query
type: boolean
required: false
minRawDataBytes:
name: minRawDataBytes
description: 'Only return images larger than this amount of bytes'
in: query
type: integer
required: false
maxRawDataBytes:
name: maxRawDataBytes
description: 'Only return images less than this amount of bytes'
in: query
type: integer
required: false
minResolution:
name: minResolution
description: 'Only return resources that have elements greater than this resolution'
in: query
type: number
required: false
maxResolution:
name: maxResolution
description: 'Only return resources that have elements with a resolution less than this amount'
in: query
type: number
required: false
zoom:
name: zoom
description: 'The zoom level used to split the bbox into a grid'
in: path
type: number
required: true
column:
name: column
description: 'column of tile requested'
in: path
type: number
required: true
row:
name: row
description: 'row of tile requested'
in: path
type: number
required: true
bbox:
name: bbox
description: 'Bounding box of the form "bbox=southwest_lng,southwest_lat,northeast_lng,northeast_lat". Delimit multiple with semicolons.'
in: query
type: string
required: false
project:
name: project
description: 'Project uuid to filter only'
in: query
type: string
format: uuid
required: false
layer:
name: layer
description: 'Project layer uuid to filter only'
in: query
type: string
format: uuid
required: false
inProject:
name: project
description: 'Project uuid to populate inProject scene property'
in: query
type: string
format: uuid
required: false
inLayer:
name: layer
description: 'Layer uuid to populate inLayer scene property'
in: query
type: string
format: uuid
required: false
ingested:
name: ingested
description: 'Filter by ingest status'
in: query
type: boolean
required: false
ingestStatus:
name: ingestStatus
description: 'Filter by specific ingest status'
in: query
type: string
required: false
pending:
name: pending
description: "Filter by scene's acceptance for an AOI project"
in: query
type: boolean
required: false
template:
name: templateId
description: "Filter by template this analysis was created from"
in: query
type: string
format: uuid
required: false
createdBy:
name: createdBy
description: 'Filter by creator'
in: query
type: string
required: false
modifiedBy:
name: modifiedBy
description: 'Filter by user last modified by'
in: query
type: string
required: false
owner:
name: owner
description: 'Filter by resource owner ID'
in: query
required: false
type: array
items:
type: string
exportStatus:
name: exportStatus
description: 'Status of export'
in: query
type: string
required: false
enum:
- 'CREATED'
- 'EXPORTING'
- 'EXPORTED'
- 'QUEUED'
- 'PROCESSING'
- 'COMPLETE'
- 'FAILED'
- 'ABORTED'
source:
name: source
description: 'Feed source URI'
in: query
type: string
required: false
licenseID:
name: licenseID
description: 'id/shortName of a license'
in: path
type: string
required: true
isActive:
name: isActive
description: 'Filter to active resources'
in: query
type: boolean
required: false
accepted:
name: accepted
description: 'Filter to resources that have been approved by the user'
in: query
type: boolean
required: false
definitions:
LayerSplitOptions:
type: object
properties:
name:
type: string
description: 'Name for each of the split layers'
colorGroupHex:
type: string
description: 'Color hex code for the new layers. Defaults to the source layer hex code'
rangeStart:
type: string
format: date-time
description: 'Start date for the split layers.'
rangeEnd:
type: string
format: date-time
description: 'End date for the split layers.'
period:
type: string
description: 'Split the layers by day or by week'
enum:
- DAY
- WEEK
splitOnDatasource:
type: boolean
description: 'Split layers by datasource. Defaults to true.'
removeFromLayer:
type: boolean
description: 'Remove scenes from the source layer once they are added to the split layers'
ProjectLayer:
allOf:
- $ref: '#/definitions/BaseModel'
- $ref: '#/definitions/TimeModelMixin'
- type: object
properties:
type:
type: string
geometry:
$ref: '#/definitions/Geometry'
name:
type: string
description: Display name for a layer
projectId:
type: string
format: uuid
colorGroupHex:
type: string
description: Color hex code for visually identifying layers are related and filtering
smartLayerId:
type: string
format: uuid
rangeStart:
type: string
format: datetime
description: Start date for scene matching when associated with a smart layer
rangeEnd:
type: string
format: datetime
description: End date for scene matching when associated with a smart layer
isSingleBand:
type: boolean
description: 'Use single band options to render instead of bands'
singleBandOptions:
$ref: '#/definitions/SingleBandOptions'
ProjectLayerPaginated:
type: object
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
type:
type: string
features:
type: array
items:
type: object
$ref: '#/definitions/ProjectLayer'
Geometry:
type: object
description: GeoJSon geometry
discriminator: type
required:
- type
externalDocs:
url: https://tools.ietf.org/html/rfc7946#section-3.1
properties:
type:
type: string
enum:
- Point
- LineString
- Polygon
- MultiPoint
- MultiLineString
- MultiPolygon
description: the geometry type
Point2D:
type: array
maxItems: 2
minItems: 2
items:
type: number
Polygon:
type: object
description: GeoJSon geometry
externalDocs:
url: https://tools.ietf.org/html/rfc7946#section-3.1.6
allOf:
- $ref: "#/definitions/Geometry"
- properties:
coordinates:
type: array
items:
type: array
items:
$ref: '#/definitions/Point2D'
MultiPolygon:
type: object
description: GeoJSon geometry
externalDocs:
url: https://tools.ietf.org/html/rfc7946#section-3.1.7
allOf:
- $ref: "#/definitions/Geometry"
- properties:
coordinates:
type: array
items:
type: array
items:
type: array
items:
$ref: '#/definitions/Point2D'
Visibility:
type: string
enum: &VISIBILITY
- 'PUBLIC'
- 'ORGANIZATION'
- 'PRIVATE'
BaseModel:
type: object
readOnly: true
properties:
id:
type: string
description: 'unique identifier for object'
format: uuid
BaseCreate:
type: object
properties:
owner:
type: string
description: 'Optional during object creation, owner of an object'
AccessControlRuleBase:
type: object
properties:
subjectType:
type: string
description: 'The target this access control rule applies to'
enum:
- 'ALL'
- 'PLATFORM'
- 'ORGANIZATION'
- 'TEAM'
- 'USER'
subjectId:
type: string
description: 'The id of the subject this access control rule applies to'
actionType:
type: string
description: 'What this access control rule authorizes subjects to do'
enum:
- 'VIEW'
- 'EDIT'
- 'DEACTIVATE'
- 'DELETE'
- 'ANNOTATE'
ObjectAccessControlRule:
$ref: '#/definitions/AccessControlRule'
AccessControlRuleCreate:
allOf:
- $ref: '#/definitions/AccessControlRuleBase'
- type: object
properties:
isActive:
type: boolean
description: 'Whether this access control rule is active'
AccessControlRule:
allOf:
- $ref: '#/definitions/AccessControlRuleCreate'
- type: object
properties:
id:
type: string
format: uuid
createdAt:
type: string
description: 'timestamp of object creation'
format: date-time
createdBy:
type: string
description: 'user who created this object'
objectType:
type: string
description: 'type of object this access control rule applies to'
enum:
- 'PROJECT'
- 'SCENE'
- 'DATASOURCE'
- 'SHAPE'
- 'WORKSPACE'
- 'TEMPLATE'
- 'ANALYSIS'
objectId:
type: string
description: 'Id of the object this access control rule applies to'
format: uuid
MapToken:
allOf:
- $ref: '#/definitions/BaseModel'
- $ref: '#/definitions/TimeModelMixin'
- $ref: '#/definitions/UserTrackingMixin'
- type: object
properties:
name:
type: string
description: 'Human friendly label for map token'
project:
type: string
format: UUID
toolRun:
type: string
format: UUID
MapTokenPaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/MapToken'
MosaicDefinition:
type: object
properties:
sceneId:
type: string
format: uuid
colorCorrections:
$ref: '#/definitions/ColorCorrection'
DropboxAuthRequest:
type: object
properties:
authorizationCode:
type: string
redirectURI:
type: string
AOI:
type: object
properties:
shape:
type: string
format: uuid
filters:
$ref: '#/definitions/CombinedSceneQueryParams'
isActive:
type: boolean
approvalRequired:
type: boolean
startTime:
type: string
format: date-time
ColorCorrection:
type: object
properties:
redBand:
type: number
format: integer
greenBand:
type: number
format: integer
blueBand:
type: number
format: integer
sigmoidalContrast:
type: object
properties:
enabled:
type: boolean
alpha:
type: number
format: float
beta:
type: number
format: float
gamma:
type: object
properties:
enabled:
type: boolean
redGamma:
type: number
format: float
greenGamma:
type: number
format: float
blueGamma:
type: number
format: float
bandClipping:
type: object
properties:
enabled:
type: boolean
redMax:
type: number
format: int
redMin:
type: number
format: int
greenMax:
type: number
format: int
greenMin:
type: number
format: int
blueMax:
type: number
format: int
blueMin:
type: number
format: int
tileClipping:
type: object
properties:
enabled:
type: boolean
min:
type: number
format: int
max:
type: number
format: int
saturation:
type: object
properties:
enabled:
type: boolean
saturation:
type: number
format: float
equalize:
type: object
properties:
enabled:
type: boolean
autoBalance:
type: object
properties:
enabled:
type: boolean
TimeModelMixin:
type: object
readOnly: true
properties:
createdAt:
type: string
description: 'timestamp of object creation'
format: date-time
modifiedAt:
type: string
description: 'timestamp of object modificiation'
format: date-time
UserTrackingMixin:
type: object
properties:
createdBy:
type: string
description: 'User who created the object'
readOnly: true
modifiedBy:
type: string
description: 'User who most recently modified the object'
readOnly: true
owner:
type: string
description: 'User who owns the object'
User:
allOf:
- $ref: '#/definitions/TimeModelMixin'
- type: object
required:
- id
- role
properties:
id:
type: string
description: 'User ID for Raster Foundry'
role:
type: string
description: 'User role in organization'
enum:
- 'USER'
- 'VIEWER'
- 'OWNER'
dropboxCredential:
type: string
description: "Contains the user's dropbox credential if a connection has been configured"
planetCredential:
type: string
description: "Contains the user's planet credential if a connection has been configured"
emailNotifications:
type: boolean
description: 'An opt-in (defaults to false) setting to receive email notifications'
UserSelf:
allOf:
- $ref: '#/definitions/TimeModelMixin'
- type: object
required:
- id
- role
properties:
id:
type: string
description: 'User ID for Raster Foundry'
role:
type: string
description: 'User role in organization'
enum:
- 'USER'
- 'VIEWER'
- 'OWNER'
dropboxCredential:
type: string
description: "Contains the user's dropbox credential if a connection has been configured"
planetCredential:
type: string
description: "Contains the user's planet credential if a connection has been configured"
emailNotifications:
type: boolean
description: 'An opt-in (defaults to false) setting to receive email notifications to login email address'
email:
type: string
description: "Login email"
name:
type: string
description: "User's name"
profileImageUri:
type: string
description: "Link to user's avatar image"
isSuperuser:
type: boolean
description: "User is a superuser or not. Default to false."
isActive:
type: boolean
description: "User is an active user or not. Default to true."
visibility:
type: string
description: "User's visibility. Default to 'PRIVATE'"
enum:
- 'PUBLIC'
- 'PRIVATE'
personalInfo:
type: object
$ref: '#/definitions/UserPersonalInfo'
UserPersonalInfo:
type: object
properties:
firstName:
type: string
description: "User's first name. Default to an empty string"
lastName:
type: string
description: "User's laste name. Default to an empty string"
email:
type: string
description: "User's contact email. Default to an empty string"
emailNotifications:
type: boolean
description: 'An opt-in (defaults to false) setting to receive email notifications to contact email address'
phoneNumber:
type: string
description: "User's phone number. Default to an empty string"
organizationName:
type: string
description: "User's organization name. Default to an empty string"
organizationType:
type: string
description: "User's organization type. Default to 'OTHER'"
enum:
- 'COMMERCIAL'
- 'GOVERNMENT'
- 'NON-PROFIT'
- 'ACADEMIC'
- 'MILITARY'
- 'OTHER'
organizationWebsite:
type: string
description: "User's organization website. Default to an empty string"
profileWebsite:
type: string
description: "User's profile website. Default to an empty string"
profileBio:
type: string
description: "User's profile bio. Default to an empty string"
profileUrl:
type: string
description: "User's profile url. Default to an empty string"
UserThin:
type: object
properties:
id:
type: string
name:
type: string
profileImageUri:
type: string
UserSearched:
allOf:
- $ref: '#/definitions/UserThin'
- type: object
properties:
email:
type: string
UserWithRole:
allOf:
- $ref: '#/definitions/UserSearched'
- type: object
properties:
groupRole:
type: string
Auth0User:
type: object
properties:
email:
type: string
email_verified:
type: boolean
username:
type: string
phone_number:
type: string
phone_verified:
type: boolean
user_id:
type: string
created_at:
type: string
updated_at:
type: string
identities:
type: array
items:
type: string
user_metadata:
type: object
picture:
type: string
name:
type: string
nickname:
type: string
given_name:
type: string
family_name:
type: string
Auth0UserProfile:
type: object
properties:
email:
type: string
phone_number:
type: string
user_metadata:
type: object
username:
type: string
RefreshToken:
type: object
properties:
device_name:
type: string
description: 'User created identifier to track refresh tokens'
id:
type: string
description: 'Auth0 provided identifier used to delete refresh tokens'
AuthToken:
type: object
properties:
id_token:
type: string
description: 'Token that can be used for authenticating API requests'
access_token:
type: string
description: 'Token that can be used for authenticating API requests'
token_type:
type: string
description: 'Type of token returned by using the refresh token'
UserRole:
type: object
properties:
userId:
type: string
groupRole:
type: string
enum:
- 'ADMIN'
- 'MEMBER'
UserGroupRole:
type: object
allOf:
- $ref: '#/definitions/TimeModelMixin'
- type: object
properties:
id:
type: string
format: uuid
isActive:
type: boolean
groupType:
type: string
enum:
- 'PLATFORM'
- 'ORGANIZATION'
- 'TEAM'
groupId:
type: string
format: uuid
membershipStatus:
type: string
enum:
- 'REQUESTED'
- 'INVITED'
- 'APPROVED'
- $ref: '#/definitions/UserRole'
UserGroupRoleWithRelated:
type: object
allOf:
- $ref: '#/definitions/UserGroupRole'
- type: object
properties:
groupName:
type: string
PaginatedResponse:
type: object
required:
- count
- hasNext
- hasPrevious
- page
- pageSize
properties:
count:
type: integer
format: int32
description: 'number of total objects matching query'
hasNext:
type: boolean
description: 'True if more results can be fetched, otherwise false'
hasPrevious:
type: boolean
description: 'True if previous results can be fetched, otherwise false'
page:
type: integer
format: int32
description: 'Current page of paginated query results'
pageSize:
type: integer
format: int32
description: 'Number of results per page'
UserWithRolePaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/UserWithRole'
UserPaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/UserSearched'
ScenePaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/Scene'
PlatformsPaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/Platform'
Platform:
type: object
properties:
id:
type: string
format: UUID
description: 'Platform Id'
name:
type: string
description: 'Platform display name'
isActive:
type: boolean
defaultOrganizationId:
type: string
format: UUID
description: "Default organization to add users to if one isn't specified"
publicSettings:
$ref: '#/definitions/PlatformPublicSettings'
privateSettings:
$ref: '#/definitions/PlatformPrivateSettings'
required:
- id
- name
- isActive
- publicSettings
- privateSettings
PlatformPublicSettings:
type: object
properties:
emailUser:
type: string
emailSmtpHost:
type: string
emailSmtpPort:
type: integer
emailSmtpEncryption:
type: string
emailIngestNotification:
type: boolean
emailAoiNotification:
type: boolean
emailExportNotification:
type: boolean
platformHost:
type: string
emailFrom:
type: string
required:
- emailUser
- emailSmtpHost
- emailSmtpPort
- emailSmtpEncryption
- emailIngestNotification
- emailAoiNotification
- emailExportNotification
PlatformPrivateSettings:
type: object
properties:
emailPassword:
type: string
required:
- emailPassword
OrganizationsPaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/Organization'
Organization:
allOf:
- $ref: '#/definitions/TimeModelMixin'
- type: object
properties:
id:
type: string
description: 'Organization Id'
name:
type: string
description: 'Display name for organization'
status:
type: string
description: 'status of organization'
enum:
- 'INACTIVE'
- 'REQUESTED'
- 'ACTIVE'
required:
- name
- id
- status
OrganizationCreate:
type: object
properties:
name:
type: string
platformId:
type: string
format: UUID
TeamsPaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/Team'
Team:
allOf:
- type: object
properties:
createdBy:
type: string
description: 'User who created the object'
readOnly: true
modifiedBy:
type: string
description: 'User who most recently modified the object'
readOnly: true
organizationId:
type: string
description: 'uuid for organization'
id:
type: string
format: UUID
description: Team ID
- $ref: '#/definitions/TimeModelMixin'
- $ref: '#/definitions/TeamCreate'
TeamCreate:
type: object
properties:
organizationId:
type: string
format: UUID
description: 'uuid for organization'
name:
type: string
description: 'name of a team'
settings:
type: object
description: 'settings for a team, default to {}'
Composite:
type: object
description: 'mapping of bands to RGB'
properties:
label:
type: string
description: 'Human readable label for color composite to describe what it is useful for (e.g. natural color)'
value:
type: object
properties:
redBand:
type: integer
greenBand:
type: integer
blueBand:
type: integer
DatasourceToCreate:
type: object
description: 'Datasource to be created'
allOf:
- $ref: '#/definitions/DatasourceCreated'
- $ref: '#/definitions/DatasourceBands'
DatasourceBands:
type: object
description: 'Band definitions of a datasource'
allOf:
- type: object
properties:
bands:
type: array
items:
type: object
properties:
name:
type: string
number:
type: string
wavelength:
type: number
format: float
DatasourceCreated:
type: object
description: 'Grouping of imagery by creation source'
allOf:
- type: object
properties:
visibility:
type: string
description: 'Level of restriction on viewing'
enum:
- 'PUBLIC'
- 'ORGANIZATION'
- 'PRIVATE'
name:
type: string
description: 'human label name for datasource'
extras:
type: object
description: 'additional related information for a datasource'
composites:
$ref: '#/definitions/Composite'
Datasource:
allOf:
- $ref: '#/definitions/BaseModel'
- $ref: '#/definitions/UserTrackingMixin'
- $ref: '#/definitions/TimeModelMixin'
- $ref: '#/definitions/DatasourceCreated'
DatasourceThin:
type: object
description: 'A datasource with a reduced set of fields'
properties:
name:
type: string
description: 'The name of this datasource'
id:
type: string
format: uuid
description: 'The id of this datasource'
bands:
type: array
items:
type: object
properties:
name:
type: string
number:
type: string
wavelength:
type: number
format: float
DatasourcePaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/Datasource'
License:
type: object
description: 'A record of license'
properties:
name:
type: string
description: 'Name of a license'
osiApproved:
type: boolean
description: 'If a license is OSI approved'
shortName:
type: string
description: 'Short name of a license'
url:
type: string
description: 'URL to details of a license'
LicensesPaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/License'
SceneBase:
allOf:
- $ref: '#/definitions/BaseModel'
- type: object
properties:
visibility:
type: string
description: 'Level of restriction on viewing'
enum:
- 'PUBLIC'
- 'ORGANIZATION'
- 'PRIVATE'
tags:
type: array
description: 'Tags associated with image'
items:
type: string
sceneMetadata:
type: object
description: |
Metadata about the scene -- some aspects we will eventually want to nail down that will
be fairly common and/or required for scenes
name:
type: string
description: 'Identifying name for the scene'
owner:
type: string
description: 'User ID to set as owner of the scene.'
datafootprint:
$ref: '#/definitions/MultiPolygon'
tilefootprint:
$ref: '#/definitions/MultiPolygon'
metadataFiles:
type: array
description: |
Metadata files that should be present for processing all
images in a scene (e.g. relevant .mtl files or .xml)
items:
type: string
ingestLocation:
type: string
description: 'Where scene is ingested (pyramided/tiled)'
filterFields:
$ref: '#/definitions/FilterFields'
statusFields:
$ref: '#/definitions/StatusFields'
sceneType:
type: string
description: 'How to produce tiles of this scene'
enum:
- 'AVRO'
- 'COG'
Scene:
allOf:
- $ref: '#/definitions/SceneBase'
- $ref: '#/definitions/UserTrackingMixin'
- $ref: '#/definitions/TimeModelMixin'
- type: object
properties:
images:
type: array
items:
$ref: '#/definitions/Image'
thumbnails:
type: array
items:
$ref: '#/definitions/Thumbnail'
datasource:
$ref: '#/definitions/DatasourceThin'
SceneOrdered:
allOf:
- $ref: '#/definitions/SceneBase'
- $ref: '#/definitions/UserTrackingMixin'
- $ref: '#/definitions/TimeModelMixin'
- type: object
properties:
thumbnails:
type: array
items:
$ref: '#/definitions/Thumbnail'
datasource:
$ref: '#/definitions/DatasourceThin'
sceneOrder:
type: number
format: int
SceneBrowse:
allOf:
- $ref: '#/definitions/SceneBase'
- $ref: '#/definitions/UserTrackingMixin'
- $ref: '#/definitions/TimeModelMixin'
- type: object
properties:
datasource:
$ref: '#/definitions/DatasourceThin'
thumbnails:
type: array
items:
$ref: '#/definitions/Thumbnail'
inProject:
type: boolean
description: 'Whether the scene is already added to a given project'
inLayer:
type: boolean
description: 'Whether the scene is already added to a given project layer'
SceneBrowsePaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/SceneBrowse'
SceneOrderedPaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/SceneOrdered'
FilterFields:
type: object
properties:
cloudCover:
type: number
format: float32
description: 'Proportion of cloud coverage for scene'
acquisitionDate:
type: string
format: datetime
description: 'Date scene was acquired from instrument (e.g. satellite, drone)'
sunAzimuth:
type: number
format: float32
description: 'Azimuth of the sun'
sunElevation:
type: number
format: float32
description: 'Elevation of the sun'
StatusFields:
type: object
properties:
thumbnailStatus:
type: string
description: 'status of thumbnail generation'
enum:
- 'SUCCESS'
- 'FAILURE'
- 'PARTIALFAILURE'
- 'QUEUED'
- 'PROCESSING'
footprintStatus:
type: string
description: 'status of footprint generation'
enum:
- 'SUCCESS'
- 'FAILURE'
- 'PARTIALFAILURE'
- 'QUEUED'
- 'PROCESSING'
ingestStatus:
type: string
description: 'status of ingest'
enum:
- 'NOTINGESTED'
- 'TOBEINGESTED'
- 'INGESTING'
- 'INGESTED'
- 'FAILED'
SingleBandOptions:
type: object
properties:
band:
type: integer
description: 'Band number to render'
dataType:
type: string
description: 'Type of data'
enum:
- DIVERGING
- SEQUENTIAL
- CATEGORICAL
colorBins:
type: integer
description: |
Limit to this number of colors, using interpolation.
Defaults to 0, which corresponds to the maximum of 255 (one per normalized pixel value)
colorScheme:
description: |
An array of color hex codes, or an object of breakpoints and their corresponding colors
Eg: ["#000000", "#111111", "#222222"]
Eg: {"0": "#000000", "10": "#111111", "11": "#222222" }
type: array
items:
type: string
legendOrientation:
type: string
description: 'Currently unused'
extraNoData:
description: 'Values to treat as NODATA for categorical color schemes - Not currently respected'
type: array
items:
type: integer
ProjectCreate:
type: object
required:
- name
- visibility
- tileVisibility
- tags
- description
properties:
name:
type: string
description: 'The display name of the project'
description:
type: string
description: 'Long-form description of the project'
visibility:
description: 'Level of restriction on viewing'
type: string
enum: *VISIBILITY
tileVisibility:
description: 'Level of restriction on viewing'
type: string
enum: *VISIBILITY
isAOIProject:
type: boolean
description: 'Is true if project is an area-of-interest project'
aoiCadenceMillis:
type: number
format: int64
owner:
type: string
description: 'User who owns the project'
tags:
type: array
items:
type: string
isSingleBand:
type: boolean
description: 'Use single band options to render instead of bands'
singleBandOptions:
$ref: '#/definitions/SingleBandOptions'
extras:
type: object
description: 'Optional additional json metadata'
Project:
allOf:
- $ref: '#/definitions/BaseModel'
- $ref: '#/definitions/UserTrackingMixin'
- $ref: '#/definitions/TimeModelMixin'
- type: object
properties:
name:
type: string
description: 'The display name of the project'
slugLabel:
type: string
description: 'URL-safe version of name'
readOnly: true
description:
type: string
description: 'Long-form description of the project'
visibility:
description: 'Level of restriction on viewing'
type: string
enum: *VISIBILITY
tileVisibility:
description: 'Level of restriction on viewing'
type: string
enum: *VISIBILITY
isAOIProject:
type: boolean
description: 'Is true if project is an area-of-interest project'
aoiCadenceMillis:
type: number
format: int64
aoisLastChecked:
type: string
format: datetime
tags:
type: array
items:
type: string
extent:
$ref: '#/definitions/Polygon'
manualOrder:
type: boolean
description: 'Is true if project scenes are manually ordered'
isSingleBand:
type: boolean
description: 'Use single band options to render instead of bands'
singleBandOptions:
$ref: '#/definitions/SingleBandOptions'
defaultAnnotationGroup:
type: string
format: uuid
description: 'Default group to add annotations to when they are created'
extras:
type: object
description: 'Optional additional json metadata'
defaultLayerId:
type: string
format: uuid
description: 'Default project layer to interact with'
Image:
allOf:
- $ref: '#/definitions/BaseModel'
- $ref: '#/definitions/TimeModelMixin'
- $ref: '#/definitions/UserTrackingMixin'
- type: object
required:
- filename
- sourceUri
properties:
bands:
type: array
description: 'list of band types for image; a single band denotes a single band image, multiple bands should be listed in order (e.g if it is an RGB tiff then bands should be [red, green blue])'
items:
$ref: '#/definitions/Band'
filename:
type: string
description: 'The basename of the file holding this image'
sourceUri:
type: string
description: 'An absolute location for accessing this image somewhere in the universe'
ImageWithDownloadUri:
allOf:
- $ref: '#/definitions/Image'
- type: object
properties:
downloadUri:
type: string
description: 'URI to downloadable resource. This is not always the same as `sourceUri`.'
ProjectPaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/Project'
AoiPaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/AOI'
BandCreate:
type: object
properties:
name:
type: string
description: 'String representation of band name'
number:
type: integer
description: 'Band number for image'
wavelength:
type: array
items:
type: integer
Band:
allOf:
- $ref: '#/definitions/BandCreate'
- $ref: '#/definitions/BaseModel'
- type: object
properties:
image:
type: string
format: UUID
ThumbnailIdentified:
allOf:
- $ref: '#/definitions/BaseModel'
- type: object
properties:
thumbnailSize:
type: string
description: 'Summary of size'
enum:
- 'SMALL'
- 'LARGE'
- 'SQUARE'
widthPx:
type: integer
format: int32
description: 'The width of the thumbnail, in pixels'
heightPx:
type: integer
format: int32
description: 'The height of the thumbnail, in pixels'
sceneId:
type: string
format: uuid
description: 'Scene that image is associated with'
url:
type: string
format: uri
description: 'A client-accessible URL pointing to the image file'
Thumbnail:
allOf:
- $ref: '#/definitions/BaseModel'
- $ref: '#/definitions/TimeModelMixin'
- $ref: '#/definitions/ThumbnailIdentified'
Tool:
allOf:
- $ref: '#/definitions/BaseModel'
- $ref: '#/definitions/UserTrackingMixin'
- type: object
properties:
title:
type: string
description: 'Title of tool displayed to users'
description:
type: string
description: |
A long description of the tool, including is use-cases,
purpose, and any potential references
organization:
description: 'The owning organization of the Tool'
items:
$ref: '#/definitions/Organization'
requirements:
type: string
description: 'A brief description of requirements, including any relevant band requirements'
tags:
type: array
description: 'Tool tags associated with a tool'
items:
type: string
categories:
type: array
description: 'Category of geoprocessing tool'
items:
type: string
license:
type: string
description: 'Usage license of tool'
compatibleDatasources:
type: array
description: 'Datasources that can be used with this geoprocessing tool'
items:
type: string
stars:
type: number
description: 'User rating of geoprocessing tool'
visibility:
type: string
description: 'Level of restriction on viewing'
enum:
- 'PUBLIC'
- 'ORGANIZATION'
- 'PRIVATE'
ToolPaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/Tool'
ToolTag:
allOf:
- $ref: '#/definitions/BaseModel'
- $ref: '#/definitions/UserTrackingMixin'
- type: object
properties:
label:
type: string
description: 'User displayed label'
ToolTagPaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/ToolTag'
ToolCategory:
allOf:
- $ref: '#/definitions/BaseModel'
- type: object
properties:
category:
type: string
description: 'User displayed label for category'
slugLabel:
type: string
description: 'Slug label for use in urls'
ToolCategoryPaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/ToolCategory'
ToolRun:
allOf:
- $ref: '#/definitions/BaseModel'
- $ref: '#/definitions/UserTrackingMixin'
- type: object
properties:
executionParameters:
type: object
description: 'Parameters for running the tool'
name:
type: string
visibility:
type: string
description: 'Level of restriction on viewing'
enum:
- 'PUBLIC'
- 'ORGANIZATION'
- 'PRIVATE'
ToolRunPaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/ToolRun'
ToolRunWithRelated:
allOf:
- $ref: '#/definitions/ToolRun'
- type: object
properties:
templateTitle:
type: string
description: 'Title of the template used to create this analysis'
layerColorGroupHex:
type: string
layerGeometry:
$ref: "#/definitions/Geometry"
ToolRunWithRelatedPaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/ToolRunWithRelated'
Error:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
OrgParams:
type: object
description: 'Organization parameters to filter scenes'
properties:
organizations:
type: array
items:
type: string
format: uuid
UserParams:
type: object
description: 'User parameters to filter scenes'
properties:
createdBy:
type: string
modifiedBy:
type: string
owner:
type: string
TimestampParams:
type: object
description: 'Timestamp parameters to filter scenes'
properties:
minCreateDatetime:
type: string
format: datetime
maxCreateDateTime:
type: string
format: datetime
minModifiedDatetime:
type: string
format: datetime
maxModifiedDatetime:
type: string
format: datetime
UploadCreate:
type: object
allOf:
- $ref: '#/definitions/BaseCreate'
- type: object
properties:
uploadStatus:
type: string
description: 'Status of upload'
enum:
- 'CREATED'
- 'UPLOADING'
- 'UPLOADED'
- 'QUEUED'
- 'PROCESSING'
- 'COMPLETE'
- 'FAILED'
- 'ABORTED'
files:
type: array
items:
type: string
description: 'An array of strings of file locations. If a source is provided, this can be empty'
uploadType:
type: string
description: 'Source of files and uploads'
enum:
- 'DROPBOX'
- 'S3'
- 'LOCAL'
- 'PLANET'
- 'MODIS_USGS'
fileType:
type: string
description: 'type of data being uploaded, limited to two options right now'
enum:
- 'GEOTIFF'
- 'GEOTIFF_WITH_METADATA'
datasource:
type: string
description: 'datasource of tiffs being uploaded'
format: uuid
visibility:
type: string
description: 'Level of restriction on viewing'
enum:
- 'PUBLIC'
- 'ORGANIZATION'
- 'PRIVATE'
projectId:
type: string
format: uuid
description: 'during the import process, add scenes to a project if specified'
source:
type: string
description: 'for uploads of type S3 and Dropbox, the location of the files to import. If files are specified, this field is ignored'
metadata:
$ref: '#/definitions/UploadMetadata'
Upload:
allOf:
- $ref: '#/definitions/BaseModel'
- $ref: '#/definitions/UserTrackingMixin'
- $ref: '#/definitions/UploadCreate'
- type: object
properties:
files:
type: array
items:
type: string
metadata:
type: object
UploadMetadata:
type: object
properties:
sceneCloudCover:
type: number
format: float32
sceneAcquisitionDate:
type: string
format: datetime
UploadPaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/Upload'
UploadCredentials:
type: object
properties:
AccessKeyId:
type: string
SecretAccessKey:
type: string
SessionToken:
type: string
Expiration:
type: string
format: datetime
UploadCredentialsResponse:
type: object
properties:
credentials:
$ref: '#/definitions/UploadCredentials'
bucketPath:
type: string
SceneParams:
type: object
description: 'scene params'
properties:
maxCloudCover:
type: number
format: float32
minCloudCover:
type: number
format: float32
minAcquisitionDatetime:
type: string
format: datetime
maxAcquisitionDatetime:
type: string
format: datetime
datasource:
type: array
items:
type: string
format: uuid
month:
type: array
items:
type: number
format: int
minDayOfMonth:
type: number
format: int
maxDayOfMonth:
type: number
format: int
maxSunAzimuth:
type: number
format: float32
minSunAzimuth:
type: number
format: float32
maxSunElevation:
type: number
format: float32
minSunElevation:
type: number
format: float32
bbox:
type: string
project:
type: string
format: uuid
ingested:
type: boolean
ingestStatus:
type: string
enum:
- 'NOTINGESTED'
- 'TOBEINGESTED'
- 'INGESTING'
- 'INGESTED'
- 'FAILED'
ImageParams:
type: object
description: 'image params'
properties:
minRawDataBytes:
type: number
format: int
maxRawDataBytes:
type: number
format: int
minResolution:
type: number
format: float32
maxResolution:
type: number
format: float32
scene:
type: array
items:
type: string
format: uuid
CombinedSceneQueryParams:
type: object
description: 'Combined query parameters for filtering scenes'
properties:
orgParams:
$ref: '#/definitions/OrgParams'
userParams:
$ref: '#/definitions/UserParams'
timestampParams:
$ref: '#/definitions/TimestampParams'
sceneParams:
$ref: '#/definitions/SceneParams'
imageParams:
$ref: '#/definitions/ImageParams'
SceneCorrectionParam:
type: object
description: 'A paired scene ID and color correction parameter list'
properties:
sceneId:
type: string
format: uuid
params:
$ref: '#/definitions/ColorCorrection'
CombinedSceneCorrectionParams:
type: object
description: 'Combined color correction parameters for multiple scenes'
properties:
items:
type: array
items:
$ref: '#/definitions/SceneCorrectionParam'
ExportCreate:
type: object
allOf:
- $ref: '#/definitions/BaseCreate'
- type: object
properties:
projectId:
type: string
format: uuid
sceneIds:
type: array
items:
type: string
format: uuid
exportStatus:
type: string
description: 'Status of export'
enum:
- 'CREATED'
- 'EXPORTING'
- 'EXPORTED'
- 'QUEUED'
- 'PROCESSING'
- 'COMPLETE'
- 'FAILED'
- 'ABORTED'
exportType:
type: string
description: 'Source of exports'
enum:
- 'DROPBOX'
- 'S3'
- 'LOCAL'
visibility:
type: string
description: 'Level of restriction on viewing'
enum:
- 'PUBLIC'
- 'ORGANIZATION'
- 'PRIVATE'
toolRunId:
type: string
format: uuid
description: 'Optional id of a ToolRun. Specifying this will perform an RDD-AST-based export job.'
exportOptions:
$ref: '#/definitions/ExportOptions'
Export:
allOf:
- $ref: '#/definitions/BaseModel'
- $ref: '#/definitions/UserTrackingMixin'
- $ref: '#/definitions/ExportCreate'
- type: object
properties:
exportStatus:
type: string
description: 'Status of export'
enum:
- 'CREATED'
- 'EXPORTING'
- 'EXPORTED'
- 'QUEUED'
- 'PROCESSING'
- 'COMPLETE'
- 'FAILED'
- 'ABORTED'
ExportPaginated:
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/definitions/Export'
ExportOptions:
type: object
description: 'export params'
properties:
operation:
type: string
description: 'currently a not supported flag, describes a render operation, "id" by defaut.'
bands:
type: array
description: 'bands in the exported geotiffs'
items:
type: integer
rasterSize:
type: integer
description: 'desired tiff size after export'
crs:
type: integer
description: 'epsg projection code'
mask:
type: object
description: 'GeoJSON multipolygon'
stitch:
type: boolean
description: 'stitch tiles into a single geotiff if possible'
crop:
type: boolean
description: 'crop stitched raster by provided mask if possible'
raw:
type: boolean
description: 'make a raw export skipping all color correction steps'
ExportDefinition:
type: object
properties:
exportStatus:
type: string
description: 'Status of export'
enum:
- 'NOTEXPORTED'
- 'TOBEEXPORTED'
- 'EXPORTING'
- 'EXPORTED'
- 'FAILED'
input:
$ref: '#/definitions/InputExportDefinition'
output:
$ref: '#/definitions/OutputExportDefinition'
InputExportDefinition:
type: object
properties:
projectId:
type: string
format: uuid
resolution:
type: integer
description: "required resolution (currently it's zoom level)"
mask:
type: object
description: 'GeoJSON multipolygon'
layers:
type: object
properties:
layerId:
type: string
format: uuid
ingestLocation:
type: string
format: uuid
colorCorrections:
$ref: '#/definitions/ColorCorrection'
OutputExportDefinition:
type: object
properties:
rasterSize:
type: integer
description: 'desired tiff size after export'
crs:
type: integer
description: 'epsg projection code'
stitch:
type: boolean
description: 'stitch tiles into a single geotiff if possible'
crop:
type: boolean
description: 'crop stitched raster by provided mask if possible'
source:
type: string
format: uuid
description: 'output export path'
render:
$ref: '#/definitions/Render'
dropboxCredential:
type: string
description: 'Dropbox token'
Render:
type: object
properties:
operation:
type: string
description: 'currently useless Field'
bands:
type: array
description: 'bands in the exported geotiffs'
items:
type: integer
BulkAcceptParams:
type: object
description: 'bulk accept params'
properties:
sceneIds:
type: array
items:
type: string
format: uuid
AnnotationFeature:
type: object
properties:
type:
type: string
properties:
allOf:
- $ref: '#/definitions/BaseModel'
- $ref: '#/definitions/TimeModelMixin'
- $ref: '#/definitions/UserTrackingMixin'
- type: object
properties:
label:
type: string
description:
type: string
machineGenerated:
type: boolean
confidence:
type: number
format: float
quality:
type: string
enum:
- 'YES'
- 'NO'
- 'MISS'
- 'MATCH'
projectId:
type: string
format: uuid
annotationGroup:
type: string
format: uuid
geometry:
$ref: "#/definitions/Geometry"
AnnotationFeatureUpdate:
type: object
properties:
type:
type: string
properties:
type: object
properties:
label:
type: string
description:
type: string
machineGenerated:
type: boolean
confidence:
type: number
format: float
quality:
type: string
enum:
- 'YES'
- 'NO'
- 'MISS'
- 'MATCH'
annotationGroup:
type: string
format: uuid
geometry:
$ref: "#/definitions/Geometry"
AnnotationFeatureCreate:
type: object
properties:
type:
type: string
properties:
allOf:
- $ref: '#/definitions/BaseCreate'
- type: object
properties:
label:
type: string
description:
type: string
machineGenerated:
type: boolean
confidence:
type: number
format: float
quality:
type: string
enum:
- 'YES'
- 'NO'
- 'MISS'
- 'MATCH'
annotationGroup:
type: string
format: uuid
geometry:
$ref: "#/definitions/Geometry"
AnnotationFeatureCollection:
type: object
properties:
type:
type: string
features:
type: array
items:
$ref: '#/definitions/AnnotationFeature'
AnnotationFeatureCollectionPaginated:
type: object
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
type:
type: string
features:
type: array
items:
$ref: '#/definitions/AnnotationFeature'
AnnotationFeatureCollectionCreate:
type: object
properties:
type:
type: string
features:
type: array
items:
$ref: '#/definitions/AnnotationFeatureCreate'
ShapeFeature:
type: object
properties:
type:
type: string
properties:
allOf:
- $ref: '#/definitions/BaseModel'
- $ref: '#/definitions/TimeModelMixin'
- $ref: '#/definitions/UserTrackingMixin'
- type: object
properties:
name:
type: string
description:
type: string
geometry:
$ref: "#/definitions/Geometry"
ShapeFeatureUpdate:
type: object
properties:
type:
type: string
properties:
type: object
properties:
name:
type: string
description:
type: string
geometry:
$ref: "#/definitions/Geometry"
ShapeFeatureCreate:
type: object
properties:
type:
type: string
properties:
allOf:
- $ref: '#/definitions/BaseCreate'
- type: object
properties:
name:
type: string
description:
type: string
geometry:
$ref: "#/definitions/Geometry"
ShapeFeatureCollection:
type: object
properties:
type:
type: string
features:
type: array
items:
$ref: '#/definitions/ShapeFeature'
ShapeFeatureCollectionPaginated:
type: object
allOf:
- $ref: '#/definitions/PaginatedResponse'
- type: object
properties:
type:
type: string
features:
type: array
items:
$ref: '#/definitions/ShapeFeature'
ShapeFeatureCollectionCreate:
type: object
properties:
type:
type: string
features:
type: array
items:
$ref: '#/definitions/ShapeFeatureCreate'
AnnotationGroupCreate:
type: object
required:
- name
properties:
name:
type: string
projectId:
type: string
format: uuid
defaultStyle:
type: object
AnnotationGroup:
type: object
allOf:
- $ref: '#/definitions/BaseModel'
- $ref: '#/definitions/TimeModelMixin'
- $ref: '#/definitions/UserTrackingMixin'
properties:
name:
type: string
projectId:
type: string
format: uuid
defaultStyle:
type: object
ProjectColorMode:
type: object
properties:
redBand:
type: integer
description: 'Red channel band mapping'
greenBand:
type: integer
description: 'Green channel band mapping'
blueBand:
type: integer
description: 'Blue channel band mapping'
LabelSummary:
type: object
properties:
label:
type: string
counts:
type: object