Indykite Projects API

Project CRUD operations

OpenAPI Specification

indykite-projects-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact: {}
  description: Config API supports CRUD operations on config objects.
  title: Config REST Application Agent Credentials Projects API
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  version: '1'
servers:
- url: https://eu.api.indykite.com/configs/v1
- url: https://us.api.indykite.com/configs/v1
security:
- BearerToken: []
tags:
- name: Projects
  description: Project CRUD operations
  x-displayName: Projects
paths:
  /projects:
    get:
      tags:
      - Projects
      operationId: listProjects
      summary: List Projects
      description: List Projects in provided Organization with optional filtering.
      parameters:
      - description: Project ID where to search for Projects.
        in: query
        name: organization_id
        required: true
        style: form
        explode: true
        schema:
          type: string
      - description: List only objects, that contains given search query in name, display name or description
        in: query
        name: search
        required: false
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httpproxy.listConfigResponse-httpproxy_readProjectResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.ErrorResponse'
        '401':
          description: Invalid ServiceAccount JWT in Authorization header
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.ErrorResponse'
      security:
      - BearerToken: []
    post:
      tags:
      - Projects
      operationId: createProject
      summary: Create Project
      description: Create Project, formerly known as Application space, in provided Organization.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/httpproxy.createProjectRequest'
        description: Create Project request
        required: true
      responses:
        '201':
          description: Created
          headers:
            etag:
              description: Multiversion concurrency control version - etag
              style: simple
              explode: false
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httpproxy.createConfigResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.ErrorResponse'
        '401':
          description: Invalid ServiceAccount JWT in Authorization header
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.ErrorResponse'
      x-codegen-request-body-name: request
      security:
      - BearerToken: []
  /projects/{id}:
    delete:
      tags:
      - Projects
      operationId: deleteProject
      summary: Delete Project
      description: Delete Project, formerly known as Application space, by provided ID. You can optionally can specify etag in If-Match header.
      parameters:
      - description: Project ID
        in: path
        name: id
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - description: Multiversion concurrency control version - etag
        in: header
        name: If-Match
        required: false
        style: simple
        explode: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httpproxy.deleteConfigResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.ErrorResponse'
        '401':
          description: Invalid ServiceAccount JWT in Authorization header
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.ErrorResponse'
      security:
      - BearerToken: []
    get:
      tags:
      - Projects
      operationId: getProject
      summary: Read Project
      description: Read Project, formerly known as Application space, identified by provided ID.
      parameters:
      - description: Project ID
        in: path
        name: id
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - description: Version of configuration to read. If not provided, latest version is returned.
        in: query
        name: version
        required: false
        style: form
        explode: true
        schema:
          type: integer
      responses:
        '200':
          description: OK
          headers:
            etag:
              description: Multiversion concurrency control version - etag
              style: simple
              explode: false
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httpproxy.readProjectResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.ErrorResponse'
        '401':
          description: Invalid ServiceAccount JWT in Authorization header
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.ErrorResponse'
      security:
      - BearerToken: []
    put:
      tags:
      - Projects
      operationId: updateProject
      summary: Update Project
      description: Update Project, formerly known as Application space, identified by provided ID and optionally etag in If-Match header.
      parameters:
      - description: Project ID or name
        in: path
        name: id
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - description: Multiversion concurrency control version - etag.
        in: header
        name: If-Match
        required: false
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/httpproxy.updateProjectRequest'
        description: Update Project request.
        required: true
      responses:
        '200':
          description: OK
          headers:
            etag:
              description: Multiversion concurrency control version - etag
              style: simple
              explode: false
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httpproxy.updateConfigResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.ErrorResponse'
        '401':
          description: Invalid ServiceAccount JWT in Authorization header
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.DetailedError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restapi.ErrorResponse'
      x-codegen-request-body-name: request
      security:
      - BearerToken: []
components:
  schemas:
    httpproxy.dbConnection:
      properties:
        name:
          description: Optional name of the database.
          type: string
        password:
          description: Password for database authentication - write only.
          type: string
        url:
          description: Connection URL for the database.
          type: string
        username:
          description: Username for database authentication.
          type: string
        alias_mapping:
          description: Optional alias mapping for the database.
          type: string
        composite_db_name:
          description: Optional composite database name.
          type: string
      required:
      - password
      - url
      - username
      type: object
    httpproxy.updateConfigResponse:
      properties:
        create_time:
          description: CreateTime specify when configuration was created.
          type: string
        created_by:
          description: CreatedBy specify who created configuration.
          type: string
        id:
          description: ID of configuration to update.
          type: string
        update_time:
          description: UpdateTime specify when configuration was last time updated.
          type: string
        updated_by:
          description: UpdatedBy specify who last time updated configuration.
          type: string
      type: object
    httpproxy.updateProjectRequest:
      properties:
        db_connection:
          allOf:
          - $ref: '#/components/schemas/httpproxy.dbConnection'
          description: Database connection information for self hosted database.
        description:
          description: 'Description is optional description of configuration. When kept null, it is not changed.

            But when set to empty string, it will be removed.'
          maxLength: 65000
          type: string
        display_name:
          description: 'DisplayName is optional human readable name of configuration. When kept null, it is not changed.

            But when set to empty string, it will be removed.'
          maxLength: 254
          type: string
      type: object
    httpproxy.deleteConfigResponse:
      properties:
        id:
          description: ID of deleted configuration.
          type: string
      type: object
    httpproxy.listConfigResponse-httpproxy_readProjectResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/httpproxy.readProjectResponse'
          type: array
      type: object
    restapi.DetailedError:
      properties:
        errors:
          items:
            type: string
          type: array
        message:
          type: string
      type: object
    httpproxy.readProjectResponse:
      properties:
        create_time:
          description: CreateTime specify when configuration was created.
          type: string
        created_by:
          description: CreatedBy specify who created configuration.
          type: string
        db_connection:
          allOf:
          - $ref: '#/components/schemas/httpproxy.dbConnection'
          description: 'Database connection information for self hosted database.

            Password is never returned back during read operation.'
        description:
          description: Description is optional description of configuration.
          type: string
        display_name:
          description: DisplayName is optional human readable name of configuration. Is equal to Name if not set.
          type: string
        id:
          description: ID is globally unique identifier of configuration.
          type: string
        ikg_size:
          description: 'IKG Size that is allocated, with corresponding amount of CPU nodes.

            2GB (1 CPU), 4GB (1 CPU), 8GB (2 CPUs), 16GB (3 CPUs), 32GB (6 CPUs), 64GB (12 CPUs),

            128GB (24 CPUs), 192GB (36 CPUs), 256GB (48 CPUs), 384GB (82 CPUs), and 512GB (96 CPUs).'
          type: string
        ikg_status:
          description: IkgStatus is status of the IKG DB instance behind the project.
          type: string
        name:
          description: Name is URL friendly identifier of configuration.
          type: string
        organization_id:
          description: 'OrganizationID is globally unique identifier of organization, formerly known as customer,

            under which configuration was created.'
          type: string
        project_id:
          description: 'ProjectID is globally unique identifier of project, formerly known as application space,

            under which configuration was created.

            Might be empty, if configuration is created directly under organization.'
          type: string
        region:
          description: Region specify where the IKG and other data are stored.
          type: string
        replica_region:
          description: Replica region specify where the second IKG with synchronization is created, if any.
          type: string
        update_time:
          description: UpdateTime specify when configuration was last time updated.
          type: string
        updated_by:
          description: UpdatedBy specify who last time updated configuration.
          type: string
      type: object
    restapi.ErrorResponse:
      properties:
        message:
          example: Internal Server Error
          type: string
      type: object
    httpproxy.createProjectRequest:
      properties:
        db_connection:
          allOf:
          - $ref: '#/components/schemas/httpproxy.dbConnection'
          description: Database connection information for self hosted database.
        description:
          description: Description is optional description of configuration.
          maxLength: 65000
          minLength: 2
          type: string
        display_name:
          description: DisplayName is optional human readable name of configuration.
          maxLength: 254
          minLength: 2
          type: string
        ikg_size:
          description: 'IKG size that will be allocated, which correspond also to amount of CPU nodes. Default value is 2GB.

            2GB (1 CPU), 4GB (1 CPU), 8GB (2 CPUs), 16GB (3 CPUs), 32GB (6 CPUs), 64GB (12 CPUs),

            128GB (24 CPUs), 192GB (36 CPUs), 256GB (48 CPUs), 384GB (82 CPUs), and 512GB (96 CPUs)'
          enum:
          - 2GB
          - 4GB
          - 8GB
          - 16GB
          - 32GB
          - 64GB
          - 128GB
          - 192GB
          - 256GB
          - 384GB
          - 512GB
          type: string
        name:
          description: 'Name is URL friendly identifier of configuration, must be unique in scope of parent entity.

            Also is immutable and cannot be changed later.'
          type: string
        organization_id:
          description: 'OrganizationID is identifier of Organization, formerly known as Customer,

            where to place this new configuration object. Must be in GID format.'
          type: string
        region:
          enum:
          - europe-west1
          - us-east1
          type: string
        replica_region:
          description: 'Replica region specify where the second IKG is created.

            This will turn on multi region with synchronization from master into that replica.

            Replica must be different region than the master, but also in the same geographical continent.'
          enum:
          - europe-west1
          - us-east1
          - us-west1
          type: string
      required:
      - name
      - organization_id
      - region
      type: object
    httpproxy.createConfigResponse:
      properties:
        create_time:
          description: CreateTime specify when configuration was created.
          type: string
        created_by:
          description: CreatedBy specify who created configuration.
          type: string
        id:
          description: ID is globally unique identifier of created configuration.
          type: string
        update_time:
          description: UpdateTime specify when configuration was last time updated.
          type: string
        updated_by:
          description: UpdatedBy specify who last time updated configuration.
          type: string
      type: object
  securitySchemes:
    BearerToken:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Bearer token generated from Service Account credentials.
x-original-swagger-version: '2.0'