All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ats-service-api.0.9.0.source-code.api.yaml Maven / Gradle / Ivy

openapi: 3.0.0
info:
  version: 1.0.0
  title: Seat Service
  description: API for the Seat Service. Exposes health checks and supports basic CRUD
    operations
  termsOfService: https://www.codacy.com/terms
  contact:
    name: Codacy
    email: [email protected]
    url: https://www.codacy.com
  license:
    name: Codacy. All rights reserved
    url: https://www.codacy.com
tags:
  - name: seat
    description: Seat endpoints

servers:
  - url: /v1

paths:
  "/organization/{organizationId}/authors":
    get:
      tags:
        - seat
      summary: Get all authors that belong to the organization
      description: ""
      operationId: listAuthors
      parameters:
        - in: path
          name: organizationId
          description: organization Id
          required: true
          example: 1
          schema:
            type: integer
            format: int64
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Authors"
              examples:
                response:
                  value:
                    - id: 1
                      emails:
                        - [email protected]
                        - [email protected]
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    post:
      tags:
        - seat
      summary: Add array of author seats to the organization
      description: ""
      operationId: createAuthors
      parameters:
        - in: path
          name: organizationId
          description: organization Id
          required: true
          example: 1
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: "#/components/schemas/AuthorBody"
        required: true
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Authors"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  "/organization/{organizationId}/author":
    post:
      tags:
        - seat
      summary: Add an author seat to the organization
      description: ""
      operationId: createAuthor
      parameters:
        - in: path
          name: organizationId
          description: organization Id
          required: true
          example: 1
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AuthorBody"
        required: true
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Author"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  "/organization/{organizationId}/authors/remove":
    post:
      tags:
        - seat
      summary: Bulk remove authors
      description: ""
      operationId: removeAuthors
      parameters:
        - in: path
          name: organizationId
          description: organization Id
          required: true
          example: 1
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RemoveAuthorsBody"
        required: true
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthorsEmailRemovedResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  "/organization/{organizationId}/author/{authorId}":
    delete:
      tags:
        - seat
      summary: Delete an author from the organization by the id
      description: ""
      operationId: deleteAuthor
      parameters:
        - in: path
          name: organizationId
          description: organization Id
          required: true
          example: 1
          schema:
            type: integer
            format: int64
        - in: path
          name: authorId
          description: author Id
          required: true
          example: 1
          schema:
            type: integer
            format: int64
      responses:
        "200":
          description: Successful operation
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /subject:
    get:
      tags:
        - subject
      summary: Gets the subject with the given fields
      description: Gets the subject with the given fields
      operationId: getSubject
      parameters:
        - $ref: '#/components/parameters/organizationIdentifierQuery'
        - $ref: '#/components/parameters/userIdentifierQuery'
        - $ref: '#/components/parameters/emailQuery'
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Subject"
        "400":
          $ref: '#/components/responses/BadRequest'
        "404":
          $ref: '#/components/responses/NotFound'
        "500":
          $ref: '#/components/responses/InternalServerError'

components:
  schemas:
    Authors:
      type: array
      items:
        $ref: "#/components/schemas/Author"
    Author:
      type: object
      required:
        - id
        - emails
      properties:
        id:
          type: integer
          format: int64
        emails:
          type: array
          items:
            type: string

    AuthorsEmailRemovedResponse:
      type: object
      required:
        - removed
      properties:
        removed:
          type: array
          items:
            type: string

    AuthorBody:
      type: object
      required:
        - emails
      properties:
        emails:
          type: array
          items:
            type: string

    RemoveAuthorsBody:
      type: object
      required:
        - emails
      properties:
        emails:
          type: array
          items:
            type: string

    Error:
      type: object
      required:
        - description
      properties:
        description:
          type: string

    SubjectType:
      type: string
      enum:
        - Author
        - User

    SubjectStatus:
      type: string
      enum:
        - Active
        - Inactive
        - Deactivated

    Subject:
      type: object
      properties:
        subjectType:
          $ref: "#/components/schemas/SubjectType"
        userIdentifier:
          type: integer
          format: int64
        emails:
          type: array
          items:
            type: string
        firstActivity:
          type: string
          format: date-time
          x-scala-type: java.time.Instant
        lastActivity:
          type: string
          format: date-time
          x-scala-type: java.time.Instant
        firstCommit:
          type: string
          format: date-time
          x-scala-type: java.time.Instant
        lastCommit:
          type: string
          format: date-time
          x-scala-type: java.time.Instant
        status:
          $ref: "#/components/schemas/SubjectStatus"
      required:
        - subjectType
        - status

    ApiError:
      type: object
      required:
        - error
        - message
      properties:
        error:
          type: string
        message:
          type: string
      discriminator:
        propertyName: error

    BadRequest:
      allOf:
        - $ref: "#/components/schemas/ApiError"

    NotFound:
      allOf:
        - $ref: "#/components/schemas/ApiError"

    InternalServerError:
      allOf:
        - $ref: "#/components/schemas/ApiError"

  parameters:
    organizationIdentifierQuery:
      in: query
      name: organizationIdentifier
      description: ""
      required: false
      example: 1
      schema:
        type: integer
        format: int64

    userIdentifierQuery:
      in: query
      name: userIdentifier
      description: ""
      required: false
      example: 1
      schema:
        type: integer
        format: int64

    emailQuery:
      in: query
      name: email
      description: ""
      required: false
      example: [email protected]
      schema:
        type: string

  responses:
    BadRequest: #400
      description: 'Bad Request'
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/BadRequest"

    NotFound: #404
      description: 'Not Found'
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/NotFound"

    InternalServerError: #500
      description: 'Internal Server Error'
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/InternalServerError"




© 2015 - 2025 Weber Informatics LLC | Privacy Policy