# 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:
  description: Milagro Secure - distributed / decentralized core security services.
  title: Apache Milagro Server - Safeguard Secret
  contact:
    email: howard@qredo.com
  license:
    name: Apache Milagro
  version: 0.0.1
paths:  
  /v1/order:
    post:
      summary: Post a string and get back the encrypted version
      tags:
        - safeguardSecret
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                beneficiaryIDDocumentCID:
                  type: string                  
                  example: QmfWg5GffUEzwahd9hkvdnqTGQs5PfusoEpx3kSDSdG4ze
                extension:
                  type: object
                  properties:
                    plainText:
                      type: string
                      example: S0m3 V3ry 1mp0rt@nt T3xt
      responses:
        '200':
          $ref: '#/components/schemas/SafeguardSecret'
  /v1/order/secret:
    post:
      summary: Release secret
      tags:
        - safeguardSecret
      operationId: createkey
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                orderReference:
                  type: string
                  example: e1b3645e-b9ad-11e9-8d56-acde48001122
                beneficiaryIDDocumentCID:
                  type: string
                  example: QmfWg5GffUEzwahd9hkvdnqTGQs5PfusoEpx3kSDSdG4ze
                extension:
                  type: object
                  properties:
                    cypherText:
                      type: string
                      example: a72d69d8fb151edde606163ff880ae4f572d40b5135816379c7f6438a66dee44
                    t:
                      type: string
                      example: d9591744259dc7969084b659
                    v: 
                      type: string
                      example: 04343b1aad4b00e32fd94c64b024ea387c366d967b5d6713c8ffb7d6b716f0e1b92561b43207f18a475365e1b112e9ae3ba8af0d3aa4cc1b0be880d6918a15fd6b
      responses:
        '200':
          $ref: '#/components/schemas/DecryptAString'  
servers:
  - url: 'http://localhost:5556'
  - url: 'http://localhost:5558'
components:
  schemas:
    SafeguardSecret:
      type: object
      properties:
        orderPart1CID:
          type: string
        orderPart2CID:
          type: string
        commitment:
          type: string
        createdAt:
          type: integer
        extension:
          type: object
          properties:
            cypherText:
              type: string
            t:
              type: string
            v:
              type: string
    DecryptAString:
      type: object
      properties:
        secret:
          type: string
        commitment:
          type: string
        extension:
          type: object
          properties:
            plainText: 
              type: string
tags:
  - name: safeguardSecret
    description: D-TA Plugin for Encrypting Strings
    