diff --git a/openapi-example.yaml b/openapi-example.yaml
index 86c736c..211a8c8 100644
--- a/openapi-example.yaml
+++ b/openapi-example.yaml
@@ -1,8 +1,8 @@
openapi: 3.1.0
info:
title: VOSI endpoints
- version: "1.1"
- description: This is more or less the current VOSAI-1.1 standard.
+ version: "1.2"
+ description: This is an example of using VOSI-1.2 components.
servers:
- url: /example
paths:
@@ -14,10 +14,6 @@ paths:
/tables/{name}:
$ref: ./vosi-table.yaml
#$ref: https://ivoa.net/std/VOSI/vosi-table.yaml
-
- /availability:
- $ref: ./paths/vosi-availability.yaml
- #$ref: https://ivoa.net/std/VOSI/vosi-availability.yaml
/capabilities:
$ref: ./paths/vosi-capabilities.yaml
#$ref: https://ivoa.net/std/VOSI/vosi-capabilities.yaml
diff --git a/openapi/vosi-table.yaml b/openapi/vosi-table.yaml
deleted file mode 100644
index 4c5b4c4..0000000
--- a/openapi/vosi-table.yaml
+++ /dev/null
@@ -1,128 +0,0 @@
-get:
- operationId: read-table-metadata
- tags:
- - VOSI table metadata
- summary: get metadata for the specified table
- description: provides the table metadata for a single schema or table
- parameters:
- - in: path
- name: name
- description: a single schema name or table name as provided in tap_schema
- required: true
- schema:
- type: string
- responses:
- 200:
- $ref: '#/components/schemas/tableDoc'
- 401:
- $ref: ./vosi-std-responses.yaml#/not-authenticated
- 403:
- $ref: ./vosi-std-responses.yaml#/permission-denied
- 404:
- $ref: ./vosi-std-responses.yaml#/not-found
-post:
- operationId: update-table
- tags:
- - VOSI table metadata
- summary: proto - update table metadata and/or content (optional)
- description: update the table metadata from a table description; may include rows to append if input format supports it
- parameters:
- - in: path
- name: name
- description: the fully qualified name of the table to create
- required: true
- schema:
- type: string
- requestBody:
- description: a table description
- $ref: '#/components/schemas/tableDoc'
- responses:
- 204:
- description: table updated
- 400:
- $ref: ./vosi-std-responses.yaml#/bad-request
- 401:
- $ref: ./vosi-std-responses.yaml#/not-authenticated
- 403:
- $ref: ./vosi-std-responses.yaml#/permission-denied
- 404:
- $ref: ./vosi-std-responses.yaml#/not-found
- 405:
- $ref: ./vosi-std-responses.yaml#/not-implemented
- 413:
- $ref: ./vosi-std-responses.yaml#/too-large
-put:
- operationId: create-table
- tags:
- - VOSI table metadata
- summary: proto - create table (optional)
- description: create table from a table description; may include rows if input format supports it
- parameters:
- - in: path
- name: name
- description: the fully qualified name of the table to create
- required: true
- schema:
- type: string
- requestBody:
- description: a table description
- $ref: '#/components/schemas/tableDoc'
- responses:
- 201:
- description: table created
- 400:
- $ref: ./vosi-std-responses.yaml#/bad-request
- 401:
- $ref: ./vosi-std-responses.yaml#/not-authenticated
- 403:
- $ref: ./vosi-std-responses.yaml#/permission-denied
- 404:
- $ref: ./vosi-std-responses.yaml#/not-found
- 405:
- $ref: ./vosi-std-responses.yaml#/not-implemented
- 413:
- $ref: ./vosi-std-responses.yaml#/too-large
-delete:
- operationId: delete-table
- tags:
- - VOSI table metadata
- summary: proto - delete table (optional)
- description: delete table by name
- parameters:
- - name: name
- in: path
- description: the table to delete
- required: true
- schema:
- type: string
- responses:
- 204:
- description: table dropped
- 401:
- $ref: ./vosi-std-responses.yaml#/not-authenticated
- 403:
- $ref: ./vosi-std-responses.yaml#/permission-denied
- 404:
- $ref: ./vosi-std-responses.yaml#/not-found
- 405:
- $ref: ./vosi-std-responses.yaml#/not-implemented
-
-components:
- schemas:
- tableDoc:
- description: metadata for the specified schema or table
- content:
- text/xml:
- schema:
- type: object
- xml:
- name: table
- prefix: vosi
- namespace: http://www.ivoa.net/xml/VOSITables/v1.0
- application/x-votable+xml:
- schema:
- type: object
- xml:
- name: VOTABLE
- namespace: http://www.ivoa.net/xml/VOTable/v1.3
-
diff --git a/openapi/vosi-tableset.yaml b/openapi/vosi-tableset.yaml
deleted file mode 100644
index 4a27765..0000000
--- a/openapi/vosi-tableset.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-get:
- operationId: get-tableset
- tags:
- - VOSI table metadata
- summary: VOSI TableSet
- description: Provides the table metadata in the form of a TableSet description
- parameters:
- - name: detail
- in: query
- description: level of detail requested
- required: false
- schema:
- type: string
- enum: [min, max]
- responses:
- 200:
- $ref: '#/components/schemas/tablesetDoc'
- 400:
- $ref: ./vosi-std-responses.yaml#/bad-request
- 401:
- $ref: ./vosi-std-responses.yaml#/not-authenticated
- 403:
- $ref: ./vosi-std-responses.yaml#/permission-denied
-
-components:
- schemas:
- tablesetDoc:
- description: metadata for schemas and tables
- content:
- text/xml:
- schema:
- type: object
- xml:
- name: tableset
- prefix: vosi
- namespace: http://www.ivoa.net/xml/VOSITables/v1.0
-
diff --git a/openapi/vosi-capabilities.yaml b/openapi/vosi/vosi-capabilities.yaml
similarity index 62%
rename from openapi/vosi-capabilities.yaml
rename to openapi/vosi/vosi-capabilities.yaml
index 4bc4731..b60a382 100644
--- a/openapi/vosi-capabilities.yaml
+++ b/openapi/vosi/vosi-capabilities.yaml
@@ -10,11 +10,11 @@ head:
applicable header information. SSO-next: clients use this operation to probe
for available authentication methods.
responses:
- 200:
+ '200':
$ref: ./vosi-std-responses.yaml#/authenticated
- 401:
+ '401':
$ref: ./vosi-std-responses.yaml#/not-authenticated
- 403:
+ '403':
$ref: ./vosi-std-responses.yaml#/permission-denied
get:
operationId: read-capabilities
@@ -23,11 +23,11 @@ get:
summary: VOSI Capabilities with SSO-next prototype
description: Get the set of VOResource capability descriptions for this service.
responses:
- 200:
+ '200':
$ref: '#/components/schemas/capabilities'
- 401:
+ '401':
$ref: ./vosi-std-responses.yaml#/not-authenticated
- 403:
+ '403':
$ref: ./vosi-std-responses.yaml#/permission-denied
components:
@@ -42,3 +42,15 @@ components:
name: capabilities
prefix: vosi
namespace: http://www.ivoa.net/xml/VOSICapabilities/v1.0
+ example: |
+
+
+
+ https://example.net/tap-service/capabilities
+
+
+ ...
+
diff --git a/openapi/vosi-std-responses.yaml b/openapi/vosi/vosi-std-responses.yaml
similarity index 100%
rename from openapi/vosi-std-responses.yaml
rename to openapi/vosi/vosi-std-responses.yaml
diff --git a/openapi/vosi/vosi-table-11.yaml b/openapi/vosi/vosi-table-11.yaml
new file mode 100644
index 0000000..21fb304
--- /dev/null
+++ b/openapi/vosi/vosi-table-11.yaml
@@ -0,0 +1,94 @@
+# this is the read-only /tables/{tableName} endpoint from VOSI-1.1
+get:
+ operationId: read-table-metadata
+ tags:
+ - VOSI Table Metadata
+ summary: get metadata for the specified table
+ description: provides the table metadata for a single schema or table
+ parameters:
+ - in: path
+ name: name
+ description: a single schema name or table name as provided in tap_schema
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ $ref: '#/components/schemas/tableDoc'
+ '401':
+ $ref: ./vosi-std-responses.yaml#/not-authenticated
+ '403':
+ $ref: ./vosi-std-responses.yaml#/permission-denied
+ '404':
+ $ref: ./vosi-std-responses.yaml#/not-found
+
+components:
+ schemas:
+ tableDoc:
+ description: metadata for the specified schema or table
+ content:
+ text/xml:
+ schema:
+ type: object
+ xml:
+ name: table
+ prefix: vosi
+ namespace: http://www.ivoa.net/xml/VOSITables/v1.0
+ example: |
+
+ tap_schema.schemas
+ description of schemas in this tableset
+
+ schema_name
+ schema name for reference to tap_schema.schemas
+ char
+ indexed
+
+
+ utype
+ lists the utypes of schemas in the tableset
+ char
+
+
+ description
+ describes schemas in the tableset
+ char
+
+
+ schema_index
+ recommended sort order when listing schemas
+ int
+
+
+
+ application/x-votable+xml:
+ schema:
+ type: object
+ xml:
+ name: VOTABLE
+ namespace: http://www.ivoa.net/xml/VOTable/v1.3
+ example: |
+
+
+
+
+ schema name for reference to tap_schema.schemas
+
+
+ lists the utypes of schemas in the tableset
+
+
+ describes schemas in the tableset
+
+
+ recommended sort order when listing schemas
+
+
+
+
+
+
diff --git a/openapi/vosi/vosi-table.yaml b/openapi/vosi/vosi-table.yaml
new file mode 100644
index 0000000..2bee655
--- /dev/null
+++ b/openapi/vosi/vosi-table.yaml
@@ -0,0 +1,180 @@
+# this is the VOSI-1.2 /tables/{tablename} endpoint
+get:
+ operationId: read-table-metadata
+ tags:
+ - VOSI Table Metadata
+ summary: get metadata for the specified table
+ description: provides the table metadata for a single schema or table
+ parameters:
+ - in: path
+ name: name
+ description: a single schema name or table name as provided in tap_schema
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ $ref: '#/components/schemas/tableDoc'
+ '401':
+ $ref: ./vosi-std-responses.yaml#/not-authenticated
+ '403':
+ $ref: ./vosi-std-responses.yaml#/permission-denied
+ '404':
+ $ref: ./vosi-std-responses.yaml#/not-found
+post:
+ operationId: update-table
+ tags:
+ - VOSI Table Metadata
+ summary: proto - update table metadata and/or content (optional)
+ description: update the table metadata from a table description; may include rows to append if input format supports it
+ parameters:
+ - in: path
+ name: name
+ description: the fully qualified name of the table to create
+ required: true
+ schema:
+ type: string
+ requestBody:
+ description: a table description
+ $ref: '#/components/schemas/tableDoc'
+ responses:
+ '204':
+ description: table updated
+ '400':
+ $ref: ./vosi-std-responses.yaml#/bad-request
+ '401':
+ $ref: ./vosi-std-responses.yaml#/not-authenticated
+ '403':
+ $ref: ./vosi-std-responses.yaml#/permission-denied
+ '404':
+ $ref: ./vosi-std-responses.yaml#/not-found
+ '405':
+ $ref: ./vosi-std-responses.yaml#/not-implemented
+ '413':
+ $ref: ./vosi-std-responses.yaml#/too-large
+put:
+ operationId: create-table
+ tags:
+ - VOSI Table Metadata
+ summary: proto - create table (optional)
+ description: create table from a table description; may include rows if input format supports it
+ parameters:
+ - in: path
+ name: name
+ description: the fully qualified name of the table to create
+ required: true
+ schema:
+ type: string
+ requestBody:
+ description: a table description
+ $ref: '#/components/schemas/tableDoc'
+ responses:
+ '201':
+ description: table created
+ '400':
+ $ref: ./vosi-std-responses.yaml#/bad-request
+ '401':
+ $ref: ./vosi-std-responses.yaml#/not-authenticated
+ '403':
+ $ref: ./vosi-std-responses.yaml#/permission-denied
+ '404':
+ $ref: ./vosi-std-responses.yaml#/not-found
+ '405':
+ $ref: ./vosi-std-responses.yaml#/not-implemented
+ '413':
+ $ref: ./vosi-std-responses.yaml#/too-large
+delete:
+ operationId: delete-table
+ tags:
+ - VOSI Table Metadata
+ summary: proto - delete table (optional)
+ description: delete table by name
+ parameters:
+ - name: name
+ in: path
+ description: the table to delete
+ required: true
+ schema:
+ type: string
+ responses:
+ '204':
+ description: table deleted
+ '400':
+ $ref: ./vosi-std-responses.yaml#/bad-request
+ '401':
+ $ref: ./vosi-std-responses.yaml#/not-authenticated
+ '403':
+ $ref: ./vosi-std-responses.yaml#/permission-denied
+ '404':
+ $ref: ./vosi-std-responses.yaml#/not-found
+
+components:
+ schemas:
+ tableDoc:
+ description: metadata for the specified schema or table
+ content:
+ text/xml:
+ schema:
+ type: object
+ xml:
+ name: table
+ prefix: vosi
+ namespace: http://www.ivoa.net/xml/VOSITables/v1.0
+ example: |
+
+ tap_schema.schemas
+ description of schemas in this tableset
+
+ schema_name
+ schema name for reference to tap_schema.schemas
+ char
+ indexed
+
+
+ utype
+ lists the utypes of schemas in the tableset
+ char
+
+
+ description
+ describes schemas in the tableset
+ char
+
+
+ schema_index
+ recommended sort order when listing schemas
+ int
+
+
+ application/x-votable+xml:
+ schema:
+ type: object
+ xml:
+ name: VOTABLE
+ namespace: http://www.ivoa.net/xml/VOTable/v1.3
+ example: |
+
+
+
+
+ schema name for reference to tap_schema.schemas
+
+
+ lists the utypes of schemas in the tableset
+
+
+ describes schemas in the tableset
+
+
+ recommended sort order when listing schemas
+
+
+
+
+
+
+
diff --git a/openapi/vosi/vosi-tableset.yaml b/openapi/vosi/vosi-tableset.yaml
new file mode 100644
index 0000000..cf54408
--- /dev/null
+++ b/openapi/vosi/vosi-tableset.yaml
@@ -0,0 +1,68 @@
+get:
+ operationId: get-tableset
+ tags:
+ - VOSI Table Metadata
+ summary: VOSI TableSet
+ description: Provides the table metadata in the form of a TableSet description
+ parameters:
+ - name: detail
+ in: query
+ description: level of detail requested
+ required: false
+ schema:
+ type: string
+ enum: [min, max]
+ responses:
+ '200':
+ $ref: '#/components/schemas/tablesetDoc'
+ '400':
+ $ref: ./vosi-std-responses.yaml#/bad-request
+ '401':
+ $ref: ./vosi-std-responses.yaml#/not-authenticated
+ '403':
+ $ref: ./vosi-std-responses.yaml#/permission-denied
+
+components:
+ schemas:
+ tablesetDoc:
+ description: metadata for schemas and tables
+ content:
+ text/xml:
+ schema:
+ type: object
+ xml:
+ name: tableset
+ prefix: vosi
+ namespace: http://www.ivoa.net/xml/VOSITables/v1.0
+ example: |
+
+
+ tap_schema
+ a special schema to describe TAP-1.1 tablesets
+
+ tap_schema.schemas
+ description of schemas in this tableset
+
+
+ tap_schema.tables
+ description of tables in this tableset
+
+
+ tap_schema.columns
+ description of columns in this tableset
+
+
+ tap_schema.keys
+ description of foreign keys in this tableset
+
+
+ tap_schema.key_columns
+ description of foreign key columns in this tableset
+
+
+ ...
+
+