Amika Services API

The Services API from Amika — 2 operation(s) for services.

OpenAPI Specification

amika-services-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Amika API — v0beta1 API keys Services API
  version: 0beta1
tags:
- name: Services
paths:
  /services:
    post:
      tags:
      - Services
      summary: Create a service definition for a repository
      security:
      - bearerAuth: []
      - cookieAuth: []
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - type: object
                properties:
                  repo_url:
                    type: string
                    minLength: 1
                required:
                - repo_url
              - type: object
                properties:
                  name:
                    type: string
                    minLength: 1
                    maxLength: 255
                  ports:
                    type: array
                    items:
                      type: object
                      properties:
                        port:
                          type: integer
                          minimum: 1
                          maximum: 65535
                        protocol:
                          type: string
                          enum:
                          - tcp
                          - udp
                          default: tcp
                        url_scheme:
                          type: string
                          nullable: true
                          enum:
                          - http
                          - https
                          - null
                      required:
                      - port
                required:
                - name
                - ports
      responses:
        '201':
          description: Created service definition.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceDefinition'
        '400':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '401':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '403':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '409':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
  /services/{id}:
    put:
      tags:
      - Services
      summary: Update a service definition
      security:
      - bearerAuth: []
      - cookieAuth: []
      parameters:
      - schema:
          type: string
          minLength: 1
        required: true
        name: id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 255
                ports:
                  type: array
                  items:
                    type: object
                    properties:
                      port:
                        type: integer
                        minimum: 1
                        maximum: 65535
                      protocol:
                        type: string
                        enum:
                        - tcp
                        - udp
                        default: tcp
                      url_scheme:
                        type: string
                        nullable: true
                        enum:
                        - http
                        - https
                        - null
                    required:
                    - port
              required:
              - name
              - ports
      responses:
        '200':
          description: Updated service definition.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceDefinition'
        '400':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '401':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '403':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '404':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
    delete:
      tags:
      - Services
      summary: Delete a service definition
      security:
      - bearerAuth: []
      - cookieAuth: []
      parameters:
      - schema:
          type: string
          minLength: 1
        required: true
        name: id
        in: path
      responses:
        '204':
          description: Deleted.
        '401':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '403':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
        '404':
          description: Error
          headers:
            x-trace-id:
              description: Per-request trace id for correlating responses with logs.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - error
                  error_code:
                    type: string
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      nullable: true
                  trace_id:
                    type: string
                required:
                - type
                - error_code
                - message
components:
  schemas:
    ServiceDefinition:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        ports:
          type: array
          items:
            type: object
            properties:
              port:
                type: integer
              protocol:
                type: string
              url_scheme:
                type: string
                nullable: true
            required:
            - port
            - protocol
            - url_scheme
        created_at:
          anyOf:
          - type: string
          - type: string
            format: date-time
        updated_at:
          anyOf:
          - type: string
          - type: string
            format: date-time
      required:
      - id
      - name
      - ports
      - created_at
      - updated_at