├── .gitignore ├── CONTRIBUTING.md ├── Concept Documents ├── Aviation2016_UTMConOps_AsPublished_v2.pdf └── UTM-Original-TM-20140013436.pdf ├── DWG Documents ├── Rios_NASA-Tech-Memo-2017-219494v2.pdf └── Rios_NASA-TechMemo_219462_UTM_UREP_20170214.pdf ├── Organization Documents └── FAA_NASA_UAS_Traffic_Management_Research_Plan.pdf ├── README.md ├── SDSP Documents └── NASA_TechMemo_219462_UTM_UREP_20170214.pdf ├── TCL3 └── tcl3-data-apis │ ├── DMP_Format_Upload_Instructions.docx │ ├── DMP_Format_Upload_Instructions.pdf │ ├── files │ ├── 2018-02-27_MasterVariableList-DMP.Rev.F-Draft.pdf │ ├── 2018-03-01_MasterVariableList-DMP.Rev.F-Draft-CON.pdf │ ├── SAMPLE-20180329-1714-CNS1.json │ ├── SAMPLE-20180329-1714-CNS2.json │ ├── SAMPLE-20180329-1714-CNS3.json │ ├── SAMPLE-20180329-1714-CON1.json │ ├── SAMPLE-20180329-1714-CON2.json │ ├── SAMPLE-20180329-1714-CON4.json │ ├── SAMPLE-20180329-1714-CON5.json │ ├── SAMPLE-20180329-1714-FLIGHT_DATA.json │ ├── SAMPLE-20180329-1714-SAA1.json │ ├── SAMPLE-20180329-1714-SAA2.json │ ├── SAMPLE-20180329-1714-SAA3.json │ ├── SAMPLE-20180329-1714-SAA4.json │ ├── SAMPLE-20180329-1714-SAA5.json │ ├── SAMPLE-20180329-1714-SAA6.json │ ├── TCL3-DMP-RevF-PDF-KML-Templates.zip │ ├── requirements_table.pdf │ └── requirements_table.xlsx │ ├── utm-tcl3-cns.yaml │ ├── utm-tcl3-con.yaml │ ├── utm-tcl3-dat-4-99.yaml │ ├── utm-tcl3-dat-test-schema-v1.yaml │ ├── utm-tcl3-flight-data.yaml │ └── utm-tcl3-saa.yaml ├── TCL4 Data Management ├── main.css ├── main.html ├── main.org ├── update_references.sh ├── utm-tcl4-data-collection.yaml ├── utm-tcl4-dmp-aircraft-flightplan-api.yaml ├── utm-tcl4-dmp-aircraft-flightplan.yaml ├── utm-tcl4-dmp-api.yaml ├── utm-tcl4-dmp-auxiliary-uas-operation.yaml ├── utm-tcl4-dmp-cns-api.yaml ├── utm-tcl4-dmp-cns.yaml ├── utm-tcl4-dmp-common.yaml ├── utm-tcl4-dmp-con-api.yaml ├── utm-tcl4-dmp-con.yaml ├── utm-tcl4-dmp-daa-api.yaml ├── utm-tcl4-dmp-daa-geofence-api.yaml ├── utm-tcl4-dmp-daa-geofence.yaml ├── utm-tcl4-dmp-daa.yaml ├── utm-tcl4-dmp-fet-api.yaml ├── utm-tcl4-dmp-fet-latency-api.yaml ├── utm-tcl4-dmp-fet-latency.yaml ├── utm-tcl4-dmp-fet.yaml ├── utm-tcl4-dmp-remote-id-api.yaml ├── utm-tcl4-dmp-remote-id.yaml └── utm-tcl4-sdsp-models.yaml └── etm ├── ess-interface-spec ├── README.md └── etm-ess-api.yaml └── operator-interface-spec ├── README.md └── etm-oper-api.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributions 2 | 3 | This is not a code repository, so we are not looking for traditional contributions to this repo. If you are a NASA researcher working on the UTM project, feel free to contact project management regarding the addition of resources to this repo. If you are external to the NASA UTM project, feel free to [submit an issue](https://github.com/nasa/utm-docs/issues) to this repo to suggest improvements or documentation you think may be missing. 4 | -------------------------------------------------------------------------------- /Concept Documents/Aviation2016_UTMConOps_AsPublished_v2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/utm-docs/fcf160354927cafa6a91185293fb33b8cc6aed22/Concept Documents/Aviation2016_UTMConOps_AsPublished_v2.pdf -------------------------------------------------------------------------------- /Concept Documents/UTM-Original-TM-20140013436.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/utm-docs/fcf160354927cafa6a91185293fb33b8cc6aed22/Concept Documents/UTM-Original-TM-20140013436.pdf -------------------------------------------------------------------------------- /DWG Documents/Rios_NASA-Tech-Memo-2017-219494v2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/utm-docs/fcf160354927cafa6a91185293fb33b8cc6aed22/DWG Documents/Rios_NASA-Tech-Memo-2017-219494v2.pdf -------------------------------------------------------------------------------- /DWG Documents/Rios_NASA-TechMemo_219462_UTM_UREP_20170214.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/utm-docs/fcf160354927cafa6a91185293fb33b8cc6aed22/DWG Documents/Rios_NASA-TechMemo_219462_UTM_UREP_20170214.pdf -------------------------------------------------------------------------------- /Organization Documents/FAA_NASA_UAS_Traffic_Management_Research_Plan.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/utm-docs/fcf160354927cafa6a91185293fb33b8cc6aed22/Organization Documents/FAA_NASA_UAS_Traffic_Management_Research_Plan.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # The UTM Documentation Repository 2 | 3 | This repository is for maintaining publicly available NASA UTM documentation. Read on for further details on why this repo exists. 4 | 5 | ## Repository Status 6 | As of the time of this edit (21 Mar 2018), this repo is in a formation stage. It should NOT be used as 'truth' for the state of UTM documentation by any entity at this time. 7 | 8 | The repository will not ever be a comprehensive site for all UTM documentation. There are many NASA UTM documents that are not yet ready for public release. As those mature to a state where public release is reasonable, we will endeavor to include them here if they add to understanding the core UTM System concepts and implementation. 9 | 10 | ## Audience 11 | The primary audience for this repository are current NASA UTM partners or those partners that are currently in the on-boarding process. There may be value to others as well. 12 | 13 | ## Externally Available Documentation Collections 14 | In this section we link to important documentation already available elsewhere. 15 | 16 | | External location | Description | 17 | | ------------------------ | ------------- | 18 | | [NASA UTM Publication Repository](https://utm.arc.nasa.gov/documents.shtml) | This the full repository for all conference publications, NASA technical memos, and similar documents. We'll try to pull some of the key docs directly into this repository. | 19 | | [NASA UTM APIs](https://github.com/nasa/utm-apis) | A github repository representing the truth in terms of the current state of NASA APIs. | 20 | | [SwaggerHub API Documentation](https://app.swaggerhub.com/search?owner=utm) | A convenience view of the NASA UTM APIs. *NOTE THAT THE GITHUB REPO IS TRUTH FOR THE APIs*. It is possible for the SwaggerHub documentation and our github API repo to drift. Developers must always reference the github repo for building compliant systems. Swagger hub is nice for navigating and discussing the API with others. | 21 | 22 | ## Primary Concept Documents 23 | | Document | Pub Date | Description | 24 | | ------------------------ | --- | ------------- | 25 | | [UTM: Enabling Low-Altitude Airspace and UAS Operations](UTM-Original-TM-20140013436.pdf) | 2014 April | The original NASA Technical Memo describing UTM. | 26 | | [Unmanned Aircraft System Traffic Management (UTM) Concept of Operations](Aviation2016_UTMConOps_AsPublished_v2.pdf) | 2016 June | The first version of the UTM ConOps. | 27 | 28 | ## Documentation Supporting Software Development 29 | 30 | ## Working Group Documents 31 | This section will contain publicly-releaseable documents that originated from within each working group within NASA UTM. Again, we emphasize that these document lists do not represent the depth and breadth of work since not all documents are able to be publicly released. We will endeavor to keep this list up to date, but also encourage folks to submit a github issue if you think something is missing or have a suggestion for a helpful doc to include. 32 | 33 | The structure of the working groups is somewhat driven by the [NASA-FAA Research Transition Team for UTM](https://www.faa.gov/uas/research/utm/) organization structure. Please see the [UTM RTT Plan](FAA_NASA_UAS_Traffic_Management_Research_Plan.pdf) for more details on the Research Transition Team. 34 | 35 | ### Concepts Working Group 36 | The CWG will define the concept of UTM in terms of overall conceptual principles and 37 | assumptions, including those associated with operations, supporting architecture, 38 | information flows and exchanges, and FAA and UAS operator roles and responsibilities. 39 | This scoping and definition will: (1) ensure consistent messaging of a coordinated 40 | FAA/NASA view of UTM; (2) guide the efforts of other UTM RTT working groups; and 41 | (3) support the development of the UTM pilot program. 42 | 43 | ### Data and Information Architecture Working Group 44 | The objective of the DWG is to identify and collaboratively research and develop 45 | technical capabilities for the data/information exchange needed across stakeholders to 46 | support UAS operations that meet NAS service expectations. The data exchange and 47 | information architecture subgroup will work in conjunction with the Concepts & 48 | Scenarios, SAA, and Communications & Navigation subgroups to identify the data 49 | exchange and information gaps and/or deltas associated with the UTM concepts, 50 | strategies, and system capabilities to support safe expansion of the UAS operating 51 | envelope across the NAS structure. 52 | 53 | | Document | Pub Date | Description | 54 | | ------------------------ | --- | ------------- | 55 | | [UAS Reports (UREPs): Enabling Exchange of Observation Data Between UAS Operations](Rios_NASA-TechMemo_219462_UTM_UREP_20170214.pdf) | 2017 Feb | Description of the UREP concept and data schema. | 56 | | [UTM Data Working Group Demonstration 1: Final Report](Rios_NASA-Tech-Memo-2017-219494v2.pdf) | 2017 April | Description and results from a collaborative simulation in support of TCL2. | 57 | 58 | 59 | ### Sense and Avoid Working Group 60 | The objective for this subgroup is to explore operator solutions to ensure that unmanned 61 | aircraft do not collide with other aircraft (unmanned or manned). 62 | 63 | ### Communications and Navigation Working Group 64 | The objective for this subgroup is to explore operator solutions to ensure that UA are 65 | under operational control of the pilot (to the degree appropriate to the scenario) and 66 | remain within a defined area (around a planned trajectory or as a defined area). 67 | -------------------------------------------------------------------------------- /SDSP Documents/NASA_TechMemo_219462_UTM_UREP_20170214.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/utm-docs/fcf160354927cafa6a91185293fb33b8cc6aed22/SDSP Documents/NASA_TechMemo_219462_UTM_UREP_20170214.pdf -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/DMP_Format_Upload_Instructions.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/utm-docs/fcf160354927cafa6a91185293fb33b8cc6aed22/TCL3/tcl3-data-apis/DMP_Format_Upload_Instructions.docx -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/DMP_Format_Upload_Instructions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/utm-docs/fcf160354927cafa6a91185293fb33b8cc6aed22/TCL3/tcl3-data-apis/DMP_Format_Upload_Instructions.pdf -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/files/2018-02-27_MasterVariableList-DMP.Rev.F-Draft.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/utm-docs/fcf160354927cafa6a91185293fb33b8cc6aed22/TCL3/tcl3-data-apis/files/2018-02-27_MasterVariableList-DMP.Rev.F-Draft.pdf -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/files/2018-03-01_MasterVariableList-DMP.Rev.F-Draft-CON.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/utm-docs/fcf160354927cafa6a91185293fb33b8cc6aed22/TCL3/tcl3-data-apis/files/2018-03-01_MasterVariableList-DMP.Rev.F-Draft-CON.pdf -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/files/SAMPLE-20180329-1714-CNS1.json: -------------------------------------------------------------------------------- 1 | { 2 | "fType": "CNS1", 3 | "UTM-TCL3-DMP-RevF-CNSPDF": "UTM-SAMPLE-CNS-4.pdf", 4 | "basic": { 5 | "uvin": "2e6793e1-0007-0006-0000-00000000dc12", 6 | "gufi": "1b5aa406-000f-0009-0000-00000000dc16", 7 | "submitTime": "2018-03-23T07:10:33.494Z", 8 | "ussInstanceID": "99d702d3-0002-0000-0000-00000000dc16", 9 | "ussName": "WUSS" 10 | }, 11 | 12 | "plannedContingency": { 13 | "plannedContingencyLandingPoint_deg": [ { "lat":37.4119851, "lon":-122.0623431 }, { "lat":-37.4119853, "lon":-122.0623429 }, { "lat":37.4119857, "lon":-122.0623423 } ], 14 | "plannedContingencyLandingPointAlt_ft": [300,250,350], 15 | "plannedContingencyLoiterAlt_ft": [300,300.2,0.345], 16 | "plannedContingencyLoiterRadius_ft": [50,45.5,40.01] 17 | }, 18 | 19 | "cns1TestType": [ 20 | { "ts": "2018-03-23T07:10:33.546Z", "cns1TestType_nonDim": 0 }, 21 | { "ts": "2018-03-23T07:15:33.786Z", "cns1TestType_nonDim": 0 } 22 | ], 23 | 24 | "contingencyCause": [ 25 | { "ts": "2018-03-23T07:10:33.512Z", "contingencyCause_nonDim": [0] }, 26 | { "ts": "2018-03-23T07:15:10.609Z", "contingencyCause_nonDim": [5,7] } 27 | ], 28 | "contingencyResponse": [ 29 | { "ts": "2018-03-23T07:10:33.516Z", "contingencyResponse_nonDim": 0 }, 30 | { "ts": "2018-03-23T07:15:10.609Z", "contingencyResponse_nonDim": 1 } 31 | ], 32 | "contingencyLoiterAlt": [ 33 | { "ts": "2018-03-23T07:10:33.527Z", "contingencyLoiterAlt_ft": [300] }, 34 | { "ts": "2018-03-23T07:15:33.607Z", "contingencyLoiterAlt_ft": [300,250] } 35 | ], 36 | "contingencyLoiterType": [ 37 | { "ts": "2018-03-23T07:10:33.523Z", "contingencyLoiterType_nonDim": 0 }, 38 | { "ts": "2018-03-23T07:15:33.607Z", "contingencyLoiterType_nonDim": 1 } 39 | ], 40 | "contingencyLoiterRadius": [ 41 | { "ts": "2018-03-23T07:10:33.531Z", "contingencyLoiterRadius_ft": [2] }, 42 | { "ts": "2018-03-23T07:15:33.607Z", "contingencyLoiterRadius_ft": [20,33] } 43 | ], 44 | "contingencyLanding": [ 45 | { 46 | "ts": "2018-03-23T07:10:33.520Z", 47 | "contingencyLandingPointAlt_ft": [300.4,251], 48 | "contingencyLandingPoint_deg": [ { "lat":37.4119851, "lon":-122.0623431 }, {"lat":37.4119857, "lon":-122.0623423 } ] 49 | }, 50 | { 51 | "ts": "2018-03-23T07:15:33.925Z", 52 | "contingencyLandingPointAlt_ft": [300.4,251], 53 | "contingencyLandingPoint_deg": [ { "lat":37.4119851, "lon":-122.0623431 }, { "lat":37.4119857, "lon":-122.0623423 } ] 54 | } 55 | ], 56 | 57 | "maneuverCommand": [ 58 | { "ts": "2018-03-23T07:10:33.535Z", "maneuverCommand": "Climb to 400 ft and loiter" }, 59 | { "ts": "2018-03-23T07:15:44.005Z", "maneuverCommand": "Return to takeoff location" } 60 | ], 61 | "timeManeuverCommandSent": [ 62 | {"ts": "2018-03-23T07:10:33.550Z"}, 63 | {"ts": "2018-03-23T07:15:44.733Z"} 64 | ], 65 | "estimatedTimeToVerifyManeuver": [ 66 | { "ts": "2018-03-23T07:10:33.542Z", "estimatedTimeToVerifyManeuver_sec": 0.5 }, 67 | { "ts": "2018-03-23T07:15:44.005Z", "estimatedTimeToVerifyManeuver_sec": 1.7 } 68 | ], 69 | "timeManeuverVerification": [ 70 | {"ts": "2018-03-23T07:10:34.721Z"}, 71 | {"ts": "2018-03-23T07:15:46.043Z"} 72 | ], 73 | 74 | "primaryLinkDescription": [ 75 | { "ts": "2018-03-23T07:10:30.502Z", "primaryLinkDescription": "Description-of-the-primary-link" }, 76 | { "ts": "2018-03-23T07:15:39.126Z", "primaryLinkDescription": "Description-of-the-primary-link" } 77 | ], 78 | "redundantLinkDescription": [ 79 | { "ts": "2018-03-23T07:10:35.248Z", "redundantLinkDescription": "Description-of-the-redundant-link" }, 80 | { "ts": "2018-03-23T07:15:44.842Z", "redundantLinkDescription": "Description-of-the-redundant-link" } 81 | ], 82 | "timePrimaryLinkDisconnect": [ 83 | {"ts": "2018-03-23T07:10:33.550Z"}, 84 | {"ts": "2018-03-23T07:15:40.158Z"} 85 | ], 86 | "timeRedundantLinkSwitch": [ 87 | {"ts": "2018-03-23T07:10:36.228Z"}, 88 | {"ts": "2018-03-23T07:15:46.504Z"} 89 | ] 90 | } 91 | -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/files/SAMPLE-20180329-1714-CNS2.json: -------------------------------------------------------------------------------- 1 | { 2 | "fType": "CNS2", 3 | "UTM-TCL3-DMP-RevF-CNSPDF": "UTM-SAMPLE-CNS-4.pdf", 4 | "basic": { 5 | "uvin": "06061a9a-0001-0005-0000-000000001a9d", 6 | "gufi": "f6ff70b1-0001-000e-0000-000000001a9e", 7 | "submitTime": "2018-03-24T00:40:01.456Z", 8 | "ussInstanceID": "366084b7-000b-0006-0000-000000001a9e", 9 | "ussName": "WUSS" 10 | }, 11 | "plannedContingency": { 12 | "plannedContingencyLandingPoint_deg": [ { "lat":37.4119851, "lon":-122.0623431 }, { "lat":-37.4119853, "lon":-122.0623429 }, { "lat":37.4119857, "lon":-122.0623423 } ], 13 | "plannedContingencyLandingPointAlt_ft": [300,250,350], 14 | "plannedContingencyLoiterAlt_ft": [300,300.2,0.345], 15 | "plannedContingencyLoiterRadius_ft": [50,45.5,40.01] 16 | }, 17 | "prnGPSSat": [ 18 | { "ts": "2018-03-24T00:47:03.002Z", "prnGpsSat_nonDim": [3,12,23,10] }, 19 | { "ts": "2018-03-24T00:51:34.341Z", "prnGpsSat_nonDim": [3,27,32] } 20 | ], 21 | "uere": [ 22 | { "ts": "2018-03-24T00:47:02.800Z", "uere_in": 4 }, 23 | { "ts": "2018-03-24T00:50:22.525Z", "uere_in": -3.645 } 24 | ], 25 | "contingencyCause": [ 26 | { "ts": "2018-03-24T00:47:02.814Z", "contingencyCause_nonDim": [0] }, 27 | { "ts": "2018-03-24T00:51:34.001Z", "contingencyCause_nonDim": [7] } 28 | ], 29 | "contingencyResponse": [ 30 | { "ts": "2018-03-24T00:47:02.814Z", "contingencyResponse_nonDim": 0 }, 31 | { "ts": "2018-03-24T00:51:34.001Z", "contingencyResponse_nonDim": 2 } 32 | ], 33 | "contingencyLoiterType": [ 34 | { "ts": "2018-03-24T00:47:02.814Z", "contingencyLoiterType_nonDim": 0 }, 35 | { "ts": "2018-03-24T00:51:34.001Z", "contingencyLoiterType_nonDim": 2 } 36 | ], 37 | "contingencyLoiterAlt": [ 38 | { "ts": "2018-03-24T00:47:02.814Z", "contingencyLoiterAlt_ft": [300] }, 39 | { "ts": "2018-03-24T00:51:34.001Z", "contingencyLoiterAlt_ft": [300,250] } 40 | ], 41 | "contingencyLoiterRadius": [ 42 | { "ts": "2018-03-24T00:47:02.814Z", "contingencyLoiterRadius_ft": [10] }, 43 | { "ts": "2018-03-24T00:51:34.001Z", "contingencyLoiterRadius_ft": [33,100] } 44 | ], 45 | "contingencyLanding": [ 46 | { 47 | "ts": "2018-03-24T00:47:02.814Z", 48 | "contingencyLandingPointAlt_ft": [300.4,251], 49 | "contingencyLandingPoint_deg": [ { "lat":37.4119851, "lon":-122.0623431 }, { "lat":37.4119857, "lon":-122.0623423 } ] 50 | }, 51 | { 52 | "ts": "2018-03-24T00:51:34.001Z", 53 | "contingencyLandingPointAlt_ft": [300.4,251], 54 | "contingencyLandingPoint_deg": [ { "lat":37.4119851, "lon":-122.0623431 }, { "lat":37.4119857, "lon":-122.0623423 } ] 55 | } 56 | ], 57 | "uasTruth": [ 58 | { 59 | "ts": "2018-03-24T00:47:02.814Z", 60 | "uasTruthEcefXCoordinate_ft": 13782808.4, 61 | "uasTruthEcefYCoordinate_ft": 565813.648, 62 | "uasTruthEcefZCoordinate_ft": 15682742.78, 63 | "estimatedTruthPositionError95Prct_in": 9.13 64 | }, 65 | { 66 | "ts": "2018-03-24T00:51:34.001Z", 67 | "uasTruthEcefXCoordinate_ft": 13782809.221, 68 | "uasTruthEcefYCoordinate_ft": 565814.045, 69 | "uasTruthEcefZCoordinate_ft": 15682743.907, 70 | "estimatedTruthPositionError95Prct_in": 9.17 71 | } 72 | ] 73 | } -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/files/SAMPLE-20180329-1714-CNS3.json: -------------------------------------------------------------------------------- 1 | { 2 | "fType": "CNS3", 3 | "UTM-TCL3-DMP-RevF-CNSPDF": "UTM-SAMPLE-CNS-4.pdf", 4 | "basic": { 5 | "uvin": "13b51a25-0002-0009-0000-000000006b20", 6 | "gufi": "94c28eaf-0000-000d-0000-000000006b20", 7 | "submitTime": "2018-03-29T17:03:22.528Z", 8 | "ussInstanceID": "dbc56b6d-0009-0008-0000-000000006b20", 9 | "ussName": "WUSS" 10 | }, 11 | "RFData": [ 12 | "UTM-UASORG-20180329-1714-2200_84MHz-55_18MSPS-rfData.bin", 13 | "UTM-UASORG-20180329-1714-2200920KHz-55180KSPS-rfData.bin", 14 | "UTM-UASORG-20180329-1714-750MHz-55MSPS-rfData.bin" 15 | ], 16 | "prnGPSSat": [ 17 | { "ts": "2018-03-29T17:15:03.002Z", "prnGpsSat_nonDim": [3,12,23,10] }, 18 | { "ts": "2018-03-29T17:19:34.341Z", "prnGpsSat_nonDim": [3,27,32] } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/files/SAMPLE-20180329-1714-CON1.json: -------------------------------------------------------------------------------- 1 | { 2 | "fType": "CON1", 3 | "basic": { 4 | "uvin": "cc10e9e9-0004-4005-b000-000000005363", 5 | "gufi": "eabb408a-000e-400b-b000-000000005363", 6 | "submitTime": "2018-03-29T17:16:15.123456Z", 7 | "ussName": "WUSS", 8 | "ussInstanceID": "95401977-000d-4010-b000-000000005364" 9 | }, 10 | "UTM-TCL3-DMP-RevF-CONPDF": "UTM-SAMPLE-CON-1.pdf", 11 | "plannedBvlosLandingPoint_deg": [ 12 | { "lat":37.4119851, "lon":-122.0623431 }, 13 | { "lat":37.4119853, "lon":-122.0623429 }, 14 | { "lat":37.4119857, "lon":-122.0623423 } 15 | ], 16 | "plannedBvlosLandingPointAlt_ft": [1.1,2.2,3.3], 17 | 18 | "actualBvlosLandingPoint": [ 19 | { "ts": "2018-03-29T17:16:15.123456Z", 20 | "actualBvlosLandingPoint_deg": [ 21 | { "lat":37.4119851, "lon":-122.0623431 }, 22 | { "lat":37.4119853, "lon":-122.0623429 }, 23 | { "lat":37.4119857, "lon":-122.0623423 } 24 | ], 25 | "actualBVLOSLandingPointAlt_ft": [1.1,2.2,3.3] 26 | }, 27 | { "ts": "2018-03-29T17:16:16.123456Z", 28 | "actualBvlosLandingPoint_deg": [ 29 | { "lat":37.4119851, "lon":-122.0623431 }, 30 | { "lat":37.4119853, "lon":-122.0623429 }, 31 | { "lat":37.4119857, "lon":-122.0623423 } 32 | ], 33 | "actualBVLOSLandingPointAlt_ft": [1.1,2.2,3.3] 34 | } 35 | ], 36 | 37 | "landingOffset_ft": [25.3,19.7,88.6], 38 | "alongTrackDistanceFlown_ft": 1592.3, 39 | "distanceFromLaunchSite_ft": 164.9, 40 | "bvlosLandingZoneSize_ft": [40.0,45.1,50.5], 41 | "bvlosLandingZoneStructure_deg": [ 42 | { "lat":37.4119851, "lon":-122.0623431 }, 43 | { "lat":37.4119853, "lon":-122.0623429 }, 44 | { "lat":37.4119857, "lon":-122.0623423 } 45 | ], 46 | "bvlosLandingZonePeople_deg": [ 47 | { "lat":37.4119851, "lon":-122.0623431 }, 48 | { "lat":37.4119853, "lon":-122.0623429 }, 49 | { "lat":37.4119857, "lon":-122.0623423 } 50 | ], 51 | "wxBvlosLandingZone": [ 52 | { "ts": "2018-03-29T17:16:15.123456Z", 53 | "wxBvlosLandingZone1Data": { "temp":-10.0, "pressure":29.8, "windSpeed":9.8, "windDir":1.3 }, 54 | "wxBvlosLandingZone2Data": { "temp":-11.0, "pressure":30.9, "windSpeed":2.2, "windDir":2.3 }, 55 | "wxBvlosLandingZone3Data": { "temp":-10.5, "pressure":30.8, "windSpeed":3.7, "windDir":3.1 } 56 | }, 57 | { "ts": "2018-03-29T17:16:16.123456Z", 58 | "wxBvlosLandingZone1Data": { "temp":-10.1, "pressure":29.7, "windSpeed":9.7, "windDir":1.3 }, 59 | "wxBvlosLandingZone2Data": { "temp":-11.1, "pressure":30.8, "windSpeed":2.3, "windDir":2.2 }, 60 | "wxBvlosLandingZone3Data": { "temp":-10.4, "pressure":30.6, "windSpeed":3.6, "windDir":3.0 } 61 | } 62 | ], 63 | "c2": [ 64 | { "ts": "2018-03-29T17:16:15.123456Z", 65 | "c2RssiAircraft_dBm": 3.1, 66 | "c2RssiGcs_dBm": 5.3, 67 | "c2NoiseAircraft_dBm": 7.9, 68 | "c2NoiseGcs_dBm": 9.1 69 | }, 70 | { "ts": "2018-03-29T17:16:16.123456Z", 71 | "c2RssiAircraft_dBm": 2.0, 72 | "c2RssiGcs_dBm": 4.2, 73 | "c2NoiseAircraft_dBm": 6.8, 74 | "c2NoiseGcs_dBm": 8.4 75 | } 76 | ], 77 | "c2PacketLoss": [ 78 | { "ts": "2018-03-29T17:16:15.123456Z", 79 | "c2PacketLossRateAircraftPrct_nonDim": 45.4, 80 | "c2PacketLossRateGcsPrct_nonDim": 99.9 81 | }, 82 | { "ts": "2018-03-29T17:16:16.123456Z", 83 | "c2PacketLossRateAircraftPrct_nonDim": 0.0, 84 | "c2PacketLossRateGcsPrct_nonDim": 72.3 85 | } 86 | ] 87 | } 88 | -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/files/SAMPLE-20180329-1714-CON2.json: -------------------------------------------------------------------------------- 1 | { 2 | "fType": "CON2", 3 | "basic": { 4 | "uvin": "882790d6-000b-4003-b000-00000000f6f7", 5 | "gufi": "b36a45f8-0003-4011-b000-00000000f6f7", 6 | "submitTime": "2018-03-29T17:16:15.123456Z", 7 | "ussName": "WUSS", 8 | "ussInstanceID": "6c4ec31e-0002-4009-b000-00000000f6f8" 9 | }, 10 | "UTM-TCL3-DMP-RevF-CONPDF": "UTM-SAMPLE-CON-1.pdf", 11 | "UTM-TCL3-DMP-RevF-CONKML": "UTM-SAMPLE-CON-1.kml", 12 | "declaredEmerg": [ 13 | { "ts": "2018-03-29T17:16:15.123456Z", "declaredEmergency": "Goose!" }, 14 | { "ts": "2018-03-29T17:16:30.123456Z", "declaredEmergency": "Duck!" } 15 | ], 16 | "emergencyInitiationTime": [ 17 | "2018-03-29T17:16:15.123456Z", 18 | "2018-03-29T17:16:30.123456Z" 19 | ], 20 | "emergencyCompletionTime": [ 21 | "2018-03-29T17:16:20.123456Z", 22 | "2018-03-29T17:16:40.123456Z" 23 | ], 24 | "contingencyCause": [ 25 | { "ts": "2018-03-29T17:16:15.123456Z", "contingencyCause_nonDim": [10,11] }, 26 | { "ts": "2018-03-29T17:16:30.123456Z", "contingencyCause_nonDim": [10,11] } 27 | ], 28 | "contingencyResponse": [ 29 | { "ts": "2018-03-29T17:16:15.123456Z", "contingencyResponse_nonDim": 0 }, 30 | { "ts": "2018-03-29T17:16:15.123456Z", "contingencyResponse_nonDim": 0 } 31 | ], 32 | "plannedContingency": { 33 | "plannedContingencyLandingPoint_deg": [ 34 | { "lat":37.4119851, "lon":-122.0623431 }, 35 | { "lat":37.4119853, "lon":-122.0623429 }, 36 | { "lat":37.4119857, "lon":-122.0623423 } 37 | ], 38 | "plannedContingencyLandingPointAlt_ft": [300,250,350], 39 | "plannedContingencyLoiterAlt_ft": [300,250,350,300.2,0.345,-123,0.0], 40 | "plannedContingencyLoiterRadius_ft": [50,45.5,40.01,30,30,40,40] 41 | }, 42 | "contingencyLanding": [ 43 | { 44 | "ts": "2018-03-29T17:16:15.123456Z", 45 | "contingencyLandingPoint_deg": [ 46 | { "lat":37.4119852, "lon":-122.0623431 }, 47 | { "lat":37.4119854, "lon":-122.0623429 } 48 | ], 49 | "contingencyLandingPointAlt_ft": [300.4,251] 50 | }, 51 | { 52 | "ts": "2018-03-29T17:16:16.123456Z", 53 | "contingencyLandingPoint_deg": [ 54 | { "lat":37.411962, "lon":-122.0623431 }, 55 | { "lat":37.411966, "lon":-122.0623435 } 56 | ], 57 | "contingencyLandingPointAlt_ft": [300.4,251] 58 | } 59 | ], 60 | "contingencyLoiterType": [ 61 | { "ts": "2018-03-29T17:16:15.123456Z", "contingencyLoiterType_nonDim": 1 }, 62 | { "ts": "2018-03-29T17:16:16.123456Z", "contingencyLoiterType_nonDim": 1 } 63 | ], 64 | "contingencyLoiterAlt": [ 65 | { "ts": "2018-03-29T17:16:15.123456Z", "contingencyLoiterAlt_ft": [300,250,300,300] }, 66 | { "ts": "2018-03-29T17:16:16.123456Z", "contingencyLoiterAlt_ft": [300,250,300,300] } 67 | ], 68 | "contingencyLoiterRadius": [ 69 | { "ts": "2018-03-29T17:16:15.123456Z", "contingencyLoiterRadius_ft": [50.1,45.5,40.1,30.2] }, 70 | { "ts": "2018-03-29T17:16:16.123456Z", "contingencyLoiterRadius_ft": [50.1,45.5,40.1,30.2] } 71 | ] 72 | } 73 | -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/files/SAMPLE-20180329-1714-CON4.json: -------------------------------------------------------------------------------- 1 | { 2 | "fType": "CON4", 3 | "basic": { 4 | "uvin": "c03c6755-0004-4009-b000-000000000fe7", 5 | "gufi": "382db215-000e-400a-b000-000000000fe7", 6 | "submitTime": "2018-03-29T17:16:15.123456Z", 7 | "ussInstanceID": "7c2f92ba-000e-400c-b000-000000000fe8", 8 | "ussName": "WUSS" 9 | }, 10 | "UTM-TCL3-DMP-RevF-CONPDF": "UTM-SAMPLE-CON-1.pdf", 11 | "UTM-TCL3-DMP-RevF-CONKML": "UTM-SAMPLE-CON-1.kml" 12 | } -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/files/SAMPLE-20180329-1714-CON5.json: -------------------------------------------------------------------------------- 1 | { 2 | "fType": "CON5", 3 | "basic": { 4 | "uvin": "f5e24049-000d-4000-b000-0000000052e4", 5 | "gufi": "771daea6-0009-4002-b000-0000000052e7", 6 | "submitTime": "2018-03-29T17:16:15.123456Z", 7 | "ussName": "WUSS", 8 | "ussInstanceID": "1e9075e9-0002-4002-b000-0000000052e7" 9 | }, 10 | "distFromBoundary": [ 11 | { "ts": "2018-03-29T17:16:15.123456Z", "distFromBoundary_ft": 42.2 }, 12 | { "ts": "2018-03-29T17:16:16.123456Z", "distFromBoundary_ft": 32.2 }, 13 | { "ts": "2018-03-29T17:16:17.123456Z", "distFromBoundary_ft": 35.5 }, 14 | { "ts": "2018-03-29T17:16:18.123456Z", "distFromBoundary_ft": 34.8 } 15 | ], 16 | "unauthorizedAirspaceStatus": [ 17 | { "ts": "2018-03-29T17:16:15.123456Z", "unauthorizedAirspaceStatus_nonDim": 0 }, 18 | { "ts": "2018-03-29T17:16:16.123456Z", "unauthorizedAirspaceStatus_nonDim": 0 }, 19 | { "ts": "2018-03-29T17:16:17.123456Z", "unauthorizedAirspaceStatus_nonDim": 1 }, 20 | { "ts": "2018-03-29T17:16:18.123456Z", "unauthorizedAirspaceStatus_nonDim": 0 } 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/files/SAMPLE-20180329-1714-SAA1.json: -------------------------------------------------------------------------------- 1 | { 2 | "fType": "SAA1", 3 | "basic": { 4 | "uvin": "cf8e2212-000a-400b-b000-00000000ef99", 5 | "gufi": "9d6cc3b0-0009-400c-b000-00000000ef9d", 6 | "submitTime": "2018-03-29T17:16:15.123456Z", 7 | "ussInstanceID": "f60053e3-0001-400e-b000-00000000ef9e", 8 | "ussName": "WUSS" 9 | }, 10 | "timeAtEncounterInit": "2018-03-29T17:16:16.000012Z", 11 | "timeAtConflictAlert": "2018-03-29T17:16:18.020033Z", 12 | "timeAtConflictResManeuverInit": "2018-03-29T17:16:20.101001Z", 13 | "timeAtConflictResManeuverComplt": "2018-03-29T17:16:25.570013Z", 14 | "timeAtClearOfConflict": "2018-03-29T17:16:28.492042Z", 15 | "geoFence": { 16 | "geoFenceAvailable_nonDim": 1, 17 | "geoFenceStartTime": [ 18 | "2018-03-29T17:16:16.123456Z", 19 | "2018-03-29T17:18:00.994056Z" 20 | ], 21 | "geoFenceEndTime": [ 22 | "2018-03-29T17:17:22.123456Z", 23 | "2018-03-29T17:23:05.206608Z" 24 | ], 25 | "geoFenceType_nonDim": 1, 26 | "geoFenceMinAltitude_ft": 100, 27 | "geoFenceMaxAltitude_ft": 250, 28 | "geoFenceCircularPointLat_deg": 0, 29 | "geoFenceCircularPointLon_deg": 0, 30 | "geoFenceCircularRadius_ft": 0, 31 | "geoFenceEnable": [ 32 | { "ts": "2018-03-29T17:16:17.000000Z", "geoFenceEnable_nonDim": 1 }, 33 | { "ts": "2018-03-29T17:23:15.000000Z", "geoFenceEnable_nonDim": 0 } 34 | ], 35 | "geoFenceDynamicPolygonPoint": [ 36 | { "ts": "2018-03-29T17:16:16.000000Z", 37 | "geoFenceDynamicPolygonPoint_deg": [ 38 | { "lat":37.4349402, "lon":-122.0680381 }, 39 | { "lat":37.4357561, "lon":-122.0276982 }, 40 | { "lat":37.4010582, "lon":-122.0358520 }, 41 | { "lat":37.4084903, "lon":-122.0669224 } 42 | ] 43 | }, 44 | { "ts": "2018-03-29T17:16:17.000000Z", 45 | "geoFenceDynamicPolygonPoint_deg": [ 46 | { "lat":37.4349402, "lon":-122.0680381 }, 47 | { "lat":37.4357561, "lon":-122.0276982 }, 48 | { "lat":37.4010582, "lon":-122.0358520 }, 49 | { "lat":37.4084903, "lon":-122.0669224 } 50 | ] 51 | } 52 | ] 53 | } 54 | } -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/files/SAMPLE-20180329-1714-SAA2.json: -------------------------------------------------------------------------------- 1 | { 2 | "fType": "SAA2", 3 | "basic": { 4 | "uvin": "a193c135-0001-4010-b000-00000000c950", 5 | "gufi": "9433dca9-0001-4010-b000-00000000c951", 6 | "submitTime": "2018-03-29T17:16:15.123456Z", 7 | "ussInstanceID": "4e13626b-0008-4010-b000-00000000c952", 8 | "ussName": "WUSS" 9 | }, 10 | "geoFence": { 11 | "geoFenceAvailable_nonDim": 1, 12 | "geoFenceStartTime": [ 13 | "2018-03-29T17:16:16.123456Z", 14 | "2018-03-29T17:18:00.994056Z" 15 | ], 16 | "geoFenceEndTime": [ 17 | "2018-03-29T17:17:22.123456Z", 18 | "2018-03-29T17:23:05.206608Z" 19 | ], 20 | "geoFenceType_nonDim": 0, 21 | "geoFenceMinAltitude_ft": 100, 22 | "geoFenceMaxAltitude_ft": 300, 23 | "geoFenceCircularPointLat_deg": 37.4178391, 24 | "geoFenceCircularPointLon_deg": -122.05128902, 25 | "geoFenceCircularRadius_ft": 100, 26 | "geoFenceEnable": [ 27 | { "ts": "2018-03-29T17:16:17.000000Z", "geoFenceEnable_nonDim": 1 }, 28 | { "ts": "2018-03-29T17:23:15.000000Z", "geoFenceEnable_nonDim": 0 } 29 | ], 30 | "geoFenceDynamicPolygonPoint": [ 31 | { "ts": "2018-03-29T17:16:15.123456Z", 32 | "geoFenceDynamicPolygonPoint_deg": [ 33 | { "lat":37.4217203, "lon":-122.0562211 }, 34 | { "lat":37.4217203, "lon":-122.0462250 }, 35 | { "lat":37.4138512, "lon":-122.0462250 }, 36 | { "lat":37.4138512, "lon":-122.0562211 } 37 | ] 38 | }, 39 | { "ts": "2018-03-29T17:16:15.123456Z", 40 | "geoFenceDynamicPolygonPoint_deg": [ 41 | { "lat":37.4217203, "lon":-122.0562211 }, 42 | { "lat":37.4217203, "lon":-122.0462250 }, 43 | { "lat":37.4138512, "lon":-122.0462250 }, 44 | { "lat":37.4138512, "lon":-122.0562211 } 45 | ] 46 | } 47 | ] 48 | } 49 | } -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/files/SAMPLE-20180329-1714-SAA3.json: -------------------------------------------------------------------------------- 1 | { 2 | "fType": "SAA3", 3 | "basic": { 4 | "uvin": "58a04474-0003-4001-b000-00000000d597", 5 | "gufi": "1ce879b7-0010-400f-b000-00000000d597", 6 | "submitTime": "2018-03-29T17:16:15.123456Z", 7 | "ussInstanceID": "c3bba53b-0003-4006-b000-00000000d598", 8 | "ussName": "WUSS" 9 | }, 10 | "geoFence": { 11 | "geoFenceAvailable_nonDim": 1, 12 | "geoFenceStartTime": [ 13 | "2018-03-29T17:16:16.123456Z", 14 | "2018-03-29T17:18:00.994056Z" 15 | ], 16 | "geoFenceEndTime": [ 17 | "2018-03-29T17:17:22.123456Z", 18 | "2018-03-29T17:23:05.206608Z" 19 | ], 20 | "geoFenceType_nonDim": 1, 21 | "geoFenceMinAltitude_ft": 100, 22 | "geoFenceMaxAltitude_ft": 250, 23 | "geoFenceCircularPointLat_deg": 0, 24 | "geoFenceCircularPointLon_deg": 0, 25 | "geoFenceCircularRadius_ft": 0, 26 | "geoFenceEnable": [ 27 | { "ts": "2018-03-29T17:16:17.000000Z", "geoFenceEnable_nonDim": 1 }, 28 | { "ts": "2018-03-29T17:23:15.000000Z", "geoFenceEnable_nonDim": 0 } 29 | ], 30 | "geoFenceDynamicPolygonPoint": [ 31 | { "ts": "2018-03-29T17:16:16.000000Z", 32 | "geoFenceDynamicPolygonPoint_deg": [ 33 | { "lat":37.4349402, "lon":-122.0680381 }, 34 | { "lat":37.4357561, "lon":-122.0276982 }, 35 | { "lat":37.4010582, "lon":-122.0358520 }, 36 | { "lat":37.4084903, "lon":-122.0669224 } 37 | ] 38 | }, 39 | { "ts": "2018-03-29T17:16:17.000000Z", 40 | "geoFenceDynamicPolygonPoint_deg": [ 41 | { "lat":37.4349402, "lon":-122.0680381 }, 42 | { "lat":37.4357561, "lon":-122.0276982 }, 43 | { "lat":37.4010582, "lon":-122.0358520 }, 44 | { "lat":37.4084903, "lon":-122.0669224 } 45 | ] 46 | } 47 | ] 48 | } 49 | } -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/files/SAMPLE-20180329-1714-SAA4.json: -------------------------------------------------------------------------------- 1 | { 2 | "fType": "SAA4", 3 | "basic": { 4 | "uvin": "e22e6fe9-0007-400a-b000-00000000e8f8", 5 | "gufi": "9fce6bb5-0009-400c-b000-00000000e8f8", 6 | "submitTime": "2018-03-29T17:16:15.123456Z", 7 | "ussInstanceID": "b15ee7a9-0005-4011-b000-00000000e8f9", 8 | "ussName": "WUSS" 9 | }, 10 | "geoFence": { 11 | "geoFenceAvailable_nonDim": 1, 12 | "geoFenceStartTime": [ 13 | "2018-03-29T17:16:16.123456Z", 14 | "2018-03-29T17:18:00.994056Z" 15 | ], 16 | "geoFenceEndTime": [ 17 | "2018-03-29T17:17:22.123456Z", 18 | "2018-03-29T17:23:05.206608Z" 19 | ], 20 | "geoFenceType_nonDim": 1, 21 | "geoFenceMinAltitude_ft": 100, 22 | "geoFenceMaxAltitude_ft": 250, 23 | "geoFenceCircularPointLat_deg": 0, 24 | "geoFenceCircularPointLon_deg": 0, 25 | "geoFenceCircularRadius_ft": 0, 26 | "geoFenceEnable": [ 27 | { "ts": "2018-03-29T17:16:17.000000Z", "geoFenceEnable_nonDim": 1 }, 28 | { "ts": "2018-03-29T17:23:15.000000Z", "geoFenceEnable_nonDim": 0 } 29 | ], 30 | "geoFenceDynamicPolygonPoint": [ 31 | { "ts": "2018-03-29T17:16:16.000000Z", 32 | "geoFenceDynamicPolygonPoint_deg": [ 33 | { "lat":37.4349402, "lon":-122.0680381 }, 34 | { "lat":37.4357561, "lon":-122.0276982 }, 35 | { "lat":37.4010582, "lon":-122.0358520 }, 36 | { "lat":37.4084903, "lon":-122.0669224 } 37 | ] 38 | }, 39 | { "ts": "2018-03-29T17:16:17.000000Z", 40 | "geoFenceDynamicPolygonPoint_deg": [ 41 | { "lat":37.4349402, "lon":-122.0680381 }, 42 | { "lat":37.4357561, "lon":-122.0276982 }, 43 | { "lat":37.4010582, "lon":-122.0358520 }, 44 | { "lat":37.4084903, "lon":-122.0669224 } 45 | ] 46 | } 47 | ] 48 | }, 49 | "typeOfSaaSensor": "Radar", 50 | "relativeHeadingAtFirstDetection_deg": 62.44, 51 | "azimuthSensorMin_deg": 1.0, 52 | "azimuthSensorMax_deg": 45.0, 53 | "elevationSensorMin_deg": 1.0, 54 | "elevationSensorMax_deg": 50.0, 55 | "saaSensorMinSlantRange_ft": 1.0, 56 | "saaSensorMaxSlantRange_ft": 23.0, 57 | "minRcsOfSensor_ft2": 1.0, 58 | "maxRcsOfSensor_ft2": 1.7, 59 | "updateRateSensor_hz": 1.0, 60 | "saaSensorAzimuthAccuracy_deg": 1.0, 61 | "saaSensorAltitudeAccuracy_ft": 0.2, 62 | "horRangeAccuracy_ft": 0.2, 63 | "verRangeAccuracy_ft": 0.2, 64 | "slantRangeAccuracy_ft": 0.31, 65 | "timeToTrack_sec": 1.0, 66 | "probabilityFalseAlarmPrct_nonDim": 3.8, 67 | "probabilityIntruderDetectionPrct_nonDim": 92.0, 68 | "targetTrackCapacity_nonDim": 7.0, 69 | "dataPacketRatio_nonDim": 0.98, 70 | "transmissionDelay_sec": 0.06, 71 | "numberOfLostTracks_nonDim": 1.0, 72 | "intruderRadarCrossSection_ft2": 1.1, 73 | "txRadioFrequencyPower_w": 61.4, 74 | "intruder": { 75 | "ts": "2018-03-29T17:16:15.123456Z", 76 | "intruderPositionLat_deg": 37.1234567, 77 | "intruderPositionLon_deg": -122.1234567, 78 | "intruderPositionAlt_ft": 104.8, 79 | "intruderGroundSpeed_ftPerSec": 8.6, 80 | "intruderVelNorth_ftPerSec": 9.33, 81 | "intruderVelEast_ftPerSec": 16.1, 82 | "intruderVelDown_ftPerSec": 1.1, 83 | "intruderGroundCourse_deg": 57.8 84 | } 85 | } -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/files/SAMPLE-20180329-1714-SAA5.json: -------------------------------------------------------------------------------- 1 | { 2 | "fType": "SAA5", 3 | "basic": { 4 | "uvin": "c367e289-0003-400c-8000-000000005471", 5 | "gufi": "1e1298d9-0006-400d-8000-000000005472", 6 | "submitTime": "2018-03-29T17:11:15.123456Z", 7 | "ussInstanceID": "8f92a231-0011-400f-b000-000000005472", 8 | "ussName": "WUSS" 9 | }, 10 | "geoFence": { 11 | "geoFenceAvailable_nonDim": 1, 12 | "geoFenceStartTime": [ 13 | "2018-03-29T17:16:16.123456Z", 14 | "2018-03-29T17:18:00.994056Z" 15 | ], 16 | "geoFenceEndTime": [ 17 | "2018-03-29T17:17:22.123456Z", 18 | "2018-03-29T17:23:05.206608Z" 19 | ], 20 | "geoFenceType_nonDim": 1, 21 | "geoFenceMinAltitude_ft": 100, 22 | "geoFenceMaxAltitude_ft": 250, 23 | "geoFenceCircularPointLat_deg": 0, 24 | "geoFenceCircularPointLon_deg": 0, 25 | "geoFenceCircularRadius_ft": 0, 26 | "geoFenceEnable": [ 27 | { "ts": "2018-03-29T17:16:17.000000Z", "geoFenceEnable_nonDim": 1 }, 28 | { "ts": "2018-03-29T17:23:15.000000Z", "geoFenceEnable_nonDim": 0 } 29 | ], 30 | "geoFenceDynamicPolygonPoint": [ 31 | { "ts": "2018-03-29T17:16:16.000000Z", 32 | "geoFenceDynamicPolygonPoint_deg": [ 33 | { "lat":37.4349402, "lon":-122.0680381 }, 34 | { "lat":37.4357561, "lon":-122.0276982 }, 35 | { "lat":37.4010582, "lon":-122.0358520 }, 36 | { "lat":37.4084903, "lon":-122.0669224 } 37 | ] 38 | }, 39 | { "ts": "2018-03-29T17:16:17.000000Z", 40 | "geoFenceDynamicPolygonPoint_deg": [ 41 | { "lat":37.4349402, "lon":-122.0680381 }, 42 | { "lat":37.4357561, "lon":-122.0276982 }, 43 | { "lat":37.4010582, "lon":-122.0358520 }, 44 | { "lat":37.4084903, "lon":-122.0669224 } 45 | ] 46 | } 47 | ] 48 | }, 49 | "UTM-TCL3-DMP-RevF-SAAPDF": "UTM-SAMPLE-SAA-3.pdf", 50 | "lookAheadTime_sec": 3.3, 51 | "typeOfConflictResolution_nonDim": 2, 52 | "expectedOperatorResponseTime_sec": 2.0, 53 | "expectedUASResponseTime_sec": 1.4, 54 | "expectedCommLatency_sec": 0.3, 55 | "expectedClimbRateOwnship_ftPerSec": 8.0, 56 | "expectedDescendRateOwnship_ftPerSec": 16.0, 57 | "expectedTurnRateOwnship_degPerSec": 57.0 58 | } -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/files/SAMPLE-20180329-1714-SAA6.json: -------------------------------------------------------------------------------- 1 | { 2 | "fType": "SAA6", 3 | "basic": { 4 | "uvin": "e5cf4d8c-000d-4007-b000-000000005484", 5 | "gufi": "48802488-000e-4003-b000-000000005485", 6 | "submitTime": "2018-03-29T17:16:15.123456Z", 7 | "ussInstanceID": "418c0891-000c-4009-b000-000000005486", 8 | "ussName": "WUSS" 9 | }, 10 | "geoFence": { 11 | "geoFenceAvailable_nonDim": 1, 12 | "geoFenceStartTime": [ 13 | "2018-03-29T17:16:16.123456Z", 14 | "2018-03-29T17:18:00.994056Z" 15 | ], 16 | "geoFenceEndTime": [ 17 | "2018-03-29T17:17:22.123456Z", 18 | "2018-03-29T17:23:05.206608Z" 19 | ], 20 | "geoFenceType_nonDim": 1, 21 | "geoFenceMinAltitude_ft": 100, 22 | "geoFenceMaxAltitude_ft": 250, 23 | "geoFenceCircularPointLat_deg": 0, 24 | "geoFenceCircularPointLon_deg": 0, 25 | "geoFenceCircularRadius_ft": 0, 26 | "geoFenceEnable": [ 27 | { "ts": "2018-03-29T17:16:17.000000Z", "geoFenceEnable_nonDim": 1 }, 28 | { "ts": "2018-03-29T17:23:15.000000Z", "geoFenceEnable_nonDim": 0 } 29 | ], 30 | "geoFenceDynamicPolygonPoint": [ 31 | { "ts": "2018-03-29T17:16:16.000000Z", 32 | "geoFenceDynamicPolygonPoint_deg": [ 33 | { "lat":37.4349402, "lon":-122.0680381 }, 34 | { "lat":37.4357561, "lon":-122.0276982 }, 35 | { "lat":37.4010582, "lon":-122.0358520 }, 36 | { "lat":37.4084903, "lon":-122.0669224 } 37 | ] 38 | }, 39 | { "ts": "2018-03-29T17:16:17.000000Z", 40 | "geoFenceDynamicPolygonPoint_deg": [ 41 | { "lat":37.4349402, "lon":-122.0680381 }, 42 | { "lat":37.4357561, "lon":-122.0276982 }, 43 | { "lat":37.4010582, "lon":-122.0358520 }, 44 | { "lat":37.4084903, "lon":-122.0669224 } 45 | ] 46 | } 47 | ] 48 | }, 49 | "numberOfLossesOfSeparation_nonDim": 3, 50 | "numberOfNmac_nonDim": 4, 51 | "numberOfPrimaryConflicts_nonDim": 1, 52 | "numberOfInducedConflicts_nonDim": 3, 53 | "numberOfResolvedConflicts_nonDim": 3, 54 | "numberOfUnresolvedConflicts_nonDim": 1, 55 | "slantRangeAtPtOfApproach_ft": 1.79, 56 | "horMissDistAtClosestPtApproach_ft": 8.0, 57 | "verMissDistAtClosestPtApproach_ft": 9.2, 58 | "numberOfAlertsPerPrimaryConflict_nonDim": 2, 59 | "numberOfAlertsPerInducedConflict_nonDim": 5, 60 | "numberOfStrengtheningAlertsPerConflict_nonDim": 2, 61 | "numberOfStrengtheningAlertsTotal_nonDim": 4, 62 | "numberOfWeakeningAlertsPerConflict_nonDim": 1, 63 | "numberOfWeakeningAlertsTotal_nonDim": 1, 64 | "numberOfReversalAlertsPerConflict_nonDim": 0, 65 | "numberOfReversalAlertsTotal_nonDim": 0, 66 | "numberOfYoYoAlertsPerConflict_nonDim": 1, 67 | "numberOfYoYoAlertsTotal_nonDim": 1, 68 | "horFlightPathDeviation_ft": 15.0, 69 | "verFlightPathDeviation_ft": 12.0, 70 | "maxAbsolutePathDeviation_ft": 19.2, 71 | "maxHorPathDeviation_ft": 21.3, 72 | "maxVerPathDeviation_ft": 24.04, 73 | "totalHorPathDeviation_ft2": 78.0, 74 | "totalVerPathDeviation_ft2": 93.5 75 | } 76 | -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/files/TCL3-DMP-RevF-PDF-KML-Templates.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/utm-docs/fcf160354927cafa6a91185293fb33b8cc6aed22/TCL3/tcl3-data-apis/files/TCL3-DMP-RevF-PDF-KML-Templates.zip -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/files/requirements_table.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/utm-docs/fcf160354927cafa6a91185293fb33b8cc6aed22/TCL3/tcl3-data-apis/files/requirements_table.pdf -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/files/requirements_table.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/utm-docs/fcf160354927cafa6a91185293fb33b8cc6aed22/TCL3/tcl3-data-apis/files/requirements_table.xlsx -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/utm-tcl3-cns.yaml: -------------------------------------------------------------------------------- 1 | swagger: '2.0' 2 | info: 3 | version: "v3" 4 | title: CNS JSON upload format description 5 | description: Enforced upload format for CNS MOP 6 | contact: 7 | name: 'NASA Ames Research Center, Aviation Systems Division' 8 | url: 'https://utmregistry.arc.nasa.gov/' 9 | email: joseph.rios@nasa.gov 10 | license: 11 | name: NASA Open Source Agreement 12 | url: 'https://ti.arc.nasa.gov/opensource/nosa/' 13 | termsOfService: >- 14 | A. No Warranty: THE SUBJECT SOFTWARE IS PROVIDED \"AS IS\" WITHOUT ANY 15 | WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, 16 | BUT NOT LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO 17 | SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 18 | PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT THE 19 | SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF 20 | PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN 21 | ANY MANNER, CONSTITUTE AN ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR 22 | RECIPIENT OF ANY RESULTS, RESULTING DESIGNS, HARDWARE, SOFTWARE PRODUCTS OR 23 | ANY OTHER APPLICATIONS RESULTING FROM USE OF THE SUBJECT SOFTWARE. FURTHER, 24 | GOVERNMENT AGENCY DISCLAIMS ALL WARRANTIES AND LIABILITIES REGARDING 25 | THIRD-PARTY SOFTWARE, IF PRESENT IN THE ORIGINAL SOFTWARE, AND DISTRIBUTES 26 | IT \"AS IS.\" 27 | 28 | 29 | B. Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS 30 | AGAINST THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS 31 | WELL AS ANY PRIOR RECIPIENT. IF RECIPIENT''S USE OF THE SUBJECT SOFTWARE 32 | RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES, EXPENSES OR LOSSES ARISING 33 | FROM SUCH USE, INCLUDING ANY DAMAGES FROM PRODUCTS BASED ON, OR RESULTING 34 | FROM, RECIPIENT''S USE OF THE SUBJECT SOFTWARE, RECIPIENT SHALL INDEMNIFY 35 | AND HOLD HARMLESS THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND 36 | SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY 37 | LAW. RECIPIENT''S SOLE REMEDY FOR ANY SUCH MATTER SHALL BE THE IMMEDIATE, 38 | UNILATERAL TERMINATION OF THIS AGREEMENT. 39 | paths: {} 40 | definitions: 41 | 42 | CNS1_MOP: 43 | type: object 44 | required: ['basic','fType','UTM-TCL3-DMP-RevF-CNSPDF','plannedContingency','primaryLinkDescription','redundantLinkDescription','contingencyCause','contingencyResponse','contingencyLanding','contingencyLoiterType','contingencyLoiterAlt','contingencyLoiterRadius','maneuverCommand','estimatedTimeToVerifyManeuver','cns1TestType','timeManeuverCommandSent','timeManeuverVerification','timePrimaryLinkDisconnect','timeRedundantLinkSwitch'] 45 | properties: 46 | basic: 47 | $ref: '#/definitions/basicInformation' 48 | fType: 49 | type: string 50 | enum: 51 | - CNS1 52 | UTM-TCL3-DMP-RevF-CNSPDF: 53 | $ref: '#/definitions/CNSPDFFileName' 54 | plannedContingency: 55 | $ref: '#/definitions/plannedContingency' 56 | primaryLinkDescription: 57 | type: array 58 | items: 59 | type: object 60 | required: ['ts','primaryLinkDescription'] 61 | properties: 62 | ts: 63 | $ref: '#/definitions/timestamp' 64 | primaryLinkDescription: 65 | $ref: '#/definitions/string280' 66 | redundantLinkDescription: 67 | type: array 68 | items: 69 | type: object 70 | required: ['ts','redundantLinkDescription'] 71 | properties: 72 | ts: 73 | $ref: '#/definitions/timestamp' 74 | redundantLinkDescription: 75 | $ref: '#/definitions/string280' 76 | contingencyCause: 77 | $ref: '#/definitions/contingencyCause' 78 | contingencyResponse: 79 | $ref: '#/definitions/contingencyResponse' 80 | contingencyLanding: 81 | $ref: '#/definitions/contingencyLanding' 82 | contingencyLoiterType: 83 | $ref: '#/definitions/contingencyLoiterType' 84 | contingencyLoiterAlt: 85 | $ref: '#/definitions/contingencyLoiterAlt' 86 | contingencyLoiterRadius: 87 | $ref: '#/definitions/contingencyLoiterRadius' 88 | maneuverCommand: 89 | type: array 90 | items: 91 | type: object 92 | required: ['ts','maneuverCommand'] 93 | properties: 94 | ts: 95 | $ref: '#/definitions/timestamp' 96 | maneuverCommand: 97 | $ref: '#/definitions/string280' 98 | estimatedTimeToVerifyManeuver: 99 | type: array 100 | items: 101 | type: object 102 | required: ['ts','estimatedTimeToVerifyManeuver_sec'] 103 | properties: 104 | ts: 105 | $ref: '#/definitions/timestamp' 106 | estimatedTimeToVerifyManeuver_sec: 107 | type: number 108 | cns1TestType: 109 | type: array 110 | items: 111 | type: object 112 | required: ['ts','cns1TestType_nonDim'] 113 | properties: 114 | ts: 115 | $ref: '#/definitions/timestamp' 116 | cns1TestType_nonDim: 117 | type: integer 118 | enum: 119 | - 0 120 | - 1 121 | - 2 122 | timeManeuverCommandSent: 123 | type: array 124 | items: 125 | $ref: '#/definitions/tsObject' 126 | timeManeuverVerification: 127 | type: array 128 | items: 129 | $ref: '#/definitions/tsObject' 130 | timePrimaryLinkDisconnect: 131 | type: array 132 | items: 133 | $ref: '#/definitions/tsObject' 134 | timeRedundantLinkSwitch: 135 | type: array 136 | items: 137 | $ref: '#/definitions/tsObject' 138 | 139 | 140 | CNS2_MOP: 141 | type: object 142 | required: ['basic','fType','UTM-TCL3-DMP-RevF-CNSPDF','plannedContingency','uasTruth','prnGPSSat','uere','contingencyCause','contingencyResponse','contingencyLanding','contingencyLoiterType','contingencyLoiterAlt','contingencyLoiterRadius'] 143 | properties: 144 | basic: 145 | $ref: '#/definitions/basicInformation' 146 | fType: 147 | type: string 148 | enum: 149 | - CNS2 150 | UTM-TCL3-DMP-RevF-CNSPDF: 151 | $ref: '#/definitions/CNSPDFFileName' 152 | plannedContingency: 153 | $ref: '#/definitions/plannedContingency' 154 | uasTruth: 155 | type: array 156 | items: 157 | type: object 158 | required: ['ts','uasTruthEcefXCoordinate_ft','uasTruthEcefYCoordinate_ft','uasTruthEcefZCoordinate_ft','estimatedTruthPositionError95Prct_in'] 159 | properties: 160 | ts: 161 | $ref: '#/definitions/timestamp' 162 | uasTruthEcefXCoordinate_ft: 163 | type: number 164 | uasTruthEcefYCoordinate_ft: 165 | type: number 166 | uasTruthEcefZCoordinate_ft: 167 | type: number 168 | estimatedTruthPositionError95Prct_in: 169 | type: number 170 | prnGpsSat: 171 | $ref: '#/definitions/prnGpsSat' 172 | uere: 173 | type: array 174 | items: 175 | type: object 176 | required: ['ts','uere_in'] 177 | properties: 178 | ts: 179 | $ref: '#/definitions/timestamp' 180 | uere_in: 181 | type: number 182 | contingencyCause: 183 | $ref: '#/definitions/contingencyCause' 184 | contingencyResponse: 185 | $ref: '#/definitions/contingencyResponse' 186 | contingencyLanding: 187 | $ref: '#/definitions/contingencyLanding' 188 | contingencyLoiterType: 189 | $ref: '#/definitions/contingencyLoiterType' 190 | contingencyLoiterAlt: 191 | $ref: '#/definitions/contingencyLoiterAlt' 192 | contingencyLoiterRadius: 193 | $ref: '#/definitions/contingencyLoiterRadius' 194 | 195 | 196 | CNS3_MOP: 197 | type: object 198 | required: ["basic","fType","UTM-TCL3-DMP-RevF-CNSPDF","RFData","prnGPSSat"] 199 | properties: 200 | basic: 201 | $ref: '#/definitions/basicInformation' 202 | fType: 203 | type: string 204 | enum: 205 | - CNS3 206 | UTM-TCL3-DMP-RevF-CNSPDF: 207 | $ref: '#/definitions/CNSPDFFileName' 208 | RFData: 209 | $ref: '#/definitions/CNS3RFDataList' 210 | prnGPSSat: 211 | $ref: '#/definitions/prnGpsSat' 212 | 213 | # definitions shared by the MOPs 214 | 215 | tsObject: 216 | type: object 217 | required: ['ts'] 218 | properties: 219 | ts: 220 | $ref: '#/definitions/timestamp' 221 | 222 | contingencyCause: 223 | type: array 224 | items: 225 | type: object 226 | required: ['ts','contingencyCause_nonDim'] 227 | properties: 228 | ts: 229 | $ref: '#/definitions/timestamp' 230 | contingencyCause_nonDim: 231 | $ref: '#/definitions/ContingencyCauseNumberList' 232 | 233 | contingencyResponse: 234 | type: array 235 | items: 236 | type: object 237 | required: ['ts','contingencyResponse_nonDim'] 238 | properties: 239 | ts: 240 | $ref: '#/definitions/timestamp' 241 | contingencyResponse_nonDim: 242 | type: integer 243 | enum: 244 | - 0 245 | - 1 246 | - 2 247 | - 3 248 | 249 | contingencyLanding: 250 | type: array 251 | items: 252 | type: object 253 | required: ['ts','contingencyLandingPoint_deg','contingencyLandingPointAlt_ft'] 254 | properties: 255 | ts: 256 | $ref: '#/definitions/timestamp' 257 | contingencyLandingPoint_deg: 258 | $ref: '#/definitions/LatLonList' 259 | contingencyLandingPointAlt_ft: 260 | $ref: '#/definitions/AltitudeList' 261 | 262 | contingencyLoiterType: 263 | type: array 264 | items: 265 | type: object 266 | required: ['ts','contingencyLoiterType_nonDim'] 267 | properties: 268 | ts: 269 | $ref: '#/definitions/timestamp' 270 | contingencyLoiterType_nonDim: 271 | type: integer 272 | enum: 273 | - 0 274 | - 1 275 | - 2 276 | - 3 277 | 278 | contingencyLoiterAlt: 279 | type: array 280 | items: 281 | type: object 282 | required: ['ts','contingencyLoiterAlt_ft'] 283 | properties: 284 | ts: 285 | $ref: '#/definitions/timestamp' 286 | contingencyLoiterAlt_ft: 287 | $ref: '#/definitions/AltitudeList' 288 | 289 | contingencyLoiterRadius: 290 | type: array 291 | items: 292 | type: object 293 | required: ['ts','contingencyLoiterRadius_ft'] 294 | properties: 295 | ts: 296 | $ref: '#/definitions/timestamp' 297 | contingencyLoiterRadius_ft: 298 | $ref: '#/definitions/NumberList' 299 | 300 | prnGpsSat: 301 | type: array 302 | items: 303 | type: object 304 | required: ['ts','prnGpsSat_nonDim'] 305 | properties: 306 | ts: 307 | $ref: '#/definitions/timestamp' 308 | prnGpsSat_nonDim: 309 | $ref: '#/definitions/prnList' 310 | 311 | CNSPDFFileName: 312 | type: string 313 | pattern: '^UTM-[^-]+-CNS-[0-9]+.pdf$' 314 | example: 'UTM-UASORG-CNS-3.pdf' 315 | 316 | CNS3RFDataList: 317 | type: array 318 | items: 319 | $ref: '#/definitions/CNS3RFDataFileName' 320 | 321 | CNS3RFDataFileName: 322 | type: string 323 | pattern: '^UTM-[^-]+-2[0-9][0-9][0-9][01][0-9][123][0-9]-[0-9]{4}-rfData\..*$' 324 | example: 'UTM-UASORG-20180231-1459-rfData.bin' 325 | 326 | basicInformation: 327 | type: object 328 | required: ['uvin','gufi','submitTime','ussName','ussInstanceID'] 329 | properties: 330 | uvin: 331 | $ref: '#/definitions/GUID' 332 | gufi: 333 | $ref: '#/definitions/GUID' 334 | submitTime: 335 | $ref: '#/definitions/timestamp' 336 | ussName: 337 | type: string 338 | ussInstanceID: 339 | $ref: '#/definitions/GUID' 340 | 341 | plannedContingency: 342 | type: object 343 | required: ['plannedContingencyLandingPoint_deg','plannedContingencyLandingPointAlt_ft','plannedContingencyLoiterAlt_ft','plannedContingencyLoiterRadius_ft'] 344 | properties: 345 | plannedContingencyLandingPoint_deg: 346 | $ref: '#/definitions/LatLonList' 347 | plannedContingencyLandingPointAlt_ft: 348 | $ref: '#/definitions/AltitudeList' 349 | plannedContingencyLoiterAlt_ft: 350 | $ref: '#/definitions/AltitudeList' 351 | plannedContingencyLoiterRadius_ft: 352 | $ref: '#/definitions/NumberList' 353 | 354 | # low level definitions 355 | 356 | timestamp: 357 | type: string 358 | pattern: '^2[0-9][0-9][0-9]-[01][0-9]-[0123][0-9]T[012][0-9]:[012345][0-9]:[012345][0-9]\.[0-9][0-9][0-9][0-9]*Z{0,1}$' 359 | example: '2018-03-05T19:56:23.445' 360 | 361 | string280: 362 | type: string 363 | maxLength: 280 364 | 365 | LatLon: 366 | description: Latitude and Longitude should be specified to at least 7 digits of precision 367 | type: object 368 | required: ['lat','lon'] 369 | properties: 370 | lat: 371 | type: number 372 | minimum: -90.0 373 | maximum: 90.0 374 | lon: 375 | type: number 376 | minimum: -180.0 377 | maximum: 180.0 378 | 379 | LatLonList: 380 | type: array 381 | minItems: 1 382 | items: 383 | $ref: '#/definitions/LatLon' 384 | 385 | AltitudeList: 386 | # positive and negative ints and floats (feet) 387 | type: array 388 | minItems: 1 389 | items: 390 | type: number 391 | 392 | ContingencyCauseNumberList: 393 | type: array 394 | minItems: 1 395 | items: 396 | type: integer 397 | minimum: 0 398 | maximum: 13 399 | 400 | NumberList: 401 | # postive ints and floats only 402 | type: array 403 | minItems: 1 404 | items: 405 | type: number 406 | minimum: 0 407 | 408 | prnList: 409 | # gps satellite numbers, 1-32 410 | type: array 411 | minItems: 1 412 | items: 413 | type: integer 414 | minimum: 0 415 | maximum: 32 416 | 417 | GUID: 418 | type: string 419 | format: uuid 420 | pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$' 421 | example: 'd7126818-d280-475f-aaee-c16e9c6f04e0' 422 | maxLength: 36 423 | minLength: 36 424 | 425 | # Added by API Auto Mocking Plugin 426 | host: virtserver.swaggerhub.com 427 | basePath: /NASA8/CNS/V3.0 428 | schemes: 429 | - https -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/utm-tcl3-con.yaml: -------------------------------------------------------------------------------- 1 | swagger: '2.0' 2 | info: 3 | version: "v2" 4 | title: CON JSON upload format description 5 | description: Enforced upload format for CON MOP 6 | contact: 7 | name: 'NASA Ames Research Center, Aviation Systems Division' 8 | url: 'https://utmregistry.arc.nasa.gov/' 9 | email: joseph.rios@nasa.gov 10 | license: 11 | name: NASA Open Source Agreement 12 | url: 'https://ti.arc.nasa.gov/opensource/nosa/' 13 | termsOfService: >- 14 | A. No Warranty: THE SUBJECT SOFTWARE IS PROVIDED \"AS IS\" WITHOUT ANY 15 | WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, 16 | BUT NOT LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO 17 | SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 18 | PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT THE 19 | SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF 20 | PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN 21 | ANY MANNER, CONSTITUTE AN ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR 22 | RECIPIENT OF ANY RESULTS, RESULTING DESIGNS, HARDWARE, SOFTWARE PRODUCTS OR 23 | ANY OTHER APPLICATIONS RESULTING FROM USE OF THE SUBJECT SOFTWARE. FURTHER, 24 | GOVERNMENT AGENCY DISCLAIMS ALL WARRANTIES AND LIABILITIES REGARDING 25 | THIRD-PARTY SOFTWARE, IF PRESENT IN THE ORIGINAL SOFTWARE, AND DISTRIBUTES 26 | IT \"AS IS.\" 27 | 28 | 29 | B. Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS 30 | AGAINST THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS 31 | WELL AS ANY PRIOR RECIPIENT. IF RECIPIENT''S USE OF THE SUBJECT SOFTWARE 32 | RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES, EXPENSES OR LOSSES ARISING 33 | FROM SUCH USE, INCLUDING ANY DAMAGES FROM PRODUCTS BASED ON, OR RESULTING 34 | FROM, RECIPIENT''S USE OF THE SUBJECT SOFTWARE, RECIPIENT SHALL INDEMNIFY 35 | AND HOLD HARMLESS THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND 36 | SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY 37 | LAW. RECIPIENT''S SOLE REMEDY FOR ANY SUCH MATTER SHALL BE THE IMMEDIATE, 38 | UNILATERAL TERMINATION OF THIS AGREEMENT. 39 | paths: {} 40 | definitions: 41 | 42 | # Refer 2018-03-01_MasterVariableList-DMP.Rev.F-Draft-CON for all the necessary inputs required for data collection of CON MOPS 43 | # It is mandatory to collect FLIGHT_DATA for CON1, CON2, CON4, CON5 available at https://app.swaggerhub.com/apis/utm/tcl3-flight-data/v2 in addition you have to collect the following data for respective MOPS 44 | 45 | #CON.1-BVLOS Landing 46 | 47 | CON1_MOP: 48 | type: object 49 | required: ['basic','fType','UTM-TCL3-DMP-RevF-CONPDF','plannedBvlosLandingPoint_deg','plannedBvlosLandingPointAlt_ft','actualBvlosLandingPoint','landingOffset_ft','alongTrackDistanceFlown_ft','distanceFromLaunchSite_ft','bvlosLandingZoneSize_ft','bvlosLandingZoneStructure_deg','bvlosLandingZonePeople_deg','wxBvlosLandingZone','c2','c2PacketLoss'] 50 | properties: 51 | basic: 52 | $ref: '#/definitions/basicInformation' 53 | fType: 54 | type: string 55 | enum: 56 | - CON1 57 | UTM-TCL3-DMP-RevF-CONPDF: 58 | $ref: '#/definitions/CONPDFFileName' 59 | plannedBvlosLandingPoint_deg: 60 | $ref: '#/definitions/LatLonList' 61 | plannedBvlosLandingPointAlt_ft: 62 | $ref: '#/definitions/AltitudeList' 63 | actualBvlosLandingPoint: 64 | type: array 65 | items: 66 | type: object 67 | required: ['ts','actualBvlosLandingPoint_deg','actualBVLOSLandingPointAlt_ft'] 68 | properties: 69 | ts: 70 | $ref: '#/definitions/timestamp' 71 | actualBvlosLandingPoint_deg: 72 | $ref: '#/definitions/LatLonList' 73 | actualBVLOSLandingPointAlt_ft: 74 | $ref: '#/definitions/AltitudeList' 75 | landingOffset_ft: 76 | $ref: '#/definitions/NumberList' 77 | alongTrackDistanceFlown_ft: 78 | type: number 79 | distanceFromLaunchSite_ft: 80 | type: number 81 | bvlosLandingZoneSize_ft: 82 | $ref: '#/definitions/NumberList' 83 | bvlosLandingZoneStructure_deg: 84 | $ref: '#/definitions/LatLonList' 85 | bvlosLandingZonePeople_deg: 86 | $ref: '#/definitions/LatLonList' 87 | wxBvlosLandingZone: 88 | type: array 89 | items: 90 | type: object 91 | required: ['ts','wxBvlosLandingZone1Data','wxBvlosLandingZone2Data','wxBvlosLandingZone3Data'] 92 | properties: 93 | ts: 94 | $ref: '#/definitions/timestamp' 95 | wxBvlosLandingZone1Data: 96 | $ref: '#/definitions/wxBvlosLandingZoneData' 97 | wxBvlosLandingZone2Data: 98 | $ref: '#/definitions/wxBvlosLandingZoneData' 99 | wxBvlosLandingZone3Data: 100 | $ref: '#/definitions/wxBvlosLandingZoneData' 101 | c2: 102 | type: array 103 | items: 104 | type: object 105 | required: ['ts','c2RssiAircraft_dBm','c2RssiGcs_dBm','c2NoiseAircraft_dBm','c2NoiseGcs_dBm'] 106 | properties: 107 | ts: 108 | $ref: '#/definitions/timestamp' 109 | c2RssiAircraft_dBm: 110 | type: number 111 | c2RssiGcs_dBm: 112 | type: number 113 | c2NoiseAircraft_dBm: 114 | type: number 115 | c2NoiseGcs_dBm: 116 | type: number 117 | 118 | c2PacketLoss: 119 | type: array 120 | items: 121 | type: object 122 | required: ['ts','c2PacketLossRateAircraftPrct_nonDim','c2PacketLossRateGcsPrct_nonDim'] 123 | properties: 124 | ts: 125 | $ref: '#/definitions/timestamp' 126 | c2PacketLossRateAircraftPrct_nonDim: 127 | type: number 128 | c2PacketLossRateGcsPrct_nonDim: 129 | type: number 130 | 131 | #CON.2-Contingency Initiation 132 | 133 | CON2_MOP: 134 | type: object 135 | required: ['basic','fType','UTM-TCL3-DMP-RevF-CONPDF','UTM-TCL3-DMP-RevF-CONKML','declaredEmerg','emergencyInitiationTime','emergencyCompletionTime','contingencyCause','contingencyResponse','plannedContingency','contingencyLanding','contingencyLoiterType','contingencyLoiterAlt','contingencyLoiterRadius'] 136 | properties: 137 | basic: 138 | $ref: '#/definitions/basicInformation' 139 | fType: 140 | type: string 141 | enum: 142 | - CON2 143 | UTM-TCL3-DMP-RevF-CONPDF: 144 | $ref: '#/definitions/CONPDFFileName' 145 | UTM-TCL3-DMP-RevF-CONKML: 146 | $ref: '#/definitions/CONKMLFileName' 147 | declaredEmerg: 148 | type: array 149 | items: 150 | type: object 151 | required: ['ts','declaredEmergency'] 152 | properties: 153 | ts: 154 | $ref: '#/definitions/timestamp' 155 | declaredEmergency: 156 | $ref: '#/definitions/string280' 157 | emergencyInitiationTime: 158 | type: array 159 | items: 160 | $ref: '#/definitions/timestamp' 161 | emergencyCompletionTime: 162 | type: array 163 | items: 164 | $ref: '#/definitions/timestamp' 165 | 166 | contingencyCause: 167 | type: array 168 | items: 169 | type: object 170 | required: ['ts','contingencyCause_nonDim'] 171 | properties: 172 | ts: 173 | $ref: '#/definitions/timestamp' 174 | contingencyCause_nonDim: 175 | $ref: '#/definitions/ContingencyCauseNumberList' 176 | contingencyResponse: 177 | $ref: '#/definitions/contingencyResponse' 178 | plannedContingency: 179 | $ref: '#/definitions/plannedContingency' 180 | contingencyLanding: 181 | $ref: '#/definitions/contingencyLanding' 182 | contingencyLoiterType: 183 | $ref: '#/definitions/contingencyLoiterType' 184 | contingencyLoiterAlt: 185 | $ref: '#/definitions/contingencyLoiterAlt' 186 | contingencyLoiterRadius: 187 | $ref: '#/definitions/contingencyLoiterRadius' 188 | 189 | #CON.3-Public Portal 190 | #CON3_MOP The final deliverable for the Public Portal test will be a report delivered to the NASA CON3 test POC - Jeffrey Homola [jeffrey.r.homola@nasa.gov] 191 | 192 | #CON.4-Multiple TCL-2/3 operations for a sustained period 193 | 194 | CON4_MOP: 195 | type: object 196 | required: ['basic','fType','UTM-TCL3-DMP-RevF-CONPDF','UTM-TCL3-DMP-RevF-CONKML'] 197 | properties: 198 | basic: 199 | $ref: '#/definitions/basicInformation' 200 | fType: 201 | type: string 202 | enum: 203 | - CON4 204 | UTM-TCL3-DMP-RevF-CONPDF: 205 | $ref: '#/definitions/CONPDFFileName' 206 | UTM-TCL3-DMP-RevF-CONKML: 207 | $ref: '#/definitions/CONKMLFileName' 208 | 209 | #CON.5-FIMS/USS interaction when vehicle heads towards controlled or unauthorized airspace 210 | 211 | CON5_MOP: 212 | type: object 213 | required: ['basic','fType','distFromBoundary','unauthorizedAirspaceStatus'] 214 | properties: 215 | basic: 216 | $ref: '#/definitions/basicInformation' 217 | fType: 218 | type: string 219 | enum: 220 | - CON5 221 | distFromBoundary: 222 | type: array 223 | items: 224 | type: object 225 | required: ['ts','distFromBoundary_ft'] 226 | properties: 227 | ts: 228 | $ref: '#/definitions/timestamp' 229 | distFromBoundary_ft: 230 | type: number 231 | unauthorizedAirspaceStatus: 232 | type: array 233 | items: 234 | type: object 235 | required: ['ts','unauthorizedAirspaceStatus_nonDim'] 236 | properties: 237 | ts: 238 | $ref: '#/definitions/timestamp' 239 | unauthorizedAirspaceStatus_nonDim: 240 | type: integer 241 | enum: 242 | - 0 243 | - 1 244 | 245 | 246 | # definitions shared by the MOPs 247 | 248 | contingencyResponse: 249 | type: array 250 | items: 251 | type: object 252 | required: ['ts','contingencyResponse_nonDim'] 253 | properties: 254 | ts: 255 | $ref: '#/definitions/timestamp' 256 | contingencyResponse_nonDim: 257 | type: integer 258 | enum: 259 | - 0 260 | - 1 261 | - 2 262 | - 3 263 | 264 | contingencyLanding: 265 | type: array 266 | items: 267 | type: object 268 | required: ['ts','contingencyLandingPoint_deg','contingencyLandingPointAlt_ft'] 269 | properties: 270 | ts: 271 | $ref: '#/definitions/timestamp' 272 | contingencyLandingPoint_deg: 273 | $ref: '#/definitions/LatLonList' 274 | contingencyLandingPointAlt_ft: 275 | $ref: '#/definitions/AltitudeList' 276 | 277 | contingencyLoiterType: 278 | type: array 279 | items: 280 | type: object 281 | required: ['ts','contingencyLoiterType_nonDim'] 282 | properties: 283 | ts: 284 | $ref: '#/definitions/timestamp' 285 | contingencyLoiterType_nonDim: 286 | type: integer 287 | enum: 288 | - 0 289 | - 1 290 | - 2 291 | - 3 292 | 293 | contingencyLoiterAlt: 294 | type: array 295 | items: 296 | type: object 297 | required: ['ts','contingencyLoiterAlt_ft'] 298 | properties: 299 | ts: 300 | $ref: '#/definitions/timestamp' 301 | contingencyLoiterAlt_ft: 302 | $ref: '#/definitions/AltitudeList' 303 | 304 | contingencyLoiterRadius: 305 | type: array 306 | items: 307 | type: object 308 | required: ['ts','contingencyLoiterRadius_ft'] 309 | properties: 310 | ts: 311 | $ref: '#/definitions/timestamp' 312 | contingencyLoiterRadius_ft: 313 | $ref: '#/definitions/NumberList' 314 | 315 | CONPDFFileName: 316 | type: string 317 | pattern: '^UTM-[^-]+-CON-[0-9]+.pdf$' 318 | example: 'UTM-UASORG-CON-3.pdf' 319 | 320 | CONKMLFileName: 321 | type: string 322 | pattern: '^UTM-[^-]+-CON-[0-9]+.kml$' 323 | example: 'UTM-UASORG-CON-3.kml' 324 | 325 | basicInformation: 326 | type: object 327 | required: ['uvin','gufi','submitTime','ussName','ussInstanceID'] 328 | properties: 329 | uvin: 330 | $ref: '#/definitions/GUID' 331 | gufi: 332 | $ref: '#/definitions/GUID' 333 | submitTime: 334 | $ref: '#/definitions/timestamp' 335 | ussName: 336 | type: string 337 | ussInstanceID: 338 | $ref: '#/definitions/GUID' 339 | 340 | wxBvlosLandingZoneData: 341 | type: object 342 | required: ['temp','pressure','windSpeed','windDir'] 343 | description: 4 numbers for temperature, air pressure (inHg), windspeed (ft/sec), wind direction 344 | properties: 345 | temp: 346 | type: number 347 | pressure: 348 | type: number 349 | minimum: 5 350 | maximum: 40 351 | windspeed: 352 | type: number 353 | minimum: 0 354 | maximum: 1000 355 | windDir: 356 | type: number 357 | minimum: 0 358 | maximum: 360 359 | 360 | plannedContingency: 361 | type: object 362 | required: ['plannedContingencyLandingPoint_deg','plannedContingencyLandingPointAlt_ft','plannedContingencyLoiterAlt_ft','plannedContingencyLoiterRadius_ft'] 363 | properties: 364 | plannedContingencyLandingPoint_deg: 365 | $ref: '#/definitions/LatLonList' 366 | plannedContingencyLandingPointAlt_ft: 367 | $ref: '#/definitions/AltitudeList' 368 | plannedContingencyLoiterAlt_ft: 369 | $ref: '#/definitions/AltitudeList' 370 | plannedContingencyLoiterRadius_ft: 371 | $ref: '#/definitions/NumberList' 372 | 373 | # low level definitions 374 | 375 | timestamp: 376 | type: string 377 | pattern: '^2[0-9][0-9][0-9]-[01][0-9]-[0123][0-9]T[012][0-9]:[012345][0-9]:[012345][0-9]\.[0-9][0-9][0-9][0-9]*Z{0,1}$' 378 | example: '2018-03-05T19:56:23.445' 379 | 380 | string280: 381 | type: string 382 | maxLength: 280 383 | 384 | LatLon: 385 | description: Latitude and Longitude should have precision of 7 or more digits 386 | type: object 387 | required: ['lat','lon'] 388 | properties: 389 | lat: 390 | type: number 391 | minimum: -90.0 392 | maximum: 90.0 393 | lon: 394 | type: number 395 | minimum: -180.0 396 | maximum: 180.0 397 | 398 | LatLonList: 399 | type: array 400 | minItems: 1 401 | items: 402 | $ref: '#/definitions/LatLon' 403 | 404 | AltitudeList: 405 | # positive and negative ints and floats (feet) 406 | type: array 407 | minItems: 1 408 | items: 409 | type: number 410 | example: [300,250,350,300.2,.345,-123.,0.0] 411 | 412 | ContingencyCauseNumberList: 413 | type: array 414 | minItems: 1 415 | items: 416 | type: integer 417 | minimum: 0 418 | maximum: 13 419 | 420 | NumberList: 421 | # postive ints and floats 422 | type: array 423 | minItems: 1 424 | items: 425 | type: number 426 | minimum: 0 427 | 428 | GUID: 429 | type: string 430 | format: uuid 431 | pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$' 432 | example: 'd7126818-d280-475f-aaee-c16e9c6f04e0' 433 | maxLength: 36 434 | minLength: 36 435 | 436 | # Added by API Auto Mocking Plugin 437 | host: virtserver.swaggerhub.com 438 | basePath: /NASA8/CON/V3.0 439 | schemes: 440 | - https 441 | -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/utm-tcl3-dat-4-99.yaml: -------------------------------------------------------------------------------- 1 | swagger: '2.0' 2 | info: 3 | version: "v1" 4 | title: DAT JSON upload format description 5 | description: Enforced upload format for DAT data 6 | contact: 7 | name: 'NASA Ames Research Center, Aviation Systems Division' 8 | url: 'https://utmregistry.arc.nasa.gov/' 9 | email: joseph.rios@nasa.gov 10 | license: 11 | name: NASA Open Source Agreement 12 | url: 'https://ti.arc.nasa.gov/opensource/nosa/' 13 | termsOfService: >- 14 | A. No Warranty: THE SUBJECT SOFTWARE IS PROVIDED \"AS IS\" WITHOUT ANY 15 | WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, 16 | BUT NOT LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO 17 | SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 18 | PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT THE 19 | SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF 20 | PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN 21 | ANY MANNER, CONSTITUTE AN ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR 22 | RECIPIENT OF ANY RESULTS, RESULTING DESIGNS, HARDWARE, SOFTWARE PRODUCTS OR 23 | ANY OTHER APPLICATIONS RESULTING FROM USE OF THE SUBJECT SOFTWARE. FURTHER, 24 | GOVERNMENT AGENCY DISCLAIMS ALL WARRANTIES AND LIABILITIES REGARDING 25 | THIRD-PARTY SOFTWARE, IF PRESENT IN THE ORIGINAL SOFTWARE, AND DISTRIBUTES 26 | IT \"AS IS.\" 27 | 28 | 29 | B. Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS 30 | AGAINST THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS 31 | WELL AS ANY PRIOR RECIPIENT. IF RECIPIENT''S USE OF THE SUBJECT SOFTWARE 32 | RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES, EXPENSES OR LOSSES ARISING 33 | FROM SUCH USE, INCLUDING ANY DAMAGES FROM PRODUCTS BASED ON, OR RESULTING 34 | FROM, RECIPIENT''S USE OF THE SUBJECT SOFTWARE, RECIPIENT SHALL INDEMNIFY 35 | AND HOLD HARMLESS THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND 36 | SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY 37 | LAW. RECIPIENT''S SOLE REMEDY FOR ANY SUCH MATTER SHALL BE THE IMMEDIATE, 38 | UNILATERAL TERMINATION OF THIS AGREEMENT. 39 | paths: {} 40 | definitions: 41 | DAT4: 42 | description: >- 43 | DAT4 MOP collects metrics and data related to the UAS ID concept demo. This includes the technology used to identify the vehicle and HTTP request/response data resulting from the communication with the corresponding public safety USS. Further details are discused below. 44 | type: object 45 | required: ['basicUSS','fType','uas_id'] 46 | properties: 47 | basic: 48 | $ref: '#/definitions/basicUSSInformation' 49 | fType: 50 | type: string 51 | pattern: 'DAT4' 52 | uas_id: 53 | $ref: '#/definitions/uas_id' 54 | DAT99: 55 | description: >- 56 | DAT 99 MOP records the various timestamps associated with the registration of a USS instance with the USS Discovery Service. In order to register a USS instance, a sequence of HTTP requests (PUT) and HTTP responses occur. For a given instance, we record the timestamps of these events. A USS instance can have one and only one data object (instance_reg_latency) described below. 57 | type: object 58 | required: ['basic','fType','instance_reg_latency'] 59 | properties: 60 | basic: 61 | $ref: '#/definitions/basicUSSInformation' 62 | fType: 63 | type: string 64 | pattern: 'DAT99' 65 | instance_reg_latency: 66 | $ref: '#/definitions/instance_reg_latency' 67 | 68 | 69 | basicUSSInformation: 70 | type: object 71 | required: ['ussName','ussInstanceID'] 72 | properties: 73 | ussName: 74 | type: string 75 | ussInstanceID: 76 | $ref: '#/definitions/GUID' 77 | GUID: 78 | type: string 79 | format: uuid 80 | pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$' 81 | example: 'd7126818-d280-475f-aaee-c16e9c6f04e0' 82 | maxLength: 36 83 | minLength: 36 84 | 85 | timestamp: 86 | type: string 87 | pattern: '^2[0-9][0-9][0-9]-[01][0-9]-[0123][0-9]T[012][0-9]:[012345][0-9]:[012345][0-9]\.[0-9][0-9][0-9][0-9]*Z{0,1}$' 88 | example: '2018-03-05T19:56:23.445' 89 | 90 | instance_reg_latency: 91 | type: object 92 | properties: 93 | timeInitialSubmission: 94 | description: >- 95 | Time of initial submission to USS Discovery Service. 96 | This is the inital PUT emanating from the USS instance to be 97 | registered to the USS Discovery Service URL. Uses the 98 | ISO 8601 format conforming to pattern: YYYY-MM-DDThh:mm:ss.sssZ. 99 | Seconds may have up to millisecond accuracy (three positions after 100 | decimal). The 'Z' implies UTC times and is the only timezone 101 | accepted. 102 | type: string 103 | pattern: '^2[0-9][0-9][0-9]-[01][0-9]-[0123][0-9]T[012][0-9]:[012345][0-9]:[012345][0-9]\.[0-9][0-9][0-9][0-9]*Z{0,1}$' 104 | example: '2018-03-05T19:56:23.445' 105 | timeFirstMsgRecieved: 106 | description: >- 107 | Time of first PUT message received from USS Discovery Service. USS Discover sends a PUT message to the callback URL in the JSON registration payload. Uses the 108 | ISO 8601 format conforming to pattern: YYYY-MM-DDThh:mm:ss.sssZ. 109 | Seconds may have up to millisecond accuracy (three positions after 110 | decimal). The 'Z' implies UTC times and is the only timezone 111 | accepted. Enter NULL if no messaged recieved. 112 | type: string 113 | pattern: '^2[0-9][0-9][0-9]-[01][0-9]-[0123][0-9]T[012][0-9]:[012345][0-9]:[012345][0-9]\.[0-9][0-9][0-9][0-9]*Z{0,1}$' 114 | example: '2018-03-05T19:56:23.445' 115 | timeLastMsgReceived: 116 | description: >- 117 | Time of final PUT received from USS Discovery Service. Uses the 118 | ISO 8601 format conforming to pattern: YYYY-MM-DDThh:mm:ss.sssZ. 119 | Seconds may have up to millisecond accuracy (three positions after 120 | decimal). The 'Z' implies UTC times and is the only timezone 121 | accepted. Enter NULL if no messaged recieved. 122 | type: string 123 | pattern: '^2[0-9][0-9][0-9]-[01][0-9]-[0123][0-9]T[012][0-9]:[012345][0-9]:[012345][0-9]\.[0-9][0-9][0-9][0-9]*Z{0,1}$' 124 | example: '2018-03-05T19:56:23.445' 125 | uas_id: 126 | type: array 127 | items: 128 | type: object 129 | properties: 130 | uvin: 131 | description: >- 132 | The uvin corresponding to the vehicle that is to be detected. 133 | type: string 134 | format: uuid 135 | maxLength: 36 136 | minLength: 36 137 | example: "00000000-0000-0000-0000-000000000000" 138 | gufi: 139 | description: >- 140 | The gufi corresponding to the flight of the vehicle that is to be detected. 141 | type: string 142 | format: uuid 143 | maxLength: 36 144 | minLength: 36 145 | example: "00000000-0000-0000-0000-000000000000" 146 | tech: 147 | description: >- 148 | The technology used to identify the vehicle and its position. 149 | type: string 150 | notes: 151 | type: string 152 | description: Any additional notes corresponding to particular UAS ID test flight (gufi) can be noted here. 153 | lookup: 154 | description: >- 155 | For a given (uvin,gufi) pair, the uss instance can perform one or more lookups 156 | type: array 157 | items: 158 | type: object 159 | properties: 160 | startTimeLookup: 161 | description: >- 162 | Time the lookup is initiated (via call to public safety USS URL). Uses the 163 | ISO 8601 format conforming to pattern: YYYY-MM-DDThh:mm:ss.sssZ. 164 | Seconds may have up to millisecond accuracy (three positions after 165 | decimal). The 'Z' implies UTC times and is the only timezone 166 | accepted. 167 | type: string 168 | pattern: '^2[0-9][0-9][0-9]-[01][0-9]-[0123][0-9]T[012][0-9]:[012345][0-9]:[012345][0-9]\.[0-9][0-9][0-9][0-9]*Z{0,1}$' 169 | example: '2018-03-05T19:56:23.445' 170 | endTimeLookup: 171 | description: >- 172 | Time the lookup is completed. If it does not complete, use NULL. Uses the 173 | ISO 8601 format conforming to pattern: YYYY-MM-DDThh:mm:ss.sssZ. 174 | Seconds may have up to millisecond accuracy (three positions after 175 | decimal). The 'Z' implies UTC times and is the only timezone 176 | accepted. 177 | type: string 178 | pattern: '^2[0-9][0-9][0-9]-[01][0-9]-[0123][0-9]T[012][0-9]:[012345][0-9]:[012345][0-9]\.[0-9][0-9][0-9][0-9]*Z{0,1}$' 179 | example: '2018-03-05T19:56:23.445' 180 | successfulLookupUasId: 181 | description: >- 182 | If the lookup process resulted in the expected response. 183 | type: boolean 184 | timeOfDetection: 185 | description: >- 186 | Time the vehicle was detected by the device. Uses the 187 | ISO 8601 format conforming to pattern: YYYY-MM-DDThh:mm:ss.sssZ. 188 | Seconds may have up to millisecond accuracy (three positions after 189 | decimal). The 'Z' implies UTC times and is the only timezone 190 | accepted. 191 | type: string 192 | pattern: '^2[0-9][0-9][0-9]-[01][0-9]-[0123][0-9]T[012][0-9]:[012345][0-9]:[012345][0-9]\.[0-9][0-9][0-9][0-9]*Z{0,1}$' 193 | example: '2018-03-05T19:56:23.445' 194 | vidPosLat: 195 | description: >- 196 | WGS84 latitude of the vehicle identification device at the time of detection 197 | type: number 198 | vidPosLon: 199 | description: >- 200 | WGS84 longitude of the vehicle identification device at the time of detection 201 | type: number 202 | vidPosAlt: 203 | description: >- 204 | WGS84 altitude of the vehicle identification device at the time of detection 205 | type: number 206 | publicSafetyRequestUrl: 207 | description: Complete GET request of public safety USS URL including any query parameters 208 | type: string 209 | publicSafetyResponse: 210 | description: Complete HTTP response from public safety USS 211 | type: string 212 | # Added by API Auto Mocking Plugin 213 | host: virtserver.swaggerhub.com 214 | basePath: /akishiha/DAT_USS/v1 215 | schemes: 216 | - https 217 | -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/utm-tcl3-dat-test-schema-v1.yaml: -------------------------------------------------------------------------------- 1 | info: 2 | description: >- 3 | This document collects the UTM TCL3 DAT Test data collection schemas as a swagger domain. These schemas specifically cover the DAT 2, DAT 3, and DAT 5 tests. A separate instance of the appropriate model should be provided by each participating USS for each run of a test. So, if DAT2 is run 4 times with the same two USSs, both USSs would submit 4 instances of model DAT2-DAT3. NASA will accept additional data fields in these models. Not all fields are required for each USS in each test. For questions, please contact joseph.rios@nasa.gov. The DAT 1 and DAT 4 tests are already described in the Data Management Plan. DAT 6 is covered via human factors data collection. 4 | version: v1 5 | title: UTM TCL3 DAT2,3,5 Test Data Collection Schemas 6 | contact: 7 | name: Joseph Rios 8 | email: joseph.rios@nasa.gov 9 | termsOfService: "Not for publid release. For NASA and UTM partner use only." 10 | definitions: 11 | DAT2-DAT3: 12 | properties: 13 | test_card: 14 | description: "The name or number of the test card. Should be able to cross-reference this with operations that were submitted during the run of this test card." 15 | minLength: 1 16 | type: string 17 | time_test_card_begin: 18 | description: >- 19 | Time the test card began executing. 20 | type: string 21 | format: date-time 22 | minLength: 20 23 | maxLength: 25 24 | example: '2015-08-20T14:11:56.118Z' 25 | time_test_card_begin_how_measured: 26 | description: >- 27 | The method for obtaining this timestamp. Suggested values include 'manually recorded', 'auto logged from USS', etc. Aim for consistency in values for this field in your data reporting. 28 | type: string 29 | time_component_failure_initiated: 30 | description: >- 31 | Time the failure was initiated. May not be known precisely by the reporting entity. 32 | type: string 33 | format: date-time 34 | minLength: 20 35 | maxLength: 25 36 | example: '2015-08-20T14:11:56.118Z' 37 | time_component_failure_initiated_how_measured: 38 | description: >- 39 | The method for obtaining this timestamp. Suggested values include 'manually recorded', 'auto logged from USS', etc. Aim for consistency in values for this field in your data reporting. 40 | type: string 41 | time_component_failure_recognized: 42 | description: >- 43 | Time the failure was recognize by entity submitting these data. 44 | type: string 45 | format: date-time 46 | minLength: 20 47 | maxLength: 25 48 | example: '2015-08-20T14:11:56.118Z' 49 | time_component_failure_reconized_how_measured: 50 | description: >- 51 | The method for obtaining this timestamp. Suggested values include 'manually recorded', 'auto logged from USS', etc. Aim for consistency in values for this field in your data reporting. 52 | type: string 53 | time_first_actions_initiated_based_on_failure: 54 | description: >- 55 | Time the entity submitting these data performed some action based on the failure. 56 | type: string 57 | format: date-time 58 | minLength: 20 59 | maxLength: 25 60 | example: '2015-08-20T14:11:56.118Z' 61 | time_first_actions_initiated_based_on_failure_how_measured: 62 | description: >- 63 | The method for obtaining this timestamp. Suggested values include 'manually recorded', 'auto logged from USS', etc. Aim for consistency in values for this field in your data reporting. 64 | type: string 65 | time_failed_component_recovered: 66 | description: >- 67 | Time the component recovered. May not be known precisely by the reporting entity. 68 | type: string 69 | format: date-time 70 | minLength: 20 71 | maxLength: 25 72 | example: '2015-08-20T14:11:56.118Z' 73 | time_failed_component_recovered_how_measured: 74 | description: >- 75 | The method for obtaining this timestamp. Suggested values include 'manually recorded', 'auto logged from USS', etc. Aim for consistency in values for this field in your data reporting. 76 | type: string 77 | time_recognizing_component_recognized_recovery: 78 | description: >- 79 | Time that the recovery was recognized. 80 | type: string 81 | format: date-time 82 | minLength: 20 83 | maxLength: 25 84 | example: '2015-08-20T14:11:56.118Z' 85 | time_recognizing_component_recognized_recovery_how_measured: 86 | description: >- 87 | The method for obtaining this timestamp. Suggested values include 'manually recorded', 'auto logged from USS', etc. Aim for consistency in values for this field in your data reporting. 88 | type: string 89 | operations_under_management_in_test: 90 | type: array 91 | items: 92 | type: string 93 | format: uuid 94 | minItems: 0 95 | maxItems: 300 96 | operations_airborne_at_failure: 97 | type: array 98 | items: 99 | type: string 100 | format: uuid 101 | minItems: 0 102 | maxItems: 300 103 | operations_onground_at_failure: 104 | type: array 105 | items: 106 | type: string 107 | format: uuid 108 | minItems: 0 109 | maxItems: 300 110 | modified_operations_due_to_failure: 111 | type: array 112 | items: 113 | type: string 114 | format: uuid 115 | minItems: 0 116 | maxItems: 300 117 | cancelled_operations_due_to_failure: 118 | type: array 119 | items: 120 | type: string 121 | format: uuid 122 | minItems: 0 123 | maxItems: 300 124 | notes: 125 | type: string 126 | 127 | DAT5: 128 | properties: 129 | test_card: 130 | description: >- 131 | The name or number of the test card. Should be able to cross-reference this with operations that were submitted during the run of this test card. 132 | minLength: 1 133 | type: string 134 | time_test_card_begin: 135 | description: >- 136 | Time the test card began executing. 137 | type: string 138 | format: date-time 139 | minLength: 20 140 | maxLength: 25 141 | example: '2015-08-20T14:11:56.118Z' 142 | time_test_card_begin_how_measured: 143 | description: >- 144 | The method for obtaining this timestamp. Suggested values include 'manually recorded', 'auto logged from USS', etc. Aim for consistency in values for this field in your data reporting. 145 | type: string 146 | operations_in_negotiation: 147 | description: >- 148 | An array of gufi's involved in negotiation. 149 | type: array 150 | items: 151 | type: string 152 | format: uuid 153 | minLength: 2 154 | time_conflict_first_recognized: 155 | description: >- 156 | The time the conflict being negotiated was first recognized by at least one party. 157 | type: string 158 | format: date-time 159 | minLength: 20 160 | maxLength: 25 161 | example: '2015-08-20T14:11:56.118Z' 162 | time_conflict_first_recognized_how_measured: 163 | description: >- 164 | The method for obtaining this timestamp. Suggested values include 'manually recorded', 'auto logged from USS', etc. Aim for consistency in values for this field in your data reporting. 165 | type: string 166 | time_first_negotiation_message_sent: 167 | description: >- 168 | The first negotiation was sent. 169 | type: string 170 | format: date-time 171 | minLength: 20 172 | maxLength: 25 173 | example: '2015-08-20T14:11:56.118Z' 174 | time_first_negotiation_message_sent_how_measured: 175 | description: >- 176 | The method for obtaining this timestamp. Suggested values include 'manually recorded', 'auto logged from USS', etc. Aim for consistency in values for this field in your data reporting. 177 | type: string 178 | time_last_negotiation_message_sent: 179 | type: string 180 | format: date-time 181 | minLength: 20 182 | maxLength: 25 183 | example: '2015-08-20T14:11:56.118Z' 184 | time_last_negotiation_message_sent_how_measured: 185 | description: >- 186 | The method for obtaining this timestamp. Suggested values include 'manually recorded', 'auto logged from USS', etc. Aim for consistency in values for this field in your data reporting. 187 | type: string 188 | number_of_negotiation_messages_sent: 189 | description: >- 190 | Total number of negotiation messages sent. 191 | type: number 192 | format: int32 193 | conflict_resolved: 194 | description: >- 195 | Was the conflict resolved? 196 | type: boolean 197 | notes: 198 | description: >- 199 | Any notes would be valuable. If there is an external reference for the negotiation approach, please provide pointer to that reference here. 200 | type: string -------------------------------------------------------------------------------- /TCL3/tcl3-data-apis/utm-tcl3-flight-data.yaml: -------------------------------------------------------------------------------- 1 | swagger: '2.0' 2 | info: 3 | version: "v3" 4 | title: Flight Data JSON upload format description 5 | description: Enforced upload format for FLIGHT_DATA 6 | contact: 7 | name: 'NASA Ames Research Center, Aviation Systems Division' 8 | url: 'https://utmregistry.arc.nasa.gov/' 9 | email: joseph.rios@nasa.gov 10 | license: 11 | name: NASA Open Source Agreement 12 | url: 'https://ti.arc.nasa.gov/opensource/nosa/' 13 | termsOfService: >- 14 | A. No Warranty: THE SUBJECT SOFTWARE IS PROVIDED \"AS IS\" WITHOUT ANY 15 | WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, 16 | BUT NOT LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO 17 | SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 18 | PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT THE 19 | SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF 20 | PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN 21 | ANY MANNER, CONSTITUTE AN ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR 22 | RECIPIENT OF ANY RESULTS, RESULTING DESIGNS, HARDWARE, SOFTWARE PRODUCTS OR 23 | ANY OTHER APPLICATIONS RESULTING FROM USE OF THE SUBJECT SOFTWARE. FURTHER, 24 | GOVERNMENT AGENCY DISCLAIMS ALL WARRANTIES AND LIABILITIES REGARDING 25 | THIRD-PARTY SOFTWARE, IF PRESENT IN THE ORIGINAL SOFTWARE, AND DISTRIBUTES 26 | IT \"AS IS.\" 27 | 28 | 29 | B. Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS 30 | AGAINST THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS 31 | WELL AS ANY PRIOR RECIPIENT. IF RECIPIENT''S USE OF THE SUBJECT SOFTWARE 32 | RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES, EXPENSES OR LOSSES ARISING 33 | FROM SUCH USE, INCLUDING ANY DAMAGES FROM PRODUCTS BASED ON, OR RESULTING 34 | FROM, RECIPIENT''S USE OF THE SUBJECT SOFTWARE, RECIPIENT SHALL INDEMNIFY 35 | AND HOLD HARMLESS THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND 36 | SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY 37 | LAW. RECIPIENT''S SOLE REMEDY FOR ANY SUCH MATTER SHALL BE THE IMMEDIATE, 38 | UNILATERAL TERMINATION OF THIS AGREEMENT. 39 | paths: {} 40 | definitions: 41 | 42 | 43 | FLIGHT_DATA: 44 | type: object 45 | required: ['basic','fType','auxiliaryUASOperation','aircraftFlightPlan','uasState'] 46 | properties: 47 | basic: 48 | $ref: '#/definitions/basicInformation' 49 | fType: 50 | type: string 51 | enum: 52 | - FLIGHT_DATA 53 | auxiliaryUASOperation: 54 | type: object 55 | required: ['typeOfOperation','flightTestCardName','testIdentifiers','takeoffWeight_lb','takeOffTime','takeoffPosLat_deg','takeoffPosLon_deg','takeoffPosAlt_ft','landingTime','landingPosLat_deg','landingPosLon_deg','landingPosAlt_ft','gcsPosLat_deg','gcsPosLon_deg','gcsPosAlt_ft'] 56 | properties: 57 | typeOfOperation: 58 | type: string 59 | enum: 60 | - Live 61 | - Simulated 62 | flightTestCardName: 63 | type: string 64 | testIdentifiers: 65 | $ref: '#/definitions/MOPTypes' 66 | takeoffWeight_lb: 67 | type: number 68 | takeOffTime: 69 | $ref: '#/definitions/timestamp' 70 | takeoffPosLat_deg: 71 | $ref: '#/definitions/LAT' 72 | takeoffPosLon_deg: 73 | $ref: '#/definitions/LON' 74 | takeoffPosAlt_ft: 75 | type: number 76 | landingTime: 77 | $ref: '#/definitions/timestamp' 78 | landingPosLat_deg: 79 | $ref: '#/definitions/LAT' 80 | landingPosLon_deg: 81 | $ref: '#/definitions/LON' 82 | landingPosAlt_ft: 83 | type: number 84 | gcsPosLat_deg: 85 | $ref: '#/definitions/LAT' 86 | gcsPosLon_deg: 87 | $ref: '#/definitions/LON' 88 | gcsPosAlt_ft: 89 | type: number 90 | aircraftFlightPlan: 91 | type: array 92 | items: 93 | type: object 94 | required: ['wpSequenceNum_nonDim','wpType_nonDim','wpLat_deg','wpLon_deg','wpAlt_ft','wpTargetGroundSpeed_ftPerSec','wpTargetAirSpeed_ftPerSec','hoverTime_sec','wpTime'] 95 | properties: 96 | wpSequenceNum_nonDim: 97 | type: integer 98 | wpType_nonDim: 99 | type: integer 100 | enum: 101 | - 0 102 | - 1 103 | wpLat_deg: 104 | $ref: '#/definitions/LAT' 105 | wpLon_deg: 106 | $ref: '#/definitions/LON' 107 | wpAlt_ft: 108 | type: number 109 | wpTargetGroundSpeed_ftPerSec: 110 | type: number 111 | wpTargetAirSpeed_ftPerSec: 112 | type: number 113 | hoverTime_sec: 114 | type: number 115 | wpTime: 116 | $ref: '#/definitions/timestamp' 117 | uasState: 118 | type: array 119 | items: 120 | type: object 121 | required: ['ts','sensor','value'] 122 | properties: 123 | ts: 124 | $ref: '#/definitions/timestamp' 125 | sensor: 126 | $ref: '#/definitions/sensorList' 127 | value: 128 | $ref: '#/definitions/intOrFloatList' 129 | example: 130 | - ts: 2018-03-12T16:02:00.000 131 | sensor: 'vehiclePositionLat_deg,vehiclePositionLon_deg,vehiclePositionAlt_ft' 132 | value: '37.246973,-115.799630,4500' 133 | - ts: 2018-03-12T16:03:00.000 134 | sensor: 'vehiclePositionLat_deg,vehiclePositionLon_deg,vehiclePositionAlt_ft' 135 | value: '37.233200,-115.792284,5000' 136 | - ts: 2018-03-12T16:04:00.000 137 | sensor: 'vehiclePositionLat_deg,vehiclePositionLon_deg,vehiclePositionAlt_ft' 138 | value: '37.219504,-115.785051,5500' 139 | 140 | 141 | 142 | 143 | # definitions shared by the MOPs 144 | 145 | intOrFloatList: 146 | type: array 147 | items: 148 | type: number 149 | 150 | sensorList: 151 | type: array 152 | items: 153 | $ref: '#/definitions/sensorItem' 154 | 155 | sensorItem: 156 | type: string 157 | enum: 158 | - aboveTerrainAltitude_ft 159 | - accBodyX_ftPerSec2 160 | - accBodyY_ftPerSec2 161 | - accBodyZ_ftPerSec2 162 | - acousticSensorAltitude_ft 163 | - aileronActuatorCommand_nonDim 164 | - aircraftAirborneState_nonDim 165 | - aircraftControlMode 166 | - altitudeUsedByAutopilot_ft 167 | - angleOfAttack_deg 168 | - barometricAltitude_ft 169 | - barometricPressure_psi 170 | - batteryCurrent_a 171 | - batteryVoltage_v 172 | - c2NoiseAircraft_dBm 173 | - c2NoiseGcs_dBm 174 | - c2PacketLossRateAircraftPrct_nonDim 175 | - c2PacketLossRateGcsPrct_nonDim 176 | - c2RssiAircraft_dBm 177 | - c2RssiGcs_dBm 178 | - elevatorActuatorCommand_nonDim 179 | - flapActuatorCommand_nonDim 180 | - groundCourse_deg 181 | - groundSpeed_ftPerSec 182 | - hdop_nonDim 183 | - imageSensorAltitude_ft 184 | - indicatedAirspeed_ftPerSec 185 | - landingGearActuatorCommand_nonDim 186 | - laserSensorAltitude_ft 187 | - lateralNavPositionError_ft 188 | - lateralNavVelocityError_ftPerSec 189 | - minDistToDefinedAreaLateralBoundary_ft 190 | - minDistToDefinedAreaVerticalBoundary_ft 191 | - motor10ControlThrottleCommand_nonDim 192 | - motor11ControlThrottleCommand_nonDim 193 | - motor12ControlThrottleCommand_nonDim 194 | - motor13ControlThrottleCommand_nonDim 195 | - motor14ControlThrottleCommand_nonDim 196 | - motor15ControlThrottleCommand_nonDim 197 | - motor16ControlThrottleCommand_nonDim 198 | - motor1ControlThrottleCommand_nonDim 199 | - motor2ControlThrottleCommand_nonDim 200 | - motor3ControlThrottleCommand_nonDim 201 | - motor4ControlThrottleCommand_nonDim 202 | - motor5ControlThrottleCommand_nonDim 203 | - motor6ControlThrottleCommand_nonDim 204 | - motor7ControlThrottleCommand_nonDim 205 | - motor8ControlThrottleCommand_nonDim 206 | - motor9ControlThrottleCommand_nonDim 207 | - numGpsSat_nonDim 208 | - numGpsSatellitesInView_nonDim 209 | - opticalSensorAltitude_ft 210 | - pitchRate_degPerSec 211 | - pitch_deg 212 | - radarSensorAltitude_ft 213 | - rollRate_degPerSec 214 | - roll_deg 215 | - rudderActuatorCommand_nonDim 216 | - sideSlip_deg 217 | - targetAirSpeed_ftPerSec 218 | - targetGroundSpeed_ftPerSec 219 | - targetWaypointAlt_ft 220 | - targetWaypointLat_deg 221 | - targetWaypointLon_deg 222 | - trueAirspeed_ftPerSec 223 | - vdop_nonDim 224 | - vehiclePositionAlt_ft 225 | - vehiclePositionLat_deg 226 | - vehiclePositionLon_deg 227 | - velDown_ftPerSec 228 | - velEast_ftPerSec 229 | - velNorth_ftPerSec 230 | - verticalNavPositionError_ft 231 | - verticalNavVelocityError_ftPerSec 232 | - yawRate_degPerSec 233 | - yaw_deg 234 | 235 | LAT: 236 | type: number 237 | minimum: -90 238 | maximum: 90 239 | 240 | LON: 241 | type: number 242 | minimum: -180 243 | maximum: 180 244 | 245 | basicInformation: 246 | type: object 247 | required: ['uvin','gufi','submitTime','ussName','ussInstanceID'] 248 | properties: 249 | uvin: 250 | $ref: '#/definitions/GUID' 251 | gufi: 252 | $ref: '#/definitions/GUID' 253 | submitTime: 254 | $ref: '#/definitions/timestamp' 255 | ussName: 256 | type: string 257 | ussInstanceID: 258 | $ref: '#/definitions/GUID' 259 | 260 | MOPType: 261 | type: string 262 | pattern: '^((CNS)\.{0,1}[123])|((SAA)\.{0,1}[1-6])|((DAT)\.{0,1}([1-6]|(4\.1)|(4\.2)|(4\.3)|(99\.1)))|((CON)\.{0,1}[1-5])|(OMEGA1)*$' 263 | example: 264 | cns1: 'CNS1' 265 | cns2: 'CNS.2' 266 | saa3: 'SAA3' 267 | dat1: 'DAT1' 268 | dat2: 'DAT.2' 269 | dat4: 'DAT.4' 270 | dat99: 'DAT99.1' 271 | con3: 'CON3' 272 | omega1: 'OMEGA1' 273 | 274 | MOPTypes: 275 | type: array 276 | minItems: 1 277 | items: 278 | $ref: '#/definitions/MOPType' 279 | 280 | # low level definitions 281 | 282 | timestamp: 283 | type: string 284 | pattern: '^2[0-9][0-9][0-9]-[01][0-9]-[0123][0-9]T[012][0-9]:[012345][0-9]:[012345][0-9]\.[0-9][0-9][0-9][0-9]*Z{0,1}$' 285 | example: '2018-03-05T19:56:23.445' 286 | 287 | GUID: 288 | type: string 289 | format: uuid 290 | pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$' 291 | example: 'd7126818-d280-475f-aaee-c16e9c6f04e0' 292 | maxLength: 36 293 | minLength: 36 294 | 295 | -------------------------------------------------------------------------------- /TCL4 Data Management/main.css: -------------------------------------------------------------------------------- 1 | html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}[hidden],template{display:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}button,input,optgroup,select,textarea{font:inherit;margin:0}optgroup{font-weight:700}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.org-bold{font-weight:700}.org-bold-italic{font-weight:700;font-style:italic}.org-buffer-menu-buffer{font-weight:700}.org-builtin{color:#483d8b}.org-button{color:#3a5fcd;text-decoration:underline}.org-calendar-month-header{color:#00f}.org-calendar-today{text-decoration:underline}.org-calendar-weekday-header{color:#008b8b}.org-calendar-weekend-header{color:#b22222}.org-comint-highlight-input{font-weight:700}.org-comint-highlight-prompt{color:#0000cd}.org-comment,.org-comment-delimiter{color:#b22222}.org-constant{color:#008b8b}.org-diary{color:red}.org-doc{color:#8b2252}.org-error{color:red;font-weight:700}.org-escape-glyph{color:brown}.org-file-name-shadow{color:#7f7f7f}.org-fringe{background-color:#f2f2f2}.org-function-name{color:#00f}.org-glyphless-char{font-size:60%}.org-header-line{color:#333;background-color:#e5e5e5}.org-help-argument-name{font-style:italic}.org-highlight{background-color:#b4eeb4}.org-holiday{background-color:pink}.org-info-header-node{color:brown;font-weight:700;font-style:italic}.org-info-header-xref{color:#3a5fcd;text-decoration:underline}.org-info-index-match{background-color:#ff0}.org-info-menu-header{font-weight:700}.org-info-menu-star{color:red}.org-info-node{color:brown;font-weight:700;font-style:italic}.org-info-title-1{font-size:172%;font-weight:700}.org-info-title-2{font-size:144%;font-weight:700}.org-info-title-3{font-size:120%;font-weight:700}.org-info-title-4{font-weight:700}.org-info-xref{color:#3a5fcd;text-decoration:underline}.org-italic{font-style:italic}.org-keyword{color:#a020f0}.org-lazy-highlight{background-color:#afeeee}.org-link{color:#3a5fcd;text-decoration:underline}.org-link-visited{color:#8b008b;text-decoration:underline}.org-makefile-makepp-perl{background-color:#bfefff}.org-makefile-space{background-color:#ff69b4}.org-makefile-targets{color:#00f}.org-match{background-color:#ff0}.org-next-error{background-color:gtk_selection_bg_color}.org-nobreak-space{color:brown;text-decoration:underline}.org-org-agenda-calendar-event,.org-org-agenda-calendar-sexp{color:#000;background-color:#fff}.org-org-agenda-clocking{background-color:#ff0}.org-org-agenda-column-dateline{background-color:#e5e5e5}.org-org-agenda-current-time{color:#b8860b}.org-org-agenda-date{color:#00f}.org-org-agenda-date-today{color:#00f;font-weight:700;font-style:italic}.org-org-agenda-date-weekend{color:#00f;font-weight:700}.org-org-agenda-diary{color:#000;background-color:#fff}.org-org-agenda-dimmed-todo{color:#7f7f7f}.org-org-agenda-done{color:#228b22}.org-org-agenda-filter-category,.org-org-agenda-filter-effort,.org-org-agenda-filter-regexp,.org-org-agenda-filter-tags{color:#000;background-color:#bfbfbf}.org-org-agenda-restriction-lock{background-color:#eee}.org-org-agenda-structure{color:#00f}.org-org-archived,.org-org-block{color:#7f7f7f}.org-org-block-begin-line,.org-org-block-end-line{color:#b22222}.org-org-checkbox{font-weight:700}.org-org-checkbox-statistics-done{color:#228b22;font-weight:700}.org-org-checkbox-statistics-todo{color:red;font-weight:700}.org-org-clock-overlay{color:#000;background-color:#d3d3d3}.org-org-code{color:#7f7f7f}.org-org-column,.org-org-column-title{background-color:#e5e5e5}.org-org-column-title{font-weight:700;text-decoration:underline}.org-org-date{color:#a020f0;text-decoration:underline}.org-org-date-selected{color:red}.org-org-default{color:#000;background-color:#fff}.org-org-document-info{color:#191970}.org-org-document-info-keyword{color:#7f7f7f}.org-org-document-title{color:#191970;font-weight:700}.org-org-done{color:#228b22;font-weight:700}.org-org-drawer{color:#00f}.org-org-ellipsis{color:#b8860b;text-decoration:underline}.org-org-footnote{color:#a020f0;text-decoration:underline}.org-org-formula{color:#b22222}.org-org-headline-done{color:#bc8f8f}.org-org-hide{color:#fff}.org-org-latex-and-related{color:#8b4513}.org-org-level-1{color:#00f}.org-org-level-2{color:sienna}.org-org-level-3{color:#a020f0}.org-org-level-4{color:#b22222}.org-org-level-5{color:#228b22}.org-org-level-6{color:#008b8b}.org-org-level-7{color:#483d8b}.org-org-level-8{color:#8b2252}.org-org-link{color:#3a5fcd;text-decoration:underline}.org-org-list-dt{font-weight:700}.org-org-macro{color:#8b4513}.org-org-meta-line{color:#b22222}.org-org-mode-line-clock{color:#000;background-color:#bfbfbf}.org-org-mode-line-clock-overrun{color:#000;background-color:red}.org-org-priority{color:#a020f0}.org-org-quote{color:#7f7f7f}.org-org-scheduled{color:#006400}.org-org-scheduled-previously{color:#b22222}.org-org-scheduled-today{color:#006400}.org-org-sexp-date,.org-org-special-keyword{color:#a020f0}.org-org-table{color:#00f}.org-org-tag,.org-org-tag-group{font-weight:700}.org-org-target{text-decoration:underline}.org-org-time-grid{color:#b8860b}.org-org-todo{color:red;font-weight:700}.org-org-upcoming-deadline{color:#b22222}.org-org-verbatim,.org-org-verse{color:#7f7f7f}.org-org-warning{color:red;font-weight:700}.org-outline-1{color:#00f}.org-outline-2{color:sienna}.org-outline-3{color:#a020f0}.org-outline-4{color:#b22222}.org-outline-5{color:#228b22}.org-outline-6{color:#008b8b}.org-outline-7{color:#483d8b}.org-outline-8{color:#8b2252}.org-preprocessor{color:#483d8b}.org-regexp-grouping-backslash,.org-regexp-grouping-construct{font-weight:700}.org-region{background-color:gtk_selection_bg_color}.org-secondary-selection{background-color:#ff0}.org-shadow{color:#7f7f7f}.org-show-paren-match{background-color:#40e0d0}.org-show-paren-mismatch{color:#fff;background-color:#a020f0}.org-string{color:#8b2252}.org-success{color:#228b22;font-weight:700}.org-table-cell{color:#e5e5e5;background-color:#00f}.org-tooltip{color:#000;background-color:#ffffe0}.org-trailing-whitespace{background-color:red}.org-type{color:#228b22}.org-underline{text-decoration:underline}.org-variable-name{color:sienna}.org-warning{color:#ff8c00;font-weight:700}.org-warning-1{color:red;font-weight:700}body{width:95%;margin:2% auto;font-size:14px;line-height:1.4em;font-family:Georgia,serif;color:#333}@media screen and (min-width:600px){body{font-size:18px}}@media screen and (min-width:910px){body{width:900px}}::-moz-selection{background:#d6edff}::selection{background:#d6edff}dl,ol,p,ul{margin:0 auto}.title{margin:.8em auto;color:#000}.subtitle,.title{text-align:center}.subtitle{font-size:1.1em;line-height:1.4;font-weight:700;margin:1em auto}.abstract{margin:auto;width:80%;font-style:italic}.abstract p:last-of-type:before{content:" ";white-space:pre}.status{font-size:90%;margin:2em auto}[class^=section-number-]{margin-right:.5em}[id^=orgheadline]{clear:both}#footnotes{font-size:90%}.footpara{display:inline;margin:.2em auto}.footdef{margin-bottom:1em}.footdef sup{padding-right:.5em}a{color:#527d9a;text-decoration:none}a:hover{color:#035;border-bottom:1px dotted}figure{padding:0;margin:1em auto;text-align:center}img{max-width:100%;vertical-align:middle}.MathJax_Display{margin:0!important;width:90%!important}h1,h2,h3,h4,h5,h6{color:#a5573e;line-height:1em;font-family:Helvetica,sans-serif}h1,h2,h3{line-height:1.4em}h4,h5,h6{font-size:1em}@media screen and (min-width:600px){h1{font-size:2em}h2{font-size:1.5em}h3{font-size:1.3em}h1,h2,h3{line-height:1.4em}h4,h5,h6{font-size:1.1em}}dt{font-weight:700}table{margin:1em auto;border-top:2px solid;border-collapse:collapse}table,thead{border-bottom:2px solid}table td+td,table th+th{border-left:1px solid gray}table tr{border-top:1px solid #d3d3d3}td,th{padding:.3em .6em;vertical-align:middle}caption.t-above{caption-side:top}caption.t-bottom{caption-side:bottom}caption{margin-bottom:.3em}figcaption{margin-top:.3em}th.org-center,th.org-left,th.org-right{text-align:center}td.org-right{text-align:right}td.org-left{text-align:left}td.org-center{text-align:center}blockquote{margin:1em 2em;padding-left:1em;border-left:3px solid #ccc}kbd{background-color:#f7f7f7;font-size:80%;margin:0 .1em;padding:.1em .6em}.todo{background-color:red}.done,.todo{color:#fff;padding:.1em .3em;border-radius:3px;background-clip:padding-box;font-size:80%;font-family:Lucida Console,monospace;line-height:1}.done{background-color:green}.priority{color:orange;font-family:Lucida Console,monospace}#table-of-contents li{clear:both}.tag{font-family:Lucida Console,monospace;font-size:.7em;font-weight:400}.tag span{padding:.3em;float:right;margin-right:.5em;border:1px solid #bbb;border-radius:3px;background-clip:padding-box;color:#333;background-color:#eee;line-height:1}.timestamp{color:#000;font-size:90%}.timestamp-kwd{color:#5f9ea0}.org-right{margin-left:auto;margin-right:0;text-align:right}.org-left{margin-left:0;margin-right:auto;text-align:left}.org-center{margin-left:auto;margin-right:auto;text-align:center}.underline{text-decoration:underline}#postamble p,#preamble p{font-size:90%;margin:.2em}p.verse{margin-left:3%}:not(pre)>code{padding:2px 5px;margin:auto 1px;border:1px solid #ddd;border-radius:3px;background-clip:padding-box;color:#333;font-size:80%}.org-src-container{border:1px solid #ccc;box-shadow:3px 3px 3px #eee;font-family:Lucida Console,monospace;font-size:80%;margin:1em auto;padding:.1em .5em;position:relative}.org-src-container>pre{overflow:auto}.org-src-container>pre:before{display:block;position:absolute;background-color:#b3b3b3;top:0;right:0;padding:0 .5em;border-bottom-left-radius:8px;border:0;color:#fff;font-size:80%}.org-src-container>pre.src-sh:before{content:"sh"}.org-src-container>pre.src-bash:before{content:"bash"}.org-src-container>pre.src-emacs-lisp:before{content:"Emacs Lisp"}.org-src-container>pre.src-R:before{content:"R"}.org-src-container>pre.src-cpp:before{content:"C++"}.org-src-container>pre.src-c:before{content:"C"}.org-src-container>pre.src-html:before{content:"HTML"}.org-src-container>pre.src-javascript:before,.org-src-container>pre.src-js:before{content:"Javascript"}// More languages 0% http://orgmode.org/worg/org-contrib/babel/languages.html .org-src-container>pre.src-abc:before{content:"ABC"}.org-src-container>pre.src-asymptote:before{content:"Asymptote"}.org-src-container>pre.src-awk:before{content:"Awk"}.org-src-container>pre.src-C:before{content:"C"}.org-src-container>pre.src-calc:before{content:"Calc"}.org-src-container>pre.src-clojure:before{content:"Clojure"}.org-src-container>pre.src-comint:before{content:"comint"}.org-src-container>pre.src-css:before{content:"CSS"}.org-src-container>pre.src-D:before{content:"D"}.org-src-container>pre.src-ditaa:before{content:"Ditaa"}.org-src-container>pre.src-dot:before{content:"Dot"}.org-src-container>pre.src-ebnf:before{content:"ebnf"}.org-src-container>pre.src-forth:before{content:"Forth"}.org-src-container>pre.src-F90:before{content:"Fortran"}.org-src-container>pre.src-gnuplot:before{content:"Gnuplot"}.org-src-container>pre.src-haskell:before{content:"Haskell"}.org-src-container>pre.src-io:before{content:"Io"}.org-src-container>pre.src-java:before{content:"Java"}.org-src-container>pre.src-latex:before{content:"LaTeX"}.org-src-container>pre.src-ledger:before{content:"Ledger"}.org-src-container>pre.src-ly:before{content:"Lilypond"}.org-src-container>pre.src-lisp:before{content:"Lisp"}.org-src-container>pre.src-makefile:before{content:"Make"}.org-src-container>pre.src-matlab:before{content:"Matlab"}.org-src-container>pre.src-max:before{content:"Maxima"}.org-src-container>pre.src-mscgen:before{content:"Mscgen"}.org-src-container>pre.src-Caml:before{content:"Objective"}.org-src-container>pre.src-octave:before{content:"Octave"}.org-src-container>pre.src-org:before{content:"Org"}.org-src-container>pre.src-perl:before{content:"Perl"}.org-src-container>pre.src-picolisp:before{content:"Picolisp"}.org-src-container>pre.src-plantuml:before{content:"PlantUML"}.org-src-container>pre.src-python:before{content:"Python"}.org-src-container>pre.src-ruby:before{content:"Ruby"}.org-src-container>pre.src-sass:before{content:"Sass"}.org-src-container>pre.src-scala:before{content:"Scala"}.org-src-container>pre.src-scheme:before{content:"Scheme"}.org-src-container>pre.src-screen:before{content:"Screen"}.org-src-container>pre.src-sed:before{content:"Sed"}.org-src-container>pre.src-shell:before{content:"shell"}.org-src-container>pre.src-shen:before{content:"Shen"}.org-src-container>pre.src-sql:before{content:"SQL"}.org-src-container>pre.src-sqlite:before{content:"SQLite"}.org-src-container>pre.src-stan:before{content:"Stan"}.org-src-container>pre.src-vala:before{content:"Vala"}.org-src-container>pre.src-axiom:before{content:"Axiom"}.org-src-container>pre.src-browser:before{content:"HTML"}.org-src-container>pre.src-cypher:before{content:"Neo4j"}.org-src-container>pre.src-elixir:before{content:"Elixir"}.org-src-container>pre.src-request:before{content:"http"}.org-src-container>pre.src-ipython:before{content:"iPython"}.org-src-container>pre.src-kotlin:before{content:"Kotlin"}.org-src-container>pre.src-Flavored Erlang lfe:before{content:"Lisp"}.org-src-container>pre.src-mongo:before{content:"MongoDB"}.org-src-container>pre.src-prolog:before{content:"Prolog"}.org-src-container>pre.src-rec:before{content:"rec"}.org-src-container>pre.src-ML sml:before{content:"Standard"}.org-src-container>pre.src-Translate translate:before{content:"Google"}.org-src-container>pre.src-typescript:before{content:"Typescript"}.org-src-container>pre.src-rust:before{content:"Rust"}.inlinetask{background:#ffc;border:2px solid gray;margin:10px;padding:10px}#org-div-home-and-up{font-size:70%;text-align:right;white-space:nowrap}.linenr{font-size:90%}.code-highlighted{background-color:#ff0}#bibliography{font-size:90%}#bibliography table{width:100%}.creator{display:block}@media screen and (min-width:600px){.creator{display:inline;float:right}} 2 | -------------------------------------------------------------------------------- /TCL4 Data Management/main.org: -------------------------------------------------------------------------------- 1 | #+HTML_HEAD: 2 | 3 | 4 | 5 | 6 | #+SETUPFILE: https://fniessen.github.io/org-html-themes/setup/theme-readtheorg.setup 7 | #+HTML_HEAD: 8 | #+OPTIONS: ^:nil 9 | 10 | 11 | #+TITLE: UTM TCL4 DMP API and Data Models 12 | #+AUTHOR: Abraham K. Ishihara 13 | #+DATE: 2019-03-15 14 | #+OPTIONS: creator:nil 15 | * Introduction 16 | This document describes the API specification and implementation *release schedule* for UTM TCL4 DMP data collection efforts. It will be updated frequently. The specification and associated data models are described using OpenAPI Specification (OAS) 2.0 (=https://github.com/OAI/OpenAPI-Specification=) and can be found in the GIT repository located at 17 | #+BEGIN_SRC 18 | https://github.com/nasa/utm-docs/tree/master/TCL4%20Data%20Management 19 | #+END_SRC 20 | * API and Data Model Specification Release Schedule 21 | The GIT repository for the DMP API and data models is actively used by at least three parties: 22 | - NUSS 23 | - DMP 24 | - External Partners 25 | Since automated builds may directly incorporate the API and data models from the GIT repository, the following describes how changes will be conveyed and how continuous build cycles can be maintained while code is being developed to address the change. 26 | 27 | The master branch will be tagged with a version identifier of the form vx.y.z. Twenty four hours prior to a change, we will announce over the =uss_implementers= channel on slack that a change is forthcoming. We will identify the new tag and the release branch that contains the intended changes. During this time, developers can inspect the release branch and assess the impact to their code/build cycles. If it is determined that the change will have an adverse impact, developers can point their code to the current (stable) GIT tag idenfitier. Our GIT branching model for both specification and code generally follows the one outlined here: https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow 28 | 29 | 30 | | Date Announced | Review-Branch | Date Implemented | Tag on Master | Desc | 31 | |------------------+----------------+------------------+---------------+-----------------------------------------------------------------------------------| 32 | | n/a | n/a | <2019-03-14 Thu> | v1.0.1 | | 33 | | <2019-03-21 Thu> | release-v1.0.2 | <2019-03-22 Fri> | v1.0.2 | | 34 | | <2019-03-30 Sat> | release-v1.0.3 | <2019-04-01 Mon> | v1.0.3 | | 35 | | <2019-04-03 Wed> | release-v1.0.4 | <2019-04-04 Thu> | v1.0.4 | | 36 | | <2019-04-09 Tue> | release-v1.0.5 | <2019-04-10 Wed> | v1.0.5 | | 37 | | <2019-04-16 Tue> | release-v1.0.6 | <2019-04-17 Wed> | v1.0.6 | | 38 | | <2019-05-01 Wed> | release-v1.0.7 | <2019-05-02 Thu> | v1.0.7 | | 39 | | <2019-06-05 Wed> | n/a | <2019-06-05 Wed> | v1.0.8 | Add flight plan api yaml; description changes | 40 | | <2019-06-05 Wed> | n/a | <2019-06-05 Wed> | v1.0.9 | Add daa geofence api yaml | 41 | | <2019-06-21 Fri> | release-v1.1.0 | <2019-06-21 Fri> | v1.1.0 | Change timestamp length to 22-24; add more descriptions | 42 | | <2019-06-22 Sat> | release-v1.1.1 | <2019-06-22 Sat> | v1.1.1 | Provide information on testing and uss-exchange call-signs | 43 | | <2019-08-21 Wed> | release-v1.1.2 | <2019-08-21 Wed> | v1.1.2 | Update DAA data model descriptions; update FET list of sensors that are available | 44 | 45 | * API Release Schedule 46 | This schedule is intended to convey to UTM TCL4 participants when NASA servers will support the various end-points described in the OpenAPI specification. It is to be assumed that the endpoints, when released, will support the latest tag on the master branch. 47 | | Endpoint | Location | Sprint | Release Date | 48 | |--------------------------------------+-------------------------------------------+------------------+------------------| 49 | | /uss-exchange | utm-tcl4-dmp-api.yaml | <2019-03-25 Mon> | <2019-03-28 Thu> | 50 | | /uss-handoff | utm-tcl4-dmp-api.yaml | <2019-03-25 Mon> | <2019-03-28 Thu> | 51 | | /uss-negotiation | utm-tcl4-dmp-api.yaml | <2019-03-25 Mon> | <2019-04-04 Thu> | 52 | | /uss-2-operator-exchange | utm-tcl4-dmp-api.yaml | <2019-03-25 Mon> | <2019-04-04 Thu> | 53 | | /dynamic-restriction-occurrence | utm-tcl4-dmp-api.yaml | <2019-04-01 Mon> | <2019-04-11 Thu> | 54 | | /fet | utm-tcl4-dmp-fet-api.yaml | <2019-04-01 Mon> | <2019-04-11 Thu> | 55 | | /fet-latency | utm-tcl4-dmp-fet-latency-api.yaml | <2019-04-01 Mon> | <2019-04-11 Thu> | 56 | | /off-nominal | utm-tcl4-dmp-api.yaml | <2019-04-01 Mon> | <2019-04-17 Wed> | 57 | | /loss-of-uss | utm-tcl4-dmp-api.yaml | <2019-04-01 Mon> | <2019-04-17 Wed> | 58 | | /cns-pre-run | utm-tcl4-dmp-cns-api.yaml | <2019-04-15 Mon> | <2019-04-25 Thu> | 59 | | /con-rpic-constraint-message | utm-tcl4-dmp-con-api.yaml | <2019-04-15 Mon> | <2019-04-25 Thu> | 60 | | /con-pre-run-range | utm-tcl4-dmp-con-api.yaml | <2019-04-15 Mon> | <2019-04-25 Thu> | 61 | | /con-pre-run-op | utm-tcl4-dmp-con-api.yaml | <2019-04-15 Mon> | <2019-04-25 Thu> | 62 | | /con-actual-landing | utm-tcl4-dmp-con-api.yaml | <2019-04-15 Mon> | <2019-04-25 Thu> | 63 | | /con-wx-operating-point-data | utm-tcl4-dmp-con-api.yaml | <2019-04-15 Mon> | <2019-04-25 Thu> | 64 | | /con-wx-operating-point-data-station | utm-tcl4-dmp-con-api.yaml | <2019-04-15 Mon> | <2019-04-25 Thu> | 65 | | /con-cell-service-availability | utm-tcl4-dmp-con-api.yaml | <2019-04-15 Mon> | <2019-04-25 Thu> | 66 | | /con-distress-v2v | utm-tcl4-dmp-con-api.yaml | <2019-04-15 Mon> | <2019-04-25 Thu> | 67 | | /aux-ops | utm-tcl4-dmp-auxiliary-uas-operation.yaml | <2019-04-22 Mon> | <2019-05-02 Thu> | 68 | | /cns-uas-truth-position | utm-tcl4-dmp-cns-api.yaml | <2019-04-22 Mon> | <2019-05-02 Thu> | 69 | | /cns-uas-truth-ecef-coordinate | utm-tcl4-dmp-cns-api.yaml | <2019-04-22 Mon> | <2019-05-02 Thu> | 70 | | /cns-emergency-phase | utm-tcl4-dmp-cns-api.yaml | <2019-04-22 Mon> | <2019-05-02 Thu> | 71 | | /cns-off-nominal-mitigation-outcome | utm-tcl4-dmp-cns-api.yaml | <2019-04-22 Mon> | <2019-05-02 Thu> | 72 | | /cns-landing-outcome | utm-tcl4-dmp-cns-api.yaml | <2019-04-22 Mon> | <2019-05-02 Thu> | 73 | | /cns-safe-to-land-location-reach | utm-tcl4-dmp-cns-api.yaml | <2019-04-22 Mon> | <2019-05-02 Thu> | 74 | | /cns-onboard-safe-landing-capability | utm-tcl4-dmp-cns-api.yaml | <2019-04-22 Mon> | <2019-05-02 Thu> | 75 | | /remote-id | utm-tcl4-dmp-remote-id-api.yaml | <2019-04-29 Mon> | <2019-05-09 Thu> | 76 | | /daa - all | utm-tcl4-dmp-daa-api.yaml | <2019-04-29 Mon> | <2019-05-02 Thu> | 77 | * Guidelines for Testing and Uploading Data 78 | ** Testing and Connectivity 79 | We recognize testing is essential in developing your APIs. However, since testing impacts production servers, the following guidelines must be strictly adhered to. 80 | | call_sign | test_run range | uvin | hours | 81 | |---------------------------+----------------+--------------------------------------+-----------------------------------------------| 82 | | test__ | 8000-8999 | 3d34bd51-5386-488b-9e63-f35b90a6ea48 | 5AM - 11PM PT and outside of flight test windows | 83 | | conn__ | TBD | 3d34bd51-5386-488b-9e63-f35b90a6ea48 | pre-flight window only | 84 | 85 | In the above, ==, refers to your client id, that is, what is submitted in the subclaim of the JWT. == can be set to =nv= or =tx=. 86 | Examples: 87 | | call_sign | test_run | uvin | 88 | |-------------------------------+----------+--------------------------------------| 89 | | test_utmalpha.arc.nasa.gov_nv | 8001 | 3d34bd51-5386-488b-9e63-f35b90a6ea48 | 90 | | conn_utmalpha.arc.nasa.gov_nv | 9001 | 3d34bd51-5386-488b-9e63-f35b90a6ea48 | 91 | ** Extensive Testing 92 | If you would like to perform testing with actual call signs and high data rates, give us a heads up. Specifically, provide 93 | - Objective of the test. 94 | - Call-signs you are going to use. 95 | - Time window (upper bound is what we are looking for). 96 | 97 | * Data Model Notes 98 | ** Uss Exchange 99 | The metadata for the uss-exchange data model described in https://github.com/nasa/utm-docs/blob/master/TCL4%20Data%20Management/utm-tcl4-data-collection.yaml requires a call-sign. For *every* uss-exchange model that you submit, please use the call-sign =ex__= 100 | -------------------------------------------------------------------------------- /TCL4 Data Management/update_references.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # ----------------------------------------------------------------------------- 3 | # Filename : update_references.sh 4 | # Desc. : This script updates references of the form release-vx.y.z to 5 | # : master for all yaml files 6 | # Project : UTM 7 | # Author : Abraham K. Ishihara 8 | # ----------------------------------------------------------------------------- 9 | echo 10 | echo "------------------------" 11 | echo "Enter the destination branch for utm-docs repo:" 12 | echo 13 | read my_branch 14 | my_branch=$( echo $my_branch | sed 's/ //g' ) 15 | echo "You selected: $my_branch" 16 | echo "------------------------" 17 | 18 | for f in *.yaml 19 | do 20 | temp=$( mktemp ) 21 | # cat $f | sed 's/\/release\-v[0-9]\.[0-9]\.[0-9]*\//\/master\//g' > $temp 22 | # cat $f | sed "s:\/utm-docs\/.*\/:\/utm-docs\/$my_branch\/:g" > $temp 23 | cat $f | sed "s:\/utm-docs\/\(.*\)\/\(TCL4.*\):\/utm-docs\/$my_branch\/\2:g" > $temp 24 | mv $temp $f 25 | done 26 | 27 | 28 | exit 0 29 | -------------------------------------------------------------------------------- /TCL4 Data Management/utm-tcl4-dmp-aircraft-flightplan-api.yaml: -------------------------------------------------------------------------------- 1 | swagger: '2.0' 2 | info: 3 | description: >- 4 | "TCL4 requires the submission of vehicle-centric data including from specialized sensors mounted on the vehicle which may collect data at various sampling rates. These models are referenced in the Data Management Plan (DMP)." 5 | version: 'v1.0' 6 | title: "API endpoints for UTM TCL DMP flight plan data collection" 7 | termsOfService: > 8 | 9 | A. No Warranty: THE SUBJECT SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY 10 | WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, 11 | BUT NOT LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO 12 | SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 13 | PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT THE 14 | SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF 15 | PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN 16 | ANY MANNER, CONSTITUTE AN ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR 17 | RECIPIENT OF ANY RESULTS, RESULTING DESIGNS, HARDWARE, SOFTWARE PRODUCTS OR 18 | ANY OTHER APPLICATIONS RESULTING FROM USE OF THE SUBJECT SOFTWARE. FURTHER, 19 | GOVERNMENT AGENCY DISCLAIMS ALL WARRANTIES AND LIABILITIES REGARDING 20 | THIRD-PARTY SOFTWARE, IF PRESENT IN THE ORIGINAL SOFTWARE, AND DISTRIBUTES 21 | IT "AS IS." 22 | 23 | 24 | B. Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS 25 | AGAINST THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS 26 | WELL AS ANY PRIOR RECIPIENT. IF RECIPIENT''S USE OF THE SUBJECT SOFTWARE 27 | RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES, EXPENSES OR LOSSES ARISING 28 | FROM SUCH USE, INCLUDING ANY DAMAGES FROM PRODUCTS BASED ON, OR RESULTING 29 | FROM, RECIPIENT''S USE OF THE SUBJECT SOFTWARE, RECIPIENT SHALL INDEMNIFY 30 | AND HOLD HARMLESS THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND 31 | SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY 32 | LAW. RECIPIENT''S SOLE REMEDY FOR ANY SUCH MATTER SHALL BE THE IMMEDIATE, 33 | UNILATERAL TERMINATION OF THIS AGREEMENT. 34 | contact: 35 | name: 'NASA Ames Research Center, Aviation Systems Division' 36 | url: 'https://utm.arc.nasa.gov/' 37 | email: joseph.rios@nasa.gov 38 | license: 39 | name: NASA Open Source Agreement 40 | url: 'https://ti.arc.nasa.gov/opensource/nosa/' 41 | 42 | host: utmregistry.arc.nasa.gov. 43 | basePath: /api/v4 44 | schemes: 45 | - https 46 | 47 | securityDefinitions: 48 | ussapi_security: 49 | type: oauth2 50 | tokenUrl: 'https://utm.defined.host/oauth/token' 51 | flow: application 52 | scopes: 53 | 'utm.nasa.gov_write.message': Subject can create and delete DMP USS and vehicle-centric data 54 | 55 | paths: 56 | 57 | '/flight-plan': 58 | post: 59 | summary: Upload a array of the Waypoint models. 60 | security: 61 | - ussapi_security: 62 | - utm.nasa.gov_write.message 63 | consumes: 64 | - application/json 65 | parameters: 66 | - in: body 67 | name: WaypointArray 68 | description: Upload array of Waypoint models 69 | required: true 70 | schema: 71 | type: array 72 | items: 73 | $ref: >- 74 | https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-aircraft-flightplan.yaml#/definitions/Waypoint 75 | responses: 76 | '204': 77 | description: Data received. No content returned. 78 | '400': 79 | description: Bad request. Typically validation error. Fix your request and retry. 80 | schema: 81 | $ref: >- 82 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 83 | '401': 84 | description: Invalid or missing access_token provided. 85 | schema: 86 | $ref: >- 87 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 88 | '403': 89 | description: Forbidden. Do not retry with same access token. Reason not provided, but do you have the right scopes? Does uss_name match the sub claim? 90 | schema: 91 | $ref: >- 92 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 93 | 94 | delete: 95 | summary: Delete array of Waypoint models 96 | security: 97 | - ussapi_security: 98 | - utm.nasa.gov_write.message 99 | parameters: 100 | - in: body 101 | name: MetaDataDmpUssId 102 | required: true 103 | schema: 104 | type: array 105 | items: 106 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/MetaDataDmpUssId' 107 | description: DELETE 108 | responses: 109 | '410': 110 | description: Gone. 111 | schema: 112 | $ref: >- 113 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 114 | -------------------------------------------------------------------------------- /TCL4 Data Management/utm-tcl4-dmp-aircraft-flightplan.yaml: -------------------------------------------------------------------------------- 1 | info: 2 | description: >- 3 | "TCL4 will require the submission of test data. Some of these data are not 4 | readily collected via UTM means. The models presented in this domain are in 5 | support of such data that are not readily collected otherwise. Some of 6 | these data will be collected live, some after testing, but all should be 7 | collected as a soon as feasible. Further details will be provided in other 8 | testing documentation." 9 | version: 'v1' 10 | title: "Domain for UAS flight plan data." 11 | contact: 12 | name: 'NASA Ames Research Center, Aviation Systems Division' 13 | url: 'https://utm.arc.nasa.gov/' 14 | email: joseph.rios@nasa.gov 15 | swagger: "2.0" 16 | paths: 17 | '/no-paths': 18 | put: 19 | responses: 20 | '410': 21 | description: >- 22 | Gone. Not implemented. Will not be implemented. Path included for 23 | proper use by automated tooling. Tools sometimes do not like 24 | when there are no paths, but domains do not contain paths. 25 | definitions: 26 | Waypoint: 27 | description: >- 28 | A single waypoint with associated data. 29 | required: 30 | - "metaData" 31 | - "waypoint_id" 32 | - "waypoint_sequence_id" 33 | - "waypoint_type" 34 | - "position" 35 | - "altitude" 36 | - "timestamp" 37 | - "target_air_speed" 38 | - "target_ground_speed" 39 | - "hover_time" 40 | properties: 41 | metaData: 42 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/metaData' 43 | waypoint_id: 44 | description: >- 45 | unique id for this data submission. 46 | type: string 47 | format: uuid 48 | maxLength: 36 49 | minLength: 36 50 | pattern: "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[8-b][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" 51 | example: "00000000-0000-4444-8888-FEEDDEADBEEF" 52 | waypoint_sequence_id: 53 | description: >- 54 | integer indicating order of this waypoint in the list of waypoints. 55 | 56 | must be sequential starting with 1. 57 | type: integer 58 | format: int32 59 | minimum: 1 60 | maximum: 9999 61 | example: 23 62 | waypoint_type: 63 | description: >- 64 | Fly over or fly by? 65 | type: string 66 | enum: 67 | - FLY_BY 68 | - FLY_OVER 69 | position: 70 | description: 2D position of the waypoint. (Lat/Lon) 71 | $ref: 'https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-geojson.yaml#/definitions/Point' 72 | altitude: 73 | description: >- 74 | Targeted altitude of the waypoint expressed in WGS84 reference frame (ft) 75 | $ref: 'https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/Altitude' 76 | timestamp: 77 | description: >- 78 | Targeted time to reach this waypoint. 79 | type: string 80 | format: date-time 81 | minLength: 24 82 | maxLength: 24 83 | pattern: "^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{3})Z$" 84 | example: '2015-08-20T14:11:56.118Z' 85 | target_ground_speed: 86 | description: >- 87 | The target ground speed of the vehicle at this waypoint. 88 | 89 | Units of measure: ft/sec. 90 | type: integer 91 | format: int32 92 | minimum: 0 93 | maximum: 9999 94 | example: 32 95 | target_air_speed: 96 | description: >- 97 | The target air speed of the vehicle at this waypoint. 98 | 99 | Units of measure: ft/sec. 100 | type: integer 101 | format: int32 102 | minimum: -9999 103 | maximum: 9999 104 | example: 32 105 | hover_time: 106 | description: >- 107 | Number of seconds the vehicle plans to hover or loiter at this waypoint. 108 | type: integer 109 | format: int32 110 | minimum: 0 111 | maximum: 99999 112 | example: 120 113 | -------------------------------------------------------------------------------- /TCL4 Data Management/utm-tcl4-dmp-auxiliary-uas-operation.yaml: -------------------------------------------------------------------------------- 1 | info: 2 | description: >- 3 | "TCL4 will require the submission of test data. Some of these data are not readily collected via UTM means. 4 | The models presented in this domain are in support of such data that are not readily collected otherwise. 5 | Some of these data will be collected live, some after testing, but all should be collected as a soon as 6 | feasible. Further details will be provided in other testing documentation." 7 | version: 'v1' 8 | title: "Domain for Auxiliary UAS Operation Data" 9 | contact: 10 | name: 'NASA Ames Research Center, Aviation Systems Division' 11 | url: 'https://utm.arc.nasa.gov/' 12 | email: joseph.rios@nasa.gov 13 | swagger: "2.0" 14 | paths: 15 | '/no-paths': 16 | put: 17 | responses: 18 | '410': 19 | description: >- 20 | Gone. Not implemented. Will not be implemented. Path included for 21 | proper use by automated tooling. Tools sometimes do not like 22 | when there are no paths, but domains do not contain paths. 23 | definitions: 24 | AuxiliaryUASOperation: 25 | required: 26 | - metaData 27 | - takeoff_time 28 | - takeoff_altitude 29 | - takeoff_position 30 | - takeoff_weight 31 | - landing_time 32 | - landing_altitude 33 | - landing_position 34 | - gcs_altitude 35 | - gcs_position 36 | - equipped_sensors 37 | - static_obstacle_lists 38 | properties: 39 | metaData: 40 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/metaData' 41 | takeoff_weight: 42 | description: >- 43 | The actual takeoff weight of the vehicle for this operation. 44 | 45 | Note value must be in US pounds. 46 | 47 | Note large maximum allows for some flexibility in vehicles that 48 | participate. May re-visit this value. 49 | type: number 50 | format: double 51 | minimum: 0.0 52 | maximum: 10000.0 53 | takeoff_time: 54 | description: >- 55 | UTC Time at initial takeoff, defined as the moment the vehicle leaves the ground/launching device. 56 | type: string 57 | format: date-time 58 | minLength: 24 59 | maxLength: 24 60 | pattern: "^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{3})Z$" 61 | example: '2015-08-20T14:11:56.118Z' 62 | takeoff_position: 63 | description: >- 64 | "Takeoff position latitude and longitude (deg). 65 | 66 | Report at least seven decimal degrees." 67 | $ref: 'https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-geojson.yaml#/definitions/Point' 68 | takeoff_altitude: 69 | description: >- 70 | Takeoff position WGS84 altitude. (ft) 71 | $ref: 'https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/Altitude' 72 | landing_time: 73 | description: >- 74 | UTC time at final landing, defined as the moment returns to ground/recovery device. 75 | type: string 76 | format: date-time 77 | minLength: 24 78 | maxLength: 24 79 | pattern: "^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{3})Z$" 80 | example: '2015-08-20T14:11:56.118Z' 81 | landing_position: 82 | description: >- 83 | "Landing position (deg). 84 | 85 | Report at least seven decimal degrees." 86 | $ref: 'https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-geojson.yaml#/definitions/Point' 87 | landing_altitude: 88 | description: >- 89 | Landing WGS84 altitude. (ft) 90 | $ref: 'https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/Altitude' 91 | gcs_position: 92 | description: >- 93 | "GCS position. 94 | 95 | Report at least seven decimal degrees." 96 | $ref: 'https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-geojson.yaml#/definitions/Point' 97 | gcs_altitude: 98 | description: >- 99 | GCS position WGS84 altitude. (ft) 100 | $ref: 'https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/Altitude' 101 | equipped_sensors: 102 | description: >- 103 | A list of identifiers indicating the types of sensors equipped. Descriptions 104 | of these sensors are to be provided in advance via the DaaSensor model. 105 | 106 | Provide as an array of DaaId values (UUIDs) representing DaaSensor.sensorId 107 | values that have been previously submitted. If an identifier is used in this 108 | array that is not previously known to the DMP system, an error may 109 | be thrown. 110 | 111 | If no sensors as described by a DaaSensor model are included on this 112 | vehicle during this operation, supply an empty (0-length) array since 113 | this is a required field. 114 | type: array 115 | items: 116 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-daa.yaml#/definitions/DaaUuid' 117 | minItems: 0 118 | maxItems: 100 119 | static_obstacle_lists: 120 | description: >- 121 | A list of identifiers indicating collections of obstacle data known 122 | to the UAS prior to departure. 123 | 124 | These identifiers map to StaticObstacleTable.staticObstacleId values 125 | that have been previously submitted. If an identifier is used in this 126 | array that is not previously known to the DMP system, an error may 127 | be thrown. 128 | type: array 129 | items: 130 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-daa.yaml#/definitions/DaaUuid' 131 | conflict_resolution_configuration: 132 | description: >- 133 | A reference to a previously submitted ConflictResolutionConfiguration via 134 | its conflictResolutionConfigId. 135 | 136 | This field is optional in this model, but it is required when the 137 | vehicle is implementing DAA capabilities. 138 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-daa.yaml#/definitions/DaaUuid' 139 | -------------------------------------------------------------------------------- /TCL4 Data Management/utm-tcl4-dmp-cns.yaml: -------------------------------------------------------------------------------- 1 | info: 2 | version: "v1.0" 3 | title: UTM DMP TCL4 CNS 4 | description: Data model for CNS submission. 5 | contact: 6 | name: 'NASA Ames Research Center, Aviation Systems Division' 7 | url: 'https://utmregistry.arc.nasa.gov/' 8 | email: jaewoo.jung@nasa.gov 9 | license: 10 | name: NASA Open Source Agreement 11 | url: 'https://ti.arc.nasa.gov/opensource/nosa/' 12 | termsOfService: >- 13 | A. No Warranty: THE SUBJECT SOFTWARE IS PROVIDED \"AS IS\" WITHOUT ANY 14 | WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, 15 | BUT NOT LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO 16 | SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 17 | PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT THE 18 | SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF 19 | PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN 20 | ANY MANNER, CONSTITUTE AN ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR 21 | RECIPIENT OF ANY RESULTS, RESULTING DESIGNS, HARDWARE, SOFTWARE PRODUCTS OR 22 | ANY OTHER APPLICATIONS RESULTING FROM USE OF THE SUBJECT SOFTWARE. FURTHER, 23 | GOVERNMENT AGENCY DISCLAIMS ALL WARRANTIES AND LIABILITIES REGARDING 24 | THIRD-PARTY SOFTWARE, IF PRESENT IN THE ORIGINAL SOFTWARE, AND DISTRIBUTES 25 | IT \"AS IS.\" 26 | B. Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS 27 | AGAINST THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS 28 | WELL AS ANY PRIOR RECIPIENT. IF RECIPIENT''S USE OF THE SUBJECT SOFTWARE 29 | RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES, EXPENSES OR LOSSES ARISING 30 | FROM SUCH USE, INCLUDING ANY DAMAGES FROM PRODUCTS BASED ON, OR RESULTING 31 | FROM, RECIPIENT''S USE OF THE SUBJECT SOFTWARE, RECIPIENT SHALL INDEMNIFY 32 | AND HOLD HARMLESS THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND 33 | SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY 34 | LAW. RECIPIENT''S SOLE REMEDY FOR ANY SUCH MATTER SHALL BE THE IMMEDIATE, 35 | UNILATERAL TERMINATION OF THIS AGREEMENT. 36 | swagger: '2.0' 37 | 38 | paths: 39 | '/no-paths': 40 | put: 41 | responses: 42 | '410': 43 | description: >- 44 | Gone. Not implemented. Will not be implemented. Path included for 45 | proper use by automated tooling. Tools sometimes do not like 46 | when there are no paths, but domains do not contain paths. 47 | definitions: 48 | CnsPreRun: 49 | type: object 50 | required: 51 | - "metaData" 52 | - "minimumAircraftToOperatorDataTransferRateForOperation_bytesPerSec" 53 | - "minimumOperatorToAircraftDataTransferRateForOperation_bytesPerSec" 54 | - "maximumAircraftToOperatorRoundTripLatencyTolerableForOperation_ms" 55 | - "maximumOperatorToAircraftRoundTripLatencyTolerableForOperation_ms" 56 | properties: 57 | metaData: 58 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/metaData' 59 | minimumAircraftToOperatorDataTransferRateForOperation_bytesPerSec: 60 | description: >- 61 | "Report the minimum aircraft to operator data transfer rate (in Bytes 62 | per second) necessary to execute the operation. Consider that data 63 | should be authenticated and checked for integrity. (bytesPerSec)" 64 | type: integer 65 | format: int32 66 | minimum: 0 67 | minimumOperatorToAircraftDataTransferRateForOperation_bytesPerSec: 68 | description: >- 69 | "Report the minimum operator to aircraft data transfer rate (in Bytes 70 | per second) necessary to execute the operation. Consider that data 71 | should be authenticated and checked for integrity. (bytesPerSec)" 72 | type: integer 73 | format: int32 74 | minimum: 0 75 | maximumAircraftToOperatorRoundTripLatencyTolerableForOperation_ms: 76 | description: >- 77 | "Report the maximum tolerable Round-trip latency from source (aircraft) 78 | to destination (operator) to execute the operation, in millisecond (ms)" 79 | type: integer 80 | format: int32 81 | minimum: 0 82 | maximumOperatorToAircraftRoundTripLatencyTolerableForOperation_ms: 83 | description: >- 84 | "Report the maximum tolerable Round-trip latency from source (operator) 85 | to destination (aircraft) to execute the operation, in millisecond (ms)" 86 | type: number 87 | format: int32 88 | minimum: 0 89 | 90 | UasTruthPosition: 91 | description: >- 92 | As reported by truth position system 93 | type: object 94 | required: 95 | - "metaData" 96 | - "xCoordinate_ft" 97 | - "yCoordinate_ft" 98 | - "zCoordinate_ft" 99 | - "timestamp" 100 | properties: 101 | metaData: 102 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/metaData' 103 | xCoordinate_ft: 104 | description: >- 105 | X-Coordinate truth position of UA (ECEF: Earth Centered Earth 106 | Fixed, inch-level resolution); as reported by the Ground Truth System 107 | (Truth Reference System, e.g. optical, radar, LiDAR, nav. beacon, etc). 108 | Can be reported by the UAS but has to be independent of UAS's primary navigation 109 | system, use of separate RTK system is allowed (UTC time stamped). Report 110 | at least 2 decimal places of precision. (ft) 111 | $ref: "#/definitions/UasTruthEcefCoordinate_ft" 112 | yCoordinate_ft: 113 | description: >- 114 | Y-Coordinate truth position of UA (ECEF: Earth Centered Earth 115 | Fixed, inch-level resolution); as reported by the Ground Truth System 116 | (Truth Reference System, e.g. optical, radar, LiDAR, nav. beacon, etc). 117 | Can be reported by the UAS but has to be independent of UAS's primary navigation 118 | system, use of separate RTK system is allowed (UTC time stamped). Report 119 | at least 2 decimal places of precision. (ft) 120 | $ref: "#/definitions/UasTruthEcefCoordinate_ft" 121 | zCoordinate_ft: 122 | description: >- 123 | Z-Coordinate truth position of UA (ECEF: Earth Centered Earth 124 | Fixed, inch-level resolution); as reported by the Ground Truth System 125 | (Truth Reference System, e.g. optical, radar, LiDAR, nav. beacon, etc). 126 | Can be reported by the UAS but has to be independent of UAS's primary navigation 127 | system, use of separate RTK system is allowed (UTC time stamped). Report 128 | at least 2 decimal places of precision. (ft) 129 | $ref: "#/definitions/UasTruthEcefCoordinate_ft" 130 | timestamp: 131 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/timestamp' 132 | 133 | UasTruthEcefCoordinate_ft: 134 | type: "object" 135 | required: 136 | - "estimatedError95Prct_in" 137 | - "value_ft" 138 | properties: 139 | value_ft: 140 | type: "number" 141 | format: "double" 142 | description: "Coordinate value (ft)" 143 | example: 871.94 144 | estimatedError95Prct_in: 145 | type: "number" 146 | format: "double" 147 | description: >- 148 | "Estimated truth system position (ECEF) error at time of measurement 149 | (95 percentile, inches). UTC time stamped. (in)" 150 | minimum: 0.0 151 | example: 3.2 152 | 153 | EmergencyPhase: 154 | description: >- 155 | "During operation, operator must monitor UA operation according 156 | to Communications and Navigation Procedure (Reference 9, Section 4.2) 157 | and report appropriate emergency phase with UTC timestamp as enum" 158 | type: object 159 | required: 160 | - "metaData" 161 | - "timestamp" 162 | - "emergencyPhaseValue" 163 | properties: 164 | metaData: 165 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/metaData' 166 | timestamp: 167 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/timestamp' 168 | emergencyPhaseValue: 169 | type: string 170 | enum: 171 | - "NOMINAL" 172 | - "UNCERTAINTY" 173 | - "ALERT" 174 | - "DISTRESS" 175 | 176 | OffNominalMitigationOutcome: 177 | description: >- 178 | Outcome of offnominal events like UA to Operator C2 Link Loss, Operator 179 | to UA C2 Link Loss, or Loss of Vehicle Navigation, is reported as enum: 180 | * Resolved_within_operation_volume, 181 | * Resolved_but_triggered_nonconforming_state, 182 | * Resolved_but_triggered_rogue_state, 183 | * Unresolved_vehicle_flew_away, 184 | * Unresolved_vehicle_crashed_to_ground, 185 | * Unresolved_vehicle_collided_with_another_vehicle, 186 | * Unresolved_vehicle_collided_with_building 187 | type: object 188 | required: 189 | - metaData 190 | - timestamp 191 | - offNominalMitigationOutcomeValue 192 | properties: 193 | metaData: 194 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/metaData' 195 | timestamp: 196 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/timestamp' 197 | offNominalMitigationOutcomeValue: 198 | type: "string" 199 | enum: 200 | - "RESOLVED_WITHIN_OPERATION_VOLUME" 201 | - "RESOLVED_BUT_TRIGGERED_NONCONFORMING_STATE" 202 | - "RESOLVED_BUT_TRIGGERED_ROGUE_STATE" 203 | - "UNRESOLVED_VEHICLE_FLEW_AWAY" 204 | - "UNRESOLVED_VEHICLE_CRASHED_TO_GROUND" 205 | - "UNRESOLVED_VEHICLE_COLLIDED_WITH_ANOTHER_VEHICLE" 206 | - "UNRESOLVED_VEHICLE_COLLIDED_WITH_BUILDING" 207 | 208 | LandingOutcome: 209 | type: object 210 | required: 211 | - "metaData" 212 | - "timestamp" 213 | - "landingOutcomeValue" 214 | properties: 215 | metaData: 216 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/metaData' 217 | timestamp: 218 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/timestamp' 219 | landingOutcomeValue: 220 | type: "string" 221 | description: >- 222 | "Report this for every landing as enum, landing within 223 | contingency_polygon is also considered as safe landing." 224 | enum: 225 | - "LANDED_SAFELY_WITHIN_OPERATION_VOLUME" 226 | - "LANDED_SAFELY_OUTSIDE_OF_OPERATION_VOLUME" 227 | - "LANDED_UNSAFELY_WITHIN_OPERATION_VOLUME" 228 | - "LANDED_UNSAFELY_OUTSIDE_OF_OPERATION_VOLUME" 229 | 230 | SafeToLandLocationReach: 231 | type: object 232 | required: 233 | - "metaData" 234 | - "timestamp" 235 | - "canReachSafeToLandLocation" 236 | properties: 237 | metaData: 238 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/metaData' 239 | timestamp: 240 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/timestamp' 241 | canReachSafeToLandLocation: 242 | type: "boolean" 243 | description: >- 244 | "Operator to select true/false to indicate whether UA can reach 245 | designated safe-to-reach location: For example, if battery is too low 246 | or wind is too strong for UA to reach safe to land location, 'false' 247 | should be selected." 248 | example: true 249 | 250 | OnBoardSafeLandingCapability: 251 | type: object 252 | required: 253 | - "metaData" 254 | - "timestamp" 255 | - "onBoardSafeLandingCapabilityStatus" 256 | properties: 257 | metaData: 258 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/metaData' 259 | timestamp: 260 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/timestamp' 261 | onBoardSafeLandingCapabilityStatus: 262 | type: "string" 263 | description: >- 264 | "Operator to select one of the following enum to indicate whether UA's 265 | onboard safe landing capability (i.e. onboard system that is capable 266 | of identifying safe to land location and land while avoiding people 267 | and property, such as safe2ditch) is working properly or not. For 268 | example, if the onboard safe landing system uses optical sensor and a 269 | bug has rendered it non-usable, (onboard safe landing system is 270 | compromised) should be selected." 271 | enum: 272 | - "ONBOARD_SAFE_LANDING_SYSTEM_FUNCTIONING_NORMALLY" 273 | - "ONBOARD_SAFE_LANDING_SYSTEM_IS_COMPROMISED" 274 | - "UA_NOT_EQUIPPED_WITH_ONBOARD_SAFE_LANDING_SYSTEM" 275 | -------------------------------------------------------------------------------- /TCL4 Data Management/utm-tcl4-dmp-daa-geofence-api.yaml: -------------------------------------------------------------------------------- 1 | swagger: '2.0' 2 | info: 3 | description: >- 4 | "TCL4 requires the submission of vehicle-centric data including from specialized sensors mounted on the vehicle which may collect data at various sampling rates. These models are referenced in the Data Management Plan (DMP)." 5 | version: 'v1.0' 6 | title: "API endpoints for UTM TCL DAA data collection" 7 | termsOfService: > 8 | A. No Warranty: THE SUBJECT SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY 9 | WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, 10 | BUT NOT LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO 11 | SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 12 | PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT THE 13 | SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF 14 | PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN 15 | ANY MANNER, CONSTITUTE AN ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR 16 | RECIPIENT OF ANY RESULTS, RESULTING DESIGNS, HARDWARE, SOFTWARE PRODUCTS OR 17 | ANY OTHER APPLICATIONS RESULTING FROM USE OF THE SUBJECT SOFTWARE. FURTHER, 18 | GOVERNMENT AGENCY DISCLAIMS ALL WARRANTIES AND LIABILITIES REGARDING 19 | THIRD-PARTY SOFTWARE, IF PRESENT IN THE ORIGINAL SOFTWARE, AND DISTRIBUTES 20 | IT "AS IS." 21 | B. Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS 22 | AGAINST THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS 23 | WELL AS ANY PRIOR RECIPIENT. IF RECIPIENT''S USE OF THE SUBJECT SOFTWARE 24 | RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES, EXPENSES OR LOSSES ARISING 25 | FROM SUCH USE, INCLUDING ANY DAMAGES FROM PRODUCTS BASED ON, OR RESULTING 26 | FROM, RECIPIENT''S USE OF THE SUBJECT SOFTWARE, RECIPIENT SHALL INDEMNIFY 27 | AND HOLD HARMLESS THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND 28 | SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY 29 | LAW. RECIPIENT''S SOLE REMEDY FOR ANY SUCH MATTER SHALL BE THE IMMEDIATE, 30 | UNILATERAL TERMINATION OF THIS AGREEMENT. 31 | contact: 32 | name: 'NASA Ames Research Center, Aviation Systems Division' 33 | url: 'https://utm.arc.nasa.gov/' 34 | email: joseph.rios@nasa.gov 35 | license: 36 | name: NASA Open Source Agreement 37 | url: 'https://ti.arc.nasa.gov/opensource/nosa/' 38 | 39 | host: utmalpha.arc.nasa.gov 40 | basePath: /eventdata 41 | schemes: 42 | - https 43 | 44 | securityDefinitions: 45 | ussapi_security: 46 | type: oauth2 47 | tokenUrl: 'https://utm.defined.host/oauth/token' 48 | flow: application 49 | scopes: 50 | 'utm.nasa.gov_write.message': Subject can create and delete DMP USS and vehicle-centric data 51 | 52 | paths: 53 | 54 | '/daa-geo-fence': 55 | post: 56 | security: 57 | - ussapi_security: 58 | - utm.nasa.gov_write.message 59 | consumes: 60 | - application/json 61 | parameters: 62 | - in: body 63 | name: DaaGeoFence 64 | required: true 65 | schema: 66 | $ref: >- 67 | https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-daa-geofence.yaml#/definitions/DaaGeoFence 68 | responses: 69 | '200': 70 | description: Data received. No content returned. 71 | schema: 72 | $ref: >- 73 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 74 | '400': 75 | description: Bad request. Typically validation error. Fix your request and retry. 76 | schema: 77 | $ref: >- 78 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 79 | '401': 80 | description: Invalid or missing access_token provided. 81 | schema: 82 | $ref: >- 83 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 84 | '403': 85 | description: Forbidden. Do not retry with same access token. Reason not provided, but do you have the right scopes? Does uss_name match the sub claim? 86 | schema: 87 | $ref: >- 88 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 89 | -------------------------------------------------------------------------------- /TCL4 Data Management/utm-tcl4-dmp-daa-geofence.yaml: -------------------------------------------------------------------------------- 1 | info: 2 | description: >- 3 | "TCL4 will require the submission of test data. Some of these data are not 4 | readily collected via UTM means. The models presented in this domain are in 5 | support of such data that are not readily collected otherwise. Some of 6 | these data will be collected live, some after testing, but all should be 7 | collected as a soon as feasible. Further details will be provided in other 8 | testing documentation." 9 | version: 'v1' 10 | title: "Domain for Geofence Data used in DAA" 11 | contact: 12 | name: 'NASA Ames Research Center, Aviation Systems Division' 13 | url: 'https://utm.arc.nasa.gov/' 14 | email: joseph.rios@nasa.gov 15 | swagger: "2.0" 16 | paths: 17 | '/no-paths': 18 | put: 19 | responses: 20 | '410': 21 | description: >- 22 | Gone. Not implemented. Will not be implemented. Path included for 23 | proper use by automated tooling. Tools sometimes do not like 24 | when there are no paths, but domains do not contain paths. 25 | definitions: 26 | DaaGeoFence: 27 | required: 28 | - metaData 29 | - geofence_id 30 | - timestamp 31 | - enabled 32 | - start_time 33 | - end_time 34 | - type 35 | - min_altitude 36 | - max_altitude 37 | properties: 38 | metaData: 39 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/metaData' 40 | geofence_id: 41 | description: >- 42 | Identifier for this geofence data instance. 43 | 44 | Notes for static geofences: 45 | 1. Expecting a single DaaGeoFence submission for an operation with a 46 | static geofence. 47 | 48 | 2. Timestamp can be any reasonable value. Expect that it would be earlier 49 | than the operation start time since the geofence would be defined 50 | prior to operation commencement. 51 | 52 | Notes for dynamic geofences: 53 | 1. This id should remain constant across multiple geofence samples for a 54 | dynamic geofence associated with the same metaData model. 55 | 56 | 2. Samples for a single metaData model differentiated and ordered by 57 | timestamps. 58 | type: string 59 | format: uuid 60 | maxLength: 36 61 | minLength: 36 62 | pattern: "^[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-4[0-9a-fA-F]{3}\\-[8-b][0-9a-fA-F]{3}\\-[0-9a-fA-F]{12}$" 63 | example: "00000000-0000-4444-8888-FEEDDEADBEEF" 64 | timestamp: 65 | description: >- 66 | Time for the sample of this geofence data instance. For a static 67 | geofence, this may simply be any reasonable time that the geofence 68 | is defined and/or entered on the platform. For dynamic geofences, 69 | this is the sample time for the geofence, likely during the operation 70 | window. 71 | type: string 72 | format: date-time 73 | minLength: 24 74 | maxLength: 24 75 | pattern: "^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{3})Z$" 76 | example: '2015-08-20T14:11:56.118Z' 77 | enabled: 78 | description: >- 79 | Geofence is enabled. 80 | type: boolean 81 | example: true 82 | start_time: 83 | description: >- 84 | UTC Time for start of the geofence. When the geofence is enabled. 85 | type: string 86 | format: date-time 87 | minLength: 24 88 | maxLength: 24 89 | pattern: "^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{3})Z$" 90 | example: '2015-08-20T14:11:56.118Z' 91 | end_time: 92 | description: >- 93 | UTC Time for end of the geofence. When the geofence is disabled. 94 | type: string 95 | format: date-time 96 | minLength: 24 97 | maxLength: 24 98 | pattern: "^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{3})Z$" 99 | example: '2015-08-20T14:11:56.118Z' 100 | type: 101 | description: >- 102 | The type of geofence. 103 | type: string 104 | enum: 105 | - NONE 106 | - CIRCULAR-POINT-RADIUS 107 | - POLYGON 108 | example: "POLYGON" 109 | min_altitude: 110 | description: >- 111 | Altitude floor of the geofence in WGS84. (ft) 112 | $ref: 'https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/Altitude' 113 | example: 114 | min_altitude: 115 | altitude_value: 1500 116 | altitude_reference: "W84" 117 | units_of_measure: "FT" 118 | max_altitude: 119 | description: >- 120 | Altitude ceiling of the geofence in WGS84. (ft) 121 | $ref: 'https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/Altitude' 122 | example: 123 | max_altitude: 124 | altitude_value: 1800 125 | altitude_reference: "W84" 126 | units_of_measure: "FT" 127 | circular_geofence_center: 128 | description: >- 129 | Circular origin point of the geofence, if circular. (Lat/Lon) 130 | $ref: 'https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-geojson.yaml#/definitions/Point' 131 | circular_geofence_radius: 132 | description: >- 133 | Radius of circular geofence in ft 134 | type: number 135 | format: double 136 | minimum: 0.0 137 | example: 200.0 138 | polygonal_geofence_boundary: 139 | description: >- 140 | Geofence boundary if a polygon. (Lat/Lon) 141 | $ref: 'https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-geojson.yaml#/definitions/Polygon' 142 | -------------------------------------------------------------------------------- /TCL4 Data Management/utm-tcl4-dmp-fet-api.yaml: -------------------------------------------------------------------------------- 1 | swagger: '2.0' 2 | info: 3 | description: >- 4 | "TCL4 requires the submission of vehicle-centric data including from specialized sensors mounted on the vehicle which may collect data at various sampling rates. These models are referenced in the Data Management Plan (DMP)." 5 | version: 'v1.0' 6 | title: "API endpoints for UTM TCL DMP FET Data Models" 7 | termsOfService: > 8 | 9 | A. No Warranty: THE SUBJECT SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY 10 | WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, 11 | BUT NOT LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO 12 | SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 13 | PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT THE 14 | SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF 15 | PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN 16 | ANY MANNER, CONSTITUTE AN ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR 17 | RECIPIENT OF ANY RESULTS, RESULTING DESIGNS, HARDWARE, SOFTWARE PRODUCTS OR 18 | ANY OTHER APPLICATIONS RESULTING FROM USE OF THE SUBJECT SOFTWARE. FURTHER, 19 | GOVERNMENT AGENCY DISCLAIMS ALL WARRANTIES AND LIABILITIES REGARDING 20 | THIRD-PARTY SOFTWARE, IF PRESENT IN THE ORIGINAL SOFTWARE, AND DISTRIBUTES 21 | IT "AS IS." 22 | 23 | 24 | B. Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS 25 | AGAINST THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS 26 | WELL AS ANY PRIOR RECIPIENT. IF RECIPIENT''S USE OF THE SUBJECT SOFTWARE 27 | RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES, EXPENSES OR LOSSES ARISING 28 | FROM SUCH USE, INCLUDING ANY DAMAGES FROM PRODUCTS BASED ON, OR RESULTING 29 | FROM, RECIPIENT''S USE OF THE SUBJECT SOFTWARE, RECIPIENT SHALL INDEMNIFY 30 | AND HOLD HARMLESS THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND 31 | SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY 32 | LAW. RECIPIENT''S SOLE REMEDY FOR ANY SUCH MATTER SHALL BE THE IMMEDIATE, 33 | UNILATERAL TERMINATION OF THIS AGREEMENT. 34 | contact: 35 | name: 'NASA Ames Research Center, Aviation Systems Division' 36 | url: 'https://utm.arc.nasa.gov/' 37 | email: joseph.rios@nasa.gov 38 | license: 39 | name: NASA Open Source Agreement 40 | url: 'https://ti.arc.nasa.gov/opensource/nosa/' 41 | 42 | host: utmregistry.arc.nasa.gov. 43 | basePath: /api/v4 44 | schemes: 45 | - https 46 | 47 | securityDefinitions: 48 | ussapi_security: 49 | type: oauth2 50 | tokenUrl: 'https://utm.defined.host/oauth/token' 51 | flow: application 52 | scopes: 53 | 'utm.nasa.gov_write.message': Subject can create and delete DMP USS and vehicle-centric data 54 | 55 | paths: 56 | 57 | '/fet': 58 | post: 59 | summary: Upload a single instance of the FlightEssentialTelemetryUasStates model 60 | security: 61 | - ussapi_security: 62 | - utm.nasa.gov_write.message 63 | consumes: 64 | - application/json 65 | parameters: 66 | - in: body 67 | name: FlightEssentialTelemetryUasStates 68 | description: The FlightEssentialTelemetryAndUasStates model 69 | required: true 70 | schema: 71 | $ref: >- 72 | https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-fet.yaml#/definitions/FlightEssentialTelemetryAndUasStates 73 | responses: 74 | '200': 75 | description: Data received. No content returned. 76 | schema: 77 | $ref: >- 78 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 79 | '400': 80 | description: Bad request. Typically validation error. Fix your request and retry. 81 | schema: 82 | $ref: >- 83 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 84 | '401': 85 | description: Invalid or missing access_token provided. 86 | schema: 87 | $ref: >- 88 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 89 | '403': 90 | description: Forbidden. Do not retry with same access token. Reason not provided, but do you have the right scopes? Does uss_name match the sub claim? 91 | schema: 92 | $ref: >- 93 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 94 | 95 | delete: 96 | summary: Delete one or more (sensor,timestamp) pairs associated with a (call_sign,test_run) pair specified in metadata 97 | security: 98 | - ussapi_security: 99 | - utm.nasa.gov_write.message 100 | parameters: 101 | - in: body 102 | name: metaDataCallSignRunTsSensor 103 | required: true 104 | schema: 105 | $ref: >- 106 | https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-fet.yaml#/definitions/MetaDataCallSignRunTsSensor 107 | description: DELETE one or more sensor data elements associated with pair (call_sign,test_run) 108 | responses: 109 | '410': 110 | description: Gone. 111 | schema: 112 | $ref: >- 113 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 114 | -------------------------------------------------------------------------------- /TCL4 Data Management/utm-tcl4-dmp-fet-latency-api.yaml: -------------------------------------------------------------------------------- 1 | swagger: '2.0' 2 | info: 3 | description: >- 4 | "TCL4 requires the submission of vehicle-centric data including from specialized sensors mounted on the vehicle which may collect data at various sampling rates. These models are referenced in the Data Management Plan (DMP)." 5 | version: 'v1.0' 6 | title: "API endpoints for UTM TCL DMP FET Data Models" 7 | termsOfService: > 8 | 9 | A. No Warranty: THE SUBJECT SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY 10 | WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, 11 | BUT NOT LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO 12 | SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 13 | PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT THE 14 | SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF 15 | PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN 16 | ANY MANNER, CONSTITUTE AN ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR 17 | RECIPIENT OF ANY RESULTS, RESULTING DESIGNS, HARDWARE, SOFTWARE PRODUCTS OR 18 | ANY OTHER APPLICATIONS RESULTING FROM USE OF THE SUBJECT SOFTWARE. FURTHER, 19 | GOVERNMENT AGENCY DISCLAIMS ALL WARRANTIES AND LIABILITIES REGARDING 20 | THIRD-PARTY SOFTWARE, IF PRESENT IN THE ORIGINAL SOFTWARE, AND DISTRIBUTES 21 | IT "AS IS." 22 | 23 | 24 | B. Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS 25 | AGAINST THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS 26 | WELL AS ANY PRIOR RECIPIENT. IF RECIPIENT''S USE OF THE SUBJECT SOFTWARE 27 | RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES, EXPENSES OR LOSSES ARISING 28 | FROM SUCH USE, INCLUDING ANY DAMAGES FROM PRODUCTS BASED ON, OR RESULTING 29 | FROM, RECIPIENT''S USE OF THE SUBJECT SOFTWARE, RECIPIENT SHALL INDEMNIFY 30 | AND HOLD HARMLESS THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND 31 | SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY 32 | LAW. RECIPIENT''S SOLE REMEDY FOR ANY SUCH MATTER SHALL BE THE IMMEDIATE, 33 | UNILATERAL TERMINATION OF THIS AGREEMENT. 34 | contact: 35 | name: 'NASA Ames Research Center, Aviation Systems Division' 36 | url: 'https://utm.arc.nasa.gov/' 37 | email: joseph.rios@nasa.gov 38 | license: 39 | name: NASA Open Source Agreement 40 | url: 'https://ti.arc.nasa.gov/opensource/nosa/' 41 | 42 | host: utmregistry.arc.nasa.gov. 43 | basePath: /api/v4 44 | schemes: 45 | - https 46 | 47 | securityDefinitions: 48 | ussapi_security: 49 | type: oauth2 50 | tokenUrl: 'https://utm.defined.host/oauth/token' 51 | flow: application 52 | scopes: 53 | 'utm.nasa.gov_write.message': Subject can create and delete DMP USS and vehicle-centric data 54 | 55 | paths: 56 | 57 | '/fet-latency': 58 | post: 59 | summary: Upload a single instance of the FlightEssentialTelemetryLatency model 60 | security: 61 | - ussapi_security: 62 | - utm.nasa.gov_write.message 63 | consumes: 64 | - application/json 65 | parameters: 66 | - in: body 67 | name: FlightEssentialTelemetryLatency 68 | description: The FlightEssentialTelemetryLatency model 69 | required: true 70 | schema: 71 | $ref: >- 72 | https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-fet-latency.yaml#/definitions/FlightEssentialTelemetryLatency 73 | responses: 74 | '200': 75 | description: Data received. No content returned. 76 | schema: 77 | $ref: >- 78 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 79 | '400': 80 | description: Bad request. Typically validation error. Fix your request and retry. 81 | schema: 82 | $ref: >- 83 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 84 | '401': 85 | description: Invalid or missing access_token provided. 86 | schema: 87 | $ref: >- 88 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 89 | '403': 90 | description: Forbidden. Do not retry with same access token. Reason not provided, but do you have the right scopes? Does uss_name match the sub claim? 91 | schema: 92 | $ref: >- 93 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 94 | 95 | delete: 96 | summary: Delete one or more (sensor,timeSent) pairs associated with a (call_sign,test_run) pair specified in metadata 97 | security: 98 | - ussapi_security: 99 | - utm.nasa.gov_write.message 100 | parameters: 101 | - in: body 102 | name: metaDataCallSignRunTsSensorLatency 103 | required: true 104 | schema: 105 | $ref: >- 106 | https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-fet-latency.yaml#/definitions/MetaDataCallSignRunTsSensorLatency 107 | description: DELETE one or more sensor data elements associated with pair (call_sign,test_run) 108 | responses: 109 | '410': 110 | description: Gone. 111 | schema: 112 | $ref: >- 113 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 114 | -------------------------------------------------------------------------------- /TCL4 Data Management/utm-tcl4-dmp-fet-latency.yaml: -------------------------------------------------------------------------------- 1 | info: 2 | version: "v1.0" 3 | title: UTM DMP TCL4 CNS 4 | description: Data model for CNS submission. 5 | contact: 6 | name: 'NASA Ames Research Center, Aviation Systems Division' 7 | url: 'https://utmregistry.arc.nasa.gov/' 8 | email: jaewoo.jung@nasa.gov 9 | license: 10 | name: NASA Open Source Agreement 11 | url: 'https://ti.arc.nasa.gov/opensource/nosa/' 12 | termsOfService: >- 13 | A. No Warranty: THE SUBJECT SOFTWARE IS PROVIDED \"AS IS\" WITHOUT ANY 14 | WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, 15 | BUT NOT LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO 16 | SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 17 | PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT THE 18 | SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF 19 | PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN 20 | ANY MANNER, CONSTITUTE AN ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR 21 | RECIPIENT OF ANY RESULTS, RESULTING DESIGNS, HARDWARE, SOFTWARE PRODUCTS OR 22 | ANY OTHER APPLICATIONS RESULTING FROM USE OF THE SUBJECT SOFTWARE. FURTHER, 23 | GOVERNMENT AGENCY DISCLAIMS ALL WARRANTIES AND LIABILITIES REGARDING 24 | THIRD-PARTY SOFTWARE, IF PRESENT IN THE ORIGINAL SOFTWARE, AND DISTRIBUTES 25 | IT \"AS IS.\" 26 | 27 | 28 | B. Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS 29 | AGAINST THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS 30 | WELL AS ANY PRIOR RECIPIENT. IF RECIPIENT''S USE OF THE SUBJECT SOFTWARE 31 | RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES, EXPENSES OR LOSSES ARISING 32 | FROM SUCH USE, INCLUDING ANY DAMAGES FROM PRODUCTS BASED ON, OR RESULTING 33 | FROM, RECIPIENT''S USE OF THE SUBJECT SOFTWARE, RECIPIENT SHALL INDEMNIFY 34 | AND HOLD HARMLESS THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND 35 | SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY 36 | LAW. RECIPIENT''S SOLE REMEDY FOR ANY SUCH MATTER SHALL BE THE IMMEDIATE, 37 | UNILATERAL TERMINATION OF THIS AGREEMENT. 38 | 39 | swagger: '2.0' 40 | 41 | paths: 42 | '/no-paths': 43 | put: 44 | responses: 45 | '410': 46 | description: >- 47 | Gone. Not implemented. Will not be implemented. Path included for 48 | proper use by automated tooling. Tools sometimes do not like 49 | when there are no paths, but domains do not contain paths. 50 | 51 | definitions: 52 | FlightEssentialTelemetryLatency: 53 | description: >- 54 | Flight essential telemetry latency measurements. 55 | Use this model for both UAS and crewed vehicles. 56 | List of required elements below: 57 | 58 | *ALL* enums are required for UA (see SensorList). 59 | Provide "MOTOR_#_CONTROL_THROTTLE_COMMAND_NONDIM" for each motor on UA (where "#" is the motor number ranging from 1 to 16) 60 | 61 | Required enums to submit for Crewed (see SensorList): 62 | - LAT 63 | - LON 64 | - ALT 65 | - HEADING_DEG 66 | - HDOP_NONDIM 67 | - VDOP_NONDIM 68 | - NUM_GPS_SATELLITES_IN_VIEW_NONDIM 69 | - NUM_GPS_SAT_NONDIM 70 | - GROUND_COURSE_DEG 71 | - GROUND_SPEED_FT_PER_SEC 72 | 73 | Refer to DMP for more details. 74 | 75 | required: 76 | - metaData 77 | - sensorLatencyTuple 78 | properties: 79 | metaData: 80 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/metaData' 81 | sensorLatencyTupleArray: 82 | description: >- 83 | An individual sensor latency sample: sensor, time_sent, & time_received 84 | type: array 85 | items: 86 | $ref: '#/definitions/SensorLatencyTuple' 87 | minItems: 1 88 | maxItems: 10000 89 | 90 | SensorLatencyTuple: 91 | description: >- 92 | Sensor latency tuple for a particular sensor measurement. Report the time 93 | that the sensor measurement was sent from the aircraft and the time that 94 | the sensor measurement was received by the GCS. Report only for the data 95 | listed in the dmp fet requirements list. 96 | required: 97 | - sensor 98 | - time_sent 99 | - time_received 100 | properties: 101 | time_sent: 102 | description: >- 103 | Time sensor measurement was sent by aircraft. 104 | type: string 105 | format: date-time 106 | minLength: 24 107 | maxLength: 24 108 | pattern: "^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{3})Z$" 109 | example: '2015-08-20T14:11:56.118Z' 110 | time_received: 111 | description: >- 112 | Time sensor measurement was received by: GCS (if UA) or DAA system (if crewed). 113 | See DMP for more detailed description. 114 | type: string 115 | format: date-time 116 | minLength: 24 117 | maxLength: 24 118 | pattern: "^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{3})Z$" 119 | example: '2015-08-20T14:11:56.118Z' 120 | sensor: 121 | description: >- 122 | Refer to DMP for individual definitions of each of these sensors. 123 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/SensorList' 124 | 125 | MetaDataCallSignRunTsSensorLatency: 126 | description: >- 127 | Data model used to delete a fet-latency instance. 128 | required: 129 | - metaDataCallSignRun 130 | - sensorDoubleLatencyArray 131 | properties: 132 | metaDataCallSignRun: 133 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/MetaDataCallSignRun' 134 | sensorDoubleLatencyArray: 135 | description: >- 136 | An array of SensorDoubleLatency models to delete 137 | type: array 138 | items: 139 | $ref: '#/definitions/SensorDoubleLatency' 140 | minItems: 1 141 | maxItems: 10000 142 | 143 | SensorDoubleLatency: 144 | description: >- 145 | Sensor double latency 146 | required: 147 | - timeSent 148 | - sensor 149 | properties: 150 | timeSent: 151 | description: >- 152 | Time sent for this sample. 153 | type: string 154 | format: date-time 155 | minLength: 24 156 | maxLength: 24 157 | pattern: "^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{3})Z$" 158 | example: '2015-08-20T14:11:56.118Z' 159 | sensor: 160 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/SensorList' 161 | -------------------------------------------------------------------------------- /TCL4 Data Management/utm-tcl4-dmp-fet.yaml: -------------------------------------------------------------------------------- 1 | info: 2 | version: "v1.0" 3 | title: UTM DMP TCL4 FET 4 | description: Data model for FET submission. 5 | contact: 6 | name: 'NASA Ames Research Center, Aviation Systems Division' 7 | url: 'https://utmregistry.arc.nasa.gov/' 8 | email: abraham.k.ishihara@nasa.gov 9 | license: 10 | name: NASA Open Source Agreement 11 | url: 'https://ti.arc.nasa.gov/opensource/nosa/' 12 | termsOfService: >- 13 | A. No Warranty: THE SUBJECT SOFTWARE IS PROVIDED \"AS IS\" WITHOUT ANY 14 | WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, 15 | BUT NOT LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO 16 | SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 17 | PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT THE 18 | SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF 19 | PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN 20 | ANY MANNER, CONSTITUTE AN ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR 21 | RECIPIENT OF ANY RESULTS, RESULTING DESIGNS, HARDWARE, SOFTWARE PRODUCTS OR 22 | ANY OTHER APPLICATIONS RESULTING FROM USE OF THE SUBJECT SOFTWARE. FURTHER, 23 | GOVERNMENT AGENCY DISCLAIMS ALL WARRANTIES AND LIABILITIES REGARDING 24 | THIRD-PARTY SOFTWARE, IF PRESENT IN THE ORIGINAL SOFTWARE, AND DISTRIBUTES 25 | IT \"AS IS.\" 26 | 27 | 28 | B. Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS 29 | AGAINST THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS 30 | WELL AS ANY PRIOR RECIPIENT. IF RECIPIENT''S USE OF THE SUBJECT SOFTWARE 31 | RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES, EXPENSES OR LOSSES ARISING 32 | FROM SUCH USE, INCLUDING ANY DAMAGES FROM PRODUCTS BASED ON, OR RESULTING 33 | FROM, RECIPIENT''S USE OF THE SUBJECT SOFTWARE, RECIPIENT SHALL INDEMNIFY 34 | AND HOLD HARMLESS THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND 35 | SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY 36 | LAW. RECIPIENT''S SOLE REMEDY FOR ANY SUCH MATTER SHALL BE THE IMMEDIATE, 37 | UNILATERAL TERMINATION OF THIS AGREEMENT. 38 | 39 | swagger: '2.0' 40 | 41 | paths: 42 | '/no-paths': 43 | put: 44 | responses: 45 | '410': 46 | description: >- 47 | Gone. Not implemented. Will not be implemented. Path included for 48 | proper use by automated tooling. Tools sometimes do not like 49 | when there are no paths, but domains do not contain paths. 50 | 51 | definitions: 52 | 53 | FlightEssentialTelemetryAndUasStates: 54 | description: >- 55 | Flight essential telemetry and UAS state data. 56 | Use this model for both UAS and crewed vehicles. 57 | List of required elements below: 58 | 59 | *ALL* enums are required for UA (see SensorList). 60 | Provide "MOTOR_#_CONTROL_THROTTLE_COMMAND_NONDIM" for each motor on UA (where "#" is the motor number ranging from 1 to 16) 61 | 62 | Required enums to submit for Crewed (see SensorList): 63 | - LAT 64 | - LON 65 | - ALT 66 | - HEADING_DEG 67 | - HDOP_NONDIM 68 | - VDOP_NONDIM 69 | - NUM_GPS_SATELLITES_IN_VIEW_NONDIM 70 | - NUM_GPS_SAT_NONDIM 71 | - GROUND_COURSE_DEG 72 | - GROUND_SPEED_FT_PER_SEC 73 | 74 | Refer to DMP for more details. 75 | 76 | required: 77 | - metaData 78 | - sensorTuple 79 | properties: 80 | metaData: 81 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/metaData' 82 | sensorTuple: 83 | description: >- 84 | An individual sensor sample: timestamp, sensor, & value 85 | type: array 86 | items: 87 | $ref: '#/definitions/SensorTuple' 88 | minItems: 1 89 | maxItems: 10000 90 | 91 | SensorTuple: 92 | description: >- 93 | An individual sample of a sensor. See DMP spreadsheet for definitions of 94 | the various enum values. 95 | 96 | Each sensor will have its own requirements on sample frequency. 97 | 98 | NOTE: If 'sensor' = "AIRCRAFT_AIRBORNE_STATE_NONDIM" then 'value' = 0 or 1 99 | 0 = on ground 100 | 1 = in air 101 | Report at least 1 Hz frequency. 102 | required: 103 | - timestamp 104 | - sensor 105 | - value 106 | properties: 107 | timestamp: 108 | description: >- 109 | Time for this sample. 110 | type: string 111 | format: date-time 112 | minLength: 24 113 | maxLength: 24 114 | pattern: "^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{3})Z$" 115 | example: '2015-08-20T14:11:56.118Z' 116 | value: 117 | type: number 118 | format: double 119 | description: >- 120 | Value of sensor reading. 121 | sensor: 122 | description: >- 123 | Refer to DMP for individual definitions and units of each of these sensors. 124 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/SensorList' 125 | 126 | MetaDataCallSignRunTsSensor: 127 | description: >- 128 | Data model used to delete a fet instance. 129 | required: 130 | - metaDataCallSignRun 131 | - sensor_double 132 | properties: 133 | metaDataCallSignRun: 134 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/MetaDataCallSignRun' 135 | sensor_double: 136 | description: >- 137 | An array of SensorDouble models to delete. 138 | type: array 139 | items: 140 | $ref: '#/definitions/SensorDouble' 141 | minItems: 1 142 | maxItems: 10000 143 | 144 | SensorDouble: 145 | description: >- 146 | An array of models to delete. 147 | required: 148 | - timestamp 149 | - sensor 150 | properties: 151 | timestamp: 152 | description: >- 153 | Time for this sample. 154 | type: string 155 | format: date-time 156 | minLength: 24 157 | maxLength: 24 158 | pattern: "^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{3})Z$" 159 | example: '2015-08-20T14:11:56.118Z' 160 | sensor: 161 | $ref: 'https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/SensorList' 162 | -------------------------------------------------------------------------------- /TCL4 Data Management/utm-tcl4-dmp-remote-id-api.yaml: -------------------------------------------------------------------------------- 1 | swagger: '2.0' 2 | info: 3 | description: >- 4 | "TCL4 will require the submission of test data. Some of these data are not readily collected via UTM means. This file describes the endpoints used for that data collection. These models are referenced in the Data Management Plan (DMP), so this API and associated models are referred to using the acronym 'DMP'" 5 | version: '0.1' 6 | title: "API endpoints for TCL4 Remote ID" 7 | termsOfService: > 8 | 9 | A. No Warranty: THE SUBJECT SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY 10 | WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, 11 | BUT NOT LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO 12 | SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 13 | PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT THE 14 | SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF 15 | PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN 16 | ANY MANNER, CONSTITUTE AN ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR 17 | RECIPIENT OF ANY RESULTS, RESULTING DESIGNS, HARDWARE, SOFTWARE PRODUCTS OR 18 | ANY OTHER APPLICATIONS RESULTING FROM USE OF THE SUBJECT SOFTWARE. FURTHER, 19 | GOVERNMENT AGENCY DISCLAIMS ALL WARRANTIES AND LIABILITIES REGARDING 20 | THIRD-PARTY SOFTWARE, IF PRESENT IN THE ORIGINAL SOFTWARE, AND DISTRIBUTES 21 | IT "AS IS." 22 | 23 | 24 | B. Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS 25 | AGAINST THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS 26 | WELL AS ANY PRIOR RECIPIENT. IF RECIPIENT''S USE OF THE SUBJECT SOFTWARE 27 | RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES, EXPENSES OR LOSSES ARISING 28 | FROM SUCH USE, INCLUDING ANY DAMAGES FROM PRODUCTS BASED ON, OR RESULTING 29 | FROM, RECIPIENT''S USE OF THE SUBJECT SOFTWARE, RECIPIENT SHALL INDEMNIFY 30 | AND HOLD HARMLESS THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND 31 | SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY 32 | LAW. RECIPIENT''S SOLE REMEDY FOR ANY SUCH MATTER SHALL BE THE IMMEDIATE, 33 | UNILATERAL TERMINATION OF THIS AGREEMENT. 34 | contact: 35 | name: 'NASA Ames Research Center, Aviation Systems Division' 36 | url: 'https://utm.arc.nasa.gov/' 37 | email: joseph.rios@nasa.gov 38 | license: 39 | name: NASA Open Source Agreement 40 | url: 'https://ti.arc.nasa.gov/opensource/nosa/' 41 | 42 | host: utmregistry.arc.nasa.gov. 43 | basePath: /api/v4 44 | schemes: 45 | - https 46 | 47 | securityDefinitions: 48 | ussapi_security: 49 | type: oauth2 50 | tokenUrl: 'https://utm.defined.host/oauth/token' 51 | flow: application 52 | scopes: 53 | 'utm.nasa.gov_write.message': Subject can read, create, and update message data such as UTM Message and Negotiations and DMP data 54 | 55 | paths: 56 | '/remote-id': 57 | delete: 58 | summary: Delete an array of previously uploaded remote id instances. 59 | security: 60 | - ussapi_security: 61 | - utm.nasa.gov_write.message 62 | parameters: 63 | - in: body 64 | name: remoteIdArray 65 | required: true 66 | schema: 67 | type: array 68 | items: 69 | $ref: >- 70 | https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-common.yaml#/definitions/UUID 71 | description: Delete models of remote ID. 72 | responses: 73 | '410': 74 | description: Gone. 75 | schema: 76 | $ref: >- 77 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 78 | 79 | post: 80 | summary: Upload an array of models 81 | security: 82 | - ussapi_security: 83 | - utm.nasa.gov_write.message 84 | consumes: 85 | - application/json 86 | parameters: 87 | - in: body 88 | name: DataModelArray 89 | description: Upload an array of models 90 | required: true 91 | schema: 92 | type: array 93 | items: 94 | $ref: >- 95 | https://raw.githubusercontent.com/nasa/utm-docs/master/TCL4%20Data%20Management/utm-tcl4-dmp-remote-id.yaml#/definitions/RemoteID 96 | 97 | responses: 98 | '200': 99 | description: Data received. No content returned. 100 | schema: 101 | $ref: >- 102 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 103 | '400': 104 | description: Bad request. Typically validation error. Fix your request and retry. 105 | schema: 106 | $ref: >- 107 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 108 | '401': 109 | description: Invalid or missing access_token provided. 110 | schema: 111 | $ref: >- 112 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 113 | '403': 114 | description: Forbidden. Do not retry with same access token. Reason not provided, but do you have the right scopes? Does uss_name match the sub claim? 115 | schema: 116 | $ref: >- 117 | https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/UTMRestResponse 118 | -------------------------------------------------------------------------------- /TCL4 Data Management/utm-tcl4-dmp-remote-id.yaml: -------------------------------------------------------------------------------- 1 | info: 2 | description: >- 3 | "TCL4 will require the submission of test data. Some of these data are not 4 | readily collected via UTM means. The models presented in this domain are in 5 | support of such data that are not readily collected otherwise. Some of 6 | these data will be collected live, some after testing, but all should be 7 | collected as a soon as feasible. Further details will be provided in other 8 | testing documentation." 9 | version: "VF" 10 | title: "Domain for Remote ID Data" 11 | contact: 12 | name: 'NASA Ames Research Center, Aviation Systems Division' 13 | url: 'https://utm.arc.nasa.gov/' 14 | email: joseph.rios@nasa.gov 15 | swagger: "2.0" 16 | paths: 17 | '/no-paths': 18 | put: 19 | responses: 20 | '410': 21 | description: >- 22 | Gone. Not implemented. Will not be implemented. Path included for 23 | proper use by automated tooling. Tools sometimes do not like 24 | when there are no paths, but domains do not contain paths. 25 | definitions: 26 | RemoteID: 27 | description: >- 28 | An instance of this model should be submitted every time an attempt is made 29 | to lookup or identify an operation via the USSNetwork or non-USSNetwork. Note that this might 30 | mean several instances for a single gufi if several lookups are performed. 31 | The timeline of events for Networked Remote ID detection must be = time_of_identification_initiation, time_of_detection, network_lookup_start_time, network_lookup_end_time, locate_operator_time, contact_operator_time. 32 | The timeline of events for Non-Networked Remote ID detection must be = time_of_identification_initiation, time_of_detection, locate_operator_time, contact_operator_time 33 | required: 34 | - "remote_id" 35 | - "gufi" 36 | - "detection_technology" 37 | - "broadcast_technology" 38 | - "network_lookup" 39 | - "operator_contact_attempted" 40 | - "detection_position" 41 | - "detection_altitude" 42 | - "detection_position_method" 43 | - "vehicle_position" 44 | - "vehicle_altitude" 45 | - "vehicle_position_method" 46 | - "time_of_identification_initiation" 47 | - "time_of_detection" 48 | properties: 49 | remote_id: 50 | description: >- 51 | A UUID assigned by the reporting USS for this instance of RemoteID. 52 | type: string 53 | format: uuid 54 | maxLength: 36 55 | minLength: 36 56 | pattern: "^[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-4[0-9a-fA-F]{3}\\-[8-b][0-9a-fA-F]{3}\\-[0-9a-fA-F]{12}$" 57 | example: "00000000-0000-4444-8888-FEEDDEADBEEF" 58 | gufi: 59 | description: >- 60 | GUFI of the operation that is looked up. 61 | If the GUFI does not exist (in a non-cooperative lookup, for example) 62 | use 00000000-0000-4444-8888-000000000000. 63 | type: string 64 | format: uuid 65 | maxLength: 36 66 | minLength: 36 67 | pattern: "^[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-4[0-9a-fA-F]{3}\\-[8-b][0-9a-fA-F]{3}\\-[0-9a-fA-F]{12}$" 68 | example: "00000000-0000-4444-8888-FEEDDEADBEEF" 69 | detection_technology: 70 | description: >- 71 | Brief description of technology used to detect the operation. This 72 | is most applicable in "broadcast" approaches where the UA is emitting 73 | information in some manner, thus requiring some device to detect that 74 | emission. In the case that no device or technology is used (maybe 75 | just eyeballs), something like "VISUAL" is an appropriate response. 76 | Consistency is important in this field for analysis purposes, so 77 | use the same string whenever the same technology is used. 78 | 79 | If a ground-based Remote ID device is used, report the following: 80 | "Remote Terrestrial Identification of UAS through [XYZ] Technology" 81 | (where "XYZ" is the technology used). 82 | 83 | type: "string" 84 | maxLength: 1000 85 | broadcast_technology: 86 | description: >- 87 | Brief description of the technology used to broadcast information from 88 | the UA. If no broadcast technology is used, "NONE" is an 89 | appropriate response. 90 | Consistency is important in this field for analysis purposes, so 91 | use the same string whenever the same technology is used. 92 | type: "string" 93 | maxLength: 1000 94 | network_lookup: 95 | description: Was USS Network used to look up this operation? 96 | type: boolean 97 | network_lookup_provided_expected_response: 98 | description: >- 99 | If USS Network used to look up this operation, did it return the expected 100 | result? This means that if a negative result was expected and received 101 | this value would be 'true'. 102 | Required when network_lookup == true. 103 | type: boolean 104 | operator_contact_attempted: 105 | description: >- 106 | Was there a goal or attempt to locate and contact the operator? 107 | type: boolean 108 | operator_located_successful: 109 | description: >- 110 | Was the position of the operator correctly obtained? 111 | Required when operator_contact_attempted == true 112 | type: boolean 113 | operator_contact_successful: 114 | description: >- 115 | Was the position of the operator contacted? 116 | Required when operator_contact_attempted == true 117 | If operator_located_successful == false 118 | then operator_contact_attempted == false 119 | type: boolean 120 | detection_position: 121 | description: Where was the device/person that detected the UAS? 122 | $ref: 'https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-geojson.yaml#/definitions/Point' 123 | detection_altitude: 124 | description: What altitude/elevation was the device/person that detected the UAS? 125 | $ref: 'https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/Altitude' 126 | detection_position_method: 127 | description: >- 128 | Was the position of the device/person measured or estimated? 129 | type: "string" 130 | enum: 131 | - MEASURED 132 | - ESTIMATED 133 | example: "MEASURED" 134 | vehicle_position: 135 | description: Where was the UAS when it was detected? 136 | $ref: 'https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-geojson.yaml#/definitions/Point' 137 | vehicle_altitude: 138 | description: At what altitude was the UAS when it was detected? 139 | $ref: 'https://raw.githubusercontent.com/nasa/utm-apis/v4-draft/utm-domains/utm-domain-commons.yaml#/definitions/Altitude' 140 | vehicle_position_method: 141 | description: Was the position of the UAS measured or estimated? 142 | type: "string" 143 | enum: 144 | - MEASURED 145 | - ESTIMATED 146 | example: "MEASURED" 147 | time_of_identification_initiation: 148 | description: >- 149 | Time the device/person started the process of trying to identify 150 | a UA. This could be time a detection device was powered on or the 151 | time at which the decision is made to try and identify a UA. 152 | type: string 153 | format: date-time 154 | minLength: 24 155 | maxLength: 24 156 | pattern: "^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{3})Z$" 157 | example: '2015-08-20T14:11:56.118Z' 158 | time_of_detection: 159 | description: >- 160 | Time the vehicle was detected by the device. If visual detection only, 161 | it is expected this value is an estimate. 162 | type: string 163 | format: date-time 164 | minLength: 24 165 | maxLength: 24 166 | pattern: "^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{3})Z$" 167 | example: '2015-08-20T14:11:56.118Z' 168 | network_lookup_start_time: 169 | description: >- 170 | If USS Network used to look up this operation, at what 171 | time did the lookup begin? 172 | Required when network_lookup == true. 173 | type: string 174 | format: date-time 175 | minLength: 24 176 | maxLength: 24 177 | pattern: "^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{3})Z$" 178 | example: '2015-08-20T14:11:56.118Z' 179 | network_lookup_end_time: 180 | description: >- 181 | If USS Network used to look up this operation, at what time did the 182 | lookup return? 183 | Required when network_lookup == true. 184 | type: string 185 | format: date-time 186 | minLength: 24 187 | maxLength: 24 188 | pattern: "^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{3})Z$" 189 | example: '2015-08-20T14:11:56.118Z' 190 | locate_operator_time: 191 | description: >- 192 | Time when the operator of the Remote ID device has located the operator of the vehicle of interest. 193 | Required when operator_located_successful == true 194 | type: string 195 | format: date-time 196 | minLength: 24 197 | maxLength: 24 198 | pattern: "^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{3})Z$" 199 | example: '2015-08-20T14:11:56.118Z' 200 | contact_operator_time: 201 | description: >- 202 | Time when the operator of the Remote ID device has contacted the operator of the vehicle of interest. 203 | Required when operator_contact_successful == true 204 | type: string 205 | format: date-time 206 | minLength: 24 207 | maxLength: 24 208 | pattern: "^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{3})Z$" 209 | example: '2015-08-20T14:11:56.118Z' 210 | notes: 211 | type: string 212 | maxLength: 3000 213 | minLength: 1 214 | -------------------------------------------------------------------------------- /TCL4 Data Management/utm-tcl4-sdsp-models.yaml: -------------------------------------------------------------------------------- 1 | info: 2 | description: >- 3 | "TCL4 will require the submission of test data. Some of these data are not 4 | readily collected via UTM means. The models presented in this domain are in 5 | support of such data that are not readily collected otherwise. Some of 6 | these data will be collected live, some after testing, but all should be 7 | collected as a soon as feasible. Further details will be provided in other 8 | testing documentation." 9 | version: 'v1' 10 | title: "Domain for UAS State data." 11 | contact: 12 | name: 'NASA Ames Research Center, Aviation Systems Division' 13 | url: 'https://utm.arc.nasa.gov/' 14 | email: joseph.rios@nasa.gov 15 | 16 | swagger: '2.0' 17 | 18 | paths: 19 | '/no-paths': 20 | put: 21 | responses: 22 | '410': 23 | description: >- 24 | Gone. Not implemented. Will not be implemented. Path included for 25 | proper use by automated tooling. Tools sometimes do not like 26 | when there are no paths, but domains do not contain paths. 27 | 28 | definitions: 29 | CellSample: 30 | description: >- 31 | Time dependent battery cell data for an Operation. 32 | required: 33 | - "cell_sample_id" 34 | - "gufi" 35 | - "battery_id" 36 | - "cell_id" 37 | - "timestamp" 38 | - "cell_voltage" 39 | - "cell_current" 40 | - "battery_temperature" 41 | properties: 42 | cell_sample_id: 43 | description: >- 44 | Identifier for this cell sample instance. Unique for each submission. 45 | type: string 46 | format: uuid 47 | maxLength: 36 48 | minLength: 36 49 | pattern: "^[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-4[0-9a-fA-F]{3}\\-[8-b][0-9a-fA-F]{3}\\-[0-9a-fA-F]{12}$" 50 | example: "00000000-0000-4444-8888-FEEDDEADBEEF" 51 | gufi: 52 | description: GUFI of the operation that is the source of these data. 53 | type: string 54 | format: uuid 55 | maxLength: 36 56 | minLength: 36 57 | pattern: "^[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-4[0-9a-fA-F]{3}\\-[8-b][0-9a-fA-F]{3}\\-[0-9a-fA-F]{12}$" 58 | example: "00000000-0000-4444-8888-FEEDDEADBEEF" 59 | battery_id: 60 | description: >- 61 | An integer identifier for this battery. For the referenced gufi, 62 | this identifier MUST map to the same physical battery across all 63 | battery_sample_ids. For example, if the vehicle has 6 batteries on board as 64 | well as 12 batteries in reserve on the ground, and the vehicle is 65 | used in an operation with gufi 00000000-0000-4444-8888-FEEDDEADBEEF, then 66 | every time there is an instance of this model with the pairing of 67 | 00000000-0000-4444-8888-FEEDDEADBEEF and battery 3, we will assume that 68 | battery 3 is always the same battery. Ideally, the operator would use 69 | the same battery number across all of its platforms and missions. 70 | This would be helpful in cases where 71 | there are many batteries that a UAS may employ for a given Operation and 72 | the set of physical batteries may vary Operation to Operation. It also 73 | helps when UAS platforms may share a collection of batteries so the 74 | data would show how a particular battery performed across all operations 75 | and platforms. 76 | type: integer 77 | format: int32 78 | minimum: 1 79 | maximum: 9999 80 | example: 3 81 | cell_id: 82 | description: >- 83 | An integer identifier for this cell within this battery. For the referenced gufi, 84 | this identifier MUST map to the same physical cell across all 85 | cell_sample_ids. For example, if the vehicle has 100 cell across all of its batteries, and is 86 | used in an operation with gufi 00000000-0000-4444-8888-FEEDDEADBEEF, then 87 | every time there is an instance of this model with the pairing of 88 | 00000000-0000-4444-8888-FEEDDEADBEEF and cell 3, we will assume that 89 | cell 3 is always the same cell. This should hold across operations and 90 | vehicles as well for this cell (i.e. always use the same mapping of cell numbers 91 | for a given battery.) 92 | type: integer 93 | format: int32 94 | minimum: 1 95 | maximum: 9999 96 | example: 3 97 | timestamp: 98 | description: >- 99 | Time for the sample battery data. The same time source MUST be used 100 | for each sample for this operation. 101 | type: string 102 | format: date-time 103 | minLength: 24 104 | maxLength: 24 105 | pattern: "^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{3})Z$" 106 | example: '2015-08-20T14:11:56.118Z' 107 | cell_voltage: 108 | description: Voltage for this battery at this timestamp. In Volts. 109 | type: number 110 | format: float 111 | minimum: 0.0 112 | example: 4.53 113 | cell_current: 114 | description: Current for this battery at this timestamp. In Amps. 115 | type: number 116 | format: float 117 | minimum: 0.0 118 | example: 4.53 119 | battery_temperature: 120 | description: Temperature of the battery housing this cell at this timestamp. In Celsius. 121 | type: number 122 | format: float 123 | example: 31.3 124 | RotorSample: 125 | description: >- 126 | Time dependent rotor data for an Operation. 127 | required: 128 | - "rotor_sample_id" 129 | - "gufi" 130 | - "rotor_id" 131 | - "rpm" 132 | - "control_throttle_command" 133 | - "timestamp" 134 | properties: 135 | rotor_sample_id: 136 | description: >- 137 | Identifier for this rotor data instance. Unique for each submission. 138 | type: string 139 | format: uuid 140 | maxLength: 36 141 | minLength: 36 142 | pattern: "^[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-4[0-9a-fA-F]{3}\\-[8-b][0-9a-fA-F]{3}\\-[0-9a-fA-F]{12}$" 143 | example: "00000000-0000-4444-8888-FEEDDEADBEEF" 144 | gufi: 145 | description: GUFI of the operation that is the source of these data. 146 | type: string 147 | format: uuid 148 | maxLength: 36 149 | minLength: 36 150 | pattern: "^[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-4[0-9a-fA-F]{3}\\-[8-b][0-9a-fA-F]{3}\\-[0-9a-fA-F]{12}$" 151 | example: "00000000-0000-4444-8888-FEEDDEADBEEF" 152 | rotor_id: 153 | description: >- 154 | An integer identifier for the rotor that generated these data. Identifier 155 | must reference the same physical rotor across this and all operations for 156 | the same physical vehicle. 157 | type: integer 158 | format: int32 159 | minimum: 1 160 | maximum: 9999 161 | example: 3 162 | rpm: 163 | description: >- 164 | Rotations per minute for this rotor at this timestamp. 165 | type: integer 166 | format: int32 167 | minimum: 0 168 | example: 12915 169 | control_throttle_command: 170 | description: >- 171 | Current throttle command at this timestamp. 172 | format: string 173 | timestamp: 174 | description: >- 175 | Time for the rotor data. The same time source MUST be used 176 | for each sample for this operation. 177 | type: string 178 | format: date-time 179 | minLength: 24 180 | maxLength: 24 181 | pattern: "^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{3})Z$" 182 | example: '2015-08-20T14:11:56.118Z' 183 | -------------------------------------------------------------------------------- /etm/ess-interface-spec/README.md: -------------------------------------------------------------------------------- 1 | # ESS-ESS API 2 | 3 | ## Comparing to UTM 4 | 5 | The base version is from the ASTM WG for UTM , currently likely to be the 1.0 baseline. 6 | 7 | ```` 8 | https://github.com/astm-utm/Protocol/blob/master/utm.yaml 9 | 47b7b2e8d720c7ea8df9e90bc90b10c7181a448b 10 | 11 | ```` 12 | -------------------------------------------------------------------------------- /etm/operator-interface-spec/README.md: -------------------------------------------------------------------------------- 1 | # ETM Operator API 2 | 3 | ## Comparing to the UTM base 4 | 5 | The base commit ID is taken from UTM's Operator API last commit on Jan 2021 6 | 7 | ```` 8 | commit c125d198286b92cb92d3349924c40a21325943ef 9 | Author: Fu-Tai Shih 10 | Date: Thu Jan 7 16:42:45 2021 -0800 11 | ```` 12 | --------------------------------------------------------------------------------