Capmo Project Templates API

The Project Templates API from Capmo — 2 operation(s) for project templates.

OpenAPI Specification

capmo-project-templates-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Capmo REST Organisation Companies Project Templates API
  description: External REST API Documentation for Capmo
  version: '1.0'
  contact: {}
servers:
- url: https://api.capmo.de
  description: Production
tags:
- name: Project Templates
  description: ''
paths:
  /api/v1/project-templates:
    get:
      description: This can be used to list all project templates in a paginated response.
      operationId: getProjectTemplates
      parameters:
      - name: order_by
        required: false
        in: query
        description: Field to order by. It can be any field of the entity.
        schema:
          default: server_created_at
          example: created_at
          type: string
      - name: order_direction
        required: false
        in: query
        description: Order direction of the `order_by` field. It can be `asc` or `desc`.
        schema:
          default: asc
          example: asc
          type: string
          enum:
          - asc
          - desc
      - name: after
        required: false
        in: query
        description: The last element from the previous page. This is a cursor. It will be returned in the output to be used in the next request. When it is not present, the first page is returned. When it is `null`, there are no more pages.
        schema:
          type: string
      - name: limit
        required: false
        in: query
        description: How many items should be in the output.
        schema:
          minimum: 1
          maximum: 1000
          default: 200
          example: 20
          type: number
      - name: Request-Id
        in: header
        description: The HTTP `Request-Id` request header is an optional and unofficial HTTP header, used to trace individual HTTP requests from the client to the server and back again. It allows the client and server to correlate each HTTP request. If not provided by the client, the server should generate a unique request ID and include it in the response.
        schema: {}
      responses:
        '200':
          description: The project templates have been successfully retrieved.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
                  data:
                    allOf:
                    - $ref: '#/components/schemas/PaginatedOutputDto'
                    - properties:
                        items:
                          type: array
                          items:
                            $ref: '#/components/schemas/ReadProjectTemplateDto'
        '400':
          description: Bad request, Invalid input
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: https://capmoapi.readme.io/reference/errors#bad-request
                  message:
                    type: string
                    example: An error occurred
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          example: BAD_REQUEST
                        message:
                          type: string
                          example: Bad request
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: https://capmoapi.readme.io/reference/errors#unauthorized
                  message:
                    type: string
                    example: An error occurred
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          example: UNAUTHORIZED
                        message:
                          type: string
                          example: Unauthorized
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: https://capmoapi.readme.io/reference/errors#forbidden
                  message:
                    type: string
                    example: An error occurred
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          example: FORBIDDEN
                        message:
                          type: string
                          example: Forbidden
        '404':
          description: Object not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: https://capmoapi.readme.io/reference/errors#not-found
                  message:
                    type: string
                    example: An error occurred
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          example: NOT_FOUND
                        message:
                          type: string
                          example: Object not found
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: https://capmoapi.readme.io/reference/errors#conflict
                  message:
                    type: string
                    example: An error occurred
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          example: CONFLICT
                        message:
                          type: string
                          example: Conflict
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: https://capmoapi.readme.io/reference/errors#internal-server-error
                  message:
                    type: string
                    example: An error occurred
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          example: INTERNAL_SERVER_ERROR
                        message:
                          type: string
                          example: Internal server error
      security:
      - CapmoAuth: []
      summary: ''
      tags:
      - Project Templates
  /api/v1/project-templates/{projectTemplateId}:
    get:
      description: This can be used to retrieve a specific project template by its ID.
      operationId: getProjectTemplate
      parameters:
      - name: projectTemplateId
        required: true
        in: path
        schema:
          type: string
      - name: Request-Id
        in: header
        description: The HTTP `Request-Id` request header is an optional and unofficial HTTP header, used to trace individual HTTP requests from the client to the server and back again. It allows the client and server to correlate each HTTP request. If not provided by the client, the server should generate a unique request ID and include it in the response.
        schema: {}
      responses:
        '200':
          description: The project template has been successfully retrieved.
          links:
            Create Project:
              description: Create a project from a project template
              operationId: createProject
              parameters:
                project_template_id: $response.body.data#/id
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
                  data:
                    $ref: '#/components/schemas/ReadProjectTemplateDto'
        '400':
          description: Bad request, Invalid input
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: https://capmoapi.readme.io/reference/errors#bad-request
                  message:
                    type: string
                    example: An error occurred
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          example: BAD_REQUEST
                        message:
                          type: string
                          example: Bad request
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: https://capmoapi.readme.io/reference/errors#unauthorized
                  message:
                    type: string
                    example: An error occurred
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          example: UNAUTHORIZED
                        message:
                          type: string
                          example: Unauthorized
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: https://capmoapi.readme.io/reference/errors#forbidden
                  message:
                    type: string
                    example: An error occurred
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          example: FORBIDDEN
                        message:
                          type: string
                          example: Forbidden
        '404':
          description: Object not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: https://capmoapi.readme.io/reference/errors#not-found
                  message:
                    type: string
                    example: An error occurred
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          example: NOT_FOUND
                        message:
                          type: string
                          example: Object not found
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: https://capmoapi.readme.io/reference/errors#conflict
                  message:
                    type: string
                    example: An error occurred
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          example: CONFLICT
                        message:
                          type: string
                          example: Conflict
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: https://capmoapi.readme.io/reference/errors#internal-server-error
                  message:
                    type: string
                    example: An error occurred
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          example: INTERNAL_SERVER_ERROR
                        message:
                          type: string
                          example: Internal server error
      security:
      - CapmoAuth: []
      summary: ''
      tags:
      - Project Templates
components:
  schemas:
    PaginatedOutputDto:
      type: object
      properties:
        after:
          type: string
          example: null
        count:
          type: number
          example: 1
        total:
          type: number
          example: 1
      required:
      - after
      - count
      - total
    ReadProjectTemplateDto:
      type: object
      properties:
        source_id:
          type: string
          description: The unique identifier of the source. This is a user-generated string. You can use this to link the person to a resource in an external system.
          example: 123e4567-e89b-12d3-a456-426614174000
        created_by:
          type: string
          nullable: true
          example: 123e4567-e89b-12d3-a456-426614174000
          description: The unique identifier of the creator of the entity.
        updated_by:
          type: string
          example: 123e4567-e89b-12d3-a456-426614174000
          nullable: true
          description: The unique identifier of the last user who updated the entity.
        created_at:
          type: string
          format: date-time
          example: '2021-07-01T00:00:00.000Z'
          description: The date when the entity was created (on the client).
        updated_at:
          type: string
          format: date-time
          example: '2021-07-01T00:00:00.000Z'
          description: The date when the entity was last updated (on the client).
        deleted_at:
          type: string
          nullable: true
          format: date-time
          example: '2021-07-01T00:00:00.000Z'
          description: The date when the entity was deleted (on the client).
        server_created_at:
          type: string
          format: date-time
          example: '2021-07-01T00:00:00.000Z'
          description: The date when the entity was created (on the server).
        server_updated_at:
          type: string
          format: date-time
          example: '2021-07-01T00:00:00.000Z'
          description: The date when the entity was last updated (on the server).
        server_deleted_at:
          type: string
          nullable: true
          format: date-time
          example: '2021-07-01T00:00:00.000Z'
          description: The date when the entity was deleted (on the server).
        id:
          type: string
          example: 123e4567-e89b-12d3-a456-426614174000
          description: The unique identifier of the project.
        name:
          type: string
          example: Berlin Data Center Campus (BER1)
          description: The name of the project.
        owner:
          type: string
          nullable: true
          example: Vantage Data Centers
          description: The owner of the project.
        address:
          type: string
          example: Brandenburg Park, Uferring 5, Ludwigsfelde, Germany
          description: The address of the project.
        owner_organisation_id:
          type: string
          example: 123e4567-e89b-12d3-a456-426614174000
          description: The unique identifier of the owner organisation.
        latitude:
          type: number
          nullable: true
          example: 52.3220832
          description: The latitude of the project.
        longitude:
          type: number
          nullable: true
          example: 13.2922907
          description: The longitude of the project.
        is_archived:
          type: boolean
          example: false
          description: The archived status of the project.
        project_key:
          type: string
          example: BER1
          description: The project key. This is a short string that identifies the project. It must be at least 1 character(s) long, and at most 12 characters long and may only consist of numbers and letters
        project_status:
          example: PROJECT_PREPARATION
          nullable: true
          description: The phase of the project.
          allOf:
          - $ref: '#/components/schemas/ProjectStatus'
        project_volume:
          type: integer
          nullable: true
          example: 500000000
          description: The volume of the project (in Euros).
        owner_type:
          nullable: true
          example: FreeText
          description: The type of the project owner reference.
          allOf:
          - $ref: '#/components/schemas/ProjectContactType'
        owner_person_id:
          type: string
          format: uuid
          nullable: true
          example: 123e4567-e89b-12d3-a456-426614174000
          description: The ID of the person from the organisation contact book linked as owner.
        owner_company_id:
          type: string
          format: uuid
          nullable: true
          example: 123e4567-e89b-12d3-a456-426614174000
          description: The ID of the company from the organisation contact book linked as owner.
        client:
          type: string
          nullable: true
          example: Munich Construction GmbH
          description: The client of the project.
        client_type:
          nullable: true
          example: FreeText
          description: The type of the project client reference.
          allOf:
          - $ref: '#/components/schemas/ProjectContactType'
        client_person_id:
          type: string
          format: uuid
          nullable: true
          example: 123e4567-e89b-12d3-a456-426614174000
          description: The ID of the person from the organisation contact book linked as client.
        client_company_id:
          type: string
          format: uuid
          nullable: true
          example: 123e4567-e89b-12d3-a456-426614174000
          description: The ID of the company from the organisation contact book linked as client.
        project_type:
          nullable: true
          example: NEW_CONSTRUCTION
          description: The type of construction project.
          allOf:
          - $ref: '#/components/schemas/ProjectType'
        building_type:
          nullable: true
          example: RESIDENTIAL_BUILDINGS
          description: The type of building being constructed.
          allOf:
          - $ref: '#/components/schemas/BuildingType'
        start_date:
          type: string
          format: date-time
          example: '2021-07-01T00:00:00.000Z'
          description: The start date of the project.
        end_date:
          type: string
          nullable: true
          format: date-time
          example: '2021-07-01T00:00:00.000Z'
          description: The planned end date of the project.
      required:
      - created_by
      - updated_by
      - created_at
      - updated_at
      - deleted_at
      - server_created_at
      - server_updated_at
      - server_deleted_at
      - id
      - name
      - owner
      - address
      - owner_organisation_id
      - latitude
      - longitude
      - is_archived
      - project_key
      - project_status
      - project_volume
      - owner_type
      - owner_person_id
      - owner_company_id
      - client
      - client_type
      - client_person_id
      - client_company_id
      - project_type
      - building_type
      - start_date
      - end_date
    ProjectContactType:
      type: string
      enum:
      - FreeText
      - ContactBookPerson
      - ContactBookCompany
      description: The type of the project owner reference.
    ProjectType:
      type: string
      enum:
      - NEW_CONSTRUCTION
      - ALTERATION
      - REFURBISHMENT
      description: The type of construction project.
    ProjectStatus:
      type: string
      enum:
      - PROJECT_PREPARATION
      - PLANNING
      - EXECUTION_PREPARATION
      - EXECUTION
      - PROJECT_COMPLETION
      - COMPLETED
      - DEFECTS_LIABILITY
      description: The phase of the project.
    BuildingType:
      type: string
      enum:
      - RESIDENTIAL_BUILDINGS
      - OFFICE_BUILDINGS
      - COMMERCIAL_RETAIL
      - INDUSTRIAL_MANUFACTURING
      - LOGISTICS_WAREHOUSING
      - HOTELS_HOSPITALITY
      - HEALTHCARE_NURSING
      - EDUCATION
      - PUBLIC_BUILDINGS
      - MIXED_USE
      - OTHER_SPECIAL_STRUCTURES
      description: The type of building being constructed.
  securitySchemes:
    CapmoAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'For authentication, use the custom prefix followed by a space and then your API key. Example: "Capmo YOUR_API_KEY".'
x-readme:
  headers:
  - key: Request-Id
    value: YOUR_REQUEST_ID