Skip to content

Commit dcc9892

Browse files
authored
Merge pull request #9 from pdowler/table-ops
Seems like there's consensus on this.
2 parents 1c6e496 + 93b1243 commit dcc9892

14 files changed

Lines changed: 263 additions & 8 deletions

openapi-linter

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/bin/bash
2+
3+
if [[ "$1" == "-it" ]]; then
4+
docker run -it --rm -v $PWD:/work:ro dshanley/vacuum /bin/bash
5+
else
6+
docker run --rm -v $PWD:/work:ro dshanley/vacuum lint --no-clip -d openapi.yaml
7+
fi
8+
Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,29 @@ info:
55
description: This is an example of using VOSI-1.2 components.
66
servers:
77
- url: /example
8+
9+
tags:
10+
- name: VOSI Capabilities
11+
- name: VOSI Table Metadata
12+
- name: VOSI Table Operations
13+
814
paths:
915
# notes: this is how another service like TAP would include VOSI endpoints using
1016
# a local copy; the commented out $ref to a standard location would also work
1117
/tables:
12-
$ref: ./vosi-tableset.yaml
18+
$ref: ./openapi/vosi/vosi-tableset.yaml
1319
#$ref: https://ivoa.net/std/VOSI/vosi-tableset.yaml
1420
/tables/{name}:
15-
$ref: ./vosi-table.yaml
21+
$ref: ./openapi/vosi/vosi-table.yaml
1622
#$ref: https://ivoa.net/std/VOSI/vosi-table.yaml
23+
1724
/capabilities:
18-
$ref: ./paths/vosi-capabilities.yaml
25+
$ref: ./openapi/vosi/vosi-capabilities.yaml
1926
#$ref: https://ivoa.net/std/VOSI/vosi-capabilities.yaml
27+
28+
/table-ops:
29+
$ref: ./openapi/vosi/vosi-table-ops.yaml
30+
/table-ops/{jobID}:
31+
$ref: ./openapi/vosi/vosi-table-ops-job.yaml
32+
/table-ops/{jobID}/phase:
33+
$ref: ./openapi/vosi/vosi-table-ops-job-phase.yaml

openapi/uws/uws-after-param.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
name: AFTER
2+
in: query
3+
description: list jobs with creationTime after the specified value
4+
required: false
5+
schema:
6+
type: string
7+
format: date-time
8+
example: "2017-07-21T17:32:28Z"

openapi/uws/uws-jobid-param.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
name: jobID
2+
in: path
3+
description: unique job identifier generated by the server
4+
required: true
5+
schema:
6+
type: string
7+
example: a1b2c3

openapi/uws/uws-last-param.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
name: LAST
2+
in: query
3+
description: |
4+
limit the number of jobs listed to the specified value; use of LAST
5+
also causes the server to return jobs in order of creationTime (descending)
6+
with the most recent jobs first
7+
required: false
8+
schema:
9+
type: integer
10+
minimum: 0
11+
example: 10
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
name: PHASE
2+
in: query
3+
description: attempt to change the phase
4+
required: true
5+
schema:
6+
type: string
7+
enum: [ABORT, RUN]
8+
example: RUN

openapi/uws/uws-phase-param.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
name: PHASE
2+
in: query
3+
description: list jobs in this execution phase
4+
required: false
5+
schema:
6+
type: string
7+
example: "EXECUTING"

openapi/uws/uws-responses.yaml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# UWS create job response
2+
created:
3+
description: standard UWS 1.1 redirect to the created job URL
4+
headers:
5+
location:
6+
schema:
7+
type: string
8+
format: uri
9+
invalid-phase-change:
10+
description: the requested phase change is invalid
11+
content:
12+
text/plain:
13+
schema:
14+
type: string
15+
job-listing:
16+
description: list of jobs owned by the caller
17+
content:
18+
text/xml:
19+
schema:
20+
type: string
21+
xml:
22+
name: jobs
23+
prefix: uws
24+
namespace: http://www.ivoa.net/xml/UWS/v1.0
25+
example: |
26+
<uws:jobs xmlns:uws="http://www.ivoa.net/xml/UWS/v1.0" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
27+
<uws:jobref id="loqqxg8jlah0r8wp">
28+
<uws:phase>PENDING</uws:phase>
29+
<uws:runId>TEST</uws:runId>
30+
<uws:ownerId>somebody</uws:ownerId>
31+
<uws:creationTime>2024-07-16T16:38:33.090Z</uws:creationTime>
32+
</uws:jobref>
33+
...
34+
</uws:jobs>
35+
36+
job:
37+
description: a single UWS Job
38+
content:
39+
text/xml:
40+
schema:
41+
type: string
42+
xml:
43+
name: job
44+
prefix: uws
45+
namespace: http://www.ivoa.net/xml/UWS/v1.0
46+
example: |
47+
<uws:job xmlns:uws="http://www.ivoa.net/xml/UWS/v1.0" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
48+
<uws:jobId>loqqxg8jlah0r8wp</uws:jobId>
49+
<uws:ownerId>somebody</uws:ownerId>
50+
<uws:phase>PENDING</uws:phase>
51+
<uws:quote>2024-07-17T16:38:33.089Z</uws:quote>
52+
<uws:creationTime>2024-07-16T16:38:33.090Z</uws:creationTime>
53+
<uws:startTime xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" />
54+
<uws:endTime xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" />
55+
<uws:executionDuration>28800</uws:executionDuration>
56+
<uws:destruction>2024-07-23T16:38:33.089Z</uws:destruction>
57+
<uws:parameters />
58+
<uws:results />
59+
</uws:job>
60+
61+

openapi/uws/uws-wait-param.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
name: WAIT
2+
in: query
3+
description: wait for the specified time in seconds or until the phase changes
4+
required: false
5+
schema:
6+
type: integer
7+
example: 60
8+

openapi/vosi/vosi-capabilities.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ components:
3737
content:
3838
text/xml:
3939
schema:
40-
type: object
40+
type: string
4141
xml:
4242
name: capabilities
4343
prefix: vosi
4444
namespace: http://www.ivoa.net/xml/VOSICapabilities/v1.0
45-
example: |
46-
<vosi:capabilities xmlns:vosi="http://www.ivoa.net/xml/VOSICapabilities/v1.0"
45+
example: |
46+
<vosi:capabilities xmlns:vosi="http://www.ivoa.net/xml/VOSICapabilities/v1.0"
4747
xmlns:vr="http://www.ivoa.net/xml/VOResource/v1.0"
4848
xmlns:vs="http://www.ivoa.net/xml/VODataService/v1.1"
4949
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
@@ -53,4 +53,4 @@ components:
5353
</interface>
5454
</capability>
5555
...
56-
</vosi:capabilities>
56+
</vosi:capabilities>

0 commit comments

Comments
 (0)