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