Commit 229f425e authored by Dmitriy Rudko's avatar Dmitriy Rudko 💬
Browse files

GONRG-1301: Added API specification.

parent 7ba9a622
Pipeline #21666 failed with stages
in 47 seconds
openapi: 3.0.0
info:
description: |
Ingestion Service provides high-level API on top of Workflow service that serves as an entry point for OSDU specific Workflows
version: 1.0.0
title: Ingestion Service API
contact:
email: SupportGO3-NRG@epam.com
license:
name: Apache 2.0
url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
security:
- bearer: []
servers:
- url: 'os-ingest-attcrcktoa-uc.a.run.app'
paths:
/v1/submit:
post:
tags:
- Submit
summary: Submit parser-based ingestion workflow
operationId: submit
description: This API is used to trigger a new Workflow Run for a parser-based ingestion Workflow.
responses:
'200':
description: Workflow submitted successfully
content:
application/json:
schema:
$ref: '#/components/schemas/submitResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: Invalid/Expired Credential
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/parserRequest'
description: Request payload for pareser ingestion workflow
/v1/submitWithManifest:
post:
tags:
- Submit
summary: Submit manifest ingestion workflow
operationId: submitManifest
description: This API is used to trigger a new Workflow Run for a manifest ingestion Workflow.
responses:
'200':
description: Workflow submitted successfully
content:
application/json:
schema:
$ref: '#/components/schemas/submitResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: Invalid/Expired Credential
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/manifestRequest'
description: Request payload for manifest ingestion workflow
/v2/submit/manifest:
post:
tags:
- Submit V2
summary: Submit manifest ingestion workflow
operationId: submitManifestV2
description: This API is used to trigger a new Workflow Run for a manifest ingestion Workflow.
responses:
'200':
description: Workflow submitted successfully
content:
application/json:
schema:
$ref: '#/components/schemas/submitResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: Invalid/Expired Credential
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/manifestRequestV2'
description: Request payload for manifest ingestion workflow
components:
securitySchemes:
bearer:
type: apiKey
name: Authorization
in: header
schemas:
submitResponse:
title: Submit Request Response
type: object
properties:
WorkflowRunID:
type: string
description: ID of triggered Workflow Run
parserRequest:
title: Parser Ingestion Request
type: object
properties:
FileID:
type: string
example: osdu:file:eea57de21ce242ca9e0860148cf5522f
description: File ID to process in workflow run associated with DataType
DataType:
type: string
description: Name of the workflow registered in Workflow service
Context:
type: object
description: Execution Context that should be passed to Workflow Run
properties:
key1:
type: string
example: value1
key2:
type: string
example: value
manifestRequest:
title: Manifest Ingestion Request
type: object
properties:
Files:
type: array
items:
type: object
description: OSDU File Record
WorkProductComponents:
type: array
items:
type: object
description: OSDU WPC Record
WorkProduct:
type: object
description: OSDU WP Record
manifestRequestV2:
title: Manifest Ingestion Request
type: object
properties:
kind:
type: string
description: Reflected in Manifest R3 schema. Obsolete parameter.
example: osdu:wks:Manifest:1.0.0
ReferenceData:
type: array
items:
type: object
description: Reference-data are submitted as an array of records.
MasterData:
type: array
items:
type: object
description: Master-data is submitted as an array of records.
Data:
type: object
description: Manifest schema for work-product, work-product-component, file ensembles. The items in 'Files' are processed first since they are referenced by 'WorkProductComponents' ('data.Files[]' and 'data.Artefacts[].ResourceID'). The WorkProduct is processed last collecting the WorkProductComponents.
properties:
WorkProduct:
type: object
description: The work-product component capturing the work-product-component records belonging to this loading/ingestion transaction.
WorkProductComponents:
description: The list of work-product-components records. The record ids are internal surrogate keys enabling the association of work-product-component records with the work-product records.
type: array
items:
type: object
Files:
description: The list of 'Files' or data containers holding the actual data. The record ids are usually internal surrogate keys enabling the association of file records with work-product-component records, namely 'Files' and 'Artefacts' (both referring to file group-type entity types).
type: array
items:
type: object
error:
title: Error
type: object
properties:
code:
type: integer
format: int32
errors:
type: array
items:
$ref: '#/components/schemas/errorDetails'
message:
type: string
errorDetails:
title: Error Details
type: object
properties:
message:
type: string
reason:
type: string
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment