openapi: 3.0.0
x-stoplight:
  id: bg7fd73aua8ui
info:
  title: Projects
  version: '1.0'
  summary: API for projects
  description: >-
    The Nalanda Projects API provides a RESTful interface for efficiently managing construction works (referred to as
    projects) within the construction and infrastructure sector. This API enables the creation, retrieval, and updating
    of construction projects, along with the management of project zones, site-specific preferences, and associated
    personnel or contacts.


    **Core Functionalities**


    - Create a Project

    Register a new construction site with key metadata such as project name, location, and category. This serves as the
    foundation for all subsequent project operations.


    - Retrieve a Specific Project

    Access detailed information about an individual project—ideal for dashboards, tracking progress, or compliance
    audits.


    - List All Projects

    Retrieve all construction projects associated with your organization. Useful for managing multiple sites and
    generating consolidated reports.


    - Update Project Preferences

    Configure site-specific settings such as construction standards, active phases, and safety protocols to tailor each
    project’s behavior.


    - Manage Project Zones

    Define or update operational or geographic zones within a project. This helps structure work by area, assign
    responsibilities, and monitor segmented progress.


    - Retrieve Project Contacts

    Get a list of key personnel associated with a project, including site managers, subcontractors, and
    supervisors—facilitating communication and coordination.
servers:
  - url: https://api.nalandaglobal.com/api
    description: Prod
paths:
  /projects/{id}:
    parameters:
      - schema:
          type: string
        name: id
        in: path
        required: true
        description: ULID of the project
    get:
      summary: Get project
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
            application/xml:
              schema:
                type: object
                properties:
                  content:
                    $ref: '#/components/schemas/Project'
                    x-stoplight:
                      id: 7dozojglje518
            multipart/form-data:
              schema:
                type: object
            text/html:
              schema:
                type: object
                properties: {}
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-Not_Found'
        '406':
          $ref: '#/components/responses/406-Not_Acceptable'
      operationId: get-api-projects-ulid
      x-stoplight:
        id: dkvjclpz1zxp6
      x-supported-platforms:
        - national
        - international
      description: |-
        <!-- BEGIN supported-platforms -->
        <!-- theme: none -->
        >#### Supported Platforms: NATIONAL / INTERNATIONAL
        <!-- END supported-platforms -->

        Get project by Ulid
      security:
        - bearerAuth: []
      parameters:
        - schema:
            type: string
          in: header
          name: Accept
          description: application/vnd.nalanda.api-v1.0+json
    put:
      summary: Update project
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        '400':
          $ref: '#/components/responses/400-Bad_Request'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-Not_Found'
        '406':
          $ref: '#/components/responses/406-Not_Acceptable'
        '500':
          $ref: '#/components/responses/500-Internal_Server_Error'
      operationId: put-projects-id
      x-stoplight:
        id: 7ykdyk3l45u7y
      x-supported-platforms:
        - national
        - international
      description: |-
        <!-- BEGIN supported-platforms -->
        <!-- theme: none -->
        >#### Supported Platforms: NATIONAL / INTERNATIONAL
        <!-- END supported-platforms -->

        Update the project data by project id
      parameters:
        - schema:
            type: string
          in: header
          name: Accept
          description: application/vnd.nalanda.api-v1.0+json
      requestBody:
        description: Update the project data by project id
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Project'
  /projects/{id}/payments_states:
    parameters:
      - schema:
          type: string
        name: id
        in: path
        required: true
        description: ULID of the project
    get:
      summary: Project payment certificate
      tags:
        - Payment Certificate
      responses:
        '200':
          description: >
            Successful response is composed of 8 states. 


            There are 3 main states: the state to subcontractor level, the total state of the subcontractor and the
            state of the payment certificate. 


            Furthermore, there are also 5 additional states concerning the state of your own subcontractors, project
            specific documentation, workers, machinery and deficiencies.


            In addition to the states, the json includes a link section that allows the download of date and/or payment
            certificates in Excel format from the portal, after logging in.
          content:
            application/json:
              schema:
                type: object
                x-examples:
                  Example 1:
                    state:
                      - company_state: R
                        total_state: P
                        payments_state: R
                        project_specific_doc_state: R
                        workers_state: R
                        subcontractors_state: G
                        machinaries_state: G
                        deficiencies_state: G
                properties:
                  state:
                    type: array
                    items:
                      type: object
                      properties:
                        company_state:
                          type: string
                        total_state:
                          type: string
                        payments_state:
                          type: string
                        project_specific_doc_state:
                          type: string
                          x-stoplight:
                            id: cfyhdms59gq5i
                        workers_state:
                          type: string
                          x-stoplight:
                            id: auktx65g7gga0
                        subcontractors_state:
                          type: string
                          x-stoplight:
                            id: 4fqwe8pwuxe7w
                        machinaries_state:
                          type: string
                          x-stoplight:
                            id: ax5p20pomtmbx
                        deficiencies_state:
                          type: string
                          x-stoplight:
                            id: 3xi2vlnoeeb6w
              examples: {}
        '400':
          description: |
            Bad Request

            - Subcontractor identifier not found
            - Date of work not found
            - Invoice date not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                  global_error:
                    type: string
                  field_errors:
                    type: 'null'
                x-examples:
                  Example 1:
                    status: 400
                    global_error: Fecha de factura no encontrada
                    field_errors: null
        '403':
          description: Forbidden happens when you are trying to obtain the certificate of payment for a work that is not yours.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                  global_error:
                    type: string
                  field_errors:
                    type: 'null'
                x-examples:
                  Example 1:
                    status: 403
                    global_error: Forbidden
                    field_errors: null
        '404':
          description: |-
            Not found happens during the generation of the report in situations where no data is found.

            - Project not found
            - There is no verifiable company documentation for the selected month/year.
            - There are no contracts with the tax id: tax_id on the project code
            - The company with tax id: tax_id does not belong to you.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                  global_error:
                    type: string
                  field_errors:
                    type: 'null'
                x-examples:
                  Example 1:
                    status: 404
                    global_error: No existe documentación de Empresa verificable para el mes/año seleccionado
                    field_errors: null
        '500':
          description: |-
            Internal Server Error

            -For example, if invoice_date=NO DATE then "Text 'NO DATE' could not be parsed at index 0"
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                  global_error:
                    type: string
                  field_errors:
                    type: 'null'
                x-examples:
                  Example 1:
                    status: 500
                    global_error: Text 'NO DATE' could not be parsed at index 0
                    field_errors: null
      operationId: get-api-projects-payment-certificate-ulid
      x-stoplight:
        id: phyugc3q7iv2x
      x-supported-platforms:
        - national
      description: >-
        <!-- BEGIN supported-platforms -->

        <!-- theme: none -->

        >#### Supported Platforms: NATIONAL

        <!-- END supported-platforms -->


        Get the state of the company. This endpoint calculates the subcontractor's state, total and payment state. 


        It obtains the same information that is being obtained from
        https://developers.onceforall.com/nalanda-soap-webservices/docs/State-calculator/.
      parameters:
        - schema:
            type: string
          in: header
          name: Content-Type
          description: application/json
        - schema:
            type: string
          in: header
          description: application/vnd.nalanda.api-v1.0+json
          name: Accept
        - schema:
            type: string
            pattern: ^\d{4}-\d{2}$
            example: 2001-01
            format: date
          in: query
          name: work_date
          description: Date on which the work is carried out
          required: true
        - schema:
            type: string
            example: 2001-01
            pattern: ^\d{4}-\d{2}$
            format: date
          in: query
          name: invoice_date
          description: Invoicing date of the work
          required: true
        - schema:
            type: string
          in: query
          name: tax_id
          description: Identification of the subcontractor company
          required: true
      security:
        - bearerAuth: []
  /projects:
    post:
      summary: Create project
      operationId: post-projects
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        '400':
          $ref: '#/components/responses/400-Bad_Request'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-Not_Found'
        '406':
          $ref: '#/components/responses/406-Not_Acceptable'
      x-stoplight:
        id: 1xj67cwysp1sk
      x-supported-platforms:
        - national
        - international
      description: |-
        <!-- BEGIN supported-platforms -->
        <!-- theme: none -->
        >#### Supported Platforms: NATIONAL / INTERNATIONAL
        <!-- END supported-platforms -->

        Create a new project for the company of the log in user
      security:
        - bearerAuth: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Project'
        description: ''
      parameters:
        - schema:
            type: string
          in: header
          name: Accept
          description: application/vnd.nalanda.api-v1.0+json
    get:
      summary: Find all projects
      operationId: get-projects
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  content:
                    $ref: '#/components/schemas/Project'
                    x-stoplight:
                      id: tmhdl7s3u2tp7
                  page:
                    $ref: ./Page.json
                    x-stoplight:
                      id: 9byour4d75eja
        '400':
          $ref: '#/components/responses/400-Bad_Request'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-Not_Found'
        '406':
          $ref: '#/components/responses/406-Not_Acceptable'
      x-stoplight:
        id: w0rdkzdhlthb4
      x-supported-platforms:
        - national
        - international
      parameters:
        - schema:
            type: string
          in: header
          name: Accept
          description: application/vnd.nalanda.api-v1.0+json
          required: true
        - schema:
            type: string
          in: query
          name: page
          description: number of the current page
        - schema:
            type: string
          in: query
          name: size
          description: size for every page
        - schema:
            type: string
          in: query
          name: sort
          description: sort by field
      description: |-
        <!-- BEGIN supported-platforms -->
        <!-- theme: none -->
        >#### Supported Platforms: NATIONAL / INTERNATIONAL
        <!-- END supported-platforms -->

        Search for projects for the company of the log in user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Project'
      tags:
        - Search
    parameters: []
  /projects/{id}/location:
    parameters:
      - schema:
          type: string
        name: id
        in: path
        required: true
        description: ULID of the project
    put:
      summary: Update location project
      operationId: put-projects-id-location
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectLocation'
        '400':
          $ref: '#/components/responses/400-Bad_Request'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-Not_Found'
        '406':
          $ref: '#/components/responses/406-Not_Acceptable'
      x-stoplight:
        id: wm4ootkypiuk5
      description: |-
        <!-- BEGIN supported-platforms -->
        <!-- theme: none -->
        >#### Supported Platforms: NATIONAL / INTERNATIONAL
        <!-- END supported-platforms -->

        Modify the geographic location by project id
      security:
        - bearerAuth: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectLocation'
        description: ''
      parameters:
        - $ref: '#/components/parameters/contentType'
        - $ref: '#/components/parameters/accept'
      x-supported-platforms:
        - national
        - international
      tags:
        - Location
  /projects/{id}/preferences:
    parameters:
      - schema:
          type: string
        name: id
        in: path
        required: true
    put:
      summary: Update preferences project
      operationId: put-projects-id-preferences
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectPreferences'
        '400':
          $ref: '#/components/responses/400-Bad_Request'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-Not_Found'
        '406':
          $ref: '#/components/responses/406-Not_Acceptable'
      x-stoplight:
        id: qjlc71u6v8cyy
      x-supported-platforms:
        - national
        - international
      description: |-
        <!-- BEGIN supported-platforms -->
        <!-- theme: none -->
        >#### Supported Platforms: NATIONAL / INTERNATIONAL
        <!-- END supported-platforms -->

        Modify the preferences by project id
      parameters:
        - schema:
            type: string
          in: header
          name: Content-Type
          description: application/json
        - schema:
            type: string
          in: header
          name: Accept
          description: application/vnd.nalanda.api-v1.0+json
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectPreferences'
      tags:
        - Preferences
  /projects/{id}/contacts:
    parameters:
      - schema:
          type: string
        name: id
        in: path
        required: true
    get:
      summary: Find all contacts by project id
      tags:
        - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  content:
                    $ref: '#/components/schemas/ProjectContact'
                    x-stoplight:
                      id: 4dpdz3gmgjtr1
                  page:
                    $ref: ./Page.json
                    x-stoplight:
                      id: dwb0cp4fgjdcf
        '400':
          $ref: '#/components/responses/400-Bad_Request'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '404':
          $ref: '#/components/responses/404-Not_Found'
        '406':
          $ref: '#/components/responses/406-Not_Acceptable'
      operationId: get-projects-id-contact
      x-stoplight:
        id: krc8srxsdjujq
      description: |-
        <!-- BEGIN supported-platforms -->
        <!-- theme: none -->
        >#### Supported Platforms: NATIONAL / INTERNATIONAL
        <!-- END supported-platforms -->

        Get all the contacts by project id
      security:
        - bearerAuth: []
      parameters:
        - $ref: '#/components/parameters/contentType'
        - $ref: '#/components/parameters/accept'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/size'
        - $ref: '#/components/parameters/sort'
        - in: header
          name: Accept
          description: application/vnd.nalanda.api-v1.0+json
      x-supported-platforms:
        - national
        - international
    post:
      summary: Create contacts for project
      operationId: post-projects-id-contacts
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectContact'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-Not_Found'
        '406':
          $ref: '#/components/responses/406-Not_Acceptable'
      x-stoplight:
        id: 55l7mu2udlj5k
      description: |-
        <!-- BEGIN supported-platforms -->
        <!-- theme: none -->
        >#### Supported Platforms: NATIONAL / INTERNATIONAL
        <!-- END supported-platforms -->

        Create a new contact by project id
      security:
        - bearerAuth: []
      parameters:
        - $ref: '#/components/parameters/accept'
        - $ref: '#/components/parameters/contentType'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectContact'
        description: Data for the contact
      x-supported-platforms:
        - national
        - international
      tags:
        - Contacts
  /projects/{id}/zones:
    parameters:
      - schema:
          type: string
        name: id
        in: path
        required: true
    put:
      summary: Update zone project
      operationId: put-projects-id-zones
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectZone'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-Not_Found'
        '406':
          $ref: '#/components/responses/406-Not_Acceptable'
      x-stoplight:
        id: fo17oc9it5pym
      x-supported-platforms:
        - national
        - international
      description: |-
        <!-- BEGIN supported-platforms -->
        <!-- theme: none -->
        >#### Supported Platforms: NATIONAL / INTERNATIONAL
        <!-- END supported-platforms -->

        Update the zone by project id
      security:
        - bearerAuth: []
      parameters:
        - $ref: '#/components/parameters/accept'
        - $ref: '#/components/parameters/contentType'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectZone'
        description: Zone Data
      tags:
        - Zones
  /projects/{id_project}/contacts/{id_contact}:
    parameters:
      - schema:
          type: string
        name: id_project
        in: path
        required: true
      - schema:
          type: string
        name: id_contact
        in: path
        required: true
    delete:
      summary: Delete contact from project
      operationId: Delete contact from project
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '204':
          description: No Content
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-Not_Found'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: ./Error.yaml
      x-stoplight:
        id: 18mi9xc1czdx2
      x-supported-platforms:
        - national
        - international
      security: []
      parameters:
        - $ref: '#/components/parameters/contentType'
        - $ref: '#/components/parameters/accept'
      description: |-
        <!-- BEGIN supported-platforms -->
        <!-- theme: none -->
        >#### Supported Platforms: NATIONAL / INTERNATIONAL
        <!-- END supported-platforms -->

        Delete contact from project
      tags:
        - Contacts
  /projects/{id}/external_refs:
    parameters:
      - schema:
          type: string
        name: id
        in: path
        required: true
        description: ULID of the project
    put:
      summary: Update external reference id
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectExternalRef'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-Not_Found'
        '406':
          $ref: '#/components/responses/406-Not_Acceptable'
      operationId: put-projects-id-external_refs
      x-stoplight:
        id: fbgcumow9lgt5
      x-supported-platforms:
        - national
        - international
      description: |-
        <!-- BEGIN supported-platforms -->
        <!-- theme: none -->
        >#### Supported Platforms: NATIONAL / INTERNATIONAL
        <!-- END supported-platforms -->

        Update the reference internal identifier in the customer's system.
      security:
        - bearerAuth: []
      parameters:
        - schema:
            type: string
          in: header
          name: Content-Type
          description: application/json
        - schema:
            type: string
          in: header
          description: application/vnd.nalanda.api-v1.0+json
          name: Accept
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectExternalRef'
    delete:
      summary: Delete external reference id
      responses:
        '204':
          description: No Content
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '406':
          $ref: '#/components/responses/406-Not_Acceptable'
      operationId: delete-projects-external_refs
      x-stoplight:
        id: lfxt7vg05i7cs
      x-supported-platforms:
        - national
        - international
      description: |-
        <!-- BEGIN supported-platforms -->
        <!-- theme: none -->
        >#### Supported Platforms: NATIONAL / INTERNATIONAL
        <!-- END supported-platforms -->

        Delete the reference internal identifier in the customer's system.
      security:
        - bearerAuth: []
      parameters:
        - schema:
            type: string
          in: header
          name: Content-Type
          description: application/json
        - schema:
            type: string
          in: header
          description: application/vnd.nalanda.api-v1.0+json
          name: Accept
    get:
      summary: Get external reference id
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectExternalRef'
            multipart/form-data:
              schema:
                type: object
            text/html:
              schema:
                type: object
                properties: {}
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-Not_Found'
        '406':
          $ref: '#/components/responses/406-Not_Acceptable'
      operationId: get-projects-external_refs
      x-stoplight:
        id: pm0ca1trvood4
      x-supported-platforms:
        - national
        - international
      security:
        - bearerAuth: []
      parameters:
        - schema:
            type: string
          in: header
          name: Content-Type
          description: application/json
        - schema:
            type: string
          in: header
          description: application/vnd.nalanda.api-v1.0+json
          name: Accept
      description: |-
        <!-- BEGIN supported-platforms -->
        <!-- theme: none -->
        >#### Supported Platforms: NATIONAL / INTERNATIONAL
        <!-- END supported-platforms -->

        Get the reference internal identifier in the customer's system.
components:
  schemas:
    Project:
      title: Project
      x-stoplight:
        id: tgjztm9pxb1xy
      type: object
      properties:
        id:
          type: string
          x-stoplight:
            id: h4m0w9qq2ayv7
          default: 01H3KVBK79F0B8FYD2YV85BHVF
          example: 01H3KVBK79F0B8FYD2YV85BHVF
          description: Identifier
          readOnly: true
        code:
          type: string
          x-stoplight:
            id: xnqkk7w9llvuc
          example: 001m
          description: Project code provider by owner
        description:
          type: string
          x-stoplight:
            id: cx94cj6ybhjok
          example: mi obra es una descripción
          description: Project description
        owner_tax_id:
          type: string
          x-stoplight:
            id: zqo5dieu16szq
          example: 04339985T
          default: 04339985T
          description: Tax id of the company that owns the project
        builder_tax_id:
          type: string
          x-stoplight:
            id: wmzax2mmkh0pp
          example: PT500097488
          default: PT500097488
          description: Tax id of the construction company or Temporary Joint Venture
        started_at:
          type: string
          x-stoplight:
            id: 5s3lgd1aj0y0t
          format: date
          default: '2001-01-01'
          example: '2001-01-01'
          description: Project start date
          pattern: ^\d{4}-\d{2}-\d{2}$
        finished_at:
          type: string
          x-stoplight:
            id: ccsbjwgstx8sx
          format: date
          example: '2001-01-01'
          default: '2001-01-01'
          description: Project end date
          pattern: ^\d{4}-\d{2}-\d{2}$
        project_nature:
          x-stoplight:
            id: wb0shjp0tv92o
          enum:
            - Work
            - Service
          description: Type of project
    ProjectExternalRef:
      title: ProjectExternalRef
      x-stoplight:
        id: tgjztm9pxb1xz
      type: object
      properties:
        external_ref_id:
          type: string
          x-stoplight:
            id: njucyldtzoi4w
          description: This reference is an internal code of the customer's system.
    ProjectLocation:
      title: ProjectLocation
      x-stoplight:
        id: 66d54e7y5txmq
      type: object
      description: geographic location of project
      properties:
        address:
          type: string
          x-stoplight:
            id: cgaqsoedtujru
          description: Project address
          example: Gran via, 1
        territory:
          type: string
          x-stoplight:
            id: 19xdgbfh5j75w
          description: Project territory
          example: Madrid
        country:
          type: string
          x-stoplight:
            id: 6l17q75h6p10s
          description: Country code
          example: '034'
        province:
          type: string
          x-stoplight:
            id: lt3ch6iov6i8m
          example: '28'
          description: Project province
    ProjectPreferences:
      title: ProjectPreferences
      x-stoplight:
        id: 9skcevfynwqdr
      type: object
      description: preferences of project
      properties:
        id:
          type: string
          x-stoplight:
            id: zwkq92nem5hh6
          description: Id of the project preferences
          readOnly: true
        working_days_automation:
          type: boolean
          x-stoplight:
            id: x7ige9vu4c78h
          description: Enable the automation of working days
        working_days_clocking_mode:
          x-stoplight:
            id: 0qgu49knxxhf4
          enum:
            - GREEN_AND_PENDING
            - GREEN
            - ALL
          description: Mode of clocking of days
        permissions:
          type: array
          x-stoplight:
            id: nuxiwmeaaa609
          description: 'Permits for subcontractors '
          items:
            x-stoplight:
              id: g71960npxj9z5
            enum:
              - CAN_ASSIGN_RESOURCES
              - CAN_ASSIGN_WORKING_DAYS
              - INT_ASSIGN_GROUPS
              - INT_ASSIGN_RISK_OCCUPATIONS
    ProjectContact:
      title: ProjectContact
      x-stoplight:
        id: wxwgsys00btsw
      type: object
      description: Contacts for the project
      required:
        - type
        - name
        - email
        - id
      properties:
        type:
          x-stoplight:
            id: l90ptnyq2m8wf
          enum:
            - PROJECT_CONTACT
            - BUSINESS_CONTACT
            - OHS_CONTACT
          description: Type of the contact
        name:
          type: string
          x-stoplight:
            id: gty3qpjsbh7jn
          description: Name of the contact
          example: Juan Antonio
        phone:
          type: string
          x-stoplight:
            id: d7x16nxxpvh9a
          description: Phone of the contact
          example: '951156852'
        id:
          type: string
          x-stoplight:
            id: w12ft751fngro
          description: id contact
          readOnly: true
    ProjectZone:
      title: ProjectZone
      x-stoplight:
        id: jgjz4k3un5mb0
      type: object
      description: Zone of the project
      properties:
        code:
          type: string
          x-stoplight:
            id: g17xc888lge8c
          example: 11W1
          description: Code of the Zone
        description:
          type: string
          x-stoplight:
            id: 7jmlvm5vz2eit
          example: GAL-Galicia
          description: Description of the Zone
          readOnly: true
      required:
        - code
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
  responses:
    401-Unauthorized:
      description: 401 Unauthorized
      content:
        application/json:
          schema:
            $ref: ./Error.yaml
    404-Not_Found:
      description: 404 Not Found
      content:
        application/json:
          schema:
            $ref: ./Error.yaml
    406-Not_Acceptable:
      description: 406 Not Acceptable
      content:
        application/json:
          schema:
            $ref: ./Error.yaml
    403-Forbidden:
      description: 403 Forbidden
      content:
        application/json:
          schema:
            $ref: ./Error.yaml
    400-Bad_Request:
      description: 400-Bad_Request
      content:
        application/json:
          schema:
            $ref: ./Error.yaml
      application/json:
        schema:
          type: object
          x-examples:
            Example 1:
              status: 400
              global_error: El genero no tiene un formato valido
              field_errors: null
          properties:
            status:
              type: integer
            global_error:
              type: string
              example: El genero no tiene un formato valido
            field_errors:
              type:
                - array
                - 'null'
              items:
                x-stoplight:
                  id: das398mwpe804
                type: string
      application/xml:
        schema:
          type: object
          properties: {}
      multipart/form-data:
        schema:
          type: object
          properties: {}
    500-Internal_Server_Error:
      description: Example response
      content:
        application/json:
          schema:
            $ref: ./Error.yaml
  parameters:
    idProject:
      name: idProject
      in: path
      required: true
      schema:
        type: string
      description: ' project id'
    idContact:
      name: idContact
      in: path
      required: true
      schema:
        type: string
      description: contact id
    accept:
      name: Accept
      in: header
      required: false
      schema:
        type: string
      description: application/vnd.nalanda.api-v1.0+json
    page:
      name: page
      in: query
      required: false
      schema:
        type: number
      description: Number of the current page
    size:
      name: size
      in: query
      required: false
      schema:
        type: number
      description: Size for every page
    sort:
      name: sort
      in: query
      required: false
      schema:
        type: string
      description: Sort by field
    contentType:
      name: Content-Type
      in: header
      required: false
      schema:
        type: string
      description: application/json
security:
  - bearerAuth: []
