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 +
+
+ ... +
+