# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http:#www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

openapi: 3.0.0
info:
  title: Apache Milagro Server
  description: Milagro Secure - distributed / decentralized core security services. This is the HTTP API specification for the D-TA when it is running no plugins.
  contact:
    email: dev@milagro.apache.org
  license:
    name: http://www.apache.org/licenses/LICENSE-2.0
  version: 1.0.0  
paths:
  /v1/identity:
    post:
      summary: Create an Identity Document
      tags:
        - identity      
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                Name:
                  type: string
                  example: ExampleNodeName             
      responses:
        '200':
          description: Successful Operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateIdentityResponse'
        '400':
          description: Invalid Request
          content:
            text/plain:
             schema:
              type: string
    get:
      summary: Get a list of identity documents
      tags:
       - identity
      parameters: 
        - name: page
          in: query
          description: current page
          schema:
            type: integer
            default: 0
        - name: perPage
          in: query
          description: number of items to show
          schema:
            type: integer
            default: 10
        - name: sortBy
          in: query
          description: Sort By field. Prefix with "-" for descending
          schema:
            type: string
            enum:
              - dateCreatedAsc               
              - dateCreatedDesc               
      responses:
        '200':
          description: Successful Operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityListResponse'
        '400':
          description: Invalid Request
          content:
            text/plain:
              schema:
                type: string
  /v1/identity/{IDDocumentCID}:
    get:
      summary: Get Details of an Identity
      tags:
        - identity
      parameters: 
        - name: IDDocumentCID
          in: path
          description: IPFS hash address of Identity Document
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful Operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Identity'
        '400':
          description: Invalid Request
          content:
            text/plain:
              schema:
                type: string
  /v1/order:
    post:
      summary: Create an order for a new Commitment
      description: This request will return a Commitment (SECP256 public key) from the Master Fiduciary. The response also includes IPFS hash adresses of the Order Documents passed between the Principal and Master Fiduciary.
      tags:
      - order
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                BeneficiaryIDDocumentCID:
                  type: string                  
                  example: QmZJGAuHEzf3arcEDdRzS4ZVRY1onmQG3NCn9mXEYD4eon
      responses:
        '200':
          description: Successful Operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderResponse'
        '400':
          description: Invalid Request
          content:
            text/plain:
              schema:
                type: string
    get:
      summary: Get a list of orders managed by this D-TA
      tags: 
      - order
      parameters: 
        - name: page
          in: query
          description: current page
          schema:
            type: integer
            default: 0
        - name: perPage
          in: query
          description: number of items to show
          schema:
            type: integer
            default: 10
        - name: sortBy
          in: query
          description: Sort By field. Prefix with "-" for descending
          schema:
            type: string
            enum:
              - dateCreatedAsc               
              - dateCreatedDesc
      responses:
        '200':
          description: Succesful Operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderListResponse'
        '400':
          description: Invalid Request
          content:
            text/plain:
             schema:
              type: string
  /v1/order/{OrderReference}:
    get:
      summary: Get details of an order
      tags:
      - order
      parameters:
      - name: OrderReference
        in: path
        description: Reference for a single order
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Succesful Operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOrderResponse'
        '400':
          description: Invalid Request
          content:
            text/plain:
             schema:
              type: string
  /v1/order/secret:
    post:
      summary: Returns the SECP256 Secret Key
      tags:
        - order
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                OrderReference:
                  type: string                  
                  example: 9f3ac746-c418-11e9-b78c-acde48001122
                BeneficiaryIDDocumentCID:
                  type: string                  
                  example: QmfWg5GffUEzwahd9hkvdnqTGQs5PfusoEpx3kSDSdG4ze
      responses:
        '200':
          description: Succesful Operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderSecretResponse'
        '400':
          description: Invalid Request
          content:
            text/plain:
             schema:
              type: string
  /v1/fulfill/order:
    post:
      summary: Create Public Address
      tags:
        - fulfill      
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                OrderPart1CID:
                  type: string
                  example: Qme5S5xVfGYF46oftiLQDevPAGSKy1aggdtrZvvEdiXuqM
                DocumentCID:
                  type: string
                  example: Qme5S5xVfGYF46oftiLQDevPAGSKy1aggdtrZvvEdiXuqM
      responses:
        '200':           
          description: Succesful Operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FulfillOrderResponse'
        '400':
          description: Invalid Request
          content:
            text/plain:
             schema:
              type: string
  /v1/fulfill/order/secret:
    post:
      summary: Return Private Key
      tags:
        - fulfill      
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                OrderPart3CID:
                  type: string
                SenderDocumentCID:
                  type: string                                  
      responses:
        '200':
          description: Succesful Operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FulfillOrderSecretResponse'
        '400':
          description: Invalid Request
          content:
            text/plain:
             schema:
              type: string
  /v1/status:
    get:
      description: Test Server Health
      tags:
        - system      
      responses:
        '200':
          description: Successful Operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponse'
        '400':
          description: Invalid Request
          content:
            text/plain:
              schema:
                type: string
servers:
  - url: 'http://localhost:5556'
  - url: 'http://localhost:5558' 
components:
  schemas:
      CreateIdentityResponse:
        type: object
        properties:
          IDDocumentCID:
            type: string      
      IdentityListResponse:
        type: object
        properties:
          IDDocumentList:
            type: array
            items: 
              $ref: '#/components/schemas/Identity'    
      Identity:
        type: object
        properties:
          IDDocumentCID:
            type: string
          AuthenticationReference:  
            type: string
          BeneficiaryECPublicKey: 
            type: string          
          SikePublicKey:            
            type: string
          BlsPublicKey:
            type: string                
          Timestamp:
            type: integer
      OrderResponse:
        type: object
        properties:
          OrderReference:
            type: string
          Commitment:
            type: string
          CreatedAt:
            type: string
      OrderListResponse:
        type: object
        properties:
          OrderReference:
            type: array
            items:
              type: string
      GetOrderResponse:
        type: object
        properties:
          Order:
            type: object
            properties:
              Order: 
                type: string
              TimeStamp:
                type: integer                            
      OrderSecretResponse:
        type: object
        properties:
          Secret:
            type: string
          Commitment:
            type: string
          OrderReference:
            type: string
      FulfillOrderResponse:
        type: object
        properties: 
          OrderPart2CID:
            type: string
      FulfillOrderSecretResponse:
        type: object
        properties:
          OrderPart4CID:
            type: string
      StatusResponse:
        type: object
        properties:
          application:
            type: string
          apiVersion:
              type: string
          extensionVendor:
            type: string
          nodeCID:
            type: string
          timeStamp:
            type: string
          plugin:
            type: string
          nodeType:
            type: string
tags:
  - name: identity
    description: Actors in the system
    externalDocs:
      url: 'https://milagro.apache.org/docs/milagro-intro/'
      description: Apache Milagro Docs
  - name: order
    description: Communication between Principals and Master Fiduciaries
    externalDocs:
      url: 'https://milagro.apache.org/docs/milagro-intro/'
      description: Apache Milagro Docs
  - name: fulfill
    description: Actions performed by the Master Fiduciary
    externalDocs:
      url: 'https://milagro.apache.org/docs/milagro-intro/'
      description: Apache Milagro Docs
  - name: system
    description: Test Server Health
    externalDocs:
      url: 'https://milagro.apache.org/docs/milagro-intro/'
      description: Apache Milagro Docs
  
