# Protocol Documentation ## Table of Contents - [ui.proto](#ui-proto) - [AddAttachmentInput](#ui-AddAttachmentInput) - [AddAttachmentOutput](#ui-AddAttachmentOutput) - [AddFlightPlanData](#ui-AddFlightPlanData) - [AddUserToOrganizationData](#ui-AddUserToOrganizationData) - [Analysis](#ui-Analysis) - [AnalysisList](#ui-AnalysisList) - [AnalysisPresignedUrl](#ui-AnalysisPresignedUrl) - [AnalysisPresignedUrl.IndexesMapEntry](#ui-AnalysisPresignedUrl-IndexesMapEntry) - [AppControl](#ui-AppControl) - [Application](#ui-Application) - [ApplicationList](#ui-ApplicationList) - [Artifact](#ui-Artifact) - [ArtifactList](#ui-ArtifactList) - [Certificate](#ui-Certificate) - [CustomerPortal](#ui-CustomerPortal) - [Download](#ui-Download) - [DownloadFlightPlanRequest](#ui-DownloadFlightPlanRequest) - [DownloadItem](#ui-DownloadItem) - [DownloadableFile](#ui-DownloadableFile) - [DownloadableFileList](#ui-DownloadableFileList) - [Drone](#ui-Drone) - [DroneDetails](#ui-DroneDetails) - [DroneFrame](#ui-DroneFrame) - [DroneList](#ui-DroneList) - [DroneStatus](#ui-DroneStatus) - [DroneStatus.FlightProgress](#ui-DroneStatus-FlightProgress) - [DroneStatus.UploadProgress](#ui-DroneStatus-UploadProgress) - [Error](#ui-Error) - [ErrorList](#ui-ErrorList) - [Field](#ui-Field) - [FieldList](#ui-FieldList) - [FlightDetails](#ui-FlightDetails) - [FlightDetails.Metric](#ui-FlightDetails-Metric) - [FlightList](#ui-FlightList) - [FlightList.Item](#ui-FlightList-Item) - [FlightPlan](#ui-FlightPlan) - [FlightPlanList](#ui-FlightPlanList) - [FlightPlanRaw](#ui-FlightPlanRaw) - [GetLiveStreamRequest](#ui-GetLiveStreamRequest) - [GetUserPermissionInOrganizationData](#ui-GetUserPermissionInOrganizationData) - [IndexData](#ui-IndexData) - [LatLng](#ui-LatLng) - [Link](#ui-Link) - [LiveStream](#ui-LiveStream) - [LogList](#ui-LogList) - [Media](#ui-Media) - [MediaList](#ui-MediaList) - [MultiSizeMediaPresignedUrl](#ui-MultiSizeMediaPresignedUrl) - [Notification](#ui-Notification) - [NotificationList](#ui-NotificationList) - [ObjectID](#ui-ObjectID) - [Organization](#ui-Organization) - [Organization.Member](#ui-Organization-Member) - [OrganizationList](#ui-OrganizationList) - [RemoveUserFromOrganizationData](#ui-RemoveUserFromOrganizationData) - [RunAnalysisInput](#ui-RunAnalysisInput) - [RunAnalysisInput.GRVIOptions](#ui-RunAnalysisInput-GRVIOptions) - [RunAnalysisInput.IndexOptions](#ui-RunAnalysisInput-IndexOptions) - [RunAnalysisOutput](#ui-RunAnalysisOutput) - [SendCommandsData](#ui-SendCommandsData) - [SendCommandsResponse](#ui-SendCommandsResponse) - [SettingValue](#ui-SettingValue) - [Settings](#ui-Settings) - [StartLiveStreamRequest](#ui-StartLiveStreamRequest) - [StartLiveStreamResponse](#ui-StartLiveStreamResponse) - [StopLiveStreamRequest](#ui-StopLiveStreamRequest) - [TimeserieValue](#ui-TimeserieValue) - [UpdateFlightPlanData](#ui-UpdateFlightPlanData) - [Upload](#ui-Upload) - [UploadRequest](#ui-UploadRequest) - [UserEmail](#ui-UserEmail) - [UserPermissionInOrganization](#ui-UserPermissionInOrganization) - [UserSubscription](#ui-UserSubscription) - [UserUsername](#ui-UserUsername) - [Analysis.State](#ui-Analysis-State) - [Analysis.Type](#ui-Analysis-Type) - [RunAnalysisInput.BucketAlgorithm](#ui-RunAnalysisInput-BucketAlgorithm) - [SettingValue.Key](#ui-SettingValue-Key) - [UserPermissionInOrganization.Permission](#ui-UserPermissionInOrganization-Permission) - [UserSubscription.State](#ui-UserSubscription-State) - [AnalysisService](#ui-AnalysisService) - [ControllerService](#ui-ControllerService) - [DroneService](#ui-DroneService) - [FieldService](#ui-FieldService) - [FlightPlanService](#ui-FlightPlanService) - [FlightService](#ui-FlightService) - [MediaService](#ui-MediaService) - [MiscService](#ui-MiscService) - [OrganizationService](#ui-OrganizationService) - [UserService](#ui-UserService) - [Scalar Value Types](#scalar-value-types)

Top

## ui.proto ### AddAttachmentInput | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | content_type | [string](#string) | | The content type of the file | | extension | [string](#string) | | The format of the file (e.g. mp4, jpg, etc.) | | size | [int64](#int64) | | The size of the file in bytes | | annotation_id | [ObjectID](#ui-ObjectID) | | The id of the annotation to attach the file to | ### AddAttachmentOutput | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | url | [string](#string) | | The url to upload the file to using a PUT request | | key | [string](#string) | | The key of the file | ### AddFlightPlanData Input data to create a new flightplan | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | name | [string](#string) | | The name of the flightplan | | data | [bytes](#bytes) | | The data of the flightplan (i.e. a json string) | ### AddUserToOrganizationData Input data to add a user to an organization | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | organization_id | [ObjectID](#ui-ObjectID) | | The id of the organization | | email | [string](#string) | | The email of the user to add | | read_only | [bool](#bool) | | Weather the user should have read only access | ### Analysis Output data for an analysis | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [ObjectID](#ui-ObjectID) | | The id of the analysis | | media_id | [ObjectID](#ui-ObjectID) | | The id of the media to analyze | | type | [Analysis.Type](#ui-Analysis-Type) | | The type of the analysis | | state | [Analysis.State](#ui-Analysis-State) | | The state of the analysis | | media_list | [ObjectID](#ui-ObjectID) | repeated | The list of media to analyze | | date | [int64](#int64) | | The creation date of the analysis | | field_id | [ObjectID](#ui-ObjectID) | | The id of field to analyze (if any) | ### AnalysisList Output data for a list of analysis | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | analysis | [Analysis](#ui-Analysis) | repeated | The list of analysis | ### AnalysisPresignedUrl Output data for a presigned url | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | orthophoto | [string](#string) | | **Deprecated.** The url for the orthophoto | | orthophoto_png | [string](#string) | | The url for the orthophoto png | | grvi | [string](#string) | | **Deprecated.** The url for the GRVI | | grvi_png | [string](#string) | | **Deprecated.** The url for the GRVI png | | grvi_d | [string](#string) | | **Deprecated.** The url for the GRVI discrete | | grvi_d_png | [string](#string) | | **Deprecated.** The url for the GRVI discrete png | | shapefiles | [string](#string) | repeated | **Deprecated.** The urls for the shapefiles | | indexes_map | [AnalysisPresignedUrl.IndexesMapEntry](#ui-AnalysisPresignedUrl-IndexesMapEntry) | repeated | The data related to the computed indexes | | orthophoto_multi_size | [MultiSizeMediaPresignedUrl](#ui-MultiSizeMediaPresignedUrl) | | The url for the orthophoto multi size | | orthophoto_ms_multi_size | [MultiSizeMediaPresignedUrl](#ui-MultiSizeMediaPresignedUrl) | | The url for the orthophoto ms multi size | ### AnalysisPresignedUrl.IndexesMapEntry | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | key | [string](#string) | | | | value | [IndexData](#ui-IndexData) | | | ### AppControl Input data for an application to send a message to a drone | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | drone_id | [ObjectID](#ui-ObjectID) | | The drone id to control | | app_id | [ObjectID](#ui-ObjectID) | | The application id to send the message to | | timestamp | [int64](#int64) | | (optional) The timestamp of the message | ### Application Output data for an application | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | The id of the application | | name | [string](#string) | | The name of the application | | default | [bool](#bool) | | Weather the application is the default application | ### ApplicationList Output data for a list of applications | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | applications | [Application](#ui-Application) | repeated | The list of applications | ### Artifact Output data for an artifact | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | name | [string](#string) | | The name of the artifact | | url | [string](#string) | | The url of the artifact | ### ArtifactList Output data for a list of artifacts | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | artifact | [Artifact](#ui-Artifact) | repeated | The list of artifacts | ### Certificate Output data for a TLS certificate | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | key | [bytes](#bytes) | | The key of the certificate | | crt | [bytes](#bytes) | | The certificate | | pfx | [bytes](#bytes) | | The certificate chain | ### CustomerPortal Defines a customer portal url | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | url | [string](#string) | | The customer portal url | ### Download Output data to download a file | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | name | [string](#string) | | The name of the file | | url | [string](#string) | | The url to download the file from | ### DownloadFlightPlanRequest Input data to download a flightplan | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [ObjectID](#ui-ObjectID) | | The id of the flightplan | | valid_at_timestamp | [string](#string) | | (optional) Weather the flightplan is valid at a specific timestamp | ### DownloadItem Output data to download a file | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | url | [string](#string) | | The url where to download the file from | ### DownloadableFile Output data for a downloadable file | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [ObjectID](#ui-ObjectID) | | The id of the file | | name | [string](#string) | | The name of the file | | version | [string](#string) | | The version of the file | | created_at | [int64](#int64) | | The creation date of the file | ### DownloadableFileList Output data for a list of downloadable files | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | files | [DownloadableFile](#ui-DownloadableFile) | repeated | The list of downloadable files | ### Drone Output data for a drone | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | The id of the drone | | name | [string](#string) | | The name of the drone | | flight_plan | [string](#string) | | (optional) The id of the flightplan currently linked to the drone | ### DroneDetails Output data for drone details | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | battery | [TimeserieValue](#ui-TimeserieValue) | repeated | The battery timeserie value | | latitude | [TimeserieValue](#ui-TimeserieValue) | repeated | The latitude timeserie value | | longitude | [TimeserieValue](#ui-TimeserieValue) | repeated | The longitude timeserie value | | gps_level | [string](#string) | | (optional) The gps level value | | state | [string](#string) | | (optional) The drone status value | ### DroneFrame Output data for a drone frame | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | data | [bytes](#bytes) | | The frame data | ### DroneList Output data for a list of drones | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | drones | [Drone](#ui-Drone) | repeated | The list of drones | ### DroneStatus Output data for the drone status | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | metrics | [common.Metrics](#common-Metrics) | | The drone metrics | | download_progress | [float](#float) | | (optional) Weather the drone is currently downloading a media | | flight_progress | [DroneStatus.FlightProgress](#ui-DroneStatus-FlightProgress) | | (optional) The current flight progress | | upload_progress | [DroneStatus.UploadProgress](#ui-DroneStatus-UploadProgress) | | (optional) The current upload progress | ### DroneStatus.FlightProgress | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | current_command | [uint32](#uint32) | | The current command index | | total_commands | [uint32](#uint32) | | The total number of commands | ### DroneStatus.UploadProgress | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | current_media | [uint32](#uint32) | | The current media index | | total_media | [uint32](#uint32) | | The total number of media | ### Error Output data for an error | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [ObjectID](#ui-ObjectID) | | The error id | | timestamp | [int64](#int64) | | The error timestamp | | error | [common.Error](#common-Error) | | The error object | | logs | [common.Log](#common-Log) | repeated | The logs associated with the error (the last 10 minutes) | | metrics | [common.Metrics](#common-Metrics) | repeated | The metrics associated with the error (the last 10 seconds) | ### ErrorList Output data for a list of errors | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | errors | [Error](#ui-Error) | repeated | The list of errors | ### Field Field | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | The id of the field | | name | [string](#string) | | The name of the field | | date | [int64](#int64) | | The creation date of the field | | boundary | [LatLng](#ui-LatLng) | repeated | The boundary of the field | ### FieldList List of fields | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | fields | [Field](#ui-Field) | repeated | The list of fields | ### FlightDetails Output data for flight details | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | The id of the flight | | drone | [string](#string) | | The id of the drone | | flightplan | [string](#string) | | (optional) The id of the flightplan (if any) | | metrics | [FlightDetails.Metric](#ui-FlightDetails-Metric) | repeated | The list of metrics | ### FlightDetails.Metric The metrics object | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | date | [string](#string) | | The timestamp of the metric | | metric | [common.Metrics](#common-Metrics) | | The metrics values | ### FlightList Output data for a list of flights | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | flights | [FlightList.Item](#ui-FlightList-Item) | repeated | The list of flights | ### FlightList.Item A flight item | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | The id of the flight | | drone | [string](#string) | | The id of the drone | | flightplan | [string](#string) | | (optional) The id of the flightplan (if any) | | date | [string](#string) | | The date of the flight | ### FlightPlan Output data for a flightplan | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | The id of the flightplan | | name | [string](#string) | | The name of the flightplan | ### FlightPlanList Output data for a list of flightplans | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | flight_plan | [FlightPlan](#ui-FlightPlan) | repeated | The list of flightplans | ### FlightPlanRaw Output data for a raw flightplan (i.e. a json string) | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | data | [bytes](#bytes) | | The raw flightplan data | ### GetLiveStreamRequest Input data to get a live stream | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | drone_id | [ObjectID](#ui-ObjectID) | | The id of the drone to get the live stream from | | camera_settings | [common.CameraSettings](#common-CameraSettings) | | The camera settings to use | ### GetUserPermissionInOrganizationData Input data for retrieving a user's permission in an organization | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | organization_id | [ObjectID](#ui-ObjectID) | | The user id | ### IndexData Data related to an index computation | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | png | [string](#string) | | The image of the index | | tiff | [string](#string) | | **Deprecated.** The index matrix | | shapefiles | [string](#string) | repeated | The list of shapefiles | | shapefile_png | [string](#string) | | The image of the shapefile | | tiff_multi_size | [MultiSizeMediaPresignedUrl](#ui-MultiSizeMediaPresignedUrl) | | The index matrix multi size | ### LatLng LatLng point (latitude, longitude) | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | latitude | [double](#double) | | The latitude | | longitude | [double](#double) | | The longitude | ### Link Input data to specify a link between two objects | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | what | [ObjectID](#ui-ObjectID) | | The id of the object to link from | | to | [ObjectID](#ui-ObjectID) | | The id of the object to link to | ### LiveStream Output data for a live stream | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | url | [string](#string) | | The url of the live stream | ### LogList Output data for a list of logs | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | logs | [common.Log](#common-Log) | repeated | The list of logs | ### Media Output data for a media item | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | The id of the media item | | name | [string](#string) | | The name of the media item | | size | [int64](#int64) | | The size of the media item in bytes | | date | [int64](#int64) | | The creation date of the media item | | extension | [string](#string) | | The format of the media item (e.g. mp4, jpg, etc.) | ### MediaList Output data for a list of media | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | media | [Media](#ui-Media) | repeated | The list of media | ### MultiSizeMediaPresignedUrl Output data for a multi size media presigned url | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | full_size | [string](#string) | | The url for the full size media | | medium_size | [string](#string) | | The url for the medium size media | | small_size | [string](#string) | | The url for the small size media | | thumbnail | [string](#string) | | The url for the thumbnail size media | ### Notification Output data for a notification | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | The id of the notification | | type | [string](#string) | | The type of the notification | | data | [string](#string) | | The notification content | | timestamp | [int64](#int64) | | The timestamp of the notification | | important | [bool](#bool) | | Weather the notification is important | | error_code | [common.Error.Code](#common-Error-Code) | | The notification error code | | drone_id | [string](#string) | | The id of the drone generating the notification | ### NotificationList Output data for a list of notifications | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | notification | [Notification](#ui-Notification) | repeated | The list of notifications | ### ObjectID Generic object id | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | The id of the object | ### Organization Output data for an organization | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | The id of the organization | | name | [string](#string) | | The name of the organization | | is_owner | [bool](#bool) | | Weather the user is the owner of the organization | | owner | [string](#string) | | The email of the owner of the organization | | members | [Organization.Member](#ui-Organization-Member) | repeated | The list of members of the organization | ### Organization.Member A member of an organization | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | username | [string](#string) | | The email of the member | | read_only | [bool](#bool) | | Weather the member has read only access | ### OrganizationList Output data for a list of organizations | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | organizations | [Organization](#ui-Organization) | repeated | The list of organizations | ### RemoveUserFromOrganizationData Input data to remove a user from an organization | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | organization_id | [ObjectID](#ui-ObjectID) | | The id of the organization | | email | [string](#string) | | The email of the user to remove | ### RunAnalysisInput Input data to run an analysis | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [ObjectID](#ui-ObjectID) | | The id of the analysis to run | | grvi | [RunAnalysisInput.GRVIOptions](#ui-RunAnalysisInput-GRVIOptions) | | **Deprecated.** The GRVI options | | field_id | [ObjectID](#ui-ObjectID) | | The id of field to analyze (if any) | | index_options | [RunAnalysisInput.IndexOptions](#ui-RunAnalysisInput-IndexOptions) | | The index options | ### RunAnalysisInput.GRVIOptions The GRVI index options | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | zones | [uint32](#uint32) | | **Deprecated.** The number of zones to generate | | algorithm | [RunAnalysisInput.BucketAlgorithm](#ui-RunAnalysisInput-BucketAlgorithm) | | **Deprecated.** The algorithm to use to generate the zones | | thresholds | [float](#float) | repeated | **Deprecated.** The thresholds to use to generate the zones (optional) | ### RunAnalysisInput.IndexOptions The index options | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | zones | [uint32](#uint32) | | The number of zones to generate | | algorithm | [RunAnalysisInput.BucketAlgorithm](#ui-RunAnalysisInput-BucketAlgorithm) | | The algorithm to use to generate the zones | | thresholds | [float](#float) | repeated | The thresholds to use to generate the zones (optional) If set the length of the array must be equal to the number of zones - 1 | | index_name | [string](#string) | | The name of the index to generate | | product_amount | [float](#float) | repeated | The quantity of the product to set for each zone (optional) If set the length of the array must be equal to the number of zones | ### RunAnalysisOutput Output data for an analysis run ### SendCommandsData Input data to send commands to a drone | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | drone_id | [ObjectID](#ui-ObjectID) | | The id of the drone to send the commands to | | commands | [common.Command](#common-Command) | repeated | The list of commands to send | ### SendCommandsResponse Output data for a list of commands | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | success | [bool](#bool) | | Weather the commands were sent successfully | | message | [string](#string) | | The output message or the error message (if any) | ### SettingValue Input data to update a user's settings | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | key | [SettingValue.Key](#ui-SettingValue-Key) | | The key of the setting to update | | bool_value | [bool](#bool) | | The value for a boolean setting | | string_value | [string](#string) | | The value for a string setting | | int_value | [int64](#int64) | | The value for a int64 setting | | float_value | [float](#float) | | The value for a float setting | ### Settings Defines a user's settings | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | auto_start_recording | [bool](#bool) | | Automatically start recording when a drone takes off (and stop when it lands) | | auto_start_live_stream | [bool](#bool) | | Automatically start live streaming when a drone takes off (and stop when it lands) | | auto_start_live_stream_flight_plan | [bool](#bool) | | Automatically start live streaming when a flight plan is started (and stop when it ends) | | take_off_altitude | [float](#float) | | The take off altitude | | take_off_altitude_flight_plan | [float](#float) | | The default take off altitude when a flight plan is started | | camera_resolution | [int64](#int64) | | The default camera resolution | | stream_resolution | [int64](#int64) | | The default stream resolution | ### StartLiveStreamRequest Input data to start a live stream | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | drone_id | [ObjectID](#ui-ObjectID) | | The id of the drone to start the live stream from | | camera_settings | [common.CameraSettings](#common-CameraSettings) | | The camera settings to use | ### StartLiveStreamResponse Output data for a live stream | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | url | [string](#string) | | The url of the live stream | | error | [string](#string) | | The error message (if any) | ### StopLiveStreamRequest Input data to stop a live stream | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | drone_id | [ObjectID](#ui-ObjectID) | | The id of the drone to stop the live stream from | | camera_settings | [common.CameraSettings](#common-CameraSettings) | | The camera settings to use | ### TimeserieValue Output data to contain values during time | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | timestamp | [string](#string) | | The timestamp of the value | | value | [double](#double) | | The value | ### UpdateFlightPlanData Input data to update a flightplan | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [ObjectID](#ui-ObjectID) | | The id of the flightplan to update | | data | [bytes](#bytes) | | The data of the flightplan (i.e. a json string) | ### Upload Output data to upload a file | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | url | [string](#string) | | The url to upload the file to using a PUT request | | id | [string](#string) | | The id of the file | ### UploadRequest Input data to upload a file | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | content_type | [string](#string) | | The content type of the file | | extension | [string](#string) | | The format of the file (e.g. mp4, jpg, etc.) | | size | [int64](#int64) | | The size of the file in bytes | | drone_id | [ObjectID](#ui-ObjectID) | | The id of the drone that made the file (optional) | | flight_identifier | [string](#string) | | The identifier of the flight that made the file (optional) | ### UserEmail Data containing a user email and username pair | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | username | [string](#string) | | The username of the user | | email | [string](#string) | | The email of the user | ### UserPermissionInOrganization Defines a user's permission in an organization | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | permission | [UserPermissionInOrganization.Permission](#ui-UserPermissionInOrganization-Permission) | | The user's permission | ### UserSubscription Defines user subscription states | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | stripe_subscription_id | [string](#string) | | The stripe subscription id | | state | [UserSubscription.State](#ui-UserSubscription-State) | | The subscription state | ### UserUsername Output data containing a user username | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | username | [string](#string) | | The username of the user | ### Analysis.State | Name | Number | Description | | ---- | ------ | ----------- | | ANALYSIS_STATE_NONE | 0 | Unknown analysis state | | ANALYSIS_STATE_CREATED | 1 | Analysis created | | ANALYSIS_STATE_ANALYZING | 2 | Analysis is currently running | | ANALYSIS_STATE_COMPLETED | 3 | Analysis completed | | ANALYSIS_STATE_FAILED | 4 | Analysis failed | ### Analysis.Type | Name | Number | Description | | ---- | ------ | ----------- | | ANALYSIS_TYPE_UNKNOWN | 0 | Unknown analysis type | | ANALYSIS_TYPE_ODM | 1 | ODM analysis type https://opendronemap.org/ | | ANALYSIS_TYPE_AGRICULTURE | 2 | Agriculture analysis type | ### RunAnalysisInput.BucketAlgorithm | Name | Number | Description | | ---- | ------ | ----------- | | ALGORITHM_DISTRIBUTION | 0 | The distribution algorithm will divide zones basing on the distribution of the computed values | | ALGORITHM_VALUES | 1 | The values algorithm will divide zones basing on predefined thresholds | | ALGORITHM_MANUAL | 2 | The manual algorithm will divide zones basing on the provided thresholds | ### SettingValue.Key | Name | Number | Description | | ---- | ------ | ----------- | | AUTO_START_RECORDING | 0 | Automatically start recording when a drone takes off (and stop when it lands) | | AUTO_START_LIVE_STREAM | 1 | Automatically start live streaming when a drone takes off (and stop when it lands) | | AUTO_START_LIVE_STREAM_FLIGHT_PLAN | 2 | Automatically start live streaming when a flight plan is started (and stop when it ends) | | TAKE_OFF_ALTITUDE | 3 | The take off altitude | | TAKE_OFF_ALTITUDE_FLIGHT_PLAN | 4 | The default take off altitude when a flight plan is started | | CAMERA_RESOLUTION | 5 | The default camera resolution | | STREAM_RESOLUTION | 6 | The default stream resolution | ### UserPermissionInOrganization.Permission | Name | Number | Description | | ---- | ------ | ----------- | | PERMISSION_NONE | 0 | No permission | | PERMISSION_READ | 1 | Read permission | | PERMISSION_WRITE | 2 | Write permission | | PERMISSION_OWNER | 3 | Owner permission | ### UserSubscription.State | Name | Number | Description | | ---- | ------ | ----------- | | SUBSCRIPTION_STATE_NONE | 0 | No subscription | | SUBSCRIPTION_STATE_ACTIVE | 1 | Active subscription | | SUBSCRIPTION_STATE_INACTIVE | 2 | Inactive subscription | ### AnalysisService Service to manage analysis (create, delete, etc) | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | ListAnalysis | [.common.Empty](#common-Empty) | [AnalysisList](#ui-AnalysisList) | Retrieve a list of all analysis | | GetAnalysisPresignedUrl | [ObjectID](#ui-ObjectID) | [AnalysisPresignedUrl](#ui-AnalysisPresignedUrl) | | | RunAnalysis | [RunAnalysisInput](#ui-RunAnalysisInput) | [RunAnalysisOutput](#ui-RunAnalysisOutput) | | ### ControllerService Service to send realtime commands to drones | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | SendCommands | [SendCommandsData](#ui-SendCommandsData) | [SendCommandsResponse](#ui-SendCommandsResponse) | Send a list of commands to a drone | ### DroneService Service to manage drones (create, delete, link, etc) | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | ListDrones | [.common.Empty](#common-Empty) | [DroneList](#ui-DroneList) | Retrieve a list of all drones | | GetDrone | [ObjectID](#ui-ObjectID) | [Drone](#ui-Drone) | Retrieve a single drone by id | | DeleteDrone | [ObjectID](#ui-ObjectID) | [.common.Empty](#common-Empty) | Delete a drone by id | | AddDrone | [Drone](#ui-Drone) | [Drone](#ui-Drone) | Create a new drone | | LinkFlightPlanToDrone | [Link](#ui-Link) | [.common.Empty](#common-Empty) | Link a flightplan (what) to a drone (to) | | Start | [AppControl](#ui-AppControl) | [.common.Empty](#common-Empty) | Start a flightplan on a drone | | Stop | [AppControl](#ui-AppControl) | [.common.Empty](#common-Empty) | Stop a flightplan on a drone | | ListApplications | [.common.Empty](#common-Empty) | [ApplicationList](#ui-ApplicationList) | List all the available applications | | GetDroneDetails | [ObjectID](#ui-ObjectID) | [DroneDetails](#ui-DroneDetails) | Retrieve drone details (battery, gps, etc) | | DownloadCertificate | [ObjectID](#ui-ObjectID) | [Certificate](#ui-Certificate) | Retrieve drone certificate (used for authentication) | | ListFlights | [ObjectID](#ui-ObjectID) | [FlightList](#ui-FlightList) | Retrieve drone flighs | | ListFlightPlanFlightsWithDrone | [ObjectID](#ui-ObjectID) | [FlightList](#ui-FlightList) | Retrieve a list of the drone's flightplan related flights | | GetStatus | [ObjectID](#ui-ObjectID) | [DroneStatus](#ui-DroneStatus) | Retrieve the current drone status (idle, flying, etc) | | StartLiveStream | [StartLiveStreamRequest](#ui-StartLiveStreamRequest) | [StartLiveStreamResponse](#ui-StartLiveStreamResponse) | Start a live stream on a drone | | StopLiveStream | [StopLiveStreamRequest](#ui-StopLiveStreamRequest) | [.common.Empty](#common-Empty) | Stop a live stream on a drone | | GetLiveStream | [GetLiveStreamRequest](#ui-GetLiveStreamRequest) | [LiveStream](#ui-LiveStream) | Retrieve a live stream on a drone | | GetFrame | [GetLiveStreamRequest](#ui-GetLiveStreamRequest) | [DroneFrame](#ui-DroneFrame) | Retrieve the current live stream frame, if any | | GetErrors | [ObjectID](#ui-ObjectID) | [ErrorList](#ui-ErrorList) | Retrieve a list of all errors for a drone | | DeleteError | [ObjectID](#ui-ObjectID) | [.common.Empty](#common-Empty) | Delete an error by id | | SignalError | [ObjectID](#ui-ObjectID) | [.common.Empty](#common-Empty) | Signal an error to developers | | GetLogs | [ObjectID](#ui-ObjectID) | [LogList](#ui-LogList) | Retrieve a list of all logs for a drone | ### FieldService Service to manage files (list, create, delete, etc) | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | ListFields | [.common.Empty](#common-Empty) | [FieldList](#ui-FieldList) | Retrieve a list of all fields | | GetField | [ObjectID](#ui-ObjectID) | [Field](#ui-Field) | Retrieve a single field by id | | AddField | [Field](#ui-Field) | [Field](#ui-Field) | Create a new field | | DeleteField | [ObjectID](#ui-ObjectID) | [.common.Empty](#common-Empty) | Delete a field | ### FlightPlanService Service to manage flightplans (create, delete, link, etc) | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | ListFlightPlans | [.common.Empty](#common-Empty) | [FlightPlanList](#ui-FlightPlanList) | Retrieve a list of all flightplans | | GetFlightPlan | [ObjectID](#ui-ObjectID) | [FlightPlan](#ui-FlightPlan) | Retrieve a single flightplan by id | | AddFlightPlan | [AddFlightPlanData](#ui-AddFlightPlanData) | [FlightPlan](#ui-FlightPlan) | Create a new flightplan | | UpdateFlightPlan | [UpdateFlightPlanData](#ui-UpdateFlightPlanData) | [FlightPlan](#ui-FlightPlan) | Update a flightplan | | DeleteFlightPlan | [ObjectID](#ui-ObjectID) | [.common.Empty](#common-Empty) | Delete a flightplan | | DownloadFlightPlan | [DownloadFlightPlanRequest](#ui-DownloadFlightPlanRequest) | [FlightPlanRaw](#ui-FlightPlanRaw) | Download a flightplan as a json file | | ListFlights | [ObjectID](#ui-ObjectID) | [FlightList](#ui-FlightList) | List all ths flights for a flightplan | | GetFlightDetails | [ObjectID](#ui-ObjectID) | [FlightDetails](#ui-FlightDetails) | Retrieve details for a flight | ### FlightService Service to manage flights | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | ListFlights | [.common.Empty](#common-Empty) | [FlightList](#ui-FlightList) | Retrieve a list of the flights | | ListMedia | [ObjectID](#ui-ObjectID) | [MediaList](#ui-MediaList) | Retrieve a list of media for a flight | ### MediaService Service to manage media (upload, download, analysis, etc) | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | ListMedia | [.common.Empty](#common-Empty) | [MediaList](#ui-MediaList) | Retrieve a list of all media | | GetMedia | [ObjectID](#ui-ObjectID) | [Media](#ui-Media) | Retrieve a single media by id | | DeleteMedia | [ObjectID](#ui-ObjectID) | [.common.Empty](#common-Empty) | Delete a media by id | | DownloadMedia | [ObjectID](#ui-ObjectID) | [Download](#ui-Download) | Download a media by id | | UploadMedia | [UploadRequest](#ui-UploadRequest) | [Upload](#ui-Upload) | Upload a media, it generates a new presigned url for the upload, the client must upload the file to the url by using HTTP PUT method | | UploadMediaCompleted | [ObjectID](#ui-ObjectID) | [.common.Empty](#common-Empty) | UploadMediaCompleted needs to be called by the client after the upload is completed | | CreateAnalysis | [Analysis](#ui-Analysis) | [Analysis](#ui-Analysis) | Trigger the analysis of a media | | GetAnalysis | [ObjectID](#ui-ObjectID) | [Analysis](#ui-Analysis) | Retrieve an analysis by id | | GetAnalysisForMedia | [ObjectID](#ui-ObjectID) | [AnalysisList](#ui-AnalysisList) | Retrieve a list of all analysis for a media by id | | GetArtifacts | [ObjectID](#ui-ObjectID) | [ArtifactList](#ui-ArtifactList) | Retrieve all the artifacts for an analysis by id | | AddAttachment | [AddAttachmentInput](#ui-AddAttachmentInput) | [AddAttachmentOutput](#ui-AddAttachmentOutput) | Get an s3 presigned url for an artifact | | GetAttachment | [ObjectID](#ui-ObjectID) | [Download](#ui-Download) | Retrieve an attachment presignedURL by id | | DeleteAttachment | [ObjectID](#ui-ObjectID) | [.common.Empty](#common-Empty) | Delete an attachment by id | ### MiscService Service to manage other misc endpoints | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | ListDownloadableFiles | [.common.Empty](#common-Empty) | [DownloadableFileList](#ui-DownloadableFileList) | | | Download | [ObjectID](#ui-ObjectID) | [DownloadItem](#ui-DownloadItem) | Download a file | | GetUserEmail | [UserUsername](#ui-UserUsername) | [UserEmail](#ui-UserEmail) | Get the email address for a user | | PollNotifications | [.common.Empty](#common-Empty) | [NotificationList](#ui-NotificationList) | Poll for new notifications | ### OrganizationService Service to manage organizations | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | ListOrganizations | [.common.Empty](#common-Empty) | [OrganizationList](#ui-OrganizationList) | Retrieve a list of all organizations | | GetOrganization | [ObjectID](#ui-ObjectID) | [Organization](#ui-Organization) | Retrieve a single organization by id | | AddOrganization | [Organization](#ui-Organization) | [Organization](#ui-Organization) | Create a new organization | | UpdateOrganization | [Organization](#ui-Organization) | [Organization](#ui-Organization) | Update an organization | | DeleteOrganization | [ObjectID](#ui-ObjectID) | [.common.Empty](#common-Empty) | Delete an organization | | AddUserToOrganization | [AddUserToOrganizationData](#ui-AddUserToOrganizationData) | [.common.Empty](#common-Empty) | Add a user to an existing organization | | RemoveUserFromOrganization | [RemoveUserFromOrganizationData](#ui-RemoveUserFromOrganizationData) | [.common.Empty](#common-Empty) | Remove a user from an existing organization | ### UserService Service to manage users | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | GetUserSubscription | [ObjectID](#ui-ObjectID) | [UserSubscription](#ui-UserSubscription) | Get the current subscription for a user | | GetCustomerPortal | [ObjectID](#ui-ObjectID) | [CustomerPortal](#ui-CustomerPortal) | Get the customer portal address for a user | | GetUserPermissionInOrganization | [GetUserPermissionInOrganizationData](#ui-GetUserPermissionInOrganizationData) | [UserPermissionInOrganization](#ui-UserPermissionInOrganization) | Get user permissions in an organization | | GetSettings | [.common.Empty](#common-Empty) | [Settings](#ui-Settings) | Get the current user settings | | UpdateSettings | [SettingValue](#ui-SettingValue) | [Settings](#ui-Settings) | Update the current user settings | | DownloadCertificate | [.common.Empty](#common-Empty) | [Certificate](#ui-Certificate) | Retrieve the current user certificate (used for authentication) | ## Scalar Value Types | .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby | | ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- | | double | | double | double | float | float64 | double | float | Float | | float | | float | float | float | float32 | float | float | Float | | int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | | int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum | | uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) | | uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) | | sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | | sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum | | fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) | | fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum | | sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | | sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum | | bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | | string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) | | bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |