openapi: 3.0.3
info:
  title: Urban Strategy REST API - OpenAPI 3.0
  description: |-
    The Urban Strategy REST API is based on the OpenAPI 3.0 specification.  The REST API offers alternative access to the Urban Strategy Platform, outside the standard webinterface.
  contact:
    email: walter.lohman@tno.nl
  version: 0.6.2
externalDocs:
  description: Scenexus
  url: http://www.scenexus.com
servers:
#  - url: https://portal.urbanstrategy.nl/api/v1
  - url: http://localhost:8080/api/v1
tags:
  - name: Access token
    description: Obtain a token to access the API
    externalDocs:
      description: Find out more about tokens
      url: http://swagger.io
  - name: Bins
    description: Data access to Bins in the store
    externalDocs:
      description: Find out more about Bins
      url: http://swagger.io
  - name: Collections
    description: Data access to Collections from Bins in the store
  - name: Schema
    description: Information from the Schema service
  - name: Matrices
    description: Data access for Matrices
  - name: Models
    description: Control the models
  - name: Key Value pairs
    description: Set of key-value pair. Mainly used for model parameters
  - name: Log
    description: Fetch the log remotely
  - name: Help
    description: Output the REST API end-points
paths:
  /login:
    get:
      tags:
        - Access token
      summary: Obtain a token
      description: Use your Email and Password to get the token
      operationId: login
      parameters:
        - in: query
          name: email
          schema:
            type: string
          required: true
          description: Email as UserId
        - in: query
          name: password
          schema: 
            type: string
            format: password
          required: true
          description: Password belonging to Email
      responses:
        '200':
          description: Successful acquired token
          content:
            application/json:
              schema:
                type: string
                example: ["71303320333a4e14bc71d66be7468bb2"]
                         
        '400':
          description: Bad request
        '401':
          description: Invalid Email/Password supplied
          content:
            application/json:
              example: {"error": "unauthorized"}
  /data/help:
    get:
      tags:
        - Help
      security:
        - ApiKeyAuth: []
      summary: Obtain Help
      description: Displays a small help text
      responses:
        '200':
          description: Successful operation
          content:
            text/html:
              schema:
                type: string
                example: Help Text
  /data/bins:
    get:
      tags:
        - Bins
      security:
        - ApiKeyAuth: []
      summary: Get all bins in the store
      description: Retrieve a list of the Bins in the Urban Strategy storage
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: { "bins": ["1_us_template_2022"]}
  /data/bin/{Bin}/statistics:                
    get:
      tags:
        - Bins
      security:
        - ApiKeyAuth: []
      summary: Get statistics of a single bin in the store
      description: Get statistics of a single Bin in the Urban Strategy storage
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {
                              "statistics": {
                                  "71659ba51ec14d7c855ff95221e0d955": {
                                      "bins": {
                                          "us_template_2022": {
                                              "loaded": false,
                                              "lastActive": 0,
                                              "collections": {
                                                  "air_concentrations.y2010.v2013": {
                                                      "loaded": false,
                                                      "sizeDeltas": 0,
                                                      "sizeObjects": 0,
                                                      "objectsLoaded": false,
                                                      "lastInquired": 0,
                                                      "lastUpdated": 0,
                                                      "lastSaved": 0,
                                                      "sizeTimestamped": 0,
                                                      "timestamps": [
                                                      ]
                                                  }
                                              }
                                          }
                                      }
                                  }
                              }
                          }
  /data/bins/*/statistics:                
    get:
      tags:
        - Bins
      security:
        - ApiKeyAuth: []
      summary: Get statistics of all bins in the store
      description: Get statistics of all the Bins in the Urban Strategy storage
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {
                              "statistics": {
                                  "71659ba51ec14d7c855ff95221e0d955": {
                                      "bins": {
                                          "us_template_2022": {
                                              "loaded": false,
                                              "lastActive": 0,
                                              "collections": {
                                                  "air_concentrations.y2010.v2013": {
                                                      "loaded": false,
                                                      "sizeDeltas": 0,
                                                      "sizeObjects": 0,
                                                      "objectsLoaded": false,
                                                      "lastInquired": 0,
                                                      "lastUpdated": 0,
                                                      "lastSaved": 0,
                                                      "sizeTimestamped": 0,
                                                      "timestamps": [
                                                      ]
                                                  }
                                              }
                                          }
                                      }
                                  }
                              }
                          }
  /data/bin/{Bin}/get:
    get:
      tags:
        - Bins
      security:
        - ApiKeyAuth: []
      summary: Get collections of a single bin
      description: Get collections of a single Bin
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {"bin": {
                              "collections": [
                                "air_receptors",
                                "buildings",
                                "controlsenabled",
                                "metalayer",
                                "roads"
                              ],
                              "keyvaluesets": [
                                "parameters"
                              ],
                              "matrices": []
                            }
                          }
  /data/bin/{SrcBin}/copy/{DstBin}:
    get:
      tags:
        - Bins
      security:
        - ApiKeyAuth: []
      summary: Copy Bin to a new Bin
      description: Copy Bin to a new Bin
      parameters:
        - name: SrcBin
          in: path
          description: Name of the Source Bin
          required: true
          schema:
            type: string
        - name: DstBin
          in: path
          description: Name of the (new) Destination Bin
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {"bin": "copied bin xxxx to yyyy"}
  /data/bin/{Bin}/remove:
    get:
      tags:
        - Bins
      security:
        - ApiKeyAuth: []
      summary: Remove/Delete a single bin
      description: Remove/Delete a single Bin
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {"bin": "removed bin xxxx"}
  /data/bin/{Bin}/unload:
    get:
      tags:
        - Bins
      security:
        - ApiKeyAuth: []
      summary: Unload a bin from the store. (Only used by uploader tools)
      description: Unload a bin from the store. (Only used by uploader tools)
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {"bin": "unloaded bin xxxx"}
  /data/bins/*/commit:                
    get:
      tags:
        - Bins
      security:
        - ApiKeyAuth: []
      summary: Commit data for every bin
      description: Commit data for every bin
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {"commit": "OK"}

  /data/schema/{Schema}/get:
    get:
      tags:
        - Schema
      security:
        - ApiKeyAuth: []
      summary: Get schema
      description: Get schema
      parameters:
        - name: Schema
          in: path
          description: Name of the Schema
          required: true
          schema:
            type: string
        - name: format
          in: query
          schema:
            type: string
            enum: [json, csv, html]
          description: Specify output format json (default), csv or html
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {"schema": 
                            {
                              "CALCULATION_AREA": "int32",
                              "DUMMYDOUBLE": "double",
                              "SHAPE": "complex:geometry",
                              "OBJECT_ID": "int32",
                            }
                          }
  /data/schema/{Schema}/set:
    put:
      tags:
        - Schema
      security:
        - ApiKeyAuth: []
      summary: Update schema
      description: Update schema
      parameters:
        - name: Schema
          in: path
          description: Name of the Schema
          required: true
          schema:
            type: string
      requestBody:
        description: "A JSON formatted entry to change or add. Set field-type: null to remove field."
        content: 
          application/json:
            schema:
              type: object
              properties:
                request:
                  type: object
                  properties:
                    data:
                      type: string
                      pattern: '^\{.*:.*\}$'
                      example: { <field-name>: <field-type> }
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              example: {}
  /data/collection/{Bin}/timestamps/{Collection}:
    get:
      tags:
        - Collections
      security:
        - ApiKeyAuth: []
      summary: List available timestamps for this collection
      description: List available timestamps for this collection
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
        - name: Collection
          in: path
          description: Name of the Collection
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {}
  /data/collection/{Bin}/get/{Collection}:
    get:
      tags:
        - Collections
      security:
        - ApiKeyAuth: []
      summary: Get collection data
      description: Get collection data
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
        - name: Collection
          in: path
          description: Name of the Collection
          required: true
          schema:
            type: string
        - name: filter
          in: query
          schema:
            type: string
          description: "Specify SQL like field filter. filter options: https://docs.microsoft.com/en-us/dotnet/api/system.data.datacolumn.expression?view=netcore-3.1"
        - name: format
          in: query
          schema:
            type: string
            enum: [json, csv, geo]
          description: Optional specify the output format (json default)
        - name: separator
          in: query
          schema:
            type: string
            enum: [tab, semicolon, comma]
          description: Optional specify the separator (tab default)
        - name: geometry
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 7
          description: "1=generic json array(default), 2=wkt Polygon, 3=wkt Multi polygon, 4=wkt Line, 5=wkt Point, 6=JSON array, 7=override, always use point"
        - name: id
          in: query
          schema:
            type: string
            enum: [id10, od]
          description: "id10=derive id10 field (decimal representation of first 3 fields of guid) from id, od=derive origin/destination from id"
        - name: fields
          in: query
          schema:
            type: array
            items:
              type: string
          description: list of case sensitive fields separated by commas to return by request
        - name: download
          in: query
          schema:
            type: integer
            enum: [0,1]
          description: trigger a browser to download the data instead of showing it directly
        - name: expressions
          in: query
          schema:
            type: string
          description: "{<field-name>:<expr-def>[,<field-name>:<expr-def>]}"
        - name: aggregation
          in: query
          schema:
            type: string
          description: "{<field-name>:<agr-def>[,<field-name>:<agr-def>]} See https://docs.microsoft.com/en-us/dotnet/api/system.data.datacolumn.expression?view=netcore-3.1"
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {}
  /data/collection/{Bin}/set/{Collection}:
    put:
      tags:
        - Collections
      security:
        - ApiKeyAuth: []
      summary: Update or Add Collection data
      description: Update or Add Collection data
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
        - name: Collection
          in: path
          description: Name of the Collection
          required: true
          schema:
            type: string
      requestBody:
        description: "A JSON formatted entry to change or add. When no id field is given in the data object a random one is generated. GUID format of id normally is build like {<object_id>-<dimension_id>-<0>-<0000000000000001>}.	GUID format of id for od matrix entries is build like {<origin>-<highpart-destination>-<lowpart-destination>-<0000000000000001>}"
        content: 
          application/json:
            schema:
              type: object
              properties:
                request:
                  type: object
                  properties:
                    data:
                      type: object
                      properties:
                        field:
                          type: string
                      example:
                        field: value
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              example: {}
  /data/collection/{SrcBin}/copy/{SrcCollection}:
    get:
      tags:
        - Collections
      security:
        - ApiKeyAuth: []
      summary: Copy Bin to a new Bin
      description: Copy Bin to a new Bin
      parameters:
        - name: SrcBin
          in: path
          description: Name of the Source Bin
          required: true
          schema:
            type: string
        - name: SrcCollection
          in: path
          description: Name of the Source Collection
          required: true
          schema:
            type: string
        - name: newbinname
          in: query
          schema:
            type: string
          description: Name of the (new) Destination Bin
          required: true
        - name: newcollectionname
          in: query
          schema:
            type: string
          description: Name of the (new) Collection
          required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {}
              
  /data/collection/{Bin}/remove/{Collection}:
    get:
      tags:
        - Collections
      security:
        - ApiKeyAuth: []
      summary: Remove collection from bin
      description: Remove Collection from Bin
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
        - name: Collection
          in: path
          description: Name of the Collection
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {}
  /data/collection/{Bin}/truncate/{Collection}:
    get:
      tags:
        - Collections
      security:
        - ApiKeyAuth: []
      summary: Truncate collection from bin
      description: Truncate Collection from Bin
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
        - name: Collection
          in: path
          description: Name of the Collection
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {}
  /data/collection/{Bin}/truncatets/{Collection}:
    get:
      tags:
        - Collections
      security:
        - ApiKeyAuth: []
      summary: Truncate collection from bin
      description: Truncate Collection from Bin
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
        - name: Collection
          in: path
          description: Name of the Collection
          required: true
          schema:
            type: string
        - name: timestampgroup
          in: query
          schema:
            type: integer
          description: Specify the timestampgroup for truncation
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {}
  /data/collection/{Bin}/unload/{Collection}:
    get:
      tags:
        - Collections
      security:
        - ApiKeyAuth: []
      summary: Unload a collection from the store. (Only used by uploader tools)
      description: Unload a collection from the store. (Only used by uploader tools)
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
        - name: Collection
          in: path
          description: Name of the Collection
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {"collection": "unloaded collection xxxx"}
  /data/collection/{Bin}/fingerprint/{Collection}:
    get:
      tags:
        - Collections
      security:
        - ApiKeyAuth: []
      summary: Calculate fingerprint of a collection.
      description: Calculate fingerprint of a collection.
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
        - name: Collection
          in: path
          description: Name of the Collection
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {}
  /data/keyvalueset/{Bin}/get/{KeyValueSet}:
    get:
      tags:
        - Key Value pairs
      security:
        - ApiKeyAuth: []
      summary: Get a key-value set from a Bin
      description: Get a key-value set from a Bin
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
        - name: KeyValueSet
          in: path
          description: Name of the KeyValue Set
          required: true
          schema:
            type: string
        - name: values
          in: query
          schema:
            type: string
            enum: [json]
          description: Specify the output format.
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {}
  /data/keyvalueset/{Bin}/set/{KeyValueSet}:
    put:
      tags:
        - Key Value pairs
      security:
        - ApiKeyAuth: []
      summary: Update or Add a key-value set to the Bin
      description: Update or Add a key-value set to the Bin
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
        - name: KeyValueSet
          in: path
          description: Name of the KeyValue Set
          required: true
          schema:
            type: string
      requestBody:
        description: "A JSON formatted entry to change or add."
        content: 
          application/json:
            schema:
              type: object
              properties:
                request:
                  type: object
                  properties:
                    data:
                      type: object
                      properties:
                        key:
                          type: string
                      example:
                        key: value
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              example: {}
  /data/keyvalueset/{Bin}/remove/{KeyValueSet}:
    get:
      tags:
        - Key Value pairs
      security:
        - ApiKeyAuth: []
      summary: Remove a key-value set from a Bin
      description: Remove a key-value set from a Bin
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
        - name: KeyValueSet
          in: path
          description: Name of the KeyValue Set
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {}
  /data/keyvalueset/{Bin}/truncate/{KeyValueSet}:
    get:
      tags:
        - Key Value pairs
      security:
        - ApiKeyAuth: []
      summary: Truncate a key-value set from a Bin
      description: Truncate a key-value set from a Bin
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
        - name: KeyValueSet
          in: path
          description: Name of the KeyValue Set
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {}
  /data/keyvalueset/{Bin}/fingerprint/{KeyValueSet}:
    get:
      tags:
        - Key Value pairs
      security:
        - ApiKeyAuth: []
      summary: Calculate the fingerprint of a key-value set from a Bin
      description: Calculate the fingerprint of a key-value set from a Bin
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
        - name: KeyValueSet
          in: path
          description: Name of the KeyValue Set
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {}
  /data/matrix/{Bin}/get/{Matrix}:
    get:
      tags:
        - Matrices
      security:
        - ApiKeyAuth: []
      summary: Get matrix data
      description: Get Matrix data
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
        - name: Matrix
          in: path
          description: Name of the Matrix
          required: true
          schema:
            type: string
        - name: fields
          in: query
          schema:
            type: array
            items:
              type: string
          description: list of case sensitive fields separated by commas to return by request
        - name: format
          in: query
          schema:
            type: string
            enum: [json, csv]
          description: Optional specify the output format (json default)
        - name: separator
          in: query
          schema:
            type: string
            enum: [tab, semicolon, comma]
          description: Optional specify the separator (tab default)
        - name: download
          in: query
          schema:
            type: integer
            enum: [0,1]
          description: trigger a browser to download the data instead of showing it directly
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {}
  /data/matrix/{Bin}/remove/{Matrix}:
    get:
      tags:
        - Matrices
      security:
        - ApiKeyAuth: []
      summary: Remove matrix
      description: Remove Matrix
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
        - name: Matrix
          in: path
          description: Name of the Matrix
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {}
  /data/matrix/{Bin}/truncate/{Matrix}:
    get:
      tags:
        - Matrices
      security:
        - ApiKeyAuth: []
      summary: Truncate matrix
      description: Truncate Matrix
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
        - name: Matrix
          in: path
          description: Name of the Matrix
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {}
  /data/matrix/{Bin}/unload/{Matrix}:
    get:
      tags:
        - Matrices
      security:
        - ApiKeyAuth: []
      summary: Unload a matrix from the store. (Only used by uploader tools)
      description: Unload a Matrix from the store. (Only used by uploader tools)
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
        - name: Matrix
          in: path
          description: Name of the Matrix
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {}
  /data/matrix/{Bin}/fingerprint/{Matrix}:
    get:
      tags:
        - Matrices
      security:
        - ApiKeyAuth: []
      summary: Calculate the fingerprint of a matrix
      description: Calculate the fingerprint of a Matrix
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
        - name: Matrix
          in: path
          description: Name of the Matrix
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: {}
  /data/models:
    get:
      tags:
        - Models
      security:
        - ApiKeyAuth: []
      summary: Retrieve a list of the available models
      description: Retrieve a list of the available models
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: { }
  /data/models/{Bin}/start/{SetupName}:
    get:
      tags:
        - Models
      security:
        - ApiKeyAuth: []
      summary: Start a model
      description: Start a model
      parameters:
        - name: Bin
          in: path
          description: Name of the Bin
          required: true
          schema:
            type: string
        - name: SetupName
          in: path
          description: Setup Name of the Model
          required: true
          schema:
            type: string
        - name: version
          in: query
          schema:
            type: string
          description: optional setup version number
        - name: node
          in: query
          schema:
            type: string
          description: optional node name of the setup
        - name: stopAt
          in: query
          schema:
            type: number
          description: optional excel date/time when at latest stop model
        - name: state
          in: query
          schema:
            type: integer
          description: optional initial model state
        - name: desiredState
          in: query
          schema:
            type: integer
          description: optional desired model state
        - name: stateGroup
          in: query
          schema:
            type: integer
          description: optional state manager group
        - name: stateRequested
          in: query
          schema:
            type: integer
          description: optional state manager requested state
        - name: waitForSetupSeconds
          in: query
          schema:
            type: integer
          description: optional time to wait before setup becomes available
        - name: maxIdleTime
          in: query
          schema:
            type: number
          description: optional maximum allowed idle time (fraction of day)
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: { }
  /data/models/{InstanceId}/stop:
    get:
      tags:
        - Models
      security:
        - ApiKeyAuth: []
      summary: Stop a model
      description: Stop a model
      parameters:
        - name: InstanceId
          in: path
          description: The Instance Id
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: { }
  /data/models/{InstanceId}/stop/force:
    get:
      tags:
        - Models
      security:
        - ApiKeyAuth: []
      summary: Force a model to stop
      description: Force a model to stop
      parameters:
        - name: InstanceId
          in: path
          description: The Instance Id
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: { }
  /data/models/*/state:
    put:
      tags:
        - Models
      security:
        - ApiKeyAuth: []
      summary: Request model state. Will return when the model goes through a change to the <targetstate>
      description: "Request model state. Will return when the model goes through a change to the <targetstate>"
      requestBody:
        description: "A JSON formatted entry."
        content: 
          application/json:
            schema:
              type: object
              properties:
                request:
                  type: object
                  properties:
                    instances:
                      type: array
                      items:
                        type: string
                      description: Array of InstanceIds
                    targetstate:
                      type: integer
                      description: "<target-state>, // check if state of model is equal or less then -3(msTerminated), -2 (msStopping), 0 (msReady, default)"
                    timeoutsec:
                      type: integer
                      description: time-out in seconds
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              example: {}                
  /data/instances/{InstanceId}/log:
    get:
      tags:
        - Log
      security:
        - ApiKeyAuth: []
      summary: Fetch a log remotely
      description: Fetch a log remotely
      parameters:
        - name: InstanceId
          in: path
          description: The Instance Id
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
                example: { }

components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      name: token
      in: query
security:
  - ApiKeyAuth: []
