{
  "basePath":"/api/v1/brizo",
  "definitions":{

  },
  "host":"myfancybrizo.com",
  "info":{
     "description":"Brizo is the technical component executed by Publishers allowing them to provide extended data services. When running with our Docker images, it is exposed under `http://localhost:8030`.",
     "title":"Brizo",
     "version":"0.1.2"
  },
  "paths":{
     "/api/v1/brizo/services/access/initialize":{
        "post":{
           "consumes":[
              "application/json"
           ],
           "description":"",
           "parameters":[
              {
                 "description":"Service agreement initialization.",
                 "in":"body",
                 "name":"body",
                 "required":true,
                 "schema":{
                    "properties":{
                       "consumerAddress":{
                          "description":"Consumer address.",
                          "example":"0x00a329c0648769A73afAc7F9381E08FB43dBEA72",
                          "type":"string"
                       },
                       "did":{
                          "description":"Identifier of the asset registered in ocean.",
                          "example":"did:op:08a429b8529856d59867503f8056903a680935a76950bb9649785cc97869a43d",
                          "type":"string"
                       },
                       "serviceAgreementId":{
                          "description":"Identifier of the service agreement.",
                          "example":"bb23s87856d59867503f80a690357406857698570b964ac8dcc9d86da4ada010",
                          "type":"string"
                       },
                       "serviceDefinitionId":{
                          "description":"Identifier of the service definition.",
                          "example":"0",
                          "type":"string"
                       },
                       "signature":{
                          "description":"Signature",
                          "example":"cade376598342cdae231321a0097876aeda656a567a67c6767fd8710129a9dc1",
                          "type":"string"
                       }
                    },
                    "required":[
                       "did",
                       "serviceAgreementId",
                       "serviceDefinitionId",
                       "signature",
                       {
                          "consumerAddress":null
                       }
                    ],
                    "type":"object"
                 }
              }
           ],
           "responses":{
              "201":{
                 "description":"Service agreement successfully initialized."
              },
              "400":{
                 "description":"One of the required attributes is missing."
              },
              "404":{
                 "description":"Invalid signature."
              },
              "500":{
                 "description":"Error"
              }
           },
           "summary":"Initialize the SLA between the publisher and the consumer.",
           "tags":[
              "services"
           ]
        }
     },
     "/api/v1/brizo/services/compute":{
        "post":{
           "consumes":[
              "application/json"
           ],
           "description":"",
           "parameters":[
              {
                 "description":"Asset metadata.",
                 "in":"body",
                 "name":"body",
                 "required":true,
                 "schema":{
                    "properties":{
                       "algorithm_did":{
                          "description":"Identifier of the algorithm to execute",
                          "example":"0x0234242345",
                          "type":"string"
                       },
                       "asset_did":{
                          "description":"Identifier of the asset registered in Ocean",
                          "example":"0x0234242345",
                          "type":"string"
                       },
                       "consumer_wallet":{
                          "description":"Address of the wallet of the asset consumer. Ex. data-science...",
                          "example":"0x0234242345",
                          "type":"string"
                       },
                       "cpu":{
                          "description":"Number of CPUs to execute the algorithm.",
                          "example":1,
                          "type":"integer"
                       },
                       "docker_image":{
                          "description":"Docker image where the algorithm is going to be executed. Docker image must include all the libraries needed to run it.",
                          "example":"python:3.6-alpine",
                          "type":"string"
                       },
                       "memory":{
                          "description":"Ammout of memory in GB to run the algorithm",
                          "example":1.5,
                          "type":"number"
                       }
                    },
                    "required":[
                       "asset_did",
                       "algorithm_did",
                       "consumer_wallet"
                    ],
                    "type":"object"
                 }
              }
           ],
           "responses":{

           },
           "summary":"Allows to execute an algorithm inside a Docker instance in the cloud. Requires the publisher of the assets to provide this service in the service agreement related with the requested `asset_did`.",
           "tags":[
              "services"
           ]
        }
     },
     "/api/v1/brizo/services/consume":{
        "get":{
           "consumes":[
              "application/json"
           ],
           "description":"",
           "parameters":[
              {
                 "description":"The consumer address.",
                 "in":"query",
                 "name":"consumerAddress",
                 "required":true,
                 "type":"string"
              },
              {
                 "description":"The ID of the service agreement.",
                 "in":"query",
                 "name":"serviceAgreementId",
                 "required":true,
                 "type":"string"
              },
              {
                 "description":"This URL is only valid if Brizo acts as a proxy. Consumer can't download using the URL if it's not through Brizo.",
                 "in":"query",
                 "name":"url",
                 "required":true,
                 "type":"string"
              }
           ],
           "responses":{
              "302":{
                 "description":"Redirect to valid asset url."
              },
              "400":{
                 "description":"One of the required attributes is missing."
              },
              "404":{
                 "description":"Invalid asset data."
              },
              "500":{
                 "description":"Error"
              }
           },
           "summary":"Allows download of asset data file.",
           "tags":[
              "services"
           ]
        }
     }
  },
  "swagger":"2.0"
}