Added tests
[nonrtric.git] / enrichment-coordinator-service / docs / api.yaml
index a5c07e7..570caee 100644 (file)
@@ -8,13 +8,16 @@ basePath: /
 tags:
   - name: A1-E Enrichment Data Consumer API
     description: Consumer Controller
+  - name: Enrichment Data Producer API
+    description: Producer Controller
+  - name: Producer Simulator
+    description: Producer Simulator Controller
 paths:
   /A1-EI/v1/eitypes:
     get:
       tags:
         - A1-E Enrichment Data Consumer API
-      summary: Query EI type identifiers
-      description: DETAILS TBD
+      summary: EI type identifiers
       operationId: getEiTypeIdentifiersUsingGET
       produces:
         - application/json
@@ -36,8 +39,7 @@ paths:
     get:
       tags:
         - A1-E Enrichment Data Consumer API
-      summary: Definitions for an individual EI Type
-      description: Query EI type
+      summary: Individual EI type
       operationId: getEiTypeUsingGET
       produces:
         - application/json
@@ -65,8 +67,7 @@ paths:
     get:
       tags:
         - A1-E Enrichment Data Consumer API
-      summary: Query EI job identifiers
-      description: Returns the identifiers for an EI Type
+      summary: EI job identifiers
       operationId: getEiJobIdsUsingGET
       produces:
         - application/json
@@ -84,7 +85,7 @@ paths:
             type: string
       responses:
         '200':
-          description: EI type
+          description: EI job identifiers
           schema:
             type: array
             items:
@@ -135,7 +136,6 @@ paths:
       tags:
         - A1-E Enrichment Data Consumer API
       summary: Individual EI Job
-      description: Create or update an EI Job
       operationId: putIndividualEiJobUsingPUT
       consumes:
         - application/json
@@ -180,7 +180,6 @@ paths:
       tags:
         - A1-E Enrichment Data Consumer API
       summary: Individual EI Job
-      description: Delete an EI job
       operationId: deleteIndividualEiJobUsingDELETE
       produces:
         - application/json
@@ -246,29 +245,296 @@ paths:
           schema:
             $ref: '#/definitions/error_information'
       deprecated: false
+  /ei-producer/v1/eiproducers:
+    get:
+      tags:
+        - Enrichment Data Producer API
+      summary: EI producer identifiers
+      operationId: getEiProducerIdentifiersUsingGET
+      produces:
+        - application/json
+      responses:
+        '200':
+          description: EI producer identifiers
+          schema:
+            type: array
+            items:
+              type: string
+        '401':
+          description: Unauthorized
+        '403':
+          description: Forbidden
+        '404':
+          description: Not Found
+      deprecated: false
+  '/ei-producer/v1/eiproducers/{eiProducerId}':
+    get:
+      tags:
+        - Enrichment Data Producer API
+      summary: Individual EI producer
+      operationId: getEiProducerUsingGET
+      produces:
+        - application/json
+      parameters:
+        - name: eiProducerId
+          in: path
+          description: eiProducerId
+          required: true
+          type: string
+      responses:
+        '200':
+          description: EI Jobs
+          schema:
+            $ref: '#/definitions/producer_registration_info'
+        '401':
+          description: Unauthorized
+        '403':
+          description: Forbidden
+        '404':
+          description: Enrichment Information producer is not found
+          schema:
+            $ref: '#/definitions/error_information'
+      deprecated: false
+    put:
+      tags:
+        - Enrichment Data Producer API
+      summary: Individual EI producer
+      operationId: putEiProducerUsingPUT
+      consumes:
+        - application/json
+      produces:
+        - application/json
+      parameters:
+        - name: eiProducerId
+          in: path
+          description: eiProducerId
+          required: true
+          type: string
+        - in: body
+          name: registrationInfo
+          description: registrationInfo
+          required: true
+          schema:
+            $ref: '#/definitions/producer_registration_info'
+      responses:
+        '200':
+          description: Producer updated
+          schema:
+            type: object
+        '201':
+          description: Producer created
+          schema:
+            type: object
+        '401':
+          description: Unauthorized
+        '403':
+          description: Forbidden
+        '404':
+          description: Not Found
+      deprecated: false
+    delete:
+      tags:
+        - Enrichment Data Producer API
+      summary: Individual EI producer
+      operationId: deleteEiProducerUsingDELETE
+      produces:
+        - application/json
+      parameters:
+        - name: eiProducerId
+          in: path
+          description: eiProducerId
+          required: true
+          type: string
+      responses:
+        '200':
+          description: Not used
+          schema:
+            type: object
+        '204':
+          description: Producer deleted
+          schema:
+            type: object
+        '401':
+          description: Unauthorized
+        '403':
+          description: Forbidden
+        '404':
+          description: Producer is not found
+          schema:
+            $ref: '#/definitions/error_information'
+      deprecated: false
+  '/ei-producer/v1/eiproducers/{eiProducerId}/eijobs':
+    get:
+      tags:
+        - Enrichment Data Producer API
+      summary: EI job definitions
+      description: EI job definitions for one EI producer
+      operationId: getEiProducerJobsUsingGET
+      produces:
+        - application/json
+      parameters:
+        - name: eiProducerId
+          in: path
+          description: eiProducerId
+          required: true
+          type: string
+      responses:
+        '200':
+          description: EI jobs
+          schema:
+            type: array
+            items:
+              $ref: '#/definitions/producer_ei_job_request'
+        '401':
+          description: Unauthorized
+        '403':
+          description: Forbidden
+        '404':
+          description: Enrichment Information producer is not found
+          schema:
+            $ref: '#/definitions/error_information'
+      deprecated: false
+  /ei-producer/v1/eitypes:
+    get:
+      tags:
+        - Enrichment Data Producer API
+      summary: EI type identifiers
+      operationId: getEiTypeIdentifiersUsingGET_1
+      produces:
+        - application/json
+      responses:
+        '200':
+          description: EI type identifiers
+          schema:
+            type: array
+            items:
+              type: string
+        '401':
+          description: Unauthorized
+        '403':
+          description: Forbidden
+        '404':
+          description: Not Found
+      deprecated: false
+  '/ei-producer/v1/eitypes/{eiTypeId}':
+    get:
+      tags:
+        - Enrichment Data Producer API
+      summary: Individual EI Type
+      operationId: getEiTypeUsingGET_1
+      produces:
+        - application/json
+      parameters:
+        - name: eiTypeId
+          in: path
+          description: eiTypeId
+          required: true
+          type: string
+      responses:
+        '200':
+          description: EI type
+          schema:
+            $ref: '#/definitions/producer_ei_type_info'
+        '401':
+          description: Unauthorized
+        '403':
+          description: Forbidden
+        '404':
+          description: Enrichment Information type is not found
+          schema:
+            $ref: '#/definitions/error_information'
+      deprecated: false
+  /producer_simulator/job_created:
+    post:
+      tags:
+        - Producer Simulator
+      summary: Callback for EI job creation
+      operationId: jobCreatedCallbackUsingPOST
+      consumes:
+        - application/json
+      produces:
+        - application/json
+      parameters:
+        - in: body
+          name: request
+          description: request
+          required: true
+          schema:
+            $ref: '#/definitions/producer_ei_job_request'
+      responses:
+        '200':
+          description: OK
+          schema:
+            type: object
+        '201':
+          description: Created
+        '401':
+          description: Unauthorized
+        '403':
+          description: Forbidden
+        '404':
+          description: Not Found
+      deprecated: false
+  /producer_simulator/job_deleted:
+    post:
+      tags:
+        - Producer Simulator
+      summary: Callback for EI job deletion
+      operationId: jobDeletedCallbackUsingPOST
+      consumes:
+        - application/json
+      produces:
+        - application/json
+      parameters:
+        - in: body
+          name: request
+          description: request
+          required: true
+          schema:
+            $ref: '#/definitions/producer_ei_job_request'
+      responses:
+        '200':
+          description: OK
+          schema:
+            type: object
+        '201':
+          description: Created
+        '401':
+          description: Unauthorized
+        '403':
+          description: Forbidden
+        '404':
+          description: Not Found
+      deprecated: false
 definitions:
   ei_job_info:
     type: object
+    required:
+      - job_data
+      - job_owner
+      - target_uri
     properties:
       job_data:
         type: object
         description: EI Type specific job data
-      owner:
+      job_owner:
         type: string
         description: Identity of the owner of the job
-      result_target:
+      target_uri:
         type: string
-        description: the deliver information for the EI. This is typically a URL.
+        description: The target of the EI data
     title: ei_job_info
     description: Information for a Enrichment Information Job
   ei_job_status:
     type: object
+    required:
+      - operational_state
     properties:
       operational_state:
         type: string
         description: |-
-          Operational state, values: 
-          ENABLED: TBD 
+          Operational state, values:
+          ENABLED: TBD
           DISABLED: TBD.
         enum:
           - ENABLED
@@ -289,12 +555,77 @@ definitions:
       detail:
         type: string
         example: EI job type not found
-        description: ' A human-readable explanation specific to this occurrence of the problem.'
+        description: A human-readable explanation specific to this occurrence of the problem.
       status:
         type: integer
         format: int32
-        example: 503
-        description: 'The HTTP status code generated by the origin server for this occurrence of the problem. '
+        example: 404
+        description: The HTTP status code generated by the origin server for this occurrence of the problem.
     title: error_information
     description: 'Problem as defined in https://tools.ietf.org/html/rfc7807'
+  producer_ei_job_request:
+    type: object
+    required:
+      - ei_job_identity
+    properties:
+      ei_job_data:
+        type: object
+        description: Json for the job data
+      ei_job_identity:
+        type: string
+        description: Idenitity of the EI job
+      ei_type_identity:
+        type: string
+        description: Type idenitity for the job
+      target_uri:
+        type: string
+        description: URI for the target of the EI
+    title: producer_ei_job_request
+    description: The body of the EI producer callbacks for EI job creation and deletion
+  producer_ei_type_info:
+    type: object
+    properties:
+      ei_job_data_schema:
+        type: object
+        description: Json schema for the job data
+      ei_producer_ids:
+        type: array
+        description: Registered producers
+        items:
+          type: string
+    title: producer_ei_type_info
+    description: Information for an EI type
+  producer_ei_type_registration_info:
+    type: object
+    required:
+      - ei_type_identity
+    properties:
+      ei_job_data_schema:
+        type: object
+        description: Json schema for the job data
+      ei_type_identity:
+        type: string
+        description: EI type identity
+    title: producer_ei_type_registration_info
+    description: Information for an EI type
+  producer_registration_info:
+    type: object
+    required:
+      - ei_job_creation_callback_url
+      - ei_job_deletion_callback_url
+      - supported_ei_types
+    properties:
+      ei_job_creation_callback_url:
+        type: string
+        description: callback for job creation
+      ei_job_deletion_callback_url:
+        type: string
+        description: callback for job deletion
+      supported_ei_types:
+        type: array
+        description: Supported EI types
+        items:
+          $ref: '#/definitions/producer_ei_type_registration_info'
+    title: producer_registration_info
+    description: Information for an EI producer