BlindInsight materials API

The materials API from BlindInsight — 8 operation(s) for materials.

OpenAPI Specification

blindinsight-materials-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Blind Insight REST accounts materials API
  version: 10.22.0
  description: End-to-end encrypted datastore
tags:
- name: materials
paths:
  /api/materials/:
    get:
      operationId: materials_list
      description: List all materials that you have access to.
      summary: List all materials
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
      - in: query
        name: id
        schema:
          type: string
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: payload
        schema:
          type: string
        description: The encrypted material.
      - in: query
        name: proof
        schema:
          type: string
      - in: query
        name: proofed
        schema:
          type: boolean
      - in: query
        name: request
        schema:
          type: string
      - in: query
        name: signature
        schema:
          type: string
        description: The signature of the material.
      - in: query
        name: uploaded_by
        schema:
          type: string
        description: The identity that uploaded this material.
      tags:
      - materials
      security:
      - cookieAuth: []
      - basicAuth: []
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMaterialList'
          description: ''
    post:
      operationId: materials_create
      description: Create a new material.
      summary: Create a new material
      tags:
      - materials
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Material'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Material'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Material'
        required: true
      security:
      - cookieAuth: []
      - basicAuth: []
      - jwtAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Material'
          description: ''
  /api/materials/{id}/:
    get:
      operationId: materials_retrieve
      description: Retrieve a single material by its ID.
      summary: Retrieve a single material
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: A unique value identifying this material.
        required: true
      tags:
      - materials
      security:
      - cookieAuth: []
      - basicAuth: []
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Material'
          description: ''
    delete:
      operationId: materials_destroy
      description: Delete a material by its ID.
      summary: Delete a material
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: A unique value identifying this material.
        required: true
      tags:
      - materials
      security:
      - cookieAuth: []
      - basicAuth: []
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/materials/{id}/acknowledge/:
    post:
      operationId: materials_acknowledge_create
      description: 'Mark the underlying request as received. Replaces the deprecated

        side-effect on `GET /materials/<id>/`, which mutated state on a read.'
      summary: Acknowledge receipt of a material
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: A unique value identifying this material.
        required: true
      tags:
      - materials
      security:
      - cookieAuth: []
      - basicAuth: []
      - jwtAuth: []
      responses:
        '204':
          content:
            application/json:
              schema:
                description: The material has been acknowledged as received.
          description: ''
  /api/materials/{id}/proof/:
    post:
      operationId: materials_proof_create
      description: Validate a proof for a material.
      summary: Validate a proof for a material
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: A unique value identifying this material.
        required: true
      tags:
      - materials
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MaterialProof'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MaterialProof'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MaterialProof'
        required: true
      security:
      - cookieAuth: []
      - basicAuth: []
      - jwtAuth: []
      responses:
        '204':
          content:
            application/json:
              schema:
                description: The material has been proven as valid.
          description: ''
  /api/materials/{material_id}/receive/:
    post:
      operationId: materials_receive-detail
      description: '[Blind Insight Proxy] Receive a single material'
      summary: Receive a single material
      parameters:
      - in: path
        name: material_id
        schema:
          type: string
          format: uuid
        description: The material ID to receive.
        required: true
      tags:
      - materials
      security:
      - cookieAuth: []
      - basicAuth: []
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  request:
                    type: string
                    description: The request ID
                  schema:
                    type: string
                    description: The schema ID
                  field_name:
                    type: string
                    description: Name of the field
                required:
                - request
                - schema
                - field_name
          description: The material was received successfully.
        '400':
          content:
            application/json:
              schema:
                type: object
                example:
                  detail: Could not receive material
                  error: Bad request
          description: The material was not received successfully.
        '404':
          content:
            application/json:
              schema:
                type: object
                example:
                  detail: No materials found
                  error: Not found
          description: No materials were found.
  /api/materials/overrides/:
    get:
      operationId: materials_overrides
      description: '[Blind Insight Proxy] List all material overrides'
      summary: List all material overrides
      tags:
      - materials
      security:
      - cookieAuth: []
      - basicAuth: []
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              examples:
                ListMaterialOverrides:
                  value:
                  - CE2TeNQ2actgUykKuFRXcg:__query
                  - CE2TeNQ2actgUykKuFRXcg:name
                  summary: List material overrides
                  description: The material overrides were retrieved successfully.
          description: The material overrides were retrieved successfully.
        '404':
          content:
            application/json:
              schema:
                type: object
                example:
                  detail: No material overrides found.
                  error: Not found
          description: ''
    delete:
      operationId: materials_overrides_delete-list
      description: '[Blind Insight Proxy] Delete all material overrides'
      summary: Delete all material overrides
      tags:
      - materials
      security:
      - cookieAuth: []
      - basicAuth: []
      - jwtAuth: []
      - {}
      responses:
        '204':
          description: The material overrides have been deleted successfully.
        '400':
          content:
            application/json:
              schema:
                type: object
                example:
                  detail: Could not delete material overrides.
                  error: Bad request
          description: The material override could not be deleted.
        '404':
          content:
            application/json:
              schema:
                type: object
                example:
                  detail: No material overrides found.
                  error: Not found
          description: No material overrides were found.
  /api/materials/overrides/{key}/:
    delete:
      operationId: materials_overrides_delete-detail
      description: '[Blind Insight Proxy] Delete a single material override'
      summary: Delete a single material override
      parameters:
      - in: path
        name: key
        schema:
          type: string
        description: The key of the material override to delete.
        required: true
      tags:
      - materials
      security:
      - cookieAuth: []
      - basicAuth: []
      - jwtAuth: []
      - {}
      responses:
        '204':
          content:
            application/json:
              schema:
                description: The material override has been deleted successfully.
          description: ''
        '400':
          content:
            application/json:
              schema:
                type: object
                example:
                  detail: Could not delete material override.
                  error: Bad request
          description: The material override could not be deleted.
        '404':
          content:
            application/json:
              schema:
                type: object
                example:
                  detail: No material overrides found.
                  error: Not found
          description: No material overrides were found.
  /api/materials/receive/:
    post:
      operationId: materials_receive-list
      description: '[Blind Insight Proxy] Receive all materials'
      summary: Receive all materials
      tags:
      - materials
      security:
      - cookieAuth: []
      - basicAuth: []
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    request:
                      type: string
                      description: The request ID
                    schema:
                      type: string
                      description: The schema ID
                    field_name:
                      type: string
                      description: Name of the field
                  required:
                  - request
                  - schema
                  - field_name
          description: The materials were received successfully.
        '400':
          content:
            application/json:
              schema:
                type: object
                example:
                  detail: Could not receive material
                  error: Bad request
          description: The materials were not received successfully.
        '404':
          content:
            application/json:
              schema:
                type: object
                example:
                  detail: No materials found
                  error: Not found
          description: No materials were found.
components:
  schemas:
    Material:
      type: object
      description: Encrypted material object.
      properties:
        id:
          type: string
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        payload:
          type: string
          description: The encrypted material.
          maxLength: 4096
        signature:
          type: string
          description: The signature of the material.
          maxLength: 4096
        proof:
          type: string
          writeOnly: true
          maxLength: 64
          minLength: 64
        request:
          type: string
          format: uri
        uploaded_by:
          type: string
          format: uri
          description: The identity that uploaded this material.
      required:
      - created
      - id
      - proof
      - request
      - uploaded_by
      - url
    MaterialProof:
      type: object
      description: Proof for a material.
      properties:
        proof:
          type: string
          writeOnly: true
          description: Proof for the material.
          maxLength: 64
          minLength: 64
      required:
      - proof
    PaginatedMaterialList:
      type: array
      items:
        $ref: '#/components/schemas/Material'
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
    cookieAuth:
      type: apiKey
      in: cookie
      name: sessionid
    jwtAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT